You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/3rd/VTK7.1/include/vtkExtractUnstructuredGrid.h

186 lines
5.0 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Module: vtkExtractUnstructuredGrid.h
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.
=========================================================================*/
/**
* @class vtkExtractUnstructuredGrid
* @brief extract subset of unstructured grid geometry
*
* 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 laying 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).
*
* @warning
* 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.
*
* @sa
* vtkImageDataGeometryFilter vtkStructuredGridGeometryFilter
* vtkRectilinearGridGeometryFilter
* vtkExtractGeometry vtkExtractVOI
*/
#ifndef vtkExtractUnstructuredGrid_h
#define vtkExtractUnstructuredGrid_h
#include "vtkFiltersExtractionModule.h" // For export macro
#include "vtkUnstructuredGridAlgorithm.h"
class vtkIncrementalPointLocator;
class VTKFILTERSEXTRACTION_EXPORT vtkExtractUnstructuredGrid : public vtkUnstructuredGridAlgorithm
{
public:
vtkTypeMacro(vtkExtractUnstructuredGrid,vtkUnstructuredGridAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
/**
* Construct with all types of clipping turned off.
*/
static vtkExtractUnstructuredGrid *New();
//@{
/**
* Turn on/off selection of geometry by point id.
*/
vtkSetMacro(PointClipping,int);
vtkGetMacro(PointClipping,int);
vtkBooleanMacro(PointClipping,int);
//@}
//@{
/**
* Turn on/off selection of geometry by cell id.
*/
vtkSetMacro(CellClipping,int);
vtkGetMacro(CellClipping,int);
vtkBooleanMacro(CellClipping,int);
//@}
//@{
/**
* Turn on/off selection of geometry via bounding box.
*/
vtkSetMacro(ExtentClipping,int);
vtkGetMacro(ExtentClipping,int);
vtkBooleanMacro(ExtentClipping,int);
//@}
//@{
/**
* Specify the minimum point id for point id selection.
*/
vtkSetClampMacro(PointMinimum,vtkIdType,0,VTK_ID_MAX);
vtkGetMacro(PointMinimum,vtkIdType);
//@}
//@{
/**
* Specify the maximum point id for point id selection.
*/
vtkSetClampMacro(PointMaximum,vtkIdType,0,VTK_ID_MAX);
vtkGetMacro(PointMaximum,vtkIdType);
//@}
//@{
/**
* Specify the minimum cell id for point id selection.
*/
vtkSetClampMacro(CellMinimum,vtkIdType,0,VTK_ID_MAX);
vtkGetMacro(CellMinimum,vtkIdType);
//@}
//@{
/**
* Specify the maximum cell id for point id selection.
*/
vtkSetClampMacro(CellMaximum,vtkIdType,0,VTK_ID_MAX);
vtkGetMacro(CellMaximum,vtkIdType);
//@}
/**
* 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);
//@{
/**
* Set / get a (xmin,xmax, ymin,ymax, zmin,zmax) bounding box to clip data.
*/
void SetExtent(double extent[6]);
double *GetExtent() { return this->Extent;};
//@}
//@{
/**
* 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);
//@}
//@{
/**
* Set / get a spatial locator for merging points. By
* default an instance of vtkMergePoints is used.
*/
void SetLocator(vtkIncrementalPointLocator *locator);
vtkGetObjectMacro(Locator,vtkIncrementalPointLocator);
//@}
/**
* Create default locator. Used to create one when none is specified.
*/
void CreateDefaultLocator();
/**
* Return the MTime also considering the locator.
*/
vtkMTimeType 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;
vtkIncrementalPointLocator *Locator;
private:
vtkExtractUnstructuredGrid(const vtkExtractUnstructuredGrid&) VTK_DELETE_FUNCTION;
void operator=(const vtkExtractUnstructuredGrid&) VTK_DELETE_FUNCTION;
};
#endif