Conscience Core
Public Member Functions | Static Public Member Functions | List of all members
conscience_core::core_objects::entities::CscEntityModelsRepository Class Reference

#include <CscEntityModelsRepository.h>

Inheritance diagram for conscience_core::core_objects::entities::CscEntityModelsRepository:
conscience_core::core_objects::element_3d::Csc3dElementModelsRepository

Public Member Functions

 CscEntityModelsRepository ()
 
virtual CscEntityModelgetEntityModel (const string &entityModelId)
 
- Public Member Functions inherited from conscience_core::core_objects::element_3d::Csc3dElementModelsRepository
bool isOffline ()
 
void setOnlineLibraryServiceEnabled (bool enabled)
 
 Csc3dElementModelsRepository ()=default
 
virtual ~Csc3dElementModelsRepository ()=default
 
void setResolver (ptr< Csc3dElementModelResolver >)
 
virtual ptr< const Csc3dElementModelgetModel (const string &modelId)
 
virtual ptr< CscResourceSpecgetLogo (ptr< const Csc3dElementModel > model)
 
virtual optional< CscWorldElementModelSourceSpecgetModelSource (const string &modelId, optional< CscWorldElementModelFormat > requestedFormat={}, optional< OnProgressCallback > onProgress={})
 
vector< string > getAllAvailableIds ()
 
vector< ptr< const Csc3dElementModel > > getAllAvailableModels (optional< CscWorldElementModelFormat > requestedFormat={})
 
void importLocalModelFile (const fs::path &filePath, const Csc3dElementModelImportData &importData)
 

Static Public Member Functions

static CscEntityModelsRepositorygetInstance ()
 
- Static Public Member Functions inherited from conscience_core::core_objects::element_3d::Csc3dElementModelsRepository
static fs::path get3dElementModelsDaeDirectoryPath (Csc3dElementType elementType)
 
static fs::path get3dElementModelsglTFDirectoryPath (Csc3dElementType elementType)
 
static fs::path get3dElementModelsObjDirectoryPath (Csc3dElementType elementType)
 
static fs::path get3dElementModelsLogoDirectoryPath (Csc3dElementType elementType)
 
static fs::path get3dElementModelSourceDirectoryPath (Csc3dElementType elementType, CscWorldElementModelFormat format)
 
static fs::path get3dElementModelsLocalRepositoryPath (Csc3dElementType elementType)
 
static void set3dElementModelsLocalRepositoryPath (Csc3dElementType elementType, fs::path directoryPath)
 
static CscObjectModelsRepositorygetObjectRepositoryInstance ()
 
static CscPlaceModelsRepositorygetPlaceRepositoryInstance ()
 
static CscEntityModelsRepositorygetEntityRepositoryInstance ()
 

Additional Inherited Members

- Static Public Attributes inherited from conscience_core::core_objects::element_3d::Csc3dElementModelsRepository
static const string EntityModelFileNamePrefix = "Conscience_"
 
static const string PlaceModelFileNamePrefix = "Conscience_"
 
static const string ObjectModelFileNamePrefix = "Conscience_Object_"
 
- Protected Member Functions inherited from conscience_core::core_objects::element_3d::Csc3dElementModelsRepository
 Csc3dElementModelsRepository (Csc3dElementType elementType)
 
void recheckOnlineMode ()
 
template<class TModel >
ptr< const TModel > getModelInstance (const string &id)
 
virtual string buildFilename (const Csc3dElementModelImportData &data)
 
fs::path getModelSourceDirectoryPath (CscWorldElementModelFormat format)
 
- Protected Attributes inherited from conscience_core::core_objects::element_3d::Csc3dElementModelsRepository
unique_ptr< CscLoggerlogger = CscLogger::getForCategory("Csc3dElementModelsRepository")
 
mutex resolverOnlineCheckMutex
 
Csc3dElementType elementType
 
bool onlineModeAllowed = false
 
const ptr< Csc3dElementModelResolverOfflineresolverOffline = nullptr
 
unsigned long long lastOnlineCheckTimeMillis = 0
 
ptr< Csc3dElementModelResolverresolver = nullptr
 
map< string, ptr< const Csc3dElementModel > > modelsCache
 
mutex cacheMutex
 
- Static Protected Attributes inherited from conscience_core::core_objects::element_3d::Csc3dElementModelsRepository
static optional< fs::path > ConscienceEntitiesRessourceLocalRepositoryPath = {}
 
static optional< fs::path > ConsciencePlacesRessourceLocalRepositoryPath = {}
 
static optional< fs::path > ConscienceObjectsRessourceLocalRepositoryPath = {}
 
static CscObjectModelsRepositoryobjectRepositoryInstance = nullptr
 
static CscPlaceModelsRepositoryplaceRepositoryInstance = nullptr
 

Detailed Description

Holds entity models list. If online, will retrieve from entity models library service, otherwise, from local cache.

This class holds Conscience entity models. It relies on an EntityModelResolver to determine which strategy is used to load entity models.

It internally uses a cache, and will return the same model for subsequent get once resolved (except if resolver implementation changes)

Constructor & Destructor Documentation

◆ CscEntityModelsRepository()

conscience_core::core_objects::entities::CscEntityModelsRepository::CscEntityModelsRepository ( )
Note
Public constructor even if this class is a singleton for testability purposes

Member Function Documentation

◆ getEntityModel()

CscEntityModel * conscience_core::core_objects::entities::CscEntityModelsRepository::getEntityModel ( const string &  entityModelId)
virtual

Gets entity model for given ID. Cached version if already requested before

◆ getInstance()

CscEntityModelsRepository * conscience_core::core_objects::entities::CscEntityModelsRepository::getInstance ( )
static

The documentation for this class was generated from the following files: