libkpl  5.0
A Library for Graphical Presentation of Data Sets and Functions
fun3ditem.h
1/***************************************************************************
2 fun3ditem.h - description
3 -------------------
4 begin : Tue Dec 25 2001
5 copyright : (C) 2017 by Werner Stille
6 email : kpl@werner-stille.de
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef FUN3DITEM_H
19#define FUN3DITEM_H
20
21#include "funitem.h"
22#include "threeditem.h"
23
28class Q_DECL_EXPORT Fun3DItem : public ThreeDItem
29{
30public:
32 enum {
33 Type = UserType + Function3D
37 };
93 Fun3DItem(double x0 = 4, double y0 = 3, double width = 15,
94 double height = 10, unsigned colorFrame = 0,
95 unsigned colorGrid = 0, unsigned colorData = 0, bool logX = false,
96 bool logY = false, bool logZ = false,
97 GridMode gridMode = AxesWithLabels, Mode3D mode3D = Grid,
98 double xMax = 15, double yMax = 10, double zMax = 15,
99 const QString& textX = "", const QString& textY = "",
100 const QString& textZ = "", const QString& header = "",
101 double relSize = 1, int numDigX = -1, int numDigY = -1,
102 int numDigZ = -1, int minTicX = 5, int minTicY = 2,
103 int minTicZ = 5, int expX = 0, int expY = 0, int expZ = 0,
104 double xMin = 0, double yMin = 0, double zMin = 0, double xTic = 5,
105 double yTic = 2, double zTic = 5, double deltaX = 0,
106 double deltaZ = 0,
107 double phi = 20, double theta = -20, double bx = 7.5,
108 double by = 7.5, double bz = 7.5, double xr = 7.5, double yr = 4,
109 double fx = 1, double fy = 1, double fz = 1,
110 const QString& name = "", const QUrl& url = QUrl(),
111 bool showFrame = true, bool collapsed = false,
112 bool visible = true);
128 Fun3DItem(const KConfigGroup* plo, const QUrl& urlPlo, double x0 = 4,
129 double y0 = 3, double width = 15, double height = 10,
130 unsigned colorFrame = 0, unsigned colorGrid = 0,
131 unsigned colorData = 0, GridMode gridMode = AxesWithLabels);
138 int calcTable() const;
146 void exportTable(QTextStream& stream, char separator, char format,
147 int precision) const;
148 double (*funcY)(double, double, const double*);
150 inline const QLibrary* libY() const { return m_libY; };
152 inline QString nameY() const { return m_nameY; };
154 virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option,
155 QWidget* widget = 0);
157 inline double* parY() { return m_parY; };
164 bool setFuncY(const QUrl& url, const QString& name);
170 inline void setPar(int i, double value) { m_parY[i] = value; };
172 virtual int type() const { return Type; };
174 void update();
176 inline const QUrl& urlY() const { return m_urlY; };
185 void writePlo(KConfigGroup* plo, const QUrl& urlPlo, bool absolute,
186 char format, int precision) const;
187
188protected:
190 void unload();
191 mutable double (*funcYo)(double, double, const double*);
192 double m_parY[FunItem::NumParMax];
193 mutable double parYo[FunItem::NumParMax];
194 QString m_nameY;
195 QUrl m_urlY;
196 QLibrary* m_libY;
197};
198
199#endif
@ Type
Specific QGraphicsItem type number of FrameItem for function type().
Definition: frameitem.h:46
GridMode
Grid mode.
Definition: frameitem.h:37
3D function item class.
Definition: fun3ditem.h:29
void exportTable(QTextStream &stream, char separator, char format, int precision) const
Exports function value table to file.
virtual int type() const
Returns specific QGraphicsItem type number.
Definition: fun3ditem.h:172
Fun3DItem(double x0=4, double y0=3, double width=15, double height=10, unsigned colorFrame=0, unsigned colorGrid=0, unsigned colorData=0, bool logX=false, bool logY=false, bool logZ=false, GridMode gridMode=AxesWithLabels, Mode3D mode3D=Grid, double xMax=15, double yMax=10, double zMax=15, const QString &textX="", const QString &textY="", const QString &textZ="", const QString &header="", double relSize=1, int numDigX=-1, int numDigY=-1, int numDigZ=-1, int minTicX=5, int minTicY=2, int minTicZ=5, int expX=0, int expY=0, int expZ=0, double xMin=0, double yMin=0, double zMin=0, double xTic=5, double yTic=2, double zTic=5, double deltaX=0, double deltaZ=0, double phi=20, double theta=-20, double bx=7.5, double by=7.5, double bz=7.5, double xr=7.5, double yr=4, double fx=1, double fy=1, double fz=1, const QString &name="", const QUrl &url=QUrl(), bool showFrame=true, bool collapsed=false, bool visible=true)
Constructor.
const QUrl & urlY() const
Returns URL of y function library.
Definition: fun3ditem.h:176
void setPar(int i, double value)
Sets parameter.
Definition: fun3ditem.h:170
Fun3DItem(const Fun3DItem &f)
Copy constructor.
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0)
Paints item.
double * parY()
Returns y function parameter array pointer.
Definition: fun3ditem.h:157
void writePlo(KConfigGroup *plo, const QUrl &urlPlo, bool absolute, char format, int precision) const
Writes into plot file.
bool setFuncY(const QUrl &url, const QString &name)
Resolves y function address.
void unload()
Unloads y function library.
QString nameY() const
Returns y function name.
Definition: fun3ditem.h:152
~Fun3DItem()
Destructor.
const QLibrary * libY() const
Returns pointer to library for y function.
Definition: fun3ditem.h:150
void update()
Applies changes and forces redrawing.
int calcTable() const
Calculates function value table.
Fun3DItem(const KConfigGroup *plo, const QUrl &urlPlo, double x0=4, double y0=3, double width=15, double height=10, unsigned colorFrame=0, unsigned colorGrid=0, unsigned colorData=0, GridMode gridMode=AxesWithLabels)
Constructor.
static const int NumParMax
Dimension of parameter arrays.
Definition: funitem.h:43
3D item class.
Definition: threeditem.h:31
Mode3D
3D mode.
Definition: threeditem.h:34