Conscience Core
CscEntityModelData.h
Go to the documentation of this file.
1 #ifndef CscEntityModelData_h
2 #define CscEntityModelData_h
3 
5 
7 
8 // TODO LOUIS CS-2365 all fields in those structs are useless because parsing is done after ...
9 
11 public:
12  const int id;
13  const string name;
14  CscPoint3d *const positionMin = nullptr;
15  CscPoint3d *const positionMax = nullptr;
16 
19 };
20 
21 
23  CscEntityModelMemberData(int id, const string &name, CscPoint3d *positionMin, CscPoint3d *positionMax, const vector<const CscPolygon *> &polygons, CscPoint3d *position = nullptr);
24 
28  // TODO LOUIS CS-2365 this is dangereous, we need to enhance this
29  CscPoint3d * position = nullptr;
30 
31  const vector<const CscPolygon *> polygons;
32  const double mass = 0.05;
33  const double friction = 1.5;
34  const double restitution = 0.0;
35  const double linearDamping = 0.0;
36  const double angularDamping = 0.0;
37 
38  virtual ~CscEntityModelMemberData();
39 };
40 
41 
44  CscPoint3d *const positionMemberA = nullptr;
45  CscPoint3d *const positionMemberB = nullptr;
46  const double softness = 1.0;
47  const double relaxtion = 0.0;
48  const double bias = 1.0;
49  const double speedMax = 30.0;
50  const double maxImpulse = 300.0;
51  const bool free = false;
52  vector<string> tags = {};
53 
54  virtual ~CscEntityModelPivotData();
55 };
56 
57 
62  const double softness = 20.0;
63  const double relaxtion = 5.0;
64  const double bias = 0.1;
65  const double speedMax = 100;
66  const bool free = false;
67 
68  virtual ~CscEntityModelWheelData();
69 };
70 
71 
76  const double softness = 20.0;
77  const double relaxtion = 5.0;
78  const double bias = 0.05;
79  const double speedMax = 1.0;
80 
82 };
83 
84 
89  const double softness = 20.0;
90  const double relaxtion = 5.0;
91  const double bias = 0.1;
92  const double speedMax = 100;
93 
95 };
96 
97 
100  const int visionMemberId;
101  CscPoint3d *const position = nullptr;
102 
103  virtual ~CscEntityModelVisionData();
104 };
105 
106 
110  const double angleFromFront = 0.0;
111 
112  virtual ~CscEntityModelLidarData();
113 };
114 
119 public:
120  const string &modelId;
121  string entityType;
122  string name;
123  string owner;
124  vector<CscEntityModelMemberData *> members;
125  vector<CscEntityModelPivotData *> pivots;
126  vector<CscEntityModelWheelData *> wheels;
127  vector<CscEntityModelTranslationData *> translations;
128  vector<CscEntityModelPropellerData *> propellers;
129  vector<CscEntityModelLidarData *> lidars;
131  vector<string> params;
132 
133  CscEntityModelData(const string &modelId,
134  const string &entityType,
135  const string &name,
136  const string &owner,
137  const vector<CscEntityModelMemberData *> &members,
138  const vector<CscEntityModelPivotData *> &pivots,
139  const vector<CscEntityModelWheelData *> &wheels,
140  const vector<CscEntityModelTranslationData *> &translations,
141  const vector<CscEntityModelPropellerData *> &propellers,
142  const vector<CscEntityModelLidarData *> &lidars,
144  const vector<string> &params);
145 
149  CscPoint3d *const positionMin = nullptr;
153  CscPoint3d *const positionMax = nullptr;
154 
155  virtual ~CscEntityModelData();
156 
157  size_t countParams() const;
158  double getParamAsFloat(int paramIndex) const;
159 
161 
162 private:
166  void sort();
167 
168  unique_ptr<CscLogger> logger = CscLogger::getForCategory("CscEntityModelData");
169 
170  int calculInitPivotPercentValue(int pivotMin, int pivotMax) const;
174  optional<int> getMemberIdByName(const string &name) const;
178  CscPoint3d *getMemberPositionByName(const string &name) const;
179 
183  CscEntityModelMemberData *getMemberDataByName(const string &pureName) const;
184 
185  vector<CscMember *> *createConscienceMembers() const;
186  vector<CscMemberJoint *> *createConsciencePivots() const;
187  vector<CscMemberWheel *> *createConscienceWheels() const;
188  vector<CscPropeller *> *createConsciencePropellers() const;
189  vector<CscTranslation *> *createConscienceTranslations() const;
190  CscEntityVision *createConscienceEntityVision() const;
191  vector<CscEntityLidar *> *createConscienceEntityLidars() const;
192 };
193 
194 }
195 
196 #endif
conscience_core::core_objects::exchange::CscEntityModelTranslationData::relaxtion
const double relaxtion
Definition: CscEntityModelData.h:77
conscience_core::core_objects::exchange::CscEntityModelPartDataBase::CscEntityModelPartDataBase
CscEntityModelPartDataBase(int id, const string &name, CscPoint3d *positionMin, CscPoint3d *positionMax)
Definition: CscEntityModelData.cpp:11
conscience_core::core_objects::exchange::CscEntityModelPivotData::positionMemberA
CscPoint3d *const positionMemberA
Definition: CscEntityModelData.h:44
conscience_core::core_objects::exchange::CscEntityModelMemberData::angularDamping
const double angularDamping
Definition: CscEntityModelData.h:36
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::core_objects::exchange::CscEntityModelPropellerData
Definition: CscEntityModelData.h:85
conscience_core::core_objects::exchange::CscEntityModelData::modelId
const string & modelId
Definition: CscEntityModelData.h:120
conscience_core::core_objects::exchange::CscEntityModelVisionData::visionMemberId
const int visionMemberId
Definition: CscEntityModelData.h:100
conscience_core::core_objects::exchange::CscEntityModelMemberData::polygons
const vector< const CscPolygon * > polygons
Definition: CscEntityModelData.h:31
conscience_core::core_objects::exchange::CscEntityModelWheelData::speedMax
const double speedMax
Definition: CscEntityModelData.h:65
conscience_core::core_objects::exchange::CscEntityModelPropellerData::positionMemberA
CscPoint3d * positionMemberA
Definition: CscEntityModelData.h:87
conscience_core::core_objects::exchange::CscEntityModelWheelData::softness
const double softness
Definition: CscEntityModelData.h:62
conscience_core::core_objects::exchange::CscEntityModelWheelData::bias
const double bias
Definition: CscEntityModelData.h:64
CscEntityModel
Definition: CscEntityModel.h:54
conscience_core::core_objects::exchange::CscEntityModelData::entityType
string entityType
Definition: CscEntityModelData.h:121
conscience_core::core_objects::exchange::CscEntityModelData::params
vector< string > params
Definition: CscEntityModelData.h:131
conscience_core::core_objects::exchange::CscEntityModelData::propellers
vector< CscEntityModelPropellerData * > propellers
Definition: CscEntityModelData.h:128
conscience_core::core_objects::exchange::CscEntityModelWheelData::positionMemberB
CscPoint3d * positionMemberB
Definition: CscEntityModelData.h:61
conscience_core::core_objects::exchange::CscEntityModelPartDataBase::positionMax
CscPoint3d *const positionMax
Definition: CscEntityModelData.h:15
conscience_core::core_objects::exchange::CscEntityModelLidarData::angleFromFront
const double angleFromFront
Definition: CscEntityModelData.h:110
conscience_core::core_objects::exchange::CscEntityModelMemberData::mass
const double mass
Definition: CscEntityModelData.h:32
conscience_core::core_objects::exchange::CscEntityModelMemberData::position
CscPoint3d * position
Definition: CscEntityModelData.h:29
conscience_core::core_objects::exchange::CscEntityModelTranslationData
Definition: CscEntityModelData.h:72
conscience_core::core_objects::exchange::CscEntityModelData::vision
CscEntityModelVisionData * vision
Definition: CscEntityModelData.h:130
conscience_core::core_objects::exchange::CscEntityModelTranslationData::CscEntityModelTranslationData
CscEntityModelTranslationData(int id, const string &name, CscPoint3d *positionMin, CscPoint3d *positionMax, CscPoint3d *positionMemberA=nullptr, CscPoint3d *positionMemberB=nullptr)
Definition: CscEntityModelData.cpp:23
conscience_core::core_objects::exchange::CscEntityModelPartDataBase
Definition: CscEntityModelData.h:10
conscience_core::core_objects::exchange::CscEntityModelTranslationData::softness
const double softness
Definition: CscEntityModelData.h:76
conscience_core::core_objects::exchange::CscEntityModelPropellerData::positionMemberB
CscPoint3d * positionMemberB
Definition: CscEntityModelData.h:88
conscience_core::core_objects::exchange::CscEntityModelTranslationData::positionMemberA
CscPoint3d * positionMemberA
Definition: CscEntityModelData.h:74
conscience_core::core_objects::exchange::CscEntityModelWheelData::~CscEntityModelWheelData
virtual ~CscEntityModelWheelData()
Definition: CscEntityModelData.cpp:92
conscience_core::core_objects::exchange::CscEntityModelData
Definition: CscEntityModelData.h:118
conscience_core::core_objects::exchange
Definition: CscEntityModelData.cpp:9
conscience_core::core_objects::exchange::CscEntityModelPivotData::CscEntityModelPivotData
CscEntityModelPivotData(int id, const string &name, CscPoint3d *positionMin, CscPoint3d *positionMax, CscPoint3d *positionMemberA=nullptr, CscPoint3d *positionMemberB=nullptr)
Definition: CscEntityModelData.cpp:17
conscience_core::core_objects::exchange::CscEntityModelVisionData::CscEntityModelVisionData
CscEntityModelVisionData(int visionMemberId, CscPoint3d *position)
Definition: CscEntityModelData.cpp:32
conscience_core::core_objects::exchange::CscEntityModelPartDataBase::name
const string name
Definition: CscEntityModelData.h:13
conscience_core::core_objects::exchange::CscEntityModelData::positionMin
CscPoint3d *const positionMin
Definition: CscEntityModelData.h:149
conscience_core::core_objects::exchange::CscEntityModelVisionData::~CscEntityModelVisionData
virtual ~CscEntityModelVisionData()
Definition: CscEntityModelData.cpp:107
conscience_core::core_objects::exchange::CscEntityModelPropellerData::softness
const double softness
Definition: CscEntityModelData.h:89
conscience_core::core_objects::exchange::CscEntityModelData::~CscEntityModelData
virtual ~CscEntityModelData()
Definition: CscEntityModelData.cpp:69
conscience_core::core_objects::exchange::CscEntityModelPartDataBase::id
const int id
Definition: CscEntityModelData.h:12
conscience_core::core_objects::exchange::CscEntityModelPartDataBase::~CscEntityModelPartDataBase
virtual ~CscEntityModelPartDataBase()
Definition: CscEntityModelData.cpp:36
conscience_core::core_objects::exchange::CscEntityModelPartDataBase::positionMin
CscPoint3d *const positionMin
Definition: CscEntityModelData.h:14
conscience_core::core_objects::exchange::CscEntityModelData::positionMax
CscPoint3d *const positionMax
Definition: CscEntityModelData.h:153
conscience_core::core_objects::exchange::CscEntityModelMemberData
Definition: CscEntityModelData.h:22
conscience_core::core_objects::exchange::CscEntityModelData::members
vector< CscEntityModelMemberData * > members
Definition: CscEntityModelData.h:124
conscience_core::core_objects::exchange::CscEntityModelPivotData::relaxtion
const double relaxtion
Definition: CscEntityModelData.h:47
conscience_core::core_objects::exchange::CscEntityModelTranslationData::speedMax
const double speedMax
Definition: CscEntityModelData.h:79
conscience_core::core_objects::exchange::CscEntityModelPivotData::speedMax
const double speedMax
Definition: CscEntityModelData.h:49
conscience_core::core_objects::exchange::CscEntityModelData::lidars
vector< CscEntityModelLidarData * > lidars
Definition: CscEntityModelData.h:129
conscience_core::core_objects::exchange::CscEntityModelMemberData::restitution
const double restitution
Definition: CscEntityModelData.h:34
conscience_core::core_objects::exchange::CscEntityModelLidarData
Definition: CscEntityModelData.h:107
conscience_core::core_objects::exchange::CscEntityModelPropellerData::speedMax
const double speedMax
Definition: CscEntityModelData.h:92
conscience_core::core_objects::exchange::CscEntityModelLidarData::positionMemberA
CscPoint3d * positionMemberA
Definition: CscEntityModelData.h:109
conscience_core::core_objects::exchange::CscEntityModelPivotData::bias
const double bias
Definition: CscEntityModelData.h:48
conscience_core::core_objects::exchange::CscEntityModelData::createModel
CscEntityModel * createModel()
Definition: CscEntityModelData.cpp:743
conscience_core::core_objects::exchange::CscEntityModelData::countParams
size_t countParams() const
Definition: CscEntityModelData.cpp:708
conscience_core::core_objects::exchange::CscEntityModelPivotData::softness
const double softness
Definition: CscEntityModelData.h:46
conscience_core::core_objects::exchange::CscEntityModelTranslationData::~CscEntityModelTranslationData
virtual ~CscEntityModelTranslationData()
Definition: CscEntityModelData.cpp:97
conscience_core::core_objects::exchange::CscEntityModelMemberData::~CscEntityModelMemberData
virtual ~CscEntityModelMemberData()
Definition: CscEntityModelData.cpp:82
conscience_core::core_objects::exchange::CscEntityModelPivotData
Definition: CscEntityModelData.h:42
conscience_core::core_objects::exchange::CscEntityModelPropellerData::bias
const double bias
Definition: CscEntityModelData.h:91
conscience_core::core_objects::exchange::CscEntityModelMemberData::friction
const double friction
Definition: CscEntityModelData.h:33
conscience_core::core_objects::exchange::CscEntityModelData::owner
string owner
Definition: CscEntityModelData.h:123
conscience_core::core_objects::exchange::CscEntityModelData::translations
vector< CscEntityModelTranslationData * > translations
Definition: CscEntityModelData.h:127
CscEntityVision
Definition: CscEntityVision.h:16
conscience_core::core_objects::exchange::CscEntityModelWheelData::free
const bool free
Definition: CscEntityModelData.h:66
conscience_core::core_objects::exchange::CscEntityModelData::pivots
vector< CscEntityModelPivotData * > pivots
Definition: CscEntityModelData.h:125
conscience_core::core_objects::exchange::CscEntityModelMemberData::CscEntityModelMemberData
CscEntityModelMemberData(int id, const string &name, CscPoint3d *positionMin, CscPoint3d *positionMax, const vector< const CscPolygon * > &polygons, CscPoint3d *position=nullptr)
Definition: CscEntityModelData.cpp:14
conscience_core::core_objects::exchange::CscEntityModelData::name
string name
Definition: CscEntityModelData.h:122
conscience_core::core_objects::exchange::CscEntityModelPivotData::maxImpulse
const double maxImpulse
Definition: CscEntityModelData.h:50
conscience_core::core_objects::exchange::CscEntityModelPivotData::tags
vector< string > tags
Definition: CscEntityModelData.h:52
conscience_core::core_objects::exchange::CscEntityModelTranslationData::bias
const double bias
Definition: CscEntityModelData.h:78
conscience_core::core_objects::exchange::CscEntityModelTranslationData::positionMemberB
CscPoint3d * positionMemberB
Definition: CscEntityModelData.h:75
conscience_core::core_objects::exchange::CscEntityModelData::wheels
vector< CscEntityModelWheelData * > wheels
Definition: CscEntityModelData.h:126
conscience_core::core_objects::exchange::CscEntityModelVisionData::position
CscPoint3d *const position
Definition: CscEntityModelData.h:101
conscience_core::core_objects::exchange::CscEntityModelPivotData::positionMemberB
CscPoint3d *const positionMemberB
Definition: CscEntityModelData.h:45
CscEntityModel.h
conscience_core::core_objects::exchange::CscEntityModelData::CscEntityModelData
CscEntityModelData(const string &modelId, const string &entityType, const string &name, const string &owner, const vector< CscEntityModelMemberData * > &members, const vector< CscEntityModelPivotData * > &pivots, const vector< CscEntityModelWheelData * > &wheels, const vector< CscEntityModelTranslationData * > &translations, const vector< CscEntityModelPropellerData * > &propellers, const vector< CscEntityModelLidarData * > &lidars, CscEntityModelVisionData *vision, const vector< string > &params)
Definition: CscEntityModelData.cpp:49
conscience_core::core_objects::exchange::CscEntityModelWheelData::positionMemberA
CscPoint3d * positionMemberA
Definition: CscEntityModelData.h:60
conscience_core::core_objects::exchange::CscEntityModelPivotData::free
const bool free
Definition: CscEntityModelData.h:51
conscience_core::core_objects::exchange::CscEntityModelWheelData::relaxtion
const double relaxtion
Definition: CscEntityModelData.h:63
conscience_core::core_objects::exchange::CscEntityModelPropellerData::CscEntityModelPropellerData
CscEntityModelPropellerData(int id, const string &name, CscPoint3d *positionMin, CscPoint3d *positionMax, CscPoint3d *positionMemberA=nullptr, CscPoint3d *positionMemberB=nullptr)
Definition: CscEntityModelData.cpp:26
conscience_core::core_objects::exchange::CscEntityModelMemberData::linearDamping
const double linearDamping
Definition: CscEntityModelData.h:35
conscience_core::core_objects::exchange::CscEntityModelWheelData
Definition: CscEntityModelData.h:58
conscience_core::core_objects::exchange::CscEntityModelData::getParamAsFloat
double getParamAsFloat(int paramIndex) const
Definition: CscEntityModelData.cpp:712
conscience_core::core_objects::exchange::CscEntityModelVisionData
Definition: CscEntityModelData.h:98
conscience_core::core_objects::exchange::CscEntityModelPropellerData::relaxtion
const double relaxtion
Definition: CscEntityModelData.h:90
conscience_core::core_objects::exchange::CscEntityModelWheelData::CscEntityModelWheelData
CscEntityModelWheelData(int id, const string &name, CscPoint3d *positionMin, CscPoint3d *positionMax, CscPoint3d *positionMemberA=nullptr, CscPoint3d *positionMemberB=nullptr)
Definition: CscEntityModelData.cpp:20
conscience_core::core_objects::exchange::CscEntityModelPivotData::~CscEntityModelPivotData
virtual ~CscEntityModelPivotData()
Definition: CscEntityModelData.cpp:87
conscience_core::core_objects::exchange::CscEntityModelLidarData::CscEntityModelLidarData
CscEntityModelLidarData(int id, const string &name, CscPoint3d *positionMin, CscPoint3d *positionMax, CscPoint3d *positionMemberA=nullptr)
Definition: CscEntityModelData.cpp:29
conscience_core::core_objects::exchange::CscEntityModelPropellerData::~CscEntityModelPropellerData
virtual ~CscEntityModelPropellerData()
Definition: CscEntityModelData.cpp:102
conscience_core::core_objects::exchange::CscEntityModelLidarData::~CscEntityModelLidarData
virtual ~CscEntityModelLidarData()
Definition: CscEntityModelData.cpp:111