+ // Calculate whether or not the arrowheads are too crowded to put inside
+ // the extension lines. 9.0 is the length of the arrowhead.
+// double t = Vector::Parameter(position, endpoint, endpoint - (unit * 9.0 * size));
+// double t = Vector::Parameter(position, endpoint, position + (unit * 9.0 * size));
+ double t = Vector::Parameter(endpoint, position, position + (unit * 9.0 * size));
+//printf("Dimension::Draw(): t = %lf\n", t);
+
+// On the screen, it's acting like this is actually 58%...
+// This is correct, we want it to happen at > 50%
+ if (t > 0.58)
+ {
+ // Draw main dimension line + arrowheads
+ painter->DrawLine(p1, p2);
+ painter->DrawArrowhead(p1, p2, size);
+ painter->DrawArrowhead(p2, p1, size);
+ }
+ else
+ {
+ // Draw outside arrowheads
+ Point p7 = p1 - (unit * 9.0 * size);
+ Point p8 = p2 + (unit * 9.0 * size);
+ painter->DrawArrowhead(p1, p7, size);
+ painter->DrawArrowhead(p2, p8, size);
+ painter->DrawLine(p1, p1 - (unit * 14.0 * size));
+ painter->DrawLine(p2, p2 + (unit * 14.0 * size));
+ }
+