VTK
vtkCompositeControlPointsItem.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCompositeControlPointsItem.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 
33 #ifndef vtkCompositeControlPointsItem_h
34 #define vtkCompositeControlPointsItem_h
35 
36 #include "vtkChartsCoreModule.h" // For export macro
38 
41 
42 class VTKCHARTSCORE_EXPORT vtkCompositeControlPointsItem:
44 {
45 public:
47  void PrintSelf(ostream &os, vtkIndent indent) override;
48 
53 
57  virtual void SetColorTransferFunction(vtkColorTransferFunction* function);
58 
60 
63  void SetOpacityFunction(vtkPiecewiseFunction* opacity);
64  vtkGetObjectMacro(OpacityFunction, vtkPiecewiseFunction);
66 
68  ColorPointsFunction = 1,
69  OpacityPointsFunction = 2,
70  ColorAndOpacityPointsFunction = 3
71  };
73 
85  vtkSetMacro(PointsFunction, int);
86  vtkGetMacro(PointsFunction, int);
88 
94  vtkIdType AddPoint(double* newPos) override;
95 
101  vtkIdType RemovePoint(double* pos) override;
102 
104 
111  vtkSetMacro(UseOpacityPointHandles, bool);
112  vtkGetMacro(UseOpacityPointHandles, bool);
114 
116 
119  bool MouseMoveEvent(const vtkContextMouseEvent &mouse) override;
120  bool MouseDoubleClickEvent(const vtkContextMouseEvent &mouse) override;
121  bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse) override;
123 
124 protected:
126  ~vtkCompositeControlPointsItem() override;
127 
128  void emitEvent(unsigned long event, void* params) override;
129 
131 
132  vtkIdType GetNumberOfPoints()const override;
133  void DrawPoint(vtkContext2D* painter, vtkIdType index) override;
134  void GetControlPoint(vtkIdType index, double* pos)const override;
135  void SetControlPoint(vtkIdType index, double *point) override;
136  void EditPoint(float tX, float tY) override;
137  virtual void EditPointCurve(vtkIdType idx);
138 
139  void MergeTransferFunctions();
140  void SilentMergeTransferFunctions();
141 
146 
147 private:
149  void operator=(const vtkCompositeControlPointsItem &) = delete;
150 };
151 
152 #endif
static vtkColorTransferControlPointsItem * New()
Creates a piecewise control points object.
bool MouseButtonPressEvent(const vtkContextMouseEvent &mouse) override
Mouse button down event.
Defines a 1D piecewise function.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:302
void GetControlPoint(vtkIdType index, double *point) const override
Returns the x and y coordinates as well as the midpoint and sharpness of the control point correspond...
int vtkIdType
Definition: vtkType.h:347
vtkIdType GetNumberOfPoints() const override
Return the number of points in the color transfer function.
vtkMTimeType GetControlPointsMTime() override
Must be reimplemented by subclasses to calculate the points to draw.
Class for drawing 2D primitives to a graphical context.
Definition: vtkContext2D.h:58
a vtkContextItem that draws handles around a point of a piecewise function
bool MouseDoubleClickEvent(const vtkContextMouseEvent &mouse) override
Mouse button down event.
data structure to represent mouse events.
a simple class to control print indentation
Definition: vtkIndent.h:39
Control points for vtkCompositeFunction.
vtkIdType AddPoint(double *newPos) override
Add a point to the function.
void EditPoint(float tX, float tY) override
vtkIdType RemovePoint(double *pos) override
Remove a point of the function.
vtkPiecewisePointHandleItem * OpacityPointHandle
Control points for vtkColorTransferFunction.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetColorTransferFunction(vtkColorTransferFunction *function)
Set the piecewise function to draw its points.
Defines a transfer function for mapping a property to an RGB color value.
bool MouseMoveEvent(const vtkContextMouseEvent &mouse) override
Mouse move event.
void SetControlPoint(vtkIdType index, double *point) override
Sets the x and y coordinates as well as the midpoint and sharpness of the control point corresponding...
void emitEvent(unsigned long event, void *params) override
void DrawPoint(vtkContext2D *painter, vtkIdType index) override
Internal function that paints a collection of points and optionally excludes some.