cCompiledObsRelGPS::cCompiledObsRelGPS ( cAppliApero & anAppli, cDeclareObsRelGPS aXML ) : mXML (aXML), mAppli (&anAppli) { cElRegex anAutom(mXML.PatternSel(),10); const std::vector<cPoseCam*> & aVP = mAppli->VecAllPose(); for (int aKP=0 ; aKP<int(aVP.size()) ; aKP++) { cPoseCam * aPose = aVP[aKP]; if (anAutom.Match(aPose->Name())) { mVOrderedPose.push_back(aPose); } } cCmpPtrPoseTime aCmp; std::sort(mVOrderedPose.begin(),mVOrderedPose.end(),aCmp); for (int aKP=1 ; aKP<int(mVOrderedPose.size()) ; aKP++) { cPoseCam * aPC1 = mVOrderedPose[aKP-1]; cPoseCam * aPC2 = mVOrderedPose[aKP]; mVObs.push_back(mAppli->SetEq().NewEqRelativeGPS(aPC1->RF(),aPC2->RF())); // std::cout << "TTTT " << mVOrderedPose[aKP]->Name() << " " << mVOrderedPose[aKP]->Time() - mVOrderedPose[aKP-1]->Time() << "\n"; } }
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; } }