1 // File: OpenGl_Group.hxx
2 // Created: 1 August 2011
3 // Author: Sergey ZERCHANINOV
4 // Copyright: OPEN CASCADE 2011
6 #ifndef _OpenGl_Group_Header
7 #define _OpenGl_Group_Header
9 #include <InterfaceGraphic_Graphic3d.hxx>
11 #include <OpenGl_Element.hxx>
13 #include <OpenGl_AspectLine.hxx>
14 #include <OpenGl_AspectFace.hxx>
15 #include <OpenGl_AspectMarker.hxx>
16 #include <OpenGl_AspectText.hxx>
18 #include <OpenGl_tsm.hxx>
20 struct OpenGl_ElementNode
24 OpenGl_ElementNode *next;
25 IMPLEMENT_MEMORY_OPERATORS
28 class OpenGl_Group : public OpenGl_Element
32 virtual ~OpenGl_Group();
34 void SetAspectLine (const CALL_DEF_CONTEXTLINE &AContext, const Standard_Boolean IsGlobal = Standard_True);
35 void SetAspectFace (const CALL_DEF_CONTEXTFILLAREA &AContext, const Standard_Boolean IsGlobal = Standard_True);
36 void SetAspectMarker (const CALL_DEF_CONTEXTMARKER &AContext, const Standard_Boolean IsGlobal = Standard_True);
37 void SetAspectText (const CALL_DEF_CONTEXTTEXT &AContext, const Standard_Boolean IsGlobal = Standard_True);
39 void AddElement (const TelType, OpenGl_Element * );
42 void RemovePrimitiveArray (CALL_DEF_PARRAY *APArray);
44 virtual void Render (const Handle(OpenGl_Workspace) &AWorkspace) const;
48 OpenGl_AspectLine *myAspectLine;
49 OpenGl_AspectFace *myAspectFace;
50 OpenGl_AspectMarker *myAspectMarker;
51 OpenGl_AspectText *myAspectText;
53 OpenGl_ElementNode *myFirst, *myLast;
56 IMPLEMENT_MEMORY_OPERATORS
59 #endif //_OpenGl_Group_Header