00001 //============================================================================= 00002 // This file is part of VTKEdge. See vtkedge.org for more information. 00003 // 00004 // Copyright (c) 2010 Kitware, Inc. 00005 // 00006 // VTKEdge may be used under the terms of the BSD License 00007 // Please see the file Copyright.txt in the root directory of 00008 // VTKEdge for further information. 00009 // 00010 // Alternatively, you may see: 00011 // 00012 // http://www.vtkedge.org/vtkedge/project/license.html 00013 // 00014 // 00015 // For custom extensions, consulting services, or training for 00016 // this or any other Kitware supported open source project, please 00017 // contact Kitware at sales@kitware.com. 00018 // 00019 // 00020 //============================================================================= 00021 00034 #ifndef __vtkKWEPaintbrushDataStatistics_h 00035 #define __vtkKWEPaintbrushDataStatistics_h 00036 00037 #include "vtkAlgorithm.h" 00038 #include "VTKEdgeConfigure.h" 00039 00040 class vtkKWEPaintbrushData; 00041 class vtkContourFilter; 00042 class vtkImageConstantPad; 00043 class vtkTriangleFilter; 00044 class vtkMassProperties; 00045 class vtkKWEPaintbrushStencilData; 00046 00047 class VTKEdge_WIDGETS_EXPORT vtkKWEPaintbrushDataStatistics 00048 : public vtkAlgorithm 00049 { 00050 public: 00052 00053 static vtkKWEPaintbrushDataStatistics *New(); 00054 vtkTypeRevisionMacro(vtkKWEPaintbrushDataStatistics, vtkAlgorithm); 00055 void PrintSelf(ostream& os, vtkIndent indent); 00057 00059 virtual void SetInput( vtkKWEPaintbrushData * ); 00060 00062 00063 virtual int ProcessRequest(vtkInformation*, 00064 vtkInformationVector**, 00065 vtkInformationVector*); 00067 00069 double GetVolume(); 00070 00072 00077 static double GetOverlapVolume( vtkKWEPaintbrushStencilData *, 00078 vtkKWEPaintbrushStencilData * ); 00080 00081 protected: 00082 vtkKWEPaintbrushDataStatistics(); 00083 ~vtkKWEPaintbrushDataStatistics(); 00084 00086 00087 virtual int FillInputPortInformation(int, vtkInformation*); 00088 virtual int RequestData(vtkInformation* request, 00089 vtkInformationVector** inputVector, 00090 vtkInformationVector* outputVector); 00092 00093 vtkContourFilter * ContourFilter; 00094 vtkImageConstantPad * PadFilter; 00095 vtkTriangleFilter * TriangleFilter; 00096 vtkMassProperties * MassProperties; 00097 double Volume; 00098 00099 private: 00100 vtkKWEPaintbrushDataStatistics( const vtkKWEPaintbrushDataStatistics& ); 00101 void operator=(const vtkKWEPaintbrushDataStatistics&); 00102 }; 00103 00104 #endif 00105
1.7.1