55 Commits

Author SHA1 Message Date
79fc7f5be7 Remove .gba files from gitignore 2025-05-11 08:50:24 -07:00
f3ed7c7dfb Fix missing catch for ETL exception 2025-05-11 08:49:54 -07:00
2142bb45a2 Add flower demo build 2025-05-07 03:14:40 -07:00
7030615bdb Add description and demo to README 2025-05-07 10:07:13 +00:00
5017682ccd Add flower output image 2025-05-07 02:48:12 -07:00
7ba5b07ec6 Change demo to flower output 2025-05-07 02:47:40 -07:00
57db942f9e Implement generation 2025-05-07 02:06:15 -07:00
8797785e9b Add scale to generator 2025-05-07 02:04:59 -07:00
d33aef45cd Add generator usage and move large data to EWRAM 2025-05-07 01:26:04 -07:00
5baff2adfc Add beginning of generation 2025-05-07 01:25:24 -07:00
e0592cb72e Add stack usage diagonstic options 2025-05-07 01:24:30 -07:00
f7869150bb Remove old disabled implementation 2025-05-07 00:21:47 -07:00
1cd528e7ef Add parsing ruleset 2025-05-07 00:11:12 -07:00
4157c74ece Add function for finding token matches 2025-05-07 00:07:17 -07:00
a53d3d6054 Add weighted leafs to group output 2025-05-07 00:06:55 -07:00
67170700b8 Add functions for getting ruleset properties/num properties 2025-05-07 00:06:02 -07:00
cc9b4be3ae Add axiom to ruleset 2025-05-06 23:57:24 -07:00
d6c46da48a Fix typo 2025-05-06 23:57:06 -07:00
361938f5f1 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
7975b84a68 Configure ETL to throw exceptions 2025-05-06 22:53:10 -07:00
01f4aaac41 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
0ce1f013e7 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
d8235f1266 Add create_rotation helper function
Rotation matrix construction not implemented in MTL yet
2025-05-06 22:24:12 -07:00
65c395c551 Add beginning of generator declarations and example usage 2025-05-06 02:53:31 -07:00
f46253feb7 Update gitignore 2025-05-06 01:47:45 -07:00
83c2ca5ffd Implement add_mark_rule 2025-04-29 06:21:39 -07:00
7a73162798 Implement add_branch_rule_weighted 2025-04-29 06:19:58 -07:00
925efc1ebc Implement add_branch_rule 2025-04-29 06:19:03 -07:00
81a0ad5628 Add valid_weighted_group 2025-04-29 06:16:12 -07:00
49f8d463ea Implement add_weighted_group 2025-04-29 06:14:14 -07:00
20db4e7eea Fix missing length check in add_group_characteristic 2025-04-29 06:13:52 -07:00
77d7b73365 Add valid_group_characteristic 2025-04-29 06:13:36 -07:00
14655400e3 Implement add_group_characteristic 2025-04-29 06:05:20 -07:00
62ec3b7be6 Move *_full to fractal.hpp and add valid token check 2025-04-29 06:04:55 -07:00
66fe6ba388 Implement ruleset_t::add_token 2025-04-29 05:55:13 -07:00
487c5c5a69 Change ruleset constants to globals instead of templates 2025-04-29 05:50:11 -07:00
e589e83f24 Comment ruleset functions 2025-04-29 05:31:06 -07:00
c6c9a63c4f 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
b250649601 Update MTL submodule url 2025-04-29 02:40:39 -07:00
1b7c7f0b54 Add test fractal usage to main 2025-02-18 05:15:58 -08:00
513c306555 Implement generator.add_* methods 2025-02-18 05:14:49 -08:00
21188bf514 Change generator::set_axiom to not require setting before preprocessing 2025-02-18 05:13:35 -08:00
b672bb9221 Add fractal generator definitions (unimplemented) 2025-02-18 04:24:20 -08:00
0a57c5e3ed Make some fractal::generator functions noexcept (simple sets, etc) 2025-02-18 04:23:30 -08:00
fa18c00018 Add fractal generator class declaration 2025-02-18 04:17:14 -08:00
0bd0d7fba8 Add rule ID types 2025-02-18 02:40:46 -08:00
fc3fda4e97 Fix inconsistent point/marker naming 2025-02-18 02:32:24 -08:00
7def6da765 Rename fractal variable to token, matching token_type_e naming 2025-02-17 20:03:49 -08:00
b2e2e575a7 Add marker containing position & id, make group use child markers not
vec2
2025-02-17 19:26:23 -08:00
496d063389 Add fractal.hpp with POD structure definitions 2025-02-17 03:44:00 -08:00