0024855: Revision of parameters of standard materials
[occt.git] / src / Graphic3d / Graphic3d_AspectText3d.cxx
CommitLineData
b311480e 1// Created by: NW,JPB,CAL
2// Copyright (c) 1991-1999 Matra Datavision
973c2be1 3// Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 4//
973c2be1 5// This file is part of Open CASCADE Technology software library.
b311480e 6//
d5f74e42 7// This library is free software; you can redistribute it and/or modify it under
8// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 9// by the Free Software Foundation, with special exception defined in the file
10// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11// distribution for complete text of the license and disclaimer of any warranty.
b311480e 12//
973c2be1 13// Alternatively, this file may be used under the terms of Open CASCADE
14// commercial license or contractual agreement.
7fd59977 15
7fd59977 16// 30/11/98 ; FMN : S3819. Textes always visible.
17
7fd59977 18
19//-Version
20
81bba717 21//-Design Declaration of variables specific to the context
22// of trace of texts 3d
23
24//-Warning A context of trace of text is defined by :
25// - the font used
26// - the color
27// - the scale
28// - the space between characters
7fd59977 29
30//-References
31
32//-Language C++ 2.0
33
34//-Declarations
35
36// for the class
37#include <Graphic3d_AspectText3d.ixx>
38
39#include <TCollection_AsciiString.hxx>
40#include <OSD_Environment.hxx>
41
aff395a3 42#include <Font_NameOfFont.hxx>
7fd59977 43
44//-Aliases
45
46//-Global data definitions
47
48// -- la font utilisee
49// MyFont : NameOfFont;
50
51// -- la couleur
52// MyColor : Color;
53
54// -- l'echelle
55// MyFactor : Standard_Real;
56
57// -- l'espace entre caracteres
58// MySpace : Standard_Real;
59
60// -- le style
61// MyStyle : TypeOfStyleText;
62
63// -- le display type
64// MyDisplayType : TypeOfDisplayText;
65
66// -- la couleur du sous-titrage et pour le fond en mode decalage.
67// MyColorSubTitle : Color;
68
69//-Constructors
70
71//-Destructors
72
73//-Methods, in order
74
75
76
77Graphic3d_AspectText3d::Graphic3d_AspectText3d ():
aff395a3 78MyFont (Font_NOF_ASCII_MONO), MyColor (Quantity_NOC_YELLOW), MyFactor (1.0), MySpace (0.0), MyStyle (Aspect_TOST_NORMAL), MyDisplayType (Aspect_TODT_NORMAL), MyColorSubTitle (Quantity_NOC_WHITE) {
7fd59977 79 MyTextZoomable = Standard_False;
80 MyTextAngle = 0.0;
eeaaaefb 81 MyTextFontAspect = Font_FA_Regular;
7fd59977 82}
83
84Graphic3d_AspectText3d::Graphic3d_AspectText3d (
85 const Quantity_Color& AColor,
86 const Standard_CString AFont,
87 const Standard_Real AFactor,
88 const Standard_Real ASpace,
89 const Aspect_TypeOfStyleText AStyle,
90 const Aspect_TypeOfDisplayText ADisplayType):
91MyFont(AFont), MyColor (AColor), MyFactor (AFactor), MySpace (ASpace), MyStyle (AStyle), MyDisplayType(ADisplayType), MyColorSubTitle (Quantity_NOC_WHITE) {
92 MyTextZoomable = Standard_False;
93 MyTextAngle = 0.0;
eeaaaefb 94 MyTextFontAspect = Font_FA_Regular;
7fd59977 95 if(MyFont.Length() == 0)
aff395a3 96 MyFont.AssignCat(Font_NOF_ASCII_MONO);
7fd59977 97
98 if (AFactor <= 0.0)
99 Graphic3d_AspectTextDefinitionError::Raise
100 ("Bad value for TextScaleFactor");
101
102}
103
104void Graphic3d_AspectText3d::SetColor (const Quantity_Color& AColor) {
105
106 MyColor = AColor;
107
108}
109
110void Graphic3d_AspectText3d::SetExpansionFactor (const Standard_Real AFactor) {
111
112 if (AFactor <= 0.0)
113 Graphic3d_AspectTextDefinitionError::Raise
114 ("Bad value for TextScaleFactor");
115
116 MyFactor = AFactor;
117
118}
119
120void Graphic3d_AspectText3d::SetFont (const Standard_CString AFont) {
121
122
123 TCollection_AsciiString aTemp("");
124 if( !strlen(AFont))
aff395a3 125 aTemp.AssignCat(Font_NOF_ASCII_MONO);
7fd59977 126 else
127 aTemp.AssignCat(AFont);
128 MyFont = aTemp;
129}
130
131void Graphic3d_AspectText3d::SetSpace (const Standard_Real ASpace) {
132
133 MySpace = ASpace;
134
135}
136
137void Graphic3d_AspectText3d::SetStyle(const Aspect_TypeOfStyleText AStyle) {
138
139 MyStyle = AStyle;
140
141}
142
143void Graphic3d_AspectText3d::SetDisplayType(const Aspect_TypeOfDisplayText ADisplayType) {
144
145 MyDisplayType = ADisplayType;
146
147}
148
149void Graphic3d_AspectText3d::SetColorSubTitle (const Quantity_Color& AColor) {
150
151 MyColorSubTitle = AColor;
152
153
154}
155
156
157void Graphic3d_AspectText3d::SetTextZoomable(const Standard_Boolean AFlag)
158{
159
160 MyTextZoomable = AFlag;
161
162}
163
164Standard_Boolean Graphic3d_AspectText3d::GetTextZoomable() const
165{
166 return MyTextZoomable;
167}
168
169void Graphic3d_AspectText3d::SetTextAngle(const Standard_Real AAngle)
170{
171 MyTextAngle = AAngle;
172}
173
174Standard_Real Graphic3d_AspectText3d::GetTextAngle() const
175{
176 return MyTextAngle;
177}
178
eeaaaefb 179void Graphic3d_AspectText3d::SetTextFontAspect(const Font_FontAspect AFontAspect)
7fd59977 180{
181 MyTextFontAspect = AFontAspect;
182}
183
eeaaaefb 184Font_FontAspect Graphic3d_AspectText3d::GetTextFontAspect() const
7fd59977 185{
186 return MyTextFontAspect;
187}
188
189
190
191void Graphic3d_AspectText3d::Values (Quantity_Color& AColor, Standard_CString& AFont, Standard_Real& AFactor, Standard_Real& ASpace) const {
192
193 AColor = MyColor;
194 AFont = MyFont.ToCString();
195 AFactor = MyFactor;
196 ASpace = MySpace;
197
198}
199void Graphic3d_AspectText3d::Values (Quantity_Color& AColor, Standard_CString& AFont, Standard_Real& AFactor, Standard_Real& ASpace, Aspect_TypeOfStyleText& AStyle,Aspect_TypeOfDisplayText& ADisplayType,Quantity_Color& AColorSubTitle) const {
200
201 AColor = MyColor;
202 AFont = MyFont.ToCString();
203 AFactor = MyFactor;
204 ASpace = MySpace;
205 AStyle = MyStyle;
206 ADisplayType = MyDisplayType;
207 AColorSubTitle = MyColorSubTitle;
208
209}
210void Graphic3d_AspectText3d::Values (Quantity_Color& AColor, Standard_CString& AFont, Standard_Real& AFactor, Standard_Real& ASpace, Aspect_TypeOfStyleText& AStyle,Aspect_TypeOfDisplayText& ADisplayType,Quantity_Color& AColorSubTitle, Standard_Boolean& ATextZoomable,Standard_Real& ATextAngle ) const {
211
212 AColor = MyColor;
213 AFont = MyFont.ToCString();
214 AFactor = MyFactor;
215 ASpace = MySpace;
216 AStyle = MyStyle;
217 ADisplayType = MyDisplayType;
218 AColorSubTitle = MyColorSubTitle;
219
220 ATextZoomable = MyTextZoomable;
221 ATextAngle = MyTextAngle;
222
223}
224
225void Graphic3d_AspectText3d::Values ( Quantity_Color& AColor,
226 Standard_CString& AFont,
227 Standard_Real& AFactor,
228 Standard_Real& ASpace,
229 Aspect_TypeOfStyleText& AStyle,
230 Aspect_TypeOfDisplayText& ADisplayType,
231 Quantity_Color& AColorSubTitle,
232 Standard_Boolean& ATextZoomable,
233 Standard_Real& ATextAngle,
eeaaaefb 234 Font_FontAspect& ATextFontAspect ) const
7fd59977 235{
236
237 AColor = MyColor;
238 AFont = MyFont.ToCString();
239 AFactor = MyFactor;
240 ASpace = MySpace;
241 AStyle = MyStyle;
242 ADisplayType = MyDisplayType;
243 AColorSubTitle = MyColorSubTitle;
244
245 ATextZoomable = MyTextZoomable;
246 ATextAngle = MyTextAngle;
247 ATextFontAspect = MyTextFontAspect;
248
249}
250
30f0ad28 251void Graphic3d_AspectText3d::SetShaderProgram (const Handle(Graphic3d_ShaderProgram)& theProgram)
252{
253 MyShaderProgram = theProgram;
254}
7fd59977 255
30f0ad28 256const Handle(Graphic3d_ShaderProgram)& Graphic3d_AspectText3d::ShaderProgram() const
257{
258 return MyShaderProgram;
259}