84#ifndef vtkImprintFilter_h
85#define vtkImprintFilter_h
87#include "vtkFiltersModelingModule.h"
90VTK_ABI_NAMESPACE_BEGIN
146 vtkGetMacro(Tolerance,
double);
158 ABSOLUTE_TOLERANCE = 0,
159 RELATIVE_TO_PROJECTION_TOLERANCE = 1,
160 RELATIVE_TO_MIN_EDGE_LENGTH = 2,
161 RELATIVE_TO_AVERAGE_EDGE_LENGTH = 3
170 vtkSetClampMacro(MergeToleranceType,
int, ABSOLUTE_TOLERANCE, RELATIVE_TO_AVERAGE_EDGE_LENGTH);
171 vtkGetMacro(MergeToleranceType,
int);
175 this->SetMergeToleranceType(RELATIVE_TO_PROJECTION_TOLERANCE);
179 this->SetMergeToleranceType(RELATIVE_TO_MIN_EDGE_LENGTH);
183 this->SetMergeToleranceType(RELATIVE_TO_AVERAGE_EDGE_LENGTH);
186 vtkGetMacro(MergeTolerance,
double);
197 DECOUPLED_TOLERANCES = 0,
198 LINKED_TOLERANCES = 1
219 PROJECTED_IMPRINT = 2,
220 IMPRINTED_REGION = 3,
238 vtkSetClampMacro(OutputType,
int, TARGET_CELLS, MERGED_IMPRINT);
239 vtkGetMacro(OutputType,
int);
255 vtkSetMacro(BoundaryEdgeInsertion,
bool);
256 vtkGetMacro(BoundaryEdgeInsertion,
bool);
257 vtkBooleanMacro(BoundaryEdgeInsertion,
bool);
265 vtkSetMacro(PassCellData,
bool);
266 vtkGetMacro(PassCellData,
bool);
267 vtkBooleanMacro(PassCellData,
bool);
279 vtkSetMacro(PassPointData,
bool);
280 vtkGetMacro(PassPointData,
bool);
281 vtkBooleanMacro(PassPointData,
bool);
286 USE_TARGET_EDGES = 0,
287 USE_IMPRINT_EDGES = 1
296 vtkSetClampMacro(PointInterpolation,
int, USE_TARGET_EDGES, USE_IMPRINT_EDGES);
297 vtkGetMacro(PointInterpolation,
int);
305 TRIANGULATION_INPUT = 1,
306 TRIANGULATION_OUTPUT = 2
317 vtkSetMacro(TriangulateOutput,
bool);
318 vtkGetMacro(TriangulateOutput,
bool);
319 vtkBooleanMacro(TriangulateOutput,
bool);
331 vtkSetClampMacro(DebugOutputType,
int, NO_DEBUG_OUTPUT, TRIANGULATION_OUTPUT);
332 vtkGetMacro(DebugOutputType,
int);
Proxy object to connect input/output ports.
general representation of visualization data
Imprint the contact surface of one object onto another surface.
void SetImprintData(vtkDataObject *imprint)
Specify the a second vtkPolyData input which defines the surface mesh with which to imprint the targe...
~vtkImprintFilter() override
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void SetPointInterpolationToImprintEdges()
If PassPointData is on, indicate how new point data is to generated at the intersection points betwee...
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
vtkDataObject * GetImprint()
Specify the a second vtkPolyData input which defines the surface mesh with which to imprint the targe...
void SetOutputTypeToTargetCells()
Control what is output by the filter.
void SetMergeToleranceTypeToMinEdge()
Specify a tolerance which is used to determine whether two points are considered coincident to one an...
void SetOutputTypeToProjectedImprint()
Control what is output by the filter.
void SetMergeToleranceTypeToAbsolute()
Specify a tolerance which is used to determine whether two points are considered coincident to one an...
void SetDebugOutputTypeToNoDebugOutput()
The following methods support debugging.
void SetImprintConnection(vtkAlgorithmOutput *algOutput)
Specify the a second vtkPolyData input connection which defines the surface mesh with which to imprin...
void SetToleranceStrategyToLinked()
Specify the relationship between the merge tolerance and the projection tolerance.
void SetDebugOutputTypeToTriangulationOutput()
The following methods support debugging.
void SetDebugOutputTypeToTriangulationInput()
The following methods support debugging.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods to instantiate, print and provide type information.
void SetToleranceStrategyToDecoupled()
Specify the relationship between the merge tolerance and the projection tolerance.
vtkPolyData * GetDebugOutput()
Get the output data (in the second output, if the DebugOutput != NO_DEBUG_OUTPUT).
void SetMergeToleranceTypeToRelativeToProjection()
Specify a tolerance which is used to determine whether two points are considered coincident to one an...
bool BoundaryEdgeInsertion
void SetOutputTypeToImprintedCells()
Control what is output by the filter.
void SetPointInterpolationToTargetEdges()
If PassPointData is on, indicate how new point data is to generated at the intersection points betwee...
vtkDataObject * GetTarget()
Specify the first vtkPolyData input which defines the surface mesh to imprint (i.e....
void SetMergeToleranceTypeToAverageEdge()
Specify a tolerance which is used to determine whether two points are considered coincident to one an...
void SetTargetData(vtkDataObject *target)
Specify the first vtkPolyData input which defines the surface mesh to imprint (i.e....
static vtkImprintFilter * New()
Standard methods to instantiate, print and provide type information.
vtkAlgorithmOutput * GetImprintConnection()
vtkAlgorithmOutput * GetTargetConnection()
void SetOutputTypeToMergedImprint()
Control what is output by the filter.
void SetOutputTypeToImprintedRegion()
Control what is output by the filter.
double ComputeMergeTolerance(vtkPolyData *pdata)
void SetTargetConnection(vtkAlgorithmOutput *algOutput)
Specify the first vtkPolyData input connection which defines the surface mesh to imprint (i....
a simple class to control print indentation
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
perform fast cell location operations
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)