Quantum GIS API Documentation
1.7.4
|
00001 /*************************************************************************** 00002 LinTriangleInterpolator.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 LINTRIANGLEINTERPOLATOR_H 00018 #define LINTRIANGLEINTERPOLATOR_H 00019 00020 #include "TriangleInterpolator.h" 00021 #include "DualEdgeTriangulation.h" 00022 00024 class ANALYSIS_EXPORT LinTriangleInterpolator : public TriangleInterpolator 00025 { 00026 public: 00028 LinTriangleInterpolator(); 00030 LinTriangleInterpolator( DualEdgeTriangulation* tin ); 00032 virtual ~LinTriangleInterpolator(); 00034 virtual bool calcNormVec( double x, double y, Vector3D* result ); 00036 virtual bool calcPoint( double x, double y, Point3D* result ); 00038 virtual DualEdgeTriangulation* getTriangulation() const; 00040 virtual void setTriangulation( DualEdgeTriangulation* tin ); 00041 00042 00043 protected: 00044 DualEdgeTriangulation* mTIN; 00046 virtual bool calcFirstDerX( double x, double y, Vector3D* result ); 00048 virtual bool calcFirstDerY( double x, double y, Vector3D* result ); 00049 }; 00050 00051 inline LinTriangleInterpolator::LinTriangleInterpolator() 00052 { 00053 00054 } 00055 00056 inline LinTriangleInterpolator::LinTriangleInterpolator( DualEdgeTriangulation* tin ): mTIN( tin ) 00057 { 00058 00059 } 00060 00061 inline LinTriangleInterpolator::~LinTriangleInterpolator() 00062 { 00063 00064 } 00065 00066 inline DualEdgeTriangulation* LinTriangleInterpolator::getTriangulation() const 00067 { 00068 return mTIN; 00069 } 00070 00071 inline void LinTriangleInterpolator::setTriangulation( DualEdgeTriangulation* tin ) 00072 { 00073 mTIN = tin; 00074 } 00075 00076 #endif 00077 00078 00079 00080 00081 00082 00083