int Mesh::meshInit(double meshsize, long npart, int wlmtype, Vector box, std::vector<Particle >* pvec) { // int i; int maxsize,length; dim[0] = (int)(box.x/meshsize); dim[1] = (int)(box.y/meshsize); if ( data != NULL ) free(data); if ( tmp != NULL ) free(tmp); length = dim[0] * dim[1]; data = (int*) malloc( sizeof(int)* (length)); tmp = (int*) malloc( sizeof(int)* (length+1)); /* fill the mesh with particles*/ meshFill(npart, wlmtype, pvec); /* perfrom hole cluster algorithm */ maxsize = findHoles(); /*DEBUG printf("maxsize: %d\n",maxsize); printf("mesh:\n"); for (i=0;i<mesh.dim[0]*mesh.dim[1];i++) { printf("%d ",mesh.data[i]); if ( ((i+1) % mesh.dim[0]) == 0) printf("\n"); }*/ return maxsize; }
void Peg::mousePressEvent(QGraphicsSceneMouseEvent* event) { findHoles(); m_board->setHighlight(m_holes, true); setZValue(3); setCursor(Qt::ClosedHandCursor); QGraphicsEllipseItem::mousePressEvent(event); }
void Mesh::print() { int i; printf("mesh:\n"); for (i=0; i<dim[0] * dim[1]; i++) { printf("%d ",data[i]); if ( ((i+1) % dim[0]) == 0) printf("\n"); } printf("hole %d:\n", findHoles() ); printf("\n"); }