VTK
vtkTessellatorFilter.h
Go to the documentation of this file.
1/*=========================================================================
2
3Program: Visualization Toolkit
4Module: vtkTessellatorFilter.h
5Language: C++
6
7Copyright 2003 Sandia Corporation.
8Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
9license for use of this work by or on behalf of the
10U.S. Government. Redistribution and use in source and binary forms, with
11or without modification, are permitted provided that this Notice and any
12statement of authorship are reproduced on all copies.
13
14=========================================================================*/
15#ifndef vtkTessellatorFilter_h
16#define vtkTessellatorFilter_h
17
59#include "vtkFiltersGeneralModule.h" // For export macro
61
62class vtkDataArray;
63class vtkDataSet;
65class vtkPointLocator;
66class vtkPoints;
70
71class VTKFILTERSGENERAL_EXPORT vtkTessellatorFilter : public vtkUnstructuredGridAlgorithm
72{
73public:
75 void PrintSelf( ostream& os, vtkIndent indent ) VTK_OVERRIDE;
76
78
80 vtkGetObjectMacro(Tessellator, vtkStreamingTessellator);
81
83 vtkGetObjectMacro(Subdivider, vtkDataSetEdgeSubdivisionCriterion);
84
85 vtkMTimeType GetMTime() VTK_OVERRIDE;
86
88
96 vtkSetClampMacro(OutputDimension,int,1,3);
97 vtkGetMacro(OutputDimension,int);
99
100 int GetOutputDimension() const;
101
103
108 virtual void SetMaximumNumberOfSubdivisions( int num_subdiv_in );
109 int GetMaximumNumberOfSubdivisions();
110 virtual void SetChordError( double ce );
111 double GetChordError();
113
115
118 virtual void ResetFieldCriteria();
119 virtual void SetFieldCriterion( int field, double chord );
121
123
129 vtkGetMacro(MergePoints,int);
130 vtkSetMacro(MergePoints,int);
131 vtkBooleanMacro(MergePoints,int);
133
134protected:
136 ~vtkTessellatorFilter() VTK_OVERRIDE;
137
138 int FillInputPortInformation(int port, vtkInformation* info) VTK_OVERRIDE;
139
145 void SetupOutput( vtkDataSet* input, vtkUnstructuredGrid* output );
146
150 void MergeOutputPoints( vtkUnstructuredGrid* input, vtkUnstructuredGrid* output );
151
155 void Teardown();
156
160 int RequestData(vtkInformation* request,
161 vtkInformationVector** inputVector,
162 vtkInformationVector* outputVector) VTK_OVERRIDE;
163
166 int OutputDimension;
167 int MergePoints;
169
171
176 vtkPoints* OutputPoints;
177 vtkDataArray** OutputAttributes;
178 int* OutputAttributeIndices;
180
181 static void AddAPoint( const double*,
183 void*,
184 const void* );
185 static void AddALine( const double*,
186 const double*,
188 void*,
189 const void* );
190 static void AddATriangle( const double*,
191 const double*,
192 const double*,
194 void*,
195 const void* );
196 static void AddATetrahedron( const double*,
197 const double*,
198 const double*,
199 const double*,
201 void*,
202 const void* );
203 void OutputPoint( const double* );
204 void OutputLine( const double*, const double* );
205 void OutputTriangle( const double*, const double*, const double* );
206 void OutputTetrahedron( const double*,
207 const double*,
208 const double*,
209 const double* );
210
211private:
212 vtkTessellatorFilter( const vtkTessellatorFilter& ) VTK_DELETE_FUNCTION;
213 void operator = ( const vtkTessellatorFilter& ) VTK_DELETE_FUNCTION;
214};
215
216inline int vtkTessellatorFilter::GetOutputDimension() const
217{
218 return this->OutputDimension;
219}
220
221#endif // vtkTessellatorFilter_h
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
a subclass of vtkEdgeSubdivisionCriterion for vtkDataSet objects.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:63
how to decide whether a linear approximation to nonlinear geometry or field should be subdivided
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
quickly locate points in 3-space
represent and manipulate 3D points
Definition: vtkPoints.h:40
An algorithm that refines an initial simplicial tessellation using edge subdivision.
approximate nonlinear FEM elements with simplices
virtual void SetSubdivider(vtkDataSetEdgeSubdivisionCriterion *)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void SetTessellator(vtkStreamingTessellator *)
vtkMTimeType GetMTime() override
Return this object's modified time.
static vtkTessellatorFilter * New()
Superclass for algorithms that produce only unstructured grid as output.
dataset represents arbitrary combinations of all possible cell types
@ field
Definition: vtkX3D.h:177
@ info
Definition: vtkX3D.h:376
@ port
Definition: vtkX3D.h:447
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkTypeUInt64 vtkMTimeType
Definition: vtkType.h:248