Files
AR-Menu/Library/PackageCache/com.unity.cloud.gltfast@db5a82ec0b47/Runtime/Scripts/VertexStructs.cs
2025-11-30 08:35:03 +02:00

125 lines
2.7 KiB
C#

// SPDX-FileCopyrightText: 2023 Unity Technologies and the glTFast authors
// SPDX-License-Identifier: Apache-2.0
using System.Runtime.InteropServices;
using Unity.Mathematics;
namespace GLTFast.Vertex
{
// Most struct members are never accessed, but keeping them public makes still sense for future use.
// ReSharper disable MemberCanBePrivate.Global
[StructLayout(LayoutKind.Sequential)]
struct VPosNormTan
{
public float3 position;
public float3 normal;
public float4 tangent;
}
[StructLayout(LayoutKind.Sequential)]
struct VPosNorm
{
public float3 position;
public float3 normal;
}
[StructLayout(LayoutKind.Sequential)]
struct VPos
{
public float3 position;
}
[StructLayout(LayoutKind.Sequential)]
struct VTexCoord1
{
public float2 uv0;
}
[StructLayout(LayoutKind.Sequential)]
struct VTexCoord2
{
public float2 uv0;
public float2 uv1;
}
[StructLayout(LayoutKind.Sequential)]
struct VTexCoord3
{
public float2 uv0;
public float2 uv1;
public float2 uv2;
}
[StructLayout(LayoutKind.Sequential)]
struct VTexCoord4
{
public float2 uv0;
public float2 uv1;
public float2 uv2;
public float2 uv3;
}
[StructLayout(LayoutKind.Sequential)]
struct VTexCoord5
{
public float2 uv0;
public float2 uv1;
public float2 uv2;
public float2 uv3;
public float2 uv4;
}
[StructLayout(LayoutKind.Sequential)]
struct VTexCoord6
{
public float2 uv0;
public float2 uv1;
public float2 uv2;
public float2 uv3;
public float2 uv4;
public float2 uv5;
}
[StructLayout(LayoutKind.Sequential)]
struct VTexCoord7
{
public float2 uv0;
public float2 uv1;
public float2 uv2;
public float2 uv3;
public float2 uv4;
public float2 uv5;
public float2 uv6;
}
[StructLayout(LayoutKind.Sequential)]
struct VTexCoord8
{
public float2 uv0;
public float2 uv1;
public float2 uv2;
public float2 uv3;
public float2 uv4;
public float2 uv5;
public float2 uv6;
public float2 uv7;
}
[StructLayout(LayoutKind.Sequential)]
unsafe struct VBones
{
public fixed float weights[4];
public fixed uint joints[4];
#if DEBUG
public override string ToString() {
return $"{joints[0]}/{weights[0]}, {joints[1]}/{weights[1]}, {joints[2]}/{weights[2]}, {joints[3]}/{weights[3]}";
}
#endif
}
// ReSharper restore MemberCanBePrivate.Global
}