daily update on 20230309 by nitload youmu
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -73,13 +73,7 @@ namespace StgSharp.Math
|
||||
);
|
||||
}
|
||||
|
||||
public static Matrix2x2 operator *(Colum2D colum, Vec2D vec)
|
||||
{
|
||||
return new Matrix2x2(
|
||||
colum.X * vec.X, colum.X * vec.Y,
|
||||
colum.Y * vec.X, colum.Y * vec.Y
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public static Colum2D operator *(Colum2D colum, float x)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Math
|
||||
{
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
public struct Colum3D : IEquatable<Colum3D>
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
public float X;
|
||||
[FieldOffset(4)]
|
||||
public float Y;
|
||||
[FieldOffset(8)]
|
||||
public float Z;
|
||||
|
||||
public Colum3D(float x, float y, float z)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
Z = z;
|
||||
}
|
||||
|
||||
bool IEquatable<Colum3D>.Equals(Colum3D other)
|
||||
{
|
||||
if (this.GetHashCode() != other.GetHashCode())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return this.X == other.X
|
||||
&& this.Y == other.Y
|
||||
&& this.Z == other.Z;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (obj.GetType() != typeof(Colum3D))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return this.Equals((Colum3D)obj);
|
||||
}
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return HashCode.Combine(X, Y, Z);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{X}\t{Y}\t{Z}";
|
||||
}
|
||||
|
||||
public static bool operator ==(Colum3D vec1, Colum3D vec2)
|
||||
{
|
||||
return vec1.X == vec2.X
|
||||
&& vec1.Y == vec2.Y
|
||||
&& vec1.Z == vec2.Z;
|
||||
}
|
||||
|
||||
public static bool operator !=(Colum3D vec1, Colum3D vec2)
|
||||
{
|
||||
return !(vec1.X == vec2.X
|
||||
&& vec1.Y == vec2.Y
|
||||
&& vec1.Z == vec2.Z);
|
||||
}
|
||||
|
||||
public static Colum3D operator +(Colum3D vec1, Colum3D vec2)
|
||||
{
|
||||
return new Colum3D(
|
||||
vec1.X + vec2.X,
|
||||
vec1.Y + vec2.Y,
|
||||
vec1.Z + vec2.Z
|
||||
);
|
||||
}
|
||||
|
||||
public static Colum3D operator -(Colum3D vec1, Colum3D vec2)
|
||||
{
|
||||
return new Colum3D(
|
||||
vec1.X - vec2.X,
|
||||
vec1.Y - vec2.Y,
|
||||
vec1.Z - vec2.Z
|
||||
);
|
||||
}
|
||||
|
||||
public static float operator *(Colum3D vec1, Colum3D vec2)
|
||||
{
|
||||
return
|
||||
vec1.X * vec2.X
|
||||
+ vec1.Y + vec2.Y
|
||||
+ vec1.Z + vec2.Z;
|
||||
}
|
||||
|
||||
public static Colum3D operator *(Colum3D vec, float x)
|
||||
{
|
||||
return new Colum3D(
|
||||
vec.X * x,
|
||||
vec.Y * x,
|
||||
vec.Z * x
|
||||
);
|
||||
}
|
||||
|
||||
public static Colum3D operator /(Colum3D vec, float x)
|
||||
{
|
||||
return new Colum3D(
|
||||
vec.X / x,
|
||||
vec.Y / x,
|
||||
vec.Z / x
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics.Contracts;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Math
|
||||
{
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
public struct Colum4D:IEquatable<Colum4D>
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
public float X;
|
||||
[FieldOffset(4)]
|
||||
public float Y;
|
||||
[FieldOffset(8)]
|
||||
public float Z;
|
||||
[FieldOffset(12)]
|
||||
public float W;
|
||||
|
||||
public Colum4D(float x, float y, float z, float w)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
Z = z;
|
||||
W = w;
|
||||
}
|
||||
|
||||
public bool Equals(Colum4D other)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
return base.Equals(obj);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return base.GetHashCode();
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return base.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,7 @@ namespace StgSharp.Math
|
||||
[FieldOffset(8)]
|
||||
public Vec2D row2;
|
||||
|
||||
|
||||
public Matrix2x2(Vec2D c0, Vec2D c1)
|
||||
{
|
||||
row1 = c0;
|
||||
@@ -71,63 +72,25 @@ namespace StgSharp.Math
|
||||
return $"{row1}\n{row2}";
|
||||
}
|
||||
|
||||
public static Matrix2x2 operator +(Matrix2x2 array1, Matrix2x2 array2)
|
||||
public static Matrix2x2 operator +(Matrix2x2 matrix1 , Matrix2x2 matrix2)
|
||||
{
|
||||
return new Matrix2x2(
|
||||
array1.row1 + array2.row1,
|
||||
array1.row2 + array2.row2
|
||||
matrix1.row1 + matrix2.row1,
|
||||
matrix1.row2 + matrix2.row2
|
||||
);
|
||||
}
|
||||
|
||||
public static Matrix2x2 operator -(Matrix2x2 array1, Matrix2x2 array2)
|
||||
public static Matrix2x2 operator -(Matrix2x2 matrix1, Matrix2x2 matrix2)
|
||||
{
|
||||
return new Matrix2x2(
|
||||
array1.row1 - array2.row1,
|
||||
array1.row2 - array2.row2
|
||||
matrix1.row1 - matrix2.row1,
|
||||
matrix1.row2 - matrix2.row2
|
||||
);
|
||||
}
|
||||
|
||||
public static unsafe Matrix2x2 operator *(Matrix2x2 array1, Matrix2x2 array2)
|
||||
{
|
||||
float* a11 = &array1.row1.X;
|
||||
float* a12 = a11++ ;
|
||||
float* a21 = a12++ ;
|
||||
float* a22 = a21++ ;
|
||||
|
||||
|
||||
float* b11 = &array2.row1.X ;
|
||||
float* b12 = b11++ ;
|
||||
float* b21 = b12++ ;
|
||||
float* b22 = b21++ ;
|
||||
|
||||
var s1 = *a21 + *a22;
|
||||
var s2 = s1 - *a11;
|
||||
var s3 = *a11 - *a21;
|
||||
var s4 = *a12 - s2;
|
||||
|
||||
var t1 = *b12 - *b11;
|
||||
var t2 = *b22 - t1;
|
||||
var t3 = *b22 - *b12;
|
||||
var t4 = t2 - *b21;
|
||||
|
||||
var m1 = *a11 * *b11;
|
||||
var m2 = *a12 * *b11;
|
||||
var m3 = s4 * *b22;
|
||||
var m4 = *a22 * t4;
|
||||
var m5 = s1 * t1;
|
||||
var m6 = s2 * t2;
|
||||
var m7 = s3 * t3;
|
||||
|
||||
var u1 = m1 + m2;
|
||||
var u2 = m1 + m6;
|
||||
var u3 = u2 + m7;
|
||||
var u4 = u2 + m5;
|
||||
var u5 = u4 + m3;
|
||||
var u6 = u3 - m4;
|
||||
var u7 = u3 + m5;
|
||||
|
||||
return new Matrix2x2(u1,u5,u6,u7);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,15 @@ namespace StgSharp.Math
|
||||
row2 = r2;
|
||||
}
|
||||
|
||||
public Matrix2x3(
|
||||
float r11, float r12, float r13,
|
||||
float r21, float r22, float r23
|
||||
)
|
||||
{
|
||||
row1 = new Vec3D(r11, r12, r13);
|
||||
row2 = new Vec3D(r21, r22, r23);
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
@@ -60,19 +69,19 @@ namespace StgSharp.Math
|
||||
}
|
||||
}
|
||||
|
||||
public static Matrix2x3 operator +(Matrix2x3 array1, Matrix2x3 array2)
|
||||
public static Matrix2x3 operator +(Matrix2x3 matrix1, Matrix2x3 matrix2)
|
||||
{
|
||||
return new Matrix2x3(
|
||||
array1.row1 + array2.row1,
|
||||
array1.row2 + array2.row2
|
||||
matrix1.row1 + matrix2.row1,
|
||||
matrix1.row2 + matrix2.row2
|
||||
);
|
||||
}
|
||||
|
||||
public static Matrix2x3 operator -(Matrix2x3 array1, Matrix2x3 array2)
|
||||
public static Matrix2x3 operator -(Matrix2x3 matrix1, Matrix2x3 matrix2)
|
||||
{
|
||||
return new Matrix2x3(
|
||||
array1.row1 - array2.row1,
|
||||
array1.row2 - array2.row2
|
||||
matrix1.row1 - matrix2.row1,
|
||||
matrix1.row2 - matrix2.row2
|
||||
);
|
||||
}
|
||||
|
||||
@@ -92,51 +101,7 @@ namespace StgSharp.Math
|
||||
);
|
||||
}
|
||||
|
||||
public static unsafe Matrix2x2 operator *(Matrix2x3 array1, Matrix3x2 array2)
|
||||
{
|
||||
float* p1 = &array1.row1.X;
|
||||
float* p2 = &array2.row2.X;
|
||||
|
||||
Vec2D a11 = new Vec2D(*(p1 + 0), *(p1 + 1));
|
||||
Vec2D a12 = new Vec2D(*(p1 + 2), 0);
|
||||
Vec2D a21 = new Vec2D(*(p1 + 3), *(p1 + 4));
|
||||
Vec2D a22 = new Vec2D(*(p1 + 5), 0);
|
||||
|
||||
Colum2D b11 = new Colum2D(*(p2 + 0), *(p2 + 2));
|
||||
Colum2D b12 = new Colum2D(*(p2 + 1), *(p2 + 3));
|
||||
Colum2D b21 = new Colum2D(*(p2 + 4), 0);
|
||||
Colum2D b22 = new Colum2D(*(p2 + 5), 0);
|
||||
|
||||
var s1 = a21 + a22;
|
||||
var s2 = s1 - a11;
|
||||
var s3 = a11 - a21;
|
||||
var s4 = a12 - s2;
|
||||
|
||||
var t1 = b12 - b11;
|
||||
var t2 = b22 - t1;
|
||||
var t3 = b22 - b12;
|
||||
var t4 = t2 - b21;
|
||||
|
||||
var m1 = a11 * b11;
|
||||
var m2 = a12 * b11;
|
||||
var m3 = s4 * b22;
|
||||
var m4 = a22 * t4;
|
||||
var m5 = s1 * t1;
|
||||
var m6 = s2 * t2;
|
||||
var m7 = s3 * t3;
|
||||
|
||||
var u1 = m1 + m2;
|
||||
var u2 = m1 + m6;
|
||||
var u3 = u2 + m7;
|
||||
var u4 = u2 + m5;
|
||||
var u5 = u4 + m3;
|
||||
var u6 = u3 - m4;
|
||||
var u7 = u3 + m5;
|
||||
|
||||
return new Matrix2x2(
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,14 @@ namespace StgSharp.Math
|
||||
row2 = r2;
|
||||
}
|
||||
|
||||
|
||||
public Matrix2x4(
|
||||
float a11, float a12, float a13, float a14,
|
||||
float a21, float a22, float a23, float a24
|
||||
)
|
||||
{
|
||||
row1 = new Vec4D(a11,a12,a13,a14);
|
||||
row2 = new Vec4D(a21,a22,a23,a24);
|
||||
}
|
||||
|
||||
public bool Equals(Matrix2x4 other)
|
||||
{
|
||||
@@ -61,19 +68,19 @@ namespace StgSharp.Math
|
||||
return $"{this.row1}\n{this.row2}";
|
||||
}
|
||||
|
||||
public static Matrix2x4 operator +(Matrix2x4 array1,Matrix2x4 array2)
|
||||
public static Matrix2x4 operator +(Matrix2x4 matrix1 ,Matrix2x4 matrix2)
|
||||
{
|
||||
return new Matrix2x4(
|
||||
array1.row1 + array2.row1,
|
||||
array1.row2 + array2.row2
|
||||
matrix1.row1 + matrix2.row1,
|
||||
matrix1.row2 + matrix2.row2
|
||||
) ;
|
||||
}
|
||||
|
||||
public static Matrix2x4 operator -(Matrix2x4 array1, Matrix2x4 array2)
|
||||
public static Matrix2x4 operator -(Matrix2x4 matrix1, Matrix2x4 matrix2)
|
||||
{
|
||||
return new Matrix2x4(
|
||||
array1.row1 - array2.row1,
|
||||
array1.row2 - array2.row2
|
||||
matrix1.row1 - matrix2.row1,
|
||||
matrix1.row2 - matrix2.row2
|
||||
);
|
||||
}
|
||||
|
||||
@@ -93,48 +100,6 @@ namespace StgSharp.Math
|
||||
);
|
||||
}
|
||||
|
||||
public static unsafe Matrix2x2 operator *(Matrix2x4 array1,Matrix4x2 array2)
|
||||
{
|
||||
float* p1 = &array1.row1.X;
|
||||
float* p2 = &array2.row2.X;
|
||||
|
||||
Vec2D a11 = new Vec2D(*(p1 + 0), *(p1 + 2));
|
||||
Vec2D a12 = new Vec2D(*(p1 + 1), *(p1 + 3));
|
||||
Vec2D a21 = new Vec2D(*(p1 + 4), *(p1 + 6));
|
||||
Vec2D a22 = new Vec2D(*(p1 + 5), *(p1 + 7));
|
||||
|
||||
Colum2D b11 = new Colum2D(*(p2 + 0), *(p2 + 1));
|
||||
Colum2D b12 = new Colum2D(*(p2 + 2), *(p2 + 3));
|
||||
Colum2D b21 = new Colum2D(*(p2 + 4), *(p2 + 5));
|
||||
Colum2D b22 = new Colum2D(*(p2 + 6), *(p2 + 7));
|
||||
|
||||
var s1 = a21 + a22;
|
||||
var s2 = s1 - a11;
|
||||
var s3 = a11 - a21;
|
||||
var s4 = a12 - s2;
|
||||
|
||||
var t1 = b12 - b11;
|
||||
var t2 = b22 - t1;
|
||||
var t3 = b22 - b12;
|
||||
var t4 = t2 - b21;
|
||||
|
||||
var m1 = a11 * b11;
|
||||
var m2 = a12 * b11;
|
||||
var m3 = s4 * b22;
|
||||
var m4 = a22 * t4;
|
||||
var m5 = s1 * t1;
|
||||
var m6 = s2 * t2;
|
||||
var m7 = s3 * t3;
|
||||
|
||||
var u1 = m1 + m2;
|
||||
var u2 = m1 + m6;
|
||||
var u3 = u2 + m7;
|
||||
var u4 = u2 + m5;
|
||||
var u5 = u4 + m3;
|
||||
var u6 = u3 - m4;
|
||||
var u7 = u3 + m5;
|
||||
|
||||
return new Matrix2x2(u1,u5,u6,u7);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,18 @@ namespace StgSharp.Math
|
||||
row2= r2;
|
||||
row3= r3;
|
||||
}
|
||||
|
||||
public Matrix3x2(
|
||||
float a11, float a12,
|
||||
float a21, float a22,
|
||||
float a31, float a32
|
||||
)
|
||||
{
|
||||
row1 = new Vec2D(a11, a12);
|
||||
row2 = new Vec2D(a21, a22);
|
||||
row3 = new Vec2D(a31, a32);
|
||||
}
|
||||
|
||||
bool IEquatable<Matrix3x2>.Equals(Matrix3x2 other)
|
||||
{
|
||||
if (this.GetHashCode() != other.GetHashCode())
|
||||
@@ -63,23 +75,21 @@ namespace StgSharp.Math
|
||||
return $"{row1}\n{row2}\n{row3}";
|
||||
}
|
||||
|
||||
public static unsafe Matrix3x3 operator *(Matrix3x2 array1, Matrix3x2 array2)
|
||||
public static Matrix3x2 operator +(Matrix3x2 matrix1, Matrix3x2 matrix2)
|
||||
{
|
||||
float* p1 = &array1.row1.X;
|
||||
float* p2 = &array2.row2.X;
|
||||
return new Matrix3x2(
|
||||
matrix1.row1 + matrix2.row1,
|
||||
matrix1.row2 + matrix2.row2,
|
||||
matrix1.row3 + matrix2.row3
|
||||
);
|
||||
}
|
||||
|
||||
Matrix2x2 a11 = new Matrix2x2();
|
||||
|
||||
return new Matrix3x3(
|
||||
*(p1 + 0) * *(p2 + 0) + *(p1 + 1) * *(p2 + 3),
|
||||
*(p1 + 0) * *(p2 + 1) + *(p1 + 1) * *(p2 + 4),
|
||||
*(p1 + 0) * *(p2 + 2) + *(p1 + 1) * *(p2 + 5),
|
||||
*(p1 + 2) * *(p2 + 0) + *(p1 + 3) * *(p2 + 3),
|
||||
*(p1 + 2) * *(p2 + 1) + *(p1 + 3) * *(p2 + 4),
|
||||
*(p1 + 2) * *(p2 + 2) + *(p1 + 3) * *(p2 + 5),
|
||||
*(p1 + 4) * *(p2 + 0) + *(p1 + 5) * *(p2 + 3),
|
||||
*(p1 + 4) * *(p2 + 1) + *(p1 + 5) * *(p2 + 4),
|
||||
*(p1 + 4) * *(p2 + 2) + *(p1 + 5) * *(p2 + 5)
|
||||
public static Matrix3x2 operator -(Matrix3x2 matrix1, Matrix3x2 matrix2)
|
||||
{
|
||||
return new Matrix3x2(
|
||||
matrix1.row1 - matrix2.row1,
|
||||
matrix1.row2 - matrix2.row2,
|
||||
matrix1.row3 - matrix2.row3
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Math
|
||||
@@ -79,69 +77,51 @@ namespace StgSharp.Math
|
||||
|
||||
|
||||
|
||||
public static bool operator ==(Matrix3x3 array1, Matrix3x3 array2)
|
||||
public static bool operator ==(Matrix3x3 matrix1, Matrix3x3 matrix2)
|
||||
{
|
||||
return array1.Equals(array2);
|
||||
return matrix1.Equals(matrix2);
|
||||
}
|
||||
|
||||
public static bool operator !=(Matrix3x3 array1, Matrix3x3 array2)
|
||||
public static bool operator !=(Matrix3x3 matrix1, Matrix3x3 matrix2)
|
||||
{
|
||||
return !array1.Equals(array2);
|
||||
return !matrix1.Equals(matrix2);
|
||||
}
|
||||
|
||||
public static Matrix3x3 operator +(Matrix3x3 array1, Matrix3x3 array2)
|
||||
public static Matrix3x3 operator +(Matrix3x3 matrix1, Matrix3x3 matrix2)
|
||||
{
|
||||
return new Matrix3x3(
|
||||
array1.row1.X + array2.row1.X,
|
||||
array1.row1.Y + array2.row1.Y,
|
||||
array1.row1.Z + array2.row1.Z,
|
||||
matrix1.row1.X + matrix2.row1.X,
|
||||
matrix1.row1.Y + matrix2.row1.Y,
|
||||
matrix1.row1.Z + matrix2.row1.Z,
|
||||
|
||||
array1.row2.X + array2.row2.X,
|
||||
array1.row2.Y + array2.row2.Y,
|
||||
array1.row2.Z + array2.row2.Z,
|
||||
matrix1.row2.X + matrix2.row2.X,
|
||||
matrix1.row2.Y + matrix2.row2.Y,
|
||||
matrix1.row2.Z + matrix2.row2.Z,
|
||||
|
||||
array1.row3.X + array2.row3.X,
|
||||
array1.row3.Y + array2.row3.Y,
|
||||
array1.row3.Z + array2.row3.Z
|
||||
matrix1.row3.X + matrix2.row3.X,
|
||||
matrix1.row3.Y + matrix2.row3.Y,
|
||||
matrix1.row3.Z + matrix2.row3.Z
|
||||
);
|
||||
}
|
||||
|
||||
public static Matrix3x3 operator -(Matrix3x3 array1, Matrix3x3 array2)
|
||||
public static Matrix3x3 operator -(Matrix3x3 matrix1, Matrix3x3 matrix2)
|
||||
{
|
||||
return new Matrix3x3(
|
||||
array1.row1.X - array2.row1.X,
|
||||
array1.row1.Y - array2.row1.Y,
|
||||
array1.row1.Z - array2.row1.Z,
|
||||
matrix1.row1.X - matrix2.row1.X,
|
||||
matrix1.row1.Y - matrix2.row1.Y,
|
||||
matrix1.row1.Z - matrix2.row1.Z,
|
||||
|
||||
array1.row2.X - array2.row2.X,
|
||||
array1.row2.Y - array2.row2.Y,
|
||||
array1.row2.Z - array2.row2.Z,
|
||||
matrix1.row2.X - matrix2.row2.X,
|
||||
matrix1.row2.Y - matrix2.row2.Y,
|
||||
matrix1.row2.Z - matrix2.row2.Z,
|
||||
|
||||
array1.row3.X - array2.row3.X,
|
||||
array1.row3.Y - array2.row3.Y,
|
||||
array1.row3.Z - array2.row3.Z
|
||||
matrix1.row3.X - matrix2.row3.X,
|
||||
matrix1.row3.Y - matrix2.row3.Y,
|
||||
matrix1.row3.Z - matrix2.row3.Z
|
||||
);
|
||||
}
|
||||
|
||||
public static unsafe Matrix3x3 operator *(Matrix3x3 array1,Matrix3x3 array2)
|
||||
{
|
||||
float* p1 = &array1.row1.X;
|
||||
float* p2 = &array2.row1.X;
|
||||
|
||||
|
||||
|
||||
return new Matrix3x3(
|
||||
*(p1 + 0) * *(p2 + 0) + *(p1 + 1) * *(p2 + 3) + *(p1 + 2) * *(p2 + 6),
|
||||
*(p1 + 0) * *(p2 + 1) + *(p1 + 1) * *(p2 + 4) + *(p1 + 2) * *(p2 + 7),
|
||||
*(p1 + 0) * *(p2 + 2) + *(p1 + 1) * *(p2 + 5) + *(p1 + 2) * *(p2 + 8),
|
||||
*(p1 + 3) * *(p2 + 0) + *(p1 + 4) * *(p2 + 3) + *(p1 + 5) * *(p2 + 6),
|
||||
*(p1 + 3) * *(p2 + 1) + *(p1 + 4) * *(p2 + 4) + *(p1 + 5) * *(p2 + 7),
|
||||
*(p1 + 3) * *(p2 + 2) + *(p1 + 4) * *(p2 + 5) + *(p1 + 5) * *(p2 + 8),
|
||||
*(p1 + 6) * *(p2 + 0) + *(p1 + 7) * *(p2 + 3) + *(p1 + 2) * *(p2 + 6),
|
||||
*(p1 + 6) * *(p2 + 1) + *(p1 + 7) * *(p2 + 4) + *(p1 + 2) * *(p2 + 7),
|
||||
*(p1 + 6) * *(p2 + 2) + *(p1 + 7) * *(p2 + 5) + *(p1 + 2) * *(p2 + 8)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public static Matrix3x3 operator *(Matrix3x3 array, float x)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
using StgSharp.Math;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Math
|
||||
{
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
public struct Matrix3x4:IEquatable<Matrix3x4>
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
public Vec4D row1;
|
||||
[FieldOffset(16)]
|
||||
public Vec4D row2;
|
||||
[FieldOffset(32)]
|
||||
public Vec4D row3;
|
||||
|
||||
public Matrix3x4(
|
||||
Vec4D r1, Vec4D r2, Vec4D r3
|
||||
)
|
||||
{
|
||||
this.row1 = r1;
|
||||
this.row2 = r2;
|
||||
this.row3 = r3;
|
||||
}
|
||||
|
||||
public Matrix3x4(
|
||||
float a11, float a12, float a13, float a14,
|
||||
float a21, float a22, float a23, float a24,
|
||||
float a31, float a32, float a33, float a34
|
||||
)
|
||||
{
|
||||
row1 = new Vec4D(a11,a12,a13,a14);
|
||||
row2 = new Vec4D(a21,a22,a23,a24);
|
||||
row3 = new Vec4D(a31,a32,a33,a34);
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (obj.GetType() != typeof(Matrix3x4))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return this.Equals((Matrix3x4)obj);
|
||||
}
|
||||
}
|
||||
|
||||
bool IEquatable<Matrix3x4>.Equals(Matrix3x4 other)
|
||||
{
|
||||
if (this.GetHashCode() != other.GetHashCode())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return this.row1 == other.row1
|
||||
&& this.row2 == other.row2
|
||||
&& this.row3 == other.row3;
|
||||
}
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return HashCode.Combine(this.row1,this.row2,this.row3);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{this.row1}\n{this.row2}\n{this.row3}";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,19 @@ namespace StgSharp.Math
|
||||
row4 = r4;
|
||||
}
|
||||
|
||||
public Matrix4x2(
|
||||
float a11, float a12,
|
||||
float a21, float a22,
|
||||
float a31, float a32,
|
||||
float a41, float a42
|
||||
)
|
||||
{
|
||||
row1 = new Vec2D(a11, a12);
|
||||
row2 = new Vec2D(a21, a22);
|
||||
row3 = new Vec2D(a31, a32);
|
||||
row4 = new Vec2D(a41, a42);
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
@@ -66,53 +79,6 @@ namespace StgSharp.Math
|
||||
}
|
||||
}
|
||||
|
||||
public static unsafe Matrix4x4 operator *(Matrix4x2 array1,Matrix4x2 array2)
|
||||
{
|
||||
float* p1 = &array1.row1.X;
|
||||
float* p2 = &array2.row1.X;
|
||||
|
||||
Colum2D a11 = new Colum2D(*(p1 + 0), *(p1 + 2));
|
||||
Colum2D a12 = new Colum2D(*(p1 + 1), *(p1 + 3));
|
||||
Colum2D a21 = new Colum2D(*(p1 + 4), *(p1 + 6));
|
||||
Colum2D a22 = new Colum2D(*(p1 + 5), *(p1 + 7));
|
||||
|
||||
Vec2D b11 = new Vec2D(*(p2 + 0), *(p2 + 1));
|
||||
Vec2D b12 = new Vec2D(*(p2 + 2), *(p2 + 3));
|
||||
Vec2D b21 = new Vec2D(*(p2 + 4), *(p2 + 5));
|
||||
Vec2D b22 = new Vec2D(*(p2 + 6), *(p2 + 7));
|
||||
|
||||
var s1 = a21 + a22;
|
||||
var s2 = s1 - a11;
|
||||
var s3 = a11 - a21;
|
||||
var s4 = a12 - s2;
|
||||
|
||||
var t1 = b12 - b11;
|
||||
var t2 = b22 - t1;
|
||||
var t3 = b22 - b12;
|
||||
var t4 = t2 - b21;
|
||||
|
||||
var m1 = a11 * b11;
|
||||
var m2 = a12 * b11;
|
||||
var m3 = s4 * b22;
|
||||
var m4 = a22 * t4;
|
||||
var m5 = s1 * t1;
|
||||
var m6 = s2 * t2;
|
||||
var m7 = s3 * t3;
|
||||
|
||||
var u1 = m1 + m2;
|
||||
var u2 = m1 + m6;
|
||||
var u3 = u2 + m7;
|
||||
var u4 = u2 + m5;
|
||||
var u5 = u4 + m3;
|
||||
var u6 = u3 - m4;
|
||||
var u7 = u3 + m5;
|
||||
|
||||
return new Matrix4x4(
|
||||
new Vec4D(u1.row1, u5.row1),
|
||||
new Vec4D(u1.row2, u5.row2),
|
||||
new Vec4D(u6.row1, u7.row1),
|
||||
new Vec4D(u6.row2, u7.row2)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Math
|
||||
{
|
||||
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
public struct Matrix4x3:IEquatable<Matrix4x3>
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
public Vec3D row1;
|
||||
[FieldOffset(12)]
|
||||
public Vec3D row2;
|
||||
[FieldOffset(24)]
|
||||
public Vec3D row3;
|
||||
[FieldOffset(36)]
|
||||
public Vec3D row4;
|
||||
|
||||
public Matrix4x3(
|
||||
float a11, float a12, float a13,
|
||||
float a21, float a22, float a23,
|
||||
float a31, float a32, float a33,
|
||||
float a41, float a42, float a43
|
||||
)
|
||||
{
|
||||
row1 = new Vec3D(a11, a12, a13);
|
||||
row2 = new Vec3D(a21, a22, a23);
|
||||
row3 = new Vec3D(a31, a32, a33);
|
||||
row4 = new Vec3D(a41, a42, a43);
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (obj.GetType() != typeof(Matrix4x3))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return this.Equals((Matrix4x3)obj);
|
||||
}
|
||||
}
|
||||
|
||||
bool IEquatable<Matrix4x3>.Equals(Matrix4x3 other)
|
||||
{
|
||||
if (this.GetHashCode() != other.GetHashCode())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return this.row1 == other.row1
|
||||
&& this.row2 == other.row2
|
||||
&& this.row3 == other.row3
|
||||
&& this.row4 == other.row4;
|
||||
}
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return base.GetHashCode();
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return base.ToString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -33,9 +33,9 @@ namespace StgSharp.Math
|
||||
)
|
||||
{
|
||||
row1 = new Vec4D(a11, a12, a13, a14);
|
||||
row2 = new Vec4D(a11, a12, a13, a14);
|
||||
row3 = new Vec4D(a11, a12, a13, a14);
|
||||
row4 = new Vec4D(a11, a12, a13, a14);
|
||||
row2 = new Vec4D(a21, a22, a23, a24);
|
||||
row3 = new Vec4D(a31, a32, a33, a34);
|
||||
row4 = new Vec4D(a41, a42, a43, a44);
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
@@ -68,23 +68,23 @@ namespace StgSharp.Math
|
||||
return $"{this.row1}\n{this.row2}\n{this.row3}\n{this.row4}";
|
||||
}
|
||||
|
||||
public static Matrix4x4 operator +(Matrix4x4 array1, Matrix4x4 array2)
|
||||
public static Matrix4x4 operator +(Matrix4x4 matrix1, Matrix4x4 matrix2)
|
||||
{
|
||||
return new Matrix4x4(
|
||||
array1.row1 + array2.row1,
|
||||
array1.row2 + array2.row2,
|
||||
array1.row3 + array2.row3,
|
||||
array1.row4 + array2.row4
|
||||
matrix1.row1 + matrix2.row1,
|
||||
matrix1.row2 + matrix2.row2,
|
||||
matrix1.row3 + matrix2.row3,
|
||||
matrix1.row4 + matrix2.row4
|
||||
);
|
||||
}
|
||||
|
||||
public static Matrix4x4 operator -(Matrix4x4 array1, Matrix4x4 array2)
|
||||
public static Matrix4x4 operator -(Matrix4x4 matrix1, Matrix4x4 matrix2)
|
||||
{
|
||||
return new Matrix4x4(
|
||||
array1.row1 - array2.row1,
|
||||
array1.row2 - array2.row2,
|
||||
array1.row3 - array2.row3,
|
||||
array1.row4 - array2.row4
|
||||
matrix1.row1 - matrix2.row1,
|
||||
matrix1.row2 - matrix2.row2,
|
||||
matrix1.row3 - matrix2.row3,
|
||||
matrix1.row4 - matrix2.row4
|
||||
);
|
||||
}
|
||||
|
||||
@@ -98,54 +98,7 @@ namespace StgSharp.Math
|
||||
);
|
||||
}
|
||||
|
||||
public static unsafe Matrix4x4 operator *(Matrix4x4 array1, Matrix4x4 array2)
|
||||
{
|
||||
float* p1 = &array1.row1.X;
|
||||
float* p2 = &array2.row1.X;
|
||||
|
||||
Matrix2x2 a11 = new Matrix2x2(*p1,*(p1 + 1),*(p1 + 4),*(p1 + 5));
|
||||
Matrix2x2 a12 = new Matrix2x2(*(p1 + 2), *(p1 + 3),*(p1 + 6),*(p1 + 7));
|
||||
Matrix2x2 a21 = new Matrix2x2(*(p1 + 8), *(p1 + 9),*(p1 + 12),*(p1 + 13));
|
||||
Matrix2x2 a22 = new Matrix2x2(*(p1 + 10), *(p1 + 11),*(p1 + 14),*(p1 + 15));
|
||||
|
||||
Matrix2x2 b11 = new Matrix2x2(*p1, *(p1 + 1), *(p1 + 4), *(p1 + 5));
|
||||
Matrix2x2 b12 = new Matrix2x2(*(p1 + 2), *(p1 + 3), *(p1 + 6), *(p1 + 7));
|
||||
Matrix2x2 b21 = new Matrix2x2(*(p1 + 8), *(p1 + 9), *(p1 + 12), *(p1 + 13));
|
||||
Matrix2x2 b22 = new Matrix2x2(*(p1 + 10), *(p1 + 11), *(p1 + 14), *(p1 + 15));
|
||||
|
||||
var s1 = a21 + a22;
|
||||
var s2 = s1 - a11;
|
||||
var s3 = a11 - a21;
|
||||
var s4 = a12 - s2;
|
||||
|
||||
var t1 = b12 - b11;
|
||||
var t2 = b22 - t1;
|
||||
var t3 = b22 - b12;
|
||||
var t4 = t2 - b21;
|
||||
|
||||
var m1 = a11 * b11;
|
||||
var m2 = a12 * b11;
|
||||
var m3 = s4 * b22;
|
||||
var m4 = a22 * t4;
|
||||
var m5 = s1 * t1;
|
||||
var m6 = s2 * t2;
|
||||
var m7 = s3 * t3;
|
||||
|
||||
var u1 = m1 + m2;
|
||||
var u2 = m1 + m6;
|
||||
var u3 = u2 + m7;
|
||||
var u4 = u2 + m5;
|
||||
var u5 = u4 + m3;
|
||||
var u6 = u3 - m4;
|
||||
var u7 = u3 + m5;
|
||||
|
||||
return new Matrix4x4(
|
||||
new Vec4D(u1.row1,u5.row1),
|
||||
new Vec4D(u1.row2,u5.row2),
|
||||
new Vec4D(u6.row1,u7.row1),
|
||||
new Vec4D(u6.row2,u7.row2)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -77,17 +77,7 @@ namespace StgSharp.Math
|
||||
|
||||
public static Vec2D operator -(Vec2D vec1, Vec2D vec2)
|
||||
{
|
||||
return new Vec2D(vec1.X + vec2.X, vec1.Y + vec2.Y);
|
||||
}
|
||||
|
||||
public static float operator *(Vec2D vec1, Vec2D vec2)
|
||||
{
|
||||
return vec1.X * vec2.X + vec1.Y*vec2.Y;
|
||||
}
|
||||
|
||||
public static float operator *(Vec2D vec, Colum2D colum)
|
||||
{
|
||||
return vec.X * colum.Y + vec.Y * colum.X;
|
||||
return new Vec2D(vec1.X - vec2.X, vec1.Y - vec2.Y);
|
||||
}
|
||||
|
||||
public static Vec2D operator *(Vec2D vec, float x)
|
||||
|
||||
@@ -20,23 +20,23 @@ namespace StgSharp.Math
|
||||
[FieldOffset(12)]
|
||||
public float W;
|
||||
|
||||
|
||||
[FieldOffset(0)]
|
||||
public Vec2D Point1;
|
||||
[FieldOffset(8)]
|
||||
public Vec2D Point2;
|
||||
|
||||
public Vec4D(float x,float y,float z,float w)
|
||||
|
||||
public Vec4D(float a1,float a2,float a3,float a4)
|
||||
{
|
||||
Point1 = new Vec2D();
|
||||
Point2 = new Vec2D();
|
||||
Point1= default(Vec2D);
|
||||
Point2= default(Vec2D);
|
||||
|
||||
X = x;
|
||||
Y = y;
|
||||
Z = z;
|
||||
W = w;
|
||||
X = a1;
|
||||
Y = a2;
|
||||
Z = a3;
|
||||
W = a4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Vec4D(Vec2D p1,Vec2D p2)
|
||||
{
|
||||
X= 0;
|
||||
@@ -47,6 +47,7 @@ namespace StgSharp.Math
|
||||
Point1= p1;
|
||||
Point2 = p2;
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
@@ -71,9 +72,10 @@ namespace StgSharp.Math
|
||||
}
|
||||
else
|
||||
{
|
||||
return
|
||||
this.Point1 == other.Point1
|
||||
&& this.Point2 == other.Point2;
|
||||
return this.X == other.X
|
||||
&& this.Y == other.Y
|
||||
&& this.Z == other.Z
|
||||
&& this.W == other.Z;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,7 +86,7 @@ namespace StgSharp.Math
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{X}\t{Y}\t{Y}\t{Y}";
|
||||
return $"{X}\t{Y}\t{Z}\t{W}";
|
||||
}
|
||||
|
||||
public static bool operator ==(Vec4D vec1, Vec4D vec2)
|
||||
|
||||
@@ -16,23 +16,23 @@ namespace StgSharp.Math
|
||||
{
|
||||
float* p = &array.row1.X;
|
||||
|
||||
Matrix2x2 array1 = new Matrix2x2(
|
||||
Matrix2x2 matrix1 = new Matrix2x2(
|
||||
*(p + 4), *(p + 5),
|
||||
*(p + 7), *(p + 8)
|
||||
);
|
||||
Matrix2x2 array2 = new Matrix2x2(
|
||||
Matrix2x2 matrix2 = new Matrix2x2(
|
||||
*(p + 3), *(p + 5),
|
||||
*(p + 6), *(p + 8)
|
||||
);
|
||||
Matrix2x2 array3 = new Matrix2x2(
|
||||
Matrix2x2 matrix3 = new Matrix2x2(
|
||||
*(p + 3), *(p + 4),
|
||||
*(p + 6), *(p + 7)
|
||||
);
|
||||
|
||||
return
|
||||
*p * Det(array1)
|
||||
- *(p + 1) * Det(array2)
|
||||
+ *(p + 2) * Det(array3)
|
||||
*p * Det(matrix1)
|
||||
- *(p + 1) * Det(matrix2)
|
||||
+ *(p + 2) * Det(matrix3)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace StgSharp.Math
|
||||
public static float GetAngle(Vec2D vec1, Vec2D vec2)
|
||||
{
|
||||
return Calc.ACos(
|
||||
vec1 * vec2
|
||||
vec1 .multiple(vec2)
|
||||
/ (vec1.GetLength() * vec2.GetLength())
|
||||
);
|
||||
}
|
||||
|
||||
@@ -6,10 +6,11 @@ namespace StgSharp.Math
|
||||
{
|
||||
public static unsafe partial class Vector
|
||||
{
|
||||
|
||||
/*
|
||||
public static Vec2D GetVector(Vec4D pointPair)
|
||||
{
|
||||
return pointPair.Point2-pointPair.Point1;
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,615 @@ namespace StgSharp.Math
|
||||
{
|
||||
public static unsafe partial class VectorCalc
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="colum"></param>
|
||||
/// <param name="vec"></param>
|
||||
/// <returns></returns>
|
||||
public static Matrix2x2 multiple(this Colum2D colum, Vec2D vec)
|
||||
{
|
||||
return new Matrix2x2(
|
||||
colum.X * vec.X, colum.X * vec.Y,
|
||||
colum.Y * vec.X, colum.Y * vec.Y
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="vec1"></param>
|
||||
/// <param name="vec2"></param>
|
||||
/// <returns></returns>
|
||||
public static float multiple(this Vec2D vec1, Vec2D vec2)
|
||||
{
|
||||
return vec1.X * vec2.X + vec1.Y * vec2.Y;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="vec"></param>
|
||||
/// <param name="colum"></param>
|
||||
/// <returns></returns>
|
||||
public static float multiple(this Vec2D vec, Colum2D colum)
|
||||
{
|
||||
return vec.X * colum.X + vec.Y * colum.Y;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="vec"></param>
|
||||
/// <param name="matrix"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Vec2D multiple(this Vec2D vec, Matrix2x2 matrix)
|
||||
{
|
||||
return new Vec2D(
|
||||
vec.X * matrix.row1.X + vec.Y * matrix.row2.X,
|
||||
vec.X * matrix.row1.Y + vec.Y * matrix.row2.Y
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix"></param>
|
||||
/// <param name="colum"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Colum2D multiple(this Matrix2x2 matrix, Colum2D colum)
|
||||
{
|
||||
float* p1 = &matrix.row1.X;
|
||||
float* p2 = &colum.X;
|
||||
|
||||
return new Colum2D(
|
||||
*(p1 + 0) * *(p2 + 0) + *(p1 + 1) * *(p2 + 1),
|
||||
*(p1 + 2) * *(p2 + 0) + *(p1 + 3) * *(p2 + 1)
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix1"></param>
|
||||
/// <param name="matrix2"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Matrix2x2 multiple(this Matrix2x2 matrix1, Matrix2x2 matrix2)
|
||||
{
|
||||
float* a11 = &matrix1.row1.X;
|
||||
float* a12 = &matrix1.row1.Y;
|
||||
float* a21 = &matrix1.row2.X;
|
||||
float* a22 = &matrix1.row2.Y;
|
||||
|
||||
float* b11 = &matrix2.row1.X;
|
||||
float* b12 = &matrix2.row1.Y;
|
||||
float* b21 = &matrix2.row2.X;
|
||||
float* b22 = &matrix2.row2.Y;
|
||||
|
||||
var s1 = *a21 + *a22;
|
||||
var s2 = s1 - *a11;
|
||||
var s3 = *a11 - *a21;
|
||||
var s4 = *a12 - s2;
|
||||
|
||||
Console.WriteLine($"{s1}\t{s2}\t{s3}\t{s4}\n");
|
||||
|
||||
var t1 = *b12 - *b11;
|
||||
var t2 = *b22 - t1;
|
||||
var t3 = *b22 - *b12;
|
||||
var t4 = t2 - *b21;
|
||||
|
||||
var m1 = *a11 * *b11;
|
||||
var m2 = *a12 * *b21;
|
||||
var m3 = s4 * *b22;
|
||||
var m4 = *a22 * t4;
|
||||
var m5 = s1 * t1;
|
||||
var m6 = s2 * t2;
|
||||
var m7 = s3 * t3;
|
||||
|
||||
var u1 = m1 + m2;
|
||||
var u2 = m1 + m6;
|
||||
var u3 = u2 + m7;
|
||||
var u4 = u2 + m5;
|
||||
var u5 = u4 + m3;
|
||||
var u6 = u3 - m4;
|
||||
var u7 = u3 + m5;
|
||||
|
||||
return new Matrix2x2(u1, u5, u6, u7);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix1"></param>
|
||||
/// <param name="matrix2"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Matrix2x3 multiple(this Matrix2x2 matrix1, Matrix2x3 matrix2)
|
||||
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
float a11 = *p1;
|
||||
float a12 = *(p1 + 1);
|
||||
float a21 = *(p1 + 2);
|
||||
float a22 = *(p1 + 3);
|
||||
|
||||
Vec2D b11 = new Vec2D(*(p2 + 0), *(p2 + 1));
|
||||
Vec2D b12 = new Vec2D(*(p2 + 2), 0);
|
||||
Vec2D b21 = new Vec2D(*(p2 + 3), *(p2 + 4));
|
||||
Vec2D b22 = new Vec2D(*(p2 + 5), 0);
|
||||
|
||||
var s1 = a21 + a22;
|
||||
var s2 = s1 - a11;
|
||||
var s3 = a11 - a21;
|
||||
var s4 = a12 - s2;
|
||||
|
||||
var t1 = b12 - b11;
|
||||
var t2 = b22 - t1;
|
||||
var t3 = b22 - b12;
|
||||
var t4 = t2 - b21;
|
||||
|
||||
var m1 = b11 * a11;
|
||||
var m2 = b21 * a12;
|
||||
var m3 = b22 * s4;
|
||||
var m4 = t4 * a22;
|
||||
var m5 = t1 * s1;
|
||||
var m6 = t2 * s2;
|
||||
var m7 = t3 * s3;
|
||||
|
||||
var u1 = m1 + m2;
|
||||
var u2 = m1 + m6;
|
||||
var u3 = u2 + m7;
|
||||
var u4 = u2 + m5;
|
||||
var u5 = u4 + m3;
|
||||
var u6 = u3 - m4;
|
||||
var u7 = u3 + m5;
|
||||
|
||||
return new Matrix2x3(
|
||||
u1.X, u1.Y, u5.X,
|
||||
u6.X, u6.Y, u7.X
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix1"></param>
|
||||
/// <param name="matrix2"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Matrix2x4 multiple(this Matrix2x2 matrix1, Matrix2x4 matrix2)
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
float a11 = *p1;
|
||||
float a12 = *(p1 + 1);
|
||||
float a21 = *(p1 + 2);
|
||||
float a22 = *(p1 + 3);
|
||||
|
||||
Vec2D b11 = new Vec2D(*(p2 + 0), *(p2 + 1));
|
||||
Vec2D b12 = new Vec2D(*(p2 + 2), *(p2 + 3));
|
||||
Vec2D b21 = new Vec2D(*(p2 + 4), *(p2 + 5));
|
||||
Vec2D b22 = new Vec2D(*(p2 + 6), *(p2 + 7));
|
||||
|
||||
var s1 = a21 + a22;
|
||||
var s2 = s1 - a11;
|
||||
var s3 = a11 - a21;
|
||||
var s4 = a12 - s2;
|
||||
|
||||
var t1 = b12 - b11;
|
||||
var t2 = b22 - t1;
|
||||
var t3 = b22 - b12;
|
||||
var t4 = t2 - b21;
|
||||
|
||||
var m1 = b11 * a11;
|
||||
var m2 = b21 * a12;
|
||||
var m3 = b22 * s4;
|
||||
var m4 = t4 * a22;
|
||||
var m5 = t1 * s1;
|
||||
var m6 = t2 * s2;
|
||||
var m7 = t3 * s3;
|
||||
|
||||
var u1 = m1 + m2;
|
||||
var u2 = m1 + m6;
|
||||
var u3 = u2 + m7;
|
||||
var u4 = u2 + m5;
|
||||
var u5 = u4 + m3;
|
||||
var u6 = u3 - m4;
|
||||
var u7 = u3 + m5;
|
||||
|
||||
return new Matrix2x4(
|
||||
u1.X, u1.Y, u5.X, u5.Y,
|
||||
u6.X, u6.Y, u7.X, u7.Y
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix"></param>
|
||||
/// <param name="vec"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Colum2D multiple(this Matrix2x3 matrix, Colum3D vec)
|
||||
{
|
||||
return new Colum2D(
|
||||
matrix.row1.X * vec.X + matrix.row1.Y * vec.Y + matrix.row1.Z * vec.Z,
|
||||
matrix.row2.X * vec.X + matrix.row2.Y * vec.Y + matrix.row2.Z * vec.Z
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix1"></param>
|
||||
/// <param name="matrix2"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Matrix2x2 multiple(this Matrix2x3 matrix1, Matrix3x2 matrix2)
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
Matrix2x2 a1 = new Matrix2x2(*(p1 + 0), *(p1 + 1), *(p1 + 3), *(p1 + 4));
|
||||
Colum2D a2 = new Colum2D(*(p1 + 2), *(p1 + 5));
|
||||
|
||||
Matrix2x2 b1 = new Matrix2x2(*(p2 + 0), *(p2 + 1), *(p2 + 2), *(p2 + 3));
|
||||
Vec2D b2 = new Vec2D(*(p2 + 4), *(p2 + 5));
|
||||
|
||||
return a1.multiple(b1) + a2.multiple(b2);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix1"></param>
|
||||
/// <param name="matrix2"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Matrix2x2 multiple(this Matrix2x4 matrix1, Matrix4x2 matrix2)
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
Vec2D a11 = new Vec2D(*(p1 + 0), *(p1 + 1));
|
||||
Vec2D a12 = new Vec2D(*(p1 + 2), *(p1 + 3));
|
||||
Vec2D a21 = new Vec2D(*(p1 + 4), *(p1 + 5));
|
||||
Vec2D a22 = new Vec2D(*(p1 + 6), *(p1 + 7));
|
||||
|
||||
Colum2D b11 = new Colum2D(*(p2 + 0), *(p2 + 2));
|
||||
Colum2D b12 = new Colum2D(*(p2 + 1), *(p2 + 3));
|
||||
Colum2D b21 = new Colum2D(*(p2 + 4), *(p2 + 6));
|
||||
Colum2D b22 = new Colum2D(*(p2 + 5), *(p2 + 7));
|
||||
|
||||
var s1 = a21 + a22;
|
||||
var s2 = s1 - a11;
|
||||
var s3 = a11 - a21;
|
||||
var s4 = a12 - s2;
|
||||
|
||||
var t1 = b12 - b11;
|
||||
var t2 = b22 - t1;
|
||||
var t3 = b22 - b12;
|
||||
var t4 = t2 - b21;
|
||||
|
||||
var m1 = a11.multiple(b11);
|
||||
var m2 = a12.multiple(b21);
|
||||
var m3 = s4.multiple(b22);
|
||||
var m4 = a22.multiple(t4);
|
||||
var m5 = s1.multiple(t1);
|
||||
var m6 = s2.multiple(t2);
|
||||
var m7 = s3.multiple(t3);
|
||||
|
||||
var u1 = m1 + m2;
|
||||
var u2 = m1 + m6;
|
||||
var u3 = u2 + m7;
|
||||
var u4 = u2 + m5;
|
||||
var u5 = u4 + m3;
|
||||
var u6 = u3 - m4;
|
||||
var u7 = u3 + m5;
|
||||
|
||||
return new Matrix2x2(u1, u5, u6, u7);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix1"></param>
|
||||
/// <param name="matrix2"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Matrix2x3 multiple(this Matrix2x4 matrix1, Matrix4x3 matrix2)
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
return new Matrix2x3(
|
||||
getMatrixMember(p1,p2), getMatrixMember(p1, p2+1), getMatrixMember(p1, p2+2),
|
||||
getMatrixMember(p1+4, p2), getMatrixMember(p1+4, p2+1), getMatrixMember(p1+4, p2 + 2)
|
||||
);
|
||||
|
||||
static float getMatrixMember(float* p1, float* p2)
|
||||
{
|
||||
float result = 0;
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
result += *p1 * *p2;
|
||||
p1 += 1;
|
||||
p2 += 3;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static unsafe Matrix3x3 multiple(this Matrix3x2 matrix1, Matrix2x3 matrix2)
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row2.X;
|
||||
|
||||
Matrix2x2 a1 = new Matrix2x2(*(p1 + 0), *(p1 + 1), *(p1 + 2), *(p1 + 3));
|
||||
Vec2D a2 = new Vec2D(*(p1 + 4), *(p1 + 5));
|
||||
|
||||
Matrix2x2 b1 = new Matrix2x2(*(p2 + 0), *(p2 + 1), *(p2 + 3), *(p2 + 4));
|
||||
Colum2D b2 = new Colum2D(*(p2 + 2), *(p2 + 5));
|
||||
|
||||
var m11 = a1.multiple(b1);
|
||||
var m12 = a1.multiple(b2);
|
||||
var m21 = a2.multiple(b1);
|
||||
var m22 = a2.multiple(b2);
|
||||
|
||||
float* p3 = &m11.row1.X;
|
||||
|
||||
return new Matrix3x3(
|
||||
*(p1 + 0), *(p1 + 1),m12.X,
|
||||
*(p1 + 2), *(p1 + 3),m12.Y,
|
||||
m21.X, m21.X, m22
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix1"></param>
|
||||
/// <param name="matrix2"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Matrix3x3 multiple(this Matrix3x3 matrix1, Matrix3x3 matrix2)
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
Matrix2x2 a11 = new Matrix2x2(*(p1 + 0), *(p1 + 1), *(p1 + 3), *(p1 + 4));
|
||||
Colum2D a12 = new Colum2D(*(p1 + 2), *(p1 + 5));
|
||||
Vec2D a21 = new Vec2D(*(p1 + 6), *(p1 + 7));
|
||||
float a22 = *(p1 + 8);
|
||||
|
||||
Matrix2x2 b11 = new Matrix2x2(*(p2 + 0), *(p2 + 1), *(p2 + 3), *(p2 + 4));
|
||||
Colum2D b12 = new Colum2D(*(p2 + 2), *(p2 + 5));
|
||||
Vec2D b21 = new Vec2D(*(p2 + 6), *(p2 + 7));
|
||||
float b22 = *(p2 + 8);
|
||||
|
||||
var c11 = a11.multiple(b11) + a12.multiple(b21);
|
||||
var c12 = a11.multiple(b12) + a12 * b22;
|
||||
var c21 = a21.multiple(b11) + b21 * a22;
|
||||
var c22 = a21.multiple(b12) + a22 * b22;
|
||||
|
||||
float* p = &(c11.row1.X);
|
||||
|
||||
return new Matrix3x3(
|
||||
*(p + 0), *(p + 1), c12.X,
|
||||
*(p + 2), *(p + 3), c12.Y,
|
||||
c21.X, c21.Y, c22
|
||||
);
|
||||
}
|
||||
|
||||
public static unsafe Matrix3x2 multiple(this Matrix3x4 matrix1, Matrix4x2 matrix2)
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
Matrix2x2 a11 = new Matrix2x2(*(p1 + 0), *(p1 + 1), *(p1 + 4), *(p1 + 5));
|
||||
Matrix2x2 a12 = new Matrix2x2(*(p1 + 2), *(p1 + 3), *(p1 + 6), *(p1 + 7));
|
||||
Vec2D a21 = new Vec2D(*(p1 + 8), *(p1 + 9));
|
||||
Vec2D a22 = new Vec2D(*(p1 + 10), *(p1 + 11));
|
||||
|
||||
Matrix2x2 b1 = new Matrix2x2(*(p2 + 0), *(p2 + 1), *(p2 + 2), *(p2 + 3));
|
||||
Matrix2x2 b2 = new Matrix2x2(*(p2 + 4), *(p2 + 5), *(p2 + 6), *(p2 + 7));
|
||||
|
||||
var c1 = a11.multiple(b1) + a12.multiple(b1);
|
||||
var c2 = a21.multiple(b2) + a22.multiple(b2);
|
||||
|
||||
return new Matrix3x2(c1.row1,c1.row2,c2);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix1"></param>
|
||||
/// <param name="matrix2"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Matrix3x3 multiple(this Matrix3x4 matrix1, Matrix4x3 matrix2)
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
Matrix2x2 a11 = new Matrix2x2(
|
||||
*(p1 + 0), *(p1 + 1), *(p1 + 4), *(p1 + 5)
|
||||
);
|
||||
Matrix2x2 a12 = new Matrix2x2(
|
||||
*(p1 + 2), *(p1 + 3), *(p1 + 6), *(p1 + 7)
|
||||
);
|
||||
Vec2D a21 = new Vec2D(*(p1 + 8), *(p1 + 9));
|
||||
Vec2D a22 = new Vec2D(*(p1 + 10), *(p1 + 11));
|
||||
|
||||
Matrix2x2 b11 = new Matrix2x2(
|
||||
*(p2 + 0), *(p2 + 1), *(p2 + 3), *(p2 + 4)
|
||||
);
|
||||
Colum2D b12 = new Colum2D(*(p2 + 2), *(p2 + 5));
|
||||
Matrix2x2 b21 = new Matrix2x2(
|
||||
*(p2 + 6), *(p2 + 7), *(p2 + 9), *(p2 + 10)
|
||||
);
|
||||
Colum2D b22 = new Colum2D(*(p2 + 8), *(p2 + 11));
|
||||
|
||||
var c11 = a11.multiple(b11) + a12.multiple(b21);
|
||||
var c12 = a11.multiple(b12) + a12.multiple(b22);
|
||||
var c21 = a21.multiple(b11) + a22.multiple(b21);
|
||||
var c22 = a21.multiple(b12) + a22.multiple(b22);
|
||||
|
||||
float* pc1 = &c11.row1.X;
|
||||
|
||||
return new Matrix3x3(
|
||||
*(pc1 + 0), *(pc1 + 1), c12.X,
|
||||
*(pc1 + 2), *(pc1 + 3), c12.Y,
|
||||
c21.X, c21.Y, c22
|
||||
);
|
||||
}
|
||||
|
||||
public static unsafe Matrix3x4 multiple(this Matrix3x4 matrix1, Matrix4x4 matrix2)
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
var a11 = new Matrix2x2(matrix1.row1.Point1,matrix1.row2.Point1);
|
||||
var a12 = new Matrix2x2(matrix1.row1.Point2,matrix1.row2.Point2);
|
||||
var a21 = matrix1.row3.Point1;
|
||||
var a22 = matrix1.row3.Point2;
|
||||
|
||||
var b11 = new Matrix2x2(matrix2.row1.Point1, matrix2.row2.Point1);
|
||||
var b12 = new Matrix2x2(matrix2.row1.Point2, matrix2.row2.Point2);
|
||||
var b21 = new Matrix2x2(matrix2.row3.Point1, matrix2.row4.Point1);
|
||||
var b22 = new Matrix2x2(matrix2.row3.Point2, matrix2.row4.Point2);
|
||||
|
||||
var c1 = a11.multiple(b11) + a12.multiple(b21);
|
||||
var c2 = a11.multiple(b12) + a12.multiple(b22);
|
||||
var c3 = a21.multiple(b11) + a22.multiple(b21);
|
||||
var c4 = a21.multiple(b12) + a22.multiple(b22);
|
||||
|
||||
return new Matrix3x4(
|
||||
new Vec4D(c1.row1,c2.row1),
|
||||
new Vec4D(c1.row2,c2.row2),
|
||||
new Vec4D(c3,c4)
|
||||
) ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix1"></param>
|
||||
/// <param name="matrix2"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Matrix4x4 multiple(this Matrix4x2 matrix1, Matrix2x4 matrix2)
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
Colum2D a11 = new Colum2D(*(p1 + 0), *(p1 + 2));
|
||||
Colum2D a12 = new Colum2D(*(p1 + 1), *(p1 + 3));
|
||||
Colum2D a21 = new Colum2D(*(p1 + 4), *(p1 + 6));
|
||||
Colum2D a22 = new Colum2D(*(p1 + 5), *(p1 + 7));
|
||||
|
||||
Vec2D b11 = new Vec2D(*(p2 + 0), *(p2 + 1));
|
||||
Vec2D b12 = new Vec2D(*(p2 + 2), *(p2 + 3));
|
||||
Vec2D b21 = new Vec2D(*(p2 + 4), *(p2 + 5));
|
||||
Vec2D b22 = new Vec2D(*(p2 + 6), *(p2 + 7));
|
||||
|
||||
var s1 = a21 + a22;
|
||||
var s2 = s1 - a11;
|
||||
var s3 = a11 - a21;
|
||||
var s4 = a12 - s2;
|
||||
|
||||
var t1 = b12 - b11;
|
||||
var t2 = b22 - t1;
|
||||
var t3 = b22 - b12;
|
||||
var t4 = t2 - b21;
|
||||
|
||||
var m1 = a11.multiple(b11);
|
||||
var m2 = a12.multiple(b21);
|
||||
var m3 = s4.multiple(b22);
|
||||
var m4 = a22.multiple(t4);
|
||||
var m5 = s1.multiple(t1);
|
||||
var m6 = s2.multiple(t2);
|
||||
var m7 = s3.multiple(t3);
|
||||
|
||||
var u1 = m1 + m2;
|
||||
var u2 = m1 + m6;
|
||||
var u3 = u2 + m7;
|
||||
var u4 = u2 + m5;
|
||||
var u5 = u4 + m3;
|
||||
var u6 = u3 - m4;
|
||||
var u7 = u3 + m5;
|
||||
|
||||
return new Matrix4x4(
|
||||
new Vec4D(u1.row1.X, u1.row1.Y, u5.row1.X, u5.row1.Y),
|
||||
new Vec4D(u1.row2.X, u1.row2.Y, u5.row2.X, u5.row2.Y),
|
||||
new Vec4D(u6.row1.X, u6.row1.Y, u7.row1.X, u7.row1.Y),
|
||||
new Vec4D(u6.row2.X, u6.row2.Y, u7.row2.X, u7.row2.Y)
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="matrix1"></param>
|
||||
/// <param name="matrix2"></param>
|
||||
/// <returns></returns>
|
||||
public static unsafe Matrix4x4 multiple(this Matrix4x4 matrix1, Matrix4x4 matrix2)
|
||||
{
|
||||
float* p1 = &matrix1.row1.X;
|
||||
float* p2 = &matrix2.row1.X;
|
||||
|
||||
Matrix2x2 a11 = new Matrix2x2(*p1, *(p1 + 1), *(p1 + 4), *(p1 + 5));
|
||||
Matrix2x2 a12 = new Matrix2x2(*(p1 + 2), *(p1 + 3), *(p1 + 6), *(p1 + 7));
|
||||
Matrix2x2 a21 = new Matrix2x2(*(p1 + 8), *(p1 + 9), *(p1 + 12), *(p1 + 13));
|
||||
Matrix2x2 a22 = new Matrix2x2(*(p1 + 10), *(p1 + 11), *(p1 + 14), *(p1 + 15));
|
||||
|
||||
Matrix2x2 b11 = new Matrix2x2(*p1, *(p1 + 1), *(p1 + 4), *(p1 + 5));
|
||||
Matrix2x2 b12 = new Matrix2x2(*(p1 + 2), *(p1 + 3), *(p1 + 6), *(p1 + 7));
|
||||
Matrix2x2 b21 = new Matrix2x2(*(p1 + 8), *(p1 + 9), *(p1 + 12), *(p1 + 13));
|
||||
Matrix2x2 b22 = new Matrix2x2(*(p1 + 10), *(p1 + 11), *(p1 + 14), *(p1 + 15));
|
||||
|
||||
var s1 = a21 + a22;
|
||||
var s2 = s1 - a11;
|
||||
var s3 = a11 - a21;
|
||||
var s4 = a12 - s2;
|
||||
|
||||
var t1 = b12 - b11;
|
||||
var t2 = b22 - t1;
|
||||
var t3 = b22 - b12;
|
||||
var t4 = t2 - b21;
|
||||
|
||||
var m1 = a11.multiple(b11);
|
||||
var m2 = a12.multiple(b21);
|
||||
var m3 = s4.multiple(b22);
|
||||
var m4 = a22.multiple(t4);
|
||||
var m5 = s1.multiple(t1);
|
||||
var m6 = s2.multiple(t2);
|
||||
var m7 = s3.multiple(t3);
|
||||
|
||||
var u1 = m1 + m2;
|
||||
var u2 = m1 + m6;
|
||||
var u3 = u2 + m7;
|
||||
var u4 = u2 + m5;
|
||||
var u5 = u4 + m3;
|
||||
var u6 = u3 - m4;
|
||||
var u7 = u3 + m5;
|
||||
|
||||
return new Matrix4x4(
|
||||
new Vec4D(u1.row1.X, u1.row1.Y, u5.row1.X, u5.row1.Y),
|
||||
new Vec4D(u1.row2.X, u1.row2.Y, u5.row2.X, u5.row2.Y),
|
||||
new Vec4D(u6.row1.X, u6.row1.Y, u7.row1.X, u7.row1.Y),
|
||||
new Vec4D(u6.row2.X, u6.row2.Y, u7.row2.X, u7.row2.Y)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -43,5 +43,125 @@
|
||||
<param name="y"></param>
|
||||
<returns>Returns the value of x^y</returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Colum2D,StgSharp.Math.Vec2D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="colum"></param>
|
||||
<param name="vec"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Vec2D,StgSharp.Math.Vec2D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="vec1"></param>
|
||||
<param name="vec2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Vec2D,StgSharp.Math.Colum2D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="vec"></param>
|
||||
<param name="colum"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Vec2D,StgSharp.Math.Matrix2x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="vec"></param>
|
||||
<param name="matrix"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x2,StgSharp.Math.Colum2D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix"></param>
|
||||
<param name="colum"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x2,StgSharp.Math.Matrix2x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x2,StgSharp.Math.Matrix2x3)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x2,StgSharp.Math.Matrix2x4)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x3,StgSharp.Math.Colum3D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix"></param>
|
||||
<param name="vec"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x3,StgSharp.Math.Matrix3x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x4,StgSharp.Math.Matrix4x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x4,StgSharp.Math.Matrix4x3)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix3x3,StgSharp.Math.Matrix3x3)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix4x2,StgSharp.Math.Matrix2x4)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix4x4,StgSharp.Math.Matrix4x4)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
||||
@@ -1 +1 @@
|
||||
f462f03e342399957b6cf64914e0bf4b0a78ac84
|
||||
0b8c0a7b886549f6ada3150538cfdb0d2275591c
|
||||
|
||||
@@ -31,3 +31,8 @@ D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\obj\Debug\netstandard2.1\refint\StgSharp.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\obj\Debug\netstandard2.1\StgSharp.xml
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\obj\Debug\netstandard2.1\StgSharp.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\bin\Debug\netstandard2.1\StgSharp.deps.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\bin\Debug\netstandard2.1\StgSharp.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\bin\Debug\netstandard2.1\StgSharp.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\bin\Debug\netstandard2.1\StgSharp.xml
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp\obj\Debug\netstandard2.1\ref\StgSharp.dll
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -43,5 +43,125 @@
|
||||
<param name="y"></param>
|
||||
<returns>Returns the value of x^y</returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Colum2D,StgSharp.Math.Vec2D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="colum"></param>
|
||||
<param name="vec"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Vec2D,StgSharp.Math.Vec2D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="vec1"></param>
|
||||
<param name="vec2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Vec2D,StgSharp.Math.Colum2D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="vec"></param>
|
||||
<param name="colum"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Vec2D,StgSharp.Math.Matrix2x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="vec"></param>
|
||||
<param name="matrix"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x2,StgSharp.Math.Colum2D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix"></param>
|
||||
<param name="colum"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x2,StgSharp.Math.Matrix2x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x2,StgSharp.Math.Matrix2x3)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x2,StgSharp.Math.Matrix2x4)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x3,StgSharp.Math.Colum3D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix"></param>
|
||||
<param name="vec"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x3,StgSharp.Math.Matrix3x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x4,StgSharp.Math.Matrix4x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x4,StgSharp.Math.Matrix4x3)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix3x3,StgSharp.Math.Matrix3x3)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix4x2,StgSharp.Math.Matrix2x4)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix4x4,StgSharp.Math.Matrix4x4)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -7,8 +7,15 @@ internal class Program
|
||||
{
|
||||
private unsafe static void Main(string[] args)
|
||||
{
|
||||
var a = new Matrix3x4(1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6);
|
||||
var b = new Matrix4x3(1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6);
|
||||
var c = new Colum2D(1, 2);
|
||||
var d = new Vec2D(1, 2);
|
||||
var e = new Vec3D(1,2,3);
|
||||
|
||||
|
||||
Console.WriteLine(a);
|
||||
Console.WriteLine("\n");
|
||||
Console.WriteLine(a.multiple(b));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -43,5 +43,125 @@
|
||||
<param name="y"></param>
|
||||
<returns>Returns the value of x^y</returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Colum2D,StgSharp.Math.Vec2D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="colum"></param>
|
||||
<param name="vec"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Vec2D,StgSharp.Math.Vec2D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="vec1"></param>
|
||||
<param name="vec2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Vec2D,StgSharp.Math.Colum2D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="vec"></param>
|
||||
<param name="colum"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Vec2D,StgSharp.Math.Matrix2x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="vec"></param>
|
||||
<param name="matrix"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x2,StgSharp.Math.Colum2D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix"></param>
|
||||
<param name="colum"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x2,StgSharp.Math.Matrix2x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x2,StgSharp.Math.Matrix2x3)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x2,StgSharp.Math.Matrix2x4)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x3,StgSharp.Math.Colum3D)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix"></param>
|
||||
<param name="vec"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x3,StgSharp.Math.Matrix3x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x4,StgSharp.Math.Matrix4x2)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix2x4,StgSharp.Math.Matrix4x3)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix3x3,StgSharp.Math.Matrix3x3)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix4x2,StgSharp.Math.Matrix2x4)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.Matrix4x4,StgSharp.Math.Matrix4x4)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
3655dd388a44aa06ff12e220d674702ff529842b
|
||||
70ee143f101c68f31939cbfec5000b9894b6dc91
|
||||
|
||||
@@ -48,3 +48,32 @@ D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\.Net\Stg
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\.Net\StgSharpDebug\bin\Debug\net6.0\runtimes\osx-x86\lib\netstandard2.1\Steamworks.NET.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\.Net\StgSharpDebug\bin\Debug\net6.0\runtimes\win-x64\lib\netstandard2.1\Steamworks.NET.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\.Net\StgSharpDebug\bin\Debug\net6.0\runtimes\win-x86\lib\netstandard2.1\Steamworks.NET.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.csproj.AssemblyReference.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.GeneratedMSBuildEditorConfig.editorconfig
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.AssemblyInfoInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.AssemblyInfo.cs
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.csproj.CoreCompileInputs.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\refint\StgSharpDebug.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgSharpDebug.exe
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgSharpDebug.deps.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgSharpDebug.runtimeconfig.json
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgSharpDebug.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgSharpDebug.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\GLFWDotNet.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\Steamworks.NET.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\runtimes\win-x64\native\glfw3.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\runtimes\win-x86\native\glfw3.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\runtimes\linux-x64\lib\netstandard2.1\Steamworks.NET.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\runtimes\linux-x86\lib\netstandard2.1\Steamworks.NET.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\runtimes\osx-x64\lib\netstandard2.1\Steamworks.NET.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\runtimes\osx-x86\lib\netstandard2.1\Steamworks.NET.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\runtimes\win-x64\lib\netstandard2.1\Steamworks.NET.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\runtimes\win-x86\lib\netstandard2.1\Steamworks.NET.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgSharp.dll
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgSharp.pdb
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\Debug\net6.0\StgSharp.xml
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.csproj.CopyComplete
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\StgSharpDebug.genruntimeconfig.cache
|
||||
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\Debug\net6.0\ref\StgSharpDebug.dll
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
33e257f8ecaa3bfbc209f4ef81f95ad4e8b75140
|
||||
a9b27855a09b37d2383b24daf1d8cece33fa658d
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user