Files
parkan-playground/NResUI/Rendering/Viewport/ViewportPiece.cs
T

58 lines
1.4 KiB
C#
Raw Normal View History

2026-06-05 20:33:21 +03:00
using System.Numerics;
using NResUI.Rendering.Viewport.Meshes;
namespace NResUI.Rendering.Viewport;
public sealed class ViewportPiece
{
public int Id { get; }
public string Name { get; }
public GpuMesh Mesh { get; }
public Matrix4x4 LocalTransform { get; set; }
public Vector3 BoundsMin { get; }
public Vector3 BoundsMax { get; }
2026-06-05 21:12:25 +03:00
public ViewportPieceDebugInfo? DebugInfo { get; }
2026-06-05 20:33:21 +03:00
public ViewportPiece(
int id,
string name,
GpuMesh mesh,
Matrix4x4 localTransform,
Vector3 boundsMin,
2026-06-05 21:12:25 +03:00
Vector3 boundsMax,
ViewportPieceDebugInfo? debugInfo = null)
2026-06-05 20:33:21 +03:00
{
Id = id;
Name = name;
Mesh = mesh;
LocalTransform = localTransform;
BoundsMin = boundsMin;
BoundsMax = boundsMax;
2026-06-05 21:12:25 +03:00
DebugInfo = debugInfo;
2026-06-05 20:33:21 +03:00
}
public static ViewportPiece CreateUnitCube(int id, string name, GpuMesh mesh)
{
return new ViewportPiece(
id,
name,
mesh,
Matrix4x4.Identity,
new Vector3(-1.0f, -1.0f, -1.0f),
2026-06-05 21:12:25 +03:00
new Vector3(1.0f, 1.0f, 1.0f),
new ViewportPieceDebugInfo
{
SourceKind = "Debug primitive",
SourcePieceIndex = id,
SourceParentIndex = -1,
GeometrySlotIndex = 0,
Msh01Flags = 0,
BatchCount = 1,
TriangleCount = 12
});
2026-06-05 20:33:21 +03:00
}
}