The class Min_ellipse_2_adapterH2<PT,DA> interfaces the 2D optimisation algorithm for smallest enclosing ellipses with the point class PT. The data accessor DA [KW97] is used to access the hx-, hy- and hw-coordinate of PT, i.e. PT is supposed to have a homogeneous representation of its coordinates.
#include <CGAL/Min_ellipse_2_adapterH2.h>
| |
Data accessor for homogeneous coordinates.
| |
| |
Point type.
| |
| |
Ellipse type.
|
| |
|
Min_ellipse_2 , Min_ellipse_2_traits_2 , Min_ellipse_2_adapterC2 , Requirements of Traits Class Adapters to 2D Homogeneous Points.
The following example illustrates the use of the traits class adapters with your own point class. For the sake of simplicity, we expect a point class with homogeneous int coordinates and access functions hx(), hy(), and hw(). Based on this we show how to implement and use data accessors.
Note: In this release correct results are only guaranteed if exact arithmetic is used, so this example (using integer arithmetic with possible overflows) is only intended to illustrate the techniques.
#include <CGAL/Min_ellipse_2_adapterH2.h> #include <CGAL/Min_ellipse_2.h> using namespace CGAL; // your own point class (homogeneous) class PtH { // ... public: PtH( int hx, int hy, int hw); int hx( ) const; int hy( ) const; int hw( ) const; // ... }; // the data accessor for PtH class PtH_DA { public: typedef int RT; void get( const PtH& p, int& hx, int& hy, int& hw) const { hx = p.hx(); hy = p.hy(); hw.phw(); } int get_x( const PtH& p) const { return( p.hx()); } int get_y( const PtH& p) const { return( p.hy()); } int get_w( const PtH& p) const { return( p.hw()); } void set( PtH& p, int hx, int hy, int hw) const { p = PtH( hx, hy, hw); } }; // some typedefs typedef Min_ellipse_2_adapterH2< PtH, PtH_DA > AdapterH; typedef Min_ellipse_2< AdapterH > Min_ellipse; // do something with Min_ellipse Min_ellipse me( /*...*/ );