Files
UnrealEngineUWP/Engine/Plugins/Runtime/MeshModelingToolset/Source/ModelingComponents/Private/BaseTools/BaseVoxelTool.cpp
lonnie li 6584198283 InteractiveToolsFramework: Remove unnecessary target interface functions from MultiSelectionTool.
ModelingTools: Add UMultiSelectionMeshEditingTool to hold common interface requirements and functions that pertain to modeling mode MultiSelectionTools.

#rb semion.piskarev
#rnx
#jira none
#preflight 619c66d5c3287aab27e12c73

#ROBOMERGE-AUTHOR: lonnie.li
#ROBOMERGE-SOURCE: CL 18269697 in //UE5/Release-5.0/... via CL 18269713
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18269717 by lonnie li in ue5-release-engine-test branch]
2021-11-23 09:42:40 -05:00

67 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "BaseTools/BaseVoxelTool.h"
#include "InteractiveToolManager.h"
#include "ToolSetupUtil.h"
#include "ModelingToolTargetUtil.h"
#include "DynamicMesh/DynamicMesh3.h"
#include "Materials/MaterialInstanceDynamic.h"
#include "TargetInterfaces/MeshDescriptionProvider.h"
#include "MeshDescriptionToDynamicMesh.h"
#define LOCTEXT_NAMESPACE "UBaseVoxelTool"
using namespace UE::Geometry;
void UBaseVoxelTool::SetupProperties()
{
Super::SetupProperties();
VoxProperties = NewObject<UVoxelProperties>(this);
VoxProperties->RestoreProperties(this);
AddToolPropertySource(VoxProperties);
}
void UBaseVoxelTool::SaveProperties()
{
Super::SaveProperties();
VoxProperties->SaveProperties(this);
}
TArray<UMaterialInterface*> UBaseVoxelTool::GetOutputMaterials() const
{
TArray<UMaterialInterface*> Materials;
Materials.Add(LoadObject<UMaterial>(nullptr, TEXT("MATERIAL")));
return Materials;
}
void UBaseVoxelTool::ConvertInputsAndSetPreviewMaterials(bool bSetPreviewMesh)
{
OriginalDynamicMeshes.SetNum(Targets.Num());
for (int ComponentIdx = 0; ComponentIdx < Targets.Num(); ComponentIdx++)
{
OriginalDynamicMeshes[ComponentIdx] = MakeShared<FDynamicMesh3, ESPMode::ThreadSafe>();
FMeshDescriptionToDynamicMesh Converter;
Converter.Convert(UE::ToolTarget::GetMeshDescription(Targets[ComponentIdx]), *OriginalDynamicMeshes[ComponentIdx]);
}
//if (bSetPreviewMesh)
//{
// // TODO: create a low quality preview result for initial display?
//}
Preview->ConfigureMaterials(
ToolSetupUtil::GetDefaultSculptMaterial(GetToolManager()),
ToolSetupUtil::GetDefaultWorkingMaterial(GetToolManager())
);
}
#undef LOCTEXT_NAMESPACE