mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2026-08-15 02:57:49 +04:00
gl viewport
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
using NResUI.Rendering.Viewport.Meshes;
|
||||
|
||||
namespace NResUI.Rendering.Viewport;
|
||||
|
||||
public sealed class ViewportScene
|
||||
{
|
||||
private readonly List<ViewportPiece> _pieces = new();
|
||||
|
||||
public IReadOnlyList<ViewportPiece> Pieces => _pieces;
|
||||
|
||||
public ViewportGrid? Grid { get; set; }
|
||||
|
||||
public int SelectedPieceId { get; set; } = -1;
|
||||
|
||||
public ViewportPiece? SelectedPiece
|
||||
{
|
||||
get
|
||||
{
|
||||
if (SelectedPieceId < 0)
|
||||
return null;
|
||||
|
||||
foreach (var piece in _pieces)
|
||||
{
|
||||
if (piece.Id == SelectedPieceId)
|
||||
return piece;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void AddPiece(ViewportPiece piece)
|
||||
{
|
||||
_pieces.Add(piece);
|
||||
}
|
||||
|
||||
public void ClearSelection()
|
||||
{
|
||||
SelectedPieceId = -1;
|
||||
}
|
||||
|
||||
public static ViewportScene CreateDefaultCubeScene(GpuMesh cubeMesh, GpuMesh gridMesh)
|
||||
{
|
||||
var scene = new ViewportScene
|
||||
{
|
||||
Grid = new ViewportGrid(gridMesh)
|
||||
};
|
||||
|
||||
scene.AddPiece(ViewportPiece.CreateUnitCube(0, "Cube", cubeMesh));
|
||||
|
||||
return scene;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user