operator!=(const angle &rhs)const
{ return std::abs(dist(rhs).v)>epsilon; }
+ //! Absolute Angle Function
+ /*! This function will return the
+ absolute value of the angle. */
+ angle
+ abs()const
+ {
+ angle ret;
+ ret.v=std::abs(v);
+ return ret;
+ }
+
//! Angle Difference Function
/*! This function will return the
shortest physical distance between
return ret;
}
+ //! Zero Rotation (0 degrees)
static angle
zero()
{
return ret;
}
+ //! One Complete Rotation (360 degrees)
static angle
one()
{
angle ret;
- ret.v=PI;
+ ret.v=PI*2;
return ret;
}
+ //! One Half Rotation (180 degrees)
static angle
half()
{
angle ret;
- ret.v=PI*0.5;
+ ret.v=PI;
return ret;
}
- bool operator!()const { return v==0; }
+ bool operator!()const { return std::abs(mod().v) < epsilon; }
private:
rad(const angle &a):angle(a) { }
rad mod()const { return angle::mod(); }
rad dist(const angle &rhs)const { return angle::dist(rhs); }
+ value_type get()const { return v; }
#ifndef ETL_NO_DEPRECATED
- operator value_type()const ETL_DEPRECATED_FUNCTION;
+ // operator value_type()const ETL_DEPRECATED_FUNCTION;
#endif
- value_type get()const { return v; }
}; // END of class angle::radians
-inline angle::rad::operator angle::value_type()const { return get(); }
+// inline angle::rad::operator angle::value_type()const { return get(); }
// ========================================================================
/*! \class angle::deg _angle.h ETL/angle
deg dist(const angle &rhs)const { return angle::dist(rhs); }
value_type get()const { return v*360/(PI*2); }
#ifndef ETL_NO_DEPRECATED
- operator value_type()const ETL_DEPRECATED_FUNCTION;
+ // operator value_type()const ETL_DEPRECATED_FUNCTION;
#endif
}; // END of class angle::degrees
-inline angle::deg::operator angle::value_type()const { return get(); }
+// inline angle::deg::operator angle::value_type()const { return get(); }
// ========================================================================
/*! \class angle::rot _angle.h ETL/angle
rot dist(const angle &rhs)const { return angle::dist(rhs); }
value_type get()const { return v/(PI*2); }
#ifndef ETL_NO_DEPRECATED
- operator value_type()const ETL_DEPRECATED_FUNCTION;
+ // operator value_type()const ETL_DEPRECATED_FUNCTION;
#endif
}; // END of class angle::rotations
-inline angle::rot::operator angle::value_type()const { return get(); }
+// inline angle::rot::operator angle::value_type()const { return get(); }
// ========================================================================
/*! \class angle::sin _angle.h ETL/angle
sin dist(const angle &rhs)const { return angle::dist(rhs); }
value_type get()const { return static_cast<value_type>(std::sin(v)); }
#ifndef ETL_NO_DEPRECATED
- operator value_type()const ETL_DEPRECATED_FUNCTION;
+ // operator value_type()const ETL_DEPRECATED_FUNCTION;
#endif
}; // END of class angle::sin
-inline angle::sin::operator angle::value_type()const { return get(); }
+// inline angle::sin::operator angle::value_type()const { return get(); }
// ========================================================================
/*! \class angle::cos _angle.h ETL/angle
cos(const angle &a):angle(a) { }
cos mod()const { return angle::mod(); }
cos dist(const angle &rhs)const { return angle::dist(rhs); }
- operator value_type()const ETL_DEPRECATED_FUNCTION;
-#ifndef ETL_NO_DEPRECATED
value_type get()const { return (value_type)std::cos(v); }
+#ifndef ETL_NO_DEPRECATED
+ // operator value_type()const ETL_DEPRECATED_FUNCTION;
#endif
}; // END of class angle::cos
-inline angle::cos::operator angle::value_type()const { return get(); }
+// inline angle::cos::operator angle::value_type()const { return get(); }
// ========================================================================
/*! \class angle::tan _angle.h ETL/angle
tan(const angle &a):angle(a) { }
tan mod()const { return angle::mod(); }
tan dist(const angle &rhs)const { return angle::dist(rhs); }
+ value_type get()const { return (value_type)std::tan(v); }
#ifndef ETL_NO_DEPRECATED
- operator value_type()const ETL_DEPRECATED_FUNCTION;
+ // operator value_type()const ETL_DEPRECATED_FUNCTION;
#endif
- value_type get()const { return (value_type)std::tan(v); }
}; // END of class angle::tan
-inline angle::tan::operator angle::value_type()const { return get(); }
+// inline angle::tan::operator angle::value_type()const { return get(); }
_ETL_END_NAMESPACE