13template<
class Po
intType,
class Po
intCurveType>
17 friend class FPolylineTools;
25 , Approximator(this->Coordinates, this->Points)
30 Boundary.Set(this->Coordinates.HeapTop(), this->Coordinates.Last());
36 , Approximator(this->Coordinates, this->Points)
38 this->Coordinates.Reserve(
InPoints.Num());
39 this->Coordinates.Add(0.);
52 : Approximator(this->Coordinates, this->Points)
60 FCurve::Serialize(Ar);
91 return this->Coordinates;
113 GlobalLength.Empty();
116 template<
class PolylineType>
122 for (PointType
Point : this->Points)
127 return FEntity::MakeShared<PolylineType>(
NewPoints, this->Coordinates);
132 for (PointType&
Pole : this->Points)
134 Pole += PointType(OffsetDirection);
140 PolylineTools::ExtendTo(this->Points, (PointType)
DesiredPoint);
165 return ECurve::Polyline3D;
205 return ECurve::Polyline2D;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ensureCADKernel(InExpression)
Definition Types.h:115
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition SharedPointer.h:692
Definition CADKernelArchive.h:19
Definition CADEntity.h:56
Definition PolylineCurve.h:185
virtual ECurve GetCurveType() const override
Definition PolylineCurve.h:203
virtual TSharedPtr< FEntityGeom > ApplyMatrix(const FMatrixH &InMatrix) const override
Definition PolylineCurve.h:208
virtual FVector2d Evaluate2DPoint(double InCoordinate) const override
Definition PolylineCurve.h:218
FPolyline2DCurve()=default
virtual void Evaluate2DPoints(const TArray< double > &InCoordinates, TArray< FCurvePoint2D > &OutPoints, int32 InDerivativeOrder=0) const override
Definition PolylineCurve.h:223
FPolyline2DCurve(const TArray< FVector2d > &InPoints, const TArray< double > &InCoordinates)
Definition PolylineCurve.h:189
virtual void Evaluate2DPoint(double InCoordinate, FCurvePoint2D &OutPoint, int32 InDerivativeOrder=0) const override
Definition PolylineCurve.h:213
FPolyline2DCurve(const TArray< FVector2d > &InPoints)
Definition PolylineCurve.h:194
Definition PolylineCurve.h:145
FPolylineCurve(const TArray< FVector > &InPoints, const TArray< double > &InCoordinates)
Definition PolylineCurve.h:149
virtual TSharedPtr< FEntityGeom > ApplyMatrix(const FMatrixH &InMatrix) const override
Definition PolylineCurve.h:168
virtual ECurve GetCurveType() const override
Definition PolylineCurve.h:163
virtual FVector EvaluatePoint(double InCoordinate) const override
Definition PolylineCurve.h:173
FPolylineCurve(const TArray< FVector > &InPoints)
Definition PolylineCurve.h:154
Definition PolylineTools.h:194
void ApproximatePoints(const TArray< double > &InCoordinates, TArray< CurvePointType > &OutPoints, int32 InDerivativeOrder=0) const
Definition PolylineTools.h:360
PointType ApproximatePoint(const double InCoordinate) const
Definition PolylineTools.h:319
double ComputeLengthOfSubPolyline(const int BoundaryIndex[2], const FLinearBoundary &InBoundary) const
Definition PolylineTools.h:779
Definition PolylineCurve.h:15
virtual void FindNotDerivableCoordinates(const FLinearBoundary &InBoundary, int32 DerivativeOrder, TArray< double > &OutNotDerivableCoordinates) const override
Definition PolylineCurve.h:94
virtual void EvaluateCurvesPoint(double InCoordinate, PointCurveType &OutPoint, int32 InDerivativeOrder=0) const
Definition PolylineCurve.h:64
TPolylineCurve(const TArray< PointType > &InPoints, const TArray< double > &InCoordinates, int8 InDimension)
Definition PolylineCurve.h:23
TPolylineCurve()
Definition PolylineCurve.h:51
const TArray< PointType > & GetPolylinePoints() const
Definition PolylineCurve.h:84
TPolylineCurve(const TArray< PointType > &InPoints, int8 InDimension)
Definition PolylineCurve.h:33
virtual void ExtendTo(const FVector &DesiredPoint) override
Definition PolylineCurve.h:138
virtual double ComputeSubLength(const FLinearBoundary &InBoundary) const
Definition PolylineCurve.h:79
virtual void Serialize(FCADKernelArchive &Ar) override
Definition PolylineCurve.h:58
TPolylineApproximator< PointType > Approximator
Definition PolylineCurve.h:21
PointType EvaluatePointAt(double InCoordinate) const
Definition PolylineCurve.h:69
virtual void EvaluateCurvesPoints(const TArray< double > &InCoordinates, TArray< PointCurveType > &OutPoints, int32 InDerivativeOrder=0) const
Definition PolylineCurve.h:74
void SetPoints(const TArray< PointType > &InPoints)
Definition PolylineCurve.h:110
virtual void Offset(const FVector &OffsetDirection) override
Definition PolylineCurve.h:130
const TArray< double > & GetPolylineParameters() const
Definition PolylineCurve.h:89
TSharedPtr< FEntityGeom > ApplyMatrixImpl(const FMatrixH &InMatrix) const
Definition PolylineCurve.h:117
Definition CADEntity.cpp:23
ECurve
Definition GeoEnum.h:10
U16 Index
Definition radfft.cpp:71