Restricted Tolerant Stitching


The API api_stitch operates in Restricted Tolerant Stitch mode when the stitch_options object passed into api_stitch is of class edge_tolstitch_options. Restricted Tolerant Stitching uses the same algorithm as "Regular" Tolerant Stitching, except that the user specifies a list of candidate edges. All unlisted edges in the model are ignored by the stitch algorithm. This functionality is intended as a performance enhancement when stitching single faces or sheets into large (that is, many face) models.

In Restricted Tolerant Stitching mode, api_stitch operates only on sheet EDGEs. A sheet EDGE is an edge which is associated with only one FACE and hence has only one COEDGE. Further the top level owner of each given sheet EDGE should either be a free FACE or should be a BODY. When using Restricted Tolerant Stitching, users should ensure that no stitch attributes are already attached to the incoming model. If there is a possibility that such attributes may be attached, a flag may be set in the edge_tolstitch_options argument that tells api_stitch to search for and remove them before stitching.

At the end of "Regular" Tolerant Stitching, a check is made to ensure that face normals are correctly oriented;that is, they point outwards from the body. If you are sure that all face normals being passed into restricted tolerant stitching are already correct, then this final check can be turned off by setting the fix_body_orientation flag in the edge_tolstitch_options object.

Two lists: ENTITY_LIST& output_bodies and ENTITY_LIST& new_bodies, are returned as output from api_stitch. The list ENTITY_LIST& output_bodies contains the complete set of bodies that is output from the API and belong to the caller. In Restricted Tolerant Stitching mode, if free FACEs are passed into the API, then the API will wrap these free FACEs in new BODYs, which is also returned to the output_bodies list. Note that any new BODY created by the API is also returned back to the new_bodies list. The list ENTITY_LIST& new_bodies contains all the new bodies resulting from the API. This list is a subset of ENTITY_LIST& output_bodies. This list is provided in order to make it convenient for the caller to find out the new bodies that the caller has to take ownership of (for example, the callers may have to register new bodies in their application and/or do memory management of these bodies).

Notes

  • In Restricted Tolerant Stitching mode, the API cannot create non-manifold (that is, more than two coedges per edge) bodies.
  • In Restricted Tolerant Stitching mode, the API operates only on sheet EDGEs. A sheet EDGE is an edge which is associated with only one FACE and hence has only one COEDGE. Further the top level owner of each given sheet EDGE should either be a free FACE or should be a BODY.
  • ENTITY_LIST& new_bodies contains all the new bodies resulting from the API. This list is provided in order to make it convenient for the caller to find out the new bodies that the caller will have to take ownership of (for example, the callers may have to register new bodies in their application and/or do memory management of the bodies).
  • Because edge_tolstitch_options is derived from tolerant_stitch_options, coincident face detection and reporting is handled in Restricted Tolerant Stitching in exactly the same way as Tolerant Stitching.
  • Problem reporting mechanism of API api_stitch in Restricted Tolerant Stitching is exactly the same as Tolerant Stitching. Refer to Problem Reporting for more details.

[Top]