125 lines
2.7 KiB
C#
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
|
|
}
|