Beispiel #1
0
int GUIManager::Init(const char* argv0, const char* name /* = "" */)
{
  SofaGUI::SetProgramName(argv0);
  sofa::component::init();
  sofa::simulation::xml::initXml();
  GUICreator* creator;

  if (currentGUI)
    return 0; // already initialized
  
  if (guiCreators.empty())
  {
        std::cerr << "ERROR(SofaGUI): No GUI registered."<<std::endl;
        return 1;
  }

  if( strcmp(name,"") == 0 || name == NULL){
    name = GetValidGUIName(); // get the default gui name
  }
  creator = GetGUICreator(name);
  if(!creator){
    return 1;
  }
  valid_guiname = name; // at this point we must have a valid name for the gui.
  
  if (creator->init)
    return (*creator->init)(valid_guiname, guiOptions);
  else
    return 0;
}
Beispiel #2
0
GUIManager::GUICreator* GUIManager::GetGUICreator(const char* name)
{
    if (!name) name = GetValidGUIName();
    std::list<GUICreator>::iterator it =guiCreators.begin();
    std::list<GUICreator>::iterator itend =guiCreators.end();
    while (it != itend && strcmp(name, it->name))
        ++it;
    if (it == itend)
    {
        std::cerr << "ERROR(GUIManager): GUI "<<name<<" creation failed."<<std::endl;
        std::cerr << "Available GUIs:" << ListSupportedGUI(' ') << std::endl;
        return NULL;
    }
    else
        return &(*it);
}
Beispiel #3
0
GUIManager::GUICreator* GUIManager::GetGUICreator(const char* name)
{
    if (!name) name = GetValidGUIName();
    std::list<GUICreator>::iterator it =guiCreators.begin();
    std::list<GUICreator>::iterator itend =guiCreators.end();
    while (it != itend && strcmp(name, it->name))
        ++it;
    if (it == itend)
    {
        msg_error("GUIManager") << "GUI '"<<name<<"' creation failed."<< msgendl
                                << "Available GUIs: {" << ListSupportedGUI(' ') <<  "}";
        return nullptr;
    }
    else
        return &(*it);
}
Beispiel #4
0
int GUIManager::Init(const char* argv0, const char* name)
{
    BaseGUI::SetProgramName(argv0);
    BaseGUI::SetArgumentParser(currentArgumentParser);
    sofa::simulation::common::init();

    static bool first = true;
    if (first)
    {
        sofa::component::initComponentBase();
        sofa::component::initComponentCommon();
        sofa::component::initComponentGeneral();
        sofa::component::initComponentAdvanced();
        sofa::component::initComponentMisc();

        first = false;
    }

    if (currentGUI)
        return 0; // already initialized

    if (guiCreators.empty())
    {
        msg_error("GUIManager") << "No GUI registered.";
        return 1;
    }

    if( name == NULL || strcmp(name,"") == 0 )
    {
        name = GetValidGUIName(); // get the default gui name
    }
    GUICreator *creator = GetGUICreator(name);
    if(!creator)
    {
        return 1;
    }
    valid_guiname = name; // at this point we must have a valid name for the gui.

    return 0;
}