13 Kasım 2017 Pazartesi

polygon point_data Sınıfı

Giriş
Bu sınıf sadece integral tipler ile çalışıyor. Açıklaması şöyle
The coordinate data type is a template parameter of all data types and algorithms provided by the library, and is expected to be integralFloating point coordinate data types are not supported by the algorithms implemented in the library due to the fact that the (sic) achieving floating point robustness implies a different set of algorithms and generally platform specific assumptions about floating point representations.
Bir başka açıklama şöyle.
In general a data type should define std::numeric_limits and be integer-like. Floating point coordinate types are not supported by all the algorithms and generally not suitable for use with the library at present 
Dolayısıyla bir çok kod bu sınıf yerine geometry kütüphanesini kullanıyor. Geometry kütüphanesindeki point tipler floating point olabiliyor.
using PointType = boost::geometry::model::d2::point_xy <double>;
Bu sınıf rectangle_data ile aynı isim alanındadır.
typedef boost::polygon::rectangle_data<int> LayoutRectangleType;
Tanımlama
Şöyle yaparız.
typedef boost::polygon::point_data<long long int> PointData;
Şöyle yaparız.
namespace bp = boost::polygon;
using Point = bp::point_data<int>;

Hiç yorum yok:

Yorum Gönder