I have my method that is called like this:
... initialize rotationinterpolator ...
rotator1.setSchedulingBounds(bounds);
RotTrans.addChild(rotator1);
... blah blah blah ....
FTrans= new TransformGroup();
boxer=new TransformGroup[2];
boxer[0]=new TransformGroup();
boxer[1]=new TransformGroup();
.... initialize tgs as usual ...
FTrans.addChild(boxer[0]);
FTrans.addChild(boxer[1]);
FBehaviour ourFB=new FBehaviour( FTrans, RotTrans, oxer);
So the FBehaviour begins like this:
public FBehaviour(TransformGroup newTG, TransformGroup camTG, TransformGroup[] flurry)
{
ourTG=newTG; // first TG
worldTG=camTG; // second TG
fSet=flurry; // the objects to be transformed.
WakeupCriterion criterionArray[] = new WakeupCriterion[3];
criterionArray[0] = new WakeupOnElapsedFrames( 20);
criterionArray[1] = new WakeupOnTransformChange(ourTG);
criterionArray[2] = new WakeupOnTransformChange(camTG);
goat=new WakeupOr(criterionArray);
}
And when it is running, nothing happens. The only wakeup criterion that does anything is the WakeupOnElapsedFrames one- the other two are just sat there.
My guess is that it is because I have copied the TransformGroups and I have local non-live versions of them. How can I trigger my behaviour off the live version, or keep tabs on it’s transform3D?