Note that all contact pair and surfaces hold floating point data internally in double precision.
The functions associated with a CPair object are the following.
*vis_CPairBegin - create an instance of a CPair object vis_CPairEnd - destroy an instance of a CPair object vis_CPairError - return CPair object error flag
vis_CPairDef - define master and slave entity types Inq - inquire master and slave entity types vis_CPairSetType - set contact or co-simulation type GetType - get contact or co-simulation type vis_CPairMasterFlag - query master entity defined vis_CPairSlaveFlag - query slave entity defined vis_CPairSlaveNode - query slave node area vis_CPairSlaveNodeMaster - get slave node master contacts vis_CPairSetObject - set pointers to attribute objects. vis_CPairSetMaster - set master element entity vis_CPairSetMasterASurf - set master analytic surface vis_CPairMasterASurf - get master analytic surface vis_CPairSetSlaveElem - set slave element entity vis_CPairSetSlaveNode - set slave node entity and area vis_CPairSetValuei - set integer property vis_CPairSetValuef - set real valued property vis_CPairSetValued - set real valued property vis_CPairValueFlag - query property type defined vis_CPairValueType - query property types vis_CPairValueParams - query property parameters vis_CPairValueName - query property name vis_CPairValueFloat - query property float value vis_CPairValueDouble - query property double value vis_CPairValueInteger - query property integer value vis_CPairEdgeIdTran - edge list of master or slave elements vis_CPairFaceIdTran - face list of master or slave elements vis_CPairNodeIdTran - node list of slave nodes vis_CPairSpecFlag - query any master or slave specifications vis_CPairSetName - set name string GetName - get name string
For the special case of self-contact set the slave entity type to SYS_NONE and define only the master surface. The slave surface is assumed to be the master surface.
Generate a face list of master or slave surface entities using vis_CPairFaceIdTran. Generate an edge list of master or slave surface entities using vis_CPairEdgeIdTran. Generate a node list of all nodes on a slave surface using vis_CPairNodeIdTran.
A set of property types is supported for a contact pair. Specify integer or real valued properties using vis_CPairSetValuei, vis_CPairSetValuef or vis_CPairSetValued. Each property type is identified by a defined constant. The user may query for the number and type of properties defined using vis_CPairValueType. The data type and number of components associated with a property type is queried using vis_CPairValueParams. A long descriptive name which is hard-wired to each property type may be queried using vis_CPairValueName. Finally the property values themselves may be recovered using vis_CPairValueInteger, vis_CPairValueFloat or vis_CPairValueDouble. The function vis_CPairValueFlag is used to determine how a property has been defined, if at all. The full set of contact pair properties are the following:
The currently available CPair functions are described in detail in this section.
*vis_CPairBegin - create an instance of a CPair object
vis_CPair *vis_CPairBegin ()
None
Destroy an instance of a CPair object using
void vis_CPairEnd (vis_CPair *cpair)
Return the current value of a CPair object error flag using
Vint vis_CPairError (vis_CPair *cpair)
vis_CPairDef - define master and slave entity types
void vis_CPairDef (vis_CPair *cpair, Vint mastent, Vint slavent)
cpair Pointer to CPair object. mastent Master entity type =SYS_EDGE Element edge =SYS_FACE Element face =SYS_ASURF Analytic surface slavent Slave entity type =SYS_NONE None =SYS_NODE Node =SYS_EDGE Element edge =SYS_FACE Element face
None
For the special case of self-contact set the slave entity type to SYS_NONE and define only the master surface. The slave surface is assumed to be the master surface.
Inquire of defined mastent and slavent as output arguments using
void vis_CPairInq (vis_CPair *cpair, Vint *mastent, Vint *slavent)
vis_CPairSetType - set contact or co-simulation type
void vis_CPairSetType (vis_CPair *cpair, Vint ctype)
cpair Pointer to CPair object. ctype Contact or co-simulation surface type =CPAIR_CONTACT Contact pair =CPAIR_COSIM Co-simulation pair =CPAIR_CYCLIC Cyclic symmetry pair
None
Inquire of specified ctype as an output argument using
void vis_CPairGetType (vis_CPair *cpair, Vint *ctype)
vis_CPairMasterFlag - query master entity defined
void vis_CPairMasterFlag (vis_CPair *cpair, Vint index, Vint *flags)
cpair Pointer to CPair object. index Element number
flags Element edge or face flags
vis_CPairSlaveFlag - query slave entity defined
void vis_CPairSlaveFlag (vis_CPair *cpair, Vint index, Vint *flags)
cpair Pointer to CPair object. index Node or element number
flags Node or element edge or face flags.
vis_CPairSlaveNode - query slave node area
void vis_CPairSlaveNode (vis_CPair *cpair, Vint index, Vfloat *area) void vis_CPairSlaveNodedv (vis_CPair *cpair, Vint index, Vdouble *area)
cpair Pointer to CPair object. index Node index
area Node area
vis_CPairSlaveNodeMaster - get slave node master contacts
void vis_CPairSlaveNodeMaster (vis_CPair *cpair, Vint index, Vint *ix, Vint *no)
cpair Pointer to CPair object. index Node index
ix Element number no Element face or edge number
vis_CPairSetObject - set pointers to attribute objects.
void vis_CPairSetObject (vis_CPair *cpair, Vint objecttype, Vobject *object)
cpair Pointer to CPair object. objecttype The name of the object type to be set. =VIS_GRIDFUN GridFun object object Pointer to the object to be set.
None
vis_CPairSetMaster - set master element entity
void vis_CPairSetMaster (vis_CPair *cpair, Vint index, Vint no)
cpair Pointer to CPair object. index Element index no Element edge or face number
None
vis_CPairSetMasterASurf - set master analytic surface
void vis_CPairSetMasterASurf (vis_CPair *cpair, Vint asid)
cpair Pointer to CPair object. asid Analytic surface index
None
Inquire of master analytic surface asid as an output argument using
void vis_CPairMasterASurf (vis_CPair *cpair, Vint *asid)
vis_CPairSetSlaveElem - set slave element entity
void vis_CPairSetSlaveElem (vis_CPair *cpair, Vint index, Vint no)
cpair Pointer to CPair object. index Element index no Element edge or face number
None
vis_CPairSetSlaveNode - set slave node entity and area
void vis_CPairSetSlaveNode (vis_CPair *cpair, Vint index, Vfloat area) void vis_CPairSetSlaveNodedv (vis_CPair *cpair, Vint index, Vdouble area)
cpair Pointer to CPair object. index Node index area Node area
None
vis_CPairSetValuei - set integer property
void vis_CPairSetValuei (vis_CPair *cpair, Vint type, Vint ivalue)
cpair Pointer to CPair object. type Property type =CPAIR_CID Cyclic cylindrical system Id =CPAIR_PID Property Id =CPAIR_NUMSECTOR Number of cyclic sectors =CPAIR_SMALLSLIDING Small sliding option =CPAIR_SYMMETRIC Symmetric contact option =CPAIR_SURFTOSURF Surface to surface technology ivalue Property value
None
vis_CPairSetValuef - set real valued property
void vis_CPairSetValuef (vis_CPair *cpair, Vint type, Vfloat rvalue) void vis_CPairSetValued (vis_CPair *cpair, Vint type, Vdouble rvalue)
cpair Pointer to CPair object. type Property type =CPAIR_ADJUST Adjust zone distance =CPAIR_SMOOTH Smooth factor =CPAIR_HCRIT HCrit factor =CPAIR_EXTENSIONZONE Extension zone factor =CPAIR_POSITIONTOL Position tolerance rvalue Property value
None
vis_CPairValueFlag - query property type defined
void vis_CPairValueFlag (vis_CPair *cpair, Vint type, Vint *flag)
cpair Pointer to CPair object. type Property type
flag Flag indicating if property type defined or not =CPAIR_UNDEFINED Property value not defined =CPAIR_VALUE Property real value defined
vis_CPairValueType - query property types
void vis_CPairValueType (vis_CPair *cpair, Vint *ntypes, Vint type[])
cpair Pointer to CPair object.
ntypes Number of types of property values type Array of property types
vis_CPairValueParams - query property parameters
void vis_CPairValueParams (vis_CPair *cpair, Vint type, Vint *nval, Vint *dtyp)
cpair Pointer to CPair object. type Property type
nval Number of components dtyp Data type =SYS_CHAR Character =SYS_INTEGER Integer =SYS_FLOAT Float
vis_CPairValueName - query property name
void vis_CPairValueName (vis_CPair *cpair, Vint type, Vchar name[])
cpair Pointer to CPair object. type Property type
name Property name
vis_CPairValueInteger - query property integer value
void vis_CPairValueInteger (vis_CPair *cpair, Vint type, Vint iparam[])
cpair Pointer to CPair object. type Property type
iparam Integer property.
vis_CPairValueFloat - query property float value
void vis_CPairValueFloat (vis_CPair *cpair, Vint type, Vfloat fparam[])
cpair Pointer to CPair object. type Property type
fparam Float property.
vis_CPairValueDouble - query property double value
void vis_CPairValueDouble (vis_CPair *cpair, Vint type, Vdouble dparam[])
cpair Pointer to CPair object. type Property type
dparam Double property.
vis_CPairEdgeIdTran - edge list of master or slave elements
void vis_CPairEdgeIdTran (vis_CPair *cpair, Vint oper, vis_IdTran *idtran)
cpair Pointer to CPair object. oper Surface type =CPAIR_MASTER Master surface =CPAIR_SLAVE Slave surface
idtran Pointer to derived IdTran object of element edges.
vis_CPairFaceIdTran - face list of master or slave elements
void vis_CPairFaceIdTran (vis_CPair *cpair, Vint oper, vis_IdTran *idtran)
cpair Pointer to CPair object. oper Surface type =CPAIR_MASTER Master surface =CPAIR_SLAVE Slave surface
idtran Pointer to derived IdTran object of element faces.
Note that idtran is not cleared by this function, the derived element face entities are added to any existing element faces in the output idtran.
vis_CPairNodeIdTran - node idtran of slave nodes
void vis_CPairNodeIdTran (vis_CPair *cpair, vis_IdTran *idtran)
cpair Pointer to CPair object.
idtran Pointer to derived IdTran object of nodes
Note that idtran is not cleared by this function, the derived node entities are added to any existing node in the output idtran.
vis_CPairSpecFlag - query any master or slave specifications
void vis_CPairSpecFlag (vis_CPair *cpair, Vint *flag)
cpair Pointer to CPair object.
flag Flag indicating if any master or slave set
vis_CPairSetName - set name string
void vis_CPairSetName (vis_CPair *cpair, Vchar *name)
cpair Pointer to CPair object. name Name string
None
Get name as an output argument.
void vis_CPairGetName (const vis_CPair *cpair, Vchar name[])
The functions associated with a ASurf object are the following.
*vis_ASurfBegin - create an instance of a ASurf object vis_ASurfEnd - destroy an instance of a ASurf object vis_ASurfError - return ASurf object error flag
vis_ASurfDef - define surface type Inq - inquire surface type vis_ASurfSetName - set name string GetName - get name string vis_ASurfSetPoint - set segment or NURBS point GetPoint - get segment or NURBS point vis_ASurfNumPoints - query number of points vis_ASurfSetSegment - set segment type and connectivity GetSegment - get segment type and connectivity vis_ASurfNumSegments - query number of segments vis_ASurfSetSegmentRule - set ruled surface direction GetSegmentRule - get ruled surface direction vis_ASurfSetSegmentRev - set surface of revolution direction GetSegmentRev - get surface of revolution direction vis_ASurfSetSegmentFillet - set fillet radius GetSegmentFillet - get fillet radius vis_ASurfSetPlane - set planar surface parameters GetPlane - get planar surface parameters vis_ASurfSetSphere - set spherical surface parameters GetSphere - get spherical surface parameters vis_ASurfSetBox - set box surface parameters GetBox - get box surface parameters vis_ASurfSetCone - set conical surface parameters GetCone - get conical surface parameters vis_ASurfSetCylinder - set cylindrical surface parameters GetCylinder - get cylindrical surface parameters vis_ASurfSetFacet - set facet surface GetFacet - get facet surface vis_ASurfNumFacets - get number of facets vis_ASurfSetNURBS - set NURBS surface GetNURBS - get NURBS surface vis_ASurfNumNURBS - get number of NURBS vis_ASurfMaxNURBSOrder - get maximum NURBS order vis_ASurfGetNURBSNum - get number of NURBS points and trim loops vis_ASurfSetNURBSTrim - set NURBS surface trimming loop GetNURBSTrim - get NURBS surface trimming loop vis_ASurfNumNURBSTrim - get number of NURBS trimming loops vis_ASurfGetNURBSTrimNum - get number of NURBS trimming loops points
Surfaces created from segments are defined in two steps. First, a curve profile must be defined in the x-y plane. Then the surface is defined from the two-dimensional profile by either extruding it about an axis - a ruled surface - or by revolving it about an axis - a surface of revolution. Profile points are defined with vis_ASurfSetPoint. Segments are defined with vis_ASurfSetSegment. Supported segment types are a straight line (ASURF_SEG_LINE), an circular arc (ASURF_SEG_ARC), or a parabola (ASURF_SEG_PARAB).
Once the profile is defined a ruled surface is created with vis_ASurfSetSegmentRule. A surface of revolution is created with vis_ASurfSetSegmentRev. A fillet radius can be defined on the two-dimensional profile using vis_ASurfSetSegmentFillet.
The functions vis_ASurfSetSegmentRule, vis_ASurfSetSegmentRev, vis_ASurfSetPlane, vis_ASurfSetBox, vis_ASurfSetCone, and vis_ASurfSetCylinder all require three points, a, b, and c, in addition to parameters that are specific to each of them. These three points define a local coordinate system as follows: the local x direction is given by the vector a-b; the vector a-c lies in the local x-y plane so that the local z-direction is given by the cross product a-b X a-c.
Surfaces which are defined as a collection of facets or NURBS require the defining points in 3D space to be input using vis_ASurfSetPoint. Facets are defined using vis_ASurfSetFacet and may be linear or parabolic triangles or quadrilaterls. NURBS surfaces are defined using vis_ASurfSetNURBS with optional trimming loops defined by vis_ASurfSetNURBSTrim. Query functions exist to return the number of facets or NURBS defined and the individual facet and NURBS definitions.
*vis_ASurfBegin - create an instance of a ASurf object
vis_ASurf *vis_ASurfBegin ()
None
Destroy an instance of a ASurf object using
void vis_ASurfEnd (vis_ASurf *asurf)
Return the current value of a ASurf object error flag using
Vint vis_ASurfError (vis_ASurf *asurf)
vis_ASurfDef - define surface type
void vis_ASurfDef (vis_CPair *cpair, Vint type)
asurf Pointer to ASurf object. type Surface type =ASURF_SEGMENT Two-dimensional segmented surface =ASURF_SEGMENT_RULE Segmented ruled surface =ASURF_SEGMENT_REV Segmented surface of revolution =ASURF_PLANE Planar surface =ASURF_BOX Box surface =ASURF_SPHERE Spherical surface =ASURF_CYLINDER Cylindrical surface =ASURF_CONE Conical surface =ASURF_FACET Facetted surface =ASURF_NURBS NURBS surface
None
Inquire of defined type as output argument using
void vis_ASurfInq (vis_ASurf *asurf, Vint *type)
vis_ASurfSetName - set name string
void vis_ASurfSetName (vis_ASurf *asurf, Vchar name[])
asurf Pointer to ASurf object. name String with surface name
None
None
Inquire of specified name as an output argument using
void vis_ASurfGetName (vis_ASurf *asurf, Vchar name[])
vis_ASurfSetPoint - set segment or NURBS point
void vis_ASurfSetPoint (vis_ASurf *asurf, Vint id, Vfloat x[3]) void vis_ASurfSetPointdv (vis_ASurf *asurf, Vint id, Vdouble x[3])
asurf Pointer to ASurf object. id Point id x Point coordinates
None
Inquire of specified x as an output argument using
void vis_ASurfGetPoint (vis_ASurf *asurf, Vint id Vfloat x[3]) void vis_ASurfGetPointdv (vis_ASurf *asurf, Vint id Vdouble x[3])
vis_ASurfNumPoints - query number of points
void vis_ASurfNumPoints (vis_ASurf *asurf, Vint *numpnt)
asurf Pointer to ASurf object.
numpnt Number of defined points
None
vis_ASurfSetSegment - set segment type and connectivity
void vis_ASurfSetSegment (vis_ASurf *asurf, Vint id, Vint type, Vint ix[])
asurf Pointer to ASurf object. id Segment id type Segment type =ASURF_SEG_LINE Straight line =ASURF_SEG_ARC Circular arc =ASURF_SEG_PARAB Parabolic line ix Segment connectivity
None
Inquire of specified type and connectivity ix as an output argument using
void vis_ASurfGetSegment (vis_ASurf *asurf, Vint id Vint *type, Vint ix[])
vis_ASurfNumSegments - query number of segments
void vis_ASurfNumSegments (vis_ASurf *asurf, Vint *numseg)
asurf Pointer to ASurf object.
numseg Number of defined segments
None
vis_ASurfSetSegmentRule - set ruled surface direction
void vis_ASurfSetSegmentRule (vis_ASurf *asurf, Vfloat a[3], Vfloat b[3], Vfloat c[3]) void vis_ASurfSetSegmentRuledv (vis_ASurf *asurf, Vdouble a[3], Vdouble b[3], Vdouble c[3])
asurf Pointer to ASurf object. a Origin of local coordinate system b Point such that a-b defines the local x-axis c Point such that a-c defines a vector in the local x-y plane
NONE
Inquire of specified a, b, and c points for a ruled surface using
void vis_ASurfGetSegmentRule (vis_ASurf *asurf, Vfloat a[3], Vfloat b[3], Vfloat c[3]) void vis_ASurfGetSegmentRuledv (vis_ASurf *asurf, Vdouble a[3], Vdouble b[3], Vdouble c[3])
vis_ASurfSetSegmentRev - set surface of revolution direction
void vis_ASurfSetSegmentRev (vis_ASurf *asurf, Vfloat a[3], Vfloat b[3], Vfloat c[3]) void vis_ASurfSetSegmentRevdv (vis_ASurf *asurf, Vdouble a[3], Vdouble b[3], Vdouble c[3])
asurf Pointer to ASurf object. a Origin of local coordinate system b Point such that a-b defines the local x-axis c Point such that a-c defines a vector in the local x-y plane
NONE
Inquire of specified a, b, and c points for a surface of revolution using
void vis_ASurfGetSegmentRev (vis_ASurf *asurf, Vfloat a[3], Vfloat b[3], Vfloat c[3]) void vis_ASurfGetSegmentRevdv (vis_ASurf *asurf, Vdouble a[3], Vdouble b[3], Vdouble c[3])
vis_ASurfSetSegmentFillet - set fillet radius
void vis_ASurfSetSegmentFillet (vis_ASurf *asurf, Vfloat r) void vis_ASurfSetSegmentFilletdv (vis_ASurf *asurf, Vdouble r)
asurf Pointer to ASurf object. r Fillet radius
None
None
Inquire of specified r using
void vis_ASurfGetFillet (vis_ASurf *asurf, Vfloat *r) void vis_ASurfGetFilletdv (vis_ASurf *asurf, Vdouble *r)
vis_ASurfSetPlane - set planar surface parameters
void vis_ASurfSetPlane (vis_ASurf *asurf, Vfloat a[3], Vfloat b[3], Vfloat c[3]) Vfloat length, Vfloat width) void vis_ASurfSetPlanedv (vis_ASurf *asurf, Vdouble a[3], Vdouble b[3], Vdouble c[3]) Vdouble length, Vdouble width)
asurf Pointer to ASurf object. a Origin of local coordinate system b Point such that a-b defines the local x-axis c Point such that a-c defines a vector in the local x-y plane length Length along the local x-axis width Length along the local y-axis
NONE
Inquire of specified a, b, and c points, and the dimensions length and width for a planar surface using
void vis_ASurfGetPlane (vis_ASurf *asurf, Vfloat a[3], Vfloat b[3], Vfloat c[3], Vfloat *length, Vfloat *width) void vis_ASurfGetPlanedv (vis_ASurf *asurf, Vdouble a[3], Vdouble b[3], Vdouble c[3], Vdouble *length, Vdouble *width)
vis_ASurfSetSphere - set spherical surface parameters
void vis_ASurfSetSphere (vis_ASurf *asurf, Vfloat c[3], Vfloat r) void vis_ASurfSetSpheredv (vis_ASurf *asurf, Vdouble c[3], Vdouble r)
asurf Pointer to ASurf object. c Center of sphere r Sphere radius
NONE
NONE
Inquire of specified c and r using
void vis_ASurfGetSphere (vis_ASurf *asurf, Vfloat c[3], Vfloat *r) void vis_ASurfGetSpheredv (vis_ASurf *asurf, Vdouble c[3], Vdouble *r)
vis_ASurfSetBox - set box surface parameters
void vis_ASurfSetBox (vis_ASurf *asurf, Vfloat a[3], Vfloat b[3], Vfloat c[3]) Vfloat length, Vfloat width, Vfloat height) void vis_ASurfSetBoxdv (vis_ASurf *asurf, Vdouble a[3], Vdouble b[3], Vdouble c[3]) Vdouble length, Vdouble width, Vdouble height)
asurf Pointer to ASurf object. a Origin of local coordinate system b Point such that a-b defines the local x-axis c Point such that a-c defines a vector in the local x-y plane length Length along the local x-axis width Length along the local y-axis height Length along the local z-axis
NONE
Inquire of specified a, b, and c points, and the dimensions length, width, and height for a box surface using
void vis_ASurfGetBox (vis_ASurf *asurf, Vfloat a[3], Vfloat b[3], Vfloat c[3], Vfloat *length, Vfloat *width, Vfloat *height) void vis_ASurfGetBoxdv (vis_ASurf *asurf, Vdouble a[3], Vdouble b[3], Vdouble c[3], Vdouble *length, Vdouble *width, Vdouble *height)
vis_ASurfSetCone - set conical surface parameters
void vis_ASurfSetCone (vis_ASurf *asurf, Vfloat a[3], Vfloat b[3], Vfloat c[3]) Vfloat r1, Vfloat r2, Vfloat height) void vis_ASurfSetConedv (vis_ASurf *asurf, Vdouble a[3], Vdouble b[3], Vdouble c[3], Vdouble r1, Vdouble r2, Vdouble height)
asurf Pointer to ASurf object. a Origin of local coordinate system b Point such that a-b defines the local x-axis c Point such that a-c defines a vector in the local x-y plane r1 Cone radius at origin r2 Cone radius at height height Cone height along local z-axis
NONE
Inquire of specified a, b, and c points, and the radii r1, r2 and height using
void vis_ASurfGetCone (vis_ASurf *asurf, Vfloat a[3], Vfloat b[3], Vfloat c[3], Vfloat *r1, Vfloat *r2, Vfloat *height) void vis_ASurfGetConedv (vis_ASurf *asurf, Vdouble a[3], Vdouble b[3], Vdouble c[3], Vfloat *r1, Vfloat *r2, Vdouble *height)
vis_ASurfSetCylinder - set cylindrical surface parameters
void vis_ASurfSetCylinder (vis_ASurf *asurf, Vfloat a[3], Vfloat b[3], Vfloat c[3]) Vfloat radius, Vfloat height) void vis_ASurfSetCylinderdv (vis_ASurf *asurf, Vdouble a[3], Vdouble b[3], Vdouble c[3], Vdouble radius, Vdouble height)
asurf Pointer to ASurf object. a Origin of local coordinate system b Point such that a-b defines the local x-axis c Point such that a-c defines a vector in the local x-y plane radius Cylinder radius height Cylinder height along z-axis
NONE
Inquire of specified a, b, and c points, and the radius and height using
void vis_ASurfGetCylinder (vis_ASurf *asurf, Vfloat a[3], Vfloat b[3], Vfloat c[3], Vfloat *radius, Vfloat *height) void vis_ASurfGetCylinderdv (vis_ASurf *asurf, Vdouble a[3], Vdouble b[3], Vdouble c[3], Vdouble *radius, Vdouble *height)
vis_ASurfSetFacet - set facet type and connectivity
void vis_ASurfSetFacet (vis_ASurf *asurf, Vint id, Vint type, Vint ix[])
asurf Pointer to ASurf object. id Facet id type Facet type =ASURF_FACET_TRI Linear triangle =ASURF_FACET_PARATRI Parabolic triangle =ASURF_FACET_QUAD Linear quadrilateral =ASURF_FACET_QUADTRI Parabolic quadrilateral ix Facet connectivity
None
Inquire of specified type and connectivity ix as an output argument using
void vis_ASurfGetFacet (vis_ASurf *asurf, Vint id Vint *type, Vint ix[])
vis_ASurfNumFacets - query number of facets
void vis_ASurfNumFacets (vis_ASurf *asurf, Vint *numfacet)
asurf Pointer to ASurf object.
numfacet Number of defined facets
None
vis_ASurfSetNURBS - set NURBS surface
void vis_ASurfSetNURBS (vis_ASurf *asurf, Vint id, Vint type, Vint nptu, Vint nordu, Vint nptv, Vint nordv, Vint ix[], Vfloat homos[], Vfloat knots[], Vint ntrim, Vint trimlist[])
asurf Pointer to ASurf object. id NURBS id type NURBS type =ASURF_NURBS_LINE NURBS line =ASURF_NURBS_SURF NURBS surface nptu Number of points in u nordu Order in u nptv Number of points in v nordv Order in v ix NURBS connectivity homo Homogeneous weights knots Knot values ntrim Number of trimming loops trimlist List of trimming loops
None
Inquire of specified type, etc. as output arguments using
void vis_ASurfGetNURBS (vis_ASurf *asurf, Vint id, Vint *type, Vint *nptu, Vint *nordu, Vint *nptv, Vint *nordv, Vint ix[], Vfloat homos[], Vfloat knots[], Vint *ntrim, Vint trimlist[])
vis_ASurfNumNURBS - query number of NURBS
void vis_ASurfNumNURBS (vis_ASurf *asurf, Vint *numnurbs)
asurf Pointer to ASurf object.
numnurbs Number of defined NURBS
None
vis_ASurfMaxNURBSOrder - get maximum NURBS order
void vis_ASurfMaxNURBSOrder (vis_ASurf *asurf, Vint *maxord)
asurf Pointer to ASurf object.
maxord Maximum order defined in a NURBS direction
None
vis_ASurfGetNURBSNum - get number of NURBS points and trim loop
void vis_ASurfGetNURBSNum (vis_ASurf *asurf, Vint id, Vint *type, Vint *nptu, Vint *nordu, Vint *nptv, Vint *nordv, Vint *ntrim)
asurf Pointer to ASurf object. id NURBS id
type NURBS type =ASURF_NURBS_LINE NURBS line =ASURF_NURBS_SURF NURBS surface nptu Number of points in u nordu Order in u nptv Number of points in v nordv Order in v ntrim Number of trimming loops
vis_ASurfSetNURBSTrim - set NURBS surface trimming loop
void vis_ASurfSetNURBSTrim (vis_ASurf *asurf, Vint id, Vint npts, Vint ix[])
asurf Pointer to ASurf object. id Trimming loop id npts Number of points ix Loop connectivity
None
Inquire of specified npts, etc. as output arguments using
void vis_ASurfGetNURBSTrim (vis_ASurf *asurf, Vint id, Vint *npts, Vint ix[])
vis_ASurfNumNURBSTrim - query number of NURBS trimming loops
void vis_ASurfNumNURBSTrim (vis_ASurf *asurf, Vint *numtrim)
asurf Pointer to ASurf object.
numtrim Number of defined trimming loops
None
vis_ASurfGetNURBSTrimNum - get number of NURBS trimming loop points
void vis_ASurfGetNURBSTrimNum (vis_ASurf *asurf, Vint id, Vint *npts)
asurf Pointer to ASurf object. id Trimming loop id
npts Number of points