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.
@@ -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.
Reference in New Issue
Block a user