[Bf-committers] python mathutils api update proposal

bartius crouch bartius.crouch at gmail.com
Thu Feb 3 19:50:45 CET 2011


Good proposal. I especially like the part on separating Modify In-Place
Methods.

Cheers,
Bart (Crouch)

On Thu, Feb 3, 2011 at 7:08 PM, Martin Poirier <theeth at yahoo.com> wrote:

> 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
> >
>
>
> _______________________________________________
> 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