+ Point p1 = linePt1 + (ortho * 10.0 * size);
+ Point p2 = linePt2 + (ortho * 10.0 * size);
+ Point p3 = linePt1 + (ortho * 16.0 * size);
+ Point p4 = linePt2 + (ortho * 16.0 * size);
+ Point p5 = position + (ortho * 4.0 * size);
+ Point p6 = endpoint + (ortho * 4.0 * size);
+#endif
+/*
+The numbers hardcoded into here, what are they?
+I believe they are pixels.
+*/
+#if 0
+ // Get our line parallel to our points
+ Point p1 = position + (orthogonal * 10.0 * size);
+ Point p2 = endpoint + (orthogonal * 10.0 * size);
+
+ Point p3 = position + (orthogonal * 16.0 * size);
+ Point p4 = endpoint + (orthogonal * 16.0 * size);
+ Point p5 = position + (orthogonal * 4.0 * size);
+ Point p6 = endpoint + (orthogonal * 4.0 * size);
+#endif
+ // Draw extension lines (if certain type)
+ painter->DrawLine(p3, p5);
+ painter->DrawLine(p4, p6);
+
+ // 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 = Geometry::ParameterOfLineAndPoint(position, endpoint, endpoint - (unit * 9.0 * size));
+// double t = Geometry::ParameterOfLineAndPoint(pos, endp, endp - (unit * 9.0 * size));
+ double t = Geometry::ParameterOfLineAndPoint(linePt1, linePt2, linePt2 - (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));
+ }