// Copyright Epic Games, Inc. All Rights Reserved. #include "Properties/MeshMaterialProperties.h" #include "DynamicMesh/DynamicMesh3.h" #include "DynamicMesh/DynamicMeshAttributeSet.h" #include "DynamicMesh/MeshNormals.h" #include "Components/DynamicMeshComponent.h" #include "Materials/MaterialInstanceDynamic.h" #define LOCTEXT_NAMESPACE "UMeshMaterialProperites" UNewMeshMaterialProperties::UNewMeshMaterialProperties() { Material = CreateDefaultSubobject(TEXT("MATERIAL")); } void UExistingMeshMaterialProperties::RestoreProperties(UInteractiveTool* RestoreToTool, const FString& CacheIdentifier) { Super::RestoreProperties(RestoreToTool, CacheIdentifier); Setup(); } void UExistingMeshMaterialProperties::Setup() { UMaterial* CheckerMaterialBase = LoadObject(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