Conscience Core
environmentObjectsCommands.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 environmentObjectsCommands_h
7 #define environmentObjectsCommands_h
8 
9 #include "CommandCommons.h"
10 
12 
13 // Structure pour définir un objet dans l'environnement 3D de Conscience
19 
30  const string &id,
31  const string &name,
32  const string &modelId,
33  const CscPoint3d *position,
34  const CscRotation3dEuler *rotationEuler,
35  const CscQuaternion *rotationQuaternion);
36 
38 
39  string id;
40  string name;
41  string modelId;
42  const CscPoint3d *position = nullptr;
43  const CscRotation3dEuler *rotationEuler = nullptr;
44  const CscQuaternion *rotationQuaternion = nullptr;
45 
46  static vector<WorldObjectCommandDataType *> fromObjects(const vector<CscWorldObject *> &objects);
47 };
48 
49 // Structure pour les filtres d'objets
51 
53 
63  const CscArea3d *zone = nullptr,
64  const optional<vector<string>> &ids = {},
65  const optional<vector<string>> &modelIds = {},
66  const optional<vector<string>> &names = {});
67 
68  const CscArea3d *zone;
69  optional<vector<string>> ids;
70  optional<vector<string>> modelIds;
71  optional<vector<string>> names;
72 };
73 
74 COMMAND_TYPE_BUILDER(ObjectsFilters, ObjectsFiltersCommandDataType, const CscArea3d *, optional<vector<string>>, optional<vector<string>>, optional<vector<string>>)
75 
76 
81 
82 public:
83  inline static const CommandTypeId COMMAND_ID = "OBJECTS_GET";
84 
85  CommandGetObjects(const optional<ptr<ObjectsFiltersCommandDataType>> &filters = nullopt);
86 
87  ~CommandGetObjects() override;
88 
89 protected:
90  const CscCommandExecutionResultList<WorldObjectCommandDataType> *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
91  ptr<CscEntityReflexion> getEntityReflexion() const override;
92 
93 private:
94  optional<ptr<ObjectsFiltersCommandDataType>> filters;
95 };
96 COMMAND_TYPE_BUILDER(CommandGetObjects, CscPoint3d, double, double, double)
100  id,
101  name,
102  modelId,
103  position,
104  rotationEuler,
105  rotationQuaternion)
107 
108 // Structure pour les objets en attente d'insertion
109 struct CSC_DLL_IMPORTEXPORT ObjectPendingInsertionCommandDataType {
113  ObjectPendingInsertionCommandDataType();
114  ~ObjectPendingInsertionCommandDataType();
115 
128  ObjectPendingInsertionCommandDataType(
129  const string &name,
130  const string &modelId,
131  const CscPoint3d *position,
132  const CscPoint3d *rotation = nullptr,
133  const optional<double> &mass = nullopt,
134  const optional<CscPhysicsType> &physiqueType = nullopt,
135  const optional<string> &positionRelativeToRobotMember = nullopt,
136  const optional<string> &robotSerialNumber = nullopt);
137 
138  string name;
139  string modelId;
140  const CscPoint3d *position;
141  const CscPoint3d *rotation;
142  optional<double> mass;
143  optional<CscPhysicsType> physiqueType;
144  optional<string> positionRelativeToRobotMember;
145  optional<string> robotSerialNumber;
146 };
147 
153 
154 public:
155  inline static const CommandTypeId COMMAND_ID = "OBJECTS_INSERT";
156 
158 
159  ~CommandInsertObjects() override;
160 
161 protected:
162  const CscCommandExecutionResultList<string> *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
163  ptr<CscEntityReflexion> getEntityReflexion() const override;
164 
165 private:
166  vector<ptr<ObjectPendingInsertionCommandDataType>> objects;
167 };
168 COMMAND_TYPE_BUILDER(CommandInsertObjects, ObjectPendingInsertionCommandDataType, const string &, const string &, const CscPoint3d *, CscPoint3d *, optional<double>, optional<CscPhysicsType>, optional<string>, optional<string>)
170 
171 // Structure pour les modèles d'objets
177 
186  const string &id,
187  const string &name,
188  unsigned long long lastModificationTimeMillis);
189 
190  string id;
191  string name;
192  unsigned long long lastModificationTimeMillis;
193 };
194 
195 COMMAND_TYPE_BUILDER(ObjectModel, ObjectModelCommandDataType, string, string, unsigned long long)
196 
197 // Structure pour les filtres de modèles d'objets
203 
210 
212 };
213 
219 
220 public:
221  inline static const CommandTypeId COMMAND_ID = "OBJECT_MODELS_GET";
222 
223  CommandObjectModelsGet(const optional<ptr<ObjectModelsGetFiltersCommandDataType>> &filters = nullopt);
224 
225  ~CommandObjectModelsGet() override;
226 
227 protected:
228  const CscCommandExecutionResultList<ObjectModelCommandDataType> *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
229  ptr<CscEntityReflexion> getEntityReflexion() const override;
230 
231 private:
232  optional<ptr<ObjectModelsGetFiltersCommandDataType>> filters;
233 };
236  name,
237  lastModificationTimeMillis)
239 
240 
244 class CSC_DLL_IMPORTEXPORT CommandObjectModelLogoGet : public CscCommand {
245 
246 public:
247  inline static const CommandTypeId COMMAND_ID = "OBJECT_MODEL_LOGO_GET";
248 
249  CommandObjectModelLogoGet(const string &objectModelId);
250 
251  ~CommandObjectModelLogoGet() override;
252 
253 protected:
254  const CscCommandExecutionResultBinary *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
255  ptr<CscEntityReflexion> getEntityReflexion() const override;
256 
257 private:
258  string objectModelId;
259 };
260 
261 COMMAND_REGISTER(CommandObjectModelLogoGet, const string &)
262 
263 
267 
268 public:
269  inline static const CommandTypeId COMMAND_ID = "OBJECTS_REMOVE";
270 
271  CommandRemoveObjects(const optional<ptr<ObjectsFiltersCommandDataType>> &filters = nullopt);
272 
273  ~CommandRemoveObjects() override;
274 
275 protected:
276  const CscCommandExecutionResultNone *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
277  ptr<CscEntityReflexion> getEntityReflexion() const override;
278 
279 private:
280  optional<ptr<ObjectsFiltersCommandDataType>> filters;
281 };
282 
284 
285 
289 
290 public:
291  inline static const CommandTypeId COMMAND_ID = "OBJECTS_CLEAR";
292 
294  ~CommandObjectsClear() override;
295 
296 protected:
297  const CscCommandExecutionResultNone *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
298  ptr<CscEntityReflexion> getEntityReflexion() const override;
299 };
300 
302 
303 
308 
309 public:
310  inline static const CommandTypeId COMMAND_ID = "OBJECT_MODEL_SOURCE_FILE_GET";
311 
312  CommandObjectModelSourceFileGet(const string &objectModelId, CscWorldElementModelFormat format);
314 
315 protected:
316  const CscCommandExecutionResultBinary *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
317  ptr<CscEntityReflexion> getEntityReflexion() const override;
318 
319 private:
320  string objectModelId;
321  CscWorldElementModelFormat format;
322 };
323 
324 COMMAND_REGISTER(CommandObjectModelSourceFileGet, const string &, CscWorldElementModelFormat)
325 
327 
328 public:
329  inline static const CommandTypeId COMMAND_ID = "OBJECT_INSERT";
330 
337  const string &name,
338  const CscPoint3d *position, const CscPoint3d *rotation,
339  optional<double> mass,
340  optional<CscPhysicsType> physiqueType,
341  optional<string> positionRelativeToRobotMember,
342  optional<string> robotSerialNumber);
343  ~CommandObjectInsert() override;
344 
345 protected:
346  const CscCommandExecutionResultString *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
347  ptr<CscEntityReflexion> getEntityReflexion() const override;
348 
349 private:
350  const string name;
351  ptr<const CscObjectModel> objectModel;
352  const CscPoint3d *position;
353  const CscPoint3d *rotation;
354  optional<double> mass;
355  optional<CscPhysicsType> physiqueType;
356  optional<string> positionRelativeToRobotMember;
357  optional<string> robotSerialNumber;
358 };
359 
361  const string &,
362  const string &,
363  const optional<string> &,
364  const optional<string> &,
365  unsigned long long)
366 
368  const string &,
369  const CscPoint3d*,
370  const CscPoint3d*,
371  optional<double>,
372  optional<CscPhysicsType>,
373  optional<string>,
374  optional<string>);
375 
376 }
377 
378 #endif
conscience_core::bridging::commands::environment_objects::ObjectModelCommandDataType::lastModificationTimeMillis
unsigned long long lastModificationTimeMillis
Definition: environmentObjectsCommands.h:192
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::result::CscCommandExecutionResultNone
Definition: CommandExecutionResultNone.h:11
conscience_core::bridging::commands::environment_objects::COMMAND_TYPE_BUILDER
COMMAND_TYPE_BUILDER(CommandObjectInsert, CscObjectModel, const Csc3dElementType &, const string &, const string &, const optional< string > &, const optional< string > &, unsigned long long) COMMAND_REGISTER(CommandObjectInsert
CSC_DLL_IMPORTEXPORT
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:31
conscience_core::bridging::commands::environment_objects::ObjectsFiltersCommandDataType::modelIds
optional< vector< string > > modelIds
Definition: environmentObjectsCommands.h:70
conscience_core::bridging::commands::environment_objects::WorldObjectCommandDataType
Definition: environmentObjectsCommands.h:14
conscience_core::axiomes::CscArea3d
Definition: Csc3dTypes.h:231
conscience_core::bridging::commands::environment_objects
Definition: environmentObjectsCommands.cpp:24
conscience_core::bridging::commands::environment_objects::ObjectsFiltersCommandDataType::ids
optional< vector< string > > ids
Definition: environmentObjectsCommands.h:69
conscience_core::bridging::commands::CommandTypeId
string CommandTypeId
Definition: Command.h:29
conscience_core::core_objects::element_3d::CscObjectModel
Definition: Csc3dElementModelsRepository.h:188
conscience_core::bridging::commands::environment_objects::CommandObjectsClear
Definition: environmentObjectsCommands.h:288
conscience_core::core_objects::element_3d::Csc3dElementType
Csc3dElementType
Definition: Csc3dElementModelResolver.h:14
conscience_core::bridging::commands::result::CscCommandExecutionResultString
Definition: CommandExecutionResultString.h:11
conscience_core::axiomes::CscRotation3dEuler
Definition: Csc3dTypes.h:194
conscience_core::bridging::commands::environment_objects::CommandObjectModelsGet
Definition: environmentObjectsCommands.h:218
conscience_core::bridging::commands::environment_objects::ObjectModelCommandDataType::id
string id
Definition: environmentObjectsCommands.h:190
conscience_core::bridging::commands::environment_objects::CommandObjectModelSourceFileGet
Definition: environmentObjectsCommands.h:307
conscience_core::bridging::commands::environment_objects::CommandObjectInsert
Definition: environmentObjectsCommands.h:326
conscience_core::bridging::commands::environment_objects::ObjectsFiltersCommandDataType::names
optional< vector< string > > names
Definition: environmentObjectsCommands.h:71
conscience_core::bridging::commands::CscCommand
Definition: Command.h:40
conscience_core::bridging::commands::environment_objects::ObjectsFiltersCommandDataType::zone
const CscArea3d * zone
Definition: environmentObjectsCommands.h:68
CscPhysicsType
CscPhysicsType
Definition: CscPhysicsType.h:12
conscience_core::bridging::commands::environment_objects::ObjectModelCommandDataType::name
string name
Definition: environmentObjectsCommands.h:191
conscience_core::bridging::commands::environment_objects::CommandInsertObjects
Definition: environmentObjectsCommands.h:152
conscience_core::bridging::commands::environment_objects::ObjectModelsGetFiltersCommandDataType
Definition: environmentObjectsCommands.h:198
conscience_core::axiomes::CscQuaternion
Definition: Csc3dTypes.h:138
conscience_core::bridging::commands::environment_objects::optional< double >
const ptr< CscObjectModel > const string const CscPoint3d const CscPoint3d optional< double >
Definition: environmentObjectsCommands.h:367
conscience_core::bridging::commands::environment_objects::CommandGetObjects
Definition: environmentObjectsCommands.h:80
conscience_core::bridging::commands::environment_objects::ObjectModelCommandDataType
Definition: environmentObjectsCommands.h:172
CscEnvironmentSimulator
Definition: CscEnvironmentSimulator.h:35
conscience_core::bridging::commands::COMMAND_REGISTER
COMMAND_REGISTER(CommandFollowKinematicTrajectory, ptr< CscEntityReflexion >, int, const CscState *, string, string, string, string, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float)
conscience_core::bridging::commands::environment_objects::optional< CscPhysicsType >
const ptr< CscObjectModel > const string const CscPoint3d const CscPoint3d optional< CscPhysicsType >
Definition: environmentObjectsCommands.h:372
CommandCommons.h
conscience_core::bridging::commands::environment_objects::COMMAND_RESULT_JSON_SERIALIZER
COMMAND_RESULT_JSON_SERIALIZER(WorldObjectCommandDataType, id, name, modelId, position, rotationEuler, rotationQuaternion) struct CSC_DLL_IMPORTEXPORT ObjectPendingInsertionCommandDataType
Definition: environmentObjectsCommands.h:99
conscience_core::bridging::commands::result::CscCommandExecutionResultBinary
Definition: CommandExecutionResultBinary.h:8
conscience_core::bridging::commands::environment_objects::WorldObjectCommandDataType::id
string id
Definition: environmentObjectsCommands.h:39
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::environment_objects::WorldObjectCommandDataType::name
string name
Definition: environmentObjectsCommands.h:40
conscience_core::bridging::commands::result::CscCommandExecutionResultList
Definition: CommandExecutionResult.h:118
conscience_core::bridging::commands::environment_objects::CommandRemoveObjects
Definition: environmentObjectsCommands.h:266
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
conscience_core::bridging::commands::environment_objects::ObjectsFiltersCommandDataType
Definition: environmentObjectsCommands.h:50
conscience_core::bridging::commands::environment_objects::ObjectModelsGetFiltersCommandDataType::objectId
optional< string > objectId
Definition: environmentObjectsCommands.h:211
conscience_core::bridging::commands::environment_objects::WorldObjectCommandDataType::modelId
string modelId
Definition: environmentObjectsCommands.h:41