public LSystemRule(char aVariable, float aWeight, string aRuleRightSide) { mLeft = aVariable; mRightSides = new List <RuleRightSide>(); RuleRightSide rightSide = new RuleRightSide(); rightSide.weight = aWeight; rightSide.rule = aRuleRightSide; rightSide.left = mLeft; mWeightSum = aWeight; mRightSides.Add(rightSide); }
public bool AddRightSide(float aWeight, string aRuleRightSide) { RuleRightSide rightSide = new RuleRightSide(); rightSide.weight = aWeight; rightSide.rule = aRuleRightSide; rightSide.left = mLeft; foreach (RuleRightSide r in mRightSides) { if (r.rule == aRuleRightSide) { return(false); } } mWeightSum += aWeight; mRightSides.Add(rightSide); mRightSides.Sort(delegate(RuleRightSide r1, RuleRightSide r2) { return(r1.rule.CompareTo(r2.rule)); }); return(true); }