Conscience Core
Csc3dElementModelResolverFromLibraryService.h
Go to the documentation of this file.
1 #ifndef Csc3dElementModelResolverFromLibraryService_h
2 #define Csc3dElementModelResolverFromLibraryService_h
3 
4 #include "../Csc3dElement/Csc3dElementModelsLibraryService.h"
6 #include "CscCommon.h"
7 
9 
11 
16 
17 public:
20 
21  virtual ptr<CscResourceSpec> getLogo(ptr<const Csc3dElementModel> model) const override;
22  virtual optional<CscWorldElementModelSourceSpec> getModelSource(const string &modelId, optional<CscWorldElementModelFormat> requestedFormat = {}, optional<OnProgressCallback> onProgress = {}) override;
23  virtual ptr<const Csc3dElementModel> resolve(const string &modelId, optional<OnProgressCallback> onProgress = {}) override;
24  virtual vector<ptr<const Csc3dElementModel>> getAllAvailableModels(optional<CscWorldElementModelFormat> requestedFormat = {}) const override;
25  virtual CscEntityModel *resolveEntityModel(const string &entityModelId, optional<OnProgressCallback> onProgress = {}) override;
26 
27 private:
28  unique_ptr<CscLogger> logger;
29 
30 #if CSC_ENTITY_MODELS_GLTF_ENABLED == 1
31  const CscWorldElementModelFormat supportedFormat = CscWorldElementModelFormat::WorldElementModelFormat_glTF;
32 #else
33  const CscWorldElementModelFormat supportedFormat = CscWorldElementModelFormat::WorldElementModelFormat_dae;
34 #endif
35 
36  Csc3dElementModelsLibraryService modelsLibraryService;
37 
38  ptr<const Csc3dElementModel> createModelFromServiceResult(CscLibrary3dElementModel *model) const;
39  fs::path downloadLogoIfNotDoneYet(ptr<const Csc3dElementModel> model) const;
40  optional<CscWorldElementModelSourceSpec> downloadModelSourceIfNotDoneYet(const string &modelId, CscWorldElementModelFormat requestedFormat, optional<OnProgressCallback> onProgress, CscLibrary3dElementModel *alreadyFetchedModel = nullptr);
44  inline static map<string, unsigned long long> lastModelSourceFileChangedCheckTimeMillis;
45 
46  bool isTimeToRecheckModel(const string &modelId, CscWorldElementModelFormat requestedFormat);
47 };
48 
49 }
50 
51 #endif
conscience_core::core_objects::element_3d::Csc3dElementModelResolverOffline
Definition: Csc3dElementModelResolverOffline.h:17
conscience_core::core_objects::element_3d::Csc3dElementModelResolverFromLibraryService::resolve
virtual ptr< const Csc3dElementModel > resolve(const string &modelId, optional< OnProgressCallback > onProgress={}) override
Definition: Csc3dElementModelResolverFromLibraryService.cpp:41
conscience_core::core_objects::element_3d::Csc3dElementModelResolverFromLibraryService
Definition: Csc3dElementModelResolverFromLibraryService.h:15
CscEntityModel
Definition: CscEntityModel.h:54
conscience_core::core_objects::element_3d::Csc3dElementModelResolverFromLibraryService::getAllAvailableModels
virtual vector< ptr< const Csc3dElementModel > > getAllAvailableModels(optional< CscWorldElementModelFormat > requestedFormat={}) const override
Definition: Csc3dElementModelResolverFromLibraryService.cpp:26
conscience_core::core_objects::element_3d::Csc3dElementModelResolverFromLibraryService::resolveEntityModel
virtual CscEntityModel * resolveEntityModel(const string &entityModelId, optional< OnProgressCallback > onProgress={}) override
Definition: Csc3dElementModelResolverFromLibraryService.cpp:208
conscience_core::core_objects::element_3d::Csc3dElementModelResolverFromLibraryService::Csc3dElementModelResolverFromLibraryService
Csc3dElementModelResolverFromLibraryService(Csc3dElementType elementType)
Definition: Csc3dElementModelResolverFromLibraryService.cpp:13
conscience_core::core_objects::element_3d::Csc3dElementModelResolver::elementType
const Csc3dElementType elementType
Definition: Csc3dElementModelResolver.h:104
conscience_core::core_objects::element_3d::CscLibrary3dElementModel
Definition: Csc3dElementModelsLibraryService.h:17
conscience_core::core_objects::element_3d::Csc3dElementType
Csc3dElementType
Definition: Csc3dElementModelResolver.h:14
conscience_core::core_objects::element_3d
Definition: CommandParseContext.h:19
Csc3dElementModelResolverOffline.h
conscience_core::core_objects::element_3d::Csc3dElementModelsLibraryService
Definition: Csc3dElementModelsLibraryService.h:45
CscCommon.h
conscience_core::core_objects::element_3d::Csc3dElementModelResolverFromLibraryService::getLogo
virtual ptr< CscResourceSpec > getLogo(ptr< const Csc3dElementModel > model) const override
Definition: Csc3dElementModelResolverFromLibraryService.cpp:100
conscience_core::core_objects::element_3d::Csc3dElementModelResolverFromLibraryService::~Csc3dElementModelResolverFromLibraryService
virtual ~Csc3dElementModelResolverFromLibraryService()
Definition: Csc3dElementModelResolverFromLibraryService.cpp:23
onProgress
optional< function< void(float progressRatio)> > onProgress
Definition: CscHttpClient.cpp:77
conscience_core::core_objects::element_3d::Csc3dElementModelResolverFromLibraryService::getModelSource
virtual optional< CscWorldElementModelSourceSpec > getModelSource(const string &modelId, optional< CscWorldElementModelFormat > requestedFormat={}, optional< OnProgressCallback > onProgress={}) override
Definition: Csc3dElementModelResolverFromLibraryService.cpp:192
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29