Line data Source code
1 : import 'dart:math';
2 :
3 : class Angle implements Comparable<Angle> {
4 : /*
5 : * The value of this Angle object in degrees.
6 : */
7 : final double _angle;
8 :
9 : ///degrees to radians
10 : static const double degree_to_rad = PI / 180.0;
11 :
12 : ///radians to degrees
13 : static const double rad_to_degree = 180.0 / PI;
14 :
15 1 : Angle.fromDegrees({double value : 0.0}): _angle = value;
16 2 : Angle.fromRadians({double value: 0.0}): _angle = value * rad_to_degree;
17 :
18 2 : double get inDegrees => _returnValue(_angle);
19 3 : double get inRadians => _returnValue(_angle * degree_to_rad);
20 :
21 2 : double _returnValue(num value) => double.parse(value.toStringAsFixed(6));
22 :
23 : /**
24 : * Compares this Angle to [other], returning zero if the values are equal.
25 : *
26 : * Returns a negative integer if this `Angle` is shorter than
27 : * [other], or a positive integer if it is longer.
28 : *
29 : * A negative `Angle` is always considered shorter than a positive one.
30 : *
31 : */
32 3 : int compareTo(Angle other) => _angle.compareTo(other._angle);
33 : }
|