VTK
vtkExtractCTHPart.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkExtractCTHPart.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 =========================================================================*/
42 #ifndef vtkExtractCTHPart_h
43 #define vtkExtractCTHPart_h
44 
45 #include "vtkFiltersParallelModule.h" // For export macro
47 
48 class vtkAppendPolyData;
49 class vtkContourFilter;
50 class vtkDataArray;
51 class vtkDataSet;
53 class vtkDoubleArray;
54 class vtkExtractCTHPartInternal;
55 class vtkImageData;
58 class vtkPlane;
59 class vtkPolyData;
60 class vtkRectilinearGrid;
61 class vtkUniformGrid;
63 class vtkExtractCTHPartFragments;
64 
65 //#define EXTRACT_USE_IMAGE_DATA 1
66 
68 {
69 public:
72  void PrintSelf(ostream& os, vtkIndent indent);
73 
75 
76  void AddVolumeArrayName(const char*);
79  const char* GetVolumeArrayName(int idx);
81 
83 
89 
91 
92  vtkSetMacro(Capping, bool);
93  vtkGetMacro(Capping, bool);
94  vtkBooleanMacro(Capping, bool);
96 
98 
101  vtkSetMacro(GenerateTriangles, bool);
102  vtkGetMacro(GenerateTriangles, bool);
103  vtkBooleanMacro(GenerateTriangles, bool);
105 
107 
110  vtkSetMacro(RemoveGhostCells, bool);
111  vtkGetMacro(RemoveGhostCells, bool);
112  vtkBooleanMacro(RemoveGhostCells, bool);
114 
116 
117  void SetClipPlane(vtkPlane *clipPlane);
120 
122  unsigned long GetMTime();
123 
125 
127  vtkSetClampMacro(VolumeFractionSurfaceValue, double, 0.0, 1.0);
128  vtkGetMacro(VolumeFractionSurfaceValue, double);
130 
131 protected:
134 
136  virtual int RequestData(
138 
142 
144 
147  vtkPolyData* output, vtkCompositeDataSet* input, const char*arrayName);
149 
151  vtkPolyData *output,
152  int maxFlag,
153  int originExtents[3],
154  int ext[6],
155  int aAxis,
156  int bAxis,
157  int cAxis);
158 
160 
162  int IsGhostFace(int axis0,
163  int maxFlag,
164  int dims[3],
165  vtkUnsignedCharArray *ghostArray);
167 
168  void TriggerProgressEvent(double val);
169 
174  bool Capping;
178 private:
179  vtkExtractCTHPart(const vtkExtractCTHPart&); // Not implemented.
180  void operator=(const vtkExtractCTHPart&); // Not implemented.
181 
182  class VectorOfFragments;
183 
185 
187  template <class T>
188  bool ExtractClippedContourOnBlock(
189  vtkExtractCTHPart::VectorOfFragments& fragments, T* input, const char* arrayName);
191 
193 
195  template <class T>
196  bool ExtractContourOnBlock(
197  vtkExtractCTHPart::VectorOfFragments& fragments, T* input, const char* arrayName);
199 
201 
203  template <class T>
204  void ExtractExteriorSurface(
205  vtkExtractCTHPart::VectorOfFragments& fragments, T* input);
207 
209 
210  void ExecuteCellDataToPointData(
211  vtkDataArray *cellVolumeFraction, vtkDoubleArray *pointVolumeFraction, const int *dims);
213 
214  double ProgressShift;
215  double ProgressScale;
216 
217  class ScaledProgress;
218  friend class ScaledProgress;
219  vtkExtractCTHPartInternal* Internals;
220 };
221 #endif
vtkPlane
perform various plane computations
Definition: vtkPlane.h:37
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkExtractCTHPart::VolumeFractionType
int VolumeFractionType
Definition: vtkExtractCTHPart.h:170
vtkExtractCTHPart::New
static vtkExtractCTHPart * New()
VTKFILTERSPARALLEL_EXPORT
#define VTKFILTERSPARALLEL_EXPORT
Definition: vtkFiltersParallelModule.h:15
vtkExtractCTHPart::RequestData
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkRectilinearGrid
a dataset that is topologically regular with variable spacing in the three coordinate directions
Definition: vtkRectilinearGrid.h:56
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkExtractCTHPart::ExecuteFaceQuads
void ExecuteFaceQuads(vtkDataSet *input, vtkPolyData *output, int maxFlag, int originExtents[3], int ext[6], int aAxis, int bAxis, int cAxis)
vtkUnsignedCharArray
dynamic, self-adjusting array of unsigned char
Definition: vtkUnsignedCharArray.h:49
vtkUniformGrid
image data with blanking
Definition: vtkUniformGrid.h:40
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkgl::input
GLenum GLenum GLenum input
Definition: vtkgl.h:15941
vtkFiltersParallelModule.h
vtkCompositeDataSet
abstract superclass for composite (multi-block or AMR) datasets
Definition: vtkCompositeDataSet.h:51
vtkExtractCTHPart::GetMTime
unsigned long GetMTime()
vtkgl::val
GLuint GLfloat * val
Definition: vtkgl.h:13789
vtkDataSetSurfaceFilter
Extracts outer (polygonal) surface.
Definition: vtkDataSetSurfaceFilter.h:57
vtkExtractCTHPart::ComputeGlobalBounds
bool ComputeGlobalBounds(vtkCompositeDataSet *input)
vtkAppendPolyData
appends one or more polygonal datasets together
Definition: vtkAppendPolyData.h:48
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
vtkExtractCTHPart::VolumeFractionSurfaceValueInternal
double VolumeFractionSurfaceValueInternal
Definition: vtkExtractCTHPart.h:172
vtkExtractCTHPart::GenerateTriangles
bool GenerateTriangles
Definition: vtkExtractCTHPart.h:173
vtkExtractCTHPart::SetClipPlane
void SetClipPlane(vtkPlane *clipPlane)
vtkExtractCTHPart
Generates surface of a CTH volume fraction.
Definition: vtkExtractCTHPart.h:68
vtkMultiProcessController
Multiprocessing communication superclass.
Definition: vtkMultiProcessController.h:85
vtkExtractCTHPart::GetNumberOfVolumeArrayNames
int GetNumberOfVolumeArrayNames()
vtkExtractCTHPart::vtkExtractCTHPart
vtkExtractCTHPart()
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkExtractCTHPart::GetVolumeArrayName
const char * GetVolumeArrayName(int idx)
vtkMultiBlockDataSetAlgorithm.h
vtkExtractCTHPart::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkExtractCTHPart::SetController
void SetController(vtkMultiProcessController *controller)
vtkExtractCTHPart::RemoveGhostCells
bool RemoveGhostCells
Definition: vtkExtractCTHPart.h:175
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkExtractCTHPart::~vtkExtractCTHPart
~vtkExtractCTHPart()
vtkExtractCTHPart::IsGhostFace
int IsGhostFace(int axis0, int maxFlag, int dims[3], vtkUnsignedCharArray *ghostArray)
vtkExtractCTHPart::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtkExtractCTHPart::Controller
vtkMultiProcessController * Controller
Definition: vtkExtractCTHPart.h:177
vtkPolyData
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:84
vtkExtractCTHPart::RemoveVolumeArrayNames
void RemoveVolumeArrayNames()
vtkDoubleArray
dynamic, self-adjusting array of double
Definition: vtkDoubleArray.h:49
vtkExtractCTHPart::ExtractContour
bool ExtractContour(vtkPolyData *output, vtkCompositeDataSet *input, const char *arrayName)
vtkExtractCTHPart::VolumeFractionSurfaceValue
double VolumeFractionSurfaceValue
Definition: vtkExtractCTHPart.h:171
vtkExtractCTHPart::TriggerProgressEvent
void TriggerProgressEvent(double val)
vtkExtractCTHPart::ClipPlane
vtkPlane * ClipPlane
Definition: vtkExtractCTHPart.h:176
vtkContourFilter
generate isosurfaces/isolines from scalar values
Definition: vtkContourFilter.h:69
vtkExtractCTHPart::Capping
bool Capping
Definition: vtkExtractCTHPart.h:174
vtkExtractCTHPart::AddVolumeArrayName
void AddVolumeArrayName(const char *)
vtkMultiBlockDataSetAlgorithm
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
Definition: vtkMultiBlockDataSetAlgorithm.h:32