[Bf-committers] python mathutils api update proposal

Tom Edwards contact at steamreview.org
Thu Feb 3 23:31:06 CET 2011


That is more or less what I do. There is no reason I can see why it 
shouldn't happen implicitly.

On 03/02/2011 10:19, Campbell Barton wrote:
> Euler() * 0.5, makes sense to halve rotation, but from reading down
> you're mainly interested in: Euler() * Matrix().
>
> This could be supported, internally doing...
>    eul = Euler()
>    (eul.to_matrix() * Matrix()).to_euler(eul.order)
>
> I'd be interested to know if there are many other math libs which do
> Euler * Matrix since there are enough de-facto standard with
> C++/python libs like mathutils I rather not define new ones.
>
> On Thu, Feb 3, 2011 at 1:04 PM, Tom Edwards<contact at steamreview.org>  wrote:
>> 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