0023022: This is desirable to access OpenGl extensions and core API (1.2+) in one...
[occt.git] / src / OpenGl / OpenGl_Group.hxx
CommitLineData
2166f0fa
SK
1// File: OpenGl_Group.hxx
2// Created: 1 August 2011
3// Author: Sergey ZERCHANINOV
4// Copyright: OPEN CASCADE 2011
5
6#ifndef _OpenGl_Group_Header
7#define _OpenGl_Group_Header
8
9#include <InterfaceGraphic_Graphic3d.hxx>
10
11#include <OpenGl_Element.hxx>
12
13#include <OpenGl_AspectLine.hxx>
14#include <OpenGl_AspectFace.hxx>
15#include <OpenGl_AspectMarker.hxx>
16#include <OpenGl_AspectText.hxx>
17
18#include <OpenGl_tsm.hxx>
19
20struct OpenGl_ElementNode
21{
22 TelType type;
23 OpenGl_Element *elem;
24 OpenGl_ElementNode *next;
1c35b92f 25 DEFINE_STANDARD_ALLOC
2166f0fa
SK
26};
27
28class OpenGl_Group : public OpenGl_Element
29{
30 public:
31 OpenGl_Group ();
32 virtual ~OpenGl_Group();
33
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);
38
39 void AddElement (const TelType, OpenGl_Element * );
40 void Clear ();
41
42 void RemovePrimitiveArray (CALL_DEF_PARRAY *APArray);
43
44 virtual void Render (const Handle(OpenGl_Workspace) &AWorkspace) const;
45
46 protected:
47
48 OpenGl_AspectLine *myAspectLine;
49 OpenGl_AspectFace *myAspectFace;
50 OpenGl_AspectMarker *myAspectMarker;
51 OpenGl_AspectText *myAspectText;
52
53 OpenGl_ElementNode *myFirst, *myLast;
54
55 public:
1c35b92f 56 DEFINE_STANDARD_ALLOC
2166f0fa
SK
57};
58
59#endif //_OpenGl_Group_Header