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 under
8 // the terms of the GNU Lesser General Public License 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.
18 //-Design Declaration of variables specific to the context
19 // of trace of texts 3d
20 //-Warning A context of trace of text is defined by :
24 // - the space between characters
30 #include <Font_NameOfFont.hxx>
31 #include <Graphic3d_AspectText3d.hxx>
32 #include <Graphic3d_AspectTextDefinitionError.hxx>
33 #include <OSD_Environment.hxx>
34 #include <Quantity_Color.hxx>
35 #include <Standard_Type.hxx>
36 #include <TCollection_AsciiString.hxx>
39 //-Global data definitions
40 // -- la font utilisee
41 // MyFont : NameOfFont;
45 // MyFactor : Standard_Real;
46 // -- l'espace entre caracteres
47 // MySpace : Standard_Real;
49 // MyStyle : TypeOfStyleText;
51 // MyDisplayType : TypeOfDisplayText;
52 // -- la couleur du sous-titrage et pour le fond en mode decalage.
53 // MyColorSubTitle : Color;
57 Graphic3d_AspectText3d::Graphic3d_AspectText3d ():
58 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) {
59 MyTextZoomable = Standard_False;
61 MyTextFontAspect = Font_FA_Regular;
64 Graphic3d_AspectText3d::Graphic3d_AspectText3d (
65 const Quantity_Color& AColor,
66 const Standard_CString AFont,
67 const Standard_Real AFactor,
68 const Standard_Real ASpace,
69 const Aspect_TypeOfStyleText AStyle,
70 const Aspect_TypeOfDisplayText ADisplayType):
71 MyFont(AFont), MyColor (AColor), MyFactor (AFactor), MySpace (ASpace), MyStyle (AStyle), MyDisplayType(ADisplayType), MyColorSubTitle (Quantity_NOC_WHITE) {
72 MyTextZoomable = Standard_False;
74 MyTextFontAspect = Font_FA_Regular;
75 if(MyFont.Length() == 0)
76 MyFont.AssignCat(Font_NOF_ASCII_MONO);
79 Graphic3d_AspectTextDefinitionError::Raise
80 ("Bad value for TextScaleFactor");
84 void Graphic3d_AspectText3d::SetColor (const Quantity_Color& AColor) {
90 void Graphic3d_AspectText3d::SetExpansionFactor (const Standard_Real AFactor) {
93 Graphic3d_AspectTextDefinitionError::Raise
94 ("Bad value for TextScaleFactor");
100 void Graphic3d_AspectText3d::SetFont (const Standard_CString AFont) {
103 TCollection_AsciiString aTemp("");
105 aTemp.AssignCat(Font_NOF_ASCII_MONO);
107 aTemp.AssignCat(AFont);
111 void Graphic3d_AspectText3d::SetSpace (const Standard_Real ASpace) {
117 void Graphic3d_AspectText3d::SetStyle(const Aspect_TypeOfStyleText AStyle) {
123 void Graphic3d_AspectText3d::SetDisplayType(const Aspect_TypeOfDisplayText ADisplayType) {
125 MyDisplayType = ADisplayType;
129 void Graphic3d_AspectText3d::SetColorSubTitle (const Quantity_Color& AColor) {
131 MyColorSubTitle = AColor;
137 void Graphic3d_AspectText3d::SetTextZoomable(const Standard_Boolean AFlag)
140 MyTextZoomable = AFlag;
144 Standard_Boolean Graphic3d_AspectText3d::GetTextZoomable() const
146 return MyTextZoomable;
149 void Graphic3d_AspectText3d::SetTextAngle(const Standard_Real AAngle)
151 MyTextAngle = AAngle;
154 Standard_Real Graphic3d_AspectText3d::GetTextAngle() const
159 void Graphic3d_AspectText3d::SetTextFontAspect(const Font_FontAspect AFontAspect)
161 MyTextFontAspect = AFontAspect;
164 Font_FontAspect Graphic3d_AspectText3d::GetTextFontAspect() const
166 return MyTextFontAspect;
171 void Graphic3d_AspectText3d::Values (Quantity_Color& AColor, Standard_CString& AFont, Standard_Real& AFactor, Standard_Real& ASpace) const {
174 AFont = MyFont.ToCString();
179 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 {
182 AFont = MyFont.ToCString();
186 ADisplayType = MyDisplayType;
187 AColorSubTitle = MyColorSubTitle;
190 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 {
193 AFont = MyFont.ToCString();
197 ADisplayType = MyDisplayType;
198 AColorSubTitle = MyColorSubTitle;
200 ATextZoomable = MyTextZoomable;
201 ATextAngle = MyTextAngle;
205 void Graphic3d_AspectText3d::Values ( Quantity_Color& AColor,
206 Standard_CString& AFont,
207 Standard_Real& AFactor,
208 Standard_Real& ASpace,
209 Aspect_TypeOfStyleText& AStyle,
210 Aspect_TypeOfDisplayText& ADisplayType,
211 Quantity_Color& AColorSubTitle,
212 Standard_Boolean& ATextZoomable,
213 Standard_Real& ATextAngle,
214 Font_FontAspect& ATextFontAspect ) const
218 AFont = MyFont.ToCString();
222 ADisplayType = MyDisplayType;
223 AColorSubTitle = MyColorSubTitle;
225 ATextZoomable = MyTextZoomable;
226 ATextAngle = MyTextAngle;
227 ATextFontAspect = MyTextFontAspect;
231 void Graphic3d_AspectText3d::SetShaderProgram (const Handle(Graphic3d_ShaderProgram)& theProgram)
233 MyShaderProgram = theProgram;
236 const Handle(Graphic3d_ShaderProgram)& Graphic3d_AspectText3d::ShaderProgram() const
238 return MyShaderProgram;