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 =========================================================================*/
00027 #ifndef __vtkSurfaceLICPainter_h
00028 #define __vtkSurfaceLICPainter_h
00029 
00030 #include "vtkPainter.h"
00031 
00032 class vtkRenderWindow;
00033 
00034 class VTK_RENDERING_EXPORT vtkSurfaceLICPainter : public vtkPainter
00035 {
00036 public:
00037   static vtkSurfaceLICPainter* New();
00038   vtkTypeMacro(vtkSurfaceLICPainter, vtkPainter);
00039   void PrintSelf(ostream& os, vtkIndent indent);
00040 
00044   virtual void ReleaseGraphicsResources(vtkWindow *);
00045 
00050   virtual vtkDataObject* GetOutput();
00051 
00053 
00054   vtkSetMacro(Enable, int);
00055   vtkGetMacro(Enable, int);
00056   vtkBooleanMacro(Enable, int);
00058 
00060 
00064   void SetInputArrayToProcess(int fieldAssociation, const char *name);
00065   void SetInputArrayToProcess(int fieldAssociation, int fieldAttributeType);
00067   
00069 
00075   vtkSetMacro( EnhancedLIC, int );
00076   vtkGetMacro( EnhancedLIC, int );
00077   vtkBooleanMacro( EnhancedLIC, int );
00079 
00081 
00082   vtkSetMacro(NumberOfSteps, int);
00083   vtkGetMacro(NumberOfSteps, int);
00085 
00087 
00088   vtkSetMacro(StepSize, double);
00089   vtkGetMacro(StepSize, double);
00091 
00093 
00096   vtkSetClampMacro(LICIntensity, double, 0.0, 1.0);
00097   vtkGetMacro(LICIntensity, double);
00099   
00101 
00102   int GetRenderingPreparationSuccess() 
00103       { return this->RenderingPreparationSuccess; }
00105   
00107   int GetLICSuccess() { return this->LICSuccess; }
00108 
00110 
00112   static bool IsSupported(vtkRenderWindow*);
00113 //BTX
00114 protected:
00115   vtkSurfaceLICPainter();
00116   ~vtkSurfaceLICPainter();
00118 
00120   void GetBounds(vtkDataObject* data, double bounds[6]);
00121 
00123   virtual void ReportReferences(vtkGarbageCollector *collector);
00124 
00129   virtual void PrepareForRendering(vtkRenderer*, vtkActor*);
00130 
00132 
00137   virtual void RenderInternal(vtkRenderer* renderer, vtkActor* actor, 
00138                               unsigned long typeflags, bool forceCompileOnly);
00140 
00142 
00143   bool PrepareOutput();
00144   bool FixTCoords(vtkDataSet* ds);
00146 
00148   bool CanRenderLIC(vtkRenderer*, vtkActor*);
00149 
00150   // Unit is a pixel length.
00151   int    NumberOfSteps;
00152   double StepSize;
00153 
00154   int    Enable;
00155   int    EnhancedLIC;
00156   int    RenderingPreparationSuccess;
00157   int    LICSuccess;
00158   double LICIntensity;
00159   
00160 private:
00161   vtkSurfaceLICPainter(const vtkSurfaceLICPainter&); // Not implemented.
00162   void operator=(const vtkSurfaceLICPainter&); // Not implemented.
00163 
00164   vtkDataObject* Output;
00165   class vtkInternals;
00166   vtkInternals* Internals;
00167 //ETX
00168 };
00169 
00170 #endif