VTK  9.7.1
vtkDGRangeResponder.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
28 #ifndef vtkDGRangeResponder_h
29 #define vtkDGRangeResponder_h
30 
31 #include "vtkFiltersCellGridModule.h" // for export macro
32 
33 #include "vtkCellGridRangeQuery.h" // for inheritance
34 #include "vtkCellGridResponder.h"
35 
36 VTK_ABI_NAMESPACE_BEGIN
37 class vtkCellAttribute;
38 class vtkCellMetadata;
39 class vtkDGCell;
40 class vtkDataArray;
41 class vtkTypeInt64Array;
42 
43 class VTKFILTERSCELLGRID_EXPORT vtkDGRangeResponder
44  : public vtkCellGridResponder<vtkCellGridRangeQuery>
45 {
46 public:
47  static vtkDGRangeResponder* New();
49 
50  bool Query(vtkCellGridRangeQuery* query, vtkCellMetadata* cellType,
51  vtkCellGridResponders* caches) override;
52 
53 protected:
54  vtkDGRangeResponder() = default;
55  ~vtkDGRangeResponder() override = default;
56 
57 private:
58  template <bool DOFSharing, bool FiniteRange>
59  bool ConstantRange(vtkDGCell* dgCell, vtkCellAttribute* attribute,
60  const vtkCellAttribute::CellTypeInfo& cellTypeInfo, vtkDataArray* values,
61  vtkCellGridRangeQuery* request);
62 
63  template <bool DOFSharing, bool FiniteRange>
64  bool HGradRange(vtkDGCell* dgCell, vtkCellAttribute* attribute,
65  const vtkCellAttribute::CellTypeInfo& cellTypeInfo, vtkDataArray* values,
66  vtkCellGridRangeQuery* request);
67 
68  template <bool DOFSharing, bool FiniteRange>
69  bool HCurlRange(vtkDGCell* dgCell, vtkCellAttribute* attribute,
70  const vtkCellAttribute::CellTypeInfo& cellTypeInfo, vtkDataArray* values,
71  vtkCellGridRangeQuery* request);
72 
73  template <bool DOFSharing, bool FiniteRange>
74  bool HDivRange(vtkDGCell* dgCell, vtkCellAttribute* attribute,
75  const vtkCellAttribute::CellTypeInfo& cellTypeInfo, vtkDataArray* values,
76  vtkCellGridRangeQuery* request);
77 
78 #if 0
79  template<bool FiniteRange, bool DOFSharing>
81  bool HCurl(
82  vtkCellAttribute* attribute,
83  vtkDataArray* conn,
84  vtkDataArray* values,
85  vtkCellGridRangeQuery* request);
86 
87  // Update the range of a discontinuous Lagrange-polynomial attribute.
88  template <bool FiniteRange>
89  bool DiscontinuousLagrange(
90  vtkCellAttribute* attribute, vtkDataArray* values, vtkCellGridRangeQuery* request);
91 
92  // Update the range of a continuous Lagrange-polynomial attribute.
93  template <bool FiniteRange>
94  bool ContinuousLagrange(vtkCellAttribute* attribute, vtkDataArray* conn,
95  vtkDataArray* values, vtkCellGridRangeQuery* request);
96 #endif
97 
99  void operator=(const vtkDGRangeResponder&) = delete;
100 };
101 
102 VTK_ABI_NAMESPACE_END
103 #endif // vtkDGRangeResponder_h
104 // VTK-HeaderTest-Exclude: vtkDGRangeResponder.h
Respond to a query on one particular type of cell.
Metadata for a particular type of cell (finite element).
A container that holds objects able to respond to queries specialized for particular vtkCellMetadata ...
A function defined over the physical domain of a vtkCellGrid.
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:44
Base class for a discontinuous Galerkin cells of all shapes.
Definition: vtkDGCell.h:43
Compute the range of a component of some vtkCellAttribute.
virtual bool Query(QueryClass *query, vtkCellMetadata *cellType, vtkCellGridResponders *caches)=0
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
Compute the range of a cell-attribute over any vtkDGCell.