An abstract class for ploting curves with pen and symbol properties. More...
#include <AbstractLine.h>
Public Member Functions | |
AbstractLine () | |
virtual void | append ()=0 |
virtual void | clear ()=0 |
virtual AbstractLine * | clone () const =0 |
virtual int | count () const =0 |
virtual bool | fromString (int index, const StringSection &str, const QChar *&ptr, const CurvePointOptions *options) |
virtual void | insert (int index)=0 |
bool | isEditable () const |
bool | isSelected () const |
virtual bool | isValid (int) const |
bool | isVisible () const |
virtual void | operator= (const AbstractLine &o) |
const Pen & | pen () const |
virtual Point | point (int index, const CurvePointOptions *options) const =0 |
virtual void | removeLast ()=0 |
void | setEditable (bool e) |
void | setPen (const Pen &p) |
void | setSelected (bool s) |
void | setSymbol (const Symbol &s) |
virtual void | setValid (int, bool) |
void | setVisible (bool v) |
virtual void | setX (int index, double v)=0 |
virtual void | setY (int index, double v, const CurvePointOptions *options)=0 |
virtual void | setZ (int index, double v, const CurvePointOptions *options)=0 |
const Symbol & | symbol () const |
virtual QString | toString (int index, const CurvePointOptions *options) const |
virtual const QString & | xml_tagName () const |
virtual | ~AbstractLine () |
Static Public Attributes | |
static const QString | xmlAbstractLineTag = "Line" |
Protected Member Functions | |
virtual XMLMember | xml_member (XML_MEMBER_ARGS) |
virtual bool | xml_setProperty (XML_SETPROPERTY_ARGS) |
virtual void | xml_writeChildren (XML_WRITECHILDREN_ARGS) const |
virtual void | xml_writeProperties (XML_WRITEPROPERTIES_ARGS) const |
Protected Attributes | |
uint | _editable: 1 |
Pen | _pen |
uint | _selected: 1 |
Symbol | _symbol |
uint | _unused: 29 |
uint | _visible: 1 |
An abstract class for ploting curves with pen and symbol properties.
SciFigs::AbstractLine::AbstractLine | ( | ) | [inline] |
virtual SciFigs::AbstractLine::~AbstractLine | ( | ) | [inline, virtual] |
{}
virtual void SciFigs::AbstractLine::append | ( | ) | [pure virtual] |
Implemented in MonoStation::StationLine, QGpGuiWave::RefractionLine, QGpGuiWave::ModalLine, QGpGuiWave::MagnetoTelluricLine, SciFigs::NameLine, SciFigs::RealStatisticalLine, SciFigs::ComplexStatisticalLine, SciFigs::PlotLine, and SciFigs::PlotLine2D.
Referenced by SciFigs::LineLayer::mouseReleaseEvent(), Simulator::on_addSource_clicked(), SciFigs::AbstractNameLine::xml_setProperty(), and xml_setProperty().
virtual void SciFigs::AbstractLine::clear | ( | ) | [pure virtual] |
Implemented in MonoStation::StationLine, QGpGuiWave::RefractionLine, QGpGuiWave::ModalLine, QGpGuiWave::MagnetoTelluricLine, SciFigs::NameLine, SciFigs::RealStatisticalLine, SciFigs::ComplexStatisticalLine, SciFigs::PlotLine, and SciFigs::PlotLine2D.
Referenced by MonoStation::StationResults::clear(), SpacSelector::inverseAt(), ArrayGui::ArrayResponse::setArray(), SciFigs::AbstractNameLine::xml_setProperty(), and xml_setProperty().
virtual AbstractLine* SciFigs::AbstractLine::clone | ( | ) | const [pure virtual] |
Implemented in QGpGuiWave::RefractionLine, MonoStation::StationLine, QGpGuiWave::ModalLine, SciFigs::PlotLine, SciFigs::PlotLine2D, QGpGuiWave::MagnetoTelluricLine, SciFigs::NameLine, SciFigs::RealStatisticalLine, and SciFigs::ComplexStatisticalLine.
Referenced by SciFigs::LineLayer::addLine(), and SciFigs::LineLayer::xml_member().
virtual int SciFigs::AbstractLine::count | ( | ) | const [pure virtual] |
Implemented in QGpGuiWave::RefractionLine, QGpGuiWave::ModalLine, MonoStation::StationLine, QGpGuiWave::MagnetoTelluricLine, SciFigs::NameLine, SciFigs::RealStatisticalLine, SciFigs::ComplexStatisticalLine, SciFigs::PlotLine, and SciFigs::PlotLine2D.
Referenced by SciFigs::LineLayer::boundingRect(), GeopsyGui::ArrayMap::countPoints(), SciFigs::LineLayer::divYbyX(), SciFigs::LineLayer::mouseReleaseEvent(), SciFigs::LineLayer::mulYbyX(), GeopsyGui::ArrayMap::optimizeRing(), SciFigs::NameLineLayer::paintData(), SciFigs::LineLayer::paintData(), SciFigs::NameLineLayer::paintText(), SciFigs::LineLayer::removeEmptyLines(), SciFigs::LineLayer::rmStdDev(), SciFigs::LineItem::rowCount(), SciFigs::LineLayer::trackRectangle(), and xml_writeProperties().
bool SciFigs::AbstractLine::fromString | ( | int | index, |
const StringSection & | str, | ||
const QChar *& | ptr, | ||
const CurvePointOptions * | options | ||
) | [virtual] |
Reimplemented in SciFigs::AbstractNameLine.
References QGpCoreTools::StringSection::isValid(), QGpCoreTools::StringSection::nextField(), setX(), setY(), setZ(), and QGpCoreTools::StringSection::toDouble().
Referenced by xml_setProperty().
{ bool ok=true; StringSection f; f=str.nextField(ptr); if(f.isValid()) { setX(index, f.toDouble(&ok)); if(!ok) return false; } else { return false; } f=str.nextField(ptr); if(f.isValid()) { setY(index, f.toDouble(&ok), options); if(!ok) return false; } else { return false; } const QChar * oldPtr=ptr; f=str.nextField(ptr); if(f.isValid()) { setZ(index, f.toDouble(&ok), options); if(!ok) return false; } else { // Z is optional setZ(index, 0.0, options); ptr=oldPtr; } return true; }
virtual void SciFigs::AbstractLine::insert | ( | int | index | ) | [pure virtual] |
Implemented in MonoStation::StationLine, QGpGuiWave::RefractionLine, QGpGuiWave::ModalLine, QGpGuiWave::MagnetoTelluricLine, SciFigs::NameLine, SciFigs::RealStatisticalLine, SciFigs::ComplexStatisticalLine, SciFigs::PlotLine, and SciFigs::PlotLine2D.
Referenced by SciFigs::LineLayer::mouseReleaseEvent().
bool SciFigs::AbstractLine::isEditable | ( | ) | const [inline] |
Referenced by xml_writeProperties().
{return _editable;}
bool SciFigs::AbstractLine::isSelected | ( | ) | const [inline] |
Referenced by MapWindow::getSelection(), SciFigs::NameLineLayer::paintData(), SciFigs::NameLineLayer::paintText(), and xml_writeProperties().
{return _selected;}
virtual bool SciFigs::AbstractLine::isValid | ( | int | ) | const [inline, virtual] |
Reimplemented in QGpGuiWave::RefractionLine, QGpGuiWave::ModalLine, QGpGuiWave::MagnetoTelluricLine, SciFigs::RealStatisticalLine, and SciFigs::ComplexStatisticalLine.
Referenced by SciFigs::LineLayer::boundingRect(), SciFigs::LineItem::data(), SciFigs::LineItem::flags(), SciFigs::SlopeEstimator::paintData(), SciFigs::SlopeEstimator::paintText(), and xml_writeProperties().
{return true;}
bool SciFigs::AbstractLine::isVisible | ( | ) | const [inline] |
void SciFigs::AbstractLine::operator= | ( | const AbstractLine & | o | ) | [virtual] |
const Pen& SciFigs::AbstractLine::pen | ( | ) | const [inline] |
Referenced by SciFigs::NameLineLayer::legend(), SciFigs::LineLayer::legend(), SciFigs::LineLayer::setPenColor(), and SciFigs::LineLayer::setPenStyle().
{return _pen;}
virtual Point SciFigs::AbstractLine::point | ( | int | index, |
const CurvePointOptions * | options | ||
) | const [pure virtual] |
Implemented in QGpGuiWave::RefractionLine, QGpGuiWave::ModalLine, QGpGuiWave::MagnetoTelluricLine, SciFigs::RealStatisticalLine, SciFigs::ComplexStatisticalLine, SciFigs::NameLine, SciFigs::PlotLine, SciFigs::PlotLine2D, and MonoStation::StationLine.
Referenced by SciFigs::LineLayer::boundingRect(), GeopsyGui::ArrayMap::countPoints(), SciFigs::LineItem::data(), SciFigs::LineLayer::divYbyX(), SciFigs::LineLayer::mouseReleaseEvent(), SciFigs::LineLayer::mulYbyX(), GeopsyGui::ArrayMap::optimizeRing(), SciFigs::NameLineLayer::paintData(), SciFigs::AbstractNameLine::toString(), and SciFigs::LineLayer::trackRectangle().
virtual void SciFigs::AbstractLine::removeLast | ( | ) | [pure virtual] |
Implemented in MonoStation::StationLine, QGpGuiWave::RefractionLine, QGpGuiWave::ModalLine, QGpGuiWave::MagnetoTelluricLine, SciFigs::NameLine, SciFigs::RealStatisticalLine, SciFigs::ComplexStatisticalLine, SciFigs::PlotLine, and SciFigs::PlotLine2D.
Referenced by SciFigs::AbstractNameLine::xml_setProperty(), and xml_setProperty().
void SciFigs::AbstractLine::setEditable | ( | bool | e | ) | [inline] |
{_editable=e;}
void SciFigs::AbstractLine::setPen | ( | const Pen & | p | ) | [inline] |
Referenced by AutocorrTargetWidget::addCurve(), SciFigs::LineLayer::addLine(), GeopsyGui::ArrayMap::ArrayMap(), MonoStation::AbstractSummary::createAverageGraph(), MonoStation::AbstractSummary::createBubbleGraph(), createCurve(), createCurveName(), createCurveNamePlot(), createCurvePlot(), MonoStation::AbstractSummary::createGridCrossSectionGraph(), MonoStation::StatisticResults::createObjects(), DampingResults::createObjects(), SpacSelector::createObjects(), ArrayGui::ArrayResponse::createObjects(), MonoStation::AbstractSummary::createStackedGraph(), QGpGuiWave::DispersionLimitLayer::DispersionLimitLayer(), Simulator::displaySource(), SciFigs::GridMaxFollower::GridMaxFollower(), Simulator::init(), MagnetoTelluricTargetWidget::initLayer(), QGpGuiWave::ModalCurveBrowser::initLayer(), DinverDCGui::GroundModelViewer::minMaxProfiles(), ProcessStatus::ProcessStatus(), MonoStation::AbstractSummary::setAverageValues(), SciFigs::PlotLine2D::setCurve(), MonoStation::StationResults::setGraph(), SciFigs::NameLineLayer::setLegend(), SciFigs::LineLayer::setLegend(), SciFigs::LineLayer::setPenColor(), SciFigs::LineLayer::setPenStyle(), SciFigs::LineLayer::setReferencePen(), SciFigs::SlopeEstimator::SlopeEstimator(), SpacSelector::SpacSelector(), DinverDCGui::RefractionViewer::targetReferenceLine(), DinverDCGui::MagnetoTelluricViewer::targetReferenceLine(), DinverDCGui::DispersionViewer::targetReferenceLine(), DinverDCGui::GroundModelViewer::targetReferenceLine(), DinverDCGui::AutocorrViewer::targetReferenceLine(), and DinverDCGui::EllipticityViewer::targetReferenceLine().
{_pen=p;}
void SciFigs::AbstractLine::setSelected | ( | bool | s | ) | [inline] |
Referenced by SciFigs::PlotLine2D::setCurve(), and SciFigs::LineLayer::trackRectangle().
{_selected=s;}
void SciFigs::AbstractLine::setSymbol | ( | const Symbol & | s | ) | [inline] |
Referenced by AutocorrTargetWidget::addCurve(), SciFigs::LineLayer::addLine(), GeopsyGui::ArrayMap::ArrayMap(), MonoStation::AbstractSummary::createAverageGraph(), createCurve(), createCurveName(), createCurveNamePlot(), createCurvePlot(), MonoStation::AbstractSummary::createGridCrossSectionGraph(), MonoStation::StatisticResults::createObjects(), SpacSelector::createObjects(), ArrayGui::ArrayResponse::createObjects(), MonoStation::AbstractSummary::createStackedGraph(), QGpGuiWave::DispersionLimitLayer::DispersionLimitLayer(), SciFigs::GridMaxFollower::GridMaxFollower(), Simulator::init(), MagnetoTelluricTargetWidget::initLayer(), QGpGuiWave::ModalCurveBrowser::initLayer(), DinverDCGui::GroundModelViewer::minMaxProfiles(), ProcessStatus::ProcessStatus(), MonoStation::AbstractSummary::setBubbleValues(), SciFigs::PlotLine2D::setCurve(), MonoStation::StationResults::setGraph(), SciFigs::NameLineLayer::setLegend(), SciFigs::LineLayer::setLegend(), SciFigs::LineLayer::setReferenceSymbol(), SciFigs::LineLayer::setSymBrushColor(), SciFigs::LineLayer::setSymBrushStyle(), SciFigs::LineLayer::setSymPenColor(), SciFigs::LineLayer::setSymPenStyle(), SciFigs::LineLayer::setSymSize(), SciFigs::LineLayer::setSymType(), SciFigs::SlopeEstimator::SlopeEstimator(), SpacSelector::SpacSelector(), DinverDCGui::RefractionViewer::targetReferenceLine(), DinverDCGui::MagnetoTelluricViewer::targetReferenceLine(), DinverDCGui::DispersionViewer::targetReferenceLine(), DinverDCGui::AutocorrViewer::targetReferenceLine(), DinverDCGui::GroundModelViewer::targetReferenceLine(), and DinverDCGui::EllipticityViewer::targetReferenceLine().
{_symbol=s;}
virtual void SciFigs::AbstractLine::setValid | ( | int | , |
bool | |||
) | [inline, virtual] |
Reimplemented in QGpGuiWave::RefractionLine, QGpGuiWave::ModalLine, QGpGuiWave::MagnetoTelluricLine, SciFigs::RealStatisticalLine, and SciFigs::ComplexStatisticalLine.
Referenced by SciFigs::LineItem::setData().
{}
void SciFigs::AbstractLine::setVisible | ( | bool | v | ) | [inline] |
{_visible=v;}
virtual void SciFigs::AbstractLine::setX | ( | int | index, |
double | v | ||
) | [pure virtual] |
Implemented in QGpGuiWave::RefractionLine, QGpGuiWave::ModalLine, MonoStation::StationLine, QGpGuiWave::MagnetoTelluricLine, SciFigs::RealStatisticalLine, SciFigs::ComplexStatisticalLine, SciFigs::NameLine, SciFigs::PlotLine, and SciFigs::PlotLine2D.
Referenced by Simulator::displaySource(), SciFigs::AbstractNameLine::fromString(), fromString(), SciFigs::LineLayer::mouseReleaseEvent(), Simulator::on_addSource_clicked(), and SciFigs::LineItem::setData().
virtual void SciFigs::AbstractLine::setY | ( | int | index, |
double | v, | ||
const CurvePointOptions * | options | ||
) | [pure virtual] |
Implemented in QGpGuiWave::RefractionLine, QGpGuiWave::ModalLine, MonoStation::StationLine, QGpGuiWave::MagnetoTelluricLine, SciFigs::RealStatisticalLine, SciFigs::ComplexStatisticalLine, SciFigs::NameLine, SciFigs::PlotLine, and SciFigs::PlotLine2D.
Referenced by Simulator::displaySource(), SciFigs::LineLayer::divYbyX(), SciFigs::AbstractNameLine::fromString(), fromString(), SciFigs::LineLayer::mouseReleaseEvent(), SciFigs::LineLayer::mulYbyX(), Simulator::on_addSource_clicked(), and SciFigs::LineItem::setData().
virtual void SciFigs::AbstractLine::setZ | ( | int | index, |
double | v, | ||
const CurvePointOptions * | options | ||
) | [pure virtual] |
Implemented in QGpGuiWave::RefractionLine, QGpGuiWave::ModalLine, MonoStation::StationLine, QGpGuiWave::MagnetoTelluricLine, SciFigs::RealStatisticalLine, SciFigs::ComplexStatisticalLine, SciFigs::NameLine, SciFigs::PlotLine, and SciFigs::PlotLine2D.
Referenced by SciFigs::AbstractNameLine::fromString(), fromString(), SciFigs::LineLayer::rmStdDev(), and SciFigs::LineItem::setData().
const Symbol& SciFigs::AbstractLine::symbol | ( | ) | const [inline] |
Referenced by SciFigs::NameLineLayer::legend(), SciFigs::LineLayer::legend(), SciFigs::SlopeEstimator::paintData(), SciFigs::NameLineLayer::paintData(), SciFigs::LineLayer::setSymBrushColor(), SciFigs::LineLayer::setSymBrushStyle(), SciFigs::LineLayer::setSymPenColor(), SciFigs::LineLayer::setSymPenStyle(), SciFigs::LineLayer::setSymSize(), and SciFigs::LineLayer::setSymType().
{return _symbol;}
virtual QString SciFigs::AbstractLine::toString | ( | int | index, |
const CurvePointOptions * | options | ||
) | const [inline, virtual] |
Reimplemented in SciFigs::NameLine, and SciFigs::AbstractNameLine.
Referenced by xml_writeProperties().
XMLMember SciFigs::AbstractLine::xml_member | ( | XML_MEMBER_ARGS | ) | [protected, virtual] |
Re-implement this function to offer XML restore (children and properties) support to your class.
From tag and map (with contains the attibute value) return a unique identifier under the format of a XMLMember. XMLMember is initialized with 3 types of contructors:
Map of attributes can be inspected in this way (can be achived also in xml_setProperty()):
static const QString tmp("childrenName"); XMLRestoreAttributeIterator it=map.find(tmp); if(it!=map.end()) { // found attribute "childrenName" }
If the map of attributes is not used:
Q_UNUSED(attributes); if(tag=="x1") return XMLMember(0); else if(tag=="y1") return XMLMember(1); else if(tag=="x2") return XMLMember(2); else if(tag=="y2") return XMLMember(3); else return XMLMember(XMLMember::Unknown);
Arithmetic operations + and - apply to XMLMember to avoid confusion of property id numbers between inherited objects. Offset 3 corresponds to the number of properties defined in this object.
if(tag=="anInteger") return XMLMember(0); else if(tag=="aString") return XMLMember(1); else if(tag=="aDouble") return XMLMember(2); return AbstractLine::xml_member(tag, attributes, context)+3;
For the arguments of this function use Macro XML_MEMBER_ARGS.
Reimplemented from QGpCoreTools::XMLClass.
Reimplemented in SciFigs::AbstractNameLine.
References _pen, _symbol, SciFigs::XMLSciFigs::data(), SciFigs::XMLSciFigs::makeUp(), and TRACE.
{ TRACE; Q_UNUSED(attributes); XMLSciFigs * scifigsContext=static_cast<LineLayerContext *>(context)->parent(); if(scifigsContext->data()) { if(tag=="points") return XMLMember(0); } if(scifigsContext->makeUp()) { if(tag=="selected") return XMLMember(1); else if(tag=="visible") return XMLMember(2); else if(tag=="editable") return XMLMember(3); else if(tag=="Pen") return XMLMember(&_pen); else if(tag=="Symbol") return XMLMember(&_symbol); } return XMLMember(XMLMember::Unknown); }
bool SciFigs::AbstractLine::xml_setProperty | ( | XML_SETPROPERTY_ARGS | ) | [protected, virtual] |
Re-implement this function to offer XML restore properties support to your class.
From memberID set the corresponding property with value content. The map of attributes is given as a supplementary information (not useful in all cases).
For a general case:
Q_UNUSED(attributes); double val=content.toDouble(); switch (memberID) { case 0: _x1=val; return true; case 1: _y1=val; return true; case 2: _x2=val; return true; case 3: _y2=val; return true; default: return false; }
For classes inheriting other classes (see also xml_member())
switch (memberID) { case 0: _anInteger=content.toString(); return true; case 1: _aString=content.toInt(); return true; case 2: _aDouble=content.toDouble(); return true; default: return AbstractLine::xml_setProperty(memberID-3, map, content);
For the arguments of this function use Macro XML_SETPROPERTY_ARGS.
Reimplemented from QGpCoreTools::XMLClass.
Reimplemented in SciFigs::AbstractNameLine.
References _editable, _selected, _visible, append(), clear(), fromString(), SciFigs::LineLayerContext::options(), removeLast(), and TRACE.
{ TRACE; Q_UNUSED(tag); Q_UNUSED(attributes); Q_UNUSED(context); LineLayerContext * lineContext=static_cast<LineLayerContext *>(context); switch (memberID) { case 0: { const QChar * ptr=0; clear(); int i=0; while(true) { append(); if(!content.nextLine(ptr)) break; if(!fromString(i, content, ptr, lineContext->options())) break; i++; } removeLast(); } return true; case 1: _selected=content.toBool(); return true; case 2: _visible=content.toBool(); return true; case 3: _editable=content.toBool(); return true; default: return false; } }
virtual const QString& SciFigs::AbstractLine::xml_tagName | ( | ) | const [inline, virtual] |
Implements QGpCoreTools::XMLClass.
Reimplemented in QGpGuiWave::RefractionLine, MonoStation::StationLine, QGpGuiWave::ModalLine, SciFigs::AbstractNameLine, QGpGuiWave::MagnetoTelluricLine, SciFigs::NameLine, SciFigs::RealStatisticalLine, and SciFigs::ComplexStatisticalLine.
Referenced by SciFigs::LineLayer::xml_member().
{return xmlAbstractLineTag;}
void SciFigs::AbstractLine::xml_writeChildren | ( | XML_WRITECHILDREN_ARGS | ) | const [protected, virtual] |
Reimplemented from QGpCoreTools::XMLClass.
References _pen, _symbol, SciFigs::XMLSciFigs::makeUp(), TRACE, and QGpCoreTools::XMLClass::xml_save().
void SciFigs::AbstractLine::xml_writeProperties | ( | XML_WRITEPROPERTIES_ARGS | ) | const [protected, virtual] |
Reimplemented from QGpCoreTools::XMLClass.
Reimplemented in SciFigs::AbstractNameLine.
References count(), SciFigs::XMLSciFigs::data(), QGpCoreTools::endl(), isEditable(), isSelected(), isValid(), isVisible(), SciFigs::XMLSciFigs::makeUp(), SciFigs::LineLayerContext::options(), SciFigs::LineLayerContext::parent(), toString(), TRACE, and QGpCoreTools::XMLClass::writeProperty().
{ TRACE; ASSERT(context); LineLayerContext * lineContext=static_cast<LineLayerContext *>(context); XMLSciFigs * scifigsContext=lineContext->parent(); CurvePointOptions * options=lineContext->options(); if(scifigsContext->data()) { QString tmp; tmp+=s.indent(); tmp+="<points>\n"; int n=count(); for(int j=0; j<n; j++) { if(isValid(j)) { tmp+=s.indent(); tmp+=" "; tmp+=toString(j, options); tmp+="\n"; } } tmp+=s.indent(); tmp+="</points>"; s << tmp << endl; } if(scifigsContext->makeUp()) { writeProperty(s, "selected",isSelected()); writeProperty(s, "visible",isVisible()); writeProperty(s, "editable",isEditable()); } }
uint SciFigs::AbstractLine::_editable [protected] |
Referenced by operator=(), and xml_setProperty().
Pen SciFigs::AbstractLine::_pen [protected] |
Referenced by operator=(), xml_member(), and xml_writeChildren().
uint SciFigs::AbstractLine::_selected [protected] |
Referenced by operator=(), and xml_setProperty().
Symbol SciFigs::AbstractLine::_symbol [protected] |
Referenced by operator=(), xml_member(), and xml_writeChildren().
uint SciFigs::AbstractLine::_unused [protected] |
uint SciFigs::AbstractLine::_visible [protected] |
Referenced by operator=(), and xml_setProperty().
const QString SciFigs::AbstractLine::xmlAbstractLineTag = "Line" [static] |