Exemple #1
0
        public Bone(Skeleton skeleton, JointType name, Bone parent, double length, Vector3D direction)
        {
            this.skeleton = skeleton;
            this.name = name;
            this.parent = parent;
            this.length = length;
            tPoseDirection = direction;

            logger.Trace("Create {0}. Length: {1}", this, this.length);
        }
Exemple #2
0
        private Bone CreateBone(JointType name, Bone parent, double length, Vector3D tPoseDirection)
        {
            var bone = new Bone(this, name, parent, length, tPoseDirection);

            bones.Add(bone);

            return bone;
        }
Exemple #3
0
 private JointType GetParentName(Bone bone)
 {
     return bone.parent == null ? JointType.SpineBase : bone.parent.name;
 }
Exemple #4
0
        private void WriteBone(Bone bone, int indent)
        {
            var indentString = CreateIndent(indent);

            var offset = bone.Parent == null
                    ? new Vector3D(0, Settings.Default.SpineBaseBoneLength, 0)
                    : bone.Parent.InitialOffset;

            var jointStartString = string.Format(JOINT_START
                , bone.Name
                , offset.X
                , offset.Y
                , offset.Z
                , indentString);
            writer.WriteLine(jointStartString);

            if (bone.IsEnd)
            {
                offset = bone.InitialOffset;
                var endString = string.Format(END
                    , offset.X
                    , offset.Y
                    , offset.Z
                    , CreateIndent(indent + 1));
                writer.WriteLine(endString);
            }
            else
            {
                foreach (var child in bone.Children)
                {
                    WriteBone(child, indent + 1);
                }
            }

            writer.WriteLine(string.Format(JOINT_END, indentString));
        }