mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-28 17:03:38 +00:00
Format all C++ and Java code via clang-format
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
This commit is contained in:
@@ -50,8 +50,7 @@ bool IsReversedIntervals(size_t fromDst, size_t toDst, size_t fromSrc, size_t to
|
||||
return (fromDst > toDst) != (fromSrc > toSrc);
|
||||
}
|
||||
|
||||
std::vector<m2::PointD> AppendPointsWithAnyDirection(std::vector<MarkedPoint> const & copyFrom,
|
||||
size_t from, size_t to)
|
||||
std::vector<m2::PointD> AppendPointsWithAnyDirection(std::vector<MarkedPoint> const & copyFrom, size_t from, size_t to)
|
||||
{
|
||||
std::vector<m2::PointD> result;
|
||||
if (from > to)
|
||||
@@ -63,16 +62,14 @@ std::vector<m2::PointD> AppendPointsWithAnyDirection(std::vector<MarkedPoint> co
|
||||
return result;
|
||||
}
|
||||
|
||||
double AbsAreaDiff(std::vector<m2::PointD> const & firstPolygon,
|
||||
std::vector<m2::PointD> const & secondPolygon)
|
||||
double AbsAreaDiff(std::vector<m2::PointD> const & firstPolygon, std::vector<m2::PointD> const & secondPolygon)
|
||||
{
|
||||
auto const firstArea = generator::AreaOnEarth(firstPolygon);
|
||||
auto const secondArea = generator::AreaOnEarth(secondPolygon);
|
||||
return std::abs(secondArea - firstArea);
|
||||
}
|
||||
|
||||
bool NeedReplace(std::vector<m2::PointD> const & curSubpolygon,
|
||||
std::vector<m2::PointD> const & anotherSubpolygon)
|
||||
bool NeedReplace(std::vector<m2::PointD> const & curSubpolygon, std::vector<m2::PointD> const & anotherSubpolygon)
|
||||
{
|
||||
auto const areaDiff = AbsAreaDiff(curSubpolygon, anotherSubpolygon);
|
||||
double constexpr kMaxAreaDiffMetersSquared = 20000.0;
|
||||
@@ -195,7 +192,7 @@ void BordersData::Init(std::string const & bordersDir)
|
||||
void BordersData::DumpPolyFiles(std::string const & targetDir)
|
||||
{
|
||||
size_t n = m_bordersPolygons.size();
|
||||
for (size_t i = 0; i < n; )
|
||||
for (size_t i = 0; i < n;)
|
||||
{
|
||||
// Russia_Moscow.poly1 -> Russia_Moscow.poly
|
||||
auto name = RemoveIndexFromMwmName(m_indexToPolyFileName.at(i));
|
||||
@@ -270,11 +267,9 @@ void BordersData::PrintDiff()
|
||||
CHECK_NOT_EQUAL(allNumberBeforeCount, 0, ("Empty input?"));
|
||||
std::cout << "Number of removed points: " << m_removedPointsCount << std::endl
|
||||
<< "Removed duplicate point: " << m_duplicatedPointsCount << std::endl
|
||||
<< "Total removed points: " << m_removedPointsCount + m_duplicatedPointsCount
|
||||
<< std::endl;
|
||||
<< "Total removed points: " << m_removedPointsCount + m_duplicatedPointsCount << std::endl;
|
||||
std::cout << "Points number before processing: " << allNumberBeforeCount << ", remove( "
|
||||
<< static_cast<double>(m_removedPointsCount + m_duplicatedPointsCount) /
|
||||
allNumberBeforeCount * 100.0
|
||||
<< static_cast<double>(m_removedPointsCount + m_duplicatedPointsCount) / allNumberBeforeCount * 100.0
|
||||
<< "% )" << std::endl;
|
||||
}
|
||||
|
||||
@@ -298,8 +293,8 @@ void BordersData::RemoveEmptySpaceBetweenBorders()
|
||||
size_t constexpr kMaxLookAhead = 5;
|
||||
for (size_t shift = 1; shift <= kMaxLookAhead; ++shift)
|
||||
{
|
||||
if (TryToReplace(curBorderId, curPointId /* curLeftPointId */,
|
||||
curPointId + shift /* curRightPointId */) == base::ControlFlow::Break)
|
||||
if (TryToReplace(curBorderId, curPointId /* curLeftPointId */, curPointId + shift /* curRightPointId */) ==
|
||||
base::ControlFlow::Break)
|
||||
{
|
||||
break;
|
||||
}
|
||||
@@ -310,8 +305,7 @@ void BordersData::RemoveEmptySpaceBetweenBorders()
|
||||
DoReplace();
|
||||
}
|
||||
|
||||
base::ControlFlow BordersData::TryToReplace(size_t curBorderId, size_t & curLeftPointId,
|
||||
size_t curRightPointId)
|
||||
base::ControlFlow BordersData::TryToReplace(size_t curBorderId, size_t & curLeftPointId, size_t curRightPointId)
|
||||
{
|
||||
auto & curPolygon = m_bordersPolygons[curBorderId];
|
||||
if (curRightPointId >= curPolygon.m_points.size())
|
||||
@@ -348,10 +342,9 @@ base::ControlFlow BordersData::TryToReplace(size_t curBorderId, size_t & curLeft
|
||||
}
|
||||
|
||||
auto const anotherSubpolygon =
|
||||
AppendPointsWithAnyDirection(anotherPolygon.m_points, anotherLeftPointId, anotherRightPointId);
|
||||
AppendPointsWithAnyDirection(anotherPolygon.m_points, anotherLeftPointId, anotherRightPointId);
|
||||
|
||||
auto const curSubpolygon =
|
||||
AppendPointsWithAnyDirection(curPolygon.m_points, curLeftPointId, curRightPointId);
|
||||
auto const curSubpolygon = AppendPointsWithAnyDirection(curPolygon.m_points, curLeftPointId, curRightPointId);
|
||||
|
||||
if (!NeedReplace(curSubpolygon, anotherSubpolygon))
|
||||
return base::ControlFlow::Break;
|
||||
@@ -361,26 +354,25 @@ base::ControlFlow BordersData::TryToReplace(size_t curBorderId, size_t & curLeft
|
||||
bool const curLenIsLess = curSubpolygon.size() < anotherSubpolygon.size();
|
||||
|
||||
size_t dstFrom = curLenIsLess ? anotherLeftPointId : curLeftPointId;
|
||||
size_t dstTo = curLenIsLess ? anotherRightPointId : curRightPointId;
|
||||
size_t dstTo = curLenIsLess ? anotherRightPointId : curRightPointId;
|
||||
|
||||
size_t srcFrom = curLenIsLess ? curLeftPointId : anotherLeftPointId;
|
||||
size_t srcTo = curLenIsLess ? curRightPointId : anotherRightPointId;
|
||||
size_t srcFrom = curLenIsLess ? curLeftPointId : anotherLeftPointId;
|
||||
size_t srcTo = curLenIsLess ? curRightPointId : anotherRightPointId;
|
||||
|
||||
size_t const borderIdWhereAreaWillBeChanged = curLenIsLess ? anotherBorderId : curBorderId;
|
||||
size_t const srcBorderId = curLenIsLess ? curBorderId : anotherBorderId;
|
||||
|
||||
bool const reversed = IsReversedIntervals(dstFrom, dstTo, srcFrom, srcTo);
|
||||
|
||||
m_additionalAreaMetersSqr[borderIdWhereAreaWillBeChanged] +=
|
||||
AbsAreaDiff(curSubpolygon, anotherSubpolygon);
|
||||
m_additionalAreaMetersSqr[borderIdWhereAreaWillBeChanged] += AbsAreaDiff(curSubpolygon, anotherSubpolygon);
|
||||
|
||||
SwapIfNeeded(dstFrom, dstTo);
|
||||
SwapIfNeeded(srcFrom, srcTo);
|
||||
|
||||
// Save info for |borderIdWhereAreaWillBeChanged| - where from it should gets info about
|
||||
// replacement.
|
||||
m_bordersPolygons[borderIdWhereAreaWillBeChanged].AddReplaceInfo(
|
||||
dstFrom, dstTo, srcFrom, srcTo, srcBorderId, reversed);
|
||||
m_bordersPolygons[borderIdWhereAreaWillBeChanged].AddReplaceInfo(dstFrom, dstTo, srcFrom, srcTo, srcBorderId,
|
||||
reversed);
|
||||
|
||||
// And say for |srcBorderId| that points in segment: [srcFrom, srcTo] are frozen and cannot
|
||||
// be used anywhere (because we use them to replace points in segment: [dstFrom, dstTo]).
|
||||
|
||||
@@ -30,12 +30,10 @@ private:
|
||||
/// points and leaves only unique.
|
||||
size_t RemoveDuplicatePoints();
|
||||
|
||||
template <class PointsT> static size_t RemoveDuplicatingPointImpl(PointsT & points)
|
||||
template <class PointsT>
|
||||
static size_t RemoveDuplicatingPointImpl(PointsT & points)
|
||||
{
|
||||
auto const equalFn = [](auto const & p1, auto const & p2)
|
||||
{
|
||||
return p1.EqualDxDy(p2, kEqualityEpsilon);
|
||||
};
|
||||
auto const equalFn = [](auto const & p1, auto const & p2) { return p1.EqualDxDy(p2, kEqualityEpsilon); };
|
||||
|
||||
auto const last = std::unique(points.begin(), points.end(), equalFn);
|
||||
size_t count = std::distance(last, points.end());
|
||||
@@ -53,8 +51,7 @@ private:
|
||||
/// \brief Checks whether we can replace points from segment: [curLeftPointId, curRightPointId]
|
||||
/// of |curBorderId| to points from another border in order to get rid of empty space
|
||||
/// between curBorder and anotherBorder.
|
||||
base::ControlFlow TryToReplace(size_t curBorderId, size_t & curLeftPointId,
|
||||
size_t curRightPointId);
|
||||
base::ControlFlow TryToReplace(size_t curBorderId, size_t & curLeftPointId, size_t curRightPointId);
|
||||
|
||||
bool HasLinkAt(size_t curBorderId, size_t pointId);
|
||||
|
||||
|
||||
@@ -57,8 +57,7 @@ bool Polygon::IsFrozen(size_t a, size_t b) const
|
||||
return m_replaced.Intersects(a, b);
|
||||
}
|
||||
|
||||
void Polygon::AddReplaceInfo(size_t dstFrom, size_t dstTo,
|
||||
size_t srcFrom, size_t srcTo, size_t srcBorderId,
|
||||
void Polygon::AddReplaceInfo(size_t dstFrom, size_t dstTo, size_t srcFrom, size_t srcTo, size_t srcBorderId,
|
||||
bool reversed)
|
||||
{
|
||||
CHECK_LESS_OR_EQUAL(dstFrom, dstTo, ());
|
||||
@@ -73,10 +72,8 @@ void Polygon::AddReplaceInfo(size_t dstFrom, size_t dstTo,
|
||||
std::set<ReplaceData>::const_iterator Polygon::FindReplaceData(size_t index)
|
||||
{
|
||||
for (auto it = m_replaceData.cbegin(); it != m_replaceData.cend(); ++it)
|
||||
{
|
||||
if (it->m_dstFrom <= index && index <= it->m_dstTo)
|
||||
return it;
|
||||
}
|
||||
|
||||
return m_replaceData.cend();
|
||||
}
|
||||
|
||||
@@ -31,14 +31,15 @@ struct Link
|
||||
/// \note Using next semantic here: [replaceFrom, replaceTo], [replaceFromSrc, replaceToSrc].
|
||||
struct ReplaceData
|
||||
{
|
||||
ReplaceData(size_t replaceFrom, size_t replaceTo, size_t replaceFromSrc, size_t replaceToSrc,
|
||||
size_t borderIdSrc, bool reversed)
|
||||
ReplaceData(size_t replaceFrom, size_t replaceTo, size_t replaceFromSrc, size_t replaceToSrc, size_t borderIdSrc,
|
||||
bool reversed)
|
||||
: m_dstFrom(replaceFrom)
|
||||
, m_dstTo(replaceTo)
|
||||
, m_srcReplaceFrom(replaceFromSrc)
|
||||
, m_srcReplaceTo(replaceToSrc)
|
||||
, m_srcBorderId(borderIdSrc)
|
||||
, m_reversed(reversed) {}
|
||||
, m_reversed(reversed)
|
||||
{}
|
||||
|
||||
bool operator<(ReplaceData const & rhs) const;
|
||||
|
||||
@@ -62,10 +63,7 @@ struct MarkedPoint
|
||||
|
||||
std::optional<Link> GetLink(size_t curBorderId) const;
|
||||
|
||||
bool EqualDxDy(MarkedPoint const & p, double eps) const
|
||||
{
|
||||
return m_point.EqualDxDy(p.m_point, eps);
|
||||
}
|
||||
bool EqualDxDy(MarkedPoint const & p, double eps) const { return m_point.EqualDxDy(p.m_point, eps); }
|
||||
|
||||
m2::PointD m_point;
|
||||
std::set<Link> m_links;
|
||||
@@ -78,10 +76,7 @@ struct Polygon
|
||||
{
|
||||
m_points.assign(points.begin(), points.end());
|
||||
}
|
||||
Polygon(m2::RectD const & rect, std::vector<MarkedPoint> && points)
|
||||
: m_rect(rect), m_points(std::move(points))
|
||||
{
|
||||
}
|
||||
Polygon(m2::RectD const & rect, std::vector<MarkedPoint> && points) : m_rect(rect), m_points(std::move(points)) {}
|
||||
|
||||
Polygon(Polygon &&) = default;
|
||||
Polygon & operator=(Polygon &&) noexcept = default;
|
||||
@@ -93,9 +88,8 @@ struct Polygon
|
||||
// @}
|
||||
|
||||
// [replaceFrom, replaceTo], [replaceFromSrc, replaceToSrc]
|
||||
void AddReplaceInfo(size_t replaceFrom, size_t replaceTo,
|
||||
size_t replaceFromSrc, size_t replaceToSrc, size_t borderIdSrc,
|
||||
bool reversed);
|
||||
void AddReplaceInfo(size_t replaceFrom, size_t replaceTo, size_t replaceFromSrc, size_t replaceToSrc,
|
||||
size_t borderIdSrc, bool reversed);
|
||||
|
||||
std::set<ReplaceData>::const_iterator FindReplaceData(size_t index);
|
||||
|
||||
|
||||
@@ -39,12 +39,10 @@ void CheckByMask(Polygon const & polygons, vector<bool> markedMask)
|
||||
{
|
||||
CHECK_EQUAL(polygons.m_points.size(), markedMask.size(), ());
|
||||
for (size_t i = 0; i < polygons.m_points.size(); ++i)
|
||||
{
|
||||
if (markedMask[i])
|
||||
TestMarked(polygons, i);
|
||||
else
|
||||
TestNotMarked(polygons, i);
|
||||
}
|
||||
}
|
||||
|
||||
UNIT_TEST(PolyBordersPostprocessor_MarkPoints_1)
|
||||
@@ -55,21 +53,13 @@ UNIT_TEST(PolyBordersPostprocessor_MarkPoints_1)
|
||||
m2::PointD a(-1.0, -1.0);
|
||||
m2::PointD b(-1.0, 1.0);
|
||||
|
||||
vector<vector<m2::PointD>> polygons1 = {
|
||||
{a, b, {1.0, 1.0}, {1.0, -1.0}}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons1 = {{a, b, {1.0, 1.0}, {1.0, -1.0}}};
|
||||
|
||||
vector<vector<bool>> markedMask1 = {
|
||||
{true, true, false, false}
|
||||
};
|
||||
vector<vector<bool>> markedMask1 = {{true, true, false, false}};
|
||||
|
||||
vector<vector<m2::PointD>> polygons2 = {
|
||||
{a, b, {2.0, 1.0}, {5.0, -1.0}}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons2 = {{a, b, {2.0, 1.0}, {5.0, -1.0}}};
|
||||
|
||||
vector<vector<bool>> markedMask2 = {
|
||||
{true, true, false, false}
|
||||
};
|
||||
vector<vector<bool>> markedMask2 = {{true, true, false, false}};
|
||||
|
||||
vector<shared_ptr<ScopedFile>> files;
|
||||
files.emplace_back(CreatePolyBorderFileByPolygon(kTestDir, "First", polygons1));
|
||||
@@ -90,21 +80,13 @@ UNIT_TEST(PolyBordersPostprocessor_MarkPoints_2)
|
||||
ScopedDir const scopedDir(kTestDir);
|
||||
string const & bordersDir = scopedDir.GetFullPath();
|
||||
|
||||
vector<vector<m2::PointD>> polygons1 = {
|
||||
{{-1.0, -1.0}, {-1.0, 1.0}, {1.0, 1.0}, {1.0, -1.0}}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons1 = {{{-1.0, -1.0}, {-1.0, 1.0}, {1.0, 1.0}, {1.0, -1.0}}};
|
||||
|
||||
vector<vector<bool>> markedMask1 = {
|
||||
{false, false, false, false}
|
||||
};
|
||||
vector<vector<bool>> markedMask1 = {{false, false, false, false}};
|
||||
|
||||
vector<vector<m2::PointD>> polygons2 = {
|
||||
{{-12.0, -1.0}, {-10.0, 1.0}, {2.0, 1.0}, {5.0, -1.0}}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons2 = {{{-12.0, -1.0}, {-10.0, 1.0}, {2.0, 1.0}, {5.0, -1.0}}};
|
||||
|
||||
vector<vector<bool>> markedMask2 = {
|
||||
{false, false, false, false}
|
||||
};
|
||||
vector<vector<bool>> markedMask2 = {{false, false, false, false}};
|
||||
|
||||
vector<shared_ptr<ScopedFile>> files;
|
||||
files.emplace_back(CreatePolyBorderFileByPolygon(kTestDir, "First", polygons1));
|
||||
@@ -132,37 +114,21 @@ UNIT_TEST(PolyBordersPostprocessor_MarkPoints_3)
|
||||
m2::PointD e(-4.0, 2.0);
|
||||
m2::PointD f(-1.0, 4.0);
|
||||
|
||||
vector<vector<m2::PointD>> polygons1 = {
|
||||
{a, b, c, {1.0, -3.0}, d}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons1 = {{a, b, c, {1.0, -3.0}, d}};
|
||||
|
||||
vector<vector<bool>> markedMask1 = {
|
||||
{true, true, true, false, true}
|
||||
};
|
||||
vector<vector<bool>> markedMask1 = {{true, true, true, false, true}};
|
||||
|
||||
vector<vector<m2::PointD>> polygons2 = {
|
||||
{b, f, {2.0, 5.0}, {6.0, 3.0}, c}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons2 = {{b, f, {2.0, 5.0}, {6.0, 3.0}, c}};
|
||||
|
||||
vector<vector<bool>> markedMask2 = {
|
||||
{true, true, false, false, true}
|
||||
};
|
||||
vector<vector<bool>> markedMask2 = {{true, true, false, false, true}};
|
||||
|
||||
vector<vector<m2::PointD>> polygons3 = {
|
||||
{a, b, f, {-3.0, 4.0}, e}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons3 = {{a, b, f, {-3.0, 4.0}, e}};
|
||||
|
||||
vector<vector<bool>> markedMask3 = {
|
||||
{true, true, true, false, true}
|
||||
};
|
||||
vector<vector<bool>> markedMask3 = {{true, true, true, false, true}};
|
||||
|
||||
vector<vector<m2::PointD>> polygons4 = {
|
||||
{a, e, {-3.0, -1.0}, d}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons4 = {{a, e, {-3.0, -1.0}, d}};
|
||||
|
||||
vector<vector<bool>> markedMask4 = {
|
||||
{true, true, false, true}
|
||||
};
|
||||
vector<vector<bool>> markedMask4 = {{true, true, false, true}};
|
||||
|
||||
vector<shared_ptr<ScopedFile>> files;
|
||||
files.emplace_back(CreatePolyBorderFileByPolygon(kTestDir, "First", polygons1));
|
||||
@@ -194,23 +160,14 @@ UNIT_TEST(PolyBordersPostprocessor_MarkPoints_4)
|
||||
m2::PointD a(6.0, 2.0);
|
||||
m2::PointD b(6.0, 4.0);
|
||||
|
||||
vector<vector<m2::PointD>> polygons1 = {
|
||||
{{-2.0, -2.0}, {-2.0, 2.0}, {2.0, 2.0}, {2.0, -2.0}},
|
||||
{{4.0, 2.0}, {4.0, 4.0}, a, b}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons1 = {{{-2.0, -2.0}, {-2.0, 2.0}, {2.0, 2.0}, {2.0, -2.0}},
|
||||
{{4.0, 2.0}, {4.0, 4.0}, a, b}};
|
||||
|
||||
vector<vector<bool>> markedMask1 = {
|
||||
{false, false, false, false},
|
||||
{false, false, true, true}
|
||||
};
|
||||
vector<vector<bool>> markedMask1 = {{false, false, false, false}, {false, false, true, true}};
|
||||
|
||||
vector<vector<m2::PointD>> polygons2 = {
|
||||
{a, b, {8.0, 6.0}, {8.0, 0.0}}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons2 = {{a, b, {8.0, 6.0}, {8.0, 0.0}}};
|
||||
|
||||
vector<vector<bool>> markedMask2 = {
|
||||
{true, true, false, false}
|
||||
};
|
||||
vector<vector<bool>> markedMask2 = {{true, true, false, false}};
|
||||
|
||||
vector<shared_ptr<ScopedFile>> files;
|
||||
files.emplace_back(CreatePolyBorderFileByPolygon(kTestDir, "First", polygons1));
|
||||
@@ -219,10 +176,12 @@ UNIT_TEST(PolyBordersPostprocessor_MarkPoints_4)
|
||||
BordersData bordersData;
|
||||
bordersData.Init(bordersDir);
|
||||
|
||||
auto const & firstBordersPolygon1 = bordersData.GetBordersPolygonByName("First" + BordersData::kBorderExtension + "1");
|
||||
auto const & firstBordersPolygon1 =
|
||||
bordersData.GetBordersPolygonByName("First" + BordersData::kBorderExtension + "1");
|
||||
CheckByMask(firstBordersPolygon1, markedMask1[0]);
|
||||
|
||||
auto const & secondBordersPolygon1 = bordersData.GetBordersPolygonByName("First" + BordersData::kBorderExtension + "2");
|
||||
auto const & secondBordersPolygon1 =
|
||||
bordersData.GetBordersPolygonByName("First" + BordersData::kBorderExtension + "2");
|
||||
CheckByMask(secondBordersPolygon1, markedMask1[1]);
|
||||
|
||||
auto const & bordersPolygon2 = bordersData.GetBordersPolygonByName("Second" + BordersData::kBorderExtension + "1");
|
||||
|
||||
@@ -40,8 +40,7 @@ bool ConsistsOf(Polygon const & polygon, vector<m2::PointD> const & points)
|
||||
for (size_t i = 0; i < polygon.m_points.size(); ++i)
|
||||
{
|
||||
static double constexpr kEps = 1e-5;
|
||||
if (AlmostEqualAbs(point, polygon.m_points[i].m_point, kEps) &&
|
||||
used.count(i) == 0)
|
||||
if (AlmostEqualAbs(point, polygon.m_points[i].m_point, kEps) && used.count(i) == 0)
|
||||
{
|
||||
used.emplace(i);
|
||||
break;
|
||||
@@ -63,13 +62,9 @@ UNIT_TEST(PolyBordersPostprocessor_RemoveEmptySpaces_1)
|
||||
m2::PointD d(3.0, 0.0);
|
||||
m2::PointD e(4.0, 0.0);
|
||||
|
||||
vector<vector<m2::PointD>> polygons1 = {
|
||||
{a, b, c, d, e}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons1 = {{a, b, c, d, e}};
|
||||
|
||||
vector<vector<m2::PointD>> polygons2 = {
|
||||
{a, b, c, d, e}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons2 = {{a, b, c, d, e}};
|
||||
|
||||
vector<shared_ptr<ScopedFile>> files;
|
||||
files.emplace_back(CreatePolyBorderFileByPolygon(kTestDir, "First", polygons1));
|
||||
@@ -99,13 +94,9 @@ UNIT_TEST(PolyBordersPostprocessor_RemoveEmptySpaces_2)
|
||||
m2::PointD e(4.0, 0.0);
|
||||
|
||||
// Point |c| is absent from polygons2, algorithm should remove |c| from polygon1.
|
||||
vector<vector<m2::PointD>> polygons1 = {
|
||||
{a, b, c, d, e}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons1 = {{a, b, c, d, e}};
|
||||
|
||||
vector<vector<m2::PointD>> polygons2 = {
|
||||
{a, b, d, e}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons2 = {{a, b, d, e}};
|
||||
|
||||
vector<shared_ptr<ScopedFile>> files;
|
||||
files.emplace_back(CreatePolyBorderFileByPolygon(kTestDir, "First", polygons1));
|
||||
@@ -138,13 +129,9 @@ UNIT_TEST(PolyBordersPostprocessor_RemoveEmptySpaces_3)
|
||||
m2::PointD f(5.0, 0.0);
|
||||
|
||||
// Point |c| and |d| is absent from polygons2, algorithm should remove |c| from polygon1.
|
||||
vector<vector<m2::PointD>> polygons1 = {
|
||||
{a, b, c, d, e, f}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons1 = {{a, b, c, d, e, f}};
|
||||
|
||||
vector<vector<m2::PointD>> polygons2 = {
|
||||
{a, b, e, f}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons2 = {{a, b, e, f}};
|
||||
|
||||
vector<shared_ptr<ScopedFile>> files;
|
||||
files.emplace_back(CreatePolyBorderFileByPolygon(kTestDir, "First", polygons1));
|
||||
@@ -172,13 +159,9 @@ UNIT_TEST(PolyBordersPostprocessor_RemoveEmptySpaces_4)
|
||||
m2::PointD d(4.0, 0.0);
|
||||
m2::PointD e(5.0, 0.0);
|
||||
|
||||
vector<vector<m2::PointD>> polygons1 = {
|
||||
{a, b, c, d, e}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons1 = {{a, b, c, d, e}};
|
||||
|
||||
vector<vector<m2::PointD>> polygons2 = {
|
||||
{a, b, d, e}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons2 = {{a, b, d, e}};
|
||||
|
||||
vector<shared_ptr<ScopedFile>> files;
|
||||
files.emplace_back(CreatePolyBorderFileByPolygon(kTestDir, "First", polygons1));
|
||||
@@ -210,13 +193,9 @@ UNIT_TEST(PolyBordersPostprocessor_RemoveEmptySpaces_5)
|
||||
m2::PointD c2(c1 + kSmallPointShift);
|
||||
m2::PointD d2(d1 + kSmallPointShift);
|
||||
|
||||
vector<vector<m2::PointD>> polygons1 = {
|
||||
{a, c1, d1, e1, b}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons1 = {{a, c1, d1, e1, b}};
|
||||
|
||||
vector<vector<m2::PointD>> polygons2 = {
|
||||
{a, c2, d2, b}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons2 = {{a, c2, d2, b}};
|
||||
|
||||
vector<shared_ptr<ScopedFile>> files;
|
||||
files.emplace_back(CreatePolyBorderFileByPolygon(kTestDir, "First", polygons1));
|
||||
@@ -244,13 +223,9 @@ UNIT_TEST(PolyBordersPostprocessor_RemoveEmptySpaces_6)
|
||||
m2::PointD d(4.0, 0.0);
|
||||
m2::PointD e(5.0, 0.0);
|
||||
|
||||
vector<vector<m2::PointD>> polygons1 = {
|
||||
{a, b, c, d, d, d, e, e, e}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons1 = {{a, b, c, d, d, d, e, e, e}};
|
||||
|
||||
vector<vector<m2::PointD>> polygons2 = {
|
||||
{a, d, d, d, e}
|
||||
};
|
||||
vector<vector<m2::PointD>> polygons2 = {{a, d, d, d, e}};
|
||||
|
||||
vector<shared_ptr<ScopedFile>> files;
|
||||
files.emplace_back(CreatePolyBorderFileByPolygon(kTestDir, "First", polygons1));
|
||||
|
||||
@@ -15,8 +15,7 @@ using namespace platform::tests_support;
|
||||
|
||||
namespace
|
||||
{
|
||||
std::vector<m2::RegionD> ConvertFromPointsVector(
|
||||
std::vector<std::vector<m2::PointD>> const & polygons)
|
||||
std::vector<m2::RegionD> ConvertFromPointsVector(std::vector<std::vector<m2::PointD>> const & polygons)
|
||||
{
|
||||
std::vector<m2::RegionD> res;
|
||||
res.reserve(polygons.size());
|
||||
@@ -29,9 +28,8 @@ std::vector<m2::RegionD> ConvertFromPointsVector(
|
||||
|
||||
namespace poly_borders
|
||||
{
|
||||
std::shared_ptr<ScopedFile> CreatePolyBorderFileByPolygon(
|
||||
std::string const & relativeDirPath, std::string const & name,
|
||||
std::vector<std::vector<m2::PointD>> const & polygons)
|
||||
std::shared_ptr<ScopedFile> CreatePolyBorderFileByPolygon(std::string const & relativeDirPath, std::string const & name,
|
||||
std::vector<std::vector<m2::PointD>> const & polygons)
|
||||
{
|
||||
std::string path = base::JoinPath(relativeDirPath, name + BordersData::kBorderExtension);
|
||||
|
||||
|
||||
@@ -10,8 +10,7 @@
|
||||
|
||||
namespace poly_borders
|
||||
{
|
||||
std::shared_ptr<platform::tests_support::ScopedFile>
|
||||
CreatePolyBorderFileByPolygon(std::string const & relativeDirPath,
|
||||
std::string const & name,
|
||||
std::vector<std::vector<m2::PointD>> const & polygons);
|
||||
std::shared_ptr<platform::tests_support::ScopedFile> CreatePolyBorderFileByPolygon(
|
||||
std::string const & relativeDirPath, std::string const & name,
|
||||
std::vector<std::vector<m2::PointD>> const & polygons);
|
||||
} // namespace poly_borders
|
||||
|
||||
@@ -19,14 +19,15 @@ using namespace poly_borders;
|
||||
int main(int argc, char ** argv)
|
||||
{
|
||||
gflags::ParseCommandLineFlags(&argc, &argv, true);
|
||||
gflags::SetUsageMessage("\n\n\tThe tool is used to process *.poly borders files. We use such files\n"
|
||||
"\tto cut the planet into mwms in generator. The problem is that we have\n"
|
||||
"\tempty spaces between neighbouring borders. This tool creates new borders\n"
|
||||
"\tbased on input data by removing points from borders in such a way that the\n"
|
||||
"\tchanged area of each border will not be too large.\n"
|
||||
"\tArguments:\n"
|
||||
"\t\t--borders_path=/path/to/directory/with/borders\n"
|
||||
"\t\t--output_path=/path/to/directory/where/new/borders/will/be/placed\n");
|
||||
gflags::SetUsageMessage(
|
||||
"\n\n\tThe tool is used to process *.poly borders files. We use such files\n"
|
||||
"\tto cut the planet into mwms in generator. The problem is that we have\n"
|
||||
"\tempty spaces between neighbouring borders. This tool creates new borders\n"
|
||||
"\tbased on input data by removing points from borders in such a way that the\n"
|
||||
"\tchanged area of each border will not be too large.\n"
|
||||
"\tArguments:\n"
|
||||
"\t\t--borders_path=/path/to/directory/with/borders\n"
|
||||
"\t\t--output_path=/path/to/directory/where/new/borders/will/be/placed\n");
|
||||
|
||||
if (FLAGS_borders_path.empty() || FLAGS_output_path.empty())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user