#include #include #include /* The cube definition */ float v0[3] = {0.0, 0.0, 0.0}; float v1[3] = {1.0, 0.0, 0.0}; float v2[3] = {1.0, 1.0, 0.0}; float v3[3] = {0.0, 1.0, 0.0}; float v4[3] = {0.0, 0.0, 1.0}; float v5[3] = {1.0, 0.0, 1.0}; float v6[3] = {1.0, 1.0, 1.0}; float v7[3] = {0.0, 1.0, 1.0}; void drawcube(int wire) /* Draw a colored cube */ { if (wire) bgnclosedline(); else bgnpolygon(); cpack(0xff0000); v3f(v0); v3f(v1); v3f(v2); v3f(v3); if (wire) endclosedline(); else endpolygon(); if (wire) bgnclosedline(); else bgnpolygon(); cpack(0xffff00); v3f(v4); v3f(v5); v3f(v6); v3f(v7); if (wire) endclosedline(); else endpolygon(); if (wire) bgnclosedline(); else bgnpolygon(); cpack(0xff00ff); v3f(v0); v3f(v1); v3f(v5); v3f(v4); if (wire) endclosedline(); else endpolygon(); if (wire) bgnclosedline(); else bgnpolygon(); cpack(0x00ffff); v3f(v2); v3f(v3); v3f(v7); v3f(v6); if (wire) endclosedline(); else endpolygon(); if (wire) bgnclosedline(); else bgnpolygon(); cpack(0x00ff00); v3f(v0); v3f(v4); v3f(v7); v3f(v3); if (wire) endclosedline(); else endpolygon(); if (wire) bgnclosedline(); else bgnpolygon(); cpack(0x0000ff); v3f(v1); v3f(v2); v3f(v6); v3f(v5); if (wire) endclosedline(); else endpolygon(); } void redraw(int wire,float size,float speed) /* redraw the window */ { static float lasttime = 0.0; lasttime = lasttime+1; zclear(); cpack(0); clear(); pushmatrix(); rot(lasttime*1.6,'Z'); rot(lasttime*4.2,'X'); rot(lasttime*2.3,'Y'); translate(-1.0,1.2,-1.5); scale(1,1,1); drawcube(0); popmatrix(); /* swapbuffers();*/ } oldmain() { static float lasttime = 0.0; lasttime = lasttime+1; zclear(); cpack(0); clear(); pushmatrix(); rot(lasttime*1.6,'Z'); rot(lasttime*4.2,'X'); rot(lasttime*2.3,'Y'); translate(-1.0,1.2,-1.5); scale(1,1,1); drawcube(0); popmatrix(); /* redraw(0,1,1);*/ }