Conscience Core
CommandPathOptimization.h
Go to the documentation of this file.
1 #ifndef CommandPathOptimization_h
2 #define CommandPathOptimization_h
3 
4 #include "CommandCommons.h"
5 #include "Util/CscCartography.h"
6 
7 using namespace conscience_utils::Cartography;
8 
9 /*
10  The command receive a list of path to trace. The command compute the best order to trace and return the list of path ordered.
11  */
13 // Structure pour le résultat de l'optimisation des chemins
19 
27  const vector<vector<const CscPoint3d*>> &newPathList,
28  const vector<int> &orderCorrespondence);
29 
31 
32  vector<vector<const CscPoint3d*>> newPathList;
33  vector<int> orderCorrespondence;
34 };
35 
36 COMMAND_RESULT_JSON_SERIALIZER(PathOptimizationResult, newPathList, orderCorrespondence)
37 
38 
43 
44 public:
45  inline static const CommandTypeId COMMAND_ID = "PATH_OPTIMIZATION";
46 
48  const CscPoint3d *initialPosition,
49  const vector<vector<const CscPoint3d*>> &pathList);
50 
51  ~CommandPathOptimization() override;
52 
53 protected:
54  const CscCommandExecutionResultObject<PathOptimizationResult> *doExecute(CscEnvironmentSimulator &environmentSimulator) override;
55  ptr<CscEntityReflexion> getEntityReflexion() const override;
56 
57 private:
58  const CscPoint3d *initialPosition;
59  vector<vector<const CscPoint3d*>> pathList;
60  double getInterPathDistanceFromPathList(const vector<vector<const CscPoint3d*>> &pathing);
61  vector<vector<const CscPoint3d*>> exploreByNearestNeighbor(vector<vector<const CscPoint3d*>> currentPathing, double bestDistance, vector<vector<const CscPoint3d*>> remainPath, vector<int> &pathOrder, vector<int> availableIndices);
62 };
63 
64 COMMAND_REGISTER(CommandPathOptimization, const CscPoint3d *, const vector<vector<const CscPoint3d*>> &)
65 COMMAND_TYPE_BUILDER(PathOptimization, CommandPathOptimization, CscPoint3d*, vector<vector<const CscPoint3d*>>)
66 
67 
68 }
69 
70 #endif
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
CSC_DLL_IMPORTEXPORT
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:31
conscience_core::bridging::commands::PathOptimizationResult
Definition: CommandPathOptimization.h:14
conscience_core::bridging::commands::CommandTypeId
string CommandTypeId
Definition: Command.h:29
conscience_core::bridging::commands
Definition: cartographyCommands.cpp:4
conscience_utils::Cartography
Definition: CscCartography.cpp:24
COMMAND_RESULT_JSON_SERIALIZER
#define COMMAND_RESULT_JSON_SERIALIZER(TClass,...)
Definition: CommandExecutionResult.h:10
conscience_core::bridging::commands::CscCommand
Definition: Command.h:40
COMMAND_REGISTER
#define COMMAND_REGISTER(COMMAND_REGISTER_className,...)
Definition: CscCommandAutoParse.h:467
CscCartography.h
COMMAND_TYPE_BUILDER
#define COMMAND_TYPE_BUILDER(PREFIX, COMMAND_REGISTER_className,...)
Definition: CscCommandAutoParse.h:505
CscEnvironmentSimulator
Definition: CscEnvironmentSimulator.h:35
CommandCommons.h
conscience_core::bridging::commands::result::CscCommandExecutionResultObject
Definition: CommandExecutionResult.h:93
conscience_core::bridging::commands::PathOptimizationResult::newPathList
vector< vector< const CscPoint3d * > > newPathList
Definition: CommandPathOptimization.h:32
conscience_core::bridging::commands::PathOptimizationResult::orderCorrespondence
vector< int > orderCorrespondence
Definition: CommandPathOptimization.h:33
conscience_core::bridging::commands::CommandPathOptimization
Definition: CommandPathOptimization.h:42
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29