VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkThresholdTextureCoords.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 =========================================================================*/ 00043 #ifndef __vtkThresholdTextureCoords_h 00044 #define __vtkThresholdTextureCoords_h 00045 00046 #include "vtkDataSetAlgorithm.h" 00047 00048 class VTK_GRAPHICS_EXPORT vtkThresholdTextureCoords : public vtkDataSetAlgorithm 00049 { 00050 public: 00051 static vtkThresholdTextureCoords *New(); 00052 vtkTypeMacro(vtkThresholdTextureCoords,vtkDataSetAlgorithm); 00053 void PrintSelf(ostream& os, vtkIndent indent); 00054 00056 void ThresholdByLower(double lower); 00057 00059 void ThresholdByUpper(double upper); 00060 00063 void ThresholdBetween(double lower, double upper); 00064 00066 00067 vtkGetMacro(UpperThreshold,double); 00068 vtkGetMacro(LowerThreshold,double); 00070 00072 00073 vtkSetClampMacro(TextureDimension,int,1,3); 00074 vtkGetMacro(TextureDimension,int); 00076 00078 00080 vtkSetVector3Macro(InTextureCoord,double); 00081 vtkGetVectorMacro(InTextureCoord,double,3); 00083 00085 00087 vtkSetVector3Macro(OutTextureCoord,double); 00088 vtkGetVectorMacro(OutTextureCoord,double,3); 00090 00091 protected: 00092 vtkThresholdTextureCoords(); 00093 ~vtkThresholdTextureCoords() {}; 00094 00095 // Usual data generation method 00096 int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *); 00097 00098 double LowerThreshold; 00099 double UpperThreshold; 00100 00101 int TextureDimension; 00102 00103 double InTextureCoord[3]; 00104 double OutTextureCoord[3]; 00105 00106 //BTX 00107 int (vtkThresholdTextureCoords::*ThresholdFunction)(double s); 00108 //ETX 00109 00110 int Lower(double s) {return ( s <= this->LowerThreshold ? 1 : 0 );}; 00111 int Upper(double s) {return ( s >= this->UpperThreshold ? 1 : 0 );}; 00112 int Between(double s) {return ( s >= this->LowerThreshold ? 00113 ( s <= this->UpperThreshold ? 1 : 0 ) : 0 );}; 00114 private: 00115 vtkThresholdTextureCoords(const vtkThresholdTextureCoords&); // Not implemented. 00116 void operator=(const vtkThresholdTextureCoords&); // Not implemented. 00117 }; 00118 00119 #endif