29 int numtotalphysicsverts = 0;
31 const unsigned char * vertexbase;
32 const unsigned char * indexbase;
36 int stride,numverts,numtriangles;
43 for (part=0;part<graphicssubparts ;part++)
46 numtotalphysicsverts+=numtriangles*3;
63 for (gfxindex=0;gfxindex<numtriangles;gfxindex++)
65 unsigned int* tri_indices= (
unsigned int*)(indexbase+gfxindex*indexstride);
66 graphicsbase = (
float*)(vertexbase+tri_indices[0]*stride);
67 triangle[0].
setValue(graphicsbase[0]*meshScaling.
getX(),graphicsbase[1]*meshScaling.
getY(),graphicsbase[2]*meshScaling.
getZ());
68 graphicsbase = (
float*)(vertexbase+tri_indices[1]*stride);
69 triangle[1].
setValue(graphicsbase[0]*meshScaling.
getX(),graphicsbase[1]*meshScaling.
getY(), graphicsbase[2]*meshScaling.
getZ());
70 graphicsbase = (
float*)(vertexbase+tri_indices[2]*stride);
71 triangle[2].
setValue(graphicsbase[0]*meshScaling.
getX(),graphicsbase[1]*meshScaling.
getY(), graphicsbase[2]*meshScaling.
getZ());
78 for (gfxindex=0;gfxindex<numtriangles;gfxindex++)
80 unsigned short int* tri_indices= (
unsigned short int*)(indexbase+gfxindex*indexstride);
81 graphicsbase = (
float*)(vertexbase+tri_indices[0]*stride);
82 triangle[0].
setValue(graphicsbase[0]*meshScaling.
getX(),graphicsbase[1]*meshScaling.
getY(),graphicsbase[2]*meshScaling.
getZ());
83 graphicsbase = (
float*)(vertexbase+tri_indices[1]*stride);
84 triangle[1].
setValue(graphicsbase[0]*meshScaling.
getX(),graphicsbase[1]*meshScaling.
getY(), graphicsbase[2]*meshScaling.
getZ());
85 graphicsbase = (
float*)(vertexbase+tri_indices[2]*stride);
86 triangle[2].
setValue(graphicsbase[0]*meshScaling.
getX(),graphicsbase[1]*meshScaling.
getY(), graphicsbase[2]*meshScaling.
getZ());
93 for (gfxindex=0;gfxindex<numtriangles;gfxindex++)
95 unsigned char* tri_indices= (
unsigned char*)(indexbase+gfxindex*indexstride);
96 graphicsbase = (
float*)(vertexbase+tri_indices[0]*stride);
97 triangle[0].
setValue(graphicsbase[0]*meshScaling.
getX(),graphicsbase[1]*meshScaling.
getY(),graphicsbase[2]*meshScaling.
getZ());
98 graphicsbase = (
float*)(vertexbase+tri_indices[1]*stride);
99 triangle[1].
setValue(graphicsbase[0]*meshScaling.
getX(),graphicsbase[1]*meshScaling.
getY(), graphicsbase[2]*meshScaling.
getZ());
100 graphicsbase = (
float*)(vertexbase+tri_indices[2]*stride);
101 triangle[2].
setValue(graphicsbase[0]*meshScaling.
getX(),graphicsbase[1]*meshScaling.
getY(), graphicsbase[2]*meshScaling.
getZ());
114 double* graphicsbase;
116 switch (gfxindextype)
120 for (gfxindex=0;gfxindex<numtriangles;gfxindex++)
122 unsigned int* tri_indices= (
unsigned int*)(indexbase+gfxindex*indexstride);
123 graphicsbase = (
double*)(vertexbase+tri_indices[0]*stride);
125 graphicsbase = (
double*)(vertexbase+tri_indices[1]*stride);
127 graphicsbase = (
double*)(vertexbase+tri_indices[2]*stride);
135 for (gfxindex=0;gfxindex<numtriangles;gfxindex++)
137 unsigned short int* tri_indices= (
unsigned short int*)(indexbase+gfxindex*indexstride);
138 graphicsbase = (
double*)(vertexbase+tri_indices[0]*stride);
140 graphicsbase = (
double*)(vertexbase+tri_indices[1]*stride);
142 graphicsbase = (
double*)(vertexbase+tri_indices[2]*stride);
150 for (gfxindex=0;gfxindex<numtriangles;gfxindex++)
152 unsigned char* tri_indices= (
unsigned char*)(indexbase+gfxindex*indexstride);
153 graphicsbase = (
double*)(vertexbase+tri_indices[0]*stride);
155 graphicsbase = (
double*)(vertexbase+tri_indices[1]*stride);
157 graphicsbase = (
double*)(vertexbase+tri_indices[2]*stride);