X-Git-Url: https://git.piment-noir.org/?p=lsystem3d.git;a=blobdiff_plain;f=src%2Fruleset.h;fp=src%2Fruleset.h;h=63575a5b1ea3c9f338e878b0e6782945528c3242;hp=0000000000000000000000000000000000000000;hb=71fe848416e50bea3b6484345047b0379126508b;hpb=df45724d152972305a473c34f9a4fdda14f8ced0 diff --git a/src/ruleset.h b/src/ruleset.h new file mode 100644 index 0000000..63575a5 --- /dev/null +++ b/src/ruleset.h @@ -0,0 +1,84 @@ +// Copyright (C) 2006 Erik Dahlberg +// +// This file is part of LSystem3D. +// +// LSystem3D is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// LSystem3D is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with LSystem3D; if not, write to the Free Software +// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + + + +#ifndef RULESET_H +#define RULESET_H + +#include +#include + +#include "rule.h" + +using namespace std; + +typedef multimap rulemap; + + + +/** + * Set of L-system rules + */ +class RuleSet +{ +public: + + /** + * Constructor + */ + RuleSet(); + + /** + * Destructor + */ + ~RuleSet(); + + /** + * Clear rule set + */ + void clear(); + + /** + * Add one rule + * @param rule the rule + */ + void addRule(Rule rule); + + /** + * Get one rule with repect of probability factor + * @param name the rule name + * @return the rule + */ + Rule findRule(string ruleName); + + /** + * Get all rules + * @return the rules + */ + rulemap getRules(); + +protected: + + rulemap _rules; +}; + + + +#endif