// OpenGl transforms in C and mapped to C++
glMatrixMode ( GL_MODELVIEW );
glLoadIdentity ( );
glScaled ( sx, sy, 1.0 ); // 2D scale
glScaled ( sx, sy, sz ); // 3D
glTranslated ( dx, dy, 0 ); // 2D translate
glTranslated ( dx, dy, dz ); // 3D
glRotated ( angle, 0.0, 0.0, 1.0 ); // 2D rotate
glRotated ( angle, ux, uy, uz ); // 3D
// C++ mapping
// init CT
void Canvas :: initCT ( void )
{
glMatrixMode ( GL_MODELVIEW );
glLoadIdentity ( );
}
// 2D scale
void Canvas :: scale2D ( double sx, double sy )
{
glMatrixMode ( GL_MODELVIEW );
glScaled ( sx, sy, 1.0 ); // set CT to CT * ( 2D scale )
}
// 2D translate
void Canvas :: translate2D ( double dx, double dy )
{
glMatrixMode ( GL_MODELVIEW );
glTranslated ( dx, dy, 1.0 ); // set CT to CT * ( 2D xlate )
}
// 2D rotate
void Canvas :: rotate2D ( double angle )
{
glMatrixMode ( GL_MODELVIEW );
glRotated ( angle, 0.0, 0.0, 1.0 ); // set CT to CT * ( 2D rotate )
}
© 2006 G. Hill Price
All Rights Reserved