Open CASCADE Technology 7.8.2.dev
IFSelect_Transformer Class Referenceabstract

A Transformer defines the way an InterfaceModel is transformed (without sending it to a file). In order to work, each type of Transformer defines it method Perform, it can be parametred as needed. More...

#include <IFSelect_Transformer.hxx>

Inheritance diagram for IFSelect_Transformer:

Public Member Functions

virtual Standard_Boolean Perform (const Interface_Graph &G, const Handle< Interface_Protocol > &protocol, Interface_CheckIterator &checks, Handle< Interface_InterfaceModel > &newmod)=0
 Performs a Transformation (defined by each sub-class) : <G> gives the input data (especially the starting model) and can be used for queries (by Selections, etc...) <protocol> allows to work with General Services as necessary (it applies to input data) If the change corresponds to a conversion to a new protocol, see also the method ChangeProtocol <checks> stores produced checks messages if any <newmod> gives the result of the transformation :
 
virtual Standard_Boolean ChangeProtocol (Handle< Interface_Protocol > &newproto) const
 This methods allows to declare that the Protocol applied to the new Model has changed. It applies to the last call to Perform.
 
virtual Standard_Boolean Updated (const Handle< Standard_Transient > &entfrom, Handle< Standard_Transient > &entto) const =0
 This method allows to know what happened to a starting entity after the last Perform. If <entfrom> (from starting model) has one and only one known item which corresponds in the new produced model, this method must return True and fill the argument <entto>. Else, it returns False.
 
virtual TCollection_AsciiString Label () const =0
 Returns a text which defines the way a Transformer works (to identify the transformation it performs)
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter.
 
virtual ~Standard_Transient ()
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
Standard_Boolean IsKind (const opencascade::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.
 
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.
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
 
Standard_Integer GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object.
 
Standard_Integer DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const char * get_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 

Detailed Description

A Transformer defines the way an InterfaceModel is transformed (without sending it to a file). In order to work, each type of Transformer defines it method Perform, it can be parametred as needed.

It receives a Model (the data set) as input. It then can :

  • edit this Model on the spot (i.e. alter its content: by editing entities, or adding/replacing some ...)
  • produce a copied Model, which detains the needed changes (typically on the same type, but some or all entities being rebuilt or converted; or converted from a protocol to another one)

Member Function Documentation

◆ ChangeProtocol()

virtual Standard_Boolean IFSelect_Transformer::ChangeProtocol ( Handle< Interface_Protocol > & newproto) const
virtual

This methods allows to declare that the Protocol applied to the new Model has changed. It applies to the last call to Perform.

Returns True if the Protocol has changed, False else. The provided default keeps the starting Protocol. This method should be redefined as required by the effect of Perform.

◆ Label()

virtual TCollection_AsciiString IFSelect_Transformer::Label ( ) const
pure virtual

Returns a text which defines the way a Transformer works (to identify the transformation it performs)

Implemented in IFSelect_TransformStandard, and IGESSelect_SplineToBSpline.

◆ Perform()

virtual Standard_Boolean IFSelect_Transformer::Perform ( const Interface_Graph & G,
const Handle< Interface_Protocol > & protocol,
Interface_CheckIterator & checks,
Handle< Interface_InterfaceModel > & newmod )
pure virtual

Performs a Transformation (defined by each sub-class) : <G> gives the input data (especially the starting model) and can be used for queries (by Selections, etc...) <protocol> allows to work with General Services as necessary (it applies to input data) If the change corresponds to a conversion to a new protocol, see also the method ChangeProtocol <checks> stores produced checks messages if any <newmod> gives the result of the transformation :

  • if it is Null (i.e. has not been affected), the transformation has been made on the spot, it is assumed to cause no change to the graph of dependances
  • if it equates the starting Model, it has been transformed on the spot (possibiliy some entities were replaced inside it)
  • if it is new, it corresponds to a new data set which replaces the starting one

<me> is mutable to allow results for ChangeProtocol to be memorized if needed, and to store information useful for the method Updated

Returns True if Done, False if an Error occurred: in this case, if a new data set has been produced, the transformation is ignored, else data may be corrupted.

Implemented in IFSelect_TransformStandard, and IGESSelect_SplineToBSpline.

◆ Updated()

virtual Standard_Boolean IFSelect_Transformer::Updated ( const Handle< Standard_Transient > & entfrom,
Handle< Standard_Transient > & entto ) const
pure virtual

This method allows to know what happened to a starting entity after the last Perform. If <entfrom> (from starting model) has one and only one known item which corresponds in the new produced model, this method must return True and fill the argument <entto>. Else, it returns False.

Implemented in IFSelect_TransformStandard, and IGESSelect_SplineToBSpline.


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