This example shows the basic math features available with the VectorNav library.
class Program
{
static void Main(string[] args)
{
vec3f v1 = new vec3f(1.0f, 2.0f, 3.0f);
vec3d v2 = new vec3d(4.0, 5.0, 6.0);
vec4f v3 = new vec4f(1.0f, 2.0f, 3.0f, 4.0f);
Console.WriteLine("v1: {0}", v1);
Console.WriteLine("v2: {0}", v2);
Console.WriteLine("v3: {0}", v3);
Console.WriteLine("zero vector: {0}", vec3f.Zero);
Console.WriteLine("x-direction vector: {0}", vec3f.UnitX);
vec3f va = new vec3f(1, 2, 3);
vec3f vb = new vec3f(4, 5, 6);
Console.WriteLine("va + vb = {0}", va + vb);
Console.WriteLine("va - vb = {0}", va - vb);
Console.WriteLine("2 * va = {0}", 2 * va);
Console.WriteLine("va / 3 = {0}", va / 3);
Console.WriteLine("-va = {0}", -va);
Console.WriteLine("va magnitude = {0}", va.Magnitude());
Console.WriteLine("va normalized = {0}", va.Normalize());
Console.WriteLine("va y-component: {0}", va.Y);
Console.WriteLine("va z-component: {0}", va[2]);
mat3f m1 = new mat3f(1, 2, 3, 4, 5, 6, 7, 8, 9);
Console.WriteLine("m1: {0}", m1);
Console.WriteLine("one 3x3 matrix: {0}", mat3f.One);
Console.WriteLine("identity 3x3 matrix: {0}", mat3f.Identity);
mat3f ma = new mat3f(1, 2, 3, 4, 5, 6, 7, 8, 9);
mat3f mb = mat3f.One;
Console.WriteLine("ma + mb = {0}", ma + mb);
Console.WriteLine("ma - mb = {0}", ma - mb);
Console.WriteLine("2 * ma = {0}", 2 * ma);
Console.WriteLine("ma / 3 = {0}", ma / 3);
Console.WriteLine("-ma = {0}", -ma);
Console.WriteLine("ma transpose = {0}", ma.Transpose());
Console.WriteLine("0,0 element of ma: {0}", ma.E00);
Console.WriteLine("0,1 element of ma: {0}", ma[0,1]);
}
}