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

#include <EllipticityViewer.h>

Inheritance diagram for DinverDCGui::EllipticityViewer:
DinverDCGui::DCModelViewer

List of all members.

Public Member Functions

 EllipticityViewer (QWidget *parent=0)
 ~EllipticityViewer ()

Protected Member Functions

virtual bool hasCurves (DCReportBlock &dcBlock)
virtual DCModelViewernewInstance ()
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 void showTarget (bool isVisible)
virtual AbstractLinetargetReferenceLine () const

Constructor & Destructor Documentation

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

    : DCModelViewer(parent)
{
  TRACE;
  Settings::getSize(this, "EllipticityViewer" );
  setWindowTitle(tr("Ellipticity curves:"));

  // 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 ellipticity curves" ));
  connect(a, SIGNAL(toggled(bool)), this, SLOT(showTarget(bool)) );
  m->addAction(a);

  _peakTargetLayers=0;
}

References TRACE.

{
  TRACE;
  Settings::setSize(this, "EllipticityViewer" );
  delete [] _peakTargetLayers;
}

Member Function Documentation

bool DinverDCGui::EllipticityViewer::hasCurves ( DCReportBlock dcBlock) [protected, virtual]
virtual DCModelViewer* DinverDCGui::EllipticityViewer::newInstance ( ) [inline, protected, virtual]
{return new EllipticityViewer;}
void DinverDCGui::EllipticityViewer::report2plot ( DCReportBlock dcBlock,
Point2D **  points,
const DCModelInfo info 
) [protected, virtual]

Implements DinverDCGui::DCModelViewer.

References DinverDCGui::DCModelViewer::_nGraphs, DinverDCCore::ModalStorageReader::nModes(), DinverDCCore::DCModelInfo::offset(), DinverDCCore::DCReportBlock::stream(), and TRACE.

{
  TRACE;
  ModalStorageReader reader(dcBlock.stream());
  int n=reader.nModes();
  if(n>_nGraphs) n=_nGraphs;
  for(int i=0;i<n;i++) {
    reader.toPlot(dcBlock.stream(), points[i]+info.offset(i));
  }
}
void DinverDCGui::EllipticityViewer::setLimits ( int  i,
const Rect r 
) [protected, virtual]

Implements DinverDCGui::DCModelViewer.

References DinverDCGui::DCModelViewer::_graphs, SciFigs::Axis::setRange(), TRACE, QGpCoreTools::Rect::x1(), QGpCoreTools::Rect::x2(), SciFigs::AxisWindow::xAxis(), QGpCoreTools::Rect::y1(), QGpCoreTools::Rect::y2(), and SciFigs::AxisWindow::yAxis().

{
  TRACE;
  _graphs[ i ] ->xAxis()->setRange(r.x1() * 0.95, r.x2() * 1.05);
  double y1=r.y1();
  double y2=r.y2();
  if(y2 > 100.0) y2=100.0;
  if(y1 < 0.01) y1=0.01;
  _graphs[ i ] ->yAxis()->setRange(y1 * 0.95, y2 * 1.05);
}
void DinverDCGui::EllipticityViewer::setSampleCount ( DCModelInfo info,
DCReportBlock dcBlock 
) [protected, virtual]

Implements DinverDCGui::DCModelViewer.

References DinverDCGui::DCModelViewer::_nGraphs, DinverDCCore::ModalStorageReader::nModes(), DinverDCCore::DCModelInfo::setSampleCount(), DinverDCCore::DCReportBlock::stream(), and TRACE.

{
  TRACE;
  ModalStorageReader reader(dcBlock.stream());
  int n=reader.nModes();
  if(n>_nGraphs) n=_nGraphs;
  int i, nf;
  for(i=0;i<n;i++) {
    if(reader.seek(dcBlock.stream(),i)) {
      dcBlock.stream() >> nf;
      info->setSampleCount(i,nf);
    } else {
      info->setSampleCount(i,0);
    }
  }
  for(;i<_nGraphs;i++) info->setSampleCount(i,0);
}
void DinverDCGui::EllipticityViewer::setTarget ( TargetList tl) [protected, virtual]

Reimplemented from DinverDCGui::DCModelViewer.

References DinverDCGui::DCModelViewer::_nGraphs, DinverDCGui::DCModelViewer::_targetLayers, SciFigs::ParallelBands::addBand(), SciFigs::LineLayer::addLine(), DinverDCGui::DCModelViewer::addText(), DinverDCCore::ModalCurveTarget::curves(), DinverDCCore::TargetList::ellipticityCurveTarget(), DinverDCCore::TargetList::ellipticityPeakTarget(), QGpCoreTools::StatisticalValue< numberType >::isValid(), QGpCoreTools::StatisticalValue< numberType >::mean(), DinverDCCore::Target::selected(), SciFigs::LineLayer::setErrorBar(), QGpCoreWave::Mode::setIndex(), SciFigs::GraphContentLayer::setOpacity(), QGpCoreTools::StatisticalValue< numberType >::stddev(), QGpCoreTools::tr(), TRACE, and DinverDCCore::ValueTarget::value().

{
  TRACE;
  const QList<ModalCurve>& curves=tl->ellipticityCurveTarget().curves();
  Mode m(Mode::Phase, Mode::Rayleigh, 0);
  for(int i=0;i<_nGraphs;i++) {
    _targetLayers[i]->setErrorBar(LineLayer::VerticalLogBar);
    m.setIndex(i);
    for(QList<ModalCurve>::const_iterator it=curves.begin();it!=curves.end(); it++) {
      if(it->hasMode(m)) {
        static_cast<ModalLine *>(_targetLayers[i]->addLine())->setCurve( *it);
      }
    }
    if(i==0)
      addText(i, tr("Fundamental mode"));
    else
      addText(i, tr("Higher mode %1").arg(i));
  }
  // Peak
  _peakTargetLayers=new ParallelBands *[_nGraphs];
  for(int i=0;i<_nGraphs;i++) {
    _peakTargetLayers[i]=new ParallelBands(_targetLayers[i]->graph());
    _peakTargetLayers[i]->setOpacity(0);
  }
  ValueTarget& ellTarget=tl->ellipticityPeakTarget();
  if(ellTarget.selected() && ellTarget.value().isValid()) {
    double f0=ellTarget.value().mean();
    double df0=ellTarget.value().stddev();
    for(int i=0;i<_nGraphs;i++) {
      _peakTargetLayers[i]->setOpacity(0.3);
      _peakTargetLayers[i]->addBand(f0 - df0, f0, QBrush(Qt::lightGray) );
      _peakTargetLayers[i]->addBand(f0 + df0, f0, QBrush(Qt::gray) );
    }
  }
  delete tl;
}
void DinverDCGui::EllipticityViewer::setTitles ( int  i) [protected, virtual]
void DinverDCGui::EllipticityViewer::showTarget ( bool  isVisible) [protected, virtual]

Reimplemented from DinverDCGui::DCModelViewer.

References DinverDCGui::DCModelViewer::_nGraphs, SciFigs::GraphContentLayer::deepUpdate(), SciFigs::GraphContentLayer::setOpacity(), and TRACE.

Referenced by EllipticityViewer().

{
  TRACE;
  DCModelViewer::showTarget(isVisible);
  for(int i=0;i<_nGraphs;i++) {
    _peakTargetLayers[i]->setOpacity(isVisible ? 0.3 : 0.0);
    _peakTargetLayers[i]->deepUpdate();
  }
}

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