/** * Método recursivo de busca e adição de nodos à lista fornecida. * @param nodes_list Lista de nodos. * @param ignore_ids ID's de nodos a serem ignorados. */ private void FindNodesToUpdate(gBConcrete node, ref List<gBConcrete> nodes, ref HashSet<Guid> ignore) { //Vasculha os nodos filhos de artefato List<gBConcrete> child_nodes = node.GetChildNodes(); foreach (gBConcrete child_node in child_nodes) { gBManager.Instance.FindNodesToUpdate(child_node, ref nodes, ref ignore); } //Busca nodo na lista de ids a serem ignorados foreach(Guid ignore_id in ignore) { if(ignore_id == node.GetID()) { ignore.Remove(ignore_id); return; } } //Se não for ignorado, adiciona na lista nodes.Add(node); }