View Single Post
#1
09-28-2009, 04:11 PM
 vijaykiran Member Join Date: Sep 2009 Posts: 13
Unable to perform 360 rotation using vizact.spinto

Hello,

I am trying to make an object perform a single spin action for 360 degrees followed by a forward motion. The following piece of code doesn't seem to help and the object just stays put.

Code:
model = viz.add('object.ive')
spinToYaw = vizact.spinto([0,1,0, 360], 50)
moveForward = vizact.move([0,0,4], 5)

model.addAction( spinToYaw )
model.addAction( moveForward )
I am however able to get up to 180 degrees of rotation with:
Code:
spinToYaw = vizact.spinto([0,1,0, 180], 50)

Any more than 180 degrees spins the object in the opposite direction:
Code:
spinToYaw = vizact.spinto([0,1,0, 181], 50)

To perform a 360 degree rotation, I thought i could get lucky if I run yaw actions two times using:
Code:
spinToYaw = vizact.spinto([0,1,0, 180], 50)
...
model.addAction( spinToYaw )
model.addAction( spinToYaw )
model.addAction( moveForward )
The above did nothing but rotate the model by 180 degrees and then immediately moved forward as defined in
Code:
moveForward
action. The second call to
Code:
model.addAction( spinToYaw )
did not make any difference.

On the other hand, if I have a different axis for spinto as in the code below:
Code:
spinToYaw = vizact.spinto([0,1,0, 180], 50)
spinToRoll = vizact.spinto([0,0,1, 180], 50)
...
model.addAction( spinToYaw )
model.addAction( spinToRoll )
model.addAction( moveForward )
So, here are my two questions:

1) I get a 180 degree yaw, followed by 180 degree roll and then forward movement. If this logic works, then shouldn't two 180 degree yaws work as a 360 degree rotation ?

2) If there is a reason why two 180 degree yaws will not equal to a 360 degree rotation, what do I need to do to obtain just one single 360 degree rotation followed by another action. I do not want to use viz.FOREVER because it will keep on spinning the model.

Thanks,
Vijay.