VTK
dox/Rendering/vtkSurfaceLICPainter.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkSurfaceLICPainter.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00030 #ifndef __vtkSurfaceLICPainter_h
00031 #define __vtkSurfaceLICPainter_h
00032 
00033 #include "vtkPolyDataPainter.h"
00034 
00035 class vtkRenderWindow;
00036 
00037 class VTK_RENDERING_EXPORT vtkSurfaceLICPainter : public vtkPolyDataPainter
00038 {
00039 public:
00040   static vtkSurfaceLICPainter* New();
00041   vtkTypeMacro(vtkSurfaceLICPainter, vtkPolyDataPainter);
00042   void PrintSelf(ostream& os, vtkIndent indent);
00043 
00047   virtual void ReleaseGraphicsResources(vtkWindow *);
00048 
00053   virtual vtkDataObject* GetOutput();
00054 
00056 
00057   vtkSetMacro(Enable, int);
00058   vtkGetMacro(Enable, int);
00059   vtkBooleanMacro(Enable, int);
00061 
00063 
00067   void SetInputArrayToProcess(int fieldAssociation, const char *name);
00068   void SetInputArrayToProcess(int fieldAssociation, int fieldAttributeType);
00070   
00072 
00078   vtkSetMacro( EnhancedLIC, int );
00079   vtkGetMacro( EnhancedLIC, int );
00080   vtkBooleanMacro( EnhancedLIC, int );
00082 
00084 
00085   vtkSetMacro(NumberOfSteps, int);
00086   vtkGetMacro(NumberOfSteps, int);
00088 
00090 
00091   vtkSetMacro(StepSize, double);
00092   vtkGetMacro(StepSize, double);
00094 
00096 
00099   vtkSetClampMacro(LICIntensity, double, 0.0, 1.0);
00100   vtkGetMacro(LICIntensity, double);
00102   
00104 
00105   int GetRenderingPreparationSuccess() 
00106       { return this->RenderingPreparationSuccess; }
00108   
00110   int GetLICSuccess() { return this->LICSuccess; }
00111 
00114   static bool IsSupported(vtkRenderWindow*);
00115 //BTX
00116 protected:
00117   vtkSurfaceLICPainter();
00118   ~vtkSurfaceLICPainter();
00119 
00121   virtual void ReportReferences(vtkGarbageCollector *collector);
00122 
00127   virtual void PrepareForRendering(vtkRenderer*, vtkActor*);
00128 
00130 
00135   virtual void RenderInternal(vtkRenderer* renderer, vtkActor* actor, 
00136                               unsigned long typeflags, bool forceCompileOnly);
00138 
00140   bool PrepareOutput();
00141 
00143   bool CanRenderLIC(vtkRenderer*, vtkActor*);
00144 
00145   // Unit is a pixel length.
00146   int    NumberOfSteps;
00147   double StepSize;
00148 
00149   int    Enable;
00150   int    EnhancedLIC;
00151   int    RenderingPreparationSuccess;
00152   int    LICSuccess;
00153   double LICIntensity;
00154   
00155 private:
00156   vtkSurfaceLICPainter(const vtkSurfaceLICPainter&); // Not implemented.
00157   void operator=(const vtkSurfaceLICPainter&); // Not implemented.
00158 
00159   vtkDataObject* Output;
00160   class vtkInternals;
00161   vtkInternals* Internals;
00162 //ETX
00163 };
00164 
00165 #endif