All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions | Protected Member Functions
DinverDCGui::AutocorrViewer Class Reference

#include <AutocorrViewer.h>

Inheritance diagram for DinverDCGui::AutocorrViewer:
DinverDCGui::DCModelViewer

List of all members.

Public Member Functions

 AutocorrViewer (QWidget *parent=0)
virtual void setMode (const Mode &m)
virtual void setVersusDistance (bool b)
 ~AutocorrViewer ()

Protected Member Functions

virtual bool hasCurves (DCReportBlock &dcBlock)
virtual void report2plot (DCReportBlock &dcBlock, Point2D **points, const DCModelInfo &info)
virtual void setLimits (int i, const Rect &r)
virtual void setSampleCount (DCModelInfo *info, DCReportBlock &dcBlock)
virtual void setTarget (TargetList *tl)
virtual void setTitles (int i)
virtual AbstractLinetargetReferenceLine () const

Constructor & Destructor Documentation

References DinverDCGui::DCModelViewer::addMenu(), DinverDCGui::DCModelViewer::showTarget(), QGpCoreTools::tr(), and TRACE.

    : DCModelViewer(parent)
{
  TRACE;
  _versusDistance=false;
  Settings::getSize(this, "AutocorrViewer" );

  // Tools menu
  QMenu * m;
  QAction * a;

  m=addMenu(tr( "&Tools" ));

  a=new QAction(tr( "Current target" ), this);
  a->setCheckable(true);
  a->setChecked(true);
  a->setStatusTip(tr( "Show/hide the current target onto the inverted autocorrelation curves" ));
  connect(a, SIGNAL(toggled(bool)), this, SLOT(showTarget(bool)) );
  m->addAction(a);
}

References TRACE.

{
  TRACE;
  Settings::setSize(this, "AutocorrViewer" );
}

Member Function Documentation

bool DinverDCGui::AutocorrViewer::hasCurves ( DCReportBlock dcBlock) [protected, virtual]

Implements DinverDCGui::DCModelViewer.

References DinverDCCore::DCReportBlock::autocorr(), and TRACE.

{
  TRACE;
  return dcBlock.autocorr();
}
void DinverDCGui::AutocorrViewer::report2plot ( DCReportBlock dcBlock,
Point2D **  points,
const DCModelInfo info 
) [protected, virtual]

Implements DinverDCGui::DCModelViewer.

References DinverDCGui::DCModelViewer::_nGraphs, QGpCoreWave::Mode::index(), DinverDCCore::DCReportBlock::modalStorage(), DinverDCCore::DCModelInfo::offset(), DinverDCCore::DCReportBlock::readModalStorages(), DinverDCCore::DCReportBlock::stream(), DinverDCCore::ModalStorageReader::toPlot(), and TRACE.

{
  TRACE;
  int nRings;
  dcBlock.stream() >> nRings;
  dcBlock.readModalStorages(nRings*3);
  if(nRings>_nGraphs) nRings=_nGraphs;
  int pi=polarisationIndex();
  for(int i=0;i<nRings;i++) {
    if(dcBlock.modalStorage(3*i+pi)) {
      ModalStorageReader reader(dcBlock.stream());
      if(reader.seek(dcBlock.stream(),_mode.index())) {
        reader.toPlot(dcBlock.stream(), points[i]+info.offset(i));
      }
    }
  }
}
void DinverDCGui::AutocorrViewer::setLimits ( int  i,
const Rect r 
) [protected, virtual]
void DinverDCGui::AutocorrViewer::setMode ( const Mode m) [virtual]

Reimplemented from DinverDCGui::DCModelViewer.

References QGpCoreWave::Mode::index(), QGpCoreWave::Mode::polarisationString(), QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  _mode=m;
  setWindowTitle(tr("%1 autocorrelation curves (mode %2):").arg(m.polarisationString()).arg(m.index()));
}
void DinverDCGui::AutocorrViewer::setSampleCount ( DCModelInfo info,
DCReportBlock dcBlock 
) [protected, virtual]

hasCurve() must be called just before this function because internal _nRings must be correclty initialized

Implements DinverDCGui::DCModelViewer.

References DinverDCGui::DCModelViewer::_nGraphs, QGpCoreWave::Mode::index(), DinverDCCore::DCReportBlock::modalStorage(), DinverDCCore::DCReportBlock::readModalStorages(), DinverDCCore::DCModelInfo::setSampleCount(), DinverDCCore::DCReportBlock::stream(), and TRACE.

{
  TRACE;
  int nRings;
  dcBlock.stream() >> nRings;
  dcBlock.readModalStorages(nRings*3);
  if(nRings>_nGraphs) nRings=_nGraphs;
  int pi=polarisationIndex();
  int nf;
  for(int i=0;i<nRings;i++) {
    if(dcBlock.modalStorage(3*i+pi)) {
      ModalStorageReader reader(dcBlock.stream());
      if(reader.seek(dcBlock.stream(),_mode.index())) {
        dcBlock.stream() >> nf;
        info->setSampleCount(i,nf);
        continue;
      }
    }
    info->setSampleCount(i,0);
  }
  // For the sake of security, set 0 samples to remaining graphs
  for(int i=nRings;i<_nGraphs;i++) {
    info->setSampleCount(i,0);
  }
}
void DinverDCGui::AutocorrViewer::setTarget ( TargetList tl) [protected, virtual]

Reimplemented from DinverDCGui::DCModelViewer.

References DinverDCGui::DCModelViewer::_nGraphs, DinverDCGui::DCModelViewer::_targetLayers, SciFigs::LineLayer::addLine(), DinverDCGui::DCModelViewer::addText(), DinverDCCore::TargetList::autocorrTarget(), DinverDCCore::AutocorrTarget::curves(), QGpCoreWave::AutocorrCurves::isEmpty(), QGpCoreWave::AutocorrRing::maxRadius(), QGpCoreWave::AutocorrRing::minRadius(), QGpCoreWave::AutocorrCurves::ring(), QGpCoreWave::AutocorrCurves::ringCount(), QGpCoreWave::AutocorrCurves::ringCurves(), QGpCoreWave::Mode::setRingIndex(), QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  const AutocorrCurves& ac=tl->autocorrTarget().curves();
  if(ac.isEmpty()) return;
  int nRings=ac.ringCount();
  if(nRings>_nGraphs) nRings=_nGraphs;
  for(int i=0;i<nRings;i++) {
    _mode.setRingIndex(i);
    const QList<ModalCurve>& curves=ac.ringCurves(i);
    for(QList<ModalCurve>::const_iterator it=curves.begin();it!=curves.end(); it++) {
      if(it->hasMode(_mode)) {
        static_cast<ModalLine *>(_targetLayers[i]->addLine())->setCurve( *it);
      }
    }
    const AutocorrRing& r=ac.ring(i);
    addText(i, tr("Ring %1 from %2 m to %3 m").arg(i+1).arg(r.minRadius()).arg(r.maxRadius()));
  }
  delete tl;
}
void DinverDCGui::AutocorrViewer::setTitles ( int  i) [protected, virtual]
virtual void DinverDCGui::AutocorrViewer::setVersusDistance ( bool  b) [inline, virtual]
{_versusDistance=b;}

Implements DinverDCGui::DCModelViewer.

References SciFigs::AbstractLine::setPen(), SciFigs::AbstractLine::setSymbol(), and TRACE.

{
  TRACE;
  ModalLine * line=new ModalLine;
  line->setPen(Pen( Qt::black, 0.6) );
  line->setSymbol(Symbol( Symbol::Circle, 1.2, Pen(Qt::black, 0.0),
                              Brush(Qt::black, Qt::SolidPattern) ));
  return line;
}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines