00001 /*************************************************************************** 00002 ** 00003 ** This file is part of dinvermatlab. 00004 ** 00005 ** This file is distributed under the terms of the Geopsy.org Commercial 00006 ** License appearing in the file LICENSE.COMMERCIAL included in the packaging 00007 ** of this file. 00008 ** 00009 ** This file is distributed in the hope that it will be useful, but WITHOUT 00010 ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00011 ** FITNESS FOR A PARTICULAR PURPOSE. See Geopsy.org Commercial License for 00012 ** more details. 00013 ** 00014 ** You should have received a copy of the Geopsy.org Commercial License 00015 ** along with this program. If not, see <http://www.geopsy.org>. 00016 ** 00017 ** See http://www.geopsy.org for more information. 00018 ** 00019 ** Created : 2008-11-23 00020 ** Authors : 00021 ** Marc Wathelet 00022 ** Marc Wathelet (LGIT, Grenoble, France) 00023 ** 00024 ***************************************************************************/ 00025 00026 #ifndef FORWARD_H 00027 #define FORWARD_H 00028 00029 #ifdef GP_MATLAB_LIBS 00030 #include <engine.h> 00031 #endif 00032 00033 #include <DinverCore.h> 00034 00035 class MatlabTarget; 00036 00037 class Forward : public AbstractForward 00038 { 00039 TRANSLATIONS("Forward") 00040 public: 00041 Forward(); 00042 ~Forward(); 00043 00044 bool setParam(ParamSpaceScript * param); 00045 bool setTarget(MatlabTarget * target, bool skipTest); 00046 00047 MatlabTarget * target() const {return _target;} 00048 ParamSpaceScript * parameters() const {return _param;} 00049 00050 virtual AbstractForward * clone() const; 00051 virtual bool wake(); 00052 virtual void sleep(); 00053 virtual double misfit(bool& ok); 00054 00055 virtual void xml_writeChildren(XML_WRITECHILDREN_ARGS) const; 00056 virtual XMLMember xml_member(XML_MEMBER_ARGS); 00057 virtual void xml_polish(XML_POLISH_ARGS); 00058 private: 00059 MatlabTarget * _target; 00060 ParamSpaceScript * _param; 00061 #ifdef GP_MATLAB_LIBS 00062 Engine * _matlab; 00063 #endif 00064 }; 00065 00066 #endif // FORWARD_H