mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
53 lines
1.5 KiB
C#
53 lines
1.5 KiB
C#
using AssetRipper.Numerics;
|
|
using AssetRipper.SourceGenerated.Enums;
|
|
using AssetRipper.SourceGenerated.Extensions;
|
|
using System.Numerics;
|
|
|
|
namespace AssetRipper.Tests;
|
|
|
|
internal static class MeshDataExtensions
|
|
{
|
|
extension(MeshData)
|
|
{
|
|
public static MeshData CreateTriangleMesh()
|
|
{
|
|
Vector3[] vertices =
|
|
[
|
|
new Vector3(0.0f, 0.0f, 0.0f),
|
|
new Vector3(1.0f, 0.0f, 0.0f),
|
|
new Vector3(0.0f, 1.0f, 0.0f),
|
|
];
|
|
Vector3[] normals =
|
|
[
|
|
new Vector3(0.0f, 0.0f, 1.0f),
|
|
new Vector3(0.0f, 0.0f, 1.0f),
|
|
new Vector3(0.0f, 0.0f, 1.0f),
|
|
];
|
|
Vector4[] tangents =
|
|
[
|
|
new Vector4(1.0f, 0.0f, 0.0f, 1.0f),
|
|
new Vector4(1.0f, 0.0f, 0.0f, 1.0f),
|
|
new Vector4(1.0f, 0.0f, 0.0f, 1.0f),
|
|
];
|
|
ColorFloat[] colors =
|
|
[
|
|
new ColorFloat(1.0f, 0.0f, 0.0f, 1.0f),
|
|
new ColorFloat(0.0f, 1.0f, 0.0f, 1.0f),
|
|
new ColorFloat(0.0f, 0.0f, 1.0f, 1.0f),
|
|
];
|
|
ReadOnlySpan<Vector2> uv =
|
|
[
|
|
new Vector2(0.0f, 0.0f),
|
|
new Vector2(1.0f, 0.0f),
|
|
new Vector2(0.0f, 1.0f),
|
|
];
|
|
uint[] processedIndexBuffer = [0, 1, 2];
|
|
SubMeshData[] subMeshes =
|
|
[
|
|
new SubMeshData(0, 0, 0, processedIndexBuffer.Length, 1, 3, MeshTopology.Triangles, new Bounds(new Vector3(0.5f, 0.5f, 0.0f), new Vector3(0.5f, 0.5f, 0.0f)))
|
|
];
|
|
return new MeshData(vertices, normals, tangents, colors, uv.ToArray(), uv.ToArray(), uv.ToArray(), uv.ToArray(), uv.ToArray(), uv.ToArray(), uv.ToArray(), uv.ToArray(), null, null, processedIndexBuffer, subMeshes);
|
|
}
|
|
}
|
|
}
|