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 
40 #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 
174 {
175  return this->CurrentCellId;
176 }
178 {
179  return this->CurrentCellId;
180 }
181 
183 {
184  return this->CurrentMesh;
185 }
187 {
188  return this->CurrentMesh;
189 }
190 
192 {
193  return this->CurrentCellData;
194 }
196 {
197  return this->CurrentCellData;
198 }
199 
200 #endif // vtkDataSetEdgeSubdivisionCriterion_h
vtkDataSetEdgeSubdivisionCriterion::CurrentCellId
vtkIdType CurrentCellId
Definition: vtkDataSetEdgeSubdivisionCriterion.h:159
vtkEdgeSubdivisionCriterion.h
vtkIdType
int vtkIdType
Definition: vtkType.h:349
vtkObject::New
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
vtkDataSetEdgeSubdivisionCriterion::GetCell
vtkCell * GetCell()
Definition: vtkDataSetEdgeSubdivisionCriterion.h:191
vtkDataSetEdgeSubdivisionCriterion::FieldError2Length
int FieldError2Length
Definition: vtkDataSetEdgeSubdivisionCriterion.h:164
vtkDataSetEdgeSubdivisionCriterion::CurrentCellData
vtkCell * CurrentCellData
Definition: vtkDataSetEdgeSubdivisionCriterion.h:160
vtkDataSetEdgeSubdivisionCriterion::ActiveFieldCriteria
int ActiveFieldCriteria
Definition: vtkDataSetEdgeSubdivisionCriterion.h:166
vtkDataSetEdgeSubdivisionCriterion::CurrentMesh
vtkDataSet * CurrentMesh
Definition: vtkDataSetEdgeSubdivisionCriterion.h:158
vtkEdgeSubdivisionCriterion::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkEdgeSubdivisionCriterion::EvaluateEdge
virtual bool EvaluateEdge(const double *p0, double *p1, const double *p2, int field_start)=0
You must implement this member function in a subclass.
vtkEdgeSubdivisionCriterion
how to decide whether a linear approximation to nonlinear geometry or field should be subdivided
Definition: vtkEdgeSubdivisionCriterion.h:43
vtkCell
abstract class to specify cell behavior
Definition: vtkCell.h:56
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:33
vtkX3D::field
Definition: vtkX3D.h:183
vtkDataSetEdgeSubdivisionCriterion::GetMesh
vtkDataSet * GetMesh()
Definition: vtkDataSetEdgeSubdivisionCriterion.h:182
vtkDataSetEdgeSubdivisionCriterion::GetActiveFieldCriteria
int GetActiveFieldCriteria() const
Definition: vtkDataSetEdgeSubdivisionCriterion.h:151
vtkDataSetEdgeSubdivisionCriterion::FieldError2
double * FieldError2
Definition: vtkDataSetEdgeSubdivisionCriterion.h:163
vtkDataSetEdgeSubdivisionCriterion::FieldError2Capacity
int FieldError2Capacity
Definition: vtkDataSetEdgeSubdivisionCriterion.h:165
vtkDataSetEdgeSubdivisionCriterion
a subclass of vtkEdgeSubdivisionCriterion for vtkDataSet objects.
Definition: vtkDataSetEdgeSubdivisionCriterion.h:45
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:56
vtkDataSetEdgeSubdivisionCriterion::GetCellId
vtkIdType GetCellId() const
Definition: vtkDataSetEdgeSubdivisionCriterion.h:177
vtkDataSetEdgeSubdivisionCriterion::ChordError2
double ChordError2
Definition: vtkDataSetEdgeSubdivisionCriterion.h:162