teFaceID = source.teFaceID;
- _rotationAngles = new Vector3(source.RotationAngles);
- _scale = new Vector3(source.Scale);
- _position = new Vector3(source.Position);
+ RotationAngles = new Vector3(source.RotationAngles);
+ Scale = new Vector3(source.Scale);
+ Position = new Vector3(source.Position);
// We should not need to instance these the reference from the top should be constant
_evp = source._evp;
- _morphs = source._morphs;
+ Morphs = source.Morphs;
OrigRenderData.Indices = new ushort[source.RenderData.Indices.Length];
OrigRenderData.TexCoords = new float[source.RenderData.TexCoords.Length];
public void setMeshPos(Vector3 pos)
{
- _position = pos;
+ Position = pos;
// Force offset all vertices by this offset
// this is required to force some meshes into the default T bind pose
public void setMeshRot(Vector3 rot)
{
- _rotationAngles = rot;
+ RotationAngles = rot;
}
public override void LoadMesh(string filename)
maxX = maxY = maxZ = Single.MinValue;
// Generate the vertex array
- RenderData.Vertices = new float[_numVertices * 3];
- RenderData.Normals = new float[_numVertices * 3];
+ RenderData.Vertices = new float[NumVertices * 3];
+ RenderData.Normals = new float[NumVertices * 3];
Quaternion quat = Quaternion.CreateFromEulers(0, 0, (float)(Math.PI / 4.0));
int current = 0;
- for (int i = 0; i < _numVertices; i++)
+ for (int i = 0; i < NumVertices; i++)
{
- RenderData.Normals[current] = _vertices[i].Normal.X;
- RenderData.Vertices[current++] = _vertices[i].Coord.X;
- RenderData.Normals[current] = _vertices[i].Normal.Y;
- RenderData.Vertices[current++] = _vertices[i].Coord.Y;
- RenderData.Normals[current] = _vertices[i].Normal.Z;
- RenderData.Vertices[current++] = _vertices[i].Coord.Z;
+ RenderData.Normals[current] = Vertices[i].Normal.X;
+ RenderData.Vertices[current++] = Vertices[i].Coord.X;
+ RenderData.Normals[current] = Vertices[i].Normal.Y;
+ RenderData.Vertices[current++] = Vertices[i].Coord.Y;
+ RenderData.Normals[current] = Vertices[i].Normal.Z;
+ RenderData.Vertices[current++] = Vertices[i].Coord.Z;
- if (_vertices[i].Coord.X < minX)
- minX = _vertices[i].Coord.X;
- else if (_vertices[i].Coord.X > maxX)
- maxX = _vertices[i].Coord.X;
+ if (Vertices[i].Coord.X < minX)
+ minX = Vertices[i].Coord.X;
+ else if (Vertices[i].Coord.X > maxX)
+ maxX = Vertices[i].Coord.X;
- if (_vertices[i].Coord.Y < minY)
- minY = _vertices[i].Coord.Y;
- else if (_vertices[i].Coord.Y > maxY)
- maxY = _vertices[i].Coord.Y;
+ if (Vertices[i].Coord.Y < minY)
+ minY = Vertices[i].Coord.Y;
+ else if (Vertices[i].Coord.Y > maxY)
+ maxY = Vertices[i].Coord.Y;
- if (_vertices[i].Coord.Z < minZ)
- minZ = _vertices[i].Coord.Z;
- else if (_vertices[i].Coord.Z > maxZ)
- maxZ = _vertices[i].Coord.Z;
+ if (Vertices[i].Coord.Z < minZ)
+ minZ = Vertices[i].Coord.Z;
+ else if (Vertices[i].Coord.Z > maxZ)
+ maxZ = Vertices[i].Coord.Z;
}
// Calculate the center-point from the bounding box edges
RenderData.Center = new Vector3((minX + maxX) / 2, (minY + maxY) / 2, (minZ + maxZ) / 2);
// Generate the index array
- RenderData.Indices = new ushort[_numFaces * 3];
+ RenderData.Indices = new ushort[NumFaces * 3];
current = 0;
- for (int i = 0; i < _numFaces; i++)
+ for (int i = 0; i < NumFaces; i++)
{
- RenderData.Indices[current++] = (ushort)_faces[i].Indices[0];
- RenderData.Indices[current++] = (ushort)_faces[i].Indices[1];
- RenderData.Indices[current++] = (ushort)_faces[i].Indices[2];
+ RenderData.Indices[current++] = (ushort)Faces[i].Indices[0];
+ RenderData.Indices[current++] = (ushort)Faces[i].Indices[1];
+ RenderData.Indices[current++] = (ushort)Faces[i].Indices[2];
}
// Generate the texcoord array
- RenderData.TexCoords = new float[_numVertices * 2];
+ RenderData.TexCoords = new float[NumVertices * 2];
current = 0;
- for (int i = 0; i < _numVertices; i++)
+ for (int i = 0; i < NumVertices; i++)
{
- RenderData.TexCoords[current++] = _vertices[i].TexCoord.X;
- RenderData.TexCoords[current++] = _vertices[i].TexCoord.Y;
+ RenderData.TexCoords[current++] = Vertices[i].TexCoord.X;
+ RenderData.TexCoords[current++] = Vertices[i].TexCoord.Y;
}
- RenderData.weights = new float[_numVertices];
- for (int i = 0; i < _numVertices; i++)
+ RenderData.weights = new float[NumVertices];
+ for (int i = 0; i < NumVertices; i++)
{
- RenderData.weights[i] = _vertices[i].Weight;
+ RenderData.weights[i] = Vertices[i].Weight;
}
- RenderData.skinJoints = new string[_skinJoints.Length + 3];
- for (int i = 1; i < _skinJoints.Length; i++)
+ RenderData.skinJoints = new string[SkinJoints.Length + 3];
+ for (int i = 1; i < SkinJoints.Length; i++)
{
- RenderData.skinJoints[i] = _skinJoints[i];
+ RenderData.skinJoints[i] = SkinJoints[i];
}
{
LODMesh lod = new LODMesh();
lod.LoadMesh(filename);
- _lodMeshes[level] = lod;
+ LodMeshes[level] = lod;
}
public void applyjointweights()
--- /dev/null
+<?xml version="1.0" encoding="US-ASCII" standalone="yes"?>
+<linden_skeleton version="1.0" num_bones="53" num_collision_volumes="26">
+<bone name="mPelvis" pos="0.000 0.000 1.067" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 1.067015">
+ <collision_volume name="PELVIS" pos = "-0.01 0 -0.02" rot="0.000000 8.00000 0.000000" scale="0.12 0.16 0.17"/>
+ <collision_volume name="BUTT" pos = "-0.06 0 -0.1" rot="0.000000 0.00000 0.000000" scale="0.1 0.1 0.1"/>
+ <bone name="mTorso" pos="0.000 0.000 0.084" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 0.084073">
+ <collision_volume name="BELLY" pos = "0.028 0 0.04" rot="0.000000 8.00000 0.000000" scale="0.09 0.13 0.15"/>
+ <collision_volume name="LOWER_BACK" pos = "0.0 0.0 0.023" rot="0.000000 0.00000 0.000000" scale="0.09 0.13 0.15"/>
+ <collision_volume name="LEFT_HANDLE" pos = "0.0 0.10 0.058" rot="0.000000 0.00000 0.000000" scale="0.05 0.05 0.05"/>
+ <collision_volume name="RIGHT_HANDLE" pos = "0.0 -0.10 0.058" rot="0.000000 0.00000 0.000000" scale="0.05 0.05 0.05"/>
+ <bone name="mChest" pos="-0.015 0.000 0.205" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.015368 0.000000 0.204877">
+ <collision_volume name="CHEST" pos = "0.028 0 0.07" rot="0.000000 -10.00000 0.000000" scale="0.11 0.15 0.2"/>
+ <collision_volume name="UPPER_BACK" pos = "0.0 0.0 0.017" rot="0.000000 0.00000 0.000000" scale="0.09 0.13 0.15"/>
+ <collision_volume name="LEFT_PEC" pos = "0.119 0.082 0.042" rot="0.000000 4.29000 0.000000" scale="0.05 0.05 0.05"/>
+ <collision_volume name="RIGHT_PEC" pos = "0.119 -0.082 0.042" rot="0.000000 4.29000 0.000000" scale="0.05 0.05 0.05"/>
+ <bone name="mNeck" pos="-0.010 0.000 0.251" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.009507 0.000000 0.251108">
+ <collision_volume name="NECK" pos = "0.0 0 0.02" rot="0.000000 0.000000 0.000000" scale="0.05 0.06 0.08"/>
+ <bone name="mHead" pos="0.000 -0.000 0.076" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 -0.000000 0.075630">
+ <collision_volume name="HEAD" pos = "0.02 0 0.07" rot="0.000000 0.000000 0.000000" scale="0.11 0.09 0.12"/>
+ <bone name="mSkull" pos="0.000 0.000 0.079" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.000000 0.079000">
+ </bone>
+ <bone name="mEyeRight" pos="0.098 -0.036 0.079" rot="0.000000 0.000000 -0.000000" scale="1.000 1.000 1.000" pivot="0.098466 -0.036000 0.079000">
+ </bone>
+ <bone name="mEyeLeft" pos="0.098 0.036 0.079" rot="0.000000 -0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.098461 0.036000 0.079000">
+ </bone>
+ </bone>
+ </bone>
+ <bone name="mCollarLeft" pos="-0.021 0.085 0.165" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.020927 0.084665 0.165396">
+ <collision_volume name="L_CLAVICLE" pos = "0.02 0 0.02" rot="0.000000 0.00000 0.000000" scale="0.07 0.14 0.05"/>
+ <bone name="mShoulderLeft" pos="0.000 0.079 -0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.079000 -0.000000">
+ <collision_volume name="L_UPPER_ARM" pos = "0.0 0.12 0.01" rot="-5.000000 0.00000 0.000000" scale="0.05 0.17 0.05"/>
+ <bone name="mElbowLeft" pos="0.000 0.248 0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 0.248000 0.000000">
+ <collision_volume name="L_LOWER_ARM" pos = "0.0 0.1 0.0" rot="-3.000000 0.00000 0.000000" scale="0.04 0.14 0.04"/>
+ <bone name="mWristLeft" pos="-0.000 0.205 0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.000000 0.204846 0.000000">
+ <collision_volume name="L_HAND" pos = "0.01 0.05 0.0" rot="-3.000000 0.00000 -10.000000" scale="0.05 0.08 0.03"/>
+ </bone>
+ </bone>
+ </bone>
+ </bone>
+ <bone name="mCollarRight" pos="-0.021 -0.085 0.165" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.020927 -0.085000 0.165396">
+ <collision_volume name="R_CLAVICLE" pos = "0.02 0 0.02" rot="0.000000 0.00000 0.000000" scale="0.07 0.14 0.05"/>
+ <bone name="mShoulderRight" pos="0.000 -0.079 -0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 -0.079418 -0.000000">
+ <collision_volume name="R_UPPER_ARM" pos = "0.0 -0.12 0.01" rot="5.000000 0.00000 0.000000" scale="0.05 0.17 0.05"/>
+ <bone name="mElbowRight" pos="0.000 -0.248 -0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.000000 -0.248000 -0.000000">
+ <collision_volume name="R_LOWER_ARM" pos = "0.0 -0.1 0.0" rot="3.000000 0.00000 0.000000" scale="0.04 0.14 0.04"/>
+ <bone name="mWristRight" pos="0.000 -0.205 -0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.000000 -0.205000 -0.000000">
+ <collision_volume name="R_HAND" pos = "0.01 -0.05 0.0" rot="3.000000 0.00000 10.000000" scale="0.05 0.08 0.03"/>
+ </bone>
+ </bone>
+ </bone>
+ </bone>
+ </bone>
+ </bone>
+ <bone name="mHipRight" pos="0.034 -0.129 -0.041" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.033620 -0.128806 -0.041086">
+ <collision_volume name="R_UPPER_LEG" pos = "-0.02 0.05 -0.22" rot="0.000000 0.00000 0.000000" scale="0.09 0.09 0.32"/>
+ <bone name="mKneeRight" pos="-0.001 0.049 -0.491" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.000780 0.048635 -0.490922">
+ <collision_volume name="R_LOWER_LEG" pos = "-0.02 0.0 -0.2" rot="0.000000 0.00000 0.000000" scale="0.06 0.06 0.25"/>
+ <bone name="mAnkleRight" pos="-0.029 0.000 -0.468" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.028869 0.000000 -0.468494">
+ <collision_volume name="R_FOOT" pos = "0.077 0.0 -0.041" rot="0.000000 10.00000 0.000000" scale="0.13 0.05 0.05"/>
+ <bone name="mFootRight" pos="0.112 -0.000 -0.061" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.111956 -0.000000 -0.060637">
+ <bone name="mToeRight" pos="0.109 0.000 0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.105399 -0.010408 -0.000104">
+ </bone>
+ </bone>
+ </bone>
+ </bone>
+ </bone>
+ <bone name="mHipLeft" pos="0.034 0.127 -0.041" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.033757 0.126765 -0.040998">
+ <collision_volume name="L_UPPER_LEG" pos = "-0.02 -0.05 -0.22" rot="0.000000 0.00000 0.000000" scale="0.09 0.09 0.32"/>
+ <bone name="mKneeLeft" pos="-0.001 -0.046 -0.491" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.000887 -0.045568 -0.491053">
+ <collision_volume name="L_LOWER_LEG" pos = "-0.02 0.0 -0.2" rot="0.000000 0.00000 0.000000" scale="0.06 0.06 0.25"/>
+ <bone name="mAnkleLeft" pos="-0.029 0.001 -0.468" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="-0.028887 0.001378 -0.468449">
+ <collision_volume name="L_FOOT" pos = "0.077 0.0 -0.041" rot="0.000000 10.00000 0.000000" scale="0.13 0.05 0.05"/>
+ <bone name="mFootLeft" pos="0.112 -0.000 -0.061" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.111956 -0.000000 -0.060620">
+ <bone name="mToeLeft" pos="0.109 0.000 0.000" rot="0.000000 0.000000 0.000000" scale="1.000 1.000 1.000" pivot="0.105387 0.008270 0.000871">
+ </bone>
+ </bone>
+ </bone>
+ </bone>
+ </bone>
+</bone>
+</linden_skeleton>
\ No newline at end of file