Hi,

The only way I can think of doing this (at the moment) is to get the LocalToVworld Transform and apply this to the vertex I am interested. But this would mean I would compute the same transformations that Xith uses internally again. I hope this is not necessary.

Are the Vworld coords of the geometry somewhere buffered (Flags ?) ?

No. Xith3D does not apply local-to-vworld transform to vertices itself - it just passes both transform and original vertices to graphic card hardware via OpenGL, and hardware (GPU) does the transform. This is a basic idea of hardware-accelerated rendering - to avoid such caluclations on the CPU. So if you need transformed vertices, you have to transform them yourself.

Alternatively, you can think about changing your calculations to shape-local coordinate system - this will be much faster to transform your ray using inverse localToVWorld, then caluclate intersection in shape-local coordinates, and transform result back if needed (count how many transforms you save on larger geometries).

I tried the myShape3D.getLocalToVworld().transform(Vector3f) function on a vertex of my rotating test cube. This gives me the rotated version of the given vertex but there seems no translation being done

Strange - it should work as expected. Did you define translation using TransformGroup or just View transform? If you used LookAt or View Transform, then you moved your view relative to VWorld, so this translation (if any) is not part of LocalToVWorld.

Yuri