template <class Type,class TBase> cElNuage3DMaille_FromImProf<Type,TBase>::cElNuage3DMaille_FromImProf ( const std::string & aDir, const cXML_ParamNuage3DMaille & aNuage, Fonc_Num aFMasq, Fonc_Num aFProf, bool WithEmpyData, bool aDequant ) : cElNuage3DMaille(aDir,aNuage,aFMasq,WithEmpyData), mIm (mSzData.x,mSzData.y), mTIm (mIm), mProf0 (aNuage.Image_Profondeur().Val().OrigineAlti()), mResolProf (aNuage.Image_Profondeur().Val().ResolutionAlti()), mDequant (aDequant) { if (mDequant && (!WithEmpyData)) { ElImplemDequantifier aDeq(mSzData); aDeq.DoDequantif(mSzData,aFProf); ELISE_COPY(mIm.all_pts(),aDeq.ImDeqReelle(),mIm.out()); } else { ELISE_COPY ( mIm.all_pts(), aFProf, mIm.out()); } }
Fonc_Num AdaptDynOut(Fonc_Num aFonc,const cXML_ParamNuage3DMaille & aTargetNuage,const cXML_ParamNuage3DMaille & aCurNuage) { const cImage_Profondeur & ipIn = aCurNuage.Image_Profondeur().Val(); const cImage_Profondeur & ipOut = aTargetNuage.Image_Profondeur().Val(); aFonc = aFonc* ipIn.ResolutionAlti() +ipIn.OrigineAlti(); aFonc = (aFonc-ipOut.OrigineAlti()) / ipOut.ResolutionAlti() ; return aFonc; }
Fonc_Num Pix2Pix ( const cXML_ParamNuage3DMaille &Out, const cXML_ParamNuage3DMaille & In, const std::string & aDir ) { const cImage_Profondeur & aIP = In.Image_Profondeur().Val(); return Pix2Pix ( Out, Tiff_Im::StdConvGen(aDir+aIP.Image(),1,true,false).in(), In ); }
Fonc_Num Z2Pix(const cXML_ParamNuage3DMaille & aCloud,Fonc_Num aF) { const cImage_Profondeur & aIP = aCloud.Image_Profondeur().Val(); return (aF-aIP.OrigineAlti()) / aIP.ResolutionAlti() ; }
Fonc_Num Pix2Z(const cXML_ParamNuage3DMaille & aCloud,Fonc_Num aF) { const cImage_Profondeur & aIP = aCloud.Image_Profondeur().Val(); return aIP.OrigineAlti() + aIP.ResolutionAlti() * aF ; }