Home

Attributes
[Kernel Functionality]

Collaboration diagram for Attributes:

Components

 Generic Attributes

Classes

class  ATTRIB
 Represents common data and functionality for all attributes. More...
class  ATTRIB_CT
 Defines a root attribute for the Cellular Topology Component. More...
class  ATTRIB_ST
 Organization attribute from which various color, display, id, and other attributes are derived. More...
class  ATTRIB_SYS
 Organization base attribute class for the ACIS kernel. More...
class  ATTRIB_TAG
 Defines a base class that contains a pointer to the original input entity as well as a flag indicating if the entity still exists. More...
class  ATTRIB_TSL
 This C++ destructor should never be called directly. More...

Defines

#define ATTRIB_LEVEL   1
 Identifier that gives number of levels of derivation of this class from ENTITY.

Enumerations

enum  copy_action
 ATTRIB actions for a copy_owner notification. More...
enum  geometry_changed_action
 ATTRIB actions for lop_change_owner, replace_owner_geometry, reverse_owner, and warp_owner notifications. More...
enum  merge_action
 ATTRIB actions for a merge_owner notification. More...
enum  replace_action
 ATTRIB actions for a replace_owner notification. More...
enum  split_action
 ATTRIB actions for a split_owner notification. More...
enum  tolerant_action
 ATTRIB actions for to_tolerant_owner and from_tolerant_owner notifications. More...
enum  trans_action
 ATTRIB actions for a trans_owner notification. More...

Functions

void copy_attrib (ENTITY *source, ENTITY *target)
 Provides a convenient way to copy all attributes from a source entity to a target entity.
ATTRIBfind_attrib (const ENTITY *owner, int subtype=-1, int subsubtype=-1, int subsubsubtype=-1, int subsubsubsubtype=-1)
 Searches an ENTITY's attribute list for an ATTRIB of a given type, subtype, etc., starting at the beginning of the list.
ATTRIBfind_leaf_attrib (const ENTITY *owner, int attrib_type)
 Searches an ENTITY's attribute list for an ATTRIB of a given type, starting at the beginning of the list.
ATTRIBfind_next_attrib (ATTRIB const *att, int subtype=-1, int subsubtype=-1, int subsubsubtype=-1, int subsubsubsubtype=-1)
 Searches an ENTITY's attribute list for an ATTRIB of a given type, subtype, etc., starting at a given attribute.
ATTRIBfind_next_leaf_attrib (ATTRIB const *attrib)
 Searches an ENTITY's attribute list for an ATTRIB of a given type, starting at a given attribute.
void from_tolerant_attrib (ENTITY *orig_ent, ENTITY *non_tol_ent)
 Provides a convenient way for attributes to be notified when their owning entity has been replaced with a non-tolerant entity and will be deleted.
ENTITYget_actual_entity (ENTITY *ent)
 Gets the ENTITY associated with the given ATTRIB_TAG.
ENTITYget_actual_live_entity (ENTITY *ent)
 Gets the ENTITY associated with the given ATTRIB_TAG, if the ENTITY has not been lost.
attrib_tag_callbacks_list & get_attrib_tag_callbacks_list ()
 Gets the global list of WCS callbacks.
void lop_change_attrib (ENTITY *ent)
 Provides a convenient way for attributes to be notified when their owning entity is changed during a local operation, remove faces, or shelling.
void merge_attrib (ENTITY *keep_ent, ENTITY *go_ent)
 Provides a convenient way to "move" all attributes from an entity that is "going away" to an entity that is being "kept".
void replace_attrib (ENTITY *keep_ent, ENTITY *replace_ent, logical only_when_replace_ent_null=TRUE)
 Provides a convenient way to "replace" all attributes from an entity that is being "replaced" to an entity that is being "kept".
void replace_geometry_attrib (ENTITY *ent, ENTITY *new_geom, logical only_when_owning_geom_null=TRUE)
 Provides a convenient way for attributes to be notified when their owning entity is getting new geometry, which possibly changes its shape.
void reverse_attrib (ENTITY *ent)
 Provides a convenient way for attributes to be notified when their owner's sense bit is being reversed.
void split_attrib (ENTITY *old_ent, ENTITY *new_ent, ENTITY *gap_ent=NULL)
 Provides a convenient way to have the "split_owner" method called for every attribute on an entity being split.
void to_tolerant_attrib (ENTITY *orig_ent, ENTITY *tol_ent)
 Provides a convenient way for attributes to be notified when their owning entity has been replaced with a tolerant entity and will be deleted.
void trans_attrib (ENTITY *ent, SPAtransf const &trans, ENTITY_LIST *list=NULL)
 Provides a convenient way for attributes to be notified when their owner is being transformed.
void warp_attrib (ENTITY *ent, law *warp_law)
 Provides a convenient way for attributes to be notified when their owning entity is being warped.

Define Documentation

#define ATTRIB_LEVEL   1

Identifier that gives number of levels of derivation of this class from ENTITY.


Enumeration Type Documentation

ATTRIB actions for a copy_owner notification.



Parameters:
CopyLose Lose the attribute if its owner is copied.
CopyKeep Do nothing if the owner is copied.
CopyCopy Create a new instance of the attribute on the new owner (using ATTRIB::duplicate()).
CopyCustom Reserved for Generic Attributes. Call application supplied routine.

include <attrib.hxx>

ATTRIB actions for lop_change_owner, replace_owner_geometry, reverse_owner, and warp_owner notifications.



Parameters:
GeomChangedLose Lose the attribute if its owner's geometry is changed.
GeomChangedKeep Keep the attribute if its owner's geometry is changed.

include <attrib.hxx>

ATTRIB actions for a merge_owner notification.



Parameters:
MergeLose Lose the attribute if its owner is merged.
MergeKeepKept Do nothing if owner is merged.
MergeKeepLost Transfer attribute from entity being lost to entity being kept.
MergeKeepOne Reserved for Generic Attributes. Transfer from entity being lost to entity being kept if none on entity being kept. Lose any on kept.
MergeKeepAll Move attribute from entity being lost to entity being kept.
MergeCustom Reserved for Generic Attributes. Call application supplied routine.

include <attrib.hxx>

ATTRIB actions for a replace_owner notification.



Parameters:
ReplaceLose Lose the attribute if its owner is replaced.
ReplaceKeepKept Keep the attribute on the entity being kept.
ReplaceKeepLost Move the attribute from the entity going away to the entity being kept, lose any on kept.
ReplaceKeepAll Move the attribute from the entity going away to the entity being kept, keep any on kept.

include <attrib.hxx>

ATTRIB actions for a split_owner notification.



Parameters:
SplitLose Lose the attribute if its owner is split.
SplitKeep Do nothing if owner is split.
SplitCopy Create a new instance of the attribute on the new entity (using ATTRIB::duplicate()).
SplitCustom Reserved for Generic Attributes. Call application supplied routine.

include <attrib.hxx>

ATTRIB actions for to_tolerant_owner and from_tolerant_owner notifications.



Parameters:
TolerantLose Lose the attribute if it's owner is being lost and is being replaced by a new tolerant/non-tolerant owner.
TolerantMove Move the attribute to the new tolerant/non-tolerant owner.

include <attrib.hxx>

ATTRIB actions for a trans_owner notification.



Parameters:
TransLose Lose the attribute if its owner is transformed.
TransIgnore Do nothing if its owner is transformed.
TransApply Reserved for Generic Attributes. Apply given transform.
TransCustom Reserved for Generic Attributes. Call application supplied routine.

include <attrib.hxx>


Function Documentation

void copy_attrib ( ENTITY source,
ENTITY target 
)

Provides a convenient way to copy all attributes from a source entity to a target entity.



Role: Walks the list of attributes on the source entity and calls attrib->copy_owner(target) on each.

Effect: Changes model.

Parameters:
source the source entity.
target the target entity.
See also:
ATTRIB, split_attrib, merge_attrib, trans_attrib, copy_attrib, reverse_attrib, warp_attrib, lop_change_attrib, replace_geometry_attrib, replace_attrib, to_tolerant_attrib, from_tolerant_attrib

include <attrib.hxx>

ATTRIB* find_attrib ( const ENTITY owner,
int  subtype = -1,
int  subsubtype = -1,
int  subsubsubtype = -1,
int  subsubsubsubtype = -1 
)

Searches an ENTITY's attribute list for an ATTRIB of a given type, subtype, etc., starting at the beginning of the list.



Role: Searches an ENTITY's attribute list for an ATTRIB of a given type, subtype, etc., starting at the beginning of the list. The integer arguments are successive subtypes of ATTRIB to be matched. Zero means "don't care at this level." -1 means "don't care at this or any deeper level." All attribute type codes are guaranteed unique for any run of ACIS. If no matching ATTRIB is found, NULL is returned.

Use find_attrib to find the first instance of an attribute that matches your search criteria. Use find_next_attrib iteratively to search for the next attrib that meets your search criteria.

Effect: Read-only

Parameters:
owner the owning entity.
subtype the subtype to be matched.
subsubtype the subsubtype to be matched.
subsubsubtype the subsubsubtype to be matched.
subsubsubsubtype the subsubsubsubtype to be matched.
See also:
ATTRIB, find_attrib, find_next_attrib, find_leaf_attrib, find_next_leaf_attrib

include <attrib.hxx>

ATTRIB* find_leaf_attrib ( const ENTITY owner,
int  attrib_type 
)

Searches an ENTITY's attribute list for an ATTRIB of a given type, starting at the beginning of the list.



Role: Searches an ENTITY's attribute list for an ATTRIB of a given type, starting at the beginning of the list. All attribute type codes are guaranteed unique for any run of ACIS. If no matching ATTRIB is found, NULL is returned.

Use find_leaf_attrib to find the first instance of an attribute that matches your search criteria. Use find_next_leaf_attrib iteratively to search for the next attribute that meets your search criteria.

Effect: Read-only

Parameters:
owner the owning entity.
attrib_type the attribute type code.
See also:
ATTRIB, find_attrib, find_next_attrib, find_leaf_attrib, find_next_leaf_attrib

include <attrib.hxx>

ATTRIB* find_next_attrib ( ATTRIB const *  att,
int  subtype = -1,
int  subsubtype = -1,
int  subsubsubtype = -1,
int  subsubsubsubtype = -1 
)

Searches an ENTITY's attribute list for an ATTRIB of a given type, subtype, etc., starting at a given attribute.



Role: Searches an ENTITY's attribute list for an ATTRIB of a given type, subtype, etc., starting at a given attribute. The integer arguments are successive subtypes of ATTRIB to be matched. Zero means "don't care at this level." -1 means "don't care at this or any deeper level." All attribute type codes are guaranteed unique for any run of ACIS. If no matching ATTRIB is found, NULL is returned.

Use find_attrib to find the first instance of an attribute that matches your search criteria. Use find_next_attrib iteratively to search for the next attribute that meets your search criteria.

Effect: Read-only

Parameters:
att the attribute from which to start the search.
subtype the subtype to be matched.
subsubtype the subsubtype to be matched.
subsubsubtype the subsubsubtype to be matched.
subsubsubsubtype the subsubsubsubtype to be matched.
See also:
ATTRIB, find_attrib, find_next_attrib, find_leaf_attrib, find_next_leaf_attrib

include <attrib.hxx>

ATTRIB* find_next_leaf_attrib ( ATTRIB const *  attrib  ) 

Searches an ENTITY's attribute list for an ATTRIB of a given type, starting at a given attribute.



Role: Searches an ENTITY's attribute list for an ATTRIB of a given type, starting at the given attribute. All attribute type codes are guaranteed unique for any run of ACIS. If no matching ATTRIB is found, NULL is returned.

Use find_leaf_attrib to find the first instance of an attribute that matches your search criteria. Use find_next_leaf_attrib iteratively to search for the next attribute that meets your search criteria.

Effect: Read-only

Parameters:
attrib the starting attribute.
See also:
find_attrib, find_next_attrib, find_leaf_attrib, find_next_leaf_attrib

include <attrib.hxx>

void from_tolerant_attrib ( ENTITY orig_ent,
ENTITY non_tol_ent 
)

Provides a convenient way for attributes to be notified when their owning entity has been replaced with a non-tolerant entity and will be deleted.



Role: Walks the list of attributes on the given entity and calls attrib->from_tolerant_owner(non_tol_ent) on each.

The ATTRIB::from_tolerant_owner method gives the application the chance to delete, duplicate or otherwise modify their attribute. The default action is to move the attribute onto the new non-tolerant entity as long as moveable() is TRUE.

Effect: Changes model.

Parameters:
orig_ent the original entity that is being deleted.
non_tol_ent the newly created non-tolerant entity.
See also:
ATTRIB, split_attrib, merge_attrib, trans_attrib, copy_attrib, reverse_attrib, warp_attrib, lop_change_attrib, replace_geometry_attrib, replace_attrib, to_tolerant_attrib, from_tolerant_attrib

include <attrib.hxx>

ENTITY* get_actual_entity ( ENTITY ent  ) 

Gets the ENTITY associated with the given ATTRIB_TAG.

If the given ENTITY is not an ATTRIB_TAG, simply returns the given ENTITY.

Effect: Read-only.

include <att_tag.hxx>

ENTITY* get_actual_live_entity ( ENTITY ent  ) 

Gets the ENTITY associated with the given ATTRIB_TAG, if the ENTITY has not been lost.

If the ENTITY has been lost, returns NULL. If the given ENTITY is not an ATTRIB_TAG, simply returns the given ENTITY.

Effect: Read-only.

include <att_tag.hxx>

attrib_tag_callbacks_list& get_attrib_tag_callbacks_list (  ) 

Gets the global list of WCS callbacks.



Effect: Read-only.

include <att_tag.hxx>

void lop_change_attrib ( ENTITY ent  ) 

Provides a convenient way for attributes to be notified when their owning entity is changed during a local operation, remove faces, or shelling.



Role: Walks the list of attributes on the given entity and calls attrib->lop_change_owner() on each.

Effect: Changes model.

Parameters:
ent the owning entity.
See also:
ATTRIB, split_attrib, merge_attrib, trans_attrib, copy_attrib, reverse_attrib, warp_attrib, lop_change_attrib, replace_geometry_attrib, replace_attrib, to_tolerant_attrib, from_tolerant_attrib

include <attrib.hxx>

void merge_attrib ( ENTITY keep_ent,
ENTITY go_ent 
)

Provides a convenient way to "move" all attributes from an entity that is "going away" to an entity that is being "kept".



Role: Walks the list of attributes on keep_ent and calls attrib->merge_owner(go_ent, FALSE) on each. Then walks the list of attributes on the go_ent and calls attrib->merge_owner(keep_ent, TRUE) on each.

Effect: Changes model.

Parameters:
keep_ent the entity being "kept".
go_ent the entity "going away".
See also:
ATTRIB, split_attrib, merge_attrib, trans_attrib, copy_attrib, reverse_attrib, warp_attrib, lop_change_attrib, replace_geometry_attrib, replace_attrib, to_tolerant_attrib, from_tolerant_attrib

include <attrib.hxx>

void replace_attrib ( ENTITY keep_ent,
ENTITY replace_ent,
logical  only_when_replace_ent_null = TRUE 
)

Provides a convenient way to "replace" all attributes from an entity that is being "replaced" to an entity that is being "kept".



Role: Walks the list of attributes on keep_ent and calls attrib->replace_owner(replace_ent, FALSE) on each. Then walks the list of attributes on the replace_ent and calls attrib->replace_owner(keep_ent, TRUE) on each.

Effect: Changes model.

Parameters:
keep_ent the entity that is being "kept".
replace_ent the entity that is being "replaced".
only_when_replace_ent_null If TRUE, do nothing if replace_ent is non-NULL.
See also:
ATTRIB, split_attrib, merge_attrib, trans_attrib, copy_attrib, reverse_attrib, warp_attrib, lop_change_attrib, replace_geometry_attrib, replace_attrib, to_tolerant_attrib, from_tolerant_attrib

include <attrib.hxx>

void replace_geometry_attrib ( ENTITY ent,
ENTITY new_geom,
logical  only_when_owning_geom_null = TRUE 
)

Provides a convenient way for attributes to be notified when their owning entity is getting new geometry, which possibly changes its shape.



Role: Walks the list of attributes on the given entity and calls attrib->replace_owner_geometry(new_geom) on each.

If the flag only_when_owning_geom_null is TRUE, this call does nothing when the geometry of the owning entity is not NULL. The flag is TRUE when a subsequent call to set_geometry is made, so multiple attribute notifications are not made.

Effect: Changes model.

Parameters:
ent the owning entity.
new_geom the new geometry.
only_when_owning_geom_null If TRUE, do nothing when ent geometry is non-NULL.
See also:
ATTRIB, split_attrib, merge_attrib, trans_attrib, copy_attrib, reverse_attrib, warp_attrib, lop_change_attrib, replace_geometry_attrib, replace_attrib, to_tolerant_attrib, from_tolerant_attrib

include <attrib.hxx>

void reverse_attrib ( ENTITY ent  ) 

Provides a convenient way for attributes to be notified when their owner's sense bit is being reversed.



Role: Walks the list of attributes on the given entity and calls attrib->reverse_owner() on each.

Effect: Changes model.

Parameters:
ent the owning entity.
See also:
ATTRIB, split_attrib, merge_attrib, trans_attrib, copy_attrib, reverse_attrib, warp_attrib, lop_change_attrib, replace_geometry_attrib, replace_attrib, to_tolerant_attrib, from_tolerant_attrib

include <attrib.hxx>

void split_attrib ( ENTITY old_ent,
ENTITY new_ent,
ENTITY gap_ent = NULL 
)

Provides a convenient way to have the "split_owner" method called for every attribute on an entity being split.



Role: Walks the list of attributes on keep_ent and calls attrib->split_owner(new_ent) on each.

Effect: Changes model.

Parameters:
old_ent the entity being split.
new_ent the new entity that represents "the other side" of the split.
gap_ent the entity "between" the old_ent and new_ent.
See also:
ATTRIB, split_attrib, merge_attrib, trans_attrib, copy_attrib, reverse_attrib, warp_attrib, lop_change_attrib, replace_geometry_attrib, replace_attrib, to_tolerant_attrib, from_tolerant_attrib

include <attrib.hxx>

void to_tolerant_attrib ( ENTITY orig_ent,
ENTITY tol_ent 
)

Provides a convenient way for attributes to be notified when their owning entity has been replaced with a tolerant entity and will be deleted.



Role: Walks the list of attributes on orig_ent and calls attrib->to_tolerant_owner(tol_ent) on each.

The ATTRIB::to_tolerant_owner method gives the application the chance to delete, duplicate or otherwise modify their attribute. The default action is to move the attribute onto the new tolerant entity as long as moveable() is TRUE.

Effect: Changes model.

Parameters:
orig_ent the original entity that is being deleted.
tol_ent the newly created tolerant entity.
See also:
ATTRIB, split_attrib, merge_attrib, trans_attrib, copy_attrib, reverse_attrib, warp_attrib, lop_change_attrib, replace_geometry_attrib, replace_attrib, to_tolerant_attrib, from_tolerant_attrib

include <attrib.hxx>

void trans_attrib ( ENTITY ent,
SPAtransf const &  trans,
ENTITY_LIST list = NULL 
)

Provides a convenient way for attributes to be notified when their owner is being transformed.



Role: Walks the list of attributes on the owning entity and calls attrib->trans_owner_list(trans, list) on each.

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

The implementation of ATTRIB::trans_owner_list calls ATTRIB::trans_owner.

Effect: Changes model.

Parameters:
ent the owning entity.
trans the transform to apply.
list list of entities already transformed.
See also:
ATTRIB, split_attrib, merge_attrib, trans_attrib, copy_attrib, reverse_attrib, warp_attrib, lop_change_attrib, replace_geometry_attrib, replace_attrib, to_tolerant_attrib, from_tolerant_attrib

include <attrib.hxx>

void warp_attrib ( ENTITY ent,
law warp_law 
)

Provides a convenient way for attributes to be notified when their owning entity is being warped.



Role: Walks the list of attributes on the given entity and calls attrib->warp_owner() on each.

Effect: Changes model.

Parameters:
ent the owning entity.
warp_law the warp law being applied.
See also:
ATTRIB, split_attrib, merge_attrib, trans_attrib, copy_attrib, reverse_attrib, warp_attrib, lop_change_attrib, replace_geometry_attrib, replace_attrib, to_tolerant_attrib, from_tolerant_attrib

include <attrib.hxx>