42 #ifndef OR_TOOLS_ROUTING_SOLOMON_PARSER_H_
43 #define OR_TOOLS_ROUTING_SOLOMON_PARSER_H_
72 bool LoadFile(
const std::string& file_name);
75 bool LoadFile(
const std::string& file_name,
const std::string& archive_name);
78 const std::string&
name()
const {
return name_; }
86 const std::vector<Coordinates2<int64_t>>&
coordinates()
const {
92 const std::vector<int64_t>&
demands()
const {
return demands_; }
94 const std::vector<SimpleTimeWindow<int64_t>>&
time_windows()
const {
98 const std::vector<int64_t>&
service_times()
const {
return service_times_; }
103 const double xd = from_coords.
x - to_coords.
x;
104 const double yd = from_coords.
y - to_coords.
y;
105 return sqrt(xd * xd + yd * yd);
109 return service_times_[from] +
GetDistance(from, to);
113 enum Section { UNKNOWN, NAME, VEHICLE, CUSTOMER };
117 bool ParseFile(
const std::string& file_name);
120 const std::map<std::string, Section> sections_;
130 std::vector<Coordinates2<int64_t>> coordinates_;
132 std::vector<int64_t> demands_;
133 std::vector<SimpleTimeWindow<int64_t>> time_windows_;
134 std::vector<int64_t> service_times_;
const std::vector< int64_t > & demands() const
const std::vector< Coordinates2< int64_t > > & coordinates() const
const SolomonParser & operator=(const SolomonParser &)=delete
bool LoadFile(const std::string &file_name)
const std::vector< int64_t > & service_times() const
int NumberOfNodes() const
const std::vector< SimpleTimeWindow< int64_t > > & time_windows() const
double GetDistance(int from, int to) const
int NumberOfVehicles() const
SolomonParser(const SolomonParser &)=delete
const std::string & name() const
double GetTravelTime(int from, int to) const
Collection of objects used to extend the Constraint Solver library.