void RS_DimDiametric::moveRef(const RS_Vector& ref, const RS_Vector& offset) { if (ref.distanceTo(edata.definitionPoint)<1.0e-4) { RS_Vector c = (edata.definitionPoint + data.definitionPoint)/2.0; double d = c.distanceTo(edata.definitionPoint); double a = c.angleTo(edata.definitionPoint + offset); RS_Vector v = RS_Vector::polar(d, a); edata.definitionPoint = c + v; data.definitionPoint = c - v; updateDim(true); } else if (ref.distanceTo(data.definitionPoint)<1.0e-4) { RS_Vector c = (edata.definitionPoint + data.definitionPoint)/2.0; double d = c.distanceTo(data.definitionPoint); double a = c.angleTo(data.definitionPoint + offset); RS_Vector v = RS_Vector::polar(d, a); data.definitionPoint = c + v; edata.definitionPoint = c - v; updateDim(true); } else if (ref.distanceTo(data.middleOfText)<1.0e-4) { data.middleOfText.move(offset); updateDim(false); } }
void CRSAFactorHintDlg::OnRadiochoice() { UpdateData(); bool b=(m_choice==0); ((CEdit*)GetDlgItem(IDC_EDITN))->SetReadOnly(!b); ((CEdit*)GetDlgItem(IDC_EDITGUESSP_LEFT))->SetReadOnly(!b); ((CEdit*)GetDlgItem(IDC_EDITGUESSP_RIGHT))->SetReadOnly(!b); ((CEdit*)GetDlgItem(IDC_EDITBITSOFN))->SetReadOnly(b); ((CEdit*)GetDlgItem(IDC_EDITB))->SetReadOnly(b); GetDlgItem(IDC_R)->EnableWindow(!b); GetDlgItem(IDC_BUTTONDEFAULT)->EnableWindow(!b); m_N=to_ZZ(0); m_p=to_ZZ(0); m_GuessP=to_ZZ(0); updateNP(); if(b){//user values SetDlgItemText(IDC_EDITBITSOFN,"200"); SetDlgItemText(IDC_EDITBITSOFP,""); SetDlgItemText(IDC_EDITB,""); }else{ SetDlgItemText(IDC_EDITBITSOFN,"200"); SetDlgItemText(IDC_EDITBITSOFP,"100"); SetDlgItemText(IDC_EDITB,"80"); } UpdateData(false); updateDim(); }
void RS_DimRadial::moveRef(const RS_Vector& ref, const RS_Vector& offset) { if (ref.distanceTo(edata.definitionPoint)<1.0e-4) { double d = data.definitionPoint.distanceTo(edata.definitionPoint); double a = data.definitionPoint.angleTo(edata.definitionPoint + offset); RS_Vector v; v.setPolar(d, a); edata.definitionPoint = data.definitionPoint + v; updateDim(true); } else if (ref.distanceTo(data.middleOfText)<1.0e-4) { data.middleOfText.move(offset); updateDim(false); } }
void RS_DimAligned::moveRef(const RS_Vector& ref, const RS_Vector& offset) { if (ref.distanceTo(data.definitionPoint)<1.0e-4) { RS_ConstructionLine l(nullptr, RS_ConstructionLineData(edata.extensionPoint1, edata.extensionPoint2)); double d = l.getDistanceToPoint(data.definitionPoint+offset); double a = edata.extensionPoint2.angleTo(data.definitionPoint); double ad = RS_Math::getAngleDifference(a, edata.extensionPoint2.angleTo(data.definitionPoint+offset)); if (fabs(ad)>M_PI_2 && fabs(ad)<3.0/2.0*M_PI) { a = RS_Math::correctAngle(a+M_PI); } RS_Vector v = RS_Vector::polar(d, a); data.definitionPoint = edata.extensionPoint2 + v; updateDim(true); } else if (ref.distanceTo(data.middleOfText)<1.0e-4) { data.middleOfText.move(offset); updateDim(false); } else if (ref.distanceTo(edata.extensionPoint1)<1.0e-4) { double a1 = edata.extensionPoint2.angleTo(edata.extensionPoint1); double a2 = edata.extensionPoint2.angleTo(edata.extensionPoint1+offset); double d1 = edata.extensionPoint2.distanceTo(edata.extensionPoint1); double d2 = edata.extensionPoint2.distanceTo(edata.extensionPoint1+offset); rotate(edata.extensionPoint2, a2-a1); if (fabs(d1)>1.0e-4) { scale(edata.extensionPoint2, RS_Vector(d2/d1, d2/d1)); } updateDim(true); } else if (ref.distanceTo(edata.extensionPoint2)<1.0e-4) { double a1 = edata.extensionPoint1.angleTo(edata.extensionPoint2); double a2 = edata.extensionPoint1.angleTo(edata.extensionPoint2+offset); double d1 = edata.extensionPoint1.distanceTo(edata.extensionPoint2); double d2 = edata.extensionPoint1.distanceTo(edata.extensionPoint2+offset); rotate(edata.extensionPoint1, a2-a1); if (fabs(d1)>1.0e-4) { scale(edata.extensionPoint1, RS_Vector(d2/d1, d2/d1)); } updateDim(true); } }
void CRSAFactorHintDlg::OnChangeEditb() { UpdateData(); if(m_choice==1){ updateP(); } updateDim(); }
void RS_DimLinear::moveRef(const RS_Vector& ref, const RS_Vector& offset) { if (ref.distanceTo(data.definitionPoint)<1.0e-4) { data.definitionPoint += offset; updateDim(true); } else if (ref.distanceTo(data.middleOfText)<1.0e-4) { data.middleOfText += offset; updateDim(false); } else if (ref.distanceTo(edata.extensionPoint1)<1.0e-4) { edata.extensionPoint1 += offset; updateDim(true); } else if (ref.distanceTo(edata.extensionPoint2)<1.0e-4) { edata.extensionPoint2 += offset; updateDim(true); } }
void CRSAFactorHintDlg::OnChangeEditbitsofp() { UpdateData(); if(m_choice==1){ m_N=to_ZZ(0); m_p=to_ZZ(0); m_GuessP=to_ZZ(0); updateNP(); } updateDim(); }
void CRSAFactorHintDlg::OnRadiolsb() { UpdateData(); if(m_choice==1) updateP(); GetDlgItem(IDC_EDITGUESSP_LEFT)->ShowWindow(m_msbLsb==0); GetDlgItem(IDC_EDITGUESSP_RIGHT)->ShowWindow(m_msbLsb==1); GetDlgItem(IDC_EDITP_LEFT)->ShowWindow(m_msbLsb==0); GetDlgItem(IDC_EDITP_RIGHT)->ShowWindow(m_msbLsb==1); ((CEdit*)GetDlgItem(IDC_EDITP_RIGHT))->SetSel(0,-1); ((CEdit*)GetDlgItem(IDC_EDITGUESSP_RIGHT))->SetSel(0,-1); updateDim(); }
void CRSAFactorHintDlg::OnChangeEditn() { updateDim(); ZZ N; if(m_base==0){ NTLExpPars myPars; CString tmp; GetDlgItemText(IDC_EDITN, tmp); N = myPars.parseExp(tmp); }else N=GetDlgItemZZ(IDC_EDITN,(m_base*6+10)%20); m_bitsOfN=(int)NumBits(N); UpdateData(false); }
void RS_DimLinear::stretch(const RS_Vector& firstCorner, const RS_Vector& secondCorner, const RS_Vector& offset) { //e->calculateBorders(); if (getMin().isInWindow(firstCorner, secondCorner) && getMax().isInWindow(firstCorner, secondCorner)) { move(offset); } else { //RS_Vector v = data.definitionPoint - edata.extensionPoint2; //double len = edata.extensionPoint2.distanceTo(data.definitionPoint); //double ang1 = edata.extensionPoint1.angleTo(edata.extensionPoint2) // + M_PI_2; if (edata.extensionPoint1.isInWindow(firstCorner, secondCorner)) { edata.extensionPoint1.move(offset); } if (edata.extensionPoint2.isInWindow(firstCorner, secondCorner)) { edata.extensionPoint2.move(offset); } /* double ang2 = edata.extensionPoint1.angleTo(edata.extensionPoint2) + M_PI_2; double diff = RS_Math::getAngleDifference(ang1, ang2); if (diff>M_PI) { diff-=2*M_PI; } if (fabs(diff)>M_PI_2) { ang2 = RS_Math::correctAngle(ang2+M_PI); } RS_Vector v; v.setPolar(len, ang2); data.definitionPoint = edata.extensionPoint2 + v; */ } updateDim(true); }
/////////////////////////////////////////// // Create a random example /////////////////////////////////////////// void CRSAFactorHintDlg::OnRandom() { UpdateData(); int m_bitsOfP=GetDlgItemInt(IDC_EDITBITSOFP); if (m_bitsOfN<=10){ CString tmp, myTitle; tmp.LoadString(IDS_RSA_FH_WRONGN); this->GetWindowText(myTitle); MessageBox(tmp,myTitle); } else if(m_bitsOfP<=5 || m_bitsOfP>=m_bitsOfN){ CString tmp, myTitle; tmp.LoadString(IDS_RSA_FH_WRONGP); this->GetWindowText(myTitle); MessageBox(tmp,myTitle); } else{ BeginWaitCursor(); int bitsOfQ=(m_bitsOfN-m_bitsOfP); SetSeed(to_ZZ(GetTime()*10000)); m_p = GenPrime_ZZ(m_bitsOfP); // generate N, p and q ZZ q = GenPrime_ZZ(bitsOfQ); m_N=m_p*q; int newbase=2; // check which representation to use if(m_base==0) newbase=10; if(m_base==1) newbase=16; // m_N=toString(N,newbase,newbase*newbase*2); // m_P=toString(m_p,newbase,newbase*newbase*2); UpdateData(false); updateP(); updateDim(); EndWaitCursor(); } }
void DisplayInternal::displayTick1sec() { ++animationStepTicker1sec; if (allModes[currModeIndex].handlerTick1Sec != nullptr) (*(allModes[currModeIndex].handlerTick1Sec))(*info); // updateMotionDetectedPixel(*info); updateDim(*info); }