I havent forgotten about Jim's ptc / Direct X library. Im toying between the two sides software and hardware.
Now that I've got VC++ Express 2010 installed, I thought I'd try a bit of Open GL for a change, and Im going to try and best explain this problem.
In Blitz3D you'd use a pivot to control a group of entitys; so they rotate / turn at the same ratios, and say for example you wanted them all to slope down. All the children dance the same manner.
What I'd like to know is how to incorparate such a thing.
I've whipped up a bit of psuedo code, if it's helpfull.
void update_cubes( cube_pivot )
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
for ( int a=0; a<MAX_CUBES; a++ )
{
render_flat_shaded_cubes( cube_pivot, flt_pos_x[a], flt_pos_y[a], flt_pos_z[a],1.0f,1.0f,1.0f );
}
}
void render_flat_shaded_cubes( control_pivot, float pos_x, float pos_y, float pos_z, float scale_x, float scale_y, float scale_z )
{
glLoadIdentity();
// set positions.
glTranslatef( pos_x, pos_y, pos_z );
//glRotatef ( angle_x,1.0f,0.60f,0.80f);
glBegin(GL_QUADS); // Draw A Quad
glColor3f(0.5f,0.5f,1.0f);
// 1st side
glVertex3f( -scale_x,-scale_y,-scale_z );// 0,1)
glVertex3f( -scale_x, scale_y,-scale_z );//, 0,0)
glVertex3f( scale_x, scale_y,-scale_z );//, 1,0)
glVertex3f( scale_x,-scale_y,-scale_z );//, 1,1)
glColor3f(0.25f,0.5f,1.0f);
// 2nd side
glVertex3f(-scale_x,-scale_y, scale_z); // Top Left
glVertex3f(-scale_x, scale_y, scale_z); // Top Right
glVertex3f(-scale_x, scale_y, -scale_z); // Bottom Right
glVertex3f(-scale_x,-scale_y, -scale_z); // Bottom Left
glColor3f(0.5f,1.0f,0.5f);
// 3rd side.
glVertex3f( scale_x,-scale_y, scale_z); // Top Left
glVertex3f( scale_x, scale_y, scale_z); // Top Right
glVertex3f(-scale_x, scale_y, scale_z); // Bottom Right
glVertex3f(-scale_x,-scale_y, scale_z); // Bottom Left
glColor3f(1.0f,0.5f,0.0f);
// 4th side.
glVertex3f( scale_x,-scale_y, -scale_z); // Top Left
glVertex3f( scale_x, scale_y, -scale_z); // Top Right
glVertex3f( scale_x, scale_y, scale_z); // Bottom Right
glVertex3f( scale_x,-scale_y, scale_z); // Bottom Left
glColor3f(0.25f,0.5f,.20f);
// 5th side.
glVertex3f( -scale_x, scale_y, -scale_z); // Top Left
glVertex3f( -scale_x, scale_y, scale_z); // Top Right
glVertex3f( scale_x, scale_y, scale_z); // Bottom Right
glVertex3f( scale_x, scale_y, -scale_z); // Bottom Left
glColor3f(0.25f,1.0f,.10f);
// 6th side.
glVertex3f( -scale_x, -scale_y, scale_z); // Top Left
glVertex3f( -scale_x, -scale_y, -scale_z); // Top Right
glVertex3f( scale_x, -scale_y, -scale_z); // Bottom Right
glVertex3f( scale_x, -scale_y, scale_z); // Bottom Left
glEnd();
}
Cheers all!