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
2020-07-03Cleanup: Blendkernel, Clang-Tidy else-after-return fixes (incomplete)Sybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/blenkernel` module. Not all warnings are addressed in this commit. No functional changes.
2020-06-12Cleanup: split object data deform functions into their own filesCampbell Barton
Move armature/curve functions into their headers, they were previously in BKE_lattice.h
2020-06-12Cleanup: use doxy sections for armature.cCampbell Barton
2020-06-12Cleanup: minor changes to deform functionsCampbell Barton
- Use 'float (*)[3]' to avoid casts. - Remove unnecessary float[3] copy in gpencil_deform_verts. - Use MEM_SAFE_FREE - Use const arguments.
2020-06-12Cleanup: split deform functions that take target object-dataCampbell Barton
Prefer meaningful function names over redundant NULL arguments. Also clarify variable names as it wasn't obvious the object-data is part of the object target.
2020-06-12Cleanup: use BKE_ prefix for deform functionsCampbell Barton
2020-05-19Merge branch 'blender-v2.83-release'Philipp Oeser
2020-05-19Fix T76689: Armature layers not indicating the existence of bonesSybren A. Stüvel
From what I can see, there are two issues at play in {T76689} and its merged-in report {T76590}: - In Blender ≤ 2.79 the bone layer dots were updated in the draw code. This ensured the info was up to date before drawing. This is no longer possible, as the drawing code uses evaluated objects, and those should not be written to. This has been addressed in rB709f126e8143 by calling the update function explicitly in various places in the code. The problem is that this wasn't added to all necessary spots. - When in edit mode, changes are made to the edit bones but not to the 'actual' bones (this is synced when exiting edit mode). This causes undo to mess up the layer indicators. I think both issues can be addressed by having the dependency graph update the used layer info as part of the armature evaluation. This will make the undo system work properly, and allows the removal of some `BKE_armature_refresh_layer_used()` from various places. There is still the issue that there are two functions (`BKE_armature_refresh_layer_used()` and `ED_armature_edit_refresh_layer_used()`) that are both responsible for updating `bArmature::layer_used`. This is a trickier thing to solve, though, as the definition of the `EditBone` struct resides in the armature editor module. This means that blenkernel can't iterate over edit bones, but on the other hand the dependency graph shouldn't call any editor functions either. This is why I left the `ED_armature_edit_refresh_layer_used()` calls untouched. The downside of recalculating `layer_used` from the dependency graph (at least in the way that I did it now) is that it is called every time a user moves a bone in pose mode. This frequency of updates is not necessary. Differential Revision: https://developer.blender.org/D7709
2020-05-12Refactor: Move armature foreach_id to new IDTypeInfo structure.Bastien Montagne
2020-04-06Fix T75418: Outliner Blender File view has UNKNOWN category for armaturesPhilipp Oeser
Typo in rB57daecc2cf88. Maniphest Tasks: T75418 Differential Revision: https://developer.blender.org/D7346
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: Animation, move AnimData API to `anim_data.c`/`BKE_anim_data.h`Sybren A. Stüvel
The `BKE_animsys.h` and `anim_sys.c` files already had a an "AnimData API" section. The code in that section has now been split off, and placed into `BKE_anim_data.h` and `anim_data.c`. All files that used to include `BKE_animsys.h` have been adjusted to only include the animation headers they need (sometimes none). No functional changes.
2020-04-03Cleanup: split `BKE_anim.h` and `anim.c` into smaller piecesSybren A. Stüvel
The files are now split up into the following sections: - `BKE_anim_path.h` and `anim_path.c` for path/curve functions. - `BKE_anim_visualization.h` and `anim_visualizationanim_path.c` for animation visualization (mostly motion paths). - `BKE_duplilist.h` for DupliList function declarations. These were already implemented in `object_dupli.c`, so they were rather out of place being declared in `BKE_anim.h` in the first place. No functional changes.
2020-04-03Cleanup: use tern 'sync' instead of 'synchronization' for function namesCampbell Barton
This is a common, unambiguous abbreviation already used throughout the code-base.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-11Cleanup: spellingCampbell Barton
2020-03-09Cleanup: Move `BKE_animdata_free()` call out of each IDType free data.Bastien Montagne
This has been long standing TODO... Note that remaining usages of BKE_xxx_delete should all be carefully checked for and utilmately nuked in favor of `BKE_id_delete()`, think we still have quiet a few bugs hidden in those (code seems to usually assume those functions do a full ID deletion, which is not the case).
2020-03-06Cleanup: Armature: Move to IDTypeInfo, and remove unused BKE API.Dalai Felinto
2020-03-06Cleanup: use 'BKE_' prefix for BKE_deform API callsCampbell Barton
- Use 'BKE_object_defgroup' prefix for object functions. - Rename 'defvert_verify_index' to 'defvert_ensure_index' since this adds the group if it isn't found.
2020-03-06Cleanup: spellingCampbell Barton
2020-03-04Refactor ID make local to use a single flag parameter.Bastien Montagne
Instead of using anonymous booleans flags, also allows to keep the same behavior in all cases, without needing special handling from calling code for our beloved oddballs object proxies...
2020-03-04Cleanup: ID make local: remove `id_in_bmain` argument.Bastien Montagne
This info is now stored in ID tags themselves, so no need to pass an extra anonymous boolean parameter around, yay!
2020-03-04Cleanup: Rename 'make local' functions to new scheme.Bastien Montagne
Also removed some only used locally from the header, `BKE_lib_id.h` is already way too big, no need to overload it with unused things.
2020-02-11Fix T56108: Crash editing corrupted vertex groupsCampbell Barton
While the file in this report had corrupted values, this is avoidable without adding any extra overhead. Use unsigned vertex group indices since we don't need negative values, this is an alternative to checking they aren't negative in many places. Vertex group values over INT_MAX is still considered invalid, so any accidental unsigned wrapping won't be silently ignored.
2020-02-10Cleanup/refactor: Rename `BKE_library` files to `BKE_lib`.Bastien Montagne
Note that `BKE_library.h`/`library.c` were renamed to `BKE_lib_id.h`/`lib_id.c` to avoid having a too generic name here. Part of T72604.
2020-01-19Fix T73117: B-Bone twist weirdness in chains with sharp bends.Alexander Gavrilov
When computing the roll value coming from the handle bone, the code was using some strange unexplained math. It probably works fine when the difference with the 'zero roll' orientation is pure twist, like is the case when called from mat3_to_vec_roll. However, it appears to break when significant swing is involved. The issue is fixed by using the proper Swing+Twist decomposition utility function that was added in a recent version for drivers.
2019-12-06Cleanup: clang-formatCampbell Barton
2019-12-03Fix T70378: Grease pencil armature modifier not normalizing weights as expected.Jean First
The function armature_vert_task had a special case for Vertex Paints in Grease Pencil data. This patch removes this special case. Not sure why it was needed in the first place. Reviewed By: antoniov Maniphest Tasks: T70378 Differential Revision: https://developer.blender.org/D6348
2019-11-29Cleanup: comments, redundant normalizeCampbell Barton
2019-11-28Fix T71990: Apply bone transform results differ in edit/object modeCampbell Barton
When negative scaled matrices were used, the roll calculation didn't match, when calling Armature.transform().
2019-11-24Cleanup: doxygen commentsCampbell Barton
Also correct some outdated symbol references, add missing 'name' commands.
2019-11-21Bones: implement a new Aligned Inherit Scale mode.Alexander Gavrilov
Implement one more way of inheriting scale from the parent bone, as an addition to the choices introduced in D5588. This new mode inherits parent scale as if the parent and child were not rotated relative to each other, always applying parent X scale to child X scale and so forth. It is quite natural for connected bone chains with coherent roll, like limbs or tentacles, falling roughly between Average and Fix Shear in how closely the parent scaling is followed. Currently this can be achieved by using Inherit Scale: None plus a Copy Scale with Offset from parent on the child; however, this is cumbersome, and loses the distinction between true local and inherited scale in the child's Local space. This new mode also matches how the Before/After Original mix modes work in the Copy Transforms constraint. On the technical side this mode requires adding a right side scale matrix multiplication into the Local<->Pose conversion, in addition to the existing two left side matrices used for location and orientation. Differential Revision: https://developer.blender.org/D6099
2019-09-19Fix buffer overflow using bbone segment interpolationSergey Sharybin
Do proper segment clamping to a proper value. Thanks Brecht for pair-coding!
2019-09-14Cleanup: use const args, variablesCampbell Barton
2019-09-04Armature: add Inherit Scale options to remove shear or average the scale.Alexander Gavrilov
As an inherent property of matrix-based transformation math, non- uniform scaling of a parent bone induces shear into the transform matrix of any rotated child. Such matrices cannot be cleanly decomposed into a combination of location/rotation/scale, which causes issues for rigging and animation tools. Blender bones have options to exclude rotation and/or scale from the inherited transformation, but don't have any support for removing the often undesired shear component. That goal requires replacing simple parenting with a combination of multiple bones and constraints. The same is true about the goal of inheriting some scale, but completely avoiding shear. This patch replaces the old Inherit Scale checkbox with a enum that supports multiple options: * Full: inherit all effects of scale, like with enabled Inherit Scale. * Fix Shear: removes shear from the final inherited transformation. The cleanup math is specifically designed to preserve the main axis of the bone, its length and total volume, and minimally affect roll on average. It however will not prevent reappearance of shear due to local rotation of the child or its children. * Average: inherit uniform scale that represents the parent volume. This is the simplest foolproof solution that will inherit some scale without ever causing shear. * None: completely remove scale and shear. * None (Legacy): old disabled Inherit Scale checkbox. This mode does not handle parent shear in any way, so the child is likely to end up having both scale and shear. It is retained for backward compatibility. Since many rigging-related addons access the use_inherit_scale property from Python, it is retained as a backward compatibility stub that provides the old functionality. As a side effect of reworking the code, this also fixes a matrix multiplication order bug in the Inherit Rotation code, which caused the parent local scale to be applied in world space. In rigger opinion this option is useless in production rigs, so this fix should not be a problem. Reviewers: brecht Differential Revision: https://developer.blender.org/D5588
2019-08-23Armature: add BKE_armature_transformCampbell Barton
ED_armature_transform uses edit-mode conversion which re-creates bones. Needed for efficiently transforming object-data in object-mode.
2019-08-23Cleanup: const args, naming, doxy groups, clang-formatCampbell Barton
2019-08-14Cleanup: move trailing comments to avoid wrapping codeCampbell Barton
Some statements were split across multiple lines because of their trailing comments. In most cases it's clearer to put the comments above.
2019-07-30BLI_task: Cleanup: rename some structs to make them more generic.Bastien Montagne
TLS and Settings can be used by other types of parallel 'for loops', so removing 'Range' from their names. No functional changes expected here.
2019-07-29Fix T67777: Linked rig crashes Blender 2.8 RC3 on File|New.Bastien Montagne
Sync back between proxy armature pose and linked one was not properly clearing the posebone runtime data, ending up with shared memory between both (direct cause of reported crash), and probably some other nasty issues. While this crash is not critical in itself, I would suggest to add this fix to 2.80 branch, as it is super-safe and simple, and is probably fixing some other un-reported issues?
2019-07-26Fix T67507: Set origin on armature moves incorrectly parented objectsSergey Sharybin
Need to copy changes from original armature to evaluated one prior to BKE_pose_where_is(), otherwise the pose matrix in pose channels will not be correct. Can not use dependency graph update here, since we must not re-evaluate possible dependencies of the changed armature. Reviewers: brecht Reviewed By: brecht Maniphest Tasks: T67507 Differential Revision: https://developer.blender.org/D5331
2019-07-17Fix T59713: Armature layer dots not updated on changesmano-wii
`layer_used` runtime data, which controls the drawing of dots in the UI was not getting refreshed properly. This used to happen in the drawing code, but was no longer working for reasons explained in: {rB2b09062defa093a243b5fe64b099accb07b440a3} The solution was to update each layer manually in the operators: * ARMATURE_OT_bone_primitive_add * ARMATURE_OT_delete * ARMATURE_OT_dissolve * ARMATURE_OT_fill * ARMATURE_OT_merge * ARMATURE_OT_separate * ARMATURE_OT_bone_layers * POSE_OT_bone_layers Differential Revision: https://developer.blender.org/D5281
2019-07-11Cleanup: clang-formatCampbell Barton
2019-07-10Fix T66567: Weight painting crashes with specific meshSergey Sharybin
Seems the deform group index and deform vertices went out of sync somehow. Added extra NULL pointer check, which seems to be safe and matches checks in other places in the neighbourhood.
2019-05-16Refactor: Simplify ID Property freeingJacques Lucke
This also makes `IDP_CopyProperty` the "opposite" of `IDP_FreeProperty`, which is what I'd expect. Two refactoring steps: * rename IDP_FreeProperty to IDP_FreePropertyContent * new IDP_FreeProperty function that actually frees the property Reviewers: brecht Differential Revision: https://developer.blender.org/D4872
2019-05-14Armature: implement universal hash table lookup of Bone objects by name.Alexander Gavrilov
Since drivers on Bone properties are really supposed to be stored in Armature data and access bones via its bones[] collection, this lookup path should work efficiently. Mass lookup of bones by name was already done through hashes, but they were built temporarily every time that was needed. This simply replaces it with a common hash table computed immediately after file load, copy, or Edit to Object mode switch.
2019-05-01Modifiers: support parallelism in Armature and Lattice Deform.Alexander Gavrilov
This partially mitigates the performance drop in Spring 02_055_A.anim caused by dependency changes in D4715. Differential Revision: https://developer.blender.org/D4753
2019-05-01BKE_pchan: add BKE_pchan_rot_to_mat3Campbell Barton
Useful to get the un-scaled rotation from a pose channel.
2019-04-28Fix T63794: duplicating an armature clears B-Bones' custom handle references.Tomoaki Kawada
This patch fixes T63794 by updating duplicated bones' custom handle references to point to the new armature's bones. The problem occurs because B-Bones of a duplicated armature keep pointing to the old armature's bones. The references are cleared upon entering Edit Mode because there are no matching `EditBone` for such bones, and `find_ebone_link` just returns `NULL` in such cases. Reviewers: mont29, angavrilov Maniphest Tasks: T63794 Differential Revision: https://developer.blender.org/D4726
2019-04-27Cleanup: comments (long lines) in blenkernelCampbell Barton