49 #define M_PI 3.14159265359
57 template <
class T,
typename Real>
58 inline bool is_zero(
const T& _a, Real _eps)
59 {
return fabs(_a) < _eps; }
61 template <
class T1,
class T2,
typename Real>
62 inline bool is_eq(
const T1& a,
const T2& b, Real _eps)
65 template <
class T1,
class T2,
typename Real>
66 inline bool is_gt(
const T1& a,
const T2& b, Real _eps)
67 {
return (a > b) && !is_eq(a,b,_eps); }
69 template <
class T1,
class T2,
typename Real>
70 inline bool is_ge(
const T1& a,
const T2& b, Real _eps)
71 {
return (a > b) || is_eq(a,b,_eps); }
73 template <
class T1,
class T2,
typename Real>
74 inline bool is_lt(
const T1& a,
const T2& b, Real _eps)
75 {
return (a < b) && !is_eq(a,b,_eps); }
77 template <
class T1,
class T2,
typename Real>
78 inline bool is_le(
const T1& a,
const T2& b, Real _eps)
79 {
return (a < b) || is_eq(a,b,_eps); }
83 const float flt_eps__ = (float)1e-05;
84 const double dbl_eps__ = 1e-09;
86 inline float eps__(
float)
89 inline double eps__(
double)
94 {
return is_zero(a, eps__(a)); }
96 template <
class T1,
class T2>
97 inline bool is_eq(
const T1& a,
const T2& b)
100 template <
class T1,
class T2>
101 inline bool is_gt(
const T1& a,
const T2& b)
102 {
return (a > b) && !is_eq(a,b); }
104 template <
class T1,
class T2>
105 inline bool is_ge(
const T1& a,
const T2& b)
106 {
return (a > b) || is_eq(a,b); }
108 template <
class T1,
class T2>
109 inline bool is_lt(
const T1& a,
const T2& b)
110 {
return (a < b) && !is_eq(a,b); }
112 template <
class T1,
class T2>
113 inline bool is_le(
const T1& a,
const T2& b)
114 {
return (a < b) || is_eq(a,b); }
140 return (T) _sin_angle >= 0 ? acos(_cos_angle) : -acos(_cos_angle);
144 inline T positive_angle(T _angle)
145 {
return _angle < 0 ? (2*M_PI + _angle) : _angle; }
148 inline T positive_angle(T _cos_angle, T _sin_angle)
149 {
return positive_angle(
angle(_cos_angle, _sin_angle)); }
152 inline T deg_to_rad(
const T& _angle)
153 {
return M_PI*(_angle/180); }
156 inline T rad_to_deg(
const T& _angle)
157 {
return 180*(_angle/M_PI); }
159 inline double log_(
double _value)
160 {
return log(_value); }
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition: MeshItems.hh:56
bool is_zero(const T &_a, Real _eps)
comparison operators with user-selected precision control
Definition: MathDefs.hh:58
T sane_aarg(T _aarg)
Trigonometry/angles - related.
Definition: MathDefs.hh:119
T angle(T _cos_angle, T _sin_angle)
returns the angle determined by its cos and the sign of its sin result is positive if the angle is in...
Definition: MathDefs.hh:137