// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
#pragma once
#include "Actor.h"
#include "Engine/Serialization/ISerializeModifier.h"
#include "Engine/Core/Collections/CollectionPoolCache.h"
///
/// Acceleration structure used to improve operations performed on a set of actors. Cache the data and allows to reuse memory container for less allocations. It's a thread-safe.
///
class ActorsCache
{
public:
typedef ActorsLookup ActorsLookupType;
typedef Array ActorsListType;
typedef Array SceneObjectsListType;
public:
///
/// Gets the actors lookup cached. Safe allocation, per thread, uses caching.
///
static CollectionPoolCache ActorsLookupCache;
///
/// Gets the actors lookup cached. Safe allocation, per thread, uses caching.
///
static CollectionPoolCache ActorsListCache;
///
/// Gets the scene objects lookup cached. Safe allocation, per thread, uses caching.
///
static CollectionPoolCache SceneObjectsListCache;
};