Program Listing for File Validation.h

Return to documentation for file (include/lanelet2_validation/Validation.h)

#pragma once
#include <lanelet2_io/Projection.h>
#include <lanelet2_traffic_rules/TrafficRulesFactory.h>

#include "lanelet2_validation/Issue.h"

namespace lanelet {
namespace validation {

using Strings = std::vector<std::string>;

struct DetectedIssues {
  DetectedIssues() = default;
  DetectedIssues(std::string checkName, Issues issues) : checkName{std::move(checkName)}, issues{std::move(issues)} {}
  Issues errors() const;
  Issues warnings() const;
  std::string checkName;
  Issues issues;
};

struct ValidationConfig {
  std::string checksFilter;
  std::string location{Locations::Germany};
  Strings participants{Participants::Vehicle};
  GPSPoint origin;
};

struct IssueReport {
  Strings warnings;
  Strings errors;
};

IssueReport buildReport(std::vector<DetectedIssues> issues);

Strings availabeChecks(const std::string& filterString);

std::vector<DetectedIssues> validateMap(LaneletMap& map, const ValidationConfig& config);

std::vector<DetectedIssues> validateMap(const std::string& mapFilename, const ValidationConfig& config);
}  // namespace validation
}  // namespace lanelet