Umasoft
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
vtGeomFactory Class Reference

#include <GeomUtil.h>

Public Member Functions

 vtGeomFactory (vtGeode *pGeode, vtMesh::PrimType ePrimType, int iVertType, int iMaxVertsPerMesh, int iMatIndex, int iExpectedVerts=-1)
 
 vtGeomFactory (vtMesh *pMesh)
 
void PrimStart ()
 
void AddVertex (const FPoint3 &p)
 
void PrimEnd ()
 
void SetLineWidth (float width)
 
void SetMatIndex (int iIdx)
 

Public Attributes

std::vector< vtMesh * > m_Meshes
 

Protected Member Functions

void NewMesh ()
 

Protected Attributes

vtGeodem_pGeode
 
vtMesh::PrimType m_ePrimType
 
int m_iVertType
 
int m_iMaxVertsPerMesh
 
int m_iExpectedVerts
 
int m_iMatIndex
 
vtMeshm_pMesh
 
int m_iPrimStart
 
int m_iPrimVerts
 
float m_fLineWidth
 
bool m_bSimple
 

Detailed Description

The vtGeomFactory class makes it easy to create geometry with a lot of vertices. You simply provide vertices, and it will create as many geometries as necessary to contain them all.

Example:
This example produces a line strip with 10000 vertices. The factory is told to limit the number of vertices in a single primitive to 3000, so it will automatically produce four geometries with 3000, 3000, 3000, and 1000 vertices each. The geometries are automatically added to the indicated geode.
{
vtGeode *pLineGeom = new vtGeode;
vtGeomFactory mf(pLineGeom, osg::PrimitiveSet::LINE_STRIP, 0, 3000, 1);
mf.PrimStart();
for (int i = 0; i < 10000; i++)
mf.AddVertex(FPoint3(i,i,i));
mf.PrimEnd();
}

Constructor & Destructor Documentation

vtGeomFactory::vtGeomFactory ( vtGeode pGeode,
vtMesh::PrimType  ePrimType,
int  iVertType,
int  iMaxVertsPerMesh,
int  iMatIndex,
int  iExpectedVerts = -1 
)

Constructor.

Parameters
pGeodeThe geometry node which will receive the mesh object(s) that this factory will produce.
ePrimTypeThe type of mesh to produce.
iVertTypeThe vertex attributes for the meshes to produce.
iMaxVertsPerMeshThe largest number of vertices to allow in a single mesh. When this number is exceeded, the current mesh will be finished and another mesh begun.
iMatIndexThe material index of the mesh when it is added to the geometry node.
iExpectedVertsIf you know how many vertices will be mesh ahead of time, you can save a little time and memory by passing the number.
vtGeomFactory::vtGeomFactory ( vtMesh pMesh)

Alternate, simpler constructor.

Parameters
pMeshThe mesh which will receive all the vertices that this factory produces.

Member Function Documentation

void vtGeomFactory::AddVertex ( const FPoint3 p)

Tell the factory to add a vertex to the current primitive.

void vtGeomFactory::PrimEnd ( )

Tell the factory to end a primitive.

void vtGeomFactory::PrimStart ( )

Tell the factory to start a primitive.


The documentation for this class was generated from the following files: