VTK
dox/Filters/HyperTree/vtkHyperTreeGridAxisCut.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkHyperTreeGridAxisCut.h
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 __vtkHyperTreeGridAxisCut_h
00039 #define __vtkHyperTreeGridAxisCut_h
00040 
00041 #include "vtkFiltersHyperTreeModule.h" // For export macro
00042 #include "vtkPolyDataAlgorithm.h"
00043 
00044 class vtkCellArray;
00045 class vtkDataSetAttributes;
00046 class vtkHyperTreeGrid;
00047 class vtkPoints;
00048 
00049 class VTKFILTERSHYPERTREE_EXPORT vtkHyperTreeGridAxisCut : public vtkPolyDataAlgorithm
00050 {
00051 public:
00052   static vtkHyperTreeGridAxisCut* New();
00053   vtkTypeMacro( vtkHyperTreeGridAxisCut, vtkPolyDataAlgorithm );
00054   void PrintSelf( ostream&, vtkIndent );
00055 
00057 
00058   vtkSetMacro(PlaneNormalAxis, int);
00059   vtkGetMacro(PlaneNormalAxis, int);
00060   vtkSetMacro(PlanePosition, double);
00061   vtkGetMacro(PlanePosition, double);
00063 
00064 protected:
00065   vtkHyperTreeGridAxisCut();
00066   ~vtkHyperTreeGridAxisCut();
00067 
00068   int PlaneNormalAxis;
00069   double PlanePosition;
00070 
00071   virtual int RequestData( vtkInformation*, vtkInformationVector**, vtkInformationVector* );
00072   virtual int FillInputPortInformation( int, vtkInformation* );
00073 
00074   void ProcessTrees();
00075   void RecursiveProcessTree( void* );
00076   void ProcessLeaf3D( void* );
00077   void AddFace( vtkIdType inId, double* origin, double* size,
00078                 double offset0, int axis0, int axis1, int axis2 );
00079 
00080   vtkHyperTreeGrid* Input;
00081   vtkPolyData* Output;
00082 
00083   vtkDataSetAttributes* InData;
00084   vtkDataSetAttributes* OutData;
00085 
00086   vtkPoints* Points;
00087   vtkCellArray* Cells;
00088 
00089 private:
00090   vtkHyperTreeGridAxisCut(const vtkHyperTreeGridAxisCut&);  // Not implemented.
00091   void operator=(const vtkHyperTreeGridAxisCut&);  // Not implemented.
00092 };
00093 
00094 #endif