CelticCraft/Plugins/VoxelFree/Source/Voxel/Private/VoxelGenerators/VoxelGeneratorCache.cpp

25 lines
No EOL
894 B
C++

// Copyright 2020 Phyronnaz
#include "VoxelGenerators/VoxelGeneratorCache.h"
#include "VoxelGenerators/VoxelGeneratorInstance.h"
#include "VoxelGenerators/VoxelGeneratorTools.h"
UVoxelGeneratorInstanceWrapper* UVoxelGeneratorCache::MakeGeneratorInstance(FVoxelGeneratorPicker Picker) const
{
TObjectPtr<UVoxelGeneratorInstanceWrapper>& Instance = Cache.FindOrAdd(Picker);
if (!Instance)
{
Instance = UVoxelGeneratorTools::MakeGeneratorInstance(Picker, GeneratorInit);
}
return Instance;
}
UVoxelTransformableGeneratorInstanceWrapper* UVoxelGeneratorCache::MakeTransformableGeneratorInstance(FVoxelTransformableGeneratorPicker Picker) const
{
TObjectPtr<UVoxelTransformableGeneratorInstanceWrapper>& Instance = TransformableCache.FindOrAdd(Picker);
if (!Instance)
{
Instance = UVoxelGeneratorTools::MakeTransformableGeneratorInstance(Picker, GeneratorInit);
}
return Instance;
}