1 #ifndef DM_POINT_TRAITS_ADJ_HPP_INCLUDED
2 #define DM_POINT_TRAITS_ADJ_HPP_INCLUDED
8 #include "DM/config.hpp"
9 #include "DM/IPoint.hpp"
10 #include "DM/InsertIteratorADJ.hpp"
13 #include "ADJ_defaultPointTraits.hpp"
21 T create()
const {
return IPoint::New(); }
22 T create(FT x, FT y)
const {
return IPoint::New(x,y); }
24 T copy(
const T& pt)
const {
return (IPoint *)(pt->clone()); }
26 void reset(T& pt)
const { pt = IPoint::New( FT(0), FT(0) ); }
28 FT x(
const T& pt)
const {
return (FT)(*pt).x(); }
29 FT y(
const T& pt)
const {
return (FT)(*pt).y(); }
30 FT x(
const T* pt)
const {
return (FT)(*pt)->x(); }
31 FT y(
const T* pt)
const {
return (FT)(*pt)->y(); }
33 void set_x(T& pt, FT x)
const { (*pt).x( x ); }
34 void set_y(T& pt, FT y)
const { (*pt).y( y ); }
41 T create()
const {
return IPoint::New(); }
42 T create(FT x, FT y, FT z)
const {
return IPoint::New(x,y,z); }
44 T copy(
const T& pt)
const {
return (IPoint *)(pt->clone()); }
46 void reset(T& pt)
const { pt = IPoint::New( FT(0), FT(0), FT(0) ); }
48 FT x(
const T& pt)
const {
return (FT)(*pt).x(); }
49 FT y(
const T& pt)
const {
return (FT)(*pt).y(); }
50 FT z(
const T& pt)
const {
return (FT)(*pt).z(); }
51 FT x(
const T* pt)
const {
return (FT)(*pt)->x(); }
52 FT y(
const T* pt)
const {
return (FT)(*pt)->y(); }
53 FT z(
const T* pt)
const {
return (FT)(*pt)->z(); }
55 void set_x(T& pt, FT x)
const { (*pt).x( x ); }
56 void set_y(T& pt, FT y)
const { (*pt).y( y ); }
57 void set_z(T& pt, FT z)
const { (*pt).z( z ); }
60 typedef ADJ_defaultPointMath2D< PointAccessTraits2dADJ > PointTraits2dADJ;
61 typedef ADJ_defaultPointMath3D< PointAccessTraits3dADJ > PointTraits3dADJ;
65 #endif //DM_POINT_TRAITS_ADJ_HPP_INCLUDED