示例#1
0
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()));
}