How would it decide if the return value is euler or matrix? The order of argument (that seems dangerous since multiplication is not commutative).
Martin --- On Thu, 2/3/11, Tom Edwards <[email protected]> wrote: > From: Tom Edwards <[email protected]> > Subject: Re: [Bf-committers] python mathutils api update proposal > To: "bf-blender developers" <[email protected]> > Received: Thursday, February 3, 2011, 5:31 PM > 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<[email protected]> > 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 > >> [email protected] > >> http://lists.blender.org/mailman/listinfo/bf-committers > >> > > > > > _______________________________________________ > Bf-committers mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-committers > _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
