Purpose:
|
Represents an overall transformation applied to a BODY, and is saved as part of the model.
|
|
Derivation:
|
TRANSFORM : ENTITY : ACIS_OBJECT : -
|
|
SAT Identifier:
|
"transform"
|
|
Filename:
|
kern/kernel/kerndata/geom/transfrm.hxx
|
|
Description:
|
The
TRANSFORM class represents an overall transformation applied to a
BODY.
TRANSFORM allows object-space transformations to be applied without the need to recompute the
BODY geometry (until two
BODYs are to be combined and their internal coordinate systems have to be brought into agreement).
|
|
|
It allows a general affine transformation, but records the separate elements of the transformation (scaling, rotation, translation, etc.) to simplify the task of geometry transformation in the common case of solid-body transformations.
|
|
|
In particular, differential scaling, or shear, can change certain surface and curve types, so this is an important consideration. Also a reflection changes the
sense of the relationship between edge tangents and surface normals and the topology has to be reversed to maintain the conventional edge direction.
|
|
References:
|
by KERN
|
BODY
|
|
BASE
|
SPAtransf
|
|
Constructor:
|
public: SPAtransf const& TRANSFORM::transform
() const;
|
|
|
C++ allocation constructor requests memory for this object but does not populate it. The allocation constructor is used primarily by restore. Applications should call this constructor only with the overloaded
new operator, because this reserves the memory on the heap, a requirement to support roll back and history management.
|
|
|
|
|
|
|
public: TRANSFORM::TRANSFORM
();
|
|
|
C++ allocation constructor requests memory for this object but does not populate it. The allocation constructor is used primarily by restore. Applications should call this constructor only with the overloaded
new operator inherited from the
ENTITY class (for example,
x=new TRANSFORM), because this reserves the memory on the heap, a requirement to support roll back and history management.
|
|
|
|
|
|
|
public: TRANSFORM::TRANSFORM
(
|
|
|
SPAtransf const&
|
// transform
|
|
|
);
|
|
|
C++ copy constructor requests memory for this object and populates it with the data from the object supplied as an argument. Applications should call this constructor only with the overloaded
new operator, because this reserves the memory on the heap, a requirement to support roll back and history management.
|
|
|
Creates a
TRANSFORM by copying a
SPAtransf object.
|
|
|
|
|
Destructor:
|
public: virtual void TRANSFORM::lose
();
|
|
|
Posts a delete bulletin to the bulletin board indicating the instance is no longer used in the active model. The
lose methods for attached attributes are also called.
|
|
|
|
|
|
|
protected: virtual TRANSFORM::~TRANSFORM
();
|
|
|
This
C++ destructor should never be called directly. Instead, applications should use the overloaded
lose method inherited from the
ENTITY class, because this supports history management. (For example,
x=new TRANSFORM(...) then later
x->lose.)
|
|
|
|
Methods:
|
public: virtual void TRANSFORM::debug_ent
(
|
|
|
FILE*
|
// file pointer
|
|
|
) const;
|
|
|
Prints the type and address of this object, roll back pointer, attributes, and any unknown subtype information to the specified file. Refer to the
ENTITY class for more details.
|
|
|
|
|
|
|
public: virtual logical
|
|
|
TRANSFORM::deletable () const;
|
|
|
Indicates whether this entity is normally destroyed by
lose (TRUE), or whether it is shared between multiple owners using a use count, and so gets destroyed implicitly when every owner has been lost (FALSE). The default for
TRANSFORM is
FALSE.
|
|
|
|
|
|
|
public: virtual int TRANSFORM::identity
(
|
|
|
int
|
|
// level
|
|
|
|
= 0
|
|
|
) const;
|
|
|
If
level is unspecified or 0, returns the type identifier
TRANSFORM_TYPE. If
level is specified, returns
TRANSFORM_TYPE for that level of derivation from
ENTITY. The level of this class is defined as
TRANSFORM_LEVEL.
|
|
|
|
|
|
|
public: virtual logical TRANSFORM::is_deepcopyable
(
|
|
|
) const;
|
|
|
Returns
TRUE if this can be deep copied.
|
|
|
|
|
|
|
public: TRANSFORM& TRANSFORM::operator*=
(
|
|
|
SPAtransf const&
|
// transformation
|
|
|
);
|
|
|
Concatenates an existing transformation with a new one. Before performing a change, it checks whether the data structure is posted on the bulletin board. If not, the routine calls
backup to put an entry on the bulletin board.
|
|
|
|
|
|
|
public: void TRANSFORM::restore_common
();
|
|
|
The
RESTORE_DEF macro expands to the
restore_common method, which is used in reading information from a SAT file. This method is never called directly. It is called by a higher hierarchical function if an item in the SAT file is determined to be of this class type. An instance of this class will already have been created through the allocation constructor. This method then populates the class instance with the appropriate data from the SAT file.
|
|
|
read_transf
|
|
|
|
Transformation matrix
|
|
|
|
|
|
|
public: void TRANSFORM::set_transform
(
|
|
|
SPAtransf const&
|
// transform
|
|
|
);
|
|
|
Sets the
TRANSFORM to the given
SPAtransf object. Before performing a change, it checks whether the data structure is posted on the bulletin board. If not, the routine calls
backup to put an entry on the bulletin board.
|
|
|
|
|
|
|
public: SPAtransf const& TRANSFORM::transform
() const;
|
|
|
Returns the
SPAtransf object for the
TRANSFORM.
|
|
|
|
|
|
|
public: virtual const char*
|
|
|
TRANSFORM::type_name () const;
|
|
|
Returns the string "transform".
|
|
|
|
|
Related Fncs:
|
is_TRANSFORM
|