mirror of
https://github.com/jkriege2/JKQtPlotter.git
synced 2024-11-15 18:15:52 +08:00
replaced QVector<QPointF> by QPolygonfF, as Qt changes from QVector to QList with Qt5->Qt6
This commit is contained in:
parent
586548c7d6
commit
c3afee2c1f
@ -348,18 +348,18 @@ double JKQTPLineDecoratorStyleCalcDecoratorSize(double line_width, double decora
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QList<QPointF> JKQTPSimplifyPolyLines(const QList<QPointF> &lines_in, double maxDeltaXY)
|
QPolygonF JKQTPSimplifyPolyLines(const QPolygonF &lines_in, double maxDeltaXY)
|
||||||
{
|
{
|
||||||
if (lines_in.size()<=1) return QList<QPointF>();
|
if (lines_in.size()<=1) return QPolygonF();
|
||||||
if (lines_in.size()<=10) return lines_in;
|
if (lines_in.size()<=10) return lines_in;
|
||||||
QList<QPointF> l;
|
QPolygonF l;
|
||||||
l.reserve(lines_in.size());
|
l.reserve(lines_in.size());
|
||||||
|
|
||||||
int groupStart=0;
|
int groupStart=0;
|
||||||
int groupCount=1;
|
int groupCount=1;
|
||||||
QRectF groupSize(lines_in[0], QSizeF(0,0));
|
QRectF groupSize(lines_in[0], QSizeF(0,0));
|
||||||
|
|
||||||
auto writeGroup=[](QList<QPointF>& l, const int& groupStart, const int& groupCount, const QRectF& groupSize, const QList<QPointF>& lines_in, double maxDeltaXY) {
|
auto writeGroup=[](QPolygonF& l, const int& groupStart, const int& groupCount, const QRectF& groupSize, const QPolygonF& lines_in, double maxDeltaXY) {
|
||||||
// group ends
|
// group ends
|
||||||
if (groupCount>4) {
|
if (groupCount>4) {
|
||||||
// we can optimize the group away
|
// we can optimize the group away
|
||||||
@ -411,24 +411,24 @@ QList<QPointF> JKQTPSimplifyPolyLines(const QList<QPointF> &lines_in, double max
|
|||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QList<QPointF> > JKQTPClipPolyLine(const QList<QPointF> &polyline_in, const QRectF &clipRect)
|
QList<QPolygonF > JKQTPClipPolyLine(const QPolygonF &polyline_in, const QRectF &clipRect)
|
||||||
{
|
{
|
||||||
QList<QList<QPointF>> l;
|
QList<QPolygonF> l;
|
||||||
l<<polyline_in;
|
l<<polyline_in;
|
||||||
return JKQTPClipPolyLines(l, clipRect);
|
return JKQTPClipPolyLines(l, clipRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QList<QPointF> > JKQTPClipPolyLines(const QList<QList<QPointF> > &polylines_in, const QRectF &clipRect)
|
QList<QPolygonF > JKQTPClipPolyLines(const QList<QPolygonF > &polylines_in, const QRectF &clipRect)
|
||||||
{
|
{
|
||||||
const double xmin=qMin(clipRect.left(), clipRect.right());
|
const double xmin=qMin(clipRect.left(), clipRect.right());
|
||||||
const double xmax=qMax(clipRect.left(), clipRect.right());
|
const double xmax=qMax(clipRect.left(), clipRect.right());
|
||||||
const double ymin=qMin(clipRect.top(), clipRect.bottom());
|
const double ymin=qMin(clipRect.top(), clipRect.bottom());
|
||||||
const double ymax=qMax(clipRect.top(), clipRect.bottom());
|
const double ymax=qMax(clipRect.top(), clipRect.bottom());
|
||||||
QList<QList<QPointF>> out;
|
QList<QPolygonF> out;
|
||||||
for (const QList<QPointF>& pl: polylines_in) {
|
for (const QPolygonF& pl: polylines_in) {
|
||||||
if (pl.size()>1) {
|
if (pl.size()>1) {
|
||||||
if (out.size()==0 || out.last().size()>0) {
|
if (out.size()==0 || out.last().size()>0) {
|
||||||
out<<QList<QPointF>();
|
out<<QPolygonF();
|
||||||
}
|
}
|
||||||
for (int i=1; i<pl.size(); i++) {
|
for (int i=1; i<pl.size(); i++) {
|
||||||
const QLineF l(pl[i-1], pl[i]);
|
const QLineF l(pl[i-1], pl[i]);
|
||||||
@ -441,13 +441,13 @@ QList<QList<QPointF> > JKQTPClipPolyLines(const QList<QList<QPointF> > &polyline
|
|||||||
// p1 and p2 clipped, i.e. segment clipped on both ends: add clipped line as separate segment
|
// p1 and p2 clipped, i.e. segment clipped on both ends: add clipped line as separate segment
|
||||||
if (lclipped.length()==0) {
|
if (lclipped.length()==0) {
|
||||||
if (out.last().size()>0) {
|
if (out.last().size()>0) {
|
||||||
out<<QList<QPointF>();
|
out<<QPolygonF();
|
||||||
}
|
}
|
||||||
} else if (l==lclipped) {
|
} else if (l==lclipped) {
|
||||||
if (out.last().size()==0) {
|
if (out.last().size()==0) {
|
||||||
out.last()<<lclipped.p1();
|
out.last()<<lclipped.p1();
|
||||||
} if (out.last().last()!=lclipped.p1()) {
|
} if (out.last().last()!=lclipped.p1()) {
|
||||||
out<<QList<QPointF>();
|
out<<QPolygonF();
|
||||||
out.last()<<lclipped.p1();
|
out.last()<<lclipped.p1();
|
||||||
}
|
}
|
||||||
out.last()<<lclipped.p2();
|
out.last()<<lclipped.p2();
|
||||||
@ -455,26 +455,26 @@ QList<QList<QPointF> > JKQTPClipPolyLines(const QList<QList<QPointF> > &polyline
|
|||||||
if (out.last().size()==0) {
|
if (out.last().size()==0) {
|
||||||
out.last()<<lclipped.p1();
|
out.last()<<lclipped.p1();
|
||||||
} if (out.last().last()!=lclipped.p1()) {
|
} if (out.last().last()!=lclipped.p1()) {
|
||||||
out<<QList<QPointF>();
|
out<<QPolygonF();
|
||||||
out.last()<<lclipped.p1();
|
out.last()<<lclipped.p1();
|
||||||
}
|
}
|
||||||
out.last()<<lclipped.p2();
|
out.last()<<lclipped.p2();
|
||||||
out<<QList<QPointF>();
|
out<<QPolygonF();
|
||||||
} else if (l.p1()!=lclipped.p1() && l.p2()==lclipped.p2()) {
|
} else if (l.p1()!=lclipped.p1() && l.p2()==lclipped.p2()) {
|
||||||
if (out.last().size()==0) {
|
if (out.last().size()==0) {
|
||||||
out.last()<<lclipped.p1();
|
out.last()<<lclipped.p1();
|
||||||
} if (out.last().last()!=lclipped.p1()) {
|
} if (out.last().last()!=lclipped.p1()) {
|
||||||
out<<QList<QPointF>();
|
out<<QPolygonF();
|
||||||
out.last()<<lclipped.p1();
|
out.last()<<lclipped.p1();
|
||||||
}
|
}
|
||||||
out.last()<<lclipped.p2();
|
out.last()<<lclipped.p2();
|
||||||
} else if (l.p1()!=lclipped.p1() && l.p2()!=lclipped.p2()) {
|
} else if (l.p1()!=lclipped.p1() && l.p2()!=lclipped.p2()) {
|
||||||
if (out.last().size()>0) {
|
if (out.last().size()>0) {
|
||||||
out<<QList<QPointF>();
|
out<<QPolygonF();
|
||||||
}
|
}
|
||||||
out.last()<<lclipped.p1();
|
out.last()<<lclipped.p1();
|
||||||
out.last()<<lclipped.p2();
|
out.last()<<lclipped.p2();
|
||||||
out<<QList<QPointF>();
|
out<<QPolygonF();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -390,7 +390,7 @@ inline QLineF JKQTPClipLine(const QLineF& line, const QRectF& clipRect) {
|
|||||||
\param clipRect rectangle to clip to
|
\param clipRect rectangle to clip to
|
||||||
\return a list of poly-lines representing the clipped lines. Note that some lines may be split further so the number of poly-lines in the output may actually be larger than the number of polylines in the input!
|
\return a list of poly-lines representing the clipped lines. Note that some lines may be split further so the number of poly-lines in the output may actually be larger than the number of polylines in the input!
|
||||||
*/
|
*/
|
||||||
JKQTCOMMON_LIB_EXPORT QList<QList<QPointF>> JKQTPClipPolyLines(const QList<QList<QPointF>> & polylines_in, const QRectF& clipRect);
|
JKQTCOMMON_LIB_EXPORT QList<QPolygonF> JKQTPClipPolyLines(const QList<QPolygonF> & polylines_in, const QRectF& clipRect);
|
||||||
/*! \brief clips the given poly-line \a polyline_in to the given rectangle \a clipRect
|
/*! \brief clips the given poly-line \a polyline_in to the given rectangle \a clipRect
|
||||||
\ingroup jkqtptools_drawing
|
\ingroup jkqtptools_drawing
|
||||||
|
|
||||||
@ -398,7 +398,7 @@ JKQTCOMMON_LIB_EXPORT QList<QList<QPointF>> JKQTPClipPolyLines(const QList<QList
|
|||||||
\param clipRect rectangle to clip to
|
\param clipRect rectangle to clip to
|
||||||
\return a list of poly-lines representing the clipped line.
|
\return a list of poly-lines representing the clipped line.
|
||||||
*/
|
*/
|
||||||
JKQTCOMMON_LIB_EXPORT QList<QList<QPointF>> JKQTPClipPolyLine(const QList<QPointF> & polyline_in, const QRectF& clipRect);
|
JKQTCOMMON_LIB_EXPORT QList<QPolygonF> JKQTPClipPolyLine(const QPolygonF & polyline_in, const QRectF& clipRect);
|
||||||
|
|
||||||
/*! \brief tries to reduce the complexity of the given poly-line \a lines_in, but keeping the appearance as if all lines were drawn
|
/*! \brief tries to reduce the complexity of the given poly-line \a lines_in, but keeping the appearance as if all lines were drawn
|
||||||
\ingroup jkqtptools_drawing
|
\ingroup jkqtptools_drawing
|
||||||
@ -407,7 +407,7 @@ JKQTCOMMON_LIB_EXPORT QList<QList<QPointF>> JKQTPClipPolyLine(const QList<QPoint
|
|||||||
\param maxDeltaXY a group has to be either less wide or less high than this, typically equals the linewidth of the poly-line
|
\param maxDeltaXY a group has to be either less wide or less high than this, typically equals the linewidth of the poly-line
|
||||||
\return a simplified version of lines_in
|
\return a simplified version of lines_in
|
||||||
*/
|
*/
|
||||||
JKQTCOMMON_LIB_EXPORT QList<QPointF> JKQTPSimplifyPolyLines(const QList<QPointF>& lines_in, double maxDeltaXY=1.0);
|
JKQTCOMMON_LIB_EXPORT QPolygonF JKQTPSimplifyPolyLines(const QPolygonF& lines_in, double maxDeltaXY=1.0);
|
||||||
|
|
||||||
/*! \brief draw a tooltip, using the current brush and pen of the provided painter
|
/*! \brief draw a tooltip, using the current brush and pen of the provided painter
|
||||||
\ingroup jkqtptools_drawing
|
\ingroup jkqtptools_drawing
|
||||||
|
@ -243,13 +243,13 @@ QRectF JKQTPGeoRectangle::getBottomLeftRectangle() const
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
JKQTPGeoPolygon::JKQTPGeoPolygon(JKQTBasePlotter *parent, const QVector<QPointF> &points, JKQTPGeometricPlotElement::DrawMode drawMode):
|
JKQTPGeoPolygon::JKQTPGeoPolygon(JKQTBasePlotter *parent, const QPolygonF &points, JKQTPGeometricPlotElement::DrawMode drawMode):
|
||||||
JKQTPGeoBaseFilled(parent, drawMode)
|
JKQTPGeoBaseFilled(parent, drawMode)
|
||||||
{
|
{
|
||||||
this->points=points;
|
this->points=points;
|
||||||
}
|
}
|
||||||
|
|
||||||
JKQTPGeoPolygon::JKQTPGeoPolygon(JKQTPlotter *parent, const QVector<QPointF> &points, JKQTPGeometricPlotElement::DrawMode drawMode):
|
JKQTPGeoPolygon::JKQTPGeoPolygon(JKQTPlotter *parent, const QPolygonF &points, JKQTPGeometricPlotElement::DrawMode drawMode):
|
||||||
JKQTPGeoPolygon(parent->getPlotter(), points, drawMode)
|
JKQTPGeoPolygon(parent->getPlotter(), points, drawMode)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -314,13 +314,12 @@ void JKQTPGeoPolygon::draw(JKQTPEnhancedPainter& painter) {
|
|||||||
painter.setPen(getLinePen(painter, parent));
|
painter.setPen(getLinePen(painter, parent));
|
||||||
painter.setBrush(getFillBrush(painter, parent));
|
painter.setBrush(getFillBrush(painter, parent));
|
||||||
if ((getDrawMode()==DrawAsGraphicElement) || (getParent()->getXAxis()->isLinearAxis() && getParent()->getYAxis()->isLinearAxis())) {
|
if ((getDrawMode()==DrawAsGraphicElement) || (getParent()->getXAxis()->isLinearAxis() && getParent()->getYAxis()->isLinearAxis())) {
|
||||||
const QPolygonF path=transformToPolygon(points);
|
painter.drawPolygon(points);
|
||||||
painter.drawPolygon(path);
|
|
||||||
} else {
|
} else {
|
||||||
// for non-linear axes, a line might not be drawn as a line, so we need to segment the line (i.e. linear function in coordinate space)
|
// for non-linear axes, a line might not be drawn as a line, so we need to segment the line (i.e. linear function in coordinate space)
|
||||||
// and transform each node to draw the corresponding non-linear curve in pixel-space!
|
// and transform each node to draw the corresponding non-linear curve in pixel-space!
|
||||||
auto fTransform=std::bind([](const JKQTPGeometricPlotElement* plot, const QPointF& p) { return plot->transform(p); }, this, std::placeholders::_1);
|
auto fTransform=std::bind([](const JKQTPGeometricPlotElement* plot, const QPointF& p) { return plot->transform(p); }, this, std::placeholders::_1);
|
||||||
QVector<QPointF> polyp=points;
|
QPolygonF polyp=points;
|
||||||
if (polyp.first()!=polyp.last()) polyp.push_back(polyp.first());
|
if (polyp.first()!=polyp.last()) polyp.push_back(polyp.first());
|
||||||
QPolygonF path=JKQTPSplitPolylineIntoPoints(polyp, fTransform);
|
QPolygonF path=JKQTPSplitPolylineIntoPoints(polyp, fTransform);
|
||||||
path=JKQTPSimplyfyLineSegemnts(path);
|
path=JKQTPSimplyfyLineSegemnts(path);
|
||||||
@ -335,12 +334,12 @@ void JKQTPGeoPolygon::draw(JKQTPEnhancedPainter& painter) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void JKQTPGeoPolygon::setPoints(const QVector<QPointF> &__value)
|
void JKQTPGeoPolygon::setPoints(const QPolygonF &__value)
|
||||||
{
|
{
|
||||||
this->points = __value;
|
this->points = __value;
|
||||||
}
|
}
|
||||||
|
|
||||||
QVector<QPointF> JKQTPGeoPolygon::getPoints() const
|
QPolygonF JKQTPGeoPolygon::getPoints() const
|
||||||
{
|
{
|
||||||
return this->points;
|
return this->points;
|
||||||
}
|
}
|
||||||
@ -378,22 +377,22 @@ void JKQTPGeoPolygon::removePoint(int i)
|
|||||||
points.remove(i);
|
points.remove(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
QVector<QPointF>::iterator JKQTPGeoPolygon::pointsBegin()
|
QPolygonF::iterator JKQTPGeoPolygon::pointsBegin()
|
||||||
{
|
{
|
||||||
return points.begin();
|
return points.begin();
|
||||||
}
|
}
|
||||||
|
|
||||||
QVector<QPointF>::iterator JKQTPGeoPolygon::pointsEnd()
|
QPolygonF::iterator JKQTPGeoPolygon::pointsEnd()
|
||||||
{
|
{
|
||||||
return points.end();
|
return points.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
QVector<QPointF>::const_iterator JKQTPGeoPolygon::pointsCBegin() const
|
QPolygonF::const_iterator JKQTPGeoPolygon::pointsCBegin() const
|
||||||
{
|
{
|
||||||
return points.cbegin();
|
return points.cbegin();
|
||||||
}
|
}
|
||||||
|
|
||||||
QVector<QPointF>::const_iterator JKQTPGeoPolygon::pointsCEnd() const
|
QPolygonF::const_iterator JKQTPGeoPolygon::pointsCEnd() const
|
||||||
{
|
{
|
||||||
return points.cend();
|
return points.cend();
|
||||||
}
|
}
|
||||||
@ -460,7 +459,7 @@ void JKQTPGeoEllipse::drawInternal(JKQTPEnhancedPainter& painter, double angleSt
|
|||||||
} else if (mode==InternalDrawMode::Pie) {
|
} else if (mode==InternalDrawMode::Pie) {
|
||||||
QPointF first, last;
|
QPointF first, last;
|
||||||
rect=JKQTPSplitEllipseIntoPoints(fTransform, x,y,width/2.0, height/2.0, angleStart, angleStop, 0, nullptr, nullptr, &first, &last);
|
rect=JKQTPSplitEllipseIntoPoints(fTransform, x,y,width/2.0, height/2.0, angleStart, angleStop, 0, nullptr, nullptr, &first, &last);
|
||||||
QVector<QPointF> pie;
|
QPolygonF pie;
|
||||||
pie<<last<<QPointF(x,y)<<first;
|
pie<<last<<QPointF(x,y)<<first;
|
||||||
rect.append(JKQTPSimplyfyLineSegemnts(JKQTPSplitPolylineIntoPoints(pie, fTransform)));
|
rect.append(JKQTPSimplyfyLineSegemnts(JKQTPSplitPolylineIntoPoints(pie, fTransform)));
|
||||||
} else if (mode==InternalDrawMode::Chord) {
|
} else if (mode==InternalDrawMode::Chord) {
|
||||||
|
@ -208,14 +208,14 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPolygon: public JKQTPGeoBaseFilled {
|
|||||||
* \param points points on the polygon
|
* \param points points on the polygon
|
||||||
* \param drawMode draw the rectangle as a graphic or geometric element
|
* \param drawMode draw the rectangle as a graphic or geometric element
|
||||||
*/
|
*/
|
||||||
JKQTPGeoPolygon(JKQTBasePlotter* parent, const QVector<QPointF>& points, DrawMode drawMode=DrawAsGraphicElement);
|
JKQTPGeoPolygon(JKQTBasePlotter* parent, const QPolygonF& points, DrawMode drawMode=DrawAsGraphicElement);
|
||||||
/** \brief class constructor
|
/** \brief class constructor
|
||||||
*
|
*
|
||||||
* \param parent the parent plotter object
|
* \param parent the parent plotter object
|
||||||
* \param points points on the polygon
|
* \param points points on the polygon
|
||||||
* \param drawMode draw the rectangle as a graphic or geometric element
|
* \param drawMode draw the rectangle as a graphic or geometric element
|
||||||
*/
|
*/
|
||||||
JKQTPGeoPolygon(JKQTPlotter* parent, const QVector<QPointF>& points, DrawMode drawMode=DrawAsGraphicElement);
|
JKQTPGeoPolygon(JKQTPlotter* parent, const QPolygonF& points, DrawMode drawMode=DrawAsGraphicElement);
|
||||||
|
|
||||||
/** \brief class constructor
|
/** \brief class constructor
|
||||||
*
|
*
|
||||||
@ -245,9 +245,9 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPolygon: public JKQTPGeoBaseFilled {
|
|||||||
virtual void draw(JKQTPEnhancedPainter& painter) override;
|
virtual void draw(JKQTPEnhancedPainter& painter) override;
|
||||||
|
|
||||||
/** \copydoc points */
|
/** \copydoc points */
|
||||||
void setPoints(const QVector<QPointF> & __value);
|
void setPoints(const QPolygonF & __value);
|
||||||
/** \copydoc points */
|
/** \copydoc points */
|
||||||
QVector<QPointF> getPoints() const;
|
QPolygonF getPoints() const;
|
||||||
|
|
||||||
/** \brief append a point to the polygon \see points */
|
/** \brief append a point to the polygon \see points */
|
||||||
void appendPoint(const QPointF& p);
|
void appendPoint(const QPointF& p);
|
||||||
@ -266,17 +266,17 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPGeoPolygon: public JKQTPGeoBaseFilled {
|
|||||||
/** \brief deletes the i-the point \see points */
|
/** \brief deletes the i-the point \see points */
|
||||||
void removePoint(int i);
|
void removePoint(int i);
|
||||||
/** \brief returns an iterator to the first point \see points */
|
/** \brief returns an iterator to the first point \see points */
|
||||||
QVector<QPointF>::iterator pointsBegin();
|
QPolygonF::iterator pointsBegin();
|
||||||
/** \brief returns an iterator after the last point \see points */
|
/** \brief returns an iterator after the last point \see points */
|
||||||
QVector<QPointF>::iterator pointsEnd();
|
QPolygonF::iterator pointsEnd();
|
||||||
/** \brief returns a constant iterator to the first point \see points */
|
/** \brief returns a constant iterator to the first point \see points */
|
||||||
QVector<QPointF>::const_iterator pointsCBegin() const;
|
QPolygonF::const_iterator pointsCBegin() const;
|
||||||
/** \brief returns a constant iterator after the last point \see points*/
|
/** \brief returns a constant iterator after the last point \see points*/
|
||||||
QVector<QPointF>::const_iterator pointsCEnd() const;
|
QPolygonF::const_iterator pointsCEnd() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/** \brief list with all points on the polygon */
|
/** \brief list with all points on the polygon */
|
||||||
QVector<QPointF> points;
|
QPolygonF points;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** \brief This JKQTPGeometricPlotElement is used to draw an ellipse
|
/** \brief This JKQTPGeometricPlotElement is used to draw an ellipse
|
||||||
|
@ -91,8 +91,8 @@ void JKQTPXYLineGraph::draw(JKQTPEnhancedPainter& painter) {
|
|||||||
if (getIndexRange(imin, imax)) {
|
if (getIndexRange(imin, imax)) {
|
||||||
|
|
||||||
|
|
||||||
QList<QList<QPointF>> vec_linesP;
|
QList<QPolygonF> vec_linesP;
|
||||||
vec_linesP.push_back(QList<QPointF>());
|
vec_linesP.push_back(QPolygonF());
|
||||||
intSortData();
|
intSortData();
|
||||||
for (int iii=imin; iii<imax; iii++) {
|
for (int iii=imin; iii<imax; iii++) {
|
||||||
const int i=qBound(imin, getDataIndex(iii), imax);
|
const int i=qBound(imin, getDataIndex(iii), imax);
|
||||||
@ -114,7 +114,7 @@ void JKQTPXYLineGraph::draw(JKQTPEnhancedPainter& painter) {
|
|||||||
} else {
|
} else {
|
||||||
if (drawLine) {
|
if (drawLine) {
|
||||||
if (vec_linesP.size()==0 || vec_linesP.last().size()>0)
|
if (vec_linesP.size()==0 || vec_linesP.last().size()>0)
|
||||||
vec_linesP.push_back(QList<QPointF>());
|
vec_linesP.push_back(QPolygonF());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -124,7 +124,7 @@ void JKQTPXYLineGraph::draw(JKQTPEnhancedPainter& painter) {
|
|||||||
if (drawLine) {
|
if (drawLine) {
|
||||||
//qDebug()<<"JKQTPXYLineGraph::draw(): vec_linesP.size()=="<<vec_linesP.size();
|
//qDebug()<<"JKQTPXYLineGraph::draw(): vec_linesP.size()=="<<vec_linesP.size();
|
||||||
|
|
||||||
const QList<QList<QPointF>> linesToDraw=JKQTPClipPolyLines(vec_linesP, cliprect);
|
const QList<QPolygonF> linesToDraw=JKQTPClipPolyLines(vec_linesP, cliprect);
|
||||||
//qDebug()<<"JKQTPXYLineGraph::draw(): linesToDraw.size()=="<<linesToDraw.size()<<", clip: x="<<xmin<<".."<<xmax<<", y="<<ymin<<".."<<ymax;
|
//qDebug()<<"JKQTPXYLineGraph::draw(): linesToDraw.size()=="<<linesToDraw.size()<<", clip: x="<<xmin<<".."<<xmax<<", y="<<ymin<<".."<<ymax;
|
||||||
for (const auto &linesPFromV : linesToDraw) {
|
for (const auto &linesPFromV : linesToDraw) {
|
||||||
//qDebug()<<"JKQTPXYLineGraph::draw(): linesPFromV.size()=="<<linesPFromV.size()<<" useNonvisibleLineCompression="<<getUseNonvisibleLineCompression();
|
//qDebug()<<"JKQTPXYLineGraph::draw(): linesPFromV.size()=="<<linesPFromV.size()<<" useNonvisibleLineCompression="<<getUseNonvisibleLineCompression();
|
||||||
|
@ -144,7 +144,7 @@ void JKQTPSpecialLineHorizontalGraph::draw(JKQTPEnhancedPainter& painter) {
|
|||||||
|
|
||||||
|
|
||||||
QPolygonF pl, pf;
|
QPolygonF pl, pf;
|
||||||
QList<QPointF> ps;
|
QPolygonF ps;
|
||||||
|
|
||||||
double xold=-1;
|
double xold=-1;
|
||||||
double yold=-1;
|
double yold=-1;
|
||||||
@ -266,7 +266,7 @@ void JKQTPSpecialLineHorizontalGraph::draw(JKQTPEnhancedPainter& painter) {
|
|||||||
painter.drawPolygon(pf.intersected(cliprect));
|
painter.drawPolygon(pf.intersected(cliprect));
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QList<QPointF>> pl_fordrawing;
|
QList<QPolygonF> pl_fordrawing;
|
||||||
if (isHighlighted() || getDrawLine()) {
|
if (isHighlighted() || getDrawLine()) {
|
||||||
pl_fordrawing=JKQTPClipPolyLine(pl, cliprect);
|
pl_fordrawing=JKQTPClipPolyLine(pl, cliprect);
|
||||||
}
|
}
|
||||||
@ -350,7 +350,7 @@ void JKQTPSpecialLineVerticalGraph::draw(JKQTPEnhancedPainter& painter) {
|
|||||||
|
|
||||||
|
|
||||||
QPolygonF pl, pf;
|
QPolygonF pl, pf;
|
||||||
QList<QPointF> ps;
|
QPolygonF ps;
|
||||||
|
|
||||||
double xold=-1;
|
double xold=-1;
|
||||||
double yold=-1;
|
double yold=-1;
|
||||||
@ -452,7 +452,7 @@ void JKQTPSpecialLineVerticalGraph::draw(JKQTPEnhancedPainter& painter) {
|
|||||||
painter.drawPolygon(pf.intersected(cliprect));
|
painter.drawPolygon(pf.intersected(cliprect));
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<QList<QPointF>> pl_fordrawing;
|
QList<QPolygonF> pl_fordrawing;
|
||||||
if (isHighlighted() || getDrawLine()) {
|
if (isHighlighted() || getDrawLine()) {
|
||||||
pl_fordrawing=JKQTPClipPolyLine(pl, cliprect);
|
pl_fordrawing=JKQTPClipPolyLine(pl, cliprect);
|
||||||
}
|
}
|
||||||
|
@ -275,15 +275,15 @@ void JKQTPGraph::drawErrorsAfter(JKQTPEnhancedPainter &)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QVector<QPointF> JKQTPPlotElement::transform(const QVector<QPointF> &x) const {
|
QPolygonF JKQTPPlotElement::transform(const QPolygonF &x) const {
|
||||||
QVector<QPointF> res;
|
QPolygonF res;
|
||||||
for (int i=0; i<x.size(); i++) {
|
for (int i=0; i<x.size(); i++) {
|
||||||
res.append(transform(x[i]));
|
res.append(transform(x[i]));
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
QPainterPath JKQTPPlotElement::transformToLinePath(const QVector<QPointF> &x) const {
|
QPainterPath JKQTPPlotElement::transformToLinePath(const QPolygonF &x) const {
|
||||||
QPainterPath res;
|
QPainterPath res;
|
||||||
if (x.size()>0) {
|
if (x.size()>0) {
|
||||||
res.moveTo(transform(x[0]));
|
res.moveTo(transform(x[0]));
|
||||||
|
@ -240,18 +240,13 @@ class JKQTPLOTTER_LIB_EXPORT JKQTPPlotElement: public QObject {
|
|||||||
inline QPointF backTransform(double x, double y) const {
|
inline QPointF backTransform(double x, double y) const {
|
||||||
return backTransform(QPointF(x,y));
|
return backTransform(QPointF(x,y));
|
||||||
}
|
}
|
||||||
/** \brief tool routine that transforms a QVector<QPointF> according to the parent's transformation rules (plot coordinate --> pixels) */
|
/** \brief tool routine that transforms a QPolygonF according to the parent's transformation rules (plot coordinate --> pixels) */
|
||||||
QVector<QPointF> transform(const QVector<QPointF>& x) const;
|
QPolygonF transform(const QPolygonF& x) const;
|
||||||
|
|
||||||
/** \brief tool routine that transforms a QVector<QPointF> according to the parent's transformation rules
|
/** \brief tool routine that transforms a QPolygonF according to the parent's transformation rules
|
||||||
* and returns a (non-closed) path consisting of lines (plot coordinate --> pixels) */
|
* and returns a (non-closed) path consisting of lines (plot coordinate --> pixels) */
|
||||||
QPainterPath transformToLinePath(const QVector<QPointF>& x) const;
|
QPainterPath transformToLinePath(const QPolygonF& x) const;
|
||||||
|
|
||||||
/** \brief tool routine that transforms a QVector<QPointF> according to the parent's transformation rules
|
|
||||||
* and returns a polygon (plot coordinate --> pixels) */
|
|
||||||
inline QPolygonF transformToPolygon(const QVector<QPointF>& x) const {
|
|
||||||
return QPolygonF(transform(x));
|
|
||||||
}
|
|
||||||
|
|
||||||
/** \brief transform all x-coordinates in a vector \a x */
|
/** \brief transform all x-coordinates in a vector \a x */
|
||||||
QVector<double> transformX(const QVector<double>& x) const;
|
QVector<double> transformX(const QVector<double>& x) const;
|
||||||
|
@ -304,7 +304,7 @@ void JKQTPGraphErrorStyleMixin::intPlotXYErrorIndicators(JKQTPEnhancedPainter& p
|
|||||||
bool pastFirst=false;
|
bool pastFirst=false;
|
||||||
double ebs_px=parent->pt2px(painter, m_errorBarCapSize);
|
double ebs_px=parent->pt2px(painter, m_errorBarCapSize);
|
||||||
QPolygonF polyX, polyY;
|
QPolygonF polyX, polyY;
|
||||||
QList<QPointF> polyXTopPoints, polyXBottomPoints, polyYTopPoints, polyYBottomPoints;
|
QPolygonF polyXTopPoints, polyXBottomPoints, polyYTopPoints, polyYBottomPoints;
|
||||||
QList<QColor> errFC, errC;
|
QList<QColor> errFC, errC;
|
||||||
bool defaultErrorColor=true;
|
bool defaultErrorColor=true;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user