22template<
typename RealType>
154 return (
pt.X * x +
pt.Y * y +
pt.Z * z) +
257template<
typename RealType>
396 if (FMath::Abs(
lambda) > 1.e5)
419template<
typename RealType>
469 if (FMath::Abs(
det) > 1.e-8)
475 for (
int i = 0; i < 3; ++i)
503 for (
int i = 0; i < 3; ++i)
568 RealType
SM[6] = { 0., 0., 0., 0., 0., 0. };
571 for (
int i = 0; i < 3; ++i)
578 RealType
InvA = (FMath::Abs(
a) > 1.e-7) ? RealType(1) /
a : 0.;
620 if (FMath::Abs(
lambda) > 1.e5)
661 - (
d[0] * attr[0] +
d[1] * attr[1] +
d[2] * attr[2]);
670 if (FMath::Abs(
a) > 1.e-5)
672 RealType
aInv = RealType(1) /
a;
682 attr.
X = RealType(0);
683 attr.
Y = RealType(0);
684 attr.
Z = RealType(0);
722template<
typename RealType>
748 Edge *= 1. / EdgeLength;
751 const RealType
Weight = EdgeLength;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::Math::TVector< double > FVector3d
Definition MathFwd.h:60
Definition MathUtil.h:150
Definition QuadricError.h:421
RealType a
Definition QuadricError.h:702
RealType d[3]
Definition QuadricError.h:710
TVolPresQuadricError< RealType > BaseClass
Definition QuadricError.h:424
TQuadricError< RealType > BaseStruct
Definition QuadricError.h:425
void ComputeAttributes(const TVector< RealType > &point, TVector< RealType > &attr) const
Definition QuadricError.h:668
TAttrBasedQuadricError()
Definition QuadricError.h:511
RealType attrweight
Definition QuadricError.h:706
bool OptimalPoint(UE::Math::TVector< RealType > &OptPoint, RealType minThresh=1000.0 *TMathUtil< RealType >::Epsilon) const
Definition QuadricError.h:565
static TAttrBasedQuadricError Zero()
Definition QuadricError.h:540
TAttrBasedQuadricError(const TAttrBasedQuadricError &Aother, const TAttrBasedQuadricError &Bother)
Definition QuadricError.h:525
void Add(RealType w, const TAttrBasedQuadricError &other)
Definition QuadricError.h:545
TAttrBasedQuadricError(const TVector< RealType > &P0, const TVector< RealType > &P1, const TVector< RealType > &P2, const TVector< RealType > &N0, const TVector< RealType > &N1, const TVector< RealType > &N2, const TVector< RealType > &NFace, const TVector< RealType > &CenterPoint, RealType AttrWeight)
Definition QuadricError.h:428
RealType ScalarType
Definition QuadricError.h:423
TVector< RealType > grad[3]
Definition QuadricError.h:709
RealType Evaluate(const TVector< RealType > &point, const TVector< RealType > &InAttr) const
Definition QuadricError.h:632
RealType Evaluate(const TVector< RealType > &point) const
Definition QuadricError.h:691
Definition QuadricError.h:259
TVolPresQuadricError(const TVector< RealType > &Normal, const TVector< RealType > &Point)
Definition QuadricError.h:327
static TVolPresQuadricError Zero()
Definition QuadricError.h:321
TVolPresQuadricError(const TVolPresQuadricError &a, const TVolPresQuadricError &b, const FPlaneData &DuplicatePlaneData)
Definition QuadricError.h:340
FPlaneData PlaneData
Definition QuadricError.h:317
TVolPresQuadricError()
Definition QuadricError.h:323
TQuadricError< RealType > BaseStruct
Definition QuadricError.h:262
void Add(RealType w, const TVolPresQuadricError &b)
Definition QuadricError.h:353
TVolPresQuadricError(const TVolPresQuadricError &a, const TVolPresQuadricError &b)
Definition QuadricError.h:333
bool OptimalPoint(UE::Math::TVector< RealType > &OutResult, RealType minThresh=1000.0 *TMathUtil< RealType >::Epsilon) const
Definition QuadricError.h:364
TQuadricError< RealType > CreateSeamQuadric(const TVector< RealType > &p0, const TVector< RealType > &p1, const TVector< RealType > &AdjFaceNormal)
Definition QuadricError.h:723
TQuadricError< float > FQuadricErrorf
Definition QuadricError.h:248
TVolPresQuadricError< float > FVolPresQuadricErrorf
Definition QuadricError.h:411
TAttrBasedQuadricError< double > FAttrBasedQuadricErrord
Definition QuadricError.h:716
TQuadricError< double > FQuadricErrord
Definition QuadricError.h:249
TAttrBasedQuadricError< float > FAttrBasedQuadricErrorf
Definition QuadricError.h:715
TVolPresQuadricError< double > FVolPresQuadricErrord
Definition QuadricError.h:412
Definition AdvancedWidgetsModule.cpp:13
float v
Definition radaudio_mdct.cpp:62
static UE_FORCEINLINE_HINT bool IsNearlyEqual(float A, float B, float ErrorTolerance=UE_SMALL_NUMBER)
Definition UnrealMathUtility.h:388
static UE_FORCEINLINE_HINT bool IsNearlyZero(float Value, float ErrorTolerance=UE_SMALL_NUMBER)
Definition UnrealMathUtility.h:407
Definition MatrixTypes.h:17
TMatrix3< RealType > Inverse() const
Definition MatrixTypes.h:186
Definition QuadricError.h:24
void Add(RealType w, const TQuadricError &b)
Definition QuadricError.h:76
void AddSeamQuadric(const TQuadricError &b)
Definition QuadricError.h:118
bool OptimalPoint(UE::Math::TVector< RealType > &OutResult, RealType minThresh=1000.0 *TMathUtil< RealType >::Epsilon) const
Definition QuadricError.h:240
void Scale(RealType w)
Definition QuadricError.h:131
RealType Ayz
Definition QuadricError.h:27
TQuadricError(const TVector< RealType > &Normal, const TVector< RealType > &Point)
Definition QuadricError.h:41
RealType by
Definition QuadricError.h:28
TQuadricError()
Definition QuadricError.h:33
static TQuadricError Zero()
Definition QuadricError.h:31
RealType Axz
Definition QuadricError.h:27
TVector< RealType > MultiplyA(const UE::Math::TVector< RealType > &pt) const
Definition QuadricError.h:161
void Add(const TQuadricError &b)
Definition QuadricError.h:90
static TVector< RealType > MultiplySymmetricMatrix(const RealType SM[6], const RealType vec[3])
Definition QuadricError.h:224
static bool InvertSymmetricMatrix(const RealType SM[6], RealType InvSM[6], RealType minThresh=1000.0 *TMathUtil< RealType >::Epsilon)
Definition QuadricError.h:199
RealType Azz
Definition QuadricError.h:27
void Subtract(const TQuadricError &b)
Definition QuadricError.h:104
void SubtractSeamQuadric(const TQuadricError &b)
Definition QuadricError.h:123
bool SolveAxEqualsb(UE::Math::TVector< RealType > &OutResult, const RealType bvecx, const RealType bvecy, const RealType bvecz, const RealType minThresh=1000.0 *TMathUtil< RealType >::Epsilon) const
Definition QuadricError.h:170
RealType bz
Definition QuadricError.h:28
RealType Axy
Definition QuadricError.h:27
RealType Axx
Definition QuadricError.h:27
RealType ScalarType
Definition QuadricError.h:25
TQuadricError(const TQuadricError &a, const TQuadricError &b)
Definition QuadricError.h:58
static TVector< RealType > MultiplySymmetricMatrix(const RealType SM[6], const UE::Math::TVector< RealType > &vec)
Definition QuadricError.h:233
RealType Ayy
Definition QuadricError.h:27
RealType bx
Definition QuadricError.h:28
RealType Evaluate(const UE::Math::TVector< RealType > &pt) const
Definition QuadricError.h:149
RealType c
Definition QuadricError.h:29
Definition QuadricError.h:265
FPlaneData()
Definition QuadricError.h:284
void Add(const FPlaneData &other)
Definition QuadricError.h:290
FPlaneData(const FPlaneData &other)
Definition QuadricError.h:278
FPlaneData(const TVector< RealType > &Normal, const TVector< RealType > &Point)
Definition QuadricError.h:266
FPlaneData & operator=(const FPlaneData &other)
Definition QuadricError.h:305
void Add(RealType w, const FPlaneData &other)
Definition QuadricError.h:299
RealType Dist
Definition QuadricError.h:314
FPlaneData(RealType w, const FPlaneData &other)
Definition QuadricError.h:272
TVector< RealType > N
Definition QuadricError.h:313
T Z
Definition Vector.h:68
static TVector< T > Zero()
Definition Vector.h:112
T Y
Definition Vector.h:65
UE_FORCEINLINE_HINT TVector< T > Cross(const TVector< T > &V2) const
Definition Vector.h:1535
T X
Definition Vector.h:62
T SquaredLength() const
Definition Vector.h:1734
static UE_FORCEINLINE_HINT T Dist(const TVector< T > &V1, const TVector< T > &V2)
Definition Vector.h:2466
UE_FORCEINLINE_HINT T Dot(const TVector< T > &V) const
Definition Vector.h:1553