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] |