23 #ifndef PLOT2D_VIEWFRAME_H
24 #define PLOT2D_VIEWFRAME_H
28 #ifndef NO_ANALYTICAL_CURVES
38 #include <qwt_symbol.h>
39 #include <qwt_scale_draw.h>
40 #include <qwt_plot_marker.h>
41 #include <qwt_plot_picker.h>
42 #include <qwt_plot_canvas.h>
43 #include <qwt_legend.h>
60 typedef QMultiHash<QwtPlotCurve*, Plot2d_Curve*>
CurveDict;
61 typedef QMultiHash<QwtPlotItem*, Plot2d_Object*>
ObjectDict;
64 #ifndef NO_ANALYTICAL_CURVES
70 enum { NoOpId, FitAreaId, ZoomId, PanId, GlPanId,
DumpId,
86 virtual void DisplayAll();
87 virtual void EraseAll();
91 void Erase(
const Plot2d_Prs*,
const bool =
false );
97 void updateTitles(
const bool =
true );
98 void setTitle(
const QString& );
99 QString getTitle()
const;
118 QwtSymbol::Style markerKind,
121 bool displayLegend=
true);
125 QwtPlotCurve *createSegment(
double *X,
double *Y,
int nbPoint,
126 Qt::PenStyle lineKind,
129 QwtSymbol::Style markerKind,
134 void displayCurves(
const curveList&,
bool =
false );
136 void eraseCurves(
const curveList&,
bool =
false );
140 void processFiltering(
bool =
false);
144 void displayObjects(
const objectList&,
bool =
false );
146 void eraseObjects(
const objectList&,
bool =
false );
147 void eraseBasicObject(
QwtPlotItem*,
bool =
false );
156 void fitArea(
const QRect& );
157 void fitData(
const int,
const double,
const double,
158 const double,
const double,
159 const double = 0,
const double = 0 );
161 void getFitRanges(
double&,
double&,
double&,
double&,
164 void getFitRangeByCurves(
double&,
double&,
double&,
double&,
167 void getFitRangeByMarkers(
double&,
double&,
double&,
double&,
170 #ifndef NO_ANALYTICAL_CURVES
175 void deselectAnalyticalCurves();
181 void deselectObjects();
185 void setCurveType(
int,
bool =
true );
186 int getCurveType()
const;
189 void showLegend(
bool,
bool =
true );
190 void setLegendPos(
int );
191 int getLegendPos()
const;
192 void setLegendSymbolType(
int );
193 int getLegendSymbolType()
const;
194 void setLegendFont(
const QFont& );
195 QFont getLegendFont()
const;
196 void setLegendFontColor(
const QColor& );
197 QColor getLegendFontColor()
const;
198 void setSelectedLegendFontColor(
const QColor& );
199 QColor getSelectedLegendFontColor()
const;
200 void setMarkerSize(
const int,
bool =
true );
201 int getMarkerSize()
const;
202 virtual void setBackgroundColor(
const QColor& );
203 QColor backgroundColor()
const;
204 virtual void setSelectionColor(
const QColor& );
205 QColor selectionColor()
const;
206 void setXGrid(
bool,
const int,
bool,
const int,
bool =
true );
207 void setYGrid(
bool,
const int,
bool,
const int,
208 bool,
const int,
bool,
const int,
bool =
true );
209 void setTitle(
bool,
const QString&,
ObjectType,
bool =
true );
212 void setFont(
const QFont&,
ObjectType,
bool =
true );
213 void setHorScaleMode(
const int,
bool =
true );
214 int getHorScaleMode()
const;
215 void setVerScaleMode(
const int,
bool =
true );
216 int getVerScaleMode()
const;
217 void setNormLMaxMode(
bool,
bool =
true);
218 bool getNormLMaxMode()
const;
219 void setNormLMinMode(
bool,
bool =
true);
220 bool getNormLMinMode()
const;
221 void setNormRMaxMode(
bool,
bool =
true);
222 bool getNormRMaxMode()
const;
223 void setNormRMinMode(
bool,
bool =
true);
224 bool getNormRMinMode()
const;
227 bool isModeHorLinear();
228 bool isModeVerLinear();
229 bool isNormLMaxMode();
230 bool isNormLMinMode();
231 bool isNormRMaxMode();
232 bool isNormRMinMode();
234 bool isLegendShow()
const;
239 bool isXLogEnabled()
const;
240 bool isYLogEnabled()
const;
243 virtual bool print(
const QString&,
const QString& )
const;
244 void printPlot( QPainter*,
const QRectF& )
const;
246 QString getVisualParameters();
247 void setVisualParameters(
const QString& );
249 void incrementalPan (
const int,
const int );
250 void incrementalZoom(
const int,
const int );
252 QwtPlotCanvas* getPlotCanvas()
const;
253 Plot2d_Curve* getClosestCurve( QPoint,
double&,
int& )
const;
262 int testOperation(
const QMouseEvent& );
263 virtual void readPreferences();
264 virtual void writePreferences();
265 QString getInfo(
const QPoint& );
266 virtual void wheelEvent( QWheelEvent* );
270 QString getXmlVisualParameters();
271 bool setXmlVisualParameters(
const QString&);
277 void onViewFitArea();
278 void onViewGlobalPan();
280 #ifndef NO_ANALYTICAL_CURVES
281 void onAnalyticalCurve();
284 void onChangeBackground();
293 virtual void customEvent(
QEvent* );
294 void plotMousePressed(
const QMouseEvent& );
295 bool plotMouseMoved(
const QMouseEvent& );
296 void plotMouseReleased(
const QMouseEvent& );
322 QString
myTitle, myXTitle, myYTitle, myY2Title;
333 #ifndef NO_ANALYTICAL_CURVES
378 QwtPlotGrid*
grid()
const;
390 double XLeftmargin,
double XRightMargin,
391 const QList< QPair< QString, QMap<double,QString> > > & devicesPosLabelTicks);
413 virtual QwtText
label(
double value )
const;
427 virtual QwtText
label(
double value )
const;
445 virtual void draw( QPainter * painter,
const QPalette & palette)
const;
447 virtual QwtText
label(
double value)
const;
453 void setInterval(
double lowerBound,
double upperBound);
457 double extent(
const QFont &font )
const;
461 void drawLabel( QPainter* painter,
double value)
const;
463 void drawTick( QPainter* painter,
double value,
int len)
const;
495 RubberBand rubberBand,
496 DisplayMode trackerMode,
497 QwtPlotCanvas *canvas);
501 QwtPlotCanvas *canvas);
510 virtual QwtText
trackerText(
const QPoint & pos )
const;
#define PLOT2D_EXPORT
Definition: Plot2d.h:36
QList< Plot2d_AnalyticalCurve * > AnalyticalCurveList
Definition: Plot2d_AnalyticalCurve.h:144
QList< Plot2d_Curve * > curveList
Definition: Plot2d_Curve.h:82
QList< Plot2d_Object * > objectList
Definition: Plot2d_Object.h:134
QMultiHash< QwtPlotItem *, Plot2d_Object * > ObjectDict
Definition: Plot2d_ViewFrame.h:61
QMultiHash< QwtPlotCurve *, Plot2d_Curve * > CurveDict
Definition: Plot2d_ViewFrame.h:58
ObjectType
Type of titles in Plot3d View.
Definition: SalomePyQt.h:153
@ YAxis
Definition: SalomePyQt.h:159
@ YTitle
Definition: SalomePyQt.h:156
@ Y2Title
Definition: SalomePyQt.h:157
@ XTitle
Definition: SalomePyQt.h:155
@ Y2Axis
Definition: SalomePyQt.h:160
@ XAxis
Definition: SalomePyQt.h:158
Axis
Definition: SalomePyQt.h:172
Definition: Plot2d_AnalyticalCurve.h:37
Definition: Plot2d_ViewFrame.h:433
virtual ~Plot2d_AxisScaleDraw()
Definition: Plot2d_ViewFrame.cxx:4251
void setLabelTick(double value, QString label, bool isDevice=false)
Definition: Plot2d_ViewFrame.cxx:4326
static const int DEVICE_BY
Definition: Plot2d_ViewFrame.h:437
double extent(const QFont &font) const
Definition: Plot2d_ViewFrame.cxx:4309
Plot2d_Plot2d * myPlot
Definition: Plot2d_ViewFrame.h:477
static const QString DEVICE_FONT
Definition: Plot2d_ViewFrame.h:435
int myNumTicksDrawingCall
Definition: Plot2d_ViewFrame.h:467
Plot2d_AxisScaleDraw(Plot2d_Plot2d *plot)
Definition: Plot2d_ViewFrame.cxx:4236
void setTicks(const QList< double > aTicks)
Definition: Plot2d_ViewFrame.cxx:4344
double myLowerBound
Definition: Plot2d_ViewFrame.h:479
QMap< double, QString > myLabelDevice
Definition: Plot2d_ViewFrame.h:475
virtual QwtText label(double value) const
Definition: Plot2d_ViewFrame.cxx:4315
bool myActivTicksDrawing
Definition: Plot2d_ViewFrame.h:466
void unactivTicksDrawing(int numcall)
Definition: Plot2d_ViewFrame.cxx:4258
QList< double > myTicks
Definition: Plot2d_ViewFrame.h:472
double myUpperBound
Definition: Plot2d_ViewFrame.h:480
void drawTick(QPainter *painter, double value, int len) const
Definition: Plot2d_ViewFrame.cxx:4435
void setInterval(double lowerBound, double upperBound)
Definition: Plot2d_ViewFrame.cxx:4353
QMap< double, QString > myLabelX
Definition: Plot2d_ViewFrame.h:470
virtual void draw(QPainter *painter, const QPalette &palette) const
Definition: Plot2d_ViewFrame.cxx:4270
void drawLabel(QPainter *painter, double value) const
Definition: Plot2d_ViewFrame.cxx:4396
static const int DEVICE_FONT_SIZE
Definition: Plot2d_ViewFrame.h:436
void applyTicks()
Definition: Plot2d_ViewFrame.cxx:4363
Definition: Plot2d_AnalyticalCurve.h:147
virtual void updateAnalyticalCurves()=0
virtual AnalyticalCurveList getAnalyticalCurves() const =0
virtual void removeAnalyticalCurve(Plot2d_AnalyticalCurve *)=0
virtual void updateAnalyticalCurve(Plot2d_AnalyticalCurve *, bool=false)=0
virtual void addAnalyticalCurve(Plot2d_AnalyticalCurve *)=0
Definition: Plot2d_Curve.h:34
Definition: Plot2d_NormalizeAlgorithm.h:33
Definition: Plot2d_Object.h:36
Definition: Plot2d_ViewFrame.h:351
void replot()
Definition: Plot2d_ViewFrame.cxx:3063
Plot2d_QwtPlotPicker * myPicker
Definition: Plot2d_ViewFrame.h:401
QwtPlotMarker * createMarkerAndTooltip(QwtSymbol *symbol, double X, double Y, QString &tooltip, Plot2d_QwtPlotPicker *picker)
Definition: Plot2d_ViewFrame.cxx:3145
Plot2d_Plot2d(QWidget *)
Definition: Plot2d_ViewFrame.cxx:3001
void displayXTicksAndLabels(double XLeftmargin, double XRightMargin, const QList< QPair< QString, QMap< double, QString > > > &devicesPosLabelTicks)
Definition: Plot2d_ViewFrame.cxx:3256
void applyTicks()
Definition: Plot2d_ViewFrame.cxx:3226
QwtPlotZoomer * zoomer() const
Definition: Plot2d_ViewFrame.cxx:3181
QwtPlotGrid * myGrid
Definition: Plot2d_ViewFrame.h:396
void createAxisScaleDraw()
Definition: Plot2d_ViewFrame.cxx:3218
QwtAbstractLegend * getLegend()
Definition: Plot2d_ViewFrame.cxx:3092
virtual void updateYAxisIdentifiers()
Definition: Plot2d_ViewFrame.cxx:3189
QList< QColor > myColors
Definition: Plot2d_ViewFrame.h:397
Plot2d_AxisScaleDraw * getScaleDraw()
Definition: Plot2d_ViewFrame.h:367
QList< QwtPlotMarker * > mySeparationLineList
Definition: Plot2d_ViewFrame.h:404
QList< QwtPlotMarker * > getSeparationLineList()
Definition: Plot2d_ViewFrame.h:368
void clearSeparationLineList()
Definition: Plot2d_ViewFrame.cxx:3413
int getLegendSymbolType()
Definition: Plot2d_ViewFrame.cxx:3427
void setPickerMousePattern(int, int=Qt::NoButton)
Definition: Plot2d_ViewFrame.cxx:3128
int myLegendSymbolType
Definition: Plot2d_ViewFrame.h:405
void createSeparationLine(double Xpos)
Definition: Plot2d_ViewFrame.cxx:3401
QSize minimumSizeHint() const
Definition: Plot2d_ViewFrame.cxx:3112
QSize sizeHint() const
Definition: Plot2d_ViewFrame.cxx:3104
void setLogScale(int, bool)
Definition: Plot2d_ViewFrame.cxx:3052
Plot2d_QwtPlotPicker * getPicker()
Definition: Plot2d_ViewFrame.h:366
void unactivAxisScaleDraw(int numcall)
Definition: Plot2d_ViewFrame.cxx:3236
virtual ~Plot2d_Plot2d()
Definition: Plot2d_ViewFrame.cxx:3045
QwtPlotGrid * grid() const
Definition: Plot2d_ViewFrame.cxx:3176
Plot2d_AxisScaleDraw * myScaleDraw
Definition: Plot2d_ViewFrame.h:399
void setLegendSymbolType(const int)
Definition: Plot2d_ViewFrame.cxx:3420
QwtPlotZoomer * myPlotZoomer
Definition: Plot2d_ViewFrame.h:398
void setPicker(Plot2d_QwtPlotPicker *picker)
Definition: Plot2d_ViewFrame.cxx:3137
void defaultPicker()
Definition: Plot2d_ViewFrame.cxx:3119
Definition: Plot2d_Prs.h:30
Definition: Plot2d_ViewFrame.h:489
virtual ~Plot2d_QwtPlotPicker()
Definition: Plot2d_ViewFrame.cxx:4473
QMap< QwtPlotMarker *, QwtText > pMarkersToolTip
Definition: Plot2d_ViewFrame.h:506
virtual QwtText trackerText(const QPoint &pos) const
Definition: Plot2d_ViewFrame.cxx:4480
QList< QwtPlotMarker * > pMarkers
Definition: Plot2d_ViewFrame.h:505
Plot2d_QwtPlotPicker(int xAxis, int yAxis, RubberBand rubberBand, DisplayMode trackerMode, QwtPlotCanvas *canvas)
Definition: Plot2d_ViewFrame.cxx:4451
static const double BOUND_HV_SIZE
Definition: Plot2d_ViewFrame.h:491
Definition: Plot2d_ViewFrame.h:409
int precision() const
Definition: Plot2d_ViewFrame.h:415
virtual QwtText label(double value) const
Definition: Plot2d_ViewFrame.cxx:4198
int myPrecision
Definition: Plot2d_ViewFrame.h:419
Plot2d_ScaleDraw(char f='g', int prec=6)
Definition: Plot2d_ViewFrame.cxx:4190
char myFormat
Definition: Plot2d_ViewFrame.h:418
Definition: Plot2d_ViewFrame.h:67
int myLegendPos
Definition: Plot2d_ViewFrame.h:314
int myMarkerSize
Definition: Plot2d_ViewFrame.h:319
Plot2d_NormalizeAlgorithm * myRNormAlgo
Definition: Plot2d_ViewFrame.h:337
ObjectType
Definition: Plot2d_ViewFrame.h:81
@ MainTitle
Definition: Plot2d_ViewFrame.h:81
Plot2d_Plot2d * getPlot() const
Definition: Plot2d_ViewFrame.h:258
double myXDistance
Definition: Plot2d_ViewFrame.h:330
Plot2d_Plot2d * myPlot
Definition: Plot2d_ViewFrame.h:308
void contextMenuRequested(QContextMenuEvent *)
QColor mySelectedLegendFontColor
Definition: Plot2d_ViewFrame.h:318
Plot2d_NormalizeAlgorithm * myLNormAlgo
Definition: Plot2d_ViewFrame.h:336
int myLegendSymbolType
Definition: Plot2d_ViewFrame.h:315
bool myXGridMinorEnabled
Definition: Plot2d_ViewFrame.h:325
void clicked(const QVariant &, int)
bool myXGridMajorEnabled
Definition: Plot2d_ViewFrame.h:324
QColor myBackground
Definition: Plot2d_ViewFrame.h:320
QList< Plot2d_Curve * > myPlot2dCurveList
Definition: Plot2d_ViewFrame.h:347
@ DumpId
Definition: Plot2d_ViewFrame.h:70
@ ModeXLinearId
Definition: Plot2d_ViewFrame.h:71
@ CurveLinesId
Definition: Plot2d_ViewFrame.h:72
void vpNormRModeChanged()
QList< QwtPlotCurve * > myIntermittentSegmentList
Definition: Plot2d_ViewFrame.h:344
int myXGridMaxMajor
Definition: Plot2d_ViewFrame.h:326
bool mySecondY
Definition: Plot2d_ViewFrame.h:331
QColor myLegendColor
Definition: Plot2d_ViewFrame.h:317
bool myShowLegend
Definition: Plot2d_ViewFrame.h:313
bool myIsDefTitle
Definition: Plot2d_ViewFrame.h:338
QColor mySelectionColor
Definition: Plot2d_ViewFrame.h:321
ObjectDict myObjects
Definition: Plot2d_ViewFrame.h:332
QPoint myPnt
Definition: Plot2d_ViewFrame.h:310
QList< QwtPlotItem * > myQwtPlotCurveList
Definition: Plot2d_ViewFrame.h:341
AnalyticalCurveList myAnalyticalCurves
Definition: Plot2d_ViewFrame.h:334
void vpNormLModeChanged()
int myOperation
Definition: Plot2d_ViewFrame.h:309
int myXMode
Definition: Plot2d_ViewFrame.h:328
QFont myLegendFont
Definition: Plot2d_ViewFrame.h:316
QString myTitle
Definition: Plot2d_ViewFrame.h:322
bool myNormLMax
Definition: Plot2d_ViewFrame.h:329
int myXGridMaxMinor
Definition: Plot2d_ViewFrame.h:327
bool myTitleEnabled
Definition: Plot2d_ViewFrame.h:323
int myCurveType
Definition: Plot2d_ViewFrame.h:312
Definition: Plot2d_ViewFrame.h:423
Plot2d_YScaleDraw()
Definition: Plot2d_ViewFrame.cxx:4217
virtual QwtText label(double value) const
Definition: Plot2d_ViewFrame.cxx:4222
For more information see QT documentation.
Definition: SUIT_Application.h:42
LineType
Definition: Plot2d.h:86