27 int numtotalphysicsverts = 0;
29 const unsigned char* vertexbase;
30 const unsigned char* indexbase;
34 int stride, numverts, numtriangles;
36 btVector3 triangle[3];
41 for (part = 0; part < graphicssubparts; part++)
44 numtotalphysicsverts += numtriangles * 3;
60 for (gfxindex = 0; gfxindex < numtriangles; gfxindex++)
62 unsigned int* tri_indices = (
unsigned int*)(indexbase + gfxindex * indexstride);
63 graphicsbase = (
float*)(vertexbase + tri_indices[0] * stride);
64 triangle[0].setValue(graphicsbase[0] * meshScaling.getX(), graphicsbase[1] * meshScaling.getY(), graphicsbase[2] * meshScaling.getZ());
65 graphicsbase = (
float*)(vertexbase + tri_indices[1] * stride);
66 triangle[1].setValue(graphicsbase[0] * meshScaling.getX(), graphicsbase[1] * meshScaling.getY(), graphicsbase[2] * meshScaling.getZ());
67 graphicsbase = (
float*)(vertexbase + tri_indices[2] * stride);
68 triangle[2].setValue(graphicsbase[0] * meshScaling.getX(), graphicsbase[1] * meshScaling.getY(), graphicsbase[2] * meshScaling.getZ());
69 callback->internalProcessTriangleIndex(triangle, part, gfxindex);
75 for (gfxindex = 0; gfxindex < numtriangles; gfxindex++)
77 unsigned short int* tri_indices = (
unsigned short int*)(indexbase + gfxindex * indexstride);
78 graphicsbase = (
float*)(vertexbase + tri_indices[0] * stride);
79 triangle[0].setValue(graphicsbase[0] * meshScaling.getX(), graphicsbase[1] * meshScaling.getY(), graphicsbase[2] * meshScaling.getZ());
80 graphicsbase = (
float*)(vertexbase + tri_indices[1] * stride);
81 triangle[1].setValue(graphicsbase[0] * meshScaling.getX(), graphicsbase[1] * meshScaling.getY(), graphicsbase[2] * meshScaling.getZ());
82 graphicsbase = (
float*)(vertexbase + tri_indices[2] * stride);
83 triangle[2].setValue(graphicsbase[0] * meshScaling.getX(), graphicsbase[1] * meshScaling.getY(), graphicsbase[2] * meshScaling.getZ());
84 callback->internalProcessTriangleIndex(triangle, part, gfxindex);
90 for (gfxindex = 0; gfxindex < numtriangles; gfxindex++)
92 unsigned char* tri_indices = (
unsigned char*)(indexbase + gfxindex * indexstride);
93 graphicsbase = (
float*)(vertexbase + tri_indices[0] * stride);
94 triangle[0].setValue(graphicsbase[0] * meshScaling.getX(), graphicsbase[1] * meshScaling.getY(), graphicsbase[2] * meshScaling.getZ());
95 graphicsbase = (
float*)(vertexbase + tri_indices[1] * stride);
96 triangle[1].setValue(graphicsbase[0] * meshScaling.getX(), graphicsbase[1] * meshScaling.getY(), graphicsbase[2] * meshScaling.getZ());
97 graphicsbase = (
float*)(vertexbase + tri_indices[2] * stride);
98 triangle[2].setValue(graphicsbase[0] * meshScaling.getX(), graphicsbase[1] * meshScaling.getY(), graphicsbase[2] * meshScaling.getZ());
99 callback->internalProcessTriangleIndex(triangle, part, gfxindex);
111 double* graphicsbase;
113 switch (gfxindextype)
117 for (gfxindex = 0; gfxindex < numtriangles; gfxindex++)
119 unsigned int* tri_indices = (
unsigned int*)(indexbase + gfxindex * indexstride);
120 graphicsbase = (
double*)(vertexbase + tri_indices[0] * stride);
121 triangle[0].setValue((
btScalar)graphicsbase[0] * meshScaling.getX(), (
btScalar)graphicsbase[1] * meshScaling.getY(), (
btScalar)graphicsbase[2] * meshScaling.getZ());
122 graphicsbase = (
double*)(vertexbase + tri_indices[1] * stride);
123 triangle[1].setValue((
btScalar)graphicsbase[0] * meshScaling.getX(), (
btScalar)graphicsbase[1] * meshScaling.getY(), (
btScalar)graphicsbase[2] * meshScaling.getZ());
124 graphicsbase = (
double*)(vertexbase + tri_indices[2] * stride);
125 triangle[2].setValue((
btScalar)graphicsbase[0] * meshScaling.getX(), (
btScalar)graphicsbase[1] * meshScaling.getY(), (
btScalar)graphicsbase[2] * meshScaling.getZ());
126 callback->internalProcessTriangleIndex(triangle, part, gfxindex);
132 for (gfxindex = 0; gfxindex < numtriangles; gfxindex++)
134 unsigned short int* tri_indices = (
unsigned short int*)(indexbase + gfxindex * indexstride);
135 graphicsbase = (
double*)(vertexbase + tri_indices[0] * stride);
136 triangle[0].setValue((
btScalar)graphicsbase[0] * meshScaling.getX(), (
btScalar)graphicsbase[1] * meshScaling.getY(), (
btScalar)graphicsbase[2] * meshScaling.getZ());
137 graphicsbase = (
double*)(vertexbase + tri_indices[1] * stride);
138 triangle[1].setValue((
btScalar)graphicsbase[0] * meshScaling.getX(), (
btScalar)graphicsbase[1] * meshScaling.getY(), (
btScalar)graphicsbase[2] * meshScaling.getZ());
139 graphicsbase = (
double*)(vertexbase + tri_indices[2] * stride);
140 triangle[2].setValue((
btScalar)graphicsbase[0] * meshScaling.getX(), (
btScalar)graphicsbase[1] * meshScaling.getY(), (
btScalar)graphicsbase[2] * meshScaling.getZ());
141 callback->internalProcessTriangleIndex(triangle, part, gfxindex);
147 for (gfxindex = 0; gfxindex < numtriangles; gfxindex++)
149 unsigned char* tri_indices = (
unsigned char*)(indexbase + gfxindex * indexstride);
150 graphicsbase = (
double*)(vertexbase + tri_indices[0] * stride);
151 triangle[0].setValue((
btScalar)graphicsbase[0] * meshScaling.getX(), (
btScalar)graphicsbase[1] * meshScaling.getY(), (
btScalar)graphicsbase[2] * meshScaling.getZ());
152 graphicsbase = (
double*)(vertexbase + tri_indices[1] * stride);
153 triangle[1].setValue((
btScalar)graphicsbase[0] * meshScaling.getX(), (
btScalar)graphicsbase[1] * meshScaling.getY(), (
btScalar)graphicsbase[2] * meshScaling.getZ());
154 graphicsbase = (
double*)(vertexbase + tri_indices[2] * stride);
155 triangle[2].setValue((
btScalar)graphicsbase[0] * meshScaling.getX(), (
btScalar)graphicsbase[1] * meshScaling.getY(), (
btScalar)graphicsbase[2] * meshScaling.getZ());
156 callback->internalProcessTriangleIndex(triangle, part, gfxindex);