*vsy_VertLocBegin - create an instance of a VertLoc object vsy_VertLocEnd - destroy an instance of a VertLoc object vsy_VertLocError - return VertLoc object error flag
vsy_VertLocDef - define initial number of points Inq - inquire current point storage vsy_VertLocInsert - insert point at specified index vsy_VertLocColor - query point color vsy_VertLocNormal - query point normal vector vsy_VertLocTrans - query point transparency vsy_VertLocRef - query point coordinates vsy_VertLocNum - query largest inserted point index vsy_VertLocClear - remove all points vsy_VertLocMerge - merge coincident points vsy_VertLocUnique - query unique sets of coincident points vsy_VertLocLowest - query lowest index in a unique set vsy_VertLocSetColor - set current color attribute vsy_VertLocSetTrans - set current transparency attribute vsy_VertLocSetNormal - set current normal vector attribute vsy_VertLocSetParamf - set floating point merging parameters vsy_VertLocSetParami - set integer merging parameters
Each new point is inserted by calling vsy_VertLocInsert. The point at a specified index may be found by calling vsy_VertLocRef. The largest point index currently inserted may be queried by calling vsy_VertLocNum. The method vsy_VertLocClear removes all points. Each point may be assigned a number of attributes which are stored along with the point coordinate. These attributes are specified by setting a current attribute value which is then assigned to all subsequently inserted points. These attributes include color RGB triple, transparency factor and normal vector. These attributes are specifically designed for use with graphics applications. The current color, transparency and normal vector are assigned by calling vsy_VertLocSetColor, vsy_VertLocSetTrans and vsy_VertLocSetNormal respectively. The assigned color, transparency and normal vector for any point may be queried by point index using vsy_VertLocColor, vsy_VertLocTrans and vsy_VertLocNormal respectively.
Once all points are inserted the function vsy_VertLocMerge will identify all coincident points and determine the number of unique point locations and the maximum number of points in any unique set. Once this function has been called then all points in any unique set may be queried using vsy_VertLocUnique. The unique set associated with any point and the associated lowest point index in the unique set may be queried using vsy_VertLocLowest. The absolute coordinate tolerance used to determine point coincidence is defined using vsy_VertLocSetParamf. The angular tolerance used for normal vectors is also defined using vsy_VertLocSetParamf. The merging process may be made independent of a particular attribute value using vsy_VertLocSetParami.
*vsy_VertLocBegin - create an instance of an VertLoc object
vsy_VertLoc *vsy_VertLocBegin ()
None
Destroy an instance of a VertLoc object using
void vsy_VertLocEnd (vsy_VertLoc *vertloc)
Return the current value of a VertLoc object error flag using
Vint vsy_VertLocError (vsy_VertLoc *vertloc)
vsy_VertLocDef - define initial number of points
void vsy_VertLocDef (vsy_VertLoc *vertloc, Vint numvert)
vertloc Pointer to VertLoc object. numvert Estimated number of points to be held.
None
Find the current length of the internal storage of a VertLoc using
void vsy_VertLocInq (vsy_VertLoc *vertloc, Vint *numvert)
vsy_VertLocInsert - insert point at specified index
void vsy_VertLocInsert (vsy_VertLoc *vertloc, Vint index, Vfloat x[3])
vertloc Pointer to VertLoc object. index Point index x Coordinates of point
None
vsy_VertLocRef - query point coordinates
void vsy_VertLocRef (vsy_VertLoc *vertloc, Vint index, Vfloat x[3])
vertloc Pointer to VertLoc object. index Point index
x Coordinates of point
vsy_VertLocNum - query largest inserted point index
void vsy_VertLocNum (vsy_VertLoc *vertloc, Vint *numvert)
vertloc Pointer to VertLoc object.
numvert Largest inserted point index
vsy_VertLocColor - query point color
void vsy_VertLocColor (vsy_VertLoc *vertloc, Vint index, Vfloat c[3])
vertloc Pointer to VertLoc object. index Point index
c Color RGB triple of point
vsy_VertLocNormal - query point normal vector
void vsy_VertLocNormal (vsy_VertLoc *vertloc, Vint index, Vfloat v[3])
vertloc Pointer to VertLoc object. index Point index
v Normal vector of point
vsy_VertLocTrans - query point transparency
void vsy_VertLocTrans (vsy_VertLoc *vertloc, Vint index, Vfloat *t)
vertloc Pointer to VertLoc object. index Point index
t Transparency of point
vsy_VertLocClear - remove all points
void vsy_VertLocClear (vsy_VertLoc *vertloc)
vertloc Pointer to VertLoc object.
None
vsy_VertLocMerge - merge coincident points
void vsy_VertLocMerge (vsy_VertLoc *vertloc, Vint *numunique, Vint *maxlocate)
vertloc Pointer to VertLoc object.
numunique Number of unique coincident point sets maxlocate Maximum number of points in any unique set
vsy_VertLocUnique - query unique sets of coincident points
void vsy_VertLocUnique (vsy_VertLoc *vertloc, Vint iunique Vint *nix, Vint ix[])
vertloc Pointer to VertLoc object. iunique Unique set identifier
nix Number of points in unique set ix Vector of point indices contained in unique set
vsy_VertLocLowest - query lowest index in a unique set
void vsy_VertLocLowest (vsy_VertLoc *vertloc, Vint index, Vint *iunique Vint *lowestindex)
vertloc Pointer to VertLoc object. index Point index
iunique Unique set containing index lowestindex Lowest point index contained in set iunique.
vsy_VertLocSetColor - set current color attribute
void vsy_VertLocSetColor (vsy_VertLoc *vertloc, Vfloat c[3])
vertloc Pointer to VertLoc object. c RGB color components
None
vsy_VertLocSetTrans - set current transparency attribute
void vsy_VertLocSetTrans (vsy_VertLoc *vertloc, Vfloat t)
vertloc Pointer to VertLoc object. t Transparency
None
vsy_VertLocSetNormal - set current normal vector attribute
void vsy_VertLocSetNormal (vsy_VertLoc *vertloc, Vfloat v[3])
vertloc Pointer to VertLoc object. v Normal vector
None
vsy_VertLocSetParamf - set floating point merging parameters
void vsy_VertLocSetParamf (vsy_VertLoc *vertloc, Vint ptype, Vfloat fparam)
vertloc Pointer to VertLoc object. ptype Type of parameter to set =VERTLOC_TOL Coordinate tolerance =VERTLOC_NTOL Normal vector tolerance in degrees fparam Specifies the floating value that ptype will be set to.
None
The VERTLOC_NTOL parameter is an angular normal vector tolerance for determining the colocation of points. The default VERTLOC_NTOL is 0.0 .
vsy_VertLocSetParami - set integer merging parameters
void vsy_VertLocSetParami (vsy_VertLoc *vertloc, Vint ptype, Vint iparam)
vertloc Pointer to VertLoc object. ptype Type of parameter to set =VERTLOC_COLORTRANSATT Color and Transparency flag =VERTLOC_NORMALATT Normal vector flag iparam Specifies the integer value that ptype will be set to. =SYS_OFF Ignore attribute value during merging =SYS_ON Consider attribute value during merging
None
*vsy_LineConBegin - create an instance of a LineCon object vsy_LineConEnd - destroy an instance of a LineCon object vsy_LineConError - return LineCon object error flag
vsy_LineConDef - define initial number of line Inq - inquire current line storage vsy_LineConAppend - append a line vsy_LineConRef - query line connectivity vsy_LineConNum - query number of appended lines vsy_LineConClear - remove all lines vsy_LineConProcess - create strip information vsy_LineConStrip - query line strips vsy_LineConSetParami - set line stripping parameters
Each new line is appended by calling vsy_LineConAppend. Indices are assigned to the lines as they are appended. The first line is assigned an index of 1. The index is incremented for each appended line. The line at a specified index may be found by calling vsy_LineConRef. The largest line index currently appended may be queried by calling vsy_LineConNum. The method vsy_LineConClear removes all lines. Once all lines have been entered, call vsy_LineConProcess to create line adjacency information which is required to perform subsequent line stripping query operations. Query for line stripping information using vsy_LineConStrip. The maximum length of generated line strips may be defined using vsy_LineConSetParami.
*vsy_LineConBegin - create an instance of a LineCon object
vsy_LineCon *vsy_LineConBegin ()
None
Destroy an instance of a LineCon object using
void vsy_LineConEnd (vsy_LineCon *linecon)
Return the current value of a LineCon object error flag using
Vint vsy_LineConError (vsy_LineCon *linecon)
vsy_LineConDef - define initial length of storage array
void vsy_LineConDef (vsy_LineCon *linecon, Vint numline)
linecon Pointer to LineCon object. numline Estimated number of lines to be held.
None
Find the current length of the internal storage of a LineCon using
void vsy_LineConInq (const vsy_LineCon *linecon, Vint *numline)
vsy_LineConAppend - append a line
void vsy_LineConAppend (vsy_LineCon *linecon, Vint ix[2])
linecon Pointer to LineCon object. ix Line connectivity
None
vsy_LineConRef - query line connectivity
void vsy_LineConRef (vsy_LineCon *linecon, Vint index, Vint ix[2])
linecon Pointer to LineCon object. index Line index
ix Line connectivity
vsy_LineConNum - query number of appended lines
void vsy_LineConNum (vsy_LineCon *linecon, Vint *numlin)
linecon Pointer to LineCon object.
numlin Largest appended line index
vsy_LineConClear - remove all lines
void vsy_LineConClear (vsy_LineCon *linecon)
linecon Pointer to LineCon object.
None
vsy_LineConProcess - create strip information
void vsy_LineConProcess (vsy_LineCon *linecon, Vint *numstrip, Vint *maxlength)
linecon Pointer to LineCon object.
numstrip Number of line strips maxlength Maximum length of any line strip
vsy_LineConStrip - query line strips
void vsy_LineConStrip (vsy_LineCon *linecon, Vint istrip, Vint *nix, Vint it[], Vint ix[])
linecon Pointer to LineCon object. istrip Strip identifier
nix Number of points in strip it Vector of line indices contained in strip ix Vector of point indices contained in strip
vsy_LineConSetParami - set line stripping parameters
void vsy_LineConSetParami (vsy_LineCon *linecon, Vint ptype, Vint iparam)
linecon Pointer to LineCon object. ptype Type of parameter to set =LINECON_MAXLENGTH Maximum line strip point length fparam Specifies the integer value that ptype will be set to.
None
*vsy_TriConBegin - create an instance of a TriCon object vsy_TriConEnd - destroy an instance of a TriCon object vsy_TriConError - return TriCon object error flag
vsy_TriConDef - define initial number of triangles Inq - inquire current triangle storage vsy_TriConAppend - append a triangle vsy_TriConRef - query triangle connectivity vsy_TriConNum - query number of appended triangles vsy_TriConClear - remove all triangles vsy_TriConProcess - create adjacency and strip information vsy_TriConAdj - query triangle adjacency information vsy_TriConStrip - query triangle strips vsy_TriConSetParami - set triangle stripping parameters
Each new triangle is appended by calling vsy_TriConAppend. Indices are assigned to the triangles as they are appended. The first triangle is assigned an index of 1. The index is incremented for each appended triangle. The triangle at a specified index may be found by calling vsy_TriConRef. The largest triangle index currently appended may be queried by calling vsy_TriConNum. The method vsy_TriConClear removes all triangles. Once all triangles have been entered, call vsy_TriConProcess to create triangle adjacency information which is required to perform subsequent triangle stripping or adjacency query operations. Query triangle adjacency information for a specified triangle index using vsy_TriConAdj. Query for triangle stripping information using vsy_TriConStrip. The maximum length of generated triangle strips may be defined using vsy_TriConSetParami.
*vsy_TriConBegin - create an instance of a TriCon object
vsy_TriCon *vsy_TriConBegin ()
None
Destroy an instance of a TriCon object using
void vsy_TriConEnd (vsy_TriCon *tricon)
Return the current value of a TriCon object error flag using
Vint vsy_TriConError (vsy_TriCon *tricon)
vsy_TriConDef - define initial length of storage array
void vsy_TriConDef (vsy_TriCon *tricon, Vint numtri)
tricon Pointer to TriCon object. numtri Estimated number of triangles to be held.
None
Find the current length of the internal storage of a TriCon using
void vsy_TriConInq (const vsy_TriCon *tricon, Vint *numtri)
vsy_TriConAppend - append a triangle
void vsy_TriConAppend (vsy_TriCon *tricon, Vint ix[3])
tricon Pointer to TriCon object. ix Triangle connectivity
None
vsy_TriConRef - query triangle connectivity
void vsy_TriConRef (vsy_TriCon *tricon, Vint index, Vint ix[3])
tricon Pointer to TriCon object. index Triangle index
ix Triangle connectivity
vsy_TriConNum - query number of appended triangles
void vsy_TriConNum (vsy_TriCon *tricon, Vint *numtri)
tricon Pointer to TriCon object.
numtri Largest appended triangle index
vsy_TriConClear - remove all triangles
void vsy_TriConClear (vsy_TriCon *tricon)
tricon Pointer to TriCon object.
None
vsy_TriConProcess - create adjacency and strip information
void vsy_TriConProcess (vsy_TriCon *tricon, Vint *numstrip, Vint *maxlength)
tricon Pointer to TriCon object.
numstrip Number of triangle strips maxlength Maximum length of any triangle strip
vsy_TriConAdj - query triangle adjacency information
void vsy_TriConAdj (vsy_TriCon *tricon, Vint index, Vint aix[3], Vint aed[3])
tricon Pointer to TriCon object. index Triangle index
aix Indices of adjacent triangles aed Edge number of adjacent triangles
vsy_TriConStrip - query triangle strips
void vsy_TriConStrip (vsy_TriCon *tricon, Vint istrip, Vint *nix, Vint it[], Vint ix[])
tricon Pointer to TriCon object. istrip Strip identifier
nix Number of points in strip it Vector of triangle indices contained in strip ix Vector of point indices contained in strip
vsy_TriConSetParami - set triangle stripping parameters
void vsy_TriConSetParami (vsy_TriCon *tricon, Vint ptype, Vint iparam)
tricon Pointer to TriCon object. ptype Type of parameter to set =TRICON_MAXLENGTH Maximum tristrip point length fparam Specifies the integer value that ptype will be set to.
None
*vsy_ADTreeBegin - create an instance of a ADTree object vsy_ADTreeEnd - destroy an instance of a ADTree object vsy_ADTreeError - return ADTree object error flag
vsy_ADTreeDef - define initial number of objects and bounds Inq - inquire current number of objects and bounds vsy_ADTreeGetInteger - get integer information vsy_ADTreeInsertExtent - insert extent vsy_ADTreeInsertPoint - insert point vsy_ADTreeRefExtentInit - initiate extent search vsy_ADTreeRefExtentNext - query entities vsy_ADTreeRefPointInit - initiate point search vsy_ADTreeRefPointNext - query entities vsy_ADTreeRemove - remove point or extent vsy_ADTreeSetParamd - set point search tolerance
New point entities are inserted by calling vsy_ADTreeInsertPoint. Point entities may only be inserted in a tree which has been initially defined as a point tree. New extent entities are inserted by calling vsy_ADTreeInsertExtent. Extent entities may only be inserted in a tree which has been initially defined as an extent tree. Each inserted point or extent is given an integer key name by the user. Any point or extent entity may be removed from the tree by calling vsy_ADTreeRemove with the integer key of the entity to be deleted.
The alternating digital tree may be queried for all entities which are contained or partially contained within the extent of an input object. Any tree may searched for either an input extent using vsy_ADTreeRefExtentInit or input point with associated tolerance bound using vsy_ADTreeRefPointInit. The point coordinate tolerance is specified using vsy_ADTreeSetParamd. Once the search is initiated, the contained entities are queried using repeated calls to either vsy_ADTreeRefExtentNext or vsy_ADTreeRefPointNext. The number of entity hits may be queried using vsy_ADTreeGetInteger.
*vsy_ADTreeBegin - create an instance of a ADTree object
vsy_ADTree *vsy_ADTreeBegin ()
None
Destroy an instance of a ADTree object using
void vsy_ADTreeEnd (vsy_ADTree *adtree)
Return the current value of a ADTree object error flag using
Vint vsy_ADTreeError (vsy_ADTree *adtree)
vsy_ADTreeDef - define initial length of storage array
void vsy_ADTreeDef (vsy_ADTree *adtree, Vint type, Vint len, Vdouble xmin[3], Vdouble xmax[3])
adtree Pointer to ADTree object. type Entity type =ADTREE_POINT Point entities =ADTREE_EXTENT Extent entities len Estimated number of entities to be held. xmin Minimum x,y,z coordinates of global extent xmax Maximum x,y,z coordinates of global extent
None
Find the current defined values of an ADTree using
void vsy_ADTreeInq (const vsy_ADTree *adtree, Vint *type, Vint *len, Vdouble xmin[3], Vdouble xmax[3])
vsy_ADTreeGetInteger - get integer information
void vsy_ADTreeGetInteger (vsy_ADTree *adtree, Vint type, Vint iparam[])
adtree Pointer to ADTree object. type Type of integer information to query =ADTREE_NUMHITS Get number of contained entities
iparam Returned integer information
vsy_ADTreeInsertExtent - insert extent
void vsy_ADTreeInsertExtent (vsy_ADTree *adtree, Vint key, Vdouble xmin[3], Vdouble xmax[3])
adtree Pointer to ADTree object. key Entity key xmin Minimum coordinate extent of entity xmax Maximum coordinate extent of entity
None
vsy_ADTreeInsertPoint - insert point
void vsy_ADTreeInsertPoint (vsy_ADTree *adtree, Vint key, Vdouble x[3])
adtree Pointer to ADTree object. key Entity key x coordinate location of point
None
vsy_ADTreeRefExtentInit - initiate extent search
void vsy_ADTreeRefExtentInit (vsy_ADTree *adtree, Vdouble xmin[3], Vdouble xmax[3])
adtree Pointer to ADTree object. xmin Minimum coordinate extent of query xmax Maximum coordinate extent of query
None
vsy_ADTreeRefExtentNext - query entities
void vsy_ADTreeRefExtentNext (vsy_ADTree *adtree, Vint *key)
adtree Pointer to ADTree object.
key Entity key
vsy_ADTreeRefPointInit - initiate point search
void vsy_ADTreeRefPointInit (vsy_ADTree *adtree, Vdouble x[3])
adtree Pointer to ADTree object. x Coordinate center of query
None
vsy_ADTreeRefPointNext - query entities
void vsy_ADTreeRefPointNext (vsy_ADTree *adtree, Vint *key)
adtree Pointer to ADTree object.
key Entity key
vsy_ADTreeRemove - remove point or extent
void vsy_ADTreeRemove (vsy_ADTree *adtree, Vint key)
adtree Pointer to ADTree object. key Entity key
None
vsy_ADTreeSetParamd - set point search tolerance
void vsy_ADTreeSetParamd (vsy_ADTree *adtree, Vint ptype, Vdouble dparam)
adtree Pointer to ADTree object. ptype Type of parameter to set =ADTREE_TOLERANCE Set point search tolerance dparam Specifies the value that ptype will be set to.
None
*vsy_PredBegin - create an instance of a Pred object vsy_PredEnd - destroy an instance of a Pred object vsy_PredError - return Pred object error flag
vsy_PredExact - check to determine if exact arithmetic vsy_PredPushFPU - push FPU state and set vsy_PredPopFPU - pop (restore) pushed FPU state vsy_PredIncircle - determines whether point is inside circle vsy_PredInsphere - determines whether point is inside sphere vsy_PredOrient2d - computes orientation of a triangle vsy_PredOrient3d - computes orientation of a tetrahedron vsy_PredIntersectLineTri - computes line-triangle intersection
The Pred object is used extensively by certain mesh generation models in VisTools/Mesh, in particular the 3D volume meshing modules and the 2D plane meshing modules.
*vsy_PredBegin - create an instance of a Pred object
vsy_Pred *vsy_PredBegin ()
None
Destroy an instance of a Pred object using
void vsy_PredEnd (vsy_Pred *pred)
Return the current value of a Pred object error flag using
Vint vsy_PredError (vsy_Pred *pred)
vsy_PredExact - check to determine if exact arithmetic
void vsy_PredExact (vsy_Pred *pred, Vint *pass)
pred Pointer to Pred object.
pass x=SYS_ON Able to do exact arithmetic =SYS_OFF Unable to do exact arithmetic
vsy_PredPushFPU - push FPU state and set
void vsy_PredPushFPU (vsy_Pred *pred)
pred Pointer to Pred object.
None
vsy_PredPopFPU - pop (restore) pushed FPU state
void vsy_PredPopFPU (vsy_Pred *pred)
pred Pointer to Pred object.
None
None
vsy_PredIncircle - determines whether point is inside circle
Vdouble vsy_PredIncircle (vsy_Pred *pred, Vdouble a[2], Vdouble b[2], Vdouble c[2], Vdouble d[2])
pred Pointer to Pred object. a Two-dimensional coordinates of first point in circle b Two-dimensional coordinates of second point in circle c Two-dimensional coordinates of third point in circle e Point whose position relative to circle is to be determined
None
None
vsy_PredInsphere - determines whether point is inside sphere
Vdouble vsy_PredInsphere (vsy_Pred *pred, Vdouble a[3], Vdouble b[3], Vdouble c[3], Vdouble d[3], Vdouble e[3])
pred Pointer to Pred object. a Coordinates of first point in sphere b Coordinates of second point in sphere c Coordinates of third point in sphere d Coordinates of fourth point in sphere e Point whose position relative to sphere is to be determined
None
None
vsy_PredOrient2d - Computes orientation of a triangle
Vdouble vsy_PredOrient2d (vsy_Pred *pred, Vdouble a[2], Vdouble b[2], Vdouble c[2])
pred Pointer to Pred object. a Two-dimensional coordinates of first point in triangle b Two-dimensional coordinates of second point in triangle c Two-dimensional coordinates of third point in triangle
None
None
vsy_PredOrient3d - Computes orientation of a tetrahedron
Vdouble vsy_PredOrient3d (vsy_Pred *pred, Vdouble a[3], Vdouble b[3], Vdouble c[3], Vdouble d[3])
pred Pointer to Pred object. a Coordinates of first point in tetrahedron b Coordinates of second point in tetrahedron c Coordinates of third point in tetrahedron d Coordinates of fourth point in tetrahedron
None
None
vsy_PredIntersectLineTri - computes line-triangle intersection
void vsy_PredIntersectLineTri (vsy_Pred *pred, Vdouble xt[3][3], Vdouble xl[2][3], Vint *code, Vint *ient, Vint *ierr)
pred Pointer to Pred object. xt Coordinates of triangle xl Coordinates of line
code Intersection code =0 No intersection =1 Intersects inside triangle =2 Intersects on edge =3 Intersects on vertex =-1 Intersects and is parallel ient Intersection edge or vertex index (one based) ierr Error flag =0 No error =1 Triangle is zero area
None