VTK
vtkSurfaceLICPainter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkSurfaceLICPainter.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 =========================================================================*/
27 #ifndef __vtkSurfaceLICPainter_h
28 #define __vtkSurfaceLICPainter_h
29 
30 #include "vtkRenderingHybridOpenGLModule.h" // For export macro
31 #include "vtkPainter.h"
32 
33 class vtkRenderWindow;
34 
35 class VTKRENDERINGHYBRIDOPENGL_EXPORT vtkSurfaceLICPainter : public vtkPainter
36 {
37 public:
38  static vtkSurfaceLICPainter* New();
40  void PrintSelf(ostream& os, vtkIndent indent);
41 
45  virtual void ReleaseGraphicsResources(vtkWindow *);
46 
51  virtual vtkDataObject* GetOutput();
52 
54 
55  vtkSetMacro(Enable, int);
56  vtkGetMacro(Enable, int);
57  vtkBooleanMacro(Enable, int);
59 
61 
65  void SetInputArrayToProcess(int fieldAssociation, const char *name);
66  void SetInputArrayToProcess(int fieldAssociation, int fieldAttributeType);
68 
70 
76  vtkSetMacro( EnhancedLIC, int );
77  vtkGetMacro( EnhancedLIC, int );
78  vtkBooleanMacro( EnhancedLIC, int );
80 
82 
83  vtkSetMacro(NumberOfSteps, int);
84  vtkGetMacro(NumberOfSteps, int);
86 
88 
89  vtkSetMacro(StepSize, double);
90  vtkGetMacro(StepSize, double);
92 
94 
97  vtkSetClampMacro(LICIntensity, double, 0.0, 1.0);
98  vtkGetMacro(LICIntensity, double);
100 
102 
103  int GetRenderingPreparationSuccess()
104  { return this->RenderingPreparationSuccess; }
106 
108  int GetLICSuccess() { return this->LICSuccess; }
109 
111 
113  static bool IsSupported(vtkRenderWindow*);
114 //BTX
115 protected:
119 
121  void GetBounds(vtkDataObject* data, double bounds[6]);
122 
124  virtual void ReportReferences(vtkGarbageCollector *collector);
125 
130  virtual void PrepareForRendering(vtkRenderer*, vtkActor*);
131 
133 
138  virtual void RenderInternal(vtkRenderer* renderer, vtkActor* actor,
139  unsigned long typeflags, bool forceCompileOnly);
141 
143 
144  bool PrepareOutput();
145  bool FixTCoords(vtkDataSet* ds);
147 
149  bool CanRenderLIC(vtkRenderer*, vtkActor*);
150 
151  // Unit is a pixel length.
153  double StepSize;
154 
155  int Enable;
159  double LICIntensity;
160 
161 private:
162  vtkSurfaceLICPainter(const vtkSurfaceLICPainter&); // Not implemented.
163  void operator=(const vtkSurfaceLICPainter&); // Not implemented.
164 
165  vtkDataObject* Output;
166  class vtkInternals;
167  vtkInternals* Internals;
168 //ETX
169 };
170 
171 #endif