Quantum GIS API Documentation  1.8
src/analysis/interpolation/Line3D.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines