コード例 #1
0
        /// <summary>
        /// Re-applies the bounds to the internal animation object, and the relevant renderable object if one exists.
        /// </summary>
        internal void UpdateBounds(bool updateRenderable = true)
        {
            NativeRenderable renderable = null;

            if (updateRenderable && animatedRenderable != null)
            {
                renderable = animatedRenderable.Native;
            }

            if (serializableData.useBounds)
            {
                if (renderable != null)
                {
                    renderable.UseOverrideBounds = true;
                    renderable.OverrideBounds    = serializableData.bounds;
                }

                if (_native != null)
                {
                    AABox bounds = serializableData.bounds;
                    bounds.TransformAffine(SceneObject.WorldTransform);

                    _native.Bounds = bounds;
                }
            }
            else
            {
                if (renderable != null)
                {
                    renderable.UseOverrideBounds = false;
                }

                if (_native != null)
                {
                    AABox bounds = new AABox();
                    if (animatedRenderable != null)
                    {
                        bounds = animatedRenderable.Bounds.Box;
                    }

                    _native.Bounds = bounds;
                }
            }
        }