Daily update on 20250316-095544 by Nitload Youmu. Additional Message : Linear math inmprovement

Signed-off-by: Nitload <YoumuLiu_NSI@whv0t.onmicrosoft.com>
This commit is contained in:
Nitload
2025-03-16 09:55:44 +08:00
parent 753cc167bc
commit a5aef8506d
58 changed files with 3162 additions and 506 deletions
+29 -8
View File
@@ -41,7 +41,7 @@ using System.Runtime.InteropServices;
namespace StgSharp.Math
{
[StructLayout( LayoutKind.Explicit, Size = 16, Pack = 16 )]
public struct Vec4 : IEquatable<Vec4>, IVector
public struct Vec4 : IEquatable<Vec4>, IVector<Vec4>
{
[FieldOffset( 0 )] internal unsafe fixed float num[ 4 ];
@@ -57,12 +57,33 @@ namespace StgSharp.Math
internal Vec4( Vector4 v )
{
Unsafe.SkipInit( out X );
Unsafe.SkipInit( out Y );
Unsafe.SkipInit( out Z );
Unsafe.SkipInit( out W );
Unsafe.SkipInit( out reg );
vec = v;
}
public Vec4( Vec3 v, float w )
internal Vec4( M128 v )
{
vec = v.vec;
Unsafe.SkipInit( out X );
Unsafe.SkipInit( out Y );
Unsafe.SkipInit( out Z );
Unsafe.SkipInit( out W );
Unsafe.SkipInit( out vec );
reg = v;
}
public Vec4( Vec3 v3, float w )
{
Unsafe.SkipInit( out X );
Unsafe.SkipInit( out Y );
Unsafe.SkipInit( out Z );
Unsafe.SkipInit( out W );
reg = v3.reg;
W = w;
}
@@ -73,7 +94,7 @@ namespace StgSharp.Math
public unsafe Vec2 XY
{
get => new Vec2( vec );
get => new Vec2( reg );
set
{
X = value.X;
@@ -83,23 +104,23 @@ namespace StgSharp.Math
public unsafe Vec3 XYZ
{
get => new Vec3( vec );
get => new Vec3( reg );
set
{
float w = W;
vec = value.vec;
reg = value.reg;
W = w;
}
}
public static Vec4 One
{
get => new Vec4( Vector4.One );
get => new Vec4( 1, 1, 1, 1 );
}
public static Vec4 Zero
{
get => new Vec4( Vector4.Zero );
get => new Vec4( 0, 0, 0, 0 );
}
[MethodImpl( MethodImplOptions.AggressiveInlining )]