Public Member Functions | Protected Member Functions
ToolStructure Class Reference

Brief description of class still missing. More...

#include <ToolStructure.h>

Inheritance diagram for ToolStructure:
MonoStation::AbstractTool GeopsyGui::ToolBase

List of all members.

Public Member Functions

 ToolStructure (QWidget *parent)

Protected Member Functions

virtual AbstractSummarycreateSummary ()
virtual WinResultscreateWinResults ()
virtual bool initStations (SubSignalPool *subPool)
virtual void setLimits ()

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

ToolStructure::ToolStructure ( QWidget *  parent)

Description of constructor still missing

References MonoStation::AbstractTool::_d, MonoStation::AbstractToold::removeHorizontalComponents(), and TRACE.

   : AbstractTool (parent)
{
  TRACE;
  setWindowIcon(QIcon( ":/images/structure-22x22.png" ));
  setObjectName("ToolStructure");
  _d->removeHorizontalComponents();
}

Member Function Documentation

AbstractSummary * ToolStructure::createSummary ( ) [protected, virtual]

Implements MonoStation::AbstractTool.

References TRACE.

{
  TRACE;
  return 0;
}
WinResults * ToolStructure::createWinResults ( ) [protected, virtual]

Implements MonoStation::AbstractTool.

References TRACE.

{
  TRACE;
  return new StructureWinResults;
}
bool ToolStructure::initStations ( SubSignalPool subPool) [protected, virtual]

Reimplemented from GeopsyGui::ToolBase.

References MonoStation::AbstractTool::_d, MonoStation::AbstractTool::_stations, MonoStation::AbstractTool::_stationSignals, GeopsyGui::ToolBase::_subPool, StructureStation::AddChannels, StructureStationSignals::addSignals(), GeopsyGui::TimeWindowLayer::addTimeWindows(), MonoStation::AbstractStation::addWindowingLog(), MonoStation::AbstractStation::clearWindowingLog(), GeopsyCore::SubSignalPool::count(), MonoStation::AbstractTool::createResults(), GeopsyCore::geopsyCore, QGpCoreTools::log(), MSG_ID, StructureStation::name(), GeopsyCore::StationSignals::name(), GeopsyCore::SubSignalPool::name(), StructureStationSignals::organizeSubPool(), GeopsyCore::StationSignals::originals(), GeopsyCore::SubSignalPool::remove(), MonoStation::AbstractStation::results(), StructureStation::setTransform(), GeopsyGui::ToolBase::setWindowTitle(), GeopsyCore::GeopsyCoreEngine::showMessage(), str, StructureStation::SubChannels, GeopsyGui::ToolBase::timeWindowLayer(), QGpCoreTools::tr(), TRACE, GeopsyGui::ToolBase::updateSubPool(), MonoStation::AbstractTool::updateSummary(), MonoStation::AbstractStation::windows(), and MonoStation::AbstractTool::windowsChanged().

{
  TRACE;
  if(!setOptions()) return false;
  geopsyCore->showMessage(tr("Initializing stations..."));
  _subPool=subPool;
  QString str="Structure spectrum toolbox - " + _subPool->name();
  setWindowTitle(str);
  // Remove eventually components to exclude
  if(_options & RemoveV)
    _subPool->remove(Signal::Vertical);
  if(_options & RemoveN)
    _subPool->remove(Signal::North);
  if(_options & RemoveE)
    _subPool->remove(Signal::East);
  // Organize subpool by 2+1C signals
  if( !StructureStationSignals::organizeSubPool(_subPool, _options & DoAverage) ) return false;

  int nSignals=_subPool->count();
  for(int i=0;i < nSignals; ) {
    StructureStationSignals * statSigs=new StructureStationSignals;
    _stationSignals.append(statSigs); // Store original station signals, not used except for proper deletion.
    QString log;
    if( !statSigs->addSignals( *subPool, i, &log) ) {
      Message::warning(MSG_ID, tr("Creating station"),
                            tr( "For station %1, error while checking components:\n\n" ).
                            arg(statSigs->name())+log,
                            Message::cancel());
       return false;
    }
    StructureStation * stat=new StructureStation(statSigs);
    stat->setTransform(_options & DoAverage ? StructureStation::AddChannels : StructureStation::SubChannels);
    _stations.append(stat);
    for(int i=0 ; i < 4; i++) {
      connect(stat->results(i), SIGNAL(peakChanged()), this, SLOT(updateSummary()) );
    }
    if(timeWindowLayer()) {
      connect(stat, SIGNAL(windowsChanged()), timeWindowLayer(), SLOT(deepUpdate()) );
      for(int i=0 ; i < 3; i++) {
        timeWindowLayer()->addTimeWindows(statSigs->originals(i), &stat->windows());
      }
    }
    stat->clearWindowingLog();
    stat->addWindowingLog(log);
    _d->currentDisplayStation->addItem(stat->name());
    _d->winParam->addStation(stat->name());
  }
  emit updateSubPool();
  createResults(_subPool->name());
  return true;
}
void ToolStructure::setLimits ( ) [protected, virtual]

Reimplemented from MonoStation::AbstractTool.

References MonoStation::AbstractTool::_stations, _winResults, and TRACE.

{
  TRACE;
  double maxRatio=-1e99;
  double maxSpectrum=-1e99;
  for(QList<AbstractStation *>::iterator it=_stations.begin();it!=_stations.end();++it) {
    double statMax;
    for(int i=0;i<3;i++) {
      statMax=(*it)->results(i)->maximumAmplitude();
      if(statMax>maxRatio) maxRatio=statMax;
    }
    statMax=(*it)->results(3)->maximumAmplitude();
    if(statMax>maxSpectrum) maxSpectrum=statMax;
  }
  if(maxRatio> -1e99) {
    static_cast<StructureWinResults *>(_winResults)->setRatioLimits(maxRatio);
  }
  if(maxSpectrum> -1e99) {
    static_cast<StructureWinResults *>(_winResults)->setSpectrumLimits(maxSpectrum);
  }
}

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