1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
/**
* @class vtkCellGridResponder
* @brief Respond to a query on one particular type of cell.
*
* This is pure virtual base class that all responder types must inherit.
*/
#ifndef vtkCellGridResponder_h
#define vtkCellGridResponder_h
#include "vtkCellGridResponderBase.h"
VTK_ABI_NAMESPACE_BEGIN
template <typename QueryClass>
class VTK_ALWAYS_EXPORT vtkCellGridResponder : public vtkCellGridResponderBase
{
public:
vtkTypeMacro(vtkCellGridResponder<QueryClass>, vtkCellGridResponderBase);
void PrintSelf(ostream& os, vtkIndent indent) override
{
this->Superclass::PrintSelf(os, indent);
}
bool EvaluateQuery(
vtkCellGridQuery* query, vtkCellMetadata* cellType, vtkCellGridResponders* caches) override
{
auto* qq = dynamic_cast<QueryClass*>(query);
if (qq)
{
return this->Query(qq, cellType, caches);
}
return false;
}
virtual bool Query(
QueryClass* query, vtkCellMetadata* cellType, vtkCellGridResponders* caches) = 0;
protected:
vtkCellGridResponder() = default;
~vtkCellGridResponder() override = default;
private:
vtkCellGridResponder(const vtkCellGridResponder&) = delete;
void operator=(const vtkCellGridResponder&) = delete;
};
VTK_ABI_NAMESPACE_END
#endif // vtkCellGridResponder_h
// VTK-HeaderTest-Exclude: vtkCellGridResponder.h
|