I am designing a FMX 3D editor application and have three questions.
1. In the application, the user can rotate objects using sliders rX, rY, rZ, which set the RotationAngle of the 3D object. I am trying to save this rotation to/from an XML file. However, the orientation of the object is dependent on the order of rotation performed, i.e., rotating 90 about Y and then Z is very different from rotating about Z then Y. How do I save the rotation angle so that the object is correct when read back in?
2. I am using the camera boom concept (http://docwiki.embarcadero.com/RADStudio/Seattle/en/FireMonkey_3D ) that Embarcadero uses in their 3D samples and changing the dummys' rotation angles with mouse moves (Down = PointF(X,Y); On move, RotAngle = RotationAngle.X - ((Y - FDown.Y) * 0.3...). This works great until you move the camera to the sides (or top/bottom) of the objects (so that the screen is now a YZ axis instead of the original XY axis). At that point, the user gets confused, because the up/down movement of the mouse rotates around X instead of Z. How can I fix this?
3. Loading an OBJ in Windows is fast. However, the same application and OBJ when it is loaded in MacOSX is agonizingly slow, to the point where it is almost unusable. Is there a way to speed this up in OSX?
Any suggestions are welcome.
Thanks,
Tom