1 // Created by: NW,JPB,CAL
2 // Copyright (c) 1991-1999 Matra Datavision
3 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 // This file is part of Open CASCADE Technology software library.
7 // This library is free software; you can redistribute it and / or modify it
8 // under the terms of the GNU Lesser General Public version 2.1 as published
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.
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
16 // 30/11/98 ; FMN : S3819. Textes always visible.
21 //-Design Declaration of variables specific to the context
22 // of trace of texts 3d
24 //-Warning A context of trace of text is defined by :
28 // - the space between characters
37 #include <Graphic3d_AspectText3d.ixx>
39 #include <TCollection_AsciiString.hxx>
40 #include <OSD_Environment.hxx>
42 #include <Font_NameOfFont.hxx>
46 //-Global data definitions
48 // -- la font utilisee
49 // MyFont : NameOfFont;
55 // MyFactor : Standard_Real;
57 // -- l'espace entre caracteres
58 // MySpace : Standard_Real;
61 // MyStyle : TypeOfStyleText;
64 // MyDisplayType : TypeOfDisplayText;
66 // -- la couleur du sous-titrage et pour le fond en mode decalage.
67 // MyColorSubTitle : Color;
77 Graphic3d_AspectText3d::Graphic3d_AspectText3d ():
78 MyFont (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) {
79 MyTextZoomable = Standard_False;
81 MyTextFontAspect = Font_FA_Regular;
84 Graphic3d_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):
91 MyFont(AFont), MyColor (AColor), MyFactor (AFactor), MySpace (ASpace), MyStyle (AStyle), MyDisplayType(ADisplayType), MyColorSubTitle (Quantity_NOC_WHITE) {
92 MyTextZoomable = Standard_False;
94 MyTextFontAspect = Font_FA_Regular;
95 if(MyFont.Length() == 0)
96 MyFont.AssignCat(Font_NOF_ASCII_MONO);
99 Graphic3d_AspectTextDefinitionError::Raise
100 ("Bad value for TextScaleFactor");
104 void Graphic3d_AspectText3d::SetColor (const Quantity_Color& AColor) {
110 void Graphic3d_AspectText3d::SetExpansionFactor (const Standard_Real AFactor) {
113 Graphic3d_AspectTextDefinitionError::Raise
114 ("Bad value for TextScaleFactor");
120 void Graphic3d_AspectText3d::SetFont (const Standard_CString AFont) {
123 TCollection_AsciiString aTemp("");
125 aTemp.AssignCat(Font_NOF_ASCII_MONO);
127 aTemp.AssignCat(AFont);
131 void Graphic3d_AspectText3d::SetSpace (const Standard_Real ASpace) {
137 void Graphic3d_AspectText3d::SetStyle(const Aspect_TypeOfStyleText AStyle) {
143 void Graphic3d_AspectText3d::SetDisplayType(const Aspect_TypeOfDisplayText ADisplayType) {
145 MyDisplayType = ADisplayType;
149 void Graphic3d_AspectText3d::SetColorSubTitle (const Quantity_Color& AColor) {
151 MyColorSubTitle = AColor;
157 void Graphic3d_AspectText3d::SetTextZoomable(const Standard_Boolean AFlag)
160 MyTextZoomable = AFlag;
164 Standard_Boolean Graphic3d_AspectText3d::GetTextZoomable() const
166 return MyTextZoomable;
169 void Graphic3d_AspectText3d::SetTextAngle(const Standard_Real AAngle)
171 MyTextAngle = AAngle;
174 Standard_Real Graphic3d_AspectText3d::GetTextAngle() const
179 void Graphic3d_AspectText3d::SetTextFontAspect(const Font_FontAspect AFontAspect)
181 MyTextFontAspect = AFontAspect;
184 Font_FontAspect Graphic3d_AspectText3d::GetTextFontAspect() const
186 return MyTextFontAspect;
191 void Graphic3d_AspectText3d::Values (Quantity_Color& AColor, Standard_CString& AFont, Standard_Real& AFactor, Standard_Real& ASpace) const {
194 AFont = MyFont.ToCString();
199 void 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 {
202 AFont = MyFont.ToCString();
206 ADisplayType = MyDisplayType;
207 AColorSubTitle = MyColorSubTitle;
210 void 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 {
213 AFont = MyFont.ToCString();
217 ADisplayType = MyDisplayType;
218 AColorSubTitle = MyColorSubTitle;
220 ATextZoomable = MyTextZoomable;
221 ATextAngle = MyTextAngle;
225 void 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,
234 Font_FontAspect& ATextFontAspect ) const
238 AFont = MyFont.ToCString();
242 ADisplayType = MyDisplayType;
243 AColorSubTitle = MyColorSubTitle;
245 ATextZoomable = MyTextZoomable;
246 ATextAngle = MyTextAngle;
247 ATextFontAspect = MyTextFontAspect;
251 void Graphic3d_AspectText3d::SetShaderProgram (const Handle(Graphic3d_ShaderProgram)& theProgram)
253 MyShaderProgram = theProgram;
256 const Handle(Graphic3d_ShaderProgram)& Graphic3d_AspectText3d::ShaderProgram() const
258 return MyShaderProgram;