VTK  9.2.6
vtkEdgeSubdivisionCriterion.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkEdgeSubdivisionCriterion.h
5  Language: C++
6 
7  Copyright 2003 Sandia Corporation.
8  Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
9  license for use of this work by or on behalf of the
10  U.S. Government. Redistribution and use in source and binary forms, with
11  or without modification, are permitted provided that this Notice and any
12  statement of authorship are reproduced on all copies.
13 
14 =========================================================================*/
15 #ifndef vtkEdgeSubdivisionCriterion_h
16 #define vtkEdgeSubdivisionCriterion_h
17 
39 #include "vtkFiltersCoreModule.h" // For export macro
40 #include "vtkObject.h"
41 
43 class vtkMatrix4x4;
45 
46 class VTKFILTERSCORE_EXPORT vtkEdgeSubdivisionCriterion : public vtkObject
47 {
48 public:
50  void PrintSelf(ostream& os, vtkIndent indent) override;
51 
57  virtual bool EvaluateLocationAndFields(double* p1, int field_start) = 0;
58 
67  virtual int PassField(int sourceId, int sourceSize, vtkStreamingTessellator* t);
68 
74  virtual void ResetFieldList();
75 
81  virtual bool DontPassField(int sourceId, vtkStreamingTessellator* t);
82 
88  const int* GetFieldIds() const;
89 
95  const int* GetFieldOffsets() const;
96 
101  int GetOutputField(int fieldId) const;
102 
108  int GetNumberOfFields() const;
109 
110 protected:
112  ~vtkEdgeSubdivisionCriterion() override;
113 
114  int* FieldIds;
117 
143  bool ViewDependentEval(const double* p0, double* p1, double* p1_actual, const double* p2,
144  int field_start, vtkMatrix4x4* viewtrans, const double* pixelSize,
145  double allowableChordErr) const;
146 
178  bool FixedFieldErrorEval(double* p1, double* p1_actual, int field_start, int field_criteria,
179  double* allowableFieldErr) const;
180 
181 private:
183  void operator=(const vtkEdgeSubdivisionCriterion&) = delete;
184 };
185 
187 {
188  return this->FieldIds;
189 }
191 {
192  return this->FieldOffsets;
193 }
195 {
196  return this->NumberOfFields;
197 }
198 
199 #endif // vtkEdgeSubdivisionCriterion_h
abstract base class for most VTK objects
Definition: vtkObject.h:62
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:41
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:39
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.
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.