std::list
2D ポイントがあり、1 つのポイントがp
ベクトルで指定されたポリゴン内にあるかどうかをテストしたいと考えています。これをテストboost::geometry
する機能があることはすでにわかっています。within
残念ながら、私はそれを間違った方法で使用しているようです:
void someFunction(...) {
namespace bpl = boost::polygon;
typedef bpl::polygon_data<double> Polygon;
typedef bpl::polygon_traits<Polygon>::point_type Point;
Polygon polygon;
std::vector<Point> points;
for (std::list<MyPointType>::const_iterator it = myPolygonPoints.begin(); it != myPolygonPoints.end(); ++it) {
points.push_back(Point(it->GetX(),it->GetY()));
}
polygon.set(points.begin(),points.end());
// ...
if (!boost::geometry::within(Point(someX,someY),polygon)) {
doSomething();
}
//...
}
の呼び出しで型が一致しないことから始まり、さまざまなコンパイル エラーが発生しますwithin
。では、ポリゴンを作成して使用する正しい方法は何within
ですか?
ご挨拶