1 /*========================================================================= 2 3 Program: Visualization Toolkit 4 Module: vtkSynchronizedTemplatesCutter3D.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 vtkSynchronizedTemplatesCutter3D 17 * @brief generate cut surface from structured points 18 * 19 * 20 * vtkSynchronizedTemplatesCutter3D is an implementation of the synchronized 21 * template algorithm. Note that vtkCutFilter will automatically 22 * use this class when appropriate. 23 * 24 * @sa 25 * vtkContourFilter vtkSynchronizedTemplates3D 26 */ 27 28 #ifndef vtkSynchronizedTemplatesCutter3D_h 29 #define vtkSynchronizedTemplatesCutter3D_h 30 31 #include "vtkFiltersCoreModule.h" // For export macro 32 #include "vtkSynchronizedTemplates3D.h" 33 34 class vtkImplicitFunction; 35 36 class VTKFILTERSCORE_EXPORT vtkSynchronizedTemplatesCutter3D : public vtkSynchronizedTemplates3D 37 { 38 public: 39 static vtkSynchronizedTemplatesCutter3D *New(); 40 41 vtkTypeMacro(vtkSynchronizedTemplatesCutter3D,vtkSynchronizedTemplates3D); 42 void PrintSelf(ostream& os, vtkIndent indent) override; 43 44 /** 45 * Needed by templated functions. 46 */ 47 void ThreadedExecute(vtkImageData *data, vtkInformation *outInfo, int); 48 49 //@{ 50 /** 51 * Specify the implicit function to perform the cutting. 52 */ 53 virtual void SetCutFunction(vtkImplicitFunction*); 54 vtkGetObjectMacro(CutFunction,vtkImplicitFunction); 55 //@} 56 57 //@{ 58 /** 59 * Set/get the desired precision for the output types. See the documentation 60 * for the vtkAlgorithm::DesiredOutputPrecision enum for an explanation of 61 * the available precision settings. 62 */ 63 vtkSetClampMacro(OutputPointsPrecision, int, SINGLE_PRECISION, DEFAULT_PRECISION); 64 vtkGetMacro(OutputPointsPrecision, int); 65 //@} 66 67 protected: 68 vtkSynchronizedTemplatesCutter3D(); 69 ~vtkSynchronizedTemplatesCutter3D() override; 70 71 vtkImplicitFunction *CutFunction; 72 int OutputPointsPrecision; 73 74 int RequestData(vtkInformation *, 75 vtkInformationVector **, 76 vtkInformationVector *) override; 77 78 private: 79 vtkSynchronizedTemplatesCutter3D(const vtkSynchronizedTemplatesCutter3D&) = delete; 80 void operator=(const vtkSynchronizedTemplatesCutter3D&) = delete; 81 }; 82 83 #endif 84 85