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)
));
}
}
}