60 lines
1.8 KiB
C++
60 lines
1.8 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "GeometryCollection/ManagedArrayCollection.h"
|
|
#include "GeometryCollection/GeometryCollectionConvexUtility.h"
|
|
|
|
class FGeometryCollection;
|
|
|
|
class FGeometryCollectionConvexPropertiesInterface : public FManagedArrayInterface
|
|
{
|
|
public :
|
|
typedef FManagedArrayInterface Super;
|
|
using FManagedArrayInterface::ManagedCollection;
|
|
|
|
// Convex Properties Group Name
|
|
static CHAOS_API const FName ConvexPropertiesGroup;
|
|
// Attribute
|
|
static CHAOS_API const FName ConvexIndexAttribute;
|
|
// Attribute
|
|
static CHAOS_API const FName ConvexEnable;
|
|
// Attribute
|
|
static CHAOS_API const FName ConvexFractionRemoveAttribute;
|
|
// Attribute
|
|
static CHAOS_API const FName ConvexSimplificationThresholdAttribute;
|
|
// Attribute
|
|
static CHAOS_API const FName ConvexCanExceedFractionAttribute;
|
|
// Attribute
|
|
static CHAOS_API const FName ConvexRemoveOverlapsMethodAttribute;
|
|
// Attribute
|
|
static CHAOS_API const FName ConvexRemoveOverlapsShrinkAttribute;
|
|
|
|
|
|
struct FConvexCreationProperties {
|
|
bool Enable = true;
|
|
float FractionRemove = 0.5f;
|
|
float SimplificationThreshold = 10.0f;
|
|
float CanExceedFraction = 0.5f;
|
|
EConvexOverlapRemoval RemoveOverlaps = EConvexOverlapRemoval::All;
|
|
float OverlapRemovalShrinkPercent = 0.0f;
|
|
};
|
|
|
|
CHAOS_API FGeometryCollectionConvexPropertiesInterface(FManagedArrayCollection* InGeometryCollection);
|
|
|
|
CHAOS_API void InitializeInterface() override;
|
|
|
|
CHAOS_API void CleanInterfaceForCook() override;
|
|
|
|
CHAOS_API void RemoveInterfaceAttributes() override;
|
|
|
|
CHAOS_API FConvexCreationProperties GetConvexProperties(int TransformGroupIndex = INDEX_NONE) const;
|
|
CHAOS_API void SetConvexProperties(const FConvexCreationProperties&, int TransformGroupIndex = INDEX_NONE);
|
|
private:
|
|
|
|
void SetDefaultProperty();
|
|
FConvexCreationProperties GetDefaultProperty() const;
|
|
};
|
|
|