Hey Chad, that is a beatifull peace of code!

Could you please tell me what are those functions <value>.negateIt() and
<value>.scaleIt() ?
Properties of python numbers I guess ?! Could you point me a doc link ?

Again, thanks for sharing !

On Tue, Oct 4, 2011 at 6:50 PM, Chad Vernon <[email protected]> wrote:

> You could implement slerp function:
>
> import math
> def quaternionSlerp(a, b, t):
>     cos = quaternionDot(a, b)
>     if cos < 0.0:
>         cos = quaternionDot(a, b.negateIt())
>     theta = math.acos(cos)
>     sin = math.sin(theta)
>
>     if sin > 0.001:
>         w1 = math.sin((1.0 - t) * theta) / sin
>         w2 = math.sin(t * theta) / sin
>     else:
>         w1 = 1.0 - t
>         w2 = t
>     aa = OpenMaya.MQuaternion(a)
>     bb = OpenMaya.MQuaternion(b)
>     aa.scaleIt(w1)
>     bb.scaleIt(w2)
>
>     return aa + bb
>
> def quaternionDot(q1, q2):
>     return (q1.x * q2.x) + (q1.y * q2.y) + (q1.z * q2.z) + (q1.w * q2.w)
>
>
>
> On Tue, Oct 4, 2011 at 2:47 PM, David Moulder <[email protected]>wrote:
>
>> I don't know if slerp is correctly exposed but I can tell you that there
>> is a new api binding available in 2012.  Maya API 2.  Its a faster and more
>> friendly python api and the docs suggest that slerp is exposed correctly.
>>
>>
>> On Tue, Oct 4, 2011 at 5:26 PM, a_adam <[email protected]> wrote:
>>
>>> Hi there,
>>>
>>> just joined in here, and I'm looking forward to some good discussions!
>>> And of course I stumbled into a problem today which brought me here in
>>> the first place: I can't for the life of me trigger the slerp function
>>> from the MQuaternion class.
>>>
>>> The API docs tell me that there are two slerps (odd enough), one
>>> considering spin and being marked as not exposed to scripting, and a
>>> simple one without a spin argument which should be accessable to
>>> scripting. It is this simpler version which I'm trying to get to work.
>>>
>>> I've seen in this group's archive that slerp indeed does not seem to
>>> be not implemented in the Python wrapper. However, that post is over a
>>> year old, and I asked myself if Autodesk did anything for Maya 2012 to
>>> make this work? Or anyone found a workaround in the meantime?
>>>
>>> Many thanks in advance for a quick hint, cheers!
>>>
>>> -Andre
>>>
>>> --
>>> view archives: http://groups.google.com/group/python_inside_maya
>>> change your subscription settings:
>>> http://groups.google.com/group/python_inside_maya/subscribe
>>>
>>
>>
>>
>> --
>> David Moulder
>> http://www.google.com/profiles/squish3d
>>
>>  --
>> view archives: http://groups.google.com/group/python_inside_maya
>> change your subscription settings:
>> http://groups.google.com/group/python_inside_maya/subscribe
>>
>
>  --
> view archives: http://groups.google.com/group/python_inside_maya
> change your subscription settings:
> http://groups.google.com/group/python_inside_maya/subscribe
>



-- 
______________________________

-> Renato Polimeno
+55 11 7539 3615
renatopolimeno.com <http://www.renatopolimeno.com>
 
<http://www.renatopolimeno.com/>facebook.com/renato.polimeno<http://www.facebook.com/renato.polimeno>
@renatopolimeno <http://www.twitter.com/renatopolimeno>

-- 
view archives: http://groups.google.com/group/python_inside_maya
change your subscription settings: 
http://groups.google.com/group/python_inside_maya/subscribe

Reply via email to