Files
speckle-sharp-sdk/src/Speckle.Objects/Geometry/BrepEdge.cs
T
Jedd Morgan b14c8db8d3 Required keyword on various types (#76)
* Made bounding boxes nullable

* Required keyword for Polyline

* Curve

* others

* Interval

* Breps!

* more changes

* removed resolved todo comment

* Fixed comment

* resolved alan's comments

* surfaces
2024-08-16 13:21:05 +01:00

37 lines
947 B
C#

using Speckle.Newtonsoft.Json;
using Speckle.Objects.Primitive;
using Speckle.Sdk.Models;
namespace Speckle.Objects.Geometry;
/// <summary>
/// Represents an edge of the <see cref="Brep"/>.
/// </summary>
[SpeckleType("Objects.Geometry.BrepEdge")]
public class BrepEdge : Base
{
[JsonIgnore]
public required Brep Brep { get; set; }
public required int Curve3dIndex { get; set; }
public required int[] TrimIndices { get; set; }
public required int StartIndex { get; set; }
public required int EndIndex { get; set; }
public required bool ProxyCurveIsReversed { get; set; }
public required Interval Domain { get; set; }
[JsonIgnore]
public Point StartVertex => Brep.Vertices[StartIndex];
[JsonIgnore]
public Point EndVertex => Brep.Vertices[EndIndex];
[JsonIgnore]
public IEnumerable<BrepTrim> Trims => TrimIndices.Select(i => Brep.Trims[i]);
[JsonIgnore]
public ICurve Curve => Brep.Curve3D[Curve3dIndex];
}