Brief description of class still missing. More...
#include <ToolStructure.h>
Public Member Functions | |
| ToolStructure (QWidget *parent) | |
Protected Member Functions | |
| virtual AbstractSummary * | createSummary () |
| virtual WinResults * | createWinResults () |
| virtual bool | initStations (SubSignalPool *subPool) |
| virtual void | setLimits () |
Brief description of class still missing.
Full description of class still missing
| 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(); }
| AbstractSummary * ToolStructure::createSummary | ( | ) | [protected, virtual] |
| WinResults * ToolStructure::createWinResults | ( | ) | [protected, virtual] |
| 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);
}
}