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.
100 lines
3.0 KiB
C
100 lines
3.0 KiB
C
3 weeks ago
|
/*=========================================================================
|
||
|
|
||
|
Program: Visualization Toolkit
|
||
|
Module: vtkCellCenters.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 vtkCellCenters
|
||
|
* @brief generate points at center of cells
|
||
|
*
|
||
|
* vtkCellCenters is a filter that takes as input any dataset and
|
||
|
* generates on output points at the center of the cells in the dataset.
|
||
|
* These points can be used for placing glyphs (vtkGlyph3D) or labeling
|
||
|
* (vtkLabeledDataMapper). (The center is the parametric center of the
|
||
|
* cell, not necessarily the geometric or bounding box center.) The cell
|
||
|
* attributes will be associated with the points on output.
|
||
|
*
|
||
|
* @warning
|
||
|
* You can choose to generate just points or points and vertex cells.
|
||
|
* Vertex cells are drawn during rendering; points are not. Use the ivar
|
||
|
* VertexCells to generate cells.
|
||
|
*
|
||
|
* @note
|
||
|
* Empty cells will be ignored but will require a one by one cell to
|
||
|
* point data copy that will make the processing slower.
|
||
|
*
|
||
|
* @sa
|
||
|
* vtkGlyph3D vtkLabeledDataMapper
|
||
|
*/
|
||
|
|
||
|
#ifndef vtkCellCenters_h
|
||
|
#define vtkCellCenters_h
|
||
|
|
||
|
#include "vtkFiltersCoreModule.h" // For export macro
|
||
|
#include "vtkPolyDataAlgorithm.h"
|
||
|
|
||
|
class vtkDoubleArray;
|
||
|
|
||
|
class VTKFILTERSCORE_EXPORT vtkCellCenters : public vtkPolyDataAlgorithm
|
||
|
{
|
||
|
public:
|
||
|
vtkTypeMacro(vtkCellCenters, vtkPolyDataAlgorithm);
|
||
|
void PrintSelf(ostream& os, vtkIndent indent) override;
|
||
|
|
||
|
/**
|
||
|
* Construct object with vertex cell generation turned off.
|
||
|
*/
|
||
|
static vtkCellCenters* New();
|
||
|
|
||
|
//@{
|
||
|
/**
|
||
|
* Enable/disable the generation of vertex cells. The default
|
||
|
* is Off.
|
||
|
*/
|
||
|
vtkSetMacro(VertexCells, bool);
|
||
|
vtkGetMacro(VertexCells, bool);
|
||
|
vtkBooleanMacro(VertexCells, bool);
|
||
|
//@}
|
||
|
|
||
|
//@{
|
||
|
/**
|
||
|
* Enable/disable whether input cell data arrays should be passed through (or
|
||
|
* copied) as output point data arrays. Default is `true` i.e. the arrays will
|
||
|
* be propagated.
|
||
|
*/
|
||
|
vtkSetMacro(CopyArrays, bool);
|
||
|
vtkGetMacro(CopyArrays, bool);
|
||
|
vtkBooleanMacro(CopyArrays, bool);
|
||
|
//@}
|
||
|
|
||
|
/**
|
||
|
* Compute centers of cells from a dataset, storing them in the centers array.
|
||
|
*/
|
||
|
static void ComputeCellCenters(vtkDataSet* dataset, vtkDoubleArray* centers);
|
||
|
|
||
|
protected:
|
||
|
vtkCellCenters() = default;
|
||
|
~vtkCellCenters() override = default;
|
||
|
|
||
|
int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override;
|
||
|
int FillInputPortInformation(int port, vtkInformation* info) override;
|
||
|
|
||
|
bool VertexCells = false;
|
||
|
bool CopyArrays = true;
|
||
|
|
||
|
private:
|
||
|
vtkCellCenters(const vtkCellCenters&) = delete;
|
||
|
void operator=(const vtkCellCenters&) = delete;
|
||
|
};
|
||
|
|
||
|
#endif
|