Open CASCADE Technology  6.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions
StepData_StepReaderData Class Reference

Specific FileReaderData for Step
Contains litteral description of entities (for each one : type
as a string, ident, parameter list)
provides references evaluation, plus access to litteral data
and specific access methods (Boolean, XY, XYZ)
More...

#include <StepData_StepReaderData.hxx>

Inheritance diagram for StepData_StepReaderData:
Inheritance graph
[legend]

Public Member Functions

 StepData_StepReaderData (const Standard_Integer nbheader, const Standard_Integer nbtotal, const Standard_Integer nbpar)
 creates StepReaderData correctly dimensionned (necessary at
creation time, because it contains arrays)
nbheader is nb of records for Header, nbtotal for Header+Data
and nbpar gives the total count of parameters
More...
 
void SetRecord (const Standard_Integer num, const Standard_CString ident, const Standard_CString type, const Standard_Integer nbpar)
 Fills the fields of a record
More...
 
void AddStepParam (const Standard_Integer num, const Standard_CString aval, const Interface_ParamType atype, const Standard_Integer nument=0)
 Fills the fields of a parameter of a record. This is a variant
of AddParam, Adapted to STEP (optimized for specific values)
More...
 
const TCollection_AsciiStringRecordType (const Standard_Integer num) const
 Returns Record Type
More...
 
Standard_CString CType (const Standard_Integer num) const
 
 Returns Record Type as a CString <br>

was C++ : return const
More...

 
Standard_Integer RecordIdent (const Standard_Integer num) const
 Returns record identifier (Positive number)
If returned ident is not positive : Sub-List or Scope mark
More...
 
Standard_Integer SubListNumber (const Standard_Integer num, const Standard_Integer nump, const Standard_Boolean aslast) const
 Returns SubList numero designated by a parameter (nump) in a
record (num), or zero if the parameter does not exist or is
not a SubList address. Zero too If aslast is True and nump
is not for the last parameter
More...
 
Standard_Boolean IsComplex (const Standard_Integer num) const
 Returns True if <num> corresponds to a Complex Type Entity
(as can be defined by ANDOR Express clause)
More...
 
void ComplexType (const Standard_Integer num, TColStd_SequenceOfAsciiString &types) const
 Returns the List of Types which correspond to a Complex Type
Entity. If not Complex, there is just one Type in it
For a SubList or a Scope mark, <types> remains empty
More...
 
Standard_Integer NextForComplex (const Standard_Integer num) const
 Returns the Next "Componant" for a Complex Type Entity, of
which <num> is already a Componant (the first one or a next one)
Returns 0 for a Simple Type or for the last Componant
More...
 
Standard_Boolean NamedForComplex (const Standard_CString name, const Standard_Integer num0, Standard_Integer &num, Handle< Interface_Check > &ach) const
 
 Determines the first component which brings a given name, for <br>
      a Complex Type Entity <br>
      <num0> is the very first record of this entity <br>
      <num> is given the last NextNamedForComplex, starts at zero <br>
      it is returned as the newly found number <br>
      Hence, in the normal case, NextNamedForComplex starts by num0 <br>
      if <num> is zero, else by NextForComplex(num) <br>
      If the alphabetic order is not respected, it restarts from <br>
      num0 and loops on NextForComplex until finding <name> <br>
      In case of "non-alphabetic order", <ach> is filled with a <br>
        Warning for this name <br>
      In case of "not-found at all", <ach> is filled with a Fail, <br>
        and <num> is returned as zero <br>


Returns True if alphabetic order, False else
More...

 
Standard_Boolean CheckNbParams (const Standard_Integer num, const Standard_Integer nbreq, Handle< Interface_Check > &ach, const Standard_CString mess="") const
 Checks Count of Parameters of record <num> to equate <nbreq>
If this Check is successful, returns True
Else, fills <ach> with an Error Message then returns False
<mess> is included in the Error message if given non empty
More...
 
Standard_Boolean ReadSubList (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Integer &numsub, const Standard_Boolean optional=Standard_False, const Standard_Integer lenmin=0, const Standard_Integer lenmax=0) const
 reads parameter <nump> of record <num> as a sub-list (may be
typed, see ReadTypedParameter in this case)
Returns True if OK. Else (not a LIST), returns false and
feeds Check with appropriate check
If <optional> is True and Param is not defined, returns True
with <ach> not filled and <numsub> returned as 0
Works with SubListNumber with <aslast> false (no specific case
for last parameter)
More...
 
Standard_Integer ReadSub (const Standard_Integer numsub, const Standard_CString mess, Handle< Interface_Check > &ach, const Handle< StepData_PDescr > &descr, Handle< Standard_Transient > &val) const
 reads the content of a sub-list into a transient :
SelectNamed, or HArray1 of Integer,Real,String,Transient ...
recursive call if list of list ...
If a sub-list has mixed types, an HArray1OfTransient is
produced, it may contain SelectMember
Intended to be called by ReadField
The returned status is : negative if failed, 0 if empty.
Else the kind to be recorded in the field
More...
 
Standard_Boolean ReadMember (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Handle< StepData_SelectMember > &val) const
 Reads parameter <nump> of record <num> into a SelectMember,
self-sufficient (no Description needed)
If <val> is already created, it will be filled, as possible
And if reading does not match its own description, the result
will be False
If <val> is not it not yet created, it will be (SelectNamed)
Usefull if a field is defined as a SelectMember, directly
(SELECT with no Entity as member)
But SelectType also manages SelectMember (for SELECT with
some members as Entity, some other not)
More...
 
Standard_Boolean ReadField (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, const Handle< StepData_PDescr > &descr, StepData_Field &fild) const
 reads parameter <nump> of record <num> into a Field,
controlled by a Parameter Descriptor (PDescr), which controls
its allowed type(s) and value
<ach> is filled if the read parameter does not match its
description (but the field is read anyway)
If the description is not defined, no control is done
Returns True when done
More...
 
Standard_Boolean ReadList (const Standard_Integer num, Handle< Interface_Check > &ach, const Handle< StepData_ESDescr > &descr, StepData_FieldList &list) const
 reads a list of fields controlled by an ESDescr
More...
 
Standard_Boolean ReadAny (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, const Handle< StepData_PDescr > &descr, Handle< Standard_Transient > &val) const
 
 Reads parameter <nump> of record <num> into a Transient Value <br>
      according to the type of the parameter : <br>
      Named for Integer,Boolean,Logical,Enum,Real : SelectNamed <br>
      Immediate Integer,Boolean,Logical,Enum,Real : SelectInt/Real <br>
      Text  : HAsciiString <br>
      Ident : the referenced Entity <br>
      Sub-List not processed, see ReadSub <br>
      This value is controlled by a Parameter Descriptor (PDescr), <br>
      which controls its allowed type and value <br>
      <ach> is filled if the read parameter does not match its <br>
      description (the select is nevertheless created if possible) <br>


Warning : val is in out, hence it is possible to predefine a specific
SelectMember then to fill it. If <val> is Null or if the
result is not a SelectMember, val itself is returned a new ref
For a Select with a Name, <val> must then be a SelectNamed
More...

 
Standard_Boolean ReadXY (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Real &X, Standard_Real &Y) const
 reads parameter <nump> of record <num> as a sub-list of
two Reals X,Y. Returns True if OK. Else, returns false and
feeds Check with appropriate Fails (parameter not a sub-list,
not two Reals in the sub-list) composed with "mess" which
gives the name of the parameter
More...
 
Standard_Boolean ReadXYZ (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Real &X, Standard_Real &Y, Standard_Real &Z) const
 reads parameter <nump> of record <num> as a sub-list of
three Reals X,Y,Z. Return value and Check managed as by
ReadXY (demands a sub-list of three Reals)
More...
 
Standard_Boolean ReadReal (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Real &val) const
 reads parameter <nump> of record <num> as a single Real value.
Return value and Check managed as by ReadXY (demands a Real)
More...
 
Standard_Boolean ReadEntity (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, const Handle< Standard_Type > &atype, Handle< Standard_Transient > &ent) const
 Reads parameter <nump> of record <num> as a single Entity.
Return value and Check managed as by ReadReal (demands a
reference to an Entity). In Addition, demands read Entity
to be Kind of a required Type <atype>.
Remark that returned status is False and <ent> is Null if
parameter is not an Entity, <ent> remains Not Null is parameter
is an Entity but is not Kind of required type
More...
 
Standard_Boolean ReadEntity (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, StepData_SelectType &sel) const
 Same as above, but a SelectType checks Type Matching, and
records the read Entity (see method Value from SelectType)
More...
 
Standard_Boolean ReadInteger (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Integer &val) const
 reads parameter <nump> of record <num> as a single Integer.
Return value & Check managed as by ReadXY (demands an Integer)
More...
 
Standard_Boolean ReadBoolean (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Boolean &flag) const
 reads parameter <nump> of record <num> as a Boolean
Return value and Check managed as by ReadReal (demands a
Boolean enum, i.e. text ".T." for True or ".F." for False)
More...
 
Standard_Boolean ReadLogical (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, StepData_Logical &flag) const
 reads parameter <nump> of record <num> as a Logical
Return value and Check managed as by ReadBoolean (demands a
Logical enum, i.e. text ".T.", ".F.", or ".U.")
More...
 
Standard_Boolean ReadString (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Handle< TCollection_HAsciiString > &val) const
 reads parameter <nump> of record <num> as a String (text
between quotes, quotes are removed by the Read operation)
Return value and Check managed as by ReadXY (demands a String)
More...
 
Standard_Boolean ReadEnumParam (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_CString &text) const
 
void FailEnumValue (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach) const
 Fills a check with a fail message if enumeration value does
match parameter definition
Just a help to centralize message definitions
More...
 
Standard_Boolean ReadEnum (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, const StepData_EnumTool &enumtool, Standard_Integer &val) const
 Reads parameter <nump> of record <num> as an Enumeration (text
between dots) and converts it to an integer value, by an
EnumTool. Returns True if OK, false if : this parameter is not
enumeration, or is not recognized by the EnumTool (with fail)
More...
 
Standard_Boolean ReadTypedParam (const Standard_Integer num, const Standard_Integer nump, const Standard_Boolean mustbetyped, const Standard_CString mess, Handle< Interface_Check > &ach, Standard_Integer &numr, Standard_Integer &numrp, TCollection_AsciiString &typ) const
 Resolves a parameter which can be enclosed in a type def., as
TYPE(val). The parameter must then be read normally according
its type. Parameter to be resolved is <nump> of record <num>
<mustbetyped> True demands a typed parameter
<mustbetyped> False accepts a non-typed parameter as option
mess and ach as usual
<numr>,<numrp> are the resolved record and parameter numbers
= num,nump if no type, else numrp=1
<typ> returns the recorded type, or empty string
Remark : a non-typed list is considered as "non-typed"
More...
 
Standard_Boolean CheckDerived (const Standard_Integer num, const Standard_Integer nump, const Standard_CString mess, Handle< Interface_Check > &ach, const Standard_Boolean errstat=Standard_False) const
 Checks if parameter <nump> of record <num> is given as Derived
If this Check is successful (i.e. Param = "*"), returns True
Else, fills <ach> with a Message which contains <mess> and
returns False. According to <errstat>, this message is Warning
if errstat is False (Default), Fail if errstat is True
More...
 
virtual Standard_Integer NbEntities () const
 Returns total count of Entities (including Header)
More...
 
Standard_Integer FindNextRecord (const Standard_Integer num) const
 determines the first suitable record following a given one
that is, skips SCOPE,ENDSCOPE and SUBLIST records
Note : skips Header records, which are accessed separately
More...
 
void SetEntityNumbers (const Standard_Boolean withmap=Standard_True)
 
 determines reference numbers in EntityNumber fields <br>
      called by Prepare from StepReaderTool to prepare later using <br>
      by a StepModel. This method is attached to StepReaderData <br>
      because it needs a massive amount of data accesses to work <br>


If <withmap> is given False, the basic exploration algorithm
is activated, otherwise a map is used as far as it is possible
this option can be used only to test this algorithm
More...

 
Standard_Integer FindNextHeaderRecord (const Standard_Integer num) const
 determine first suitable record of Header
works as FindNextRecord, but treats only Header records
More...
 
void PrepareHeader ()
 Works as SetEntityNumbers but for Header : more simple because
there are no Reference, only Sub-Lists
More...
 
const Handle_Interface_Check GlobalCheck () const
 Returns the Global Check. It can record Fail messages about
Undefined References (detected by SetEntityNumbers)
More...
 
- Public Member Functions inherited from Interface_FileReaderData
virtual Standard_Integer NbRecords () const
 Returns the count of registered records
That is, value given for Initialization (can be redefined)
More...
 
void InitParams (const Standard_Integer num)
 attaches an empty ParamList to a Record
More...
 
void AddParam (const Standard_Integer num, const Standard_CString aval, const Interface_ParamType atype, const Standard_Integer nument=0)
 
Adds a parameter to record no "num" and fills its fields <br>
     (EntityNumber is optional) <br>

Warning : <aval> is assumed to be memory-managed elsewhere : it is NOT
copied. This gives a best speed : strings remain stored in
pages of characters
More...

 
void AddParam (const Standard_Integer num, const TCollection_AsciiString &aval, const Interface_ParamType atype, const Standard_Integer nument=0)
 Same as above, but gets a AsciiString from TCollection
Remark that the content of the AsciiString is locally copied
(because its content is most often lost after using)
More...
 
void AddParam (const Standard_Integer num, const Interface_FileParameter &FP)
 
Same as above, but gets a complete FileParameter <br>

Warning : Content of <FP> is NOT copied : its original address and space
in memory are assumed to be managed elsewhere (see ParamSet)
More...

 
void SetParam (const Standard_Integer num, const Standard_Integer nump, const Interface_FileParameter &FP)
 Sets a new value for a parameter of a record, given by :
num : record number; nump : parameter number in the record
More...
 
Standard_Integer NbParams (const Standard_Integer num) const
 Returns count of parameters attached to record "num"
If <num> = 0, returns the total recorded count of parameters
More...
 
Handle_Interface_ParamList Params (const Standard_Integer num) const
 Returns the complete ParamList of a record (read only)
num = 0 to return the whole param list for the file
More...
 
const Interface_FileParameterParam (const Standard_Integer num, const Standard_Integer nump) const
 Returns parameter "nump" of record "num", as a complete
FileParameter
More...
 
Interface_FileParameterChangeParam (const Standard_Integer num, const Standard_Integer nump)
 Same as above, but in order to be modified on place
More...
 
Interface_ParamType ParamType (const Standard_Integer num, const Standard_Integer nump) const
 
Returns type of parameter "nump" of record "num" <br>//! Returns literal value of parameter "nump" of record "num" <br>

was C++ : return const &
More...

 
Standard_CString ParamCValue (const Standard_Integer num, const Standard_Integer nump) const
 
Same as above, but as a CString <br>

was C++ : return const
More...

 
Standard_Boolean IsParamDefined (const Standard_Integer num, const Standard_Integer nump) const
 Returns True if parameter "nump" of record "num" is defined
(it is not if its type is ParamVoid)
More...
 
Standard_Integer ParamNumber (const Standard_Integer num, const Standard_Integer nump) const
 Returns record number of an entity referenced by a parameter
of type Ident; 0 if no EntityNumber has been determined
Note that it is used to reference Entities but also Sublists
(sublists are not objects, but internal descriptions)
More...
 
const Handle_Standard_Transient & ParamEntity (const Standard_Integer num, const Standard_Integer nump) const
 Returns the StepEntity referenced by a parameter
Error if none
More...
 
Standard_Integer ParamFirstRank (const Standard_Integer num) const
 Returns the absolute rank of the beginning of a record
(its lsit is from ParamFirstRank+1 to ParamFirstRank+NbParams)
More...
 
const Handle_Standard_Transient & BoundEntity (const Standard_Integer num) const
 Returns the entity bound to a record, set by SetEntities
More...
 
void BindEntity (const Standard_Integer num, const Handle< Standard_Transient > &ent)
 Binds an entity to a record
More...
 
void SetErrorLoad (const Standard_Boolean val)
 Sets the status "Error Load" on, to overside check fails
<val> True : declares unloaded
<val> False : declares loaded
If not called before loading (see FileReaderTool), check fails
give the status
IsErrorLoad says if SetErrorLoad has been called by user
ResetErrorLoad resets it (called by FileReaderTool)
This allows to specify that the currently loaded entity
remains unloaded (because of syntactic fail)
More...
 
Standard_Boolean IsErrorLoad () const
 Returns True if the status "Error Load" has been set (to True
or False)
More...
 
Standard_Boolean ResetErrorLoad ()
 Returns the former value of status "Error Load" then resets it
Used to read the status then ensure it is reset
More...
 
void Destroy ()
 Destructor (waiting for memory management)
More...
 
 ~Interface_FileReaderData ()
 
- Public Member Functions inherited from MMgt_TShared
virtual void Delete () const
 Memory deallocator for transient classes. More...
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor. More...
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing. More...
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter. More...
 
virtual ~Standard_Transient ()
 Destructor must be virtual. More...
 
virtual void ShallowDump (Standard_OStream &) const
 
virtual const
Handle_Standard_Type & 
DynamicType () const
 Returns a type information object about this object. More...
 
Standard_Boolean IsInstance (const Handle_Standard_Type &theType) const
 Returns a true value if this is an instance of Type. More...
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName. More...
 
Standard_Boolean IsKind (const Handle_Standard_Type &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
virtual Handle_Standard_Transient This () const
 Returns a Handle which references this object. Must never be called to objects created in stack. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Interface_FileReaderData
static Standard_Real Fastof (const Standard_CString str)
 Same spec.s as standard <atof> but 5 times faster
More...
 
- Protected Member Functions inherited from Interface_FileReaderData
 Interface_FileReaderData (const Standard_Integer nbr, const Standard_Integer npar)
 
 Initializes arrays of Entities and of ParamLists attached <br>
      to registered records <br>
      <nbr> must be the maximum number of records to get (no way to <br>
      extend it at run-time) : count entities and sub-entities ... <br>
      <npar> is the total count of parameters (if it is not exact, <br>
      it will be extented as necessary) <br>


Hence, to each record can be bound an Entity and a list of
Parameters. Each kind of FileReaderData can add other data, by
having them in parallel (other arrays with same sizes)
Else, it must manage binding between items and their data
More...

 
Interface_FileParameterChangeParameter (const Standard_Integer numpar)
 Returns a parameter given its absolute rank in the file
in order to be consulted or modified in specilaized actions
More...
 
void ParamPosition (const Standard_Integer numpar, Standard_Integer &num, Standard_Integer &nump) const
 For a given absolute rank of parameter, determines the
record to which its belongs, and the parameter number for it
More...
 

Detailed Description

Specific FileReaderData for Step
Contains litteral description of entities (for each one : type
as a string, ident, parameter list)
provides references evaluation, plus access to litteral data
and specific access methods (Boolean, XY, XYZ)

Constructor & Destructor Documentation

StepData_StepReaderData::StepData_StepReaderData ( const Standard_Integer  nbheader,
const Standard_Integer  nbtotal,
const Standard_Integer  nbpar 
)

creates StepReaderData correctly dimensionned (necessary at
creation time, because it contains arrays)
nbheader is nb of records for Header, nbtotal for Header+Data
and nbpar gives the total count of parameters

Member Function Documentation

void StepData_StepReaderData::AddStepParam ( const Standard_Integer  num,
const Standard_CString  aval,
const Interface_ParamType  atype,
const Standard_Integer  nument = 0 
)

Fills the fields of a parameter of a record. This is a variant
of AddParam, Adapted to STEP (optimized for specific values)

Standard_Boolean StepData_StepReaderData::CheckDerived ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
const Standard_Boolean  errstat = Standard_False 
) const

Checks if parameter <nump> of record <num> is given as Derived
If this Check is successful (i.e. Param = "*"), returns True
Else, fills <ach> with a Message which contains <mess> and
returns False. According to <errstat>, this message is Warning
if errstat is False (Default), Fail if errstat is True

Standard_Boolean StepData_StepReaderData::CheckNbParams ( const Standard_Integer  num,
const Standard_Integer  nbreq,
Handle< Interface_Check > &  ach,
const Standard_CString  mess = "" 
) const

Checks Count of Parameters of record <num> to equate <nbreq>
If this Check is successful, returns True
Else, fills <ach> with an Error Message then returns False
<mess> is included in the Error message if given non empty

void StepData_StepReaderData::ComplexType ( const Standard_Integer  num,
TColStd_SequenceOfAsciiString types 
) const

Returns the List of Types which correspond to a Complex Type
Entity. If not Complex, there is just one Type in it
For a SubList or a Scope mark, <types> remains empty

Standard_CString StepData_StepReaderData::CType ( const Standard_Integer  num) const

 Returns Record Type as a CString <br>

was C++ : return const

void StepData_StepReaderData::FailEnumValue ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach 
) const

Fills a check with a fail message if enumeration value does
match parameter definition
Just a help to centralize message definitions

Standard_Integer StepData_StepReaderData::FindNextHeaderRecord ( const Standard_Integer  num) const

determine first suitable record of Header
works as FindNextRecord, but treats only Header records

Standard_Integer StepData_StepReaderData::FindNextRecord ( const Standard_Integer  num) const
virtual

determines the first suitable record following a given one
that is, skips SCOPE,ENDSCOPE and SUBLIST records
Note : skips Header records, which are accessed separately

Implements Interface_FileReaderData.

const Handle_Interface_Check StepData_StepReaderData::GlobalCheck ( ) const

Returns the Global Check. It can record Fail messages about
Undefined References (detected by SetEntityNumbers)

Standard_Boolean StepData_StepReaderData::IsComplex ( const Standard_Integer  num) const

Returns True if <num> corresponds to a Complex Type Entity
(as can be defined by ANDOR Express clause)

Standard_Boolean StepData_StepReaderData::NamedForComplex ( const Standard_CString  name,
const Standard_Integer  num0,
Standard_Integer num,
Handle< Interface_Check > &  ach 
) const

 Determines the first component which brings a given name, for <br>
      a Complex Type Entity <br>
      <num0> is the very first record of this entity <br>
      <num> is given the last NextNamedForComplex, starts at zero <br>
      it is returned as the newly found number <br>
      Hence, in the normal case, NextNamedForComplex starts by num0 <br>
      if <num> is zero, else by NextForComplex(num) <br>
      If the alphabetic order is not respected, it restarts from <br>
      num0 and loops on NextForComplex until finding <name> <br>
      In case of "non-alphabetic order", <ach> is filled with a <br>
        Warning for this name <br>
      In case of "not-found at all", <ach> is filled with a Fail, <br>
        and <num> is returned as zero <br>


Returns True if alphabetic order, False else

virtual Standard_Integer StepData_StepReaderData::NbEntities ( ) const
virtual

Returns total count of Entities (including Header)

Reimplemented from Interface_FileReaderData.

Standard_Integer StepData_StepReaderData::NextForComplex ( const Standard_Integer  num) const

Returns the Next "Componant" for a Complex Type Entity, of
which <num> is already a Componant (the first one or a next one)
Returns 0 for a Simple Type or for the last Componant

void StepData_StepReaderData::PrepareHeader ( )

Works as SetEntityNumbers but for Header : more simple because
there are no Reference, only Sub-Lists

Standard_Boolean StepData_StepReaderData::ReadAny ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
const Handle< StepData_PDescr > &  descr,
Handle< Standard_Transient > &  val 
) const

 Reads parameter <nump> of record <num> into a Transient Value <br>
      according to the type of the parameter : <br>
      Named for Integer,Boolean,Logical,Enum,Real : SelectNamed <br>
      Immediate Integer,Boolean,Logical,Enum,Real : SelectInt/Real <br>
      Text  : HAsciiString <br>
      Ident : the referenced Entity <br>
      Sub-List not processed, see ReadSub <br>
      This value is controlled by a Parameter Descriptor (PDescr), <br>
      which controls its allowed type and value <br>
      <ach> is filled if the read parameter does not match its <br>
      description (the select is nevertheless created if possible) <br>


Warning : val is in out, hence it is possible to predefine a specific
SelectMember then to fill it. If <val> is Null or if the
result is not a SelectMember, val itself is returned a new ref
For a Select with a Name, <val> must then be a SelectNamed

Standard_Boolean StepData_StepReaderData::ReadBoolean ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
Standard_Boolean flag 
) const

reads parameter <nump> of record <num> as a Boolean
Return value and Check managed as by ReadReal (demands a
Boolean enum, i.e. text ".T." for True or ".F." for False)

Standard_Boolean StepData_StepReaderData::ReadEntity ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
const Handle< Standard_Type > &  atype,
Handle< Standard_Transient > &  ent 
) const

Reads parameter <nump> of record <num> as a single Entity.
Return value and Check managed as by ReadReal (demands a
reference to an Entity). In Addition, demands read Entity
to be Kind of a required Type <atype>.
Remark that returned status is False and <ent> is Null if
parameter is not an Entity, <ent> remains Not Null is parameter
is an Entity but is not Kind of required type

Standard_Boolean StepData_StepReaderData::ReadEntity ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
StepData_SelectType sel 
) const

Same as above, but a SelectType checks Type Matching, and
records the read Entity (see method Value from SelectType)

Standard_Boolean StepData_StepReaderData::ReadEnum ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
const StepData_EnumTool enumtool,
Standard_Integer val 
) const

Reads parameter <nump> of record <num> as an Enumeration (text
between dots) and converts it to an integer value, by an
EnumTool. Returns True if OK, false if : this parameter is not
enumeration, or is not recognized by the EnumTool (with fail)

Standard_Boolean StepData_StepReaderData::ReadEnumParam ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
Standard_CString text 
) const
Standard_Boolean StepData_StepReaderData::ReadField ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
const Handle< StepData_PDescr > &  descr,
StepData_Field fild 
) const

reads parameter <nump> of record <num> into a Field,
controlled by a Parameter Descriptor (PDescr), which controls
its allowed type(s) and value
<ach> is filled if the read parameter does not match its
description (but the field is read anyway)
If the description is not defined, no control is done
Returns True when done

Standard_Boolean StepData_StepReaderData::ReadInteger ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
Standard_Integer val 
) const

reads parameter <nump> of record <num> as a single Integer.
Return value & Check managed as by ReadXY (demands an Integer)

Standard_Boolean StepData_StepReaderData::ReadList ( const Standard_Integer  num,
Handle< Interface_Check > &  ach,
const Handle< StepData_ESDescr > &  descr,
StepData_FieldList list 
) const

reads a list of fields controlled by an ESDescr

Standard_Boolean StepData_StepReaderData::ReadLogical ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
StepData_Logical flag 
) const

reads parameter <nump> of record <num> as a Logical
Return value and Check managed as by ReadBoolean (demands a
Logical enum, i.e. text ".T.", ".F.", or ".U.")

Standard_Boolean StepData_StepReaderData::ReadMember ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
Handle< StepData_SelectMember > &  val 
) const

Reads parameter <nump> of record <num> into a SelectMember,
self-sufficient (no Description needed)
If <val> is already created, it will be filled, as possible
And if reading does not match its own description, the result
will be False
If <val> is not it not yet created, it will be (SelectNamed)
Usefull if a field is defined as a SelectMember, directly
(SELECT with no Entity as member)
But SelectType also manages SelectMember (for SELECT with
some members as Entity, some other not)

Standard_Boolean StepData_StepReaderData::ReadReal ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
Standard_Real val 
) const

reads parameter <nump> of record <num> as a single Real value.
Return value and Check managed as by ReadXY (demands a Real)

Standard_Boolean StepData_StepReaderData::ReadString ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
Handle< TCollection_HAsciiString > &  val 
) const

reads parameter <nump> of record <num> as a String (text
between quotes, quotes are removed by the Read operation)
Return value and Check managed as by ReadXY (demands a String)

Standard_Integer StepData_StepReaderData::ReadSub ( const Standard_Integer  numsub,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
const Handle< StepData_PDescr > &  descr,
Handle< Standard_Transient > &  val 
) const

reads the content of a sub-list into a transient :
SelectNamed, or HArray1 of Integer,Real,String,Transient ...
recursive call if list of list ...
If a sub-list has mixed types, an HArray1OfTransient is
produced, it may contain SelectMember
Intended to be called by ReadField
The returned status is : negative if failed, 0 if empty.
Else the kind to be recorded in the field

Standard_Boolean StepData_StepReaderData::ReadSubList ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
Standard_Integer numsub,
const Standard_Boolean  optional = Standard_False,
const Standard_Integer  lenmin = 0,
const Standard_Integer  lenmax = 0 
) const

reads parameter <nump> of record <num> as a sub-list (may be
typed, see ReadTypedParameter in this case)
Returns True if OK. Else (not a LIST), returns false and
feeds Check with appropriate check
If <optional> is True and Param is not defined, returns True
with <ach> not filled and <numsub> returned as 0
Works with SubListNumber with <aslast> false (no specific case
for last parameter)

Standard_Boolean StepData_StepReaderData::ReadTypedParam ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_Boolean  mustbetyped,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
Standard_Integer numr,
Standard_Integer numrp,
TCollection_AsciiString typ 
) const

Resolves a parameter which can be enclosed in a type def., as
TYPE(val). The parameter must then be read normally according
its type. Parameter to be resolved is <nump> of record <num>
<mustbetyped> True demands a typed parameter
<mustbetyped> False accepts a non-typed parameter as option
mess and ach as usual
<numr>,<numrp> are the resolved record and parameter numbers
= num,nump if no type, else numrp=1
<typ> returns the recorded type, or empty string
Remark : a non-typed list is considered as "non-typed"

Standard_Boolean StepData_StepReaderData::ReadXY ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
Standard_Real X,
Standard_Real Y 
) const

reads parameter <nump> of record <num> as a sub-list of
two Reals X,Y. Returns True if OK. Else, returns false and
feeds Check with appropriate Fails (parameter not a sub-list,
not two Reals in the sub-list) composed with "mess" which
gives the name of the parameter

Standard_Boolean StepData_StepReaderData::ReadXYZ ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_CString  mess,
Handle< Interface_Check > &  ach,
Standard_Real X,
Standard_Real Y,
Standard_Real Z 
) const

reads parameter <nump> of record <num> as a sub-list of
three Reals X,Y,Z. Return value and Check managed as by
ReadXY (demands a sub-list of three Reals)

Standard_Integer StepData_StepReaderData::RecordIdent ( const Standard_Integer  num) const

Returns record identifier (Positive number)
If returned ident is not positive : Sub-List or Scope mark

const TCollection_AsciiString& StepData_StepReaderData::RecordType ( const Standard_Integer  num) const

Returns Record Type

void StepData_StepReaderData::SetEntityNumbers ( const Standard_Boolean  withmap = Standard_True)

 determines reference numbers in EntityNumber fields <br>
      called by Prepare from StepReaderTool to prepare later using <br>
      by a StepModel. This method is attached to StepReaderData <br>
      because it needs a massive amount of data accesses to work <br>


If <withmap> is given False, the basic exploration algorithm
is activated, otherwise a map is used as far as it is possible
this option can be used only to test this algorithm

void StepData_StepReaderData::SetRecord ( const Standard_Integer  num,
const Standard_CString  ident,
const Standard_CString  type,
const Standard_Integer  nbpar 
)

Fills the fields of a record

Standard_Integer StepData_StepReaderData::SubListNumber ( const Standard_Integer  num,
const Standard_Integer  nump,
const Standard_Boolean  aslast 
) const

Returns SubList numero designated by a parameter (nump) in a
record (num), or zero if the parameter does not exist or is
not a SubList address. Zero too If aslast is True and nump
is not for the last parameter


The documentation for this class was generated from the following file: