diff --git a/src/Runtime/Ghost.Core/Ghost.Core.csproj b/src/Runtime/Ghost.Core/Ghost.Core.csproj
index 65e3f33..8a91248 100644
--- a/src/Runtime/Ghost.Core/Ghost.Core.csproj
+++ b/src/Runtime/Ghost.Core/Ghost.Core.csproj
@@ -25,7 +25,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/src/Runtime/Ghost.Engine/Utilities/MathUtility.cs b/src/Runtime/Ghost.Engine/Utilities/MathUtility.cs
index 5edce1a..720ca2e 100644
--- a/src/Runtime/Ghost.Engine/Utilities/MathUtility.cs
+++ b/src/Runtime/Ghost.Engine/Utilities/MathUtility.cs
@@ -19,9 +19,13 @@ public static class MathUtility
{
var R = new float3x3(rotation);
return new float4x4(
- R[0][0] * scale.x, R[0][1] * scale.y, R[0][2] * scale.z, position.x,
- R[1][0] * scale.x, R[1][1] * scale.y, R[1][2] * scale.z, position.y,
- R[2][0] * scale.x, R[2][1] * scale.y, R[2][2] * scale.z, position.z,
+ // Row 0: Right.x, Up.x, Forward.x, Pos.x
+ R[0][0] * scale.x, R[1][0] * scale.y, R[2][0] * scale.z, position.x,
+ // Row 1: Right.y, Up.y, Forward.y, Pos.y
+ R[0][1] * scale.x, R[1][1] * scale.y, R[2][1] * scale.z, position.y,
+ // Row 2: Right.z, Up.z, Forward.z, Pos.z
+ R[0][2] * scale.x, R[1][2] * scale.y, R[2][2] * scale.z, position.z,
+ // Row 3: 0, 0, 0, 1
0f, 0f, 0f, 1f
);
}
diff --git a/src/Runtime/Ghost.Entities/System.cs b/src/Runtime/Ghost.Entities/System.cs
index 882631b..1cf8a72 100644
--- a/src/Runtime/Ghost.Entities/System.cs
+++ b/src/Runtime/Ghost.Entities/System.cs
@@ -113,26 +113,26 @@ public abstract class SystemBase : ISystem
}
}
-[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = true)]
-public class UpdateAfterAttribute : Attribute
+public abstract class UpdateAfterAttribute : Attribute
{
- public Type SystemType { get; }
+ public abstract Type SystemType { get; }
+}
- public UpdateAfterAttribute(Type systemType)
- {
- SystemType = systemType;
- }
+public abstract class UpdateBeforeAttribute : Attribute
+{
+ public abstract Type SystemType { get; }
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = true)]
-public class UpdateBeforeAttribute : Attribute
+public class UpdateAfterAttribute : UpdateAfterAttribute
{
- public Type SystemType { get; }
+ public override Type SystemType => typeof(T);
+}
- public UpdateBeforeAttribute(Type systemType)
- {
- SystemType = systemType;
- }
+[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = true)]
+public class UpdateBeforeAttribute : UpdateBeforeAttribute
+{
+ public override Type SystemType => typeof(T);
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = false)]
diff --git a/src/Runtime/Ghost.Graphics.D3D12/Ghost.Graphics.D3D12.csproj b/src/Runtime/Ghost.Graphics.D3D12/Ghost.Graphics.D3D12.csproj
index 8fd03e3..2c8709b 100644
--- a/src/Runtime/Ghost.Graphics.D3D12/Ghost.Graphics.D3D12.csproj
+++ b/src/Runtime/Ghost.Graphics.D3D12/Ghost.Graphics.D3D12.csproj
@@ -26,7 +26,7 @@
-
+
diff --git a/src/Runtime/Ghost.Graphics/Core/Mesh.cs b/src/Runtime/Ghost.Graphics/Core/Mesh.cs
index 7dbf8c3..63c48b1 100644
--- a/src/Runtime/Ghost.Graphics/Core/Mesh.cs
+++ b/src/Runtime/Ghost.Graphics/Core/Mesh.cs
@@ -15,10 +15,12 @@ namespace Ghost.Graphics.Core;
public struct Meshlet
{
public SphereBounds boundingSphere; // 16 bytes
+ public SphereBounds parentBoundingSphere; // 16 bytes
public AABB boundingBox; // 24 bytes
public uint vertexOffset; // offset into meshlet vertex index array
public uint triangleOffset; // offset into packed triangle array
public uint groupIndex; // owning group
+ public float clusterError; // geometric error of this meshlet/cluster
public float parentError; // geometric refinement error carried into runtime LOD tests
public byte vertexCount; // max 64
public byte triangleCount; // max 124
@@ -319,13 +321,15 @@ public struct Mesh : IResourceReleasable
var meshlet = new Meshlet
{
boundingSphere = new SphereBounds(cluster.bounds.center, cluster.bounds.radius),
+ parentBoundingSphere = new SphereBounds(group.simplified.center, group.simplified.radius),
boundingBox = new AABB(cluster.bounds.center - cluster.bounds.radius, cluster.bounds.center + cluster.bounds.radius),
vertexCount = (byte)cluster.vertexCount,
triangleCount = (byte)(cluster.localIndexCount / 3),
vertexOffset = (uint)data.meshletVertices.Count,
triangleOffset = (uint)data.meshletTriangles.Count,
groupIndex = (uint)data.groups.Count - 1,
- parentError = cluster.bounds.error,
+ clusterError = cluster.bounds.error,
+ parentError = group.simplified.error,
localMaterialIndex = 0, // TODO: support multiple materials
lodLevel = (byte)group.depth,
};
diff --git a/src/Runtime/Ghost.Graphics/Shaders/Includes/Common.hlsl b/src/Runtime/Ghost.Graphics/Shaders/Includes/Common.hlsl
index 8b6bddb..c988551 100644
--- a/src/Runtime/Ghost.Graphics/Shaders/Includes/Common.hlsl
+++ b/src/Runtime/Ghost.Graphics/Shaders/Includes/Common.hlsl
@@ -13,11 +13,13 @@ struct Vertex
struct Meshlet
{
float4 boundingSphere;
+ float4 parentBoundingSphere;
float3 boundingBoxMin;
float3 boundingBoxMax;
uint vertexOffset;
uint triangleOffset;
uint groupIndex;
+ float clusterError;
float parentError;
uint packedCounts; // byte vertexCount, byte triangleCount, byte localMaterialIndex, byte lodLevel
};
diff --git a/src/Runtime/Ghost.Graphics/test.gshdr b/src/Runtime/Ghost.Graphics/test.gshdr
index eee097b..4e2c2da 100644
--- a/src/Runtime/Ghost.Graphics/test.gshdr
+++ b/src/Runtime/Ghost.Graphics/test.gshdr
@@ -46,19 +46,59 @@ shader "MyShader/Standard"
groupshared ASPayload s_Payload;
+ // computes approximate (perspective) projection error of a cluster in screen space
+ float BoundsError(float3 center, float radius, float error, float3 cameraPos, float cameraProj, float cameraZNear)
+ {
+ float d = length(center - cameraPos) - radius;
+ return error / max(d, cameraZNear) * (cameraProj * 0.5f);
+ }
+
[numthreads(1, 1, 1)]
void ASMain(uint3 groupID : SV_GroupID)
{
InstanceData instanceData = LoadData(g_PushConstantData.instanceBuffer, g_PushConstantData.instanceIndex);
MeshData meshData = LoadData(instanceData.meshBuffer, 0);
- ByteAddressBuffer meshletBuffer = GET_BUFFER(meshData.meshletBuffer);
- Meshlet meshlet = meshletBuffer.Load(groupID.x * sizeof(Meshlet));
-
+ uint meshletIndex = groupID.x;
s_Payload.meshletIndex = groupID.x;
+ ByteAddressBuffer meshletBuffer = GET_BUFFER(meshData.meshletBuffer);
+ Meshlet meshlet = meshletBuffer.Load(meshletIndex * sizeof(Meshlet));
+
+ ViewData viewData = LoadData(g_PushConstantData.viewBuffer, 0);
+
+ // Assume uniform scale
+ float scale = length(float3(instanceData.localToWorld[0][0], instanceData.localToWorld[1][0], instanceData.localToWorld[2][0]));
+
+ // Nanite projection metric: cot(fovy / 2) -> projectionMatrix[1][1]
+ // Multiply by screenSize.y to get error in pixels.
+ float cameraProj = viewData.projectionMatrix[1][1] * viewData.screenSize.y;
+
+ float threshold = 1.0f;
+
+ // Calculate THIS cluster's error using ITS OWN bounding sphere
+ float3 clusterCenter = mul(instanceData.localToWorld, float4(meshlet.boundingSphere.xyz, 1.0f)).xyz;
+ float clusterRadius = meshlet.boundingSphere.w * scale;
+ float clusterError = meshlet.clusterError * scale;
+ float clusterProjError = BoundsError(clusterCenter, clusterRadius, clusterError, viewData.cameraPosition, cameraProj, viewData.nearClip);
+
+ // Calculate the PARENT'S error using the PARENT'S bounding sphere
+ float3 parentCenter = mul(instanceData.localToWorld, float4(meshlet.parentBoundingSphere.xyz, 1.0f)).xyz;
+ float parentRadius = meshlet.parentBoundingSphere.w * scale;
+ float parentError = meshlet.parentError * scale;
+ float parentProjError = BoundsError(parentCenter, parentRadius, parentError, viewData.cameraPosition, cameraProj, viewData.nearClip);
+
+ bool isRoot = meshlet.parentError >= 3.402823466e+38F; // FLT_MAX
+ uint emitMeshlet = ((parentProjError > threshold || isRoot) && clusterProjError <= threshold) ? 1u : 0u;
+
+ // Failsafe: if we are at the finest LOD (LOD 0) and the error is STILL too high,
+ // we must render it anyway because there is no more detailed geometry to fall back on.
uint lodLevel = (meshlet.packedCounts >> 24) & 0xFFu;
- uint emitMeshlet = lodLevel == 0u ? 1u : 0u;
+ if (lodLevel == 0u && parentProjError > threshold)
+ {
+ emitMeshlet = 1u;
+ }
+
DispatchMesh(emitMeshlet, 1u, 1u, s_Payload);
}
@@ -140,6 +180,9 @@ shader "MyShader/Standard"
float b = float((hash & 0x0000FFu)) / 255.0;
return float4(r, g, b, 1.0);
+
+ // InstanceData instanceData = LoadData(g_PushConstantData.instanceBuffer, g_PushConstantData.instanceIndex);
+ // return mul(instanceData.localToWorld, float4(input.normal, 1.0f));
}
}
diff --git a/src/Test/Ghost.Graphics.Test/RenderPipeline/TestRenderPipeline.cs b/src/Test/Ghost.Graphics.Test/RenderPipeline/TestRenderPipeline.cs
index 2ec3172..6f72e40 100644
--- a/src/Test/Ghost.Graphics.Test/RenderPipeline/TestRenderPipeline.cs
+++ b/src/Test/Ghost.Graphics.Test/RenderPipeline/TestRenderPipeline.cs
@@ -268,7 +268,7 @@ public unsafe partial class TestRenderPipeline : IRenderPipeline
nearClip = request.view.nearClipPlane,
cameraDirection = viewMatrix.c2.xyz, // check if that's correct orientation
farClip = request.view.farClipPlane,
- screenSize = new float4(request.view.sensorSize.x, request.view.sensorSize.y, 1.0f / request.view.sensorSize.x, 1.0f / request.view.sensorSize.y)
+ screenSize = new float4(rtSize.x, rtSize.y, 1.0f / rtSize.x, 1.0f / rtSize.y)
};
ctx.CommandBuffer.Barrier(BarrierDesc.Buffer(viewBufferResource, BarrierSync.Copy, BarrierAccess.CopyDest));
diff --git a/src/Test/Ghost.Graphics.Test/Systems/CameraMovingSystem.cs b/src/Test/Ghost.Graphics.Test/Systems/CameraMovingSystem.cs
new file mode 100644
index 0000000..1536aeb
--- /dev/null
+++ b/src/Test/Ghost.Graphics.Test/Systems/CameraMovingSystem.cs
@@ -0,0 +1,50 @@
+using Ghost.Core;
+using Ghost.Engine.Components;
+using Ghost.Engine.Utilities;
+using Ghost.Entities;
+using Misaki.HighPerformance.Mathematics;
+
+namespace Ghost.Graphics.Test.Systems;
+
+internal class CameraMovingSystem : ISystem
+{
+ private Identifier _cameraQueryID;
+
+ private random _random;
+ private float3 _target;
+
+ public void Initialize(ref readonly SystemAPI systemAPI)
+ {
+ _cameraQueryID = QueryBuilder.Create()
+ .WithAll()
+ .Build(systemAPI.World, true);
+
+ _random = new random(123456);
+ _target = _random.NextFloat3(-20, 20);
+ }
+
+ public void Update(ref readonly SystemAPI systemAPI)
+ {
+ ref var cameraQuery = ref systemAPI.World.ComponentManager.GetEntityQueryReference(_cameraQueryID);
+
+ foreach (ref var ltw in cameraQuery.GetComponentIterator())
+ {
+ var position = ltw.matrix.c3.xyz;
+ if (math.distance(position, _target) < 0.1f)
+ {
+ _target = _random.NextFloat3(-20, 20);
+ }
+
+ var newPosition = math.lerp(position, _target, 0.025f);
+ var forward = math.normalize(new float3(0f, 0.5f, 0f) - newPosition);
+
+ var rotation = quaternion.LookRotation(forward, math.up());
+ var matrix = float4x4.TRS(newPosition, rotation, float3.one);
+ ltw.matrix = matrix;
+ }
+ }
+
+ public void Cleanup(ref readonly SystemAPI systemAPI)
+ {
+ }
+}
diff --git a/src/Test/Ghost.Graphics.Test/Systems/RenderExtractionSystem.cs b/src/Test/Ghost.Graphics.Test/Systems/RenderExtractionSystem.cs
index 5c2125d..9ffb64a 100644
--- a/src/Test/Ghost.Graphics.Test/Systems/RenderExtractionSystem.cs
+++ b/src/Test/Ghost.Graphics.Test/Systems/RenderExtractionSystem.cs
@@ -11,6 +11,7 @@ using Misaki.HighPerformance.Mathematics;
namespace Ghost.Graphics.Test.Systems;
[RenderPipelineSystem]
+[UpdateAfter]
public class RenderExtractionSystem : ISystem
{
private RenderSystem _renderSystem = null!;
diff --git a/src/Test/Ghost.Graphics.Test/Utilities/MeshUtility.cs b/src/Test/Ghost.Graphics.Test/Utilities/MeshUtility.cs
index 3c2048b..e4a945f 100644
--- a/src/Test/Ghost.Graphics.Test/Utilities/MeshUtility.cs
+++ b/src/Test/Ghost.Graphics.Test/Utilities/MeshUtility.cs
@@ -66,6 +66,7 @@ internal static class MeshUtility
for (var i = 0u; i < scene.Get()->nodes.count; i++)
{
+ var data = scene.Get()->nodes.data;
var node = scene.Get()->nodes.data[i];
if (node->is_root)
{
@@ -102,19 +103,27 @@ internal static class MeshUtility
var colIdx = pMesh->vertex_color.exists ? pMesh->vertex_color.indices.data[ufbxTopologyIndex] : uint.MaxValue;
var btanIdx = pMesh->vertex_bitangent.exists ? pMesh->vertex_bitangent.indices.data[ufbxTopologyIndex] : uint.MaxValue;
+ var position = pMesh->vertex_position.values.data[posIdx];
+ var normal = normIdx != uint.MaxValue ? pMesh->vertex_normal.values.data[normIdx] : default;
+ var uv = uvIdx != uint.MaxValue ? pMesh->vertex_uv.values.data[uvIdx] : default;
+ var color = colIdx != uint.MaxValue ? pMesh->vertex_color.values.data[colIdx] : default;
+
var vertex = new Vertex
{
- position = pMesh->vertex_position.values.data[posIdx],
- normal = normIdx != uint.MaxValue ? pMesh->vertex_normal.values.data[normIdx] : default,
- uv = uvIdx != uint.MaxValue ? pMesh->vertex_uv.values.data[uvIdx] : default,
- color = colIdx != uint.MaxValue ? new Color128(pMesh->vertex_color.values.data[colIdx]) : default,
+ position = new float3(position.x, position.y, position.z),
+ normal = new float3(normal.x, normal.y, normal.z),
+ uv = new float2(uv.x, uv.y),
+ color = new Color128(color.x, color.y, color.z, color.w)
};
if (tanIdx != uint.MaxValue)
{
- var t = pMesh->vertex_tangent.values.data[tanIdx];
+ var mt = pMesh->vertex_tangent.values.data[tanIdx];
+ var mb = btanIdx != uint.MaxValue ? pMesh->vertex_bitangent.values.data[btanIdx] : default;
+
+ var t = new float3(mt.x, mt.y, mt.z);
var n = vertex.normal;
- var b = btanIdx != uint.MaxValue ? pMesh->vertex_bitangent.values.data[btanIdx] : math.cross(n, t);
+ var b = btanIdx != uint.MaxValue ? new float3(mb.x, mb.y, mb.z) : math.cross(n, t);
vertex.tangent = ComputeTangent(t, n, b);
}
diff --git a/src/Test/Ghost.Graphics.Test/Windows/GraphicsTestWindow.xaml.cs b/src/Test/Ghost.Graphics.Test/Windows/GraphicsTestWindow.xaml.cs
index 1236733..59af0e2 100644
--- a/src/Test/Ghost.Graphics.Test/Windows/GraphicsTestWindow.xaml.cs
+++ b/src/Test/Ghost.Graphics.Test/Windows/GraphicsTestWindow.xaml.cs
@@ -10,6 +10,7 @@ using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Media;
using Misaki.HighPerformance.LowLevel.Buffer;
using Misaki.HighPerformance.Mathematics;
+using Windows.Devices.Geolocation;
namespace Ghost.Graphics.Test.Windows;
@@ -75,6 +76,7 @@ public sealed partial class GraphicsTestWindow : Window
// Add Systems
var group = _world.SystemManager.GetSystem();
group.AddSystem();
+ group.AddSystem();
group.SortSystems();
_world.SystemManager.InitializeAll(default);
diff --git a/src/ThridParty/Ghost.MeshOptimizer/Api.cs b/src/ThridParty/Ghost.MeshOptimizer/Api.cs
new file mode 100644
index 0000000..808c975
--- /dev/null
+++ b/src/ThridParty/Ghost.MeshOptimizer/Api.cs
@@ -0,0 +1,30 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+namespace Ghost.MeshOptimizer;
+
+public partial class Api
+{
+ static Api()
+ {
+ NativeLibrary.SetDllImportResolver(Assembly.GetExecutingAssembly(), (libraryName, assembly, searchPath) =>
+ {
+ if (libraryName != "meshoptimizer")
+ {
+ return IntPtr.Zero;
+ }
+
+ var platform = OperatingSystem.IsWindows() ? "win" :
+ OperatingSystem.IsLinux() ? "linux" :
+ OperatingSystem.IsMacOS() ? "osx" : "unknown";
+ var ext = OperatingSystem.IsWindows() ? ".dll" :
+ OperatingSystem.IsLinux() ? ".so" :
+ OperatingSystem.IsMacOS() ? ".dylib" : "";
+
+ var arch = Environment.Is64BitProcess ? "x64" : "x86";
+ var nativeDllDir = Path.Combine("./runtimes", platform + "-" + arch, "native");
+
+ return NativeLibrary.Load(Path.Combine(nativeDllDir, libraryName + ext));
+ });
+ }
+}
diff --git a/src/ThridParty/Ghost.MeshOptimizer/Generated/Api.cs b/src/ThridParty/Ghost.MeshOptimizer/Generated/Api.cs
index 3c4d2e2..256afad 100644
--- a/src/ThridParty/Ghost.MeshOptimizer/Generated/Api.cs
+++ b/src/ThridParty/Ghost.MeshOptimizer/Generated/Api.cs
@@ -5,29 +5,6 @@ namespace Ghost.MeshOptimizer
{
public static unsafe partial class Api
{
- static Api()
- {
- NativeLibrary.SetDllImportResolver(Assembly.GetExecutingAssembly(), (libraryName, assembly, searchPath) =>
- {
- if (libraryName != "meshoptimizer")
- {
- return IntPtr.Zero;
- }
-
- var platform = OperatingSystem.IsWindows() ? "win" :
- OperatingSystem.IsLinux() ? "linux" :
- OperatingSystem.IsMacOS() ? "osx" : "unknown";
- var ext = OperatingSystem.IsWindows() ? ".dll" :
- OperatingSystem.IsLinux() ? ".so" :
- OperatingSystem.IsMacOS() ? ".dylib" : "";
-
- var arch = Environment.Is64BitProcess ? "x64" : "x86";
- var nativeDllDir = Path.Combine("./runtimes", platform + "-" + arch, "native");
-
- return NativeLibrary.Load(Path.Combine(nativeDllDir, libraryName + ext));
- });
- }
-
[DllImport("meshoptimizer", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("size_t")]
public static extern nuint meshopt_generateVertexRemap([NativeTypeName("unsigned int *")] uint* destination, [NativeTypeName("const unsigned int *")] uint* indices, [NativeTypeName("size_t")] nuint index_count, [NativeTypeName("const void *")] void* vertices, [NativeTypeName("size_t")] nuint vertex_count, [NativeTypeName("size_t")] nuint vertex_size);
diff --git a/src/ThridParty/Ghost.Ufbx/Api.cs b/src/ThridParty/Ghost.Ufbx/Api.cs
new file mode 100644
index 0000000..d1a981b
--- /dev/null
+++ b/src/ThridParty/Ghost.Ufbx/Api.cs
@@ -0,0 +1,30 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+namespace Ghost.Ufbx;
+
+public partial class Api
+{
+ static Api()
+ {
+ NativeLibrary.SetDllImportResolver(Assembly.GetExecutingAssembly(), (libraryName, assembly, searchPath) =>
+ {
+ if (libraryName != "ufbx")
+ {
+ return IntPtr.Zero;
+ }
+
+ var platform = OperatingSystem.IsWindows() ? "win" :
+ OperatingSystem.IsLinux() ? "linux" :
+ OperatingSystem.IsMacOS() ? "osx" : "unknown";
+ var ext = OperatingSystem.IsWindows() ? ".dll" :
+ OperatingSystem.IsLinux() ? ".so" :
+ OperatingSystem.IsMacOS() ? ".dylib" : "";
+
+ var arch = Environment.Is64BitProcess ? "x64" : "x86";
+ var nativeDllDir = Path.Combine("./runtimes", platform + "-" + arch, "native");
+
+ return NativeLibrary.Load(Path.Combine(nativeDllDir, libraryName + ext));
+ });
+ }
+}
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/Api.cs b/src/ThridParty/Ghost.Ufbx/Generated/Api.cs
index cc66cf6..cffc2dc 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/Api.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/Api.cs
@@ -1,5 +1,4 @@
using System;
-using System.Reflection;
using System.Runtime.InteropServices;
using static Ghost.Ufbx.ufbx_aperture_format;
using static Ghost.Ufbx.ufbx_aperture_mode;
@@ -168,29 +167,6 @@ namespace Ghost.Ufbx
public const int UFBX_BAKE_STEP_HANDLING_COUNT = (int)(UFBX_BAKE_STEP_HANDLING_IGNORE + 1);
- static Api()
- {
- NativeLibrary.SetDllImportResolver(Assembly.GetExecutingAssembly(), (libraryName, assembly, searchPath) =>
- {
- if (libraryName != "ufbx")
- {
- return IntPtr.Zero;
- }
-
- var platform = OperatingSystem.IsWindows() ? "win" :
- OperatingSystem.IsLinux() ? "linux" :
- OperatingSystem.IsMacOS() ? "osx" : "unknown";
- var ext = OperatingSystem.IsWindows() ? ".dll" :
- OperatingSystem.IsLinux() ? ".so" :
- OperatingSystem.IsMacOS() ? ".dylib" : "";
-
- var arch = Environment.Is64BitProcess ? "x64" : "x86";
- var nativeDllDir = Path.Combine("./runtimes", platform + "-" + arch, "native");
-
- return NativeLibrary.Load(Path.Combine(nativeDllDir, libraryName + ext));
- });
- }
-
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("_Bool")]
public static extern bool ufbx_is_thread_safe();
@@ -241,12 +217,10 @@ namespace Ghost.Ufbx
public static extern float ufbx_find_real([NativeTypeName("const ufbx_props *")] ufbx_props* props, [NativeTypeName("const char *")] sbyte* name, [NativeTypeName("ufbx_real")] float def);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_find_vec3_len([NativeTypeName("const ufbx_props *")] ufbx_props* props, [NativeTypeName("const char *")] sbyte* name, [NativeTypeName("size_t")] nuint name_len, [NativeTypeName("ufbx_vec3")] Misaki.HighPerformance.Mathematics.float3 def);
+ public static extern ufbx_vec3 ufbx_find_vec3_len([NativeTypeName("const ufbx_props *")] ufbx_props* props, [NativeTypeName("const char *")] sbyte* name, [NativeTypeName("size_t")] nuint name_len, ufbx_vec3 def);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_find_vec3([NativeTypeName("const ufbx_props *")] ufbx_props* props, [NativeTypeName("const char *")] sbyte* name, [NativeTypeName("ufbx_vec3")] Misaki.HighPerformance.Mathematics.float3 def);
+ public static extern ufbx_vec3 ufbx_find_vec3([NativeTypeName("const ufbx_props *")] ufbx_props* props, [NativeTypeName("const char *")] sbyte* name, ufbx_vec3 def);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("int64_t")]
@@ -322,8 +296,7 @@ namespace Ghost.Ufbx
public static extern ufbx_anim_prop_list ufbx_find_anim_props([NativeTypeName("const ufbx_anim_layer *")] ufbx_anim_layer* layer, [NativeTypeName("const ufbx_element *")] ufbx_element* element);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_matrix")]
- public static extern Misaki.HighPerformance.Mathematics.float3x4 ufbx_get_compatible_matrix_for_normals([NativeTypeName("const ufbx_node *")] ufbx_node* node);
+ public static extern ufbx_matrix ufbx_get_compatible_matrix_for_normals([NativeTypeName("const ufbx_node *")] ufbx_node* node);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("ptrdiff_t")]
@@ -362,16 +335,14 @@ namespace Ghost.Ufbx
public static extern float ufbx_evaluate_anim_value_real([NativeTypeName("const ufbx_anim_value *")] ufbx_anim_value* anim_value, double time);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_evaluate_anim_value_vec3([NativeTypeName("const ufbx_anim_value *")] ufbx_anim_value* anim_value, double time);
+ public static extern ufbx_vec3 ufbx_evaluate_anim_value_vec3([NativeTypeName("const ufbx_anim_value *")] ufbx_anim_value* anim_value, double time);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("ufbx_real")]
public static extern float ufbx_evaluate_anim_value_real_flags([NativeTypeName("const ufbx_anim_value *")] ufbx_anim_value* anim_value, double time, [NativeTypeName("uint32_t")] uint flags);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_evaluate_anim_value_vec3_flags([NativeTypeName("const ufbx_anim_value *")] ufbx_anim_value* anim_value, double time, [NativeTypeName("uint32_t")] uint flags);
+ public static extern ufbx_vec3 ufbx_evaluate_anim_value_vec3_flags([NativeTypeName("const ufbx_anim_value *")] ufbx_anim_value* anim_value, double time, [NativeTypeName("uint32_t")] uint flags);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern ufbx_prop ufbx_evaluate_prop_len([NativeTypeName("const ufbx_anim *")] ufbx_anim* anim, [NativeTypeName("const ufbx_element *")] ufbx_element* element, [NativeTypeName("const char *")] sbyte* name, [NativeTypeName("size_t")] nuint name_len, double time);
@@ -439,12 +410,10 @@ namespace Ghost.Ufbx
public static extern ufbx_baked_element* ufbx_find_baked_element(ufbx_baked_anim* bake, ufbx_element* element);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_evaluate_baked_vec3(ufbx_baked_vec3_list keyframes, double time);
+ public static extern ufbx_vec3 ufbx_evaluate_baked_vec3(ufbx_baked_vec3_list keyframes, double time);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_quat")]
- public static extern Misaki.HighPerformance.Mathematics.quaternion ufbx_evaluate_baked_quat(ufbx_baked_quat_list keyframes, double time);
+ public static extern ufbx_quat ufbx_evaluate_baked_quat(ufbx_baked_quat_list keyframes, double time);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern ufbx_bone_pose* ufbx_get_bone_pose([NativeTypeName("const ufbx_pose *")] ufbx_pose* pose, [NativeTypeName("const ufbx_node *")] ufbx_node* node);
@@ -478,78 +447,62 @@ namespace Ghost.Ufbx
public static extern bool ufbx_coordinate_axes_valid(ufbx_coordinate_axes axes);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_vec3_normalize([NativeTypeName("ufbx_vec3")] Misaki.HighPerformance.Mathematics.float3 v);
+ public static extern ufbx_vec3 ufbx_vec3_normalize(ufbx_vec3 v);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("ufbx_real")]
- public static extern float ufbx_quat_dot([NativeTypeName("ufbx_quat")] Misaki.HighPerformance.Mathematics.quaternion a, [NativeTypeName("ufbx_quat")] Misaki.HighPerformance.Mathematics.quaternion b);
+ public static extern float ufbx_quat_dot(ufbx_quat a, ufbx_quat b);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_quat")]
- public static extern Misaki.HighPerformance.Mathematics.quaternion ufbx_quat_mul([NativeTypeName("ufbx_quat")] Misaki.HighPerformance.Mathematics.quaternion a, [NativeTypeName("ufbx_quat")] Misaki.HighPerformance.Mathematics.quaternion b);
+ public static extern ufbx_quat ufbx_quat_mul(ufbx_quat a, ufbx_quat b);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_quat")]
- public static extern Misaki.HighPerformance.Mathematics.quaternion ufbx_quat_normalize([NativeTypeName("ufbx_quat")] Misaki.HighPerformance.Mathematics.quaternion q);
+ public static extern ufbx_quat ufbx_quat_normalize(ufbx_quat q);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_quat")]
- public static extern Misaki.HighPerformance.Mathematics.quaternion ufbx_quat_fix_antipodal([NativeTypeName("ufbx_quat")] Misaki.HighPerformance.Mathematics.quaternion q, [NativeTypeName("ufbx_quat")] Misaki.HighPerformance.Mathematics.quaternion reference);
+ public static extern ufbx_quat ufbx_quat_fix_antipodal(ufbx_quat q, ufbx_quat reference);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_quat")]
- public static extern Misaki.HighPerformance.Mathematics.quaternion ufbx_quat_slerp([NativeTypeName("ufbx_quat")] Misaki.HighPerformance.Mathematics.quaternion a, [NativeTypeName("ufbx_quat")] Misaki.HighPerformance.Mathematics.quaternion b, [NativeTypeName("ufbx_real")] float t);
+ public static extern ufbx_quat ufbx_quat_slerp(ufbx_quat a, ufbx_quat b, [NativeTypeName("ufbx_real")] float t);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_quat_rotate_vec3([NativeTypeName("ufbx_quat")] Misaki.HighPerformance.Mathematics.quaternion q, [NativeTypeName("ufbx_vec3")] Misaki.HighPerformance.Mathematics.float3 v);
+ public static extern ufbx_vec3 ufbx_quat_rotate_vec3(ufbx_quat q, ufbx_vec3 v);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_quat_to_euler([NativeTypeName("ufbx_quat")] Misaki.HighPerformance.Mathematics.quaternion q, ufbx_rotation_order order);
+ public static extern ufbx_vec3 ufbx_quat_to_euler(ufbx_quat q, ufbx_rotation_order order);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_quat")]
- public static extern Misaki.HighPerformance.Mathematics.quaternion ufbx_euler_to_quat([NativeTypeName("ufbx_vec3")] Misaki.HighPerformance.Mathematics.float3 v, ufbx_rotation_order order);
+ public static extern ufbx_quat ufbx_euler_to_quat(ufbx_vec3 v, ufbx_rotation_order order);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_matrix")]
- public static extern Misaki.HighPerformance.Mathematics.float3x4 ufbx_matrix_mul([NativeTypeName("const ufbx_matrix *")] Misaki.HighPerformance.Mathematics.float3x4* a, [NativeTypeName("const ufbx_matrix *")] Misaki.HighPerformance.Mathematics.float3x4* b);
+ public static extern ufbx_matrix ufbx_matrix_mul([NativeTypeName("const ufbx_matrix *")] ufbx_matrix* a, [NativeTypeName("const ufbx_matrix *")] ufbx_matrix* b);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("ufbx_real")]
- public static extern float ufbx_matrix_determinant([NativeTypeName("const ufbx_matrix *")] Misaki.HighPerformance.Mathematics.float3x4* m);
+ public static extern float ufbx_matrix_determinant([NativeTypeName("const ufbx_matrix *")] ufbx_matrix* m);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_matrix")]
- public static extern Misaki.HighPerformance.Mathematics.float3x4 ufbx_matrix_invert([NativeTypeName("const ufbx_matrix *")] Misaki.HighPerformance.Mathematics.float3x4* m);
+ public static extern ufbx_matrix ufbx_matrix_invert([NativeTypeName("const ufbx_matrix *")] ufbx_matrix* m);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_matrix")]
- public static extern Misaki.HighPerformance.Mathematics.float3x4 ufbx_matrix_for_normals([NativeTypeName("const ufbx_matrix *")] Misaki.HighPerformance.Mathematics.float3x4* m);
+ public static extern ufbx_matrix ufbx_matrix_for_normals([NativeTypeName("const ufbx_matrix *")] ufbx_matrix* m);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_transform_position([NativeTypeName("const ufbx_matrix *")] Misaki.HighPerformance.Mathematics.float3x4* m, [NativeTypeName("ufbx_vec3")] Misaki.HighPerformance.Mathematics.float3 v);
+ public static extern ufbx_vec3 ufbx_transform_position([NativeTypeName("const ufbx_matrix *")] ufbx_matrix* m, ufbx_vec3 v);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_transform_direction([NativeTypeName("const ufbx_matrix *")] Misaki.HighPerformance.Mathematics.float3x4* m, [NativeTypeName("ufbx_vec3")] Misaki.HighPerformance.Mathematics.float3 v);
+ public static extern ufbx_vec3 ufbx_transform_direction([NativeTypeName("const ufbx_matrix *")] ufbx_matrix* m, ufbx_vec3 v);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_matrix")]
- public static extern Misaki.HighPerformance.Mathematics.float3x4 ufbx_transform_to_matrix([NativeTypeName("const ufbx_transform *")] ufbx_transform* t);
+ public static extern ufbx_matrix ufbx_transform_to_matrix([NativeTypeName("const ufbx_transform *")] ufbx_transform* t);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- public static extern ufbx_transform ufbx_matrix_to_transform([NativeTypeName("const ufbx_matrix *")] Misaki.HighPerformance.Mathematics.float3x4* m);
+ public static extern ufbx_transform ufbx_matrix_to_transform([NativeTypeName("const ufbx_matrix *")] ufbx_matrix* m);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_matrix")]
- public static extern Misaki.HighPerformance.Mathematics.float3x4 ufbx_catch_get_skin_vertex_matrix(ufbx_panic* panic, [NativeTypeName("const ufbx_skin_deformer *")] ufbx_skin_deformer* skin, [NativeTypeName("size_t")] nuint vertex, [NativeTypeName("const ufbx_matrix *")] Misaki.HighPerformance.Mathematics.float3x4* fallback);
+ public static extern ufbx_matrix ufbx_catch_get_skin_vertex_matrix(ufbx_panic* panic, [NativeTypeName("const ufbx_skin_deformer *")] ufbx_skin_deformer* skin, [NativeTypeName("size_t")] nuint vertex, [NativeTypeName("const ufbx_matrix *")] ufbx_matrix* fallback);
- [return: NativeTypeName("ufbx_matrix")]
- public static Misaki.HighPerformance.Mathematics.float3x4 ufbx_get_skin_vertex_matrix([NativeTypeName("const ufbx_skin_deformer *")] ufbx_skin_deformer* skin, [NativeTypeName("size_t")] nuint vertex, [NativeTypeName("const ufbx_matrix *")] Misaki.HighPerformance.Mathematics.float3x4* fallback)
+ public static ufbx_matrix ufbx_get_skin_vertex_matrix([NativeTypeName("const ufbx_skin_deformer *")] ufbx_skin_deformer* skin, [NativeTypeName("size_t")] nuint vertex, [NativeTypeName("const ufbx_matrix *")] ufbx_matrix* fallback)
{
return ufbx_catch_get_skin_vertex_matrix(null, skin, vertex, fallback);
}
@@ -559,18 +512,16 @@ namespace Ghost.Ufbx
public static extern uint ufbx_get_blend_shape_offset_index([NativeTypeName("const ufbx_blend_shape *")] ufbx_blend_shape* shape, [NativeTypeName("size_t")] nuint vertex);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_get_blend_shape_vertex_offset([NativeTypeName("const ufbx_blend_shape *")] ufbx_blend_shape* shape, [NativeTypeName("size_t")] nuint vertex);
+ public static extern ufbx_vec3 ufbx_get_blend_shape_vertex_offset([NativeTypeName("const ufbx_blend_shape *")] ufbx_blend_shape* shape, [NativeTypeName("size_t")] nuint vertex);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_get_blend_vertex_offset([NativeTypeName("const ufbx_blend_deformer *")] ufbx_blend_deformer* blend, [NativeTypeName("size_t")] nuint vertex);
+ public static extern ufbx_vec3 ufbx_get_blend_vertex_offset([NativeTypeName("const ufbx_blend_deformer *")] ufbx_blend_deformer* blend, [NativeTypeName("size_t")] nuint vertex);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- public static extern void ufbx_add_blend_shape_vertex_offsets([NativeTypeName("const ufbx_blend_shape *")] ufbx_blend_shape* shape, [NativeTypeName("ufbx_vec3 *")] Misaki.HighPerformance.Mathematics.float3* vertices, [NativeTypeName("size_t")] nuint num_vertices, [NativeTypeName("ufbx_real")] float weight);
+ public static extern void ufbx_add_blend_shape_vertex_offsets([NativeTypeName("const ufbx_blend_shape *")] ufbx_blend_shape* shape, ufbx_vec3* vertices, [NativeTypeName("size_t")] nuint num_vertices, [NativeTypeName("ufbx_real")] float weight);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- public static extern void ufbx_add_blend_vertex_offsets([NativeTypeName("const ufbx_blend_deformer *")] ufbx_blend_deformer* blend, [NativeTypeName("ufbx_vec3 *")] Misaki.HighPerformance.Mathematics.float3* vertices, [NativeTypeName("size_t")] nuint num_vertices, [NativeTypeName("ufbx_real")] float weight);
+ public static extern void ufbx_add_blend_vertex_offsets([NativeTypeName("const ufbx_blend_deformer *")] ufbx_blend_deformer* blend, ufbx_vec3* vertices, [NativeTypeName("size_t")] nuint num_vertices, [NativeTypeName("ufbx_real")] float weight);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("size_t")]
@@ -629,12 +580,10 @@ namespace Ghost.Ufbx
public static extern uint ufbx_topo_prev_vertex_edge([NativeTypeName("const ufbx_topo_edge *")] ufbx_topo_edge* topo, [NativeTypeName("size_t")] nuint num_topo, [NativeTypeName("uint32_t")] uint index);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_catch_get_weighted_face_normal(ufbx_panic* panic, [NativeTypeName("const ufbx_vertex_vec3 *")] ufbx_vertex_vec3* positions, ufbx_face face);
+ public static extern ufbx_vec3 ufbx_catch_get_weighted_face_normal(ufbx_panic* panic, [NativeTypeName("const ufbx_vertex_vec3 *")] ufbx_vertex_vec3* positions, ufbx_face face);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_get_weighted_face_normal([NativeTypeName("const ufbx_vertex_vec3 *")] ufbx_vertex_vec3* positions, ufbx_face face);
+ public static extern ufbx_vec3 ufbx_get_weighted_face_normal([NativeTypeName("const ufbx_vertex_vec3 *")] ufbx_vertex_vec3* positions, ufbx_face face);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("size_t")]
@@ -645,10 +594,10 @@ namespace Ghost.Ufbx
public static extern nuint ufbx_generate_normal_mapping([NativeTypeName("const ufbx_mesh *")] ufbx_mesh* mesh, [NativeTypeName("const ufbx_topo_edge *")] ufbx_topo_edge* topo, [NativeTypeName("size_t")] nuint num_topo, [NativeTypeName("uint32_t *")] uint* normal_indices, [NativeTypeName("size_t")] nuint num_normal_indices, [NativeTypeName("_Bool")] bool assume_smooth);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- public static extern void ufbx_catch_compute_normals(ufbx_panic* panic, [NativeTypeName("const ufbx_mesh *")] ufbx_mesh* mesh, [NativeTypeName("const ufbx_vertex_vec3 *")] ufbx_vertex_vec3* positions, [NativeTypeName("const uint32_t *")] uint* normal_indices, [NativeTypeName("size_t")] nuint num_normal_indices, [NativeTypeName("ufbx_vec3 *")] Misaki.HighPerformance.Mathematics.float3* normals, [NativeTypeName("size_t")] nuint num_normals);
+ public static extern void ufbx_catch_compute_normals(ufbx_panic* panic, [NativeTypeName("const ufbx_mesh *")] ufbx_mesh* mesh, [NativeTypeName("const ufbx_vertex_vec3 *")] ufbx_vertex_vec3* positions, [NativeTypeName("const uint32_t *")] uint* normal_indices, [NativeTypeName("size_t")] nuint num_normal_indices, ufbx_vec3* normals, [NativeTypeName("size_t")] nuint num_normals);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- public static extern void ufbx_compute_normals([NativeTypeName("const ufbx_mesh *")] ufbx_mesh* mesh, [NativeTypeName("const ufbx_vertex_vec3 *")] ufbx_vertex_vec3* positions, [NativeTypeName("const uint32_t *")] uint* normal_indices, [NativeTypeName("size_t")] nuint num_normal_indices, [NativeTypeName("ufbx_vec3 *")] Misaki.HighPerformance.Mathematics.float3* normals, [NativeTypeName("size_t")] nuint num_normals);
+ public static extern void ufbx_compute_normals([NativeTypeName("const ufbx_mesh *")] ufbx_mesh* mesh, [NativeTypeName("const ufbx_vertex_vec3 *")] ufbx_vertex_vec3* positions, [NativeTypeName("const uint32_t *")] uint* normal_indices, [NativeTypeName("size_t")] nuint num_normal_indices, ufbx_vec3* normals, [NativeTypeName("size_t")] nuint num_normals);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern ufbx_mesh* ufbx_subdivide_mesh([NativeTypeName("const ufbx_mesh *")] ufbx_mesh* mesh, [NativeTypeName("size_t")] nuint level, [NativeTypeName("const ufbx_subdivide_opts *")] ufbx_subdivide_opts* opts, ufbx_error* error);
@@ -677,7 +626,7 @@ namespace Ghost.Ufbx
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("size_t")]
- public static extern nuint ufbx_read_geometry_cache_vec3([NativeTypeName("const ufbx_cache_frame *")] ufbx_cache_frame* frame, [NativeTypeName("ufbx_vec3 *")] Misaki.HighPerformance.Mathematics.float3* data, [NativeTypeName("size_t")] nuint num_data, [NativeTypeName("const ufbx_geometry_cache_data_opts *")] ufbx_geometry_cache_data_opts* opts);
+ public static extern nuint ufbx_read_geometry_cache_vec3([NativeTypeName("const ufbx_cache_frame *")] ufbx_cache_frame* frame, ufbx_vec3* data, [NativeTypeName("size_t")] nuint num_data, [NativeTypeName("const ufbx_geometry_cache_data_opts *")] ufbx_geometry_cache_data_opts* opts);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("size_t")]
@@ -685,7 +634,7 @@ namespace Ghost.Ufbx
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("size_t")]
- public static extern nuint ufbx_sample_geometry_cache_vec3([NativeTypeName("const ufbx_cache_channel *")] ufbx_cache_channel* channel, double time, [NativeTypeName("ufbx_vec3 *")] Misaki.HighPerformance.Mathematics.float3* data, [NativeTypeName("size_t")] nuint num_data, [NativeTypeName("const ufbx_geometry_cache_data_opts *")] ufbx_geometry_cache_data_opts* opts);
+ public static extern nuint ufbx_sample_geometry_cache_vec3([NativeTypeName("const ufbx_cache_channel *")] ufbx_cache_channel* channel, double time, ufbx_vec3* data, [NativeTypeName("size_t")] nuint num_data, [NativeTypeName("const ufbx_geometry_cache_data_opts *")] ufbx_geometry_cache_data_opts* opts);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern ufbx_dom_node* ufbx_dom_find_len([NativeTypeName("const ufbx_dom_node *")] ufbx_dom_node* parent, [NativeTypeName("const char *")] sbyte* name, [NativeTypeName("size_t")] nuint name_len);
@@ -711,16 +660,13 @@ namespace Ghost.Ufbx
public static extern float ufbx_catch_get_vertex_real(ufbx_panic* panic, [NativeTypeName("const ufbx_vertex_real *")] ufbx_vertex_real* v, [NativeTypeName("size_t")] nuint index);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec2")]
- public static extern Misaki.HighPerformance.Mathematics.float2 ufbx_catch_get_vertex_vec2(ufbx_panic* panic, [NativeTypeName("const ufbx_vertex_vec2 *")] ufbx_vertex_vec2* v, [NativeTypeName("size_t")] nuint index);
+ public static extern ufbx_vec2 ufbx_catch_get_vertex_vec2(ufbx_panic* panic, [NativeTypeName("const ufbx_vertex_vec2 *")] ufbx_vertex_vec2* v, [NativeTypeName("size_t")] nuint index);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec3")]
- public static extern Misaki.HighPerformance.Mathematics.float3 ufbx_catch_get_vertex_vec3(ufbx_panic* panic, [NativeTypeName("const ufbx_vertex_vec3 *")] ufbx_vertex_vec3* v, [NativeTypeName("size_t")] nuint index);
+ public static extern ufbx_vec3 ufbx_catch_get_vertex_vec3(ufbx_panic* panic, [NativeTypeName("const ufbx_vertex_vec3 *")] ufbx_vertex_vec3* v, [NativeTypeName("size_t")] nuint index);
[DllImport("ufbx", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
- [return: NativeTypeName("ufbx_vec4")]
- public static extern Misaki.HighPerformance.Mathematics.float4 ufbx_catch_get_vertex_vec4(ufbx_panic* panic, [NativeTypeName("const ufbx_vertex_vec4 *")] ufbx_vertex_vec4* v, [NativeTypeName("size_t")] nuint index);
+ public static extern ufbx_vec4 ufbx_catch_get_vertex_vec4(ufbx_panic* panic, [NativeTypeName("const ufbx_vertex_vec4 *")] ufbx_vertex_vec4* v, [NativeTypeName("size_t")] nuint index);
[return: NativeTypeName("ufbx_real")]
public static float ufbx_get_vertex_real([NativeTypeName("const ufbx_vertex_real *")] ufbx_vertex_real* v, [NativeTypeName("size_t")] nuint index)
@@ -729,22 +675,19 @@ namespace Ghost.Ufbx
return v->values.data[(int)(v->indices.data[index])];
}
- [return: NativeTypeName("ufbx_vec2")]
- public static Misaki.HighPerformance.Mathematics.float2 ufbx_get_vertex_vec2([NativeTypeName("const ufbx_vertex_vec2 *")] ufbx_vertex_vec2* v, [NativeTypeName("size_t")] nuint index)
+ public static ufbx_vec2 ufbx_get_vertex_vec2([NativeTypeName("const ufbx_vertex_vec2 *")] ufbx_vertex_vec2* v, [NativeTypeName("size_t")] nuint index)
{
;
return v->values.data[(int)(v->indices.data[index])];
}
- [return: NativeTypeName("ufbx_vec3")]
- public static Misaki.HighPerformance.Mathematics.float3 ufbx_get_vertex_vec3([NativeTypeName("const ufbx_vertex_vec3 *")] ufbx_vertex_vec3* v, [NativeTypeName("size_t")] nuint index)
+ public static ufbx_vec3 ufbx_get_vertex_vec3([NativeTypeName("const ufbx_vertex_vec3 *")] ufbx_vertex_vec3* v, [NativeTypeName("size_t")] nuint index)
{
;
return v->values.data[(int)(v->indices.data[index])];
}
- [return: NativeTypeName("ufbx_vec4")]
- public static Misaki.HighPerformance.Mathematics.float4 ufbx_get_vertex_vec4([NativeTypeName("const ufbx_vertex_vec4 *")] ufbx_vertex_vec4* v, [NativeTypeName("size_t")] nuint index)
+ public static ufbx_vec4 ufbx_get_vertex_vec4([NativeTypeName("const ufbx_vertex_vec4 *")] ufbx_vertex_vec4* v, [NativeTypeName("size_t")] nuint index)
{
;
return v->values.data[(int)(v->indices.data[index])];
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_anim_value.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_anim_value.cs
index 46fdffd..0669aea 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_anim_value.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_anim_value.cs
@@ -8,8 +8,7 @@ namespace Ghost.Ufbx
[NativeTypeName("__AnonymousRecord_ufbx_L3136_C2")]
public _Anonymous_e__Union Anonymous;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 default_value;
+ public ufbx_vec3 default_value;
[NativeTypeName("ufbx_anim_curve *[3]")]
public _curves_e__FixedBuffer curves;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_baked_quat.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_baked_quat.cs
index 6968e95..6d66728 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_baked_quat.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_baked_quat.cs
@@ -4,8 +4,7 @@ namespace Ghost.Ufbx
{
public double time;
- [NativeTypeName("ufbx_quat")]
- public Misaki.HighPerformance.Mathematics.quaternion value;
+ public ufbx_quat value;
public ufbx_baked_key_flags flags;
}
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_baked_vec3.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_baked_vec3.cs
index 5e43535..079b172 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_baked_vec3.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_baked_vec3.cs
@@ -4,8 +4,7 @@ namespace Ghost.Ufbx
{
public double time;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 value;
+ public ufbx_vec3 value;
public ufbx_baked_key_flags flags;
}
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_bone_pose.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_bone_pose.cs
index 87616dc..8c005c5 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_bone_pose.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_bone_pose.cs
@@ -4,10 +4,8 @@ namespace Ghost.Ufbx
{
public ufbx_node* bone_node;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 bone_to_world;
+ public ufbx_matrix bone_to_world;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 bone_to_parent;
+ public ufbx_matrix bone_to_parent;
}
}
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_camera.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_camera.cs
index 324d1f6..5c35603 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_camera.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_camera.cs
@@ -13,23 +13,18 @@ namespace Ghost.Ufbx
[NativeTypeName("_Bool")]
public bool resolution_is_pixels;
- [NativeTypeName("ufbx_vec2")]
- public Misaki.HighPerformance.Mathematics.float2 resolution;
+ public ufbx_vec2 resolution;
- [NativeTypeName("ufbx_vec2")]
- public Misaki.HighPerformance.Mathematics.float2 field_of_view_deg;
+ public ufbx_vec2 field_of_view_deg;
- [NativeTypeName("ufbx_vec2")]
- public Misaki.HighPerformance.Mathematics.float2 field_of_view_tan;
+ public ufbx_vec2 field_of_view_tan;
[NativeTypeName("ufbx_real")]
public float orthographic_extent;
- [NativeTypeName("ufbx_vec2")]
- public Misaki.HighPerformance.Mathematics.float2 orthographic_size;
+ public ufbx_vec2 orthographic_size;
- [NativeTypeName("ufbx_vec2")]
- public Misaki.HighPerformance.Mathematics.float2 projection_plane;
+ public ufbx_vec2 projection_plane;
[NativeTypeName("ufbx_real")]
public float aspect_ratio;
@@ -53,11 +48,9 @@ namespace Ghost.Ufbx
[NativeTypeName("ufbx_real")]
public float focal_length_mm;
- [NativeTypeName("ufbx_vec2")]
- public Misaki.HighPerformance.Mathematics.float2 film_size_inch;
+ public ufbx_vec2 film_size_inch;
- [NativeTypeName("ufbx_vec2")]
- public Misaki.HighPerformance.Mathematics.float2 aperture_size_inch;
+ public ufbx_vec2 aperture_size_inch;
[NativeTypeName("ufbx_real")]
public float squeeze_ratio;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_constraint.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_constraint.cs
index 549519b..4f0e27d 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_constraint.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_constraint.cs
@@ -34,22 +34,19 @@ namespace Ghost.Ufbx
public ufbx_transform transform_offset;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 aim_vector;
+ public ufbx_vec3 aim_vector;
public ufbx_constraint_aim_up_type aim_up_type;
public ufbx_node* aim_up_node;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 aim_up_vector;
+ public ufbx_vec3 aim_up_vector;
public ufbx_node* ik_effector;
public ufbx_node* ik_end_node;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 ik_pole_vector;
+ public ufbx_vec3 ik_pole_vector;
[UnscopedRef]
public ref ufbx_element element
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_curve_point.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_curve_point.cs
index 4b09a0f..269959f 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_curve_point.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_curve_point.cs
@@ -5,10 +5,8 @@ namespace Ghost.Ufbx
[NativeTypeName("_Bool")]
public bool valid;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 position;
+ public ufbx_vec3 position;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 derivative;
+ public ufbx_vec3 derivative;
}
}
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_display_layer.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_display_layer.cs
index 7a3085b..41d8533 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_display_layer.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_display_layer.cs
@@ -16,8 +16,7 @@ namespace Ghost.Ufbx
[NativeTypeName("_Bool")]
public bool frozen;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 ui_color;
+ public ufbx_vec3 ui_color;
[UnscopedRef]
public ref ufbx_element element
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_light.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_light.cs
index dc0c974..25c9b02 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_light.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_light.cs
@@ -8,14 +8,12 @@ namespace Ghost.Ufbx
[NativeTypeName("__AnonymousRecord_ufbx_L1421_C2")]
public _Anonymous_e__Union Anonymous;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 color;
+ public ufbx_vec3 color;
[NativeTypeName("ufbx_real")]
public float intensity;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 local_direction;
+ public ufbx_vec3 local_direction;
public ufbx_light_type type;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_line_curve.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_line_curve.cs
index d477a9b..07d7ece 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_line_curve.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_line_curve.cs
@@ -8,8 +8,7 @@ namespace Ghost.Ufbx
[NativeTypeName("__AnonymousRecord_ufbx_L1671_C2")]
public _Anonymous_e__Union Anonymous;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 color;
+ public ufbx_vec3 color;
public ufbx_vec3_list control_points;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_material_map.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_material_map.cs
index c072180..a6f20bf 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_material_map.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_material_map.cs
@@ -35,7 +35,7 @@ namespace Ghost.Ufbx
}
[UnscopedRef]
- public ref Misaki.HighPerformance.Mathematics.float2 value_vec2
+ public ref ufbx_vec2 value_vec2
{
get
{
@@ -44,7 +44,7 @@ namespace Ghost.Ufbx
}
[UnscopedRef]
- public ref Misaki.HighPerformance.Mathematics.float3 value_vec3
+ public ref ufbx_vec3 value_vec3
{
get
{
@@ -53,7 +53,7 @@ namespace Ghost.Ufbx
}
[UnscopedRef]
- public ref Misaki.HighPerformance.Mathematics.float4 value_vec4
+ public ref ufbx_vec4 value_vec4
{
get
{
@@ -69,16 +69,13 @@ namespace Ghost.Ufbx
public float value_real;
[FieldOffset(0)]
- [NativeTypeName("ufbx_vec2")]
- public Misaki.HighPerformance.Mathematics.float2 value_vec2;
+ public ufbx_vec2 value_vec2;
[FieldOffset(0)]
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 value_vec3;
+ public ufbx_vec3 value_vec3;
[FieldOffset(0)]
- [NativeTypeName("ufbx_vec4")]
- public Misaki.HighPerformance.Mathematics.float4 value_vec4;
+ public ufbx_vec4 value_vec4;
}
}
}
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_matrix.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_matrix.cs
index 4e09b3e..73588cc 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_matrix.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_matrix.cs
@@ -1,3 +1,4 @@
+using System;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -118,7 +119,7 @@ namespace Ghost.Ufbx
}
[UnscopedRef]
- public Span cols
+ public Span cols
{
get
{
@@ -192,7 +193,7 @@ namespace Ghost.Ufbx
[InlineArray(4)]
public partial struct _cols_e__FixedBuffer
{
- public System.Numerics.Vector3 e0;
+ public ufbx_vec3 e0;
}
[InlineArray(12)]
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_metadata.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_metadata.cs
index b42bdcd..bf97c48 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_metadata.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_metadata.cs
@@ -111,8 +111,7 @@ namespace Ghost.Ufbx
public ufbx_mirror_axis handedness_conversion_axis;
- [NativeTypeName("ufbx_quat")]
- public Misaki.HighPerformance.Mathematics.quaternion root_rotation;
+ public ufbx_quat root_rotation;
[NativeTypeName("ufbx_real")]
public float root_scale;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_node.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_node.cs
index 68c4c67..7ef4f22 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_node.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_node.cs
@@ -38,42 +38,32 @@ namespace Ghost.Ufbx
public ufbx_transform geometry_transform;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 inherit_scale;
+ public ufbx_vec3 inherit_scale;
public ufbx_node* inherit_scale_node;
public ufbx_rotation_order rotation_order;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 euler_rotation;
+ public ufbx_vec3 euler_rotation;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 node_to_parent;
+ public ufbx_matrix node_to_parent;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 node_to_world;
+ public ufbx_matrix node_to_world;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 geometry_to_node;
+ public ufbx_matrix geometry_to_node;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 geometry_to_world;
+ public ufbx_matrix geometry_to_world;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 unscaled_node_to_world;
+ public ufbx_matrix unscaled_node_to_world;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 adjust_pre_translation;
+ public ufbx_vec3 adjust_pre_translation;
- [NativeTypeName("ufbx_quat")]
- public Misaki.HighPerformance.Mathematics.quaternion adjust_pre_rotation;
+ public ufbx_quat adjust_pre_rotation;
[NativeTypeName("ufbx_real")]
public float adjust_pre_scale;
- [NativeTypeName("ufbx_quat")]
- public Misaki.HighPerformance.Mathematics.quaternion adjust_post_rotation;
+ public ufbx_quat adjust_post_rotation;
[NativeTypeName("ufbx_real")]
public float adjust_post_scale;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_prop.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_prop.cs
index ea457ae..d18bc08 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_prop.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_prop.cs
@@ -45,7 +45,7 @@ namespace Ghost.Ufbx
}
[UnscopedRef]
- public ref Misaki.HighPerformance.Mathematics.float2 value_vec2
+ public ref ufbx_vec2 value_vec2
{
get
{
@@ -54,7 +54,7 @@ namespace Ghost.Ufbx
}
[UnscopedRef]
- public ref Misaki.HighPerformance.Mathematics.float3 value_vec3
+ public ref ufbx_vec3 value_vec3
{
get
{
@@ -63,7 +63,7 @@ namespace Ghost.Ufbx
}
[UnscopedRef]
- public ref Misaki.HighPerformance.Mathematics.float4 value_vec4
+ public ref ufbx_vec4 value_vec4
{
get
{
@@ -83,16 +83,13 @@ namespace Ghost.Ufbx
public float value_real;
[FieldOffset(0)]
- [NativeTypeName("ufbx_vec2")]
- public Misaki.HighPerformance.Mathematics.float2 value_vec2;
+ public ufbx_vec2 value_vec2;
[FieldOffset(0)]
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 value_vec3;
+ public ufbx_vec3 value_vec3;
[FieldOffset(0)]
- [NativeTypeName("ufbx_vec4")]
- public Misaki.HighPerformance.Mathematics.float4 value_vec4;
+ public ufbx_vec4 value_vec4;
[InlineArray(4)]
public partial struct _value_real_arr_e__FixedBuffer
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_prop_override.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_prop_override.cs
index dbfad8d..e1f1268 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_prop_override.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_prop_override.cs
@@ -10,8 +10,7 @@ namespace Ghost.Ufbx
public ufbx_string prop_name;
- [NativeTypeName("ufbx_vec4")]
- public Misaki.HighPerformance.Mathematics.float4 value;
+ public ufbx_vec4 value;
public ufbx_string value_str;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_prop_override_desc.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_prop_override_desc.cs
index 2a962e6..3fa27d0 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_prop_override_desc.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_prop_override_desc.cs
@@ -7,8 +7,7 @@ namespace Ghost.Ufbx
public ufbx_string prop_name;
- [NativeTypeName("ufbx_vec4")]
- public Misaki.HighPerformance.Mathematics.float4 value;
+ public ufbx_vec4 value;
public ufbx_string value_str;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_quat.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_quat.cs
index 2a537bb..18d4dd8 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_quat.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_quat.cs
@@ -1,3 +1,4 @@
+using System;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_scene_settings.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_scene_settings.cs
index c97146a..4302ce4 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_scene_settings.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_scene_settings.cs
@@ -11,8 +11,7 @@ namespace Ghost.Ufbx
public double frames_per_second;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 ambient_color;
+ public ufbx_vec3 ambient_color;
public ufbx_string default_camera;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_shader_texture_input.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_shader_texture_input.cs
index 62a166d..8ebe0ca 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_shader_texture_input.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_shader_texture_input.cs
@@ -41,7 +41,7 @@ namespace Ghost.Ufbx
}
[UnscopedRef]
- public ref Misaki.HighPerformance.Mathematics.float2 value_vec2
+ public ref ufbx_vec2 value_vec2
{
get
{
@@ -50,7 +50,7 @@ namespace Ghost.Ufbx
}
[UnscopedRef]
- public ref Misaki.HighPerformance.Mathematics.float3 value_vec3
+ public ref ufbx_vec3 value_vec3
{
get
{
@@ -59,7 +59,7 @@ namespace Ghost.Ufbx
}
[UnscopedRef]
- public ref Misaki.HighPerformance.Mathematics.float4 value_vec4
+ public ref ufbx_vec4 value_vec4
{
get
{
@@ -75,16 +75,13 @@ namespace Ghost.Ufbx
public float value_real;
[FieldOffset(0)]
- [NativeTypeName("ufbx_vec2")]
- public Misaki.HighPerformance.Mathematics.float2 value_vec2;
+ public ufbx_vec2 value_vec2;
[FieldOffset(0)]
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 value_vec3;
+ public ufbx_vec3 value_vec3;
[FieldOffset(0)]
- [NativeTypeName("ufbx_vec4")]
- public Misaki.HighPerformance.Mathematics.float4 value_vec4;
+ public ufbx_vec4 value_vec4;
}
}
}
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_skin_cluster.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_skin_cluster.cs
index 59dc640..3935316 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_skin_cluster.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_skin_cluster.cs
@@ -10,17 +10,13 @@ namespace Ghost.Ufbx
public ufbx_node* bone_node;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 geometry_to_bone;
+ public ufbx_matrix geometry_to_bone;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 mesh_node_to_bone;
+ public ufbx_matrix mesh_node_to_bone;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 bind_to_world;
+ public ufbx_matrix bind_to_world;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 geometry_to_world;
+ public ufbx_matrix geometry_to_world;
public ufbx_transform geometry_to_world_transform;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_surface_point.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_surface_point.cs
index 04ca795..738ae9e 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_surface_point.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_surface_point.cs
@@ -5,13 +5,10 @@ namespace Ghost.Ufbx
[NativeTypeName("_Bool")]
public bool valid;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 position;
+ public ufbx_vec3 position;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 derivative_u;
+ public ufbx_vec3 derivative_u;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 derivative_v;
+ public ufbx_vec3 derivative_v;
}
}
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_texture.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_texture.cs
index 5b0d63a..1a9d992 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_texture.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_texture.cs
@@ -49,11 +49,9 @@ namespace Ghost.Ufbx
public ufbx_transform uv_transform;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 texture_to_uv;
+ public ufbx_matrix texture_to_uv;
- [NativeTypeName("ufbx_matrix")]
- public Misaki.HighPerformance.Mathematics.float3x4 uv_to_texture;
+ public ufbx_matrix uv_to_texture;
[UnscopedRef]
public ref ufbx_element element
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_transform.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_transform.cs
index 4b89419..3278f7c 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_transform.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_transform.cs
@@ -2,13 +2,10 @@ namespace Ghost.Ufbx
{
public partial struct ufbx_transform
{
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 translation;
+ public ufbx_vec3 translation;
- [NativeTypeName("ufbx_quat")]
- public Misaki.HighPerformance.Mathematics.quaternion rotation;
+ public ufbx_quat rotation;
- [NativeTypeName("ufbx_vec3")]
- public Misaki.HighPerformance.Mathematics.float3 scale;
+ public ufbx_vec3 scale;
}
}
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec2.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec2.cs
new file mode 100644
index 0000000..8bce34c
--- /dev/null
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec2.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Diagnostics.CodeAnalysis;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+namespace Ghost.Ufbx
+{
+ public partial struct ufbx_vec2
+ {
+ [NativeTypeName("__AnonymousRecord_ufbx_L299_C2")]
+ public _Anonymous_e__Union Anonymous;
+
+ [UnscopedRef]
+ public ref float x
+ {
+ get
+ {
+ return ref Anonymous.Anonymous.x;
+ }
+ }
+
+ [UnscopedRef]
+ public ref float y
+ {
+ get
+ {
+ return ref Anonymous.Anonymous.y;
+ }
+ }
+
+ [UnscopedRef]
+ public Span v
+ {
+ get
+ {
+ return Anonymous.v;
+ }
+ }
+
+ [StructLayout(LayoutKind.Explicit)]
+ public partial struct _Anonymous_e__Union
+ {
+ [FieldOffset(0)]
+ [NativeTypeName("__AnonymousRecord_ufbx_L300_C3")]
+ public _Anonymous_e__Struct Anonymous;
+
+ [FieldOffset(0)]
+ [NativeTypeName("ufbx_real[2]")]
+ public _v_e__FixedBuffer v;
+
+ public partial struct _Anonymous_e__Struct
+ {
+ [NativeTypeName("ufbx_real")]
+ public float x;
+
+ [NativeTypeName("ufbx_real")]
+ public float y;
+ }
+
+ [InlineArray(2)]
+ public partial struct _v_e__FixedBuffer
+ {
+ public float e0;
+ }
+ }
+ }
+}
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec2_list.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec2_list.cs
index 360bf86..3b2c3b2 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec2_list.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec2_list.cs
@@ -2,8 +2,7 @@ namespace Ghost.Ufbx
{
public unsafe partial struct ufbx_vec2_list
{
- [NativeTypeName("ufbx_vec2 *")]
- public Misaki.HighPerformance.Mathematics.float2* data;
+ public ufbx_vec2* data;
[NativeTypeName("size_t")]
public nuint count;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec3.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec3.cs
new file mode 100644
index 0000000..1da8011
--- /dev/null
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec3.cs
@@ -0,0 +1,79 @@
+using System;
+using System.Diagnostics.CodeAnalysis;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+namespace Ghost.Ufbx
+{
+ public partial struct ufbx_vec3
+ {
+ [NativeTypeName("__AnonymousRecord_ufbx_L309_C2")]
+ public _Anonymous_e__Union Anonymous;
+
+ [UnscopedRef]
+ public ref float x
+ {
+ get
+ {
+ return ref Anonymous.Anonymous.x;
+ }
+ }
+
+ [UnscopedRef]
+ public ref float y
+ {
+ get
+ {
+ return ref Anonymous.Anonymous.y;
+ }
+ }
+
+ [UnscopedRef]
+ public ref float z
+ {
+ get
+ {
+ return ref Anonymous.Anonymous.z;
+ }
+ }
+
+ [UnscopedRef]
+ public Span v
+ {
+ get
+ {
+ return Anonymous.v;
+ }
+ }
+
+ [StructLayout(LayoutKind.Explicit)]
+ public partial struct _Anonymous_e__Union
+ {
+ [FieldOffset(0)]
+ [NativeTypeName("__AnonymousRecord_ufbx_L310_C3")]
+ public _Anonymous_e__Struct Anonymous;
+
+ [FieldOffset(0)]
+ [NativeTypeName("ufbx_real[3]")]
+ public _v_e__FixedBuffer v;
+
+ public partial struct _Anonymous_e__Struct
+ {
+ [NativeTypeName("ufbx_real")]
+ public float x;
+
+ [NativeTypeName("ufbx_real")]
+ public float y;
+
+ [NativeTypeName("ufbx_real")]
+ public float z;
+ }
+
+ [InlineArray(3)]
+ public partial struct _v_e__FixedBuffer
+ {
+ public float e0;
+ }
+ }
+ }
+}
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec3_list.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec3_list.cs
index 29e4e27..440abf6 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec3_list.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec3_list.cs
@@ -2,8 +2,7 @@ namespace Ghost.Ufbx
{
public unsafe partial struct ufbx_vec3_list
{
- [NativeTypeName("ufbx_vec3 *")]
- public Misaki.HighPerformance.Mathematics.float3* data;
+ public ufbx_vec3* data;
[NativeTypeName("size_t")]
public nuint count;
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec4.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec4.cs
new file mode 100644
index 0000000..ec0ad7d
--- /dev/null
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec4.cs
@@ -0,0 +1,91 @@
+using System;
+using System.Diagnostics.CodeAnalysis;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+namespace Ghost.Ufbx
+{
+ public partial struct ufbx_vec4
+ {
+ [NativeTypeName("__AnonymousRecord_ufbx_L319_C2")]
+ public _Anonymous_e__Union Anonymous;
+
+ [UnscopedRef]
+ public ref float x
+ {
+ get
+ {
+ return ref Anonymous.Anonymous.x;
+ }
+ }
+
+ [UnscopedRef]
+ public ref float y
+ {
+ get
+ {
+ return ref Anonymous.Anonymous.y;
+ }
+ }
+
+ [UnscopedRef]
+ public ref float z
+ {
+ get
+ {
+ return ref Anonymous.Anonymous.z;
+ }
+ }
+
+ [UnscopedRef]
+ public ref float w
+ {
+ get
+ {
+ return ref Anonymous.Anonymous.w;
+ }
+ }
+
+ [UnscopedRef]
+ public Span v
+ {
+ get
+ {
+ return Anonymous.v;
+ }
+ }
+
+ [StructLayout(LayoutKind.Explicit)]
+ public partial struct _Anonymous_e__Union
+ {
+ [FieldOffset(0)]
+ [NativeTypeName("__AnonymousRecord_ufbx_L320_C3")]
+ public _Anonymous_e__Struct Anonymous;
+
+ [FieldOffset(0)]
+ [NativeTypeName("ufbx_real[4]")]
+ public _v_e__FixedBuffer v;
+
+ public partial struct _Anonymous_e__Struct
+ {
+ [NativeTypeName("ufbx_real")]
+ public float x;
+
+ [NativeTypeName("ufbx_real")]
+ public float y;
+
+ [NativeTypeName("ufbx_real")]
+ public float z;
+
+ [NativeTypeName("ufbx_real")]
+ public float w;
+ }
+
+ [InlineArray(4)]
+ public partial struct _v_e__FixedBuffer
+ {
+ public float e0;
+ }
+ }
+ }
+}
diff --git a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec4_list.cs b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec4_list.cs
index 0699ee8..f7f93ed 100644
--- a/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec4_list.cs
+++ b/src/ThridParty/Ghost.Ufbx/Generated/ufbx_vec4_list.cs
@@ -2,8 +2,7 @@ namespace Ghost.Ufbx
{
public unsafe partial struct ufbx_vec4_list
{
- [NativeTypeName("ufbx_vec4 *")]
- public Misaki.HighPerformance.Mathematics.float4* data;
+ public ufbx_vec4* data;
[NativeTypeName("size_t")]
public nuint count;
diff --git a/src/ThridParty/Ghost.Ufbx/Ghost.Ufbx.csproj b/src/ThridParty/Ghost.Ufbx/Ghost.Ufbx.csproj
index a077ceb..ea2e8a3 100644
--- a/src/ThridParty/Ghost.Ufbx/Ghost.Ufbx.csproj
+++ b/src/ThridParty/Ghost.Ufbx/Ghost.Ufbx.csproj
@@ -15,10 +15,6 @@
True
-
-
-
-
PreserveNewest
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/UfbxApi.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/UfbxApi.nativegen.cs
index 1b84ea6..8e3fd0a 100644
--- a/src/ThridParty/Ghost.Ufbx/Wrapper/UfbxApi.nativegen.cs
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/UfbxApi.nativegen.cs
@@ -61,7 +61,7 @@ public unsafe partial struct UfbxApi
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.float3 EvaluateBakedVec3(ufbx_baked_vec3_list keyframes, double time)
+ public static ufbx_vec3 EvaluateBakedVec3(ufbx_baked_vec3_list keyframes, double time)
{
return Api.ufbx_evaluate_baked_vec3(
keyframes,
@@ -72,7 +72,7 @@ public unsafe partial struct UfbxApi
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.quaternion EvaluateBakedQuat(ufbx_baked_quat_list keyframes, double time)
+ public static ufbx_quat EvaluateBakedQuat(ufbx_baked_quat_list keyframes, double time)
{
return Api.ufbx_evaluate_baked_quat(
keyframes,
@@ -89,19 +89,19 @@ public unsafe partial struct UfbxApi
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.float3 Vec3Normalize(Misaki.HighPerformance.Mathematics.float3 v)
+ public static ufbx_vec3 Vec3Normalize(ufbx_vec3 v)
{
return Api.ufbx_vec3_normalize(v);
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static float QuatDot(Misaki.HighPerformance.Mathematics.quaternion a, Misaki.HighPerformance.Mathematics.quaternion b)
+ public static float QuatDot(ufbx_quat a, ufbx_quat b)
{
return Api.ufbx_quat_dot(
a,
@@ -109,10 +109,10 @@ public unsafe partial struct UfbxApi
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.quaternion QuatMul(Misaki.HighPerformance.Mathematics.quaternion a, Misaki.HighPerformance.Mathematics.quaternion b)
+ public static ufbx_quat QuatMul(ufbx_quat a, ufbx_quat b)
{
return Api.ufbx_quat_mul(
a,
@@ -120,19 +120,19 @@ public unsafe partial struct UfbxApi
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.quaternion QuatNormalize(Misaki.HighPerformance.Mathematics.quaternion q)
+ public static ufbx_quat QuatNormalize(ufbx_quat q)
{
return Api.ufbx_quat_normalize(q);
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.quaternion QuatFixAntipodal(Misaki.HighPerformance.Mathematics.quaternion q, Misaki.HighPerformance.Mathematics.quaternion reference)
+ public static ufbx_quat QuatFixAntipodal(ufbx_quat q, ufbx_quat reference)
{
return Api.ufbx_quat_fix_antipodal(
q,
@@ -140,10 +140,10 @@ public unsafe partial struct UfbxApi
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.quaternion QuatSlerp(Misaki.HighPerformance.Mathematics.quaternion a, Misaki.HighPerformance.Mathematics.quaternion b, float t)
+ public static ufbx_quat QuatSlerp(ufbx_quat a, ufbx_quat b, float t)
{
return Api.ufbx_quat_slerp(
a,
@@ -152,10 +152,10 @@ public unsafe partial struct UfbxApi
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.float3 QuatRotateVec3(Misaki.HighPerformance.Mathematics.quaternion q, Misaki.HighPerformance.Mathematics.float3 v)
+ public static ufbx_vec3 QuatRotateVec3(ufbx_quat q, ufbx_vec3 v)
{
return Api.ufbx_quat_rotate_vec3(
q,
@@ -163,10 +163,10 @@ public unsafe partial struct UfbxApi
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.float3 QuatToEuler(Misaki.HighPerformance.Mathematics.quaternion q, ufbx_rotation_order order)
+ public static ufbx_vec3 QuatToEuler(ufbx_quat q, ufbx_rotation_order order)
{
return Api.ufbx_quat_to_euler(
q,
@@ -174,85 +174,16 @@ public unsafe partial struct UfbxApi
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.quaternion EulerToQuat(Misaki.HighPerformance.Mathematics.float3 v, ufbx_rotation_order order)
+ public static ufbx_quat EulerToQuat(ufbx_vec3 v, ufbx_rotation_order order)
{
return Api.ufbx_euler_to_quat(
v,
order);
}
- ///
- /// From:
- ///
- [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.float3x4 MatrixMul(Misaki.HighPerformance.Mathematics.float3x4* a, Misaki.HighPerformance.Mathematics.float3x4* b)
- {
- return Api.ufbx_matrix_mul(
- a,
- b);
- }
-
- ///
- /// From:
- ///
- [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static float MatrixDeterminant(Misaki.HighPerformance.Mathematics.float3x4* m)
- {
- return Api.ufbx_matrix_determinant(m);
- }
-
- ///
- /// From:
- ///
- [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.float3x4 MatrixInvert(Misaki.HighPerformance.Mathematics.float3x4* m)
- {
- return Api.ufbx_matrix_invert(m);
- }
-
- ///
- /// From:
- ///
- [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.float3x4 MatrixForNormals(Misaki.HighPerformance.Mathematics.float3x4* m)
- {
- return Api.ufbx_matrix_for_normals(m);
- }
-
- ///
- /// From:
- ///
- [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.float3 TransformPosition(Misaki.HighPerformance.Mathematics.float3x4* m, Misaki.HighPerformance.Mathematics.float3 v)
- {
- return Api.ufbx_transform_position(
- m,
- v);
- }
-
- ///
- /// From:
- ///
- [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static Misaki.HighPerformance.Mathematics.float3 TransformDirection(Misaki.HighPerformance.Mathematics.float3x4* m, Misaki.HighPerformance.Mathematics.float3 v)
- {
- return Api.ufbx_transform_direction(
- m,
- v);
- }
-
- ///
- /// From:
- ///
- [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public static ufbx_transform MatrixToTransform(Misaki.HighPerformance.Mathematics.float3x4* m)
- {
- return Api.ufbx_matrix_to_transform(m);
- }
-
///
/// From:
///
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_anim_value.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_anim_value.nativegen.cs
index 378934d..2ae9992 100644
--- a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_anim_value.nativegen.cs
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_anim_value.nativegen.cs
@@ -21,7 +21,7 @@ public unsafe partial struct ufbx_anim_value
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float3 EvaluateVec3(double time)
+ public ufbx_vec3 EvaluateVec3(double time)
{
return Api.ufbx_evaluate_anim_value_vec3(
(ufbx_anim_value*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
@@ -44,7 +44,7 @@ public unsafe partial struct ufbx_anim_value
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float3 EvaluateVec3Flags(double time, uint flags)
+ public ufbx_vec3 EvaluateVec3Flags(double time, uint flags)
{
return Api.ufbx_evaluate_anim_value_vec3_flags(
(ufbx_anim_value*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_blend_deformer.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_blend_deformer.nativegen.cs
index 9b43d36..158442b 100644
--- a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_blend_deformer.nativegen.cs
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_blend_deformer.nativegen.cs
@@ -10,7 +10,7 @@ public unsafe partial struct ufbx_blend_deformer
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float3 GetBlendVertexOffset(nuint vertex)
+ public ufbx_vec3 GetBlendVertexOffset(nuint vertex)
{
return Api.ufbx_get_blend_vertex_offset(
(ufbx_blend_deformer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
@@ -18,16 +18,16 @@ public unsafe partial struct ufbx_blend_deformer
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public void AddBlendVertexOffsets(ReadOnlySpan vertices, float weight)
+ public void AddBlendVertexOffsets(ReadOnlySpan vertices, float weight)
{
- fixed (Misaki.HighPerformance.Mathematics.float3* pvertices = vertices)
+ fixed (ufbx_vec3* pvertices = vertices)
{
Api.ufbx_add_blend_vertex_offsets(
(ufbx_blend_deformer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
- (Misaki.HighPerformance.Mathematics.float3*)pvertices,
+ (ufbx_vec3*)pvertices,
(nuint)vertices.Length,
weight);
}
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_blend_shape.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_blend_shape.nativegen.cs
index 7c8ec81..0b4300b 100644
--- a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_blend_shape.nativegen.cs
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_blend_shape.nativegen.cs
@@ -21,7 +21,7 @@ public unsafe partial struct ufbx_blend_shape
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float3 GetVertexOffset(nuint vertex)
+ public ufbx_vec3 GetVertexOffset(nuint vertex)
{
return Api.ufbx_get_blend_shape_vertex_offset(
(ufbx_blend_shape*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
@@ -29,16 +29,16 @@ public unsafe partial struct ufbx_blend_shape
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public void AddVertexOffsets(ReadOnlySpan vertices, float weight)
+ public void AddVertexOffsets(ReadOnlySpan vertices, float weight)
{
- fixed (Misaki.HighPerformance.Mathematics.float3* pvertices = vertices)
+ fixed (ufbx_vec3* pvertices = vertices)
{
Api.ufbx_add_blend_shape_vertex_offsets(
(ufbx_blend_shape*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
- (Misaki.HighPerformance.Mathematics.float3*)pvertices,
+ (ufbx_vec3*)pvertices,
(nuint)vertices.Length,
weight);
}
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_cache_channel.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_cache_channel.nativegen.cs
index f6fc63f..d4bd616 100644
--- a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_cache_channel.nativegen.cs
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_cache_channel.nativegen.cs
@@ -24,17 +24,17 @@ public unsafe partial struct ufbx_cache_channel
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public nuint SampleGeometryCacheVec3(double time, ReadOnlySpan data, ufbx_geometry_cache_data_opts* opts)
+ public nuint SampleGeometryCacheVec3(double time, ReadOnlySpan data, ufbx_geometry_cache_data_opts* opts)
{
- fixed (Misaki.HighPerformance.Mathematics.float3* pdata = data)
+ fixed (ufbx_vec3* pdata = data)
{
return Api.ufbx_sample_geometry_cache_vec3(
(ufbx_cache_channel*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
time,
- (Misaki.HighPerformance.Mathematics.float3*)pdata,
+ (ufbx_vec3*)pdata,
(nuint)data.Length,
opts);
}
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_cache_frame.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_cache_frame.nativegen.cs
index a491972..a68e111 100644
--- a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_cache_frame.nativegen.cs
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_cache_frame.nativegen.cs
@@ -23,16 +23,16 @@ public unsafe partial struct ufbx_cache_frame
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public nuint ReadGeometryCacheVec3(ReadOnlySpan data, ufbx_geometry_cache_data_opts* opts)
+ public nuint ReadGeometryCacheVec3(ReadOnlySpan data, ufbx_geometry_cache_data_opts* opts)
{
- fixed (Misaki.HighPerformance.Mathematics.float3* pdata = data)
+ fixed (ufbx_vec3* pdata = data)
{
return Api.ufbx_read_geometry_cache_vec3(
(ufbx_cache_frame*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
- (Misaki.HighPerformance.Mathematics.float3*)pdata,
+ (ufbx_vec3*)pdata,
(nuint)data.Length,
opts);
}
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_matrix.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_matrix.nativegen.cs
new file mode 100644
index 0000000..446d20d
--- /dev/null
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_matrix.nativegen.cs
@@ -0,0 +1,77 @@
+//
+// This file is generated by Ghost.NativeWrapperGen. Do not edit manually.
+//
+
+namespace Ghost.Ufbx;
+
+public unsafe partial struct ufbx_matrix
+{
+ ///
+ /// From:
+ ///
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
+ public ufbx_matrix Mul(ufbx_matrix* b)
+ {
+ return Api.ufbx_matrix_mul(
+ (ufbx_matrix*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
+ b);
+ }
+
+ ///
+ /// From:
+ ///
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
+ public float Determinant()
+ {
+ return Api.ufbx_matrix_determinant((ufbx_matrix*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
+ }
+
+ ///
+ /// From:
+ ///
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
+ public ufbx_matrix Invert()
+ {
+ return Api.ufbx_matrix_invert((ufbx_matrix*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
+ }
+
+ ///
+ /// From:
+ ///
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
+ public ufbx_matrix ForNormals()
+ {
+ return Api.ufbx_matrix_for_normals((ufbx_matrix*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
+ }
+
+ ///
+ /// From:
+ ///
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
+ public ufbx_vec3 TransformPosition(ufbx_vec3 v)
+ {
+ return Api.ufbx_transform_position(
+ (ufbx_matrix*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
+ v);
+ }
+
+ ///
+ /// From:
+ ///
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
+ public ufbx_vec3 TransformDirection(ufbx_vec3 v)
+ {
+ return Api.ufbx_transform_direction(
+ (ufbx_matrix*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
+ v);
+ }
+
+ ///
+ /// From:
+ ///
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
+ public ufbx_transform ToTransform()
+ {
+ return Api.ufbx_matrix_to_transform((ufbx_matrix*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
+ }
+}
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_mesh.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_mesh.nativegen.cs
index 6eeef0c..eabadb6 100644
--- a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_mesh.nativegen.cs
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_mesh.nativegen.cs
@@ -54,21 +54,21 @@ public unsafe partial struct ufbx_mesh : System.IDisposable
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public void ComputeNormals(ufbx_vertex_vec3* positions, ReadOnlySpan normal_indices, ReadOnlySpan normals)
+ public void ComputeNormals(ufbx_vertex_vec3* positions, ReadOnlySpan normal_indices, ReadOnlySpan normals)
{
fixed (uint* pnormal_indices = normal_indices)
{
- fixed (Misaki.HighPerformance.Mathematics.float3* pnormals = normals)
+ fixed (ufbx_vec3* pnormals = normals)
{
Api.ufbx_compute_normals(
(ufbx_mesh*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
positions,
(uint*)pnormal_indices,
(nuint)normal_indices.Length,
- (Misaki.HighPerformance.Mathematics.float3*)pnormals,
+ (ufbx_vec3*)pnormals,
(nuint)normals.Length);
}
}
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_node.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_node.nativegen.cs
index 2c79542..eb42f0a 100644
--- a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_node.nativegen.cs
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_node.nativegen.cs
@@ -10,7 +10,7 @@ public unsafe partial struct ufbx_node
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float3x4 GetCompatibleMatrixForNormals()
+ public ufbx_matrix GetCompatibleMatrixForNormals()
{
return Api.ufbx_get_compatible_matrix_for_normals((ufbx_node*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
}
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_panic.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_panic.nativegen.cs
index a7dbd0d..8b7b9cf 100644
--- a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_panic.nativegen.cs
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_panic.nativegen.cs
@@ -7,10 +7,10 @@ namespace Ghost.Ufbx;
public unsafe partial struct ufbx_panic
{
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float3x4 CatchGetSkinVertexMatrix(ufbx_skin_deformer* skin, nuint vertex, Misaki.HighPerformance.Mathematics.float3x4* fallback)
+ public ufbx_matrix CatchGetSkinVertexMatrix(ufbx_skin_deformer* skin, nuint vertex, ufbx_matrix* fallback)
{
return Api.ufbx_catch_get_skin_vertex_matrix(
(ufbx_panic*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
@@ -88,7 +88,7 @@ public unsafe partial struct ufbx_panic
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float3 CatchGetWeightedFaceNormal(ufbx_vertex_vec3* positions, ufbx_face face)
+ public ufbx_vec3 CatchGetWeightedFaceNormal(ufbx_vertex_vec3* positions, ufbx_face face)
{
return Api.ufbx_catch_get_weighted_face_normal(
(ufbx_panic*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
@@ -119,14 +119,14 @@ public unsafe partial struct ufbx_panic
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public void CatchComputeNormals(ufbx_mesh* mesh, ufbx_vertex_vec3* positions, ReadOnlySpan normal_indices, ReadOnlySpan normals)
+ public void CatchComputeNormals(ufbx_mesh* mesh, ufbx_vertex_vec3* positions, ReadOnlySpan normal_indices, ReadOnlySpan normals)
{
fixed (uint* pnormal_indices = normal_indices)
{
- fixed (Misaki.HighPerformance.Mathematics.float3* pnormals = normals)
+ fixed (ufbx_vec3* pnormals = normals)
{
Api.ufbx_catch_compute_normals(
(ufbx_panic*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
@@ -134,7 +134,7 @@ public unsafe partial struct ufbx_panic
positions,
(uint*)pnormal_indices,
(nuint)normal_indices.Length,
- (Misaki.HighPerformance.Mathematics.float3*)pnormals,
+ (ufbx_vec3*)pnormals,
(nuint)normals.Length);
}
}
@@ -156,7 +156,7 @@ public unsafe partial struct ufbx_panic
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float2 CatchGetVertexVec2(ufbx_vertex_vec2* v, nuint index)
+ public ufbx_vec2 CatchGetVertexVec2(ufbx_vertex_vec2* v, nuint index)
{
return Api.ufbx_catch_get_vertex_vec2(
(ufbx_panic*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
@@ -168,7 +168,7 @@ public unsafe partial struct ufbx_panic
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float3 CatchGetVertexVec3(ufbx_vertex_vec3* v, nuint index)
+ public ufbx_vec3 CatchGetVertexVec3(ufbx_vertex_vec3* v, nuint index)
{
return Api.ufbx_catch_get_vertex_vec3(
(ufbx_panic*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
@@ -180,7 +180,7 @@ public unsafe partial struct ufbx_panic
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float4 CatchGetVertexVec4(ufbx_vertex_vec4* v, nuint index)
+ public ufbx_vec4 CatchGetVertexVec4(ufbx_vertex_vec4* v, nuint index)
{
return Api.ufbx_catch_get_vertex_vec4(
(ufbx_panic*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_props.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_props.nativegen.cs
index 90eb277..9e9b6a6 100644
--- a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_props.nativegen.cs
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_props.nativegen.cs
@@ -61,10 +61,10 @@ public unsafe partial struct ufbx_props
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float3 FindVec3Len(ReadOnlySpan name, Misaki.HighPerformance.Mathematics.float3 def)
+ public ufbx_vec3 FindVec3Len(ReadOnlySpan name, ufbx_vec3 def)
{
fixed (byte* pname = name)
{
@@ -77,10 +77,10 @@ public unsafe partial struct ufbx_props
}
///
- /// From:
+ /// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float3 FindVec3(sbyte* name, Misaki.HighPerformance.Mathematics.float3 def)
+ public ufbx_vec3 FindVec3(sbyte* name, ufbx_vec3 def)
{
return Api.ufbx_find_vec3(
(ufbx_props*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_transform.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_transform.nativegen.cs
index 547ffb3..836c7f1 100644
--- a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_transform.nativegen.cs
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_transform.nativegen.cs
@@ -10,7 +10,7 @@ public unsafe partial struct ufbx_transform
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float3x4 ToMatrix()
+ public ufbx_matrix ToMatrix()
{
return Api.ufbx_transform_to_matrix((ufbx_transform*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
}
diff --git a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_vertex_vec3.nativegen.cs b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_vertex_vec3.nativegen.cs
index ee569b7..086ac89 100644
--- a/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_vertex_vec3.nativegen.cs
+++ b/src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_vertex_vec3.nativegen.cs
@@ -10,7 +10,7 @@ public unsafe partial struct ufbx_vertex_vec3
/// From:
///
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
- public Misaki.HighPerformance.Mathematics.float3 GetWeightedFaceNormal(ufbx_face face)
+ public ufbx_vec3 GetWeightedFaceNormal(ufbx_face face)
{
return Api.ufbx_get_weighted_face_normal(
(ufbx_vertex_vec3*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),