2015-07-11 18:56:02 +08:00
/*
2019-01-12 23:01:55 +08:00
Copyright ( c ) 2008 - 2019 Jan W . Krieger ( < jan @ jkrieger . de > )
2015-07-11 18:56:02 +08:00
2015-07-12 22:34:27 +08:00
2015-07-11 18:56:02 +08:00
This software is free software : you can redistribute it and / or modify
it under the terms of the GNU Lesser General Public License ( LGPL ) as published by
the Free Software Foundation , either version 2 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU Lesser General Public License ( LGPL ) for more details .
You should have received a copy of the GNU Lesser General Public License ( LGPL )
along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
2018-12-19 00:13:18 +08:00
/** \file jkqtpgraphsgeometric.h
2015-07-11 18:56:02 +08:00
* \ ingroup jkqtplotter_geoplots
*/
# include <QString>
# include <QPainter>
# include <QPair>
2018-12-19 00:13:18 +08:00
# include "jkqtplotter/jkqtpgraphs.h"
2018-11-26 03:25:44 +08:00
# include "jkqtplottertools/jkqtptools.h"
# include "jkqtplottertools/jkqtp_imexport.h"
# include "jkqtmathtext/jkqtmathtext.h"
2015-07-11 18:56:02 +08:00
2018-12-19 00:13:18 +08:00
# ifndef jkqtpgraphsgeometric_H_INCLUDED
# define jkqtpgraphsgeometric_H_INCLUDED
2015-07-11 18:56:02 +08:00
2019-01-20 17:49:29 +08:00
/*! \brief This JKQTPPlotObject is used as base class for geometric drawing
2015-07-11 18:56:02 +08:00
elements that only consist of lines ( i . e . no filling of any kind is done )
\ ingroup jkqtplotter_geoplots
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoBaseLine : public JKQTPPlotObject {
2015-07-11 18:56:02 +08:00
Q_OBJECT
public :
/*! \brief class contructor
\ param color color of drawing
\ param style line style of drawing
\ param lineWidth lineWidth of drawing
*/
2019-01-20 17:49:29 +08:00
explicit JKQTPGeoBaseLine ( QColor color , double lineWidth , Qt : : PenStyle style = Qt : : SolidLine , JKQTBasePlotter * parent = nullptr ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class contructor
\ param color color of drawing
\ param style line style of drawing
\ param lineWidth lineWidth of drawing
*/
2019-01-20 23:15:10 +08:00
explicit JKQTPGeoBaseLine ( QColor color , double lineWidth , Qt : : PenStyle style , JKQTPlotter * parent ) ;
2015-08-02 19:36:54 +08:00
2015-07-11 18:56:02 +08:00
2019-01-26 20:00:40 +08:00
/*! \brief sets the property color ( \copybrief color ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter color is : < BLOCKQUOTE > \ copydoc color < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see color for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setColor ( const QColor & __value )
2019-01-10 04:23:24 +08:00
{
this - > color = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property color ( \copybrief color ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter color is : < BLOCKQUOTE > \ copydoc color < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see color for more information */
2019-01-26 20:00:40 +08:00
inline virtual QColor getColor ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > color ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property style ( \copybrief style ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter style is : < BLOCKQUOTE > \ copydoc style < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see style for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setStyle ( const Qt : : PenStyle & __value )
2019-01-10 04:23:24 +08:00
{
this - > style = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property style ( \copybrief style ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter style is : < BLOCKQUOTE > \ copydoc style < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see style for more information */
2019-01-26 20:00:40 +08:00
inline virtual Qt : : PenStyle getStyle ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > style ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property lineWidth ( \copybrief lineWidth ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter lineWidth is : < BLOCKQUOTE > \ copydoc lineWidth < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see lineWidth for more information */
2019-01-26 03:16:04 +08:00
inline virtual void setLineWidth ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > lineWidth = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property lineWidth ( \copybrief lineWidth ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter lineWidth is : < BLOCKQUOTE > \ copydoc lineWidth < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see lineWidth for more information */
2019-01-26 03:16:04 +08:00
inline virtual double getLineWidth ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > lineWidth ;
}
2015-07-11 18:56:02 +08:00
2019-01-08 04:00:56 +08:00
/** \brief sets the alpha-channel of the \a color (i.e. its transparency) */
virtual void setAlpha ( float alpha ) ;
2015-07-11 18:56:02 +08:00
/** \brief plots a key marker inside the specified rectangle \a rect */
2018-12-28 05:52:00 +08:00
virtual void drawKeyMarker ( JKQTPEnhancedPainter & painter , QRectF & rect ) override ;
2015-07-11 18:56:02 +08:00
/** \brief returns the color to be used for the key label */
2018-12-28 05:52:00 +08:00
virtual QColor getKeyLabelColor ( ) override ;
2015-07-11 18:56:02 +08:00
protected :
/** \brief color of the graph */
QColor color ;
/** \brief linestyle of the graph lines */
Qt : : PenStyle style ;
/** \brief width (pixels) of the graph */
double lineWidth ;
/** \brief return a pen, that may be used for drawing */
QPen getPen ( JKQTPEnhancedPainter & painter ) ;
} ;
2019-01-20 17:49:29 +08:00
/*! \brief This JKQTPPlotObject is used as base class for geometric drawing
2015-07-11 18:56:02 +08:00
elements that only consist of lines ( i . e . no filling of any kind is done )
\ ingroup jkqtplotter_geoplots
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoBaseFilled : public JKQTPGeoBaseLine {
2015-07-11 18:56:02 +08:00
Q_OBJECT
public :
/*! \brief class contructor
\ param color color of drawing
2019-01-08 04:00:56 +08:00
\ param fillColor color of the filling in the drawing
2015-07-11 18:56:02 +08:00
\ param style line style of drawing
\ param fillStyle filling style of the graph
\ param lineWidth lineWidth of drawing
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoBaseFilled ( QColor color , QColor fillColor , double lineWidth , Qt : : PenStyle style = Qt : : SolidLine , Qt : : BrushStyle fillStyle = Qt : : SolidPattern , JKQTBasePlotter * parent = nullptr ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class contructor
\ param color color of drawing
2019-01-08 04:00:56 +08:00
\ param fillColor color of the filling in the drawing
2015-08-02 19:36:54 +08:00
\ param style line style of drawing
\ param fillStyle filling style of the graph
\ param lineWidth lineWidth of drawing
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoBaseFilled ( QColor color , QColor fillColor , double lineWidth , Qt : : PenStyle style , Qt : : BrushStyle fillStyle , JKQTPlotter * parent ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class contructor
\ param color color of drawing
2019-01-08 04:00:56 +08:00
\ param fillColor color of the filling in the drawing
2015-08-02 19:36:54 +08:00
\ param style line style of drawing
\ param lineWidth lineWidth of drawing
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoBaseFilled ( QColor color , QColor fillColor , double lineWidth , Qt : : PenStyle style , JKQTPlotter * parent ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class contructor
\ param color color of drawing
2019-01-08 04:00:56 +08:00
\ param fillColor color of the filling in the drawing
2015-08-02 19:36:54 +08:00
\ param lineWidth lineWidth of drawing
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoBaseFilled ( QColor color , QColor fillColor , double lineWidth , JKQTPlotter * parent ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class contructor
\ param color color of drawing
2019-01-08 04:00:56 +08:00
\ param fillColor color of the filling in the drawing
2015-08-02 19:36:54 +08:00
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoBaseFilled ( QColor color , QColor fillColor , JKQTPlotter * parent ) ;
2015-07-11 18:56:02 +08:00
2019-01-26 20:00:40 +08:00
/*! \brief sets the property fillColor ( \copybrief fillColor ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter fillColor is : < BLOCKQUOTE > \ copydoc fillColor < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see fillColor for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setFillColor ( const QColor & __value )
2019-01-10 04:23:24 +08:00
{
this - > fillColor = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property fillColor ( \copybrief fillColor ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter fillColor is : < BLOCKQUOTE > \ copydoc fillColor < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see fillColor for more information */
2019-01-26 20:00:40 +08:00
inline virtual QColor getFillColor ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > fillColor ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property fillStyle ( \copybrief fillStyle ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter fillStyle is : < BLOCKQUOTE > \ copydoc fillStyle < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see fillStyle for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setFillStyle ( const Qt : : BrushStyle & __value )
2019-01-10 04:23:24 +08:00
{
this - > fillStyle = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property fillStyle ( \copybrief fillStyle ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter fillStyle is : < BLOCKQUOTE > \ copydoc fillStyle < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see fillStyle for more information */
2019-01-26 20:00:40 +08:00
inline virtual Qt : : BrushStyle getFillStyle ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > fillStyle ;
}
2015-07-11 18:56:02 +08:00
2019-01-08 04:00:56 +08:00
/** \brief sets the alpha-channel of the \a color and \a fillColor (i.e. its transparency) to the same value */
virtual void setAlpha ( float alpha ) override ;
/** \brief sets the alpha-channel of the \a color and \a fillColor (i.e. its transparency) */
virtual void setAlpha ( float alphaLine , float alphaFill ) ;
2015-07-11 18:56:02 +08:00
/** \brief plots a key marker inside the specified rectangle \a rect */
2018-12-28 05:52:00 +08:00
virtual void drawKeyMarker ( JKQTPEnhancedPainter & painter , QRectF & rect ) override ;
2015-07-11 18:56:02 +08:00
protected :
/** \brief filling color of the graph */
QColor fillColor ;
/** \brief fill style for the curve */
Qt : : BrushStyle fillStyle ;
/** \brief return a brush that may be used for drawing */
QBrush getBrush ( JKQTPEnhancedPainter & painter ) ;
} ;
2019-01-20 17:49:29 +08:00
/*! \brief This virtual JKQTPGraph descendent may be used to display a single symbol (marker).
2019-01-08 04:00:56 +08:00
\ ingroup jkqtplotter_geoplots
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoSymbol : public JKQTPPlotObject {
2019-01-08 04:00:56 +08:00
Q_OBJECT
public :
/*! \brief class contructor
\ param parent parent plotter widget
\ param x x - coordinate of symbol center
\ param y y - coordinate of symbol center
\ param symbol symbol type
\ param symbolSize size of the symbol in pt
\ param color color of drawing
\ param fillColor fill color of the symbol ( if filled )
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoSymbol ( JKQTBasePlotter * parent , double x , double y , JKQTPGraphSymbols symbol = JKQTPCross , double symbolSize = 10 , QColor color = QColor ( " black " ) , QColor fillColor = QColor ( " grey " ) ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class contructor
\ param parent parent plotter widget
\ param x x - coordinate of symbol center
\ param y y - coordinate of symbol center
\ param symbol symbol type
\ param symbolSize size of the symbol in pt
\ param color color of drawing
\ param fillColor fill color of the symbol ( if filled )
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoSymbol ( JKQTPlotter * parent , double x , double y , JKQTPGraphSymbols symbol = JKQTPCross , double symbolSize = 10 , QColor color = QColor ( " black " ) , QColor fillColor = QColor ( " grey " ) ) ;
2019-01-08 04:00:56 +08:00
2019-01-26 20:00:40 +08:00
/*! \brief sets the property color ( \copybrief color ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter color is : < BLOCKQUOTE > \ copydoc color < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see color for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setColor ( const QColor & __value )
2019-01-10 04:23:24 +08:00
{
this - > color = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property color ( \copybrief color ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter color is : < BLOCKQUOTE > \ copydoc color < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see color for more information */
2019-01-26 20:00:40 +08:00
inline virtual QColor getColor ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > color ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property fillColor ( \copybrief fillColor ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter fillColor is : < BLOCKQUOTE > \ copydoc fillColor < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see fillColor for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setFillColor ( const QColor & __value )
2019-01-10 04:23:24 +08:00
{
this - > fillColor = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property fillColor ( \copybrief fillColor ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter fillColor is : < BLOCKQUOTE > \ copydoc fillColor < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see fillColor for more information */
2019-01-26 20:00:40 +08:00
inline virtual QColor getFillColor ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > fillColor ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property symbol ( \copybrief symbol ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter symbol is : < BLOCKQUOTE > \ copydoc symbol < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see symbol for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setSymbol ( const JKQTPGraphSymbols & __value )
2019-01-10 04:23:24 +08:00
{
this - > symbol = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property symbol ( \copybrief symbol ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter symbol is : < BLOCKQUOTE > \ copydoc symbol < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see symbol for more information */
2019-01-26 20:00:40 +08:00
inline virtual JKQTPGraphSymbols getSymbol ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > symbol ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property symbolSize ( \copybrief symbolSize ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter symbolSize is : < BLOCKQUOTE > \ copydoc symbolSize < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see symbolSize for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setSymbolSize ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > symbolSize = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property symbolSize ( \copybrief symbolSize ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter symbolSize is : < BLOCKQUOTE > \ copydoc symbolSize < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see symbolSize for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getSymbolSize ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > symbolSize ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property symbolWidth ( \copybrief symbolWidth ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter symbolWidth is : < BLOCKQUOTE > \ copydoc symbolWidth < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see symbolWidth for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setSymbolWidth ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > symbolWidth = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property symbolWidth ( \copybrief symbolWidth ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter symbolWidth is : < BLOCKQUOTE > \ copydoc symbolWidth < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see symbolWidth for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getSymbolWidth ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > symbolWidth ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property x ( \copybrief x ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x is : < BLOCKQUOTE > \ copydoc x < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setX ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > x = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property x ( \copybrief x ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x is : < BLOCKQUOTE > \ copydoc x < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getX ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > x ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property y ( \copybrief y ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y is : < BLOCKQUOTE > \ copydoc y < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setY ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > y = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property y ( \copybrief y ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y is : < BLOCKQUOTE > \ copydoc y < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getY ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > y ;
}
2019-01-08 04:00:56 +08:00
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPGraph::getXMinMax() */
2019-01-08 04:00:56 +08:00
virtual bool getXMinMax ( double & minx , double & maxx , double & smallestGreaterZero ) ;
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPGraph::getYMinMax() */
2019-01-08 04:00:56 +08:00
virtual bool getYMinMax ( double & miny , double & maxy , double & smallestGreaterZero ) ;
/** \brief plots the graph to the plotter object specified as parent */
virtual void draw ( JKQTPEnhancedPainter & painter ) ;
/** \brief plots a key marker inside the specified rectangle \a rect */
virtual void drawKeyMarker ( JKQTPEnhancedPainter & painter , QRectF & rect ) ;
/** \brief returns the color to be used for the key label */
virtual QColor getKeyLabelColor ( ) ;
protected :
double x , y ;
/** \brief color of the graph */
QColor color ;
/** \brief fill-color of the graph */
QColor fillColor ;
/** \brief size of the symbol in pt */
double symbolSize ;
/** \brief width of the symbol lines in pt */
double symbolWidth ;
/** \brief type of the symbol */
2019-01-20 17:49:29 +08:00
JKQTPGraphSymbols symbol ;
2019-01-08 04:00:56 +08:00
} ;
2019-01-20 17:49:29 +08:00
/*! \brief This JKQTPPlotObject is used to display text. It uses the JKQTMathText
2015-07-11 18:56:02 +08:00
class in order to display LaTeX formulas .
\ ingroup jkqtplotter_geoplots
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoText : public JKQTPPlotObject {
2015-07-11 18:56:02 +08:00
Q_OBJECT
public :
/*! \brief class contructor
\ param parent parent plotter widget
\ param x x - coordinate of text
\ param y y - coordinate of text
\ param text the text to display
\ param color color of drawing
\ param fontSize base font size of text
*/
2019-01-26 19:28:44 +08:00
JKQTPGeoText ( JKQTBasePlotter * parent , double x , double y , const QString & text , double fontSize = 10 , QColor color = QColor ( " black " ) ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class contructor
\ param parent parent plotter widget
\ param x x - coordinate of text
\ param y y - coordinate of text
\ param text the text to display
\ param color color of drawing
\ param fontSize base font size of text
*/
2019-01-26 19:28:44 +08:00
JKQTPGeoText ( JKQTPlotter * parent , double x , double y , const QString & text , double fontSize = 10 , QColor color = QColor ( " black " ) ) ;
2015-07-11 18:56:02 +08:00
2019-01-26 20:00:40 +08:00
/*! \brief sets the property color ( \copybrief color ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter color is : < BLOCKQUOTE > \ copydoc color < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see color for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setColor ( const QColor & __value )
2019-01-10 04:23:24 +08:00
{
this - > color = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property color ( \copybrief color ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter color is : < BLOCKQUOTE > \ copydoc color < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see color for more information */
2019-01-26 20:00:40 +08:00
inline virtual QColor getColor ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > color ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property text ( \copybrief text ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter text is : < BLOCKQUOTE > \ copydoc text < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see text for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setText ( const QString & __value )
2019-01-10 04:23:24 +08:00
{
this - > text = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property text ( \copybrief text ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter text is : < BLOCKQUOTE > \ copydoc text < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see text for more information */
2019-01-26 20:00:40 +08:00
inline virtual QString getText ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > text ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property fontSize ( \copybrief fontSize ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter fontSize is : < BLOCKQUOTE > \ copydoc fontSize < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see fontSize for more information */
2019-01-26 03:16:04 +08:00
inline virtual void setFontSize ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > fontSize = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property fontSize ( \copybrief fontSize ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter fontSize is : < BLOCKQUOTE > \ copydoc fontSize < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see fontSize for more information */
2019-01-26 03:16:04 +08:00
inline virtual double getFontSize ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > fontSize ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property x ( \copybrief x ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x is : < BLOCKQUOTE > \ copydoc x < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setX ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > x = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property x ( \copybrief x ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x is : < BLOCKQUOTE > \ copydoc x < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getX ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > x ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property y ( \copybrief y ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y is : < BLOCKQUOTE > \ copydoc y < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setY ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > y = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property y ( \copybrief y ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y is : < BLOCKQUOTE > \ copydoc y < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getY ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > y ;
}
2015-07-11 18:56:02 +08:00
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getXMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getXMinMax ( double & minx , double & maxx , double & smallestGreaterZero ) override ;
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getYMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getYMinMax ( double & miny , double & maxy , double & smallestGreaterZero ) override ;
2015-07-11 18:56:02 +08:00
/** \brief plots the graph to the plotter object specified as parent */
2018-12-28 05:52:00 +08:00
virtual void draw ( JKQTPEnhancedPainter & painter ) override ;
2015-07-11 18:56:02 +08:00
/** \brief plots a key marker inside the specified rectangle \a rect */
2018-12-28 05:52:00 +08:00
virtual void drawKeyMarker ( JKQTPEnhancedPainter & painter , QRectF & rect ) override ;
2015-07-11 18:56:02 +08:00
/** \brief returns the color to be used for the key label */
2018-12-28 05:52:00 +08:00
virtual QColor getKeyLabelColor ( ) override ;
2015-07-11 18:56:02 +08:00
protected :
double x , y ;
/** \brief color of the graph */
QColor color ;
/** \brief base font size of text */
double fontSize ;
/** \brief the text to display */
QString text ;
/** \brief return a pen, that may be used for drawing */
QPen getPen ( JKQTPEnhancedPainter & painter ) ;
} ;
2019-01-20 17:49:29 +08:00
/*! \brief This JKQTPPlotObject is used to draw a line
2015-07-11 18:56:02 +08:00
\ ingroup jkqtplotter_geoplots
\ image html plot_geoline . png
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoLine : public JKQTPGeoBaseLine {
2015-07-11 18:56:02 +08:00
Q_OBJECT
public :
/*! \brief class constructor
\ param parent the parent plotter class
\ param x1 x - coordinate of first point of line
\ param y1 y - coordinate of first point of line
\ param x2 x - coordinate of second point of line
\ param y2 y - coordinate of second point of line
\ param color color of line
\ param lineWidth width of line
\ param style line style
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoLine ( JKQTBasePlotter * parent , double x1 , double y1 , double x2 , double y2 , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param x1 x - coordinate of first point of line
\ param y1 y - coordinate of first point of line
\ param x2 x - coordinate of second point of line
\ param y2 y - coordinate of second point of line
\ param color color of line
\ param lineWidth width of line
\ param style line style
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoLine ( JKQTPlotter * parent , double x1 , double y1 , double x2 , double y2 , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine ) ;
2015-07-11 18:56:02 +08:00
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getXMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getXMinMax ( double & minx , double & maxx , double & smallestGreaterZero ) override ;
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getYMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getYMinMax ( double & miny , double & maxy , double & smallestGreaterZero ) override ;
2015-07-11 18:56:02 +08:00
/** \brief plots the graph to the plotter object specified as parent */
2018-12-28 05:52:00 +08:00
virtual void draw ( JKQTPEnhancedPainter & painter ) override ;
2015-07-11 18:56:02 +08:00
2019-01-26 20:00:40 +08:00
/*! \brief sets the property x1 ( \copybrief x1 ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x1 is : < BLOCKQUOTE > \ copydoc x1 < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x1 for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setX1 ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > x1 = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property x1 ( \copybrief x1 ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x1 is : < BLOCKQUOTE > \ copydoc x1 < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x1 for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getX1 ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > x1 ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property y1 ( \copybrief y1 ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y1 is : < BLOCKQUOTE > \ copydoc y1 < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y1 for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setY1 ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > y1 = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property y1 ( \copybrief y1 ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y1 is : < BLOCKQUOTE > \ copydoc y1 < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y1 for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getY1 ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > y1 ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property x2 ( \copybrief x2 ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x2 is : < BLOCKQUOTE > \ copydoc x2 < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x2 for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setX2 ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > x2 = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property x2 ( \copybrief x2 ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x2 is : < BLOCKQUOTE > \ copydoc x2 < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x2 for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getX2 ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > x2 ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property y2 ( \copybrief y2 ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y2 is : < BLOCKQUOTE > \ copydoc y2 < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y2 for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setY2 ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > y2 = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property y2 ( \copybrief y2 ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y2 is : < BLOCKQUOTE > \ copydoc y2 < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y2 for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getY2 ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > y2 ;
}
2015-07-11 18:56:02 +08:00
protected :
double x1 , y1 , x2 , y2 ;
} ;
2019-01-20 17:49:29 +08:00
/*! \brief This JKQTPPlotObject is used to draw an infinite line
2015-07-11 18:56:02 +08:00
\ ingroup jkqtplotter_geoplots
an infinite line has a starting point and then goes on in a given direction
until the end of the plotting range .
\ image html plot_geoinfiniteline . png
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoInfiniteLine : public JKQTPGeoBaseLine {
2015-07-11 18:56:02 +08:00
Q_OBJECT
public :
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of start point of line
\ param y y - coordinate of start point of line
\ param dx x - direction of the line
\ param dy y - direction of the line
\ param color color of line
\ param lineWidth width of line
\ param style line style
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoInfiniteLine ( JKQTBasePlotter * parent , double x , double y , double dx , double dy , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of start point of line
\ param y y - coordinate of start point of line
\ param dx x - direction of the line
\ param dy y - direction of the line
\ param color color of line
\ param lineWidth width of line
\ param style line style
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoInfiniteLine ( JKQTPlotter * parent , double x , double y , double dx , double dy , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine ) ;
2015-07-11 18:56:02 +08:00
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getXMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getXMinMax ( double & minx , double & maxx , double & smallestGreaterZero ) override ;
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getYMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getYMinMax ( double & miny , double & maxy , double & smallestGreaterZero ) override ;
2015-07-11 18:56:02 +08:00
/** \brief plots the graph to the plotter object specified as parent */
2018-12-28 05:52:00 +08:00
virtual void draw ( JKQTPEnhancedPainter & painter ) override ;
2015-07-11 18:56:02 +08:00
2019-01-26 20:00:40 +08:00
/*! \brief sets the property x ( \copybrief x ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x is : < BLOCKQUOTE > \ copydoc x < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setX ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > x = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property x ( \copybrief x ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x is : < BLOCKQUOTE > \ copydoc x < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getX ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > x ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property y ( \copybrief y ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y is : < BLOCKQUOTE > \ copydoc y < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setY ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > y = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property y ( \copybrief y ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y is : < BLOCKQUOTE > \ copydoc y < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getY ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > y ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property dx ( \copybrief dx ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter dx is : < BLOCKQUOTE > \ copydoc dx < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see dx for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setDx ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > dx = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property dx ( \copybrief dx ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter dx is : < BLOCKQUOTE > \ copydoc dx < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see dx for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getDx ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > dx ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property dy ( \copybrief dy ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter dy is : < BLOCKQUOTE > \ copydoc dy < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see dy for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setDy ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > dy = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property dy ( \copybrief dy ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter dy is : < BLOCKQUOTE > \ copydoc dy < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see dy for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getDy ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > dy ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property two_sided ( \copybrief two_sided ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter two_sided is : < BLOCKQUOTE > \ copydoc two_sided < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see two_sided for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setTwoSided ( bool __value )
2019-01-10 04:23:24 +08:00
{
this - > two_sided = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property two_sided ( \copybrief two_sided ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter two_sided is : < BLOCKQUOTE > \ copydoc two_sided < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see two_sided for more information */
2019-01-26 20:00:40 +08:00
inline virtual bool getTwoSided ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > two_sided ;
}
2015-07-11 18:56:02 +08:00
protected :
double x , y , dx , dy ;
/** \brief indicates whether the line ends at the given point \f$ (x,y) \f$ (false, default),
* or is infinite in both directions ( true ) */
bool two_sided ;
} ;
2019-01-20 17:49:29 +08:00
/*! \brief This JKQTPPlotObject is used to draw a poly line
2015-07-11 18:56:02 +08:00
\ ingroup jkqtplotter_geoplots
\ image html plot_geolines . png
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoPolyLines : public JKQTPGeoBaseLine {
2015-07-11 18:56:02 +08:00
Q_OBJECT
public :
/*! \brief class constructor
\ param parent the parent plotter class
2019-01-08 04:00:56 +08:00
\ param points points on the polygon
2015-07-11 18:56:02 +08:00
\ param color color of line
\ param lineWidth width of line
\ param style line style
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoPolyLines ( JKQTBasePlotter * parent , const QVector < QPointF > & points , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
2019-01-08 04:00:56 +08:00
\ param points points on the polygon
\ param color color of line
\ param lineWidth width of line
\ param style line style
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoPolyLines ( JKQTPlotter * parent , const QVector < QPointF > & points , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param points points on the polygon
\ param color color of line
\ param lineWidth width of line
\ param style line style
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoPolyLines ( JKQTBasePlotter * parent , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param points points on the polygon
2015-08-02 19:36:54 +08:00
\ param color color of line
\ param lineWidth width of line
\ param style line style
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoPolyLines ( JKQTPlotter * parent , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine ) ;
2015-07-11 18:56:02 +08:00
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getXMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getXMinMax ( double & minx , double & maxx , double & smallestGreaterZero ) override ;
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getYMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getYMinMax ( double & miny , double & maxy , double & smallestGreaterZero ) override ;
2015-07-11 18:56:02 +08:00
/** \brief plots the graph to the plotter object specified as parent */
2018-12-28 05:52:00 +08:00
virtual void draw ( JKQTPEnhancedPainter & painter ) override ;
2015-07-11 18:56:02 +08:00
2019-01-26 20:00:40 +08:00
/*! \brief sets the property points ( \copybrief points ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter points is : < BLOCKQUOTE > \ copydoc points < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see points for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setPoints ( const QVector < QPointF > & __value )
2019-01-10 04:23:24 +08:00
{
this - > points = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property points ( \copybrief points ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter points is : < BLOCKQUOTE > \ copydoc points < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see points for more information */
2019-01-26 20:00:40 +08:00
inline virtual QVector < QPointF > getPoints ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > points ;
}
2015-07-11 18:56:02 +08:00
/** \brief append a point to the polygon */
inline void appendPoint ( const QPointF & p ) {
points . append ( p ) ;
2018-12-28 05:52:00 +08:00
}
2015-07-11 18:56:02 +08:00
/** \brief append a point to the polygon */
inline void appendPoint ( const double x , const double y ) {
points . append ( QPointF ( x , y ) ) ;
2018-12-28 05:52:00 +08:00
}
2015-07-11 18:56:02 +08:00
protected :
QVector < QPointF > points ;
} ;
2019-01-20 17:49:29 +08:00
/*! \brief This JKQTPPlotObject is used to draw a rectangle
2015-07-11 18:56:02 +08:00
\ ingroup jkqtplotter_geoplots
\ image html plot_georectangle . png
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoRectangle : public JKQTPGeoBaseFilled {
2015-07-11 18:56:02 +08:00
Q_OBJECT
public :
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of rectangle
\ param y y - coordinate of center of rectangle
\ param width width of rectangle
\ param height of rectangle
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of rectangle
\ param fillStyle filling style of rectangle
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoRectangle ( JKQTBasePlotter * parent , double x , double y , double width , double height , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of rectangle
\ param y y - coordinate of center of rectangle
\ param width width of rectangle
\ param height of rectangle
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of rectangle
\ param fillStyle filling style of rectangle
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoRectangle ( JKQTPlotter * parent , double x , double y , double width , double height , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of rectangle
\ param y y - coordinate of center of rectangle
\ param width width of rectangle
\ param height of rectangle
\ param angle rotation angle of the rectangle
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of rectangle
\ param fillStyle filling style of rectangle
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoRectangle ( JKQTBasePlotter * parent , double x , double y , double width , double height , double angle , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of rectangle
\ param y y - coordinate of center of rectangle
\ param width width of rectangle
\ param height of rectangle
\ param angle rotation angle of the rectangle
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of rectangle
\ param fillStyle filling style of rectangle
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoRectangle ( JKQTPlotter * parent , double x , double y , double width , double height , double angle , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param bottomleft bottom left corner of rectangle
\ param topright top right corner of rectangle
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of rectangle
\ param fillStyle filling style of rectangle
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoRectangle ( JKQTBasePlotter * parent , QPointF bottomleft , QPointF topright , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param bottomleft bottom left corner of rectangle
\ param topright top right corner of rectangle
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of rectangle
\ param fillStyle filling style of rectangle
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoRectangle ( JKQTPlotter * parent , QPointF bottomleft , QPointF topright , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2015-07-11 18:56:02 +08:00
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getXMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getXMinMax ( double & minx , double & maxx , double & smallestGreaterZero ) override ;
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getYMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getYMinMax ( double & miny , double & maxy , double & smallestGreaterZero ) override ;
2015-07-11 18:56:02 +08:00
/** \brief plots the graph to the plotter object specified as parent */
2018-12-28 05:52:00 +08:00
virtual void draw ( JKQTPEnhancedPainter & painter ) override ;
2015-07-11 18:56:02 +08:00
2019-01-26 20:00:40 +08:00
/*! \brief sets the property x ( \copybrief x ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x is : < BLOCKQUOTE > \ copydoc x < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setX ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > x = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property x ( \copybrief x ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x is : < BLOCKQUOTE > \ copydoc x < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getX ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > x ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property y ( \copybrief y ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y is : < BLOCKQUOTE > \ copydoc y < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setY ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > y = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property y ( \copybrief y ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y is : < BLOCKQUOTE > \ copydoc y < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getY ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > y ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property width ( \copybrief width ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter width is : < BLOCKQUOTE > \ copydoc width < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see width for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setWidth ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > width = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property width ( \copybrief width ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter width is : < BLOCKQUOTE > \ copydoc width < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see width for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getWidth ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > width ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property height ( \copybrief height ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter height is : < BLOCKQUOTE > \ copydoc height < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see height for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setHeight ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > height = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property height ( \copybrief height ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter height is : < BLOCKQUOTE > \ copydoc height < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see height for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getHeight ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > height ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property angle ( \copybrief angle ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter angle is : < BLOCKQUOTE > \ copydoc angle < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see angle for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setAngle ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > angle = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property angle ( \copybrief angle ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter angle is : < BLOCKQUOTE > \ copydoc angle < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see angle for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getAngle ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > angle ;
}
2015-07-11 18:56:02 +08:00
2019-01-26 20:00:40 +08:00
void setBottomleftrectangle ( double x , double y , double width , double height ) ;
2015-07-11 18:56:02 +08:00
protected :
double x , y , width , height ;
/** \brief rotation angle of rectangle */
2019-01-08 04:00:56 +08:00
double angle ;
2015-07-11 18:56:02 +08:00
/** \brief returns the transformation matrix used for this rectangle */
QMatrix getMatrix ( ) ;
/** \brief returns a QPolygonF which represents the rectangle after rotation, but still in the world coordinate system, not in the screen/widget system */
QPolygonF getPolygon ( ) ;
} ;
2019-01-20 17:49:29 +08:00
/*! \brief This JKQTPPlotObject is used to draw a polygon
2015-07-11 18:56:02 +08:00
\ ingroup jkqtplotter_geoplots
\ image html plot_geopolygon . png
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoPolygon : public JKQTPGeoBaseFilled {
2015-07-11 18:56:02 +08:00
Q_OBJECT
public :
/*! \brief class constructor
\ param parent the parent plotter class
2019-01-08 04:00:56 +08:00
\ param points points on the polygon
2015-07-11 18:56:02 +08:00
\ param color color of line
\ param lineWidth width of line
\ param style line style
2019-01-08 04:00:56 +08:00
\ param fillColor color of the filling
\ param fillStyle style of the filling
2015-07-11 18:56:02 +08:00
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoPolygon ( JKQTBasePlotter * parent , const QVector < QPointF > & points , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param points points on the polygon
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor color of the filling
\ param fillStyle style of the filling
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoPolygon ( JKQTPlotter * parent , const QVector < QPointF > & points , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2019-01-08 04:00:56 +08:00
2015-08-02 19:36:54 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param color color of line
\ param lineWidth width of line
\ param style line style
2019-01-08 04:00:56 +08:00
\ param fillColor color of the filling
\ param fillStyle style of the filling
2015-08-02 19:36:54 +08:00
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoPolygon ( JKQTBasePlotter * parent , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor color of the filling
\ param fillStyle style of the filling
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoPolygon ( JKQTPlotter * parent , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2015-07-11 18:56:02 +08:00
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getXMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getXMinMax ( double & minx , double & maxx , double & smallestGreaterZero ) override ;
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getYMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getYMinMax ( double & miny , double & maxy , double & smallestGreaterZero ) override ;
2015-07-11 18:56:02 +08:00
/** \brief plots the graph to the plotter object specified as parent */
2018-12-28 05:52:00 +08:00
virtual void draw ( JKQTPEnhancedPainter & painter ) override ;
2015-07-11 18:56:02 +08:00
2019-01-26 20:00:40 +08:00
/*! \brief sets the property points ( \copybrief points ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter points is : < BLOCKQUOTE > \ copydoc points < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see points for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setPoints ( const QVector < QPointF > & __value )
2019-01-10 04:23:24 +08:00
{
this - > points = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property points ( \copybrief points ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter points is : < BLOCKQUOTE > \ copydoc points < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see points for more information */
2019-01-26 20:00:40 +08:00
inline virtual QVector < QPointF > getPoints ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > points ;
}
2015-07-11 18:56:02 +08:00
/** \brief append a point to the polygon */
inline void appendPoint ( const QPointF & p ) {
points . append ( p ) ;
2018-12-28 05:52:00 +08:00
}
2015-07-11 18:56:02 +08:00
/** \brief append a point to the polygon */
inline void appendPoint ( const double x , const double y ) {
points . append ( QPointF ( x , y ) ) ;
2018-12-28 05:52:00 +08:00
}
2015-07-11 18:56:02 +08:00
protected :
QVector < QPointF > points ;
} ;
2019-01-20 17:49:29 +08:00
/*! \brief This JKQTPPlotObject is used to draw an ellipse
2015-07-11 18:56:02 +08:00
\ ingroup jkqtplotter_geoplots
\ image html plot_geoellipse . png
\ see < a href = " http://www.codeguru.com/cpp/g-m/gdi/article.php/c131 " > http : //www.codeguru.com/cpp/g-m/gdi/article.php/c131</a> and
< a href = " http://en.wikipedia.org/wiki/Ellipse#General_parametric_form " > http : //en.wikipedia.org/wiki/Ellipse#General_parametric_form</a>
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoEllipse : public JKQTPGeoRectangle {
2015-07-11 18:56:02 +08:00
Q_OBJECT
public :
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of ellipse
\ param y y - coordinate of center of ellipse
\ param width width of ellipse ( 2 * half axis )
\ param height of ellipse ( 2 * half axis )
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of ellipse
\ param fillStyle filling style of ellipse
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoEllipse ( JKQTBasePlotter * parent , double x , double y , double width , double height , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2015-07-11 18:56:02 +08:00
2015-08-02 19:36:54 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of ellipse
\ param y y - coordinate of center of ellipse
\ param width width of ellipse ( 2 * half axis )
\ param height of ellipse ( 2 * half axis )
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of ellipse
\ param fillStyle filling style of ellipse
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoEllipse ( JKQTPlotter * parent , double x , double y , double width , double height , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of rectangle
\ param y y - coordinate of center of rectangle
\ param width width of rectangle
\ param height of rectangle
\ param angle rotation angle of the rectangle
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of rectangle
\ param fillStyle filling style of rectangle
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoEllipse ( JKQTBasePlotter * parent , double x , double y , double width , double height , double angle , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of rectangle
\ param y y - coordinate of center of rectangle
\ param width width of rectangle
\ param height of rectangle
\ param angle rotation angle of the rectangle
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of rectangle
\ param fillStyle filling style of rectangle
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoEllipse ( JKQTPlotter * parent , double x , double y , double width , double height , double angle , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param bottomleft bottom left corner of rectangle
\ param topright top right corner of rectangle
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of rectangle
\ param fillStyle filling style of rectangle
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoEllipse ( JKQTBasePlotter * parent , QPointF bottomleft , QPointF topright , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2019-01-08 04:00:56 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param bottomleft bottom left corner of rectangle
\ param topright top right corner of rectangle
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of rectangle
\ param fillStyle filling style of rectangle
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoEllipse ( JKQTPlotter * parent , QPointF bottomleft , QPointF topright , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2015-07-11 18:56:02 +08:00
/** \brief plots the graph to the plotter object specified as parent */
2018-12-28 05:52:00 +08:00
virtual void draw ( JKQTPEnhancedPainter & painter ) override ;
2015-07-11 18:56:02 +08:00
2019-01-26 20:00:40 +08:00
/*! \brief sets the property controlPoints ( \copybrief controlPoints ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter controlPoints is : < BLOCKQUOTE > \ copydoc controlPoints < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see controlPoints for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setControlPoints ( const unsigned int & __value )
2019-01-10 04:23:24 +08:00
{
this - > controlPoints = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property controlPoints ( \copybrief controlPoints ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter controlPoints is : < BLOCKQUOTE > \ copydoc controlPoints < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see controlPoints for more information */
2019-01-26 20:00:40 +08:00
inline virtual unsigned int getControlPoints ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > controlPoints ;
}
2015-07-11 18:56:02 +08:00
protected :
/** \brief number of steps/control points to draw the ellipse */
unsigned int controlPoints ;
} ;
2019-01-20 17:49:29 +08:00
/*! \brief This JKQTPPlotObject is used to draw an arc
2015-07-11 18:56:02 +08:00
\ ingroup jkqtplotter_geoplots
\ image html plot_geoarc . png
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoArc : public JKQTPGeoBaseLine {
2015-07-11 18:56:02 +08:00
Q_OBJECT
public :
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of ellipse
\ param y y - coordinate of center of ellipse
\ param width width of ellipse ( 2 * half axis )
\ param height of ellipse ( 2 * half axis )
\ param color color of line
\ param lineWidth width of line
\ param style line style
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoArc ( JKQTBasePlotter * parent , double x , double y , double width , double height , double angleStart , double angleStop , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of ellipse
\ param y y - coordinate of center of ellipse
\ param width width of ellipse ( 2 * half axis )
\ param height of ellipse ( 2 * half axis )
\ param color color of line
\ param lineWidth width of line
\ param style line style
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoArc ( JKQTPlotter * parent , double x , double y , double width , double height , double angleStart , double angleStop , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine ) ;
2015-07-11 18:56:02 +08:00
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getXMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getXMinMax ( double & minx , double & maxx , double & smallestGreaterZero ) override ;
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getYMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getYMinMax ( double & miny , double & maxy , double & smallestGreaterZero ) override ;
2015-07-11 18:56:02 +08:00
/** \brief plots the graph to the plotter object specified as parent */
2018-12-28 05:52:00 +08:00
virtual void draw ( JKQTPEnhancedPainter & painter ) override ;
2015-07-11 18:56:02 +08:00
2019-01-26 20:00:40 +08:00
/*! \brief sets the property controlPoints ( \copybrief controlPoints ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter controlPoints is : < BLOCKQUOTE > \ copydoc controlPoints < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see controlPoints for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setControlPoints ( const unsigned int & __value )
2019-01-10 04:23:24 +08:00
{
this - > controlPoints = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property controlPoints ( \copybrief controlPoints ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter controlPoints is : < BLOCKQUOTE > \ copydoc controlPoints < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see controlPoints for more information */
2019-01-26 20:00:40 +08:00
inline virtual unsigned int getControlPoints ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > controlPoints ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property angleStart ( \copybrief angleStart ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter angleStart is : < BLOCKQUOTE > \ copydoc angleStart < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see angleStart for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setAngleStart ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > angleStart = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property angleStart ( \copybrief angleStart ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter angleStart is : < BLOCKQUOTE > \ copydoc angleStart < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see angleStart for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getAngleStart ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > angleStart ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property angleStop ( \copybrief angleStop ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter angleStop is : < BLOCKQUOTE > \ copydoc angleStop < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see angleStop for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setAngleStop ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > angleStop = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property angleStop ( \copybrief angleStop ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter angleStop is : < BLOCKQUOTE > \ copydoc angleStop < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see angleStop for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getAngleStop ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > angleStop ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property x ( \copybrief x ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x is : < BLOCKQUOTE > \ copydoc x < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setX ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > x = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property x ( \copybrief x ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter x is : < BLOCKQUOTE > \ copydoc x < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see x for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getX ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > x ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property y ( \copybrief y ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y is : < BLOCKQUOTE > \ copydoc y < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setY ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > y = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property y ( \copybrief y ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter y is : < BLOCKQUOTE > \ copydoc y < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see y for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getY ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > y ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property width ( \copybrief width ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter width is : < BLOCKQUOTE > \ copydoc width < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see width for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setWidth ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > width = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property width ( \copybrief width ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter width is : < BLOCKQUOTE > \ copydoc width < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see width for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getWidth ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > width ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property height ( \copybrief height ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter height is : < BLOCKQUOTE > \ copydoc height < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see height for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setHeight ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > height = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property height ( \copybrief height ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter height is : < BLOCKQUOTE > \ copydoc height < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see height for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getHeight ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > height ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property angle ( \copybrief angle ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter angle is : < BLOCKQUOTE > \ copydoc angle < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see angle for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setAngle ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > angle = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property angle ( \copybrief angle ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter angle is : < BLOCKQUOTE > \ copydoc angle < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see angle for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getAngle ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > angle ;
}
2015-07-11 18:56:02 +08:00
protected :
double x , y , width , height ;
/** \brief rotation angle of rectangle */
2019-01-08 04:00:56 +08:00
double angle ;
2015-07-11 18:56:02 +08:00
/** \brief if we only draw an arc, this is the starting angle in degrees */
double angleStart ;
/** \brief if we only draw an arc, this is the ending angle in degrees */
double angleStop ;
/** \brief closing mode for arcs: secand or pie */
double angle_start ;
/** \brief if we only draw an arc, this is the ending angle */
double angle_end ;
/** \brief closing mode for arcs: secand or pie */
/** \brief returns the transformation matrix used for this rectangle */
QMatrix getMatrix ( ) ;
/** \brief returns a QPolygonF which represents the rectangle after rotation, but still in the world coordinate system, not in the screen/widget system */
QPolygonF getPolygon ( ) ;
/** \brief number of steps/control points to draw the ellipse */
unsigned int controlPoints ;
} ;
2019-01-20 17:49:29 +08:00
/*! \brief This JKQTPPlotObject is used to draw a pie
2015-07-11 18:56:02 +08:00
\ ingroup jkqtplotter_geoplots
\ image html plot_geopie . png
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoPie : public JKQTPGeoEllipse {
2015-07-11 18:56:02 +08:00
Q_OBJECT
public :
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of ellipse
\ param y y - coordinate of center of ellipse
\ param width width of ellipse ( 2 * half axis )
\ param height of ellipse ( 2 * half axis )
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of ellipse
\ param fillStyle filling style of ellipse
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoPie ( JKQTBasePlotter * parent , double x , double y , double width , double height , double angleStart , double angleStop , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of ellipse
\ param y y - coordinate of center of ellipse
\ param width width of ellipse ( 2 * half axis )
\ param height of ellipse ( 2 * half axis )
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of ellipse
\ param fillStyle filling style of ellipse
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoPie ( JKQTPlotter * parent , double x , double y , double width , double height , double angleStart , double angleStop , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2015-07-11 18:56:02 +08:00
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getXMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getXMinMax ( double & minx , double & maxx , double & smallestGreaterZero ) override ;
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getYMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getYMinMax ( double & miny , double & maxy , double & smallestGreaterZero ) override ;
2015-07-11 18:56:02 +08:00
/** \brief plots the graph to the plotter object specified as parent */
2018-12-28 05:52:00 +08:00
virtual void draw ( JKQTPEnhancedPainter & painter ) override ;
2015-07-11 18:56:02 +08:00
2019-01-26 20:00:40 +08:00
/*! \brief sets the property angleStart ( \copybrief angleStart ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter angleStart is : < BLOCKQUOTE > \ copydoc angleStart < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see angleStart for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setAngleStart ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > angleStart = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property angleStart ( \copybrief angleStart ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter angleStart is : < BLOCKQUOTE > \ copydoc angleStart < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see angleStart for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getAngleStart ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > angleStart ;
}
2019-01-26 20:00:40 +08:00
/*! \brief sets the property angleStop ( \copybrief angleStop ) to the specified \a __value.
2019-01-25 05:49:10 +08:00
\ details Description of the parameter angleStop is : < BLOCKQUOTE > \ copydoc angleStop < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see angleStop for more information */
2019-01-26 20:00:40 +08:00
inline virtual void setAngleStop ( double __value )
2019-01-10 04:23:24 +08:00
{
this - > angleStop = __value ;
}
2019-01-26 20:00:40 +08:00
/*! \brief returns the property angleStop ( \copybrief angleStop ).
2019-01-25 05:49:10 +08:00
\ details Description of the parameter angleStop is : < BLOCKQUOTE > \ copydoc angleStop < / BLOCKQUOTE >
2019-01-10 04:23:24 +08:00
\ see angleStop for more information */
2019-01-26 20:00:40 +08:00
inline virtual double getAngleStop ( ) const
2019-01-10 04:23:24 +08:00
{
return this - > angleStop ;
}
2015-07-11 18:56:02 +08:00
protected :
/** \brief if we only draw an arc, this is the starting angle */
double angleStart ;
/** \brief if we only draw an arc, this is the ending angle */
double angleStop ;
} ;
2019-01-20 17:49:29 +08:00
/*! \brief This JKQTPPlotObject is used to draw a chord
2015-07-11 18:56:02 +08:00
\ ingroup jkqtplotter_geoplots
\ image html plot_geochord . png
*/
2019-01-20 17:49:29 +08:00
class LIB_EXPORT JKQTPGeoChord : public JKQTPGeoPie {
2015-07-11 18:56:02 +08:00
Q_OBJECT
public :
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of ellipse
\ param y y - coordinate of center of ellipse
\ param width width of ellipse ( 2 * half axis )
\ param height of ellipse ( 2 * half axis )
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of ellipse
\ param fillStyle filling style of ellipse
*/
2019-01-20 17:49:29 +08:00
JKQTPGeoChord ( JKQTBasePlotter * parent , double x , double y , double width , double height , double angleStart , double angleStop , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2015-08-02 19:36:54 +08:00
/*! \brief class constructor
\ param parent the parent plotter class
\ param x x - coordinate of center of ellipse
\ param y y - coordinate of center of ellipse
\ param width width of ellipse ( 2 * half axis )
\ param height of ellipse ( 2 * half axis )
\ param color color of line
\ param lineWidth width of line
\ param style line style
\ param fillColor filling color of ellipse
\ param fillStyle filling style of ellipse
*/
2019-01-20 23:15:10 +08:00
JKQTPGeoChord ( JKQTPlotter * parent , double x , double y , double width , double height , double angleStart , double angleStop , QColor color = QColor ( " black " ) , double lineWidth = 1 , Qt : : PenStyle style = Qt : : SolidLine , QColor fillColor = QColor ( " transparent " ) , Qt : : BrushStyle fillStyle = Qt : : SolidPattern ) ;
2015-07-11 18:56:02 +08:00
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getXMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getXMinMax ( double & minx , double & maxx , double & smallestGreaterZero ) override ;
2019-01-20 17:49:29 +08:00
/** \copydoc JKQTPPlotObject::getYMinMax() */
2018-12-28 05:52:00 +08:00
virtual bool getYMinMax ( double & miny , double & maxy , double & smallestGreaterZero ) override ;
2015-07-11 18:56:02 +08:00
/** \brief plots the graph to the plotter object specified as parent */
2018-12-28 05:52:00 +08:00
virtual void draw ( JKQTPEnhancedPainter & painter ) override ;
2015-07-11 18:56:02 +08:00
} ;
2018-12-19 00:13:18 +08:00
# endif // jkqtpgraphsgeometric_H_INCLUDED