11#define vtkInheritanceHierarchyBodyMacro(thisClass) \
13 std::vector<vtkStringToken> result; \
14 vtk::Inherits<thisClass>(result); \
23#define vtkInheritanceHierarchyBaseMacro(thisClass) \
24 virtual std::vector<vtkStringToken> InheritanceHierarchy() \
25 const vtkInheritanceHierarchyBodyMacro(thisClass)
27#define vtkInheritanceHierarchyOverrideMacro(thisClass) \
28 std::vector<vtkStringToken> InheritanceHierarchy() \
29 const override vtkInheritanceHierarchyBodyMacro(thisClass)
36VTK_ABI_NAMESPACE_BEGIN
39template <
typename Container,
typename StopAtType =
void>
50 if (!std::is_same<StopAtType, T>::value)
52 std::string typeName = vtk::TypeName<T>();
64VTK_ABI_NAMESPACE_BEGIN
74template <
typename VTKObjectType>
86 static Yes Test(
typename C::Superclass*);
93 value =
sizeof(Test<VTKObjectType>(
nullptr)) ==
sizeof(Yes)
115template <typename VTKObjectType, bool IsDerived = HasSuperclass<VTKObjectType>::value>
118template <
typename VTKObjectType>
121 template <
typename Functor>
124 ff.template operator()<VTKObjectType>();
128template <
typename VTKObjectType>
132 template <
typename Functor>
133 inline static typename std::enable_if<
134 std::is_same<decltype(std::declval<Functor>().template operator()<
vtkObject>()),
void>::value,
137 ff.template operator()<VTKObjectType>();
142 template <
typename Functor>
143 inline static typename std::enable_if<
144 std::is_same<decltype(std::declval<Functor>().template operator()<
vtkObject>()),
bool>::value,
147 if (ff.template
operator()<VTKObjectType>())
167template <
typename VTKObjectType,
typename Container>
174template <
typename VTKObjectType,
typename StopAtType,
typename Container>
abstract base class for most VTK objects
Determine whether the provided class (VTKObjectType ) has a parent class.
Specialization of tuple ranges and iterators for vtkAOSDataArrayTemplate.
void Inherits(Container &container)
Populate the container with the name of this class and its ancestors.
static void enumerate(Functor &ff)
static void ::type enumerate(Functor &ff)
Invoke a functor on the named type and each of its parent types.