X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdrawingview.cpp;h=8c581bfc1df8e904ccb41bd2b724b26b3c3ae7d5;hb=4a979ddae8aa6b3556f24e8b961f7787c4b40cbe;hp=fff56da8ef77bbd2e78a0f28a0278d82339fad4e;hpb=d54e5a64374e8b58570572683cac2238b23dd9cb;p=architektonas diff --git a/src/drawingview.cpp b/src/drawingview.cpp index fff56da..8c581bf 100644 --- a/src/drawingview.cpp +++ b/src/drawingview.cpp @@ -689,7 +689,7 @@ void DrawingView::ToolDraw(Painter * painter) { if (toolPoint[0] == toolPoint[1]) return; - + painter->DrawLine(toolPoint[0], toolPoint[1]); // Likely we need a tool container for this... (now we do!) #if 0 @@ -704,7 +704,6 @@ void DrawingView::ToolDraw(Painter * painter) #endif double absAngle = (Vector(toolPoint[1] - toolPoint[0]).Angle()) * RADIANS_TO_DEGREES; - QString text = QChar(0x2221) + QObject::tr(": %1"); informativeText = text.arg(absAngle); @@ -723,7 +722,9 @@ void DrawingView::ToolDraw(Painter * painter) if (toolPoint[0] == toolPoint[1]) return; - painter->DrawLine(toolPoint[0], toolPoint[1]); + Point mirrorPoint = toolPoint[0] + Vector(toolPoint[1], toolPoint[0]); +// painter->DrawLine(toolPoint[0], toolPoint[1]); + painter->DrawLine(mirrorPoint, toolPoint[1]); // Likely we need a tool container for this... (now we do!) #if 0 if (ctrlDown) @@ -738,6 +739,9 @@ void DrawingView::ToolDraw(Painter * painter) double absAngle = (Vector(toolPoint[1] - toolPoint[0]).Angle()) * RADIANS_TO_DEGREES; + if (absAngle > 180.0) + absAngle -= 180.0; + QString text = QChar(0x2221) + QObject::tr(": %1"); informativeText = text.arg(absAngle); @@ -1045,10 +1049,7 @@ void DrawingView::MirrorHandler(int mode, Point p) if (obj.type == OTArc) { -#if 0 - // This is WRONG for mirroring... - obj2->angle[0] = obj.angle[0] + angle; -#endif + // This is 2*mirror angle - obj angle - obj span obj2->angle[0] = (2.0 * angle) - obj.angle[0] - obj.angle[1]; if (obj2->angle[0] > PI_TIMES_2) @@ -1215,6 +1216,21 @@ void DrawingView::mouseMoveEvent(QMouseEvent * event) // Do object hit testing... bool needUpdate = HitTestObjects(point); + // Check for multi-hover... + if (numHovered > 1) + { + GetHovered(hover); + + double t, u; + int numIntersecting = Geometry::Intersects((Object *)hover[0], (Object *)hover[1], &t, &u); + + if (numIntersecting > 0) + { + QString text = tr("Intersection t=%1, u=%2"); + informativeText = text.arg(t).arg(u); + } + } + // Do tool handling, if any are active... if (Global::tool) {