[Bf-committers] python mathutils api update proposal

Campbell Barton ideasman42 at gmail.com
Thu Feb 3 12:08:37 CET 2011


Here are some proposed changes to the mathutils API I'd like to make
to avoid some confusing aspects of the api since its now used for all
RNA math types and GameEngine I think it would be good to make
improvements in this area.

Proposal:
  http://wiki.blender.org/index.php/Dev:2.5/Source/Python/Mathutils

If this is acceptable I can make these changes and update scripts.

I'm keeping a log of all mathutils changes since 2.4x in mathutils.c

To get up to speed on changes so far:

/* Note: Changes to Mathutils since 2.4x
 * use radians rather then degrees
 * - Mathutils.Vector/Euler/Quaternion(), now only take single
sequence arguments.
 * - Mathutils.MidpointVecs --> vector.lerp(other, fac)
 * - Mathutils.AngleBetweenVecs --> vector.angle(other)
 * - Mathutils.ProjectVecs --> vector.project(other)
 * - Mathutils.DifferenceQuats --> quat.difference(other)
 * - Mathutils.Slerp --> quat.slerp(other, fac)
 * - Mathutils.Rand: removed, use pythons random module
 * - Mathutils.RotationMatrix(angle, size, axis_flag, axis) -->
Mathutils.RotationMatrix(angle, size, axis); merge axis & axis_flag
args
 * - Matrix.scalePart --> Matrix.scale_part
 * - Matrix.translationPart --> Matrix.translation_part
 * - Matrix.rotationPart --> Matrix.rotation_part
 * - mathutils.Matrix.Shear(plane, fac, size), now takes a pair of
floats for 3x3 or 4x4 shear factor.
 * - toMatrix --> to_matrix
 * - toEuler --> to_euler
 * - toQuat --> to_quat
 * - Vector.toTrackQuat --> Vector.to_track_quat
 * - Quaternion * Quaternion --> cross product (not dot product)
 * - Euler.rotate(angle, axis) --> Euler.rotate_axis(axis, angle)
 * - Euler.unique() *removed*, not a standard function only toggled
different rotations.
 *
 * moved into class functions.
 * - Mathutils.RotationMatrix -> mathutils.Matrix.Rotation
 * - Mathutils.ScaleMatrix -> mathutils.Matrix.Scale
 * - Mathutils.ShearMatrix -> mathutils.Matrix.Shear
 * - Mathutils.TranslationMatrix -> mathutils.Matrix.Translation
 * - Mathutils.OrthoProjectionMatrix -> mathutils.Matrix.OrthoProjection
 *
 * Moved to Geometry module: Intersect, TriangleArea, TriangleNormal,
QuadNormal, LineIntersect
 * - geometry.Intersect -> intersect_ray_tri
 * - geometry.ClosestPointOnLine -> intersect_point_line
 * - geometry.PointInTriangle2D -> intersect_point_tri_2d
 * - geometry.PointInQuad2D -> intersect_point_quad_2d
 * - geometry.LineIntersect -> intersect_line_line
 * - geometry.LineIntersect2D -> intersect_line_line_2d
 * - geometry.BezierInterp -> interpolate_bezier
 * - geometry.TriangleArea -> area_tri
 * - geometry.QuadNormal, TriangleNormal -> normal
 * - geometry.PolyFill -> tesselate_polygon
 * - geometry.BoxPack2D -> box_pack_2d
 * - geometry.BarycentricTransform -> barycentric_transform
 */

-- 
- Campbell


More information about the Bf-committers mailing list