00001 /*************************************************************************** 00002 ** 00003 ** This file is part of QGpCompatibility. 00004 ** 00005 ** This file may be distributed and/or modified under the terms of the 00006 ** GNU General Public License version 2 or 3 as published by the Free 00007 ** Software Foundation and appearing in the file LICENSE.GPL included 00008 ** in the packaging of this file. 00009 ** 00010 ** This file is distributed in the hope that it will be useful, but WITHOUT 00011 ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00012 ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 00013 ** more details. 00014 ** 00015 ** You should have received a copy of the GNU General Public License 00016 ** along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 ** 00018 ** See http://www.geopsy.org for more information. 00019 ** 00020 ** Created : 2004-09-20 00021 ** Authors: 00022 ** Marc Wathelet 00023 ** Marc Wathelet (ULg, Liège, Belgium) 00024 ** Marc Wathelet (LGIT, Grenoble, France) 00025 ** 00026 ***************************************************************************/ 00027 00028 #ifndef COMPATREFRAREPORT_H 00029 #define COMPATREFRAREPORT_H 00030 00031 #include <QGpCoreWave.h> 00032 00033 #include "CompatInversionReport.h" 00034 #include "QGpCompatibilityDLLExport.h" 00035 00036 namespace QGpCompatibility { 00037 00038 class CompatHodoChrone; 00039 class CompatHodoChroneData; 00040 00041 class QGPCOMPATIBILITY_EXPORT CompatRefraReport : public CompatInversionReport 00042 { 00043 public: 00044 CompatRefraReport(bool isWrite, QString reportFile, QString naInFile=QString::null, int nModels=0); 00045 ~CompatRefraReport(); 00047 virtual bool isA(const char * className); 00048 void addRefraGoal(CompatHodoChroneData *hd); 00054 void modifyRefraGoal(CompatHodoChroneData * rms); 00055 CompatHodoChroneData * loadRefraGoal(); 00057 void loadRefra(int modelIndex); 00058 void loadRefra(CompatHodoChrone * hodo,int modelIndex); 00060 CompatHodoChrone * currentHodoChrone(); 00061 RefractionDippingModel * currentTiltModel(); 00062 protected: 00063 RefractionDippingModel * _currentTiltModel; 00064 void initCurrentTiltModel(); 00066 virtual bool initCurrentDispersion(); 00067 }; 00068 00069 inline CompatHodoChrone * CompatRefraReport::currentHodoChrone() 00070 { 00071 TRACE; 00072 if(!_currentDispersion) loadRefra(0); 00073 return (CompatHodoChrone *)_currentDispersion; 00074 } 00075 00076 inline RefractionDippingModel * CompatRefraReport::currentTiltModel() 00077 { 00078 TRACE; 00079 if(!_currentTiltModel) initCurrentTiltModel(); 00080 return _currentTiltModel; 00081 } 00082 00083 } // namespace QGpCompatibility 00084 00085 #endif // COMPATREFRAREPORT_H