[Bf-committers] python mathutils api update proposal
Tom Edwards
contact at steamreview.org
Thu Feb 3 20:30:52 CET 2011
I'm importing/exporting a format that uses eulers exclusively, so I
can't avoid them. They are also the default rotation method within Blender.
(And sorry for the confusion, but the actual signs I used were just
examples. All I've ever needed to do is add and multiply by a matrix.)
On 03/02/2011 6:08, Martin Poirier 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