Salome HOME
[EDF17832] : Move VoroGauss GaussToCell StaticMesh DevelopedSurface from EDF to parav...
[modules/paravis.git] / src / Plugins / StaticMesh / vtkStaticDataSetSurfaceFilter.h
1 /*=========================================================================
2
3   Program:   Visualization Toolkit
4   Module:    vtkStaticDataSetSurfaceFilter.h
5
6   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7   All rights reserved.
8   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10      This software is distributed WITHOUT ANY WARRANTY; without even
11      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12      PURPOSE.  See the above copyright notice for more information.
13
14 =========================================================================*/
15 /**
16  * @class   vtkStaticDataSetSurfaceFilter
17  * @brief   Extract the surface of a dataset, optimized for static unstructured grid
18  *
19  * vtkStaticDataSetSurfaceFilter is a specialization of vtkDataSetSurfaceFilter
20  * that uses a cache to store the surface output and reuses it when associated data
21  * changes over the time, but the geometry of a unstructured grid is static.
22  * It is to be noted that, since ParaView use the same surface filter
23  * for each block of a MultiBlock, this filter is not effective with multiblock
24  * dataset.
25  *
26  * @sa
27  * vtkStaticMeshObjectFactory
28 */
29
30 #ifndef vtkStaticDataSetSurfaceFilter_h
31 #define vtkStaticDataSetSurfaceFilter_h
32
33 #include "vtkDataSetSurfaceFilter.h"
34 #include "vtkNew.h"
35
36 class vtkPolyData;
37
38 class vtkStaticDataSetSurfaceFilter : public vtkDataSetSurfaceFilter
39 {
40 public:
41   static vtkStaticDataSetSurfaceFilter* New();
42   typedef vtkDataSetSurfaceFilter
43     Superclass; // vtkTypeMacro can't be used with a factory built object
44   void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
45
46   int UnstructuredGridExecute(vtkDataSet* input, vtkPolyData* output) VTK_OVERRIDE;
47
48 protected:
49   vtkStaticDataSetSurfaceFilter();
50   ~vtkStaticDataSetSurfaceFilter() VTK_OVERRIDE;
51
52   vtkNew<vtkPolyData> Cache;
53   vtkMTimeType InputMeshTime;
54   vtkMTimeType FilterMTime;
55
56 private:
57   // Hide these from the user and the compiler.
58   vtkStaticDataSetSurfaceFilter(const vtkStaticDataSetSurfaceFilter&) VTK_DELETE_FUNCTION;
59   void operator=(const vtkStaticDataSetSurfaceFilter&) VTK_DELETE_FUNCTION;
60 };
61
62 #endif