Home

ATTRIB_CELL Class Reference
[Cellular Topology]

Implements an attribute pointing to a list of cells belonging to a lump. More...

#include <at_cell.hxx>

Inheritance diagram for ATTRIB_CELL:

Inheritance graph
[legend]
Collaboration diagram for ATTRIB_CELL:

Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual void add ()
 If this ENTITY is use counted, adds one to the count.
virtual logical apply_transform (const SPAtransf &t, ENTITY_LIST &list, logical negate=FALSE, logical reset_pattern=TRUE)
 Transforms this ENTITY.
ATTRIBattrib () const
 Returns this ENTITY's attribute pointer, or NULL if there is no attached attribute.
 ATTRIB_CELL (LUMP *lmp=NULL, CELL *cel=NULL)
 C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments.
logical auto_update_on () const
 Indicates if the cell data should be recalculated at the end of an API.
ENTITYbackup ()
 Creates a duplicate record and a change bulletin, if needed, as a backup for roll back.
int bulletin_count () const
 Returns the number of bulletins referring to this ENTITY.
virtual logical call_method (METHOD_ID const &, METHOD_ARGS const &)
 Executes the implementation function for a routine virtual method.
CELLcell () const
 Returns the first cell in a complete enumeration of all cells in the lump.
CELLcell_list () const
 Returns the list of cells.
virtual ENTITYcopy_data (ENTITY_LIST &, pointer_map *pm=NULL, logical dpcpy_skip=FALSE, SCAN_TYPE reason=SCAN_COPY) const
 Allocates a new ENTITY and calls copy_common to fill it in.
virtual void copy_owner (ENTITY *copy_entity)
 Notifies this ATTRIB that its owning ENTITY has been copied.
virtual void copy_scan (ENTITY_LIST &, SCAN_TYPE reason=SCAN_COPY, logical dpcpy_skip=FALSE) const
 Adds dependent ENTITYs of this ENTITY to the list of ENTITYs to be copied.
virtual logical copyable () const
 Indicates whether this attribute should be included when the owning entity is copied.
virtual void debug_ent (FILE *) const
 Prints the type and address of this ENTITY, roll back pointer, attributes, and any unknown subtype information.
virtual logical deletable () const
 Indicates whether this ATTRIB is independently deletable of its owner.
virtual logical duplicatable () const
 Indicates whether this ATTRIB can be duplicated.
ATTRIBduplicate (ENTITY *new_ent) const
 Duplicate this attribute onto the given ENTITY.
ENTITYentity () const
 Returns a pointer to the ENTITY that owns this ATTRIB.
virtual void fix_pointers (ENTITY *[], SCAN_TYPE reason=SCAN_COPY)
 Converts pointers from copy indices into real pointers.
virtual void from_tolerant_owner (ENTITY *non_tol_ent)
 Notifies this ATTRIB that its owning ENTITY is being replaced with a non-tolerant ENTITY.
virtual void full_size (SizeAccumulator &est, logical countSelf=TRUE) const
 Increments the SizeAccumulator by the size, in bytes, of everything owned by this ENTITY and, optionally, of the ENTITY itself.
copy_action get_copy_owner_action (void) const
 Get the current copy_owner action for this attribute.
tolerant_action get_from_tolerant_owner_action (void) const
 Get the current from_tolerant_owner action for this attribute.
geometry_changed_action get_lop_change_owner_action (void) const
 Get the current lop_change_owner action for this attribute.
merge_action get_merge_owner_action (void) const
 Get the current merge_owner action for this attribute.
geometry_changed_action get_rep_owner_geom_action (void) const
 Get the current replace_owner_geometry action for this attribute.
replace_action get_replace_owner_action (void) const
 Get the current replace_owner action for this attribute.
geometry_changed_action get_reverse_owner_action (void) const
 Get the current reverse_owner action for this attribute.
split_action get_split_owner_action (void) const
 Get the current split_owner action for this attribute.
tolerant_action get_to_tolerant_owner_action (void) const
 Get the current to_tolerant_owner action for this attribute.
trans_action get_trans_owner_action (void) const
 Get the current trans_owner action for this attribute.
geometry_changed_action get_warp_owner_action (void) const
 Get the current warp_owner action for this attribute.
HISTORY_STREAMhistory () const
 Returns a pointer to the history stream for this ENTITY.
virtual int identity (int=0) const
 Returns a type identifier for this ENTITY.
virtual logical is_deepcopyable () const
 Returns TRUE if this ENTITY can be deep copied.
virtual logical is_use_counted () const
 Indicates if this ENTITY is use-counted or not.
virtual int lookup (logical) const
 Looks up this ENTITY in the appropriate debug list.
virtual void lop_change_owner ()
 Notifies this ATTRIB that its owning ENTITY will be changed by a local operation, face removal, or shelling.
virtual void lose ()
 Posts a delete bulletin to the bulletin board indicating the instance is no longer used in the active model.
virtual void merge_owner (ENTITY *entity, logical del_owner)
 Notifies this ATTRIB that its owning ENTITY is about to be merged with a given ENTITY.
virtual ATTRIBmove (ENTITY *new_entity)
 Moves this ATTRIB to a new owning ENTITY.
virtual logical moveable () const
 Returns TRUE if this ATTRIB is moveable from one owning ENTITY to another.
logical needs_rollback () const
 Checks whether or not the record is already backed up.
ATTRIBnext () const
 Returns the next attribute in this ATTRIB's linked list.
virtual ENTITYowner () const
 Identifies the owning ENTITY, if any, of this ATTRIB.
virtual logical pattern_compatible () const
 Returns TRUE if the ATTRIB is pattern-compatible.
virtual logical pattern_copyable () const
 Returns TRUE if the ATTRIB is pattern-copyable.
ATTRIBprevious () const
 Returns the previous attribute in this ATTRIB's linked list.
virtual void remove (logical lose_if_zero=TRUE)
 Decrements the use count of this ENTITY.
virtual void replace_owner (ENTITY *other_entity, logical replace_owner)
 Notifies this ATTRIB that its owning ENTITY is being replaced.
virtual void replace_owner_geometry (ENTITY *new_geom)
 Notifies this ATTRIB that its owning ENTITY is being given new geometry, possibly changing its shape.
void restore_common ()
 Restores data for a record from disc to memory.
void restore_end (char *id_str)
 Terminates a restore record.
virtual void reverse_owner ()
 Notifies this ATTRIB that its owning entity's sense bit is about to be reversed.
BULLETIN *& rollback () const
 Returns the pointer to the bulletin board entry for this ENTITY.
virtual logical savable () const
 Indicates whether this ATTRIB should be included when the owning entity is saved.
virtual void save (ENTITY_LIST &) const
 Performs a save operation.
void set_attrib (ATTRIB *attr)
 Changes the attribute pointer of this ENTITY to point to the given attribute.
void set_auto_update (logical state)
 Sets the automatic update on or off.
void set_cell (CELL *cel)
 Sets the first cell in a complete enumeration of all cells in the attribute.
copy_action set_copy_owner_action (const copy_action action)
 Set the copy_owner action for this attribute.
tolerant_action set_from_tolerant_owner_action (const tolerant_action action)
 Set the from_tolerant_owner action for this attribute.
geometry_changed_action set_lop_change_owner_action (const geometry_changed_action action)
 Set the lop_change_owner action for this attribute.
merge_action set_merge_owner_action (const merge_action action)
 Set the merge_owner action for this attribute.
geometry_changed_action set_rep_owner_geom_action (const geometry_changed_action action)
 Set the replace_owner_geometry action for this attribute.
replace_action set_replace_owner_action (const replace_action action)
 Set the replace_owner action for this attribute.
geometry_changed_action set_reverse_owner_action (const geometry_changed_action action)
 Set the reverse_owner action for this attribute.
split_action set_split_owner_action (const split_action action)
 Set the split_owner action for this attribute.
void set_supercell (SUPERCELL *scel)
 Sets a list of supercells in the cell attribute.
tolerant_action set_to_tolerant_owner_action (const tolerant_action action)
 Set the to_tolerant_owner action for this attribute.
trans_action set_trans_owner_action (const trans_action action)
 Set the trans_owner action for this attribute.
virtual void set_use_count (int use)
 Sets the reference use count of this ENTITY.
geometry_changed_action set_warp_owner_action (const geometry_changed_action action)
 Set the warp_owner action for this attribute.
virtual unsigned size () const
 Returns the size, in bytes, of this ENTITY.
virtual void split_owner (ENTITY *entity)
 Notifies this ATTRIB that its owner is about to be split into two parts.
SUPERCELLsupercell () const
 Returns the (optional) list of supercells in the cell attribute.
tag_id_type tag (logical assign_new=TRUE) const
 Data reading routine.
virtual void to_tolerant_owner (ENTITY *tol_ent)
 Notifies this ATTRIB that its owning ENTITY is being replaced with a tolerant ENTITY.
virtual void trans_owner (SPAtransf const &trans)
 Notifies this ATTRIB that its owner is about to be transformed.
virtual void trans_owner_list (const SPAtransf &transf, ENTITY_LIST &e_list)
 Notifies this ATTRIB that its owner is about to be transformed.
virtual const char * type_name () const
 Returns a name for this ENTITY's type.
ATTRIBunhook ()
 Removes this ATTRIB from the chain of attributes of its owning ENTITY.
virtual int use_count () const
 Returns the use count of this ENTITY.
virtual void warp_owner (law *warp)
 Notifies this ATTRIB that its owning ENTITY will be modified by warping.

Static Public Member Functions

static MethodFunction add_method (METHOD_ID const &, MethodFunction)
 Registers an implementation function for a run-time virtual method.

Protected Member Functions

virtual logical bulletin_no_change_vf (const ENTITY *other, logical identical_comparator) const
 Compares subclass data.
void check_destroy () const
 Checks that entity deletion is legitimate.
void copy_common (ENTITY_LIST &list, const ENTITY *from, pointer_map *pm=NULL, logical dpcpy_skip=FALSE, SCAN_TYPE reason=SCAN_COPY)
 Fills in this ENTITY with data from the copied ENTITY, converting pointers into indices in the supplied ENTITY_LIST.
void fix_common (ENTITY *[], SCAN_TYPE reason=SCAN_COPY)
 Converts pointers from copy indices into real pointers.
void fixup_copy (ENTITY *rollback) const
 Fixes any pointers in the ENTITY after copying for backup.
virtual logical holds_pattern () const
 Returns TRUE if this entity can have a pattern_holder.
logical is_unknown_entity (void) const
 Returns TRUE if this is an unknown entity.
virtual void roll_notify (BULLETIN_TYPE bulletin_type, ENTITY *ent)
 Fields notifications of rollback operations.
void save_begin (logical terminator=FALSE) const
 Starts a save record.
void save_common (ENTITY_LIST &) const
 Handles the save operation.
void save_end (ENTITY_LIST &list) const
 Terminates a save record.


Detailed Description

Implements an attribute pointing to a list of cells belonging to a lump.


Role: This class implements an attribute pointing to a cell. It contains a list of cells (2D and 3D contained), and optionally a list of supercells.

The ATTRIB_CELL attribute hangs from a lump and contains a pointer to the list of cells for that lump. It can optionally contain a list of supercells (a cell box hierarchy). An auto_update flag indicates to the automatic cell re-computation mechanism whether or not to update the cell data of the attribute. Each lump may have at most one ATTRIB_CELL.

For additional information, refer to the Technical Article on Cellular Topology Data Structure.

See also:
CELL

Constructor & Destructor Documentation

ATTRIB_CELL::ATTRIB_CELL ( LUMP lmp = NULL,
CELL cel = NULL 
)

C++ initialize constructor requests memory for this object and populates it with the data supplied as arguments.



Role: Applications should call this constructor only with the overloaded new operator inherited from the ENTITY class (for example, x=new ATTRIB_CELL(...)), because this reserves the memory on the heap, a requirement to support roll back and history management.

Parameters:
lmp lump.
cel cell.


Member Function Documentation

virtual void ENTITY::add (  )  [virtual, inherited]

If this ENTITY is use counted, adds one to the count.



Role: If this ENTITY is not use counted, signals an error.

Every held pointer to a use counted ENTITY should be declared by calling add. There should a corresponding call to remove when the user is done with the pointer. For normal ENTITYs, simply call lose when the ENTITY is no longer part of the active model. For use counted ENTITYs, the implementations of add and remove come from macros in usecount.hxx. Use counted ENTITYs implemented without the macros should implement these virtual methods manually.

Reimplemented in CURVE, EE_LIST, SPAGROUP, PCURVE, PHLV5_OCC, APOINT, REFINEMENT, RH_MATERIAL, RH_TEXTURE_SPACE, SURFACE, and VERTEX_TEMPLATE.

static MethodFunction ATTRIB_CELL::add_method ( METHOD_ID const &  method_id,
MethodFunction  method_func 
) [static]

Registers an implementation function for a run-time virtual method.



Role: (Supplied by the ENTITY_FUNCTIONS and UTILITY_DEF macros.)

Parameters:
method_id method id.
method_func method function.

Reimplemented from ATTRIB_CT.

virtual logical ENTITY::apply_transform ( const SPAtransf t,
ENTITY_LIST list,
logical  negate = FALSE,
logical  reset_pattern = TRUE 
) [virtual, inherited]

Transforms this ENTITY.



Role: The ENTITY_LIST is used to prevent sub-entities from being transformed more than once. This method is not included with the standard ENTITY methods in order to allow nontransformable ENTITYs to use the default implementation. (Supplied by the TRANSFORM_FUNCTION and TRANSFORM_DEF macros.)

Parameters:
t the transform to apply.
list list of entities to which the transform has already been applied.
negate negation flag.
reset_pattern internal use only.

Reimplemented in ASM_ASSEMBLY, ASM_MODEL_REF, BODY, COEDGE, CURVE, EDGE, ERROR_ENTITY, FACE, LAW, LOOP, LUMP, APATTERN, PCURVE, APOINT, SHELL, SUBSHELL, SURFACE, TCOEDGE, TEDGE, TEXT_ENT, TVERTEX, VERTEX, WCS, and WIRE.

ATTRIB* ENTITY::attrib (  )  const [inline, inherited]

Returns this ENTITY's attribute pointer, or NULL if there is no attached attribute.

logical ATTRIB_CELL::auto_update_on (  )  const [inline]

Indicates if the cell data should be recalculated at the end of an API.



Role: Returns TRUE if the cell data should be recalculated at the end of an API; otherwise, it returns FALSE, which means suspend the recalculation until later.

ENTITY* ENTITY::backup (  )  [inherited]

Creates a duplicate record and a change bulletin, if needed, as a backup for roll back.



Role: The duplication is done via the virtual function make_copy, to let each derived type do its own backup. Before performing a change, each routine checks whether the data structure is posted on the bulletin board. If not, the posting is done automatically. Called by all system change functions.

int ENTITY::bulletin_count (  )  const [inline, inherited]

Returns the number of bulletins referring to this ENTITY.

virtual logical ENTITY::bulletin_no_change_vf ( const ENTITY other,
logical  identical_comparator 
) const [protected, virtual, inherited]

Compares subclass data.



Role: This virtual method is called by bulletin_no_change. When the identical_comparator argument is TRUE, it requires an exact match when comparing doubles, and returns the result of memcmp as a default (for non-overridden subclasses). A FALSE argument indicates tolerant compares, in which case FALSE is returned by default.

Parameters:
other other ENTITY in the bulletin.
identical_comparator identity compare flag.

Reimplemented in BODY, COEDGE, CONE, CURVE, EDGE, ELLIPSE, FACE, HELIX, INTCURVE, LOOP, LUMP, PCURVE, PLANE, APOINT, SHELL, SPHERE, SPLINE, STRAIGHT, SUBSHELL, SURFACE, TCOEDGE, TEDGE, TORUS, TVERTEX, UNDEFC, VERTEX, and WIRE.

virtual logical ATTRIB_CELL::call_method ( METHOD_ID const &  method_id,
METHOD_ARGS const &  method_args 
) [virtual]

Executes the implementation function for a routine virtual method.



Role: (Supplied by the ENTITY_FUNCTIONs and UTILITY_DEF macros).

Parameters:
method_id method id.
method_args method args.

Reimplemented from ATTRIB_CT.

CELL* ATTRIB_CELL::cell (  )  const

Returns the first cell in a complete enumeration of all cells in the lump.



Role: If there are no subshells, this returns the same pointer as cell_list.

CELL* ATTRIB_CELL::cell_list (  )  const [inline]

Returns the list of cells.



Role: If there are no subshells, this returns the same pointer as cell. If there are subshells, this returns the first cell in the list of cells maintained by this attribute; that is, the first cell that is not in any subshell.

void ENTITY::check_destroy (  )  const [inline, protected, inherited]

Checks that entity deletion is legitimate.



Role: This method complains if there is an attempt to delete an entity other than through the private member function destroy, which is carefully controlled.

void ENTITY::copy_common ( ENTITY_LIST list,
const ENTITY from,
pointer_map pm = NULL,
logical  dpcpy_skip = FALSE,
SCAN_TYPE  reason = SCAN_COPY 
) [protected, inherited]

Fills in this ENTITY with data from the copied ENTITY, converting pointers into indices in the supplied ENTITY_LIST.



Role: Supports the copy operation. (Supplied by the ENTITY_FUNCTIONS and COPY_DEF macros.) Whenever the operation encounters a pointer to a dependent ENTITY, it find the index of the latter in the supplied ENTITY_LIST and sets the corresponding pointer in the copy to that index.

Parameters:
list list of ENTITYs being copied.
from original ENTITY being copied.
pm pointer map.
dpcpy_skip Used only by the base ENTITY and base ATTRIB class. No other derived entity or attribute should need to utilize this value. This logical indicates how non- deepcopyable attributes are handled during a deep copy. If TRUE, the copy will continue even if it encounters attributes marked as not deep-copyable. By default (FALSE), if any attributes that are found to be not deep-copyable, a sys_error will be thrown. (This flag only effects how attributes are handled; any non-deepcopyable non-attribute entities encountered will cause a sys_error to be thrown regardless of this flag's setting.)
reason type of scan.

virtual ENTITY* ATTRIB_CELL::copy_data ( ENTITY_LIST list,
pointer_map pm = NULL,
logical  dpcpy_skip = FALSE,
SCAN_TYPE  reason = SCAN_COPY 
) const [virtual]

Allocates a new ENTITY and calls copy_common to fill it in.



Role: Supports the copy operation. (Supplied by the ENTITY_FUNCTIONS and UTILITY_DEF macros.)

Parameters:
list ENTITYs to copy.
pm pointer map.
dpcpy_skip Used only by the base ENTITY and base ATTRIB class. No other derived entity or attribute should need to utilize this value. This logical indicates how non- deepcopyable attributes are handled during a deep copy. If TRUE, the copy will continue even if it encounters attributes marked as not deep-copyable. By default (FALSE), if any attributes that are found to be not deep-copyable, a sys_error will be thrown. (This flag only effects how attributes are handled; any non-deepcopyable non-attribute entities encountered will cause a sys_error to be thrown regardless of this flag's setting.)
reason scan type.

Reimplemented from ATTRIB_CT.

virtual void ATTRIB_CELL::copy_owner ( ENTITY copy_ent  )  [virtual]

Notifies this ATTRIB that its owning ENTITY has been copied.



Role: This method is used to notify this attribute that it's owner has been copied.

The predominant fashion by which copy_owner is called is during the course of ACIS operations that are constructing, deconstructing, or modifying either topology and/or geometry. This method is also called at the end of the api_down_copy_entity algorithm. As a general rule, the attribute implementing this method cannot assume the validity of the model "above" or "below" its owner, only that its owner is valid and that the copy_ent is valid.

Depending on the application needs of your attribute, it may be possible to utilize the set_copy_owner_action method to specify how your attribute should act within copy_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

Parameters:
copy_ent the new ENTITY that is a copy of this attribute's owner.
See also:
ATTRIB::set_copy_owner_action, get_copy_owner_action, copy_action, copy_attrib

Reimplemented from ATTRIB.

virtual void ATTRIB_CELL::copy_scan ( ENTITY_LIST list,
SCAN_TYPE  reason = SCAN_COPY,
logical  dpcpy_skip = FALSE 
) const [virtual]

Adds dependent ENTITYs of this ENTITY to the list of ENTITYs to be copied.



Role: Supports the copy operation. (Supplied by the ENTITY_FUNCTIONS and SCAN_DEF macros.) The default type of scan (reason) is SCAN_COPY.

Parameters:
list ENTITYs to copy.
reason type of copy.
dpcpy_skip Used only by the base ENTITY and base ATTRIB class. No other derived entity or attribute should need to utilize this value. This logical indicates how non- deepcopyable attributes are handled during a deep copy. If TRUE, the copy will continue even if it encounters attributes marked as not deep-copyable. By default (FALSE), if any attributes that are found to be not deep-copyable, a sys_error will be thrown. (This flag only effects how attributes are handled; any non-deepcopyable non-attribute entities encountered will cause a sys_error to be thrown regardless of this flag's setting.)

Reimplemented from ATTRIB_CT.

virtual logical ATTRIB::copyable (  )  const [virtual, inherited]

Indicates whether this attribute should be included when the owning entity is copied.



Role: The default is to call duplicatable().

Reimplemented in ATTRIB_ANNOTATION, ATTRIB_GEN_NAME, ATTRIB_TAG, and ID_ATTRIB.

virtual void ATTRIB_CELL::debug_ent ( FILE *  file_pointer  )  const [virtual]

Prints the type and address of this ENTITY, roll back pointer, attributes, and any unknown subtype information.



Role: This method is called by DEBUG_LIST::debug for an entirely unknown ENTITY type, or at the start of any derived class's debug_ent method. Each derived class's debug_ent method uses the debug function described in the Spatial Product Documentation to print information added at that level. (Supplied by the ENTITY_FUNCTIONS and DEBUG_DEF macros.)

Parameters:
file_pointer file pointer.

Reimplemented from ATTRIB_CT.

virtual logical ATTRIB::deletable (  )  const [virtual, inherited]

Indicates whether this ATTRIB is independently deletable of its owner.



Role: The default and suggested behavior for this method is to return FALSE. This is an indication that the attribute's lifetime is controlled by its owner; e.g., when the owner is lost, so too is this attribute.

An exception to this default behavior is if the attribute has no owner, e.g., its owner pointer is NULL. In this case, ATTRIB::deletable will return TRUE.

You may want to return TRUE for this method if, as suggested, you want the attribute to be lost before it's owner. Note that api_del_entity will guarantee that all deletable attributes are lost before their owner is lost.

Reimplemented from ENTITY.

Reimplemented in ATTRIB_TAG, and ID_ATTRIB.

virtual logical ATTRIB::duplicatable (  )  const [virtual, inherited]

Indicates whether this ATTRIB can be duplicated.



Role: Indicates whether this attribute may be duplicated via either a copy or a save/restore of the owning ENTITY. The default is TRUE.

ATTRIB* ATTRIB::duplicate ( ENTITY new_ent  )  const [inherited]

Duplicate this attribute onto the given ENTITY.



Role: Using an attribute's copy_data, copy_common,, copy_scan, and fix_pointer methods, this ATTRIB base class method will duplicate 'this' attribute onto the given entity. (Assuming 'this' returns copyable() == TRUE).

Simple attribute data will be propagated onto the new attribute according to the attribute's COPY_DEF.

Complex attribute data (pointers to entities other than the attribute's owner) will not be copied to the new attribute via this method. Instead, the complex attribute data will be set to NULL.

Parameters:
new_ent the new ENTITY onto which a duplicate of 'this' attribute will be placed.

ENTITY* ATTRIB::entity (  )  const [inline, inherited]

Returns a pointer to the ENTITY that owns this ATTRIB.

Reimplemented in ATTRIB_EFINT.

void ATTRIB_CELL::fix_common ( ENTITY array[],
SCAN_TYPE  reason = SCAN_COPY 
) [protected]

Converts pointers from copy indices into real pointers.



Role: Called by fix_pointers. For ENTITY, converts the attribute pointer, and any pointers in the unknown_entity_text record. (Supplied by the ENTITY_FUNCTIONS and FIX_POINTER_DEF macros.)

Parameters:
array ENTITY pointers to fix.
reason type of scan.

Reimplemented from ATTRIB_CT.

virtual void ATTRIB_CELL::fix_pointers ( ENTITY entity_array[],
SCAN_TYPE  reason = SCAN_COPY 
) [virtual]

Converts pointers from copy indices into real pointers.



Role: The fix_pointers method for each entity in the restore array is called, with the given array as an argument. This calls fix_common, which calls its parent's fix_common, and then corrects any pointers in the derived class. In practice there is never anything special for fix_pointers to do, but it is retained for consistency and compatibility. (Supplied by the ENTITY_FUNCTIONS and UTILITY_DEF macros.)

Parameters:
entity_array ENTITY pointers to fix.
reason type of scan.

Reimplemented from ATTRIB_CT.

void ENTITY::fixup_copy ( ENTITY rollback  )  const [protected, inherited]

Fixes any pointers in the ENTITY after copying for backup.



Role: For ENTITY, this method has nothing to do, but because it is called by all data types, it is required to terminate the copy chain. (Supplied by the ENTITY_FUNCTIONS and SIMPLE_COPY_CONE macros.)

Parameters:
rollback the ENTITY to copy for backup.

Reimplemented in GA_WORKSPACE.

virtual void ATTRIB::from_tolerant_owner ( ENTITY non_tol_ent  )  [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY is being replaced with a non-tolerant ENTITY.



Role: The default action is to move the attribute onto the given non-tolerant ENTITY only if moveable() returns TRUE.

Depending on the application needs of your attribute, it may be possible to utilize the set_from_tolerant_owner_action method to specify how your attribute should act within from_tolerant_owner, which would preclude the need to actually implement this method.

Parameters:
tol_ent the new, tolerant owner.
See also:
ATTRIB::set_from_tolerant_owner_action, get_from_tolerant_owner_action, tolerant_action, from_tolerant_attrib

virtual void ENTITY::full_size ( SizeAccumulator &  est,
logical  countSelf = TRUE 
) const [virtual, inherited]

Increments the SizeAccumulator by the size, in bytes, of everything owned by this ENTITY and, optionally, of the ENTITY itself.



Role: If countSelf is TRUE, increments the SizeAccumulator by the size, in bytes, of the ENTITY and everything owned by the ENTITY. If countSelf is FALSE, increments the SizeAccumulator by the size, in bytes, of everything owned by the ENTITY, but not including the size of the ENTITY itself.

For example, if an ENTITY contained a character string and full_size were called with countSelf == FALSE, the SizeAccumulator would be incremented by the size, in bytes, of the character string.

Reimplemented in ATTRIB_CELL_INT_PRECEDENCE, ATTRIB_GEN_NAME, ATTRIB_GEN_STRING, ATTRIB_GEN_WSTRING, ATTRIB_BLEND, ATTRIB_FFBLEND, CELL, SPACOLLECTION, CONE, CSHELL, CURVE, EE_LIST, ELLIPSE, GA_WORKSPACE, SPAGROUP, HELIX, INTCURVE, LAW, PCURVE, PLANE, APOINT, SPHERE, SPLINE, STRAIGHT, SUPERCELL, SURFACE, TEXT_ENT, TORUS, UNDEFC, and ATTRIB_VAR_BLEND.

copy_action ATTRIB::get_copy_owner_action ( void   )  const [inherited]

Get the current copy_owner action for this attribute.

tolerant_action ATTRIB::get_from_tolerant_owner_action ( void   )  const [inherited]

Get the current from_tolerant_owner action for this attribute.

geometry_changed_action ATTRIB::get_lop_change_owner_action ( void   )  const [inherited]

Get the current lop_change_owner action for this attribute.

merge_action ATTRIB::get_merge_owner_action ( void   )  const [inherited]

Get the current merge_owner action for this attribute.

geometry_changed_action ATTRIB::get_rep_owner_geom_action ( void   )  const [inherited]

Get the current replace_owner_geometry action for this attribute.

replace_action ATTRIB::get_replace_owner_action ( void   )  const [inherited]

Get the current replace_owner action for this attribute.

geometry_changed_action ATTRIB::get_reverse_owner_action ( void   )  const [inherited]

Get the current reverse_owner action for this attribute.

split_action ATTRIB::get_split_owner_action ( void   )  const [inherited]

Get the current split_owner action for this attribute.

tolerant_action ATTRIB::get_to_tolerant_owner_action ( void   )  const [inherited]

Get the current to_tolerant_owner action for this attribute.

trans_action ATTRIB::get_trans_owner_action ( void   )  const [inherited]

Get the current trans_owner action for this attribute.

geometry_changed_action ATTRIB::get_warp_owner_action ( void   )  const [inherited]

Get the current warp_owner action for this attribute.

HISTORY_STREAM* ENTITY::history (  )  const [inline, inherited]

Returns a pointer to the history stream for this ENTITY.

virtual logical ENTITY::holds_pattern (  )  const [inline, protected, virtual, inherited]

Returns TRUE if this entity can have a pattern_holder.

For internal use only.

Reimplemented in BODY, COEDGE, CURVE, EDGE, FACE, LOOP, LUMP, PCURVE, APOINT, SHELL, SURFACE, VERTEX, and WIRE.

virtual int ATTRIB_CELL::identity ( int  level = 0  )  const [virtual]

Returns a type identifier for this ENTITY.



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

A positive level specifies the level of derivation down from the ENTITY class to examine. ENTITY itself has level 0. If level is unspecified or 0, the type of the most specific class of object is returned. If level is 1, the type of the class one level down from ENTITY is returned. If level is 2, the type of the parent class 2 levels down from ENTITY is returned, and so on. If level is greater than the level of the instance, -1 ("unknown") is returned.

A negative level similarly specifies the level of derivation up from the most specific class of object returned.

(Supplied by the ENTITY_FUNCTIONS and UTILITY_DEF macros.)

Parameters:
level the derivation level at which the object is to be identified.

Reimplemented from ATTRIB_CT.

virtual logical ATTRIB_CELL::is_deepcopyable (  )  const [virtual]

Returns TRUE if this ENTITY can be deep copied.

Reimplemented from ATTRIB_CT.

logical ENTITY::is_unknown_entity ( void   )  const [protected, inherited]

Returns TRUE if this is an unknown entity.

An unknown entity is one that is restored from SAT/SAB but is not native to the running app.

virtual logical ENTITY::is_use_counted (  )  const [virtual, inherited]

Indicates if this ENTITY is use-counted or not.



Role: The default implementation returns FALSE.

Reimplemented in CURVE, PCURVE, PHLV5_OCC, APOINT, REFINEMENT, RH_MATERIAL, RH_TEXTURE_SPACE, SURFACE, and VERTEX_TEMPLATE.

virtual int ATTRIB::lookup ( logical  insert  )  const [virtual, inherited]

Looks up this ENTITY in the appropriate debug list.



Role: This method is not included among the standard ENTITY methods because often subclasses may wish to be included in their parent's debug list. This is done simply by not including a lookup method in the subclass.

When the logical argument is TRUE, the ENTITY is inserted into the debug list if it does not already exist in the list. If it is FALSE and the ENTITY does not exist in the list, a -1 is returned. (Supplied by the LOOK_FUNCTION and LOOKUP_DEF macros.)

Parameters:
insert flag to insert into debug list.

Reimplemented from ENTITY.

virtual void ATTRIB::lop_change_owner (  )  [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY will be changed by a local operation, face removal, or shelling.



Role: This member function informs the attribute that the its owning ENTITY has been geometrically modified during the course of a local operation. No other details as to how the owner is being modified are provided.

Depending on the application needs of your attribute, it may be possible to utilize the set_lop_change_owner_action method to specify how your attribute should act within lop_change_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

See also:
ATTRIB::set_lop_change_owner_action, get_lop_change_owner_action, geometry_changed_action, lop_change_attrib

Reimplemented in ATTRIB_EYE_POINTLIST_HEADER.

virtual void ATTRIB_CELL::lose (  )  [virtual]

Posts a delete bulletin to the bulletin board indicating the instance is no longer used in the active model.



Role: The lose methods for attached attributes are also called.

Reimplemented from ATTRIB_CT.

virtual void ATTRIB_CELL::merge_owner ( ENTITY entity,
logical  del_owner 
) [virtual]

Notifies this ATTRIB that its owning ENTITY is about to be merged with a given ENTITY.



Role: The application has the chance to delete or otherwise modify the attribute. After the merge, the owner of this attribute will be deleted if the logical argument del_owner is TRUE; otherwise, it will be retained and the other owner will be deleted. The default action is to do nothing. This function is supplied by the application whenever it defines a new, derived attribute, and is called when a merge occurs.

Depending on the application needs of your attribute, it may be possible to utilize the set_merge_owner_action method to specify how your attribute should act within merge_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

Parameters:
entity the ENTITY with which this attribute's owner is being merged.
del_owner flag that the owner of this attribute will be deleted after the merge.
See also:
ATTRIB::set_merge_owner_action, get_merge_owner_action, merge_action, merge_attrib

Reimplemented from ATTRIB.

virtual ATTRIB* ATTRIB::move ( ENTITY new_entity  )  [virtual, inherited]

Moves this ATTRIB to a new owning ENTITY.



Parameters:
new_entity the new owning ENTITY.

Reimplemented in ATTRIB_INTVERT, and ATTRIB_VAR_BLEND.

virtual logical ATTRIB::moveable (  )  const [virtual, inherited]

Returns TRUE if this ATTRIB is moveable from one owning ENTITY to another.



Role: The default is to call copyable().

logical ENTITY::needs_rollback (  )  const [inline, inherited]

Checks whether or not the record is already backed up.

ATTRIB* ATTRIB::next (  )  const [inline, inherited]

Returns the next attribute in this ATTRIB's linked list.

virtual ENTITY* ATTRIB::owner (  )  const [virtual, inherited]

Identifies the owning ENTITY, if any, of this ATTRIB.



Role: A return of NULL indicates that this attribute has either no owner or an unidentifiable one. Objects of the base ATTRIB class have no identifiable owner.

Reimplemented from ENTITY.

virtual logical ATTRIB::pattern_compatible (  )  const [virtual, inherited]

Returns TRUE if the ATTRIB is pattern-compatible.



Role: An attribute is pattern-compatible if it does not refer to another pattern-generated entity (other than its owner).

By default, this virtual method returns FALSE unless the attribute is not savable. This behavior should be overridden in derived classes that are deemed to be pattern-compatible, however, in order to facilitate pattern performance enhancements.

Reimplemented in ATTRIB_ANNOTATION, ATTRIB_INTCOED, ATTRIB_INTEDGE, ATTRIB_INTVERT, ATTRIB_INTGRAPH, ATTRIB_EFINT, ATTRIB_FACEINT, ATTRIB_CFACE_VOL, ATTRIB_GEN_ENTITY, ATTRIB_GEN_INTEGER, ATTRIB_CELL_INT_PRECEDENCE, ATTRIB_GEN_NAME, ATTRIB_GEN_POSITION, ATTRIB_CELL_PRECEDENCE, ATTRIB_GEN_POINTER, ATTRIB_GEN_REAL, ATTRIB_GEN_STRING, ATTRIB_VOL_COL, ATTRIB_GEN_VECTOR, ATTRIB_IHL_VW, ATTRIB_GEN_WSTRING, ATTRIB_TAG, ATTRIB_BLEND, ATTRIB_FFBLEND, ATTRIB_BLINFO, ATT_CAP_FACE, ATT_BL_INST, ATTRIB_COL, ATTRIB_DM2ACIS, ATTRIB_DS2ACIS, ATTRIB_DC2ACIS, ID_ATTRIB, NO_MERGE_ATTRIB, ATTRIB_EYE_ATTACHED_MESH, NORENDER_ATTRIB, ATTRIB_EYE_POINTLIST_HEADER, ATTRIB_RGB, and ATTRIB_VAR_BLEND.

virtual logical ATTRIB::pattern_copyable (  )  const [virtual, inherited]

Returns TRUE if the ATTRIB is pattern-copyable.



Role: This virtual method indicates whether this attribute should be copied when its owning entity is copied for the purpose of creating a new pattern element (i.e., when reason == SCAN_PATTERN).

By default, this virtual method returns the value returned by copyable. This behavior should be overridden in derived classes that are deemed to be not pattern-copyable.

ATTRIB* ATTRIB::previous (  )  const [inline, inherited]

Returns the previous attribute in this ATTRIB's linked list.

virtual void ENTITY::remove ( logical  lose_if_zero = TRUE  )  [virtual, inherited]

Decrements the use count of this ENTITY.



Role: If the use count reaches 0, the ENTITY's lose method is called if the argument lose_if_zero is set to TRUE. (If the entity is not use counted, an error is signaled.)

Every held pointer to a use counted ENTITY should be declared by calling add. There should a corresponding call to remove when the user is done with the pointer. For normal ENTITYs, simply call lose when the ENTITY is no longer part of the active model. For use counted ENTITYs, the implementations of add and remove come from macros in usecount.hxx. Use counted ENTITYs implemented without the macros should implement these virtual methods manually.

Parameters:
lose_if_zero flag to lose the ENTITY when the use count drops to 0.

Reimplemented in CURVE, SPAGROUP, PCURVE, PHLV5_OCC, APOINT, REFINEMENT, RH_MATERIAL, RH_TEXTURE_SPACE, SURFACE, and VERTEX_TEMPLATE.

virtual void ATTRIB::replace_owner ( ENTITY other_entity,
logical  replace_owner 
) [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY is being replaced.



Role: When the argument replace_owner is TRUE, the owner of this attribute is being replaced by other_entity; when it is FALSE, other_entity is being replaced by this attribute's owner.

Depending on the application needs of your attribute, it may be possible to utilize the set_replace_owner_action method to specify how your attribute should act within replace_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

Parameters:
other_entity the other ENTITY involved in the replacement.
replace_owner flag that the owning ENTITY is being replaced.
See also:
ATTRIB::set_replace_owner_action, get_replace_owner_action, replace_action, replace_attrib

virtual void ATTRIB::replace_owner_geometry ( ENTITY new_geom  )  [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY is being given new geometry, possibly changing its shape.



Role: This member function informs the attribute that the its owning ENTITY is being given new geometry.

Depending on the application needs of your attribute, it may be possible to utilize the set_rep_owner_geom_action method to specify how your attribute should act within replace_owner_geometry, which would preclude the need to actually implement this method.

The default action is to do nothing.

Parameters:
new_geom the new geometry.
See also:
ATTRIB::set_rep_owner_geom_action, get_rep_owner_geom_action, geometry_changed_action, replace_geometry_attrib

Reimplemented in ATTRIB_EYE_ATTACHED_MESH, and ATTRIB_EYE_POINTLIST_HEADER.

void ATTRIB_CELL::restore_common (  ) 

Restores data for a record from disc to memory.



Role: Writes pointers as indices (fix_pointers turns them back into pointers) and returns a pointer to the ENTITY made. Generally, "common" functions that do the main work are protected, as they are called only from the main entry functions or by themselves up the derivation tree.

This method is public, however, because the main restore function is not a member function, and making it a friend would make it unable to be declared static, i.e., local to the defining module. (Supplied by the ENTITY_FUNCTIONS and RESTORE_DEF macros.)

    read_ptr  Pointer to record in save file for first attribute owned by entity.
    if (restore_version_number >= ENTITY_TAGS_VERSION)
       read_int      new tag 

Reimplemented from ATTRIB_CT.

void ENTITY::restore_end ( char *  id_str  )  [inherited]

Terminates a restore record.



Role: Reads any trailing text and fills in the unknown text pointer. Used only by the save/restore system.

Parameters:
id_str the id string.

virtual void ATTRIB::reverse_owner (  )  [virtual, inherited]

Notifies this ATTRIB that its owning entity's sense bit is about to be reversed.

Role: The application has the chance to do something relevant. For example, faceter attributes reverse the mesh's face normals (or delete the mesh) when the owning face is reversed.

Depending on the application needs of your attribute, it may be possible to utilize the set_reverse_owner_action method to specify how your attribute should act within reverse_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

See also:
ATTRIB::set_reverse_owner_action, get_reverse_owner_action, geometry_changed_action, reverse_attrib

Reimplemented in ATTRIB_FACECFACE, and ATTRIB_EYE_ATTACHED_MESH.

virtual void ENTITY::roll_notify ( BULLETIN_TYPE  bulletin_type,
ENTITY ent 
) [protected, virtual, inherited]

Fields notifications of rollback operations.



Role: The first argument specifies the type of bulletin being rolled back (create, delete or change). In the case of a change notification, the second argument contains the information to be restored into this object. The base implementation, which is used for almost every derived class, does nothing at all.

Parameters:
bulletin_type type of bulletin being rolled back.
ent information to be restored into this argument.

Reimplemented in ANNOTATION, ASM_MODEL_REF, ATTRIB_INTCOED, ATTRIB_EFINT, ATTRIB_FFBLEND, ATTRIB_CONST_CHAMFER, COEDGE, ATTRIB_COL, CURVE, ATTRIB_DM2ACIS, EDGE, EE_LIST, FACE, GA_WORKSPACE, ID_ATTRIB, LOOP, ATTRIB_EYE_ATTACHED_MESH, PCURVE, PHLV5_OCC, APOINT, REFINEMENT, ATTRIB_RGB, RH_MATERIAL, RH_LIGHT, RH_BACKGROUND, RH_FOREGROUND, RH_TEXTURE_SPACE, SURFACE, TCOEDGE, TEDGE, TVERTEX, ATTRIB_VAR_BLEND, VERTEX, VERTEX_TEMPLATE, and WCS.

BULLETIN*& ENTITY::rollback (  )  const [inline, inherited]

Returns the pointer to the bulletin board entry for this ENTITY.

virtual logical ATTRIB::savable (  )  const [virtual, inherited]

Indicates whether this ATTRIB should be included when the owning entity is saved.



Role: The default is to call duplicatable().

Reimplemented in ATTRIB_ANNOTATION, ATTRIB_GEN_WSTRING, ATTRIB_DM2ACIS, ID_ATTRIB, ATTRIB_EYE_ATTACHED_MESH, and ATTRIB_EYE_POINTLIST_HEADER.

virtual void ATTRIB_CELL::save ( ENTITY_LIST entity_list  )  const [virtual]

Performs a save operation.



Role: Calls save_begin, the particular class's save_common, and then save_end. (Supplied by the ENTITY_FUNCTIONS and UTILITY_DEF macros.)

This save method is just like any other save, except that it calls save_begin with an optional argument to suppress writing of a trailing dash, because save_common does not write out an identifier, or call any parent class's save_common.

Parameters:
entity_list ENTITYs to save.

Reimplemented from ATTRIB_CT.

void ENTITY::save_begin ( logical  terminator = FALSE  )  const [protected, inherited]

Starts a save record.



Role: Writes a preamble to a save file record, which contains any subclass identifiers not known to this version of ACIS. Called by the save method.

Parameters:
terminator terminator flag.

void ATTRIB_CELL::save_common ( ENTITY_LIST entity_list  )  const [protected]

Handles the save operation.



Role: Writes out the savable data associated with the base class. In the case of ENTITY, saveable data is simply the attribute pointer. In the case of child classes derived from ENTITY, class-specific save_common methods handle the class-specific data. Called by the save method. (Supplied by the ENTITY_FUNCTIONS and SAVE_DEF macros.)

Each derived class's save_common method first writes out that class's identifier, calls its parent class's save_common method, and then writes out data particular to the derived class. Thus the save record consists of identifiers in leaf-to-base order, followed by class data in base-to-leaf order. As it writes out any ENTITY pointers, it adds them to the ENTITY_LIST, so that any dependent data also gets written to the file.

Parameters:
entity_list ENTITYs to save

Reimplemented from ATTRIB_CT.

void ENTITY::save_end ( ENTITY_LIST list  )  const [protected, inherited]

Terminates a save record.



Role: Writes out any data associated with subclasses not known to this version of ACIS before terminating the record. Called by the save method.

Parameters:
list list of entities.

void ENTITY::set_attrib ( ATTRIB attr  )  [inherited]

Changes the attribute pointer of this ENTITY to point to the given attribute.



Parameters:
attr the new attribute.

void ATTRIB_CELL::set_auto_update ( logical  state  ) 

Sets the automatic update on or off.



Parameters:
state on or off.

void ATTRIB_CELL::set_cell ( CELL cel  ) 

Sets the first cell in a complete enumeration of all cells in the attribute.



Parameters:
cel cell.

copy_action ATTRIB::set_copy_owner_action ( const copy_action  action  )  [inherited]

Set the copy_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the copy_owner action on an attribute that implements copy_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its copy_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever copy_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

tolerant_action ATTRIB::set_from_tolerant_owner_action ( const tolerant_action  action  )  [inherited]

Set the from_tolerant_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the from_tolerant_owner action on an attribute that implements from_tolerant_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its from_tolerant_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever from_tolerant_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

geometry_changed_action ATTRIB::set_lop_change_owner_action ( const geometry_changed_action  action  )  [inherited]

Set the lop_change_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the lop_change_owner action on an attribute that implements lop_change_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its lop_change_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever lop_change_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

merge_action ATTRIB::set_merge_owner_action ( const merge_action  action  )  [inherited]

Set the merge_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the merge_owner action on an attribute that implements merge_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its merge_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever merge_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

geometry_changed_action ATTRIB::set_rep_owner_geom_action ( const geometry_changed_action  action  )  [inherited]

Set the replace_owner_geometry action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the replace_owner_geometry action on an attribute that implements replace_owner_geometry will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its replace_owner_geometry action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever replace_owner_geometry action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

replace_action ATTRIB::set_replace_owner_action ( const replace_action  action  )  [inherited]

Set the replace_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the replace_owner action on an attribute that implements replace_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its replace_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever replace_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

geometry_changed_action ATTRIB::set_reverse_owner_action ( const geometry_changed_action  action  )  [inherited]

Set the reverse_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the reverse_owner action on an attribute that implements reverse_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its reverse_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever reverse_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

split_action ATTRIB::set_split_owner_action ( const split_action  action  )  [inherited]

Set the split_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the split_owner action on an attribute that implements split_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its split_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever split_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

void ATTRIB_CELL::set_supercell ( SUPERCELL scel  ) 

Sets a list of supercells in the cell attribute.



Parameters:
scel super cell.

tolerant_action ATTRIB::set_to_tolerant_owner_action ( const tolerant_action  action  )  [inherited]

Set the to_tolerant_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the to_tolerant_owner action on an attribute that implements to_tolerant_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its to_tolerant_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever to_tolerant_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

trans_action ATTRIB::set_trans_owner_action ( const trans_action  action  )  [inherited]

Set the trans_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the trans_owner action on an attribute that implements trans_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its trans_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever trans_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

virtual void ENTITY::set_use_count ( int  use  )  [virtual, inherited]

Sets the reference use count of this ENTITY.



Role: If the ENTITY is not use counted, this method does nothing.

Parameters:
use new use count.

Reimplemented in CURVE, PCURVE, PHLV5_OCC, APOINT, REFINEMENT, RH_MATERIAL, RH_TEXTURE_SPACE, SURFACE, and VERTEX_TEMPLATE.

geometry_changed_action ATTRIB::set_warp_owner_action ( const geometry_changed_action  action  )  [inherited]

Set the warp_owner action for this attribute.

Returns the value actually set. If an invalid action is specified, a sys_warning(VALUE_OUT_OF_RANGE) will be issued and the action will remain unchanged.

Setting the warp_owner action on an attribute that implements warp_owner will have no effect when that attribute is running in its native application. However, when the attribute is saved to SAT/SAB, its warp_owner action will also be saved. In the event the attribute is restored in a foreign application, we will treat the attribute as 'unknown' but will honor whatever warp_owner action setting is restored. (Note that support for save/restore of attribute actions was introduced in R16; persistence and recognition of attribute actions prior to R16 is not supported.)

Parameters:
action the specified action.

virtual unsigned ATTRIB_CELL::size (  )  const [virtual]

Returns the size, in bytes, of this ENTITY.



Role: (Supplied by the ENTITY_FUNCTIONS and UTILITY_DEF macros.)

Reimplemented from ATTRIB_CT.

virtual void ATTRIB_CELL::split_owner ( ENTITY new_entity  )  [virtual]

Notifies this ATTRIB that its owner is about to be split into two parts.



Role: The application has the chance to duplicate or otherwise modify the attribute. This function is supplied by the application whenever it derives a new attribute, and is called when a split occurs.

Depending on the application needs of your attribute, it may be possible to utilize the set_split_owner_action method to specify how your attribute should act within split_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

Parameters:
new_entity the new entity arising from the split.
See also:
ATTRIB::set_split_owner_action, get_split_owner_action, split_action, split_attrib

Reimplemented from ATTRIB.

SUPERCELL* ATTRIB_CELL::supercell (  )  const [inline]

Returns the (optional) list of supercells in the cell attribute.

tag_id_type ENTITY::tag ( logical  assign_new = TRUE  )  const [inline, inherited]

Data reading routine.



Parameters:
assign_new flag to assign a new tag number or not.

virtual void ATTRIB::to_tolerant_owner ( ENTITY tol_ent  )  [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY is being replaced with a tolerant ENTITY.



Role: The default action is to move the attribute onto the given tolerant ENTITY only if moveable() returns TRUE.

Depending on the application needs of your attribute, it may be possible to utilize the set_to_tolerant_owner_action method to specify how your attribute should act within to_tolerant_owner, which would preclude the need to actually implement this method.

Parameters:
tol_ent the new, tolerant owner.
See also:
ATTRIB::set_to_tolerant_owner_action, get_to_tolerant_owner_action, tolerant_action, to_tolerant_attrib

virtual void ATTRIB_CELL::trans_owner ( SPAtransf const &  transf  )  [virtual]

Notifies this ATTRIB that its owner is about to be transformed.



Role: The application has the chance to transform the attribute.

Depending on the application needs of your attribute, it may be possible to utilize the set_trans_owner_action method to specify how your attribute should act within trans_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

Parameters:
transf the transformation being applied.
See also:
ATTRIB::set_trans_owner_action, get_trans_owner_action, trans_action, trans_attrib

Reimplemented from ATTRIB.

virtual void ATTRIB::trans_owner_list ( const SPAtransf transf,
ENTITY_LIST e_list 
) [virtual, inherited]

Notifies this ATTRIB that its owner is about to be transformed.



Role: The application has the chance to transform the attribute. The default action is to call trans_owner.

The list argument is a list of already transformed entities, which can be used to stop infinite recursions by checking whether entities pointed to by the attribute are already in the list.

Parameters:
transf the transformation being applied.
e_list ENTITY list.

Reimplemented in ATTRIB_GEN_NAME.

virtual const char* ATTRIB_CELL::type_name (  )  const [virtual]

Returns a name for this ENTITY's type.



Role: For the ENTITY class, unknown is returned.

Reimplemented from ATTRIB_CT.

ATTRIB* ATTRIB::unhook (  )  [inherited]

Removes this ATTRIB from the chain of attributes of its owning ENTITY.



Role: Since the process of unhooking sets the base class pointers (entity_ptr, previous_ptr, and next_ptr) to NULL, therby changing the entity, unhook must first call backup to preserve the prior state of the attribute for rollback purposes. This then allows one to freely modify the pointers, presumably in a derived class method, without worrying whether or not to call backup.

virtual int ENTITY::use_count (  )  const [virtual, inherited]

Returns the use count of this ENTITY.



Role: Returns zero if the ENTITY is not use counted.

Reimplemented in CURVE, PCURVE, PHLV5_OCC, APOINT, REFINEMENT, RH_MATERIAL, RH_TEXTURE_SPACE, SURFACE, and VERTEX_TEMPLATE.

virtual void ATTRIB::warp_owner ( law warp  )  [virtual, inherited]

Notifies this ATTRIB that its owning ENTITY will be modified by warping.



Role: This member function allows geometric attributes to warp themselves when their owners are warped.

Depending on the application needs of your attribute, it may be possible to utilize the set_warp_owner_action method to specify how your attribute should act within warp_owner, which would preclude the need to actually implement this method.

The default action is to do nothing.

Parameters:
warp the law being used by the warping operation.
See also:
ATTRIB::set_warp_owner_action, get_warp_owner_action, geometry_changed_action, warp_attrib

Reimplemented in ATTRIB_ANNOTATION, and ATTRIB_EYE_POINTLIST_HEADER.