For OpenGL visualization of the two dimensional soft body I used type which gave me simply way to draw filled body. Below a complete GLUT callback procedure which draw a body in a GLUT window is presented:
void Draw(void) { int i; glClearColor(1,1,1,0); glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_QUADS); for(i = 1 ; i <= NUMS-1 ; i++) { glColor3f(1,0.4,0.4); glVertex2f(myPoints[ mySprings[i].i ].x, myPoints[ mySprings[i].i ].y); glVertex2f(myPoints[ mySprings[i].j ].x, myPoints[ mySprings[i].j ].y); glVertex2f(myPoints[ NUMP - mySprings[i].i + 1].x, myPoints[ NUMP - mySprings[i].i + 1].y); glVertex2f(myPoints[ NUMP - mySprings[i].j + 1].x, myPoints[ NUMP - mySprings[i].j + 1].y); } glEnd(); glutSwapBuffers(); }
As we see in above code we simply draw QUADS (i,j,NUMP-i+1,NUMP-i+1), it is done as simply as possible and of course some nice features can be added here easly (normal/velocity vectors drawing, color differences while pressure changes etc.).