VTK  9.7.1
vtkEdgeSubdivisionCriterion.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright 2003 Sandia Corporation
3 // SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
4 #ifndef vtkEdgeSubdivisionCriterion_h
5 #define vtkEdgeSubdivisionCriterion_h
6 
28 #include "vtkFiltersCoreModule.h" // For export macro
29 #include "vtkObject.h"
30 #include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
31 
32 VTK_ABI_NAMESPACE_BEGIN
34 class vtkMatrix4x4;
36 
37 class VTKFILTERSCORE_EXPORT VTK_MARSHALAUTO vtkEdgeSubdivisionCriterion : public vtkObject
38 {
39 public:
41  void PrintSelf(ostream& os, vtkIndent indent) override;
42 
48  virtual bool EvaluateLocationAndFields(double* p1, int field_start) = 0;
49 
58  virtual int PassField(int sourceId, int sourceSize, vtkStreamingTessellator* t);
59 
65  virtual void ResetFieldList();
66 
72  virtual bool DontPassField(int sourceId, vtkStreamingTessellator* t);
73 
79  const int* GetFieldIds() const;
80 
86  const int* GetFieldOffsets() const;
87 
92  int GetOutputField(int fieldId) const;
93 
99  int GetNumberOfFields() const;
100 
101 protected:
103  ~vtkEdgeSubdivisionCriterion() override;
104 
105  int* FieldIds;
108 
134  bool ViewDependentEval(const double* p0, double* p1, double* p1_actual, const double* p2,
135  int field_start, vtkMatrix4x4* viewtrans, const double* pixelSize,
136  double allowableChordErr) const;
137 
169  bool FixedFieldErrorEval(double* p1, double* p1_actual, int field_start, int field_criteria,
170  double* allowableFieldErr) const;
171 
172 private:
174  void operator=(const vtkEdgeSubdivisionCriterion&) = delete;
175 };
176 
178 {
179  return this->FieldIds;
180 }
182 {
183  return this->FieldOffsets;
184 }
186 {
187  return this->NumberOfFields;
188 }
189 
190 VTK_ABI_NAMESPACE_END
191 #endif // vtkEdgeSubdivisionCriterion_h
abstract base class for most VTK objects
Definition: vtkObject.h:52
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:31
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
An algorithm that refines an initial simplicial tessellation using edge subdivision.
a simple class to control print indentation
Definition: vtkIndent.h:28
represent and manipulate attribute data in a dataset
how to decide whether a linear approximation to nonlinear geometry or field should be subdivided ...
int GetNumberOfFields() const
Return the number of fields being evaluated at each output vertex.
#define VTK_MARSHALAUTO
const int * GetFieldIds() const
Return the map from output field id to input field ids.
const int * GetFieldOffsets() const
Return the offset into an output vertex array of all fields.