28 #ifndef __OptimisedUtil_H__
29 #define __OptimisedUtil_H__
99 virtual void softwareVertexSkinning(
100 const float *srcPosPtr,
float *destPosPtr,
101 const float *srcNormPtr,
float *destNormPtr,
102 const float *blendWeightPtr,
const unsigned char* blendIndexPtr,
103 const Matrix4*
const* blendMatrices,
104 size_t srcPosStride,
size_t destPosStride,
105 size_t srcNormStride,
size_t destNormStride,
106 size_t blendWeightStride,
size_t blendIndexStride,
107 size_t numWeightsPerVertex,
108 size_t numVertices) = 0;
124 virtual void softwareVertexMorph(
126 const float *srcPos1,
const float *srcPos2,
128 size_t pos1VSize,
size_t pos2VSize,
size_t dstVSize,
130 bool morphNormals) = 0;
141 virtual void concatenateAffineMatrices(
145 size_t numMatrices) = 0;
158 virtual void calculateFaceNormals(
159 const float *positions,
162 size_t numTriangles) = 0;
180 virtual void calculateLightFacing(
184 size_t numFaces) = 0;
200 virtual void extrudeVertices(
203 const float* srcPositions,
204 float* destPositions,
205 size_t numVertices) = 0;
215 return (
const T*)((
const char*)(ptr) + offset);
221 return (T*)((
char*)(ptr) + offset);
244 #endif // __OptimisedUtil_H__