#ifndef __CPOINT_H
#define __CPOINT_H

#include "graphic.h"
#include "list/list.h"


//class Point;

class CPoint : public Point
{
  public:
    CPoint( void );
    CPoint( int x0, int y0 );
    CPoint( CPoint& cp );
    //inline int  getX()              { return x; }
    //inline int  getY()              { return y; }
    virtual inline int  getCount()          { return count; };
    //virtual inline void setX(int nx)        { x=nx; }
    //virtual inline void setY(int ny)        { y=ny; }
    //virtual inline void set(int nx, int ny) { setX(nx); setY(ny); };
    virtual inline void setCount( int c )   { count=c; }

    // alle operatoren anders als bei Point!
    virtual inline CPoint& operator=  ( int i );
    virtual inline CPoint& operator=  ( CPoint& cp );
    virtual inline int     operator== ( CPoint& cp );
    virtual inline CPoint& operator++ ();
    virtual inline CPoint& operator-- ();
    virtual inline CPoint& operator+  ( int i );
    virtual inline CPoint& operator+  ( CPoint& cp );
    virtual inline CPoint& operator-  ( int i );
    virtual inline CPoint& operator-  ( CPoint& cp );
  protected:
    //int x, y;
    int count;
};


class CPList : public ZeigerListe<CPoint>
{
  public:
    CPList(void) : ZeigerListe<CPoint>() {};
    virtual CPoint* append( CPoint* );
    int istEuler(void);
//    int istZusammenhaengend( void );
};

#endif // __CPOINT_H
