pqColorOpacityEditorWidget.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ParaView
4  Module: $RCSfile$
5 
6  Copyright (c) 2005,2006 Sandia Corporation, Kitware Inc.
7  All rights reserved.
8 
9  ParaView is a free software; you can redistribute it and/or modify it
10  under the terms of the ParaView license version 1.2.
11 
12  See License_v1.2.txt for the full ParaView license.
13  A copy of this license can be obtained by contacting
14  Kitware Inc.
15  28 Corporate Drive
16  Clifton Park, NY 12065
17  USA
18 
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR
23 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 ========================================================================*/
32 #ifndef pqColorOpacityEditorWidget_h
33 #define pqColorOpacityEditorWidget_h
34 
36 #include "pqPropertyWidget.h"
37 #include "pqSMProxy.h"
38 #include <QList>
39 #include <QVariant>
40 
42 class vtkSMPropertyGroup;
43 class pqColorMapModel;
44 
73 {
74  Q_OBJECT
75  Q_PROPERTY(QList<QVariant> xrgbPoints READ xrgbPoints WRITE setXrgbPoints)
76  Q_PROPERTY(QList<QVariant> xvmsPoints READ xvmsPoints WRITE setXvmsPoints)
77  Q_PROPERTY(bool showDataHistogram READ showDataHistogram WRITE setShowDataHistogram)
78  Q_PROPERTY(bool automaticDataHistogramComputation READ automaticDataHistogramComputation WRITE
79  setAutomaticDataHistogramComputation)
80  Q_PROPERTY(
81  int dataHistogramNumberOfBins READ dataHistogramNumberOfBins WRITE setDataHistogramNumberOfBins)
82  Q_PROPERTY(bool useLogScale READ useLogScale WRITE setUseLogScale)
83  Q_PROPERTY(bool useLogScaleOpacity READ useLogScaleOpacity WRITE setUseLogScaleOpacity)
84  Q_PROPERTY(bool useOpacityControlPointsFreehandDrawing READ useOpacityControlPointsFreehandDrawing
85  WRITE setUseOpacityControlPointsFreehandDrawing)
86  Q_PROPERTY(pqSMProxy scalarOpacityFunctionProxy READ scalarOpacityFunctionProxy WRITE
87  setScalarOpacityFunctionProxy)
89 
90 public:
91  pqColorOpacityEditorWidget(vtkSMProxy* proxy, vtkSMPropertyGroup* smgroup, QWidget* parent = 0);
92  ~pqColorOpacityEditorWidget() override;
93 
98  QList<QVariant> xrgbPoints() const;
99 
104  QList<QVariant> xvmsPoints() const;
105 
109  bool useLogScale() const;
110 
114  bool useLogScaleOpacity() const;
115 
119  bool useOpacityControlPointsFreehandDrawing() const;
120 
124  bool showDataHistogram() const;
125 
129  bool automaticDataHistogramComputation() const;
130 
134  int dataHistogramNumberOfBins() const;
135 
140  pqSMProxy scalarOpacityFunctionProxy() const;
141 
142 public Q_SLOTS:
146  void setXvmsPoints(const QList<QVariant>&);
147 
151  void setXrgbPoints(const QList<QVariant>&);
152 
156  void setUseLogScale(bool value);
157 
161  void setUseLogScaleOpacity(bool value);
162 
166  void setUseOpacityControlPointsFreehandDrawing(bool value);
167 
171  void setShowDataHistogram(bool value);
172 
176  void setAutomaticDataHistogramComputation(bool value);
177 
181  void setDataHistogramNumberOfBins(int value);
182 
186  void setScalarOpacityFunctionProxy(pqSMProxy sofProxy);
187 
191  void resetRangeToData();
192 
196  void resetRangeToCustom();
197 
202  void resetRangeToDataOverTime();
203 
208  void resetRangeToVisibleData();
209 
213  void invertTransferFunctions();
214 
218  void choosePreset(const char* presetName = NULL);
219 
223  void saveAsPreset();
224 
225  void onRangeHandlesRangeChanged(double rangeMin, double rangeMax);
226 
227 Q_SIGNALS:
231  void xrgbPointsChanged();
232 
236  void xvmsPointsChanged();
237 
241  void useLogScaleChanged();
242 
246  void useLogScaleOpacityChanged();
247 
251  void useOpacityControlPointsFreehandDrawingChanged();
252 
256  void showDataHistogramChanged();
257 
261  void automaticDataHistogramComputationChanged();
262 
266  void dataHistogramNumberOfBinsEdited();
267 
273  void scalarOpacityFunctionProxyChanged();
274 
275 protected Q_SLOTS:
280  void opacityCurrentChanged(vtkIdType);
281  void colorCurrentChanged(vtkIdType);
282 
286  void updatePanel();
287 
291  void updateCurrentData();
292 
296  void currentDataEdited();
297 
301  void presetApplied();
302 
307  void updateIndexedLookupState();
308 
312  void multiComponentsMappingChanged(vtkObject*, unsigned long, void*, void*);
313 
318  void useLogScaleClicked(bool);
319 
324  void useLogScaleOpacityClicked(bool);
325 
330  void useOpacityControlPointsFreehandDrawingClicked(bool);
331 
338  void showDataHistogramClicked(bool show = true);
339 
344  void automaticDataHistogramComputationClicked(bool val);
345 
350  void dataHistogramNumberOfBinsEdited(int val);
351 
355  void updateDataHistogramEnableState();
356 
363  void representationOrViewChanged();
364 
373  void setHistogramOutdated();
374 
380  void realShowDataHistogram();
381 
382 protected:
386  void prepareRangeForLogScaling();
387 
391  void initializeOpacityEditor(vtkPiecewiseFunction* pwf);
392 
393 private:
394  Q_DISABLE_COPY(pqColorOpacityEditorWidget)
395 
396  class pqInternals;
397  pqInternals* Internals;
398 };
399 
400 #endif
pqPropertyWidget represents a widget created for each property of a proxy on the pqPropertiesPanel (f...
pqColorOpacityEditorWidget provides an in-line editor widget for editing the color and opacity transf...
#define PQAPPLICATIONCOMPONENTS_EXPORT
int vtkIdType
proxy for a VTK object(s) on a server
Definition: vtkSMProxy.h:152
#define const
Definition: zconf.h:235