7fd59977 |
1 | //-------------------------------------------------------------------- |
2 | // |
3 | // File Name : IGESDimen_GeneralLabel.cxx |
4 | // Date : |
5 | // Author : CKY / Contract Toubro-Larsen |
6 | // Copyright : MATRA-DATAVISION 1993 |
7 | // |
8 | //-------------------------------------------------------------------- |
9 | |
10 | #include <IGESDimen_ToolGeneralLabel.ixx> |
11 | #include <IGESData_ParamCursor.hxx> |
12 | #include <IGESDimen_LeaderArrow.hxx> |
13 | #include <IGESDimen_GeneralNote.hxx> |
14 | #include <IGESDimen_HArray1OfLeaderArrow.hxx> |
15 | #include <IGESData_Dump.hxx> |
16 | #include <Interface_Macros.hxx> |
17 | |
18 | |
19 | IGESDimen_ToolGeneralLabel::IGESDimen_ToolGeneralLabel () { } |
20 | |
21 | |
22 | void IGESDimen_ToolGeneralLabel::ReadOwnParams |
23 | (const Handle(IGESDimen_GeneralLabel)& ent, |
24 | const Handle(IGESData_IGESReaderData)& IR, IGESData_ParamReader& PR) const |
25 | { |
26 | //Standard_Boolean st; //szv#4:S4163:12Mar99 moved down |
27 | |
28 | Handle(IGESDimen_GeneralNote) note; |
29 | Standard_Integer nbval; |
30 | Handle(IGESDimen_HArray1OfLeaderArrow) leaders; |
31 | |
32 | PR.ReadEntity(IR, PR.Current(), "General Note Entity", |
33 | STANDARD_TYPE(IGESDimen_GeneralNote),note); //szv#4:S4163:12Mar99 `st=` not needed |
34 | |
35 | Standard_Boolean st = PR.ReadInteger(PR.Current(), "Number of Leaders", nbval); |
36 | if (st && nbval > 0) |
37 | leaders = new IGESDimen_HArray1OfLeaderArrow(1, nbval); |
38 | else PR.AddFail("Number of Leaders: Not Positive"); |
39 | |
40 | if (! leaders.IsNull()) |
41 | for (Standard_Integer i = 1; i <= nbval; i++) |
42 | { |
43 | Handle(IGESDimen_LeaderArrow) anentity; |
44 | //st = PR.ReadEntity(IR, PR.Current(), "Leaders", |
45 | //STANDARD_TYPE(IGESDimen_LeaderArrow), anentity); //szv#4:S4163:12Mar99 moved in if |
46 | if (PR.ReadEntity(IR, PR.Current(), "Leaders", STANDARD_TYPE(IGESDimen_LeaderArrow), anentity)) |
47 | leaders->SetValue(i, anentity); |
48 | } |
49 | |
50 | DirChecker(ent).CheckTypeAndForm(PR.CCheck(),ent); |
51 | ent->Init(note, leaders); |
52 | } |
53 | |
54 | void IGESDimen_ToolGeneralLabel::WriteOwnParams |
55 | (const Handle(IGESDimen_GeneralLabel)& ent, IGESData_IGESWriter& IW) const |
56 | { |
57 | Standard_Integer upper = ent->NbLeaders(); |
58 | IW.Send(ent->Note()); |
59 | IW.Send(upper); |
60 | for (Standard_Integer i = 1; i <= upper; i++) |
61 | IW.Send(ent->Leader(i)); |
62 | } |
63 | |
64 | void IGESDimen_ToolGeneralLabel::OwnShared |
65 | (const Handle(IGESDimen_GeneralLabel)& ent, Interface_EntityIterator& iter) const |
66 | { |
67 | Standard_Integer upper = ent->NbLeaders(); |
68 | iter.GetOneItem(ent->Note()); |
69 | for (Standard_Integer i = 1; i <= upper; i++) |
70 | iter.GetOneItem(ent->Leader(i)); |
71 | } |
72 | |
73 | void IGESDimen_ToolGeneralLabel::OwnCopy |
74 | (const Handle(IGESDimen_GeneralLabel)& another, |
75 | const Handle(IGESDimen_GeneralLabel)& ent, Interface_CopyTool& TC) const |
76 | { |
77 | DeclareAndCast(IGESDimen_GeneralNote, note, |
78 | TC.Transferred(another->Note())); |
79 | Standard_Integer nbval = another->NbLeaders(); |
80 | |
81 | Handle(IGESDimen_HArray1OfLeaderArrow) leaders = |
82 | new IGESDimen_HArray1OfLeaderArrow(1, nbval); |
83 | for (Standard_Integer i = 1; i <= nbval; i++) |
84 | { |
85 | DeclareAndCast(IGESDimen_LeaderArrow, new_ent, |
86 | TC.Transferred(another->Leader(i))); |
87 | leaders->SetValue(i, new_ent); |
88 | } |
89 | ent->Init(note, leaders); |
90 | } |
91 | |
92 | IGESData_DirChecker IGESDimen_ToolGeneralLabel::DirChecker |
93 | (const Handle(IGESDimen_GeneralLabel)& /* ent */ ) const |
94 | { |
95 | IGESData_DirChecker DC (210, 0); |
96 | DC.Structure(IGESData_DefVoid); |
97 | DC.LineFont(IGESData_DefAny); |
98 | DC.LineWeight(IGESData_DefValue); |
99 | DC.Color(IGESData_DefAny); |
100 | DC.UseFlagRequired(1); |
101 | return DC; |
102 | } |
103 | |
104 | void IGESDimen_ToolGeneralLabel::OwnCheck |
105 | (const Handle(IGESDimen_GeneralLabel)& /* ent */, |
106 | const Interface_ShareTool& , Handle(Interface_Check)& /* ach */) const |
107 | { |
108 | } |
109 | |
110 | void IGESDimen_ToolGeneralLabel::OwnDump |
111 | (const Handle(IGESDimen_GeneralLabel)& ent, const IGESData_IGESDumper& dumper, |
112 | const Handle(Message_Messenger)& S, const Standard_Integer level) const |
113 | { |
114 | Standard_Integer sublevel = (level > 4) ? 1 : 0; |
115 | |
116 | S << "IGESDimen_GeneralLabel" << endl; |
117 | S << "General Note Entity : "; |
118 | dumper.Dump(ent->Note(),S, sublevel); |
119 | S << endl; |
120 | S << "Number of Leaders : " << ent->NbLeaders() << endl; |
121 | S << "Leaders : "; |
122 | IGESData_DumpEntities(S,dumper ,level,1, ent->NbLeaders(),ent->Leader); |
123 | S << endl; |
124 | } |
125 | |