void Draw2D::drawCube(SDL_Surface *screen,Point3D _pt1, Point3D _pt2, Point3D _pt3, Point3D _pt4) { // 4----6 // /| /| // 7----8| // |1---|2 // |/ |/ // 3----5 // with the 4 points we can find the 4 others Point3D pt5 = _pt2+_pt3-_pt1; Point3D pt6 = _pt2+_pt4-_pt1; Point3D pt7 = _pt3+_pt4-_pt1; Point3D pt8 = pt5+_pt4-_pt1; // construct all segments Segment3D seg1(_pt1,_pt2); Segment3D seg2(_pt1,_pt3); Segment3D seg3(_pt1,_pt4); Segment3D seg4(_pt3,pt5); Segment3D seg5(pt5,pt8); Segment3D seg6(pt5,_pt2); Segment3D seg7(_pt3,pt7); Segment3D seg8(_pt2,pt6); Segment3D seg9(pt7,_pt4); Segment3D seg10(_pt4,pt6); Segment3D seg11(pt6,pt8); Segment3D seg12(pt7,pt8); // draw all segments drawSegment(screen,seg1); drawSegment(screen,seg2); drawSegment(screen,seg3); drawSegment(screen,seg4); drawSegment(screen,seg5); drawSegment(screen,seg6); drawSegment(screen,seg7); drawSegment(screen,seg8); drawSegment(screen,seg9); drawSegment(screen,seg10); drawSegment(screen,seg11); drawSegment(screen,seg12); }
void DIGIT::displayMonth(int month) { bool display[8]; switch (month) { case 1: seg0(true); seg1(true); seg2(true); seg3(true); x += 9; seg0(true); seg1(true); seg2(true); seg4(true); seg5(true); seg6(true); seg7(true); x += 9; seg1(true); seg2(true); seg4(true); seg5(true); seg8(true); seg13(true); break; case 2: seg0(true); seg4(true); seg5(true); seg6(true); x += 9; seg0(true); seg3(true); seg4(true); seg5(true); seg6(true); x += 9; for(int i=0; i<8; i++) (this->*ptr[i])(true); break; case 3: seg1(true); seg2(true); seg4(true); seg5(true); seg8(true); seg9(true); x += 9; seg0(true); seg1(true); seg2(true); seg4(true); seg5(true); seg6(true); seg7(true); x += 9; seg0(true); seg1(true); seg4(true); seg5(true); seg6(true); seg7(true); seg13(true); break; case 4: seg0(true); seg1(true); seg2(true); seg4(true); seg5(true); seg6(true); seg7(true); x += 9; seg0(true); seg1(true); seg4(true); seg5(true); seg6(true); seg7(true); seg13(true); x += 9; seg0(true); seg1(true); seg4(true); seg5(true); seg6(true); seg7(true); seg13(true); break; case 5: seg1(true); seg2(true); seg4(true); seg5(true); seg8(true); seg9(true); x += 9; seg0(true); seg1(true); seg2(true); seg4(true); seg5(true); seg6(true); seg7(true); x += 9; seg8(true); seg10(true); seg12(true); break; case 6: seg0(true); seg1(true); seg2(true); seg3(true); x += 9; seg1(true); seg2(true); seg3(true); seg4(true); seg5(true); x += 9; seg1(true); seg2(true); seg4(true); seg5(true); seg8(true); seg13(true); break; case 7: seg0(true); seg1(true); seg2(true); seg3(true); x += 9; seg1(true); seg2(true); seg3(true); seg4(true); seg5(true); x += 9; seg1(true); seg2(true); break; case 8: seg0(true); seg1(true); seg2(true); seg4(true); seg5(true); seg6(true); seg7(true); x += 9; seg1(true); seg2(true); seg3(true); seg4(true); seg5(true); x += 9; seg0(true); seg3(true); seg4(true); seg5(true); seg6(true); break; case 9: lookup(5, display); for(int i=0; i<8; i++) (this->*ptr[i])(display[i]); x += 9; seg0(true); seg3(true); seg4(true); seg5(true); seg6(true); x += 9; seg0(true); seg1(true); seg4(true); seg5(true); seg6(true); seg7(true); seg13(true); break; case 10: lookup(0, display); for(int i=0; i<8; i++) (this->*ptr[i])(display[i]); x += 9; seg0(true); seg3(true); seg4(true); seg5(true); x += 9; seg0(true); seg9(true); seg12(true); break; case 11: seg1(true); seg2(true); seg4(true); seg5(true); seg8(true); seg13(true); x += 9; lookup(0, display); for(int i=0; i<8; i++) (this->*ptr[i])(display[i]); x += 9; seg1(true); seg2(true); seg8(true); seg13(true); break; case 12: lookup(0, display); for(int i=0; i<8; i++) (this->*ptr[i])(display[i]); x += 9; seg0(true); seg3(true); seg4(true); seg5(true); seg6(true); x += 9; seg0(true); seg3(true); seg4(true); seg5(true); break; } }