00001 #ifndef _WINC_EARTHPOINTS
00002 #define _WINC_EARTHPOINTS
00003
00004 #include <WXP/Const.h>
00005 #include <WXP/EarthPoint.h>
00006
00007 namespace WXP {
00008 class EarthPoints {
00009 int num;
00010 int max;
00011 int ind;
00012 float *lat;
00013 float *lon;
00015 public:
00016 int init();
00017 int init( int size );
00018 EarthPoints();
00019 EarthPoints(int size);
00020 ~EarthPoints();
00021 EarthPoints( const EarthPoints &data );
00022 EarthPoints operator=( const EarthPoints &data );
00023 int copy( const EarthPoints &data );
00024 inline int clear(){ num = 0; return 1; };
00025 int expand( int size );
00026 int add( float lat, float lon );
00027 int add( EarthPoint ept );
00028 inline int add1( EarthPoint ept ){
00029 lat[num] = ept.lat; lon[num] = ept.lon; num++; return 1; };
00030 int add( int ind );
00031 inline int add1( int ind ){
00032 lat[num] = lat[ind]; lon[num] = lon[ind]; num++; return 1; };
00033 int set( int ind, float rlat, float rlon );
00034 int set( int ind, EarthPoint &ept );
00035 int get( int ind, EarthPoint &ept );
00036 EarthPoint get( int ind );
00037 inline float getLat( int ind ){
00038 return ind >= num || ind < 0 ? Const::MISS : lat[ind]; };
00039 inline float getLon( int ind ){
00040 return ind >= num || ind < 0 ? Const::MISS : lon[ind]; };
00041 inline float getLat1( int ind ){ return lat[ind]; };
00042 inline float getLon1( int ind ){ return lon[ind]; };
00044 inline int getNum() { return num; };
00045 int offset( int ind, float rlat, float rlon );
00046 int within( EarthPoint &ept );
00047 int print();
00048 };
00049 }
00050 #endif