|
|
int
EdgesGetVrtxs(VsApplTopTable
*, VsListObj *, VsListObj **)
VsApplTopTable
*pzTt |
i |
pointer to topology table
|
VsListObj
*pzEdgLst |
i |
index list of edges
|
VsListObj
**ppzVtxLst |
i |
index list of vertices
|
Description
Get index list of vertices attached to the given edge list.
Note that The VsAppData field in VsVertex entities is used as a visit
flag to speed up the traverse.
Memory-Management
if *ppzVtxLst == V_NULL, this routine allocate vertex index list.
Caller has to deallocate index list of vertices.
Caveats
int
TTabCoinEdgMrge(VsListObj
*, VsApplTopTable *)
VsListObj
*pzLstEdge |
i |
List of edge indices to merge
If set to null, all edges in
the table will be merged
|
VsApplTopTable*top_table |
i |
Topology table
|
Description
This routine detects and joins coincident edges in the topology table. Only
edges within the same shape will be merged.
Memory-Management
Caveats
int
TrmFaceMkUnique(double,VsApplTopTable*,int,VsNurbSurf*,int*)
double
dTol |
i |
3D tolerance
|
VsApplTopTable
*pzTt |
io |
pointer to topology table
|
int
idShl |
i |
index to current shell
|
VsNurbSurf
*pzSrf |
i |
pointer to surface
|
int
*pidFac |
o |
index of new face
|
Description
Creates a face, loops, pre-edges, edges and vertices from surface data in the topology table.
Note that this routine is the same as VxTrmFaceMk() except this creates a new vertex while VxTrmFaceMk() refers to existing one if there is a vertex of same coordinates in the vertex table of the shape. This routine is written to speed up face join of parting surfaces.
Memory-Management
Caveats
err == -2 means surface was found to be a duplicate.
int
TrmFaceMkUnqShp(double,VsApplTopTable*,int,VsNurbSurf*,int*,int)
double
dTol |
i |
3D tolerance
|
VsApplTopTable
*pzTt |
io |
pointer to topology table
|
int
idShl |
i |
index to current shell
|
VsNurbSurf
*pzSrf |
i |
pointer to surface
|
int
*pidFac |
o |
index of new face
|
int
idShp |
i |
search only this shape
|
Description
Creates a face, loops, pre-edges, edges and vertices from surface data in the topology table.
Note that this routine is the same as VxTrmFaceMk() except this creates a new vertex while VxTrmFaceMk() refers to existing one if there is a vertex of same coordinates in the vertex table of the shape. This routine is written to speed up face join of parting surfaces.
Memory-Management
Caveats
err == -2 means surface was found to be a duplicate.
int
TrmFaceMkUnqWkr(double,VsApplTopTable*,int,VsNurbSurf*,int,int,int*)
double
dTol |
i |
3D tolerance
|
VsApplTopTable
*pzTt |
io |
pointer to topology table
|
int
idShl |
i |
index to current shell
|
VsNurbSurf
*pzSrf |
i |
pointer to surface
|
intfChkDup |
i |
Flag whether to check for a duplicate face
|
int
idShp |
i |
restrict search to Shape ID
|
int
*pidFac |
o |
index of new face
|
Description
Creates a face, loops, pre-edges, edges and vertices from surface data in the topology table.
Note that this routine is the same as VxTrmFaceMk() except this creates a new vertex while VxTrmFaceMk() refers to existing one if there is a vertex of same coordinates in the vertex table of the shape. This routine is written to speed up face join of parting surfaces.
Memory-Management
Caveats
err == -2 means surface was found to be a duplicate.
int
VxEdgGetCrv(
const VsApplTopTable *, int , VsNurbCurv **)
const
VsApplTopTable *toptbl |
i |
Topology table.
|
int
edge_index |
i |
Index of edge in topo table.
|
VsNurbCurv
**curve |
o |
Pointer to NURB curve.
|
Description
Given an edge, this routine returns a pointer to the underlying edge.
Memory-Management
Caveats
int
VxEdgGetTol(VsApplTopTable
*,int ,double *)
VsApplTopTable
*toptbl |
i |
Topology table
|
int
edg_index |
i |
Edge index
|
double
*tol |
o |
Pointer to tolerance
|
Description
This routine gets the tolerance associated with a given edge.
Return 1 if error, else 0.
Memory-Management
Caveats
int
VxEdgGtShape(VsApplTopTable
*, int , int *)
VsApplTopTable
*toptbl |
i |
Topology table.
|
int
indxEdge |
i |
Index of edge to check.
|
int
*indxShape |
o |
Index of associated shape.
|
Description
Find the index of the shape associated with the specified edge.
Memory-Management
Caveats
int
VxEdgMk(
VsApplTopTable *, VsNurbCurv *, double , int , int *)
VsApplTopTable
*toptbl |
i |
Topology table.
|
VsNurbCurv
*curve |
i |
Nurb curve.
|
double
tol |
i |
Tolerance.
|
int
shape_indx |
i |
Index of shape the edge is being added to
|
int
*index |
o |
Index of new edge.
|
Description
Creates a new edge in the topology table.
Memory-Management
Caveats
int
VxFaceExplode(VsApplTopTable
*, VsXRef2, int, int, int *)
VsApplTopTable
*pzTT |
i/o |
Topology table
|
VsXRef2
zShlFcIndx |
i |
Face to explode
|
int
fOldBox |
i |
Recompute old shell box.
|
int
fRebuild |
i |
Rebuild 3D edges after explode from boundary.
|
int
*piNewShlIdx |
o |
Index of shell containing the exploded face
|
Description
Explode a face from a shell. No checking is done on the shell the face is
exploded from. Call VxShlChkVld() to validate the shell.
Memory-Management
Caveats
int
VxFaceGetSrf(
const VsApplTopTable *, int , int , VsNurbSurf **)
const
VsApplTopTable *toptbl |
i |
Topology table.
|
int
face_index |
i |
Face index.
|
int
shell_index |
i |
Shell index.
|
VsNurbSurf
**surf |
o |
Pointer to a VsNurbSurf pointer.
|
Description
Given a face, returns the underlying surface.
Memory-Management
Same as VxTopTabGetGeom, calling function must deallocate surface
structure after completion preferably via VmSurfDealloc(surf).
Caveats
int
VxFaceGetSrfF(
const VsApplTopTable *, int , int , VsNurbSurf **, int)
const
VsApplTopTable *tt |
i |
Topology table.
|
int
fndx |
i |
Face index.
|
int
sndx |
i |
Shell index.
|
VsNurbSurf
**sf |
o |
Pointer to a VsNurbSurf pointer.
|
int
flg |
i |
options
** 0x1 == Flip if outnorm==0
** 0x2 == get trimloops too
|
Description
Memory-Management
Caveats
int
VxFirstShp(VsApplTopTable
*, int *)
VsApplTopTable*pzTopTab |
i |
input topology table
|
int*piShpIdx |
o |
shape index
|
Description
Get the index of the first non-deleted shape.
Create a new shape if necessary.
Memory-Management
Caveats
int
VxIsShpClsd(int
, VsApplTopTable *, int *)
intiShpIdx |
i |
index of shape
|
VsApplTopTable*pzTopTab |
i |
pointer to the topology table
|
int*fClosed |
i |
open/close flag
|
Description
Check the open/closed flags for each shell in shape.
Memory-Management
Caveats
int
VxShapGetBndBox(VsApplTopTable
*, int, VsLim3 *)
VsApplTopTable*tt |
i |
Topology Table
|
int
shape_indx |
i |
Input Shape
|
VsLim3
*box |
o |
Bounding Box
|
Description
Get the bounding box of the specified shape.
Return 1 if error, else 0.
Memory-Management
Caveats
int
VxShapeExplode(VsApplTopTable
*, int )
VsApplTopTable*top_table |
i/o |
Topology Table
|
inti_shape |
i |
Index of shape to explode.
|
Description
This routine separates the top level shells of the given shape. All shells
adjacent to the first shell in the shape are assigned to separate
shapes. All inner and lower level shells go along with the top level shells.
Memory-Management
Caveats
int
VxShapeMk
( VsApplTopTable *, int *)
VsApplTopTable
*pzTopTbl |
i/o |
Topology table to add shape to
|
int
*piShapeIndx |
o |
Index of the new shape in the topology
table
|
Description
Create a new shape in the topology table for holding entities of
type iType.
Memory-Management
Caveats
int
VxShlDel(VsApplTopTable
*, int )
VsApplTopTable
*pzTT |
i |
Topology table
|
int
iShlIdx |
i |
Index of the shell to delete
|
Description
Deletes a shell from the topology table.
Return 1 if error, else 0.
Memory-Management
Caveats
int
VxShlDelChk(VsApplTopTable
*, int, int *)
VsApplTopTable
*pzTT |
i/o |
Pointer to topology table
|
int
i_shl |
i |
Shell index
|
int
*idDelShp |
o |
index of parent shape if deleted, else -1.
|
Description
Check if a shell needs to be deleted and if so, delete it.
This function does not actually go and delete faces...loops...edges...vtxs belonging to the shell. It just makes sure none of the other shells or shapes refer to the deleted shell.
This functions will also mark the shape as deleted if it refers to no shells. Return 1 if error; else 0.
Memory-Management
Caveats
int
VxShlGtShape(VsApplTopTable
*, int , int *)
VsApplTopTable
*toptbl |
i |
Topology table.
|
int
indxShell |
i |
Index of shell to check.
|
int
*indxShape |
o |
Index of associated shape.
|
Description
Find the index of the shape associated with the specified shell.
Memory-Management
Caveats
int
VxShlMk(VsApplTopTable
*, top_mod_flag , int , int , int *)
VsApplTopTable
*toptbl |
i/o |
Pointer to topology table.
|
top_mod_flag
initMod |
i |
Value used to init object mod flag.
|
int
initNumFace |
i |
Number of faces used to initialize face list.
|
int
shape_index |
i |
Index of shape to add new shell to.
(-1 if shape is unknown)
|
int
*shell_index |
o |
Index of new shell.
|
Description
Create a new empty shell.
If a shape is specified attempt to add shell to face. If shape does not point to a shell it is modified to point to new shell, if shape already points to a shell then this shell is added to end of shell->shl_nxt list.
Memory-Management
Caveats
int
VxShlRvrsDirs(VsApplTopTable
*, int )
VsApplTopTable*top_table |
i |
Topology Table
|
intshell_index |
i |
Index of Shell to be flipped
|
Description
This routine flips the face dir flags of all the faces in a shell.
Memory-Management
Caveats
int
VxShlSew(VsApplTopTable
*, VsListObj *, int , double, int, int, int, VsSewInfo *)
VsApplTopTable
*pzTT |
i/o |
Pointer to topology table
|
VsListObj
*plShls |
i |
List of new shells to sew. Used
in conjunction with fSewType.
Can be null if fSewType is V_SEW_TT
|
int
fSewType |
i |
Type of sewing.
V_SEW_TT - Topology table sewing.
Sews all shell in top-table.
V_SEW_INCR - Incremental sewing
Sews new shell in plShls
with the topology table.
V_SEW_LIST - Sew shell list
Sews list of shells in
plShls with each-other
|
double
mtchTol |
i |
tolerance to use for matching, may be
different to pnt conic tol.
|
int
fMrgVtx |
i |
Flag indicating whether to merge
vertices of the new shells BEFORE
sewing the shells.
|
int
fErrUnOrient |
i |
Flag whether to error out when we
encounter an unorientable surfset.
= 0, don't err out, but explode it
= 1, err out
= 2, continue processing with a warning
|
int
fGetSewInfo |
i |
Get information after sew
|
VsSewInfo
*pzSewInfo |
o |
Output information after the sew if
fGetSewInfo is set, else pass V_NULL
|
Description
This routine sews a list of shell (or all shells) into a single shell.
Memory-Management
Caveats
int
VxShpGetShls(VsApplTopTable
*, int , VsListObj **)
VsApplTopTable
*pzTt |
i |
pointer to topology table
|
int
idShp |
i |
shape index
|
VsListObj
**ppzShlLst |
o |
a list of indices of the shells contained
in the shape
|
Description
Returns a list of indices of the shells contained in the shape.
Memory-Management
The caller should deallocate the list in any case.
If *ppzShlLst == V_NULL, this routine allocate a list to store shell
indexes.
Caveats
int
VxTopTabCopy(VsApplTopTable
*, VsApplTopTable *)
VsApplTopTable*toptabold |
i |
input topology table
|
VsApplTopTable*toptabnew |
o |
output topology table
|
Description
Copies the first shape to a new topology table.
Memory-Management
Caveats
int
VxTopTabCopyNoErr(VsApplTopTable
*, VsApplTopTable *)
VsApplTopTable*toptabold |
i |
input topology table
|
VsApplTopTable*toptabnew |
o |
output topology table
|
Description
Memory-Management
Caveats
int
VxTopTabDel(VsApplTopTable
*)
VsApplTopTable*toptab |
i |
input topology table
|
Description
Deletes the topology table after cleaning it up.
Memory-Management
Caveats
int
VxTopTabResiz(int
, int , int , int , int , int , int , int , VsApplTopTable *)
int
numShape |
i |
number of new shapes
|
int
numShell |
i |
number of new shells
|
int
numFeat |
i |
number of new features
|
int
numLoop |
i |
number of new loops
|
int
numEdge |
i |
number of new edges
|
int
numVrtx |
i |
number of new vertices
|
int
numGeom |
i |
number of new geometric entities
|
int
numDb |
i |
number of new local database entities
|
VsApplTopTable
*toptab |
o |
topology table
|
Description
Creates memory for topology table with the specified number of shells,
features, loops, edges and vertices & returns a pointer to the table.
If table already exists then the nums are used to resize the table.
Memory-Management
Caveats
int
VxTrmFaceMk(VsApplTopTable*,int,VsNurbSurf*,int*)
VsApplTopTable
*toptbl |
i/o |
Pointer to topology table.
|
int
shell_index |
i |
Index to current shell.
|
VsNurbSurf
*srf_ptr |
i |
Pointer to surface.
|
int
*face_index |
o |
Index of new face.
|
Description
Memory-Management
Objects added to topology table.
Caveats
int
VxVtxDel(VsApplTopTable
*, int )
VsApplTopTable
*toptbl |
i |
Topology table.
|
int
vrtx_indx |
i |
Index of vertex to delete.
|
Description
The vertex is cleaned and marked for DELETION.
Memory-Management
Caveats
This routine does not remove any edge references to this vertex.
int
VxVtxGetCoords(
VsApplTopTable *, int , VsPoint *)
VsApplTopTable
*toptbl |
i |
Topology table.
|
int
vtx_index |
i |
Vertex index.
|
VsPoint
*point |
o |
Pointer to 3d point.
|
Description
Returns the 3d location of the vertex.
Memory-Management
Caveats
int
VxVtxGetEdgs(VsListObj
*, int *, int **)
VsListObj
*vrtxLstEdgs |
i |
Vertex edge list (object).
|
int
*nEdg |
o |
number of edge indices in lstEdg.
|
int
**lstEdg |
o |
array of distinct edges.
|
Description
Convert the vertex edge list to an array of unique edge indices.
Memory-Management
if 0 is returned then calling function must deallocate lstEdg.
Caveats
int
VxVtxGetTol(
VsApplTopTable *, int , double *)
VsApplTopTable
*toptbl |
i |
Topology table.
|
int
vtx_index |
i |
Vertex index.
|
double
*tol |
o |
Pointer to tolerance.
|
Description
Returns the tolerance associated to the vertex.
Memory-Management
Caveats
int
VxVtxGtShape(VsApplTopTable
*, int , int *)
VsApplTopTable
*toptbl |
i |
Topology table.
|
int
indxVrtx |
i |
Index of vertex to check.
|
int
*indxShape |
o |
Index of associated shape.
|
Description
Find the index of the shape associated with the specified vertex.
Memory-Management
Caveats
int
VxVtxMk(
VsApplTopTable *, VsPoint *, double , int , int *)
VsApplTopTable
*top_tbl |
i |
Topology table.
|
VsPoint
*point |
i |
3d point.
|
double
tol |
i |
tolerance.
|
int
shape_indx |
i |
Shape the vertex is being created in
|
int
*vrtx_indx |
o |
Index to vertex.
|
Description
Creates a new vertex with the given location and tolerance. Returns the
index of the new vertex.
Memory-Management
Caveats