X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdimension.cpp;h=01d7ec3d9d1e601f6312b8172b977ba92539bc3e;hb=31dd33b097661175a86b6799df525972055099fb;hp=7c4488d05bacbf27c4825b21d28a132a116846c0;hpb=51de783e1c8d149c9dd9bd0999f2ad25dbe6edf2;p=architektonas diff --git a/src/dimension.cpp b/src/dimension.cpp index 7c4488d..01d7ec3 100644 --- a/src/dimension.cpp +++ b/src/dimension.cpp @@ -73,33 +73,33 @@ all objects move as a unified whole. double angle = v.Angle(); Vector orthogonal = Vector::Normal(position, endpoint); Vector unit = v.Unit(); + linePt1 = position, linePt2 = endpoint; // Horizontally aligned display #if 1 - Vector pos = position, endp = endpoint, ortho; - double y1, y2; + Vector /*pos = position, endp = endpoint,*/ ortho; + double y1; if ((angle < PI_OVER_2) || (angle > PI3_OVER_2)) { - y1 = (pos.y > endp.y ? pos.y : endp.y); - y2 = (pos.y > endp.y ? endp.y : pos.y); + y1 = (position.y > endpoint.y ? position.y : endpoint.y); ortho = Vector(0, 1.0); angle = 0; } else { - y1 = (pos.y > endp.y ? endp.y : pos.y); - y2 = (pos.y > endp.y ? pos.y : endp.y); + y1 = (position.y > endpoint.y ? endpoint.y : position.y); ortho = Vector(0, -1.0); angle = PI; } - pos.y = endp.y = y1; - unit = Vector(pos, endp).Unit(); - Point p1 = pos + (ortho * 10.0 * size); - Point p2 = endp + (ortho * 10.0 * size); - Point p3 = pos + (ortho * 16.0 * size); - Point p4 = endp + (ortho * 16.0 * size); +// pos.y = endp.y = y1; + linePt1.y = linePt2.y = y1; + unit = Vector(linePt1, linePt2).Unit(); + 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 @@ -124,7 +124,8 @@ I believe they are pixels. // 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(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%... @@ -326,8 +327,13 @@ about keeping track of old states... { Vector orthogonal = Vector::Normal(position, endpoint); // Get our line parallel to our points +#if 0 Point p1 = position + (orthogonal * 10.0 * size); Point p2 = endpoint + (orthogonal * 10.0 * size); +#else + Point p1 = linePt1 + (orthogonal * 10.0 * size); + Point p2 = linePt2 + (orthogonal * 10.0 * size); +#endif Point p3(p1, point); hitPoint1 = hitPoint2 = hitLine = hitFlipSwitch = false;