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

Brief description of class still missing. More...

#include <MagnetoTelluricViewer.h>

Inheritance diagram for DinverDCGui::MagnetoTelluricViewer:
DinverDCGui::DCModelViewer

List of all members.

Public Member Functions

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

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

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

Description of constructor still missing

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

    : DCModelViewer(parent)
{
  TRACE;
  Settings::getSize(this, "MagnetoTelluricViewer" );
  setWindowTitle(tr("Magneto-telluric 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 magneto-telluric curves" ));
  connect(a, SIGNAL(toggled(bool)), this, SLOT(showTarget(bool)) );
  m->addAction(a);
}

References TRACE.

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

Member Function Documentation

bool DinverDCGui::MagnetoTelluricViewer::hasCurves ( DCReportBlock dcBlock) [protected, virtual]
void DinverDCGui::MagnetoTelluricViewer::report2plot ( DCReportBlock dcBlock,
Point2D **  points,
const DCModelInfo info 
) [protected, virtual]

Implements DinverDCGui::DCModelViewer.

References DinverDCGui::DCModelViewer::_nGraphs, QGpCoreWave::MagnetoTelluricFactory::angularFrequencies(), QGpCoreWave::MagnetoTelluricFactory::impedanceXY(), DinverDCCore::DCModelInfo::offset(), QGpCoreWave::MagnetoTelluricFactory::readReport(), QGpCoreWave::MagnetoTelluricPointOptions::setMode(), QGpCoreTools::Point2D::setX(), QGpCoreTools::Point2D::setY(), DinverDCCore::DCReportBlock::stream(), QGpCoreWave::MagnetoTelluricPointOptions::toDouble(), TRACE, QGpCoreTools::Value< numberType >::value(), and QGpCoreTools::Point2D::x().

{
  TRACE;
  MagnetoTelluricFactory f;
  f.readReport(dcBlock.stream());
  const QVector<double>& x=f.angularFrequencies();
  int nFrequencies=x.count();
  const ComplexValue * values=f.impedanceXY();
  MagnetoTelluricPointOptions options;
  double frequencyFactor=1.0/(2.0*M_PI);
  for(int ig=0; ig < _nGraphs; ig++ ) {
    switch(ig) {
    default:
      options.setMode(MagnetoTelluricPointOptions::ApparentResistivity);
      break;
    case 1:
      options.setMode(MagnetoTelluricPointOptions::PhaseDegrees);
      break;
    }
    Point2D * gPoints=points[ig]+info.offset(ig);
    for(int is=0; is < nFrequencies; is++ ) {
      Point2D& p=gPoints[is];
      p.setX(frequencyFactor*x.at(is));
      p.setY(options.toDouble(p.x(), values[is].value()));
    }
  }
}
void DinverDCGui::MagnetoTelluricViewer::setLimits ( int  i,
const Rect r 
) [protected, virtual]
void DinverDCGui::MagnetoTelluricViewer::setSampleCount ( DCModelInfo info,
DCReportBlock dcBlock 
) [protected, virtual]

Implements DinverDCGui::DCModelViewer.

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

{
  TRACE;
  // Read number of sources and receivers
  int nFrequencies;
  dcBlock.stream() >> nFrequencies;
  int i;
  for(i=0;i<_nGraphs;i++) {
    info->setSampleCount(i,nFrequencies);
  }
}
void DinverDCGui::MagnetoTelluricViewer::setTarget ( TargetList tl) [protected, virtual]

Reimplemented from DinverDCGui::DCModelViewer.

References DinverDCGui::DCModelViewer::_nGraphs, DinverDCGui::DCModelViewer::_targetLayers, SciFigs::LineLayer::addLine(), DinverDCCore::MagnetoTelluricTarget::curves(), DinverDCCore::TargetList::magnetoTelluricTarget(), SciFigs::LineLayer::setPointOptions(), and TRACE.

{
  TRACE;
  const QList<MagnetoTelluricCurve>& curves=tl->magnetoTelluricTarget().curves();
  for(int ig=0;ig<_nGraphs;ig++) {
    for(QList<MagnetoTelluricCurve>::const_iterator it=curves.begin();it!=curves.end(); it++) {
      static_cast<MagnetoTelluricLine *>(_targetLayers[ig]->addLine())->setCurve(*it);
    }
    MagnetoTelluricPointOptions::OutputMode m;
    switch(ig) {
    default:
      m=MagnetoTelluricPointOptions::ApparentResistivity;
      break;
    case 1:
      m=MagnetoTelluricPointOptions::PhaseDegrees;
      break;
    }
    _targetLayers[ig]->setPointOptions(new MagnetoTelluricPointOptions(m));
  }
  delete tl;
}
void DinverDCGui::MagnetoTelluricViewer::setTitles ( int  i) [protected, virtual]

Implements DinverDCGui::DCModelViewer.

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

{
  TRACE;
  MagnetoTelluricLine * line=new MagnetoTelluricLine;
  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