ScummVM API documentation
dgMeshEffect Class Reference
Inheritance diagram for dgMeshEffect:
dgPolyhedra dgRefCounter dgTree< dgEdge, dgEdgeKey >

Classes

class  dgIndexArray
 
class  dgVertexAtribute
 

Public Member Functions

 dgMeshEffect (dgMemoryAllocator *const allocator, bool preAllocaBuffers)
 
 dgMeshEffect (dgCollision *const collision)
 
 dgMeshEffect (const dgMeshEffect &source)
 
 dgMeshEffect (dgPolyhedra &mesh, const dgMeshEffect &source)
 
 dgMeshEffect (dgMemoryAllocator *const allocator, const dgFloat64 *const vertexCloud, dgInt32 count, dgInt32 strideInByte, dgFloat64 distTol)
 
 dgMeshEffect (const dgMeshEffect &source, dgFloat32 maxConcavity, dgInt32 maxCount=32)
 
 dgMeshEffect (dgMemoryAllocator *const allocator, const dgMatrix &planeMatrix, dgFloat32 witdth, dgFloat32 breadth, dgInt32 material, const dgMatrix &textureMatrix0, const dgMatrix &textureMatrix1)
 
void ApplyTransform (const dgMatrix &matrix)
 
dgMatrix CalculateOOBB (dgBigVector &size) const
 
void CalculateAABB (dgBigVector &min, dgBigVector &max) const
 
void CalculateNormals (dgFloat64 angleInRadians)
 
void SphericalMapping (dgInt32 material)
 
void BoxMapping (dgInt32 front, dgInt32 side, dgInt32 top)
 
void UniformBoxMapping (dgInt32 material, const dgMatrix &textruMatrix)
 
void CylindricalMapping (dgInt32 cylinderMaterial, dgInt32 capMaterial)
 
dgEdgeInsertEdgeVertex (dgEdge *const edge, dgFloat64 param)
 
dgMeshEffectUnion (const dgMatrix &matrix, const dgMeshEffect *const clip) const
 
dgMeshEffectDifference (const dgMatrix &matrix, const dgMeshEffect *const clip) const
 
dgMeshEffectIntersection (const dgMatrix &matrix, const dgMeshEffect *const clip) const
 
void ClipMesh (const dgMatrix &matrix, const dgMeshEffect *const clip, dgMeshEffect **const top, dgMeshEffect **const bottom) const
 
bool CheckIntersection (const dgMeshEffectSolidTree *const solidTree, dgFloat64 scale) const
 
dgMeshEffectSolidTreeCreateSolidTree () const
 
dgMeshEffectGetFirstLayer () const
 
dgMeshEffectGetNextLayer (const dgMeshEffect *const layer) const
 
void Triangulate ()
 
void ConvertToPolygons ()
 
void RemoveUnusedVertices (dgInt32 *const vertexRemapTable)
 
void BeginPolygon ()
 
void AddPolygon (dgInt32 count, const dgFloat32 *const vertexList, dgInt32 stride, dgInt32 material)
 
void AddPolygon (dgInt32 count, const dgFloat64 *const vertexList, dgInt32 stride, dgInt32 material)
 
void EndPolygon (dgFloat64 tol)
 
void PackVertexArrays ()
 
void BuildFromVertexListIndexList (dgInt32 faceCount, const dgInt32 *const faceIndexCount, const dgInt32 *const faceMaterialIndex, const dgFloat32 *const vertex, dgInt32 vertexStrideInBytes, const dgInt32 *const vertexIndex, const dgFloat32 *const normal, dgInt32 normalStrideInBytes, const dgInt32 *const normalIndex, const dgFloat32 *const uv0, dgInt32 uv0StrideInBytes, const dgInt32 *const uv0Index, const dgFloat32 *const uv1, dgInt32 uv1StrideInBytes, const dgInt32 *const uv1Index)
 
dgInt32 GetVertexCount () const
 
dgInt32 GetVertexStrideInByte () const
 
dgFloat64 * GetVertexPool () const
 
dgInt32 GetPropertiesCount () const
 
dgInt32 GetPropertiesStrideInByte () const
 
dgFloat64 * GetAttributePool () const
 
dgFloat64 * GetNormalPool () const
 
dgFloat64 * GetUV0Pool () const
 
dgFloat64 * GetUV1Pool () const
 
dgEdgeConectVertex (dgEdge *const e0, dgEdge *const e1)
 
dgInt32 GetTotalFaceCount () const
 
dgInt32 GetTotalIndexCount () const
 
void GetFaces (dgInt32 *const faceCount, dgInt32 *const materials, void **const faceNodeList) const
 
void RepairTJoints (bool triangulate)
 
bool SeparateDuplicateLoops (dgEdge *const edge)
 
bool HasOpenEdges () const
 
dgFloat64 CalculateVolume () const
 
void GetVertexStreams (dgInt32 vetexStrideInByte, dgFloat32 *const vertex, dgInt32 normalStrideInByte, dgFloat32 *const normal, dgInt32 uvStrideInByte0, dgFloat32 *const uv0, dgInt32 uvStrideInByte1, dgFloat32 *const uv1) const
 
void GetIndirectVertexStreams (dgInt32 vetexStrideInByte, dgFloat64 *const vertex, dgInt32 *const vertexIndices, dgInt32 *const vertexCount, dgInt32 normalStrideInByte, dgFloat64 *const normal, dgInt32 *const normalIndices, dgInt32 *const normalCount, dgInt32 uvStrideInByte0, dgFloat64 *const uv0, dgInt32 *const uvIndices0, dgInt32 *const uvCount0, dgInt32 uvStrideInByte1, dgFloat64 *const uv1, dgInt32 *const uvIndices1, dgInt32 *const uvCount1)
 
dgIndexArrayMaterialGeometryBegin () const
 
void MaterialGeomteryEnd (dgIndexArray *const handle) const
 
dgInt32 GetFirstMaterial (dgIndexArray *const handle) const
 
dgInt32 GetNextMaterial (dgIndexArray *const handle, dgInt32 materialHandle) const
 
dgInt32 GetMaterialID (dgIndexArray *const handle, dgInt32 materialHandle) const
 
dgInt32 GetMaterialIndexCount (dgIndexArray *const handle, dgInt32 materialHandle) const
 
void GetMaterialGetIndexStream (dgIndexArray *const handle, dgInt32 materialHandle, dgInt32 *const index) const
 
void GetMaterialGetIndexStreamShort (dgIndexArray *const handle, dgInt32 materialHandle, dgInt16 *const index) const
 
dgCollisionCreateCollisionTree (dgInt32 shapeID) const
 
dgCollisionCreateConvexCollision (dgFloat64 tolerance, dgInt32 shapeID, const dgMatrix &matrix=dgGetIdentityMatrix()) const
 
dgMeshEffectCreateConvexApproximation (dgFloat32 maxConcavity, dgInt32 maxCount=32) const
 
dgMeshEffectCreateDelanayTretrahedralization (dgInt32 interionMaterial, dgMatrix &matrix) const
 
dgMeshEffectCreateVoronoiPartition (dgInt32 pointsCount, dgInt32 pointStrideInBytes, const dgFloat32 *const pointCloud, dgInt32 interionMaterial, dgMatrix &matrix) const
 
void PlaneClipMesh (const dgMatrix &planeMatrix, const dgMatrix &planeTextMatrix, dgInt32 planeMaterial, dgMeshEffect **const leftMeshSource, dgMeshEffect **const rightMeshSource) const
 
dgVertexAtributeGetAttribute (dgInt32 index) const
 
void TransformMesh (const dgMatrix &matrix)
 
void * GetFirstVertex () const
 
void * GetNextVertex (void *const vertex) const
 
dgInt32 GetVertexIndex (void *const vertex) const
 
void * GetFirstPoint () const
 
void * GetNextPoint (void *const point) const
 
dgInt32 GetPointIndex (const void *const point) const
 
dgInt32 GetVertexIndexFromPoint (void *const point) const
 
void * GetFirstEdge () const
 
void * GetNextEdge (void *const edge) const
 
void GetEdgeIndex (const void *const edge, dgInt32 &v0, dgInt32 &v1) const
 
void * GetFirstFace () const
 
void * GetNextFace (void *const face) const
 
dgInt32 IsFaceOpen (const void *const face) const
 
dgInt32 GetFaceMaterial (const void *const face) const
 
dgInt32 GetFaceIndexCount (const void *const face) const
 
void GetFaceIndex (const void *const face, int *const indices) const
 
void GetFaceAttributeIndex (const void *const face, int *const indices) const
 
bool Sanity () const
 
- Public Member Functions inherited from dgPolyhedra
 dgPolyhedra (dgMemoryAllocator *const allocator)
 
 dgPolyhedra (const dgPolyhedra &polyhedra)
 
void BeginFace ()
 
dgEdgeAddFace (dgInt32 v0, dgInt32 v1, dgInt32 v2)
 
dgEdgeAddFace (dgInt32 count, const dgInt32 *const index)
 
dgEdgeAddFace (dgInt32 count, const dgInt32 *const index, const dgInt64 *const userdata)
 
void EndFace ()
 
void DeleteFace (dgEdge *const edge)
 
dgInt32 GetFaceCount () const
 
dgInt32 GetEdgeCount () const
 
dgInt32 GetLastVertexIndex () const
 
dgInt32 IncLRU () const
 
void SetLRU (dgInt32 lru) const
 
dgEdgeFindEdge (dgInt32 v0, dgInt32 v1) const
 
dgTreeNode * FindEdgeNode (dgInt32 v0, dgInt32 v1) const
 
dgEdgeAddHalfEdge (dgInt32 v0, dgInt32 v1)
 
void DeleteEdge (dgEdge *const edge)
 
void DeleteEdge (dgInt32 v0, dgInt32 v1)
 
bool FlipEdge (dgEdge *const edge)
 
dgEdgeSpliteEdge (dgInt32 newIndex, dgEdge *const edge)
 
dgBigVector FaceNormal (dgEdge *const face, const dgFloat64 *const vertex, dgInt32 strideInBytes) const
 
void BeginConectedSurface () const
 
bool GetConectedSurface (dgPolyhedra &polyhedra) const
 
void EndConectedSurface () const
 
dgSphere CalculateSphere (const dgFloat64 *const vertex, dgInt32 strideInBytes, const dgMatrix *const basis=NULL) const
 
void ChangeEdgeIncidentVertex (dgEdge *const edge, dgInt32 newIndex)
 
void DeleteDegenerateFaces (const dgFloat64 *const pool, dgInt32 dstStrideInBytes, dgFloat64 minArea)
 
void Optimize (const dgFloat64 *const pool, dgInt32 strideInBytes, dgFloat64 tol)
 
void Triangulate (const dgFloat64 *const vertex, dgInt32 strideInBytes, dgPolyhedra *const leftOversOut)
 
void ConvexPartition (const dgFloat64 *const vertex, dgInt32 strideInBytes, dgPolyhedra *const leftOversOut)
 
- Public Member Functions inherited from dgTree< dgEdge, dgEdgeKey >
void operator delete (void *const ptr, dgMemoryAllocator *const allocator)
 
void operator delete (void *const ptr)
 
void operator delete[] (void *const ptr, dgMemoryAllocator *const allocator)
 
void operator delete[] (void *const ptr)
 
void * operator new (size_t size, dgMemoryAllocator *const allocator)
 
void * operator new (size_t size)
 
void * operator new[] (size_t size, dgMemoryAllocator *const allocator)
 
void * operator new[] (size_t size)
 
 dgTree (dgMemoryAllocator *const allocator)
 
dgMemoryAllocatorGetAllocator () const
 
void SetAllocator (dgMemoryAllocator *const allocator)
 
 operator dgInt32 () const
 
dgInt32 GetCount () const
 
dgTreeNode * GetRoot () const
 
dgTreeNode * Minimum () const
 
dgTreeNode * Maximum () const
 
dgTreeNode * Find (dgEdgeKey key) const
 
dgTreeNode * FindGreater (dgEdgeKey key) const
 
dgTreeNode * FindGreaterEqual (dgEdgeKey key) const
 
dgTreeNode * FindLessEqual (dgEdgeKey key) const
 
dgTreeNode * GetNodeFromInfo (dgEdge &info) const
 
dgTreeNode * Insert (const dgEdge &element, dgEdgeKey key, bool &elementWasInTree)
 
dgTreeNode * Insert (const dgEdge &element, dgEdgeKey key)
 
dgTreeNode * Insert (dgTreeNode *const node, dgEdgeKey key)
 
dgTreeNode * Replace (dgEdge &element, dgEdgeKey key)
 
dgTreeNode * ReplaceKey (dgEdgeKey oldKey, dgEdgeKey newKey)
 
dgTreeNode * ReplaceKey (dgTreeNode *const node, dgEdgeKey key)
 
void Remove (dgEdgeKey key)
 
void Remove (dgTreeNode *const node)
 
void RemoveAll ()
 
void Unlink (dgTreeNode *const node)
 
void SwapInfo (dgTree &tree)
 
bool SanityCheck () const
 
- Public Member Functions inherited from dgRefCounter
int GetRef () const
 
int Release ()
 
void AddRef ()
 

Static Public Member Functions

static void DestroySolidTree (dgMeshEffectSolidTree *const tree)
 
static bool CheckIntersection (const dgMeshEffect *const meshA, const dgMeshEffectSolidTree *const solidTreeA, const dgMeshEffect *const meshB, const dgMeshEffectSolidTree *const solidTreeB, dgFloat64 scale)
 

Protected Member Functions

void Init (bool preAllocaBuffers)
 
dgBigVector GetOrigin () const
 
dgInt32 CalculateMaxAttributes () const
 
dgFloat64 QuantizeCordinade (dgFloat64 val) const
 
dgInt32 EnumerateAttributeArray (dgVertexAtribute *const attib)
 
void ApplyAttributeArray (dgVertexAtribute *const attib, dgInt32 maxCount)
 
void AddVertex (const dgBigVector &vertex)
 
void AddAtribute (const dgVertexAtribute &attib)
 
void AddPoint (const dgFloat64 *vertexList, dgInt32 material)
 
void FixCylindricalMapping (dgVertexAtribute *const attib) const
 
void MergeFaces (const dgMeshEffect *const source)
 
void ReverseMergeFaces (dgMeshEffect *const source)
 
dgVertexAtribute InterpolateEdge (dgEdge *const edge, dgFloat64 param) const
 
dgVertexAtribute InterpolateVertex (const dgBigVector &point, dgEdge *const face) const
 
dgMeshEffectGetNextLayer (dgInt32 mark) const
 
void FilterCoplanarFaces (const dgMeshEffect *const otherCap, dgFloat32 sign)
 
void ClipMesh (const dgMeshEffect *const clipMesh, dgMeshEffect **const back, dgMeshEffect **const front, dgMeshEffect **const coplanar) const
 
void ClipMesh (const dgMeshEffectSolidTree *const clipper, dgMeshEffect **const back, dgMeshEffect **const front, dgMeshEffect **const coplanar) const
 
dgInt32 PlaneApplyCap (const dgMeshEffect *planeMesh, const dgBigPlane &normal)
 
void PlaneClipMesh (const dgMeshEffect *planeMesh, dgMeshEffect **leftMeshSource, dgMeshEffect **rightMeshSource) const
 
dgMeshEffectMakeDelanayIntersection (dgMeshEffectSolidTree *const tree, dgBigVector *const points, dgInt32 count, dgInt32 materialId, const dgMatrix &textureProjectionMatrix, dgFloat32 normalAngleInRadians) const
 
bool CheckSingleMesh () const
 

Protected Attributes

dgInt32 m_pointCount
 
dgInt32 m_maxPointCount
 
dgInt32 m_atribCount
 
dgInt32 m_maxAtribCount
 
dgBigVectorm_points
 
dgVertexAtributem_attib
 

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