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__
static OptimisedUtil * msImplementation
Store a pointer to the implementation.
Class encapsulating a standard 4x4 homogeneous matrix.
float Real
Software floating point type.
Basic triangle structure.
static FORCEINLINE const T * rawOffsetPointer(const T *ptr, ptrdiff_t offset)
Returns raw offseted of the given pointer.
Utility class for provides optimised functions.
static OptimisedUtil * getImplementation(void)
Gets the implementation of this class.
static FORCEINLINE void advanceRawPointer(const T *&ptr, ptrdiff_t offset)
Advance the pointer with raw offset.
4-dimensional homogeneous vector.