Commit Graph

175 Commits

Author SHA1 Message Date
eedaf0450f fix bugs with generating export strings from quad tree (have to add 1 to ex and ey indiscriminately, except if we are not in the canvas width/height dimensions) 2025-07-29 15:55:38 +01:00
d392ad2c79 100NvimTree_1 done with functionality to export collisions 2025-07-13 15:45:09 +01:00
7e96203f92 done adding export-collision functionality, including collision message, in functional core. Next: add imperative shell scaffolding 2025-07-13 15:33:32 +01:00
de16e816b4 add scale parameter for collisions, so that we can easily use collisions when object is larger than normal/native 2025-07-13 15:14:19 +01:00
d98b815516 done generating collision string 2025-07-13 15:02:13 +01:00
69494c368e done fixing errors in output from CollosionTrin.toExportString (I forgot to increment 'ey' if 'y' = 'ey') 2025-07-13 14:03:52 +01:00
a60d13c5ef improvements to generated export string (matches more closely to expected result) 2025-07-13 04:03:44 +01:00
0e141174b2 progress fixing bugs in generated export string 2025-07-13 01:40:57 +01:00
31bc8485f3 add function in imperative shell to save export string, and fix errors in generating export string from functional core 2025-07-12 19:34:52 +01:00
dbb1676fbe done coding functionality to create a string suitable for exporting 2025-07-12 19:16:36 +01:00
a97f838a64 finished coding export string, I think/hope 2025-07-12 19:08:36 +01:00
9a748c8e0d done converting coordinates to triangles for exporting (but I still need header and footer for that) 2025-07-12 19:00:24 +01:00
1fb6b43ac3 progress coding function to create an export string 2025-07-12 18:52:30 +01:00
d0c12d4a87 fix bugs in parse-grid.sml update functions: exit loopX and loopY if coordinate is not in range of grid 2025-07-12 13:50:20 +01:00
b58100ca7e done implementing load-squares functionality 2025-07-12 07:17:52 +01:00
dcf6bc074d fix lexer/parser bugs, add code in file-thread.sml to handle loading/saving of files (but loading is not completely finished yet) 2025-07-12 07:03:09 +01:00
eb0b8d31b2 save grid to custom format 2025-07-12 06:03:59 +01:00
04bb7a18c0 add function to quad tree to turn items into strings (for later saving to file) 2025-07-12 03:38:20 +01:00
bb5e3e8ef3 begin parser to load from file 2025-07-12 02:02:21 +01:00
22173a0cdb add functionality to delete pixel 2025-07-11 23:55:12 +01:00
973a1610ce add functionality to delete pixel 2025-07-11 23:47:28 +01:00
86369db055 add functionality for changing height of canvas 2025-07-11 22:57:20 +01:00
a448fcf469 fix bugs relating to resizing canvas width 2025-07-11 22:20:29 +01:00
e3729a1ce5 add scaffolding in imperative shell to help update canvas width and height 2025-07-11 17:45:16 +01:00
08ed5cc3d5 progress updating canvas width at runtime 2025-07-11 17:41:47 +01:00
e760b158ac change how modal num works so that it is only clipped to 255 if setting a new colour/alpha value 2025-07-11 17:30:57 +01:00
ac69e95a0c add function to help change size of canvas 2025-07-11 17:21:50 +01:00
5cd909430d a bit of refactoring, moving code to update 'squares' vector in app-with.sml to its own function (to make it reuseable) 2025-07-11 17:03:48 +01:00
c898d83d6e add undo and redo fields (but we are not acting on them) 2025-07-11 16:54:07 +01:00
7028391298 add functionality to draw in different colours 2025-07-11 16:39:39 +01:00
040fc67c80 add code to let user change alpha valua 2025-07-11 15:34:29 +01:00
104cdf33c2 replace manual conversion of absolute pixel -> NDC with a call to the 'fromPixelX/Y' function in the Ndc module 2025-07-11 03:54:38 +01:00
9c03425dc6 change Ndc.fromPixelX and Ndc.fromPixelY functions to not try and centre pixels (centering is handled in the click points instead) 2025-07-11 03:48:04 +01:00
fbec9ec2a7 adjust click points to always keep the canvas at the centre of the screen, even when the canvas width is different from the canvas height 2025-07-11 02:26:24 +01:00
3897a109fb fix last visual bug with graph lines: we were calling 'Vector.sub' on the wrong vector (mixed up xClickPoints and yClickPoints), but now we are calling 'Vector.sub' on the correct vector 2025-07-11 01:56:59 +01:00
f2b1fc9e95 fix hard to find edge case in graph lines: integer division gave a visual bug, but real/float division (which preserves decimal) fixed that bug 2025-07-11 01:45:47 +01:00
d5fda8b488 improve creation of click points, so that we can have a pixel be a perfect square, even if the canvas isn't 2025-07-11 00:57:29 +01:00
8e8947379a additional graph lines improvements 2025-07-10 23:54:51 +01:00
cda90e3f44 progress with aligning graph lines 2025-07-10 22:48:34 +01:00
3fe3aa1d4d finished coding merging functionality 2025-07-08 16:59:21 +01:00
1ae67bb616 address remaining vertical duplicate issue (I was returning 1 from getTopmostY's loop, when I was meant to be returning 0) 2025-07-08 08:00:37 +01:00
0b954f81a1 progress with merging vertically 2025-07-08 07:52:26 +01:00
ee3764b253 code additional merging functions, which merge vertically and horizontally as much as possible 2025-07-08 03:18:57 +01:00
12cfe7a04e rewrite merge functions which query grid instead of quad tree (only partially) 2025-07-08 03:07:24 +01:00
aca7acc232 done writing merge function 2025-07-08 00:42:46 +01:00
9bf5e2e68b write all preparatory merging functions; only need to write top level merge function now. 2025-07-08 00:25:52 +01:00
0464dd1ce3 implement functions to get leftmost and rightmost x coordinates with mergeable items 2025-07-07 23:52:24 +01:00
fb2bc76c10 code search function to query quad tree 2025-07-07 23:08:47 +01:00
ab9e1e23d0 make odd-number-division case more explicit when building quad tree 2025-07-07 22:37:01 +01:00
6b5c0d9ba1 preparation for functorising quad tree 2025-07-07 02:36:29 +01:00