本文整理汇总了C++中KstPSDPtr类的典型用法代码示例。如果您正苦于以下问题:C++ KstPSDPtr类的具体用法?C++ KstPSDPtr怎么用?C++ KstPSDPtr使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了KstPSDPtr类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Q_UNUSED
KJS::Value KstBindPowerSpectrum::rUnits(KJS::ExecState *exec) const {
Q_UNUSED(exec)
KstPSDPtr d = makePSD(_d);
if (d) {
KstReadLocker rl(d);
return KJS::String(d->rUnits());
}
return KJS::String();
}
示例2: makePSD
KJS::Value KstBindPowerSpectrum::yVector(KJS::ExecState *exec) const {
KstPSDPtr d = makePSD(_d);
if (d) {
KstReadLocker rl(d);
KstVectorPtr vp = d->vY();
if (vp) {
return KJS::Object(new KstBindVector(exec, vp));
}
}
return KJS::Undefined();
}
示例3: QStringList
QStringList KstIfaceImpl::createPowerSpectrum(const QString& name,
const QString& vector,
bool appodize,
bool removeMean,
int fftLength,
const QString& rateUnits,
double sampleRate,
const QString& vectorUnits)
{
//get the vector
KST::vectorList.lock().readLock();
KstVectorList::Iterator iter = KST::vectorList.findTag(vector);
KST::vectorList.lock().unlock();
if (iter == KST::vectorList.end()) {
return QStringList();
}
//suggest a name if not supplied
QString pstag_end;
if (name.isEmpty())
pstag_end = vector;
else
pstag_end = name;
//count number of power spectra and make a unique name
KstPSDList pslist = kstObjectSubList<KstDataObject,KstPSD>(KST::dataObjectList);
int i = pslist.count() + 1;
QString stringnum = QString::number(i);
QString pstag = stringnum + "-" + pstag_end;
while (KstData::self()->dataTagNameNotUnique(pstag, false)) {
stringnum.setNum(++i);
pstag = stringnum + "-" + pstag_end;
}
KstPSDPtr powerspectrum = new KstPSD(pstag, *iter, sampleRate, true, fftLength,
appodize, removeMean, vectorUnits, rateUnits, WindowOriginal);
KST::dataObjectList.lock().writeLock();
KST::dataObjectList.append(KstDataObjectPtr(powerspectrum));
KST::dataObjectList.lock().unlock();
QStringList returnList;
returnList.push_back(powerspectrum->tagName());
returnList.push_back(powerspectrum->xVTag());
returnList.push_back(powerspectrum->yVTag());
_doc->forceUpdate();
_doc->setModified();
return returnList;
}
示例4: newObject
bool KstPsdDialog::newObject() {
QString tag_name = _tagName->text();
bool retVal = false;
if (tag_name == defaultTag) {
tag_name = KST::suggestPSDName(KstObjectTag::fromString(_w->_vector->selectedVector()));
}
if (KstData::self()->dataTagNameNotUnique(tag_name)) {
_tagName->setFocus();
return false;
}
if (_w->_vector->selectedVector().isEmpty()) {
QMessageBox::warning(this, QObject::tr("Kst"), QObject::tr("New spectrum not made: define vectors first."));
return false;
}
KST::vectorList.lock().readLock();
KstVectorPtr p = *KST::vectorList.findTag(_w->_vector->selectedVector());
KST::vectorList.lock().unlock();
if (_w->_kstFFTOptions->checkValues()) {
if (p) {
KstVCurvePtr vc;
KstPSDPtr psd;
QColor color;
p->readLock();
psd = new KstPSD(tag_name, p,
_w->_kstFFTOptions->SampRate->text().toDouble(),
_w->_kstFFTOptions->Interleaved->isChecked(),
_w->_kstFFTOptions->FFTLen->text().toInt(),
_w->_kstFFTOptions->Apodize->isChecked(),
_w->_kstFFTOptions->RemoveMean->isChecked(),
_w->_kstFFTOptions->VectorUnits->text(),
_w->_kstFFTOptions->RateUnits->text(),
ApodizeFunction(_w->_kstFFTOptions->ApodizeFxn->currentIndex()),
_w->_kstFFTOptions->Sigma->value(),
PSDType(_w->_kstFFTOptions->Output->currentIndex()));
psd->setInterpolateHoles(_w->_kstFFTOptions->InterpolateHoles->isChecked());
p->unlock();
// xxx color = KstApp::inst()->chooseColorDlg()->getColorForCurve(psd->vX(), psd->vY());
if (!color.isValid()) {
color = _w->_curveAppearance->color();
}
vc = new KstVCurve(KST::suggestCurveName(psd->tag(),true), psd->vX(), psd->vY(), KstVectorPtr(), KstVectorPtr(), KstVectorPtr(), KstVectorPtr(), color);
vc->setHasPoints(_w->_curveAppearance->showPoints());
vc->setHasLines(_w->_curveAppearance->showLines());
vc->setHasBars(_w->_curveAppearance->showBars());
vc->setPointStyle(_w->_curveAppearance->pointType());
vc->setLineWidth(_w->_curveAppearance->lineWidth());
vc->setLineStyle(_w->_curveAppearance->lineStyle());
vc->setBarStyle(_w->_curveAppearance->barStyle());
vc->setPointDensity(_w->_curveAppearance->pointDensity());
QString legend_text = _legendText->text();
if (legend_text == defaultTag) {
vc->setLegendText(QString::null);
} else {
vc->setLegendText(legend_text);
}
Kst2DPlotPtr plot;
KstViewWindow *w;
/* xxx
w = dynamic_cast<KstViewWindow*>(KstApp::inst()->findWindow(_w->_curvePlacement->_plotWindow->currentText()));
if (!w) {
QString n = KstApp::inst()->newWindow(KST::suggestWinName());
w = static_cast<KstViewWindow*>(KstApp::inst()->findWindow(n));
}
*/
if (w) {
if (_w->_curvePlacement->existingPlot()) {
plot = kst_cast<Kst2DPlot>(w->view()->findChild(_w->_curvePlacement->plotName()));
if (plot) {
plot->addCurve(vc);
}
}
if (_w->_curvePlacement->newPlot()) {
QString name = w->createPlot(KST::suggestPlotName());
if (_w->_curvePlacement->reGrid()) {
w->view()->cleanup(_w->_curvePlacement->columns());
}
plot = kst_cast<Kst2DPlot>(w->view()->findChild(name));
if (plot) {
plot->setXAxisInterpretation(false, KstAxisInterpretation(), KstAxisDisplay());
plot->setYAxisInterpretation(false, KstAxisInterpretation(), KstAxisDisplay());
_w->_curvePlacement->update();
_w->_curvePlacement->setCurrentPlot(plot->tagName());
plot->addCurve(vc);
plot->generateDefaultLabels();
}
}
}
//.........这里部分代码省略.........
示例5: editSingleObject
bool KstPsdDialog::editSingleObject(KstPSDPtr psPtr) {
psPtr->writeLock();
KST::vectorList.lock().readLock();
KstVectorPtr v = *KST::vectorList.findTag(_w->_vector->selectedVector());
KST::vectorList.lock().unlock();
if (v) { // Can be null if edit multiple and it wasn't changed
psPtr->setVector(v);
}
// get the values that need to be checked for consistency
double pSampRate;
int pFFTLen;
if (_sampRateDirty) {
pSampRate = _w->_kstFFTOptions->SampRate->text().toDouble();
} else {
pSampRate = psPtr->freq();
}
if (_fFTLenDirty) {
pFFTLen = _w->_kstFFTOptions->FFTLen->text().toInt();
} else {
pFFTLen = psPtr->len();
}
if (!_w->_kstFFTOptions->checkGivenValues(pSampRate, pFFTLen)) {
psPtr->unlock();
return false;
}
if (_sampRateDirty) {
psPtr->setFreq(_w->_kstFFTOptions->SampRate->text().toDouble());
}
if (_fFTLenDirty) {
psPtr->setLen(_w->_kstFFTOptions->FFTLen->text().toInt());
}
if (_vectorUnitsDirty) {
psPtr->setVUnits(_w->_kstFFTOptions->VectorUnits->text());
}
if (_rateUnitsDirty) {
psPtr->setRUnits(_w->_kstFFTOptions->RateUnits->text());
}
if (_apodizeDirty) {
psPtr->setApodize(_w->_kstFFTOptions->Apodize->isChecked());
}
if (_apodizeFxnDirty) {
if (_editMultipleMode) {
psPtr->setApodizeFxn(ApodizeFunction(_w->_kstFFTOptions->ApodizeFxn->currentIndex()-1));
} else {
psPtr->setApodizeFxn(ApodizeFunction(_w->_kstFFTOptions->ApodizeFxn->currentIndex()));
}
}
if (_gaussianSigmaDirty) {
psPtr->setGaussianSigma(_editMultipleMode ? _w->_kstFFTOptions->Sigma->value() - 1 :
_w->_kstFFTOptions->Sigma->value());
}
if (_removeMeanDirty) {
psPtr->setRemoveMean(_w->_kstFFTOptions->RemoveMean->isChecked());
}
if (_interleavedDirty) {
psPtr->setAverage(_w->_kstFFTOptions->Interleaved->isChecked());
}
if (_outputDirty) {
if (_editMultipleMode) {
psPtr->setOutput(PSDType(_w->_kstFFTOptions->Output->currentIndex()-1));
} else {
psPtr->setOutput(PSDType(_w->_kstFFTOptions->Output->currentIndex()));
}
}
if (_interpolateHolesDirty) {
psPtr->setInterpolateHoles(_w->_kstFFTOptions->InterpolateHoles->isChecked());
}
psPtr->setRecursed(false);
if (psPtr->recursion()) {
psPtr->setRecursed(true);
psPtr->unlock();
QMessageBox::critical(this, QObject::tr("Kst"), QObject::tr("There is a recursion resulting from the spectrum you entered."));
return false;
}
psPtr->unlock();
return true;
}
示例6: i18n
// returns true if succesful
bool KstPsdDialogI::editObject() {
// if the user selected no vector, treat it as non-dirty
_vectorDirty = _w->_vector->_vector->currentItem() != 0;
_apodizeDirty = _w->_kstFFTOptions->ApodizeFxn->currentItem() != 0;
_fFTLenDirty = _w->_kstFFTOptions->FFTLen->text() != " ";
_sampRateDirty = !_w->_kstFFTOptions->SampRate->text().isEmpty();
_vectorUnitsDirty = !_w->_kstFFTOptions->VectorUnits->text().isEmpty();
_rateUnitsDirty = !_w->_kstFFTOptions->RateUnits->text().isEmpty();
_outputDirty = !_w->_kstFFTOptions->Output->currentItem() != 0;
KstPSDList psList = kstObjectSubList<KstDataObject,KstPSD>(KST::dataObjectList);
// if editing multiple objects, edit each one
if (_editMultipleMode) {
bool didEdit = false;
for (uint i = 0; i < _editMultipleWidget->_objectList->count(); i++) {
if (_editMultipleWidget->_objectList->isSelected(i)) {
// get the pointer to the object
KstPSDList::Iterator psIter = psList.findTag(_editMultipleWidget->_objectList->text(i));
if (psIter == psList.end()) {
return false;
}
KstPSDPtr psPtr = *psIter;
if (!editSingleObject(psPtr)) {
return false;
}
didEdit = true;
}
}
if (!didEdit) {
KMessageBox::sorry(this, i18n("Select one or more objects to edit."));
return false;
}
} else {
KstPSDPtr pp = kst_cast<KstPSD>(_dp);
// verify that the name is unique
QString tag_name = _tagName->text();
if (!pp || (tag_name != pp->tagName() && KstData::self()->dataTagNameNotUnique(tag_name))) {
_tagName->setFocus();
return false;
}
pp->writeLock();
pp->setTagName(KstObjectTag(tag_name, pp->tag().context())); // FIXME: doesn't allow changing tag context
pp->unlock();
// then edit the object
_vectorDirty = true;
_apodizeDirty = true;
_apodizeFxnDirty = true;
_gaussianSigmaDirty = true;
_removeMeanDirty = true;
_interleavedDirty = true;
_sampRateDirty = true;
_vectorUnitsDirty = true;
_rateUnitsDirty = true;
_fFTLenDirty = true;
_outputDirty = true;
_interpolateHolesDirty = true;
if (!editSingleObject(pp)) {
return false;
}
}
emit modified();
return true;
}
示例7: doTests
void doTests() {
KstVectorPtr vp = new KstVector(KstObjectTag("tempVector"), 10);
for (int i = 0; i < 10; i++){
vp->value()[i] = i;
}
KstPSDPtr psd = new KstPSD(QString("psdTest"), vp, 0.0, false, 10, false, false, QString("vUnits"), QString("rUnits"), WindowUndefined, 0.0, PSDUndefined);
doTest(psd->tagName() == "psdTest");
doTest(psd->vTag() == "tempVector");
doTest(psd->output() == PSDUndefined);
doTest(!psd->apodize());
doTest(!psd->removeMean());
doTest(!psd->average());
doTest(psd->freq() == 0.0);
doTest(psd->apodizeFxn() == WindowUndefined);
doTest(psd->gaussianSigma() == 0);
KstVectorPtr vpVX = psd->vX();
KstVectorPtr vpVY = psd->vY();
// until we call update the x and y vectors will be uninitialised and
// and so they should be of length 1 and the value of vpVX[0] and
// vpVX[0] should be NAN...
doTestV(QString("vpVX->length()"), vpVX->length(), 1);
doTestV(QString("vpVY->length()"), vpVY->length(), 1);
doTestV(QString("vpVX->length()"), isnan(vpVX->value()[0]), 1);
doTestV(QString("vpVY->length()"), isnan(vpVY->value()[0]), 1);
doTest(psd->update(0) == KstObject::UPDATE);
for(int j = 0; j < vpVX->length(); j++){
doTest(vpVX->value()[j] == 0);
}
psd->setOutput(PSDAmplitudeSpectralDensity);
psd->setApodize(true);
psd->setRemoveMean(true);
psd->setAverage(true);
psd->setFreq(0.1);
psd->setApodizeFxn(WindowOriginal);
psd->setGaussianSigma(0.2);
doTest(psd->tagName() == "psdTest");
doTest(psd->vTag() == "tempVector");
doTest(psd->output() == PSDAmplitudeSpectralDensity);
doTest(psd->apodize());
doTest(psd->removeMean());
doTest(psd->average());
doTest(psd->freq() == 0.1);
doTest(psd->apodizeFxn() == WindowOriginal);
doTest(psd->gaussianSigma() == 0.2);
// doTest(psd->update(0) == KstObject::UPDATE);
// QString ps = "PSD: " + psd->vTag();
// doTest(psd->propertyString() == ps);
// doTest(!psd->curveHints().curveName() == "");
// printf("Curve name [%s]", kstCHL[0].curveName());
// printf("X Vector name [%s]", kstCHL[0].xVectorName());
// printf("Y Vector name [%s]", kstCHL[0].yVectorName());
KTempFile tf(locateLocal("tmp", "kst-csd"), "txt");
QFile *qf = tf.file();
QTextStream ts(qf);
psd->save(ts, "");
QFile::remove(tf.name());
QDomNode n = makeDOMElement("psdDOMPsd", "psdDOMVector").firstChild();
QDomElement e = n.toElement();
KstPSDPtr psdDOM = new KstPSD(e);
doTest(psdDOM->tagName() == "psdDOMPsd");
doTest(psdDOM->output() == PSDAmplitudeSpectralDensity);
doTest(psdDOM->apodize());
doTest(psdDOM->removeMean());
doTest(psdDOM->average());
doTest(psdDOM->freq() == 128);
doTest(psdDOM->apodizeFxn() == WindowOriginal);
doTest(psdDOM->gaussianSigma() == 0.01);
// KstVectorPtr vpVX = psdDOM->vX();
// for(int j = 0; j < vpVX->length(); j++){
// printf("[%d][%lf]", j, vpVX->value()[j]);
// }
// KstVectorPtr vpVY = psdDOM->vY();
}
示例8: extractVector
//.........这里部分代码省略.........
exec->setException(eobj);
return KJS::Object();
}
if (args.size() > 2) {
if (args[2].type() != KJS::BooleanType) {
KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
exec->setException(eobj);
return KJS::Object();
}
average = args[2].toBoolean(exec);
}
if (args.size() > 3) {
if (args[3].type() != KJS::NumberType || !args[3].toUInt32(len)) {
KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
exec->setException(eobj);
return KJS::Object();
}
}
if (args.size() > 4) {
if (args[4].type() != KJS::BooleanType) {
KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
exec->setException(eobj);
return KJS::Object();
}
apodize = args[4].toBoolean(exec);
}
if (args.size() > 5) {
if (args[5].type() != KJS::BooleanType) {
KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
exec->setException(eobj);
return KJS::Object();
}
removeMean = args[5].toBoolean(exec);
}
if (args.size() > 6) {
if (args[6].type() != KJS::StringType) {
KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
exec->setException(eobj);
return KJS::Object();
}
vunits = args[6].toString(exec).qstring();
}
if (args.size() > 7) {
if (args[7].type() != KJS::StringType) {
KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
exec->setException(eobj);
return KJS::Object();
}
runits = args[7].toString(exec).qstring();
}
if (args.size() > 8) {
if (args[8].type() != KJS::NumberType) {
KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
exec->setException(eobj);
return KJS::Object();
}
apodizeFxn = args[8].toInt32(exec);
}
if (args.size() > 9) {
if (args[9].type() != KJS::NumberType) {
KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
exec->setException(eobj);
return KJS::Object();
}
gaussianSigma = args[9].toNumber(exec);
}
if (args.size() > 10) {
if (args[10].type() != KJS::NumberType) {
KJS::Object eobj = KJS::Error::create(exec, KJS::TypeError);
exec->setException(eobj);
return KJS::Object();
}
output = args[10].toInt32(exec);
}
if (args.size() > 11) {
KJS::Object eobj = KJS::Error::create(exec, KJS::SyntaxError);
exec->setException(eobj);
return KJS::Object();
}
KstPSDPtr d = new KstPSD(QString::null, v, freq, average, len, apodize, removeMean,
vunits, runits, (ApodizeFunction)apodizeFxn, gaussianSigma,
(PSDType)output);
KST::dataObjectList.lock().writeLock();
KST::dataObjectList.append(d.data());
KST::dataObjectList.lock().unlock();
return KJS::Object(new KstBindPowerSpectrum(exec, d));
}
示例9: o
KstBindPowerSpectrum::KstBindPowerSpectrum(KJS::ExecState *exec, KstPSDPtr d)
: KstBindDataObject(exec, d.data(), "PowerSpectrum") {
KJS::Object o(this);
addBindings(exec, o);
}
示例10: main
//.........这里部分代码省略.........
}
}
}
}
// make the requested curves for each data file
count = args->count();
handled = 0;
kst->slotUpdateProgress( count, handled, creatingCurves );
for (i_curve = i_v = 0, i_file = 0; i_file < args->count(); i_file++) {
// make the file
if (QFile::exists(args->arg(i_file))) {
fullPath = QFileInfo(args->arg(i_file)).absFilePath();
} else {
fullPath = args->arg(i_file);
}
KstDataSourcePtr file = KstDataSource::loadSource(fullPath);
if (file) {
if (!file->isValid() || file->isEmpty()) {
kstdError() << i18n("No data in file %1. Trying to continue...").arg(args->arg(i_file)) << endl;
// The file might get data later!
}
KST::dataObjectList.lock().writeLock();
KST::dataSourceList.append(file);
KST::dataObjectList.lock().unlock();
KstRVectorPtr yvector;
KstRVectorPtr evector;
KstVCurvePtr curve;
KstPSDPtr psd;
KstHistogramPtr hs;
KstRVectorPtr xvector;
if (!ycolList.isEmpty()) { // if there are some xy plots
// make the x axis vector
xvector = GetOrCreateVector(args->getOption("x"), file, in);
if (xvector) {
// make the y axis vectors
for (i_ycol = 0; i_ycol < ycolList.count(); ++i_ycol ) {
yvector = GetOrCreateVector(*(ycolList.at(i_ycol)), file, in);
if (yvector) {
// make the curves
color = KstColorSequence::next(vcurves,plot->backgroundColor());
curve = new KstVCurve(KST::suggestCurveName(yvector->tag(), false),
KstVectorPtr(xvector), KstVectorPtr(yvector),
0L, 0L, 0L, 0L, color);
if (in.has_points) {
curve->setHasPoints(true);
curve->setHasLines(false);
}
if (i_ycol<errorList.count()) {
evector = GetOrCreateVector(*(errorList.at(i_ycol)), file, in);
if (evector) {
curve->setYError(KstVectorPtr(evector));
curve->setYMinusError(KstVectorPtr(evector));
}
}
KST::dataObjectList.lock().writeLock();
KST::dataObjectList.append(curve.data());
KST::dataObjectList.lock().unlock();
示例11: editObject
bool KstPsdDialog::editObject() {
KstPSDList psList;
//
// if the user selected no vector, treat it as non-dirty...
//
_vectorDirty = _w->_vector->_vector->currentIndex() != 0;
_apodizeFxnDirty = _w->_kstFFTOptions->ApodizeFxn->currentIndex() != 0;
_fFTLenDirty = _w->_kstFFTOptions->FFTLen->text() != " ";
_sampRateDirty = !_w->_kstFFTOptions->SampRate->text().isEmpty();
_vectorUnitsDirty = !_w->_kstFFTOptions->VectorUnits->text().isEmpty();
_rateUnitsDirty = !_w->_kstFFTOptions->RateUnits->text().isEmpty();
_outputDirty = _w->_kstFFTOptions->Output->currentIndex() != 0;
psList = kstObjectSubList<KstDataObject,KstPSD>(KST::dataObjectList);
if (_editMultipleMode) {
bool didEdit = false;
int i;
for (i = 0; i < _editMultipleWidget->_objectList->count(); i++) {
if (_editMultipleWidget->_objectList->item(i)->isSelected()) {
KstPSDList::Iterator psIter;
KstPSDPtr psPtr;
psIter = psList.findTag(_editMultipleWidget->_objectList->item(i)->text());
if (psIter == psList.end()) {
return false;
}
psPtr = *psIter;
if (!editSingleObject(psPtr)) {
return false;
}
didEdit = true;
}
}
if (!didEdit) {
QMessageBox::warning(this, QObject::tr("Kst"), QObject::tr("Select one or more objects to edit."));
return false;
}
} else {
KstPSDPtr pp;
QString tag_name;
pp = kst_cast<KstPSD>(_dp);
tag_name = _tagName->text();
if (!pp || (tag_name != pp->tagName() && KstData::self()->dataTagNameNotUnique(tag_name))) {
_tagName->setFocus();
return false;
}
pp->writeLock();
pp->setTagName(tag_name);
pp->unlock();
// then edit the object
_vectorDirty = true;
_apodizeDirty = true;
_apodizeFxnDirty = true;
_gaussianSigmaDirty = true;
_removeMeanDirty = true;
_interleavedDirty = true;
_sampRateDirty = true;
_vectorUnitsDirty = true;
_rateUnitsDirty = true;
_fFTLenDirty = true;
_outputDirty = true;
_interpolateHolesDirty = true;
if (!editSingleObject(pp)) {
return false;
}
}
emit modified();
return true;
}
示例12: fillFieldsForEdit
void KstPsdDialog::fillFieldsForEdit() {
KstPSDPtr pp;
pp = kst_cast<KstPSD>(_dp);
if (pp) {
pp->readLock();
_tagName->setText(pp->tagName());
_w->_vector->setSelection(pp->vTag());
// set sample rate, Units, FFT len, and vector units
_w->_kstFFTOptions->FFTLen->setValue(pp->len());
_w->_kstFFTOptions->SampRate->setText(QString::number(pp->freq()));
_w->_kstFFTOptions->VectorUnits->setText(pp->vUnits());
_w->_kstFFTOptions->RateUnits->setText(pp->rUnits());
_w->_kstFFTOptions->Apodize->setChecked(pp->apodize());
_w->_kstFFTOptions->ApodizeFxn->setCurrentIndex(pp->apodizeFxn());
_w->_kstFFTOptions->Sigma->setValue(pp->gaussianSigma());
_w->_kstFFTOptions->RemoveMean->setChecked(pp->removeMean());
_w->_kstFFTOptions->Interleaved->setChecked(pp->average());
_w->_kstFFTOptions->Output->setCurrentIndex(pp->output());
_w->_kstFFTOptions->InterpolateHoles->setChecked(pp->interpolateHoles());
_w->_kstFFTOptions->synch();
pp->unlock();
_w->_curveAppearance->hide();
_w->_curvePlacement->hide();
_legendText->hide();
_legendLabel->hide();
adjustSize();
resize(minimumSizeHint());
setFixedHeight(height());
}
}
示例13: doTests
void doTests() {
KstVectorPtr vp = new KstVector(KstObjectTag::fromString("tempVector"), 10);
for (int i = 0; i < 10; i++){
vp->value()[i] = i;
}
KstPSDPtr psd = new KstPSD(QString("psdTest"), vp, 0.0, false, 10, false, false, QString("vUnits"), QString("rUnits"), WindowUndefined, 0.0, PSDUndefined);
doTest(psd->tagName() == "psdTest");
doTest(psd->vTag() == "tempVector");
doTest(psd->output() == PSDUndefined);
doTest(!psd->apodize());
doTest(!psd->removeMean());
doTest(!psd->average());
doTest(psd->freq() == 0.0);
doTest(psd->apodizeFxn() == WindowUndefined);
doTest(psd->gaussianSigma() == 0);
KstVectorPtr vpVX = psd->vX();
KstVectorPtr vpVY = psd->vY();
doTest(vpVX->length() == 1);
doTest(vpVX->value()[0] != vpVX->value()[0]);
doTest(vpVY->length() == 1);
doTest(vpVY->value()[0] != vpVY->value()[0]);
psd->writeLock();
doTest(psd->update(0) == KstObject::UPDATE);
psd->unlock();
for(int j = 0; j < vpVX->length(); j++){
doTest(vpVX->value()[j] == 0);
}
psd->setOutput(PSDAmplitudeSpectralDensity);
psd->setApodize(true);
psd->setRemoveMean(true);
psd->setAverage(true);
psd->setFreq(0.1);
psd->setApodizeFxn(WindowOriginal);
psd->setGaussianSigma(0.2);
doTest(psd->tagName() == "psdTest");
doTest(psd->vTag() == "tempVector");
doTest(psd->output() == PSDAmplitudeSpectralDensity);
doTest(psd->apodize());
doTest(psd->removeMean());
doTest(psd->average());
doTest(psd->freq() == 0.1);
doTest(psd->apodizeFxn() == WindowOriginal);
doTest(psd->gaussianSigma() == 0.2);
// doTest(psd->update(0) == KstObject::UPDATE);
// QString ps = "PSD: " + psd->vTag();
// doTest(psd->propertyString() == ps);
// doTest(!psd->curveHints().curveName() == "");
// printf("Curve name [%s]", kstCHL[0].curveName());
// printf("X Vector name [%s]", kstCHL[0].xVectorName());
// printf("Y Vector name [%s]", kstCHL[0].yVectorName());
QTemporaryFile tf;
tf.open();
QTextStream ts(&tf);
psd->save(ts, "");
QFile::remove(tf.fileName());
QDomNode n = makeDOMElement("psdDOMPsd", "psdDOMVector").firstChild();
QDomElement e = n.toElement();
KstPSDPtr psdDOM = new KstPSD(e);
doTest(psdDOM->tagName() == "psdDOMPsd");
doTest(psdDOM->output() == PSDAmplitudeSpectralDensity);
doTest(psdDOM->apodize());
doTest(psdDOM->removeMean());
doTest(psdDOM->average());
doTest(psdDOM->freq() == 128);
doTest(psdDOM->apodizeFxn() == WindowOriginal);
doTest(psdDOM->gaussianSigma() == 0.01);
// KstVectorPtr vpVX = psdDOM->vX();
// for(int j = 0; j < vpVX->length(); j++){
// printf("[%d][%lf]", j, vpVX->value()[j]);
// }
// KstVectorPtr vpVY = psdDOM->vY();
}