Purpose:
|
Defines a shared-subtype class that is subject to transformations.
|
|
Derivation:
|
subtrans_object : subtype_object : ACIS_OBJECT : -
|
|
Filename:
|
kern/kernel/kernutil/subtype/subtrans.hxx
|
|
Description:
|
This class defines a shared-subtype class that is subject to transformations, and is designed to ensure that transforming several references to the same object with the same transformation retains the sharing.
|
|
Constructor:
|
protected: subtrans_object::subtrans_object
();
|
|
|
C++ constructor, creating a
subtrans_object.
|
|
|
|
|
|
|
protected: subtrans_object::subtrans_object
(
|
|
|
subtrans_trans*,
|
// transform list
|
|
|
subtrans_object*
|
// parent object
|
|
|
);
|
|
|
This constructor transforms the given parent to make a new child, and hooks up all the pointers. Constructor to be used when a linked list of extensions is made. Initially the linked list is of length 1 and parent points to itself.
|
|
|
|
|
Destructor:
|
protected: subtrans_object::~subtrans_object
();
|
|
|
C++ destructor, deleting a
subtrans_object. Removes references in the
trans_list and also the one referring to this in the parent's list.
|
|
|
|
Methods:
|
public: void subtrans_object::clear_trans
();
|
|
|
Clears any references to this object using transformation lists, before incompatible changes.
|
|
|
|
|
|
|
protected: virtual subtrans_object*
|
|
|
subtrans_object::copy () const = 0;
|
|
|
Duplicates this object. This method is virtual so that the true derived object is copied.
|
|
|
|
|
|
|
public: subtrans_object* subtrans_object::get_next
() const;
|
|
|
Returns the next object in the list.
|
|
|
|
|
|
|
public: subtrans_object*
|
|
|
subtrans_object::make_trans (
|
|
|
SPAtransf const&
|
// transformation
|
|
|
);
|
|
|
Transforms the
subtrans_object on an external level. This method searches the transform list to find a match. It returns the corresponding transformed object if it is found; otherwise, it constructs a new transformed object, enters it into the transformation list for future reference, and returns the new object. If this object is only singly-referenced and has no transformed counterpart, then it transforms directly without copying, and "this" returns.
|
|
|
|
|
|
|
protected: virtual void subtrans_object::operator*=
(
|
|
|
SPAtransf const&
|
// transformation
|
|
|
) = 0;
|
|
|
Transforms the
subtrans_object by the given transformation.
|
|
|
|
|
|
|
public: void subtrans_object::set_next
(
|
|
|
subtrans_object*
|
// object
|
|
|
);
|
|
|
Sets the next object in the list.
|
|
Internal Use:
|
full_size
|