daily update on 20230813 by nitload youmu, weritting matrix algs
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.
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.
@@ -3,6 +3,8 @@ using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp
|
||||
{
|
||||
|
||||
|
||||
internal static unsafe partial class internalIO
|
||||
{
|
||||
|
||||
@@ -9,7 +9,6 @@ namespace StgSharp.Control
|
||||
{
|
||||
public const long version = 10;
|
||||
|
||||
[AllowNull]
|
||||
internal static Pool _currentPool = default;
|
||||
internal static LinkedList<Pool> allPool = new LinkedList<Pool>();
|
||||
internal static LinkedList<Form> allForm;
|
||||
@@ -19,7 +18,6 @@ namespace StgSharp.Control
|
||||
/// </summary>
|
||||
public static readonly Counter<uint> tickCounter = new Counter<uint>(0, 1, 1);
|
||||
|
||||
[AllowNull]
|
||||
internal static TimelineBlock currentOperation;
|
||||
private static bool isPaused = false;
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace StgSharp
|
||||
/// <summary>
|
||||
/// A 2D vector presenting the position of an enemy entity, position can also be visited by X, Y
|
||||
/// </summary>
|
||||
public vec2d Location { get; }
|
||||
public Vec2d Location { get; }
|
||||
|
||||
/// <summary>
|
||||
/// X position of an enenmy entity
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace StgSharp
|
||||
*用于发射其他的实体,主要是子弹 和 掉落物
|
||||
*/
|
||||
|
||||
internal vec2d _center; //发射器的参考位置,运动轨迹的方程应当基于这个参考点构建
|
||||
internal Vec2d _center; //发射器的参考位置,运动轨迹的方程应当基于这个参考点构建
|
||||
internal Counter<int> _internalParameter; //发射器的内部计时器
|
||||
internal EntityPartical _bulletSample; //发射的子弹类型
|
||||
internal uint[] launchtick; //发射子弹的内部计时
|
||||
|
||||
@@ -21,9 +21,9 @@ namespace StgSharp.Graphics
|
||||
internal IntPtr shader;
|
||||
internal LinkedList<Pool> allControl;
|
||||
|
||||
public vec2d Size
|
||||
public Vec2d Size
|
||||
{
|
||||
get { return new vec2d(info.width, info.height); }
|
||||
get { return new Vec2d(info.width, info.height); }
|
||||
set
|
||||
{
|
||||
info.width = (int)value.X;
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace StgSharp
|
||||
else
|
||||
{
|
||||
Form form = new Form();
|
||||
form.Size = new vec2d(width, height);
|
||||
form.Size = new Vec2d(width, height);
|
||||
form.windowID = (long)windowPtr;
|
||||
return form;
|
||||
}
|
||||
@@ -72,7 +72,7 @@ namespace StgSharp
|
||||
else
|
||||
{
|
||||
Form form = new Form();
|
||||
form.Size = new vec2d(width, height);
|
||||
form.Size = new Vec2d(width, height);
|
||||
form.windowID = windowPtr;
|
||||
return form;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
|
||||
@@ -12,8 +13,13 @@ namespace StgSharp
|
||||
{
|
||||
[DllImport("StgSharpGraphic.dll", EntryPoint = "load",
|
||||
CallingConvention = CallingConvention.Cdecl)]
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static extern IntPtr load_internal(float x,float y, float z, float w);
|
||||
|
||||
[DllImport("StgSharpGraphic.dll",EntryPoint = "load_matmap",
|
||||
CallingConvention = CallingConvention.Cdecl)]
|
||||
internal static extern IntPtr load_mat(IntPtr c0, IntPtr c1, IntPtr c2, IntPtr c3);
|
||||
|
||||
[DllImport("StgSharpGraphic.dll", EntryPoint = "load_cpy",
|
||||
CallingConvention = CallingConvention.Cdecl)]
|
||||
internal static extern IntPtr load_cpy_internal(IntPtr ptr);
|
||||
@@ -46,17 +52,40 @@ namespace StgSharp
|
||||
CallingConvention = CallingConvention.Cdecl)]
|
||||
internal static extern IntPtr divps_const_internal(IntPtr ptr, float value);
|
||||
|
||||
[DllImport("StgSharpGraphic.dll", EntryPoint = "sqrtss_const",
|
||||
CallingConvention = CallingConvention.Cdecl)]
|
||||
internal static extern float sqrtss_const_internal(float a);
|
||||
|
||||
[DllImport("StgSharpGraphic.dll",EntryPoint = "test_addps_mat",
|
||||
CallingConvention = CallingConvention.Cdecl)]
|
||||
internal static extern IntPtr addps_mat_internal_test(IntPtr ptr1, IntPtr ptr2);
|
||||
|
||||
|
||||
|
||||
|
||||
[DllImport("StgSharpGraphic.dll", EntryPoint = "set_m128ptr_default",
|
||||
CallingConvention = CallingConvention.Cdecl)]
|
||||
internal static extern IntPtr set_m128ptr_default_internal();
|
||||
|
||||
[DllImport("StgSharpGraphic.dll", EntryPoint = "transpose_ssemat_2",
|
||||
CallingConvention = CallingConvention.Cdecl)]
|
||||
internal static extern ref M128matMap transpose_ssemat2_internal(ref M128matMap matMap);
|
||||
|
||||
[DllImport("StgSharpGraphic.dll",EntryPoint = "transpose_ssemat_3",
|
||||
CallingConvention = CallingConvention.Cdecl)]
|
||||
internal static extern ref M128matMap transpose_ssemat3_internal(ref M128matMap matMap);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[DllImport("StgSharpGraphic.dll", EntryPoint = "deinitM128",
|
||||
CallingConvention = CallingConvention.Cdecl)]
|
||||
internal static extern void deinitM128_internal(IntPtr M128Ptr);
|
||||
internal static extern void deinitM128_internal(IntPtr M128Ptr);
|
||||
|
||||
[DllImport("StgSharpGraphic.dll", EntryPoint = "deinit_matmap_sse",
|
||||
CallingConvention = CallingConvention.Cdecl)]
|
||||
internal static extern void deinitMatmap_sse_internal(ref M128matMap mapPtr);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,27 @@ using System.Text;
|
||||
|
||||
namespace StgSharp.Math
|
||||
{
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
internal struct MatSize
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
internal ushort sizePair;
|
||||
|
||||
[FieldOffset(0)]
|
||||
internal byte width;
|
||||
[FieldOffset(1)]
|
||||
internal byte height;
|
||||
}
|
||||
|
||||
public static unsafe partial class SSE
|
||||
{
|
||||
internal static IntPtr defaultM128Ptr =
|
||||
internalIO.set_m128ptr_default_internal();
|
||||
|
||||
|
||||
internal static IntPtr defaultM256Ptr;
|
||||
|
||||
|
||||
public enum Registor : byte
|
||||
{
|
||||
XMM0 = 0,
|
||||
|
||||
+18
-20
@@ -6,29 +6,24 @@ using System.Text;
|
||||
namespace StgSharp.Math
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal struct M128ptrCache
|
||||
internal struct M128matMap
|
||||
{
|
||||
internal ulong ptr0;
|
||||
internal ulong ptr1;
|
||||
internal ulong ptr2;
|
||||
internal ulong ptr3;
|
||||
internal ulong ptr4;
|
||||
internal ulong ptr5;
|
||||
internal ulong ptr6;
|
||||
internal ulong ptr7;
|
||||
internal IntPtr colum0Ptr;
|
||||
internal IntPtr colum1Ptr;
|
||||
internal IntPtr colum2Ptr;
|
||||
internal IntPtr colum3Ptr;
|
||||
|
||||
public override string ToString()
|
||||
internal M128matMap(
|
||||
IntPtr c0ptr,
|
||||
IntPtr c1ptr,
|
||||
IntPtr c2ptr,
|
||||
IntPtr c3ptr
|
||||
)
|
||||
{
|
||||
return
|
||||
$"{ptr0}\t" +
|
||||
$"{ptr1}\t" +
|
||||
$"{ptr2}\t" +
|
||||
$"{ptr3}\t" +
|
||||
$"{ptr4}\t" +
|
||||
$"{ptr5}\t" +
|
||||
$"{ptr6}\t" +
|
||||
$"{ptr7}\t" +
|
||||
$"";
|
||||
colum0Ptr = c0ptr;
|
||||
colum1Ptr = c1ptr;
|
||||
colum2Ptr = c2ptr;
|
||||
colum3Ptr = c3ptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,6 +44,9 @@ namespace StgSharp.Math
|
||||
[FieldOffset(0)] internal long int64_0;
|
||||
[FieldOffset(8)] internal long int64_1;
|
||||
|
||||
[FieldOffset(0)] internal IntPtr ptr_0;
|
||||
[FieldOffset(8)] internal IntPtr ptr_1;
|
||||
|
||||
[FieldOffset(0)] internal long double_0;
|
||||
[FieldOffset(8)] internal long double_1;
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Math
|
||||
{
|
||||
[StructLayout(LayoutKind.Explicit, Size = 32, Pack = 32)]
|
||||
internal struct M256
|
||||
{
|
||||
[FieldOffset(0)] public float single_0;
|
||||
[FieldOffset(4)] public float single_1;
|
||||
[FieldOffset(8)] public float single_2;
|
||||
[FieldOffset(12)] public float single_3;
|
||||
[FieldOffset(16)] public float single_4;
|
||||
[FieldOffset(20)] public float single_5;
|
||||
[FieldOffset(24)] public float single_6;
|
||||
[FieldOffset(28)] public float single_7;
|
||||
|
||||
[FieldOffset(0)] public long uint64_0;
|
||||
[FieldOffset(8)] public long uint64_1;
|
||||
[FieldOffset(16)] public long uint64_2;
|
||||
[FieldOffset(24)] public long uint64_3;
|
||||
|
||||
[FieldOffset(0)] public double double_0;
|
||||
[FieldOffset(8)] public double double_1;
|
||||
[FieldOffset(16)] public double double_2;
|
||||
[FieldOffset(24)] public double double_3;
|
||||
|
||||
[FieldOffset(0)] public IntPtr ptr_0;
|
||||
[FieldOffset(8)] public IntPtr ptr_1;
|
||||
[FieldOffset(16)] public IntPtr ptr_2;
|
||||
[FieldOffset(24)] public IntPtr ptr_3;
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
public static unsafe partial class Vector
|
||||
{
|
||||
|
||||
public static float Cross(vec2d vec1, vec2d vec2)
|
||||
public static float Cross(Vec2d vec1, Vec2d vec2)
|
||||
{
|
||||
return vec1.X * vec2.Y - vec1.Y * vec2.X;
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
{
|
||||
public static unsafe partial class Vector
|
||||
{
|
||||
|
||||
public static float Det(matrix2x2 array)
|
||||
/*
|
||||
public static float Det(Matrix2x2 array)
|
||||
{
|
||||
return Cross(array.row1, array.row2);
|
||||
}
|
||||
|
||||
/**/
|
||||
|
||||
/*
|
||||
public static unsafe float Det(matrix3x3 array)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{
|
||||
public static unsafe partial class Vector
|
||||
{
|
||||
public static float GetAngle(vec2d vec1, vec2d vec2)
|
||||
public static float GetAngle(Vec2d vec1, Vec2d vec2)
|
||||
{
|
||||
return Calc.ACos(1
|
||||
//vec1.multiple(vec2)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
);
|
||||
}
|
||||
|
||||
public static float GetLength(this vec2d vec)
|
||||
public static float GetLength(this Vec2d vec)
|
||||
{
|
||||
return Calc.Sqrt(
|
||||
vec.X * vec.X +
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
public static unsafe partial class Vector
|
||||
{
|
||||
/*
|
||||
public static vec2d GetVector( vec4d pointPair)
|
||||
public static Vec2d GetVector( vec4d pointPair)
|
||||
{
|
||||
return pointPair.Point2-pointPair.Point1;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,26 +2,26 @@
|
||||
{
|
||||
public unsafe static partial class Vector
|
||||
{
|
||||
public static Vec3d To3D(vec2d vec)
|
||||
public static Vec3d To3D(Vec2d vec)
|
||||
{
|
||||
return new Vec3d(vec.X, vec.Y, 0.0f);
|
||||
}
|
||||
|
||||
public static vec2d To2D(Vec3d vec, CordinatePlain plain)
|
||||
public static Vec2d To2D(Vec3d vec, CordinatePlain plain)
|
||||
{
|
||||
switch (plain)
|
||||
{
|
||||
case CordinatePlain.XY:
|
||||
return new vec2d(vec.X, vec.Y);
|
||||
return new Vec2d(vec.X, vec.Y);
|
||||
break;
|
||||
case CordinatePlain.YZ:
|
||||
return new vec2d(vec.Y, vec.Z);
|
||||
return new Vec2d(vec.Y, vec.Z);
|
||||
break;
|
||||
case CordinatePlain.XZ:
|
||||
return new vec2d(vec.X, vec.Z);
|
||||
return new Vec2d(vec.X, vec.Z);
|
||||
break;
|
||||
default:
|
||||
return default(vec2d);
|
||||
return default(Vec2d);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.Math
|
||||
@@ -11,8 +12,12 @@ namespace StgSharp.Math
|
||||
Copy
|
||||
}
|
||||
|
||||
public unsafe class Matrix4x4
|
||||
|
||||
|
||||
public unsafe class Matrix4x4:IDisposable
|
||||
{
|
||||
|
||||
|
||||
public static readonly Matrix4x4 Unit
|
||||
= new Matrix4x4(
|
||||
1,0,0,0,
|
||||
@@ -22,178 +27,118 @@ namespace StgSharp.Math
|
||||
);
|
||||
|
||||
|
||||
internal M128Map M128Map;
|
||||
|
||||
internal M128Map map;
|
||||
|
||||
internal IntPtr _colum0Ptr;
|
||||
internal IntPtr _colum1Ptr;
|
||||
internal IntPtr _colum2Ptr;
|
||||
internal IntPtr _colum3Ptr;
|
||||
//pointers of 4 colums are collected
|
||||
//in the array referred by these pointer.
|
||||
internal M128matMap _matMap;
|
||||
|
||||
|
||||
private bool isTransposed=false;
|
||||
|
||||
private Matrix4x4 _transpose;
|
||||
|
||||
//define if this matrix has correctly stored its transpose matrix
|
||||
internal bool isTransposed = false;
|
||||
|
||||
//store the transpose mat of this one to avoid calculate again
|
||||
internal M128matMap _transpose;
|
||||
|
||||
private bool disposedValue;
|
||||
|
||||
internal Matrix4x4()
|
||||
{
|
||||
_colum0Ptr = internalIO.load_internal(0,0,0,0);
|
||||
_colum1Ptr = internalIO.load_internal(0,0,0,0);
|
||||
_colum2Ptr = internalIO.load_internal(0,0,0,0);
|
||||
_colum3Ptr = internalIO.load_internal(0,0,0,0);
|
||||
|
||||
_transpose = new Matrix4x4(this);
|
||||
}
|
||||
|
||||
//Ctor used for the matixes of transposed matrix
|
||||
internal Matrix4x4(Matrix4x4 transpose)
|
||||
{
|
||||
_colum0Ptr = internalIO.load_internal(0, 0, 0, 0);
|
||||
_colum1Ptr = internalIO.load_internal(0, 0, 0, 0);
|
||||
_colum2Ptr = internalIO.load_internal(0, 0, 0, 0);
|
||||
_colum3Ptr = internalIO.load_internal(0, 0, 0, 0);
|
||||
|
||||
_transpose = transpose;
|
||||
this.isTransposed=true;
|
||||
}
|
||||
|
||||
internal unsafe Matrix4x4(
|
||||
IntPtr row0Ptr,
|
||||
IntPtr row1Ptr,
|
||||
IntPtr row2Ptr,
|
||||
IntPtr row3Ptr
|
||||
)
|
||||
{
|
||||
_colum0Ptr= row0Ptr;
|
||||
_colum1Ptr= row1Ptr;
|
||||
_colum2Ptr= row2Ptr;
|
||||
_colum3Ptr= row3Ptr;
|
||||
|
||||
_transpose = new Matrix4x4(this);
|
||||
}
|
||||
|
||||
public unsafe Matrix4x4(
|
||||
float a00, float a01, float a02, float a03,
|
||||
float a10, float a11, float a12, float a13,
|
||||
float a20, float a21, float a22, float a23,
|
||||
float a30, float a31, float a32, float a33
|
||||
)
|
||||
{
|
||||
|
||||
_colum0Ptr = internalIO.load_internal(a00,a10,a20,a30);
|
||||
_colum1Ptr = internalIO.load_internal(a01,a11,a21,a31);
|
||||
_colum2Ptr = internalIO.load_internal(a02,a12,a22,a32);
|
||||
_colum3Ptr = internalIO.load_internal(a03,a13,a23,a33);
|
||||
|
||||
_transpose = new Matrix4x4(this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public unsafe Matrix4x4 Transpose(TransposeMode transposeMode)
|
||||
{
|
||||
|
||||
if (!isTransposed)
|
||||
{
|
||||
(*(M128*)_transpose._colum0Ptr).single_0 = (*(M128*)_colum0Ptr).single_0;
|
||||
(*(M128*)_transpose._colum0Ptr).single_1 = (*(M128*)_colum1Ptr).single_0;
|
||||
(*(M128*)_transpose._colum0Ptr).single_2 = (*(M128*)_colum2Ptr).single_0;
|
||||
(*(M128*)_transpose._colum0Ptr).single_3 = (*(M128*)_colum3Ptr).single_0;
|
||||
|
||||
(*(M128*)_transpose._colum1Ptr).single_0 = (*(M128*)_colum0Ptr).single_1;
|
||||
(*(M128*)_transpose._colum1Ptr).single_1 = (*(M128*)_colum1Ptr).single_1;
|
||||
(*(M128*)_transpose._colum1Ptr).single_2 = (*(M128*)_colum2Ptr).single_1;
|
||||
(*(M128*)_transpose._colum1Ptr).single_3 = (*(M128*)_colum3Ptr).single_1;
|
||||
|
||||
(*(M128*)_transpose._colum2Ptr).single_0 = (*(M128*)_colum0Ptr).single_2;
|
||||
(*(M128*)_transpose._colum2Ptr).single_1 = (*(M128*)_colum1Ptr).single_2;
|
||||
(*(M128*)_transpose._colum2Ptr).single_2 = (*(M128*)_colum2Ptr).single_2;
|
||||
(*(M128*)_transpose._colum2Ptr).single_3 = (*(M128*)_colum3Ptr).single_2;
|
||||
|
||||
(*(M128*)_transpose._colum3Ptr).single_0 = (*(M128*)_colum0Ptr).single_3;
|
||||
(*(M128*)_transpose._colum3Ptr).single_1 = (*(M128*)_colum1Ptr).single_3;
|
||||
(*(M128*)_transpose._colum3Ptr).single_2 = (*(M128*)_colum2Ptr).single_3;
|
||||
(*(M128*)_transpose._colum3Ptr).single_3 = (*(M128*)_colum3Ptr).single_3;
|
||||
|
||||
isTransposed = true;
|
||||
}
|
||||
switch (transposeMode)
|
||||
{
|
||||
case TransposeMode.New:
|
||||
return new Matrix4x4(
|
||||
internalIO.load_cpy_internal(_transpose._colum0Ptr),
|
||||
internalIO.load_cpy_internal(_transpose._colum1Ptr),
|
||||
internalIO.load_cpy_internal(_transpose._colum2Ptr),
|
||||
internalIO.load_cpy_internal(_transpose._colum3Ptr)
|
||||
);
|
||||
break;
|
||||
case TransposeMode.Copy:
|
||||
return _transpose;
|
||||
break;
|
||||
default:
|
||||
throw new Exception();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**/
|
||||
public static Matrix4x4 operator +(Matrix4x4 matrix1, Matrix4x4 matrix2)
|
||||
{
|
||||
return new Matrix4x4(
|
||||
internalIO.addps_internal(matrix1._colum0Ptr, matrix2._colum0Ptr),
|
||||
internalIO.addps_internal(matrix1._colum1Ptr, matrix2._colum1Ptr),
|
||||
internalIO.addps_internal(matrix1._colum2Ptr, matrix2._colum2Ptr),
|
||||
internalIO.addps_internal(matrix1._colum3Ptr, matrix2._colum3Ptr)
|
||||
) ;
|
||||
}
|
||||
|
||||
public static Matrix4x4 operator -(Matrix4x4 matrix1, Matrix4x4 matrix2)
|
||||
{
|
||||
return new Matrix4x4(
|
||||
internalIO.subps_internal(matrix1._colum0Ptr, matrix2._colum0Ptr),
|
||||
internalIO.subps_internal(matrix1._colum1Ptr, matrix2._colum1Ptr),
|
||||
internalIO.subps_internal(matrix1._colum2Ptr, matrix2._colum2Ptr),
|
||||
internalIO.subps_internal(matrix1._colum3Ptr, matrix2._colum3Ptr)
|
||||
_matMap = new M128matMap(
|
||||
internalIO.load_internal(0, 0, 0, 0),
|
||||
internalIO.load_internal(0, 0, 0, 0),
|
||||
internalIO.load_internal(0, 0, 0, 0),
|
||||
internalIO.load_internal(0, 0, 0, 0)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**/
|
||||
public static Matrix4x4 operator *(Matrix4x4 matrix, float value)
|
||||
//constructor used to transform a matMap from C to a Matrix class,
|
||||
//the original matMap will be cleaned up after transformation
|
||||
internal Matrix4x4(
|
||||
ref M128matMap matMap
|
||||
)
|
||||
{
|
||||
return new Matrix4x4(
|
||||
internalIO.mulps_const_internal(matrix._colum0Ptr,value),
|
||||
internalIO.mulps_const_internal(matrix._colum1Ptr,value),
|
||||
internalIO.mulps_const_internal(matrix._colum2Ptr,value),
|
||||
internalIO.mulps_const_internal(matrix._colum3Ptr,value)
|
||||
_matMap = matMap;
|
||||
internalIO .deinitMatmap_sse_internal( ref matMap );
|
||||
|
||||
}
|
||||
|
||||
internal Matrix4x4(
|
||||
IntPtr c0Ptr,
|
||||
IntPtr c1Ptr,
|
||||
IntPtr c2Ptr,
|
||||
IntPtr c3Ptr
|
||||
)
|
||||
{
|
||||
_matMap = new M128matMap(c0Ptr,c1Ptr,c2Ptr,c3Ptr);
|
||||
}
|
||||
|
||||
public Matrix4x4(
|
||||
float a00,float a01,float a02,float a03,
|
||||
float a10,float a11,float a12,float a13,
|
||||
float a20,float a21,float a22,float a23,
|
||||
float a30,float a31,float a32,float a33
|
||||
)
|
||||
{
|
||||
_matMap = new M128matMap(
|
||||
internalIO.load_internal(a00, a10, a20, a30),
|
||||
internalIO.load_internal(a01, a11, a21, a31),
|
||||
internalIO.load_internal(a02, a12, a22, a32),
|
||||
internalIO.load_internal(a03, a13, a23, a33)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{*(M128*)_colum0Ptr}\n{*(M128*)_colum1Ptr}\n{*(M128*)_colum2Ptr}\n{*(M128*)_colum3Ptr}";
|
||||
}
|
||||
|
||||
|
||||
/**/
|
||||
~Matrix4x4()
|
||||
|
||||
|
||||
public Matrix4x4 Transpose
|
||||
{
|
||||
if (map==null)
|
||||
{
|
||||
internalIO.deinitM128_internal(_colum0Ptr);
|
||||
internalIO.deinitM128_internal(_colum1Ptr);
|
||||
internalIO.deinitM128_internal(_colum2Ptr);
|
||||
internalIO.deinitM128_internal(_colum3Ptr);
|
||||
}
|
||||
else
|
||||
{
|
||||
//in case the matrix is in a M128 map
|
||||
get {
|
||||
if (isTransposed)
|
||||
{
|
||||
internalIO.deinitMatmap_sse_internal(ref _transpose);
|
||||
|
||||
}
|
||||
return new Matrix4x4(
|
||||
internalIO.load_cpy_internal(_transpose.colum0Ptr),
|
||||
internalIO.load_cpy_internal(_transpose.colum1Ptr),
|
||||
internalIO.load_cpy_internal(_transpose.colum2Ptr),
|
||||
internalIO.load_cpy_internal(_transpose.colum3Ptr)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (!disposedValue)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
// TODO: 释放托管状态(托管对象)
|
||||
}
|
||||
|
||||
// TODO: 释放未托管的资源(未托管的对象)并重写终结器
|
||||
// TODO: 将大型字段设置为 null
|
||||
disposedValue = true;
|
||||
}
|
||||
}
|
||||
|
||||
// // TODO: 仅当“Dispose(bool disposing)”拥有用于释放未托管资源的代码时才替代终结器
|
||||
// ~Matrix4x4()
|
||||
// {
|
||||
// // 不要更改此代码。请将清理代码放入“Dispose(bool disposing)”方法中
|
||||
// Dispose(disposing: false);
|
||||
// }
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
// 不要更改此代码。请将清理代码放入“Dispose(bool disposing)”方法中
|
||||
Dispose(disposing: true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -3,6 +3,11 @@ using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Math
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// A two dimension vector defined by two elements.
|
||||
/// Vec2Ds in StgSharp are defaultly usaed as colum vector.
|
||||
/// </summary>
|
||||
public class Vec2d
|
||||
{
|
||||
|
||||
|
||||
@@ -82,17 +82,27 @@ namespace StgSharp.Math
|
||||
internalIO.divps_const_internal(vec._m128Ptr,value)
|
||||
);
|
||||
}
|
||||
|
||||
/**/
|
||||
public static float operator *(Vec3d vec1, Vec3d vec2)
|
||||
{
|
||||
return VectorCalc.Multiple(vec1,vec2);
|
||||
}
|
||||
//return VectorCalc.Multiple(vec1,vec2);
|
||||
|
||||
return 0;
|
||||
}
|
||||
/**/
|
||||
public unsafe override string ToString()
|
||||
{
|
||||
return (*(M128*)_m128Ptr).ToString();
|
||||
}
|
||||
|
||||
public unsafe string ToString(string sample)
|
||||
{
|
||||
return $"{(*(M128*)_m128Ptr).single_0.ToString(sample)}\t"+
|
||||
$"{(*(M128*)_m128Ptr).single_1.ToString(sample)}\t"+
|
||||
$"{(*(M128*)_m128Ptr).single_2.ToString(sample)}\t"+
|
||||
$"{(*(M128*)_m128Ptr).single_3.ToString(sample)}\t";
|
||||
}
|
||||
|
||||
~Vec3d()
|
||||
{
|
||||
if (_map == null)
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace StgSharp.Math
|
||||
{
|
||||
float seed = currentSeed;
|
||||
|
||||
float sample = Calc.Pow(Calc.Sqrt(seed),2);
|
||||
float sample = Calc.Pow(Calc.SeedSqrt(seed),2);
|
||||
float sample2 = (sample - seed) / seed;
|
||||
sample2 = Calc.Abs(sample2);
|
||||
|
||||
|
||||
@@ -1,11 +1,27 @@
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace StgSharp.Math
|
||||
{
|
||||
public static partial class Calc
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static float Sqrt(float x)
|
||||
{
|
||||
|
||||
public static unsafe float Sqrt(float x)
|
||||
/**/
|
||||
#if NET6_0_OR_GREATER
|
||||
return System.MathF.Sqrt(x);
|
||||
#else
|
||||
|
||||
/**/
|
||||
return internalIO.sqrtss_const_internal(x);
|
||||
/**/
|
||||
#endif
|
||||
/**/
|
||||
}
|
||||
|
||||
public static unsafe float SeedSqrt(float x)
|
||||
{
|
||||
/*
|
||||
* 本方法采用分别对指数和小数处理的方法计算平方根
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
<EnableNETAnalyzers>True</EnableNETAnalyzers>
|
||||
<AnalysisLevel>preview-all</AnalysisLevel>
|
||||
<OutputType>Library</OutputType>
|
||||
<StartupObject>StgSharp.Debug.DebugProgram</StartupObject>
|
||||
<Nullable>enable</Nullable>
|
||||
<Configurations>Debug;Release;NoOps</Configurations>
|
||||
</PropertyGroup>
|
||||
@@ -24,12 +23,12 @@
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Optimize>True</Optimize>
|
||||
<DebugType>none</DebugType>
|
||||
<DebugType>embedded</DebugType>
|
||||
<NoWarn>1701;1702;0649;1591;0169</NoWarn>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DebugType>none</DebugType>
|
||||
<DebugType>embedded</DebugType>
|
||||
<Optimize>True</Optimize>
|
||||
<NoWarn>1701;1702;0649;1591;0169</NoWarn>
|
||||
</PropertyGroup>
|
||||
@@ -50,11 +49,6 @@
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Geometries\SpaceGeometry\" />
|
||||
<Folder Include="Logic" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="..\StgSharpGraphic.dll">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
|
||||
@@ -9,8 +9,6 @@
|
||||
".NETStandard,Version=v2.1/": {
|
||||
"StgSharp/1.0.0": {
|
||||
"dependencies": {
|
||||
"Facepunch.Steamworks": "2.3.3",
|
||||
"MSTest.TestFramework": "3.0.4",
|
||||
"Microsoft.Bcl.HashCode": "1.1.1",
|
||||
"Microsoft.CSharp": "4.7.0"
|
||||
},
|
||||
@@ -18,14 +16,6 @@
|
||||
"StgSharp.dll": {}
|
||||
}
|
||||
},
|
||||
"Facepunch.Steamworks/2.3.3": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Facepunch.Steamworks.Win64.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.Bcl.HashCode/1.1.1": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.1/Microsoft.Bcl.HashCode.dll": {
|
||||
@@ -41,59 +31,6 @@
|
||||
"fileVersion": "4.700.19.56404"
|
||||
}
|
||||
}
|
||||
},
|
||||
"MSTest.TestFramework/3.0.4": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll": {
|
||||
"assemblyVersion": "14.0.0.0",
|
||||
"fileVersion": "14.0.8501.1"
|
||||
},
|
||||
"lib/netstandard2.0/Microsoft.VisualStudio.TestPlatform.TestFramework.dll": {
|
||||
"assemblyVersion": "14.0.0.0",
|
||||
"fileVersion": "14.0.8501.1"
|
||||
}
|
||||
},
|
||||
"resources": {
|
||||
"lib/netstandard2.0/cs/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "cs"
|
||||
},
|
||||
"lib/netstandard2.0/de/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "de"
|
||||
},
|
||||
"lib/netstandard2.0/es/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "es"
|
||||
},
|
||||
"lib/netstandard2.0/fr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "fr"
|
||||
},
|
||||
"lib/netstandard2.0/it/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "it"
|
||||
},
|
||||
"lib/netstandard2.0/ja/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "ja"
|
||||
},
|
||||
"lib/netstandard2.0/ko/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "ko"
|
||||
},
|
||||
"lib/netstandard2.0/pl/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "pl"
|
||||
},
|
||||
"lib/netstandard2.0/pt-BR/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "pt-BR"
|
||||
},
|
||||
"lib/netstandard2.0/ru/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "ru"
|
||||
},
|
||||
"lib/netstandard2.0/tr/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "tr"
|
||||
},
|
||||
"lib/netstandard2.0/zh-Hans/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "zh-Hans"
|
||||
},
|
||||
"lib/netstandard2.0/zh-Hant/Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll": {
|
||||
"locale": "zh-Hant"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -103,13 +40,6 @@
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Facepunch.Steamworks/2.3.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-7nUjWX/uy6JbDX7Q3n8ij7vrpWjTM0S8hXO24R3ZwQ0QgY0sXVlxzh3unmYoLvKGi31rzDHqGX68I169hnHNxQ==",
|
||||
"path": "facepunch.steamworks/2.3.3",
|
||||
"hashPath": "facepunch.steamworks.2.3.3.nupkg.sha512"
|
||||
},
|
||||
"Microsoft.Bcl.HashCode/1.1.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
@@ -123,13 +53,6 @@
|
||||
"sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==",
|
||||
"path": "microsoft.csharp/4.7.0",
|
||||
"hashPath": "microsoft.csharp.4.7.0.nupkg.sha512"
|
||||
},
|
||||
"MSTest.TestFramework/3.0.4": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-hYq5xOOr2k09rtXpmcHkJ4Tdt/yS4cy8jiFPNMdDJP+lB6OY8yekOmQC4Fsvug4rhLpXGDd6zbPWYeoewqfePA==",
|
||||
"path": "mstest.testframework/3.0.4",
|
||||
"hashPath": "mstest.testframework.3.0.4.nupkg.sha512"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -57,11 +57,19 @@
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Parallelogram.MovVertex03(System.UInt32)">
|
||||
<summary>
|
||||
移动平行四边形的第三个顶点,是一个多余的方法,调用会引发多余变量异常
|
||||
Move the third vertix. this is a useless method for Parallelograms.
|
||||
</summary>
|
||||
<param name="tick">当前游戏刻</param>
|
||||
<param name="tick">Current time tick</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">几何体过定义</exception>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">Geometry overdefined</exception>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Parallelogram.MovVertex04(System.UInt32)">
|
||||
<summary>
|
||||
Move the third vertix. This method is useless for Parallelograms.
|
||||
</summary>
|
||||
<param name="tick">Current time tick</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">Geometry overdefined</exception>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Point.Update(System.UInt32)">
|
||||
<summary>
|
||||
@@ -148,221 +156,17 @@
|
||||
</summary>
|
||||
<param name="t">The item ready to add to the list</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.colum2,StgSharp.Math.vec2d)">
|
||||
<member name="T:StgSharp.Math.Vec2d">
|
||||
<summary>
|
||||
|
||||
A two dimension vector defined by two elements.
|
||||
Vec2Ds in StgSharp are defaultly usaed as colum vector.
|
||||
</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)">
|
||||
<member name="M:StgSharp.Math.Vec4d.#ctor(System.IntPtr)">
|
||||
<summary>
|
||||
|
||||
internal constructor to recive a pointer of the M128 value
|
||||
</summary>
|
||||
<param name="vec1"></param>
|
||||
<param name="vec2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.vec2d,StgSharp.Math.colum2)">
|
||||
<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.vec2d,StgSharp.Math.matrix2x3)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="vec"></param>
|
||||
<param name="matrix"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.vec2d,StgSharp.Math.matrix2x4)">
|
||||
<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.colum2)">
|
||||
<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.colum3)">
|
||||
<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.matrix2x3,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.matrix2x3,StgSharp.Math.matrix3x4)">
|
||||
<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.matrix2x4,StgSharp.Math.matrix4x4)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.matrix3x2,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.matrix3x2,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.matrix3x2,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.matrix3x3,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.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.matrix3x4,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.matrix3x4,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.matrix3x4,StgSharp.Math.matrix4x4)">
|
||||
<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>
|
||||
<param name="value"></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.ASin(System.Single)">
|
||||
<summary>
|
||||
@@ -396,5 +200,17 @@
|
||||
<param name="y"></param>
|
||||
<returns>Returns the value of x^y</returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.Random">
|
||||
<summary>
|
||||
returns a random float number between 0 and 1.
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.RandomSeed">
|
||||
<summary>
|
||||
Generates a random seed in int value.
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
||||
Binary file not shown.
@@ -57,11 +57,19 @@
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Parallelogram.MovVertex03(System.UInt32)">
|
||||
<summary>
|
||||
移动平行四边形的第三个顶点,是一个多余的方法,调用会引发多余变量异常
|
||||
Move the third vertix. this is a useless method for Parallelograms.
|
||||
</summary>
|
||||
<param name="tick">当前游戏刻</param>
|
||||
<param name="tick">Current time tick</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">几何体过定义</exception>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">Geometry overdefined</exception>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Parallelogram.MovVertex04(System.UInt32)">
|
||||
<summary>
|
||||
Move the third vertix. This method is useless for Parallelograms.
|
||||
</summary>
|
||||
<param name="tick">Current time tick</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">Geometry overdefined</exception>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Point.Update(System.UInt32)">
|
||||
<summary>
|
||||
@@ -148,6 +156,18 @@
|
||||
</summary>
|
||||
<param name="t">The item ready to add to the list</param>
|
||||
</member>
|
||||
<member name="T:StgSharp.Math.Vec2d">
|
||||
<summary>
|
||||
A two dimension vector defined by two elements.
|
||||
Vec2Ds in StgSharp are defaultly usaed as colum vector.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Vec4d.#ctor(System.IntPtr)">
|
||||
<summary>
|
||||
internal constructor to recive a pointer of the M128 value
|
||||
</summary>
|
||||
<param name="value"></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.ASin(System.Single)">
|
||||
<summary>
|
||||
Reurns the value of ArcSin(x)
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
5ada391622649cd40a953445f2aff538fe619b3d
|
||||
a481b6da709e541cf6f2d458de164b157415491e
|
||||
|
||||
Binary file not shown.
@@ -57,11 +57,19 @@
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Parallelogram.MovVertex03(System.UInt32)">
|
||||
<summary>
|
||||
移动平行四边形的第三个顶点,是一个多余的方法,调用会引发多余变量异常
|
||||
Move the third vertix. this is a useless method for Parallelograms.
|
||||
</summary>
|
||||
<param name="tick">当前游戏刻</param>
|
||||
<param name="tick">Current time tick</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">几何体过定义</exception>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">Geometry overdefined</exception>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Parallelogram.MovVertex04(System.UInt32)">
|
||||
<summary>
|
||||
Move the third vertix. This method is useless for Parallelograms.
|
||||
</summary>
|
||||
<param name="tick">Current time tick</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">Geometry overdefined</exception>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Point.Update(System.UInt32)">
|
||||
<summary>
|
||||
@@ -148,221 +156,17 @@
|
||||
</summary>
|
||||
<param name="t">The item ready to add to the list</param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.colum2,StgSharp.Math.vec2d)">
|
||||
<member name="T:StgSharp.Math.Vec2d">
|
||||
<summary>
|
||||
|
||||
A two dimension vector defined by two elements.
|
||||
Vec2Ds in StgSharp are defaultly usaed as colum vector.
|
||||
</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)">
|
||||
<member name="M:StgSharp.Math.Vec4d.#ctor(System.IntPtr)">
|
||||
<summary>
|
||||
|
||||
internal constructor to recive a pointer of the M128 value
|
||||
</summary>
|
||||
<param name="vec1"></param>
|
||||
<param name="vec2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.vec2d,StgSharp.Math.colum2)">
|
||||
<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.vec2d,StgSharp.Math.matrix2x3)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="vec"></param>
|
||||
<param name="matrix"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.vec2d,StgSharp.Math.matrix2x4)">
|
||||
<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.colum2)">
|
||||
<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.colum3)">
|
||||
<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.matrix2x3,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.matrix2x3,StgSharp.Math.matrix3x4)">
|
||||
<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.matrix2x4,StgSharp.Math.matrix4x4)">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="matrix1"></param>
|
||||
<param name="matrix2"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.VectorCalc.multiple(StgSharp.Math.matrix3x2,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.matrix3x2,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.matrix3x2,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.matrix3x3,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.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.matrix3x4,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.matrix3x4,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.matrix3x4,StgSharp.Math.matrix4x4)">
|
||||
<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>
|
||||
<param name="value"></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.ASin(System.Single)">
|
||||
<summary>
|
||||
@@ -396,5 +200,17 @@
|
||||
<param name="y"></param>
|
||||
<returns>Returns the value of x^y</returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.Random">
|
||||
<summary>
|
||||
returns a random float number between 0 and 1.
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.RandomSeed">
|
||||
<summary>
|
||||
Generates a random seed in int value.
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -26,7 +26,6 @@
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"C:\\Program Files\\dotnet\\library-packs": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
@@ -70,7 +69,7 @@
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.109\\RuntimeIdentifierGraph.json"
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.306\\RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Nitlo\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.3.0</NuGetToolVersion>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.6.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="C:\Users\Nitlo\.nuget\packages\" />
|
||||
|
||||
@@ -159,7 +159,6 @@
|
||||
],
|
||||
"sources": {
|
||||
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||
"C:\\Program Files\\dotnet\\library-packs": {},
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
@@ -203,7 +202,7 @@
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.109\\RuntimeIdentifierGraph.json"
|
||||
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.306\\RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "kmddNHczGavCoutZJGxKo+CZ9EXT8R5DO4fM2JD3ggxilBm+ye1ss3HoX69VGu3IwpIO0YkylIENIivGM14ivg==",
|
||||
"dgSpecHash": "LkDSeyeGIzwEX93A0bihMviHOggcsL8tMl89DOcWOldIkA/gZCDUU1UH3ksMLOCGXi+sVGG+kz4l8+2AIbLJ1Q==",
|
||||
"success": true,
|
||||
"projectFilePath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\StgSharp\\StgSharp.csproj",
|
||||
"expectedPackageFiles": [
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
7187d76e83f08a7f8f9257b5e2e267ca420dd38a
|
||||
df9c40a56cc9cdbf0d2d8e2746396f8c7fbcaaf3
|
||||
|
||||
Binary file not shown.
@@ -57,11 +57,19 @@
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Parallelogram.MovVertex03(System.UInt32)">
|
||||
<summary>
|
||||
移动平行四边形的第三个顶点,是一个多余的方法,调用会引发多余变量异常
|
||||
Move the third vertix. this is a useless method for Parallelograms.
|
||||
</summary>
|
||||
<param name="tick">当前游戏刻</param>
|
||||
<param name="tick">Current time tick</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">几何体过定义</exception>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">Geometry overdefined</exception>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Parallelogram.MovVertex04(System.UInt32)">
|
||||
<summary>
|
||||
Move the third vertix. This method is useless for Parallelograms.
|
||||
</summary>
|
||||
<param name="tick">Current time tick</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:StgSharp.Geometries.UnusedVertexException">Geometry overdefined</exception>
|
||||
</member>
|
||||
<member name="M:StgSharp.Geometries.Point.Update(System.UInt32)">
|
||||
<summary>
|
||||
@@ -148,6 +156,18 @@
|
||||
</summary>
|
||||
<param name="t">The item ready to add to the list</param>
|
||||
</member>
|
||||
<member name="T:StgSharp.Math.Vec2d">
|
||||
<summary>
|
||||
A two dimension vector defined by two elements.
|
||||
Vec2Ds in StgSharp are defaultly usaed as colum vector.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Vec4d.#ctor(System.IntPtr)">
|
||||
<summary>
|
||||
internal constructor to recive a pointer of the M128 value
|
||||
</summary>
|
||||
<param name="value"></param>
|
||||
</member>
|
||||
<member name="M:StgSharp.Math.Calc.ASin(System.Single)">
|
||||
<summary>
|
||||
Reurns the value of ArcSin(x)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
+59
-23
@@ -1,42 +1,78 @@
|
||||
using StgSharp.Math;
|
||||
using System;
|
||||
using System.Runtime.Intrinsics;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace StgSharp
|
||||
{
|
||||
|
||||
internal static class Program
|
||||
{
|
||||
private unsafe static void Main(string[] args)
|
||||
internal unsafe static void Main(string[] args)
|
||||
{
|
||||
Matrix4x4 m = new Matrix4x4(
|
||||
0,1,2,3,
|
||||
4,5,6,7,
|
||||
0,1,2,3,
|
||||
4,5,6,7
|
||||
);
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
Matrix4x4 ret = m;
|
||||
}
|
||||
//Console.WriteLine(m + m);
|
||||
|
||||
/*
|
||||
|
||||
Vec3d v = new Vec3d(1,2,3);
|
||||
Console.WriteLine(v._m128Ptr);
|
||||
Console.WriteLine(v);
|
||||
Console.WriteLine();
|
||||
|
||||
Vec3d v2 = new Vec3d(2,2,3);
|
||||
Console.WriteLine(v2._m128Ptr);
|
||||
Console.WriteLine(v2);
|
||||
Console.WriteLine();
|
||||
|
||||
Vec3d v3 = v / 114514.0f;
|
||||
|
||||
Console.WriteLine();
|
||||
|
||||
Console.WriteLine(v3);
|
||||
|
||||
/**/
|
||||
|
||||
Matrix4x4 m1 = new Matrix4x4(
|
||||
System.Numerics.Matrix4x4 smt1 = new System.Numerics.Matrix4x4(
|
||||
1,2,3,4,
|
||||
5,6,7,8,
|
||||
1,2,3,4,
|
||||
5,6,7,8
|
||||
);
|
||||
|
||||
Console.WriteLine(VectorCalc.Multiple(m1,m1));
|
||||
Matrix4x4 gmt1 = new Matrix4x4(
|
||||
1, 2, 3, 4,
|
||||
5, 6, 7, 8,
|
||||
1, 2, 3, 4,
|
||||
5, 6, 7, 8
|
||||
);
|
||||
|
||||
Stopwatch s = new Stopwatch();
|
||||
|
||||
double cycle = 1e6;
|
||||
|
||||
for (int t = 0; t < 1000; t++)
|
||||
{
|
||||
s.Reset();
|
||||
s.Start();
|
||||
for (int i = 0; i < cycle; i++)
|
||||
{
|
||||
System.Numerics.Matrix4x4 ret = smt1* smt1;
|
||||
}
|
||||
s.Stop();
|
||||
|
||||
TimeSpan span = s.Elapsed;
|
||||
Console.WriteLine(span.TotalMilliseconds);
|
||||
|
||||
s.Reset();
|
||||
s.Start();
|
||||
|
||||
for (int i = 0; i < cycle; i++)
|
||||
{
|
||||
Matrix4x4 ret = VectorCalc.Multiple(gmt1,gmt1);
|
||||
}
|
||||
s.Stop();
|
||||
|
||||
TimeSpan span1 = s.Elapsed;
|
||||
Console.WriteLine(span1.TotalMilliseconds);
|
||||
|
||||
Console.WriteLine();
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**/
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v5.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v5.0": {
|
||||
"StgSharpDebug/1.0.0": {
|
||||
"runtime": {
|
||||
"StgSharpDebug.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StgSharpDebug/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"additionalProbingPaths": [
|
||||
"C:\\Users\\Nitlo\\.dotnet\\store\\|arch|\\|tfm|",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages",
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net5.0",
|
||||
"framework": {
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "5.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v3.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v3.0": {
|
||||
"StgSharpDebug/1.0.0": {
|
||||
"runtime": {
|
||||
"StgSharpDebug.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StgSharpDebug/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"additionalProbingPaths": [
|
||||
"C:\\Users\\Nitlo\\.dotnet\\store\\|arch|\\|tfm|",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages",
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "netcoreapp3.0",
|
||||
"framework": {
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v3.1",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v3.1": {
|
||||
"StgSharpDebug/1.0.0": {
|
||||
"runtime": {
|
||||
"StgSharpDebug.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"StgSharpDebug/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"additionalProbingPaths": [
|
||||
"C:\\Users\\Nitlo\\.dotnet\\store\\|arch|\\|tfm|",
|
||||
"C:\\Users\\Nitlo\\.nuget\\packages",
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "netcoreapp3.1",
|
||||
"framework": {
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "3.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v5.0", FrameworkDisplayName = ".NET 5.0")]
|
||||
@@ -0,0 +1,23 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpDebug")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("StgSharpDebug")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDebug")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
// 由 MSBuild WriteCodeFragment 类生成。
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
4de0c9258b96801d9e42b6813fa6519daca0e6bc
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
is_global = true
|
||||
build_property.TargetFramework = net5.0
|
||||
build_property.TargetPlatformMinVersion =
|
||||
build_property.UsingMicrosoftNETSdkWeb =
|
||||
build_property.ProjectTypeGuids =
|
||||
build_property.InvariantGlobalization =
|
||||
build_property.PlatformNeutralAssembly =
|
||||
build_property.EnforceExtendedAnalyzerRules =
|
||||
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||
build_property.RootNamespace = StgSharp
|
||||
build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\
|
||||
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user