CELL
List of: Classes
Subjects: Cellular Topology, SAT Save and Restore
Contents: Cellular Topology

Purpose: Attaches the subportion of a lump.

Derivation: CELL : ENTITY : ACIS_OBJECT : -

SAT Identifier: "cell"

Filename: ct/ct_husk/classes/cell.hxx

Description: The CELL is an abstract class for CELL2D and CELL3D. It provides the data and member functions for the list pointers, the lump back pointer, the supercell pointer, and the bounding box. It should never be instanced.


The cell is a minimal connected subportion of a lump. Usually a lump consists of a single cell,which is bounded by an outer cshell and zero, one, or more inner cshells representing voids within the cell. However, when an operation that leaves internal faces in a lump returns a lump with fully enclosed internal regions, each region is represented by a cell.

References: CT SUPERCELL

by CT ATTRIB_CELL, SUPERCELL

BASE SPAbox

KERN LUMP

Constructor: public: CELL::CELL ();


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 CELL), because this reserves the memory on the heap, a requirement to support roll back and history management.






public: CELL::CELL (


CELL*, // next cell


LUMP*, // lump


SPAbox* // bounding box


);


C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments. Applications should call this constructor only with the overloaded new operator inherited from the ENTITY class (for example, x=new CELL(...)), because this reserves the memory on the heap, a requirement to support roll back and history management.




Destructor: public: virtual void CELL::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 CELL::~CELL ();


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 CELL(...) then later x->lose.)



Methods: public: SPAbox* CELL::bound () const;


Returns the bound pointer.






public: virtual void CELL::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 CELL::deletable () const;


Returns TRUE if the CELL is deletable; otherwise, it returns FALSE.






public: virtual int CELL::identity (


int
// level



= 0


) const;


If level is unspecified or 0, returns the type identifier CELL_TYPE. If level is specified, returns CELL_TYPE for that level of derivation from ENTITY. The level of this class is defined as CELL_LEVEL.






public: void CELL::invalidate ();


Validates the update data.






public: virtual logical


CELL::is_deepcopyable () const;


Returns TRUE if this can be deep copied.






protected: void CELL::kill_bound ();


Sets the bounding pointer to NULL.






public: LUMP* CELL::lump () const;


Returns the pointer to the owning lump.






public: CELL* CELL::next () const;


Returns the next pointer.






public: CELL* CELL::next_in_list () const;


Returns a pointer to the next in the list.






public: virtual ENTITY* CELL::owner () const;


Returns the entity that owns the cell.






public: void CELL::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_ptr Pointer to record in save file for next cell

read_ptr Pointer to record in save file for lump containing cell

read_ptr Pointer to record in save file for supercell containing cell

read_int



validity data






public: void CELL::set_bound (


SPAbox* // bounding box


);


Changes the data for the bounding box. This method checks that the record has been posted on the bulletin board before performing the change. If not, the method returns an error, so that the omission (forgetting to call backup first) can be rectified in the program.






public: void CELL::set_lump (


LUMP* // lump


);


Changes the data for the lump. This method checks that the record has been posted on the bulletin board before performing the change. If not, the method returns an error, so that the omission (forgetting to call backup first) can be rectified in the program.






public: void CELL::set_next (


CELL* // cell


);


Changes the data for the next cell. This method checks that the record has been posted on the bulletin board before performing the change. If not, the method returns an error, so that the omission (forgetting to call backup first) can be rectified in the program.






public: void CELL::set_supercell (


SUPERCELL* // supercell


);


Changes the data for the next cell. This method checks that the record has been posted on the bulletin board before performing the change. If not, the method returns an error, so that the omission (forgetting to call backup first) can be rectified in the program.






public: SUPERCELL* CELL::supercell () const;


Returns the pointer to the supercell.






public: virtual const char*


CELL::type_name () const;


Returns the string "cell".






public: logical CELL::valid () const;


Returns TRUE if the CELL is valid; otherwise, it returns FALSE.






public: void CELL::validate ();


Invalidates the update data.

Internal Use: full_size




Related Fncs: is_CELL
PDF/CT/04CL.PDF
HTM/DATA/CT/CT/04CL/0006.HTM