void C3DGraphEvaluateDlg::OnDropdownEq() 
{
	UpdateData(true);
	int base = m_Calculator->m_base;
	m_Calculator->m_base = 10;

	int cur_sel_index(0);

	m_EqCtrl.ResetContent();
	int count(0);
	for(int i(0); i < MAX_3D_EQS; ++i){
		if(m_Eqs[i].on){
			if(i < (m_iEq - 1))
				++cur_sel_index;

			CString str;
			m_Calculator->DecimalToString(str, i+1);
			m_EqCtrl.InsertString(count++, str);
		}
	}

	if(m_EqCtrl.GetCount() == 0){
		m_EqCtrl.InsertString(0, "0");
		m_iEq = 0;
	}

	m_EqCtrl.SetCurSel(cur_sel_index);	
	m_EqCtrl.Invalidate();
	m_Calculator->m_base = base;
	UpdateData(false);	

	UpdateEq();
	UpdateZ();
}
Exemplo n.º 2
0
void compareZCLandZ(CLDict *clDict,int *OrigZ, float *Q, float *P,int *Geno,
                    float *randomArr)
{
    int *OldZ;
    int *Z;
    int ret;

    /*Allocate memory and copy the original over, so that it doesn't interfere */
    OldZ = calloc(ZSIZE,sizeof(int));
    Z = calloc(ZSIZE,sizeof(int));
    memcpy(Z,OrigZ,ZSIZE*sizeof(int));

    /*UpdateZ only writes to Z */
    UpdateZ(Z,Q,P,Geno,randomArr);
    memcpy(OldZ,Z,ZSIZE*sizeof(int));
    UpdateZCL(clDict,Z,Q,P,Geno,randomArr);
    ret = compareArrs(Z,OldZ,ZSIZE,"Z and old Z");
    if (ret == EXIT_FAILURE) {
        ReleaseCLDict(clDict);
        exit(EXIT_FAILURE);
    }

    free(OldZ);
    free(Z);
}
/////////////////////////////////////////////////////////////////////////////
// C3DGraphEvaluateDlg message handlers
BOOL C3DGraphEvaluateDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// Initialize equation field with active equations
	int count(0), i(0);
	int base = m_Calculator->m_base;
	m_Calculator->m_base = 10;

	for(i; i < MAX_3D_EQS; ++i){
		if(m_Eqs[i].on){
			CString str;
			m_Calculator->DecimalToString(str, i+1);
			m_EqCtrl.InsertString(count++, str);
		}
	}
	m_EqCtrl.SetCurSel(0);

	for(i = 0; i < MAX_3D_EQS; ++i){
		if(m_Eqs[i].on){
			m_sEq = m_Eqs[i].eq;
			break;
		}
	}
	m_Calculator->m_base = base;

	UpdateEq();
	UpdateZ();
	
	switch(m_Mode){
	case EUCLIDEAN:	
		SetDlgItemText(IDC_X_TEXT, "x");
		SetDlgItemText(IDC_Y_TEXT, "y");
		break;
	case POLAR:	
		SetDlgItemText(IDC_X_TEXT, "r");
		SetDlgItemText(IDC_Y_TEXT, "t");
		break;
	}
	
	// END ////////////////////////////////////////////	
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void C3DGraphEvaluateDlg::OnChangeY(){	UpdateZ(); }
void C3DGraphEvaluateDlg::OnSelchangeEq() 
{
	UpdateEq();
	UpdateZ();
}