Conscience Core
Csc3dElementModelResolver.h
Go to the documentation of this file.
1 #ifndef Csc3dElementModelResolver_h
2 #define Csc3dElementModelResolver_h
3 
6 #include "CscCommon.h"
7 
9 
11 
12 typedef function<void(float progressRatio)> OnProgressCallback;
13 
18 };
19 
21 public:
23  string id;
24  string name;
27  unsigned long long lastModificationTimeMillis;
28 
30  Csc3dElementModel(const Csc3dElementType &elementType,
31  const string &id,
32  const string &name,
33  const optional<string> &type,
34  const optional<string> &provider,
35  unsigned long long lastModificationTimeMillis);
37  : elementType(other.elementType), id(other.id), name(other.name),
38  type(other.type), provider(other.provider),
39  lastModificationTimeMillis(other.lastModificationTimeMillis) {}
40 
41  Csc3dElementModel *clone() const;
42 };
43 
44 ENUM(CscWorldElementModelFormat,
45  WorldElementModelFormat_dae,
46  WorldElementModelFormat_glTF,
47  WorldElementModelFormat_obj, )
48 
49 
53 CscWorldElementModelFormat extensionToWorldElementModelFormat(const string &fileExtension);
54 string worldElementModelFormatToExtension(CscWorldElementModelFormat format);
55 
61 
62  CscWorldElementModelFormat format;
63 };
64 
66 
67 public:
69  virtual ~Csc3dElementModelResolver();
70 
74  virtual ptr<const Csc3dElementModel> resolve(const string &modelId, optional<OnProgressCallback> onProgress = {}) = 0;
75 
79  virtual ptr<CscResourceSpec> getLogo(ptr<const Csc3dElementModel> elementModel) const = 0;
80 
85  virtual optional<CscWorldElementModelSourceSpec> getModelSource(const string &modelId, optional<CscWorldElementModelFormat> requestedFormat = {}, optional<OnProgressCallback> onProgress = {}) = 0;
86 
90  virtual vector<string> getAllAvailableIds() const = 0;
91 
95  virtual CscEntityModel *resolveEntityModel(const string &entityModelId, optional<OnProgressCallback> onProgress = {}) = 0;
96 
101  virtual vector<ptr<const Csc3dElementModel>> getAllAvailableModels(optional<CscWorldElementModelFormat> requestedFormat = {}) const = 0;
102 
103 protected:
105 };
106 
107 }
108 
109 #endif
conscience_core::core_objects::element_3d::Csc3dElementModel::type
optional< string > type
Definition: Csc3dElementModelResolver.h:25
CscResourceSpec.h
conscience_core::core_objects::element_3d::Csc3dElementModel::Csc3dElementModel
Csc3dElementModel(const Csc3dElementModel &other)
Definition: Csc3dElementModelResolver.h:36
conscience_core::core_objects::element_3d::ELEMENT_OBJECT
@ ELEMENT_OBJECT
Definition: Csc3dElementModelResolver.h:16
conscience_core::core_objects::element_3d::Csc3dElementModel
Definition: Csc3dElementModelResolver.h:20
conscience_core::core_objects::element_3d::CscWorldElementModelSourceSpec::format
CscWorldElementModelFormat format
Definition: Csc3dElementModelResolver.h:62
conscience_core::core_objects::resources
Definition: CscLocalFileResourceSpec.h:18
conscience_core::core_objects::element_3d::Csc3dElementModelResolver
Definition: Csc3dElementModelResolver.h:65
CscEntityModel
Definition: CscEntityModel.h:54
conscience_core::core_objects::element_3d::ELEMENT_PLACE
@ ELEMENT_PLACE
Definition: Csc3dElementModelResolver.h:17
conscience_core::core_objects::element_3d::Csc3dElementModel::Csc3dElementModel
Csc3dElementModel()
Definition: Csc3dElementModelResolver.h:29
conscience_core::core_objects::element_3d::worldElementModelFormatToExtension
string worldElementModelFormatToExtension(CscWorldElementModelFormat format)
Definition: Csc3dElementModelResolver.cpp:44
conscience_core::core_objects::element_3d::CscWorldElementModelSourceSpec::resource
ptr< CscResourceSpec > resource
Definition: Csc3dElementModelResolver.h:60
conscience_core::core_objects::element_3d::Csc3dElementModelResolver::elementType
const Csc3dElementType elementType
Definition: Csc3dElementModelResolver.h:104
conscience_core::core_objects::element_3d::Csc3dElementType
Csc3dElementType
Definition: Csc3dElementModelResolver.h:14
conscience_core::core_objects::element_3d
Definition: CommandParseContext.h:19
conscience_core::core_objects::element_3d::OnProgressCallback
function< void(float progressRatio)> OnProgressCallback
Definition: Csc3dElementModelResolver.h:12
conscience_core::core_objects::element_3d::Csc3dElementModel::provider
optional< string > provider
Definition: Csc3dElementModelResolver.h:26
conscience_core::core_objects::element_3d::ELEMENT_ENTITY
@ ELEMENT_ENTITY
Definition: Csc3dElementModelResolver.h:15
nlohmann::detail::void
j template void())
Definition: json.hpp:4189
CscCommon.h
jwt::json::type
type
Generic JSON types used in JWTs.
Definition: jwt.h:1794
conscience_core::core_objects::element_3d::CscWorldElementModelSourceSpec
Definition: Csc3dElementModelResolver.h:56
conscience_core::core_objects::element_3d::Csc3dElementModel::name
string name
Definition: Csc3dElementModelResolver.h:24
conscience_core::core_objects::element_3d::Csc3dElementModel::elementType
Csc3dElementType elementType
Definition: Csc3dElementModelResolver.h:22
conscience_core::core_objects::element_3d::Csc3dElementModel::lastModificationTimeMillis
unsigned long long lastModificationTimeMillis
Definition: Csc3dElementModelResolver.h:27
onProgress
optional< function< void(float progressRatio)> > onProgress
Definition: CscHttpClient.cpp:77
CscEntityModel.h
conscience_core::core_objects::element_3d::ENUM
ENUM(CscWorldElementModelFormat, WorldElementModelFormat_dae, WorldElementModelFormat_glTF, WorldElementModelFormat_obj,) CscWorldElementModelFormat extensionToWorldElementModelFormat(const string &fileExtension)
conscience_core::core_objects::element_3d::Csc3dElementModel::id
string id
Definition: Csc3dElementModelResolver.h:23
conscience_core::bridging::commands::environment_objects::optional< string >
const ptr< CscObjectModel > const string const CscPoint3d const CscPoint3d optional< string >
Definition: environmentObjectsCommands.h:373
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
conscience_core::core_objects::element_3d::extensionToWorldElementModelFormat
CscWorldElementModelFormat extensionToWorldElementModelFormat(const string &fileExtensionInput)
Definition: Csc3dElementModelResolver.cpp:25