Files
comaps/generator/composite_id.hpp
Konstantin Pastbin e3e4a1985a Organic Maps sources as of 02.04.2025 (fad26bbf22ac3da75e01e62aa01e5c8e11861005)
To expand with full Organic Maps and Maps.ME commits history run:
  git remote add om-historic [om-historic.git repo url]
  git fetch --tags om-historic
  git replace squashed-history historic-commits
2025-05-08 21:10:51 +07:00

43 lines
1019 B
C++

#pragma once
#include "base/geo_object_id.hpp"
#include "base/math.hpp"
#include <string>
namespace generator
{
// This struct represents a composite Id.
// This will be useful if we want to distinguish between polygons in a multipolygon.
struct CompositeId
{
CompositeId() = default;
explicit CompositeId(std::string const & str);
explicit CompositeId(base::GeoObjectId mainId, base::GeoObjectId additionalId);
explicit CompositeId(base::GeoObjectId mainId);
bool operator<(CompositeId const & other) const;
bool operator==(CompositeId const & other) const;
bool operator!=(CompositeId const & other) const;
std::string ToString() const;
base::GeoObjectId m_mainId;
base::GeoObjectId m_additionalId;
};
std::string DebugPrint(CompositeId const & id);
} // namespace generator
namespace std
{
template <>
struct hash<generator::CompositeId>
{
size_t operator()(generator::CompositeId const & id) const
{
return base::Hash(id.m_mainId, id.m_additionalId);
}
};
} // namespace std