cPolynFormelXY::cPolynFormelXY ( const Polynome2dReal & aPol, cSetEqFormelles & aSet, bool isX ) : cElemEqFormelle(aSet,false), mPolInit (aPol), mPolCur (aPol), mIsX (isX), mPolXYTol (cContrainteEQF::theContrStricte) { for (INT aK = 0 ; aK<mPolCur.NbMonome() ; aK++) { vCOeffs.push_back(aSet.Alloc().NewF(&mPolCur.Coeff(aK))); mFige.push_back(true); } CloseEEF(); }
cHomogFormelle::cHomogFormelle ( const cElHomographie & anHomog, cSetEqFormelles & aSet, eModeContrHom aModeContr ) : cElemEqFormelle(aSet,false), mHomInit (anHomog), mCurHom (anHomog), mCX (mCurHom.HX(),aSet,false), mCY (mCurHom.HY(),aSet,false), mCZ (mCurHom.HZ(),aSet,true), mModeContr (aModeContr), mHomFTol (cContrainteEQF::theContrStricte) { CloseEEF(); for (int aK=0 ; aK<0 ; aK++) { cElComposHomographie aHX = mHomInit.HX(); cElComposHomographie aHY = mHomInit.HY(); cElComposHomographie aHZ = mHomInit.HZ(); Pt2dr aP(NRrandom3()*100,NRrandom3()*100); Pt2dr aQ = mHomInit.Direct(aP); Pt2dr aR = InvHom( aHX.CoeffX(), aHX.CoeffY(), aHX.Coeff1(), aHY.CoeffX(), aHY.CoeffY(), aHY.Coeff1(), aHZ.CoeffX(), aHZ.CoeffY(), aQ.x,aQ.y ); double aDist = euclid(aP,aR); std::cout << "TESINV HOM " << aP << aR << aDist << " B=" << aHX.CoeffY() << "\n"; ELISE_ASSERT(aDist<1e-5,"TESINV HOM "); } }
cDistRadialeFormelle::cDistRadialeFormelle ( bool asIntervBlock, bool isCFige, int aDegFig, const ElDistRadiale_PolynImpair & aDist, cSetEqFormelles & aSet, cCamStenopeModStdPhpgr * aDP ) : cElemEqFormelle(aSet,false), mCentreFige (isCFige), mDegreFige (aDegFig), mDistInitStd (aDist), mCurDistStd (aDist), mDistInit (mDistInitStd.DRad()), mCurDist (mCurDistStd.DRad()), mIndCentre (aSet.Alloc().CurInc()), mFCentre (aSet.Alloc().NewPt2(mCurDist.Centre())), mTolCDist (cContrainteEQF::theContrStricte), mTolCoeffs (cContrainteEQF::theContrStricte) { if (aDP) { mCurDistStd.P1() = aDP->DModPhgrStd().P1(); mCurDistStd.P2() = aDP->DModPhgrStd().P2(); mCurDistStd.b1() = aDP->DModPhgrStd().b1(); mCurDistStd.b2() = aDP->DModPhgrStd().b2(); } for (INT aK=0 ; aK<INT(mCurDist.NbCoeff()) ; aK++) { mFCoeffs.push_back(aSet.Alloc().NewF(&(mCurDist.Coeff(aK)))); } CloseEEF(asIntervBlock); /// std::cout << "VPPPPPPPpp " << mCurDist.RMax() << "\n"; getchar(); }