-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FR: Support (or error out) with string axioms if you have parametric productions #33
Comments
Hi @alfongj! Could you add some more detail why you opened this issue, are you missing some features or documentation? Assuming the latter, parametric L-Systems are in fact supported. As a starting point you may refer to the docs which have some details and examples regarding parametric L-System usage. |
Really? That's exciting. I couldn't make it work and saw:
So I thought it wasnt :) I'm going to give it another try and resort back; maybe there's a bug on my code or I found a bug in the library |
Good find! Both the broken link and that statement are outdated. Changed them. ;) Parametric L-Systems as described in the docs and readme should work. You can also take a look at the unit tests to see some more working examples. Since the tests are run before a version is released, you can be sure that the test examles will work. However note, that the classic syntax for parametric L-Systems as defined by Prusinkiewicz and Lindenmayer in 1990 will not work. This library does not try to replicate the exact functionality as described in the book, but offers a different, more JS-idiomatic approach to parametric L-Systems. So if you were looking to 1:1 reproduce the examples from the book, this won't be possible I am afraid. |
I found the issue. If you define a parametric's system axiom as a simple string (e.g. "X") and then have parametric productions, then it doesn't work -- "axiom" moving forward will always be a string and never store objects for parts produced on parametric productions. I think the bug is on the function applyProductions() The way to fix this is to pass an axiom with objects from the get go |
Here you may want to either throw an error if typeof newAxiom === 'string' but results are objects, or add a branch that transforms the existing axiom into an object based representation and merge with the new results |
No description provided.
The text was updated successfully, but these errors were encountered: