First public contribution.
2 * Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of the License "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: SkinnedMesh interface
18 #ifndef __M3G_SKINNEDMESH_H__
19 #define __M3G_SKINNEDMESH_H__
24 * \brief SkinnedMesh interface
28 #include "m3g_array.h"
30 typedef struct BoneRecord Bone;
32 struct M3GSkinnedMeshImpl
39 M3Gint weightedVertexCount, bonesPerVertex;
41 M3Gubyte *boneIndices[M3G_MAX_VERTEX_TRANSFORMS];
42 M3Gubyte *boneWeights[M3G_MAX_VERTEX_TRANSFORMS];
43 M3Gubyte *weightShifts;
44 M3Gubyte *normalizedWeights[M3G_MAX_VERTEX_TRANSFORMS];
46 /* Scale and bias transformation for morphing */
47 M3Gshort scaleMatrix[9], biasVector[3];
48 M3Gshort scaleExp, biasExp, scaleBiasExp;
50 M3Gshort maxExp; /* total maximum exponent */
52 /*! \internal \brief internal morphed vertex buffer */
53 VertexBuffer *morphedVB;
56 M3Gshort posShift, normalShift;
63 /*----------------------------------------------------------------------
65 *--------------------------------------------------------------------*/
67 #endif /*__M3G_SKINNEDMESH_H__*/