Lines Matching refs:Angle
67 class Angle
68 : boost::additive< Angle
69 , boost::additive< Angle, Coord
70 , boost::equality_comparable< Angle
71 , boost::equality_comparable< Angle, Coord
75 Angle() : _angle(0) {}
76 Angle(Coord v) : _angle(v) { _normalize(); } // this can be called implicitly
77 explicit Angle(Point const &p) : _angle(atan2(p)) { _normalize(); }
78 Angle(Point const &a, Point const &b) : _angle(angle_between(a, b)) { _normalize(); }
80 Angle &operator+=(Angle o) {
85 Angle &operator-=(Angle o) {
90 Angle &operator+=(Coord a) {
91 *this += Angle(a);
94 Angle &operator-=(Coord a) {
95 *this -= Angle(a);
98 bool operator==(Angle o) const {
102 return _angle == Angle(c)._angle;
131 static Angle from_radians(Coord d) {
132 Angle a(d);
136 static Angle from_degrees(Coord d) {
137 Angle a(d * (M_PI / 180.0));
141 * @see Angle::degreesClock() */
142 static Angle from_degrees_clock(Coord d) {
148 Angle a;
163 inline Angle distance(Angle const &a, Angle const &b) {
168 return Angle(d > M_PI ? 2*M_PI - d : d);
199 AngleInterval(Angle s, Angle e, bool cw = false)
215 * @param inner Angle contained in the interval
217 AngleInterval(Angle s, Angle inner, Angle e)
229 Angle initialAngle() const { return _start_angle; }
231 Angle finalAngle() const { return _end_angle; }
244 * @param a Angle to set
247 void setInitial(Angle a, bool prefer_full = false) {
253 * @param a Angle to set
256 void setFinal(Angle a, bool prefer_full = false) {
266 void setAngles(Angle s, Angle e, bool prefer_full = false) {
288 Angle angleAt(Coord t) const {
290 Angle ret = _start_angle.radians0() + span * (_sweep ? t : -t);
293 Angle operator()(Coord t) const { return angleAt(t); }
299 Coord timeAtAngle(Angle a) const {
301 Angle ta = _sweep ? a - _start_angle : _start_angle - a;
307 Angle midout = _start_angle - outex / 2;
308 Angle acmp = a - midout, scmp = _start_angle - midout;
315 Angle midout = _start_angle + outex / 2;
316 Angle acmp = a - midout, scmp = _start_angle - midout;
326 bool contains(Angle a) const {
369 static AngleInterval create_full(Angle start, bool sweep = true) {
378 Angle _start_angle;
379 Angle _end_angle;
385 * @relates Angle */
388 * @relates Angle */
394 template <> class iterator_traits<Geom::Angle> {};