Files
UnrealEngineUWP/Engine/Plugins/Experimental/MeshModelingToolset/Source/MeshModelingTools/Private/Properties/MeshMaterialProperties.cpp
Ryan Schmidt f45388ffbe Rename USimpleDynamicMeshComponent to UDynamicMeshComponent. Move ModelingComponents Components and SceneProxys to /Components subdirectory.
#rb none
#rnx
#jira none
#preflight 60c4451f5c10070001ae0537

[CL 16652187 by Ryan Schmidt in ue5-main branch]
2021-06-12 14:28:52 -04:00

64 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Properties/MeshMaterialProperties.h"
#include "DynamicMesh3.h"
#include "DynamicMeshAttributeSet.h"
#include "MeshNormals.h"
#include "Components/DynamicMeshComponent.h"
#include "Materials/MaterialInstanceDynamic.h"
#define LOCTEXT_NAMESPACE "UMeshMaterialProperites"
UNewMeshMaterialProperties::UNewMeshMaterialProperties()
{
Material = CreateDefaultSubobject<UMaterialInterface>(TEXT("MATERIAL"));
}
void UExistingMeshMaterialProperties::RestoreProperties(UInteractiveTool* RestoreToTool)
{
Super::RestoreProperties(RestoreToTool);
Setup();
}
void UExistingMeshMaterialProperties::Setup()
{
UMaterial* CheckerMaterialBase = LoadObject<UMaterial>(nullptr, TEXT("/MeshModelingToolset/Materials/CheckerMaterial"));
if (CheckerMaterialBase != nullptr)
{
CheckerMaterial = UMaterialInstanceDynamic::Create(CheckerMaterialBase, NULL);
if (CheckerMaterial != nullptr)
{
CheckerMaterial->SetScalarParameterValue("Density", CheckerDensity);
CheckerMaterial->SetScalarParameterValue("UVChannel", (float)UVChannel);
}
}
}
void UExistingMeshMaterialProperties::UpdateMaterials()
{
if (CheckerMaterial != nullptr)
{
CheckerMaterial->SetScalarParameterValue("Density", CheckerDensity);
CheckerMaterial->SetScalarParameterValue("UVChannel", (float)UVChannel);
}
}
UMaterialInterface* UExistingMeshMaterialProperties::GetActiveOverrideMaterial() const
{
if (MaterialMode == ESetMeshMaterialMode::Checkerboard && CheckerMaterial != nullptr)
{
return CheckerMaterial;
}
if (MaterialMode == ESetMeshMaterialMode::Override && OverrideMaterial != nullptr)
{
return OverrideMaterial;
}
return nullptr;
}
#undef LOCTEXT_NAMESPACE