1 // Created on: 1996-12-24
2 // Created by: Alexander BRIVIN
3 // Copyright (c) 1996-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16 
17 #ifndef _Vrml_AsciiText_HeaderFile
18 #define _Vrml_AsciiText_HeaderFile
19 
20 #include <Standard.hxx>
21 #include <Standard_Type.hxx>
22 
23 #include <TColStd_HArray1OfAsciiString.hxx>
24 #include <Standard_Real.hxx>
25 #include <Vrml_AsciiTextJustification.hxx>
26 #include <Standard_Transient.hxx>
27 #include <Standard_OStream.hxx>
28 
29 
30 class Vrml_AsciiText;
31 DEFINE_STANDARD_HANDLE(Vrml_AsciiText, Standard_Transient)
32 
33 //! defines a AsciiText node of VRML specifying geometry shapes.
34 //! This  node  represents  strings  of  text  characters  from  ASCII  coded
35 //! character  set. All subsequent strings advance y by -( size * spacing).
36 //! The justification field determines the placement of the strings in the x
37 //! dimension. LEFT (the default) places the left edge of each string at x=0.
38 //! CENTER places the center of each string at x=0. RIGHT places the right edge
39 //! of each string at x=0. Text is rendered from left to right, top to
40 //! bottom in the font set by FontStyle.
41 //! The  default  value  for  the  wigth  field  indicates  the  natural  width
42 //! should  be  used  for  that  string.
43 class Vrml_AsciiText : public Standard_Transient
44 {
45 
46 public:
47 
48 
49   Standard_EXPORT Vrml_AsciiText();
50 
51   Standard_EXPORT Vrml_AsciiText(const Handle(TColStd_HArray1OfAsciiString)& aString, const Standard_Real aSpacing, const Vrml_AsciiTextJustification aJustification, const Standard_Real aWidth);
52 
53   Standard_EXPORT void SetString (const Handle(TColStd_HArray1OfAsciiString)& aString);
54 
55   Standard_EXPORT Handle(TColStd_HArray1OfAsciiString) String() const;
56 
57   Standard_EXPORT void SetSpacing (const Standard_Real aSpacing);
58 
59   Standard_EXPORT Standard_Real Spacing() const;
60 
61   Standard_EXPORT void SetJustification (const Vrml_AsciiTextJustification aJustification);
62 
63   Standard_EXPORT Vrml_AsciiTextJustification Justification() const;
64 
65   Standard_EXPORT void SetWidth (const Standard_Real aWidth);
66 
67   Standard_EXPORT Standard_Real Width() const;
68 
69   Standard_EXPORT Standard_OStream& Print (Standard_OStream& anOStream) const;
70 
71 
72 
73 
74   DEFINE_STANDARD_RTTIEXT(Vrml_AsciiText,Standard_Transient)
75 
76 protected:
77 
78 
79 
80 
81 private:
82 
83 
84   Handle(TColStd_HArray1OfAsciiString) myString;
85   Standard_Real mySpacing;
86   Vrml_AsciiTextJustification myJustification;
87   Standard_Real myWidth;
88 
89 
90 };
91 
92 
93 
94 
95 
96 
97 
98 #endif // _Vrml_AsciiText_HeaderFile
99