From a97f838a642f39c793af851cbcdece315ec05127 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Sat, 12 Jul 2025 19:08:36 +0100 Subject: [PATCH] finished coding export string, I think/hope --- dotscape | Bin 1049192 -> 1049192 bytes fcore/quad-tree.sml | 32 ++++++++++++++++++++------------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/dotscape b/dotscape index b285c658f885d767d0fcecc3d8fb602c1e157091..69b03eaf289c4dece69d95328ed2072c77ad0a85 100755 GIT binary patch delta 10961 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 delta 10948 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 diff --git a/fcore/quad-tree.sml b/fcore/quad-tree.sml index b1dcde0..7c652b9 100644 --- a/fcore/quad-tree.sml +++ b/fcore/quad-tree.sml @@ -524,12 +524,14 @@ struct val g = colToRealString g val b = colToRealString b - val x = String.concat ["((", x, " - halfWidth) / halfWidth)"] - val y = String.concat ["(~(", y, " - halfHeight) / halfHeight)"] + val x = String.concat ["(((x + ", x, ") - halfWidth) / halfWidth)"] + val y = String.concat ["(~(y + ", y, ") - halfHeight) / halfHeight)"] val ex = String.concat [ "(((((" + , "(" , ex + , "+ x)" , " - " , x , ") " @@ -544,7 +546,9 @@ struct , "(" , "(" , "(" + , "(" , ey + , "+ y)" , " - " , y , ")" @@ -554,14 +558,9 @@ struct ] in (* based on triangle order formed by `Ndc.ltrbToVertexRgb` function *) - x :: ey :: r :: g :: b :: - ex :: ey :: r :: g :: b :: - x :: y :: r :: g :: b :: - - x :: y :: r :: g :: b :: - ex :: ey :: r :: g :: b :: - ex :: y :: r :: g :: b :: - acc + x :: ey :: r :: g :: b :: ex :: ey :: r :: g :: b :: x :: y :: r :: g :: b + :: x :: y :: r :: g :: b :: ex :: ey :: r :: g :: b :: ex :: y :: r :: g + :: b :: acc end fun toExportString (squares, canvasWidth, canvasHeight) = @@ -573,8 +572,17 @@ struct val coords = BinTree.foldr (toExportStringFolder, bintree, []) val coords = String.concatWith "," coords - val header = "" - val footer = "" + val header = String.concat + [ "structure AAA = \nstruct\n" + , " fun lerp (x, y, scale, windowWidth, windowHeight) =\n" + , " let\n" + , " val halfWidth = Real32.fromInt windowWidth / 2.0\n" + , " val halfHeight = Real32.fromInt windowHeight / 2.0\n" + , " in\n" + , " #[\n" + ] + + val footer = String.concat [" end\n", "end\n"] in String.concat [header, coords, footer] end