Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkExtractCTHPart.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkExtractCTHPart.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00038 #ifndef __vtkExtractCTHPart_h
00039 #define __vtkExtractCTHPart_h
00040 
00041 #include "vtkRectilinearGridToPolyDataFilter.h"
00042 class vtkPlane;
00043 class vtkDataArray;
00044 class vtkFloatArray;
00045 
00046 class vtkExtractCTHPartInternal;
00047 
00048 class VTK_HYBRID_EXPORT vtkExtractCTHPart : public vtkRectilinearGridToPolyDataFilter
00049 {
00050 public:
00051   vtkTypeRevisionMacro(vtkExtractCTHPart,vtkRectilinearGridToPolyDataFilter);
00052   void PrintSelf(ostream& os, vtkIndent indent);
00053 
00056   static vtkExtractCTHPart *New();
00057 
00059 
00060   void RemoveAllVolumeArrayNames();
00061   void AddVolumeArrayName(char* arrayName);
00062   int GetNumberOfVolumeArrayNames();
00063   const char* GetVolumeArrayName(int idx);
00065 
00067   int GetNumberOfOutputs();
00068   vtkPolyData* GetOutput(int idx);
00069   vtkPolyData* GetOutput() { return this->GetOutput(0); }
00070   void SetOutput(int idx, vtkPolyData* d);
00071   void SetOutput(vtkPolyData* d) { this->SetOutput(0, d); }
00073 
00075 
00076   void SetClipPlane(vtkPlane *clipPlane);
00077   vtkGetObjectMacro(ClipPlane, vtkPlane);
00079 
00081   unsigned long GetMTime();    
00082 
00083 protected:
00084   vtkExtractCTHPart();
00085   ~vtkExtractCTHPart();
00086 
00087   void ComputeInputUpdateExtents(vtkDataObject *output);
00088   void Execute();
00089   void ExecutePart(const char* arrayName, vtkPolyData* output);
00090   void ExecuteCellDataToPointData(vtkDataArray *cellVolumeFraction, 
00091                        vtkFloatArray *pointVolumeFraction, int *dims);
00092 
00093   vtkPlane *ClipPlane;
00094 
00095   vtkExtractCTHPartInternal* Internals;
00096 private:
00097   vtkExtractCTHPart(const vtkExtractCTHPart&);  // Not implemented.
00098   void operator=(const vtkExtractCTHPart&);  // Not implemented.
00099 };
00100 
00101 #endif
00102