public static Multiply ( Matrix4 left, Matrix4 right ) : Matrix4 | ||
left | Matrix4 | Left matrix |
right | Matrix4 | Right matrix |
return | Matrix4 |
/// <summary> /// Calculate the matrix use to transform 3D to 2D /// </summary> private Matrix4 Comuter3DTo2DMatrix() { Matrix4 result = Matrix4.Multiply( m_to2DMatrix.Inverse(), m_moveToCenterMatrix.Inverse()); result = Matrix4.Multiply(result, m_scaleMatrix); return(result); }
/// <summary> /// Transform the point on Form to 3d world coordinate of Revit /// </summary> /// <param name="ps">contain the points to be transform</param> private List <Vector4> TransForm2DTo3D(Point[] ps) { List <Vector4> result = new List <Vector4>(); TransFormPoints(ps); Matrix4 transFormMatrix = Matrix4.Multiply( m_scaleMatrix.Inverse(), m_moveToCenterMatrix); transFormMatrix = Matrix4.Multiply(transFormMatrix, m_to2DMatrix); foreach (Point point in ps) { Vector4 v = new Vector4(point.X, point.Y, 0); v = transFormMatrix.TransForm(v); result.Add(v); } return(result); }