Go to the documentation of this file.
20 #include <QGraphicsItem>
21 #include <QPainterPath>
22 #include <QTextStream>
31 const QString &pointIdentifier,
36 <<
" curve=" << curveName.toLatin1().data()
37 <<
" identifier=" << pointIdentifier.toLatin1().data()
38 <<
" ordinal=" << ordinal
41 m_graphicsLinesForCurve [curveName]->addPoint (pointIdentifier,
47 const QStringList &curveNames)
50 <<
" curveCount=" << m_graphicsLinesForCurve.count();
53 QStringList::const_iterator itrC;
54 for (itrC = curveNames.begin (); itrC != curveNames.end (); itrC++) {
56 QString curveName = *itrC;
58 if (!m_graphicsLinesForCurve.contains (curveName)) {
63 m_graphicsLinesForCurve [curveName] = item;
68 GraphicsLinesContainer::const_iterator itrG, itrGNext;
69 for (itrG = m_graphicsLinesForCurve.begin (); itrG != m_graphicsLinesForCurve.end (); itrG = itrGNext) {
71 const QString curveName = itrG.key ();
77 if (!curveNames.contains (curveName)) {
80 m_graphicsLinesForCurve.remove (curveName);
87 QPainterPath &pathMultiValued,
92 GraphicsLinesContainer::const_iterator itr;
93 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
95 const QString curveName = itr.key ();
109 GraphicsLinesContainer::const_iterator itr;
110 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
121 QTextStream str (&text);
124 std::cerr << text.toLatin1().data();
128 QTextStream &str)
const
130 str << indentation <<
"GraphicsLinesForCurves\n";
134 GraphicsLinesContainer::const_iterator itr;
135 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
147 <<
" point=" << identifier.toLatin1().data ()
148 <<
" curveCount=" << m_graphicsLinesForCurve.count();
153 double ordinal = m_graphicsLinesForCurve [curveName]->identifierToOrdinal (identifier);
154 m_graphicsLinesForCurve [curveName]->removePoint(ordinal);
164 m_graphicsLinesForCurve [curveName]->removeTemporaryPointIfExists ();
171 GraphicsLinesContainer::iterator itr;
172 for (itr = m_graphicsLinesForCurve.begin(); itr != m_graphicsLinesForCurve.end(); itr++) {
177 m_graphicsLinesForCurve.clear();
182 const QString &curveName,
187 <<
" point=" << point.
identifier().toLatin1().data()
188 <<
" curveCount=" << m_graphicsLinesForCurve.count();
191 m_graphicsLinesForCurve [curveName]->updateAfterCommand (scene,
201 GraphicsLinesContainer::const_iterator itr;
202 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
204 QString curveName = itr.key();
206 m_graphicsLinesForCurve [curveName]->updateCurveStyle (modelCurveStyles.
curveStyle (curveName));
212 QPainterPath &pathMultiValued,
217 GraphicsLinesContainer::const_iterator itr;
218 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
220 QString curveName = itr.key();
225 m_graphicsLinesForCurve [curveName]->updateGraphicsLinesToMatchGraphicsPoints(curveStyles.
lineStyle (curveName),
236 <<
" highlightOpacity=" << highlightOpacity;
238 GraphicsLinesContainer::const_iterator itr;
239 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
241 QString curveName = itr.key();
243 m_graphicsLinesForCurve [curveName]->updateHighlightOpacity (highlightOpacity);
252 GraphicsLinesContainer::const_iterator itr;
253 for (itr = m_graphicsLinesForCurve.begin (); itr != m_graphicsLinesForCurve.end (); itr++) {
255 QString curveName = itr.key();
CurveStyle curveStyle(const QString &curveName) const
CurveStyle in specified curve.
const QString AXIS_CURVE_NAME
void lineMembershipPurge(const CurveStyles &curveStyles, SplineDrawer &splineDrawer, QPainterPath &pathMultiValued, LineStyle &lineMultiValued)
Mark the end of addPoint calls. Remove stale lines, insert missing lines, and draw the graphics lines...
const PointStyle pointStyle(const QString &curveName) const
Get method for copying one point style. Cannot return just a reference or else there is a warning abo...
GraphicsLinesForCurves()
Single constructor.
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void updatePointOrdinalsAfterDrag(const LineStyle &lineStyle, const Transformation &transformation)
See GraphicsScene::updateOrdinalsAfterDrag. Pretty much the same steps as Curve::updatePointOrdinals.
static QString temporaryPointIdentifier()
Point identifier for temporary point that is used by DigitzeStateAxis.
void removeTemporaryPointIfExists()
Remove temporary point if it exists.
void addPoint(const QString &curveName, const QString &pointIdentifier, double ordinal, GraphicsPoint &point)
Add new point.
void removePoint(const QString &identifier)
Remove the specified point. The act of deleting it will automatically remove it from the GraphicsScen...
void print() const
Debugging method for printing directly from symbolic debugger.
Details for a specific Line.
This class stores the GraphicsLine objects for one Curve.
#define LOG4CPP_INFO_S(logger)
Add point and line handling to generic QGraphicsScene.
void updateCurveStyles(const CurveStyles &modelCurveStyles)
Update the curve style for every curve.
const LineStyle lineStyle(const QString &curveName) const
Get method for copying one line style in one step.
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
QString identifier() const
Unique identifier for a specific Point.
QPointF pos() const
Proxy method for QGraphicsItem::pos.
void updateGraphicsLinesToMatchGraphicsPoints(const CurveStyles &curveStyles, SplineDrawer &splineDrawer, QPainterPath &pathMultiValued, LineStyle &lineMultiValued)
Calls to moveLinesWithDraggedPoint have finished so update the lines correspondingly.
log4cpp::Category * mainCat
This class takes the output from Spline and uses that to draw the curve in the graphics window,...
void updateAfterCommand(GraphicsScene &scene, const CurveStyles &curveStyles, const QString &curveName, const Point &point, GeometryWindow *geometryWindow)
Update the GraphicsScene with the specified Point from the Document. If it does not exist yet in the ...
void resetOnLoad()
Reset, when loading a document after the first, to same state that first document was at when loaded.
void updatePointOrdinalsAfterDrag(const CurveStyles &curveStyles, const Transformation &transformation)
See GraphicsScene::updateOrdinalsAfterDrag.
const QString INDENTATION_DELTA
Graphics item for drawing a circular or polygonal Point.
Class that represents one digitized point. The screen-to-graph coordinate transformation is always ex...
#define LOG4CPP_DEBUG_S(logger)
void lineMembershipReset()
Mark points as unwanted. Afterwards, lineMembershipPurge gets called.
Window that displays the geometry information, as a table, for the current curve.
void lineMembershipPurge(const LineStyle &lineStyle, SplineDrawer &splineDrawer, QPainterPath &pathMultiValued, LineStyle &lineMultiValued)
Mark the end of addPoint calls. Remove stale lines, insert missing lines, and draw the graphics lines...
Model for DlgSettingsCurveProperties and CmdSettingsCurveProperties.
QString QPointFToString(const QPointF &pos)
void lineMembershipReset()
Mark points as unwanted. Afterwards, lineMembershipPurge gets called.
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT if defined(QT_NO_DEBUG) && !defined(QT_FORCE_ASSERTS) define ENGAUGE...
void updateHighlightOpacity(double highlightOpacity)
Update the highlight opacity value. This may or may not affect the current display immediately depend...
void addRemoveCurves(GraphicsScene &scene, const QStringList &curveNames)
Add new curves and remove expired curves to match the specified list.
static QString curveNameFromPointIdentifier(const QString &pointIdentifier)
Parse the curve name from the specified point identifier. This does the opposite of uniqueIdentifierG...