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.
126 lines
4.2 KiB
C
126 lines
4.2 KiB
C
|
3 weeks ago
|
/*=========================================================================
|
||
|
|
|
||
|
|
Program: Visualization Toolkit
|
||
|
|
Module: vtkExtractSelection.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 vtkExtractSelection
|
||
|
|
* @brief extract a subset from a vtkDataSet.
|
||
|
|
*
|
||
|
|
* vtkExtractSelection extracts some subset of cells and points from
|
||
|
|
* its input dataset. The dataset is given on its first input port.
|
||
|
|
* The subset is described by the contents of the vtkSelection on its
|
||
|
|
* second input port. Depending on the content of the vtkSelection,
|
||
|
|
* this will use either a vtkExtractSelectedIds, vtkExtractSelectedFrustum
|
||
|
|
* vtkExtractSelectedLocations or a vtkExtractSelectedThreshold to perform
|
||
|
|
* the extraction.
|
||
|
|
* @sa
|
||
|
|
* vtkSelection vtkExtractSelectedIds vtkExtractSelectedFrustum
|
||
|
|
* vtkExtractSelectedLocations vtkExtractSelectedThresholds
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef vtkExtractSelection_h
|
||
|
|
#define vtkExtractSelection_h
|
||
|
|
|
||
|
|
#include "vtkFiltersExtractionModule.h" // For export macro
|
||
|
|
#include "vtkExtractSelectionBase.h"
|
||
|
|
|
||
|
|
class vtkExtractSelectedBlock;
|
||
|
|
class vtkExtractSelectedFrustum;
|
||
|
|
class vtkExtractSelectedIds;
|
||
|
|
class vtkExtractSelectedLocations;
|
||
|
|
class vtkExtractSelectedRows;
|
||
|
|
class vtkExtractSelectedThresholds;
|
||
|
|
class vtkProbeSelectedLocations;
|
||
|
|
class vtkSelection;
|
||
|
|
class vtkSelectionNode;
|
||
|
|
|
||
|
|
class VTKFILTERSEXTRACTION_EXPORT vtkExtractSelection : public vtkExtractSelectionBase
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
static vtkExtractSelection *New();
|
||
|
|
vtkTypeMacro(vtkExtractSelection, vtkExtractSelectionBase);
|
||
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
||
|
|
|
||
|
|
//@{
|
||
|
|
/**
|
||
|
|
* When On, this returns an unstructured grid that outlines selection area.
|
||
|
|
* Off is the default. Applicable only to Frustum selection extraction.
|
||
|
|
*/
|
||
|
|
vtkSetMacro(ShowBounds,int);
|
||
|
|
vtkGetMacro(ShowBounds,int);
|
||
|
|
vtkBooleanMacro(ShowBounds,int);
|
||
|
|
//@}
|
||
|
|
|
||
|
|
//@{
|
||
|
|
/**
|
||
|
|
* When On, vtkProbeSelectedLocations is used for extracting selections of
|
||
|
|
* content type vtkSelection::LOCATIONS. Default is off and then
|
||
|
|
* vtkExtractSelectedLocations is used.
|
||
|
|
*/
|
||
|
|
vtkSetMacro(UseProbeForLocations, int);
|
||
|
|
vtkGetMacro(UseProbeForLocations, int);
|
||
|
|
vtkBooleanMacro(UseProbeForLocations, int);
|
||
|
|
//@}
|
||
|
|
|
||
|
|
protected:
|
||
|
|
vtkExtractSelection();
|
||
|
|
~vtkExtractSelection();
|
||
|
|
|
||
|
|
virtual int FillInputPortInformation(int port, vtkInformation* info);
|
||
|
|
|
||
|
|
//sets up empty output dataset
|
||
|
|
virtual int RequestDataObject(vtkInformation* request,
|
||
|
|
vtkInformationVector** inputVector,
|
||
|
|
vtkInformationVector* outputVector);
|
||
|
|
|
||
|
|
// runs the algorithm and fills the output with results
|
||
|
|
virtual int RequestData(vtkInformation *,
|
||
|
|
vtkInformationVector **,
|
||
|
|
vtkInformationVector *);
|
||
|
|
|
||
|
|
// used for composite, non-hierarhical input.
|
||
|
|
vtkDataObject* RequestDataInternal(
|
||
|
|
unsigned int composite_index,
|
||
|
|
vtkDataObject* non_composite_input, vtkSelection* sel,
|
||
|
|
vtkInformation* outInfo);
|
||
|
|
|
||
|
|
// Used for hierarchical input.
|
||
|
|
vtkDataObject* RequestDataInternal(
|
||
|
|
unsigned int composite_index,
|
||
|
|
unsigned int level,
|
||
|
|
unsigned int index,
|
||
|
|
vtkDataObject* non_composite_input, vtkSelection* sel,
|
||
|
|
vtkInformation* outInfo);
|
||
|
|
|
||
|
|
|
||
|
|
// called for non-composite input or for a block in a composite dataset.
|
||
|
|
vtkDataObject* RequestDataFromBlock(vtkDataObject* input,
|
||
|
|
vtkSelectionNode* sel, vtkInformation* outInfo);
|
||
|
|
|
||
|
|
vtkExtractSelectedBlock* BlockFilter;
|
||
|
|
vtkExtractSelectedFrustum* FrustumFilter;
|
||
|
|
vtkExtractSelectedIds* IdsFilter;
|
||
|
|
vtkExtractSelectedLocations* LocationsFilter;
|
||
|
|
vtkExtractSelectedRows* RowsFilter;
|
||
|
|
vtkExtractSelectedThresholds* ThresholdsFilter;
|
||
|
|
vtkProbeSelectedLocations* ProbeFilter;
|
||
|
|
|
||
|
|
int UseProbeForLocations;
|
||
|
|
int ShowBounds;
|
||
|
|
private:
|
||
|
|
vtkExtractSelection(const vtkExtractSelection&) VTK_DELETE_FUNCTION;
|
||
|
|
void operator=(const vtkExtractSelection&) VTK_DELETE_FUNCTION;
|
||
|
|
};
|
||
|
|
|
||
|
|
#endif
|