Exemplo n.º 1
0
        public void FinalizeBVHSkeleton()
        {
            for (int k = 0; k < Bones.Count(); k++)
            {
                // set max Depth
                if (Bones[k].Depth > maxDepth)
                {
                    maxDepth = Bones[k].Depth;
                }

                //set Bone Index for Motion Values Array
                int motionCount = 0;
                for (int n = 0; n < k; n++)
                {
                    motionCount += Bones[n].ChannelCount;
                }
                Bones[k].MotionSpace = motionCount;

                //set Count of Channels for Skeleton
                channels += Bones[k].ChannelCount;

                //set Children
                List <BVHBone> childBoneList = Bones.FindAll(i => i.Parent == Bones[k]);
                if (childBoneList.Count == 0)
                {
                    Bones[k].End = true;
                }
                else
                {
                    Bones[k].Children = childBoneList;
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Метод завершает построение экземпляра скелета
        /// </summary>
        public void FinalizeBVHSkeleton()
        {
            for (int k = 0; k < Bones.Count(); k++)
            {
                if (Bones[k].Depth > this.maxDepth)
                {
                    this.maxDepth = Bones[k].Depth;
                }

                int motionCount = 0;
                for (int n = 0; n < k; n++)
                {
                    motionCount += Bones[n].ChannelCount;
                }
                Bones[k].MotionSpace = motionCount;
                this.channels       += Bones[k].ChannelCount;

                //Получить все дочерние кости у текущей кости
                List <BVHBone> childBoneList = Bones.FindAll(i => i.Parent == Bones[k]);
                if (childBoneList.Count == 0)
                {
                    Bones[k].End = true; //Если дочерних нет, то текущая кость признается конечной
                }
                else
                {
                    Bones[k].Children = childBoneList; //Если есть, то создается список дочерних костей
                }
            }
        }