示例#1
0
int SaisieAppuisInit_main(int argc,char ** argv)
{
  Pt2di aSzW(800,800);
  Pt2di aNbFen(-1,-1);
  std::string aFullName,aNamePt,anOri,anOut, aNameAuto, aPrefix2Add, aDir, aName, aModeOri;
  aNameAuto = "NONE";
  aPrefix2Add = "";
  bool aForceGray = true;
  double aZMoy,aZInc;

  SaisieAppuisInit(argc, argv, aSzW, aNbFen, aFullName, aDir, aName, aNamePt, anOri, aModeOri, anOut, aNameAuto, aPrefix2Add, aForceGray, aZMoy, aZInc);

  if (!MMVisualMode)
  {
      std::string aCom =     MMDir() +"bin/SaisiePts "
                          +  MMDir() +"include/XML_MicMac/SaisieInitiale.xml "
                          +  std::string(" DirectoryChantier=") + aDir
                          +  std::string(" +Image=") + QUOTE(aName)
                          +  std::string(" +Ori=") + anOri
                          +  std::string(" +NamePt=") + aNamePt
                          +  std::string(" +NameAuto=") + aNameAuto
                          +  std::string(" +Sauv=") + anOut
                          +  std::string(" +SzWx=") + ToString(aSzW.x)
                          +  std::string(" +SzWy=") + ToString(aSzW.y)
                          +  std::string(" +NbFx=") + ToString(aNbFen.x)
                          +  std::string(" +NbFy=") + ToString(aNbFen.y) ;

      if (aModeOri == "GRID")
      {
          aCom += " +ModeOriIm=eGeomImageGrille"
                  + std::string(" +Conik=false")
                  +  std::string(" +ZIncIsProp=false")
                  //+ " +PostFixOri=GRIBin"
                  + " +Px1Inc="+ ToString(aZInc) + std::string(" ")
                  + " +Px1Moy="+ ToString(aZMoy) + std::string(" ");

          //aCom += std::string(" +Geom=eGeomMNTFaisceauIm1ZTerrain_Px1D");
      }

      if (EAMIsInit(&aForceGray))
         aCom = aCom + " +ForceGray=" + ToString(aForceGray);

      if (EAMIsInit(&aPrefix2Add))
         aCom = aCom + " +Pref2Add=" + aPrefix2Add;

      std::cout << aCom << "\n";

      int aRes = system(aCom.c_str());

      return aRes;
  }
  else
      return EXIT_SUCCESS;
}
int saisieAppuisInitQT_main(QApplication &app, int argc, char *argv[])
{
    app.setApplicationName("SaisieAppuisInitQT");
    app.setOrganizationName("Culture3D");

    QStringList cmdline_args = QCoreApplication::arguments();

    if (cmdline_args.back().contains("help"))
    {
        QString help = "Mandatory unnamed args :\n"
                 "* string :: {Full name (Dir+Pattern)}\n"
                 "* string :: {Orientation ; NONE if not used}\n"
                 "* string :: {Point name, or point file name}\n"
                 "* string :: {Output}\n\n"
                "Named args :\n"
                "* [Name=SzW] Pt2di :: {Sz of window}\n"
                "* [Name=NbF] Pt2di :: {Nb of sub window}\n"
                "* [Name=NameAuto] string :: {Prefix for automatic point creation}\n"
                //"* [Name=Pref2Add] string :: {Prefix to add during import (for bug correction ?)}\n"
                "* [Name=ForceGray] bool :: {Force gray image, def=false}\n"
                "* [Name=OriMode] string :: {Orientation type (GRID) (Def=Std)}\n"
                "* [Name=ZMoy] REAL :: {Average Z, Mandatory in PB}\n"
                "* [Name=ZInc] REAL :: {Incertitude on Z, Mandatory in PB}\n\n"

                "Example:\nmm3d " + app.applicationName() + " IMG_558{0-9}[1].tif RadialBasic 100 measures.xml\n\n"
                "NB: visual interface for argument edition available with command:\n\n mm3d v" + app.applicationName() + "\n\n";

        return helpMessage(app, help);
    }

    loadTranslation(app);

    QSettings settings(QApplication::organizationName(), QApplication::applicationName());

    if ((argc>0)&&(string(argv[0]).find("SaisieQT")!= string::npos))
    {
        argv++;
        argc--;
    }

    Pt2di aSzWin(800,800);
    Pt2di aNbFen(-1,-1);

    string aFullName, aDir, aName, aNamePt, aNameOut;   //mandatory arguments
    string aNameOri, aModeOri, aNameAuto, aPrefix2Add;  //named args
    aPrefix2Add = "";
    bool aForceGray = false;

    settings.beginGroup("Misc");
    aNameAuto = settings.value("defPtName", QString("100")).toString().toStdString();
    settings.endGroup();

    settings.beginGroup("Drawing settings");
    aForceGray = settings.value("forceGray", false       ).toBool();
    settings.endGroup();

    double aZInc, aZMoy;

    if (argv[0][0] == 'v')
    {
        MMVisualMode = true;
        argv[0] = (char*) "SaisieAppuisInitQT";
    }
    
    std::string aInputSec;

    SaisieAppuisInit(argc, argv, aSzWin, aNbFen, aFullName, aDir, aName, aNamePt, aNameOri, aModeOri, aNameOut, aNameAuto, aPrefix2Add, aForceGray, aZMoy, aZInc,aInputSec);

    if (!MMVisualMode)
    {
        if (!checkNamePt( QString (aNamePt.c_str()))) return -1;

        QStringList filenames = getFilenames(aDir, aName);

        int aNbW = aNbFen.x * aNbFen.y;
        if (filenames.size() < aNbW)
        {
             aNbW = filenames.size();

             cVirtualInterface::ComputeNbFen(aNbFen, aNbW);
        }

        updateSettings(settings, aSzWin,aNbFen, aForceGray);

        settings.beginGroup("Misc");
        settings.setValue("defPtName", QString(aNameAuto.c_str()));
        settings.endGroup();

        QStringList input;
        input   << QString(MMDir().c_str()) + QString("bin/SaisiePts")
                << QString(MMDir().c_str()) + QString("include/XML_MicMac/SaisieInitiale.xml")
                << QString("DirectoryChantier=") + QString(aDir.c_str())
                << QString("+Image=") +  QString(aName.c_str())
                << QString("+Ori=") + QString(aNameOri.c_str())
                << QString("+NamePt=") + QString(aNamePt.c_str())
                << QString("+NameAuto=") + QString(aNameAuto.c_str())
                << QString("+Sauv=") + QString(aNameOut.c_str())
                << QString("+SzWx=") + QString::number(aSzWin.x)
                << QString("+SzWy=") + QString::number(aSzWin.y)
                << QString("+NbFx=") + QString::number(aNbFen.x)
                << QString("+NbFy=") + QString::number(aNbFen.y);

        if (aModeOri == "GRID")
        {
            input << QString("+ModeOriIm=eGeomImageGrille")
                  << QString("+Conik=false")
                  << QString("+ZIncIsProp=false")
                    //<< QString(+PostFixOri=GRIBin")
                  << QString("+Px1Inc=") + QString::number(aZInc)
                  << QString("+Px1Moy=") + QString::number(aZMoy);

            //<< QString("+Geom=eGeomMNTFaisceauIm1ZTerrain_Px1D");
        }

        if (EAMIsInit(&aForceGray))
           input << QString("+ForceGray=") + QString(((string)(ToString(aForceGray))).c_str());

        if (EAMIsInit(&aPrefix2Add))
           input << QString("+Pref2Add=") + QString(aPrefix2Add.c_str());


        char **output;

        // Copy input to output
        output = new char*[input.size() + 1];
        for (int i = 0; i < input.size(); i++) {
            output[i] = new char[strlen(input.at(i).toStdString().c_str())+1];
            memcpy(output[i], input.at(i).toStdString().c_str(), strlen(input.at(i).toStdString().c_str())+1);
        }
        output[input.size()] = ((char*)NULL);


        cResultSubstAndStdGetFile<cParamSaisiePts> aP2(
                input.size()-2,output+2,
                output[1],
                StdGetFileXMLSpec("ParamSaisiePts.xml"),
                "ParamSaisiePts",
                "ParamSaisiePts",
                "DirectoryChantier",
                "FileChantierNameDescripteur" );

        cAppli_SaisiePts   anAppli (aP2,false);

        SaisieQtWindow w(POINT2D_INIT);

        new cQT_Interface(anAppli,&w);

        w.show();

        w.addFiles(filenames, false);

        return app.exec();
    }
    else
        return EXIT_SUCCESS;
}
int  SaisieAppuisPredic_main(int argc,char ** argv)
{
    Pt2di aSzW(800,800);
    Pt2di aNbFen(-1,-1);
    std::string aFullName,aNamePt,anOri, aModeOri, aNameMesure, aDir, aName;
    std::string aMasq3D,aPIMsFilter;
    bool aForceGray = true;
    double aZMoy,aZInc;
    std::string aInputSec;

    double aFlou=0.0;

    std::string aTypePts="Pts";

    SaisieAppuisPredic(argc, argv, aSzW, aNbFen, aFullName, aDir, aName, aNamePt, anOri, aModeOri, aNameMesure, aTypePts,aMasq3D,aPIMsFilter, aFlou, aForceGray, aZMoy, aZInc,aInputSec);

    if(!MMVisualMode)
    {
        std::string aCom =     MMDir() +"bin/SaisiePts "
                +  MMDir() +"include/XML_MicMac/SaisieAppuisPredic.xml "
                +  std::string(" DirectoryChantier=") + aDir
                +  std::string(" +Images=") + QUOTE(aName)
                +  std::string(" +Ori=") + anOri
                +  std::string(" +LargeurFlou=") + ToString(aFlou)
                +  std::string(" +Terrain=") + aNamePt
                +  std::string(" +Sauv=") + aNameMesure
                +  std::string(" +SzWx=") + ToString(aSzW.x)
                +  std::string(" +SzWy=") + ToString(aSzW.y)
                +  std::string(" +NbFx=") + ToString(aNbFen.x)
                +  std::string(" +NbFy=") + ToString(aNbFen.y)
                +  std::string(" +TypePts=") + aTypePts;

        if (aModeOri == "GRID")
        {
            aCom += " +ModeOriIm=eGeomImageGrille"
                    + std::string(" +Conik=false")
                    +  std::string(" +ZIncIsProp=false")
                    //+ " +PostFixOri=GRIBin"
                    + " +Px1Inc="+ ToString(aZInc) + std::string(" ")
                    + " +Px1Moy="+ ToString(aZMoy) + std::string(" ");

            //aCom += std::string(" +Geom=eGeomMNTFaisceauIm1ZTerrain_Px1D");
        }

       if (EAMIsInit(&aMasq3D))
          aCom = aCom + std::string(" +WithMasq3D=true +Masq3D=")+aMasq3D;

       if (EAMIsInit(&aPIMsFilter))
          aCom = aCom + std::string(" +WithPIMsFilter=true +PIMsFilter=")+aPIMsFilter;

        if (EAMIsInit(&aFlou))
            aCom = aCom + std::string(" +FlouSpecified=true");
        if (EAMIsInit(&aTypePts))
            aCom = aCom + std::string(" +TypeGlobEcras=true");
        if (EAMIsInit(&aForceGray))
           aCom = aCom + " +ForceGray=" + ToString(aForceGray);

        if (EAMIsInit(&aInputSec))
        {
           aCom = aCom + " +WithInputSec=true  +InputSec=" + aInputSec + " ";
        }

        std::cout << aCom << "\n";

        int aRes = system(aCom.c_str());

        return aRes;
    }
    else
        return EXIT_SUCCESS;
}