diff --git a/源代码/.vs/ProjectEvaluation/stgsharp.metadata.v5.1 b/源代码/.vs/ProjectEvaluation/stgsharp.metadata.v5.1 index 07c91685..2034efe6 100644 Binary files a/源代码/.vs/ProjectEvaluation/stgsharp.metadata.v5.1 and b/源代码/.vs/ProjectEvaluation/stgsharp.metadata.v5.1 differ diff --git a/源代码/.vs/ProjectEvaluation/stgsharp.projects.v5.1 b/源代码/.vs/ProjectEvaluation/stgsharp.projects.v5.1 index 1c8b5134..3ffc00b6 100644 Binary files a/源代码/.vs/ProjectEvaluation/stgsharp.projects.v5.1 and b/源代码/.vs/ProjectEvaluation/stgsharp.projects.v5.1 differ diff --git a/源代码/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 b/源代码/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 index 9587aa0e..96377039 100644 Binary files a/源代码/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 and b/源代码/.vs/StgSharp/DesignTimeBuild/.dtbcache.v2 differ diff --git a/源代码/.vs/StgSharp/FileContentIndex/1caf3308-b470-4bbd-bd51-e724ffc37f30.vsidx b/源代码/.vs/StgSharp/FileContentIndex/1caf3308-b470-4bbd-bd51-e724ffc37f30.vsidx deleted file mode 100644 index 9c076162..00000000 Binary files a/源代码/.vs/StgSharp/FileContentIndex/1caf3308-b470-4bbd-bd51-e724ffc37f30.vsidx and /dev/null differ diff --git a/源代码/.vs/StgSharp/FileContentIndex/32cc1b37-1421-4222-a9bb-831184eb9b84.vsidx b/源代码/.vs/StgSharp/FileContentIndex/32cc1b37-1421-4222-a9bb-831184eb9b84.vsidx deleted file mode 100644 index f04e9cf6..00000000 Binary files a/源代码/.vs/StgSharp/FileContentIndex/32cc1b37-1421-4222-a9bb-831184eb9b84.vsidx and /dev/null differ diff --git a/源代码/.vs/StgSharp/FileContentIndex/441b6f4e-5298-4156-9aaf-966bf4f045ea.vsidx b/源代码/.vs/StgSharp/FileContentIndex/441b6f4e-5298-4156-9aaf-966bf4f045ea.vsidx new file mode 100644 index 00000000..d6595734 Binary files /dev/null and b/源代码/.vs/StgSharp/FileContentIndex/441b6f4e-5298-4156-9aaf-966bf4f045ea.vsidx differ diff --git a/源代码/.vs/StgSharp/FileContentIndex/59b03b5a-ef58-42cf-9d71-d515c78cd50d.vsidx b/源代码/.vs/StgSharp/FileContentIndex/59b03b5a-ef58-42cf-9d71-d515c78cd50d.vsidx deleted file mode 100644 index a227bce9..00000000 Binary files a/源代码/.vs/StgSharp/FileContentIndex/59b03b5a-ef58-42cf-9d71-d515c78cd50d.vsidx and /dev/null differ diff --git a/源代码/.vs/StgSharp/FileContentIndex/97b266e6-5fc3-42ef-9d3d-dfd2b770c3c3.vsidx b/源代码/.vs/StgSharp/FileContentIndex/97b266e6-5fc3-42ef-9d3d-dfd2b770c3c3.vsidx new file mode 100644 index 00000000..b212fe5d Binary files /dev/null and b/源代码/.vs/StgSharp/FileContentIndex/97b266e6-5fc3-42ef-9d3d-dfd2b770c3c3.vsidx differ diff --git a/源代码/.vs/StgSharp/FileContentIndex/cb2b67a3-149d-4e59-be74-e38a15cfaa96.vsidx b/源代码/.vs/StgSharp/FileContentIndex/cb2b67a3-149d-4e59-be74-e38a15cfaa96.vsidx new file mode 100644 index 00000000..712900f9 Binary files /dev/null and b/源代码/.vs/StgSharp/FileContentIndex/cb2b67a3-149d-4e59-be74-e38a15cfaa96.vsidx differ diff --git a/源代码/.vs/StgSharp/FileContentIndex/d0d269c3-b822-4c58-b699-24b2cd02f75e.vsidx b/源代码/.vs/StgSharp/FileContentIndex/d0d269c3-b822-4c58-b699-24b2cd02f75e.vsidx new file mode 100644 index 00000000..d00001a8 Binary files /dev/null and b/源代码/.vs/StgSharp/FileContentIndex/d0d269c3-b822-4c58-b699-24b2cd02f75e.vsidx differ diff --git a/源代码/.vs/StgSharp/FileContentIndex/f2091ccd-a003-4a43-8dd2-c027e5602dfc.vsidx b/源代码/.vs/StgSharp/FileContentIndex/f2091ccd-a003-4a43-8dd2-c027e5602dfc.vsidx deleted file mode 100644 index c7c13973..00000000 Binary files a/源代码/.vs/StgSharp/FileContentIndex/f2091ccd-a003-4a43-8dd2-c027e5602dfc.vsidx and /dev/null differ diff --git a/源代码/.vs/StgSharp/v17/.futdcache.v2 b/源代码/.vs/StgSharp/v17/.futdcache.v2 index 4679572d..7230d39f 100644 Binary files a/源代码/.vs/StgSharp/v17/.futdcache.v2 and b/源代码/.vs/StgSharp/v17/.futdcache.v2 differ diff --git a/源代码/.vs/StgSharp/v17/.suo b/源代码/.vs/StgSharp/v17/.suo index 6664a0a3..022a32c9 100644 Binary files a/源代码/.vs/StgSharp/v17/.suo and b/源代码/.vs/StgSharp/v17/.suo differ diff --git a/源代码/StgSharp/Vector/Colum2D.cs b/源代码/StgSharp/Vector/Colum2D.cs index d62d1106..9770e097 100644 --- a/源代码/StgSharp/Vector/Colum2D.cs +++ b/源代码/StgSharp/Vector/Colum2D.cs @@ -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) { diff --git a/源代码/StgSharp/Vector/Colum3D.cs b/源代码/StgSharp/Vector/Colum3D.cs new file mode 100644 index 00000000..3a0c7acb --- /dev/null +++ b/源代码/StgSharp/Vector/Colum3D.cs @@ -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 + { + [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.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 + ); + } + } +} diff --git a/源代码/StgSharp/Vector/Colum4D.cs b/源代码/StgSharp/Vector/Colum4D.cs new file mode 100644 index 00000000..abe006a2 --- /dev/null +++ b/源代码/StgSharp/Vector/Colum4D.cs @@ -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 + { + [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(); + } + } +} diff --git a/源代码/StgSharp/Vector/Matrix2x2.cs b/源代码/StgSharp/Vector/Matrix2x2.cs index 1c20f0a2..e42d605c 100644 --- a/源代码/StgSharp/Vector/Matrix2x2.cs +++ b/源代码/StgSharp/Vector/Matrix2x2.cs @@ -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); - - } + } } diff --git a/源代码/StgSharp/Vector/Matrix2x3.cs b/源代码/StgSharp/Vector/Matrix2x3.cs index 0b6cbb08..fcc91355 100644 --- a/源代码/StgSharp/Vector/Matrix2x3.cs +++ b/源代码/StgSharp/Vector/Matrix2x3.cs @@ -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( - - ); - } + } } diff --git a/源代码/StgSharp/Vector/Matrix2x4.cs b/源代码/StgSharp/Vector/Matrix2x4.cs index 709d15e6..020d6188 100644 --- a/源代码/StgSharp/Vector/Matrix2x4.cs +++ b/源代码/StgSharp/Vector/Matrix2x4.cs @@ -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); - } + } } diff --git a/源代码/StgSharp/Vector/Matrix3x2.cs b/源代码/StgSharp/Vector/Matrix3x2.cs index 2fa546dc..990e994b 100644 --- a/源代码/StgSharp/Vector/Matrix3x2.cs +++ b/源代码/StgSharp/Vector/Matrix3x2.cs @@ -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.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 ); } diff --git a/源代码/StgSharp/Vector/Matrix3x3.cs b/源代码/StgSharp/Vector/Matrix3x3.cs index 2774abbd..130c8e5e 100644 --- a/源代码/StgSharp/Vector/Matrix3x3.cs +++ b/源代码/StgSharp/Vector/Matrix3x3.cs @@ -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) { diff --git a/源代码/StgSharp/Vector/Matrix3x4.cs b/源代码/StgSharp/Vector/Matrix3x4.cs new file mode 100644 index 00000000..55ce3676 --- /dev/null +++ b/源代码/StgSharp/Vector/Matrix3x4.cs @@ -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 + { + [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.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}"; + } + + + + } +} diff --git a/源代码/StgSharp/Vector/Matrix4x2.cs b/源代码/StgSharp/Vector/Matrix4x2.cs index a5497f7e..b8751e96 100644 --- a/源代码/StgSharp/Vector/Matrix4x2.cs +++ b/源代码/StgSharp/Vector/Matrix4x2.cs @@ -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) - ); - } + } } diff --git a/源代码/StgSharp/Vector/Matrix4x3.cs b/源代码/StgSharp/Vector/Matrix4x3.cs new file mode 100644 index 00000000..095a6232 --- /dev/null +++ b/源代码/StgSharp/Vector/Matrix4x3.cs @@ -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 + { + [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.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(); + } + + + } +} diff --git a/源代码/StgSharp/Vector/Matrix4x4.cs b/源代码/StgSharp/Vector/Matrix4x4.cs index 0b953df3..5f9f634c 100644 --- a/源代码/StgSharp/Vector/Matrix4x4.cs +++ b/源代码/StgSharp/Vector/Matrix4x4.cs @@ -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) - ); - } + } diff --git a/源代码/StgSharp/Vector/Vec2D.cs b/源代码/StgSharp/Vector/Vec2D.cs index 3de30756..64dc12d9 100644 --- a/源代码/StgSharp/Vector/Vec2D.cs +++ b/源代码/StgSharp/Vector/Vec2D.cs @@ -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) diff --git a/源代码/StgSharp/Vector/Vec4D.cs b/源代码/StgSharp/Vector/Vec4D.cs index bfaecb62..35457706 100644 --- a/源代码/StgSharp/Vector/Vec4D.cs +++ b/源代码/StgSharp/Vector/Vec4D.cs @@ -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) diff --git a/源代码/StgSharp/Vector/Vector.Det.cs b/源代码/StgSharp/Vector/Vector.Det.cs index 980e07ad..5544ba4f 100644 --- a/源代码/StgSharp/Vector/Vector.Det.cs +++ b/源代码/StgSharp/Vector/Vector.Det.cs @@ -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) ; } } diff --git a/源代码/StgSharp/Vector/Vector.GetAngle.cs b/源代码/StgSharp/Vector/Vector.GetAngle.cs index f8cdac41..9ede311c 100644 --- a/源代码/StgSharp/Vector/Vector.GetAngle.cs +++ b/源代码/StgSharp/Vector/Vector.GetAngle.cs @@ -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()) ); } diff --git a/源代码/StgSharp/Vector/Vector.GetVector.cs b/源代码/StgSharp/Vector/Vector.GetVector.cs index 39668497..e4c1879f 100644 --- a/源代码/StgSharp/Vector/Vector.GetVector.cs +++ b/源代码/StgSharp/Vector/Vector.GetVector.cs @@ -6,10 +6,11 @@ namespace StgSharp.Math { public static unsafe partial class Vector { - + /* public static Vec2D GetVector(Vec4D pointPair) { return pointPair.Point2-pointPair.Point1; } + */ } } diff --git a/源代码/StgSharp/Vector/Vector.Multiple.cs b/源代码/StgSharp/Vector/Vector.Multiple.cs index 33cd4054..79c4c681 100644 --- a/源代码/StgSharp/Vector/Vector.Multiple.cs +++ b/源代码/StgSharp/Vector/Vector.Multiple.cs @@ -6,6 +6,615 @@ namespace StgSharp.Math { public static unsafe partial class VectorCalc { + /// + /// + /// + /// + /// + /// + 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 + ); + } + + /// + /// + /// + /// + /// + /// + public static float multiple(this Vec2D vec1, Vec2D vec2) + { + return vec1.X * vec2.X + vec1.Y * vec2.Y; + } + + /// + /// + /// + /// + /// + /// + public static float multiple(this Vec2D vec, Colum2D colum) + { + return vec.X * colum.X + vec.Y * colum.Y; + } + + /// + /// + /// + /// + /// + /// + 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 + ); + } + + /// + /// + /// + /// + /// + /// + 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) + ); + } + /// + /// + /// + /// + /// + /// + 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); + + } + + /// + /// + /// + /// + /// + /// + 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 + ); + + } + + /// + /// + /// + /// + /// + /// + 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 + ); + } + + /// + /// + /// + /// + /// + /// + 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 + ); + } + + /// + /// + /// + /// + /// + /// + 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); + } + + /// + /// + /// + /// + /// + /// + 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); + } + + /// + /// + /// + /// + /// + /// + 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 + ); + } + + /// + /// + /// + /// + /// + /// + 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); + } + + /// + /// + /// + /// + /// + /// + 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) + ) ; + } + + /// + /// + /// + /// + /// + /// + 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) + ); + } + + /// + /// + /// + /// + /// + /// + 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) + ); + } + + + + + + + + + + + + } } diff --git a/源代码/StgSharp/bin/Debug/netstandard2.1/StgSharp.dll b/源代码/StgSharp/bin/Debug/netstandard2.1/StgSharp.dll index f2db03ab..927b626e 100644 Binary files a/源代码/StgSharp/bin/Debug/netstandard2.1/StgSharp.dll and b/源代码/StgSharp/bin/Debug/netstandard2.1/StgSharp.dll differ diff --git a/源代码/StgSharp/bin/Debug/netstandard2.1/StgSharp.pdb b/源代码/StgSharp/bin/Debug/netstandard2.1/StgSharp.pdb index 86de10a2..c7f9c24b 100644 Binary files a/源代码/StgSharp/bin/Debug/netstandard2.1/StgSharp.pdb and b/源代码/StgSharp/bin/Debug/netstandard2.1/StgSharp.pdb differ diff --git a/源代码/StgSharp/bin/Debug/netstandard2.1/StgSharp.xml b/源代码/StgSharp/bin/Debug/netstandard2.1/StgSharp.xml index 7ca00283..68da272d 100644 --- a/源代码/StgSharp/bin/Debug/netstandard2.1/StgSharp.xml +++ b/源代码/StgSharp/bin/Debug/netstandard2.1/StgSharp.xml @@ -43,5 +43,125 @@ Returns the value of x^y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.csproj.CoreCompileInputs.cache b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.csproj.CoreCompileInputs.cache index 648f0bff..b7c8b8e8 100644 --- a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.csproj.CoreCompileInputs.cache +++ b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -f462f03e342399957b6cf64914e0bf4b0a78ac84 +0b8c0a7b886549f6ada3150538cfdb0d2275591c diff --git a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.csproj.FileListAbsolute.txt b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.csproj.FileListAbsolute.txt index 9d005022..f2d819c0 100644 --- a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.csproj.FileListAbsolute.txt +++ b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.csproj.FileListAbsolute.txt @@ -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 diff --git a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.dll b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.dll index f2db03ab..927b626e 100644 Binary files a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.dll and b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.dll differ diff --git a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.pdb b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.pdb index 86de10a2..c7f9c24b 100644 Binary files a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.pdb and b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.pdb differ diff --git a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.xml b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.xml index 7ca00283..68da272d 100644 --- a/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.xml +++ b/源代码/StgSharp/obj/Debug/netstandard2.1/StgSharp.xml @@ -43,5 +43,125 @@ Returns the value of x^y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/源代码/StgSharp/obj/Debug/netstandard2.1/ref/StgSharp.dll b/源代码/StgSharp/obj/Debug/netstandard2.1/ref/StgSharp.dll index c80fa52a..e7e98d52 100644 Binary files a/源代码/StgSharp/obj/Debug/netstandard2.1/ref/StgSharp.dll and b/源代码/StgSharp/obj/Debug/netstandard2.1/ref/StgSharp.dll differ diff --git a/源代码/StgSharp/obj/Debug/netstandard2.1/refint/StgSharp.dll b/源代码/StgSharp/obj/Debug/netstandard2.1/refint/StgSharp.dll index c80fa52a..e7e98d52 100644 Binary files a/源代码/StgSharp/obj/Debug/netstandard2.1/refint/StgSharp.dll and b/源代码/StgSharp/obj/Debug/netstandard2.1/refint/StgSharp.dll differ diff --git a/源代码/StgSharpDebug/Program.cs b/源代码/StgSharpDebug/Program.cs index eb61e573..b68ad4b2 100644 --- a/源代码/StgSharpDebug/Program.cs +++ b/源代码/StgSharpDebug/Program.cs @@ -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)); } } diff --git a/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharp.dll b/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharp.dll index f2db03ab..927b626e 100644 Binary files a/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharp.dll and b/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharp.dll differ diff --git a/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharp.pdb b/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharp.pdb index 86de10a2..c7f9c24b 100644 Binary files a/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharp.pdb and b/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharp.pdb differ diff --git a/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharp.xml b/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharp.xml index 7ca00283..68da272d 100644 --- a/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharp.xml +++ b/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharp.xml @@ -43,5 +43,125 @@ Returns the value of x^y + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharpDebug.dll b/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharpDebug.dll index 87495c6e..e6fe1879 100644 Binary files a/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharpDebug.dll and b/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharpDebug.dll differ diff --git a/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharpDebug.pdb b/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharpDebug.pdb index 2390443f..70b64cd4 100644 Binary files a/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharpDebug.pdb and b/源代码/StgSharpDebug/bin/Debug/net6.0/StgSharpDebug.pdb differ diff --git a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.csproj.AssemblyReference.cache b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.csproj.AssemblyReference.cache index 0f3567fe..3851937e 100644 Binary files a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.csproj.AssemblyReference.cache and b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.csproj.AssemblyReference.cache differ diff --git a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.csproj.CoreCompileInputs.cache b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.csproj.CoreCompileInputs.cache index 6e555dbe..ddabfce5 100644 --- a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.csproj.CoreCompileInputs.cache +++ b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -3655dd388a44aa06ff12e220d674702ff529842b +70ee143f101c68f31939cbfec5000b9894b6dc91 diff --git a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.csproj.FileListAbsolute.txt b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.csproj.FileListAbsolute.txt index 6602888d..913ca543 100644 --- a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.csproj.FileListAbsolute.txt +++ b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.csproj.FileListAbsolute.txt @@ -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 diff --git a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.dll b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.dll index 87495c6e..e6fe1879 100644 Binary files a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.dll and b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.dll differ diff --git a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.genruntimeconfig.cache b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.genruntimeconfig.cache index d902a537..da7d51d7 100644 --- a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.genruntimeconfig.cache +++ b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.genruntimeconfig.cache @@ -1 +1 @@ -33e257f8ecaa3bfbc209f4ef81f95ad4e8b75140 +a9b27855a09b37d2383b24daf1d8cece33fa658d diff --git a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.pdb b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.pdb index 2390443f..70b64cd4 100644 Binary files a/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.pdb and b/源代码/StgSharpDebug/obj/Debug/net6.0/StgSharpDebug.pdb differ