示例#1
0
文件: psd.cpp 项目: jmlee4301/kst
DataObjectPtr PSD::makeDuplicate() const {

  PSDPtr powerspectrum = store()->createObject<PSD>();
  Q_ASSERT(powerspectrum);

  powerspectrum->writeLock();
  powerspectrum->setVector(_inputVectors[INVECTOR]);
  powerspectrum->setFrequency(_Frequency);
  powerspectrum->setAverage(_Average);
  powerspectrum->setLength(_averageLength);
  powerspectrum->setApodize(_Apodize);
  powerspectrum->setRemoveMean(_RemoveMean);
  powerspectrum->setVectorUnits(_vectorUnits);
  powerspectrum->setRateUnits(_rateUnits);
  powerspectrum->setApodizeFxn(_apodizeFxn);
  powerspectrum->setGaussianSigma(_gaussianSigma);
  powerspectrum->setOutput(_Output);
  powerspectrum->setInterpolateHoles(_interpolateHoles);
  if (descriptiveNameIsManual()) {
    powerspectrum->setDescriptiveName(descriptiveName());
  }
  powerspectrum->registerChange();
  powerspectrum->unlock();

  return DataObjectPtr(powerspectrum);
}
DataMatrixPtr DataMatrix::makeDuplicate() const {
  Q_ASSERT(store());
  DataMatrixPtr matrix = store()->createObject<DataMatrix>();

  matrix->writeLock();
  matrix->change(file(), _field, _reqXStart, _reqYStart, _reqNX, _reqNY, _doAve, _doSkip, _skip, _minX, _minY, _stepX, _stepY);
  if (descriptiveNameIsManual()) {
    matrix->setDescriptiveName(descriptiveName());
  }
  matrix->registerChange();
  matrix->unlock();

  return matrix;
}
示例#3
0
文件: vscalar.cpp 项目: KDE/kst-plot
PrimitivePtr VScalar::makeDuplicate() const {
  Q_ASSERT(store());
  VScalarPtr scalar = store()->createObject<VScalar>();

  scalar->writeLock();
  scalar->change(dataSource(), _field, _f0);
  if (descriptiveNameIsManual()) {
    scalar->setDescriptiveName(descriptiveName());
  }

  scalar->registerChange();
  scalar->unlock();

  return kst_cast<Primitive>(scalar);
}
示例#4
0
PrimitivePtr DataString::_makeDuplicate() const {
  Q_ASSERT(store());
  DataStringPtr string = store()->createObject<DataString>();

  string->writeLock();
  string->change(_dp->dataSource(), _dp->_field);
  if (descriptiveNameIsManual()) {
    string->setDescriptiveName(descriptiveName());
  }

  string->registerChange();
  string->unlock();

  return kst_cast<Primitive>(string);
}
示例#5
0
文件: histogram.cpp 项目: rxwatt/kst
DataObjectPtr Histogram::makeDuplicate() const {

    HistogramPtr histogram = store()->createObject<Histogram>();

    histogram->setVector(_inputVectors[RAWVECTOR]);
    histogram->setXRange(_MinX, _MaxX);
    histogram->setNumberOfBins(_NumberOfBins);
    histogram->setNormalizationType(_NormalizationMode);
    histogram->setRealTimeAutoBin(_realTimeAutoBin);

    if (descriptiveNameIsManual()) {
        histogram->setDescriptiveName(descriptiveName());
    }

    histogram->writeLock();
    histogram->registerChange();
    histogram->unlock();

    return DataObjectPtr(histogram);
}
示例#6
0
RelationPtr Curve::makeDuplicate(QMap<RelationPtr, RelationPtr> &duplicatedRelations) {
  CurvePtr curve = store()->createObject<Curve>();

  if (descriptiveNameIsManual()) {
    curve->setDescriptiveName(descriptiveName());
  }
  curve->setXVector(xVector());
  curve->setYVector(yVector());
  if (hasXError()) {
    curve->setXError(xErrorVector());
  }
  if (hasYError()) {
    curve->setYError(yErrorVector());
  }
  if (hasXMinusError()) {
    curve->setXMinusError(xMinusErrorVector());
  }
  if (hasYMinusError()) {
    curve->setYMinusError(yMinusErrorVector());
  }

  curve->setColor(Color);
  curve->setHasPoints(HasPoints);
  curve->setHasLines(HasLines);
  curve->setHasBars(HasBars);
  curve->setLineWidth(LineWidth);
  curve->setLineStyle(LineStyle);
  curve->setPointType(PointDensity);
  curve->setPointDensity(PointDensity);
  curve->setBarStyle(BarStyle);

  curve->writeLock();
  curve->registerChange();
  curve->unlock();

  duplicatedRelations.insert(this, RelationPtr(curve));
  return RelationPtr(curve);
}
示例#7
0
void Equation::updateVectorLabels() {
  if (!_xInVector) {
    return;
  }

  _xOutVector->setLabelInfo(_xInVector->labelInfo());

  QString yl;
  QString xl;
  QRegExp sn("(\\(V(\\d{1,2})\\))|\\[|\\]"); // short name
  yl = reparsedEquation();
  yl.remove(sn);

  LabelInfo label_info;
  label_info.units.clear();
  label_info.quantity.clear();
  if (descriptiveNameIsManual()) {
    label_info.name = descriptiveName();
  } else {
    label_info.name = yl;
  }
  _yOutVector->setTitleInfo(label_info);
}
DataObjectPtr EventMonitorEntry::makeDuplicate() const {
  EventMonitorEntryPtr eventMonitor = store()->createObject<EventMonitorEntry>();

  eventMonitor->setScriptCode(_script);
  eventMonitor->setEvent(_event);
  eventMonitor->setDescription(_description);
  eventMonitor->setLevel(_level);
  eventMonitor->setLogDebug(_logDebug);
  eventMonitor->setLogEMail(_logEMail);
  eventMonitor->setLogELOG(_logELOG);
  eventMonitor->setEMailRecipients(_eMailRecipients);

  if (descriptiveNameIsManual()) {
    eventMonitor->setDescriptiveName(descriptiveName());
  }
  eventMonitor->reparse();

  eventMonitor->writeLock();
  eventMonitor->registerChange();
  eventMonitor->unlock();

  return DataObjectPtr(eventMonitor);
}
示例#9
0
DataObjectPtr CSD::makeDuplicate() const{

  CSDPtr csd = store()->createObject<CSD>();
  csd->change(_inputVectors[CSD_INVECTOR],
              _frequency,
              _average,
              _removeMean,
              _apodize,
              _apodizeFxn,
              _windowSize,
              _averageLength,
              _gaussianSigma,
              _outputType,
              _vectorUnits,
              _rateUnits);
  if (descriptiveNameIsManual()) {
    csd->setDescriptiveName(descriptiveName());
  }
  csd->writeLock();
  csd->registerChange();
  csd->unlock();

  return DataObjectPtr(csd);
}
示例#10
0
RelationPtr Image::makeDuplicate(QMap<RelationPtr, RelationPtr> &duplicatedRelations) {
  ImagePtr image = store()->createObject<Image>();

  if (!_hasContourMap) {
    image->changeToColorOnly(_inputMatrices[THEMATRIX],
        _zLower,
        _zUpper,
        _autoThreshold,
        _pal.paletteName());
  } else if (!_hasColorMap) {
    image->changeToContourOnly(_inputMatrices[THEMATRIX],
        _numContourLines,
        _contourColor,
        _contourWeight);
  } else {
    image->changeToColorAndContour(_inputMatrices[THEMATRIX],
        _zLower,
        _zUpper,
        _autoThreshold,
        _pal.paletteName(),
        _numContourLines,
        _contourColor,
        _contourWeight);
  }

  if (descriptiveNameIsManual()) {
    image->setDescriptiveName(descriptiveName());
  }
  image->writeLock();
  image->registerChange();
  image->unlock();

  duplicatedRelations.insert(this, RelationPtr(image));
  return RelationPtr(image);

}
// to keep the size of the saved xml files smaller, 'I' 
// should be set to only the types who are effected by the 
// creation of the Object.  (So, the type itself and any slave
// objects which are created)  eg: Vectors: VNUM|XNUM
// It doesn't hurt to add more (the default is all bits set)
// except that it increases the size of the .kst file, and
// slows loading (not much, but if you have hundreds of
// objects....)
void NamedObject::saveNameInfo(QXmlStreamWriter &s, unsigned I) {
  if (descriptiveNameIsManual()) {
    s.writeAttribute("descriptiveNameIsManual", "true");
    s.writeAttribute("descriptiveName", descriptiveName());
  }
  if (I & VNUM)
    s.writeAttribute("initialVNum", QString::number(_initial_vnum));
  if (I & XNUM)
    s.writeAttribute("initialXNum", QString::number(_initial_xnum));
  if (I & PNUM)
    s.writeAttribute("initialPNum", QString::number(_initial_pnum));
  if (I & CSDNUM)
    s.writeAttribute("initialCSDNum", QString::number(_initial_csdnum));
  if (I & CNUM)
    s.writeAttribute("initialCNum", QString::number(_initial_cnum));
  if (I & ENUM)
    s.writeAttribute("initialENum", QString::number(_initial_enum));
  if (I & HNUM)
    s.writeAttribute("initialHNum", QString::number(_initial_hnum));
  if (I & INUM)
    s.writeAttribute("initialINum", QString::number(_initial_inum));
  if (I & PSDNUM)
    s.writeAttribute("initialPSDNum", QString::number(_initial_psdnum));
  if (I & TNUM)
    s.writeAttribute("initialTNum", QString::number(_initial_tnum));
  if (I & MNUM)
    s.writeAttribute("initialMNum", QString::number(_initial_mnum));
  if (I & PLOTNUM)
    s.writeAttribute("initialPlotNum", QString::number(_initial_plotnum));
  if (I & LNUM)
    s.writeAttribute("initialLNum", QString::number(_initial_lnum));
  if (I & DNUM)
    s.writeAttribute("initialDNum", QString::number(_initial_dnum));
  if (I & DSNUM)
    s.writeAttribute("initialDSNum", QString::number(_initial_dsnum));
}
示例#12
0
// to keep the size of the saved xml files smaller, 'I' 
// should be set to only the types who are effected by the 
// creation of the Object.  (So, the type itself and any slave
// objects which are created)  eg: Vectors: VNUM|XNUM
// It doesn't hurt to add more (the default is all bits set)
// except that it increases the size of the .kst file, and
// slows loading (not much, but if you have hundreds of
// objects....)
void NamedObject::saveNameInfo(QXmlStreamWriter &s, unsigned I) {
  if (descriptiveNameIsManual()) {
    s.writeAttribute("descriptiveNameIsManual", "true");
    s.writeAttribute("descriptiveName", descriptiveName());
  }
  if (I & VECTORNUM)
    s.writeAttribute("initialVNum", QString::number(_initial_vectornum));
  if (I & SCALARNUM)
    s.writeAttribute("initialXNum", QString::number(_initial_scalarnum));
  if (I & PLUGINNUM)
    s.writeAttribute("initialPNum", QString::number(_initial_pluginnum));
  if (I & CSDNUM)
    s.writeAttribute("initialCSDNum", QString::number(_initial_csdnum));
  if (I & CURVENUM)
    s.writeAttribute("initialCNum", QString::number(_initial_curvenum));
  if (I & EQUATIONNUM)
    s.writeAttribute("initialENum", QString::number(_initial_equationnum));
  if (I & HISTOGRAMNUM)
    s.writeAttribute("initialHNum", QString::number(_initial_histogramnum));
  if (I & IMAGENUM)
    s.writeAttribute("initialINum", QString::number(_initial_imagenum));
  if (I & PSDNUM)
    s.writeAttribute("initialPSDNum", QString::number(_initial_psdnum));
  if (I & STRINGNUM)
    s.writeAttribute("initialTNum", QString::number(_initial_stringnum));
  if (I & MATRIXNUM)
    s.writeAttribute("initialMNum", QString::number(_initial_matrixnum));
  if (I & PLOTNUM)
    s.writeAttribute("initialPlotNum", QString::number(_initial_plotnum));
  if (I & LEGENDNUM)
    s.writeAttribute("initialLNum", QString::number(_initial_legendnum));
  if (I & VIEWITEMNUM)
    s.writeAttribute("initialDNum", QString::number(_initial_viewitemnum));
  if (I & DATASOURCENUM)
    s.writeAttribute("initialDSNum", QString::number(_initial_datasourcenum));
}