46 Z = 0.30f * V.
X + 0.33f * V.
Y + 0.37f * V.
Z;
95 return FMath::Acos(DotProduct);
107 if (TangentZ.
Z < -0.9999999f)
114 float A = 1.0f / (1.0f + TangentZ.
Z);
115 float B = -TangentZ.
X * TangentZ.
Y *
A;
116 TangentX =
FVector3f(1.0f - TangentZ.
X * TangentZ.
X *
A,
B, -TangentZ.
X);
117 TangentY =
FVector3f(
B, 1.0f - TangentZ.
Y * TangentZ.
Y *
A, -TangentZ.
Y);
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::Math::TVector< float > FVector3f
Definition MathFwd.h:73
ELightmapUVVersion
Definition MeshUtilitiesCommon.h:8
@ ConsiderLightmapPadding
FMatrix44f GetTangentBasisFrisvad(FVector3f TangentZ)
Definition MeshUtilitiesCommon.h:102
bool PointsEqual(const FVector3f &V1, const FVector3f &V2, float ComparisonThreshold)
Definition MeshUtilitiesCommon.h:60
Definition MeshUtilitiesCommon.h:72
U16 Index
Definition radfft.cpp:71
Definition MeshUtilitiesCommon.h:28
TArray< FVector3f > Normals
Definition MeshUtilitiesCommon.h:31
TArray< FVector3f > Positions
Definition MeshUtilitiesCommon.h:30
Definition MeshUtilitiesCommon.h:53
bool operator()(FIndexAndZ const &A, FIndexAndZ const &B) const
Definition MeshUtilitiesCommon.h:54
Definition MeshUtilitiesCommon.h:36
FIndexAndZ(int32 InIndex, FVector3f V)
Definition MeshUtilitiesCommon.h:44
float Z
Definition MeshUtilitiesCommon.h:37
int32 Index
Definition MeshUtilitiesCommon.h:38
FIndexAndZ()
Definition MeshUtilitiesCommon.h:41
void SetIdentity()
Definition Matrix.inl:48
T Z
Definition Vector.h:68
T Y
Definition Vector.h:65
static UE_FORCEINLINE_HINT float DotProduct(const TVector< float > &A, const TVector< float > &B)
Definition Vector.h:1559
bool Normalize(T Tolerance=UE_SMALL_NUMBER)
Definition Vector.h:1767
T X
Definition Vector.h:62
static UE_FORCEINLINE_HINT TVector< float > CrossProduct(const TVector< float > &A, const TVector< float > &B)
Definition Vector.h:1541
T Size() const
Definition Vector.h:1716