Quantum GIS API Documentation
1.7.4
|
00001 /*************************************************************************** 00002 Line3D.h - description 00003 ------------------- 00004 copyright : (C) 2004 by Marco Hugentobler 00005 email : mhugent@geo.unizh.ch 00006 ***************************************************************************/ 00007 00008 /*************************************************************************** 00009 * * 00010 * This program is free software; you can redistribute it and/or modify * 00011 * it under the terms of the GNU General Public License as published by * 00012 * the Free Software Foundation; either version 2 of the License, or * 00013 * (at your option) any later version. * 00014 * * 00015 ***************************************************************************/ 00016 00017 #ifndef LINE3D_H 00018 #define LINE3D_H 00019 00020 #include "Point3D.h" 00021 #include "Node.h" 00022 00024 class ANALYSIS_EXPORT Line3D 00025 { 00026 private: 00028 Line3D( const Line3D& ); 00030 Line3D& operator=( const Line3D& ); 00031 protected: 00032 Node* head; 00033 Node* z; 00034 Node* currentNode; 00035 unsigned int size; 00036 unsigned int current; 00037 00038 public: 00039 Line3D(); 00040 ~Line3D(); 00042 bool empty() const; 00044 void insertPoint( Point3D* p ); 00046 void removePoint(); 00048 Point3D* getPoint() const; 00050 unsigned int getCurrent() const; 00052 unsigned int getSize() const; 00054 void goToBegin(); 00056 void goToNext(); 00057 }; 00058 00059 inline Line3D::Line3D( const Line3D& ) 00060 { 00061 00062 } 00063 00064 inline Line3D& Line3D::operator=( const Line3D& ) 00065 { 00066 return ( *this ); 00067 } 00068 00069 inline unsigned int Line3D::getCurrent() const 00070 { 00071 return current; 00072 } 00073 00074 inline Point3D* Line3D::getPoint() const 00075 { 00076 return ( currentNode->getPoint() ); 00077 } 00078 00079 inline unsigned int Line3D::getSize() const 00080 { 00081 return size; 00082 } 00083 00084 #endif