void Trace::addAssignment(Matrix* M, vector<unsigned int> idxM, Matrix* S, vector<unsigned int> idxS, Matrix* STrans, const double score, const unsigned int iterationID) { if(idxM.size() != idxS.size()) { LOGMSG(DBG_ERROR, "Size of model and scene assignment vectors must be equal"); return; } double** rawScene; System<double>::allocate((*STrans).getCols(), 2, rawScene); for(unsigned int j=0; j<(*STrans).getCols(); j++) { rawScene[j][0] = (*STrans)(0, j); rawScene[j][1] = (*STrans)(1, j); } vector<StrTraceCartesianPair> tracePair; for(unsigned int i=0; i<idxM.size(); i++) { StrTraceCartesianPair p; p.first[0] = (*M)(idxM[i], 0); p.first[1] = (*M)(idxM[i], 1); p.second[0] = (*S)(idxS[i], 0); p.second[1] = (*S)(idxS[i], 1); tracePair.push_back(p); } vector<unsigned int> id; id.push_back(iterationID); id.push_back(idxM[0]); id.push_back(idxS[0]); addAssignment(rawScene, STrans->getCols(), tracePair, score, id); System<double>::deallocate(rawScene); }
void AddAssignmentDialog::connectWidgets() { connect(cancelButton, SIGNAL(clicked()), this, SLOT(close())); connect(boxOne, SIGNAL(textChanged(QString)), this, SLOT(enableSubmitButton(QString))); connect(boxTwo, SIGNAL(textChanged(QString)), this, SLOT(enableSubmitButton(QString))); connect(submitButton, SIGNAL(clicked()), this, SLOT(addAssignment())); }