46 MinLinearTolerance = Boundary.ComputeMinimalTolerance();
55 FSurfacicCurve::Serialize(Ar);
59 MinLinearTolerance = Boundary.ComputeMinimalTolerance();
69 return ECurve::Restriction;
79 return Curve2D.ToSharedRef();
84 return MinLinearTolerance;
147 template<
class Po
intType>
153 template<
class Po
intType>
189 double Tolerance = GetCarrierSurface()->Get3DTolerance();
196 double Tolerance = GetCarrierSurface()->Get3DTolerance();
205 const double Tolerance = GetCarrierSurface()->Get3DTolerance();
207 return Polyline.ComputeLinearToleranceAt(Tolerance, MinLinearTolerance,
Index);
216 const double Tolerance = GetCarrierSurface()->Get3DTolerance();
235 template<
class Po
intType>
244 template<
class Po
intType>
270 void Offset2D(
const FVector2d& OffsetDirection);
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ensureCADKernel(InExpression)
Definition Types.h:115
#define DOUBLE_SMALL_NUMBER
Definition UnrealMathUtility.h:72
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition CADKernelArchive.h:19
bool IsLoading() const
Definition CADKernelArchive.h:108
Definition IndexOfCoordinateFinder.h:85
Definition CADEntity.h:56
Definition RestrictionCurve.h:33
void ProjectPoints(const FLinearBoundary &InBoundary, const TArray< PointType > &InPointsToProject, TArray< double > &ProjectedPointCoordinates, TArray< PointType > &ProjectedPoints) const
Definition RestrictionCurve.h:154
void Approximate3DPoints(const TArray< double > &InCoordinates, TArray< FVector > &OutPoints) const
Definition RestrictionCurve.h:134
FSurfacicPolyline Polyline
Definition RestrictionCurve.h:39
void ComputeIntersectionsWithIsos(const FLinearBoundary &InBoundary, const TArray< double > &InIsoCoordinates, const EIso InTypeIso, const FSurfacicTolerance &ToleranceIso, TArray< double > &OutIntersection) const
Definition RestrictionCurve.h:168
int32 GetPolylineSize()
Definition RestrictionCurve.h:227
const FSurfacicPolyline & GetPolyline() const
Definition RestrictionCurve.h:72
FVector Approximate3DPoint(double InCoordinate) const
Definition RestrictionCurve.h:106
void ProjectTwinCurvePoints(const FLinearBoundary &InBoundary, const TArray< FVector > &InPointsToProject, bool bSameOrientation, TArray< double > &OutProjectedPointCoords, double ToleranceOfProjection) const
Definition RestrictionCurve.h:163
double GetMinLinearTolerance() const
Definition RestrictionCurve.h:82
FVector2d GetTangent2DAt(double InCoordinate) const
Definition RestrictionCurve.h:116
FRestrictionCurve()=default
FRestrictionCurve(TSharedRef< FSurface > InCarrierSurface, TSharedRef< FCurve > InCurve2D)
Definition RestrictionCurve.h:42
void Approximate2DPoints(const TArray< double > &InCoordinates, TArray< FVector2d > &OutPoints) const
Definition RestrictionCurve.h:125
FVector GetTangentAt(double InCoordinate) const
Definition RestrictionCurve.h:111
const TSharedRef< FCurve > Get2DCurve() const
Definition RestrictionCurve.h:77
void GetDiscretizationPoints(const FLinearBoundary &InBoundary, EOrientation Orientation, TArray< PointType > &OutPoints) const
Definition RestrictionCurve.h:236
void Sample(const FLinearBoundary &InBoundary, const double DesiredSegmentLength, TArray< double > &OutCoordinates) const
Definition RestrictionCurve.h:253
void ApproximatePolyline(FSurfacicPolyline &OutPolyline) const
Definition RestrictionCurve.h:142
TSharedPtr< FEntityGeom > ApplyMatrix(const FMatrixH &InMatrix) const override
Definition RestrictionCurve.h:87
virtual ECurve GetCurveType() const override
Definition RestrictionCurve.h:67
double GetToleranceAt(const double InCoordinate)
Definition RestrictionCurve.h:201
double GetCoordinateOfProjectedPoint(const FLinearBoundary &InBoundary, const PointType &PointOnEdge, PointType &ProjectedPoint) const
Definition RestrictionCurve.h:148
FVector2d Approximate2DPoint(double InCoordinate) const
Definition RestrictionCurve.h:97
double MinLinearTolerance
Definition RestrictionCurve.h:40
virtual void Offset(const FVector &OffsetDirection) override
Definition RestrictionCurve.h:275
double ApproximateLength(const FLinearBoundary &InBoundary) const
Definition RestrictionCurve.h:258
FVector2d GetExtremityTolerances(const FLinearBoundary &InBoundary)
Definition RestrictionCurve.h:210
void GetDiscretizationPoints(const FLinearBoundary &InBoundary, TArray< double > &OutCoordinates, TArray< PointType > &OutPoints) const
Definition RestrictionCurve.h:245
virtual void Serialize(FCADKernelArchive &Ar) override
Definition RestrictionCurve.h:53
void GetExtremities(const FLinearBoundary &InBoundary, FSurfacicCurveExtremities &Extremities) const
Definition RestrictionCurve.h:194
void CheckIfDegenerated(const FLinearBoundary &InBoundary, bool &bDegeneration2D, bool &bDegeneration3D, double &Length3D) const
Definition RestrictionCurve.h:180
bool IsIso(EIso Iso, double ErrorTolerance=DOUBLE_SMALL_NUMBER) const
Definition RestrictionCurve.h:265
Definition SurfacicCurve.h:22
Definition SurfacicPolyline.h:30
Definition TopologicalEdge.h:63
Definition CADEntity.cpp:23
EOrientation
Definition GeoEnum.h:82
EIso
Definition GeoEnum.h:66
@ Iso
Definition Visu.h:20
ECurve
Definition GeoEnum.h:10
U16 Index
Definition radfft.cpp:71