Files
speckle-sharp-sdk/src/Speckle.Objects/Geometry/BrepTrim.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

39 lines
1.1 KiB
C#

using Speckle.Newtonsoft.Json;
using Speckle.Objects.Primitive;
using Speckle.Sdk.Models;
namespace Speckle.Objects.Geometry;
/// <summary>
/// Represents a UV Trim curve for one of the <see cref="Brep"/>'s surfaces.
/// </summary>
[SpeckleType("Objects.Geometry.BrepTrim")]
public class BrepTrim : Base
{
[JsonIgnore]
public required Brep Brep { get; set; }
public required int EdgeIndex { get; set; }
public required int StartIndex { get; set; }
public required int EndIndex { get; set; }
public required int FaceIndex { get; set; }
public required int LoopIndex { get; set; }
public required int CurveIndex { get; set; }
public required int IsoStatus { get; set; }
public required BrepTrimType TrimType { get; set; }
public required bool IsReversed { get; set; }
public required Interval Domain { get; set; }
[JsonIgnore]
public BrepFace Face => Brep.Faces[FaceIndex];
[JsonIgnore]
public BrepLoop Loop => Brep.Loops[LoopIndex];
[JsonIgnore]
public BrepEdge? Edge => EdgeIndex != -1 ? Brep.Edges[EdgeIndex] : null;
[JsonIgnore]
public ICurve Curve2d => Brep.Curve2D[CurveIndex];
}