Witam wszystkich.
Podczas pisania mojej pracy inżynierskiej natknąłem się na problem, z którym walczę już dwa dni i nie wiem jak go ruszyć. W czy rzecz:

W inżynierce mam za zadanie stworzyć aplikację wizualizującą roboty(manilulatory) z uczelnianego laboratorium. Model stworzyłem w 3DS i eksportowąłem je do formatu X3D. Wczytuję je do programu za pomocą Xj3D i z tym nie mam problemu. Jednak kiedy prubuję je animować powstaje problem, którego za cholerę nie mogę ruszyć. Napisałem prostą medotę, która dołącza do danego węzła TransformGroup interpolator i przesuwa obiekt wzdłuż osi X,Y lub Z(nie ważne której):

private void setTestRotator(BranchGroup rootBG, TransformGroup localTG) {
	localTG.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND);
	localTG.setCapability(TransformGroup.ALLOW_CHILDREN_READ);
	localTG.setCapability(TransformGroup.ALLOW_CHILDREN_WRITE);
	localTG.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
	localTG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
	localTG.setCapability(TransformGroup.ALLOW_LOCAL_TO_VWORLD_READ);
	
	Transform3D localTransform = new Transform3D();
BoundingSphere bounds =	new BoundingSphere(new Point3d(0,0,0), 1000.0);
Transform3D yAxis = new Transform3D();
Alpha rotationAlpha = new Alpha(1, 10000);
PositionInterpolator rotator = new PositionInterpolator(rotationAlpha,localTG,yAxis,0f, (float) 100);
rotator.setSchedulingBounds(bounds);
rootBG.addChild(rotator);
}

localTG jest ustawiony na TG trzymający całego robota, czyli na podstawie(prostopadłościan). Chciałbym, żeby translacja odbywała się względem lokalnego układu współżednych dla podstawy robota, ale w rzeczywistaości po uruchomieniu interpolatora robot ląduje w środku globalnego układu współrzędnych i z tamtąd zaczyna się przemieszczać wzdłuż wybranej osi.

Z interpolatorem rotacji dzieje się tak samo. Zauważyłem, że układ współrzednych lokalnych dla jakiejś części robota pokrywają się z układem współrzednych części, lub (dla podstawy) w globalnym ukł. wsp. W ten sposób psuje się naturalny wygląd robota.

Struktura grafu sceny miedzy dwoma TG łączącumi poszczególna części robotów wygląda następująco:

BranchGroup (robot) -> Link -> SharedGroup -> TransformGroup (podstawa) -> Transform3D
|
V
BranchGroup (następna część)

Mam nadzieję, że znajdzie się osoba, która będzie w stanie mi pomóc. Nie zostało mi wiele czasu, żeby oddać napisaną pracę, Zatem bardzo proszę o pomoc. Jakoś się odwdzięczę...

Pozdrawiam - Szu