#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;
//! 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:
//! 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
};