I've kind of figured out how to create my own view orientation indicator. I inherited AIS_InteractiveObject and in its Compute method:
->SetTransformPersistence(Graphic3d_TMF_TriedronPers, gp_Pnt(-1, -1, 230));
I then go on, in the same Compute method, and build up each axis with Graphic3d_ArrayOfTriangles.
This works ok. It stays in the corner and ignores pan and zoom, but does rotate correctly.
Now, is there a way to draw this AIS object on "top" of everything else so it's always visible? I've tried setting the display priority from 0 to 10, but it's had no effect.
I've done this before using pure OpenGL commands by translating the shape outside the models bounding box. I can't see a way to do that with OCC. Maybe with Graphic3d_Structure::SetTransform?