b14c8db8d3
* 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
37 lines
947 B
C#
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];
|
|
}
|