0024751: Performance improvements in the Edge/Edge intersection algorithm
[occt.git] / src / Graphic3d / Graphic3d_CGroup.hxx
CommitLineData
b311480e 1// Copyright (c) 1995-1999 Matra Datavision
973c2be1 2// Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 3//
973c2be1 4// This file is part of Open CASCADE Technology software library.
b311480e 5//
d5f74e42 6// This library is free software; you can redistribute it and/or modify it under
7// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 8// by the Free Software Foundation, with special exception defined in the file
9// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10// distribution for complete text of the license and disclaimer of any warranty.
b311480e 11//
973c2be1 12// Alternatively, this file may be used under the terms of Open CASCADE
13// commercial license or contractual agreement.
b311480e 14
7fd59977 15#ifndef _Graphic3d_CGroup_HeaderFile
16#define _Graphic3d_CGroup_HeaderFile
17
a577aaab 18#include <Aspect_TypeOfMarker.hxx>
bf75be98 19#include <InterfaceGraphic_Visual3d.hxx>
20#include <Graphic3d_CTexture.hxx>
a577aaab 21#include <Graphic3d_MarkerImage_Handle.hxx>
30f0ad28 22#include <Graphic3d_ShaderProgram_Handle.hxx>
bf75be98 23
24class Graphic3d_CStructure;
25
26class CALL_DEF_CONTEXTFILLAREA
27{
28
29public:
30
31 CALL_DEF_CONTEXTFILLAREA()
32 : IsDef (0),
33 IsSet (0),
34 Style (0),
35 LineType (0),
36 Width (0.0f),
37 Hatch (0),
38 Distinguish (0),
39 BackFace (0),
40 Edge (0),
bf75be98 41 PolygonOffsetMode (0),
42 PolygonOffsetFactor (0.0f),
43 PolygonOffsetUnits (0.0f)
44 {
c24d4017 45 memset(&IntColor,0,sizeof(IntColor));
46 memset(&BackIntColor,0,sizeof(BackIntColor));
47 memset(&EdgeColor,0,sizeof(EdgeColor));
48 memset(&Front,0,sizeof(Front));
49 memset(&Back,0,sizeof(Back));
bf75be98 50 }
51
52public:
53
54 int IsDef;
55
56 int IsSet;
57
58 int Style;
59
60 CALL_DEF_COLOR IntColor;
61 CALL_DEF_COLOR BackIntColor;
62 CALL_DEF_COLOR EdgeColor;
63
64 int LineType;
65
66 float Width;
67
68 int Hatch;
69
70 int Distinguish;
71 int BackFace;
72
73 int Edge;
74
75 CALL_DEF_MATERIAL Front;
76 CALL_DEF_MATERIAL Back;
77
78 Graphic3d_CTexture Texture;
79
bf75be98 80 int PolygonOffsetMode;
81 float PolygonOffsetFactor;
82 float PolygonOffsetUnits;
83
30f0ad28 84 Handle(Graphic3d_ShaderProgram) ShaderProgram;
bf75be98 85};
86
a577aaab 87class CALL_DEF_CONTEXTMARKER
88{
89public:
90
91 CALL_DEF_CONTEXTMARKER()
92 : IsDef (0),
93 IsSet (0),
94 MarkerType (Aspect_TOM_POINT),
95 Scale (0),
96 MarkerImage (NULL)
97 {
c24d4017 98 memset(&Color,0,sizeof(Color));
a577aaab 99 }
100
101public:
102
103 Standard_Integer IsDef;
104 Standard_Integer IsSet;
105 CALL_DEF_COLOR Color;
106 Aspect_TypeOfMarker MarkerType;
107 Standard_ShortReal Scale;
108 Handle(Graphic3d_MarkerImage) MarkerImage;
30f0ad28 109 Handle(Graphic3d_ShaderProgram) ShaderProgram;
a577aaab 110
111};
112
bf75be98 113class Graphic3d_CGroup
114{
115
116public:
117
bf75be98 118 void* ptrGroup;
119
bf75be98 120 CALL_DEF_CONTEXTLINE ContextLine;
121 CALL_DEF_CONTEXTFILLAREA ContextFillArea;
122 CALL_DEF_CONTEXTMARKER ContextMarker;
123 CALL_DEF_CONTEXTTEXT ContextText;
124
125 Graphic3d_CStructure* Struct;
126
127 CALL_DEF_PICKID PickId;
128
bf75be98 129};
7fd59977 130
bf75be98 131const Handle(Standard_Type)& TYPE(Graphic3d_CGroup);
7fd59977 132
bf75be98 133#endif // Graphic3d_CGroup_HeaderFile