#include <qwt3d_plot.h>
Inheritance diagram for Plot3D:
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) |
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) |
virtual bool | saveVector (QString const &fileName, QString const &format, VectorWriter::TEXTMODE text, VectorWriter::SORTMODE sortmode) |
virtual bool | save (QString const &fileName, QString const &format) |
Signals | |
void | rotationChanged (double xAngle, double yAngle, double zAngle) |
void | shiftChanged (double xShift, double yShift, double zShift) |
void | vieportShiftChanged (double xShift, double yShift) |
void | scaleChanged (double xScale, double yScale, double zScale) |
void | zoomChanged (double) |
void | projectionChanged (bool) |
Public Member Functions | |
Plot3D (QWidget *parent=0, const QGLWidget *shareWidget=0) | |
virtual | ~Plot3D () |
QPixmap | renderPixmap (int w=0, int h=0, bool useContext=false) |
void | updateData () |
void | createCoordinateSystem (Qwt3D::Triple beg, Qwt3D::Triple 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) |
Qwt3D::Enrichment * | setPlotStyle (Qwt3D::Enrichment const &val) |
Qwt3D::PLOTSTYLE | plotStyle () const |
Qwt3D::Enrichment * | userStyle () const |
void | setShading (Qwt3D::SHADINGSTYLE val) |
Qwt3D::SHADINGSTYLE | shading () const |
void | setIsolines (int isolines) |
int | isolines () const |
void | setSmoothMesh (bool val) |
bool | smoothDataMesh () const |
void | setBackgroundColor (Qwt3D::RGBA rgba) |
Qwt3D::RGBA | backgroundRGBAColor () const |
void | setMeshColor (Qwt3D::RGBA rgba) |
Qwt3D::RGBA | meshColor () const |
void | setMeshLineWidth (double lw) |
double | meshLineWidth () const |
void | setDataColor (Color *col) |
const Color * | dataColor () const |
virtual Qwt3D::Enrichment * | addEnrichment (Qwt3D::Enrichment const &) |
virtual bool | degrade (Qwt3D::Enrichment *) |
Qwt3D::ParallelEpiped | hull () const |
void | showColorLegend (bool) |
void | setCoordinateStyle (Qwt3D::COORDSTYLE st) |
void | setPolygonOffset (double d) |
double | polygonOffset () const |
void | setTitlePosition (double rely, double relx=0.5, Qwt3D::ANCHOR=Qwt3D::TopCenter) |
void | setTitleFont (const QString &family, int pointSize, int weight=QFont::Normal, bool italic=false) |
void | setTitleColor (Qwt3D::RGBA col) |
void | setTitle (const QString &title) |
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 } |
typedef std::list< Qwt3D::Enrichment * > | EnrichmentList |
typedef EnrichmentList::iterator | ELIT |
Protected Member Functions | |
void | initializeGL () |
void | paintGL () |
void | resizeGL (int w, int h) |
void | mousePressEvent (QMouseEvent *e) |
void | mouseReleaseEvent (QMouseEvent *e) |
void | mouseMoveEvent (QMouseEvent *e) |
void | wheelEvent (QWheelEvent *e) |
void | keyPressEvent (QKeyEvent *e) |
virtual void | calculateHull ()=0 |
virtual void | createData ()=0 |
virtual void | createEnrichment (Qwt3D::Enrichment &) |
virtual void | createEnrichments () |
void | createCoordinateSystem () |
void | setHull (Qwt3D::ParallelEpiped p) |
bool | initializedGL () const |
Protected Attributes | |
Qwt3D::CoordinateSystem | coordinates_p |
Qwt3D::Color * | datacolor_p |
Qwt3D::Enrichment * | userplotstyle_p |
EnrichmentList | elist_p |
std::vector< GLuint > | displaylists_p |
Qwt3D::Data * | actualData_p |
Classes | |
struct | Light |
Plot3D | ( | QWidget * | parent = 0 , |
|
const QGLWidget * | shareWidget = 0 | |||
) |
This should be the first call in your derived classes constructors.
~Plot3D | ( | ) | [virtual] |
Release allocated resources
QPixmap renderPixmap | ( | int | w = 0 , |
|
int | h = 0 , |
|||
bool | useContext = false | |||
) |
Reimplemented from QGLWidget
void updateData | ( | ) |
Recalculate data.
Update OpenGL data representation
void createCoordinateSystem | ( | Qwt3D::Triple | beg, | |
Qwt3D::Triple | end | |||
) |
Create a coordinate system with generating corners beg and end
Qwt3D::CoordinateSystem* coordinates | ( | ) | [inline] |
Returns pointer to CoordinateSystem object.
Qwt3D::ColorLegend* legend | ( | ) | [inline] |
Returns pointer to ColorLegend object.
double xRotation | ( | ) | const [inline] |
Returns rotation around X axis [-360..360] (some angles are equivalent).
double yRotation | ( | ) | const [inline] |
Returns rotation around Y axis [-360..360] (some angles are equivalent).
double zRotation | ( | ) | const [inline] |
Returns rotation around Z axis [-360..360] (some angles are equivalent).
double xShift | ( | ) | const [inline] |
Returns shift along X axis (object coordinates).
double yShift | ( | ) | const [inline] |
Returns shift along Y axis (object coordinates).
double zShift | ( | ) | const [inline] |
Returns shift along Z axis (object coordinates).
double xViewportShift | ( | ) | const [inline] |
Returns relative shift [-1..1] along X axis (view coordinates).
double yViewportShift | ( | ) | const [inline] |
Returns relative shift [-1..1] along Y axis (view coordinates).
double xScale | ( | ) | const [inline] |
Returns scaling for X values [0..inf].
double yScale | ( | ) | const [inline] |
Returns scaling for Y values [0..inf].
double zScale | ( | ) | const [inline] |
Returns scaling for Z values [0..inf].
double zoom | ( | ) | const [inline] |
Returns zoom (0..inf).
bool ortho | ( | ) | const [inline] |
Returns orthogonal (true) or perspective (false) projection.
void setPlotStyle | ( | Qwt3D::PLOTSTYLE | val | ) |
Set plotstyle for the standard plotting types. An argument of value Qwt3D::USER is ignored.
Qwt3D::Enrichment * setPlotStyle | ( | Qwt3D::Enrichment const & | obj | ) |
Set plotstyle to Qwt3D::USER and an associated enrichment object.
Qwt3D::PLOTSTYLE plotStyle | ( | ) | const [inline] |
Returns plotting style
Qwt3D::Enrichment* userStyle | ( | ) | const [inline] |
Returns current Enrichment object used for plotting styles (if set, zero else).
void setShading | ( | Qwt3D::SHADINGSTYLE | val | ) |
Set shading style
Qwt3D::SHADINGSTYLE shading | ( | ) | const [inline] |
Returns shading style.
void setIsolines | ( | int | steps | ) |
Set number of isolines. The lines are equidistant between minimal and maximal Z value
int isolines | ( | ) | const [inline] |
Returns number of isolines.
void setSmoothMesh | ( | bool | val | ) | [inline] |
Enables/disables smooth data mesh lines. Default is false.
bool smoothDataMesh | ( | ) | const [inline] |
True if mesh antialiasing is on.
void setBackgroundColor | ( | Qwt3D::RGBA | rgba | ) |
Sets widgets background color.
Qwt3D::RGBA backgroundRGBAColor | ( | ) | const [inline] |
Returns the widgets background color.
void setMeshColor | ( | Qwt3D::RGBA | rgba | ) |
Sets color for data mesh.
Qwt3D::RGBA meshColor | ( | ) | const [inline] |
Returns color for data mesh.
void setMeshLineWidth | ( | double | lw | ) |
Sets line width for data mesh.
double meshLineWidth | ( | ) | const [inline] |
Returns line width for data mesh.
void setDataColor | ( | Color * | col | ) |
Sets new data color object.
assign a new coloring object for the data.
const Color* dataColor | ( | ) | const [inline] |
Returns data color object.
Enrichment * addEnrichment | ( | Qwt3D::Enrichment const & | ) | [virtual] |
Add an Enrichment.
bool degrade | ( | Qwt3D::Enrichment * | ) | [virtual] |
Remove an Enrichment.
Qwt3D::ParallelEpiped hull | ( | ) | const [inline] |
Returns rectangular hull.
void showColorLegend | ( | bool | show | ) |
Show a color legend
void setCoordinateStyle | ( | Qwt3D::COORDSTYLE | st | ) |
Sets style of coordinate system.
Set style of coordinate system
void setPolygonOffset | ( | double | val | ) |
Set Polygon offset. The function affects the OpenGL rendering process. Try different values for surfaces with polygons only and with mesh and polygons
double polygonOffset | ( | ) | const [inline] |
Returns relative value for polygon offset [0..1].
void setTitlePosition | ( | double | rely, | |
double | relx = 0.5 , |
|||
Qwt3D::ANCHOR | anchor = Qwt3D::TopCenter | |||
) |
Set relative caption position (0.5,0.5) means, the anchor point lies in the center of the screen
void setTitleFont | ( | const QString & | family, | |
int | pointSize, | |||
int | weight = QFont::Normal , |
|||
bool | italic = false | |||
) |
Set caption font
void setTitleColor | ( | Qwt3D::RGBA | col | ) | [inline] |
Set caption color.
void setTitle | ( | const QString & | title | ) | [inline] |
Set caption text (one row only).
void 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
default behaviour:
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
mouseMoveEvent() evaluates this function - if overridden, their usefulness becomes somehow limited
bool mouseEnabled | ( | ) | const |
Returns true, if the widget accept mouse input from the user.
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 | |||
) |
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]
bool keyboardEnabled | ( | ) | const |
Returns true, if the widget accept keyboard input from the user
void setKeySpeed | ( | double | rot, | |
double | scale, | |||
double | shift | |||
) |
Sets speed for keyboard driven transformations.
Values < 0 are ignored. Default is (3,5,5)
void keySpeed | ( | double & | rot, | |
double & | scale, | |||
double & | shift | |||
) | const |
Gets speed for keyboard driven transformations.
bool lightingEnabled | ( | ) | const |
Returns true, if Lighting is enabled, false else
void illuminate | ( | unsigned | light = 0 |
) |
Turn light on.
light | light number [0..7] |
void blowout | ( | unsigned | light = 0 |
) |
Turn light off.
light | light number [0..7] |
void setMaterialComponent | ( | GLenum | property, | |
double | r, | |||
double | g, | |||
double | b, | |||
double | a = 1.0 | |||
) |
Sets GL material properties
void 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 setShininess | ( | double | exponent | ) |
Sets GL shininess
void setLightComponent | ( | GLenum | property, | |
double | r, | |||
double | g, | |||
double | b, | |||
double | a = 1.0 , |
|||
unsigned | light = 0 | |||
) |
Sets GL light properties for light 'light'
void 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
double xLightRotation | ( | unsigned | idx = 0 |
) | const [inline] |
Returns Light 'idx' rotation around X axis [-360..360] (some angles are equivalent).
double yLightRotation | ( | unsigned | idx = 0 |
) | const [inline] |
Returns Light 'idx' rotation around Y axis [-360..360] (some angles are equivalent).
double zLightRotation | ( | unsigned | idx = 0 |
) | const [inline] |
Returns Light 'idx' rotation around Z axis [-360..360] (some angles are equivalent).
double xLightShift | ( | unsigned | idx = 0 |
) | const [inline] |
Returns shift of Light 'idx 'along X axis (object coordinates).
double yLightShift | ( | unsigned | idx = 0 |
) | const [inline] |
Returns shift of Light 'idx 'along Y axis (object coordinates).
double zLightShift | ( | unsigned | idx = 0 |
) | const [inline] |
Returns shift of Light 'idx 'along Z axis (object coordinates).
bool hasData | ( | ) | const [inline] |
Returns true if valid data available, false else.
void rotationChanged | ( | double | xAngle, | |
double | yAngle, | |||
double | zAngle | |||
) | [signal] |
Emitted, if the rotation is changed.
void shiftChanged | ( | double | xShift, | |
double | yShift, | |||
double | zShift | |||
) | [signal] |
Emitted, if the shift is changed.
void vieportShiftChanged | ( | double | xShift, | |
double | yShift | |||
) | [signal] |
Emitted, if the viewport shift is changed.
void scaleChanged | ( | double | xScale, | |
double | yScale, | |||
double | zScale | |||
) | [signal] |
Emitted, if the scaling is changed.
void zoomChanged | ( | double | ) | [signal] |
Emitted, if the zoom is changed.
void projectionChanged | ( | bool | ) | [signal] |
Emitted, if the projection mode is changed.
void setRotation | ( | double | xVal, | |
double | yVal, | |||
double | zVal | |||
) | [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 |
void setShift | ( | double | xVal, | |
double | yVal, | |||
double | zVal | |||
) | [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 setViewportShift | ( | double | xVal, | |
double | yVal | |||
) | [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 |
void setScale | ( | double | xVal, | |
double | yVal, | |||
double | zVal | |||
) | [slot] |
Set the scale in object (world) coordinates.
xVal | scaling for X values | |
yVal | scaling for Y values | |
zVal | scaling for Z values |
void setZoom | ( | double | val | ) | [slot] |
Set the (zoom in addition to scale).
val | zoom value (value == 1 indicates no zooming) |
void setOrtho | ( | bool | val | ) | [slot] |
Set up ortogonal or perspective mode and updates widget
void enableMouse | ( | bool | val = true |
) | [slot] |
Enable mouse input.
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 disableMouse | ( | bool | val = true |
) | [slot] |
void enableKeyboard | ( | bool | val = true |
) | [slot] |
Enable keyboard input.
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().
void disableKeyboard | ( | bool | val = true |
) | [slot] |
void enableLighting | ( | bool | val = true |
) | [slot] |
Turn Lighting on or off.
void disableLighting | ( | bool | val = true |
) | [slot] |
Turn Lighting on or off.
bool savePixmap | ( | QString const & | fileName, | |
QString const & | format | |||
) | [virtual, slot] |
Saves content to pixmap format
bool saveVector | ( | QString const & | fileName, | |
QString const & | format, | |||
VectorWriter::TEXTMODE | text, | |||
VectorWriter::SORTMODE | sortmode | |||
) | [virtual, slot] |
Saves content to vector format.
bool save | ( | QString const & | fileName, | |
QString const & | format | |||
) | [virtual, slot] |
Saves content.
Saves content in one of the registered output formats. To modify the behaviour for more complex output handling use IO::outputHandler.
void initializeGL | ( | ) | [protected] |
Set up the OpenGL rendering state
void paintGL | ( | ) | [protected] |
Paint the widgets content.
void resizeGL | ( | int | w, | |
int | h | |||
) | [protected] |
Set up the OpenGL view port
void mousePressEvent | ( | QMouseEvent * | e | ) | [protected] |
Standard mouse button Function. Prepares the call to mouseMoveEvent
void mouseReleaseEvent | ( | QMouseEvent * | e | ) | [protected] |
Standard mouse button Function. Completes the call to mouseMoveEvent
void mouseMoveEvent | ( | QMouseEvent * | e | ) | [protected] |
Standard mouse button Function
void wheelEvent | ( | QWheelEvent * | e | ) | [protected] |
Standard wheel Function - zoom (wheel only) or z-scale (shift+wheel)
void createCoordinateSystem | ( | ) | [protected] |
Create a coordinate system from data