private Vector3 GetDirection(MVMIH.Type type)
        {
            switch (type)
            {
            case MVMIH.Type.X:
                return(new Vector3(1.0f, 0.0f, 0.0f));

            case MVMIH.Type.Y:
                return(new Vector3(0.0f, 1.0f, 0.0f));

            case MVMIH.Type.Z:
                return(new Vector3(0.0f, 0.0f, 1.0f));

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        private float GetDistance(BoundingBox box, MVMIH.Type type)
        {
            float result = 0.0f;

            switch (type)
            {
            case MVMIH.Type.X:
                result = box.Width;
                break;

            case MVMIH.Type.Y:
                result = box.Height;
                break;

            case MVMIH.Type.Z:
                result = box.Depth;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            return(result / 2.0f);
        }
        private float GetDiameter(BoundingBox box, MVMIH.Type type)
        {
            float result = 0.0f;

            switch (type)
            {
            case MVMIH.Type.X:
                result = Math.Min(box.Height, box.Depth);
                break;

            case MVMIH.Type.Y:
                result = Math.Min(box.Width, box.Depth);
                break;

            case MVMIH.Type.Z:
                result = Math.Min(box.Width, box.Height);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            return(result / 8.0f);
        }