54 Commits

Author SHA1 Message Date
Maddie Busig
2df802d207 Fix missing catch for ETL exception 2025-05-11 08:49:54 -07:00
Maddie Busig
c220f7fe65 Add flower demo build 2025-05-07 03:14:40 -07:00
82856c64cf Add description and demo to README 2025-05-07 10:07:13 +00:00
Maddie Busig
a6f0643e36 Add flower output image 2025-05-07 02:48:12 -07:00
Maddie Busig
193aaad305 Change demo to flower output 2025-05-07 02:47:40 -07:00
Maddie Busig
6c309a0265 Implement generation 2025-05-07 02:06:15 -07:00
Maddie Busig
faf9f7af3b Add scale to generator 2025-05-07 02:04:59 -07:00
Maddie Busig
513d000e11 Add generator usage and move large data to EWRAM 2025-05-07 01:26:04 -07:00
Maddie Busig
32e0b9280f Add beginning of generation 2025-05-07 01:25:24 -07:00
Maddie Busig
ba5f3206bf Add stack usage diagonstic options 2025-05-07 01:24:30 -07:00
Maddie Busig
22f87a9c9e Remove old disabled implementation 2025-05-07 00:21:47 -07:00
Maddie Busig
924bd2b94c Add parsing ruleset 2025-05-07 00:11:12 -07:00
Maddie Busig
d95602fecd Add function for finding token matches 2025-05-07 00:07:17 -07:00
Maddie Busig
1dfac53904 Add weighted leafs to group output 2025-05-07 00:06:55 -07:00
Maddie Busig
f1afeacf60 Add functions for getting ruleset properties/num properties 2025-05-07 00:06:02 -07:00
Maddie Busig
ec0fb04f7b Add axiom to ruleset 2025-05-06 23:57:24 -07:00
Maddie Busig
03d9de7b1a Fix typo 2025-05-06 23:57:06 -07:00
Maddie Busig
8a05e20c33 Fix rotations and add second token value
Rotations only took cosine of the angle, but this is not enough to
determine all possible angles. create_rotation now takes sin of the
angle too. Modified tokens to have a second value to accomodate this
change
2025-05-06 23:55:50 -07:00
Maddie Busig
28c606643c Configure ETL to throw exceptions 2025-05-06 22:53:10 -07:00
Maddie Busig
722a7eb202 Move token marking identifier into token_t, remove marking rules
This has the side effect that each token can only have one mark assigned
to it.
2025-05-06 22:51:52 -07:00
Maddie Busig
83130ba7bd Fix rotation usage not using cos of angle
Storing the cosine of the angle inside the token allows for faster
rotation matrix computation. Because the rotation matrix uses the
sin/cos of the angle, we can precompute the cosine and find the sine
quickly using cosx^2+sinx^2=1. This means we only need to compute the
sin/cos once, and we can potentially precompute it at compile time.
2025-05-06 22:28:44 -07:00
Maddie Busig
8a99a5e09e Add create_rotation helper function
Rotation matrix construction not implemented in MTL yet
2025-05-06 22:24:12 -07:00
Maddie Busig
651596f76f Add beginning of generator declarations and example usage 2025-05-06 02:53:31 -07:00
Maddie Busig
7d660e215d Update gitignore 2025-05-06 01:47:45 -07:00
Maddie Busig
e613019f10 Implement add_mark_rule 2025-04-29 06:21:39 -07:00
Maddie Busig
25ce069a97 Implement add_branch_rule_weighted 2025-04-29 06:19:58 -07:00
Maddie Busig
1e045d9801 Implement add_branch_rule 2025-04-29 06:19:03 -07:00
Maddie Busig
07b94c996c Add valid_weighted_group 2025-04-29 06:16:12 -07:00
Maddie Busig
626486cadf Implement add_weighted_group 2025-04-29 06:14:14 -07:00
Maddie Busig
404faec921 Fix missing length check in add_group_characteristic 2025-04-29 06:13:52 -07:00
Maddie Busig
2d1b318d0f Add valid_group_characteristic 2025-04-29 06:13:36 -07:00
Maddie Busig
a67fcac5fc Implement add_group_characteristic 2025-04-29 06:05:20 -07:00
Maddie Busig
8e6413e9ec Move *_full to fractal.hpp and add valid token check 2025-04-29 06:04:55 -07:00
Maddie Busig
0f3e857586 Implement ruleset_t::add_token 2025-04-29 05:55:13 -07:00
Maddie Busig
f1b6870dfd Change ruleset constants to globals instead of templates 2025-04-29 05:50:11 -07:00
Maddie Busig
ee6daf36d7 Comment ruleset functions 2025-04-29 05:31:06 -07:00
Maddie Busig
00303ae3be Refactor fractal generator and fractal classes, begin rewrite
Separating fractal generation run from ruleset generation. After the
ruleset is processed, there is no reason for the group characteristics,
etc to still be used. Additionally, this will avoid the possibility of
the user attempting to use the fractal before ruleset is created and
processed.

Other changes:
Branch rules now use unioned weighted or unweighted group.
Rewrite ruleset creation usage
2025-04-29 04:59:38 -07:00
Maddie Busig
c357174e35 Update MTL submodule url 2025-04-29 02:40:39 -07:00
Myles Busig
2dcf285979 Add test fractal usage to main 2025-02-18 05:15:58 -08:00
Myles Busig
6b6cba98dd Implement generator.add_* methods 2025-02-18 05:14:49 -08:00
Myles Busig
b96d5fa2de Change generator::set_axiom to not require setting before preprocessing 2025-02-18 05:13:35 -08:00
Myles Busig
1999d0e0f7 Add fractal generator definitions (unimplemented) 2025-02-18 04:24:20 -08:00
Myles Busig
087aa2c714 Make some fractal::generator functions noexcept (simple sets, etc) 2025-02-18 04:23:30 -08:00
Myles Busig
5f35bea64c Add fractal generator class declaration 2025-02-18 04:17:14 -08:00
Myles Busig
03b567cebe Add rule ID types 2025-02-18 02:40:46 -08:00
Myles Busig
787a16c853 Fix inconsistent point/marker naming 2025-02-18 02:32:24 -08:00
Myles Busig
ed279b3bc6 Rename fractal variable to token, matching token_type_e naming 2025-02-17 20:03:49 -08:00
Myles Busig
1f0620c253 Add marker containing position & id, make group use child markers not
vec2
2025-02-17 19:26:23 -08:00
Myles Busig
017487a18d Add fractal.hpp with POD structure definitions 2025-02-17 03:44:00 -08:00
Myles Busig
a002ea7b94 Add ETL submodule 2025-02-17 02:16:34 -08:00