I would like to rotate my Volume model similar to how this example shows. I noticed that Prop3D has this in it’s documentation:
Both vtkActor and vtkVolume are specializations of class vtkProp
However, when I try using a method like rotateX() or rotateWXYZ() on my vtkVolume actor, it throws off my model as shown in the picture. Am I going about this wrong? It’s definitely moving the volume, but not correctly.
Here is a GIF of the volume attempting to rotate around the X axis.
Does anyone recognize this behavior?
You might want to try with older version of VTK.js to see when it stopped working.
So this should work then? It seems like it’s rotating each side of the volume independently, instead of the entire volume.
Yes, this should work, it seems that the matrix multiplication order is wrong for some reasons
Where exactly could I look to see where the matrix multiplication is happening? Could I implement a custom function for a workaround, and if so how should I apply it to my volume?
Please try with an older version of VTK.js to see if it ever worked at some point. You should then refine to see when it stopped working. That will help you find the problematic commit.
I tried versions going back until my app stopped working (< version 18.0.0), and the problem persists. I must be missing something in my implementation.
Are there any clues I can look for in the volume actor or renderer as to why this is happening? Could it be something with the volumeMapper?
When you do a rotation around a pivot point you should do it like this:
(Set Postmultiply order)
Concatenate(RotationMatrix) #or your RotateX(angle)
I will give this a try. Thank you.