diff --git a/dotscape b/dotscape index 736f1b0..3334a5e 100755 Binary files a/dotscape and b/dotscape differ diff --git a/fcore/click-points.sml b/fcore/click-points.sml index 0a92bfb..ed711c7 100644 --- a/fcore/click-points.sml +++ b/fcore/click-points.sml @@ -1,44 +1,12 @@ structure ClickPoints = struct - fun helpMakeOne (start, finish, numPoints, point) = - let - val difference = finish - start - val increment = Real32.fromInt difference / Real32.fromInt numPoints - val start = Real32.fromInt start - in - (Real32.fromInt point * increment) + start - end - - fun makeOne (windowWidth, windowHeight, numPoints, point) = - if windowWidth > windowHeight then - let - val difference = windowWidth - windowHeight - val half = difference div 2 - val widthStart = half - val widthFinish = windowWidth - half - in - helpMakeOne (widthStart, widthFinish, numPoints, point) - end - else if windowHeight > windowWidth then - let - val difference = windowHeight - windowWidth - val half = difference div 2 - val heightStart = half - val heightFinish = windowHeight - half - in - helpMakeOne (heightStart, heightFinish, numPoints, point) - end - else - helpMakeOne (0, windowWidth, numPoints, point) - fun generate (start, finish, numPoints) = let val difference = finish - start val increment = Real32.fromInt difference / Real32.fromInt numPoints - val start = Real32.fromInt start in Vector.tabulate (numPoints + 1, fn idx => - (Real32.fromInt idx * increment) + start) + (Real32.fromInt idx * increment)) end fun getClickPos (clickPoints, mousePos, idx) = diff --git a/fcore/graph-lines.sml b/fcore/graph-lines.sml index 68eb7f1..812788f 100644 --- a/fcore/graph-lines.sml +++ b/fcore/graph-lines.sml @@ -5,35 +5,31 @@ end structure GraphLines :> GRAPH_LINES = struct - fun toNdc (cur, half) = (cur - half) / half - fun helpGenGraphLinesX (pos, xClickPoints, yClickPoints, acc, windowWidth, windowHeight) = if pos = Vector.length xClickPoints then Vector.concat acc else let - val halfWidth = windowHeight div 2 - val halfWidth = Real32.fromInt halfWidth - val halfHeight = windowHeight div 2 - val halfHeight = Real32.fromInt halfHeight + val halfWidth = Real32.fromInt (windowWidth div 2) + val halfHeight = Real32.fromInt (windowHeight div 2) val curX = Vector.sub (xClickPoints, pos) - val curYNdc = toNdc (curX, halfWidth) + val curXNdc = (curX - halfWidth) / halfWidth val minY = Vector.sub (xClickPoints, 0) - val minY = toNdc (minY, halfWidth) + val minY = (~(minY - halfHeight)) / halfHeight val maxY = Vector.sub (xClickPoints, Vector.length xClickPoints - 1) - val maxY = toNdc (maxY, halfWidth) + val maxY = (~(maxY - halfHeight)) /halfHeight val acc = - #[ curYNdc - 0.001, minY - , curYNdc + 0.001, minY - , curYNdc + 0.001, maxY + #[ curXNdc - 0.001, minY + , curXNdc + 0.001, minY + , curXNdc + 0.001, maxY - , curYNdc + 0.001, maxY - , curYNdc - 0.001, maxY - , curYNdc - 0.001, minY + , curXNdc + 0.001, maxY + , curXNdc - 0.001, maxY + , curXNdc - 0.001, minY ] :: acc in helpGenGraphLinesX @@ -52,12 +48,14 @@ struct val halfHeight = Real32.fromInt halfHeight val curY = Vector.sub (yClickPoints, pos) - val curYNdc = toNdc (curY, halfHeight) + val curYNdc =(~(curY - halfHeight)) / halfHeight val minX = Vector.sub (xClickPoints, 0) - val minX = toNdc (minX, halfWidth) + val minX = (minX - halfWidth) / halfWidth val maxX = Vector.sub (xClickPoints, Vector.length xClickPoints - 1) - val maxX = toNdc (maxX, halfWidth) + + val _ = print ("maxX = " ^ Real32.toString maxX ^ "\n") + val maxX = (maxX - halfWidth) / halfWidth val acc = #[ minX, curYNdc - 0.001 diff --git a/imperative-shell/constants.sml b/imperative-shell/constants.sml index 05a166f..3ddb33f 100644 --- a/imperative-shell/constants.sml +++ b/imperative-shell/constants.sml @@ -2,8 +2,8 @@ structure Constants = struct val windowWidth = 1000 val windowHeight = 900 - val initialWidthClickPoints = 16 - val initialHeightClickPoints = 20 + val initialWidthClickPoints = 4 + val initialHeightClickPoints = 4 val graphVertexShaderString = "#version 300 es\n\