subtrans_object
List of: Classes
Subjects: Construction Geometry
Contents: Kernel

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
PDF/KERN/37CLSR.PDF
HTM/DATA/KERN/KERN/37CLSR/0006.HTM