File indexing completed on 2026-09-09 09:15:49
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _IGESData_ParamReader_HeaderFile
0018 #define _IGESData_ParamReader_HeaderFile
0019
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023
0024 #include <Standard_Integer.hxx>
0025 #include <IGESData_ReadStage.hxx>
0026 #include <Interface_ParamType.hxx>
0027 #include <Standard_CString.hxx>
0028 #include <IGESData_Status.hxx>
0029 #include <IGESData_ParamCursor.hxx>
0030 #include <Standard_Type.hxx>
0031 #include <TColStd_HArray1OfInteger.hxx>
0032 #include <TColStd_HArray1OfReal.hxx>
0033 #include <Interface_HArray1OfHAsciiString.hxx>
0034 #include <IGESData_HArray1OfIGESEntity.hxx>
0035
0036 class Interface_ParamList;
0037 class Interface_Check;
0038 class IGESData_IGESEntity;
0039 class IGESData_IGESReaderData;
0040 class Message_Msg;
0041 class gp_XY;
0042 class gp_XYZ;
0043 class TCollection_HAsciiString;
0044 class Interface_EntityList;
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056 class IGESData_ParamReader
0057 {
0058 public:
0059 DEFINE_STANDARD_ALLOC
0060
0061
0062
0063
0064
0065 Standard_EXPORT IGESData_ParamReader(const Handle(Interface_ParamList)& list,
0066 const Handle(Interface_Check)& ach,
0067 const Standard_Integer base = 1,
0068 const Standard_Integer nbpar = 0,
0069 const Standard_Integer num = 0);
0070
0071
0072 Standard_EXPORT Standard_Integer EntityNumber() const;
0073
0074
0075 Standard_EXPORT void Clear();
0076
0077
0078
0079
0080
0081
0082
0083 Standard_EXPORT Standard_Integer CurrentNumber() const;
0084
0085
0086
0087
0088
0089
0090
0091
0092 Standard_EXPORT void SetCurrentNumber(const Standard_Integer num);
0093
0094
0095 Standard_EXPORT IGESData_ReadStage Stage() const;
0096
0097
0098 Standard_EXPORT void NextStage();
0099
0100
0101 Standard_EXPORT void EndAll();
0102
0103
0104
0105 Standard_EXPORT Standard_Integer NbParams() const;
0106
0107
0108
0109 Standard_EXPORT Interface_ParamType ParamType(const Standard_Integer num) const;
0110
0111
0112 Standard_EXPORT Standard_CString ParamValue(const Standard_Integer num) const;
0113
0114
0115
0116 Standard_EXPORT Standard_Boolean IsParamDefined(const Standard_Integer num) const;
0117
0118
0119
0120
0121 Standard_EXPORT Standard_Boolean IsParamEntity(const Standard_Integer num) const;
0122
0123
0124
0125 Standard_EXPORT Standard_Integer ParamNumber(const Standard_Integer num) const;
0126
0127
0128 Standard_EXPORT Handle(IGESData_IGESEntity) ParamEntity(const Handle(IGESData_IGESReaderData)& IR,
0129 const Standard_Integer num);
0130
0131
0132
0133 Standard_EXPORT IGESData_ParamCursor Current() const;
0134
0135
0136
0137
0138
0139 Standard_EXPORT IGESData_ParamCursor CurrentList(const Standard_Integer nb,
0140 const Standard_Integer size = 1) const;
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157 Standard_EXPORT Standard_Boolean DefinedElseSkip();
0158
0159 Standard_EXPORT Standard_Boolean ReadInteger(const IGESData_ParamCursor& PC,
0160 Standard_Integer& val);
0161
0162
0163
0164
0165
0166
0167
0168 Standard_EXPORT Standard_Boolean ReadInteger(const IGESData_ParamCursor& PC,
0169 const Standard_CString mess,
0170 Standard_Integer& val);
0171
0172 Standard_EXPORT Standard_Boolean ReadBoolean(const IGESData_ParamCursor& PC,
0173 const Message_Msg& amsg,
0174 Standard_Boolean& val,
0175 const Standard_Boolean exact = Standard_True);
0176
0177
0178
0179
0180
0181
0182
0183
0184
0185 Standard_EXPORT Standard_Boolean ReadBoolean(const IGESData_ParamCursor& PC,
0186 const Standard_CString mess,
0187 Standard_Boolean& val,
0188 const Standard_Boolean exact = Standard_True);
0189
0190 Standard_EXPORT Standard_Boolean ReadReal(const IGESData_ParamCursor& PC, Standard_Real& val);
0191
0192
0193
0194
0195
0196 Standard_EXPORT Standard_Boolean ReadReal(const IGESData_ParamCursor& PC,
0197 const Standard_CString mess,
0198 Standard_Real& val);
0199
0200 Standard_EXPORT Standard_Boolean ReadXY(const IGESData_ParamCursor& PC,
0201 Message_Msg& amsg,
0202 gp_XY& val);
0203
0204
0205
0206
0207
0208 Standard_EXPORT Standard_Boolean ReadXY(const IGESData_ParamCursor& PC,
0209 const Standard_CString mess,
0210 gp_XY& val);
0211
0212 Standard_EXPORT Standard_Boolean ReadXYZ(const IGESData_ParamCursor& PC,
0213 Message_Msg& amsg,
0214 gp_XYZ& val);
0215
0216
0217
0218
0219
0220
0221 Standard_EXPORT Standard_Boolean ReadXYZ(const IGESData_ParamCursor& PC,
0222 const Standard_CString mess,
0223 gp_XYZ& val);
0224
0225 Standard_EXPORT Standard_Boolean ReadText(const IGESData_ParamCursor& thePC,
0226 const Message_Msg& theMsg,
0227 Handle(TCollection_HAsciiString)& theVal);
0228
0229
0230
0231
0232
0233 Standard_EXPORT Standard_Boolean ReadText(const IGESData_ParamCursor& PC,
0234 const Standard_CString mess,
0235 Handle(TCollection_HAsciiString)& val);
0236
0237 Standard_EXPORT Standard_Boolean ReadEntity(const Handle(IGESData_IGESReaderData)& IR,
0238 const IGESData_ParamCursor& PC,
0239 IGESData_Status& aStatus,
0240 Handle(IGESData_IGESEntity)& val,
0241 const Standard_Boolean canbenul = Standard_False);
0242
0243
0244
0245
0246
0247
0248
0249
0250
0251 Standard_EXPORT Standard_Boolean ReadEntity(const Handle(IGESData_IGESReaderData)& IR,
0252 const IGESData_ParamCursor& PC,
0253 const Standard_CString mess,
0254 Handle(IGESData_IGESEntity)& val,
0255 const Standard_Boolean canbenul = Standard_False);
0256
0257 Standard_EXPORT Standard_Boolean ReadEntity(const Handle(IGESData_IGESReaderData)& IR,
0258 const IGESData_ParamCursor& PC,
0259 IGESData_Status& aStatus,
0260 const Handle(Standard_Type)& type,
0261 Handle(IGESData_IGESEntity)& val,
0262 const Standard_Boolean canbenul = Standard_False);
0263
0264
0265 template <class T>
0266 Standard_Boolean ReadEntity(const Handle(IGESData_IGESReaderData)& IR,
0267 const IGESData_ParamCursor& PC,
0268 IGESData_Status& aStatus,
0269 const Handle(Standard_Type)& type,
0270 Handle(T)& val,
0271 const Standard_Boolean canbenul = Standard_False)
0272 {
0273 Handle(IGESData_IGESEntity) aVal = val;
0274 Standard_Boolean aRes = ReadEntity(IR, PC, aStatus, type, aVal, canbenul);
0275 val = Handle(T)::DownCast(aVal);
0276 return aRes && (canbenul || !val.IsNull());
0277 }
0278
0279
0280
0281
0282
0283
0284 Standard_EXPORT Standard_Boolean ReadEntity(const Handle(IGESData_IGESReaderData)& IR,
0285 const IGESData_ParamCursor& PC,
0286 const Standard_CString mess,
0287 const Handle(Standard_Type)& type,
0288 Handle(IGESData_IGESEntity)& val,
0289 const Standard_Boolean canbenul = Standard_False);
0290
0291
0292 template <class T>
0293 Standard_Boolean ReadEntity(const Handle(IGESData_IGESReaderData)& IR,
0294 const IGESData_ParamCursor& PC,
0295 const Standard_CString mess,
0296 const Handle(Standard_Type)& type,
0297 Handle(T)& val,
0298 const Standard_Boolean canbenul = Standard_False)
0299 {
0300 Handle(IGESData_IGESEntity) aVal = val;
0301 Standard_Boolean aRes = ReadEntity(IR, PC, mess, type, aVal, canbenul);
0302 val = Handle(T)::DownCast(aVal);
0303 return aRes && (canbenul || !val.IsNull());
0304 }
0305
0306 Standard_EXPORT Standard_Boolean ReadInts(const IGESData_ParamCursor& PC,
0307 const Message_Msg& amsg,
0308 Handle(TColStd_HArray1OfInteger)& val,
0309 const Standard_Integer index = 1);
0310
0311
0312
0313
0314
0315
0316
0317 Standard_EXPORT Standard_Boolean ReadInts(const IGESData_ParamCursor& PC,
0318 const Standard_CString mess,
0319 Handle(TColStd_HArray1OfInteger)& val,
0320 const Standard_Integer index = 1);
0321
0322 Standard_EXPORT Standard_Boolean ReadReals(const IGESData_ParamCursor& PC,
0323 Message_Msg& amsg,
0324 Handle(TColStd_HArray1OfReal)& val,
0325 const Standard_Integer index = 1);
0326
0327
0328
0329
0330
0331
0332
0333 Standard_EXPORT Standard_Boolean ReadReals(const IGESData_ParamCursor& PC,
0334 const Standard_CString mess,
0335 Handle(TColStd_HArray1OfReal)& val,
0336 const Standard_Integer index = 1);
0337
0338 Standard_EXPORT Standard_Boolean ReadTexts(const IGESData_ParamCursor& PC,
0339 const Message_Msg& amsg,
0340 Handle(Interface_HArray1OfHAsciiString)& val,
0341 const Standard_Integer index = 1);
0342
0343
0344
0345
0346
0347
0348 Standard_EXPORT Standard_Boolean ReadTexts(const IGESData_ParamCursor& PC,
0349 const Standard_CString mess,
0350 Handle(Interface_HArray1OfHAsciiString)& val,
0351 const Standard_Integer index = 1);
0352
0353 Standard_EXPORT Standard_Boolean ReadEnts(const Handle(IGESData_IGESReaderData)& IR,
0354 const IGESData_ParamCursor& PC,
0355 const Message_Msg& amsg,
0356 Handle(IGESData_HArray1OfIGESEntity)& val,
0357 const Standard_Integer index = 1);
0358
0359
0360
0361
0362
0363
0364
0365
0366
0367
0368 Standard_EXPORT Standard_Boolean ReadEnts(const Handle(IGESData_IGESReaderData)& IR,
0369 const IGESData_ParamCursor& PC,
0370 const Standard_CString mess,
0371 Handle(IGESData_HArray1OfIGESEntity)& val,
0372 const Standard_Integer index = 1);
0373
0374 Standard_EXPORT Standard_Boolean ReadEntList(const Handle(IGESData_IGESReaderData)& IR,
0375 const IGESData_ParamCursor& PC,
0376 Message_Msg& amsg,
0377 Interface_EntityList& val,
0378 const Standard_Boolean ord = Standard_True);
0379
0380
0381
0382
0383
0384
0385
0386
0387
0388
0389
0390 Standard_EXPORT Standard_Boolean ReadEntList(const Handle(IGESData_IGESReaderData)& IR,
0391 const IGESData_ParamCursor& PC,
0392 const Standard_CString mess,
0393 Interface_EntityList& val,
0394 const Standard_Boolean ord = Standard_True);
0395
0396 Standard_EXPORT Standard_Boolean ReadingReal(const Standard_Integer num, Standard_Real& val);
0397
0398
0399
0400 Standard_EXPORT Standard_Boolean ReadingReal(const Standard_Integer num,
0401 const Standard_CString mess,
0402 Standard_Real& val);
0403
0404 Standard_EXPORT Standard_Boolean ReadingEntityNumber(const Standard_Integer num,
0405 Standard_Integer& val);
0406
0407
0408
0409
0410
0411
0412
0413 Standard_EXPORT Standard_Boolean ReadingEntityNumber(const Standard_Integer num,
0414 const Standard_CString mess,
0415 Standard_Integer& val);
0416
0417 Standard_EXPORT void SendFail(const Message_Msg& amsg);
0418
0419 Standard_EXPORT void SendWarning(const Message_Msg& amsg);
0420
0421 Standard_EXPORT void AddFail(const Standard_CString afail, const Standard_CString bfail = "");
0422
0423
0424 Standard_EXPORT void AddFail(const Handle(TCollection_HAsciiString)& af,
0425 const Handle(TCollection_HAsciiString)& bf);
0426
0427 Standard_EXPORT void AddWarning(const Standard_CString awarn, const Standard_CString bwarn = "");
0428
0429
0430 Standard_EXPORT void AddWarning(const Handle(TCollection_HAsciiString)& aw,
0431 const Handle(TCollection_HAsciiString)& bw);
0432
0433 Standard_EXPORT void Mend(const Standard_CString pref = "");
0434
0435
0436 Standard_EXPORT Standard_Boolean HasFailed() const;
0437
0438
0439
0440 Standard_EXPORT const Handle(Interface_Check)& Check() const;
0441
0442
0443
0444 Standard_EXPORT Handle(Interface_Check)& CCheck();
0445
0446
0447
0448 Standard_EXPORT Standard_Boolean IsCheckEmpty() const;
0449
0450 protected:
0451 private:
0452 Standard_EXPORT Standard_Boolean PrepareRead(const IGESData_ParamCursor& PC,
0453 const Standard_Boolean several,
0454 const Standard_Integer size = 1);
0455
0456
0457
0458
0459
0460
0461
0462
0463 Standard_EXPORT Standard_Boolean PrepareRead(const IGESData_ParamCursor& PC,
0464 const Standard_CString mess,
0465 const Standard_Boolean several,
0466 const Standard_Integer size = 1);
0467
0468
0469
0470
0471 Standard_EXPORT Standard_Integer FirstRead(const Standard_Integer nb = 1);
0472
0473
0474
0475
0476 Standard_EXPORT Standard_Integer NextRead(const Standard_Integer nb = 1);
0477
0478
0479
0480
0481
0482 Standard_EXPORT void AddFail(const Standard_CString idm,
0483 const Handle(TCollection_HAsciiString)& af,
0484 const Handle(TCollection_HAsciiString)& bf);
0485
0486
0487
0488 Standard_EXPORT void AddFail(const Standard_CString idm,
0489 const Standard_CString afail,
0490 const Standard_CString bfail);
0491
0492
0493
0494
0495
0496 Standard_EXPORT void AddWarning(const Standard_CString idm,
0497 const Handle(TCollection_HAsciiString)& aw,
0498 const Handle(TCollection_HAsciiString)& bw);
0499
0500
0501
0502 Standard_EXPORT void AddWarning(const Standard_CString idm,
0503 const Standard_CString aw,
0504 const Standard_CString bw);
0505
0506 Handle(Interface_ParamList) theparams;
0507 Handle(Interface_Check) thecheck;
0508 Standard_Integer thebase;
0509 Standard_Integer thenbpar;
0510 Standard_Integer thecurr;
0511 IGESData_ReadStage thestage;
0512 Standard_Boolean thelast;
0513 Standard_Integer theindex;
0514 Standard_Integer thenbitem;
0515 Standard_Integer theitemsz;
0516 Standard_Integer theoffset;
0517 Standard_Integer thetermsz;
0518 Standard_Integer themaxind;
0519 Standard_Integer thenbterm;
0520 Standard_Integer pbrealint;
0521 Standard_Integer pbrealform;
0522 Standard_Integer thenum;
0523 };
0524
0525 #endif