Boost.geometry实现Polygon概念

时间:2013-10-28 11:46:19

标签: c++ boost boost-geometry

我正在尝试(并且失败)在Boost.Geometry中实现Polygon概念。我已经成功地获得了Point and Ring概念:

typedef QVector<QVector2D> Contour;
BOOST_GEOMETRY_REGISTER_POINT_2D_GET_SET(QVector2D, float,
    boost::geometry::cs::cartesian, x, y, setX, setY)
BOOST_GEOMETRY_REGISTER_RING(Contour)

现在我尝试将Polygon类定义为:

class Polygon
{
public:
    typedef QVector2D point_type;
    typedef Contour ring_type;
    typedef QVector<Contour> inner_container_type;

    Contour const& outer() const { return _outer; }
    QVector<Contour> const& inners() const { return _inners; }

    Contour& outer() { return _outer; }
    QVector<Contour>& inners() { return _inners; }
private:
    Contour _outer;    
    QVector<Contour> _inners;
};

我知道我需要在这个类中添加polygon标签,但我找不到任何明确的例子,而且我得到的错误表明存在更多问题。如果有人能提供实施概念的实际例子的链接,我想我可以从那里找出我的问题。

1 个答案:

答案 0 :(得分:3)