本文整理汇总了C++中Polygon_2::has_on_bounded_side方法的典型用法代码示例。如果您正苦于以下问题:C++ Polygon_2::has_on_bounded_side方法的具体用法?C++ Polygon_2::has_on_bounded_side怎么用?C++ Polygon_2::has_on_bounded_side使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Polygon_2
的用法示例。
在下文中一共展示了Polygon_2::has_on_bounded_side方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: boundaries_intersect
bool boundaries_intersect(const Polygon_2& P, const Polygon_2& Q, bool proper)
{
std::list<Segment_2> segments0, segments1;
segments0.insert(segments0.end(), P.edges_begin(), P.edges_end());
segments1.insert(segments1.end(), Q.edges_begin(), Q.edges_end());
bool intersects = has_intersection(segments0.begin(), segments0.end(),
segments1.begin(), segments1.end(),
true, true);
if (!intersects || !proper)
return intersects;
if (has_intersection(segments0.begin(), segments0.end(),
segments1.begin(), segments1.end(),
false, false))
return true;
typedef Polygon_2::Vertex_const_iterator Iter;
for (Iter it = P.vertices_begin(); it != P.vertices_end(); ++it) {
if (Q.has_on_bounded_side(*it))
return true;
}
for (Iter it = Q.vertices_begin(); it != Q.vertices_end(); ++it) {
if (P.has_on_bounded_side(*it))
return true;
}
return false;
}
示例2: can_cut
bool can_cut(const Polygon_2& polygon, Polygon_2::Vertex_circulator p, Polygon_2::Vertex_circulator c, Polygon_2::Vertex_circulator n,
const boost::unordered_map<Point_3, boost::unordered_set<Segment_3_undirected> >& point2edges)
{
Segment_2 seg(*p, *n);
Point_2 mid((p->x()+n->x())/2.0, (p->y()+n->y())/2.0);
return (CGAL::left_turn(*p, *c, *n) &&
is_legal(*p, *c, *n, point2edges) &&
!intersects_boundary(polygon, seg, true, false) &&
polygon.has_on_bounded_side(mid));
}
示例3: inside
//-----------------------------------------------------------------------------
bool Polygon::inside(dolfin::Point p) const
{
typedef CGAL::Cartesian<double> K;
typedef CGAL::Point_2<K> Point_2;
typedef CGAL::Polygon_2<K> Polygon_2;
Polygon_2 polygon;
for (const dolfin::Point& vertex : _vertices)
polygon.push_back(Point_2(vertex.x(), vertex.y()));
return polygon.has_on_bounded_side(Point_2(p.x(), p.y()));
}