Activating "turntable" mode in 7.5 AIS_ViewController


has anybody found a way of activating a mode in the AIS_ViewController where rotations are done only in the Z axis ("turntable mode")?

I've tried using SetAllowRotation(true) + SetLockOrbitZUp(true) with AIS_MouseGesture_RotateOrbit or AIS_MouseGesture_RotateView and also various AIS_RotationModes... There is always a 3d rotation done.

Ideally, i'm looking for a behavior as described in V3d_View::StartRotation where if the start point is outside a circular view center area, we only rotate in Z else we do a standard 3d rotation.


Francois Lauzon's picture

we are also looking for a way to activate this behavior but I think it is simply not possible anymore using the AIS_ViewController, it looks like it is only use with touch screen when 2 fingers rotation is detected (to rotate around the z screen axis).

Any plan to support that in future release of OCC?

Best regards,

Kirill Gavrilov's picture

I guess the feature you are looking for is a rotation around current view direction axis, like AIS_ViewController::ToAllowTouchZRotation() is supposed to do on rotating with two touches or V3d_View::Twist()/V3d_View::Turn() methods.

I guess it should be possible implementing it by subclassing AIS_ViewController, but haven't tried to. If you would like to see this feature in OCCT - start from registering a ticket on Bugtracker with detailed description and suggested behavior, and patches are welcome.

Francois Lauzon's picture

Yes that is what I am looking for.
I will look how we could add the camera update from V3d_View::StartRotation / Rotate when Z Rotation is activated into a subclass of AIS_ViewController.