9 #ifndef CscMoveForwardInGroup_hpp
10 #define CscMoveForwardInGroup_hpp
12 #include "../../Simulator/CscEnvironmentSimulator.h"
23 class CscEntityReflexion;
35 bool hasAlreadySentSequenceStop =
false;
38 std::optional<float> angle;
39 std::optional<float> distance;
40 std::optional<float> height;
44 std::optional<float> distance = 0.0
f,
45 std::optional<float> height = 0.0
f);
47 float getAngle()
const;
48 float getDistance()
const;
49 float getHeight()
const;
54 const string serialNumber;
64 const string &getSerialNumber()
const;
70 void setPositionTarget(
CscPoint3d *positionTarget);
78 bool hasSimilarityWith(
const FollowState &other)
const;
93 void moveForwardInGroupLoopTick();
94 const string &getFollowTargetWorldId()
const;
96 void removeSlave(
const string &serialNumberSlaveToRemove);
98 vector<SlaveMoveParameters *> getSlaveMoveParameters();
99 vector<string> getSlaveSerialNumbers();
102 unique_ptr<CscLogger>
logger = CscLogger::getForCategory(
"CscMoveForwardInGroup");
106 string followTargetWorldId;
109 vector<SlaveMoveParameters *> slavesMoveParameters;
110 recursive_mutex slaveMutex;
114 bool updateMasterPosition();
115 void updateSlavesPositionsTarget();
120 bool isDetectionUpdated();