Files
stgsharp/src/Nitload.Mathematics/Geometries/PlainGeometry/Define/PlainGeometry.cs
T

52 lines
1.3 KiB
C#

// -----------------------------------------------------------------------------
// file="PlainGeometry"
// Project: StgSharp
// Copyright (c) Nitload.
// SPDX-License-Identifier: MIT
// -----------------------------------------------------------------------------
using Nitload;
using Nitload.Mathematics;
using Nitload.Mathematics.Numeric.Graphics;
using System;
using System.ComponentModel;
namespace Nitload.Geometries
{
/// <summary>
/// Plain geometry only contains straight sides.
/// </summary>
public abstract class PlainGeometry : IGeometry
{
protected Vec3<float>[] vertexMat;
internal CoordinationBase coordinate;
internal PlainGeometry(
CoordinationBase coordination
)
{
coordinate = coordination;
}
public Point this[
int index
]
{
get => new(vertexMat[index]);
set => vertexMat[index] = value.Coord;
}
public int VertexCount => this.vertexMat.Length;
public abstract ReadOnlySpan<int> VertexIndices { get; }
#pragma warning disable CA1819
public Vec3<float>[] VertexStream => vertexMat;
public CoordinationBase Coordination => this.coordinate;
#pragma warning restore CA1819
}
}