daily update on 20230804 by nitload youmu
This commit is contained in:
@@ -1,35 +1,60 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Math
|
||||
{
|
||||
public static unsafe partial class VectorCalc
|
||||
{
|
||||
|
||||
public static unsafe float Multiple(Vec3d vec1, Vec4d vec2)
|
||||
public static unsafe float Multiple(Vec3d vec1, Vec3d vec2)
|
||||
{
|
||||
M128* retPtr = (M128*)internalIO.mulps_internal(vec1._m128Ptr,vec2._m128Ptr);
|
||||
IntPtr retPtr = internalIO.mulps_internal(vec1._m128Ptr,vec2._m128Ptr);
|
||||
|
||||
M128 m128 = *(M128*)retPtr;
|
||||
Marshal.FreeHGlobal(retPtr);
|
||||
return
|
||||
retPtr->single_0 +
|
||||
retPtr->single_1 +
|
||||
retPtr->single_2;
|
||||
m128.single_0 +
|
||||
m128.single_1 +
|
||||
m128.single_2;
|
||||
}
|
||||
|
||||
public static unsafe float Multiple(Vec4d vec1,Vec4d vec2)
|
||||
|
||||
|
||||
public static unsafe float Multiple(Vec4d vec1,Vec3d vec2)
|
||||
{
|
||||
M128* retPtr = (M128*)internalIO.mulps_internal(vec1._m128Ptr,vec2._m128Ptr);
|
||||
IntPtr retPtr = internalIO.mulps_internal(vec1._m128Ptr,vec2._m128Ptr);
|
||||
M128 m128 = *(M128*)retPtr;
|
||||
Marshal.FreeHGlobal(retPtr);
|
||||
return
|
||||
retPtr->single_0 +
|
||||
retPtr->single_1 +
|
||||
retPtr->single_2 +
|
||||
retPtr->single_3;
|
||||
m128.single_0 +
|
||||
m128.single_1 +
|
||||
m128.single_2 +
|
||||
m128.single_3;
|
||||
}
|
||||
|
||||
public static unsafe Matrix4x4 Multiple(
|
||||
public static Matrix4x4 Multiple(
|
||||
Matrix4x4 matrix1, Matrix4x4 matrix2
|
||||
)
|
||||
{
|
||||
return default;
|
||||
Matrix4x4 transpose = matrix2.Transpose(TransposeMode.Copy);
|
||||
return new Matrix4x4(
|
||||
internalIO.mulps_sum_internal(matrix1._row0Ptr, transpose._row0Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row0Ptr, transpose._row1Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row0Ptr, transpose._row2Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row0Ptr, transpose._row3Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row1Ptr, transpose._row0Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row1Ptr, transpose._row1Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row1Ptr, transpose._row2Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row1Ptr, transpose._row3Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row2Ptr, transpose._row0Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row2Ptr, transpose._row1Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row2Ptr, transpose._row2Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row2Ptr, transpose._row3Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row3Ptr, transpose._row0Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row3Ptr, transpose._row1Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row3Ptr, transpose._row2Ptr),
|
||||
internalIO.mulps_sum_internal(matrix1._row3Ptr, transpose._row3Ptr)
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user