Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-09-14ViewLayer: Lazy sync of scene data.Monique Dewanchand
When a change happens which invalidates view layers the syncing will be postponed until the first usage. This will improve importing or adding many objects in a single operation/script. `BKE_view_layer_need_resync_tag` is used to tag the view layer to be out of sync. Before accessing `BKE_view_layer_active_base_get`, `BKE_view_layer_active_object_get`, `BKE_view_layer_active_collection` or `BKE_view_layer_object_bases` the caller should call `BKE_view_layer_synced_ensure`. Having two functions ensures that partial syncing could be added as smaller patches in the future. Tagging a view layer out of sync could be replaced with a partial sync. Eventually the number of full resyncs could be reduced. After all tagging has been replaced with partial syncs the ensure_sync could be phased out. This patch has been added to discuss the details and consequences of the current approach. For clarity the call to BKE_view_layer_ensure_sync is placed close to the getters. In the future this could be placed in more strategical places to reduce the number of calls or improve performance. Finding those strategical places isn't that clear. When multiple operations are grouped in a single script you might want to always check for resync. Some areas found that can be improved. This list isn't complete. These areas aren't addressed by this patch as these changes would be hard to detect to the reviewer. The idea is to add changes to these areas as a separate patch. It might be that the initial commit would reduce performance compared to master, but will be fixed by the additional patches. **Object duplication** During object duplication the syncing is temporarily disabled. With this patch this isn't useful as when disabled the view_layer is accessed to locate bases. This can be improved by first locating the source bases, then duplicate and sync and locate the new bases. Will be solved in a separate patch for clarity reasons ({D15886}). **Object add** `BKE_object_add` not only adds a new object, but also selects and activates the new base. This requires the view_layer to be resynced. Some callers reverse the selection and activation (See `get_new_constraint_target`). We should make the selection and activation optional. This would make it possible to add multiple objects without having to resync per object. **Postpone Activate Base** Setting the basact is done in many locations. They follow a rule as after an action find the base and set the basact. Finding the base could require a resync. The idea is to store in the view_layer the object which base will be set in the basact during the next sync, reducing the times resyncing needs to happen. Reviewed By: mont29 Maniphest Tasks: T73411 Differential Revision: https://developer.blender.org/D15885
2022-09-14Adding `const Scene*` parameter in many areas.Monique Dewanchand
Related to {D15885} that requires scene parameter to be added in many places. To speed up the review process the adding of the scene parameter was added in a separate patch. Reviewed By: mont29 Maniphest Tasks: T73411 Differential Revision: https://developer.blender.org/D15930
2022-09-01Cleanup: Remove/replace View Layer macros.Monique Dewanchand
This patch is a cleanup required before refactoring the view layer syncing process {T73411}. * Remove FIRSTBASE. * Remove LASTBASE. * Remove BASACT. * Remove OBEDIT_FROM_WORKSPACE. * Replace OBACT with BKE_view_layer_active_object. * Replace OBEDIT_FROM_VIEW_LAYER with BKE_view_layer_edit_object. Reviewed By: mont29 Maniphest Tasks: T73411 Differential Revision: https://developer.blender.org/D15799
2022-02-18Cleanup: Rename original curve object type enumHans Goudey
This commit renames enums related the "Curve" object type and ID type to add `_LEGACY` to the end. The idea is to make our aspirations clearer in the code and to avoid ambiguities between `CURVE` and `CURVES`. Ref T95355 To summarize for the record, the plans are: - In the short/medium term, replace the `Curve` object data type with `Curves` - In the longer term (no immediate plans), use a proper data block for 3D text and surfaces. Differential Revision: https://developer.blender.org/D14114
2022-02-11File headers: SPDX License migrationCampbell Barton
Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
2021-12-21Fix T92930: Outliner "Show Active" bone fails in certain situationsPhilipp Oeser
Outliner would frame the armature object instead of the bone if the bone was on a hidden armature layer. Similar to issues reported in e.g. T58068 and T80464, this is due to the fact that `BKE_pose_channel_active` always checks for the armature layer (and returns NULL if a bone is not on a visible armature layer). Now propose to make this layer check **optional** (and e.g. from the Outliner be more permissive). This also introduces `BKE_pose_channel_active_if_layer_visible` which just wraps `BKE_pose_channel_active` with the check being ON. Maniphest Tasks: T92930 Differential Revision: https://developer.blender.org/D13154
2021-12-08Cleanup: move public doc-strings into headers for 'editors'Campbell Barton
Ref T92709
2021-11-11Cleanup: split gimbal_axis into pose and objectCampbell Barton
Allow access to a single bones gimbal matrix.
2021-10-16Remove math for 2D affine transformRichard Antalik
Commit e1665c3d3190 added math to do 2D affine transformations with 3x3 matrices, but these matrices are also used for 3D transformations. Remove added functions and use 4x4 matrices for 2D transformation. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D12510
2021-10-08VSE: Implement the bounding box (xform) tool in the seq preview windowSebastian Parborg
Make the "xform" tool/gizmo available for strip transformations in the sequencer preview window. Because of the amount of hacks needed to make the gizmo work nicely with multiple strips at the same time, it was decided to only show the translate gizmo when multiple strips are selected. This is because the transforms with multiple strips would appear buggy because of our lack of shearing support in the transform system. There is also currently no way to properly sync the gizmo drawing with the transform when using multiple strips. Reviewed By: Richard Antalik, Campbell Barton Differential Revision: http://developer.blender.org/D12729
2021-08-31Transform: avoid passing the context to extended orientation functionsCampbell Barton
This makes it possible to calculate orientation from functions that don't have the context.
2021-07-23Cleanup: code comments punctuation / spacingCampbell Barton
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-05-21Cleanup: quiet -Warray-parameter warnings from GCC11Campbell Barton
Some warnings remain that require larger changes.
2021-05-12Fix T87947: Trasnform: Keyboard input uses view orientationGermano Cavalcante
When activated in modal, `translate`, `resize`, `rotate`, `shear` and `edge_rotate_normal` use a different orientation than the set in scene. This orientation needed to match since some of these modes can be switched during operation. The default orientation for these modes was `V3D_ORIENT_VIEW`. And this changed when finishing the `translate` and `resize` to `V3D_ORIENT_GLOBAL`. But this could cause inconsistencies when inputting values from the keyboard. The solution now is to change the orientation when you change the mode. --- Note: Although the user can expect the value entered to reflect the orientation set in the scene, it would require a lot of changes and would not be really useful.
2021-04-01Cleanup/Refactor: Transform Orientation: Use 'orient_index' instead ↵Germano Cavalcante
'orient_type' `orient_index` is a more comprehensive value as it reveals both the type and index. Differential Revision: https://developer.blender.org/D9595
2021-02-10Fix T85471: Wrong orientation in transforming objects in weight paint modeGermano Cavalcante
The local orientation chosen was that of the active object, but as confirmed in other parts of the code, the orientation of the selected Bone has priority.
2021-02-01Fix T85229: Transform operator saving a different orientation than the ↵Germano Cavalcante
chosen one Some orientations are not possible to be calculated for certain scenes. In these cases, others are chosen and informed by the operator. However, the user may prefer that the chosen one be displayed (even if it is not actually used). This corresponds to older versions of Blender.
2021-01-30Revert "Fix T83092: Direction of rotation with View orientation changed in 2.91"Germano Cavalcante
This reverts commit f9e994d0f463abb87761591e30c47a9613be6cca. And fixes T85227. That commit created an inverted orientation matrix but the 'Align to Transform Orientation' operator doesn't work well with inverted matrices.
2021-01-16Add Object Tool: workaround non-orthogonal orientation matricesCampbell Barton
2020-12-28Fix T84200: Rotating a paintcurve [all paintmodes] doesn’t work correctlyGermano Cavalcante
The transform code did not provide a 2d context to be used in 3d space. The solution is to set all matrices for the screen space in these cases. This commit also removes the dial3d drawing in these cases. It was not correct anyway.
2020-11-27Fix T83092: Direction of rotation with View orientation changed in 2.91Germano Cavalcante
The change was intentional so that the orientation matrices match (`rv3d->viewinv` becomes equal to the orientation matrix). But, although in a projection matrix the Z axis is negative, this should not be so from the user's point of view. So the solution here is to negate the Z axis when the View orientation is chosen. This affects all modes, but is only evident for rotation. --- Another change here is to use the final rotation value (`values_final`) for the gizmo drawing since this value can be changed by the mode.
2020-11-18Fix transform redo panel showing only the first custom orientationGermano Cavalcante
The error was introduced in rBf470a02afaea, but the problem is in `ED_transform_calc_orientation_from_type_ex`
2020-10-19Spelling: Apart Versus A PartHarley Acheson
Corrects incorrect usages of the fragment 'apart of' when 'a part of' was required. Differential Revision: https://developer.blender.org/D9245 Reviewed by Campbell Barton
2020-10-16Fix T81591: Align view to active is not working in sculpt modeCampbell Barton
Remove sculpt/paint checks in getTransformOrientation_ex This code goes back a long time (early 2.5x). I couldn't find any reason why sculpt/paint checks were being made. This makes the following changes: - When in object mode, the object must be selected. Since this function typically operates on the selected items. - When in paint/particle modes, the objects matrix is always used regardless of selection, since object selection can't be controlled in these modes. - When there is no active object, the first selected object is no longer used as it's quite an arbitrary decision & not something done elsewhere with objects in Blender.
2020-10-08Fix T81529: Can't move with constraint to a zero-size local axisGermano Cavalcante
To fix the problem, it was necessary to create a fallback for the zero-sized axis in local orientation. This also affects the gizmos.
2020-10-08Cleanup: Move transform_orientations functions to separate headerGermano Cavalcante
Improves the organization and identification of the API.
2020-10-08Cleanup: Simplify transform_orientation_matrix_getGermano Cavalcante
This simplifies obtaining the parameters for internal functions. (switch was complicating a little) Also removes ureachable code.
2020-10-02Cleanup: Move `EditBone` structure definition from `ED` to `BKE` area.Bastien Montagne
Access to this structure will be needed in BKE's armature code.
2020-09-30Cleanup: convert gforge task ID's to phabricator formatValentin
Cleanup old tracker task format to the new. e.g: [#34039] to T34039 Ref D8718
2020-09-25Fix T80937: Changing the contrain axis does not return to the scene orientationGermano Cavalcante
This was the behavior in old versions of blender. During a transformation operation, when pressing a contrain key, the chosen orientation is that of the scene. If you press the same key, the orientation changes to Global or Local. However, if you choose another contrain axis with the orientation changed, the orientation does not return to the set for the scene. It remains Global or Local. Now when changing a contrain axis, no matter what the current orientation is, it always returns to the scene orientation.
2020-09-20Fix T80982: Crash using custom orientations beside the firstCampbell Barton
Regression in f7829787da5c64b3fa715a042c2a45ecd4314676
2020-09-14Fix T80704: bpy.ops.transform.rotate() ignores orient_typeGermano Cavalcante
Remove the condition preventing orientation from being obtained out of the 3d View context. Also pass the `ob` and `obedit` arguments obtained from the caller.
2020-09-14Cleanup: Use 'r_' prefix for return valueGermano Cavalcante
Make it obvious which values are written to.
2020-08-05Fix T77548: Crash when using Add Object Tool with Normal Orientation and ↵Deep Majumder
zero objects in scene The crash is caused by the fact that a NULL Object pointer is passed to calculate the transform orientation, which has been set to normal. A check has been include to detect the same. Differential Revision: https://developer.blender.org/D7951
2020-06-16Cleanup: unused headers, spellingCampbell Barton
2020-06-01Cleanup: unused variable warningCampbell Barton
Also remove unnecessary function return value.
2020-06-01Cleanup: clang-formatCampbell Barton
2020-05-31Fix T77206: G + MMB Doesn't work in Graph Editor if the transform ↵Germano Cavalcante
orientation is set to 'Local' Scene orientation is used only for 3DView.
2020-05-30Fix T77166: Transforming bone with constraint does not follow mouse positionGermano Cavalcante
Bug introduced in rBc75a665c442e
2020-05-30Cleanup: Deduplicate codeGermano Cavalcante
2020-05-26Curves: Implement Handles for selected points onlyAntonio Vazquez
When editing a complex curve is very annoying to have all handles at a time. Also, this is a requirement for the current GSoC Edit Grease Pencil using curves. I have seen that this improvement can be used in any other area of blender, so I have decided to publish the option in the overlay panel.. Reviewed By: fclem, #user_interface, billreynish, Severin Differential Revision: https://developer.blender.org/D7754
2020-05-22Transform: refactoring - unify constraint and default orientationGermano Cavalcante
2020-05-20Transform: Don't negate the z axis of the View orientationGermano Cavalcante
This was so because of the rotate transformation mode but it can make other modes confusing and add unnecessary complexity.
2020-05-11Fix T76630: Crash when changing transform value with Custom OrientationGermano Cavalcante
2020-05-01Transform: Allow orientation change with custom matrix in modalGermano Cavalcante
2020-05-01Fix T76254: 'Normal' Transformation Orientation using GlobalGermano Cavalcante
Issue introduced in rBc57e4418bb85.
2020-04-30Fix T76260: Inverted rotation in non-3d viewsGermano Cavalcante
Issue introduced in rBc57e4418bb85.
2020-04-29Transform Orientation RefactorGermano Cavalcante
- Use `t->spacemtx` as the orientation matrix instead `t->orient_matrix`. - Unify constraint behavior between modal and non-modal. - Simplify code to remove old workarounds and rearrange struct members. This fix T66142 since the actual `orient_type` (in the case `V3D_ORIENT_NORMAL`) is used during Redo instead of always using `V3D_ORIENT_CUSTOM_MATRIX`). Differential Revision: https://developer.blender.org/D7469
2020-04-28Cleanup: Use more descriptive names for functionsGermano Cavalcante
count_set_pose_transflags --> transform_convert_pose_transflags_update count_bone_select --> armature_bone_transflags_update_recursive Also don't mix `BONE_TRANSFORM_MIRROR` with `BONE_TRANSFORM` in transflag. (This was a mess introduced in rBde530a95dc7b).