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; }
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; }
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; } }