7 Commits

Author SHA1 Message Date
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
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
651596f76f Add beginning of generator declarations and example usage 2025-05-06 02:53:31 -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
Myles Busig
2dcf285979 Add test fractal usage to main 2025-02-18 05:15:58 -08:00
Myles Busig
17a9bb0040 Add hello world 2025-02-15 21:59:24 -08:00