/**********************************************************************
--- 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 <qstring.h>
#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();
}
syntax highlighted by Code2HTML, v. 0.9.1