VTK
vtkDataSetEdgeSubdivisionCriterion.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkDataSetEdgeSubdivisionCriterion.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 vtkDataSetEdgeSubdivisionCriterion_h
16 #define vtkDataSetEdgeSubdivisionCriterion_h
17 
39 #include "vtkFiltersCoreModule.h" // For export macro
41 
42 class vtkCell;
43 class vtkDataSet;
44 
46 {
47  public:
50  void PrintSelf( ostream& os, vtkIndent indent ) override;
51 
52  virtual void SetMesh( vtkDataSet* );
53  vtkDataSet* GetMesh();
54 
55  const vtkDataSet* GetMesh() const;
56 
57  virtual void SetCellId( vtkIdType cell );
58  vtkIdType GetCellId() const;
59 
60  vtkIdType& GetCellId();
61 
62  vtkCell* GetCell();
63 
64  const vtkCell* GetCell() const;
65 
66  bool EvaluateEdge( const double* p0, double* midpt, const double* p1, int field_start ) override;
67 
106  double* EvaluateFields( double* vertex, double* weights, int field_start );
107 
109 
114  void EvaluatePointDataField( double* result, double* weights, int field );
115  void EvaluateCellDataField( double* result, double* weights, int field );
117 
119 
123  vtkSetMacro(ChordError2,double);
124  vtkGetMacro(ChordError2,double);
126 
128 
134  virtual void SetFieldError2( int s, double err );
135  double GetFieldError2( int s ) const;
137 
142  virtual void ResetFieldError2();
143 
145 
150  vtkGetMacro(ActiveFieldCriteria,int);
151  int GetActiveFieldCriteria() const { return this->ActiveFieldCriteria; }
153 
154  protected:
157 
161 
162  double ChordError2;
163  double* FieldError2;
167 
168  private:
170  void operator = ( const vtkDataSetEdgeSubdivisionCriterion& ) = delete;
171 
172 };
173 
174 inline vtkIdType& vtkDataSetEdgeSubdivisionCriterion::GetCellId() { return this->CurrentCellId; }
175 inline vtkIdType vtkDataSetEdgeSubdivisionCriterion::GetCellId() const { return this->CurrentCellId; }
176 
177 inline vtkDataSet* vtkDataSetEdgeSubdivisionCriterion::GetMesh() { return this->CurrentMesh; }
178 inline const vtkDataSet* vtkDataSetEdgeSubdivisionCriterion::GetMesh() const { return this->CurrentMesh; }
179 
180 inline vtkCell* vtkDataSetEdgeSubdivisionCriterion::GetCell() { return this->CurrentCellData; }
181 inline const vtkCell* vtkDataSetEdgeSubdivisionCriterion::GetCell() const { return this->CurrentCellData; }
182 
183 #endif // vtkDataSetEdgeSubdivisionCriterion_h
a subclass of vtkEdgeSubdivisionCriterion for vtkDataSet objects.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
int GetActiveFieldCriteria() const
Return a bitfield specifying which FieldError2 criteria are positive (i.e., actively used to decide e...
int vtkIdType
Definition: vtkType.h:349
abstract class to specify cell behavior
Definition: vtkCell.h:59
a simple class to control print indentation
Definition: vtkIndent.h:39
virtual bool EvaluateEdge(const double *p0, double *p1, const double *p2, int field_start)=0
You must implement this member function in a subclass.
how to decide whether a linear approximation to nonlinear geometry or field should be subdivided ...
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.