28 Commits

Author SHA1 Message Date
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
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
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
83c2ca5ffd Implement add_mark_rule 2025-04-29 06:21:39 -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
77d7b73365 Add valid_group_characteristic 2025-04-29 06:13:36 -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
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
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