Commit Graph

175 Commits

Author SHA1 Message Date
90e9970094 change mat4_to_eulO, mat3_to_eulO to calculate 2 rotations and return the smallest one.
mat4_to_eul & mat3_to_eul are already working this way.

Without this we get problems with constraints, eg:
 rotation on the Y axis over 90d can be represented by setting the X and Z to -PI, Y would decrease to 0 (infact 180d).
2010-10-30 19:29:11 +00:00
082e9b329d Fix for [#24458] Problem with Axis Angle rotation
* Added checks to handle zero axis vector.
2010-10-30 17:42:08 +00:00
Nathan Letwory
6540bb1375 Add some missing const's 2010-10-22 10:17:55 +00:00
2fe940f8df Fix for snapping pose bones with axis-angle rotation.
- armature_mat_pose_to_bone() was missing axis-angle check.
- added loc_axisangle_size_to_mat4() for completeness.
- use 'const' prefix where possible in math rotation functions.
2010-10-22 03:56:50 +00:00
bcac1def4c eulO_to_quat wasn't functional for XZY, YXZ, ZYX rotation orders.
it also modified the input rotation value which isn't expected for these functions.
2010-10-22 03:27:01 +00:00
c79e054538 quat_apply_track had incomplete comments 2010-10-08 07:36:33 +00:00
65b0893df0 bugfix [#21483] Twisting when Dupliframing a Surface Circle (Nurbs) along a Curve.
use the curve's twist for follow path constraint and parent-path.
2010-10-08 07:29:08 +00:00
5e232548d3 fix for error in track rotation, found while looking into adding an up axis to this function. 2010-10-08 03:50:01 +00:00
c6e2e7aa93 move tracking functions into math_rotation.c (no functional changes) 2010-10-08 02:08:11 +00:00
b57e09544a Fix for [#21875] Copy rotation only on y axies 2010-09-24 17:49:33 +00:00
728b713d86 use more BLI math functions. 2010-08-15 15:14:08 +00:00
c04850ec06 python mathutils change
quat * quat was returning the dot product (a float), rather then the cross product.
 Use BLI_math's mul_qt_qtqt() function.
2010-08-02 00:08:01 +00:00
e4a7087982 bugfix [#22836] Alt+MMB view alignment don't respect all axes directions
also moved rotation_between_quats_to_quat into BLI_math from python mathutils.
2010-07-26 00:11:14 +00:00
708667c6f6 minor mathutils update
- docstring for Euler.rotate
- rotate_eul, use upper case in Py and C. 
- use less verbose repr method.
2010-04-25 03:34:16 +00:00
3afd8d6cc8 move camera lens/angle conversion to BLI_math 2010-04-17 08:55:31 +00:00
1e9bf0cfdb spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text) 2010-03-22 09:30:00 +00:00
07b547980d remove unused includes for blenlib, left ifdef's for non linux os's alone. 2010-03-20 18:52:03 +00:00
b7e7a0140b Fix dual quaternions flipping in case of stretched (not scaled) bones. 2010-02-22 18:53:46 +00:00
02e7871149 Mathutils API: Euler support for rotation order.
Examples.
 euler = Euler(1, 2, 3)
 euler.order = 'ZXY'
 
 euler = matrix.to_euler('XZY')


Still missing rna support. this still wont give the right order, defaulting to XYZ.
 eul = object.rotation_euler
2010-02-20 19:49:04 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
478dc000b3 * Mathutils attributes documented - http://www.blender.org/documentation/250PythonDoc/Mathutils.html
* Vector.difference() needed normalized vectors
* bpy.DEUBG -> bpy.app.debug
2010-01-27 21:33:39 +00:00
fde4686d77 barycentric transform utility geometry function.
From 2 triangles and 1 point, the relative position between the point and the first triangle is applied to the second triangle to find the target point.
the barycentric weights are calculated in 2D space with a signed area so values outside the triangle bounds are supported.

wrapped by python:
 pt_to = Geometry.BarycentricTransform(pt_from, t1a, t1b, t1c, t2a, t1b, t1c)

NOTE: 
- moved some barycentric weight functions out of projection painting into the math lib.
- ended up making some of the math functions use const args.
TODO:
- support exceptional cases. zero area tries and similar.
2009-12-27 01:32:58 +00:00
4617bb68ba Math Lib
* Pre-conversion commit removing old arithb.c code, this will not compile,
  next commit fixes that.
2009-11-10 20:40:18 +00:00
385875632d Math Lib
* Fix remaining issues before conversion.
* Inline various vector functions, currently enabled for all platforms.
  I expect this to work in GCC/MSVC at least, if other platforms don't
  support it, #ifdef's can be added.
2009-11-10 19:13:05 +00:00
60ea745613 Math Lib Reorganization
* New header and source files.
* Still need a few tweaks before switching code to use them.
2009-11-09 22:42:41 +00:00