private int?TravelTreeAndReturnIndex(int objectId, CompositeComponent compositeModifier) { foreach (var c in compositeModifier.GetComponents()) { if (c.IsObjectIdEquals(objectId)) { return(compositeModifier.GetComponents().IndexOf(c)); } if (c.IsComposite()) { c.Get(objectId); } } return(null); }
public override void DoRemove(Component c, int objectId, Component modifier) { CompositeComponent compositeModifier = (CompositeComponent)DoFindRoot(modifier); if (compositeModifier.IsObjectIdEquals(objectId)) { compositeModifier.RemoveComponent(c); c.SetAncestor(null); } else { foreach (var item in compositeModifier.GetComponents()) { item.Remove(c, objectId); } } }
public override object First() { return(_compositeComponent.GetComponents()[0]); }