예제 #1
0
        public static MyTransform operator *(MyTransform lhs, MyTransform rhs)
        {
            MyTransform result;

            MyTransform.Multiply(ref lhs, ref rhs, out result);
            return(result);
        }
예제 #2
0
 /// <summary>
 /// m_initialSunWindPosition/orientation are based on one corner the box. Sides are
 /// the full side lengths
 /// </summary>
 /// <param name="pos"></param>
 /// <param name="orient"></param>
 /// <param name="m_SideLengths"></param>
 public MyBox( Matrix matrix, Vector3 m_SideLengths)
 {
     Matrix tMa = matrix;
     tMa.Translation = Vector3.Zero;
     this.Transform = new MyTransform(matrix.Translation, tMa);
     this.m_sideLengths = m_SideLengths;
 }
예제 #3
0
        /// <summary>
        /// m_initialSunWindPosition/orientation are based on one corner the box. Sides are
        /// the full side lengths
        /// </summary>
        /// <param name="pos"></param>
        /// <param name="orient"></param>
        /// <param name="m_SideLengths"></param>
        public MyBox(Matrix matrix, Vector3 m_SideLengths)
        {
            Matrix tMa = matrix;

            tMa.Translation    = Vector3.Zero;
            this.Transform     = new MyTransform(matrix.Translation, tMa);
            this.m_sideLengths = m_SideLengths;
        }
예제 #4
0
        public static void Multiply(ref MyTransform lhs, ref MyTransform rhs, out MyTransform result)
        {
            result = new MyTransform();

            Matrix.Multiply(ref rhs.Orientation, ref lhs.Orientation, out result.Orientation);
            //result.Orientation = rhs.Orientation * lhs.Orientation;
            Vector3.Transform(ref rhs.Position, ref lhs.Orientation, out result.Position);
            Vector3.Add(ref lhs.Position, ref result.Position, out result.Position);
            //result.m_initialSunWindPosition = lhs.m_initialSunWindPosition + Vector3.Transform(rhs.m_initialSunWindPosition, lhs.Orientation);
        }
예제 #5
0
        public static MyTransform Multiply(MyTransform lhs, MyTransform rhs)
        {
            MyTransform result = new MyTransform();
            Matrix.Multiply(ref rhs.Orientation, ref lhs.Orientation, out result.Orientation);
            //result.Orientation = rhs.Orientation * lhs.Orientation;
            Vector3.Transform(ref rhs.Position, ref lhs.Orientation, out result.Position);
            Vector3.Add(ref lhs.Position, ref result.Position, out result.Position);
            //result.m_initialSunWindPosition = lhs.m_initialSunWindPosition + Vector3.Transform(rhs.m_initialSunWindPosition, lhs.Orientation);

            return result;
        }
예제 #6
0
        public static void Multiply(ref MyTransform lhs, ref MyTransform rhs, out MyTransform result)
        {
            result = new MyTransform();

            Matrix.Multiply(ref rhs.Orientation, ref lhs.Orientation, out result.Orientation);
            //result.Orientation = rhs.Orientation * lhs.Orientation;
            Vector3.Transform(ref rhs.Position, ref lhs.Orientation, out result.Position);
            Vector3.Add(ref lhs.Position, ref result.Position, out result.Position);
            //result.m_initialSunWindPosition = lhs.m_initialSunWindPosition + Vector3.Transform(rhs.m_initialSunWindPosition, lhs.Orientation);
        }