28a581d6cb3f05f3972138a22bde463e251776c1
This patch re-implement the whole C rotation API into a more type oriented C++ API. See the #104444 design task for more details about the goals. The list of C to C++ equivalent syntax can be found attached. This adds `AngleRadian`, `AngleCartesian` and `AngleFraction` as different angle types with the same interface. Each of them have specific benefits / cons. See inline documentation for detail. This adds `Axis` and `AxisSigned` class wrapped enums to increase type safety with axes selection. This adds `CartesianBasis` to represent orthonormal orientations. Added a weight accumulation to dual-quaternions to make normalization error proof. Creates the overhead of summing the total weight twice (which I think is negligible) and add an extra float. Named the dual-quaternion `DualQuaternion` to avoid naming ambiguity with `DualQuat` which come up quite often (even with namespace). Pull Request: https://projects.blender.org/blender/blender/pulls/104941
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
