27         int numtotalphysicsverts = 0;
 
   29         const unsigned char* vertexbase;
 
   30         const unsigned char* indexbase;
 
   34         int stride, numverts, numtriangles;
 
   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());
 
   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());
 
   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());
 
  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);
 
  122                                                         graphicsbase = (
double*)(vertexbase + tri_indices[1] * stride);
 
  124                                                         graphicsbase = (
double*)(vertexbase + tri_indices[2] * stride);
 
  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);
 
  137                                                         graphicsbase = (
double*)(vertexbase + tri_indices[1] * stride);
 
  139                                                         graphicsbase = (
double*)(vertexbase + tri_indices[2] * stride);
 
  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);
 
  152                                                         graphicsbase = (
double*)(vertexbase + tri_indices[1] * stride);
 
  154                                                         graphicsbase = (
double*)(vertexbase + tri_indices[2] * stride);
 
  180                 AabbCalculationCallback()
 
  186                 virtual void internalProcessTriangleIndex(
btVector3* triangle, 
int partId, 
int triangleIndex)
 
  191                         m_aabbMin.
setMin(triangle[0]);
 
  192                         m_aabbMax.
setMax(triangle[0]);
 
  193                         m_aabbMin.
setMin(triangle[1]);
 
  194                         m_aabbMax.
setMax(triangle[1]);
 
  195                         m_aabbMin.
setMin(triangle[2]);
 
  196                         m_aabbMax.
setMax(triangle[2]);
 
  201         AabbCalculationCallback aabbCallback;
 
  206         aabbMin = aabbCallback.m_aabbMin;
 
  207         aabbMax = aabbCallback.m_aabbMax;
 
  229                 const unsigned char* vertexbase;
 
  230                 const unsigned char* indexbase;
 
  234                 int stride, numverts, numtriangles;
 
  241                 for (part = 0; part < graphicssubparts; part++, memPtr++)
 
  253                         switch (gfxindextype)
 
  257                                         int numindices = numtriangles * 3;
 
  264                                                 for (gfxindex = 0; gfxindex < numtriangles; gfxindex++)
 
  266                                                         unsigned int* tri_indices = (
unsigned int*)(indexbase + gfxindex * indexstride);
 
  267                                                         tmpIndices[gfxindex * 3].
m_value = tri_indices[0];
 
  268                                                         tmpIndices[gfxindex * 3 + 1].
m_value = tri_indices[1];
 
  269                                                         tmpIndices[gfxindex * 3 + 2].
m_value = tri_indices[2];
 
  282                                                 for (gfxindex = 0; gfxindex < numtriangles; gfxindex++)
 
  284                                                         unsigned short int* tri_indices = (
unsigned short int*)(indexbase + gfxindex * indexstride);
 
  285                                                         tmpIndices[gfxindex].
m_values[0] = tri_indices[0];
 
  286                                                         tmpIndices[gfxindex].
m_values[1] = tri_indices[1];
 
  287                                                         tmpIndices[gfxindex].
m_values[2] = tri_indices[2];
 
  289                                                         tmpIndices[gfxindex].
m_pad[0] = 0;
 
  290                                                         tmpIndices[gfxindex].
m_pad[1] = 0;
 
  303                                                 for (gfxindex = 0; gfxindex < numtriangles; gfxindex++)
 
  305                                                         unsigned char* tri_indices = (
unsigned char*)(indexbase + gfxindex * indexstride);
 
  306                                                         tmpIndices[gfxindex].
m_values[0] = tri_indices[0];
 
  307                                                         tmpIndices[gfxindex].
m_values[1] = tri_indices[1];
 
  308                                                         tmpIndices[gfxindex].
m_values[2] = tri_indices[2];
 
  310                                                         tmpIndices[gfxindex].
m_pad = 0;
 
  334                                                 for (
int i = 0; i < numverts; i++)
 
  336                                                         graphicsbase = (
float*)(vertexbase + i * stride);
 
  337                                                         tmpVertices[i].
m_floats[0] = graphicsbase[0];
 
  338                                                         tmpVertices[i].
m_floats[1] = graphicsbase[1];
 
  339                                                         tmpVertices[i].
m_floats[2] = graphicsbase[2];
 
  353                                                 for (
int i = 0; i < numverts; i++)
 
  355                                                         double* graphicsbase = (
double*)(vertexbase + i * stride);  
 
  356                                                         tmpVertices[i].
m_floats[0] = graphicsbase[0];
 
  357                                                         tmpVertices[i].
m_floats[1] = graphicsbase[1];
 
  358                                                         tmpVertices[i].
m_floats[2] = graphicsbase[2];
 
  379         return "btStridingMeshInterfaceData";