|
HEAL uses
aggregate attributes attached to the body and
individual attributes attached to the individual entities in the body to control the healing process. These attributes are used to store healing options, tolerances, and results. The aggregate attributes are attached either during the body initialization phase or by the analyze stage of a given phase/subphase. The individual attributes are attached via the aggregate attribute class methods during the calculate stage. Normally, a developer would only need to be concerned with the aggregate attributes and not with the individual attributes.
|
|
|
The attributes are implemented using the
ACIS attribute mechanism, with
C++ classes derived from the
ACIS base attribute class,
ATTRIB. A user interface can be supplied by the application to provide access to, and possibly control of, the data in these attributes. The
HEAL attribute classes are described in reference templates in Chapter 4,
Classes.
|
|
|
|
Aggregate Attributes
|
|
|
Aggregate attributes are derived from the class
ATTRIB_HH_AGGR and named
ATTRIB_HH_AGGR_<something>. They are attached to the body for each of the main healing phases/subphases. These aggregate attributes store information related to the healing phase/subphase, provide methods for setting and querying the data related to the phase, and keep track of the individual attributes pertaining to that phase. They manage the individual attributes via methods. Aggregate attributes are attached to the body during the body initialization phase, but are used extensively during the analyze stage of each phase.
|
|
|
Individual Entity Attributes
|
|
|
The individual attributes are derived from the class
ATTRIB_HH_ENT and are named
ATTRIB_HH_ENT_<something>. They are attached to entities in the calculate stages and store entity-specific information relating to each phase. For example, in the geometry simplification phase, the individual entity would be a face whose attribute contains a pointer to the simplified surface. In the stitching phase, the individual entity would be an edge whose attribute contains the edge pairing information. The individual attributes can also be used to mark specific entities to be left unchanged by the healing process.
|
|
|
Fields are available in the individual entity attributes to record changes of geometry and topology during the healing process. The description of the changes is stored as text in the attribute so that users are able to directly read the log of modifications made to each entity. APIs
api_hh_store_entity_details and
api_hh_get_entity_details can be used to access the history of the events that every entity undergoes during healing.
|
|
|
Information related to the modifications to surfaces and curves is recorded in entity attributes on faces and edges respectively.
|
|
|
Attribute Class Derivation
|
|
|
Figure 1-10 illustrates the derivation of the
HEAL attribute classes. The attribute classes shown in bold are the only classes that are directly used and can be instantiated. All other
HEAL attribute classes are base classes and cannot be instantiated.
|
|
|
|
|
Figure 1-10. Healing Component Attributes
|