0030748: Visualization - Marker displayed in immediate layer ruins QT Quick view...
[occt.git] / src / OpenGl / OpenGl_Group.hxx
index 72bdc24..33400dc 100644 (file)
 #ifndef _OpenGl_Group_Header
 #define _OpenGl_Group_Header
 
-#include <InterfaceGraphic_Graphic3d.hxx>
 #include <Graphic3d_Group.hxx>
 #include <Graphic3d_Structure.hxx>
 
 #include <NCollection_List.hxx>
-#include <OpenGl_AspectLine.hxx>
-#include <OpenGl_AspectFace.hxx>
-#include <OpenGl_AspectMarker.hxx>
-#include <OpenGl_AspectText.hxx>
+#include <OpenGl_Aspects.hxx>
 #include <OpenGl_Element.hxx>
 
 class OpenGl_Group;
@@ -46,58 +42,62 @@ public:
   //! Will throw exception if not created by OpenGl_Structure.
   Standard_EXPORT OpenGl_Group (const Handle(Graphic3d_Structure)& theStruct);
 
-  Standard_EXPORT virtual void Clear (const Standard_Boolean theToUpdateStructureMgr);
+  Standard_EXPORT virtual void Clear (const Standard_Boolean theToUpdateStructureMgr) Standard_OVERRIDE;
 
-  //! Update line aspect
-  Standard_EXPORT virtual void UpdateAspectLine   (const Standard_Boolean theIsGlobal);
+  //! Return line aspect.
+  virtual Handle(Graphic3d_Aspects) Aspects() const Standard_OVERRIDE
+  {
+    return myAspects != NULL
+         ? myAspects->Aspect()
+         : Handle(Graphic3d_Aspects)();
+  }
 
-  //! Update fill aspect
-  Standard_EXPORT virtual void UpdateAspectFace   (const Standard_Boolean theIsGlobal);
+  //! Update aspect.
+  Standard_EXPORT virtual void SetGroupPrimitivesAspect (const Handle(Graphic3d_Aspects)& theAspect) Standard_OVERRIDE;
 
-  //! Update marker aspect
-  Standard_EXPORT virtual void UpdateAspectMarker (const Standard_Boolean theIsGlobal);
+  //! Append aspect as an element.
+  Standard_EXPORT virtual void SetPrimitivesAspect (const Handle(Graphic3d_Aspects)& theAspect) Standard_OVERRIDE;
 
-  //! Update text aspect
-  Standard_EXPORT virtual void UpdateAspectText   (const Standard_Boolean theIsGlobal);
+  //! Update presentation aspects after their modification.
+  Standard_EXPORT virtual void SynchronizeAspects() Standard_OVERRIDE;
+
+  //! Replace aspects specified in the replacement map.
+  Standard_EXPORT virtual void ReplaceAspects (const Graphic3d_MapOfAspectsToAspects& theMap) Standard_OVERRIDE;
 
   //! Add primitive array element
   Standard_EXPORT virtual void AddPrimitiveArray (const Graphic3d_TypeOfPrimitiveArray theType,
                                                   const Handle(Graphic3d_IndexBuffer)& theIndices,
                                                   const Handle(Graphic3d_Buffer)&      theAttribs,
                                                   const Handle(Graphic3d_BoundBuffer)& theBounds,
-                                                  const Standard_Boolean               theToEvalMinMax);
+                                                  const Standard_Boolean               theToEvalMinMax) Standard_OVERRIDE;
 
   //! Add text element
   Standard_EXPORT virtual void Text (const Standard_CString                  theTextUtf,
                                      const Graphic3d_Vertex&                 thePoint,
                                      const Standard_Real                     theHeight,
-                                     const Quantity_PlaneAngle               theAngle,
+                                     const Standard_Real                     theAngle,
                                      const Graphic3d_TextPath                theTp,
                                      const Graphic3d_HorizontalTextAlignment theHta,
                                      const Graphic3d_VerticalTextAlignment   theVta,
-                                     const Standard_Boolean                  theToEvalMinMax);
+                                     const Standard_Boolean                  theToEvalMinMax) Standard_OVERRIDE;
 
   //! Add text element in 3D space.
   Standard_EXPORT virtual void Text (const Standard_CString                  theTextUtf,
                                      const gp_Ax2&                           theOrientation,
                                      const Standard_Real                     theHeight,
-                                     const Quantity_PlaneAngle               theAngle,
+                                     const Standard_Real                     theAngle,
                                      const Graphic3d_TextPath                theTp,
                                      const Graphic3d_HorizontalTextAlignment theHTA,
                                      const Graphic3d_VerticalTextAlignment   theVTA,
-                                     const Standard_Boolean                  theToEvalMinMax) Standard_OVERRIDE;
-
-  //! Add UserDraw element using obsolete API
-  Standard_EXPORT virtual void UserDraw (const Standard_Address theObject,
-                                         const Standard_Boolean theToEvalMinMax,
-                                         const Standard_Boolean theContainsFacet);
+                                     const Standard_Boolean                  theToEvalMinMax,
+                                     const Standard_Boolean                  theHasOwnAnchor = Standard_True) Standard_OVERRIDE;
 
   //! Add flipping element
   Standard_EXPORT virtual void SetFlippingOptions (const Standard_Boolean theIsEnabled,
-                                                   const gp_Ax2&          theRefPlane);
+                                                   const gp_Ax2&          theRefPlane) Standard_OVERRIDE;
 
   //! Add stencil test element
-  Standard_EXPORT virtual void SetStencilTestOptions (const Standard_Boolean theIsEnabled);
+  Standard_EXPORT virtual void SetStencilTestOptions (const Standard_Boolean theIsEnabled) Standard_OVERRIDE;
 
 public:
 
@@ -111,34 +111,26 @@ public:
   //! Returns first OpenGL element node of the group.
   const OpenGl_ElementNode* FirstNode() const { return myFirst; }
 
-  //! Returns OpenGL face aspect.
-  const OpenGl_AspectFace* AspectFace() const { return myAspectFace; }
+  //! Returns OpenGL aspect.
+  const OpenGl_Aspects* GlAspects() const { return myAspects; }
 
   //! Is the group ray-tracable (contains ray-tracable elements)?
   Standard_Boolean IsRaytracable() const { return myIsRaytracable; }
 
-  //! Accessor to line aspect (to be removed)
-  CALL_DEF_CONTEXTLINE& ChangeContextLine() { return ContextLine; }
-
 protected:
 
   Standard_EXPORT virtual ~OpenGl_Group();
 
 protected:
 
-  OpenGl_AspectLine*     myAspectLine;
-  OpenGl_AspectFace*     myAspectFace;
-  OpenGl_AspectMarker*   myAspectMarker;
-  OpenGl_AspectText*     myAspectText;
-
-  OpenGl_ElementNode*    myFirst;
-  OpenGl_ElementNode*    myLast;
-
-  Standard_Boolean       myIsRaytracable;
+  OpenGl_Aspects*     myAspects;
+  OpenGl_ElementNode* myFirst;
+  OpenGl_ElementNode* myLast;
+  Standard_Boolean    myIsRaytracable;
 
 public:
 
-  DEFINE_STANDARD_RTTI(OpenGl_Group, Graphic3d_Group) // Type definition
+  DEFINE_STANDARD_RTTIEXT(OpenGl_Group,Graphic3d_Group) // Type definition
 
 };