public static MyTransform operator *(MyTransform lhs, MyTransform rhs) { MyTransform result; MyTransform.Multiply(ref lhs, ref rhs, out result); return(result); }
/// <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; }
/// <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; }
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); }
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; }