Files
stgsharp/源代码/.Net/StgSharp/Vector/Array3x3.cs
T

80 lines
2.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Security.Cryptography.X509Certificates;
using System.Text;
namespace StgSharp.Math
{
public struct Array3x3
{
public Vec3D row0;
public Vec3D row1;
public Vec3D row2;
public Vec3D colum0;
public Vec3D colum1;
public Vec3D colum2;
public Array3x3(Vec3D r0,Vec3D r1,Vec3D r2)
{
row0 = r0;
row1 = r1;
row2 = r2;
colum0 = new Vec3D(r0.X, r1.X, r2.X);
colum1 = new Vec3D(r0.Y, r1.Y, r2.Y);
colum2 = new Vec3D(r0.Z, r1.Z, r2.Z);
}
public Array3x3(
float a11,float a12,float a13,
float a21,float a22,float a23,
float a31,float a32,float a33
)
{
row0 = new Vec3D(a11, a12, a13);
row1 = new Vec3D(a21, a22, a23);
row2 = new Vec3D(a31, a32, a33);
colum0 = new Vec3D(a11,a21,a31);
colum1 = new Vec3D(a12,a22,a32);
colum2 = new Vec3D(a13,a23,a33);
}
public static Array3x3 operator +(Array3x3 array1, Array3x3 array2)
{
return new Array3x3(
array1.row0.X + array2.row0.X,
array1.row0.Y + array2.row0.Y,
array1.row0.Z + array2.row0.Z,
array1.row1.X + array2.row1.X,
array1.row1.Y + array2.row1.Y,
array1.row1.Z + array2.row1.Z,
array1.row2.X + array2.row2.X,
array1.row2.Y + array2.row2.Y,
array1.row2.Z + array2.row2.Z
);
}
public static Array3x3 operator -(Array3x3 array1, Array3x3 array2)
{
return new Array3x3(
array1.row0.X - array2.row0.X,
array1.row0.Y - array2.row0.Y,
array1.row0.Z - array2.row0.Z,
array1.row1.X - array2.row1.X,
array1.row1.Y - array2.row1.Y,
array1.row1.Z - array2.row1.Z,
array1.row2.X - array2.row2.X,
array1.row2.Y - array2.row2.Y,
array1.row2.Z - array2.row2.Z
);
}
}
}