Conscience Core
CscState.h
Go to the documentation of this file.
1 /*
2  * CscState.h
3  *
4  * Created on: 31 mai 2014
5  * Author: ilieszaoui
6  */
7 
8 #ifndef CSCSTATE_H_
9 #define CSCSTATE_H_
10 
11 #include "CscCommon.h"
12 
13 #include <sstream>
14 #include <cmath>
15 #include "CscMemberInputStatus.h"
16 
17 #include "Axiomes/Csc3dTypes.h"
18 
19 
20 #include "CscEntityModel.h"
21 
22 using std::vector, std::string, std::map, std::stringstream, std::to_string;
23 
24 class CscState {
25 public:
26  int stateId = -1; // -1 If generated by AI
27 
31  CscState(map<int, float> *pivotsValues = nullptr,
32  map<int, float> *wheelsValues = nullptr,
33  map<int, float> *propellersValues = nullptr,
34  const optional<map<int, float>> &translationsValues = {},
35  const vector<const CscMemberInputStatus *> *inputsValues = nullptr);
36  void setPivots(map<int, float> pivotsIn);
37  void setPropellers(map<int, float> propIn);
38  void setPropeller(int propId, float value);
39  void setPivot(int pivotId, float value);
40 
41  void removePivot(int pivotId);
42 
43  void setObjectiveValue(float value);
44  void setInputs(vector<const CscMemberInputStatus *> *inputsIn);
45  int countPivots() const;
46  float getPivotValueByPivotId(int pivotId) const;
47  int getPivotIdAt(int index);
48  int getWheelIdAt(int index);
49  int getTranslationIdAt(int index);
50  int getPropellerIdAt(int index);
51  float getWheelValueByWheelId(int wheelId) const;
52  float getTranslationValueByTranslationId(int wheelId);
53  float getPropellerValueByPropellerId(int wheelId);
54  float getInputFromMemberName(string memberName, CscInputType inputId);
55  float getObjectiveValue() const;
56  virtual ~CscState();
57  int countPropellers() const;
58  float getPropeller(int propId) const;
59  string toString();
60  string toUserFriendlyString(bool outputs = true, bool inputs = true) const;
61  string toStringWithQuotes();
62  vector<CscMemberInputStatus *> *getInputsCopy() const;
63  const vector<const CscMemberInputStatus *> &getInputs() const {
64  return *inputs;
65  }
66  size_t countInputs() const {
67  return inputs->size();
68  }
70  map<int, float> getPropellersCopy() const;
71  map<int, float> getPivotsCopy() const;
72  map<int, float> getWheelsCopy() const;
73 
74  void clearInputs();
75 
76  float getWheel(int wheelId) const;
77 
78  const map<int, float> &getPropellers() const;
79  const map<int, float> &getPivots() const;
80  const map<int, float> &getWheels() const;
81  const map<int, float> &getTranslations() const;
82 
83  int countWheels() const;
84  void setWheel(int wheelId, float value);
85  void setWheels(map<int, float> wheelsIn);
86  void setTranslations(map<int, float> TranslationsIn);
87  int countTranslations() const;
88  void setGridPosition(CscPoint3dOriented *gridPositionIn);
91  float getTranslation(int translationId) const;
92  map<int, float> getTranslationsCopy() const;
93  map<CscInputType, float> getInputsFromMemberName(string memberName);
94  void setTranslation(int translationId, float value);
95 
96  static float getInputsDistance(const map<CscInputType, float> &inputsIn, const map<CscInputType, float> &inputsTargetValuesMember);
97 
98  CscPoint3d *getPositionPivotFromPivotId(int pivotId, const CscEntityModel *entityModel);
99  virtual CscState * clone();
100 private:
101  float objectiveValue = 0; // to export ?
102  vector<const CscMemberInputStatus *> *inputs;
103  map<int, float> pivots;
104  map<int, float> propellers;
105  map<int, float> wheels;
106  map<int, float> translations;
107  CscPoint3dOriented *gridPosition = new CscPoint3dOriented(150, 0, 150, 0, 0, 0);
108 };
109 
110 #endif /* CSCSTATE_H_ */
CscState::getPivotsCopy
map< int, float > getPivotsCopy() const
Definition: CscState.cpp:137
CscState::setGridPosition
void setGridPosition(CscPoint3dOriented *gridPositionIn)
Definition: CscState.cpp:205
nlohmann::to_string
NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string to_string(const NLOHMANN_BASIC_JSON_TPL &j)
user-defined to_string function for JSON values
Definition: json.hpp:26470
CscState::getInputFromMemberName
float getInputFromMemberName(string memberName, CscInputType inputId)
Definition: CscState.cpp:104
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
CscState::getInputsCopy
vector< CscMemberInputStatus * > * getInputsCopy() const
Definition: CscState.cpp:43
CscEntityModel
Definition: CscEntityModel.h:54
CscState::getPivots
const map< int, float > & getPivots() const
Definition: CscState.cpp:454
CscState::getPropellersCopy
map< int, float > getPropellersCopy() const
Definition: CscState.cpp:159
CscState::getWheel
float getWheel(int wheelId) const
Definition: CscState.cpp:169
CscState::getInputsDistance
static float getInputsDistance(const map< CscInputType, float > &inputsIn, const map< CscInputType, float > &inputsTargetValuesMember)
Definition: CscState.cpp:440
CscInputType
CscInputType
Definition: CscMemberInputStatus.h:13
CscState::getPropellers
const map< int, float > & getPropellers() const
Definition: CscState.cpp:453
CscState::setPropellers
void setPropellers(map< int, float > propIn)
Definition: CscState.cpp:155
CscState::setInputs
void setInputs(vector< const CscMemberInputStatus * > *inputsIn)
Definition: CscState.cpp:51
CscState::setWheels
void setWheels(map< int, float > wheelsIn)
Definition: CscState.cpp:181
CscState::clone
virtual CscState * clone()
Definition: CscState.cpp:482
CscState::getGridPosition
CscPoint3dOriented * getGridPosition()
Definition: CscState.cpp:212
CscState::toString
string toString()
Definition: CscState.cpp:292
CscState::getTranslationValueByTranslationId
float getTranslationValueByTranslationId(int wheelId)
Definition: CscState.cpp:79
CscState::setPivot
void setPivot(int pivotId, float value)
Definition: CscState.cpp:125
CscState::bestPathUnitMovment
int bestPathUnitMovment
Definition: CscState.h:90
CscState::clearInputs
void clearInputs()
Definition: CscState.cpp:376
CscState::setPivots
void setPivots(map< int, float > pivotsIn)
Definition: CscState.cpp:133
CscState::getPivotIdAt
int getPivotIdAt(int index)
Definition: CscState.cpp:392
CscState::CscState
CscState(map< int, float > *pivotsValues=nullptr, map< int, float > *wheelsValues=nullptr, map< int, float > *propellersValues=nullptr, const optional< map< int, float >> &translationsValues={}, const vector< const CscMemberInputStatus * > *inputsValues=nullptr)
Definition: CscState.cpp:14
CscState::countWheels
int countWheels() const
Definition: CscState.cpp:165
CscState
Definition: CscState.h:24
CscState::getInputsFromMemberName
map< CscInputType, float > getInputsFromMemberName(string memberName)
Definition: CscState.cpp:115
CscState::toUserFriendlyString
string toUserFriendlyString(bool outputs=true, bool inputs=true) const
Definition: CscState.cpp:243
CscState::getPositionPivotFromPivotId
CscPoint3d * getPositionPivotFromPivotId(int pivotId, const CscEntityModel *entityModel)
Definition: CscState.cpp:458
jwt::alphabet::index
uint32_t index(const std::array< char, 64 > &alphabet, char symbol)
Definition: base.h:91
CscState::getWheelIdAt
int getWheelIdAt(int index)
Definition: CscState.cpp:404
CscCommon.h
Csc3dTypes.h
CscState::setTranslation
void setTranslation(int translationId, float value)
Definition: CscState.cpp:177
CscState::setPropeller
void setPropeller(int propId, float value)
Definition: CscState.cpp:151
CscState::removePivot
void removePivot(int pivotId)
Definition: CscState.cpp:129
CscState::getPivotValueByPivotId
float getPivotValueByPivotId(int pivotId) const
Definition: CscState.cpp:59
CscState::stateId
int stateId
Definition: CscState.h:26
CscState::countPivots
int countPivots() const
Definition: CscState.cpp:55
CscState::setTranslations
void setTranslations(map< int, float > TranslationsIn)
Definition: CscState.cpp:185
CscMemberInputStatus.h
CscState::setWheel
void setWheel(int wheelId, float value)
Definition: CscState.cpp:173
CscState::getWheelsCopy
map< int, float > getWheelsCopy() const
Definition: CscState.cpp:193
CscState::getObjectiveValue
float getObjectiveValue() const
Definition: CscState.cpp:220
CscState::getWheels
const map< int, float > & getWheels() const
Definition: CscState.cpp:455
CscState::getDuplicata
CscState * getDuplicata()
Definition: CscState.cpp:224
CscState::countPropellers
int countPropellers() const
Definition: CscState.cpp:143
CscState::getPropellerIdAt
int getPropellerIdAt(int index)
Definition: CscState.cpp:428
CscState::~CscState
virtual ~CscState()
Definition: CscState.cpp:380
CscEntityModel.h
CscState::getTranslationsCopy
map< int, float > getTranslationsCopy() const
Definition: CscState.cpp:199
conscience_core::axiomes::CscPoint3dOriented
Definition: Csc3dTypes.h:265
CscState::countInputs
size_t countInputs() const
Definition: CscState.h:66
CscState::getPropeller
float getPropeller(int propId) const
Definition: CscState.cpp:147
CscState::getWheelValueByWheelId
float getWheelValueByWheelId(int wheelId) const
Definition: CscState.cpp:69
CscState::countTranslations
int countTranslations() const
Definition: CscState.cpp:189
CscState::getTranslationIdAt
int getTranslationIdAt(int index)
Definition: CscState.cpp:416
CscState::getTranslations
const map< int, float > & getTranslations() const
Definition: CscState.cpp:456
CscState::getTranslation
float getTranslation(int translationId) const
Definition: CscState.cpp:99
CscState::getInputs
const vector< const CscMemberInputStatus * > & getInputs() const
Definition: CscState.h:63
CscState::toStringWithQuotes
string toStringWithQuotes()
Definition: CscState.cpp:339
CscState::setObjectiveValue
void setObjectiveValue(float value)
Definition: CscState.cpp:216
CscState::getPropellerValueByPropellerId
float getPropellerValueByPropellerId(int wheelId)
Definition: CscState.cpp:89