All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TransportPathfindResult.h
1 #pragma once
2 
3 #include "Transport.h"
4 #include "TransportDirectedEdge.h"
5 #include "VectorMath.h"
6 
7 #include <vector>
8 
9 namespace Eegeo
10 {
11  namespace Transport
12  {
14  {
16 
18  int resultId,
19  bool isPathFound,
20  const std::vector<TransportDirectedEdgeId>& pathDirectedEdgeIds,
21  double firstEdgeParam,
22  double lastEdgeParam,
23  double distanceMeters,
24  const std::vector<Eegeo::dv3>& pathPoints,
25  const std::vector<double>& pathPointParams
26  );
27 
28  int GetResultId() const { return m_resultId; }
29  bool IsPathFound() const { return m_isPathFound; }
30  const std::vector<TransportDirectedEdgeId>& GetPathDirectedEdgeIds() const { return m_pathDirectedEdgeIds; }
31  double GetFirstEdgeParam() const { return m_firstEdgeParam; }
32  double GetLastEdgeParam() const { return m_lastEdgeParam; }
33  double GetDistanceMeters() const { return m_distanceMeters; }
34  const std::vector<Eegeo::dv3> GetPathPoints() const { return m_pathPoints; }
35  const std::vector<double> GetPathPointParams() const { return m_pathPointParams; }
36 
37  private:
38  int m_resultId;
39  bool m_isPathFound;
40  std::vector<TransportDirectedEdgeId> m_pathDirectedEdgeIds;
41  double m_firstEdgeParam;
42  double m_lastEdgeParam;
43  double m_distanceMeters;
44  std::vector<Eegeo::dv3> m_pathPoints;
45  std::vector<double> m_pathPointParams;
46  };
47 
48  std::vector<Eegeo::dv3> BuildClippedWayPoints(const Eegeo::Transport::TransportWay& transportWay, const double s, const double t);
49  }
50 }