pfMeshVertex man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



pfMeshVertex(3pf)	      OpenGL Performer 3.2.2 libpf C++ Reference Pages

NAME
     pfMeshVertex - Stores vertex as a part of a pfMesh

FUNCTION SPECIFICATION
     #include <Performer/pf/pfMesh.h>

     void		      pfMeshVertex::setCoord(pfVec3 *v);

     pfVec3 *		      pfMeshVertex::getCoord(void);

     void		      pfMeshVertex::setCoordPtr(pfVec3 *v);

     pfVec3 *		      pfMeshVertex::getCoordPtr(void);

     void		      pfMeshVertex::setNextVertex(int v);

     int		      pfMeshVertex::getNextVertex(void);

     void		      pfMeshVertex::setNumNeighbors(int n);

     int		      pfMeshVertex::getNumNeighbors(void);

     void		      pfMeshVertex::setNeighbor(int i,
				pfMeshVertexNeighbor *n);

     pfMeshVertexNeighbor *   pfMeshVertex::getNeighbor(int i);

     pfMeshVertexNeighbor *   pfMeshVertex::replaceNeighbor(int v1, int face1,
				int face2, int v,
				_pfMeshVertexNeighborListT *nbrs);

     pfMeshVertexNeighbor *   pfMeshVertex::getPreviousNeighbor(int v1);

     int		      pfMeshVertex::getPreviousNeighborIndex(int v1);

     pfMeshVertexNeighbor *   pfMeshVertex::getNextNeighbor(int v1);

     int		      pfMeshVertex::getNextNeighborIndex(int v1);

     void		      pfMeshVertex::setFlags(int which, int value);

     int		      pfMeshVertex::getFlags(int which);

DESCRIPTION
     A pfMeshVertex is a high level OpenGL Performer class.  A pfMeshVertex is
     used in a pfMesh to store information about vertices.  A pfMeshVertex
     stores vertex coordinates, the pointer to the original vertex coordinates
     (to be able to detect local changes in the mesh), an array of vertex
     neighbors, a set of binary flags and an index of another vertex at the
     same location (used for non-manifolds, see below).

     The vertex coordinates and the pointer to the original coordinates are

									Page 1

pfMeshVertex(3pf)	      OpenGL Performer 3.2.2 libpf C++ Reference Pages

     set using pfMeshVertex::setCoord and pfMeshVertex::setCoordPtr.  The
     value set by pfMeshVertex::setCoord should correspond to the value at
     location set by pfMeshVertex::setCoordPtr. If the supplied pointer is
     NULL (for example, in case that a pfGeoSet was under a pfSCS node) it is
     not possible to automatically detect changes in position of vertices and
     the user have to modify all the vertices manually by calling
     pfMeshVertex::setCoord.  In case you do not plan to animate the mesh you
     can set the pointer to NULL.

     Each vertex stores an array of its neighbors.  You can query the
     neighbors using functions pfMeshVertex::getNumNeighbors and
     pfMeshVertex::getNeighbor.	 The structure pfMeshVertexNeighbor is defined
     in pf.h as follows:

	  typedef struct
	  {
	      int vertex;
	      int face;
	      short int edgeType;
	      short int next, prev;
	  } pfMeshVertexNeighbor;

     This structure consists of the vertex index (in the array of vertices in
     pfMesh), face index (in the array of faces in pfMesh), edge type and
     index of the next and previous neighbor in the array of neighbors.	 The
     edge can be of the following type:

	  PFM_EDGE_NORMAL    smooth edge with two adjacent faces

	  PFM_EDGE_CREASE    sharp edge with two adjacent faces

	  +PFM_EDGE_BOUNDARY edge with one adjacent face to the left of the
			     edge

	  -PFM_EDGE_BOUNDARY
	   edge with one adjacent face to the right of the edge
     The face is the face to the left of the edge (unless the edge is marked
     as -PFM_EDGE_BOUNDARY). The next neighbor is part of this face and the
     previous neighbor is part of the face to the left. If the edge is of type
     -PFM_EDGE_BOUNDARY the next neighbor points to the corresponding edge of
     type +PFM_EDGE_BOUNDARY and the previous neighbors of the edge of type
     +PFM_EDGE_BOUNDARY points to the the corresponding edge of type
     +PFM_EDGE_BOUNDARY.  Note that in case of manifolds each vertex has are
     exactly zero or two boundary edges.

     In case of arbitrary surfaces there may be more than one loop of
     neighbors (if you follow the next links). That is why the class pfMesh
     provides a function pfMesh::splitVertices that splits each vertex at
     which the surface behaves as non-manifold.	 The vertex is split into
     several vertices with the same position, each having a single loop of
     ordered neighbors.

									Page 2

pfMeshVertex(3pf)	      OpenGL Performer 3.2.2 libpf C++ Reference Pages

     You can access the next and previous neighbor for a given neighbor with
     vertex indexed v1 by calling pfMeshVertex::getPreviousNeighbor and
     pfMeshVertex::getNextNeighbor.  You can also determine the index of such
     neighbor in the array of neighbors by calling
     pfMeshVertex::getPreviousNeighborIndex and
     pfMeshVertex::getNextNeighborIndex.

     The following flags can be set for each pfMeshVertex:

	  PFMV_FLAG_VERTEX_CHANGED set by function
			     pfMesh::updateMesh when the coordinate stored at
			     the vertex does not match the value at the
			     coordinate pointer

	  PFMV_FLAG_VERTEX_NEIGHBOR_CHANGED
			     set by function pfMesh::updateMesh when position
			     of any neighbor changes

	  PFMV_FLAG_VERTEX_FACE_CHANGED
			     set by function pfMesh::updateMesh when position
			     of any vertex on any of the faces associated with
			     this vertex changes

	  PFMV_FLAG_VERTEX_SPLIT
			     set by function pfMesh::splitVertices when
			     surface around the vertex is not manifold and the
			     vertex is split into several vertices (see above)

SEE ALSO
     pfMesh, pfMeshFace, pfObject, pfNode

									Page 3

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net