22namespace IntersectionTool
115template<
class Po
intType>
122 if (SquaredLength <= 0.0)
168template<
class Po
intType>
179template<
class Po
intType>
190template<
class Po
intType>
200template<
class Po
intType>
213template<
class Po
intType>
220 if (SquaredLength <= 0.0)
231 if (Coordinate < 0.0)
236 if (Coordinate > 1.0)
248template<
class Po
intType>
253 const PointType
Dummy = PointType::ZeroVector;
282 return Point1 - Point0;
289template<
class Po
intType>
315 return PointType::ZeroVector;
341 if (
Segment12.SquaredLength() > MaxLength)
445 const FVector2d AB = SegmentAB[1] - SegmentAB[0];
463 return (SegmentCD[0] + SegmentCD[1]) * 0.5;
479 return (SegmentAB[0] + SegmentAB[1]) * 0.5;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ensureCADKernel(InExpression)
Definition Types.h:115
#define SMALL_NUMBER_SQUARE
Definition Types.h:10
UE::Math::TVector2< double > FVector2d
Definition MathFwd.h:61
#define DOUBLE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:73
#define DOUBLE_SMALL_NUMBER
Definition UnrealMathUtility.h:72
void Inverse()
Definition MatrixH.cpp:114
static FVector2d FromVector(const FVector &Src)
Definition Point.h:18
Definition TestUtils.cpp:8
Definition CADEntity.cpp:23
PointType ProjectPointOnSegment(const PointType &Point, const PointType &InSegmentA, const PointType &InSegmentB, double &OutCoordinate, bool bRestrictCoodinateToInside=true)
Definition Geometry.h:116
FVector ProjectPointOnPlane(const FVector &Point, const FVector &Origin, const FVector &InNormal, double &OutDistance)
Definition Geometry.h:153
EPolygonSide
Definition Geometry.h:14
@ Side20
Definition Geometry.h:17
@ Side30
Definition Geometry.h:19
@ Side01
Definition Geometry.h:15
@ Side12
Definition Geometry.h:16
@ Side23
Definition Geometry.h:18
FVector2d FindIntersectionOfSegments2D(const FSegment2D &SegmentAB, const FSegment2D &SegmentCD, double &OutABIntersectionCoordinate)
Definition Geometry.h:443
bool DoIntersect(const FSegment2D &SegmentAB, const FSegment2D &SegmentCD, TFunction< bool(double, double, double, double)> DoCoincidentSegmentsIntersect, const double Min, const double Max)
Definition Geometry.cpp:167
bool DoIntersectInside(const FSegment2D &SegmentAB, const FSegment2D &SegmentCD)
Definition Geometry.cpp:252
PointType PointOnSegment(const PointType &InSegmentA, const PointType &InSegmentB, double InCoordinate)
Definition Geometry.h:169
CADKERNEL_API FVector2d ComputeCircumCircleCenterAndSquareRadius(const FVector2d &InPoint0, const FVector2d &InPoint1, const FVector2d &InPoint2, double &OutSquareRadius)
Definition Geometry.h:88
bool FindIntersectionOfLines2D(const FSegment2D &LineAB, const FSegment2D &LineCD, FVector2d &OutIntersectionPoint)
Definition Geometry.h:501
double DistanceOfPointToLine(const PointType &Point, const PointType &LinePoint1, const PointType &LineDirection)
Definition Geometry.h:201
double DistanceOfPointToSegment(const PointType &Point, const PointType &SegmentPoint1, const PointType &SegmentPoint2)
Definition Geometry.h:180
double ComputeCurvature(const FVector &Gradient, const FVector &Laplacian)
Definition Geometry.cpp:92
TSegment< FVector2d > FSegment2D
Definition Geometry.h:286
EIso
Definition GeoEnum.h:66
CADKERNEL_API FVector2d ComputeCircumCircleCenter(const FVector2d &InPoint0, const FVector2d &InPoint1, const FVector2d &InPoint2)
Definition Geometry.h:32
double CoordinateOfProjectedPointOnSegment(const PointType &Point, const PointType &InSegmentA, const PointType &InSegmentB, bool bRestrictCoodinateToInside=true)
Definition Geometry.h:214
bool AreParallel(const FSegment2D &SegmentAB, const FSegment2D &SegmentCD)
Definition Geometry.h:528
@ Iso
Definition Visu.h:20
@ Point
Definition Visu.h:17
void FindLoopIntersectionsWithIso(const EIso Iso, const double IsoParameter, const TArray< TArray< FVector2d > > &Loops, TArray< double > &OutIntersections)
Definition Geometry.cpp:109
double SquareDistanceOfPointToSegment(const PointType &Point, const PointType &SegmentPoint1, const PointType &SegmentPoint2)
Definition Geometry.h:191
U16 Index
Definition radfft.cpp:71
static constexpr UE_FORCEINLINE_HINT T Square(const T A)
Definition UnrealMathUtility.h:578
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
static UE_FORCEINLINE_HINT bool IsNearlyZero(float Value, float ErrorTolerance=UE_SMALL_NUMBER)
Definition UnrealMathUtility.h:407
Definition Geometry.h:428
FTriangle2D(const FVector2d &InPoint0, const FVector2d &InPoint1, const FVector2d &InPoint2)
Definition Geometry.h:429
FVector2d CircumCircleCenterWithSquareRadius(double &SquareRadius) const
Definition Geometry.h:434
Definition Geometry.h:413
virtual FVector ComputeNormal() const
Definition Geometry.h:419
FTriangle(const FVector &InPoint0, const FVector &InPoint1, const FVector &InPoint2)
Definition Geometry.h:414
Definition Geometry.h:250
TSegment(const PointType &InPoint0, const PointType &InPoint1)
Definition Geometry.h:255
PointType GetVector() const
Definition Geometry.h:280
double SquaredLength() const
Definition Geometry.h:275
constexpr const PointType & operator[](int32 Index) const
Definition Geometry.h:261
const PointType & Point1
Definition Geometry.h:252
const PointType & Point0
Definition Geometry.h:251
Definition Geometry.h:291
const PointType & Point0
Definition Geometry.h:292
const PointType & Point1
Definition Geometry.h:293
constexpr const PointType & operator[](int32 Index) const
Definition Geometry.h:303
virtual PointType ProjectPoint(const PointType &InPoint, FVector2d &OutCoordinate)
Definition Geometry.h:319
virtual PointType CircumCircleCenter() const
Definition Geometry.h:406
TTriangle(const PointType &InPoint0, const PointType &InPoint1, const PointType &InPoint2)
Definition Geometry.h:296
const PointType & Point2
Definition Geometry.h:294
UE_FORCEINLINE_HINT T SquaredLength() const
Definition Vector2D.h:516
static UE_FORCEINLINE_HINT double DistSquared(const TVector2< double > &V1, const TVector2< double > &V2)
Definition Vector2D.h:935
static CORE_API const TVector2< double > ZeroVector
Definition Vector2D.h:63
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79
bool Normalize(T Tolerance=UE_SMALL_NUMBER)
Definition Vector.h:1767
T SquaredLength() const
Definition Vector.h:1734