Differential D8762 Diff 28333 extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp
Changeset View
Changeset View
Standalone View
Standalone View
extern/bullet2/src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp
| Show All 11 Lines | |||||
| 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. | ||||
| 3. This notice may not be removed or altered from any source distribution. | 3. This notice may not be removed or altered from any source distribution. | ||||
| */ | */ | ||||
| ///This file was created by Alex Silverman | ///This file was created by Alex Silverman | ||||
| #include "btTriangleIndexVertexMaterialArray.h" | #include "btTriangleIndexVertexMaterialArray.h" | ||||
| btTriangleIndexVertexMaterialArray::btTriangleIndexVertexMaterialArray(int numTriangles,int* triangleIndexBase,int triangleIndexStride, | btTriangleIndexVertexMaterialArray::btTriangleIndexVertexMaterialArray(int numTriangles, int* triangleIndexBase, int triangleIndexStride, | ||||
| int numVertices,btScalar* vertexBase,int vertexStride, | int numVertices, btScalar* vertexBase, int vertexStride, | ||||
| int numMaterials, unsigned char* materialBase, int materialStride, | int numMaterials, unsigned char* materialBase, int materialStride, | ||||
| int* triangleMaterialsBase, int materialIndexStride) : | int* triangleMaterialsBase, int materialIndexStride) : btTriangleIndexVertexArray(numTriangles, triangleIndexBase, triangleIndexStride, numVertices, vertexBase, vertexStride) | ||||
| btTriangleIndexVertexArray(numTriangles, triangleIndexBase, triangleIndexStride, numVertices, vertexBase, vertexStride) | |||||
| { | { | ||||
| btMaterialProperties mat; | btMaterialProperties mat; | ||||
| mat.m_numMaterials = numMaterials; | mat.m_numMaterials = numMaterials; | ||||
| mat.m_materialBase = materialBase; | mat.m_materialBase = materialBase; | ||||
| mat.m_materialStride = materialStride; | mat.m_materialStride = materialStride; | ||||
| #ifdef BT_USE_DOUBLE_PRECISION | #ifdef BT_USE_DOUBLE_PRECISION | ||||
| mat.m_materialType = PHY_DOUBLE; | mat.m_materialType = PHY_DOUBLE; | ||||
| #else | #else | ||||
| mat.m_materialType = PHY_FLOAT; | mat.m_materialType = PHY_FLOAT; | ||||
| #endif | #endif | ||||
| mat.m_numTriangles = numTriangles; | mat.m_numTriangles = numTriangles; | ||||
| mat.m_triangleMaterialsBase = (unsigned char *)triangleMaterialsBase; | mat.m_triangleMaterialsBase = (unsigned char*)triangleMaterialsBase; | ||||
| mat.m_triangleMaterialStride = materialIndexStride; | mat.m_triangleMaterialStride = materialIndexStride; | ||||
| mat.m_triangleType = PHY_INTEGER; | mat.m_triangleType = PHY_INTEGER; | ||||
| addMaterialProperties(mat); | addMaterialProperties(mat); | ||||
| } | } | ||||
| void btTriangleIndexVertexMaterialArray::getLockedMaterialBase(unsigned char **materialBase, int& numMaterials, PHY_ScalarType& materialType, int& materialStride, | void btTriangleIndexVertexMaterialArray::getLockedMaterialBase(unsigned char** materialBase, int& numMaterials, PHY_ScalarType& materialType, int& materialStride, | ||||
| unsigned char ** triangleMaterialBase, int& numTriangles, int& triangleMaterialStride, PHY_ScalarType& triangleType, int subpart) | unsigned char** triangleMaterialBase, int& numTriangles, int& triangleMaterialStride, PHY_ScalarType& triangleType, int subpart) | ||||
| { | { | ||||
| btAssert(subpart< getNumSubParts() ); | btAssert(subpart < getNumSubParts()); | ||||
| btMaterialProperties& mats = m_materials[subpart]; | btMaterialProperties& mats = m_materials[subpart]; | ||||
| numMaterials = mats.m_numMaterials; | numMaterials = mats.m_numMaterials; | ||||
| (*materialBase) = (unsigned char *) mats.m_materialBase; | (*materialBase) = (unsigned char*)mats.m_materialBase; | ||||
| #ifdef BT_USE_DOUBLE_PRECISION | #ifdef BT_USE_DOUBLE_PRECISION | ||||
| materialType = PHY_DOUBLE; | materialType = PHY_DOUBLE; | ||||
| #else | #else | ||||
| materialType = PHY_FLOAT; | materialType = PHY_FLOAT; | ||||
| #endif | #endif | ||||
| materialStride = mats.m_materialStride; | materialStride = mats.m_materialStride; | ||||
| numTriangles = mats.m_numTriangles; | numTriangles = mats.m_numTriangles; | ||||
| (*triangleMaterialBase) = (unsigned char *)mats.m_triangleMaterialsBase; | (*triangleMaterialBase) = (unsigned char*)mats.m_triangleMaterialsBase; | ||||
| triangleMaterialStride = mats.m_triangleMaterialStride; | triangleMaterialStride = mats.m_triangleMaterialStride; | ||||
| triangleType = mats.m_triangleType; | triangleType = mats.m_triangleType; | ||||
| } | } | ||||
| void btTriangleIndexVertexMaterialArray::getLockedReadOnlyMaterialBase(const unsigned char **materialBase, int& numMaterials, PHY_ScalarType& materialType, int& materialStride, | void btTriangleIndexVertexMaterialArray::getLockedReadOnlyMaterialBase(const unsigned char** materialBase, int& numMaterials, PHY_ScalarType& materialType, int& materialStride, | ||||
| const unsigned char ** triangleMaterialBase, int& numTriangles, int& triangleMaterialStride, PHY_ScalarType& triangleType, int subpart) | const unsigned char** triangleMaterialBase, int& numTriangles, int& triangleMaterialStride, PHY_ScalarType& triangleType, int subpart) | ||||
| { | { | ||||
| btMaterialProperties& mats = m_materials[subpart]; | btMaterialProperties& mats = m_materials[subpart]; | ||||
| numMaterials = mats.m_numMaterials; | numMaterials = mats.m_numMaterials; | ||||
| (*materialBase) = (const unsigned char *) mats.m_materialBase; | (*materialBase) = (const unsigned char*)mats.m_materialBase; | ||||
| #ifdef BT_USE_DOUBLE_PRECISION | #ifdef BT_USE_DOUBLE_PRECISION | ||||
| materialType = PHY_DOUBLE; | materialType = PHY_DOUBLE; | ||||
| #else | #else | ||||
| materialType = PHY_FLOAT; | materialType = PHY_FLOAT; | ||||
| #endif | #endif | ||||
| materialStride = mats.m_materialStride; | materialStride = mats.m_materialStride; | ||||
| numTriangles = mats.m_numTriangles; | numTriangles = mats.m_numTriangles; | ||||
| (*triangleMaterialBase) = (const unsigned char *)mats.m_triangleMaterialsBase; | (*triangleMaterialBase) = (const unsigned char*)mats.m_triangleMaterialsBase; | ||||
| triangleMaterialStride = mats.m_triangleMaterialStride; | triangleMaterialStride = mats.m_triangleMaterialStride; | ||||
| triangleType = mats.m_triangleType; | triangleType = mats.m_triangleType; | ||||
| } | } | ||||