OSDN Git Service

Adjust to recent libomv changes
authorLatif Khalifa <latifer@streamgrid.net>
Wed, 10 Jun 2015 22:25:19 +0000 (00:25 +0200)
committerLatif Khalifa <latifer@streamgrid.net>
Wed, 10 Jun 2015 22:25:19 +0000 (00:25 +0200)
Radegast/GUI/Rendering/RenderAvatar.cs
Radegast/openmetaverse_data/avatar_skeleton.xml [new file with mode: 0755]

index 112bba3..f915414 100644 (file)
@@ -158,13 +158,13 @@ namespace Radegast.Rendering
 
             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];
@@ -189,7 +189,7 @@ namespace Radegast.Rendering
 
         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
@@ -206,7 +206,7 @@ namespace Radegast.Rendering
 
         public void setMeshRot(Vector3 rot)
         {
-            _rotationAngles = rot;
+            RotationAngles = rot;
         }
 
         public override void LoadMesh(string filename)
@@ -219,70 +219,70 @@ namespace Radegast.Rendering
             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];
             }
 
 
@@ -292,7 +292,7 @@ namespace Radegast.Rendering
         {
             LODMesh lod = new LODMesh();
             lod.LoadMesh(filename);
-            _lodMeshes[level] = lod;
+            LodMeshes[level] = lod;
         }
 
         public void applyjointweights()
diff --git a/Radegast/openmetaverse_data/avatar_skeleton.xml b/Radegast/openmetaverse_data/avatar_skeleton.xml
new file mode 100755 (executable)
index 0000000..6b07bbc
--- /dev/null
@@ -0,0 +1,81 @@
+<?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