/********************************************************************** --- Qt Architect generated file --- File: curveFit.cpp Xgfe: X Windows GUI front end to Gnuplot Copyright (C) 1998 David Ishee This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *********************************************************************/ #include "curveFit.h" #include #define Inherited curveFitData curveFit::curveFit ( QWidget* parent, const char* name ) : Inherited( parent, name ) { setCaption( "Curve Fitting" ); } curveFit::~curveFit() { } void curveFit::setGnuInterface(gnuInterface* gnu) { gnuInt = gnu; // insert current options string functionName = gnuInt->getCurveFitFunctionName(); string dataFile = gnuInt->getCurveFitDataFile(); string functionValue = gnuInt->getCurveFitFunctionValue(); string varXRangeName = gnuInt->getCurveFitVarXRangeName(); string varXRangeMin = gnuInt->getCurveFitVarXRangeMin(); string varXRangeMax = gnuInt->getCurveFitVarXRangeMax(); string varYRangeName = gnuInt->getCurveFitVarYRangeName(); string varYRangeMin = gnuInt->getCurveFitVarYRangeMin(); string varYRangeMax = gnuInt->getCurveFitVarYRangeMax(); string paramFile = gnuInt->getCurveFitParamFile(); int paramFileFlag = gnuInt->getCurveFitParamFileFlag(); int paramCSLFlag = gnuInt->getCurveFitParamCSLFlag(); string paramCSL = gnuInt->getCurveFitParamCSL(); string fitLimit = gnuInt->getCurveFitFitLimit(); string fitMaxIter = gnuInt->getCurveFitFitMaxIter(); string dataSetStart = gnuInt->getCurveFitDataSetStart(); string dataSetEnd = gnuInt->getCurveFitDataSetEnd(); string dataSetInc = gnuInt->getCurveFitPointInc(); string pointInc = gnuInt->getCurveFitPointInc(); string lineInc = gnuInt->getCurveFitLineInc(); string startPoint = gnuInt->getCurveFitStartPoint(); string startLine = gnuInt->getCurveFitStartLine(); string endPoint = gnuInt->getCurveFitEndPoint(); string endLine = gnuInt->getCurveFitEndLine(); string xColumn = gnuInt->getCurveFitXColumn(); string yColumn = gnuInt->getCurveFitYColumn(); string zColumn = gnuInt->getCurveFitZColumn(); string format = gnuInt->getCurveFitFormat(); string rawFormat = gnuInt->getCurveFitRawFormat(); functionNameEdit->setText(functionName.c_str()); dataFileEdit->setText(dataFile.c_str()); functionValueEdit->setText(functionValue.c_str()); varXRangeNameEdit->setText(varXRangeName.c_str()); varXRangeMinEdit->setText(varXRangeMin.c_str()); varXRangeMaxEdit->setText(varXRangeMax.c_str()); varYRangeNameEdit->setText(varYRangeName.c_str()); varYRangeMinEdit->setText(varYRangeMin.c_str()); varYRangeMaxEdit->setText(varYRangeMax.c_str()); paramFileEdit->setText(paramFile.c_str()); if (paramFileFlag == 1) { paramFileRB->setChecked(TRUE); paramCSLRB->setChecked(FALSE); } else if (paramCSLFlag == 1) { paramCSLRB->setChecked(TRUE); paramFileRB->setChecked(FALSE); } paramCSLEdit->setText(paramCSL.c_str()); fitLimitEdit->setText(fitLimit.c_str()); fitMaxIterEdit->setText(fitMaxIter.c_str()); dataSetStartEdit->setText(dataSetStart.c_str()); dataSetEndEdit->setText(dataSetEnd.c_str()); dataSetIncEdit->setText(dataSetInc.c_str()); pointIncEdit->setText(pointInc.c_str()); lineIncEdit->setText(lineInc.c_str()); startPointEdit->setText(startPoint.c_str()); startLineEdit->setText(startLine.c_str()); endPointEdit->setText(endPoint.c_str()); endLineEdit->setText(endLine.c_str()); xColumnEdit->setText(xColumn.c_str()); yColumnEdit->setText(yColumn.c_str()); zColumnEdit->setText(zColumn.c_str()); formatEdit->setText(format.c_str()); rawFormatEdit->setText(rawFormat.c_str()); } void curveFit::dataFileOpen() { QString fileName = QFileDialog::getOpenFileName(); if ( !fileName.isNull() ) // got a file name { dataFileEdit->setText(fileName); } } void curveFit::paramFileOpen() { QString fileName = QFileDialog::getOpenFileName(); if ( !fileName.isNull() ) // got a file name { paramFileEdit->setText(fileName); } } void curveFit::doFit() { // get current options string functionName = functionNameEdit->text().ascii(); string functionValue = functionValueEdit->text().ascii(); string dataFile = dataFileEdit->text().ascii(); string varXRangeName = varXRangeNameEdit->text().ascii(); string varXRangeMin = varXRangeMinEdit->text().ascii(); string varXRangeMax = varXRangeMaxEdit->text().ascii(); string varYRangeName = varYRangeNameEdit->text().ascii(); string varYRangeMin = varYRangeMinEdit->text().ascii(); string varYRangeMax = varYRangeMaxEdit->text().ascii(); string paramFile = paramFileEdit->text().ascii(); int paramFileFlag; int paramCSLFlag; if ((paramFileRB->isChecked() == TRUE) && (paramCSLRB->isChecked() == FALSE)) { paramFileFlag = 1; paramCSLFlag = 0; } else { paramFileFlag = 0; paramCSLFlag = 1; } string paramCSL = paramCSLEdit->text().ascii(); string fitLimit = fitLimitEdit->text().ascii(); string fitMaxIter = fitMaxIterEdit->text().ascii(); string dataSetStart = dataSetStartEdit->text().ascii(); string dataSetEnd = dataSetEndEdit->text().ascii(); string dataSetInc = dataSetIncEdit->text().ascii(); string pointInc = pointIncEdit->text().ascii(); string lineInc = lineIncEdit->text().ascii(); string startPoint = startPointEdit->text().ascii(); string startLine = startLineEdit->text().ascii(); string endPoint = endPointEdit->text().ascii(); string endLine = endLineEdit->text().ascii(); string xColumn = xColumnEdit->text().ascii(); string yColumn = yColumnEdit->text().ascii(); string zColumn = zColumnEdit->text().ascii(); string format = formatEdit->text().ascii(); string rawFormat = rawFormatEdit->text().ascii(); // set options gnuInt->setCurveFitFunctionName(functionName); gnuInt->setCurveFitFunctionValue(functionValue); gnuInt->setCurveFitDataFile(dataFile); gnuInt->setCurveFitVarXRangeName(varXRangeName); gnuInt->setCurveFitVarXRangeMin(varXRangeMin); gnuInt->setCurveFitVarXRangeMax(varXRangeMax); gnuInt->setCurveFitVarYRangeName(varYRangeName); gnuInt->setCurveFitVarYRangeMin(varYRangeMin); gnuInt->setCurveFitVarYRangeMax(varYRangeMax); gnuInt->setCurveFitParamFile(paramFile); gnuInt->setCurveFitParamFileFlag(paramFileFlag); gnuInt->setCurveFitParamCSLFlag(paramCSLFlag); gnuInt->setCurveFitParamCSL(paramCSL); gnuInt->setCurveFitFitLimit(fitLimit); gnuInt->setCurveFitFitMaxIter(fitMaxIter); gnuInt->setCurveFitDataSetStart(dataSetStart); gnuInt->setCurveFitDataSetEnd(dataSetEnd); gnuInt->setCurveFitDataSetInc(dataSetInc); gnuInt->setCurveFitPointInc(pointInc); gnuInt->setCurveFitLineInc(lineInc); gnuInt->setCurveFitStartPoint(startPoint); gnuInt->setCurveFitStartLine(startLine); gnuInt->setCurveFitEndPoint(endPoint); gnuInt->setCurveFitEndLine(endLine); gnuInt->setCurveFitXColumn(xColumn); gnuInt->setCurveFitYColumn(yColumn); gnuInt->setCurveFitZColumn(zColumn); gnuInt->setCurveFitFormat(format); gnuInt->setCurveFitRawFormat(rawFormat); gnuInt->doCurveFit(); }