using System; using System.IO; namespace IDTF.Net { /// /// A geometric transform, in column/row format /// public class Transform4x4 { /// /// Create a new Transform, this will be an identity matrix /// public Transform4x4() { c0r0 = 1; c1r1 = 1; c2r2 = 1; c3r3 = 1; } /// /// Column 0, Row 0 /// public double c0r0 { get; set; } /// /// Column 1, Row 0 /// public double c1r0 { get; set; } /// /// Column 2, Row 0 /// public double c2r0 { get; set; } /// /// Column 3, Row 0 /// public double c3r0 { get; set; } public double c0r1 { get; set; } public double c1r1 { get; set; } public double c2r1 { get; set; } public double c3r1 { get; set; } public double c0r2 { get; set; } public double c1r2 { get; set; } public double c2r2 { get; set; } public double c3r2 { get; set; } public double c0r3 { get; set; } public double c1r3 { get; set; } public double c2r3 { get; set; } public double c3r3 { get; set; } internal void Export(StreamWriter toStream) { toStream.WriteLine(String.Format("\t\t\t\t{0} {1} {2} {3}", this.c0r0.ToString(Format.SixDecPlFormat), this.c0r1.ToString(Format.SixDecPlFormat), this.c0r2.ToString(Format.SixDecPlFormat), this.c0r3.ToString(Format.SixDecPlFormat) )); toStream.WriteLine(String.Format("\t\t\t\t{0} {1} {2} {3}", this.c1r0.ToString(Format.SixDecPlFormat), this.c1r1.ToString(Format.SixDecPlFormat), this.c1r2.ToString(Format.SixDecPlFormat), this.c1r3.ToString(Format.SixDecPlFormat) )); toStream.WriteLine(String.Format("\t\t\t\t{0} {1} {2} {3}", this.c2r0.ToString(Format.SixDecPlFormat), this.c2r1.ToString(Format.SixDecPlFormat), this.c2r2.ToString(Format.SixDecPlFormat), this.c2r3.ToString(Format.SixDecPlFormat) )); toStream.WriteLine(String.Format("\t\t\t\t{0} {1} {2} {3}", this.c3r0.ToString(Format.SixDecPlFormat), this.c3r1.ToString(Format.SixDecPlFormat), this.c3r2.ToString(Format.SixDecPlFormat), this.c3r3.ToString(Format.SixDecPlFormat) )); } } }