Files
stgsharp/源代码/StgSharp/Math/Linear/vec4d.cs
T

66 lines
1.9 KiB
C#

using StgSharp.Controlling;
using StgSharp.Math;
using System.Numerics;
using System.Runtime.InteropServices;
namespace StgSharp.Math
{
[StructLayout(LayoutKind.Sequential)]
internal struct M128F
{
internal float X;
internal float Y;
internal float Z;
internal float W;
}
[StructLayout(LayoutKind.Explicit, Size = 16, Pack = 16)]
public struct Vec4d
{
[FieldOffset(0)] internal Vector4 vec;
[FieldOffset(0)] internal M128F fvec;
[FieldOffset(0)] public float X;
[FieldOffset(4)] public float Y;
[FieldOffset(8)] public float Z;
[FieldOffset(12)] public float W;
[FieldOffset(0)] public int X_int;
[FieldOffset(4)] public int Y_int;
[FieldOffset(8)] public int Z_int;
[FieldOffset(12)] public int W_int;
[FieldOffset(0)] public long X_long;
[FieldOffset(8)] public long Y_long;
[FieldOffset(0)] public long X_ulong;
[FieldOffset(8)] public long Y_ulong;
[FieldOffset(0)] public byte byte_0;
[FieldOffset(1)] public byte byte_1;
[FieldOffset(2)] public byte byte_2;
[FieldOffset(3)] public byte byte_3;
[FieldOffset(4)] public byte byte_4;
[FieldOffset(5)] public byte byte_5;
[FieldOffset(6)] public byte byte_6;
[FieldOffset(7)] public byte byte_7;
[FieldOffset(8)] public byte byte_8;
[FieldOffset(9)] public byte byte_9;
[FieldOffset(10)] public byte byte_10;
[FieldOffset(11)] public byte byte_11;
[FieldOffset(12)] public byte byte_12;
[FieldOffset(13)] public byte byte_13;
[FieldOffset(14)] public byte byte_14;
[FieldOffset(15)] public byte byte_15;
unsafe public Vec4d(
float x, float y, float z, float w)
{
X = x; Y = y; Z = z; W = w;
}
}
}