[Bf-committers] python mathutils api update proposal

Martin Poirier theeth at yahoo.com
Thu Feb 3 19:08:57 CET 2011


Those mathematical operations aren't defined on eulers triplets.

Unless you really really know what you are doing, use quats or matrices to manipulate rotations.

Martin


--- On Thu, 2/3/11, Tom Edwards <contact at steamreview.org> wrote:

> From: Tom Edwards <contact at steamreview.org>
> Subject: Re: [Bf-committers] python mathutils api update proposal
> To: "bf-blender developers" <bf-committers at blender.org>
> Received: Thursday, February 3, 2011, 8:04 AM
> Could we please have maths operator
> (i.e. * / +) support for eulers? You 
> can't do anything with them currently, you have to cast to
> vector then 
> back again!
> 
> On 03/02/2011 11:08, Campbell Barton wrote:
> > 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
> >   */
> >
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
> 




More information about the Bf-committers mailing list