Exemplo n.º 1
0
bool TreeMatchSpecif(const std::string & aNameFile,const std::string & aNameSpecif,const std::string & aNameObj)
{
    cElXMLTree aFullTreeParam(aNameFile);
    cElXMLTree * aTreeParam = aFullTreeParam.GetUnique(aNameObj,false);
    cElXMLTree aTreeSpec(StdGetFileXMLSpec(aNameSpecif));
    return  aTreeParam->TopVerifMatch(&aTreeSpec,aNameObj,true);
}
int SaisiePts_main2(int argc,char ** argv)
{
   MMD_InitArgcArgv(argc,argv);
  // cAppliApero * anAppli = cAppliMICMAC::Alloc(argc,argv,eAllocAM_STD);

  //if (0) delete anAppli;

   ELISE_ASSERT(argc>=2,"Not enough arg");

   cElXMLTree aTree(argv[1]);


   cResultSubstAndStdGetFile<cParamSaisiePts> aP2
                                          (
                                               argc-2,argv+2,
                                              //0,0,
                                      argv[1],
                                   StdGetFileXMLSpec("ParamSaisiePts.xml"),
                                  "ParamSaisiePts",
                                  "ParamSaisiePts",
                                              "DirectoryChantier",
                                              "FileChantierNameDescripteur"
                                          );

   //cAppli_SaisiePts   anAppli (aP2);
   //((cX11_Interface*)anAppli.Interface())->BoucleInput();

   //SaisiePts_Banniere();
   return 0;
}
Exemplo n.º 3
0
int CASALL_main(int argc,char ** argv)
{
  // cAppliApero * anAppli = cAppliMICMAC::Alloc(argc,argv,eAllocAM_STD);

  //if (0) delete anAppli;

   ELISE_ASSERT(argc>=2,"Not enough arg");

   cElXMLTree aTree(argv[1]);



   cResultSubstAndStdGetFile<cParamCasa> aP2
                                          (
                                              argc-2,argv+2,
                                              argv[1],
                                              StdGetFileXMLSpec("ParamCasa.xml"),
                                              "ParamCasa",
                                              "ParamCasa",
                                              "DirectoryChantier",
                                              "FileChantierNameDescripteur"
                                          );

   cAppli_Casa   anAppli (aP2);

   return 0;
}
cXML_ParamNuage3DMaille XML_Nuage(const std::string & aName)
{
    return StdGetObjFromFile<cXML_ParamNuage3DMaille>
           (
                aName,
                StdGetFileXMLSpec("SuperposImage.xml"),
                "XML_ParamNuage3DMaille",
                "XML_ParamNuage3DMaille"
           );
}
int  LucasChCloud_main(int argc,char ** argv)
{
  //=====================  PARAMETRES EN DUR ==============


    std::string aNameNuage,aNameOut;
    ElInitArgMain
    (
        argc,argv,
        LArgMain()  << EAMC(aNameNuage,"Name input "),
        LArgMain()  << EAM(aNameOut,"Out",true)
    );



    if (! EAMIsInit(&aNameOut))
       aNameOut = DirOfFile(aNameNuage) + "TestScale_" + NameWithoutDir(aNameNuage);


  cXML_ParamNuage3DMaille aXML =   StdGetObjFromFile<cXML_ParamNuage3DMaille>
                                         (
                                               aNameNuage,
                                               StdGetFileXMLSpec("SuperposImage.xml"),
                                               "XML_ParamNuage3DMaille",
                                               "XML_ParamNuage3DMaille"
                                         );


   double aScale = 2;
   cRepereCartesien aRep;

   aRep.Ori() = Pt3dr(0,0,0);
   aRep.Ox() = Pt3dr(aScale,0,0);
   aRep.Oy() = Pt3dr(0,aScale,0);
   aRep.Oz() = Pt3dr(0,0,aScale);

    aXML.RepereGlob().SetVal(aRep);
  
    

   MakeFileXML(aXML,aNameOut);

   return 0;
}
void cAppliApero::InitBlockCameras()
{
    for
    (
        std::list<cBlockCamera>::const_iterator itB= mParam.BlockCamera().begin();
        itB!=mParam.BlockCamera().end();
        itB++
    )
    {
        std::string anId = itB->Id().ValWithDef(itB->NameFile());
        cStructBlockCam aSB = StdGetObjFromFile<cStructBlockCam>
                              (
                                  mICNM->Dir() + itB->NameFile(),
                                  StdGetFileXMLSpec("ParamChantierPhotogram.xml"),
                                  "StructBlockCam",
                                  "StructBlockCam"
                              );
        cImplemBlockCam * aIBC = new cImplemBlockCam(*this,aSB,*itB,anId);
        mBlockCams[anId] = aIBC;
    }
}
cElNuage3DMaille * cElNuage3DMaille::FromFileIm
                   (
                          const std::string & aFile,
                          const std::string & aTag,
                          const std::string & aMasq,
                          double ExagZ
                   )
{
   std::string aDir,aNF;
   SplitDirAndFile(aDir,aNF,aFile);
   return FromParam
          (
                StdGetObjFromFile<cXML_ParamNuage3DMaille>
                (
                      aFile,
                      StdGetFileXMLSpec("SuperposImage.xml"),
                      aTag,
                      "XML_ParamNuage3DMaille"
                ),
                aDir,
                aMasq,
                ExagZ
         );
}
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;
}
bool NameFilter(const std::string & aSubD,cInterfChantierNameManipulateur * aICNM,const cNameFilter & aFilter,const std::string & aName)
{
   std::string anEntete = aICNM->Dir()+ aSubD;
   std::string aFullName = anEntete + aName;

   int aSz = aFilter.SizeMinFile().Val();
   if (aSz>=0)
   {
      if (sizeofile(aFullName.c_str()) < aSz)
         return false;
   }

   if ((aFilter.Min().IsInit())&&(aFilter.Min().Val()>aName))
      return false;

   if ((aFilter.Max().IsInit())&&(aFilter.Max().Val()<aName))
      return false;


   const std::list<Pt2drSubst> & aLFoc = aFilter.FocMm();
   if (! aLFoc.empty())
   {
      
      if (!IsInIntervalle(aLFoc,GetFocalMmDefined(aFullName),true))
      {
            return false;
      }
   }
   


   for 
   (
        std::list<cKeyExistingFile>::const_iterator itKEF=aFilter.KeyExistingFile().begin();
        itKEF!=aFilter.KeyExistingFile().end();
        itKEF++
   )
   {
       bool OKGlob = itKEF->RequireForAll();
       for 
       (
            std::list<std::string>::const_iterator itKA=itKEF->KeyAssoc().begin();
            itKA!=itKEF->KeyAssoc().end();
            itKA++
       )
       {
          std::string aNameF = anEntete + aICNM->Assoc1To1(*itKA,aName,true);
          bool fExists = ELISE_fp::exist_file(aNameF);
// std::cout << "KEY-NF " << aNameF << "\n";
          bool Ok = itKEF->RequireExist() ? fExists : (!fExists);
          if (itKEF->RequireForAll())
             OKGlob = OKGlob && Ok;
          else
             OKGlob = OKGlob || Ok;
       }
   //std::cout << "KEY-NF " << aName << " " << OKGlob << "\n";
       if (!OKGlob) 
          return false;
   }


   if (aFilter.KeyLocalisation().IsInit())
   {
       const cFilterLocalisation & aKLoc = aFilter.KeyLocalisation().Val();
       std::string aNameCam = anEntete + aICNM->Assoc1To1(aKLoc.KeyAssocOrient(),aName,true);
       ElCamera * aCam = Cam_Gen_From_File(aNameCam,"OrientationConique",aICNM);
       Im2D_Bits<1> * aMasq = GetImRemanenteFromFile<Im2D_Bits<1> > (anEntete+ aKLoc.NameMasq());

       TIm2DBits<1> TM(*aMasq);

       cFileOriMnt * anOri = RemanentStdGetObjFromFile<cFileOriMnt>
                             (
                                anEntete+aKLoc.NameMTDMasq(),
                                StdGetFileXMLSpec("ParamChantierPhotogram.xml"),
                                "FileOriMnt",
                                "FileOriMnt"
                             );
       // std::cout << "ADR MASQ " << aMasq << " " << anOri << "\n";
        Pt3dr aPMnt = FromMnt(*anOri,aCam->OrigineProf());
        Pt2di aP(round_ni(aPMnt.x),round_ni(aPMnt.y));
        return ( TM.get(aP,0)==0 );
   }
   
   return true;
}
Exemplo n.º 10
0
void cAppliApero::ExportMesuresFromCarteProf
     (
          const cExportMesuresFromCarteProf & anEM,
          const cCartes2Export &              aC
     )
{
    for (std::list<std::string>::const_iterator itIm1= aC.Im1().begin() ; itIm1!=aC.Im1().end() ; itIm1++)
    {
       cElRegex anAutom(aC.FilterIm2().Val(),10);
       std::string aNameN = mDC+mICNM->StdCorrect(aC.Nuage(),*itIm1,true);
       cElNuage3DMaille * aNuage = cElNuage3DMaille::FromFileIm(aNameN);
       cObsLiaisonMultiple* aPackM = PackMulOfIndAndNale(anEM.IdBdLiaisonIn(),*itIm1);

       const std::vector<cOneElemLiaisonMultiple *>  & aVELM = aPackM->VPoses();
       for (int aKP=0 ; aKP<int(aVELM.size()) ; aKP++)
       {
          cPoseCam * aPose2Compl = aVELM[aKP]->Pose();
          ElPackHomologue aPackH;
       
          if (anAutom.Match(aPose2Compl->Name())
              && aPackM->InitPack(aPackH,aPose2Compl->Name())
             )
          {
             for 
             (
                std::list<std::string>::const_iterator itS=aC.ImN().begin(); 
                itS!=aC.ImN().end(); 
                itS++
             )
             {
                if (*itS != *itIm1)
                {
                    ExportMesuresFromCarteProf (anEM,aC,aNuage,aPackH,aPose2Compl,*itS);
                }
             }
             if (anEM.KeyAssocAppuis().IsInit())
             {
                 cListeAppuis1Im aXmlApp; 
                 std::string aNameRes = mDC+mICNM->Assoc1To2(anEM.KeyAssocAppuis().Val(),aPose2Compl->Name(),*itIm1,true);
                 if (anEM.AppuisModeAdd().Val())
                 {
                     if (ELISE_fp::exist_file(aNameRes))
                     {
                        aXmlApp=StdGetObjFromFile<cListeAppuis1Im>
                             (
                                 aNameRes,
                                 StdGetFileXMLSpec("ParamChantierPhotogram.xml"),
                                 "ListeAppuis1Im",
                                 "ListeAppuis1Im"
                             );
                     }
                 }
                 aXmlApp.NameImage().SetVal(aPose2Compl->Name());
                 for 
                 (
                      ElPackHomologue::const_iterator itH=aPackH.begin();
                      itH!=aPackH.end();
                      itH++
                 )
                 {
                    Pt2dr aI1 = aNuage->Plani2Index(itH->P1());
                    if (aNuage->IndexHasContenuForInterpol(aI1))
                    {
                       cMesureAppuis aMA;
                       aMA.Im() = itH->P2();
                       aMA.Ter() = aNuage->PtOfIndexInterpol(aI1);
                       aXmlApp.Mesures().push_back(aMA);
                    }
                 }
                 MakeFileXML<cListeAppuis1Im>(aXmlApp, aNameRes);

             }
          }
       }

       delete aNuage;
    }
}