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-10-10Cleanup: remove unnecessary commentsCampbell Barton
2020-10-03Cleanup: Remove/replace C standard library assert() and header usagesJulian Eisel
We have our own assert implementation, `BLI_assert()` that is prefered over the C standard library one. Its output is more consistent across compilers and makes termination on assert failure optional (through `WITH_ASSERT_ABORT`). In many places we'd include the C library header without ever accessing it.
2020-09-04Cleanup: Clang-Tidy readability-inconsistent-declaration-parameter-name fixSebastian Parborg
No functional changes
2020-08-08Cleanup: replace sizeof division with ARRAY_SIZE macroCampbell Barton
2020-08-07Cleanup: Blenlib, 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/blenlib` module. Not all warnings are addressed in this commit. No functional changes.
2020-07-01Cleanup: spellingCampbell Barton
2020-06-27Docs: correct invalid doxygen params & referencesCampbell Barton
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-09Cleanup: Replace ABS/SQUARE/CUBE with function callsSergey Sharybin
While it might be handy to have type-less functionality which is similar to how C++ math is implemented it can not be easily achieved with just preprocessor in a way which does not have side-effects on wrong usage. There macros where often used on a non-trivial expression, and there was at least one usage where it was causing an actual side effect/bug on Windows (see change around square_f(sh[index++]) in studiolight.c). For such cases it is handy to have a function which is guaranteed to have zero side-effects. The motivation behind actually removing the macros is that there is already a way to do similar calculation. Also, not having such macros is a way to guarantee that its usage is not changed in a way which have side-effects and that it's not used as an inspiration for cases where it should not be used. Differential Revision: https://developer.blender.org/D7051
2019-11-26Fix quaternion compatibility functionCampbell Barton
Use closest quaternion instead of only checking w sign flipping, which didn't catch all cases. T
2019-11-24Cleanup: doxygen commentsCampbell Barton
Also correct some outdated symbol references, add missing 'name' commands.
2019-09-05Cleanup: use backslash for doxygen commandsCampbell Barton
2019-09-03Drivers: support decomposing rotation into swing followed by twist.Alexander Gavrilov
In order to correctly drive corrective shape keys from a freely rotating organic joint it is very often found necessary to decompose the rotation into separate bending and twisting motions. This type of decomposition cannot be reproduced by any Euler order or a single quaternion. Instead this is done by using a helper bone with a Damped Track constraint aimed at the tail of the control to pick up the bending, and its helper child with Copy Transforms to separate the twist. Requiring two additional bones to drive a shape key or a correction bone seems inconvenient, so this implements the necessary math as new options in the recently introduced Rotation Mode dropdown of the Transform Channel driver variable type. The data is also accessible as a Transformation constraint input. The output is in the form of Quaternion-derived 'pseudo-angles', which for `Swing and Y Twist` would represent the following: * W: true bend angle, independent of bend direction. * Y: true twist angle. * X, Z: pseudo-angles representing the proportion of bending around X/Z. Reviewers: brecht Differential Revision: https://developer.blender.org/D5651
2019-08-26Cleanup: use BLI_assertCampbell Barton
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-07Cleanup: add comments about dual quaternion scale handling.Brecht Van Lommel
Ref T63327
2019-03-27Cleanup: style, use braces for blenlibCampbell Barton
2019-03-19BLI_math: use fallback for compatible quaternion calculationCampbell Barton
Copy the new value when the compatible quaternion isn't usable.
2019-03-19BLI_math: add utility to calculate compatible quaternionsCampbell Barton
2019-03-19Cleanup: comment blocksCampbell Barton
2019-02-26BLI_math: quat_to_axis_angle was zeroing the axisCampbell Barton
When there was no rotation the axis was zerod, while not exactly a bug, it means changing the angle does nothing and all axis-angle values are initialized with Y=1, use this convention when resetting the axis too.
2019-02-25Cleanup: use const args for BLI_math_rotationCampbell Barton
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-03Cleanup: trailing commasCampbell Barton
Needed for clan-format not to wrap onto one line.
2019-02-02Cleanup: remove author/date info from doxy headersCampbell Barton
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-01-15Cleanup: comment line length (blenlib)Campbell Barton
Prevents clang-format wrapping text before comments.
2018-12-23BLI_math_rotation: properly name the quaternion power function.Alexander Gavrilov
"angular mult factor" is a completely unintelligible description for a function that raises a unit quaternion to the scalar power.
2018-12-12Merge branch 'master' into blender2.8Campbell Barton
2018-12-12Cleanup: use colon separator after parameterCampbell Barton
Helps separate variable names from descriptive text. Was already used in some parts of the code, double space and dashes were used elsewhere.
2018-11-14Merge branch 'master' into blender2.8Campbell Barton
2018-11-14Cleanup: comment block tabsCampbell Barton
2018-11-06Implement an Armature constraint that mimics the modifier.Alexander Gavrilov
The main use one can imagine for this is adding tweak controls to parts of a model that are already deformed by multiple other major bones. It is natural to expect such locations to deform as if the tweaks aren't there by default; however currently there is no easy way to make a bone follow multiple other bones. This adds a new constraint that implements the math behind the Armature modifier, with support for explicit weights, bone envelopes, and dual quaternion blending. It can also access bones from multiple armatures at the same time (mainly because it's easier to code it that way.) This also fixes dquat_to_mat4, which wasn't used anywhere before. Differential Revision: https://developer.blender.org/D3664
2017-12-19Math Lib: signed versions of quaternion angleCampbell Barton
There was no simple way to get the shortest quaternion angle.
2017-06-09Math Lib: Add mat3_from_axis_conversion_singleCampbell Barton
Single axis version of mat3_from_axis_conversion, when the second axis isn't important (orienting an arrow for eg).
2017-04-20Docs: move note (was mixed up)Campbell Barton
2016-11-25Math Lib: rotate matrix cleanupCampbell Barton
- Remove 'rotate_m2', unlike 'rotate_m4' it created a new matrix duplicating 'angle_to_mat2' - now used instead. (better avoid matching functions having different behavior). - Add 'axis_angle_to_mat4_single', convenience wrapper for 'axis_angle_to_mat3_single'. - Replace 'unit_m4(), rotate_m4()' with a single call to 'axis_angle_to_mat4_single'.
2016-07-08Cleanup: use normalize_v#_lengthCampbell Barton
2015-11-12Correct error in own matrix normalize commitCampbell Barton
2015-10-23BLI_math: add mat3_normalized_to_* functionsCampbell Barton
Many uses of matrices for rotation keep them normalized, so no need to normalize each time.
2015-10-23Cleanup: remove redundant math callsCampbell Barton
2015-10-23BLI_math: add invert_qt_normalizedCampbell Barton
When the quat is known to be unit length, so we can avoid scaling (just conjugate_qt which asserts on non unit quats).
2015-10-22BLI_math: axis_angle_to_quat_singleCampbell Barton
Useful to avoid defining a vector for an axis-aligned rotation. Matches axis_angle_to_mat3_single behavior.
2015-09-18Use squared length where possibleCampbell Barton
2015-05-01Fix T43711: dual quaternion deform bug with shearing in deform matrix.Brecht Van Lommel
This also increases the tolerances in is_orthogonal / is_orthonormal functions, which were much too low for practical purposes.
2015-04-08Partial fix for T44219Joshua Leung
Prevent crashes from out of bounds array access if an invalid rotation mode is passed to the euler rotation blenlib calculations.
2015-04-04Cleanup: redundant normalize in expmap_to_quatCampbell Barton
2015-02-01mathutils: added exponential map to QuaternionSybren A. Stüvel
Added conversion to and from exponential map representation. This representation is useful for interpolation of > 2 quaternions, or in PD controllers. Implementation in C functions quat_to_expmap, quat_normalized_to_expmap, and expmap_to_quat with Python API, unit tests and documentation. Added Quaternion.to_exponential_map() and Quaternion(3-vector) to Python API. Reviewers: campbellbarton Projects: #bf_blender Differential Revision: https://developer.blender.org/D1049
2014-11-20Fix T42638: Roll angle inconsistent flip in edit mode.Bastien Montagne
Basically, `angle_compat_rad()` was completely broken - example of result it could produce: | new angle | compat angle | result | -0.000000 | 3.141593 | -> 3.141593 ... Where 0.0 (or 2 * PI) would be expected!