Example #1
0
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);
}
Example #2
0
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; 
                       
            }                     

}
Example #3
0
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;
}