Ejemplo n.º 1
0
//Fabricate some test faces (random subset of points)
void makeFaces(int *facesA,int *facesB) {
  for (int f=0;f<nFaces;f++) {
    int *fa=&facesA[f*nPer];
    int *fb=&facesB[f*nPer];
    
    bool doSkip=true;
    for (int i=0;i<nPer;i++) {
      int na=randNo(aPoints);
      bool repeat=true; //Did we hit a repeated point?
      do {
        repeat=false;
	for (int j=0;j<i;j++)
	  if (na==fa[j]) { //It's a repetition-- try again
	    na=randNo(aPoints);
	    repeat=true;
	    break;
	  }
      } while (repeat); 
      if (doSkip && randVal(1.0)<0.1) {
        fa[i]=fb[i]=-1; //Skip this node
	doSkip=false;
      }
      else {
        fa[i]=na;
        fb[i]=na+a2bPoints;
      }
    }
  }
}
Ejemplo n.º 2
0
//-----------------------------------------------------------------------------
void CChatterboxCtrl::switchTask()
{
  unsigned int taskId = 0;
  int num;
  int r;

  if (mCurrentTaskPtr == NULL) {

    r = (int)round(randNo(0, mTaskVector.size()-1) );
    mCurrentTaskPtr = mTaskVector[r];
  }
  else {
    mRedisClient->decrement(mCurrentTaskPtr->getName()+".numRobots", num);
    for (unsigned int i = 0; i < mTaskVector.size(); i++) {
      if (mCurrentTaskPtr == mTaskVector[i])
        taskId = i;
    }
    taskId ++;
    if (taskId >= mTaskVector.size() )
      taskId = 0;
    mCurrentTaskPtr = mTaskVector[taskId];
  }
  assert(mCurrentTaskPtr);
  mRedisClient->increment(mCurrentTaskPtr->getName()+".numRobots", num);
}