Commit Graph

104 Commits

Author SHA1 Message Date
2d817cc998 adjust app type by adding arrowX and arrowY integer fields, and subsequent refactoring, as preparation for being able to draw with arrow keys 2024-09-20 10:17:57 +01:00
80e1a68843 change ClickPoints.getMousePosition function to return indices to the click points array rather than the click points themselves; this will help adding functionality to use arrows for selecting click points later 2024-09-20 09:07:54 +01:00
415f06f0c0 address second regression mentioned in previous commit, where clicked dots are no longer visible (turns out that I removed a line during refactoring which added the triangle stage coordinates to the dot vector) 2024-09-19 18:54:32 +01:00
6a7f11efe6 address one regression, where triangles were no longer being displayed (because calculation changed) after the previous refactoring. I know of only one more regression, which is that the clicked dots do not persist after moving the mouse. 2024-09-19 17:46:40 +01:00
9153217d5f attempt a little refactoring (but note that this refactoring is untested) 2024-09-16 21:49:05 +01:00
d21f31778a add hash symbol (#) 2024-09-13 11:56:57 +01:00
772dafec8c add double quotes 2024-09-13 11:42:43 +01:00
b1a51473e7 add exclamation mark 2024-09-13 11:28:20 +01:00
2d6ee874af improve A (add space for other fonts to have tail, make the width a little narrower), and create new directory for fonts 2024-08-30 22:01:24 +01:00
42c4b92105 address edge case where Real32.toString 1.0 seems to give the string '1' instead of '1.0', and improve the drawing for upper case A 2024-08-30 11:13:08 +01:00
c16fa58bf6 fix bug caused by the calculation change in the previous commit 2024-08-30 09:15:33 +01:00
f3a0eb3e30 minor change to generated export code (avoid redundant maths operations) 2024-08-30 05:20:56 +01:00
db92b95c41 tick another item off from the to-do list in the readme 2024-08-30 03:57:13 +01:00
f5b0c8e705 tested export functionality, and fixed it so that it works as intended (previous error was that the drawn object was located on the wrong part of the Y-axis) 2024-08-30 03:46:05 +01:00
acd68a055d code shortcut to trigger export (with <Ctrl-E>); it outputs syntatically valid .sml, but I am not sure if the output is correct as intended so it needs testing 2024-08-30 02:34:24 +01:00
7ab7b8931d code function to export triangle to .sml file (linear interpolation only; untested and also not currently executable by shortcut 2024-08-30 02:22:02 +01:00
da2a652506 improve parsing code slightly, with successful parsing when saved .dsc file has inconsistent spacing 2024-08-29 11:18:17 +01:00
24bc45142d slight refactoring (move pure parsing functions to functional core in a separate file) 2024-08-29 09:55:08 +01:00
3bc43aec3a update readme to mark another to-do task as done 2024-08-29 05:41:26 +01:00
e69c6b42ef done with loading file into app (loaded triangles are visible, etc.) 2024-08-29 05:38:58 +01:00
2549703dc7 verify that parsing saved file is successful 2024-08-29 05:21:04 +01:00
f0958686b7 implement parser for loading (but this parser is untested) 2024-08-29 04:39:23 +01:00
84b7a6a2f5 minor changes to saved format 2024-08-29 03:59:47 +01:00
1fdd4f33ec remember to close file descriptor in file thread 2024-08-29 00:43:51 +01:00
eb13636993 very basic saving (hardcoded file name, which is fine fow now) 2024-08-29 00:05:30 +01:00
c40e8b98e0 slight renaming of constructors in FileMessage.t datatype, to provide more clarity (SAVE_TRIANGLES is for saving to a custom format, LOAD_TRIANGLES is for loading from a file in that custom format, and export is for generating code from custom format) 2024-08-28 20:47:40 +01:00
48c721e29b done with scaffolding for file mailbox; next, send message to file mailbox to export and import, and handle these messages properly from the file mailbox 2024-08-28 20:42:52 +01:00
e587c6cf73 preparation for adding new additional threads/mailboxes (namely, the file mailbox) 2024-08-28 20:11:00 +01:00
fb9202248c a little refactoring (different CML loops have their own files now) 2024-08-28 19:34:47 +01:00
0a4de92862 in C files where GLFW is included, #define GLFW_INCLUDE_NONE before GLFW is included in that file, because GLFW tries looking for <GL/gl.h> header otherwise, which is not on my system 2024-08-28 00:58:12 +01:00
1049f2b561 scaffolding in preparation for adding simple load/export/save functionality 2024-08-17 09:46:53 +01:00
3f4c52e0d8 upload new dots to GPU when there is a window resize too 2024-08-14 21:35:01 +01:00
30dd9de17a rename 'button' (the coloured square that appears over a clickpoint) to 'dot' throughout codebase, because I may want actual buttons later 2024-08-14 21:24:46 +01:00
abddddbc9e fix minor bug when resizing (resizing caused graph to be drawn and resized, even when graph was toggled off) 2024-08-14 03:54:52 +01:00
a3290337a0 done adding ability to toggle graph by pressing 'g' 2024-08-14 02:35:44 +01:00
9b639c9c53 progress towards toggling graph 2024-08-14 02:31:28 +01:00
575b8d009e amend order of Glfw.swapBuffers and Glfw.pollEvents in imperative shell (previous order polled events before swapping buffers which is not the intended order) 2024-08-14 02:00:07 +01:00
dd9ecfcbe5 delete shaders after linking them in program, which reduces memory by like 0.1 MB (very minor) 2024-08-14 01:44:30 +01:00
c740e5d751 delete shaders after linking them in program, which reduces memory by like 0.1 MB (very minor) 2024-08-14 01:43:53 +01:00
0c76edfde2 remove graph lines vector from app type, so the vector can be garbage collected (it is not really needed) 2024-08-13 23:49:34 +01:00
6878f7fa58 a little clean up (make the ClickPoints.getClickPosition easier for callers to use, because fewer arguments need to be passed) 2024-08-13 23:38:04 +01:00
1dccd14cfa rearrange dotscape.mlb a little 2024-08-13 23:28:21 +01:00
c475a06341 fix minor bug with undo (was meant to call TriangleStage.secondToVector with an initial empty vector in one case, for drawing, but mistakenly used a non-empty vector as initial) 2024-08-11 15:02:04 +01:00
d9c7b753f8 100/home/humza/Downloads/sml/dotscape/README.md done with undo/redo functionality (tested and both of them work as expected) 2024-08-08 23:52:49 +01:00
541fdd877f fix minor compiler errors 2024-08-08 23:45:24 +01:00
4d0d8ef0a1 done with functional-core logic for redo (now just need to send REDO_ACTION on key callback when shortcut is pressed) 2024-08-08 23:43:38 +01:00
10b3617689 add redo stack, and adjust functions to clear it when new triangle or triangle_stage is added; when an undo function is called, the undoHd becomes the redoHd, and undo becomes undoTl, which is expected behaviour. Still need to implement REDO_ACTION though. 2024-08-08 23:10:38 +01:00
4243e4c679 refactor a little bit, making signature of app-update.sml simpler to use by storing mouseX and mouseY inside the app_type 2024-08-08 21:58:50 +01:00
89f4ae3b13 undo implemented and working fine 2024-08-08 21:35:48 +01:00
5c7c61586a scaffolding in preparation for implementing undo 2024-08-08 06:34:40 +01:00