Overview
STEP geometry may have associated colors and styles, as well as layers and groups. Models may also have polyline drawings for notes or presentation-only tolerances (human, not computer interpretable) and extra construction geometry like planes. Collectively, this presentation information is handled by the functions below.
All definitions are in the stix_present.h header file.
stix_present_color()
unsigned stix_present_color( stp_representation_item * item );
The stix_present_color() function gets the color of a representation item. The color comes from associated presentation information, so you must call stix_present_tag() before using this function.
The color is returned as a 24-bit RGB value of the form 0x00RRGGBB.
If an item does not have any color information, the function
return ROSE_MESH_NULL_COLOR
.
unsigned rgb = stix_present_color(it); unsigned red = (rgb & 0xff0000) >> 16; unsigned green = (rgb & 0x00ff00) >> 8; unsigned blue = (rgb & 0x0000ff); printf (r=%x g=%x b=%x\n, red, green, blue);
stix_present_constructive_geometry()
StixConstructiveGeomVec * stix_present_constructive_geometry( stp_representation * shape );
The stix_present_constructive_geometry() function returns the constructive geometry associated with with a STEP shape. You must call stix_present_tag() before using this function. This function return null if the shape has no associated construcive geometry.
The returns value is an instance of type StixConstructiveGeomVec. This is a subtype of rose_vector containing elements of type stp_constructive_geometry_representation.
stix_present_draughting_info()
StixDraughtingInfoVec * stix_present_draughting_info( RoseObject * identified_item ); struct StixDraughtingInfo { stp_geometric_item_specific_usage * gisu; stp_draughting_model_item_association * dmia; };
The stix_present_draughting_info() function returns the draughting information associated with a given STEP object. You must call stix_present_tag() before using this function. If there is no draughting information assiciated with the shape, this function return null.
The identified_item parameter is an object that is reference by the geometric_item_specific_usage object in the draughting model. This will often be a face to which an annotation applies.
stix_present_draughting_models()
StixRepresentationVec * stix_present_draughting_models( stp_shape_representation * shape );
The stix_present_draughting_models() function returns the draughting models associated with with a STEP shape. You must call stix_present_tag() before using this function. If there is no draughting model assiciated with the shape, this function return null.
The returns value is an instance of type StixRepresentationVec. This is a subtype of rose_vector containing elements of type stp_representation.
stix_present_styled_items()
StixStyledItemVec * stix_present_styled_items( stp_representation_item * it );
The stix_present_styled_items() function returns a rose_vector subtype containing styled items that refer to a given representation item.
stix_present_tag / untag / retag()
// add presentation index void stix_present_tag( RoseDesign * d ); // remove presentation index void stix_present_untag( RoseDesign * d ); // untag+tag to refresh presentation index void stix_present_retag( RoseDesign * d );
The stix_present_tag() function builds indexes on a STEP data set so stix_present_color() and similar functions can find presentation information related to STEP geometry.
You must call stix_present_tag() before using these
presentation functions. The tag
function checks if the
index data is present and builds it if not present. Subsequent calls
are ignored. The untag
function removes the index
data.
If the underlying STEP data has changed, use the retag
function to force a refresh. It simply removes the index
with untag
then builds it again
with tag
.
stix_style_get_rep()
stp_representation * stix_style_get_rep( stp_styled_item * si );
The stix_style_get_rep() function returns the "item" field of a styled item as a representation pointer if the field contains a value of that type, or null otherwise. Originally, styled_item could only refer to a representation_item, but this was extended in AP242 by the addition of a SELECT type that can contain other types.
stix_style_get_repitem()
stp_representation_item * stix_style_get_repitem( stp_styled_item * si );
The stix_style_get_repitem() function returns the "item" field of a styled item as a representation_item pointer. If the value of that field is not a representation_item, the function returns null. This function simplifies work with styled items because newer schema versions change the "item" field to a SELECT type that can contain one of several different types of values.
stix_style_put_rep()
void stix_style_put_rep( stp_styled_item * si, stp_representation * rep );
The stix_style_put_rep() function sets the "item" field of a styled item to a representation. This function simplifies work with styled items because newer schema versions change the "item" field to a SELECT type that can contain one of several different types of values.
stix_style_put_repitem()
void stix_style_put_repitem( stp_styled_item * si, stp_representation_item * ri );
The stix_style_put_repitem() function sets the "item" field of a styled item to a representation_item. This function simplifies work with styled items because newer schema versions change the "item" field to a SELECT type that can contain one of several different types of values.