void Server::drawPolygon( ofPtr<Polygon> polygon ) { Vertex currentVertex; Vertex prevVertex; //= currentPolygon->getScalatedVertex(0); float distance; prevVertex = polygon->getScalatedVertex(0); // Place brick in the first position of the poligon moveForNextPoint(prevVertex, polygon->getVector(0) ); unsigned int i = 1; // Iterate for all other vertices, but last one for(; i < polygon->getSize() - 1; i++){ //Advance until next vertex currentVertex = polygon->getScalatedVertex(i); distance = prevVertex.distance(currentVertex); sendMessage(distance*MOVE_FACTOR, distance*MOVE_FACTOR, PEN_DOWN); brickPosition[X] += brickAngle[X]*distance; brickPosition[Y] += brickAngle[Y]*distance; //Move the brick so it can draw next line moveForNextPoint(currentVertex, polygon->getVector(i)); prevVertex = currentVertex; } //Advance to draw the last line currentVertex = polygon->getScalatedVertex(i); distance = prevVertex.distance(currentVertex); sendMessage(distance*MOVE_FACTOR, distance*MOVE_FACTOR, PEN_DOWN); brickPosition[X] += brickAngle[X]*distance; brickPosition[Y] += brickAngle[Y]*distance; if( lock() ){ polygons.erase(polygons.begin()); unlock(); }else{ cout << "Server: lock is supposed to be bloking, noooo\n"; } }