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;
123 virtual void softwareVertexMorph(
125 const float *srcPos1,
const float *srcPos2,
127 size_t numVertices) = 0;
138 virtual void concatenateAffineMatrices(
142 size_t numMatrices) = 0;
155 virtual void calculateFaceNormals(
156 const float *positions,
159 size_t numTriangles) = 0;
177 virtual void calculateLightFacing(
181 size_t numFaces) = 0;
197 virtual void extrudeVertices(
200 const float* srcPositions,
201 float* destPositions,
202 size_t numVertices) = 0;
212 return (T*)((
char*)(ptr) + offset);
229 #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 void advanceRawPointer(T *&ptr, ptrdiff_t offset)
Advance the pointer with raw offset.
Utility class for provides optimised functions.
static OptimisedUtil * getImplementation(void)
Gets the implementation of this class.
static FORCEINLINE T * rawOffsetPointer(T *ptr, ptrdiff_t offset)
Returns raw offseted of the given pointer.
4-dimensional homogeneous vector.