vtlib library
|
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 () |
float | AddSurfaceLineToMesh (vtHeightField3d *pHF, const DLine2 &line, float fSpacing, float fOffset, bool bInterp=true, bool bCurve=false, bool bTrue=false) |
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.
vtGeomFactory::vtGeomFactory | ( | vtGeode * | pGeode, |
vtMesh::PrimType | ePrimType, | ||
int | iVertType, | ||
int | iMaxVertsPerMesh, | ||
int | iMatIndex, | ||
int | iExpectedVerts = -1 |
||
) |
Constructor.
pGeode | The geometry node which will receive the mesh object(s) that this factory will produce. |
ePrimType | The type of mesh to produce. |
iVertType | The vertex attributes for the meshes to produce. |
iMaxVertsPerMesh | The 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. |
iMatIndex | The material index of the mesh when it is added to the geometry node. |
iExpectedVerts | If 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.
pMesh | The mesh which will receive all the vertices that this factory produces. |
float vtGeomFactory::AddSurfaceLineToMesh | ( | vtHeightField3d * | pHF, |
const DLine2 & | line, | ||
float | fSpacing, | ||
float | fOffset, | ||
bool | bInterp = true , |
||
bool | bCurve = false , |
||
bool | bTrue = false |
||
) |
Create geometry for a 2D line by draping the points on a heightfield.
pHF | The heightfield to drape on. |
line | The 2D line to drape, in Earth coordinates. |
fSpacing | The approximate spacing of the surface tessellation, used to decide how finely to tessellate the line. |
fOffset | An offset to elevate each point in the resulting geometry, useful for keeping it visibly above the ground. |
bInterp | True to interpolate between the vertices of the input line. This is generally desirable when the ground is much more finely spaced than the input line. |
bCurve | True to interpret the vertices of the input line as control points of a curve. The created geometry will consist of a draped line which passes through the control points. |
bTrue | True to use the true elevation of the terrain, ignoring whatever scale factor is being used to exaggerate elevation for display. |
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.