0029570: Visualization, Graphic3d_Aspect - merge Graphic3d_Group aspects
[occt.git] / src / OpenGl / OpenGl_Group.hxx
index eb779ab..33400dc 100644 (file)
 #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;
@@ -48,64 +45,25 @@ public:
   Standard_EXPORT virtual void Clear (const Standard_Boolean theToUpdateStructureMgr) Standard_OVERRIDE;
 
   //! Return line aspect.
-  virtual Handle(Graphic3d_AspectLine3d) LineAspect() const Standard_OVERRIDE
+  virtual Handle(Graphic3d_Aspects) Aspects() const Standard_OVERRIDE
   {
-    return myAspectLine != NULL
-         ? myAspectLine->Aspect()
-         : Handle(Graphic3d_AspectLine3d)();
+    return myAspects != NULL
+         ? myAspects->Aspect()
+         : Handle(Graphic3d_Aspects)();
   }
 
-  //! Update line aspect.
-  Standard_EXPORT virtual void SetGroupPrimitivesAspect (const Handle(Graphic3d_AspectLine3d)& theAspect) Standard_OVERRIDE;
+  //! Update aspect.
+  Standard_EXPORT virtual void SetGroupPrimitivesAspect (const Handle(Graphic3d_Aspects)& theAspect) Standard_OVERRIDE;
 
-  //! Append line aspect as an element.
-  Standard_EXPORT virtual void SetPrimitivesAspect (const Handle(Graphic3d_AspectLine3d)& theAspect) Standard_OVERRIDE;
-
-  //! Return marker aspect.
-  virtual Handle(Graphic3d_AspectMarker3d) MarkerAspect() const Standard_OVERRIDE
-  {
-    return myAspectMarker != NULL
-         ? myAspectMarker->Aspect()
-         : Handle(Graphic3d_AspectMarker3d)();
-  }
-
-  //! Update marker aspect.
-  Standard_EXPORT virtual void SetGroupPrimitivesAspect (const Handle(Graphic3d_AspectMarker3d)& theAspect) Standard_OVERRIDE;
-
-  //! Append marker aspect as an element.
-  Standard_EXPORT virtual void SetPrimitivesAspect (const Handle(Graphic3d_AspectMarker3d)& theAspect) Standard_OVERRIDE;
-
-  //! Return fill area aspect.
-  virtual Handle(Graphic3d_AspectFillArea3d) FillAreaAspect() const Standard_OVERRIDE
-  {
-    return myAspectFace != NULL
-         ? myAspectFace->Aspect()
-         : Handle(Graphic3d_AspectFillArea3d)();
-  }
-
-  //! Update face aspect.
-  Standard_EXPORT virtual void SetGroupPrimitivesAspect (const Handle(Graphic3d_AspectFillArea3d)& theAspect) Standard_OVERRIDE;
-
-  //! Append face aspect as an element.
-  Standard_EXPORT virtual void SetPrimitivesAspect (const Handle(Graphic3d_AspectFillArea3d)& theAspect) Standard_OVERRIDE;
-
-  //! Return marker aspect.
-  virtual Handle(Graphic3d_AspectText3d) TextAspect() const Standard_OVERRIDE
-  {
-    return myAspectText != NULL
-         ? myAspectText->Aspect()
-         : Handle(Graphic3d_AspectText3d)();
-  }
-
-  //! Update text aspect.
-  Standard_EXPORT virtual void SetGroupPrimitivesAspect (const Handle(Graphic3d_AspectText3d)& theAspect) Standard_OVERRIDE;
-
-  //! Append text aspect as an element.
-  Standard_EXPORT virtual void SetPrimitivesAspect (const Handle(Graphic3d_AspectText3d)& theAspect) Standard_OVERRIDE;
+  //! Append aspect as an element.
+  Standard_EXPORT virtual void SetPrimitivesAspect (const Handle(Graphic3d_Aspects)& theAspect) Standard_OVERRIDE;
 
   //! 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,
@@ -153,8 +111,8 @@ 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; }
@@ -165,15 +123,10 @@ protected:
 
 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: