6#include "Core/Factory.h"
18class FTopologicalFace;
19class FTopologicalEdge;
20class FTopologicalLoop;
36 double Coordinates[2] = {0. ,0.};
43 double MiddleAxis = 0.;
44 double SquareDistanceToClosedSegment = 0.;
48 bool bIsThinZone =
false;
70 ClosedSegment =
nullptr;
72 SquareDistanceToClosedSegment = -1.;
111 return Points[Limit];
116 return Coordinates[Limit];
129 return ClosedSegment;
140 return SquareDistanceToClosedSegment;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 FIdent
Definition Types.h:27
#define Square(a, x, y)
Definition Predicates.inl:251
Definition FaceAnalyzer.h:183
FTopologicalFace & Face
Definition FaceAnalyzer.h:193
const double MaxOppositSideLength
Definition FaceAnalyzer.h:191
FFaceAnalyzer(FTopologicalFace &InFace, double InTol)
Definition FaceAnalyzer.h:197
const double Tolerance
Definition FaceAnalyzer.h:189
bool IsThinFace(double &OutGapSize)
Definition FaceAnalyzer.cpp:242
const double SquareTolerance
Definition FaceAnalyzer.h:190
Topo::FFaceAnalyzerChronos Chronos
Definition FaceAnalyzer.h:186
Definition HaveStates.h:48
Definition TopologicalEdge.h:63
Definition TopologicalFace.h:56
Definition TopologicalLoop.h:60
static double DiagonalAxisCoordinate(const FVector &Vec)
Definition Point.h:53
static double ComputeCosinus(const VectorType &Vec1, const VectorType &Vec2)
Definition Point.h:24
Definition FaceAnalyzer.h:33
FEdgeSegment * GetClosedSegment() const
Definition FaceAnalyzer.h:127
virtual ~FEdgeSegment()=default
FVector GetMiddle() const
Definition FaceAnalyzer.h:104
void SetClosedSegment(FEdgeSegment *InSegmentA, double InSquareDistance)
Definition FaceAnalyzer.h:132
constexpr const FVector & GetExtemity(const ELimit Limit) const
Definition FaceAnalyzer.h:109
void SetBoundarySegment(const FTopologicalEdge *InEdge, double InStartU, double InEndU, const FVector &InStartPoint, const FVector &InEndPoint)
Definition FaceAnalyzer.h:60
FVector ProjectPoint(const FVector &PointToProject, double &SegmentU) const
Definition FaceAnalyzer.h:143
constexpr double GetCoordinate(const ELimit Limit) const
Definition FaceAnalyzer.h:114
double ComputeCosAngleOf(const FEdgeSegment *Segment)
Definition FaceAnalyzer.h:122
const FVector GetVector() const
Definition FaceAnalyzer.h:82
double GetClosedSquareDistance() const
Definition FaceAnalyzer.h:138
const FTopologicalEdge * GetEdge() const
Definition FaceAnalyzer.h:94
bool IsThinZone()
Definition FaceAnalyzer.h:148
double GetLength() const
Definition FaceAnalyzer.h:99
void SetAsThinZone()
Definition FaceAnalyzer.h:153
Definition CADEntity.cpp:23
uint64 FDuration
Definition Chrono.h:27
ELimit
Definition GeoEnum.h:99
@ End
Definition GeoEnum.h:101
@ Start
Definition GeoEnum.h:100
Definition UnrealMathUtility.h:270
Definition FaceAnalyzer.h:26
FDuration FindClosedSegmentTime
Definition FaceAnalyzer.h:28
FDuration BuildLoopSegmentsTime
Definition FaceAnalyzer.h:27
FDuration AnalyzeClosedSegmentTime
Definition FaceAnalyzer.h:29
Definition FaceAnalyzer.h:160
TArray< double > EdgeMaxSquareDistance
Definition FaceAnalyzer.h:168
TFactory< Topo::FEdgeSegment > SegmentFatory
Definition FaceAnalyzer.h:165
FThinFaceContext(const FTopologicalLoop &InLoop)
Definition FaceAnalyzer.h:174
const FTopologicalLoop & Loop
Definition FaceAnalyzer.h:161
double OppositSideEdgeLength
Definition FaceAnalyzer.h:172
double ExternalLoopLength
Definition FaceAnalyzer.h:164
double ThinSideEdgeLength
Definition FaceAnalyzer.h:171
double MaxSquareDistance
Definition FaceAnalyzer.h:170
TArray< double > EdgeSquareDistance
Definition FaceAnalyzer.h:167
TArray< Topo::FEdgeSegment * > LoopSegments
Definition FaceAnalyzer.h:163
static UE_FORCEINLINE_HINT double Distance(const TVector< double > &V1, const TVector< double > &V2)
Definition Vector.h:1018