コード例 #1
0
        public BoundingBox ToContainerBox()
        {
            Vector3[] corners = LocalBoundingBox.GetCorners();

            Vector3 min = Common.Math.ToVector3(Vector3.Transform(corners[0], Transformation));
            Vector3 max = min;

            for (int i = 1; i < corners.Length; i++)
            {
                Vector3 p = Common.Math.ToVector3(Vector3.Transform(corners[i], Transformation));
                min = Vector3.Minimize(min, p);
                max = Vector3.Maximize(max, p);
            }

            //Vector3 min = LocalBoundingBox.Minimum;
            //Vector3 max = LocalBoundingBox.Maximum;
            //float dx = max.X - min.X, dy = max.Y - min.Y, dz = max.Z - min.Z;

            //Vector3 p1 =

            //return new BoundingBox(
            //    Common.Math.ToVector3(Vector3.Transform(LocalBoundingBox.Minimum, Transformation)),
            //    Common.Math.ToVector3(Vector3.Transform(LocalBoundingBox.Maximum, Transformation)));


            //Vector3 t1 = Common.Math.ToVector3(Vector3.Transform(LocalBoundingBox.Minimum, Transformation));
            //Vector3 t2 = Common.Math.ToVector3(Vector3.Transform(LocalBoundingBox.Maximum, Transformation));
            //Vector3 p1 = Vector3.Minimize(t1, t2);
            //Vector3 p2 = Vector3.Maximize(t1, t2);
            return(new BoundingBox(min, max));
        }