VTK  9.0.20200919
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 
36 #include "vtkFiltersCoreModule.h" // For export macro
37 #include "vtkObject.h"
38 
40 class vtkMatrix4x4;
42 
43 class VTKFILTERSCORE_EXPORT vtkEdgeSubdivisionCriterion : public vtkObject
44 {
45 public:
47  void PrintSelf(ostream& os, vtkIndent indent) override;
48 
54  virtual bool EvaluateLocationAndFields(double* p1, int field_start) = 0;
55 
64  virtual int PassField(int sourceId, int sourceSize, vtkStreamingTessellator* t);
65 
71  virtual void ResetFieldList();
72 
78  virtual bool DontPassField(int sourceId, vtkStreamingTessellator* t);
79 
85  const int* GetFieldIds() const;
86 
92  const int* GetFieldOffsets() const;
93 
98  int GetOutputField(int fieldId) const;
99 
105  int GetNumberOfFields() const;
106 
107 protected:
109  ~vtkEdgeSubdivisionCriterion() override;
110 
111  int* FieldIds;
114 
140  bool ViewDependentEval(const double* p0, double* p1, double* p1_actual, const double* p2,
141  int field_start, vtkMatrix4x4* viewtrans, const double* pixelSize,
142  double allowableChordErr) const;
143 
177  bool FixedFieldErrorEval(double* p1, double* p1_actual, int field_start, int field_criteria,
178  double* allowableFieldErr) const;
179 
180 private:
182  void operator=(const vtkEdgeSubdivisionCriterion&) = delete;
183 };
184 
186 {
187  return this->FieldIds;
188 }
190 {
191  return this->FieldOffsets;
192 }
194 {
195  return this->NumberOfFields;
196 }
197 
198 #endif // vtkEdgeSubdivisionCriterion_h
vtkStreamingTessellator
An algorithm that refines an initial simplicial tessellation using edge subdivision.
Definition: vtkStreamingTessellator.h:85
vtkDataSetAttributes
represent and manipulate attribute data in a dataset
Definition: vtkDataSetAttributes.h:60
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:62
vtkEdgeSubdivisionCriterion::GetFieldOffsets
const int * GetFieldOffsets() const
Return the offset into an output vertex array of all fields.
Definition: vtkEdgeSubdivisionCriterion.h:189
vtkEdgeSubdivisionCriterion
how to decide whether a linear approximation to nonlinear geometry or field should be subdivided
Definition: vtkEdgeSubdivisionCriterion.h:43
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkEdgeSubdivisionCriterion::GetFieldIds
const int * GetFieldIds() const
Return the map from output field id to input field ids.
Definition: vtkEdgeSubdivisionCriterion.h:185
vtkMatrix4x4
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:35
vtkEdgeSubdivisionCriterion::GetNumberOfFields
int GetNumberOfFields() const
Return the number of fields being evaluated at each output vertex.
Definition: vtkEdgeSubdivisionCriterion.h:193
vtkObject::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkObject.h
vtkEdgeSubdivisionCriterion::FieldIds
int * FieldIds
Definition: vtkEdgeSubdivisionCriterion.h:111
vtkEdgeSubdivisionCriterion::FieldOffsets
int * FieldOffsets
Definition: vtkEdgeSubdivisionCriterion.h:112
vtkEdgeSubdivisionCriterion::NumberOfFields
int NumberOfFields
Definition: vtkEdgeSubdivisionCriterion.h:113