11#include "GeometryCollectionConvexUtility.generated.h"
41UENUM(meta=(DisplayName=
"Allow Convex Bone Merge Method"))
347 static void ConvertScaledImplicitToConvexArray(
352 static void ConvertInstancedImplicitToConvexArray(
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EAllowConvexMergeMethod
Definition GeometryCollectionConvexUtility.h:43
EConvexHullProximityFilter
Definition GeometryCollectionConvexUtility.h:53
EConvexOverlapRemoval
Definition GeometryCollectionConvexUtility.h:18
EGenerateConvexMethod
Definition GeometryCollectionConvexUtility.h:31
@ IntersectExternalWithComputed
#define UENUM(...)
Definition ObjectMacros.h:749
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
Definition ImplicitObject.h:111
Definition GeometryCollectionConvexUtility.h:94
static CHAOS_API bool CopyConvexHulls(FManagedArrayCollection &Collection, const TArray< int32 > &TransformIndices, const FManagedArrayCollection &SourceCollection, const TArray< int32 > &SourceTransformIndices, bool bSkipIfEmpty=false)
Definition GeometryCollectionConvexUtility.cpp:2542
static CHAOS_API bool ValidateConvexData(const FManagedArrayCollection *GeometryCollection)
Definition GeometryCollectionConvexUtility.cpp:2496
static CHAOS_API void RemoveEmptyConvexHulls(FManagedArrayCollection &GeometryCollection)
Definition GeometryCollectionConvexUtility.cpp:2654
static CHAOS_API void CopyChildConvexes(const FGeometryCollection *FromCollection, const TArrayView< const int32 > &FromTransformIdx, FGeometryCollection *ToCollection, const TArrayView< const int32 > &ToTransformIdx, bool bLeafOnly)
Definition GeometryCollectionConvexUtility.cpp:2707
static CHAOS_API bool HasConvexHullData(const FManagedArrayCollection *GeometryCollection)
Definition GeometryCollectionConvexUtility.cpp:141
static CHAOS_API UE::GeometryCollectionConvexUtility::FConvexHulls ComputeLeafHulls(FGeometryCollection *GeometryCollection, const TArray< FTransform > &GlobalTransformArray, double SimplificationDistanceThreshold=0.0, double OverlapRemovalShrinkPercent=0.0, TFunction< bool(int32)> SkipBoneFn=nullptr, const FConvexDecompositionSettings *OptionalDecompositionSettings=nullptr, const TArray< FTransformedConvex > *OptionalIntersectConvexHulls=nullptr, const TArray< TSet< int32 > > *OptionalTransformToIntersectHulls=nullptr, TArray< FGeometryCollectionConvexUtility::FSphereCoveringInfo > *OutComputedNavigableSpheres=nullptr)
Definition GeometryCollectionConvexUtility.cpp:1729
static CHAOS_API void ConvertImplicitToConvexArray(const Chaos::FImplicitObject &InImplicit, const FTransform &Transform, TArray< FTransformedConvex > &InOutConvex)
Definition GeometryCollectionConvexUtility.cpp:2918
static CHAOS_API void SetVolumeAttributes(FManagedArrayCollection *Collection)
Definition GeometryCollectionConvexUtility.cpp:2841
static CHAOS_API FGeometryCollectionConvexData CreateNonOverlappingConvexHullData(FGeometryCollection *GeometryCollection, double FractionAllowRemove=.3, double SimplificationDistanceThreshold=0.0, double CanExceedFraction=.5, EConvexOverlapRemoval OverlapRemovalMethod=EConvexOverlapRemoval::All, double OverlapRemovalShrinkPercent=0.0, UE::GeometryCollectionConvexUtility::FConvexHulls *ComputedLeafHullsToModify=nullptr)
Definition GeometryCollectionConvexUtility.cpp:1757
static CHAOS_API FGeometryCollectionConvexData GetValidConvexHullData(FGeometryCollection *GeometryCollection)
Definition GeometryCollectionConvexUtility.cpp:146
static CHAOS_API void GenerateClusterConvexHullsFromLeafHulls(FGeometryCollection &Collection, const FClusterConvexHullSettings &Settings, const TArrayView< const int32 > OptionalTransformSubset)
Definition GeometryCollectionConvexUtility.cpp:2076
static TUniquePtr< Chaos::FConvex > FindConvexHull(const FGeometryCollection *GeometryCollection, int32 GeometryIndex)
Definition GeometryCollectionConvexUtility.h:272
static CHAOS_API Chaos::FConvexPtr GetConvexHull(const FGeometryCollection *GeometryCollection, int32 GeometryIndex)
Definition GeometryCollectionConvexUtility.cpp:2524
static CHAOS_API void GenerateClusterConvexHullsFromChildrenHulls(FGeometryCollection &Collection, const FClusterConvexHullSettings &Settings, const TArrayView< const int32 > TransformSubset)
Definition GeometryCollectionConvexUtility.cpp:2068
static CHAOS_API void RemoveConvexHulls(FManagedArrayCollection *GeometryCollection, const TArray< int32 > &TransformsToClearHullsFrom)
Definition GeometryCollectionConvexUtility.cpp:2625
static CHAOS_API TManagedArray< int32 > * GetCustomConvexFlags(FGeometryCollection *GeometryCollection, bool bAddIfMissing=false)
Definition GeometryCollectionConvexUtility.cpp:2693
static CHAOS_API TOptional< FGeometryCollectionConvexData > GetConvexHullDataIfPresent(FManagedArrayCollection *GeometryCollection)
Definition GeometryCollectionConvexUtility.cpp:124
static CHAOS_API void GenerateLeafConvexHulls(FGeometryCollection &Collection, bool bRestrictToSelection, const TArrayView< const int32 > TransformSubset, const FLeafConvexHullSettings &Settings, TArray< FSphereCoveringInfo > *OutComputedNavigableSpheres=nullptr)
Definition GeometryCollectionConvexUtility.cpp:1808
static CHAOS_API void SetDefaults(FGeometryCollection *GeometryCollection, FName Group, uint32 StartSize, uint32 NumElements)
Definition GeometryCollectionConvexUtility.cpp:2688
static CHAOS_API void MergeHullsOnTransforms(FManagedArrayCollection &Collection, const FGeometryCollectionConvexUtility::FMergeConvexHullSettings &Settings, bool bRestrictToSelection, const TArrayView< const int32 > OptionalTransformSelection, UE::Geometry::FSphereCovering *OptionalSphereCoveringOut=nullptr)
Definition GeometryCollectionConvexUtility.cpp:2355
Definition GeometryCollection.h:32
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition AndroidPlatformMisc.h:14
Definition ManagedArray.h:1099
Definition UniquePtr.h:107
Definition ConvexDecomposition3.h:184
Definition SkeletalMeshComponent.h:307
Definition CollectionBoundsFacade.cpp:13
Definition GeometryCollectionConvexUtility.cpp:3602
void HullIntersectionStats(const Chaos::FConvex *HullA, const Chaos::FConvex *HullB, float HullBExpansion, float &OutArea, float &OutMaxArea, float &OutSharpContact, float &OutMaxSharpContact)
Definition GeometryCollectionConvexUtility.cpp:3605
bool CHAOS_API GetExistingConvexHullsInSharedSpace(const FManagedArrayCollection *Collection, FConvexHulls &OutConvexHulls, bool bLeafOnly)
Definition GeometryCollectionConvexUtility.cpp:3656
void IntersectConvexHulls(Chaos::FConvex *ResultHull, const Chaos::FConvex *ClipHull, float ClipHullOffset, const Chaos::FConvex *UpdateHull, const FTransform *ClipHullTransform, const FTransform *UpdateHullTransform, const FTransform *ResultTransform, double SimplificationDistanceThreshold)
Definition GeometryCollectionConvexUtility.cpp:3616
Definition GeometryCollectionConvexUtility.h:127
float ProximityDistanceThreshold
Definition GeometryCollectionConvexUtility.h:142
FClusterConvexHullSettings(int32 ConvexCount, double ErrorToleranceInCm, bool bUseExternalCollisionIfAvailable=true)
Definition GeometryCollectionConvexUtility.h:129
int32 ConvexCount
Definition GeometryCollectionConvexUtility.h:133
double ErrorToleranceInCm
Definition GeometryCollectionConvexUtility.h:134
EAllowConvexMergeMethod AllowMergesMethod
Definition GeometryCollectionConvexUtility.h:139
FClusterConvexHullSettings()=default
bool bAllowMergingLeafHulls
Definition GeometryCollectionConvexUtility.h:137
bool bUseExternalCollisionIfAvailable
Definition GeometryCollectionConvexUtility.h:135
UE::Geometry::FSphereCovering * EmptySpace
Definition GeometryCollectionConvexUtility.h:144
EConvexHullProximityFilter ProximityFilter
Definition GeometryCollectionConvexUtility.h:141
Definition GeometryCollectionConvexUtility.h:181
float ErrorTolerance
Definition GeometryCollectionConvexUtility.h:203
bool bOnlyConnectedToHull
Definition GeometryCollectionConvexUtility.h:220
float ThickenHullOnFailure
Definition GeometryCollectionConvexUtility.h:214
bool bProtectNegativeSpace
Definition GeometryCollectionConvexUtility.h:217
float MaxGeoToHullVolumeRatioToDecompose
Definition GeometryCollectionConvexUtility.h:192
float MinThicknessTolerance
Definition GeometryCollectionConvexUtility.h:206
float NegativeSpaceMinRadius
Definition GeometryCollectionConvexUtility.h:226
int32 NumAdditionalSplits
Definition GeometryCollectionConvexUtility.h:209
FConvexDecompositionSettings()=default
float MinGeoVolumeToDecompose
Definition GeometryCollectionConvexUtility.h:189
float NegativeSpaceTolerance
Definition GeometryCollectionConvexUtility.h:223
int32 MaxHullsPerGeometry
Definition GeometryCollectionConvexUtility.h:200
Definition GeometryCollectionConvexUtility.h:98
TManagedArray< TSet< int32 > > & TransformToConvexIndices
Definition GeometryCollectionConvexUtility.h:99
TManagedArray< Chaos::FConvexPtr > & ConvexHull
Definition GeometryCollectionConvexUtility.h:100
Definition GeometryCollectionConvexUtility.h:172
double MinExternalVolumeToIntersect
Definition GeometryCollectionConvexUtility.h:176
double OnlyIntersectIfComputedIsSmallerFactor
Definition GeometryCollectionConvexUtility.h:175
FIntersectionFilters()
Definition GeometryCollectionConvexUtility.h:173
Definition GeometryCollectionConvexUtility.h:231
bool bComputeIntersectionsBeforeHull
Definition GeometryCollectionConvexUtility.h:251
FConvexDecompositionSettings DecompositionSettings
Definition GeometryCollectionConvexUtility.h:247
EGenerateConvexMethod GenerateMethod
Definition GeometryCollectionConvexUtility.h:241
FIntersectionFilters IntersectFilters
Definition GeometryCollectionConvexUtility.h:244
double SimplificationDistanceThreshold
Definition GeometryCollectionConvexUtility.h:240
FLeafConvexHullSettings(double SimplificationDistanceThreshold, EGenerateConvexMethod GenerateMethod=EGenerateConvexMethod::ExternalCollision)
Definition GeometryCollectionConvexUtility.h:235
FLeafConvexHullSettings()
Definition GeometryCollectionConvexUtility.h:232
Definition GeometryCollectionConvexUtility.h:153
UE::Geometry::FNegativeSpaceSampleSettings * ComputeEmptySpacePerBoneSettings
Definition GeometryCollectionConvexUtility.h:160
EConvexHullProximityFilter ProximityFilter
Definition GeometryCollectionConvexUtility.h:162
int32 MaxConvexCount
Definition GeometryCollectionConvexUtility.h:154
float ProximityDistanceThreshold
Definition GeometryCollectionConvexUtility.h:163
double ErrorToleranceInCm
Definition GeometryCollectionConvexUtility.h:155
UE::Geometry::FSphereCovering * EmptySpace
Definition GeometryCollectionConvexUtility.h:157
Definition GeometryCollectionConvexUtility.h:256
FTransform Transform
Definition GeometryCollectionConvexUtility.h:257
UE::Geometry::FSphereCovering SphereCovering
Definition GeometryCollectionConvexUtility.h:259
int32 SourceBoneIndex
Definition GeometryCollectionConvexUtility.h:258
Definition ManagedArrayCollection.h:56
Definition Optional.h:131
Definition GeometryCollectionConvexUtility.h:66
TArray< TSet< int32 > > TransformToHullsIndices
Definition GeometryCollectionConvexUtility.h:70
double OverlapRemovalShrinkPercent
Definition GeometryCollectionConvexUtility.h:73
TArray< FVector > Pivots
Definition GeometryCollectionConvexUtility.h:76
TArray<::Chaos::FConvexPtr > Hulls
Definition GeometryCollectionConvexUtility.h:67
Definition ConvexDecomposition3.h:38