00001 #ifndef _WINC_POINTS
00002 #define _WINC_POINTS
00003
00004 #include <WXP/Const.h>
00005 #include <WXP/Point.h>
00006
00007 namespace WXP {
00008 class Points {
00009 int num;
00010 int max;
00011 int ind;
00012 float *x;
00013 float *y;
00015 public:
00016 int init();
00017 int init( int size );
00018 Points();
00019 Points(int size);
00020 ~Points();
00021 Points( const Points &data );
00022 Points operator=( const Points &data );
00023 int copy( const Points &data );
00024 int copy( const Points &data, int start, int rnum );
00025 inline int clear(){ num = 0; return 1; };
00026 int expand( int size );
00027 int add( float x, float y );
00028 int add( Point pt );
00029 inline int add1( Point pt ){ x[num] = pt.x; y[num] = pt.y; num++; return 1; };
00030 int add( int ind );
00031 inline int add1( int ind ){ x[num] = x[ind]; y[num] = y[ind]; num++; return 1; };
00032 int set( int ind, float rx, float ry );
00033 int set( int ind, Point &pt );
00034 int get( int ind, Point &pt );
00035 Point get( int ind );
00036 int remove( int ind );
00037 int insert( int ind, Point &pt );
00038 int insert( int ind, float x, float y );
00039 inline float getX( int ind ){
00040 return ind >= num || ind < 0 ? Const::MISS : x[ind]; };
00041 inline float getY( int ind ){
00042 return ind >= num || ind < 0 ? Const::MISS : y[ind]; };
00043 inline float getX1( int ind ){ return x[ind]; };
00044 inline float getY1( int ind ){ return y[ind]; };
00046 inline int getNum() { return num; };
00047 int offset( int ind, float rx, float ry );
00048 int offset( float rx, float ry );
00049 int within( Point &pt );
00050 int getCenter( Point &pt );
00051 int getCentroid( Point &pt );
00052 int print();
00053 };
00054 }
00055 #endif