std::string cInterfChantierNameManipulateur::NamePackWithAutoSym
            (
                        const std::string & aKey,
                        const std::string & aName1,
                        const std::string & aName2,
                        bool aSVP
            )
{
   std::string aN12_SsDir = Assoc1To2(aKey,aName1,aName2,true);
   std::string aN12 = mDir+aN12_SsDir;
   if (! ELISE_fp::exist_file(aN12))
   {
      std::string aN21 =mDir+ Assoc1To2(aKey,aName2,aName1,true);
      if (! ELISE_fp::exist_file(aN21))
      {
          if (aSVP)
             return aN12_SsDir;
          std::cout << "For K=" << aKey 
                    << " N1=" << aName1 
                    << " N2=" << aName2 << "\n";
          std::cout << aN12 << "\n";
          std::cout << aN21 << "\n";
          ELISE_ASSERT(false,"Ni fichier homoloque ni symetrique n'existe");
      }
      ElPackHomologue aPack = ElPackHomologue::FromFile(aN21);
      aPack.SelfSwap();
      aPack.StdPutInFile(aN12);
        
   }
   return aN12_SsDir;
}
Ejemplo n.º 2
0
bool cPackObsLiaison::InitPack
     (
          ElPackHomologue & aPack,
          const std::string& aNN1, 
          const std::string& aNN2
     )
{
     std::string aN1 = mAppli.PoseFromName(aNN1)->Name();
     std::string aN2 = mAppli.PoseFromName(aNN2)->Name();
     if (mIsMult)
     {
        if (DicBoolFind(mDicoMul,aN1) &&  mDicoMul[aN1]->InitPack(aPack,aN2))
	{
           return false;
	}

        if (DicBoolFind(mDicoMul,aN2) &&  mDicoMul[aN2]->InitPack(aPack,aN1))
	{
           aPack.SelfSwap();
           return true;
	}
     }
     else
     {
         cObservLiaison_1Cple * aO2 = mDicObs[aN1][aN2];
         if (aO2)
         {
             aPack = aO2->Pack();
	     return false;
         }
         aO2 = mDicObs[aN2][aN1];
         if (aO2)
         {
            aPack = aO2->Pack();
            aPack.SelfSwap();
            return true;
         }
    }
    std::cout << " For : " << mId << " " << aN1 <<  " " << aN2 << "\n"; 
    std::cout << " Mult " << mIsMult << "\n";
    ELISE_ASSERT(false,"Cannot find liaison");
    return false;
}
Ejemplo n.º 3
0
void cAppliApero::ExportMesuresFromCarteProf
     (
          const cExportMesuresFromCarteProf & anEM,
          const cCartes2Export &              aC,
          cElNuage3DMaille *                  aNuage,
          const ElPackHomologue &             aPackH,
          cPoseCam *                          aPose2Compl,
          const std::string &                 aNameCarte
     )
{
   if (aNameCarte == aPose2Compl->Name())
      return;
   if (  
           (! anEM.KeyAssocLiaisons12().IsInit())
        && (! anEM.KeyAssocLiaisons21().IsInit())
      )
  {
     return;
  }

  cPoseCam * aPoseCarte = PoseFromName(aNameCarte);
  const CamStenope * aCSC = aPoseCarte->CurCam();
  Pt2di aSzIm = aCSC->Sz();

  ElPackHomologue aNewPack;

  for 
  (
       ElPackHomologue::const_iterator itH=aPackH.begin();
       itH!=aPackH.end();
       itH++
  )
  {
      Pt2dr aI1 = aNuage->Plani2Index(itH->P1());
      if (aNuage->IndexHasContenuForInterpol(aI1))
      {
          Pt3dr aPTer = aNuage->PtOfIndexInterpol(aI1);
          Pt2dr aP1 = aCSC->R3toF2(aPTer);
          if ((aP1.x>0) && (aP1.y>0) && (aP1.x<aSzIm.x) && (aP1.y<aSzIm.y))
          {
              aNewPack.Cple_Add(ElCplePtsHomologues(aP1,itH->P2()));
          }
      }
  }

  if (anEM.KeyAssocLiaisons12().IsInit())
  {
     std::string aName =    mDC  
                          + mICNM->Assoc1To2
                            (
                                anEM.KeyAssocLiaisons12().Val(),
                                aNameCarte,
                                aPose2Compl->Name(),
                                true
                            );
     if (anEM.LiaisonModeAdd().Val())
        aNewPack.StdAddInFile(aName);
     else
        aNewPack.StdPutInFile(aName);
  }

  if (anEM.KeyAssocLiaisons21().IsInit())
  {
     std::string aName =    mDC  
                          + mICNM->Assoc1To2
                            (
                                anEM.KeyAssocLiaisons21().Val(),
                                aPose2Compl->Name(),
                                aNameCarte,
                                true
                            );
     aNewPack.SelfSwap();
     if (anEM.LiaisonModeAdd().Val())
        aNewPack.StdAddInFile(aName);
     else
        aNewPack.StdPutInFile(aName);
  }




}