1 /*=========================================================================
2 
3   Program:   Visualization Toolkit
4   Module:    vtkPiecewiseFunctionItem.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 
16 #ifndef vtkPiecewiseFunctionItem_h
17 #define vtkPiecewiseFunctionItem_h
18 
19 #include "vtkChartsCoreModule.h" // For export macro
20 #include "vtkScalarsToColorsItem.h"
21 
22 class vtkPiecewiseFunction;
23 class vtkImageData;
24 
25 /// vtkPiecewiseFunctionItem internall uses vtkPlot::Color, white by default
26 class VTKCHARTSCORE_EXPORT vtkPiecewiseFunctionItem: public vtkScalarsToColorsItem
27 {
28 public:
29   static vtkPiecewiseFunctionItem* New();
30   vtkTypeMacro(vtkPiecewiseFunctionItem, vtkScalarsToColorsItem);
31   virtual void PrintSelf(ostream &os, vtkIndent indent);
32 
33   void SetPiecewiseFunction(vtkPiecewiseFunction* t);
34   vtkGetObjectMacro(PiecewiseFunction, vtkPiecewiseFunction);
35 
36 protected:
37   vtkPiecewiseFunctionItem();
38   virtual ~vtkPiecewiseFunctionItem();
39 
40   // Description:
41   // Reimplemented to return the range of the piecewise function
42   virtual void ComputeBounds(double bounds[4]);
43 
44   // Description
45   // Compute the texture from the PiecewiseFunction
46   virtual void ComputeTexture();
47 
48   vtkPiecewiseFunction* PiecewiseFunction;
49 
50 private:
51   vtkPiecewiseFunctionItem(const vtkPiecewiseFunctionItem &); // Not implemented.
52   void operator=(const vtkPiecewiseFunctionItem &); // Not implemented.
53 };
54 
55 #endif
56