Files
UnrealEngineUWP/Engine/Plugins/Experimental/MeshModelingToolsetExp/Source/MeshModelingToolsExp/Public/ConvertMeshesTool.h
ryan schmidt c8acfc09b0 ModelingTools: add support for DynamicMeshComponent Simple Collision in Mesh to Collision Tool, Convert Tool, and Transfer Tool.
ModelingComponents: Add ShapeSet member for passing simple collision shapes in FCreateMeshObjectParams, support in relevant functions in UEditorModelingObjectsCreationAPI. Add UE::Geometry::GetCollisionShapes() functions in ComponentCollisionUtil.h, and update various functions to support DynamicMeshComponent

DynamicMeshComponent: change signature of GetSimpleCollisionShapes() to return const ref

#rb david.hill
#preflight 6421ca54973e609670a408c7

[CL 24819452 by ryan schmidt in ue5-main branch]
2023-03-28 11:19:32 -04:00

68 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "BaseTools/MultiSelectionMeshEditingTool.h"
#include "InteractiveToolBuilder.h"
#include "InteractiveToolQueryInterfaces.h" // IInteractiveToolExclusiveToolAPI
#include "PropertySets/CreateMeshObjectTypeProperties.h"
#include "ConvertMeshesTool.generated.h"
/**
*
*/
UCLASS()
class MESHMODELINGTOOLSEXP_API UConvertMeshesToolBuilder : public UMultiSelectionMeshEditingToolBuilder
{
GENERATED_BODY()
public:
virtual UMultiSelectionMeshEditingTool* CreateNewTool(const FToolBuilderState& SceneState) const override;
protected:
virtual const FToolTargetTypeRequirements& GetTargetRequirements() const override;
};
/**
* Standard properties of the Transfer operation
*/
UCLASS()
class MESHMODELINGTOOLSEXP_API UConvertMeshesToolProperties : public UInteractiveToolPropertySet
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, Category = Options, meta = (EditCondition = "bShowTransferMaterials == true", EditConditionHides, HideEditConditionToggle))
bool bTransferMaterials = true;
// control whether the transfer materials option is displayed
UPROPERTY(meta = (TransientToolProperty))
bool bShowTransferMaterials = true;
UPROPERTY(EditAnywhere, Category = Options)
bool bTransferCollision = true;
};
UCLASS()
class MESHMODELINGTOOLSEXP_API UConvertMeshesTool : public UMultiSelectionMeshEditingTool,
// Disallow auto-accept switch-away for the tool
public IInteractiveToolExclusiveToolAPI
{
GENERATED_BODY()
public:
virtual void Setup() override;
virtual void OnShutdown(EToolShutdownType ShutdownType) override;
virtual bool HasCancel() const override { return true; }
virtual bool HasAccept() const override { return true; }
virtual bool CanAccept() const override;
UPROPERTY()
TObjectPtr<UConvertMeshesToolProperties> BasicProperties;
UPROPERTY()
TObjectPtr<UCreateMeshObjectTypeProperties> OutputTypeProperties;
};