UpdateInverseWorldTransform() публичный Метод

public UpdateInverseWorldTransform ( List bones ) : void
bones List
Результат void
Пример #1
0
        public static Bone FromCollada(node bone, int parentIndex, List <Bone> bones, Dictionary <string, Bone> boneSIDs, Dictionary <string, Bone> boneIDs)
        {
            var transMat    = ColladaHelpers.TransformFromNode(bone);
            var colladaBone = new Bone();

            colladaBone.TransformSID = transMat.TransformSID;
            var myIndex = bones.Count;

            bones.Add(colladaBone);
            boneSIDs.Add(bone.sid, colladaBone);
            if (bone.id != null)
            {
                boneIDs.Add(bone.id, colladaBone);
            }

            colladaBone.ParentIndex       = parentIndex;
            colladaBone.Name              = bone.name;
            colladaBone.LODError          = 0; // TODO
            colladaBone.OriginalTransform = transMat.transform;
            colladaBone.Transform         = Transform.FromMatrix4(transMat.transform);
            colladaBone.UpdateInverseWorldTransform(bones);

            if (bone.node1 != null)
            {
                foreach (var node in bone.node1)
                {
                    if (node.type == NodeType.JOINT)
                    {
                        FromCollada(node, myIndex, bones, boneSIDs, boneIDs);
                    }
                }
            }

            return(colladaBone);
        }
Пример #2
0
        public static Bone FromCollada(node bone, int parentIndex, List<Bone> bones, Dictionary<string, Bone> boneSIDs, Dictionary<string, Bone> boneIDs)
        {
            var transMat = ColladaHelpers.TransformFromNode(bone);
            var colladaBone = new Bone();
            colladaBone.TransformSID = transMat.TransformSID;
            var myIndex = bones.Count;
            bones.Add(colladaBone);
            boneSIDs.Add(bone.sid, colladaBone);
            if (bone.id != null)
            {
                boneIDs.Add(bone.id, colladaBone);
            }

            colladaBone.ParentIndex = parentIndex;
            colladaBone.Name = bone.name;
            colladaBone.LODError = 0; // TODO
            colladaBone.Transform = transMat.transform;
            colladaBone.UpdateInverseWorldTransform(bones);

            if (bone.node1 != null)
            {
                foreach (var node in bone.node1)
                {
                    if (node.type == NodeType.JOINT)
                    {
                        FromCollada(node, myIndex, bones, boneSIDs, boneIDs);
                    }
                }
            }

            return colladaBone;
        }