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-07-22Refactor: arrange transform convert functions in 'TransConvertTypeInfo'Germano Cavalcante
Simplify the transform code by bundling the TransData creation, Data recalculation, and special updates into a single struct. So similar functions and parameters can be accessed without special type checks. Differential Revision: https://developer.blender.org/D15494
2022-06-30Transform Snap: nearest face snap mode, snapping options, refactoring.jon denning
This commit adds a new face nearest snapping mode, adds new snapping options, and (lightly) refactors code around snapping. The new face nearest snapping mode will snap transformed geometry to the nearest surface in world space. In contrast, the original face snapping mode uses projection (raycasting) to snap source to target geometry. Face snapping therefore only works with what is visible, while nearest face snapping can snap geometry to occluded parts of the scene. This new mode is critical for retopology work, where some of the target mesh might be occluded (ex: sliding an edge loop that wraps around the backside of target mesh). The nearest face snapping mode has two options: "Snap to Same Target" and "Face Nearest Steps". When the Snap to Same Object option is enabled, the selected source geometry will stay near the target that it is nearest before editing started, which prevents the source geometry from snapping to other targets. The Face Nearest Steps divides the overall transformation for each vertex into n smaller transformations, then applies those n transformations with surface snapping interlacing each step. This steps option handles transformations that cross U-shaped targets better. The new snapping options allow the artist to better control which target objects (objects to which the edited geometry is snapped) are considered when snapping. In particular, the only option for filtering target objects was a "Project onto Self", which allowed the currently edited mesh to be considered as a target. Now, the artist can choose any combination of the following to be considered as a target: the active object, any edited object that isn't active (see note below), any non- edited object. Additionally, the artist has another snapping option to exclude objects that are not selectable as potential targets. The Snapping Options dropdown has been lightly reorganized to allow for the additional options. Included in this patch: - Snap target selection is more controllable for artist with additional snapping options. - Renamed a few of the snap-related functions to better reflect what they actually do now. For example, `applySnapping` implies that this handles the snapping, while `applyProject` implies something entirely different is done there. However, better names would be `applySnappingAsGroup` and `applySnappingIndividual`, respectively, where `applySnappingIndividual` previously only does Face snapping. - Added an initial coordinate parameter to snapping functions so that the nearest target before transforming can be determined(for "Snap to Same Object"), and so the transformation can be broken into smaller steps (for "Face Nearest Steps"). - Separated the BVH Tree getter code from mesh/edit mesh to its own function to reduce code duplication. - Added icon for nearest face snapping. - The original "Project onto Self" was actually not correct! This option should be called "Project onto Active" instead, but that only matters when editing multiple meshes at the same time. This patch makes this change in the UI. Reviewed By: Campbell Barton, Germano Cavalcante Differential Revision: https://developer.blender.org/D14591
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
2022-01-17Cleanup: deduplicate condition in transform curve codeGermano Cavalcante
Checking `t->around` and `nu->pntsv` does not need to be done in 2 places.
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-22Cleanup: Spelling MistakesLeon Zandman
This patch fixes many minor spelling mistakes, all in comments or console output. Mostly contractions like can't, won't, don't, its/it's, etc. Differential Revision: https://developer.blender.org/D11663 Reviewed by Harley Acheson
2021-05-21Transform: use ID_RECALC_GEOMETRY flag when updating object dataCampbell Barton
While this doesn't provide any noticeable benefits at the moment, it allows for geometry updates skipping copy-on-write in edit-mode in the future.
2021-04-24Cleanup/Refactor: Move FOREACH_TRANS_DATA_CONTAINER to outside of some functionsGermano Cavalcante
So we can reuse the same loop for different corrections.
2021-04-24Cleanup: Add a common prefix for some transform functionsGermano Cavalcante
2021-04-01Curve: Remove 'CU_2D' flag used for nurbsGermano Cavalcante
This fixes T86440 As the CU_2D flag is set for nurbs, a Curve can have 2D nurbs mixed with 3D. But the UI does not allow this mixing. It updates all nurbs to 2D or 3D when set. So remove this specific flag for nurbs. This may break old files, since 2D curves with mixed 3D are now set as 3D. Differential Revision: https://developer.blender.org/D10738
2021-02-20Cleanup: doxygen sectionsCampbell Barton
2021-02-05Cleanup: correct spelling in commentsCampbell Barton
2021-01-08Fix T84453: Crash bezier curves transfromGermano Cavalcante
The pointer allocated to the `TransData` was being incorrectly incremented, causing misalignment and consequently `heap-buffer-overflow`. Because of this, `TD_NOTCONNECTED` was being set in a strange way that did not correspond to other types of `TransData`. The solution is to not increment the `TransData` pointer and set `TD_NOTCONNECTED` only for "unconnected" segments. The code was also a bit deduplicated.
2020-11-06Cleanup: use ELEM macroCampbell Barton
2020-10-08Cleanup: Move transform_orientations functions to separate headerGermano Cavalcante
Improves the organization and identification of the API.
2020-07-15Fix T78909: Curve-edit proportional connected-only brokenSebastian Parborg
Now it calculates the actual distance when traveling along the curve. I addition to this, it also now supports cyclic curves. Reviewed By: Campbell Differential Revision: http://developer.blender.org/D8293
2020-06-30Cleanup: spellingCampbell Barton
2020-06-16Cleanup: unused headers, spellingCampbell Barton
2020-06-16Fix T61777: Proportional editing doesn't work with multi edit-modeAlan Troth
2020-06-14Fix T76563: Transforming an auto-aligned point won't set it alignedCampbell Barton
Correct previous commit that was checking values not yet initialized, causing T77796.
2020-06-08Cleanup: Move each recalcData to their respective TransData fileGermano 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-15Fix T76563: Transforming an auto-aligned point won't set it alignedCampbell Barton
When local origins are used or a single control point is selected, change the handle types from auto to aligned.
2020-04-03Code Quality: Replace for loops with LISTBASE_FOREACHDalai Felinto
Note this only changes cases where the variable was declared inside the for loop. To handle it outside as well is a different challenge. Differential Revision: https://developer.blender.org/D7320
2020-04-03Cleanup: Including "BLI_listbase.h" for LISTBASE_FOREACH macroDalai Felinto
These headers are not needed right away, but will be in the upcoming commit.
2020-02-15Cleanup: redundant headersCampbell Barton
2019-09-05Transform: Split transform_conversions into multiple files.mano-wii
Part of T68836 `transform conversions.c` is a file that is getting too big (almost 10,000 lines). So it's a good idea to split it into smaller files. differential revision: https://developer.blender.org/D5677