X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdimension.cpp;h=021f300ef7ccc613963151cb3070e01b1c0a069b;hb=631fbe38f52222a65f1c3bcefb11a616d6806dd6;hp=29eaf6965ca9d1a4dcc2046078eda44805ba2e62;hpb=8ab4e08bd78cb5b07f069e3e6c5bf76944cb14fa;p=architektonas diff --git a/src/dimension.cpp b/src/dimension.cpp index 29eaf69..021f300 100644 --- a/src/dimension.cpp +++ b/src/dimension.cpp @@ -22,8 +22,10 @@ Dimension::Dimension(Vector p1, Vector p2, DimensionType dt/*= DTLinear*/ ,Object * p/*= NULL*/): Object(p1, p), endpoint(p2), dragging(false), draggingHandle1(false), draggingHandle2(false), - length(p2.Magnitude()), dimensionType(dt), point1(NULL), point2(NULL) + length(p2.Magnitude()), dimensionType(dt), point1(NULL), point2(NULL), + size(0.25) { + // We set the size to 1/4 base unit. Could be anything. type = OTDimension; } @@ -31,7 +33,8 @@ Dimension::Dimension(Vector p1, Vector p2, DimensionType dt/*= DTLinear*/ ,Objec // This is bad, p1 & p2 could be NULL, causing much consternation... Dimension::Dimension(Connection p1, Connection p2, DimensionType dt/*= DTLinear*/ , Object * p/*= NULL*/): dragging(false), draggingHandle1(false), draggingHandle2(false), - length(0), dimensionType(dt), point1(p1), point2(p2) + length(0), dimensionType(dt), point1(p1), point2(p2), + size(0.25) { type = OTDimension; } @@ -63,6 +66,7 @@ Dimension::~Dimension() Vector orthogonal = Vector(cos(orthoAngle), sin(orthoAngle)); Vector unit = Vector(endpoint - position).Unit(); +#if 0 //NOTE: SCREEN_ZOOM is our kludge factor... We need to figure out a better // way of doing this... // Get our line parallel to our points @@ -76,21 +80,43 @@ Dimension::~Dimension() Point p4 = endpoint + (orthogonal * 16.0 * SCREEN_ZOOM); Point p5 = position + (orthogonal * 4.0 * SCREEN_ZOOM); Point p6 = endpoint + (orthogonal * 4.0 * SCREEN_ZOOM); +#else +/* +The numbers hardcoded into here, what are they? +I believe they are pixels. +*/ + + // Get our line parallel to our points + Point p1 = position + (orthogonal * 10.0 * size); + Point p2 = endpoint + (orthogonal * 10.0 * size); + + // Draw main dimension line + painter->DrawLine(p1, p2); + + 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 painter->DrawLine(p3, p5); painter->DrawLine(p4, p6); painter->SetBrush(QBrush(QColor(Qt::blue))); - painter->DrawArrowhead(p1, p2); - painter->DrawArrowhead(p2, p1); +// painter->DrawArrowhead(p1, p2); +// painter->DrawArrowhead(p2, p1); + painter->DrawArrowhead(p1, p2, size); + painter->DrawArrowhead(p2, p1, size); // Draw length of dimension line... - painter->SetFont(QFont("Arial", 10.0 * Painter::zoom * SCREEN_ZOOM)); +// painter->SetFont(QFont("Arial", 10.0 * Painter::zoom * SCREEN_ZOOM)); + painter->SetFont(QFont("Arial", 10.0 * Painter::zoom * size)); Vector v1((p1.x - p2.x) / 2.0, (p1.y - p2.y) / 2.0); Point ctr = p2 + v1; QString dimText = QString("%1\"").arg(Vector(endpoint - position).Magnitude()); - painter->DrawAngledText(ctr, angle, dimText); +// painter->DrawAngledText(ctr, angle, dimText); + painter->DrawAngledText(ctr, angle, dimText, size); }