testanimate.vspscript does modify these parms...
string veh = FindContainer( "Vehicle", 0 ); // Find Vehicle container
string panx = FindParm( veh, "PanX", "AdjustView" ); // Find view Parms in Vehicle
string pany = FindParm( veh, "PanY", "AdjustView" );
string zoom = FindParm( veh, "Zoom", "AdjustView" );
string rotx = FindParm( veh, "RotationX", "AdjustView" );
string roty = FindParm( veh, "RotationY", "AdjustView" );
string rotz = FindParm( veh, "RotationZ", "AdjustView" );
I think you'll find that the AdjustViewScreen (or whatever it is) has a ParmChanged that does some magic tricks...
The underlying problem is that 'normal' mouse pan/zoom/rotate commands set the view quaternion deep in the graphics subsystem without using Parms along the way. That quaternion becomes the authoritative view state.
Part of the problem is that the quaternion only exists in a graphics build -- so geom_core should not even know about it.
We don't want to make Parms the authoritative home for this state because the normal Parm update process is relatively slow for pan/zoom/rotate operations. Instead, those are currently handled by updating the view transformation matrix on the graphics card and simply re-rendering. No geometry update is needed, no lofting, no creation of DrawObj, no passing large amounts of data to the graphics card.
The only way for geom_core to communicate with vsp_graphics is through message passing. Since updating the graphics through Parms does not need to be super fast, perhaps we can send a special message when just those Parms are updated. Reverse communication is also a problem -- when someone rotates the model, you want the view Parms to be updated. Right now, that back communication is not done. Another thing the ViewEditScreen is taking care of...
This is more of an onion than you might think...
Rob