Go to the source code of this file.
#define | PFS_SUCCESS 1 |
#define | PFS_ITERATION_END 0 |
#define | PFS_NO_SURFACE_DEFINED -1 |
#define | PFS_NON_MANIFOLD_EDGE -2 |
#define | PFS_INVERSE_INCIDENCE -3 |
#define | PFS_NON_MANIFOLD_VERTEX -4 |
int | pfs_iter |
int | pfs_node |
void * | pfsRInitSurf (int maxnodes, int maxelems) |
void | pfsRActivateSurf (void *surf) |
void | pfsRFreeSurf (void *surf) |
int | pfsRAddNode (double x, double y, double z) |
int | pfsRAddElem (int v0, int v1, int v2) |
int | pfsRCompleteSurf (void) |
void | pfsRSolveSurfPar (int maxnumiter) |
void | pfsCompleteParSpace (void) |
int | pfsRItr3dBoundBox (double *xmin, double *xmax, double *ymin, double *ymax, double *zmin, double *zmax) |
int | pfsRItrParBoundBox (double *umin, double *umax, double *vmin, double *vmax) |
int | pfsRItrFirstElem (void) |
int | pfsRItrNextElem (void) |
int | pfsRItrFirst3dElem (double xmin, double xmax, double ymin, double ymax, double zmin, double zmax) |
int | pfsRItrNext3dElem (double xmin, double xmax, double ymin, double ymax, double zmin, double zmax) |
int | pfsRItrFirstParElem (double umin, double umax, double vmin, double vmax) |
int | pfsRItrNextParElem (double umin, double umax, double vmin, double vmax) |
void | pfsRSetCurrElem (void *elem) |
int | pfsRGetElem (double x, double y, double z, void **elem) |
int | pfsRGetLoopElem (double x, double y, double z, void **elem) |
int | pfsRItrElemNode (int *id) |
void | pfsRItrElemCenter (double *x, double *y, double *z) |
void | pfsRItrElemNormal (double *nx, double *ny, double *nz) |
void | pfsRItrElem3dBox (double *xmin, double *ymin, double *zmin, double *xmax, double *ymax, double *zmax) |
void | pfsRItrElemParBox (double *umin, double *vmin, double *umax, double *vmax) |
int | pfsRItrNumNodes (void) |
void | pfsRItrNodeCoords (int id, double *x, double *y, double *z) |
void | pfsRItrNodeNormal (int id, double *nx, double *ny, double *nz) |
void | pfsRItrNodeJacobian (int id, double *xdu, double *ydu, double *zdu, double *xdv, double *ydv, double *zdv) |
void | pfsRItrNodeParVals (int id, double *u, double *v) |
int | pfsRItrNumLoops (void) |
int | pfsRItrFirstLoopNode (int loop_id, int *id) |
int | pfsRItrNextLoopNode (int loop_id, int ref_id, int *id) |
int | pfsRProjectOn (double x, double y, double z, double *u, double *v) |
int | pfsRGetJacobian (double u, double v, double *xdu, double *ydu, double *zdu, double *xdv, double *ydv, double *zdv, double *xdw, double *ydw, double *zdw) |
int | pfsREval (double u, double v, double *x, double *y, double *z) |
int | pfsRShot (void *init_elem, double x0, double y0, double z0, double u_shot, double v_shot, double len, void **end_elem, double *x1, double *y1, double *z1) |
#define PFS_INVERSE_INCIDENCE -3 |
#define PFS_ITERATION_END 0 |
Definition at line 156 of file pfs.h.
Referenced by pfsREval(), pfsRGetElem(), pfsRGetJacobian(), pfsRGetLoopElem(), pfsRItrElemNode(), pfsRItrFirst3dElem(), pfsRItrFirstElem(), pfsRItrFirstLoopNode(), pfsRItrFirstParElem(), pfsRItrNext3dElem(), pfsRItrNextElem(), pfsRItrNextLoopNode(), pfsRItrNextParElem(), and pfsRProjectOn().
#define PFS_NO_SURFACE_DEFINED -1 |
#define PFS_NON_MANIFOLD_EDGE -2 |
#define PFS_NON_MANIFOLD_VERTEX -4 |
#define PFS_SUCCESS 1 |
Definition at line 155 of file pfs.h.
Referenced by pfsAddAdjNode(), pfsBuildNodeAdj(), pfsIsParPtInside(), pfsIsParPtOnBound(), pfsOrderAllBdryNodeAdj(), pfsOrderBdryNodeAdj(), pfsRCompleteSurf(), pfsRItrElemNode(), pfsRItrFirst3dElem(), pfsRItrFirstElem(), pfsRItrFirstLoopNode(), pfsRItrFirstParElem(), pfsRItrNext3dElem(), pfsRItrNextElem(), pfsRItrNextLoopNode(), pfsRItrNextParElem(), and pfsSnapParPtToBound().
void pfsCompleteParSpace | ( | void | ) |
---------------------------------------------------------------
void pfsCompleteParSpace( void )
This function finishes up definition of surface parametric values of all nodes of the mesh in current active surface. First it normalizes the parametric coordinates of all nodes of surface. The normalization is such that the minimum parametric value is zero and the maximum is one. In the normalization, the same scaling factor is applyed to both u and v parametric coordinates. Then, it computes the bounding box parametric components for each element in the current mesh and creates the R-tree of elements indexed by parametric bounding box. Finally, it computes an average Jacobian (mapping derivatives) for each node in the current mesh. Each node jacobian is computed as an average of the Jacobians of the adjacent elements.
Definition at line 4086 of file pfs.c.
References pfsComputeElemParBoundBoxes(), pfsNodeJacobians(), and pfsNormalizeParVals().
void pfsRActivateSurf | ( | void * | surf | ) |
---------------------------------------------------------------
void pfsRActivateSurf( void *surf )
surf - pointer to the surface data to activate (in)
This function sets the given surface mesh (given by its pointer) as the current active one. All node and element data are inserted in the current active surface mesh. All iteration traversal of surface data is performed in the current active surface mesh.
int pfsRAddElem | ( | int | v0, | |
int | v1, | |||
int | v2 | |||
) |
---------------------------------------------------------------
void pfsRAddElem( int vt0, int vt1, int vt2 )
vt0 - index of first element node (in) vt1 - index of second element node (in) vt2 - index of third element node (in)
This function inserts of a new element (face) in the database of the current active surface. The elements are stored in a R-tree indexed by the 3D bounding boxe of each element. If there is no active surface it returns a false (0) status, otherwise it returns a true (1) status.
Definition at line 3957 of file pfs.c.
References PfsElem::inc, PfsElem::maxparbox, PfsElem::minparbox, PfsSurf::numelems, pfsElem3dBoundBox(), pfsElemCenter(), pfsElemLocalGradients(), pfsElemNormal(), PFSGeoSurfPar::u, and PFSGeoSurfPar::v.
int pfsRAddNode | ( | double | x, | |
double | y, | |||
double | z | |||
) |
---------------------------------------------------------------
int pfsRAddNode( double x, double y, double z )
x, y, z - node coordinates (in)
This function inserts a new node in the database of the current active surface. If the current number of inserted nodes is equal to the current maximum number of nodes, the function doubles the maximum number of nodes and reallocates the node vector list. The function returns an index of the created node. This index ranges from 0 to the number of nodes - 1.
Definition at line 3922 of file pfs.c.
References PfsNode::adj_head, PfsNode::AtA, PfsNode::coord, PfsNode::degree, PfsSurf::maxnodes, NODE_INTERIOR, PfsSurf::nodelist, PfsSurf::numnodes, PfsNode::par, PFS_NO_SURFACE_DEFINED, PfsNode::type, PFSGeoSurfPar::u, PFSGeoSurfPar::v, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.
int pfsRCompleteSurf | ( | void | ) |
---------------------------------------------------------------
This functions finishes up the creation of the data structure of the current active surface mesh. It does the following:
Definition at line 3985 of file pfs.c.
References PFS_NO_SURFACE_DEFINED, PFS_SUCCESS, pfsBuildLoopList(), pfsBuildNodeAdj(), pfsBuildSolOrderVec(), pfsClassifyNodes(), pfsCompute3dBoundBox(), pfsComputeParBoundBox(), pfsConfMapCoefficients(), pfsFindRefElem(), pfsInitParams(), pfsNodeNormals(), pfsOrderAllBdryNodeAdj(), and pfsRFreeSurf().
int pfsREval | ( | double | u, | |
double | v, | |||
double * | x, | |||
double * | y, | |||
double * | z | |||
) |
---------------------------------------------------------------
int pfsREval( double u, double v, double *x, double *y, double *z )
u, v - parametric values of point (in) x, y, z - components of cartesian points (out)
This function returns the components of the cartesian points indicated by its parametric values. If there is no active surface it returns a false (0) status, otherwise it returns a true (1) status.
Definition at line 4685 of file pfs.c.
References pfs3dPntCurElem(), PFS_ITERATION_END, pfsIsParPtInside(), pfsIsParPtOnBound(), pfsRItrFirstParElem(), pfsRItrNextParElem(), PFSGeoSurfPar::u, and PFSGeoSurfPar::v.
void pfsRFreeSurf | ( | void * | surf | ) |
---------------------------------------------------------------
void pfsRFreeSurf( void *surf )
surf - pointer to the surface mesh data to delete (in)
This function releases the memory used by the given surface.
Definition at line 3901 of file pfs.c.
References pfsDelElemList(), pfsDelNodeList(), and pfsDelSolOrderVec().
int pfsRGetElem | ( | double | x, | |
double | y, | |||
double | z, | |||
void ** | elem | |||
) |
---------------------------------------------------------------
void pfsRGetElem( double x, double y, double z, void **elem )
x, y, z - global point coordinates (in) elem - pointer to corresponding pfs element (out)
This function returns a true state if a pfs element is found for a given point, otherwise it returns a false status.
Definition at line 4300 of file pfs.c.
References PFS_ITERATION_END, pfsParPntCurElem(), pfsRItrFirstElem(), and pfsRItrNextElem().
int pfsRGetJacobian | ( | double | u, | |
double | v, | |||
double * | xdu, | |||
double * | ydu, | |||
double * | zdu, | |||
double * | xdv, | |||
double * | ydv, | |||
double * | zdv, | |||
double * | xdw, | |||
double * | ydw, | |||
double * | zdw | |||
) |
---------------------------------------------------------------
int pfsRGetJacobian( double u, double v, double *xdu, double *ydu, double *zdu, double *xdv, double *ydv, double *zdv, double *xdw, double *ydw, double *zdw )
u, v - parametric values of point (in) xdu, ydu, zdu - components of point jacobian matrix (out) xdv, ydv, zdv - components of point jacobian matrix (out) xdw, ydw, zdw - components of the normal vector of (out) element face where is the point
This function returns the components of the point jacobian matrix of the point indicated by its parametric values. If there is no active surface it returns a false (0) status, otherwise it returns a true (1) status.
Definition at line 4634 of file pfs.c.
References PFS_ITERATION_END, pfsIsParPtInside(), pfsIsParPtOnBound(), pfsParDerivCurElem(), pfsRItrFirstParElem(), pfsRItrNextParElem(), PFSGeoSurfPar::u, and PFSGeoSurfPar::v.
int pfsRGetLoopElem | ( | double | x, | |
double | y, | |||
double | z, | |||
void ** | elem | |||
) |
--------------------------------------------------------------- /* Esta função retorna o elemento de um loop externo mais próximo ao ponto dado pelas coordenadas xyz
Definition at line 4324 of file pfs.c.
References PfsNode::adj_head, PfsSurf::nodelist, PFS_ITERATION_END, pfsRItrElemCenter(), pfsRItrFirstLoopNode(), pfsRItrNextLoopNode(), and pfsRItrNumLoops().
void* pfsRInitSurf | ( | int | maxnodes, | |
int | maxelems | |||
) |
---------------------------------------------------------------
void *pfsRInitSurf( int maxnodes, int maxelems )
maxnodes - maximum number of nodes of new mesh (in) maxelems - maximum number of elements of new mesh (in)
This function allocates the global list vectors of nodal and element data for a new mesh. The return value is a pointer to the created surface data structure.
Definition at line 3841 of file pfs.c.
References PfsSurf::box_umin, PfsSurf::box_vmin, PfsSurf::box_xmin, PfsSurf::box_ymin, PfsSurf::box_zmin, PfsSurf::elm2d_tree, PfsSurf::elm3d_tree, PfsSurf::looplist, PfsSurf::maxnodes, PfsSurf::nodelist, PfsSurf::numelems, PfsSurf::numloops, PfsSurf::numnodes, PFSRtreeCreate(), PfsSurf::ref_elem, PfsSurf::ref_node, and PfsSurf::sol_order.
int pfsRItr3dBoundBox | ( | double * | xmin, | |
double * | xmax, | |||
double * | ymin, | |||
double * | ymax, | |||
double * | zmin, | |||
double * | zmax | |||
) |
---------------------------------------------------------------
int pfsRItr3dBoundBox( double *xmin, double *xmax, double *ymin, double *ymax, double *zmin, double *zmax )
xmin, xmax ymin, ymax zmin, zmax - returned bounding box (out)
This function returns the 3D bounding box of the current active surface mesh. If there is no active surface it returns a false (0) status, otherwise it returns a true (1) status. If a pointer parameter is null, the corresponding bounding box limit is not returned.
Definition at line 4104 of file pfs.c.
References PfsSurf::box_xmax, PfsSurf::box_xmin, PfsSurf::box_ymax, PfsSurf::box_ymin, PfsSurf::box_zmax, PfsSurf::box_zmin, and PfsSurf::numnodes.
void pfsRItrElem3dBox | ( | double * | xmin, | |
double * | ymin, | |||
double * | zmin, | |||
double * | xmax, | |||
double * | ymax, | |||
double * | zmax | |||
) |
---------------------------------------------------------------
void pfsRItrElem3dBox( double *xmin, double *ymin, double *zmin, double *xmax, double *ymax, double *zmax )
xmin, ymin, zmin - minimal components of element 3d bounding box (out) xmax, ymax, zmax - maximum components of element 3d bounding box (out)
This function returns the components of the 3d bounding box of current element (face) being traversed.
Definition at line 4417 of file pfs.c.
References PfsElem::max3dbox, PfsElem::min3dbox, PfsSurf::numnodes, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.
void pfsRItrElemCenter | ( | double * | x, | |
double * | y, | |||
double * | z | |||
) |
---------------------------------------------------------------
void pfsRItrElemCenter( double *x, double *y, double *z )
x, y, z - coordinates of element center (out)
This function returns the coordinates of the center of current element (face) being traversed.
Definition at line 4387 of file pfs.c.
References PfsElem::center, PfsSurf::numnodes, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.
int pfsRItrElemNode | ( | int * | id | ) |
---------------------------------------------------------------
int pfsRItrElemNode( int *id )
id - index of current node of element (out)
This function iterates on the nodes of the current element (face) being traversed. It returns the index of the current node of the current element. If there is no element in the database, if there is no active surface, if there is no other element to traverse, or if there is no more nodes in the element, the function returns an end of iteration status. Otherwise, it returns a success status.
Definition at line 4367 of file pfs.c.
References cur_elemnode, PfsElem::inc, PfsSurf::numnodes, PFS_ITERATION_END, and PFS_SUCCESS.
void pfsRItrElemNormal | ( | double * | nx, | |
double * | ny, | |||
double * | nz | |||
) |
---------------------------------------------------------------
void pfsRItrElemNormal( double *nx, double *ny, double *nz )
nx, ny, nz - components of element normal vector (out)
This function returns the components of the normal vector of current element (face) being traversed.
Definition at line 4402 of file pfs.c.
References PfsElem::normal, PfsSurf::numnodes, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.
void pfsRItrElemParBox | ( | double * | umin, | |
double * | vmin, | |||
double * | umax, | |||
double * | vmax | |||
) |
---------------------------------------------------------------
void pfsRItrElemParBox( double *umin, double *vmin, double *umax, double *vmax )
umin, vmin - minimal components of element parametric bounding box (out) umax, vmax - maximum components of element parametric bounding box (out)
This function returns the components of the parametric bounding box of current element (face) being traversed.
Definition at line 4436 of file pfs.c.
References PfsElem::maxparbox, PfsElem::minparbox, PfsSurf::numnodes, PFSGeoSurfPar::u, and PFSGeoSurfPar::v.
int pfsRItrFirst3dElem | ( | double | xmin, | |
double | xmax, | |||
double | ymin, | |||
double | ymax, | |||
double | zmin, | |||
double | zmax | |||
) |
---------------------------------------------------------------
int pfsRItrFirst3dElem( double xmin, double xmax, double ymin, double ymax, double zmin, double zmax ) xmin, xmax ymin, ymax zmin, zmax - bounding box for search (in)
This function starts an iteration for traversal of elements (faces) within a given bounding box. It sets up the first element in the database within the bounding box as the current one for traversal. If there is no element in the database within the bounding box, or if there is no active surface, the function returns an end of iteration status. Otherwise, it returns a success status.
Definition at line 4187 of file pfs.c.
References cur_elemnode, PfsSurf::elm3d_tree, PfsSurf::numelems, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, PFSRtreeInitSearchBox(), and PFSRtreeSearchBox().
int pfsRItrFirstElem | ( | void | ) |
---------------------------------------------------------------
This function starts an iteration for traversal of elements (faces). It sets up the first element in the database as the current one for traversal. If there is no element in the database, or if there is no active surface, the function returns an end of iteration status. Otherwise, it returns a success status.
Definition at line 4139 of file pfs.c.
References cur_elemnode, PfsSurf::elm3d_tree, PfsSurf::numelems, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, PFSRtreeInitTraverse(), and PFSRtreeTraverse().
int pfsRItrFirstLoopNode | ( | int | loop_id, | |
int * | id | |||
) |
---------------------------------------------------------------
int pfsItrFirstLoopNode( int loop_id, int *id )
loop_id - index of target loop (in) id - index of first loop node (out)
This function starts an iteration for traversal of loop nodes. It returns the id of the first of a loop given by its id (loop_id). If there is no element in the database, or if there is no active surface, the function returns an end of iteration status. Otherwise, it returns a success status.
Definition at line 4524 of file pfs.c.
References PfsSurf::looplist, PfsSurf::numelems, PfsSurf::numloops, PfsSurf::numnodes, PFS_ITERATION_END, and PFS_SUCCESS.
int pfsRItrFirstParElem | ( | double | umin, | |
double | umax, | |||
double | vmin, | |||
double | vmax | |||
) |
---------------------------------------------------------------
int pfsRItrFirstParElem( double umin, double umax, double vmin, double vmax ) umin, umax vmin, vmax - parametric bounding box for search (in)
This function starts an iteration for traversal of elements (faces) within a given parametric bounding box. It sets up the first element in the database within the parametric bounding box as the current one for traversal. If there is no element in the database within the bounding box, or if there is no active surface, the function returns an end of iteration status. Otherwise, it returns a success status.
Definition at line 4239 of file pfs.c.
References cur_elemnode, PfsSurf::elm2d_tree, PfsSurf::numelems, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, PFSRtreeInitSearchBox(), and PFSRtreeSearchBox().
int pfsRItrNext3dElem | ( | double | xmin, | |
double | xmax, | |||
double | ymin, | |||
double | ymax, | |||
double | zmin, | |||
double | zmax | |||
) |
---------------------------------------------------------------
int pfsRItrNext3dElem( double xmin, double xmax, double ymin, double ymax, double zmin, double zmax ) xmin, xmax ymin, ymax zmin, zmax - bounding box for search (in)
This function continues an iteration for traversal of elements (faces) within a given bounding box. It sets up the next element in the database within the bounding box as the current one for traversal. If there is no other element in the database within the bounding box, the function returns an end of iteration status. Otherwise, it returns a success status.
Definition at line 4214 of file pfs.c.
References cur_elemnode, PfsSurf::elm3d_tree, PfsSurf::numelems, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, and PFSRtreeSearchBox().
int pfsRItrNextElem | ( | void | ) |
---------------------------------------------------------------
This function continues an iteration for traversal of elements (faces). It sets up the next element in the database as the current one for traversal. If there is no element in the database, if there is no active surface, or if there is no other element to traverse, the function returns an end of iteration status. Otherwise, it returns a success status.
Definition at line 4164 of file pfs.c.
References cur_elemnode, PfsSurf::elm3d_tree, PfsSurf::numelems, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, and PFSRtreeTraverse().
int pfsRItrNextLoopNode | ( | int | loop_id, | |
int | ref_id, | |||
int * | id | |||
) |
---------------------------------------------------------------
int pfsItrNextLoopNode( int loop_id, int ref_id, int *id )
loop_id - index of target loop (in) ref_id - index of reference loop node (in) id - index of next loop node (out)
This function returns the id of the next boundary node after a given reference boundary node along a loop. If the loop of the given node is the surface outside loop, the returned node is the next one when traversing the surface boundary loop in counter-clockwise order when looking the surface from the side pointed to by the surface normals. If the loop is not the outside one, the traversal is done in clockwise order. If there is no element in the database, if there is no active surface, or if the given reference node is not a boundary node, the function returns an end of iteration status. Otherwise, it returns a success status.
Definition at line 4537 of file pfs.c.
References PfsNode::adj_head, PfsSurf::looplist, NODE_BOUNDARY, PfsSurf::nodelist, PfsSurf::numelems, PfsSurf::numloops, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, and PfsNode::type.
int pfsRItrNextParElem | ( | double | umin, | |
double | umax, | |||
double | vmin, | |||
double | vmax | |||
) |
---------------------------------------------------------------
int pfsRItrNextParElem( double umin, double umax, double vmin, double vmax ) umin, umax vmin, vmax - parametric bounding box for search (in)
This function continues an iteration for traversal of elements (faces) within a given bounding box. It sets up the next element in the database within the parametric bounding box as the current one for traversal. If there is no other element in the database within the bounding box, the function returns an end of iteration status. Otherwise, it returns a success status.
Definition at line 4265 of file pfs.c.
References cur_elemnode, PfsSurf::elm2d_tree, PfsSurf::numelems, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, and PFSRtreeSearchBox().
void pfsRItrNodeCoords | ( | int | id, | |
double * | x, | |||
double * | y, | |||
double * | z | |||
) |
---------------------------------------------------------------
void pfsRItrNodeCoords( int id, double *x, double *y, double *z )
id - index of target node (in) x, y, z - coordinates of node (out)
This function returns the coordinates of the node indicated by its index.
Definition at line 4463 of file pfs.c.
References PfsNode::coord, PfsSurf::nodelist, PfsSurf::numnodes, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.
void pfsRItrNodeJacobian | ( | int | id, | |
double * | xdu, | |||
double * | ydu, | |||
double * | zdu, | |||
double * | xdv, | |||
double * | ydv, | |||
double * | zdv | |||
) |
---------------------------------------------------------------
void pfsRItrNodeJacobian( int id, double *xdu, double *ydu, double *zdu, double *xdv, double *ydv, double *zdv )
id - index of target node (in) xdu, ydu, zdu - components of node jacobian matrix (out) xdv, ydv, zdv - components of node jacobian matrix (out)
This function returns the components of the nodal jacobian matrix of the node indicated by its index.
Definition at line 4487 of file pfs.c.
References PfsNode::ddu, PfsNode::ddv, PfsSurf::nodelist, PfsSurf::numnodes, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.
void pfsRItrNodeNormal | ( | int | id, | |
double * | nx, | |||
double * | ny, | |||
double * | nz | |||
) |
---------------------------------------------------------------
void pfsRItrNodeNormal( int id, double *nx, double *ny, double *nz )
id - index of target node (in) nx, ny, nz - components of node normal vector (out)
This function returns the components of the normal vector of the node indicated by its index.
Definition at line 4475 of file pfs.c.
References PfsSurf::nodelist, PfsNode::normal, PfsSurf::numnodes, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.
void pfsRItrNodeParVals | ( | int | id, | |
double * | u, | |||
double * | v | |||
) |
---------------------------------------------------------------
void pfsRItrNodeParVals( int id, double *u, double *v )
id - index of target node (in) u, v - parametric values of node (out)
This function returns the surface parametric values of the node indicated by its index.
Definition at line 4503 of file pfs.c.
References PfsSurf::nodelist, PfsSurf::numnodes, PfsNode::par, PFSGeoSurfPar::u, and PFSGeoSurfPar::v.
int pfsRItrNumLoops | ( | void | ) |
---------------------------------------------------------------
int pfsItrNumLoops( void )
This function returns the total number of loops (connected boundary portion) of current active surface mesh.
Definition at line 4514 of file pfs.c.
References PfsSurf::numloops.
int pfsRItrNumNodes | ( | void | ) |
---------------------------------------------------------------
This function returns the total number of nodes of current active surface mesh.
Definition at line 4453 of file pfs.c.
References PfsSurf::numnodes.
int pfsRItrParBoundBox | ( | double * | umin, | |
double * | umax, | |||
double * | vmin, | |||
double * | vmax | |||
) |
---------------------------------------------------------------
int pfsRItrParBoundBox( double *umin, double *umax, double *vmin, double *vmax )
umin, umax vmin, vmax - returned parametric bounding box (out)
This function returns the parametric bounding box of the current active surface mesh. If there is no active surface it returns a false (0) status, otherwise it returns a true (1) status. If a pointer parameter is null, the corresponding bounding box limit is not returned.
Definition at line 4123 of file pfs.c.
References PfsSurf::box_umax, PfsSurf::box_umin, PfsSurf::box_vmax, PfsSurf::box_vmin, and PfsSurf::numnodes.
int pfsRProjectOn | ( | double | x, | |
double | y, | |||
double | z, | |||
double * | u, | |||
double * | v | |||
) |
---------------------------------------------------------------
int pfsRProjectOn( double x, double y, double z, double *u, double *v )
x, y, z - coordinates of point (in) u, v - parametric values of point (out)
This function returns the surface parametric values of the point indicated by its coordinates. If there is no active surface it returns a false (0) status, otherwise it returns a true (1) status.
Definition at line 4559 of file pfs.c.
References PFS_ITERATION_END, pfsDistPntCurElem(), pfsParPntCurElem(), pfsRItrFirst3dElem(), pfsRItrNext3dElem(), TOLER, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.
void pfsRSetCurrElem | ( | void * | elem | ) |
---------------------------------------------------------------
void pfsRSetCurrElem( void *elem )
elem - pointer to target element (in)
This function sets up the given target element as the current element for consulting data.
Definition at line 4289 of file pfs.c.
References cur_elemnode.
int pfsRShot | ( | void * | init_elem, | |
double | x0, | |||
double | y0, | |||
double | z0, | |||
double | u_shot, | |||
double | v_shot, | |||
double | len, | |||
void ** | end_elem, | |||
double * | x1, | |||
double * | y1, | |||
double * | z1 | |||
) |
Esta função calcula a posição final de um tiro no espaço cartesiano navegando através do espaço paramétrico.
init_elem | (in) elemento a partir do qual foi dado o tiro | |
x0,y0,z0 | (in) posição inicial do tiro no espaço cartesiano | |
u_shot,v_shot | (in) direção do tiro no espaço paramétrico | |
len | (in) comprimento do caminho que deve ser percorrido no espaço cartesiano | |
end_elem | (out) elemento onde parou o tiro | |
x1,y1,z1 | (out) posição final do tiro no espaço cartesiano |
Definition at line 4751 of file pfs.c.
References FACE, FREE_FACE, PfsElem::inc, LOOP, NODE_BOUNDARY, PfsSurf::nodelist, pfs3dPntCurElem(), pfs_node, pfsChkProxElemEdge(), pfsParPntCurElemAttract(), pfsRSetCurrElem(), pfsShotSolve(), TOLER, PfsNode::type, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.
void pfsRSolveSurfPar | ( | int | maxnumiter | ) |
---------------------------------------------------------------
void pfsRSolveSurfPar( int maxnumiter )
maxnumiter - maximum number of iterations (in)
This function computes by a Gauss-Seidel iterative scheme the surface parametric values of all nodes of the mesh in current active surface. It is assumed that the parametric values of all nodes have been initialized. If the given parameter for maximum number of iterations is null, the solution iterates until convergence is achieved (within a specified tolerance).
Definition at line 4053 of file pfs.c.
References pfsComputeParBoundBox(), and pfsSolveSurfPar1Pass().
int pfs_iter |
int pfs_node |
Definition at line 163 of file pfs.h.
Referenced by DisplacementVelocity(), pfsEdgeShot(), pfsFaceShot(), pfsNodeShot(), pfsRShot(), and pfsUpdateShotLen().