Commit Graph

59 Commits

Author SHA1 Message Date
2517a9d33b complete rework of the user interface (using raygui) 2026-02-27 03:01:43 +01:00
4a37e93b98 implement immovable blocks (walls) and add two presets 2026-02-25 17:21:54 +01:00
5e3d007a9d display puzzle title 2026-02-25 16:53:13 +01:00
82d618f692 update menu + block placing visualization + add move history 2026-02-25 12:45:06 +01:00
3f8274f1d9 add button to move to a state farthest from any win condition 2026-02-25 03:20:40 +01:00
271902ab1f implement automatic graph traversal along shortest path to solution 2026-02-25 02:58:30 +01:00
fd58f217c6 implement bfs multi-target distance calculation to nearest winning state 2026-02-25 01:15:47 +01:00
b9e3ab8d2d implement editing the board win condition 2026-02-24 22:43:53 +01:00
d8534cacdd store winning condition in state + remove presets 2026-02-24 22:08:00 +01:00
f31f9557b3 update flags again 2026-02-24 20:53:27 +01:00
349d614611 add flag to toggle tracy (disabled for now) 2026-02-24 20:42:38 +01:00
8a4e5c1ebf squash merge threaded-physics into main 2026-02-24 19:00:25 +01:00
3e87bbb6a5 remove timings print 2026-02-24 00:12:04 +01:00
bfe8c6d572 store masses/springs inside vector and manage unordered_maps for a state<->index mapping
this reduces the time required to iterate over all masses/springs
because data is stored in contiguous memory
2026-02-24 00:01:04 +01:00
404a76654c update compiler flags, fix tracy allocation profiling, fix compiler warnings 2026-02-23 23:01:30 +01:00
59a4303d62 mark visited and starting states 2026-02-23 14:41:20 +01:00
6698ace0c6 implement smooth camera 2026-02-23 14:27:56 +01:00
861fb34d39 fix octree corruption bug because of node vector reallocation 2026-02-23 13:46:00 +01:00
30b02c13ed add vertices draw limit after I accidentally removed it 2026-02-23 00:27:51 +01:00
443069f597 replace openmp with thread-pool library bc openmp has larger fork boundary overhead 2026-02-23 00:14:09 +01:00
e43e505110 implement barnes-hut particle repulsion using octree 2026-02-22 23:29:56 +01:00
bdb4242076 remove useless manual move/copy constructors/assignment operators (pls stop killing my hands bjarne) 2026-02-22 20:28:42 +01:00
768a7eaf82 implement operator<< for ryalib vectors 2026-02-22 19:42:48 +01:00
9726d5fecc cleanup repulsion force calculation 2026-02-22 19:19:06 +01:00
157985df6b extract orbital camera into separate file 2026-02-22 14:30:55 +01:00
f06afc210f make naming more consistent + rename some files 2026-02-22 14:17:55 +01:00
fe6bbe9bbb remove batched rendering code 2026-02-22 14:04:11 +01:00
9446e1b86c improve rendering performance even more by using instanced rendering 2026-02-22 12:31:58 +01:00
12a96cba66 decrease special mass size + add hjkl movement bindings 2026-02-22 01:49:54 +01:00
35de23e865 improve rendering performance by batching edge and cube draws 2026-02-22 01:41:39 +01:00
05172d0d8f replace physics loop with fixed-step loop 2026-02-22 00:27:56 +01:00
cc4f8ce865 refactor usage of std::string to refer to states + improve initial mass positioning 2026-02-22 00:12:47 +01:00
0d3913e27e refactor state management and input handling into separate classes 2026-02-21 22:09:42 +01:00
f8fe9e35d6 add more presets (century, super_century, new_century) 2026-02-20 02:15:46 +01:00
71e1dd4f32 fix state representation not being updated when toggling restricted movement 2026-02-20 02:15:13 +01:00
6e5a4acdd0 tint the board if a winning state is reached 2026-02-20 01:36:48 +01:00
d87df74834 add another preset 2026-02-20 01:36:24 +01:00
199646cae9 allow changing the target block 2026-02-20 01:26:59 +01:00
11ae406073 add another preset 2026-02-20 01:22:06 +01:00
f8ac60f6a6 implement state editing 2026-02-20 00:58:01 +01:00
ca83d5724f fix BlockIterator always starting at pos 0 (even if there's no Block there) 2026-02-20 00:07:42 +01:00
a48a6caefc make window resizable 2026-02-19 23:10:16 +01:00
53a38e9cf3 update physics engine parameters 2026-02-19 22:05:46 +01:00
d7ed12f6f9 move board state presets to separate file 2026-02-19 21:20:13 +01:00
55ff0f3490 rebuild the repulsion force grid every n frames 2026-02-18 23:12:02 +01:00
1dad350f7d add winning states to menu panel 2026-02-18 21:43:13 +01:00
d92391271f add winning conditions and ability to mark them in the graph 2026-02-18 20:27:22 +01:00
47628d06ad add menu pane at the top 2026-02-18 13:30:59 +01:00
7faa8ecdb7 allow to restrict block movement to principal block directions + add more samples 2026-02-18 03:16:13 +01:00
e2e75204ef parallelize repulsion forces using openmp 2026-02-18 02:08:46 +01:00