summaryrefslogtreecommitdiff
path: root/src/Aspect/Aspect_FontMapEntry.cxx
blob: e931b991cb5f8c03b53dd57fc9d0ff9c9be6b972 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158

// File         Aspect_FontMapEntry.cxx
// Created      Septembre 1993
// Author       GG

//-Copyright    MatraDatavision 1991,1992

//-Version

//-Design       Declaration des variables specifiques aux Entries de
//              Fontures de texts

//-Warning      Une entry est definie par un index associee a une Font style

//-References

//-Language     C++ 2.0

//-Declarations

// for the class
#include <Aspect_FontMapEntry.ixx>
#include <Aspect_Units.hxx>

//-Aliases

//-Global data definitions

//      MyType                  : FontStyle from Aspect
//      MyIndex                 : Integer from Standard
//      MyTypeIsDef             : Boolean from Standard
//      MyIndexIsDef            : Boolean from Standard

//-Constructors

//-Destructors

//-Methods, in order

Aspect_FontMapEntry::Aspect_FontMapEntry() {

        MyTypeIsDef     = Standard_True;
        MyIndexIsDef    = Standard_True;
        MyIndex         = 0;
        MyType.SetValues (Aspect_TOF_DEFAULT,3.0 MILLIMETER);

}

Aspect_FontMapEntry::Aspect_FontMapEntry (const Standard_Integer index, const Aspect_FontStyle &style) {

        MyTypeIsDef     = Standard_True;
        MyIndexIsDef    = Standard_True;
        MyIndex         = index;
        MyType          = style;

}

Aspect_FontMapEntry::Aspect_FontMapEntry (const Aspect_FontMapEntry& entry) {

        if ( !entry.MyTypeIsDef || !entry.MyIndexIsDef ) {
                Aspect_BadAccess::Raise("Unallocated FontMapEntry") ;
        }
        else {
                MyTypeIsDef     = Standard_True;
                MyIndexIsDef    = Standard_True;
                MyIndex         = entry.MyIndex;
                MyType          = entry.MyType;
        }
}

void Aspect_FontMapEntry::SetValue (const Standard_Integer index, const Aspect_FontStyle &style) {

        MyTypeIsDef     = Standard_True;
        MyIndexIsDef    = Standard_True;
        MyIndex         = index;
        MyType          = style;

}

void Aspect_FontMapEntry::SetValue (const Aspect_FontMapEntry& entry) {

        if ( !entry.MyTypeIsDef || !entry.MyIndexIsDef ) {
                Aspect_BadAccess::Raise("Unallocated FontMapEntry") ;
        }
        else {
                MyTypeIsDef     = Standard_True;
                MyIndexIsDef    = Standard_True;
                MyIndex         = entry.MyIndex;
                MyType          = entry.MyType;
        }

}

void Aspect_FontMapEntry::SetType (const Aspect_FontStyle &style) {

        MyTypeIsDef     = Standard_True;
        MyType          = style;

}

const Aspect_FontStyle& Aspect_FontMapEntry::Type () const {

        if ( !MyTypeIsDef || !MyIndexIsDef ) 
                Aspect_BadAccess::Raise("Unallocated FontMapEntry") ;

        return MyType;

}

void Aspect_FontMapEntry::SetIndex (const Standard_Integer index) {

        MyTypeIsDef     = Standard_True;
        MyIndex         = index;

}

Standard_Integer Aspect_FontMapEntry::Index () const {

        if ( !MyTypeIsDef || !MyIndexIsDef ) 
                Aspect_BadAccess::Raise("Unallocated FontMapEntry");

        return MyIndex;

}

Standard_Boolean Aspect_FontMapEntry::IsAllocated () const {

        return ( MyTypeIsDef && MyIndexIsDef ) ; 

}

void Aspect_FontMapEntry::Free () {

        MyTypeIsDef     = Standard_False;
        MyIndexIsDef    = Standard_False;

}

void Aspect_FontMapEntry::Dump () const
{
  Aspect_TypeOfFont style = MyType.Style();
  Standard_CString string = MyType.Value();
  Standard_Real size = MyType.Size();
  Standard_Real slant = MyType.Slant();
  Standard_Integer length = MyType.Length();
  Standard_Boolean capsheight = MyType.CapsHeight();

  cout << " Aspect_FontMapEntry::Dump ()\n";
  cout << "      MyTypeIsDef : " << (MyTypeIsDef ? "True\n" : "False\n");
  cout << "      MyIndexIsDef : " << (MyIndexIsDef ? "True\n" : "False\n");
  cout << "      FontStyle : " << (Standard_Integer) style << " Size : " << size
       << " Slant : " << slant << endl;
  cout << "      CapsHeight : " << (capsheight ? "True\n" : "False\n");
  cout << "      FontStyle length : " << length << "\n";
  if( length ) cout << "      FontString : " << string << "\n";
  MyType.Dump ();
  cout << " ------------------------------" << endl << flush;
}