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