|
QWT API (English) 7.3.0
Qt Widget Library for Technical Applications - English API Documentation
|
Base class for all plotting widgets. More...
#include <qwt3d_plot.h>
Classes | |
| class | PrivateData |
Public Slots | |
| void | setRotation (double xVal, double yVal, double zVal) |
| void | setShift (double xVal, double yVal, double zVal) |
| void | setViewportShift (double xVal, double yVal) |
| void | setScale (double xVal, double yVal, double zVal) |
| void | setZoom (double) |
| void | setOrtho (bool) |
| Sets up orthogonal or perspective mode and updates widget. | |
| void | enableMouse (bool val=true) |
| void | disableMouse (bool val=true) |
| void | enableKeyboard (bool val=true) |
| void | disableKeyboard (bool val=true) |
| void | enableLighting (bool val=true) |
| void | disableLighting (bool val=true) |
| void | setLightRotation (double xVal, double yVal, double zVal, unsigned int idx=0) |
| void | setLightShift (double xVal, double yVal, double zVal, unsigned int idx=0) |
| virtual bool | savePixmap (QString const &fileName, QString const &format) |
| Saves the framebuffer to an image file. | |
| virtual bool | saveVector (QString const &fileName, QString const &format, VectorWriter::TEXTMODE text, VectorWriter::SORTMODE sortmode) |
| Writes vector data supported by gl2ps. | |
| virtual bool | save (QString const &fileName, QString const &format) |
| Saves content in one of the registered output formats. | |
Signals | |
| void | rotationChanged (double xAngle, double yAngle, double zAngle) |
| Signal emitted when the rotation is changed. | |
| void | shiftChanged (double xShift, double yShift, double zShift) |
| Signal emitted when the shift is changed. | |
| void | vieportShiftChanged (double xShift, double yShift) |
| Signal emitted when the viewport shift is changed. | |
| void | scaleChanged (double xScale, double yScale, double zScale) |
| Signal emitted when the scaling is changed. | |
| void | zoomChanged (double) |
| Signal emitted when the zoom is changed. | |
| void | projectionChanged (bool) |
| Signal emitted when the projection mode is changed. | |
Public Member Functions | |
| Plot3D (QWidget *parent=nullptr) | |
| Constructs a Plot3D widget. | |
| QPixmap | renderPixmap (int w=0, int h=0, bool useContext=false) |
| void | updateData () |
| Updates OpenGL data representation. | |
| void | createCoordinateSystem (Qwt3D::Triple beg, Qwt3D::Triple end) |
| Creates a coordinate system with generating corners beg and end. | |
| Qwt3D::CoordinateSystem * | coordinates () |
| Qwt3D::ColorLegend * | legend () |
| double | xRotation () const |
| double | yRotation () const |
| double | zRotation () const |
| double | xShift () const |
| double | yShift () const |
| double | zShift () const |
| double | xViewportShift () const |
| double | yViewportShift () const |
| double | xScale () const |
| double | yScale () const |
| double | zScale () const |
| double | zoom () const |
| bool | ortho () const |
| void | setPlotStyle (Qwt3D::PLOTSTYLE val) |
| Sets plot style for the standard plotting types. | |
| Qwt3D::Enrichment * | setPlotStyle (Qwt3D::Enrichment const &val) |
| Sets plot style to Qwt3D::USER with an associated enrichment object. | |
| Qwt3D::PLOTSTYLE | plotStyle () const |
| Qwt3D::Enrichment * | userStyle () const |
| void | setShading (Qwt3D::SHADINGSTYLE val) |
| Sets shading style. | |
| Qwt3D::SHADINGSTYLE | shading () const |
| void | setIsolines (int isolines) |
| Sets number of isolines. | |
| int | isolines () const |
| void | setSmoothMesh (bool val) |
| bool | smoothDataMesh () const |
| void | setBackgroundColor (Qwt3D::RGBA rgba) |
| Sets the background color. | |
| Qwt3D::RGBA | backgroundRGBAColor () const |
| void | setMeshColor (Qwt3D::RGBA rgba) |
| Sets the mesh color. | |
| Qwt3D::RGBA | meshColor () const |
| void | setMeshLineWidth (double lw) |
| Sets the mesh line width. | |
| double | meshLineWidth () const |
| void | setDataColor (Color *col) |
| Assigns a new coloring object for the data. | |
| const Color * | dataColor () const |
| virtual Qwt3D::Enrichment * | addEnrichment (Qwt3D::Enrichment const &) |
| Adds an enrichment object to the plot. | |
| virtual bool | degrade (Qwt3D::Enrichment *) |
| Removes an enrichment object from the plot. | |
| Qwt3D::ParallelEpiped | hull () const |
| void | showColorLegend (bool) |
| Shows or hides the color legend. | |
| void | setCoordinateStyle (Qwt3D::COORDSTYLE st) |
| Sets style of coordinate system. | |
| void | setPolygonOffset (double d) |
| Sets polygon offset. | |
| double | polygonOffset () const |
| void | setTitlePosition (double rely, double relx=0.5, Qwt3D::ANCHOR=Qwt3D::TopCenter) |
| Sets relative caption position. | |
| void | setTitleFont (const QString &family, int pointSize, int weight=QFont::Normal, bool italic=false) |
| Sets the caption font. | |
| void | setTitleColor (Qwt3D::RGBA col) |
| void | setTitle (const QString &title) |
| void | setTheme (const Qwt3DTheme &theme) |
| Qwt3DTheme | theme () const |
| void | applyTheme (Qwt3DTheme::Preset preset) |
| void | applyTheme (const QString &presetName) |
| void | assignMouse (MouseState xrot, MouseState yrot, MouseState zrot, MouseState xscale, MouseState yscale, MouseState zscale, MouseState zoom, MouseState xshift, MouseState yshift) |
| bool | mouseEnabled () const |
| void | assignKeyboard (KeyboardState xrot_n, KeyboardState xrot_p, KeyboardState yrot_n, KeyboardState yrot_p, KeyboardState zrot_n, KeyboardState zrot_p, KeyboardState xscale_n, KeyboardState xscale_p, KeyboardState yscale_n, KeyboardState yscale_p, KeyboardState zscale_n, KeyboardState zscale_p, KeyboardState zoom_n, KeyboardState zoom_p, KeyboardState xshift_n, KeyboardState xshift_p, KeyboardState yshift_n, KeyboardState yshift_p) |
| bool | keyboardEnabled () const |
| void | setKeySpeed (double rot, double scale, double shift) |
| void | keySpeed (double &rot, double &scale, double &shift) const |
| bool | lightingEnabled () const |
| void | illuminate (unsigned light=0) |
| void | blowout (unsigned light=0) |
| void | setMaterialComponent (GLenum property, double r, double g, double b, double a=1.0) |
| void | setMaterialComponent (GLenum property, double intensity) |
| void | setShininess (double exponent) |
| void | setLightComponent (GLenum property, double r, double g, double b, double a=1.0, unsigned light=0) |
| void | setLightComponent (GLenum property, double intensity, unsigned light=0) |
| double | xLightRotation (unsigned idx=0) const |
| double | yLightRotation (unsigned idx=0) const |
| double | zLightRotation (unsigned idx=0) const |
| double | xLightShift (unsigned idx=0) const |
| double | yLightShift (unsigned idx=0) const |
| double | zLightShift (unsigned idx=0) const |
| bool | hasData () const |
Protected Types | |
| enum | OBJECTS { DataObject , LegendObject , NormalObject , DisplayListSize } |
| using | EnrichmentList = std::list< Qwt3D::Enrichment * > |
| using | ELIT = EnrichmentList::iterator |
Protected Member Functions | |
| void | initializeGL () override |
| Sets up the OpenGL rendering state. | |
| void | paintGL () override |
| Paints the widget's content. | |
| void | resizeGL (int w, int h) override |
| Sets up the OpenGL view port. | |
| void | mousePressEvent (QMouseEvent *e) override |
| void | mouseReleaseEvent (QMouseEvent *e) override |
| void | mouseMoveEvent (QMouseEvent *e) override |
| void | wheelEvent (QWheelEvent *e) override |
| void | keyPressEvent (QKeyEvent *e) override |
| std::vector< GLuint > & | displayLists () |
| Qwt3D::Data * | actualData () const |
| void | setActualData (Qwt3D::Data *data) |
| virtual void | calculateHull ()=0 |
| virtual void | createData ()=0 |
| virtual void | createEnrichment (Qwt3D::Enrichment &) |
| virtual void | createEnrichments () |
| void | createCoordinateSystem () |
| Creates a coordinate system from data. | |
| void | setHull (Qwt3D::ParallelEpiped p) |
| bool | initializedGL () const |
Base class for all plotting widgets.
Plot3D handles all the common features for plotting widgets - coordinate system, transformations, mouse/keyboard handling, labeling etc. It contains some pure virtual functions and is, in so far, an abstract base class. The class provides interfaces for data handling and implements basic data controlled color allocation.
| Plot3D::Plot3D | ( | QWidget * | parent = nullptr | ) |
Constructs a Plot3D widget.
| parent | Parent widget |
This should be the first call in your derived classes constructors.
Destructor - releases allocated resources
|
virtual |
Adds an enrichment object to the plot.
| e | Reference to an Enrichment object |
| void Plot3D::assignKeyboard | ( | KeyboardState | xrot_n, |
| KeyboardState | xrot_p, | ||
| KeyboardState | yrot_n, | ||
| KeyboardState | yrot_p, | ||
| KeyboardState | zrot_n, | ||
| KeyboardState | zrot_p, | ||
| KeyboardState | xscale_n, | ||
| KeyboardState | xscale_p, | ||
| KeyboardState | yscale_n, | ||
| KeyboardState | yscale_p, | ||
| KeyboardState | zscale_n, | ||
| KeyboardState | zscale_p, | ||
| KeyboardState | zoom_n, | ||
| KeyboardState | zoom_p, | ||
| KeyboardState | xshift_n, | ||
| KeyboardState | xshift_p, | ||
| KeyboardState | yshift_n, | ||
| KeyboardState | yshift_p | ||
| ) |
Sets the keybutton combination for data/coordinatesystem moves inside the widget
default behaviour:
rotate around x axis: [Key_Down, Key_Up] rotate around y axis: SHIFT+[Key_Right, Key_Left] rotate around z axis: [Key_Right, Key_Left] scale x: ALT+[Key_Right, Key_Left] scale y: ALT+[Key_Up, Key_Down] scale z: ALT+SHIFT[Key_Down, Key_Up] zoom: ALT+CTRL+[Key_Down, Key_Up] shifting along x: CTRL+[Key_Right, Key_Left] shifting along z: CTRL+[Key_Down, Key_Up]
| void Plot3D::assignMouse | ( | MouseState | xrot, |
| MouseState | yrot, | ||
| MouseState | zrot, | ||
| MouseState | xscale, | ||
| MouseState | yscale, | ||
| MouseState | zscale, | ||
| MouseState | zoom, | ||
| MouseState | xshift, | ||
| MouseState | yshift | ||
| ) |
Sets the key/mousebutton combination for data/coordinatesystem moves inside the widget\n\n default behaviour:\n @verbatim rotate around x axis: Qt::LeftButton rotate around y axis: Qt::LeftButton | Qt::ShiftButton rotate around z axis: Qt::LeftButton scale x: Qt::LeftButton | Qt::AltButton scale y: Qt::LeftButton | Qt::AltButton scale z: Qt::LeftButton | Qt::AltButton | Qt::ShiftButton zoom: Qt::LeftButton | Qt::AltButton | Qt::ControlButton shifting along x: Qt::LeftButton | Qt::ControlButton shifting along y: Qt::LeftButton | Qt::ControlButton @endverbatim mouseMoveEvent() evaluates this function - if overridden, their usefulness becomes somehow
limited
| void Plot3D::blowout | ( | unsigned | light = 0 | ) |
| light | light number [0..7] |
|
protectedpure virtual |
Implemented in Qwt3D::SurfacePlot.
|
protected |
Creates a coordinate system from data.
Calculates the hull first, then creates the coordinate system from hull boundaries.
| void Plot3D::createCoordinateSystem | ( | Qwt3D::Triple | beg, |
| Qwt3D::Triple | end | ||
| ) |
Creates a coordinate system with generating corners beg and end.
| beg | Minimum vertex of the coordinate system |
| end | Maximum vertex of the coordinate system |
|
virtual |
Removes an enrichment object from the plot.
| e | Pointer to the Enrichment object to remove |
|
slot |
|
slot |
|
slot |
The function has no effect if you derive from Plot3D and overrides the keyboard Functions too careless. In this case check first against keyboardEnabled() in your version of keyPressEvent() A more fine grained input control can be achieved by combining assignKeyboard() with enableKeyboard().
|
slot |
The function has no effect if you derive from Plot3D and overrides the mouse Function too careless. In this case check first against mouseEnabled() in your version of mouseMoveEvent() and wheelEvent(). A more fine grained input control can be achieved by combining assignMouse() with enableMouse().
| void Plot3D::illuminate | ( | unsigned | light = 0 | ) |
| light | light number [0..7] |
|
overrideprotected |
Standard mouse button Function
|
overrideprotected |
Standard mouse button Function. Prepares the call to mouseMoveEvent
|
overrideprotected |
Standard mouse button Function. Completes the call to mouseMoveEvent
|
signal |
Signal emitted when the projection mode is changed.
| ortho | True for orthogonal, false for perspective |
|
overrideprotected |
Sets up the OpenGL view port.
| w | New width |
| h | New height |
|
signal |
Signal emitted when the rotation is changed.
| xAngle | X axis rotation angle |
| yAngle | Y axis rotation angle |
| zAngle | Z axis rotation angle |
|
virtualslot |
Saves content in one of the registered output formats.
| fileName | Output file name |
| format | Output format string |
To modify the behaviour for more complex output handling use IO::outputHandler.
|
virtualslot |
Saves the framebuffer to an image file.
| fileName | Output file name |
| format | Image file format supported by Qt |
|
virtualslot |
Writes vector data supported by gl2ps.
| fileName | Output file name |
| format | Output format ("EPS", "PS", "PDF", "SVG", or "PGF") |
| text | Text handling mode |
| sortmode | Sort mode for polygon ordering |
If zlib has been configured, format types will be extended by "EPS_GZ" and "PS_GZ". Beware: BSPSORT turns out to behave very slowly and memory consuming, especially in cases where many polygons appear. It is still more exact than SIMPLESORT.
|
signal |
Signal emitted when the scaling is changed.
| xScale | X axis scale factor |
| yScale | Y axis scale factor |
| zScale | Z axis scale factor |
| void Plot3D::setBackgroundColor | ( | Qwt3D::RGBA | rgba | ) |
Sets the background color.
| rgba | Background color as RGBA value |
| void Plot3D::setCoordinateStyle | ( | Qwt3D::COORDSTYLE | st | ) |
Sets style of coordinate system.
| st | Coordinate system style (NOCOORD, BOX, or FRAME) |
| void Plot3D::setDataColor | ( | Color * | col | ) |
Assigns a new coloring object for the data.
| col | Pointer to a new Color object |
| void Plot3D::setIsolines | ( | int | steps | ) |
Sets number of isolines.
| steps | Number of isolines. The lines are equidistant between minimal and maximal Z value. |
| void Plot3D::setKeySpeed | ( | double | rot, |
| double | scale, | ||
| double | shift | ||
| ) |
Values < 0 are ignored. Default is (3,5,5)
| void Plot3D::setLightComponent | ( | GLenum | property, |
| double | intensity, | ||
| unsigned | light = 0 |
||
| ) |
This function is for convenience. It sets GL light properties with the equal r,g,b values and a blending alpha with value 1.0
| void Plot3D::setLightComponent | ( | GLenum | property, |
| double | r, | ||
| double | g, | ||
| double | b, | ||
| double | a = 1.0, |
||
| unsigned | light = 0 |
||
| ) |
Sets GL light properties for light 'light'
|
slot |
Set the rotation angle of the light source. If you look along the respective axis towards ascending values, the rotation is performed in mathematical negative sense
| xVal | angle in degree to rotate around the X axis |
| yVal | angle in degree to rotate around the Y axis |
| zVal | angle in degree to rotate around the Z axis |
| light | light number |
|
slot |
Set the shift in light source (world) coordinates.
| xVal | shift along (world) X axis |
| yVal | shift along (world) Y axis |
| zVal | shift along (world) Z axis |
| light | light number |
| void Plot3D::setMaterialComponent | ( | GLenum | property, |
| double | intensity | ||
| ) |
This function is for convenience. It sets GL material properties with the equal r,g,b values and a blending alpha with value 1.0
| void Plot3D::setMaterialComponent | ( | GLenum | property, |
| double | r, | ||
| double | g, | ||
| double | b, | ||
| double | a = 1.0 |
||
| ) |
Sets GL material properties
| void Plot3D::setMeshColor | ( | Qwt3D::RGBA | rgba | ) |
Sets the mesh color.
| rgba | Mesh color as RGBA value |
| void Plot3D::setMeshLineWidth | ( | double | val | ) |
Sets the mesh line width.
| val | Line width value (must be >= 0) |
|
slot |
Sets up orthogonal or perspective mode and updates widget.
| val | True for orthogonal projection, false for perspective |
| Qwt3D::Enrichment * Plot3D::setPlotStyle | ( | Qwt3D::Enrichment const & | obj | ) |
Sets plot style to Qwt3D::USER with an associated enrichment object.
| obj | Reference to an Enrichment object |
| void Plot3D::setPlotStyle | ( | Qwt3D::PLOTSTYLE | val | ) |
Sets plot style for the standard plotting types.
| val | Plot style value. An argument of value Qwt3D::USER is ignored. |
| void Plot3D::setPolygonOffset | ( | double | val | ) |
Sets polygon offset.
| val | Polygon offset value |
The function affects the OpenGL rendering process. Try different values for surfaces with polygons only and with mesh and polygons.
|
slot |
Set the rotation angle of the object. If you look along the respective axis towards ascending values, the rotation is performed in mathematical negative sense
| xVal | angle in degree to rotate around the X axis |
| yVal | angle in degree to rotate around the Y axis |
| zVal | angle in degree to rotate around the Z axis |
|
slot |
Set the scale in object (world) coordinates.
| xVal | scaling for X values |
| yVal | scaling for Y values |
| zVal | scaling for Z values |
A respective value of 1 represents no scaling;
| void Plot3D::setShading | ( | Qwt3D::SHADINGSTYLE | val | ) |
Sets shading style.
| val | Shading style (FLAT or GOURAUD) |
|
slot |
Set the shift in object (world) coordinates.
| xVal | shift along (world) X axis |
| yVal | shift along (world) Y axis |
| zVal | shift along (world) Z axis |
| void Plot3D::setShininess | ( | double | exponent | ) |
Sets GL shininess
| void Plot3D::setTitleFont | ( | const QString & | family, |
| int | pointSize, | ||
| int | weight = QFont::Normal, |
||
| bool | italic = false |
||
| ) |
Sets the caption font.
| family | Font family name |
| pointSize | Font point size |
| weight | Font weight |
| italic | Whether font is italic |
| void Plot3D::setTitlePosition | ( | double | rely, |
| double | relx = 0.5, |
||
| Qwt3D::ANCHOR | anchor = Qwt3D::TopCenter |
||
| ) |
Sets relative caption position.
| rely | Relative Y position (0-1). (0.5,0.5) means the anchor point lies in the center of the screen. |
| relx | Relative X position (0-1) |
| anchor | Anchor type for title alignment |
|
slot |
Performs shifting along screen axes. The shift moves points inside a sphere, which encloses the unscaled and unzoomed data by multiples of the spheres diameter
| xVal | shift along (view) X axis |
| yVal | shift along (view) Y axis |
|
slot |
Set the (zoom in addition to scale).
| val | zoom value (value == 1 indicates no zooming) |
|
signal |
Signal emitted when the shift is changed.
| xShift | X axis shift value |
| yShift | Y axis shift value |
| zShift | Z axis shift value |
| void Plot3D::showColorLegend | ( | bool | show | ) |
Shows or hides the color legend.
| show | True to show, false to hide |
|
signal |
Signal emitted when the viewport shift is changed.
| xShift | X viewport shift value |
| yShift | Y viewport shift value |
|
overrideprotected |
Standard wheel Function - zoom (wheel only) or z-scale (shift+wheel)
|
signal |
Signal emitted when the zoom is changed.
| zoom | Zoom factor |