コード例 #1
0
void ActivityExecution::updateNodes()
{
    for(size_t i=0; i<_actionsRunning.size();)
    {
        bool increase=true;
        for(size_t j=0; j<_toExecuteNodes.size();)
        {
            if(_actionsRunning[i].first == _toExecuteNodes[j]->getPartition_at(0)->getName() &&
                    _actionsRunning[i].second == clean(_toExecuteNodes[j]->getName()))
            {
                //cerr << _toExecuteNodes[j]->getName() << " en cours d'execution"<<endl;
                _runningNodes.push_back(_toExecuteNodes[j]);
                StlVectorFastErase(_toExecuteNodes,j);
                StlVectorFastErase(_actionsRunning,i);
                increase=false;
                break;
            }
            else
            {
                j++;
            }
        }
        if(increase)
            i++;
    }

    for(size_t i=0; i<_actionsDone.size();)
    {
        bool increase=true;
        for(size_t j=0; j<_runningNodes.size();)
        {
            if(_actionsDone[i].first == _runningNodes[j]->getPartition_at(0)->getName() &&
                    _actionsDone[i].second == clean(_runningNodes[j]->getName()))
            {
                //cerr << _runningNodes[j]->getName() << " terminé"<<endl;
                //cerr << "find next of "<< _runningNodes[j]->getName() <<endl;
                vector< shared_ptr < ActionNode> > next = _runningNodes[j]->getOutgoingActionNode();
                for (size_t iN = 0; iN < next.size() ; iN++)
                {
                    //cerr << _runningNodes[j]->getName()<<" nextNode: "<<next[iN]->getName()<<endl;
                    _toExecuteNodes.push_back(next[iN]);
                }
                StlVectorFastErase(_runningNodes,j);
                StlVectorFastErase(_actionsDone,i);
                break;
            }
            else
            {
                j++;
            }
        }
        if(increase)
            i++;
    }
}
コード例 #2
0
ファイル: axis.cpp プロジェクト: rducom/Heditor
void
Axis::removeRenderer(ArRef<Renderer3D> renderer) {
  for(size_t i = _renderers.size(); i--;) {
    if(renderer == _renderers[i]) {
      renderer->addOSD(_axis);
      renderer->addOSD(_inOsd);
      renderer->addOSD(_outOsd);
      StlVectorFastErase(_renderers, i);
      return;
    }
  }
}
コード例 #3
0
ファイル: osdSelector.cpp プロジェクト: rducom/Heditor
void
OSDSelector::removeItem(ArRef<OSDSelectorItem> item) {
  for(int i = _items.size(); i--;) {
    if(_items[i] == item) {
      StlVectorFastErase(_items, i);
      /*
      if(_items.empty()) {
	_selectedItem = 0;
      } else {
	if(_selectedItem == i) {
	  selectItem(_items[0]);
	}
      }
      */
      _selectedItem = 0;
      if(_window) {
	_window->removeOSD(item);
	_rebuild();
      }
      return;
    }
  }
}