Files
UnrealEngineUWP/Engine/Source/Runtime/GeometryFramework/Private/DynamicMeshActor.cpp
marc audy 311f7464bf Updated ../Engine/Source/Runtime/... to inline gen.cpp files
Before:
3648 unity files
Total CPU Time: 47886.140625 s
Total time in Parallel executor: 498.81 seconds

After:
3548 unity files
Total CPU Time: 46643.828125 s
Total time in Parallel executor: 486.06 seconds

#jira
#preflight

[CL 22173263 by marc audy in ue5-main branch]
2022-09-24 13:57:58 -04:00

90 lines
2.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "DynamicMeshActor.h"
#include "Materials/Material.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(DynamicMeshActor)
#define LOCTEXT_NAMESPACE "ADynamicMeshActor"
ADynamicMeshActor::ADynamicMeshActor(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
DynamicMeshComponent = CreateDefaultSubobject<UDynamicMeshComponent>(TEXT("DynamicMeshComponent"));
DynamicMeshComponent->SetMobility(EComponentMobility::Movable);
DynamicMeshComponent->SetGenerateOverlapEvents(false);
DynamicMeshComponent->SetCollisionProfileName(UCollisionProfile::BlockAll_ProfileName);
DynamicMeshComponent->CollisionType = ECollisionTraceFlag::CTF_UseDefault;
DynamicMeshComponent->SetMaterial(0, UMaterial::GetDefaultMaterial(MD_Surface)); // is this necessary?
SetRootComponent(DynamicMeshComponent);
}
UDynamicMeshPool* ADynamicMeshActor::GetComputeMeshPool()
{
if (DynamicMeshPool == nullptr && bEnableComputeMeshPool)
{
DynamicMeshPool = NewObject<UDynamicMeshPool>();
}
return DynamicMeshPool;
}
UDynamicMesh* ADynamicMeshActor::AllocateComputeMesh()
{
if (bEnableComputeMeshPool)
{
UDynamicMeshPool* UsePool = GetComputeMeshPool();
if (UsePool)
{
return UsePool->RequestMesh();
}
}
// if we could not return a pool mesh, allocate a new mesh that isn't owned by the pool
return NewObject<UDynamicMesh>(this);
}
bool ADynamicMeshActor::ReleaseComputeMesh(UDynamicMesh* Mesh)
{
if (bEnableComputeMeshPool && Mesh)
{
UDynamicMeshPool* UsePool = GetComputeMeshPool();
if (UsePool != nullptr)
{
UsePool->ReturnMesh(Mesh);
return true;
}
}
return false;
}
void ADynamicMeshActor::ReleaseAllComputeMeshes()
{
UDynamicMeshPool* UsePool = GetComputeMeshPool();
if (UsePool)
{
UsePool->ReturnAllMeshes();
}
}
void ADynamicMeshActor::FreeAllComputeMeshes()
{
UDynamicMeshPool* UsePool = GetComputeMeshPool();
if (UsePool)
{
UsePool->FreeAllMeshes();
}
}
#undef LOCTEXT_NAMESPACE