68 lines
1.7 KiB
C#
68 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
|
|
namespace StgSharp.Math
|
|
{
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
internal struct M128matMap
|
|
{
|
|
internal IntPtr colum0Ptr;
|
|
internal IntPtr colum1Ptr;
|
|
internal IntPtr colum2Ptr;
|
|
internal IntPtr colum3Ptr;
|
|
|
|
internal M128matMap(
|
|
IntPtr c0ptr,
|
|
IntPtr c1ptr,
|
|
IntPtr c2ptr,
|
|
IntPtr c3ptr
|
|
)
|
|
{
|
|
colum0Ptr = c0ptr;
|
|
colum1Ptr = c1ptr;
|
|
colum2Ptr = c2ptr;
|
|
colum3Ptr = c3ptr;
|
|
}
|
|
}
|
|
|
|
|
|
[StructLayout(LayoutKind.Explicit, Size = 16, Pack = 16)]
|
|
internal struct M128
|
|
{
|
|
[FieldOffset(0)] internal float single_0;
|
|
[FieldOffset(4)] internal float single_1;
|
|
[FieldOffset(8)] internal float single_2;
|
|
[FieldOffset(12)] internal float single_3;
|
|
|
|
[FieldOffset(0)] internal int int32_0;
|
|
[FieldOffset(4)] internal int int32_1;
|
|
[FieldOffset(8)] internal int int32_2;
|
|
[FieldOffset(12)] internal int int32_3;
|
|
|
|
[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;
|
|
|
|
internal M128(float x,float y,float z,float w)
|
|
{
|
|
single_0 = x;
|
|
single_1 = y;
|
|
single_2 = z;
|
|
single_3 = w;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"{single_0}\t{single_1}\t{single_2}\t{single_3}";
|
|
}
|
|
|
|
}
|
|
}
|