1 // Created by: CKY / Contract Toubro-Larsen
2 // Copyright (c) 1993-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 //--------------------------------------------------------------------
17 //--------------------------------------------------------------------
20 #include <IGESData_DirChecker.hxx>
21 #include <IGESData_Dump.hxx>
22 #include <IGESData_HArray1OfIGESEntity.hxx>
23 #include <IGESData_IGESDumper.hxx>
24 #include <IGESData_IGESEntity.hxx>
25 #include <IGESData_IGESReaderData.hxx>
26 #include <IGESData_IGESWriter.hxx>
27 #include <IGESData_ParamCursor.hxx>
28 #include <IGESData_ParamReader.hxx>
29 #include <IGESDimen_NewGeneralNote.hxx>
30 #include <IGESDimen_ToolNewGeneralNote.hxx>
31 #include <Interface_Check.hxx>
32 #include <Interface_CopyTool.hxx>
33 #include <Interface_EntityIterator.hxx>
34 #include <Interface_HArray1OfHAsciiString.hxx>
35 #include <Interface_Macros.hxx>
36 #include <Interface_ShareTool.hxx>
37 #include <Message_Messenger.hxx>
38 #include <Standard_DomainError.hxx>
39 #include <TColgp_HArray1OfXYZ.hxx>
40 #include <TCollection_HAsciiString.hxx>
41 #include <TColStd_HArray1OfInteger.hxx>
42 #include <TColStd_HArray1OfReal.hxx>
45 IGESDimen_ToolNewGeneralNote::IGESDimen_ToolNewGeneralNote () { }
48 void IGESDimen_ToolNewGeneralNote::ReadOwnParams
49 (const Handle(IGESDimen_NewGeneralNote)& ent,
50 const Handle(IGESData_IGESReaderData)& IR, IGESData_ParamReader& PR) const
52 //Standard_Boolean st; //szv#4:S4163:12Mar99 moved down
54 Standard_Integer nbval;
57 Standard_Integer justifyCode;
59 Standard_Real areaRotationAngle;
61 Standard_Real normalInterlineSpace;
62 Handle(TColStd_HArray1OfInteger) charDisplays;
63 Handle(TColStd_HArray1OfReal) charWidths;
64 Handle(TColStd_HArray1OfReal) charHeights;
65 Handle(TColStd_HArray1OfReal) interCharSpaces;
66 Handle(TColStd_HArray1OfReal) interlineSpaces;
67 Handle(TColStd_HArray1OfInteger) fontStyles;
68 Handle(TColStd_HArray1OfReal) charAngles;
69 Handle(Interface_HArray1OfHAsciiString) controlCodeStrings;
70 Handle(TColStd_HArray1OfInteger) nbChars;
71 Handle(TColStd_HArray1OfReal) boxWidths;
72 Handle(TColStd_HArray1OfReal) boxHeights;
73 Handle(TColStd_HArray1OfInteger) charSetCodes;
74 Handle(IGESData_HArray1OfIGESEntity) charSetEntities;
75 Handle(TColStd_HArray1OfReal) slantAngles;
76 Handle(TColStd_HArray1OfReal) rotationAngles;
77 Handle(TColStd_HArray1OfInteger) mirrorFlags;
78 Handle(TColStd_HArray1OfInteger) rotateFlags;
79 Handle(TColgp_HArray1OfXYZ) startPoints;
80 Handle(Interface_HArray1OfHAsciiString) texts;
82 //szv#4:S4163:12Mar99 `st=` not needed
83 PR.ReadReal(PR.Current(), "Text Width", width);
84 PR.ReadReal(PR.Current(), "Text Height", height);
85 PR.ReadInteger(PR.Current(), "Justification Code", justifyCode);
86 PR.ReadXYZ(PR.CurrentList(1, 3), "Area Location Point", areaLoc);
87 PR.ReadReal(PR.Current(), "Area Rotation Angle", areaRotationAngle);
88 PR.ReadXYZ(PR.CurrentList(1, 3), "Base Line Position", baseLinePos);
89 PR.ReadReal(PR.Current(),"NormalInterline Spacing",normalInterlineSpace);
91 Standard_Boolean st = PR.ReadInteger(PR.Current(), "Number of Text Strings", nbval);
94 charDisplays = new TColStd_HArray1OfInteger(1, nbval);
95 charWidths = new TColStd_HArray1OfReal(1, nbval);
96 charHeights = new TColStd_HArray1OfReal(1, nbval);
97 interCharSpaces = new TColStd_HArray1OfReal(1, nbval);
98 interlineSpaces = new TColStd_HArray1OfReal(1, nbval);
99 fontStyles = new TColStd_HArray1OfInteger(1, nbval);
100 charAngles = new TColStd_HArray1OfReal(1, nbval);
101 controlCodeStrings = new Interface_HArray1OfHAsciiString(1, nbval);
102 nbChars = new TColStd_HArray1OfInteger(1, nbval);
103 boxWidths = new TColStd_HArray1OfReal(1, nbval);
104 boxHeights = new TColStd_HArray1OfReal(1, nbval);
105 charSetCodes = new TColStd_HArray1OfInteger(1, nbval);
106 charSetEntities = new IGESData_HArray1OfIGESEntity(1,nbval);
107 slantAngles = new TColStd_HArray1OfReal(1, nbval);
108 rotationAngles = new TColStd_HArray1OfReal(1, nbval);
109 mirrorFlags = new TColStd_HArray1OfInteger(1, nbval);
110 rotateFlags = new TColStd_HArray1OfInteger(1, nbval);
111 startPoints = new TColgp_HArray1OfXYZ(1, nbval);
112 texts = new Interface_HArray1OfHAsciiString(1, nbval);
114 else PR.AddFail("Number of Text Strings: Not Positive");
116 if (! charDisplays.IsNull())
117 for (Standard_Integer i = 1; i <= nbval; i++)
119 Standard_Integer charDisplay;
120 Standard_Real charWidth;
121 Standard_Real charHeight;
122 Standard_Real interCharSpace;
123 Standard_Real interlineSpace;
124 Standard_Integer fontStyle;
125 Standard_Real charAngle;
126 Handle(TCollection_HAsciiString) controlCodeString;
127 Standard_Integer nbChar;
128 Standard_Real boxWidth;
129 Standard_Real boxHeight;
130 Standard_Integer charSetCode;
131 Handle(IGESData_IGESEntity) charSetEntity;
132 Standard_Real slantAngle;
133 Standard_Real rotationAngle;
134 Standard_Integer mirrorFlag;
135 Standard_Integer rotateFlag;
137 Handle(TCollection_HAsciiString) text;
139 //st = PR.ReadInteger(PR.Current(), "Character Display",charDisplay); //szv#4:S4163:12Mar99 moved in if
140 if (PR.ReadInteger(PR.Current(), "Character Display",charDisplay))
141 charDisplays->SetValue(i, charDisplay);
143 //st = PR.ReadReal(PR.Current(), "Character Width", charWidth); //szv#4:S4163:12Mar99 moved in if
144 if (PR.ReadReal(PR.Current(), "Character Width", charWidth))
145 charWidths->SetValue(i, charWidth);
147 //st = PR.ReadReal(PR.Current(), "Character Height", charHeight); //szv#4:S4163:12Mar99 moved in if
148 if (PR.ReadReal(PR.Current(), "Character Height", charHeight))
149 charHeights->SetValue(i, charHeight);
151 //st = PR.ReadReal(PR.Current(), "Inter-character space", interCharSpace); //szv#4:S4163:12Mar99 moved in if
152 if (PR.ReadReal(PR.Current(), "Inter-character space", interCharSpace))
153 interCharSpaces->SetValue(i, interCharSpace);
155 //st = PR.ReadReal(PR.Current(), "Interline space", interlineSpace); //szv#4:S4163:12Mar99 moved in if
156 if (PR.ReadReal(PR.Current(), "Interline space", interlineSpace))
157 interlineSpaces->SetValue(i, interlineSpace);
159 //st = PR.ReadInteger(PR.Current(), "Font Style", fontStyle); //szv#4:S4163:12Mar99 moved in if
160 if (PR.ReadInteger(PR.Current(), "Font Style", fontStyle))
161 fontStyles->SetValue(i, fontStyle);
163 //st = PR.ReadReal(PR.Current(), "Character Angle", charAngle); //szv#4:S4163:12Mar99 moved in if
164 if (PR.ReadReal(PR.Current(), "Character Angle", charAngle))
165 charAngles->SetValue(i, charAngle);
167 //st = PR.ReadText(PR.Current(),"Control Code String", controlCodeString); //szv#4:S4163:12Mar99 moved in if
168 if (PR.ReadText(PR.Current(),"Control Code String", controlCodeString))
169 controlCodeStrings->SetValue(i, controlCodeString);
171 //st = PR.ReadInteger(PR.Current(), "Number of Characters", nbChar); //szv#4:S4163:12Mar99 moved in if
172 if (PR.ReadInteger(PR.Current(), "Number of Characters", nbChar))
173 nbChars->SetValue(i, nbChar);
175 //st = PR.ReadReal(PR.Current(), "Box Width", boxWidth); //szv#4:S4163:12Mar99 moved in if
176 if (PR.ReadReal(PR.Current(), "Box Width", boxWidth))
177 boxWidths->SetValue(i, boxWidth);
179 //st = PR.ReadReal(PR.Current(), "Box Height", boxHeight); //szv#4:S4163:12Mar99 moved in if
180 if (PR.ReadReal(PR.Current(), "Box Height", boxHeight))
181 boxHeights->SetValue(i, boxHeight);
183 Standard_Integer curnum = PR.CurrentNumber();
184 if (PR.DefinedElseSkip())
186 // Reading fontCode(Integer, must be positive)
187 PR.ReadInteger(PR.Current(), "Character Set Interpretation Code",charSetCode); //szv#4:S4163:12Mar99 `st=` not needed
188 // Reading charSetEnt
189 if (charSetCode < 0) {
190 charSetEntity = PR.ParamEntity (IR,curnum);
191 if (charSetEntity.IsNull())
192 PR.AddFail("Char Set Interpretation Entity : incorrect reference");
193 charSetEntities->SetValue(i, charSetEntity);
194 charSetCodes->SetValue(i, -1);
196 charSetCodes->SetValue(i, charSetCode);
201 charSetCodes->SetValue(i, 1);
203 if (PR.DefinedElseSkip())
205 //st = PR.ReadReal(PR.Current(), "Slant Angle", slantAngle); //szv#4:S4163:12Mar99 moved in if
206 if (PR.ReadReal(PR.Current(), "Slant Angle", slantAngle))
207 slantAngles->SetValue(i, slantAngle);
210 slantAngles->SetValue(i, M_PI/2);
212 //st = PR.ReadReal(PR.Current(), "Rotation Angle", rotationAngle); //szv#4:S4163:12Mar99 moved in if
213 if (PR.ReadReal(PR.Current(), "Rotation Angle", rotationAngle))
214 rotationAngles->SetValue(i, rotationAngle);
216 //st = PR.ReadInteger(PR.Current(), "Mirror Flag", mirrorFlag); //szv#4:S4163:12Mar99 moved in if
217 if (PR.ReadInteger(PR.Current(), "Mirror Flag", mirrorFlag))
218 mirrorFlags->SetValue(i, mirrorFlag);
220 //st = PR.ReadInteger(PR.Current(), "Rotate Flag", rotateFlag); //szv#4:S4163:12Mar99 moved in if
221 if (PR.ReadInteger(PR.Current(), "Rotate Flag", rotateFlag))
222 rotateFlags->SetValue(i, rotateFlag);
224 //st = PR.ReadXYZ(PR.CurrentList(1, 3), "Start Point", startPoint); //szv#4:S4163:12Mar99 moved in if
225 if (PR.ReadXYZ(PR.CurrentList(1, 3), "Start Point", startPoint))
226 startPoints->SetValue(i, startPoint);
228 //st = PR.ReadText(PR.Current(), "Text String", text); //szv#4:S4163:12Mar99 moved in if
229 if (PR.ReadText(PR.Current(), "Text String", text))
230 texts->SetValue(i, text);
233 DirChecker(ent).CheckTypeAndForm(PR.CCheck(),ent);
235 ( width, height, justifyCode, areaLoc, areaRotationAngle,baseLinePos,
236 normalInterlineSpace, charDisplays, charWidths, charHeights,
237 interCharSpaces, interlineSpaces, fontStyles, charAngles,
238 controlCodeStrings, nbChars, boxWidths, boxHeights, charSetCodes,
239 charSetEntities, slantAngles, rotationAngles, mirrorFlags, rotateFlags,
243 void IGESDimen_ToolNewGeneralNote::WriteOwnParams
244 (const Handle(IGESDimen_NewGeneralNote)& ent, IGESData_IGESWriter& IW) const
246 IW.Send(ent->TextWidth());
247 IW.Send(ent->TextHeight());
248 IW.Send(ent->JustifyCode());
249 IW.Send(ent->AreaLocation().X());
250 IW.Send(ent->AreaLocation().Y());
251 IW.Send(ent->AreaLocation().Z());
252 IW.Send(ent->AreaRotationAngle());
253 IW.Send(ent->BaseLinePosition().X());
254 IW.Send(ent->BaseLinePosition().Y());
255 IW.Send(ent->BaseLinePosition().Z());
256 IW.Send(ent->NormalInterlineSpace());
257 Standard_Integer nbval = ent->NbStrings();
260 for (Standard_Integer i = 1; i <= nbval; i++)
262 IW.Send(ent->CharacterDisplay(i));
263 IW.Send(ent->CharacterWidth(i));
264 IW.Send(ent->CharacterHeight(i));
265 IW.Send(ent->InterCharacterSpace(i));
266 IW.Send(ent->InterlineSpace(i));
267 IW.Send(ent->FontStyle(i));
268 IW.Send(ent->CharacterAngle(i));
269 IW.Send(ent->ControlCodeString(i));
270 IW.Send(ent->NbCharacters(i));
271 IW.Send(ent->BoxWidth(i));
272 IW.Send(ent->BoxHeight(i));
273 if (ent->IsCharSetEntity(i))
274 IW.Send(ent->CharSetEntity(i),Standard_True); // negative
276 IW.Send(ent->CharSetCode(i));
277 IW.Send(ent->SlantAngle(i));
278 IW.Send(ent->RotationAngle(i));
279 IW.Send(ent->MirrorFlag(i));
280 IW.Send(ent->RotateFlag(i));
281 IW.Send((ent->StartPoint(i)).X());
282 IW.Send((ent->StartPoint(i)).Y());
283 IW.Send((ent->StartPoint(i)).Z());
284 IW.Send(ent->Text(i));
288 void IGESDimen_ToolNewGeneralNote::OwnShared
289 (const Handle(IGESDimen_NewGeneralNote)& ent, Interface_EntityIterator& iter) const
291 Standard_Integer nbval = ent->NbStrings();
292 for (Standard_Integer i = 1; i <= nbval; i++)
295 if (ent->IsCharSetEntity(i))
296 iter.GetOneItem(ent->CharSetEntity(i));
300 void IGESDimen_ToolNewGeneralNote::OwnCopy
301 (const Handle(IGESDimen_NewGeneralNote)& another,
302 const Handle(IGESDimen_NewGeneralNote)& ent, Interface_CopyTool& TC) const
304 Standard_Real width = another->TextWidth();
305 Standard_Real height = another->TextHeight();
306 Standard_Integer justifyCode = another->JustifyCode();
307 gp_XYZ areaLoc = (another->AreaLocation()).XYZ();
308 Standard_Real areaRotationAngle = another->AreaRotationAngle();
309 gp_XYZ baseLinePos = (another->BaseLinePosition()).XYZ();
310 Standard_Real normalInterlineSpace = another->NormalInterlineSpace();
311 Standard_Integer nbval = another->NbStrings();
313 Handle(TColStd_HArray1OfInteger) charDisplays;
314 Handle(TColStd_HArray1OfReal) charWidths;
315 Handle(TColStd_HArray1OfReal) charHeights;
316 Handle(TColStd_HArray1OfReal) interCharSpaces;
317 Handle(TColStd_HArray1OfReal) interlineSpaces;
318 Handle(TColStd_HArray1OfInteger) fontStyles;
319 Handle(TColStd_HArray1OfReal) charAngles;
320 Handle(Interface_HArray1OfHAsciiString) controlCodeStrings;
321 Handle(TColStd_HArray1OfInteger) nbChars;
322 Handle(TColStd_HArray1OfReal) boxWidths;
323 Handle(TColStd_HArray1OfReal) boxHeights;
324 Handle(TColStd_HArray1OfInteger) charSetCodes;
325 Handle(IGESData_HArray1OfIGESEntity) charSetEntities;
326 Handle(TColStd_HArray1OfReal) slantAngles;
327 Handle(TColStd_HArray1OfReal) rotationAngles;
328 Handle(TColStd_HArray1OfInteger) mirrorFlags;
329 Handle(TColStd_HArray1OfInteger) rotateFlags;
330 Handle(TColgp_HArray1OfXYZ) startPoints;
331 Handle(Interface_HArray1OfHAsciiString) texts;
333 charDisplays = new TColStd_HArray1OfInteger(1, nbval);
334 charWidths = new TColStd_HArray1OfReal (1, nbval);
335 charHeights = new TColStd_HArray1OfReal (1, nbval);
336 interCharSpaces = new TColStd_HArray1OfReal (1, nbval);
337 interlineSpaces = new TColStd_HArray1OfReal (1, nbval);
338 fontStyles = new TColStd_HArray1OfInteger(1, nbval);
339 charAngles = new TColStd_HArray1OfReal (1, nbval);
340 controlCodeStrings = new Interface_HArray1OfHAsciiString(1, nbval);
341 nbChars = new TColStd_HArray1OfInteger(1, nbval);
342 boxWidths = new TColStd_HArray1OfReal (1, nbval);
343 boxHeights = new TColStd_HArray1OfReal (1, nbval);
344 charSetCodes = new TColStd_HArray1OfInteger(1, nbval);
345 charSetEntities = new IGESData_HArray1OfIGESEntity(1, nbval);
346 slantAngles = new TColStd_HArray1OfReal (1, nbval);
347 rotationAngles = new TColStd_HArray1OfReal (1, nbval);
348 mirrorFlags = new TColStd_HArray1OfInteger(1, nbval);
349 rotateFlags = new TColStd_HArray1OfInteger(1, nbval);
350 startPoints = new TColgp_HArray1OfXYZ (1, nbval);
351 texts = new Interface_HArray1OfHAsciiString(1, nbval);
353 for (Standard_Integer i = 1; i <= nbval; i++)
355 charDisplays->SetValue (i, another->CharacterDisplay(i));
356 charWidths->SetValue (i, another->CharacterWidth(i));
357 charHeights->SetValue (i, another->CharacterHeight(i));
358 interCharSpaces->SetValue (i, another->InterCharacterSpace(i));
359 interlineSpaces->SetValue (i, another->InterlineSpace(i));
360 fontStyles->SetValue (i, another->FontStyle(i));
361 charAngles->SetValue (i, another->CharacterAngle(i));
362 controlCodeStrings->SetValue
363 (i, new TCollection_HAsciiString(another->ControlCodeString(i)));
364 nbChars->SetValue (i, another->NbCharacters(i));
365 boxWidths->SetValue (i, another->BoxWidth(i));
366 boxHeights->SetValue (i, another->BoxHeight(i));
368 if (another->IsCharSetEntity(i)) {
369 DeclareAndCast(IGESData_IGESEntity, charSetEntity,
370 TC.Transferred(another->CharSetEntity(i)));
371 charSetEntities->SetValue(i, charSetEntity);
373 else charSetCodes->SetValue(i, another->CharSetCode(i));
375 slantAngles->SetValue (i, another->SlantAngle(i));
376 rotationAngles->SetValue (i, another->RotationAngle(i));
377 mirrorFlags->SetValue (i, another->MirrorFlag(i));
378 rotateFlags->SetValue (i, another->RotateFlag(i));
379 startPoints->SetValue (i, another->StartPoint(i).XYZ());
381 (i, new TCollection_HAsciiString(another->Text(i)));
384 ent->Init (width, height, justifyCode, areaLoc, areaRotationAngle, baseLinePos,
385 normalInterlineSpace, charDisplays, charWidths, charHeights,
386 interCharSpaces, interlineSpaces, fontStyles, charAngles,
387 controlCodeStrings,nbChars, boxWidths, boxHeights, charSetCodes,
388 charSetEntities, slantAngles, rotationAngles, mirrorFlags,
389 rotateFlags, startPoints, texts);
393 IGESData_DirChecker IGESDimen_ToolNewGeneralNote::DirChecker
394 (const Handle(IGESDimen_NewGeneralNote)& /* ent */ ) const
396 IGESData_DirChecker DC (213, 0);
397 DC.Structure(IGESData_DefVoid);
398 DC.LineFont(IGESData_DefValue);
399 DC.LineWeight(IGESData_DefValue);
400 DC.Color(IGESData_DefAny);
401 DC.UseFlagRequired(1);
402 DC.HierarchyStatusIgnored();
406 void IGESDimen_ToolNewGeneralNote::OwnCheck
407 (const Handle(IGESDimen_NewGeneralNote)& ent,
408 const Interface_ShareTool& , Handle(Interface_Check)& ach) const
411 Standard_Integer jcode = ent->JustifyCode();
412 if ((jcode < 0) || (jcode > 3))
413 ach->AddFail("Justify Code != 0, 1, 2, 3");
414 Standard_Integer upper = ent->NbStrings();
415 for (Standard_Integer i = 1; i <= upper; i ++)
417 if (ent->NbCharacters(i) != ent->Text(i)->Length())
420 sprintf(mess,"%d : Number of Characters != Length of Text String",i);
424 Standard_Integer charcode = ent->CharSetCode(i);
425 if ( (charcode >= 0) && (charcode != 1) &&
426 ((charcode < 1001) || (charcode > 1003)))
429 sprintf(mess, "%d : Character Set Code != 1, 1001, 1002, 1003",i);
433 Standard_Integer chardisp = ent->CharacterDisplay(i);
434 if ((chardisp < 0) || (chardisp > 1))
437 sprintf(mess, "%d : Character Display != 0, 1",i);
441 Standard_Integer mflag = ent->MirrorFlag(i);
442 if ((mflag < 0) || (mflag > 2))
445 sprintf(mess, "%d : Mirror flag != 0, 1, 2",i);
449 Standard_Integer rflag = ent->RotateFlag(i);
450 if ((rflag < 0) || (rflag > 1))
453 sprintf(mess, "%d : Rotate flag != 0, 1",i);
459 void IGESDimen_ToolNewGeneralNote::OwnDump
460 (const Handle(IGESDimen_NewGeneralNote)& ent, const IGESData_IGESDumper& dumper,
461 const Handle(Message_Messenger)& S, const Standard_Integer level) const
463 Standard_Integer sublevel = (level > 4) ? 1 : 0;
464 Standard_Integer nbval = ent->NbStrings();
466 S << "IGESDimen_NewGeneralNote" << endl;
467 S << "Text Area : Width : " << ent->TextWidth() << " ";
468 S << "Height : " << ent->TextHeight() << " ";
469 S << "Justification Code : " << ent->JustifyCode() << endl;
470 S << "Text Area Location Point : ";
471 IGESData_DumpXYZL(S,level, ent->AreaLocation(), ent->Location());
472 S << "Rotation Angle of Text : " << ent->AreaRotationAngle() << endl;
473 S << "Base Line Position : ";
474 IGESData_DumpXYZL(S,level, ent->BaseLinePosition(), ent->Location());
475 S << "Normal Interline Spacing : " << ent->NormalInterlineSpace() << endl;
476 S << "Number of Text Strings : " << nbval << endl;
478 S << "Character Display : " << endl;
479 S << "Character Width : " << endl;
480 S << "Character Height : " << endl;
481 S << "Inter Character Spacing : " << endl;
482 S << "Interline Spacing : " << endl;
483 S << "Font Styles : " << endl;
484 S << "Character Angle : " << endl;
485 S << "Control Code String : " << endl;
486 S << "Number of Characters : " << endl;
487 S << "Box Widths : " << endl;
488 S << "Box Heights : " << endl;
489 S << "Character Set Codes : " << endl;
490 S << "Character Set Entities : " << endl;
491 S << "Slant Angles : " << endl;
492 S << "Rotation Angles : " << endl;
493 S << "Mirror Flags : " << endl;
494 S << "Rotate Flags : " << endl;
495 S << "Start Points : " << endl;
497 IGESData_DumpVals(S,-level,1, nbval, ent->NbCharacters);
501 S << "Details of each String" << endl;
502 for ( Standard_Integer i = 1; i <= nbval; i++)
504 S << "[" << i << "]: " << endl;
505 S << "Character Display : " << ent->CharacterDisplay(i) << " ";
506 S << "Character Width : " << ent->CharacterWidth(i) << " ";
507 S << "Character Height : " << ent->CharacterHeight(i) << endl;
508 S << "Inter Character Spacing : "<<ent->InterCharacterSpace(i)<<" ";
509 S << "Interline Spacing : " << ent->InterlineSpace(i) << endl;
510 S << "Font Styles : " << ent->FontStyle(i) << endl;
511 S << "Character Angle : " << ent->CharacterAngle(i) << endl;
512 S << "Control Code String : " ;
513 IGESData_DumpString(S,ent->ControlCodeString(i));
515 S << "Number of Characters : " << ent->NbCharacters(i) << " ";
516 S << "Box Width : " << ent->BoxWidth(i) << " ";
517 S << "Box Height : " << ent->BoxHeight(i) << endl;
518 if (ent->IsCharSetEntity(i))
520 S << "Character Set Entity : ";
521 dumper.Dump (ent->CharSetEntity(i),S, sublevel);
525 S << "Character Set Code : " << ent->CharSetCode(i) << endl;
527 S << "Slant Angle : " << ent->SlantAngle(i) << " ";
528 S << "Rotation Angle : " << ent->RotationAngle(i) << " ";
529 S << "Mirror Flag : " << ent->MirrorFlag(i) << " ";
530 S << "Rotate Flag : " << ent->RotateFlag(i) << endl;
531 S << "Start Point : ";
532 IGESData_DumpXYZL(S,level, ent->StartPoint(i), ent->Location());
534 IGESData_DumpString(S,ent->Text(i));