[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