CMesh::CMeshBuild structure (mesh.h)
sint32 VertexFlags
uint8 NumCoords[CVertexBuffer::MaxStage] // how many coordinates each uvw uses (2 or 3)
uint8 UVRouting[CVertexBuffer::MaxStage] // uv routing table, each uv channel can be routed to any vertex uv
std::vector<NLMISC::CVector> Vertices
std::vector<CMesh::CSkinWeight> SkinWeights // same size as Vertices, NULL if no skinning (Palette Skinning Vertices array?)
std::vector<std::string> BonesNames // each matrix id in SkinWeights must have a corresponding entry in bone name entry
std::vector<CMesh::CFace> Faces
std::vector<CMesh::CBlendShape> BlendShapes
std::vector<CMesh::CVertLink> VertLink // Link between VB and max vertex index, will be filled by build
NLMISC::CSmartPtr<IMeshVertexProgram> MeshVertexProgram // MeshVertexProgram to be copied to meshGeom
std::vector<CMesh::CInterface> Interfaces // Mesh Interface System for MRM building
std::vector<CMesh::CInterfaceLink> InterfaceLinks // Same size as Vertices, or Mesh Interface system disabled
NLMISC::CBitSet InterfaceVertexFlag // each bit indicates if vertex belongs to an interface
CMeshBuild() // build a CMesh
NLMISC::CVector (vector.h)
float x
float y
float z
CVector(x, y, z)
// all mathematic standard operations and more
NL3D_MESH_SKINNING_MAX_MATRIX = 4 (mesh.h)
CMesh::CSkinWeight (mesh.h) // if you don't use all matrix set 0 on weights you don't use
uint32 MatrixId[NL3D_MESH_SKINNING_MAX_MATRIX] // which matrix of skeleton shape this vertexuses
float Weights[NL3D_MESH_SKINNING_MAX_MATRIX] // sum of all entries should be 1
CMesh::CFace (mesh.h)
NLMISC::CCorner Corner[3]
sint32 MaterialId
sint32 SmoothGroup
CMesh::CCorner (mesh.h)
sint32 Vertex // id of the vertex
NLMISC::CVector Normal
NLMISC::CUVW Uvws[CVertexBuffer::MaxStage]
NLMISC::CRGBA Color
NLMISC::CRGBA Specular
NLMISC::CUVW (uv.h)
float u
float v
float w
CUVW(u, v, w)
// all mathematic standard operations and more
NLMISC::CRGBA (rgba.h)
uint8 R
uint8 G
uint8 B
uint8 A
CRGBA(R, G, B, A = 255)
NL3D::CBlendShape (mesh_morpher.h)
std::string Name
std::vector<NLMISC::CVector> deltaPos
std::vector<NLMISC::CVector> deltaNorm
std::vector<NLMISC::CVector> deltaTgSpace
std::vector<NLMISC::CUV> deltaUV
std::vector<NLMISC::CRGBAF> deltaCol
std::vector<uint32> VertRefs // Array of vertices references
NLMISC::CUV
NLMISC::RGBAF
CMesh::CVertLink (mesh.h)
uint32 nFace
uint32 nCorner
uint32 VertVB
CVertLink(nFace, nCorner, VertVB)
CMesh::CInterface (mesh.h)
std::vector<CInterfaceVertex> Vertices // polygon of interface between 2 meshs
CMesh::CInterfaceVertex (mesh.h)
CVector Pos
CVector Normal
CMesh::CInterfaceLink (mesh.h)
sint InterfaceId // id of the interface this vertex is welded to
uint InterfaceVertexId // id of the vertex this vertex is welded to