void drawBouquet(float r, float g, float b) { mvstack.push(model_view); model_view *= RotateX(-90); set_colour(r,g,b); drawCone(); model_view *= RotateX(90); model_view *= Translate(0.0f, 2.0f, 0.0f); drawFlower(); mvstack.push(model_view); model_view *= RotateZ(25); model_view *= Translate(-1.0f, 0.25f, 0.0f); drawFlower(); model_view = mvstack.pop(); mvstack.push(model_view); model_view *= RotateZ(-25); model_view *= Translate(1.0f, 0.25f, 0.0f); drawFlower(); model_view = mvstack.pop(); model_view = mvstack.pop(); }
/********************************************************* ********************************************************** ********************************************************** PROC: display() DOES: this gets called by the event handler to draw the scene, so this is where you need to build your ROBOT -- MAKE YOUR CHANGES AND ADDITIONS HERE Add other procedures if you like. ********************************************************** ********************************************************** **********************************************************/ void display(void) { // Clear the screen with the background colour (set in myinit) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); model_view = mat4(1.0f); model_view *= Translate(0.0f, -5.0f, -15.0f); HMatrix r; Ball_Value(Arcball,r); mat4 mat_arcball_rot( r[0][0], r[0][1], r[0][2], r[0][3], r[1][0], r[1][1], r[1][2], r[1][3], r[2][0], r[2][1], r[2][2], r[2][3], r[3][0], r[3][1], r[3][2], r[3][3]); model_view *= mat_arcball_rot; glUniformMatrix4fv( uView, 1, GL_TRUE, model_view ); // Previously glScalef(Zoom, Zoom, Zoom); model_view *= Scale(Zoom); //draw objects drawGround(); drawBee(); drawFlower(); glutSwapBuffers(); if(Recording == 1) FrSaver.DumpPPM(Width, Height); }
/********************************************************* ********************************************************** ********************************************************** PROC: display() DOES: this gets called by the event handler to draw the scene, so this is where you need to build your ROBOT -- MAKE YOUR CHANGES AND ADDITIONS HERE Add other procedures if you like. ********************************************************** ********************************************************** **********************************************************/ void display(void) { // Clear the screen with the background colour (set in myinit) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); mat4 model_trans(1.0f); mat4 view_trans(1.0f); view_trans *= Translate(0.0f, 0.0f, -15.0f); HMatrix r; Ball_Value(Arcball, r); mat4 mat_arcball_rot( r[0][0], r[0][1], r[0][2], r[0][3], r[1][0], r[1][1], r[1][2], r[1][3], r[2][0], r[2][1], r[2][2], r[2][3], r[3][0], r[3][1], r[3][2], r[3][3]); view_trans *= mat_arcball_rot; view_trans *= Scale(Zoom); glUniformMatrix4fv(uView, 1, GL_TRUE, model_view); model_view = view_trans; mvstack.push(model_view); drawGround(view_trans); model_view = mvstack.top(); mvstack.pop(); model_view *= Translate(0, -10, 0); drawFlower(); drawBee(); glutSwapBuffers(); if (Recording == 1) FrSaver.DumpPPM(Width, Height); }
void draw(Pixmap pixmap, XInfo &xinfo){ //NOTE: 'pixmap' is only used for double buffering, if applicable if (x>-50 && x<800) drawFlower(xinfo, xinfo.gc[0], x,y); }
void drawDiaoSi(float r, float g, float b) { mvstack.push(model_view); model_view *= Translate(0.0f, 1.0f, 0.0f); // Draw Head mvstack.push(model_view); model_view *= RotateY(90); if(timeline < 7.0f) model_view *= RotateX(-30+timeline*7); if(timeline > 8.0f && timeline < 9.0f) { model_view *= Translate(0.0f, 3.0f, 0.0f); drawExclam(); model_view *= Translate(0.0f, -3.0f, 0.0f); } if(timeline > 13.5f && -temp > -90 && timeline < 18.0) model_view *= RotateY(-temp); else if(timeline > 13.5 && -temp <= -90 && timeline < 18.0) model_view *= RotateY(-90); if(timeline > 18) { if(timeline < 19.75 && -90+temp*1.25 < 0) model_view *= RotateY(-90+temp*1.25); if(timeline > 24.0) if(-temp*30 > -90 && timeline < 27.0) model_view *= RotateY(-temp*30); else model_view *= RotateY(-90); if(timeline > 27.25 && timeline < 29.5) model_view *= RotateX(temp*30); if(timeline > 29.5 && timeline < 30.5) { mvstack.push(model_view); model_view *= Translate(0.0f, 2.0f, 0.0f); model_view *= Scale(0.5f, 0.5f, 0.5f); drawBulb(); model_view = mvstack.pop(); } if(timeline > 36.5 && timeline < 37.0) { mvstack.push(model_view); model_view *= Translate(0.0f, 3.0f, 0.0f); drawExclam(); model_view = mvstack.pop(); } if(timeline > 45.0 && timeline < 48.0) { model_view*=RotateX(temp7/2); } if(timeline > 54.5) model_view *= RotateY(temp*2); } //Draw Hearts drawDSHearts(); set_colour(r, g, b); drawSphere(); set_colour(0.0f, 0.0f, 0.0f); model_view *= Translate(0.5f, 0.0f, 0.75f); model_view *= Scale(0.25f, 0.25f, 0.25f); drawSphere(); model_view *= Translate(-4.0f, 0.0f, 0.0f); drawSphere(); model_view = mvstack.pop(); set_colour(r, g, b); model_view *= Translate(0.0f, -2.0f, 0.0f); model_view *= Scale(1.0f, 1.21f, 1.0f); model_view*=RotateX(90); drawCylinder(); model_view = mvstack.pop(); // Draw Arms mvstack.push(model_view); mvstack.push(model_view); model_view *= Translate(1.25f, -0.5f, 0.0f); if(timeline>30.5&&timeline<55) model_view*=RotateY(-60); model_view *= RotateY(-90); model_view*=Scale(.5,.5,1); drawCylinder(); model_view = mvstack.pop(); model_view *= Translate(-2.5+1.25f, 0.0-0.5f, 0.0f); if(timeline>30.5&&timeline<43) model_view*=RotateY(60); model_view *= RotateY(90); model_view*=Scale(.5,.5,1); drawCylinder(); if(timeline > 30.5) { mvstack.push(model_view); model_view *= Translate(-1.0f, 2.0f, -1.0f); model_view *= RotateX(350); model_view *= RotateY(0); if(timeline < 55.0) drawFlower(); model_view = mvstack.pop(); } model_view = mvstack.pop(); // Draw Legs Sitting mvstack.push(model_view); model_view *= Translate(0.5f, -2.0f, 1.0f); if((timeline > 20.0f && timeline < 23.0f) || (timeline > 24.0f && timeline < 27.0f)) model_view *= RotateX(moveLegs); if(timeline < 30.5) { model_view*=RotateX(30); model_view*=Scale(1,1,1.7); mvstack.push(model_view); model_view*=Translate(0,0,0); model_view*=Scale(.5,.5,1); drawCylinder(); model_view = mvstack.pop(); } if((timeline > 20.0f && timeline < 23.0f) || (timeline > 24.0f && timeline < 27.0f)) model_view *= RotateX(-moveLegs); model_view *= Translate(-1.0f, 0.0f, 0.0f); if((timeline > 20.0f && timeline < 23.0f) || (timeline > 24.0f && timeline < 27.0f)) model_view *= RotateX(-moveLegs); if(timeline < 30.5) { model_view*=Scale(.5,.5,1); drawCylinder(); } model_view = mvstack.pop(); // Draw Legs Standing if(timeline >= 30.5f && timeline < 55.0f) { set_colour(r,g,b); model_view *= Translate(0.5f, -2.6f, 0.0f); mvstack.push(model_view); if(timeline < 35.0 && temp2 < 520) model_view *= RotateX(moveLegs); model_view *= RotateX(90); model_view*=Scale(.5,.5,1); model_view*=Scale(1,1,1); drawCylinder(); model_view = mvstack.pop(); model_view *= Translate(-1.0f, 0.0f, 0.0f); mvstack.push(model_view); if(timeline < 35.0 && temp2 < 520) model_view *= RotateX(-moveLegs); model_view *= RotateX(90); model_view*=Scale(.5,.5,1); model_view*=Scale(1,1,1); drawCylinder(); model_view = mvstack.pop(); } }