Conscience Core
Csc3dElementModelResolverOffline.h
Go to the documentation of this file.
1 #ifndef Csc3dElementModelResolverOffline_h
2 #define Csc3dElementModelResolverOffline_h
3 
7 #include "CscCommon.h"
8 
11 
13 
18 
19 public:
22 
23  virtual ptr<CscResourceSpec> getLogo(ptr<const Csc3dElementModel> model) const override;
24  virtual optional<CscWorldElementModelSourceSpec> getModelSource(const string &modelId, optional<CscWorldElementModelFormat> requestedFormat = {}, optional<OnProgressCallback> onProgress = {}) override;
25  virtual ptr<const Csc3dElementModel> resolve(const string &modelId, optional<OnProgressCallback> onProgress = {}) override;
26  virtual vector<string> getAllAvailableIds() const override;
27  virtual vector<ptr<const Csc3dElementModel>> getAllAvailableModels(optional<CscWorldElementModelFormat> requestedFormat = {}) const override;
28  virtual CscEntityModel *resolveEntityModel(const string &entityModelId, optional<OnProgressCallback> onProgress = {}) override;
29 
30 protected:
31  CscEntityModelDaeParser *daeParser = nullptr;
32  CscEntityModelGlTFLoader *glTFParser = nullptr;
33 
37  fs::path generateLogoPath(const string &modelName) const;
41  fs::path resolveLogoPath(const string &modelName) const;
42 
43  virtual fs::path generateModelFilePath(const Csc3dElementModel &model, CscWorldElementModelFormat format) const;
44  virtual fs::path getModelSourceDirectoryPath(CscWorldElementModelFormat format) const;
45 
46 private:
47  unique_ptr<CscLogger> logger;
48 
49  ptr<const Csc3dElementModel> createModelFromModelFilePath(const fs::path &filePath) const;
50  void collectModelInfoFromDirectory(const fs::path &modelsDirectory, vector<ptr<const Csc3dElementModel>> &allModels, vector<string> &loadedModelIds) const;
51  /*
52  * @param expectedExtension expected extension, without leading dot (for instance 'dae' or 'gltf')
53  */
54  optional<fs::path> findModelFile(const fs::path &modelsDir, const string &modelId, const string &expectedExtension) const;
55 
56  static inline const string DEFAULT_LOGO_NAME = "default_logo.png";
57 };
58 
59 }
60 
61 #endif
CscEntityModelDaeParser.h
conscience_core::core_objects::element_3d::Csc3dElementModel
Definition: Csc3dElementModelResolver.h:20
conscience_core::core_objects::element_3d::Csc3dElementModelResolverOffline
Definition: Csc3dElementModelResolverOffline.h:17
CscEntityModelGlTFLoader.h
conscience_core::core_objects::element_3d::Csc3dElementModelResolver
Definition: Csc3dElementModelResolver.h:65
CscEntityModel
Definition: CscEntityModel.h:54
Csc3dElementModelResolver.h
conscience_core::core_objects::element_3d::Csc3dElementType
Csc3dElementType
Definition: Csc3dElementModelResolver.h:14
conscience_core::core_objects::element_3d
Definition: CommandParseContext.h:19
logger
static std::unique_ptr< CscLogger > logger
Definition: gltfHelpers.cpp:6
conscience_core::core_objects::exchange::dae
Definition: CscDaeGeometries.cpp:11
conscience_core::core_objects::exchange::gltf
Definition: CscEntityModelGlTFLoader.cpp:32
CscCommon.h
conscience_core::core_objects::exchange::dae::CscEntityModelDaeParser
Definition: CscEntityModelDaeParser.h:16
onProgress
optional< function< void(float progressRatio)> > onProgress
Definition: CscHttpClient.cpp:77
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
conscience_core::core_objects::exchange::gltf::CscEntityModelGlTFLoader
Definition: CscEntityModelGlTFLoader.h:19