+ else if (state == SECOND_POINT)
+ {
+ p2 = point;
+ Vector r1(p2, p1);
+ radius = Vector::Magnitude(p1, p2);
+ startAngle = r1.Angle();
+ }
+ else if (state == THIRD_POINT)
+ {
+ p3 = point;
+ Vector r2(p3, p1);
+ span = r2.Angle() - startAngle;
+
+ if (span < 0)
+ span += 2.0 * PI;
+ }