4d7fb59c5feeae3e4728a32eca6d2fe8e9b91100
[occt.git] / src / Graphic3d / Graphic3d_Group_1.cxx
1
2 #define XDESTROY
3
4 // File         Graphic3d_Group_1.cxx (Clear Remove Open Close)
5 // Created      Fevrier 1992
6 // Author       NW,JPB,CAL
7
8 //-Copyright    MatraDatavision 1991,1992
9
10 //-Version      
11
12 //-Design       Declaration des variables specifiques aux groupes
13 //              de primitives
14
15 //-Warning      Un groupe est defini dans une structure
16 //              Il s'agit de la plus petite entite editable
17
18 //-References   
19
20 //-Language     C++ 2.0
21
22 //-Declarations
23
24 // for the class
25 #include <Graphic3d_Group.jxx>
26 #include <Graphic3d_Group.pxx>
27
28 //-Methods, in order
29
30 void Graphic3d_Group::Clear () {
31
32         if (IsDeleted ()) return;
33
34         MyCGroup.ContextLine.IsSet      = 0,
35         MyCGroup.ContextText.IsSet      = 0,
36         MyCGroup.ContextMarker.IsSet    = 0,
37         MyCGroup.ContextFillArea.IsSet  = 0;
38
39         MyCGroup.ContextLine.IsDef      = 0,
40         MyCGroup.ContextText.IsDef      = 0,
41         MyCGroup.ContextMarker.IsDef    = 0,
42         MyCGroup.ContextFillArea.IsDef  = 0;
43
44         MyCGroup.PickId.IsDef           = 0,
45         MyCGroup.PickId.IsSet           = 0,
46         MyCGroup.PickId.Value           = 0;
47
48         MyBounds.XMin   = ShortRealLast (),
49         MyBounds.YMin   = ShortRealLast (),
50         MyBounds.ZMin   = ShortRealLast ();
51
52         MyBounds.XMax   = ShortRealFirst (),
53         MyBounds.YMax   = ShortRealFirst (),
54         MyBounds.ZMax   = ShortRealFirst ();
55
56         if (MyContainsFacet) MyStructure->GroupsWithFacet (-1);
57         MyContainsFacet = Standard_False,
58         MyIsEmpty       = Standard_True;
59
60         MyGraphicDriver->ClearGroup (MyCGroup);
61
62         Update ();
63
64 }
65
66 void Graphic3d_Group::Destroy () {
67
68 #ifdef DESTROY
69         cout << "Graphic3d_Group::Destroy ()\n";
70 #endif
71
72 }
73
74 void Graphic3d_Group::Remove () {
75
76         if (IsDeleted ()) return;
77
78         MyCGroup.IsDeleted      = 1;
79         MyGraphicDriver->RemoveGroup (MyCGroup);
80         MyStructure->Remove (this);
81         Update ();
82
83         MyBounds.XMin   = ShortRealLast (),
84         MyBounds.YMin   = ShortRealLast (),
85         MyBounds.ZMin   = ShortRealLast ();
86
87         MyBounds.XMax   = ShortRealFirst (),
88         MyBounds.YMax   = ShortRealFirst (),
89         MyBounds.ZMax   = ShortRealFirst ();
90
91         if (MyContainsFacet) MyStructure->GroupsWithFacet (-1);
92         MyContainsFacet = Standard_False,
93         MyIsEmpty       = Standard_True;
94
95 }
96
97 void Graphic3d_Group::BeginPrimitives () {
98
99         if (IsDeleted ()) return;
100         if (MyCGroup.IsOpen) return;
101
102         MyCGroup.IsOpen = 1;
103
104         MyGraphicDriver->OpenGroup (MyCGroup);
105
106 }
107
108 void Graphic3d_Group::EndPrimitives () {
109
110         if (IsDeleted ()) return;
111         if (! MyCGroup.IsOpen) return;
112
113         MyCGroup.IsOpen = 0;
114
115         MyGraphicDriver->CloseGroup (MyCGroup);
116
117 }
118
119 /*void Graphic3d_Group::SetTransformPersistence(  const Graphic3d_TransModeFlags& AFlag )
120 {
121         //MyCGroup.TransformPersistenceFlag = AFlag;
122 }
123
124 Graphic3d_TransModeFlags Graphic3d_Group::TransformPersistence() const
125 {
126         //return MyCGroup.TransformPersistenceFlag;
127 }*/