VTK
|
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