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; } }
bool CalcMaxLoc<Type,TypeBase,Compare>::BandeConnectedVsup ( Pt2di p1, Pt2di p2, Im2D<Type,TypeBase> Im, Type VInf, REAL Tol, Im2D_U_INT1 Marq ) { if (p1==p2) return true; Pt2di Sz = Inf(Im.sz(),Marq.sz()); Box2di Box(Pt2di(0,0), Sz); if (!(Box.contains(p1) && Box.contains(p2))) return false; U_INT1 ** dMarq = Marq.data(); Type ** dIm = Im.data(); mBufCC.clear(); mBufCC.push_back(p1); dMarq[p1.y][p1.x] = 1; Pt2dr aPR1(p1.x,p1.y); Pt2dr aPR2(p2.x,p2.y); SegComp seg12(aPR1,aPR2); bool got = false; for (INT kBuf=0 ; (kBuf!=(INT)mBufCC.size()) && (! got) ; kBuf++) { Pt2di pBuf = mBufCC[ kBuf]; for (INT kV=0 ; kV< 8; kV++) { Pt2di pVois = pBuf + TAB_8_NEIGH[kV]; if ( Box.contains(pVois) && (dMarq[pVois.y][pVois.x] == 0) && (! mCmp(dIm[pVois.y][pVois.x],VInf)) && (seg12.BoxContains(Pt2dr(pVois),1.0,Tol)) ) { if (pVois==p2) got = true; dMarq[pVois.y][pVois.x] = 1; mBufCC.push_back(pVois); } } } { for (INT kBuf=0 ; kBuf<(INT)mBufCC.size() ; kBuf++) { Pt2di pBuf = mBufCC[ kBuf]; dMarq[pBuf.y][pBuf.x] = 0; } } return got; }