From ddeeadf57429d5c41147d18cb5eea62625800901 Mon Sep 17 00:00:00 2001 From: MaxED Date: Sun, 2 Sep 2012 23:37:17 +0000 Subject: [PATCH] Added linedef direction preview to Draw Geometry mode --- .../BuilderModes/ClassicModes/DrawGeometryMode.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs b/Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs index a4923f68..2e22f600 100644 --- a/Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs +++ b/Source/Plugins/BuilderModes/ClassicModes/DrawGeometryMode.cs @@ -165,6 +165,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // Render line renderer.RenderLine(lastp.pos, points[i].pos, LINE_THICKNESS, color, true); + RenderLinedefDirectionIndicator(lastp.pos, points[i].pos, color); //mxd lastp = points[i]; } @@ -174,6 +175,7 @@ namespace CodeImp.DoomBuilder.BuilderModes // Render line to cursor renderer.RenderLine(lastp.pos, curp.pos, LINE_THICKNESS, color, true); + RenderLinedefDirectionIndicator(lastp.pos, curp.pos, color); //mxd // Render vertices for(int i = 0; i < points.Count; i++) @@ -204,6 +206,14 @@ namespace CodeImp.DoomBuilder.BuilderModes // Done renderer.Present(); } + + //mxd + protected void RenderLinedefDirectionIndicator(Vector2D start, Vector2D end, PixelColor color) { + Vector2D delta = end - start; + Vector2D middlePoint = new Vector2D(start.x + delta.x / 2, start.y + delta.y / 2); + Vector2D scaledPerpendicular = delta.GetPerpendicular().GetNormal().GetScaled(18f / renderer.Scale); + renderer.RenderLine(middlePoint, new Vector2D(middlePoint.x - scaledPerpendicular.x, middlePoint.y - scaledPerpendicular.y), LINE_THICKNESS, color, true); + } // This returns the aligned and snapped draw position public static DrawnVertex GetCurrentPosition(Vector2D mousemappos, bool snaptonearest, bool snaptogrid, IRenderer2D renderer, List points)