All Frameworks  Class Hierarchy  This Framework  Indexes

SPAbool Global Function api_unstitch_nonmani


outcome api_unstitch_nonmani(BODY* input_body,
BODY*& lumps,
BODY*& sheet,
BODY*& lamina,
BODY*& wires,
AcisOptions* ao= NULL )
Decomposes an input body along its nonmanifold vertices and edges.

Role: This API decomposes the input body into four bodies, consisting of the input body's manifold lumps, sheets, lamina, and wires. The input body is destroyed.

Definition of Nonmanifold

A nonmanifold edge has more than two faces around it. A nonmanifold vertex has elements that can be connected topologically only through that vertex, e.g. two cones meeting at their apexes, or a vertex of a block with a dangling edge. Although api_manifold_class also reports three or more wire edges at a vertex as nonmanifold, this API does not unstitch them.

Information Returned

All faces and wire edges from the input body are contained somewhere in the four returned bodies. The four bodies returned contain the manifold lumps, the maximal manifold sheets, lamina (doubly covered) faces, and the wires found in the input body.

The first body returned by this API (lumps) contains the manifold lumps from the input body, each with one peripheral shell and any void shells remaining.

The second body sheet contains each sheet in a separate lump, with exactly one shell in each lump.

The third body lamina contains one lamina face (two back-to-back faces) in each lump.

The last body wires has all wires from the input body in its wire pointer, and has no lumps or shells. Each wire is maximal in that it contains all wire edges that are topologically connected (through a coedge next or previous pointer) to the first edge referenced by the wire entity.

Any bodies that would be returned empty, such as no sheets found, are returned as NULL.

All nonmanifold vertices and edges are unstitched so that they are manifold, except for shell self-nonmanifold edges as described below.

All shared geometry is duplicated.

Errors: input_body is a NULL pointer or does not point to a BODY.

Limitations: The API does not unstitch shell self-nonmanifold edges. These are nonmanifold edges whose owning shell would still be connected after unstitching, and would result in a self-intersecting body. The API does unstitch shell self-nonmanifold vertices, however; in this case, the result will have duplicate vertices.

Effect: Changes model.

Journal: Available

Parameters:
input_body
(in) Body to decompose into manifold parts.
lumps
(out) Returned body with each lump, a manifold lump.
sheet
(out) Returned body with each lump, a manifold sheet.
lamina
(out) Returned body with each lump, a lamina face.
wires
(out) Returned body containing wires from input body.
ao
(in) ACIS options such as version and journal.

This object is included in the file: boolapi.hxx

Copyright (c) 1989-2007 by Spatial Corp. All rights reserved.