using Speckle.Newtonsoft.Json;
using Speckle.Sdk.Models;
namespace Speckle.Objects.Geometry;
///
/// Represents a face on a
///
[SpeckleType("Objects.Geometry.BrepFace")]
public class BrepFace : Base
{
[JsonIgnore]
public required Brep Brep { get; set; }
public required int SurfaceIndex { get; set; }
public required List LoopIndices { get; set; }
public required int OuterLoopIndex { get; set; }
public required bool OrientationReversed { get; set; }
[JsonIgnore]
public BrepLoop OuterLoop => Brep.Loops[OuterLoopIndex];
[JsonIgnore]
public Surface Surface => Brep.Surfaces[SurfaceIndex];
[JsonIgnore]
public List Loops => LoopIndices.Select(i => Brep.Loops[i]).ToList();
}