public void AddModifier(IPoseModifier obj) { if (obj == null) { return; } if (modifierSet == null) { modifierSet = new OrderedIndexedSet <IPoseModifier>(); modifierSet.Add(obj); } else if (!modifierSet.Contains(obj)) { // insert obj with right priority order if (obj.priority > modifierSet[modifierSet.Count - 1].priority) { modifierSet.Add(obj); } else { for (int i = 0, imax = modifierSet.Count; i < imax; ++i) { if (obj.priority <= modifierSet[i].priority) { modifierSet.Insert(i, obj); break; } } } } }
public void AddModifier(IPoseModifier obj) { if (obj == null) { return; } if (modifierSet == null) { modifierSet = new OrderedIndexedSet <IPoseModifier>(); modifierSet.Add(obj); } else if (!modifierSet.Contains(obj)) { for (int i = modifierSet.Count - 1; i >= 0; --i) { if (modifierSet[i].priority <= obj.priority) { modifierSet.Insert(i + 1, obj); } } } }