Conscience Core
environmentPlacesCommands.h
Go to the documentation of this file.
1 // ConscienceRobotManager
2 //
3 // Created by Louis Grignon on 21/12/2022.
4 // Copyright © 2022 IliesZaoui. All rights reserved.
5 //
6 #ifndef environmentPlacesCommands_h
7 #define environmentPlacesCommands_h
8 
9 #include "CommandCommons.h"
10 
12 
13 template <class T>
14 concept IsPointerOfWorldPlace = IsPointerOf<T, CscWorldPlace>;
15 
22 
23 public:
24  inline static const CommandTypeId COMMAND_ID = "PLACE_INSERT";
25 
32  optional<ptr<CscPoint3d>> position,
33  optional<ptr<CscPoint3d>> rotation,
34  optional<bool> removeOtherPlaces);
35  ~CommandPlaceInsert() override;
36 
37 protected:
38  const CscCommandExecutionResultString *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
39  ptr<CscEntityReflexion> getEntityReflexion() const override;
40 
41 private:
42  const ptr<const CscPlaceModel> placeModel;
43  optional<ptr<CscPoint3d>> position;
44  optional<ptr<CscPoint3d>> rotation;
45  optional<bool> removeOtherPlaces;
46 };
48  optional<ptr<CscPoint3d>>,
49  optional<ptr<CscPoint3d>>,
50  optional<bool>);
51 
52 // Structure pour les filtres de récupération des places
58 
67  const CscArea3d *zone,
68  const optional<vector<string>> &ids,
69  const optional<vector<string>> &modelIds);
70 
72 
73  const CscArea3d *zone;
74  optional<vector<string>> ids;
75  optional<vector<string>> modelIds;
76 };
77 
78 // Structure pour les données de modèle de place
84 
94  const string &id,
95  const string &name,
96  const string &provider,
97  unsigned long long lastModificationTimeMillis);
98 
99  string id;
100  string name;
101  string provider;
102  unsigned long long lastModificationTimeMillis;
103 };
104 
105 // Structure pour les filtres de récupération des modèles de place
111 
118 
120 };
121 
122 // Structure pour définir un lieu dans l'environnement 3D de Conscience
129 
141  const string &id,
142  const string &name,
143  const string &modelId,
144  const string &placeOwner,
145  const CscPoint3d *position,
146  const CscRotation3dEuler *rotationEuler,
147  const CscQuaternion *rotationQuaternion);
148 
149  string id;
150  string name;
151  string modelId;
152  string placeOwner;
153  const CscPoint3d *position = nullptr;
154  const CscRotation3dEuler *rotationEuler = nullptr;
155  const CscQuaternion *rotationQuaternion = nullptr;
156 
157  static vector<WorldPlaceCommandDataType*> fromPlaces(const vector<CscWorldPlace *> &places);
158 };
159 
160 
161 
167 
168 public:
169  inline static const CommandTypeId COMMAND_ID = "PLACES_GET";
170 
171  CommandPlacesGet(const optional<ptr<PlacesGetFiltersCommandDataType>> &filters = nullopt);
172 
173  ~CommandPlacesGet() override;
174 
175 protected:
176  const CscCommandExecutionResultList<WorldPlaceCommandDataType> *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
177  ptr<CscEntityReflexion> getEntityReflexion() const override;
178 
179 private:
180  optional<ptr<PlacesGetFiltersCommandDataType>> filters;
181 };
182 
183 COMMAND_TYPE_BUILDER(WorldPlaceCommandDataType, PlacesGetFiltersCommandDataType, CscArea3d *, optional<vector<string>>, optional<vector<string>>)
188  id,
189  name,
190  modelId,
191  placeOwner,
192  position,
193  rotationEuler,
194  rotationQuaternion)
195 
200 class CSC_DLL_IMPORTEXPORT CommandPlaceRemove : public CscCommand {
201 
202 public:
203  inline static const CommandTypeId COMMAND_ID = "PLACE_REMOVE";
204 
205  CommandPlaceRemove(const string &placeId);
206 
207  ~CommandPlaceRemove() override;
208 
209 protected:
210  const CscCommandExecutionResultBool *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
211  ptr<CscEntityReflexion> getEntityReflexion() const override;
212 
213 private:
214  string placeId;
215 };
216 
217 COMMAND_REGISTER(CommandPlaceRemove, const string &)
218 
219 
224 
225 public:
226  inline static const CommandTypeId COMMAND_ID = "PLACE_MODELS_GET";
227 
228  CommandPlaceModelsGet(const optional<ptr<PlaceModelsGetFiltersCommandDataType>> &filters = nullopt);
229 
230  ~CommandPlaceModelsGet() override;
231 
232 protected:
233  const CscCommandExecutionResultList<PlaceModelCommandDataType> *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
234  ptr<CscEntityReflexion> getEntityReflexion() const override;
235 
236 private:
237  optional<ptr<PlaceModelsGetFiltersCommandDataType>> filters;
238 };
239 
240 COMMAND_RESULT_JSON_SERIALIZER(PlaceModelCommandDataType, id, name, provider, lastModificationTimeMillis)
242 
243 
248 
249 public:
250  inline static const CommandTypeId COMMAND_ID = "PLACE_MODEL_LOGO_GET";
251 
252  CommandPlaceModelLogoGet(const string &placeModelId);
253 
254  ~CommandPlaceModelLogoGet() override;
255 
256 protected:
257  const CscCommandExecutionResultBinary *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
258  ptr<CscEntityReflexion> getEntityReflexion() const override;
259 
260 private:
261  string placeModelId;
262 };
263 
265 
266 
271 
272 public:
273  inline static const CommandTypeId COMMAND_ID = "PLACE_MODEL_SOURCE_FILE_GET";
274 
275  CommandPlaceModelSourceFileGet(const string &placeModelId, CscWorldElementModelFormat format);
276 
277  ~CommandPlaceModelSourceFileGet() override;
278 
279 protected:
280  const CscCommandExecutionResultBinary *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
281  ptr<CscEntityReflexion> getEntityReflexion() const override;
282 
283 private:
284  string placeModelId;
285  CscWorldElementModelFormat format;
286 };
287 
288 COMMAND_TYPE_BUILDER(CommandPlaceModelSourceFileGet, PlaceModelCommandDataType, string, string, string, unsigned long long)
289 COMMAND_REGISTER(CommandPlaceModelSourceFileGet, const string &, CscWorldElementModelFormat)
290 
291 }
292 
293 #endif
conscience_core::bridging::commands::result::CscCommandExecutionResultBool
Definition: CommandExecutionResult.h:148
conscience_core::axiomes::CscPoint3d
The CscPoint3d class represents a point in three-dimensional space. It is primarily used to denote a ...
Definition: Csc3dTypes.h:24
conscience_core::bridging::commands::environment_places::WorldPlaceCommandDataType::id
string id
Definition: environmentPlacesCommands.h:149
conscience_core::bridging::commands::environment_places::IsPointerOfWorldPlace
concept IsPointerOfWorldPlace
Definition: environmentPlacesCommands.h:14
CSC_DLL_IMPORTEXPORT
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:34
conscience_core::bridging::commands::environment_places::PlaceModelCommandDataType::name
string name
Definition: environmentPlacesCommands.h:100
conscience_core::bridging::commands::environment_places::WorldPlaceCommandDataType::name
string name
Definition: environmentPlacesCommands.h:150
conscience_core::bridging::commands::environment_places::PlaceModelsGetFiltersCommandDataType::placeId
optional< string > placeId
Definition: environmentPlacesCommands.h:119
conscience_core::bridging::commands::environment_places::CommandPlaceModelSourceFileGet
Definition: environmentPlacesCommands.h:270
conscience_core::axiomes::CscArea3d
Definition: Csc3dTypes.h:231
conscience_core::bridging::commands::environment_places::PlacesGetFiltersCommandDataType::modelIds
optional< vector< string > > modelIds
Definition: environmentPlacesCommands.h:75
conscience_core::bridging::commands::environment_places::PlacesGetFiltersCommandDataType::zone
const CscArea3d * zone
Definition: environmentPlacesCommands.h:73
conscience_core::bridging::commands::CommandTypeId
string CommandTypeId
Definition: Command.h:29
conscience_core::bridging::commands::environment_places::COMMAND_REGISTER
COMMAND_REGISTER(CommandPlaceInsert, ptr< const CscPlaceModel >, optional< ptr< CscPoint3d >>, optional< ptr< CscPoint3d >>, optional< bool >)
conscience_core::bridging::commands::environment_places::PlaceModelCommandDataType::lastModificationTimeMillis
unsigned long long lastModificationTimeMillis
Definition: environmentPlacesCommands.h:102
conscience_core::bridging::commands::environment_places::PlaceModelCommandDataType
Definition: environmentPlacesCommands.h:79
conscience_core::bridging::commands::result::CscCommandExecutionResultString
Definition: CommandExecutionResultString.h:11
conscience_core::axiomes::CscRotation3dEuler
Definition: Csc3dTypes.h:194
conscience_core::bridging::commands::environment_places
Definition: environmentPlacesCommands.cpp:25
conscience_core::bridging::commands::environment_places::PlaceModelsGetFiltersCommandDataType
Definition: environmentPlacesCommands.h:106
COMMAND_RESULT_JSON_SERIALIZER
#define COMMAND_RESULT_JSON_SERIALIZER(TClass,...)
Definition: CommandExecutionResult.h:10
conscience_core::bridging::commands::environment_places::CommandPlaceModelLogoGet
Definition: environmentPlacesCommands.h:247
conscience_core::bridging::commands::CscCommand
Definition: Command.h:40
conscience_core::bridging::commands::environment_places::CommandPlaceModelsGet
Definition: environmentPlacesCommands.h:223
conscience_core::bridging::commands::environment_places::PlaceModelCommandDataType::provider
string provider
Definition: environmentPlacesCommands.h:101
conscience_core::axiomes::CscQuaternion
Definition: Csc3dTypes.h:138
conscience_core::bridging::commands::environment_places::CommandPlacesGet
Definition: environmentPlacesCommands.h:166
COMMAND_TYPE_BUILDER
#define COMMAND_TYPE_BUILDER(PREFIX, COMMAND_REGISTER_className,...)
Definition: CscCommandAutoParse.h:515
CscEnvironmentSimulator
Definition: CscEnvironmentSimulator.h:31
CommandCommons.h
conscience_core::bridging::commands::environment_places::WorldPlaceCommandDataType
Definition: environmentPlacesCommands.h:123
conscience_core::bridging::commands::environment_places::PlaceModelCommandDataType::id
string id
Definition: environmentPlacesCommands.h:99
conscience_core::bridging::commands::environment_places::WorldPlaceCommandDataType::modelId
string modelId
Definition: environmentPlacesCommands.h:151
conscience_core::bridging::commands::environment_places::WorldPlaceCommandDataType::placeOwner
string placeOwner
Definition: environmentPlacesCommands.h:152
conscience_core::bridging::commands::result::CscCommandExecutionResultBinary
Definition: CommandExecutionResultBinary.h:8
conscience_core::bridging::commands::environment_places::CommandPlaceInsert
Definition: environmentPlacesCommands.h:21
conscience_core::bridging::commands::environment_objects::optional< string >
const ptr< CscObjectModel > const string const CscPoint3d const CscPoint3d optional< string >
Definition: environmentObjectsCommands.h:373
conscience_core::bridging::commands::result::CscCommandExecutionResultList
Definition: CommandExecutionResult.h:118
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
conscience_core::bridging::commands::environment_places::PlacesGetFiltersCommandDataType
Definition: environmentPlacesCommands.h:53
conscience_core::bridging::commands::environment_places::PlacesGetFiltersCommandDataType::ids
optional< vector< string > > ids
Definition: environmentPlacesCommands.h:74