Deduplicate foward/reverse geometries
Changes the internal representation of compressed geometries to be a single array shared between forward and reverse geometries that can be read in either direction. Includes a change on extractor::OriginalEdgeData to store via_geometry ids that indicate which direction to read the geometry for that edge based edge. Closes #2592
This commit is contained in:
committed by
Jake Pruitt
parent
73179641b1
commit
a75e16e26b
@@ -61,23 +61,39 @@ class MockDataFacade final : public engine::datafacade::BaseDataFacade
|
||||
}
|
||||
OSMNodeID GetOSMNodeIDOfNode(const unsigned /* id */) const override { return OSMNodeID{0}; }
|
||||
bool EdgeIsCompressed(const unsigned /* id */) const { return false; }
|
||||
unsigned GetGeometryIndexForEdgeID(const unsigned /* id */) const override
|
||||
GeometryID GetGeometryIndexForEdgeID(const unsigned /* id */) const override
|
||||
{
|
||||
return SPECIAL_NODEID;
|
||||
return GeometryID{SPECIAL_GEOMETRYID, false};
|
||||
}
|
||||
void GetUncompressedGeometry(const EdgeID /* id */,
|
||||
std::vector<NodeID> & /* result_nodes */) const override
|
||||
std::vector<NodeID> GetUncompressedForwardGeometry(const EdgeID /* id */) const override
|
||||
{
|
||||
return {};
|
||||
}
|
||||
void GetUncompressedWeights(const EdgeID /* id */,
|
||||
std::vector<EdgeWeight> &result_weights) const override
|
||||
std::vector<NodeID> GetUncompressedReverseGeometry(const EdgeID /* id */) const override
|
||||
{
|
||||
return {};
|
||||
}
|
||||
std::vector<EdgeWeight> GetUncompressedForwardWeights(const EdgeID /* id */) const override
|
||||
{
|
||||
std::vector<EdgeWeight> result_weights;
|
||||
result_weights.resize(1);
|
||||
result_weights[0] = 1;
|
||||
return result_weights;
|
||||
}
|
||||
void GetUncompressedDatasources(const EdgeID /*id*/,
|
||||
std::vector<uint8_t> & /*data_sources*/) const override
|
||||
std::vector<EdgeWeight> GetUncompressedReverseWeights(const EdgeID /* id */) const override
|
||||
{
|
||||
std::vector<EdgeWeight> result_weights;
|
||||
result_weights.resize(1);
|
||||
result_weights[0] = 1;
|
||||
return result_weights;
|
||||
}
|
||||
std::vector<uint8_t> GetUncompressedForwardDatasources(const EdgeID /*id*/) const override
|
||||
{
|
||||
return {};
|
||||
}
|
||||
std::vector<uint8_t> GetUncompressedReverseDatasources(const EdgeID /*id*/) const override
|
||||
{
|
||||
return {};
|
||||
}
|
||||
std::string GetDatasourceName(const uint8_t /*datasource_name_id*/) const override
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user