78 lines
3.0 KiB
C
78 lines
3.0 KiB
C
|
|
/*=========================================================================
|
||
|
|
|
||
|
|
Program: Visualization Toolkit
|
||
|
|
Module: vtkExtractCellsAlongPolyLine.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 vtkExtractCellsAlongPolyLine
|
||
|
|
* @brief Extracts input cells that are intersected by a list of input lines or poly lines
|
||
|
|
*
|
||
|
|
* This filter extracts input cells that are intersected by a list of input lines or poly lines.
|
||
|
|
* The lines / poly lines input is set on input port 1, as a source connection, while the input data
|
||
|
|
* set on which cells are extracted is to be set on input port 0. The produced output is a
|
||
|
|
* `vtkUnstructuredGrid`. Input lines can be either set inside a `vtkPolyData` or a
|
||
|
|
* `vtkUnstructuredGrid`. If the input type has an explicit geometry, i.e. the input is not a
|
||
|
|
* `vtkPointSet`, then the user can set the output
|
||
|
|
* points precision using `OutputPointsPrecisions`. Otherwise, the point precision is set to be the
|
||
|
|
* same as the input.
|
||
|
|
*
|
||
|
|
* This filter uses multi-threading if available.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef vtkExtractCellsAlongPolyLine_h
|
||
|
|
#define vtkExtractCellsAlongPolyLine_h
|
||
|
|
|
||
|
|
#include "vtkFiltersCoreModule.h" // For export macro
|
||
|
|
#include "vtkUnstructuredGridAlgorithm.h"
|
||
|
|
|
||
|
|
class VTKFILTERSCORE_EXPORT vtkExtractCellsAlongPolyLine : public vtkUnstructuredGridAlgorithm
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
vtkTypeMacro(vtkExtractCellsAlongPolyLine, vtkUnstructuredGridAlgorithm);
|
||
|
|
void PrintSelf(ostream& os, vtkIndent indent) override;
|
||
|
|
|
||
|
|
static vtkExtractCellsAlongPolyLine* New();
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set the source for creating the lines to probe from. Only cells of type VTK_LINE or
|
||
|
|
* VTK_POLY_LINE will be processed.
|
||
|
|
*/
|
||
|
|
virtual void SetSourceConnection(vtkAlgorithmOutput* input);
|
||
|
|
|
||
|
|
///@{
|
||
|
|
/**
|
||
|
|
* Set/get the desired precision for the output types. See the documentation
|
||
|
|
* for the vtkAlgorithm::DesiredOutputPrecision enum for an explanation of
|
||
|
|
* the available precision settings. OutputPointsPrecision is DEFAULT_PRECISION
|
||
|
|
* by default. However, if the input is polymorphic to `vtkPointSet`, then
|
||
|
|
* the points precision of the input's points is used instead.
|
||
|
|
*/
|
||
|
|
vtkSetMacro(OutputPointsPrecision, int);
|
||
|
|
vtkGetMacro(OutputPointsPrecision, int);
|
||
|
|
///@}
|
||
|
|
|
||
|
|
protected:
|
||
|
|
vtkExtractCellsAlongPolyLine();
|
||
|
|
~vtkExtractCellsAlongPolyLine() override;
|
||
|
|
|
||
|
|
int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override;
|
||
|
|
int FillInputPortInformation(int port, vtkInformation* info) override;
|
||
|
|
|
||
|
|
int OutputPointsPrecision;
|
||
|
|
|
||
|
|
private:
|
||
|
|
vtkExtractCellsAlongPolyLine(const vtkExtractCellsAlongPolyLine&) = delete;
|
||
|
|
void operator=(const vtkExtractCellsAlongPolyLine&) = delete;
|
||
|
|
};
|
||
|
|
|
||
|
|
#endif
|