1 #include <IGESSelect_Dumper.ixx>
3 #include <IGESSelect_DispPerSingleView.hxx>
4 #include <IGESSelect_DispPerDrawing.hxx>
5 //#include <IGESSelect_SelectIGESTypeForm.hxx>
6 #include <IGESSelect_SelectVisibleStatus.hxx>
7 #include <IGESSelect_SelectLevelNumber.hxx>
8 #include <IGESSelect_SelectName.hxx>
9 #include <IGESSelect_SelectFromSingleView.hxx>
10 #include <IGESSelect_SelectFromDrawing.hxx>
11 #include <IGESSelect_SelectSingleViewFrom.hxx>
12 #include <IGESSelect_SelectDrawingFrom.hxx>
13 #include <IGESSelect_SelectBypassGroup.hxx>
14 #include <IGESSelect_FloatFormat.hxx>
15 #include <IGESSelect_UpdateCreationDate.hxx>
16 #include <IGESSelect_UpdateLastChange.hxx>
17 #include <IGESSelect_SetVersion5.hxx>
18 #include <IGESSelect_SetGlobalParameter.hxx>
19 #include <IGESSelect_AutoCorrect.hxx>
20 #include <IGESSelect_ComputeStatus.hxx>
21 #include <IGESSelect_RebuildDrawings.hxx>
22 #include <IGESSelect_RebuildGroups.hxx>
23 #include <IGESSelect_ChangeLevelList.hxx>
24 #include <IGESSelect_ChangeLevelNumber.hxx>
25 #include <IGESSelect_SplineToBSpline.hxx>
27 #include <TCollection_AsciiString.hxx>
28 #include <TCollection_HAsciiString.hxx>
29 #include <IFSelect_IntParam.hxx>
31 #include <Interface_Macros.hxx>
36 IGESSelect_Dumper::IGESSelect_Dumper () { }
39 Standard_Boolean IGESSelect_Dumper::WriteOwn
40 (IFSelect_SessionFile& file, const Handle(Standard_Transient)& item) const
42 if (item.IsNull()) return Standard_False;
43 Handle(Standard_Type) type = item->DynamicType();
44 if (type == STANDARD_TYPE(IGESSelect_DispPerSingleView)) return Standard_True;
45 if (type == STANDARD_TYPE(IGESSelect_DispPerDrawing)) return Standard_True;
46 /* if (type == STANDARD_TYPE(IGESSelect_SelectIGESTypeForm)) {
47 DeclareAndCast(IGESSelect_SelectIGESTypeForm,sf,item);
48 Standard_Boolean exact = sf->IsExact();
49 TCollection_AsciiString text = sf->SignatureText(); // attention, 1-2 term
50 if (exact) file.SendText("exact");
51 else file.SendText("contains");
52 file.SendText(text.ToCString());
55 if (type == STANDARD_TYPE(IGESSelect_SelectVisibleStatus)) return Standard_True;
56 if (type == STANDARD_TYPE(IGESSelect_SelectLevelNumber)) {
57 DeclareAndCast(IGESSelect_SelectLevelNumber,sl,item);
58 Handle(IFSelect_IntParam) lev = sl->LevelNumber();
62 if (type == STANDARD_TYPE(IGESSelect_SelectName)) {
63 DeclareAndCast(IGESSelect_SelectName,sn,item);
64 Handle(TCollection_HAsciiString) name = sn->Name();
68 if (type == STANDARD_TYPE(IGESSelect_SelectFromSingleView)) return Standard_True;
69 if (type == STANDARD_TYPE(IGESSelect_SelectFromDrawing)) return Standard_True;
70 if (type == STANDARD_TYPE(IGESSelect_SelectSingleViewFrom)) return Standard_True;
71 if (type == STANDARD_TYPE(IGESSelect_SelectDrawingFrom)) return Standard_True;
72 if (type == STANDARD_TYPE(IGESSelect_SelectBypassGroup)) return Standard_True;
74 if (type == STANDARD_TYPE(IGESSelect_FloatFormat)) {
75 DeclareAndCast(IGESSelect_FloatFormat,ff,item);
76 Standard_Boolean zerosup, hasrange;
77 Standard_Real rangemin, rangemax;
78 TCollection_AsciiString mainform,forminrange;
79 ff->Format (zerosup,mainform,hasrange,forminrange,rangemin,rangemax);
80 file.SendText((char*)(zerosup ? "zerosup" : "nozerosup"));
81 file.SendText(mainform.ToCString());
84 file.SendText(forminrange.ToCString());
85 sprintf(flotrange,"%f",rangemin);
86 file.SendText(flotrange);
87 sprintf(flotrange,"%f",rangemax);
88 file.SendText(flotrange);
93 if (type == STANDARD_TYPE(IGESSelect_UpdateCreationDate)) return Standard_True;
94 if (type == STANDARD_TYPE(IGESSelect_UpdateLastChange)) return Standard_True;
95 if (type == STANDARD_TYPE(IGESSelect_SetVersion5)) return Standard_True;
96 if (type == STANDARD_TYPE(IGESSelect_SetGlobalParameter)) {
97 DeclareAndCast(IGESSelect_SetGlobalParameter,sp,item);
98 Standard_Integer np = sp->GlobalNumber();
99 Handle(TCollection_HAsciiString) val = sp->Value();
101 sprintf(intext,"%d",np);
102 file.SendText(intext);
104 return Standard_True;
106 if (type == STANDARD_TYPE(IGESSelect_AutoCorrect)) return Standard_True;
107 if (type == STANDARD_TYPE(IGESSelect_ComputeStatus)) return Standard_True;
108 if (type == STANDARD_TYPE(IGESSelect_RebuildDrawings)) return Standard_True;
109 if (type == STANDARD_TYPE(IGESSelect_RebuildGroups)) return Standard_True;
110 if (type == STANDARD_TYPE(IGESSelect_ChangeLevelList)) {
111 DeclareAndCast(IGESSelect_ChangeLevelList,cl,item);
112 file.SendItem(cl->OldNumber());
113 file.SendItem(cl->NewNumber());
114 return Standard_True;
116 if (type == STANDARD_TYPE(IGESSelect_ChangeLevelNumber)) {
117 DeclareAndCast(IGESSelect_ChangeLevelNumber,cl,item);
118 file.SendItem(cl->OldNumber());
119 file.SendItem(cl->NewNumber());
120 return Standard_True;
123 if (type == STANDARD_TYPE(IGESSelect_SplineToBSpline)) {
124 Standard_Boolean tryc2 =
125 GetCasted(IGESSelect_SplineToBSpline,item)->OptionTryC2();
126 file.SendText((char*)(tryc2 ? "TryC2" : "Normal"));
127 return Standard_True;
129 return Standard_False;
133 Standard_Boolean IGESSelect_Dumper::ReadOwn
134 (IFSelect_SessionFile& file, const TCollection_AsciiString& type,
135 Handle(Standard_Transient)& item) const
137 if (type.IsEqual("IGESSelect_DispPerSingleView"))
138 { item = new IGESSelect_DispPerSingleView; return Standard_True; }
139 if (type.IsEqual("IGESSelect_DispPerDrawing"))
140 { item = new IGESSelect_DispPerDrawing; return Standard_True; }
142 if (type.IsEqual("IGESSelect_SelectIGESTypeForm")) {
143 if (file.NbParams() < 2) return Standard_False;
144 //Standard_Boolean exact; //szv#4:S4163:12Mar99 not needed
145 const TCollection_AsciiString exname = file.ParamValue(1);
146 if (exname.Length() < 1) return Standard_False;
147 if (exname.Value(1) == 'e') {} //szv#4:S4163:12Mar99 `exact = Standard_True` not needed
148 else if (exname.Value(1) == 'c') {} //szv#4:S4163:12Mar99 `exact = Standard_False` not needed
149 else return Standard_False;
150 // Attention, 2 termes possibles pour la signature
152 if (file.NbParams() == 2) sprintf(sig,"%s",file.ParamValue(2).ToCString());
153 else sprintf(sig,"%s %s",file.ParamValue(2).ToCString(),file.ParamValue(3).ToCString());
154 // item = new IGESSelect_SelectIGESTypeForm(sig,exact);
155 // return Standard_True;
157 if (type.IsEqual("IGESSelect_SelectVisibleStatus"))
158 { item = new IGESSelect_SelectVisibleStatus; return Standard_True; }
160 if (type.IsEqual("IGESSelect_SelectLevelNumber")) {
161 if (file.NbParams() < 1) return Standard_False;
162 Handle(IGESSelect_SelectLevelNumber) sl = new IGESSelect_SelectLevelNumber;
163 DeclareAndCast(IFSelect_IntParam,lev,file.ItemValue(1));
164 sl->SetLevelNumber(lev);
166 return Standard_True;
168 if (type.IsEqual("IGESSelect_SelectName")) {
169 if (file.NbParams() < 1) return Standard_False;
170 Handle(IGESSelect_SelectName) sn = new IGESSelect_SelectName;
171 Handle(TCollection_HAsciiString) name = sn->Name();
173 return Standard_True;
175 if (type.IsEqual("IGESSelect_SelectFromSingleView"))
176 { item = new IGESSelect_SelectFromSingleView; return Standard_True; }
177 if (type.IsEqual("IGESSelect_SelectFromDrawing"))
178 { item = new IGESSelect_SelectFromDrawing; return Standard_True; }
179 if (type.IsEqual("IGESSelect_SelectSingleViewFrom"))
180 { item = new IGESSelect_SelectSingleViewFrom; return Standard_True; }
181 if (type.IsEqual("IGESSelect_SelectDrawingFrom"))
182 { item = new IGESSelect_SelectDrawingFrom; return Standard_True; }
183 if (type.IsEqual("IGESSelect_SelectBypassGroup"))
184 { item = new IGESSelect_SelectBypassGroup; return Standard_True; }
186 if (type.IsEqual("IGESSelect_FloatFormat")) {
187 if (file.NbParams() < 2) return Standard_False;
188 Handle(IGESSelect_FloatFormat) ff = new IGESSelect_FloatFormat;
189 Standard_Boolean zerosup;
190 const TCollection_AsciiString zsup = file.ParamValue(1);
191 if (zsup.Length() < 1) return Standard_False;
192 if (zsup.Value(1) == 'z') zerosup = Standard_True;
193 else if (zsup.Value(1) == 'n') zerosup = Standard_False;
194 else return Standard_False;
195 ff->SetFormat(file.ParamValue(2).ToCString());
196 ff->SetZeroSuppress(zerosup);
197 if (file.NbParams() >= 5) {
198 //char flotrange[20]; //szv#4:S4163:12Mar99 unused
199 Standard_Real rangemin, rangemax;
200 rangemin = atof (file.ParamValue(4).ToCString());
201 rangemax = atof (file.ParamValue(5).ToCString());
202 ff->SetFormatForRange (file.ParamValue(3).ToCString(),rangemin,rangemax);
205 return Standard_True;
208 if (type.IsEqual("IGESSelect_UpdateCreationDate"))
209 { item = new IGESSelect_UpdateCreationDate; return Standard_True; }
210 if (type.IsEqual("IGESSelect_UpdateLastChange"))
211 { item = new IGESSelect_UpdateLastChange; return Standard_True; }
212 if (type.IsEqual("IGESSelect_SetVersion5"))
213 { item = new IGESSelect_SetVersion5; return Standard_True; }
214 if (type.IsEqual("IGESSelect_SetGlobalParameter")) {
215 if (file.NbParams() < 2) return Standard_False;
216 Standard_Integer np = atoi(file.ParamValue(1).ToCString());
217 DeclareAndCast(TCollection_HAsciiString,val,file.ItemValue(2));
218 Handle(IGESSelect_SetGlobalParameter) sp =
219 new IGESSelect_SetGlobalParameter(np);
222 return Standard_True;
225 if (type.IsEqual("IGESSelect_AutoCorrect"))
226 { item = new IGESSelect_AutoCorrect; return Standard_True; }
227 if (type.IsEqual("IGESSelect_ComputeStatus"))
228 { item = new IGESSelect_ComputeStatus; return Standard_True; }
229 if (type.IsEqual("IGESSelect_RebuildDrawings"))
230 { item = new IGESSelect_RebuildDrawings; return Standard_True; }
231 if (type.IsEqual("IGESSelect_RebuildGroups"))
232 { item = new IGESSelect_RebuildGroups; return Standard_True; }
234 if (type.IsEqual("IGESSelect_ChangeLevelList")) {
235 if (file.NbParams() < 2) return Standard_False;
236 Handle(IGESSelect_ChangeLevelList) cl = new IGESSelect_ChangeLevelList;
237 DeclareAndCast(IFSelect_IntParam,oldpar,file.ItemValue(1));
238 DeclareAndCast(IFSelect_IntParam,newpar,file.ItemValue(2));
239 cl->SetOldNumber(oldpar);
240 cl->SetNewNumber(newpar);
242 return Standard_True;
244 if (type.IsEqual("IGESSelect_ChangeLevelNumber")) {
245 if (file.NbParams() < 2) return Standard_False;
246 Handle(IGESSelect_ChangeLevelNumber) cl = new IGESSelect_ChangeLevelNumber;
247 DeclareAndCast(IFSelect_IntParam,oldpar,file.ItemValue(1));
248 DeclareAndCast(IFSelect_IntParam,newpar,file.ItemValue(2));
249 cl->SetOldNumber(oldpar);
250 cl->SetNewNumber(newpar);
252 return Standard_True;
255 if (type.IsEqual("IGESSelect_SplineToBSpline")) {
256 if (file.NbParams() < 1) return Standard_False;
257 Standard_Boolean tryc2;
258 const TCollection_AsciiString tc2 = file.ParamValue(1);
259 if (tc2.Length() < 1) return Standard_False;
260 if (tc2.Value(1) == 'T') tryc2 = Standard_True;
261 else if (tc2.Value(1) == 'N') tryc2 = Standard_False;
262 else return Standard_False;
263 item = new IGESSelect_SplineToBSpline(tryc2);
264 return Standard_True;
266 return Standard_False;