public void CalcFromTriangle(ref IndexedVector3 V1, ref IndexedVector3 V2, ref IndexedVector3 V3)
        {
            m_min.X = BoxCollision.BT_MIN3(V1.X, V2.X, V3.X);
            m_min.Y = BoxCollision.BT_MIN3(V1.Y, V2.Y, V3.Y);
            m_min.Z = BoxCollision.BT_MIN3(V1.Z, V2.Z, V3.Z);

            m_max.X = BoxCollision.BT_MAX3(V1.X, V2.X, V3.X);
            m_max.Y = BoxCollision.BT_MAX3(V1.Y, V2.Y, V3.Y);
            m_max.Z = BoxCollision.BT_MAX3(V1.Z, V2.Z, V3.Z);
        }
        public AABB(ref IndexedVector3 V1,
                    ref IndexedVector3 V2,
                    ref IndexedVector3 V3)
        {
            m_min = new IndexedVector3();
            m_max = new IndexedVector3();

            m_min.X = BoxCollision.BT_MIN3(V1.X, V2.X, V3.X);
            m_min.Y = BoxCollision.BT_MIN3(V1.Y, V2.Y, V3.Y);
            m_min.Z = BoxCollision.BT_MIN3(V1.Z, V2.Z, V3.Z);

            m_max.X = BoxCollision.BT_MAX3(V1.X, V2.X, V3.X);
            m_max.Y = BoxCollision.BT_MAX3(V1.Y, V2.Y, V3.Y);
            m_max.Z = BoxCollision.BT_MAX3(V1.Z, V2.Z, V3.Z);
        }
        public void CalcFromTriangleMargin(ref IndexedVector3 V1, ref IndexedVector3 V2, ref IndexedVector3 V3, float margin)
        {
            m_min.X = BoxCollision.BT_MIN3(V1.X, V2.X, V3.X);
            m_min.Y = BoxCollision.BT_MIN3(V1.Y, V2.Y, V3.Y);
            m_min.Z = BoxCollision.BT_MIN3(V1.Z, V2.Z, V3.Z);

            m_max.X = BoxCollision.BT_MAX3(V1.X, V2.X, V3.X);
            m_max.Y = BoxCollision.BT_MAX3(V1.Y, V2.Y, V3.Y);
            m_max.Z = BoxCollision.BT_MAX3(V1.Z, V2.Z, V3.Z);

            m_min.X -= margin;
            m_min.Y -= margin;
            m_min.Z -= margin;
            m_max.X += margin;
            m_max.Y += margin;
            m_max.Z += margin;
        }
        public AABB(ref IndexedVector3 V1, ref IndexedVector3 V2, ref IndexedVector3 V3, float margin)
        {
            m_min   = new IndexedVector3();
            m_max   = new IndexedVector3();
            m_min.X = BoxCollision.BT_MIN3(V1.X, V2.X, V3.X);
            m_min.Y = BoxCollision.BT_MIN3(V1.Y, V2.Y, V3.Y);
            m_min.Z = BoxCollision.BT_MIN3(V1.Z, V2.Z, V3.Z);

            m_max.X = BoxCollision.BT_MAX3(V1.X, V2.X, V3.X);
            m_max.Y = BoxCollision.BT_MAX3(V1.Y, V2.Y, V3.Y);
            m_max.Z = BoxCollision.BT_MAX3(V1.Z, V2.Z, V3.Z);

            m_min.X -= margin;
            m_min.Y -= margin;
            m_min.Z -= margin;
            m_max.X += margin;
            m_max.Y += margin;
            m_max.Z += margin;
        }