# Creating teapot more than once

Hi, i need to know how to create more than 1 teapot in Borland C

Regards,
Orange_82

``````for( int i = 0; i < numTeapots; ++i )
teapot_array[i] = CreateTeapot();
``````

-SirKnight

Originally posted by SirKnight:

``````for( int i = 0; i < numTeapots; ++i )
teapot_array[i] = CreateTeapot();
``````

-SirKnight[/b]
Ya, I know sorry, i didn’t put in the whole question. What I meant is creating 16 teapots and perform translation on them.

What function are you using to draw the teapot?

This example will work under any C/C++ compiler:

glPushMatrix();
glTranslatef( 0,0,0); // location of first teapot
glutSolidTeapot(1); // Draw teapot
glPopMatrix();

glPushMatrix();
glTranslatef( 1,0,0); //location of second teapot
glutSolidTeapot(1);
glPopMatrix();
// repeat above with a new location for each teapot.

Originally posted by Orange_82:
[b]Hi, i need to know how to create more than 1 teapot in Borland C

Regards,
Orange_82[/b]

Originally posted by nexusone:
[b]What function are you using to draw the teapot?

This example will work under any C/C++ compiler:

glPushMatrix();
glTranslatef( 0,0,0); // location of first teapot
glutSolidTeapot(1); // Draw teapot
glPopMatrix();

glPushMatrix();
glTranslatef( 1,0,0); //location of second teapot
glutSolidTeapot(1);
glPopMatrix();
// repeat above with a new location for each teapot.

[quote]Originally posted by Orange_82:
[b]Hi, i need to know how to create more than 1 teapot in Borland C

Regards,
Orange_82[/b]
[/b][/QUOTE]Ermm, i am creating 16 teapots. And I am thinking of using arrays for the glTranslatef but I am not good @ arrays, do you think you can tell me how 2 do it?

try to familiarize yourself with arrays as soon as possible, its absolutely crucial to programming !

anyway how do you want to arrange your teapots ?
like a 4x4 square, or how ?

4x4 square would be easiest with

``````for (x = 0; x < 4; x++){
for (y = 0; y < 4; y++){
glPushMatrix();
glTranslatef( x*2,y*2,0); // location with gaps of 2
glutSolidTeapot(1); // Draw teapot
glPopMatrix();
}
}
``````

if you use a single array to store the teapots positions like 16 * 3 floats
e.g.
GLfloat teaPos = {0,0,1, 0,0,2 ,0,0,3 …};

you could do

``````
for (i = 0; i  < 16; i++){
glPushMatrix();
glTranslatef(teaPos[i*3],teaPos[i*3+1],teaPos[i*3+2]); // location
glutSolidTeapot(1); // Draw teapot
glPopMatrix();
}
``````