PointTraitsADJ.hpp
1 #ifndef DM_POINT_TRAITS_ADJ_HPP_INCLUDED
2 #define DM_POINT_TRAITS_ADJ_HPP_INCLUDED
3 
4 #ifdef _MSC_VER
5  #pragma once
6 #endif
7 
8 #include "DM/config.hpp"
9 #include "DM/IPoint.hpp"
10 #include "DM/InsertIteratorADJ.hpp"
11 
12 //ADJ_lib
13 #include "ADJ_defaultPointTraits.hpp"
14 
15 DM_NAMESPACE_BEGIN
16 
18  typedef PointHandle T; ///<Point type
19  typedef double FT; ///<float type
20 
21  T create() const { return IPoint::New(); }
22  T create(FT x, FT y) const { return IPoint::New(x,y); }
23 
24  T copy(const T& pt) const { return (IPoint *)(pt->clone()); }
25 
26  void reset(T& pt) const { pt = IPoint::New( FT(0), FT(0) ); }
27 
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(); }
32 
33  void set_x(T& pt, FT x) const { (*pt).x( x ); }
34  void set_y(T& pt, FT y) const { (*pt).y( y ); }
35 };
36 
38  typedef PointHandle T; ///<Point type
39  typedef double FT; ///<float type
40 
41  T create() const { return IPoint::New(); }
42  T create(FT x, FT y, FT z) const { return IPoint::New(x,y,z); }
43 
44  T copy(const T& pt) const { return (IPoint *)(pt->clone()); }
45 
46  void reset(T& pt) const { pt = IPoint::New( FT(0), FT(0), FT(0) ); }
47 
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(); }
54 
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 ); }
58 };
59 
60 typedef ADJ_defaultPointMath2D< PointAccessTraits2dADJ > PointTraits2dADJ;
61 typedef ADJ_defaultPointMath3D< PointAccessTraits3dADJ > PointTraits3dADJ;
62 
63 DM_NAMESPACE_END
64 
65 #endif //DM_POINT_TRAITS_ADJ_HPP_INCLUDED