Files
comaps/geometry/clipping.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

28 lines
1.1 KiB
C++

#pragma once
#include "geometry/point2d.hpp"
#include "geometry/rect2d.hpp"
#include "geometry/spline.hpp"
#include <functional>
#include <vector>
namespace m2
{
using ClipTriangleByRectResultIt =
std::function<void(m2::PointD const &, m2::PointD const &, m2::PointD const &)>;
void ClipTriangleByRect(m2::RectD const & rect, m2::PointD const & p1, m2::PointD const & p2,
m2::PointD const & p3, ClipTriangleByRectResultIt const & resultIterator);
void ClipPathByRect(m2::RectD const & rect, std::vector<m2::PointD> && path,
std::function<void (m2::SharedSpline &&)> const & fn);
std::vector<m2::SharedSpline> ClipSplineByRect(m2::RectD const & rect,
m2::SharedSpline const & spline);
using GuidePointsForSmooth = std::vector<std::pair<m2::PointD, m2::PointD>>;
void ClipPathByRectBeforeSmooth(m2::RectD const & rect, std::vector<m2::PointD> const & path,
GuidePointsForSmooth & guidePoints,
std::vector<std::vector<m2::PointD>> & clippedPaths);
} // namespace m2