//=============================================== // helper function to map an actor to a skeleton //=============================================== private void ConvertActor(CapturyActor actor, ref CapturySkeleton skel) { if (skel == null) { Debug.Log("Null skeleton reference"); return; } // copy data over skel.name = System.Text.Encoding.UTF8.GetString(actor.name); skel.id = actor.id; // create joints int szStruct = Marshal.SizeOf(typeof(CapturyJoint)); skel.joints = new CapturySkeletonJoint[actor.numJoints]; for (uint i = 0; i < actor.numJoints; i++) { // marshall the joints into a new joint struct CapturyJoint joint = new CapturyJoint(); joint = (CapturyJoint)Marshal.PtrToStructure(new IntPtr(actor.joints.ToInt64() + (szStruct * i)), typeof(CapturyJoint)); skel.joints[i] = new CapturySkeletonJoint(); skel.joints[i].name = System.Text.Encoding.ASCII.GetString(joint.name); int jpos = skel.joints[i].name.IndexOf("\0"); skel.joints[i].name = skel.joints[i].name.Substring(0, jpos); skel.joints[i].offset.Set(joint.ox, joint.oy, joint.oz); skel.joints[i].orientation.Set(joint.rx, joint.ry, joint.rz); //Debug.Log ("Got joint " + skel.joints[i].name + " at " + joint.ox + joint.oy + joint.oz); } }
//=============================================== // helper function to map an actor to a skeleton //=============================================== private void ConvertActor(ref CapturySkeleton skel) { if (skel == null) { Debug.Log("Null skeleton reference"); return; } // copy data over skel.name = "membran Actor"; skel.id = actorID; // create joints int szStruct = Marshal.SizeOf(typeof(CapturyJoint)); skel.joints = new CapturySkeletonJoint[actorNumJoints]; for (uint i = 0; i < actorNumJoints; i++) { // marshall the joints into a new joint struct CapturyJoint joint = new CapturyJoint(); //joint = (CapturyJoint)Marshal.PtrToStructure(new IntPtr(sizeof(int) + (szStruct * i)), typeof(CapturyJoint)); skel.joints[i] = new CapturySkeletonJoint(); //skel.joints[i].name = "Hips";//System.Text.Encoding.ASCII.GetString(joint.name); } skel.joints[0].name = "Hips"; skel.joints[1].name = "Spine"; skel.joints[2].name = "Spine1"; skel.joints[3].name = "Spine2"; skel.joints[4].name = "Spine3"; skel.joints[5].name = "Spine4"; skel.joints[6].name = "Neck"; skel.joints[7].name = "Head"; skel.joints[8].name = "HeadEE"; skel.joints[9].name = "LeftShoulder"; skel.joints[10].name = "LeftArm"; skel.joints[11].name = "LeftForeArm"; skel.joints[12].name = "LeftHand"; skel.joints[13].name = "LeftHandEE"; skel.joints[14].name = "RightShoulder"; skel.joints[15].name = "RightArm"; skel.joints[16].name = "RightForeArm"; skel.joints[17].name = "RightHand"; skel.joints[18].name = "RightHandEE"; skel.joints[19].name = "LeftUpLeg"; skel.joints[20].name = "LeftLeg"; skel.joints[21].name = "LeftFoot"; skel.joints[22].name = "LeftToeBase"; skel.joints[23].name = "LeftFootEE"; skel.joints[24].name = "RightUpLeg"; skel.joints[25].name = "RightLeg"; skel.joints[26].name = "RightFoot"; skel.joints[27].name = "RightToeBase"; skel.joints[28].name = "RightFootEE"; }