UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType > Class Template Referenceabstract

#include <SamplerAbstract.h>

+ Inheritance diagram for UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >:

Classes

struct  TSamplingPoint
 

Public Member Functions

 TCurveSamplerAbstract (const FLinearBoundary &InBoundary, PolylineType &OutPolyline, double InDesiredChordError)
 
virtual ~TCurveSamplerAbstract ()=default
 
virtual void Sample ()
 

Protected Member Functions

virtual void EvaluatesNewCandidatePoints ()=0
 
virtual int32 CheckSamplingError (int32 FirstIndex, int32 EndIndex)=0
 
virtual void GetNotDerivableCoordinates (TArray< double > &OutNotDerivableCoordinates)
 
virtual void SamplingInitalizing ()
 
void RunSampling ()
 
bool AddIntermediateCoordinates (double UMin, double UMax, int32 PointNum)
 
void CompletesPolyline (int32 NeededPointNumber, int32 IntermediateIndex)
 
int32 GetFirstNeighbor (int32 NeighborIndex, const double StartCoordinate, const PolylineType &Points, const int32 Increment, double &NeighborCoordinate)
 
int32 CountOfNeededPointsToRespectChordError (const PointType &PointA, const PointType &PointB, double ChordError)
 
int32 CheckTangentError (const PointType &APoint, double ACoordinate, const PointType &BPoint, double BCoordinate, int32 FirstIndex, int32 EndIndex, int32 InStartSamplingSegmentIndex)
 

Protected Attributes

FLinearBoundary Boundary
 
PolylineTypeSampling
 
PolylineType CandidatePoints
 
const TArray< double > & TmpPolylineCoordinates
 
const TArray< double > & SamplingCoordinates
 
TArray< charIsOptimalSegments
 
int32 StartSamplingSegmentIndex
 
int32 EndSamplingSegmentIndex
 
TSamplingPoint EndStudySegment
 
TArray< doubleNextCoordinates
 
double DesiredChordError
 

Constructor & Destructor Documentation

◆ TCurveSamplerAbstract()

template<typename PolylineType , typename PointType >
UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::TCurveSamplerAbstract ( const FLinearBoundary InBoundary,
PolylineType OutPolyline,
double  InDesiredChordError 
)
inline

◆ ~TCurveSamplerAbstract()

Member Function Documentation

◆ AddIntermediateCoordinates()

template<typename PolylineType , typename PointType >
bool UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::AddIntermediateCoordinates ( double  UMin,
double  UMax,
int32  PointNum 
)
inlineprotected

Adds coordinates of the next candidate points in NextCoordinates array

◆ CheckSamplingError()

◆ CheckTangentError()

template<typename PolylineType , typename PointType >
int32 UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::CheckTangentError ( const PointType &  APoint,
double  ACoordinate,
const PointType &  BPoint,
double  BCoordinate,
int32  FirstIndex,
int32  EndIndex,
int32  InStartSamplingSegmentIndex 
)
inlineprotected

◆ CompletesPolyline()

template<typename PolylineType , typename PointType >
void UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::CompletesPolyline ( int32  NeededPointNumber,
int32  IntermediateIndex 
)
inlineprotected

Completes Polyline and add new candidate coordinates for the next step.

Parameters
NeededPointCountestimated number of needed points to respect the sampling error. NeededPointNumber = 1: only the last point is needed NeededPointNumber = 2: the intermediate point and last point is needed NeededPointNumber > 2: the both points are not enought. Candidate points are added on each side of the intermediate point
IntermediateIndex

◆ CountOfNeededPointsToRespectChordError()

template<typename PolylineType , typename PointType >
int32 UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::CountOfNeededPointsToRespectChordError ( const PointType &  PointA,
const PointType &  PointB,
double  ChordError 
)
inlineprotected

◆ EvaluatesNewCandidatePoints()

◆ GetFirstNeighbor()

template<typename PolylineType , typename PointType >
int32 UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::GetFirstNeighbor ( int32  NeighborIndex,
const double  StartCoordinate,
const PolylineType Points,
const int32  Increment,
double NeighborCoordinate 
)
inlineprotected

◆ GetNotDerivableCoordinates()

template<typename PolylineType , typename PointType >
virtual void UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::GetNotDerivableCoordinates ( TArray< double > &  OutNotDerivableCoordinates)
inlineprotectedvirtual

◆ RunSampling()

template<typename PolylineType , typename PointType >
void UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::RunSampling ( )
inlineprotected

Method to call to generate the curve sampling

◆ Sample()

template<typename PolylineType , typename PointType >
virtual void UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::Sample ( )
inlinevirtual

Method to call to generate the curve sampling

Reimplemented in UE::CADKernel::FSurfaceSamplerOnParam.

◆ SamplingInitalizing()

template<typename PolylineType , typename PointType >
virtual void UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::SamplingInitalizing ( )
inlineprotectedvirtual

Method to call to generate the curve sampling

Reimplemented in UE::CADKernel::FSurfaceSamplerOnParam.

Member Data Documentation

◆ Boundary

template<typename PolylineType , typename PointType >
FLinearBoundary UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::Boundary
protected

◆ CandidatePoints

template<typename PolylineType , typename PointType >
PolylineType UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::CandidatePoints
protected

◆ DesiredChordError

template<typename PolylineType , typename PointType >
double UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::DesiredChordError
protected

◆ EndSamplingSegmentIndex

template<typename PolylineType , typename PointType >
int32 UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::EndSamplingSegmentIndex
protected

EndSamplingPointIndex changes (+1) each time a candidate point is inserted in the sampling

◆ EndStudySegment

template<typename PolylineType , typename PointType >
TSamplingPoint UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::EndStudySegment
protected

The study segment starting at StartSamplingPoint and ending at EndStudySegment that is either a point of Sampling or a point of CandidatePoints The sampling error is compute between the intermediate candidate points (candidate points localized between StartSamplingPoint and EndStudySegment) and this segment. FirstCandidateIndex and (LastCandidateIndex - 1) are the index of the first and the last intermediate points

◆ IsOptimalSegments

template<typename PolylineType , typename PointType >
TArray<char> UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::IsOptimalSegments
protected

Array to indicated if the segment at Index defined by Sampling[Index] and Sampling[Index + 1] respects the desired criteria

◆ NextCoordinates

template<typename PolylineType , typename PointType >
TArray<double> UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::NextCoordinates
protected

Coordinates of the new candidate points for the next iteration

◆ Sampling

template<typename PolylineType , typename PointType >
PolylineType& UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::Sampling
protected

◆ SamplingCoordinates

template<typename PolylineType , typename PointType >
const TArray<double>& UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::SamplingCoordinates
protected

◆ StartSamplingSegmentIndex

template<typename PolylineType , typename PointType >
int32 UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::StartSamplingSegmentIndex
protected

StartSamplingPointIndex and EndSamplingPointIndex defined the extremity of the segment that is currently enriched with candidate points if needed

◆ TmpPolylineCoordinates

template<typename PolylineType , typename PointType >
const TArray<double>& UE::CADKernel::TCurveSamplerAbstract< PolylineType, PointType >::TmpPolylineCoordinates
protected

The documentation for this class was generated from the following file: