3812c976ecefe09a02004af078d51504297492e1
[occt.git] / src / Graphic3d / Graphic3d_Group_10.cxx
1
2 // File         Graphic3d_Group_10.cxx (Text)
3 // Created      Fevrier 1992
4 // Author       NW,JPB,CAL
5
6 //-Copyright    MatraDatavision 1991,1992
7
8 //-Version      
9
10 //-Design       Declaration des variables specifiques aux groupes
11 //              de primitives
12
13 //-Warning      Un groupe est defini dans une structure
14 //              Il s'agit de la plus petite entite editable
15
16 //-References   
17
18 //-Language     C++ 2.0
19
20 //-Declarations
21
22 // for the class
23 #include <Graphic3d_Group.jxx>
24 #include <Graphic3d_Group.pxx>
25
26 #include <TCollection_AsciiString.hxx>
27
28 //-Methods, in order
29
30 void Graphic3d_Group::Text (
31                        const Standard_CString AText,
32                        const Graphic3d_Vertex& APoint,
33                        const Standard_Real AHeight,
34                        const Quantity_PlaneAngle AAngle,
35                        const Graphic3d_TextPath ATp,
36                        const Graphic3d_HorizontalTextAlignment AHta,
37                        const Graphic3d_VerticalTextAlignment AVta,
38                        const Standard_Boolean EvalMinMax
39                       ) {
40
41         if (IsDeleted ()) return;
42
43         MyIsEmpty       = Standard_False;
44
45         // Min-Max Update
46         if (EvalMinMax) {
47 Standard_Real X, Y, Z;
48                 APoint.Coord (X, Y, Z);
49                 if (X < MyBounds.XMin) MyBounds.XMin    = Standard_ShortReal (X);
50                 if (Y < MyBounds.YMin) MyBounds.YMin    = Standard_ShortReal (Y);
51                 if (Z < MyBounds.ZMin) MyBounds.ZMin    = Standard_ShortReal (Z);
52                 if (X > MyBounds.XMax) MyBounds.XMax    = Standard_ShortReal (X);
53                 if (Y > MyBounds.YMax) MyBounds.YMax    = Standard_ShortReal (Y);
54                 if (Z > MyBounds.ZMax) MyBounds.ZMax    = Standard_ShortReal (Z);
55         }
56
57         MyGraphicDriver->Text
58 (MyCGroup, AText, APoint, AHeight, AAngle, ATp, AHta, AVta, EvalMinMax);
59
60         Update ();
61
62 }
63
64 void Graphic3d_Group::Text (
65                        const Standard_CString AText, 
66                        const Graphic3d_Vertex& APoint, 
67                        const Standard_Real AHeight, 
68                        const Standard_Boolean EvalMinMax
69                       ) {
70
71         if (IsDeleted ()) return;
72
73         MyIsEmpty       = Standard_False;
74
75         // Min-Max Update
76         if (EvalMinMax) {
77 Standard_Real X, Y, Z;
78                 APoint.Coord (X, Y, Z);
79                 if (X < MyBounds.XMin) MyBounds.XMin    = Standard_ShortReal (X);
80                 if (Y < MyBounds.YMin) MyBounds.YMin    = Standard_ShortReal (Y);
81                 if (Z < MyBounds.ZMin) MyBounds.ZMin    = Standard_ShortReal (Z);
82                 if (X > MyBounds.XMax) MyBounds.XMax    = Standard_ShortReal (X);
83                 if (Y > MyBounds.YMax) MyBounds.YMax    = Standard_ShortReal (Y);
84                 if (Z > MyBounds.ZMax) MyBounds.ZMax    = Standard_ShortReal (Z);
85         }
86
87         MyGraphicDriver->Text (MyCGroup, AText, APoint, AHeight, EvalMinMax);
88
89         Update ();
90
91 }
92
93 void Graphic3d_Group::Text (
94                        const TCollection_ExtendedString& AText, 
95                        const Graphic3d_Vertex& APoint, 
96                        const Standard_Real AHeight, 
97                        const Quantity_PlaneAngle AAngle, 
98                        const Graphic3d_TextPath ATp, 
99                        const Graphic3d_HorizontalTextAlignment AHta, 
100                        const Graphic3d_VerticalTextAlignment AVta, 
101                        const Standard_Boolean EvalMinMax
102                       ) {
103
104         if (IsDeleted ()) return;
105
106         if (! AText.IsAscii ()) return;
107
108         MyIsEmpty       = Standard_False;
109
110         // Min-Max Update
111         if (EvalMinMax) {
112 Standard_Real X, Y, Z;
113                 APoint.Coord (X, Y, Z);
114                 if (X < MyBounds.XMin) MyBounds.XMin    = Standard_ShortReal (X);
115                 if (Y < MyBounds.YMin) MyBounds.YMin    = Standard_ShortReal (Y);
116                 if (Z < MyBounds.ZMin) MyBounds.ZMin    = Standard_ShortReal (Z);
117                 if (X > MyBounds.XMax) MyBounds.XMax    = Standard_ShortReal (X);
118                 if (Y > MyBounds.YMax) MyBounds.YMax    = Standard_ShortReal (Y);
119                 if (Z > MyBounds.ZMax) MyBounds.ZMax    = Standard_ShortReal (Z);
120         }
121
122         MyGraphicDriver->Text
123 (MyCGroup, AText, APoint, AHeight, AAngle, ATp, AHta, AVta, EvalMinMax);
124
125         Update ();
126
127 }
128
129 void Graphic3d_Group::Text (
130                        const TCollection_ExtendedString& AText, 
131                        const Graphic3d_Vertex& APoint, 
132                        const Standard_Real AHeight, 
133                        const Standard_Boolean EvalMinMax
134                       ) {
135
136         if (IsDeleted ()) return;
137
138         if (! AText.IsAscii ()) return;
139
140         MyIsEmpty       = Standard_False;
141
142         // Min-Max Update
143         if (EvalMinMax) {
144 Standard_Real X, Y, Z;
145                 APoint.Coord (X, Y, Z);
146                 if (X < MyBounds.XMin) MyBounds.XMin    = Standard_ShortReal (X);
147                 if (Y < MyBounds.YMin) MyBounds.YMin    = Standard_ShortReal (Y);
148                 if (Z < MyBounds.ZMin) MyBounds.ZMin    = Standard_ShortReal (Z);
149                 if (X > MyBounds.XMax) MyBounds.XMax    = Standard_ShortReal (X);
150                 if (Y > MyBounds.YMax) MyBounds.YMax    = Standard_ShortReal (Y);
151                 if (Z > MyBounds.ZMax) MyBounds.ZMax    = Standard_ShortReal (Z);
152         }
153
154         MyGraphicDriver->Text (MyCGroup, AText, APoint, AHeight, EvalMinMax);
155
156         Update ();
157
158 }