0027961: Visualization - remove unused and no more working OpenGl_AVIWriter
[occt.git] / src / OpenGl / OpenGl_Trihedron.hxx
index 520a92b..934d903 100755 (executable)
@@ -32,52 +32,82 @@ class OpenGl_Trihedron : public OpenGl_Element
 {
 public:
 
-  static void Setup (const Quantity_NameOfColor theXColor,
-                     const Quantity_NameOfColor theYColor,
-                     const Quantity_NameOfColor theZColor,
-                     const Standard_Real        theSizeRatio,
-                     const Standard_Real        theAxisDiametr,
-                     const Standard_Integer     theNbFacettes);
+  //! Default constructor.
+  OpenGl_Trihedron();
 
-public:
+  //! Destructor.
+  virtual ~OpenGl_Trihedron();
 
-  OpenGl_Trihedron (const Aspect_TypeOfTriedronPosition thePosition,
-                    const Quantity_NameOfColor          theColor,
-                    const Standard_Real                 theScale,
-                    const Standard_Boolean              theAsWireframe);
+  //! Render the element.
+  virtual void Render (const Handle(OpenGl_Workspace)& theWorkspace) const;
 
-  virtual void Render  (const Handle(OpenGl_Workspace)& theWorkspace) const;
+  //! Release OpenGL resources.
   virtual void Release (OpenGl_Context* theCtx);
 
+public:
+
+  //! Switch wireframe / shaded trihedron.
+  void SetWireframe (const Standard_Boolean theAsWireframe) { myIsWireframe = theAsWireframe; }
+
+  //! Setup the corner to draw the trihedron.
+  void SetPosition (const Aspect_TypeOfTriedronPosition thePosition) { myPos = thePosition; }
+
+  //! Setup the scale factor.
+  void SetScale (const Standard_Real theScale);
+
+  //! Setup the size ratio factor.
+  void SetSizeRatio (const Standard_Real theRatio);
+
+  //! Setup the arrow diameter.
+  void SetArrowDiameter (const Standard_Real theDiam);
+
+  //! Setup the number of facets for tessellation.
+  void SetNbFacets (const Standard_Integer theNbFacets);
+
+  //! Setup color of text labels.
+  void SetLabelsColor (const Quantity_Color& theColor);
+
+  //! Setup per-arrow color.
+  void SetArrowsColors (const Quantity_Color& theColorX,
+                        const Quantity_Color& theColorY,
+                        const Quantity_Color& theColorZ);
+
 protected:
 
-  virtual ~OpenGl_Trihedron();
+  //! Invalidate Primitive Arrays.
+  void invalidate();
+
+  void redraw(const Handle(OpenGl_Workspace)& theWorkspace) const;
+  void redrawZBuffer(const Handle(OpenGl_Workspace)& theWorkspace) const;
 
-  void redraw        (const Handle(OpenGl_Workspace)& theWorkspace) const;
-  void redrawZBuffer (const Handle(OpenGl_Workspace)& theWorkspace) const;
+  //! Resets current model-view and projection transformations and sets
+  //! translation for trihedron position
+  //! @sa Aspect_TypeOfTriedronPosition
+  void resetTransformations (const Handle(OpenGl_Workspace)& theWorkspace) const;
 
 protected:
 
   Aspect_TypeOfTriedronPosition myPos;
   Standard_Real myScale;
   Standard_Boolean myIsWireframe;
-  // Parameters for z-buffered mode
-  TEL_COLOUR myXColor;
-  TEL_COLOUR myYColor;
-  TEL_COLOUR myZColor;
+  OpenGl_Vec4 myXColor;
+  OpenGl_Vec4 myYColor;
+  OpenGl_Vec4 myZColor;
   float myRatio;
   float myDiameter;
   int   myNbFacettes;
 
-  OpenGl_AspectLine       myAspectLine;
-  OpenGl_AspectText       myAspectText;
-  mutable OpenGl_Text     myLabelX;
-  mutable OpenGl_Text     myLabelY;
-  mutable OpenGl_Text     myLabelZ;
-  mutable OpenGl_Cylinder myCylinder;
-  mutable OpenGl_Sphere   mySphere;
-  mutable OpenGl_Cylinder myCone;
-  mutable OpenGl_Disk     myDisk;
+  OpenGl_AspectLine              myAspectLine;
+  OpenGl_AspectText              myAspectText;
+  mutable OpenGl_Text            myLabelX;
+  mutable OpenGl_Text            myLabelY;
+  mutable OpenGl_Text            myLabelZ;
+  mutable OpenGl_Cylinder        myCylinder;
+  mutable OpenGl_Sphere          mySphere;
+  mutable OpenGl_Cylinder        myCone;
+  mutable OpenGl_Disk            myDisk;
+  mutable OpenGl_PrimitiveArray  myLine;
+  mutable OpenGl_PrimitiveArray  myCircle;
 
 public: