00001 #ifndef __vtkKMeansDistanceFunctorCalculator_h 00002 #define __vtkKMeansDistanceFunctorCalculator_h 00003 00026 #include "vtkKMeansDistanceFunctor.h" 00027 00028 class vtkFunctionParser; 00029 class vtkDoubleArray; 00030 00031 class VTK_INFOVIS_EXPORT vtkKMeansDistanceFunctorCalculator : public vtkKMeansDistanceFunctor 00032 { 00033 public: 00034 static vtkKMeansDistanceFunctorCalculator* New(); 00035 vtkTypeMacro(vtkKMeansDistanceFunctorCalculator,vtkKMeansDistanceFunctor); 00036 virtual void PrintSelf( ostream& os, vtkIndent indent ); 00037 00040 virtual void operator() ( double&, vtkVariantArray*, vtkVariantArray * ); 00041 00043 00044 vtkSetStringMacro(DistanceExpression); 00045 vtkGetStringMacro(DistanceExpression); 00047 00049 00053 virtual void SetFunctionParser( vtkFunctionParser* ); 00054 vtkGetObjectMacro(FunctionParser,vtkFunctionParser); 00056 00057 protected: 00058 vtkKMeansDistanceFunctorCalculator(); 00059 virtual ~vtkKMeansDistanceFunctorCalculator(); 00060 00061 char* DistanceExpression; 00062 int TupleSize; 00063 vtkFunctionParser* FunctionParser; 00064 00065 private: 00066 vtkKMeansDistanceFunctorCalculator( const vtkKMeansDistanceFunctorCalculator& ); // Not implemented. 00067 void operator = ( const vtkKMeansDistanceFunctorCalculator& ); // Not implemented. 00068 }; 00069 00070 #endif // __vtkKMeansDistanceFunctorCalculator_h