0022792: Globally defined symbol PI conflicts with VTK definition (Intel compiler)
[occt.git] / src / IGESDimen / IGESDimen_ToolNewGeneralNote.cxx
1 //--------------------------------------------------------------------
2 //
3 //  File Name : IGESDimen_NewGeneralNote.cxx
4 //  Date      :
5 //  Author    : CKY / Contract Toubro-Larsen
6 //  Copyright : MATRA-DATAVISION 1993
7 //
8 //--------------------------------------------------------------------
9
10 #include <IGESDimen_ToolNewGeneralNote.ixx>
11 #include <IGESData_ParamCursor.hxx>
12 #include <gp_XYZ.hxx>
13 #include <IGESData_IGESEntity.hxx>
14 #include <TCollection_HAsciiString.hxx>
15 #include <TColgp_HArray1OfXYZ.hxx>
16 #include <IGESData_HArray1OfIGESEntity.hxx>
17 #include <Interface_HArray1OfHAsciiString.hxx>
18 #include <TColStd_HArray1OfInteger.hxx>
19 #include <TColStd_HArray1OfReal.hxx>
20 #include <IGESData_Dump.hxx>
21 #include <Interface_Macros.hxx>
22 #include <stdio.h>
23
24
25 IGESDimen_ToolNewGeneralNote::IGESDimen_ToolNewGeneralNote ()    {  }
26
27
28 void  IGESDimen_ToolNewGeneralNote::ReadOwnParams
29   (const Handle(IGESDimen_NewGeneralNote)& ent,
30    const Handle(IGESData_IGESReaderData)& IR, IGESData_ParamReader& PR) const
31
32   //Standard_Boolean st; //szv#4:S4163:12Mar99 moved down
33
34   Standard_Integer nbval;
35   Standard_Real width; 
36   Standard_Real height; 
37   Standard_Integer justifyCode;
38   gp_XYZ areaLoc; 
39   Standard_Real areaRotationAngle; 
40   gp_XYZ baseLinePos;
41   Standard_Real normalInterlineSpace; 
42   Handle(TColStd_HArray1OfInteger) charDisplays;
43   Handle(TColStd_HArray1OfReal) charWidths; 
44   Handle(TColStd_HArray1OfReal) charHeights; 
45   Handle(TColStd_HArray1OfReal) interCharSpaces;
46   Handle(TColStd_HArray1OfReal) interlineSpaces; 
47   Handle(TColStd_HArray1OfInteger) fontStyles;
48   Handle(TColStd_HArray1OfReal) charAngles; 
49   Handle(Interface_HArray1OfHAsciiString) controlCodeStrings;
50   Handle(TColStd_HArray1OfInteger) nbChars; 
51   Handle(TColStd_HArray1OfReal) boxWidths; 
52   Handle(TColStd_HArray1OfReal) boxHeights;
53   Handle(TColStd_HArray1OfInteger) charSetCodes; 
54   Handle(IGESData_HArray1OfIGESEntity) charSetEntities;
55   Handle(TColStd_HArray1OfReal) slantAngles; 
56   Handle(TColStd_HArray1OfReal) rotationAngles;
57   Handle(TColStd_HArray1OfInteger) mirrorFlags; 
58   Handle(TColStd_HArray1OfInteger) rotateFlags;
59   Handle(TColgp_HArray1OfXYZ) startPoints; 
60   Handle(Interface_HArray1OfHAsciiString) texts;
61
62   //szv#4:S4163:12Mar99 `st=` not needed
63   PR.ReadReal(PR.Current(), "Text Width", width);
64   PR.ReadReal(PR.Current(), "Text Height", height);
65   PR.ReadInteger(PR.Current(), "Justification Code", justifyCode);
66   PR.ReadXYZ(PR.CurrentList(1, 3), "Area Location Point", areaLoc);
67   PR.ReadReal(PR.Current(), "Area Rotation Angle", areaRotationAngle);
68   PR.ReadXYZ(PR.CurrentList(1, 3), "Base Line Position", baseLinePos);
69   PR.ReadReal(PR.Current(),"NormalInterline Spacing",normalInterlineSpace);
70
71   Standard_Boolean st = PR.ReadInteger(PR.Current(), "Number of Text Strings", nbval);
72   if (st && nbval > 0)
73     {
74       charDisplays         = new TColStd_HArray1OfInteger(1, nbval);
75       charWidths           = new TColStd_HArray1OfReal(1, nbval);
76       charHeights          = new TColStd_HArray1OfReal(1, nbval);
77       interCharSpaces      = new TColStd_HArray1OfReal(1, nbval);
78       interlineSpaces      = new TColStd_HArray1OfReal(1, nbval);
79       fontStyles           = new TColStd_HArray1OfInteger(1, nbval);
80       charAngles           = new TColStd_HArray1OfReal(1, nbval);
81       controlCodeStrings   = new Interface_HArray1OfHAsciiString(1, nbval);
82       nbChars              = new TColStd_HArray1OfInteger(1, nbval);
83       boxWidths            = new TColStd_HArray1OfReal(1, nbval);
84       boxHeights           = new TColStd_HArray1OfReal(1, nbval);
85       charSetCodes         = new TColStd_HArray1OfInteger(1, nbval);
86       charSetEntities      = new IGESData_HArray1OfIGESEntity(1,nbval);
87       slantAngles          = new TColStd_HArray1OfReal(1, nbval);
88       rotationAngles       = new TColStd_HArray1OfReal(1, nbval);
89       mirrorFlags          = new TColStd_HArray1OfInteger(1, nbval);
90       rotateFlags          = new TColStd_HArray1OfInteger(1, nbval);
91       startPoints          = new TColgp_HArray1OfXYZ(1, nbval);
92       texts                = new Interface_HArray1OfHAsciiString(1, nbval);
93     }
94   else  PR.AddFail("Number of Text Strings: Not Positive");
95
96   if (! charDisplays.IsNull())
97     for (Standard_Integer i = 1; i <= nbval; i++)
98       {
99         Standard_Integer charDisplay;
100         Standard_Real charWidth;
101         Standard_Real charHeight;
102         Standard_Real interCharSpace;
103         Standard_Real interlineSpace;
104         Standard_Integer fontStyle;
105         Standard_Real charAngle;
106         Handle(TCollection_HAsciiString) controlCodeString;
107         Standard_Integer nbChar;
108         Standard_Real boxWidth;
109         Standard_Real boxHeight;
110         Standard_Integer charSetCode;
111         Handle(IGESData_IGESEntity) charSetEntity;
112         Standard_Real slantAngle;
113         Standard_Real rotationAngle;
114         Standard_Integer mirrorFlag;
115         Standard_Integer rotateFlag;
116         gp_XYZ startPoint;
117         Handle(TCollection_HAsciiString) text;
118
119         //st = PR.ReadInteger(PR.Current(), "Character Display",charDisplay); //szv#4:S4163:12Mar99 moved in if
120         if (PR.ReadInteger(PR.Current(), "Character Display",charDisplay))
121           charDisplays->SetValue(i, charDisplay);
122
123         //st = PR.ReadReal(PR.Current(), "Character Width", charWidth); //szv#4:S4163:12Mar99 moved in if
124         if (PR.ReadReal(PR.Current(), "Character Width", charWidth))
125           charWidths->SetValue(i, charWidth);
126
127         //st = PR.ReadReal(PR.Current(), "Character Height", charHeight); //szv#4:S4163:12Mar99 moved in if
128         if (PR.ReadReal(PR.Current(), "Character Height", charHeight))
129           charHeights->SetValue(i, charHeight);
130
131         //st = PR.ReadReal(PR.Current(), "Inter-character space", interCharSpace); //szv#4:S4163:12Mar99 moved in if
132         if (PR.ReadReal(PR.Current(), "Inter-character space", interCharSpace))
133           interCharSpaces->SetValue(i, interCharSpace);
134
135         //st = PR.ReadReal(PR.Current(), "Interline space", interlineSpace); //szv#4:S4163:12Mar99 moved in if
136         if (PR.ReadReal(PR.Current(), "Interline space", interlineSpace))
137           interlineSpaces->SetValue(i, interlineSpace);
138
139         //st = PR.ReadInteger(PR.Current(), "Font Style", fontStyle); //szv#4:S4163:12Mar99 moved in if
140         if (PR.ReadInteger(PR.Current(), "Font Style", fontStyle))
141           fontStyles->SetValue(i, fontStyle);
142
143         //st = PR.ReadReal(PR.Current(), "Character Angle", charAngle); //szv#4:S4163:12Mar99 moved in if
144         if (PR.ReadReal(PR.Current(), "Character Angle", charAngle))
145           charAngles->SetValue(i, charAngle);
146
147         //st = PR.ReadText(PR.Current(),"Control Code String", controlCodeString); //szv#4:S4163:12Mar99 moved in if
148         if (PR.ReadText(PR.Current(),"Control Code String", controlCodeString))
149           controlCodeStrings->SetValue(i, controlCodeString);
150
151         //st = PR.ReadInteger(PR.Current(), "Number of Characters", nbChar); //szv#4:S4163:12Mar99 moved in if
152         if (PR.ReadInteger(PR.Current(), "Number of Characters", nbChar))
153           nbChars->SetValue(i, nbChar);
154
155         //st = PR.ReadReal(PR.Current(), "Box Width", boxWidth); //szv#4:S4163:12Mar99 moved in if
156         if (PR.ReadReal(PR.Current(), "Box Width", boxWidth))
157           boxWidths->SetValue(i, boxWidth);
158
159         //st = PR.ReadReal(PR.Current(), "Box Height", boxHeight); //szv#4:S4163:12Mar99 moved in if
160         if (PR.ReadReal(PR.Current(), "Box Height", boxHeight))
161           boxHeights->SetValue(i, boxHeight);
162
163         Standard_Integer curnum = PR.CurrentNumber();
164         if (PR.DefinedElseSkip())
165           {
166             // Reading fontCode(Integer, must be positive)
167             PR.ReadInteger(PR.Current(), "Character Set Interpretation Code",charSetCode); //szv#4:S4163:12Mar99 `st=` not needed
168             // Reading charSetEnt
169             if (charSetCode < 0) {
170               charSetEntity = PR.ParamEntity (IR,curnum);
171               if (charSetEntity.IsNull())
172                 PR.AddFail("Char Set Interpretation Entity : incorrect reference");
173               charSetEntities->SetValue(i, charSetEntity);
174               charSetCodes->SetValue(i, -1);
175             } else {
176               charSetCodes->SetValue(i, charSetCode);
177             }
178           }
179
180         else
181           charSetCodes->SetValue(i, 1);
182
183         if (PR.DefinedElseSkip())
184           {
185             //st = PR.ReadReal(PR.Current(), "Slant Angle", slantAngle); //szv#4:S4163:12Mar99 moved in if
186             if (PR.ReadReal(PR.Current(), "Slant Angle", slantAngle))
187               slantAngles->SetValue(i, slantAngle);
188           }
189         else
190           slantAngles->SetValue(i, M_PI/2);
191
192         //st = PR.ReadReal(PR.Current(), "Rotation Angle", rotationAngle); //szv#4:S4163:12Mar99 moved in if
193         if (PR.ReadReal(PR.Current(), "Rotation Angle", rotationAngle))
194           rotationAngles->SetValue(i, rotationAngle);
195
196         //st = PR.ReadInteger(PR.Current(), "Mirror Flag", mirrorFlag); //szv#4:S4163:12Mar99 moved in if
197         if (PR.ReadInteger(PR.Current(), "Mirror Flag", mirrorFlag))
198           mirrorFlags->SetValue(i, mirrorFlag);
199
200         //st = PR.ReadInteger(PR.Current(), "Rotate Flag", rotateFlag); //szv#4:S4163:12Mar99 moved in if
201         if (PR.ReadInteger(PR.Current(), "Rotate Flag", rotateFlag))
202           rotateFlags->SetValue(i, rotateFlag);
203
204         //st = PR.ReadXYZ(PR.CurrentList(1, 3), "Start Point", startPoint); //szv#4:S4163:12Mar99 moved in if
205         if (PR.ReadXYZ(PR.CurrentList(1, 3), "Start Point", startPoint))
206           startPoints->SetValue(i, startPoint);
207
208         //st = PR.ReadText(PR.Current(), "Text String", text); //szv#4:S4163:12Mar99 moved in if
209         if (PR.ReadText(PR.Current(), "Text String", text))
210           texts->SetValue(i, text);
211       }
212
213   DirChecker(ent).CheckTypeAndForm(PR.CCheck(),ent);
214   ent->Init
215     ( width, height, justifyCode, areaLoc, areaRotationAngle,baseLinePos,
216      normalInterlineSpace, charDisplays, charWidths, charHeights, 
217      interCharSpaces, interlineSpaces, fontStyles, charAngles, 
218      controlCodeStrings, nbChars, boxWidths, boxHeights, charSetCodes, 
219      charSetEntities, slantAngles, rotationAngles, mirrorFlags, rotateFlags,
220      startPoints, texts);
221 }
222
223 void  IGESDimen_ToolNewGeneralNote::WriteOwnParams
224   (const Handle(IGESDimen_NewGeneralNote)& ent, IGESData_IGESWriter& IW) const 
225
226   IW.Send(ent->TextWidth());
227   IW.Send(ent->TextHeight());
228   IW.Send(ent->JustifyCode());
229   IW.Send(ent->AreaLocation().X());
230   IW.Send(ent->AreaLocation().Y());
231   IW.Send(ent->AreaLocation().Z());
232   IW.Send(ent->AreaRotationAngle());
233   IW.Send(ent->BaseLinePosition().X());
234   IW.Send(ent->BaseLinePosition().Y());
235   IW.Send(ent->BaseLinePosition().Z());
236   IW.Send(ent->NormalInterlineSpace());
237   Standard_Integer nbval = ent->NbStrings();
238   IW.Send(nbval);
239
240   for (Standard_Integer i = 1; i <= nbval; i++)
241     {
242       IW.Send(ent->CharacterDisplay(i));
243       IW.Send(ent->CharacterWidth(i));
244       IW.Send(ent->CharacterHeight(i));
245       IW.Send(ent->InterCharacterSpace(i));
246       IW.Send(ent->InterlineSpace(i));
247       IW.Send(ent->FontStyle(i));
248       IW.Send(ent->CharacterAngle(i));
249       IW.Send(ent->ControlCodeString(i));
250       IW.Send(ent->NbCharacters(i));
251       IW.Send(ent->BoxWidth(i));
252       IW.Send(ent->BoxHeight(i));
253       if (ent->IsCharSetEntity(i))
254         IW.Send(ent->CharSetEntity(i),Standard_True);  // negative
255       else
256         IW.Send(ent->CharSetCode(i));
257       IW.Send(ent->SlantAngle(i));
258       IW.Send(ent->RotationAngle(i));
259       IW.Send(ent->MirrorFlag(i));
260       IW.Send(ent->RotateFlag(i));
261       IW.Send((ent->StartPoint(i)).X());
262       IW.Send((ent->StartPoint(i)).Y());
263       IW.Send((ent->StartPoint(i)).Z());
264       IW.Send(ent->Text(i));
265     }
266 }
267
268 void  IGESDimen_ToolNewGeneralNote::OwnShared
269   (const Handle(IGESDimen_NewGeneralNote)& ent, Interface_EntityIterator& iter) const
270 {
271   Standard_Integer nbval = ent->NbStrings();
272   for (Standard_Integer i = 1; i <= nbval; i++)
273     {
274
275       if (ent->IsCharSetEntity(i))
276         iter.GetOneItem(ent->CharSetEntity(i));
277     }
278 }
279
280 void  IGESDimen_ToolNewGeneralNote::OwnCopy
281   (const Handle(IGESDimen_NewGeneralNote)& another,
282    const Handle(IGESDimen_NewGeneralNote)& ent, Interface_CopyTool& TC) const
283 {
284   Standard_Real    width                = another->TextWidth();
285   Standard_Real    height               = another->TextHeight();
286   Standard_Integer justifyCode          = another->JustifyCode();
287   gp_XYZ           areaLoc              = (another->AreaLocation()).XYZ();
288   Standard_Real    areaRotationAngle    = another->AreaRotationAngle();
289   gp_XYZ           baseLinePos          = (another->BaseLinePosition()).XYZ();
290   Standard_Real    normalInterlineSpace = another->NormalInterlineSpace();
291   Standard_Integer nbval                = another->NbStrings();
292
293   Handle(TColStd_HArray1OfInteger) charDisplays;
294   Handle(TColStd_HArray1OfReal) charWidths; 
295   Handle(TColStd_HArray1OfReal) charHeights; 
296   Handle(TColStd_HArray1OfReal) interCharSpaces;
297   Handle(TColStd_HArray1OfReal) interlineSpaces; 
298   Handle(TColStd_HArray1OfInteger) fontStyles;
299   Handle(TColStd_HArray1OfReal) charAngles; 
300   Handle(Interface_HArray1OfHAsciiString) controlCodeStrings;
301   Handle(TColStd_HArray1OfInteger) nbChars;
302   Handle(TColStd_HArray1OfReal) boxWidths; 
303   Handle(TColStd_HArray1OfReal) boxHeights;
304   Handle(TColStd_HArray1OfInteger) charSetCodes; 
305   Handle(IGESData_HArray1OfIGESEntity) charSetEntities;
306   Handle(TColStd_HArray1OfReal) slantAngles; 
307   Handle(TColStd_HArray1OfReal) rotationAngles;
308   Handle(TColStd_HArray1OfInteger) mirrorFlags; 
309   Handle(TColStd_HArray1OfInteger) rotateFlags;
310   Handle(TColgp_HArray1OfXYZ) startPoints; 
311   Handle(Interface_HArray1OfHAsciiString) texts; 
312
313   charDisplays         = new TColStd_HArray1OfInteger(1, nbval);
314   charWidths           = new TColStd_HArray1OfReal   (1, nbval);
315   charHeights          = new TColStd_HArray1OfReal   (1, nbval);
316   interCharSpaces      = new TColStd_HArray1OfReal   (1, nbval);
317   interlineSpaces      = new TColStd_HArray1OfReal   (1, nbval);
318   fontStyles           = new TColStd_HArray1OfInteger(1, nbval);
319   charAngles           = new TColStd_HArray1OfReal   (1, nbval);
320   controlCodeStrings   = new Interface_HArray1OfHAsciiString(1, nbval);
321   nbChars              = new TColStd_HArray1OfInteger(1, nbval);
322   boxWidths            = new TColStd_HArray1OfReal   (1, nbval);
323   boxHeights           = new TColStd_HArray1OfReal   (1, nbval);
324   charSetCodes         = new TColStd_HArray1OfInteger(1, nbval);
325   charSetEntities      = new IGESData_HArray1OfIGESEntity(1, nbval);
326   slantAngles          = new TColStd_HArray1OfReal   (1, nbval);
327   rotationAngles       = new TColStd_HArray1OfReal   (1, nbval);
328   mirrorFlags          = new TColStd_HArray1OfInteger(1, nbval);
329   rotateFlags          = new TColStd_HArray1OfInteger(1, nbval);
330   startPoints          = new TColgp_HArray1OfXYZ     (1, nbval);
331   texts                = new Interface_HArray1OfHAsciiString(1, nbval);
332
333   for (Standard_Integer i = 1; i <= nbval; i++)
334     {
335       charDisplays->SetValue    (i, another->CharacterDisplay(i));
336       charWidths->SetValue      (i, another->CharacterWidth(i));
337       charHeights->SetValue     (i, another->CharacterHeight(i));
338       interCharSpaces->SetValue (i, another->InterCharacterSpace(i));
339       interlineSpaces->SetValue (i, another->InterlineSpace(i));
340       fontStyles->SetValue      (i, another->FontStyle(i));
341       charAngles->SetValue      (i, another->CharacterAngle(i));
342       controlCodeStrings->SetValue
343         (i, new TCollection_HAsciiString(another->ControlCodeString(i)));
344       nbChars->SetValue         (i, another->NbCharacters(i));
345       boxWidths->SetValue       (i, another->BoxWidth(i));
346       boxHeights->SetValue      (i, another->BoxHeight(i));
347
348       if (another->IsCharSetEntity(i)) {
349         DeclareAndCast(IGESData_IGESEntity, charSetEntity,
350                        TC.Transferred(another->CharSetEntity(i)));
351         charSetEntities->SetValue(i, charSetEntity);
352       }
353       else  charSetCodes->SetValue(i, another->CharSetCode(i));
354
355       slantAngles->SetValue     (i, another->SlantAngle(i));
356       rotationAngles->SetValue  (i, another->RotationAngle(i));
357       mirrorFlags->SetValue     (i, another->MirrorFlag(i));
358       rotateFlags->SetValue     (i, another->RotateFlag(i));
359       startPoints->SetValue     (i, another->StartPoint(i).XYZ());
360       texts->SetValue
361          (i, new TCollection_HAsciiString(another->Text(i)));
362     }
363
364   ent->Init (width, height, justifyCode, areaLoc, areaRotationAngle, baseLinePos,
365              normalInterlineSpace, charDisplays, charWidths, charHeights, 
366              interCharSpaces, interlineSpaces, fontStyles, charAngles, 
367              controlCodeStrings,nbChars, boxWidths, boxHeights, charSetCodes,
368              charSetEntities, slantAngles, rotationAngles, mirrorFlags,
369              rotateFlags, startPoints, texts);
370   
371 }
372
373 IGESData_DirChecker  IGESDimen_ToolNewGeneralNote::DirChecker
374   (const Handle(IGESDimen_NewGeneralNote)& /* ent */ ) const 
375
376   IGESData_DirChecker DC (213, 0);
377   DC.Structure(IGESData_DefVoid);
378   DC.LineFont(IGESData_DefValue);
379   DC.LineWeight(IGESData_DefValue);
380   DC.Color(IGESData_DefAny);
381   DC.UseFlagRequired(1);
382   DC.HierarchyStatusIgnored();
383   return DC;
384 }
385
386 void  IGESDimen_ToolNewGeneralNote::OwnCheck
387   (const Handle(IGESDimen_NewGeneralNote)& ent,
388    const Interface_ShareTool& , Handle(Interface_Check)& ach) const 
389 {
390
391   Standard_Integer jcode = ent->JustifyCode();
392   if ((jcode < 0) || (jcode > 3))
393     ach->AddFail("Justify Code != 0, 1, 2, 3");
394   Standard_Integer upper = ent->NbStrings();
395   for (Standard_Integer i = 1; i <= upper; i ++)
396     {
397       if (ent->NbCharacters(i) != ent->Text(i)->Length())
398         {
399           char mess[80];
400           sprintf(mess,"%d : Number of Characters != Length of Text String",i);
401           ach->AddFail(mess);
402         }
403
404       Standard_Integer charcode = ent->CharSetCode(i);
405       if ( (charcode >= 0) && (charcode != 1) &&
406           ((charcode < 1001) || (charcode > 1003)))
407         {
408           char mess[80];
409           sprintf(mess, "%d : Character Set Code != 1, 1001, 1002, 1003",i);
410           ach->AddFail(mess);
411         }
412
413       Standard_Integer chardisp = ent->CharacterDisplay(i);
414       if ((chardisp < 0) || (chardisp > 1))
415         {
416           char mess[80];
417           sprintf(mess, "%d : Character Display != 0, 1",i);
418           ach->AddFail(mess);
419         }
420
421       Standard_Integer mflag = ent->MirrorFlag(i);
422       if ((mflag < 0) || (mflag > 2))
423         {
424           char mess[80];
425           sprintf(mess, "%d : Mirror flag != 0, 1, 2",i);
426           ach->AddFail(mess);
427         }
428
429       Standard_Integer rflag = ent->RotateFlag(i);
430       if ((rflag < 0) || (rflag > 1))
431         {
432           char mess[80];
433           sprintf(mess, "%d : Rotate flag != 0, 1",i);
434           ach->AddFail(mess);
435         }
436     }
437 }
438
439 void  IGESDimen_ToolNewGeneralNote::OwnDump
440   (const Handle(IGESDimen_NewGeneralNote)& ent, const IGESData_IGESDumper& dumper,
441    const Handle(Message_Messenger)& S, const Standard_Integer level) const 
442
443   Standard_Integer sublevel = (level > 4) ? 1 : 0;
444   Standard_Integer nbval = ent->NbStrings();
445
446   S << "IGESDimen_NewGeneralNote" << endl;
447   S << "Text Area  : Width : " << ent->TextWidth() << "  ";
448   S << "Height : " << ent->TextHeight() << "  ";
449   S << "Justification Code  : " << ent->JustifyCode() << endl;
450   S << "Text Area Location Point : ";
451   IGESData_DumpXYZL(S,level, ent->AreaLocation(), ent->Location());
452   S << "Rotation Angle of Text : " << ent->AreaRotationAngle() << endl;
453   S << "Base Line Position : ";
454   IGESData_DumpXYZL(S,level, ent->BaseLinePosition(), ent->Location());
455   S << "Normal Interline Spacing : " << ent->NormalInterlineSpace() << endl;
456   S << "Number of Text Strings : " << nbval << endl;
457
458   S << "Character Display : " << endl; 
459   S << "Character Width : " << endl; 
460   S << "Character Height : " << endl; 
461   S << "Inter Character Spacing : " << endl; 
462   S << "Interline Spacing : " << endl; 
463   S << "Font Styles : " << endl; 
464   S << "Character Angle : " << endl; 
465   S << "Control Code String : " << endl; 
466   S << "Number of Characters : " << endl; 
467   S << "Box Widths : " << endl; 
468   S << "Box Heights : " << endl; 
469   S << "Character Set Codes : " << endl; 
470   S << "Character Set Entities : " << endl; 
471   S << "Slant Angles : " << endl; 
472   S << "Rotation Angles : " << endl; 
473   S << "Mirror Flags : " << endl; 
474   S << "Rotate Flags : " << endl; 
475   S << "Start Points : " << endl; 
476   S << "Texts : "; 
477   IGESData_DumpVals(S,-level,1, nbval, ent->NbCharacters);
478   S << endl;
479   if (level > 4)
480     {
481       S << "Details of each String" << endl;
482       for ( Standard_Integer i = 1; i <= nbval; i++)
483         {
484           S << "[" << i << "]: " << endl;
485           S << "Character Display : " << ent->CharacterDisplay(i) << "  ";
486           S << "Character Width   : " << ent->CharacterWidth(i)   << "  ";
487           S << "Character Height  : " << ent->CharacterHeight(i)  << endl;
488           S << "Inter Character Spacing : "<<ent->InterCharacterSpace(i)<<"  ";
489           S << "Interline Spacing : " << ent->InterlineSpace(i) << endl;
490           S << "Font Styles       : " << ent->FontStyle(i) << endl;
491           S << "Character Angle   : " << ent->CharacterAngle(i) << endl;
492           S << "Control Code String : " ;
493           IGESData_DumpString(S,ent->ControlCodeString(i));
494           S << endl;
495           S << "Number of Characters : " << ent->NbCharacters(i) << "  ";
496           S << "Box Width  : " << ent->BoxWidth(i)  << "  ";
497           S << "Box Height : " << ent->BoxHeight(i) << endl;
498           if (ent->IsCharSetEntity(i))
499             {
500               S << "Character Set Entity : ";
501               dumper.Dump (ent->CharSetEntity(i),S, sublevel);
502               S << endl;
503             }
504           else
505             S << "Character Set Code : " << ent->CharSetCode(i) << endl;
506
507           S << "Slant Angle : "    << ent->SlantAngle(i) << "  ";
508           S << "Rotation Angle : " << ent->RotationAngle(i) << "  ";
509           S << "Mirror Flag : "    << ent->MirrorFlag(i) << "  ";
510           S << "Rotate Flag : "    << ent->RotateFlag(i) << endl;
511           S << "Start Point : ";
512           IGESData_DumpXYZL(S,level, ent->StartPoint(i), ent->Location());
513           S << "Text : ";
514           IGESData_DumpString(S,ent->Text(i));
515           S << endl;
516         }
517     }
518   else S << endl;
519 }