コード例 #1
0
        /// <summary>Transforms the given bone with relative information to its parent</summary>
        /// <param name="bone"></param>
        public virtual void updateRecursively(com.brashmonkey.spriter.objects.SpriterBone
			 bone)
        {
            this.updateBone(bone);
            foreach (com.brashmonkey.spriter.objects.SpriterBone child in bone.getChildBones(
                ))
            {
                this.updateRecursively(this.tempBones[child.getId()]);
            }
        }
コード例 #2
0
        /// <summary>Calculates the bounding box for the current running animation.</summary>
        /// <remarks>
        /// Calculates the bounding box for the current running animation.
        /// Call this method after updating the spriter player.
        /// </remarks>
        /// <param name="bone">root to start at. Set null, to iterate through all objects.</param>
        public virtual void calcBoundingBox(com.brashmonkey.spriter.objects.SpriterBone bone
			)
        {
            if (bone == null)
            {
                this.calcBoundingBoxForAll();
            }
            else
            {
                bone.boundingBox.set(this.rect);
                foreach (com.brashmonkey.spriter.objects.SpriterObject @object in bone.getChildObjects
                    ())
                {
                    com.brashmonkey.spriter.SpriterPoint[] points = this.tempObjects[@object.getId()]
                        .getBoundingBox();
                    bone.boundingBox.left = System.Math.Min(System.Math.Min(System.Math.Min(System.Math
                        .Min(points[0].x, points[1].x), points[2].x), points[3].x), bone.boundingBox.left
                        );
                    bone.boundingBox.right = System.Math.Max(System.Math.Max(System.Math.Max(System.Math
                        .Max(points[0].x, points[1].x), points[2].x), points[3].x), bone.boundingBox.right
                        );
                    bone.boundingBox.top = System.Math.Max(System.Math.Max(System.Math.Max(System.Math
                        .Max(points[0].y, points[1].y), points[2].y), points[3].y), bone.boundingBox.top
                        );
                    bone.boundingBox.bottom = System.Math.Min(System.Math.Min(System.Math.Min(System.Math
                        .Min(points[0].y, points[1].y), points[2].y), points[3].y), bone.boundingBox.bottom
                        );
                }
                this.rect.set(bone.boundingBox);
                foreach (com.brashmonkey.spriter.objects.SpriterBone child in bone.getChildBones(
                    ))
                {
                    calcBoundingBox(child);
                    bone.boundingBox.set(child.boundingBox);
                }
                this.rect.set(bone.boundingBox);
            }
            this.rect.calculateSize();
        }