1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-FileCopyrightText: Copyright 2009 Sandia Corporation
// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
/**
* @class vtkRecoverGeometryWireframe
* @brief Get corrected wireframe from tessellated facets
*
* This filter create an edge mask that is used at render time to ignore the
* rendering of specific edges in wireframe mode. For that it checks a cell attribute
* so that each adjacent cells having the same attribute value will not display an
* edge between them.
*
* The main usage of this filter is at the output of vtkDataSetSurfaceFilter or
* vtkGeometryFilter, when we are subdividing non-linear cells but we still want to
* visualize the edges of the original cells. In this case the cell attribute
* will usually be the original cell id values.
*
* @warning As the edge flag mechanism does not allow to specify a single edge
* from a point the filter might duplicate some points, so topology
* is not preserved.
*
* @sa
* vtkDataSetSurfaceFilter
*/
#ifndef vtkRecoverGeometryWireframe_h
#define vtkRecoverGeometryWireframe_h
#include "vtkFiltersGeometryModule.h" // For export macro
#include "vtkPolyDataAlgorithm.h"
#include <string> // std::string
VTK_ABI_NAMESPACE_BEGIN
class VTKFILTERSGEOMETRY_EXPORT vtkRecoverGeometryWireframe : public vtkPolyDataAlgorithm
{
public:
vtkTypeMacro(vtkRecoverGeometryWireframe, vtkPolyDataAlgorithm);
static vtkRecoverGeometryWireframe* New();
void PrintSelf(ostream& os, vtkIndent indent) override;
///@{
/**
* Get/Set the cell attribute name that will be used to discriminate edges that
* should be kept from edges that shouldn't. This array should be a vtkIdType
* array.
*
* Default is empty.
*/
vtkSetMacro(CellIdsAttribute, std::string);
vtkGetMacro(CellIdsAttribute, std::string);
///@}
protected:
vtkRecoverGeometryWireframe();
~vtkRecoverGeometryWireframe() override;
int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
vtkInformationVector* outputVector) override;
private:
vtkRecoverGeometryWireframe(const vtkRecoverGeometryWireframe&) = delete;
void operator=(const vtkRecoverGeometryWireframe&) = delete;
std::string CellIdsAttribute;
};
VTK_ABI_NAMESPACE_END
#endif // vtkRecoverGeometryWireframe_h
|