#include <EllipticityViewer.h>
Public Member Functions | |
| EllipticityViewer (QWidget *parent=0) | |
| ~EllipticityViewer () | |
Protected Member Functions | |
| virtual bool | hasCurves (DCReportBlock &dcBlock) |
| virtual DCModelViewer * | newInstance () |
| 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 AbstractLine * | targetReferenceLine () const |
| DinverDCGui::EllipticityViewer::EllipticityViewer | ( | QWidget * | parent = 0 | ) |
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; }
| bool DinverDCGui::EllipticityViewer::hasCurves | ( | DCReportBlock & | dcBlock | ) | [protected, virtual] |
Implements DinverDCGui::DCModelViewer.
References DinverDCCore::DCReportBlock::ellipticity(), DinverDCCore::DCReportBlock::modalStorage(), DinverDCCore::DCReportBlock::readModalStorages(), and TRACE.
{
TRACE;
if(dcBlock.ellipticity()) {
dcBlock.readModalStorages(1);
return dcBlock.modalStorage(0);
} else return false;
}
| virtual DCModelViewer* DinverDCGui::EllipticityViewer::newInstance | ( | ) | [inline, protected, virtual] |
{return new EllipticityViewer;}
| void DinverDCGui::EllipticityViewer::report2plot | ( | DCReportBlock & | dcBlock, |
| Point2D ** | points, | ||
| const DCModelInfo & | info | ||
| ) | [protected, virtual] |
| void DinverDCGui::EllipticityViewer::setLimits | ( | int | i, |
| const Rect & | r | ||
| ) | [protected, virtual] |
| 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] |
Implements DinverDCGui::DCModelViewer.
References DinverDCGui::DCModelViewer::_graphs, SciFigs::Axis::setAutoTicks(), SciFigs::Axis::setMajorTicks(), SciFigs::Axis::setMinorTicks(), SciFigs::Axis::setScaleType(), SciFigs::Axis::setTitle(), SciFigs::Axis::setTitleInversedScale(), TRACE, w, SciFigs::AxisWindow::xAxis(), and SciFigs::AxisWindow::yAxis().
{
TRACE;
AxisWindow * w=_graphs[i];
w->yAxis()->setTitle( "Ellipticity (H/V)" );
w->yAxis()->setTitleInversedScale( "Ellipticity (V/H)" );
w->yAxis()->setScaleType(Scale::Log);
w->yAxis()->setAutoTicks(false);
w->yAxis()->setMajorTicks(2.0);
w->yAxis()->setMinorTicks(0.5);
w->xAxis()->setTitle( "Frequency (Hz)" );
w->xAxis()->setTitleInversedScale( "Period (s)" );
w->xAxis()->setScaleType(Scale::Log);
w->xAxis()->setAutoTicks(false);
w->xAxis()->setMajorTicks(2.0);
w->xAxis()->setMinorTicks(0.5);
}
| 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();
}
}
| AbstractLine * DinverDCGui::EllipticityViewer::targetReferenceLine | ( | ) | const [protected, virtual] |
Implements DinverDCGui::DCModelViewer.
References SciFigs::AbstractLine::setPen(), SciFigs::AbstractLine::setSymbol(), and TRACE.