2013-10-28 64 views
2

我想(和失敗)在Boost.Geometry中實現多邊形概念。我已經成功地得到了一個點和環的概念工作:Boost.geometry實現Polygon概念

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) 

現在我試圖定義一個多邊形類爲:

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; 
}; 

我知道我需要多邊形標記添加到這個類,但我找不到任何明確的例子,我得到的錯誤提示了更多的問題。如果任何人都可以提供一個實現這個概念的實例的鏈接,我想我可以從那裏弄清楚我的問題。

回答