Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

147 lines
4.9 KiB

/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkExtractUnstructuredGrid.h,v $
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkExtractUnstructuredGrid - extract subset of unstructured grid geometry
// .SECTION Description
// vtkExtractUnstructuredGrid is a general-purpose filter to
// extract geometry (and associated data) from an unstructured grid
// dataset. The extraction process is controlled by specifying a range
// of point ids, cell ids, or a bounding box (referred to as "Extent").
// Those cells lying within these regions are sent to the output.
// The user has the choice of merging coincident points (Merging is on)
// or using the original point set (Merging is off).
// .SECTION Caveats
// If merging is off, the input points are copied through to the
// output. This means unused points may be present in the output data.
// If merging is on, then coincident points with different point attribute
// values are merged.
// .SECTION See Also
// vtkImageDataGeometryFilter vtkStructuredGridGeometryFilter
// vtkRectilinearGridGeometryFilter
// vtkExtractGeometry vtkExtractVOI
#ifndef __vtkExtractUnstructuredGrid_h
#define __vtkExtractUnstructuredGrid_h
#include "vtkUnstructuredGridAlgorithm.h"
class vtkPointLocator;
class VTK_GRAPHICS_EXPORT vtkExtractUnstructuredGrid : public vtkUnstructuredGridAlgorithm
{
public:
vtkTypeRevisionMacro(vtkExtractUnstructuredGrid,vtkUnstructuredGridAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Construct with all types of clipping turned off.
static vtkExtractUnstructuredGrid *New();
// Description:
// Turn on/off selection of geometry by point id.
vtkSetMacro(PointClipping,int);
vtkGetMacro(PointClipping,int);
vtkBooleanMacro(PointClipping,int);
// Description:
// Turn on/off selection of geometry by cell id.
vtkSetMacro(CellClipping,int);
vtkGetMacro(CellClipping,int);
vtkBooleanMacro(CellClipping,int);
// Description:
// Turn on/off selection of geometry via bounding box.
vtkSetMacro(ExtentClipping,int);
vtkGetMacro(ExtentClipping,int);
vtkBooleanMacro(ExtentClipping,int);
// Description:
// Specify the minimum point id for point id selection.
vtkSetClampMacro(PointMinimum,vtkIdType,0,VTK_LARGE_ID);
vtkGetMacro(PointMinimum,vtkIdType);
// Description:
// Specify the maximum point id for point id selection.
vtkSetClampMacro(PointMaximum,vtkIdType,0,VTK_LARGE_ID);
vtkGetMacro(PointMaximum,vtkIdType);
// Description:
// Specify the minimum cell id for point id selection.
vtkSetClampMacro(CellMinimum,vtkIdType,0,VTK_LARGE_ID);
vtkGetMacro(CellMinimum,vtkIdType);
// Description:
// Specify the maximum cell id for point id selection.
vtkSetClampMacro(CellMaximum,vtkIdType,0,VTK_LARGE_ID);
vtkGetMacro(CellMaximum,vtkIdType);
// Description:
// Specify a (xmin,xmax, ymin,ymax, zmin,zmax) bounding box to clip data.
void SetExtent(double xMin, double xMax, double yMin, double yMax,
double zMin, double zMax);
// Description:
// Set / get a (xmin,xmax, ymin,ymax, zmin,zmax) bounding box to clip data.
void SetExtent(double extent[6]);
double *GetExtent() { return this->Extent;};
// Description:
// Turn on/off merging of coincident points. Note that is merging is
// on, points with different point attributes (e.g., normals) are merged,
// which may cause rendering artifacts.
vtkSetMacro(Merging,int);
vtkGetMacro(Merging,int);
vtkBooleanMacro(Merging,int);
// Description:
// Set / get a spatial locator for merging points. By
// default an instance of vtkMergePoints is used.
void SetLocator(vtkPointLocator *locator);
vtkGetObjectMacro(Locator,vtkPointLocator);
// Description:
// Create default locator. Used to create one when none is specified.
void CreateDefaultLocator();
// Description:
// Return the MTime also considering the locator.
unsigned long GetMTime();
protected:
vtkExtractUnstructuredGrid();
~vtkExtractUnstructuredGrid() {};
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
vtkIdType PointMinimum;
vtkIdType PointMaximum;
vtkIdType CellMinimum;
vtkIdType CellMaximum;
double Extent[6];
int PointClipping;
int CellClipping;
int ExtentClipping;
int Merging;
vtkPointLocator *Locator;
private:
vtkExtractUnstructuredGrid(const vtkExtractUnstructuredGrid&); // Not implemented.
void operator=(const vtkExtractUnstructuredGrid&); // Not implemented.
};
#endif