1 2 /////////////////////////////////////////////////////////// 3 // // 4 // SAGA // 5 // // 6 // System for Automated Geoscientific Analyses // 7 // // 8 // Tool Library // 9 // grid_spline // 10 // // 11 //-------------------------------------------------------// 12 // // 13 // Gridding_Spline_MBA_3D.h // 14 // // 15 // Copyright (C) 2019 by // 16 // Olaf Conrad // 17 // // 18 //-------------------------------------------------------// 19 // // 20 // This file is part of 'SAGA - System for Automated // 21 // Geoscientific Analyses'. SAGA is free software; you // 22 // can redistribute it and/or modify it under the terms // 23 // of the GNU General Public License as published by the // 24 // Free Software Foundation, either version 2 of the // 25 // License, or (at your option) any later version. // 26 // // 27 // SAGA is distributed in the hope that it will be // 28 // useful, but WITHOUT ANY WARRANTY; without even the // 29 // implied warranty of MERCHANTABILITY or FITNESS FOR A // 30 // PARTICULAR PURPOSE. See the GNU General Public // 31 // License for more details. // 32 // // 33 // You should have received a copy of the GNU General // 34 // Public License along with this program; if not, see // 35 // <http://www.gnu.org/licenses/>. // 36 // // 37 //-------------------------------------------------------// 38 // // 39 // e-mail: oconrad@saga-gis.org // 40 // // 41 // contact: Olaf Conrad // 42 // Institute of Geography // 43 // University of Hamburg // 44 // Germany // 45 // // 46 /////////////////////////////////////////////////////////// 47 48 //--------------------------------------------------------- 49 #ifndef HEADER_INCLUDED__Gridding_Spline_MBA_3D_H 50 #define HEADER_INCLUDED__Gridding_Spline_MBA_3D_H 51 52 53 /////////////////////////////////////////////////////////// 54 // // 55 // // 56 // // 57 /////////////////////////////////////////////////////////// 58 59 //--------------------------------------------------------- 60 #include "Gridding_Spline_Base.h" 61 62 63 /////////////////////////////////////////////////////////// 64 // // 65 // // 66 // // 67 /////////////////////////////////////////////////////////// 68 69 //--------------------------------------------------------- 70 class CGridding_Spline_MBA_3D : public CSG_Tool 71 { 72 public: 73 CGridding_Spline_MBA_3D(void); 74 Get_MenuPath(void)75 virtual CSG_String Get_MenuPath (void) { return( _TL("A:Grid|Gridding|Interpolation (3D)") ); } 76 77 78 protected: 79 80 virtual int On_Parameter_Changed (CSG_Parameters *pParameters, CSG_Parameter *pParameter); 81 virtual int On_Parameters_Enable (CSG_Parameters *pParameters, CSG_Parameter *pParameter); 82 83 virtual bool On_Execute (void); 84 85 86 private: 87 88 int m_zField; 89 90 double m_Epsilon, m_zCellsize; 91 92 CSG_Matrix m_Points; 93 94 CSG_Grids *m_pGrids; 95 96 CSG_Parameters_Grid_Target m_Grid_Target; 97 98 99 bool Initialize (void); 100 bool Finalize (void); 101 102 bool _Set_MBA (double dCell); 103 104 bool _Get_Difference (const CSG_Grids &Phi, int Level); 105 106 double BA_Get_B (int i, double d) const; 107 bool BA_Set_Phi (CSG_Grids &Phi, double Cellsize); 108 double BA_Get_Phi (const CSG_Grids &Phi, double x, double y, double z) const; 109 void BA_Set_Grids (const CSG_Grids &Phi, bool bAdd = false); 110 111 }; 112 113 114 /////////////////////////////////////////////////////////// 115 // // 116 // // 117 // // 118 /////////////////////////////////////////////////////////// 119 120 //--------------------------------------------------------- 121 #endif // #ifndef HEADER_INCLUDED__Gridding_Spline_MBA_3D_H 122