29e2c6d2 |
1 | // Created on: 2014-11-10 |
2 | // Copyright (c) 2014 OPEN CASCADE SAS |
3 | // |
4 | // This file is part of Open CASCADE Technology software library. |
5 | // |
6 | // This library is free software; you can redistribute it and/or modify it under |
7 | // the terms of the GNU Lesser General Public License version 2.1 as published |
8 | // by the Free Software Foundation, with special exception defined in the file |
9 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
10 | // distribution for complete text of the license and disclaimer of any warranty. |
11 | // |
12 | // Alternatively, this file may be used under the terms of Open CASCADE |
13 | // commercial license or contractual agreement. |
14 | |
15 | #ifndef _AIS_TextLabel_HeaderFile |
16 | #define _AIS_TextLabel_HeaderFile |
17 | |
18 | #include <AIS_InteractiveObject.hxx> |
19 | |
20 | #include <gp_Pnt.hxx> |
ce01ec26 |
21 | #include <gp_Ax2.hxx> |
29e2c6d2 |
22 | #include <Graphic3d_VerticalTextAlignment.hxx> |
23 | #include <Graphic3d_HorizontalTextAlignment.hxx> |
24 | #include <Font_FontAspect.hxx> |
25 | #include <TCollection_ExtendedString.hxx> |
26 | |
27 | //! Presentation of the text. |
28 | class AIS_TextLabel : public AIS_InteractiveObject |
29 | { |
30 | public: |
31 | |
32 | //! Default constructor |
33 | Standard_EXPORT AIS_TextLabel(); |
34 | |
cc99be36 |
35 | //! Return TRUE for supported display mode. |
36 | virtual Standard_Boolean AcceptDisplayMode (const Standard_Integer theMode) const Standard_OVERRIDE { return theMode == 0; } |
37 | |
29e2c6d2 |
38 | //! Setup color of entire text. |
39 | Standard_EXPORT virtual void SetColor (const Quantity_Color& theColor) Standard_OVERRIDE; |
40 | |
85719f0e |
41 | //! Setup transparency within [0, 1] range. |
42 | Standard_EXPORT virtual void SetTransparency (const Standard_Real theValue) Standard_OVERRIDE; |
43 | |
44 | //! Removes the transparency setting. |
45 | virtual void UnsetTransparency() Standard_OVERRIDE { SetTransparency (0.0); } |
29e2c6d2 |
46 | |
b6472664 |
47 | //! Material has no effect for text label. |
48 | virtual void SetMaterial (const Graphic3d_MaterialAspect& ) Standard_OVERRIDE {} |
49 | |
29e2c6d2 |
50 | //! Setup text. |
51 | Standard_EXPORT void SetText (const TCollection_ExtendedString& theText); |
52 | |
53 | //! Setup position. |
54 | Standard_EXPORT void SetPosition (const gp_Pnt& thePosition); |
55 | |
56 | //! Setup horizontal justification. |
57 | Standard_EXPORT void SetHJustification (const Graphic3d_HorizontalTextAlignment theHJust); |
58 | |
59 | //! Setup vertical justification. |
60 | Standard_EXPORT void SetVJustification (const Graphic3d_VerticalTextAlignment theVJust); |
61 | |
62 | //! Setup angle. |
63 | Standard_EXPORT void SetAngle (const Standard_Real theAngle); |
64 | |
65 | //! Setup zoomable property. |
66 | Standard_EXPORT void SetZoomable (const Standard_Boolean theIsZoomable); |
67 | |
68 | //! Setup height. |
69 | Standard_EXPORT void SetHeight (const Standard_Real theHeight); |
70 | |
71 | //! Setup font aspect. |
72 | Standard_EXPORT void SetFontAspect (const Font_FontAspect theFontAspect); |
73 | |
74 | //! Setup font. |
75 | Standard_EXPORT void SetFont (Standard_CString theFont); |
76 | |
ce01ec26 |
77 | //! Setup label orientation in the model 3D space. |
78 | Standard_EXPORT void SetOrientation3D (const gp_Ax2& theOrientation); |
79 | |
80 | //! Reset label orientation in the model 3D space. |
81 | Standard_EXPORT void UnsetOrientation3D (); |
82 | |
83 | //! Returns position. |
84 | Standard_EXPORT const gp_Pnt& Position() const; |
85 | |
64943a51 |
86 | //! Returns the label text. |
87 | const TCollection_ExtendedString& Text() const { return myText; } |
88 | |
89 | //! Returns the font of the label text. |
90 | Standard_EXPORT const TCollection_AsciiString& FontName() const; |
91 | |
92 | //! Returns the font aspect of the label text. |
93 | Standard_EXPORT Font_FontAspect FontAspect() const; |
94 | |
ce01ec26 |
95 | //! Returns label orientation in the model 3D space. |
96 | Standard_EXPORT const gp_Ax2& Orientation3D() const; |
97 | |
98 | //! Returns true if the current text placement mode uses text orientation in the model 3D space. |
99 | Standard_EXPORT Standard_Boolean HasOrientation3D() const; |
100 | |
3f1eb0ab |
101 | Standard_EXPORT void SetFlipping (const Standard_Boolean theIsFlipping); |
102 | |
103 | Standard_EXPORT Standard_Boolean HasFlipping() const; |
104 | |
ab9e277f |
105 | //! Returns flag if text uses position as point of attach |
106 | Standard_Boolean HasOwnAnchorPoint() const { return myHasOwnAnchorPoint; } |
107 | |
108 | //! Set flag if text uses position as point of attach |
109 | void SetOwnAnchorPoint (const Standard_Boolean theOwnAnchorPoint) { myHasOwnAnchorPoint = theOwnAnchorPoint; } |
110 | |
61b0191c |
111 | //! Define the display type of the text. |
112 | //! |
113 | //! TODT_NORMAL Default display. Text only. |
114 | //! TODT_SUBTITLE There is a subtitle under the text. |
115 | //! TODT_DEKALE The text is displayed with a 3D style. |
116 | //! TODT_BLEND The text is displayed in XOR. |
117 | //! TODT_DIMENSION Dimension line under text will be invisible. |
118 | Standard_EXPORT void SetDisplayType (const Aspect_TypeOfDisplayText theDisplayType); |
119 | |
120 | //! Modifies the colour of the subtitle for the TODT_SUBTITLE TextDisplayType |
121 | //! and the colour of backgroubd for the TODT_DEKALE TextDisplayType. |
122 | Standard_EXPORT void SetColorSubTitle (const Quantity_Color& theColor); |
123 | |
29e2c6d2 |
124 | private: |
125 | |
126 | //! Compute |
127 | Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& thePresentationManager, |
128 | const Handle(Prs3d_Presentation)& thePresentation, |
129 | const Standard_Integer theMode) Standard_OVERRIDE; |
130 | |
131 | //! Compute selection |
132 | Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& theSelection, |
133 | const Standard_Integer theMode) Standard_OVERRIDE; |
134 | |
135 | protected: |
136 | |
137 | TCollection_ExtendedString myText; |
ce01ec26 |
138 | gp_Ax2 myOrientation3D; |
139 | Standard_Boolean myHasOrientation3D; |
ab9e277f |
140 | Standard_Boolean myHasOwnAnchorPoint; |
3f1eb0ab |
141 | Standard_Boolean myHasFlipping; |
29e2c6d2 |
142 | |
143 | public: |
144 | |
145 | //! CASCADE RTTI |
a3f6f591 |
146 | DEFINE_STANDARD_RTTIEXT(AIS_TextLabel,AIS_InteractiveObject) |
29e2c6d2 |
147 | |
148 | }; |
149 | |
150 | DEFINE_STANDARD_HANDLE(AIS_TextLabel, AIS_InteractiveObject) |
151 | |
152 | #endif // _AIS_TextLabel_HeaderFile |