projects
/
synfig.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Operators == and != were returning that 90 degrees != (90+360) degrees, due to floati...
[synfig.git]
/
ETL
/
trunk
/
ETL
/
_angle.h
diff --git
a/ETL/trunk/ETL/_angle.h
b/ETL/trunk/ETL/_angle.h
index
34bc9f5
..
20f8261
100644
(file)
--- a/
ETL/trunk/ETL/_angle.h
+++ b/
ETL/trunk/ETL/_angle.h
@@
-164,14
+164,14
@@
public:
on the unit circle. */
bool
operator==(const angle &rhs)const
on the unit circle. */
bool
operator==(const angle &rhs)const
- { return
dist(rhs).v==(value_type)0.0
; }
+ { return
std::abs(dist(rhs).v)<epsilon
; }
/*! Returns false if the angles
are refer to the same point
on the unit circle. */
bool
operator!=(const angle &rhs)const
/*! Returns false if the angles
are refer to the same point
on the unit circle. */
bool
operator!=(const angle &rhs)const
- { return
dist(rhs).v!=(value_type)0.0
; }
+ { return
std::abs(dist(rhs).v)>epsilon
; }
//! Angle Difference Function
/*! This function will return the
//! Angle Difference Function
/*! This function will return the
@@
-232,6
+232,8
@@
private:
static value_type rot_floor(value_type x)
{ return static_cast<value_type>(std::floor(x/(PI*2))*PI*2); }
static value_type rot_floor(value_type x)
{ return static_cast<value_type>(std::floor(x/(PI*2))*PI*2); }
+ static const value_type epsilon = 1.0e-6;
+
public:
/*
** Conversion Classes
public:
/*
** Conversion Classes