diff --git a/Accelerators/Vtkm/Core/vtkmDataArray.cxx b/Accelerators/Vtkm/Core/vtkmDataArray.cxx
index 6e2aa0600abfbf3b0b151923a3abc9aa26ab38ae..dec8a274f88a926dba9739952246b8078951b9e2 100644
--- a/Accelerators/Vtkm/Core/vtkmDataArray.cxx
+++ b/Accelerators/Vtkm/Core/vtkmDataArray.cxx
@@ -21,6 +21,7 @@
 
 #include "vtkmDataArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template class VTKACCELERATORSVTKMCORE_EXPORT vtkmDataArray<char>;
 template class VTKACCELERATORSVTKMCORE_EXPORT vtkmDataArray<double>;
 template class VTKACCELERATORSVTKMCORE_EXPORT vtkmDataArray<float>;
@@ -34,3 +35,4 @@ template class VTKACCELERATORSVTKMCORE_EXPORT vtkmDataArray<unsigned int>;
 template class VTKACCELERATORSVTKMCORE_EXPORT vtkmDataArray<unsigned long>;
 template class VTKACCELERATORSVTKMCORE_EXPORT vtkmDataArray<unsigned long long>;
 template class VTKACCELERATORSVTKMCORE_EXPORT vtkmDataArray<unsigned short>;
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Core/vtkmDataArray.h b/Accelerators/Vtkm/Core/vtkmDataArray.h
index 4db10575651e8c6987d303471415f2cb0483d37b..5ebd3f77b277a52d1980e2593fd649ec7455d847 100644
--- a/Accelerators/Vtkm/Core/vtkmDataArray.h
+++ b/Accelerators/Vtkm/Core/vtkmDataArray.h
@@ -34,12 +34,15 @@
 
 namespace internal
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename T>
 class ArrayHandleWrapperBase;
 
+VTK_ABI_NAMESPACE_END
 } // internal
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 class vtkmDataArray : public vtkGenericDataArray<vtkmDataArray<T>, T>
 {
@@ -116,6 +119,7 @@ extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT vtkmDataArray<unsi
 extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT vtkmDataArray<unsigned short>;
 #endif // vtkmDataArray_cxx
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmDataArray_h
 
 #include "vtkmlib/vtkmDataArray.hxx"
diff --git a/Accelerators/Vtkm/Core/vtkmFilterPolicy.h b/Accelerators/Vtkm/Core/vtkmFilterPolicy.h
index 0d74e0a4bde482a05379f0044c4d6b485b144919..fb8cce1442343f58e504c91d62f5e5f572a5835c 100644
--- a/Accelerators/Vtkm/Core/vtkmFilterPolicy.h
+++ b/Accelerators/Vtkm/Core/vtkmFilterPolicy.h
@@ -30,6 +30,7 @@
 #include <vtkm/filter/PolicyDefault.h>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkmOutputFilterPolicy : public vtkm::filter::PolicyBase<vtkmOutputFilterPolicy>
 {
 public:
@@ -40,5 +41,6 @@ public:
   using AllCellSetList = tovtkm::CellListAllOutVTK;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkmFilterPolicy.h
diff --git a/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.cxx b/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.cxx
index 89b5495201b9177ef3e806735e672aed38fc2793..6ede3e2cd6bca4e56ea7682e7bf8c232b013bc10 100644
--- a/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.cxx
+++ b/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.cxx
@@ -28,6 +28,7 @@
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 namespace
 {
@@ -212,4 +213,5 @@ vtkPoints* Convert(const vtkm::cont::CoordinateSystem& input)
   return points;
 }
 
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.h b/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.h
index da27b10a9b33a8032ee7cc01c77cf4f0632c01e2..10a7c0c4cb2a99b87ae551eec24fa1fcab506ba8 100644
--- a/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.h
+++ b/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.h
@@ -29,9 +29,6 @@
 
 #include <type_traits> // for std::underlying_type
 
-class vtkDataArray;
-class vtkPoints;
-
 namespace vtkm
 {
 namespace cont
@@ -40,8 +37,14 @@ class CoordinateSystem;
 }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+class vtkDataArray;
+class vtkPoints;
+VTK_ABI_NAMESPACE_END
+
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 /// Temporary name for arrays converted from VTK that do not have a name.
 /// Unnamed arrays seem to be supported by VTK, but VTK-m requires all fields to have a name.
@@ -114,10 +117,12 @@ enum class FieldsFlag
   PointsAndCells = Points | Cells
 };
 
+VTK_ABI_NAMESPACE_END
 }
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 VTKACCELERATORSVTKMCORE_EXPORT
 vtkDataArray* Convert(const vtkm::cont::Field& input);
@@ -128,8 +133,10 @@ vtkDataArray* Convert(const vtkm::cont::UnknownArrayHandle& input, const char* n
 VTKACCELERATORSVTKMCORE_EXPORT
 vtkPoints* Convert(const vtkm::cont::CoordinateSystem& input);
 
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 inline tovtkm::FieldsFlag operator&(const tovtkm::FieldsFlag& a, const tovtkm::FieldsFlag& b)
 {
   using T = std::underlying_type<tovtkm::FieldsFlag>::type;
@@ -141,5 +148,7 @@ inline tovtkm::FieldsFlag operator|(const tovtkm::FieldsFlag& a, const tovtkm::F
   using T = std::underlying_type<tovtkm::FieldsFlag>::type;
   return static_cast<tovtkm::FieldsFlag>(static_cast<T>(a) | static_cast<T>(b));
 }
+VTK_ABI_NAMESPACE_END
 
 #endif // vtkmlib_ArrayConverters_h
+/* VTK-HeaderTest-Exclude: DataArrayConverters.h */
diff --git a/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.hxx b/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.hxx
index 531c23a5d35d321ced0709e11ff3a6c3cc016701..1ccea454f44a32fd73b2fd88c58fcbd753b10d04 100644
--- a/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.hxx
+++ b/Accelerators/Vtkm/Core/vtkmlib/DataArrayConverters.hxx
@@ -25,6 +25,7 @@
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename DataArrayType>
 vtkm::cont::UnknownArrayHandle vtkDataArrayToUnknownArrayHandle(DataArrayType* input)
@@ -82,5 +83,6 @@ vtkm::cont::Field ConvertCellField(DataArrayType* input)
   return vtkm::cont::make_FieldCell(name, vhandle);
 }
 
+VTK_ABI_NAMESPACE_END
 } // tovtkm
 #endif
diff --git a/Accelerators/Vtkm/Core/vtkmlib/PortalTraits.h b/Accelerators/Vtkm/Core/vtkmlib/PortalTraits.h
index e536cf4bca27504682d70cd825a3406bd03f84d9..10e02c6ba9a1f3f06792f7c613dcb7027577d05f 100644
--- a/Accelerators/Vtkm/Core/vtkmlib/PortalTraits.h
+++ b/Accelerators/Vtkm/Core/vtkmlib/PortalTraits.h
@@ -26,6 +26,7 @@
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 struct vtkPortalOfVecOfVecValues;
 struct vtkPortalOfVecOfValues;
@@ -142,6 +143,7 @@ struct vtkPortalTraits<const vtkm::Vec<vtkm::Vec<T, N>, M>>
   }
 };
 
+VTK_ABI_NAMESPACE_END
 } // namespace vtkmlib
 
 #endif // vtkmlib_PortalsTraits_h
diff --git a/Accelerators/Vtkm/Core/vtkmlib/Portals.cxx b/Accelerators/Vtkm/Core/vtkmlib/Portals.cxx
index 4a65a3b61ef56bd5af9f3e0d069c626760a1b42f..02c34ee63b35da4b76f3f1748f3ce184b6fe0168 100644
--- a/Accelerators/Vtkm/Core/vtkmlib/Portals.cxx
+++ b/Accelerators/Vtkm/Core/vtkmlib/Portals.cxx
@@ -21,9 +21,11 @@
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 // T extern template instantiations
 template class VTKACCELERATORSVTKMCORE_EXPORT vtkPointsPortal<vtkm::Vec<vtkm::Float32, 3> const>;
 template class VTKACCELERATORSVTKMCORE_EXPORT vtkPointsPortal<vtkm::Vec<vtkm::Float64, 3> const>;
 template class VTKACCELERATORSVTKMCORE_EXPORT vtkPointsPortal<vtkm::Vec<vtkm::Float32, 3>>;
 template class VTKACCELERATORSVTKMCORE_EXPORT vtkPointsPortal<vtkm::Vec<vtkm::Float64, 3>>;
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Accelerators/Vtkm/Core/vtkmlib/Portals.h b/Accelerators/Vtkm/Core/vtkmlib/Portals.h
index 42f4de92eb38d6ed90bc34935060db4169b4fb91..776764a6bf975af0564d7e3ed8ca32c603104f7c 100644
--- a/Accelerators/Vtkm/Core/vtkmlib/Portals.h
+++ b/Accelerators/Vtkm/Core/vtkmlib/Portals.h
@@ -21,13 +21,16 @@
 #include "vtkAcceleratorsVTKmCoreModule.h"
 #include "vtkmConfigCore.h" //required for general vtkm setup
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkPoints;
+VTK_ABI_NAMESPACE_END
 
 #include <vtkm/cont/internal/IteratorFromArrayPortal.h>
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename Type, typename VTKDataArrayType_>
 class VTKM_ALWAYS_EXPORT vtkArrayPortal
@@ -116,12 +119,14 @@ private:
   ComponentType* Array;
   vtkm::Id Size;
 };
+VTK_ABI_NAMESPACE_END
 }
 
 #ifndef vtkmlib_Portals_cxx
 #include <vtkm/cont/internal/ArrayPortalFromIterators.h>
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 // T extern template instantiations
 extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT
   vtkPointsPortal<vtkm::Vec<vtkm::Float32, 3> const>;
@@ -131,9 +136,11 @@ extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT
   vtkPointsPortal<vtkm::Vec<vtkm::Float32, 3>>;
 extern template class VTKACCELERATORSVTKMCORE_TEMPLATE_EXPORT
   vtkPointsPortal<vtkm::Vec<vtkm::Float64, 3>>;
+VTK_ABI_NAMESPACE_END
 }
 
 #endif // defined vtkmlib_Portals_cxx
 
 #include "Portals.hxx"
 #endif // vtkmlib_Portals_h
+/* VTK-HeaderTest-Exclude: Portals.h */
diff --git a/Accelerators/Vtkm/Core/vtkmlib/Portals.hxx b/Accelerators/Vtkm/Core/vtkmlib/Portals.hxx
index b017019be7ed3b87aeb402abdeefe96637423909..ae74b943323f3ae87fe7471f9e0f6ce66d868943 100644
--- a/Accelerators/Vtkm/Core/vtkmlib/Portals.hxx
+++ b/Accelerators/Vtkm/Core/vtkmlib/Portals.hxx
@@ -52,6 +52,7 @@ struct fillComponents<1>
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 template <typename VType, typename VTKDataArrayType>
@@ -136,6 +137,7 @@ VTKM_EXEC void vtkPointsPortal<Type>::Set(vtkm::Id index, const ValueType& value
   // use template magic to auto unroll insertion
   fillComponents<NUM_COMPONENTS>()(rawArray, value);
 }
+VTK_ABI_NAMESPACE_END
 }
 
 #endif // vtkmlib_Portals_hxx
diff --git a/Accelerators/Vtkm/Core/vtkmlib/vtkmDataArray.hxx b/Accelerators/Vtkm/Core/vtkmlib/vtkmDataArray.hxx
index bcef2e3fd04ceedaf91b9e198749ee41fc3653e0..4db4e1533dfba2509779d06bf9c0c090f8d57066 100644
--- a/Accelerators/Vtkm/Core/vtkmlib/vtkmDataArray.hxx
+++ b/Accelerators/Vtkm/Core/vtkmlib/vtkmDataArray.hxx
@@ -31,6 +31,7 @@
 
 namespace internal
 {
+VTK_ABI_NAMESPACE_BEGIN
 //=============================================================================
 template <typename T>
 class ArrayHandleWrapperBase
@@ -408,8 +409,10 @@ ArrayHandleWrapperBase<T>* MakeArrayHandleWrapper(vtkIdType numberOfTuples, int
   }
 }
 
+VTK_ABI_NAMESPACE_END
 } // internal
 
+VTK_ABI_NAMESPACE_BEGIN
 //=============================================================================
 template <typename T>
 vtkmDataArray<T>::vtkmDataArray() = default;
@@ -504,4 +507,5 @@ bool vtkmDataArray<T>::ReallocateTuples(vtkIdType numTuples)
   return true;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmDataArray_hxx
diff --git a/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.cxx b/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.cxx
index f209e8518383b1c6265ae7c0067f6d6fba24e400..2d3952dda1d63555bf4e43e155efcbef199f20e4 100644
--- a/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.cxx
+++ b/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.cxx
@@ -17,6 +17,7 @@
 #include "vtkmInitializer.h"
 #include <vtkm/cont/Initialize.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 void InitializeVTKm()
 {
 // Only Kokkos HIP backend needs to be initialized
@@ -36,3 +37,4 @@ vtkmInitializer::vtkmInitializer()
 {
   (void)InitializeVTKm();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.h b/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.h
index 84e8fd9159739dceb305df9fe16b5bc887f9c47b..65c7013b74a14ad0465574c425c3e8c3a15990b4 100644
--- a/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.h
+++ b/Accelerators/Vtkm/Core/vtkmlib/vtkmInitializer.h
@@ -19,9 +19,11 @@
 
 #include "vtkAcceleratorsVTKmCoreModule.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 struct VTKACCELERATORSVTKMCORE_EXPORT vtkmInitializer
 {
   vtkmInitializer();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Accelerators/Vtkm/DataModel/vtkmConfigDataModel.h.in b/Accelerators/Vtkm/DataModel/vtkmConfigDataModel.h.in
index ad440eb8e5f8821363cde579d7f54349db38711e..7fedd320629e67449f148fa83f33dd6c19ec8cec 100644
--- a/Accelerators/Vtkm/DataModel/vtkmConfigDataModel.h.in
+++ b/Accelerators/Vtkm/DataModel/vtkmConfigDataModel.h.in
@@ -12,8 +12,8 @@
      PURPOSE.  See the above copyright notice for more information.
 
 =========================================================================*/
-#ifndef vtkConfigDataModel_h
-#define vtkConfigDataModel_h
+#ifndef vtkmConfigDataModel_h
+#define vtkmConfigDataModel_h
 
 /*--------------------------------------------------------------------------*/
 /* Other Configuration Options                                              */
@@ -52,4 +52,4 @@
 #endif
 
 
-#endif // vtkConfigDataModel_h
+#endif // vtkmConfigDataModel_h
diff --git a/Accelerators/Vtkm/DataModel/vtkmDataSet.cxx b/Accelerators/Vtkm/DataModel/vtkmDataSet.cxx
index 626b7d2f045cd1c14df9079f93248efd44e723ce..e2b118979ba974413271507410253c5f35c4405a 100644
--- a/Accelerators/Vtkm/DataModel/vtkmDataSet.cxx
+++ b/Accelerators/Vtkm/DataModel/vtkmDataSet.cxx
@@ -40,6 +40,7 @@
 
 #include <mutex>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -437,3 +438,4 @@ void vtkmDataSet::DeepCopy(vtkDataObject* src)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/DataModel/vtkmDataSet.h b/Accelerators/Vtkm/DataModel/vtkmDataSet.h
index 940fb0290350c699161ca6e2cfe9013bc6f3c8dc..9d3a7f92bce16d51f8414c0a88cc3be55133ff8f 100644
--- a/Accelerators/Vtkm/DataModel/vtkmDataSet.h
+++ b/Accelerators/Vtkm/DataModel/vtkmDataSet.h
@@ -36,6 +36,8 @@ class DataSet;
 }
 } // vtkm::cont
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkPoints;
 class vtkCell;
 class vtkGenericCell;
@@ -195,4 +197,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmDataSet_h
diff --git a/Accelerators/Vtkm/DataModel/vtkmFilterPolicy.h b/Accelerators/Vtkm/DataModel/vtkmFilterPolicy.h
index 996748c992062b04727f478b48eecb2a9c00544a..072ae9d5ca33db031cf5baea90db074dd480072d 100644
--- a/Accelerators/Vtkm/DataModel/vtkmFilterPolicy.h
+++ b/Accelerators/Vtkm/DataModel/vtkmFilterPolicy.h
@@ -30,6 +30,7 @@
 #include <vtkm/filter/PolicyDefault.h>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkmOutputFilterPolicy : public vtkm::filter::PolicyBase<vtkmOutputFilterPolicy>
 {
 public:
@@ -40,5 +41,6 @@ public:
   using AllCellSetList = tovtkm::CellListAllOutVTK;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkmFilterPolicy.h
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConverters.cxx b/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConverters.cxx
index 668f0c1a42bc0efbb743c4775316b5c5eaad0255..6a1770f98b9d5e724ad59bad09b35a79d52d59da 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConverters.cxx
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConverters.cxx
@@ -32,6 +32,7 @@
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 void ProcessFields(vtkDataSet* input, vtkm::cont::DataSet& dataset, tovtkm::FieldsFlag fields)
 {
   if ((fields & tovtkm::FieldsFlag::Points) != tovtkm::FieldsFlag::None)
@@ -125,10 +126,12 @@ vtkm::cont::Field Convert(vtkDataArray* input, int association)
   }
   return field;
 }
+VTK_ABI_NAMESPACE_END
 } // namespace tovtkm
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 bool ConvertArrays(const vtkm::cont::DataSet& input, vtkDataSet* output)
 {
@@ -157,4 +160,5 @@ bool ConvertArrays(const vtkm::cont::DataSet& input, vtkDataSet* output)
   }
   return true;
 }
+VTK_ABI_NAMESPACE_END
 } // namespace fromvtkm
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConverters.h b/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConverters.h
index f4837476c8ede5cea090202698b269a425a626dc..1aa4156b51b72b1be5baa36b28a4b1866b0a8974 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConverters.h
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConverters.h
@@ -30,10 +30,6 @@
 
 #include <type_traits> // for std::underlying_type
 
-class vtkDataArray;
-class vtkDataSet;
-class vtkPoints;
-
 namespace vtkm
 {
 namespace cont
@@ -43,8 +39,15 @@ class CoordinateSystem;
 }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+class vtkDataArray;
+class vtkDataSet;
+class vtkPoints;
+VTK_ABI_NAMESPACE_END
+
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 void ProcessFields(vtkDataSet* input, vtkm::cont::DataSet& dataset, tovtkm::FieldsFlag fields);
@@ -52,13 +55,16 @@ void ProcessFields(vtkDataSet* input, vtkm::cont::DataSet& dataset, tovtkm::Fiel
 // determine the type and call the proper Convert routine
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 vtkm::cont::Field Convert(vtkDataArray* input, int association);
+VTK_ABI_NAMESPACE_END
 }
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 bool ConvertArrays(const vtkm::cont::DataSet& input, vtkDataSet* output);
+VTK_ABI_NAMESPACE_END
 }
 
 #endif // vtkmlib_ArrayConverters_h
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConverters.hxx b/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConverters.hxx
index bae3b0c659566a473beb253bcc54883f0c0b3e6f..d5af0912f7c8abe71e1262a4694f678656e339f0 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConverters.hxx
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConverters.hxx
@@ -27,6 +27,7 @@
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename DataArrayType>
 vtkm::cont::Field Convert(DataArrayType* input, int association)
@@ -89,5 +90,6 @@ VTK_EXPORT_ARRAY_CONVERSION_TO_VTKM(vtkSOADataArrayTemplate)
 
 #endif // !defined(ArrayConverterExport_cxx)
 
+VTK_ABI_NAMESPACE_END
 } // tovtkm
 #endif
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConvertersReal.cxx b/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConvertersReal.cxx
index d7d681b3b8562ea44b5896b4d99aad9300c4c84a..1a34d9c6687bd4a869159712f97894525d035aff 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConvertersReal.cxx
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConvertersReal.cxx
@@ -19,8 +19,10 @@
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 VTK_EXPORT_REAL_ARRAY_CONVERSION_TO_VTKM(vtkAOSDataArrayTemplate)
 VTK_EXPORT_REAL_ARRAY_CONVERSION_TO_VTKM(vtkSOADataArrayTemplate)
 
+VTK_ABI_NAMESPACE_END
 } // tovtkm
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConvertersSigned.cxx b/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConvertersSigned.cxx
index 924232258250a59c10dc5c10c772081bba79250b..1a0a5bb006285ccb0ab9e92ec5fa3d3e4236dd85 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConvertersSigned.cxx
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConvertersSigned.cxx
@@ -19,8 +19,10 @@
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 VTK_EXPORT_SIGNED_ARRAY_CONVERSION_TO_VTKM(vtkAOSDataArrayTemplate)
 VTK_EXPORT_SIGNED_ARRAY_CONVERSION_TO_VTKM(vtkSOADataArrayTemplate)
 
+VTK_ABI_NAMESPACE_END
 } // tovtkm
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConvertersUnsigned.cxx b/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConvertersUnsigned.cxx
index 93088b8e47f008b468f0e4b443160db70083d3e4..ea05ceb99954912478ef3141aecb21a3ed046cdf 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConvertersUnsigned.cxx
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/ArrayConvertersUnsigned.cxx
@@ -19,8 +19,10 @@
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 VTK_EXPORT_UNSIGNED_ARRAY_CONVERSION_TO_VTKM(vtkAOSDataArrayTemplate)
 VTK_EXPORT_UNSIGNED_ARRAY_CONVERSION_TO_VTKM(vtkSOADataArrayTemplate)
 
+VTK_ABI_NAMESPACE_END
 } // tovtkm
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/CellSetConverters.cxx b/Accelerators/Vtkm/DataModel/vtkmlib/CellSetConverters.cxx
index ad86752267b515867dc5e631a40f9c603d1f3a6f..4033aae2d621bc8f6800d5ecebd52b2221d08fef 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/CellSetConverters.cxx
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/CellSetConverters.cxx
@@ -46,6 +46,7 @@
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 namespace
 {
@@ -228,10 +229,12 @@ vtkm::cont::UnknownCellSet Convert(
   return cells->Visit(BuildExplicitCellSetVisitor{}, ShapeConverter::Wrap(types), numberOfPoints);
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace tovtkm
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 bool Convert(const vtkm::cont::UnknownCellSet& toConvert, vtkCellArray* cells,
   vtkUnsignedCharArray* typesArray)
@@ -285,4 +288,5 @@ bool Convert(const vtkm::cont::UnknownCellSet& toConvert, vtkCellArray* cells,
   return true;
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace fromvtkm
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/CellSetConverters.h b/Accelerators/Vtkm/DataModel/vtkmlib/CellSetConverters.h
index 96108d67d3c35827d9fba6f7168cd617141fd620..563af91fe34e536863bdb52e94ba32ac3d9c41cc 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/CellSetConverters.h
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/CellSetConverters.h
@@ -23,12 +23,15 @@
 #include <vtkType.h>
 #include <vtkm/cont/UnknownCellSet.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkUnsignedCharArray;
 class vtkIdTypeArray;
+VTK_ABI_NAMESPACE_END
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 vtkm::cont::UnknownCellSet ConvertSingleType(
   vtkCellArray* cells, int cellType, vtkIdType numberOfPoints);
@@ -36,14 +39,17 @@ vtkm::cont::UnknownCellSet ConvertSingleType(
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 vtkm::cont::UnknownCellSet Convert(
   vtkUnsignedCharArray* types, vtkCellArray* cells, vtkIdType numberOfPoints);
+VTK_ABI_NAMESPACE_END
 }
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 bool Convert(const vtkm::cont::UnknownCellSet& toConvert, vtkCellArray* cells,
   vtkUnsignedCharArray* types = nullptr);
+VTK_ABI_NAMESPACE_END
 }
 
 #endif // vtkmlib_CellSetConverters_h
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/DataSetConverters.cxx b/Accelerators/Vtkm/DataModel/vtkmlib/DataSetConverters.cxx
index 955835a68a253849bd70c0f900ace66cde4123cb..4d5705892bd51722f78d09552540ba79dbd26af2 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/DataSetConverters.cxx
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/DataSetConverters.cxx
@@ -47,6 +47,7 @@
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 namespace
 {
@@ -281,10 +282,12 @@ vtkm::cont::DataSet Convert(vtkDataSet* input, FieldsFlag fields)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace tovtkm
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 namespace
 {
@@ -440,4 +443,5 @@ bool Convert(const vtkm::cont::DataSet& vtkmOut, vtkStructuredGrid* output, vtkD
   return true;
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace fromvtkm
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/DataSetConverters.h b/Accelerators/Vtkm/DataModel/vtkmlib/DataSetConverters.h
index 2dfdff22f4a9b3d7c71a72f0128e67af9faac6c9..bcdb8e29a1a793875ce863add2706f26073bc038 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/DataSetConverters.h
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/DataSetConverters.h
@@ -25,15 +25,18 @@
 
 #include <vtkm/cont/DataSet.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkDataSetAttributes;
 class vtkImageData;
 class vtkPoints;
 class vtkRectilinearGrid;
 class vtkStructuredGrid;
+VTK_ABI_NAMESPACE_END
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // convert a vtkPoints array into a coordinate system
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
@@ -50,10 +53,12 @@ vtkm::cont::DataSet Convert(vtkRectilinearGrid* input, FieldsFlag fields);
 // determine the type and call the proper Convert routine
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 vtkm::cont::DataSet Convert(vtkDataSet* input, FieldsFlag fields = FieldsFlag::None);
+VTK_ABI_NAMESPACE_END
 }
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 void PassAttributesInformation(vtkDataSetAttributes* input, vtkDataSetAttributes* output);
@@ -64,6 +69,7 @@ bool Convert(const vtkm::cont::DataSet& vtkmOut, vtkRectilinearGrid* output, vtk
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 bool Convert(const vtkm::cont::DataSet& vtkmOut, vtkStructuredGrid* output, vtkDataSet* input);
 
+VTK_ABI_NAMESPACE_END
 }
 
 #endif // vtkmlib_DataSetConverters_h
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ImageDataConverter.cxx b/Accelerators/Vtkm/DataModel/vtkmlib/ImageDataConverter.cxx
index d1c6ba59d542c23b2f18a0c4a56a10eae3bb8f53..c3ace1530d614cea047ffdf2523146aad2ec1ad0 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/ImageDataConverter.cxx
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/ImageDataConverter.cxx
@@ -76,6 +76,7 @@ struct SetGlobalPointIndexStart
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 // convert an image data type
@@ -110,10 +111,12 @@ vtkm::cont::DataSet Convert(vtkImageData* input, FieldsFlag fields)
   return dataset;
 }
 
+VTK_ABI_NAMESPACE_END
 } // tovtkm
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 bool Convert(
   const vtkm::cont::DataSet& voutput, int extents[6], vtkImageData* output, vtkDataSet* input)
@@ -172,4 +175,5 @@ bool Convert(const vtkm::cont::DataSet& voutput, vtkImageData* output, vtkDataSe
   return Convert(voutput, extents, output, input);
 }
 
+VTK_ABI_NAMESPACE_END
 } // fromvtkm
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ImageDataConverter.h b/Accelerators/Vtkm/DataModel/vtkmlib/ImageDataConverter.h
index 67d4053942ec4ac6345f63ed21f051a4d5e93585..6ffe8ec612a078ca5b86a9559ed3d4dc7eddcc43 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/ImageDataConverter.h
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/ImageDataConverter.h
@@ -23,19 +23,24 @@
 
 #include <vtkm/cont/DataSet.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkDataSet;
+VTK_ABI_NAMESPACE_END
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 vtkm::cont::DataSet Convert(vtkImageData* input, FieldsFlag fields = FieldsFlag::None);
 
+VTK_ABI_NAMESPACE_END
 }
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 bool Convert(const vtkm::cont::DataSet& voutput, vtkImageData* output, vtkDataSet* input);
@@ -44,5 +49,6 @@ VTKACCELERATORSVTKMDATAMODEL_EXPORT
 bool Convert(
   const vtkm::cont::DataSet& voutput, int extents[6], vtkImageData* output, vtkDataSet* input);
 
+VTK_ABI_NAMESPACE_END
 }
 #endif // vtkmlib_ImageDataConverter_h
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.cxx b/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.cxx
index 814af43cc168b4c3b44107b0c19e68cc1b42538d..6f27a7de13e7b54633f0ba949d0e6c58cecc66da 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.cxx
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.cxx
@@ -26,6 +26,7 @@
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 inline vtkm::Vec<vtkm::FloatDefault, 3> MakeFVec3(const double x[3])
 {
@@ -141,4 +142,5 @@ const vtkm::ImplicitFunctionGeneral& ImplicitFunctionConverter::Get()
   return this->OutFunction;
 }
 
+VTK_ABI_NAMESPACE_END
 } // tovtkm
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.h b/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.h
index a1a571c93d44a7d62f79afc86aab05d1f359af82..d12e2c3ccf9434341e015131b46e53c676651f12 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.h
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/ImplicitFunctionConverter.h
@@ -22,10 +22,13 @@
 
 #include "vtkm/ImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
+VTK_ABI_NAMESPACE_END
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 class VTKACCELERATORSVTKMDATAMODEL_EXPORT ImplicitFunctionConverter
 {
@@ -41,6 +44,7 @@ private:
   mutable vtkMTimeType MTime;
 };
 
+VTK_ABI_NAMESPACE_END
 }
 
 #endif // vtkmlib_ImplicitFunctionConverter_h
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/PolyDataConverter.cxx b/Accelerators/Vtkm/DataModel/vtkmlib/PolyDataConverter.cxx
index 1c15de506de5704010dfa0958d5c210c473d51e6..19a5b41da2b3b6f9ea98c148e5e70b6ca460b474 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/PolyDataConverter.cxx
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/PolyDataConverter.cxx
@@ -39,6 +39,7 @@
 #include <vtkm/cont/ErrorBadType.h>
 #include <vtkm/cont/Field.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 struct build_type_array
@@ -68,8 +69,10 @@ struct build_type_array
   }
 };
 }
+VTK_ABI_NAMESPACE_END
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 // convert an polydata type
@@ -174,10 +177,12 @@ vtkm::cont::DataSet Convert(vtkPolyData* input, FieldsFlag fields)
   return dataset;
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace tovtkm
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 bool Convert(const vtkm::cont::DataSet& voutput, vtkPolyData* output, vtkDataSet* input)
@@ -209,4 +214,5 @@ bool Convert(const vtkm::cont::DataSet& voutput, vtkPolyData* output, vtkDataSet
   return arraysConverted;
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace fromvtkm
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/PolyDataConverter.h b/Accelerators/Vtkm/DataModel/vtkmlib/PolyDataConverter.h
index dcadf33cb8f4679956ecd0ea73d25d414f2e6e54..dc239139ff763e22717f5369933742597649b5cb 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/PolyDataConverter.h
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/PolyDataConverter.h
@@ -25,19 +25,25 @@
 
 #include <vtkm/cont/DataSet.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkDataSet;
+VTK_ABI_NAMESPACE_END
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 // convert an polydata type
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 vtkm::cont::DataSet Convert(vtkPolyData* input, FieldsFlag fields = FieldsFlag::None);
+VTK_ABI_NAMESPACE_END
 }
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 bool Convert(const vtkm::cont::DataSet& voutput, vtkPolyData* output, vtkDataSet* input);
+VTK_ABI_NAMESPACE_END
 }
 #endif // vtkmlib_PolyDataConverter_h
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/UnstructuredGridConverter.cxx b/Accelerators/Vtkm/DataModel/vtkmlib/UnstructuredGridConverter.cxx
index 3b084f0b0f9412fa0b15cbbcbca5257517dab945..4f02fb88a77a21b4aeae3921572f49e2de04de68 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/UnstructuredGridConverter.cxx
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/UnstructuredGridConverter.cxx
@@ -41,6 +41,7 @@
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 // convert an unstructured grid type
@@ -74,10 +75,12 @@ vtkm::cont::DataSet Convert(vtkUnstructuredGrid* input, FieldsFlag fields)
   return dataset;
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace tovtkm
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 bool Convert(const vtkm::cont::DataSet& voutput, vtkUnstructuredGrid* output, vtkDataSet* input)
@@ -118,4 +121,5 @@ bool Convert(const vtkm::cont::DataSet& voutput, vtkUnstructuredGrid* output, vt
   return arraysConverted;
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace fromvtkm
diff --git a/Accelerators/Vtkm/DataModel/vtkmlib/UnstructuredGridConverter.h b/Accelerators/Vtkm/DataModel/vtkmlib/UnstructuredGridConverter.h
index 595604bcd1ee8c6b0b359317cf6f7a39a6e206eb..8d693a6d2eea27907f1f0cd9819f4baf19666ba3 100644
--- a/Accelerators/Vtkm/DataModel/vtkmlib/UnstructuredGridConverter.h
+++ b/Accelerators/Vtkm/DataModel/vtkmlib/UnstructuredGridConverter.h
@@ -25,20 +25,26 @@
 
 #include <vtkm/cont/DataSet.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGrid;
 class vtkDataSet;
+VTK_ABI_NAMESPACE_END
 
 namespace tovtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // convert an unstructured grid type
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 vtkm::cont::DataSet Convert(vtkUnstructuredGrid* input, FieldsFlag fields = FieldsFlag::None);
+VTK_ABI_NAMESPACE_END
 }
 
 namespace fromvtkm
 {
+VTK_ABI_NAMESPACE_BEGIN
 VTKACCELERATORSVTKMDATAMODEL_EXPORT
 bool Convert(const vtkm::cont::DataSet& voutput, vtkUnstructuredGrid* output, vtkDataSet* input);
+VTK_ABI_NAMESPACE_END
 }
 #endif // vtkmlib_UnstructuredGridConverter_h
diff --git a/Accelerators/Vtkm/Filters/vtkmAverageToCells.cxx b/Accelerators/Vtkm/Filters/vtkmAverageToCells.cxx
index 85e7ce6d329cc6f330139bf2e3116021b8604c99..23bd44edb2d9912fe127eb3dee3f4ccb1f8b356e 100644
--- a/Accelerators/Vtkm/Filters/vtkmAverageToCells.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmAverageToCells.cxx
@@ -30,6 +30,7 @@
 #include <vtkm/cont/ErrorFilterExecution.h>
 #include <vtkm/filter/field_conversion/CellAverage.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmAverageToCells);
 
 //------------------------------------------------------------------------------
@@ -169,3 +170,4 @@ void vtkmAverageToCells::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmAverageToCells.h b/Accelerators/Vtkm/Filters/vtkmAverageToCells.h
index c24e8a94aafa45df841fdaf5300063172ee9a844..1dae231fc0d1b9bd5eb91ad4c8863a9b0e1dc919 100644
--- a/Accelerators/Vtkm/Filters/vtkmAverageToCells.h
+++ b/Accelerators/Vtkm/Filters/vtkmAverageToCells.h
@@ -32,6 +32,7 @@
 #include "vtkPointDataToCellData.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmAverageToCells : public vtkPointDataToCellData
 {
 public:
@@ -51,4 +52,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmAverageToCells_h
diff --git a/Accelerators/Vtkm/Filters/vtkmAverageToPoints.cxx b/Accelerators/Vtkm/Filters/vtkmAverageToPoints.cxx
index 536ec8cdd55952e59299c3ed558a3341bd2a561f..5e81a8e7534999ffff8a1956db5f5eb415bf5ba4 100644
--- a/Accelerators/Vtkm/Filters/vtkmAverageToPoints.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmAverageToPoints.cxx
@@ -35,6 +35,7 @@
 #include <vtkm/cont/ErrorFilterExecution.h>
 #include <vtkm/filter/field_conversion/PointAverage.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmAverageToPoints);
 
 //------------------------------------------------------------------------------
@@ -181,3 +182,4 @@ void vtkmAverageToPoints::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmAverageToPoints.h b/Accelerators/Vtkm/Filters/vtkmAverageToPoints.h
index b40650a916baf3e3987d14064677be8609c94af1..cce961b78ac09594f0b20a4c2bcef04417913d8c 100644
--- a/Accelerators/Vtkm/Filters/vtkmAverageToPoints.h
+++ b/Accelerators/Vtkm/Filters/vtkmAverageToPoints.h
@@ -31,6 +31,7 @@
 #include "vtkCellDataToPointData.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmAverageToPoints : public vtkCellDataToPointData
 {
 public:
@@ -50,4 +51,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmAverageToPoints_h
diff --git a/Accelerators/Vtkm/Filters/vtkmCleanGrid.cxx b/Accelerators/Vtkm/Filters/vtkmCleanGrid.cxx
index 360adc9542e36838775394d59269bb76a43d5da8..5c887e731f01e9471219d0340828be58342dc66a 100644
--- a/Accelerators/Vtkm/Filters/vtkmCleanGrid.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmCleanGrid.cxx
@@ -31,6 +31,7 @@
 
 #include <vtkm/filter/clean_grid/CleanGrid.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmCleanGrid);
 
 //------------------------------------------------------------------------------
@@ -100,3 +101,4 @@ int vtkmCleanGrid::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmCleanGrid.h b/Accelerators/Vtkm/Filters/vtkmCleanGrid.h
index fbe9e60c1d63b3ca35fce9a6a801c275fa59582b..250ba1c184398e6178e03deb03f2ca13344afa02 100644
--- a/Accelerators/Vtkm/Filters/vtkmCleanGrid.h
+++ b/Accelerators/Vtkm/Filters/vtkmCleanGrid.h
@@ -30,6 +30,7 @@
 #include "vtkUnstructuredGridAlgorithm.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkUnstructuredGrid;
 
@@ -67,4 +68,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmCleanGrid_h
diff --git a/Accelerators/Vtkm/Filters/vtkmClip.cxx b/Accelerators/Vtkm/Filters/vtkmClip.cxx
index 45a886291eb4a5cc0976745e600bf2ec812f12fd..0157deaf9e6ca61afb38f7ac3eca784dde6acc97 100644
--- a/Accelerators/Vtkm/Filters/vtkmClip.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmClip.cxx
@@ -41,6 +41,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmClip);
 
 //------------------------------------------------------------------------------
@@ -214,3 +215,4 @@ int vtkmClip::FillInputPortInformation(int, vtkInformation* info)
   info->Append(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkImageData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmClip.h b/Accelerators/Vtkm/Filters/vtkmClip.h
index 82ffaf43e24b51e45777f233bea2d95de403b01c..fb776288ba473288a63e0bf8ae7f9be156010aba 100644
--- a/Accelerators/Vtkm/Filters/vtkmClip.h
+++ b/Accelerators/Vtkm/Filters/vtkmClip.h
@@ -31,6 +31,7 @@
 
 #include <memory> // For std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
 
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmClip : public vtkUnstructuredGridAlgorithm
@@ -93,4 +94,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmClip_h
diff --git a/Accelerators/Vtkm/Filters/vtkmClipInstantiationsWithField.cxx b/Accelerators/Vtkm/Filters/vtkmClipInstantiationsWithField.cxx
index a2d0ecb5beb3aea0d60618e4f9976779870223bd..f1b52834d4e4a28e062a51a869ec12cbe03be4c9 100644
--- a/Accelerators/Vtkm/Filters/vtkmClipInstantiationsWithField.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmClipInstantiationsWithField.cxx
@@ -19,6 +19,7 @@
 #include <vtkm/filter/contour/ClipWithField.h>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkm::cont::DataSet vtkmClip::internals::ExecuteClipWithField(
   vtkm::cont::DataSet& in, vtkDataArray* scalars, int assoc)
 {
@@ -37,3 +38,4 @@ vtkm::cont::DataSet vtkmClip::internals::ExecuteClipWithField(
   fieldFilter.SetClipValue(this->ClipValue);
   return fieldFilter.Execute(in);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmClipInstantiationsWithImplicitFunction.cxx b/Accelerators/Vtkm/Filters/vtkmClipInstantiationsWithImplicitFunction.cxx
index bf1762090ccf22239926a26a76e9734eabd76ded..b6092c90614988a9bd409f29f37d5196c74972d4 100644
--- a/Accelerators/Vtkm/Filters/vtkmClipInstantiationsWithImplicitFunction.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmClipInstantiationsWithImplicitFunction.cxx
@@ -19,6 +19,7 @@
 #include <vtkm/filter/contour/ClipWithImplicitFunction.h>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkm::cont::DataSet vtkmClip::internals::ExecuteClipWithImplicitFunction(vtkm::cont::DataSet& in)
 {
   auto function = this->ClipFunctionConverter->Get();
@@ -30,3 +31,4 @@ vtkm::cont::DataSet vtkmClip::internals::ExecuteClipWithImplicitFunction(vtkm::c
 
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmClipInternals.h b/Accelerators/Vtkm/Filters/vtkmClipInternals.h
index 7b4b1a1a4fd77144ac895de06f962f3297bec44f..602e8cde11e6955cf0300efd0640e6ca3a22bc41 100644
--- a/Accelerators/Vtkm/Filters/vtkmClipInternals.h
+++ b/Accelerators/Vtkm/Filters/vtkmClipInternals.h
@@ -22,6 +22,7 @@
 
 #include <vtkm/cont/DataSet.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkmClip::internals
 {
   double ClipValue = .0;
@@ -34,5 +35,6 @@ struct vtkmClip::internals
   vtkm::cont::DataSet ExecuteClipWithField(vtkm::cont::DataSet&, vtkDataArray*, int);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkmClipInternals.h
diff --git a/Accelerators/Vtkm/Filters/vtkmConfigFilters.h.in b/Accelerators/Vtkm/Filters/vtkmConfigFilters.h.in
index f99c237ffe6a206ddc70430d237aea4da1f0c787..2012a5d7df0d14770c96ed822dfe776b760055d0 100644
--- a/Accelerators/Vtkm/Filters/vtkmConfigFilters.h.in
+++ b/Accelerators/Vtkm/Filters/vtkmConfigFilters.h.in
@@ -12,8 +12,8 @@
      PURPOSE.  See the above copyright notice for more information.
 
 =========================================================================*/
-#ifndef vtkConfigFilters_h
-#define vtkConfigFilters_h
+#ifndef vtkmConfigFilters_h
+#define vtkmConfigFilters_h
 
 /*--------------------------------------------------------------------------*/
 /* Other Configuration Options                                              */
@@ -52,4 +52,4 @@
 #endif
 
 
-#endif // vtkConfigFilters_h
+#endif // vtkmConfigFilters_h
diff --git a/Accelerators/Vtkm/Filters/vtkmContour.cxx b/Accelerators/Vtkm/Filters/vtkmContour.cxx
index 3d4d45abedb8be03981002fea7af1a296d1c1534..17a64c768181b4ce748050e372bbdc3e220fb024 100644
--- a/Accelerators/Vtkm/Filters/vtkmContour.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmContour.cxx
@@ -38,6 +38,7 @@
 #include <vtkm/filter/contour/Contour.h>
 #include <vtkm/worklet/WorkletMapField.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmContour);
 
 //------------------------------------------------------------------------------
@@ -257,3 +258,4 @@ int vtkmContour::RequestData(
   // we got this far, everything is good
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmContour.h b/Accelerators/Vtkm/Filters/vtkmContour.h
index 62fe3a161924fad53739a290831b53fbe79f9ff2..b8ec76645617f9eb514d6903af607794e2b2e53d 100644
--- a/Accelerators/Vtkm/Filters/vtkmContour.h
+++ b/Accelerators/Vtkm/Filters/vtkmContour.h
@@ -37,6 +37,7 @@
 #include "vtkContourFilter.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmContour : public vtkContourFilter
 {
 public:
@@ -63,4 +64,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmContour_h
diff --git a/Accelerators/Vtkm/Filters/vtkmCoordinateSystemTransform.cxx b/Accelerators/Vtkm/Filters/vtkmCoordinateSystemTransform.cxx
index 750e414de931498940e0b632763b60c08d302e46..0a0806566e64ec851a3594b71fbec6db72f1a631 100644
--- a/Accelerators/Vtkm/Filters/vtkmCoordinateSystemTransform.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmCoordinateSystemTransform.cxx
@@ -36,6 +36,7 @@
 #include <vtkm/filter/field_transform/CylindricalCoordinateTransform.h>
 #include <vtkm/filter/field_transform/SphericalCoordinateTransform.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmCoordinateSystemTransform);
 
 //------------------------------------------------------------------------------
@@ -204,3 +205,4 @@ void vtkmCoordinateSystemTransform::PrintSelf(std::ostream& os, vtkIndent indent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmCoordinateSystemTransform.h b/Accelerators/Vtkm/Filters/vtkmCoordinateSystemTransform.h
index 3fc155d74d46076cdcc01982cb416f6d8948a8db..3aa080712c170ed3cd510910b0861ab63c936381 100644
--- a/Accelerators/Vtkm/Filters/vtkmCoordinateSystemTransform.h
+++ b/Accelerators/Vtkm/Filters/vtkmCoordinateSystemTransform.h
@@ -29,6 +29,7 @@
 #include "vtkPointSetAlgorithm.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmCoordinateSystemTransform : public vtkPointSetAlgorithm
 {
   enum struct TransformTypes
@@ -70,4 +71,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmCoordinateSystemTransform_h
diff --git a/Accelerators/Vtkm/Filters/vtkmExternalFaces.cxx b/Accelerators/Vtkm/Filters/vtkmExternalFaces.cxx
index d17f985db7f891806c87a20b1e79fec5bcc72860..e036460eb29dac44be2ffb1f56d456cc9ba6f54d 100644
--- a/Accelerators/Vtkm/Filters/vtkmExternalFaces.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmExternalFaces.cxx
@@ -34,6 +34,7 @@
 
 #include <vtkm/filter/entity_extraction/ExternalFaces.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmExternalFaces);
 
 //------------------------------------------------------------------------------
@@ -132,3 +133,4 @@ int vtkmExternalFaces::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmExternalFaces.h b/Accelerators/Vtkm/Filters/vtkmExternalFaces.h
index a242981d46c37ad02c74c69b39ebb98d034c4915..454c743bad633f6bb399d653408e03b5e988e915 100644
--- a/Accelerators/Vtkm/Filters/vtkmExternalFaces.h
+++ b/Accelerators/Vtkm/Filters/vtkmExternalFaces.h
@@ -32,6 +32,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGrid;
 
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmExternalFaces : public vtkAlgorithm
@@ -81,4 +82,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmExternalFaces_h
diff --git a/Accelerators/Vtkm/Filters/vtkmExtractVOI.cxx b/Accelerators/Vtkm/Filters/vtkmExtractVOI.cxx
index c3608c52912517815edbbc390a31bc301afe8549..ee53015a869ac8ec9f620e5a03c7a75c20f1b1b3 100644
--- a/Accelerators/Vtkm/Filters/vtkmExtractVOI.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmExtractVOI.cxx
@@ -28,6 +28,7 @@
 
 #include "vtkm/filter/entity_extraction/ExtractStructured.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmExtractVOI);
 
 //------------------------------------------------------------------------------
@@ -96,3 +97,4 @@ int vtkmExtractVOI::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmExtractVOI.h b/Accelerators/Vtkm/Filters/vtkmExtractVOI.h
index be63cb292e5a2b9230b6feb010b1d255bc6889c6..eeaf23ae61f21b8df02a993880eacd8788c60c77 100644
--- a/Accelerators/Vtkm/Filters/vtkmExtractVOI.h
+++ b/Accelerators/Vtkm/Filters/vtkmExtractVOI.h
@@ -39,6 +39,7 @@
 #include "vtkExtractVOI.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmExtractVOI : public vtkExtractVOI
 {
 public:
@@ -72,4 +73,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmExtractVOI_h
diff --git a/Accelerators/Vtkm/Filters/vtkmFilterOverrides.cxx.in b/Accelerators/Vtkm/Filters/vtkmFilterOverrides.cxx.in
index 1575b6d2692ba4572d08220ffe92af0210f2a5cd..81ef5f76b848be914df72062243d59809f0df606 100644
--- a/Accelerators/Vtkm/Filters/vtkmFilterOverrides.cxx.in
+++ b/Accelerators/Vtkm/Filters/vtkmFilterOverrides.cxx.in
@@ -19,6 +19,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -59,3 +60,4 @@ bool vtkmFilterOverrides::GetEnabled()
 {
   return vtkmFilterOverridesEnabled;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmFilterOverrides.h b/Accelerators/Vtkm/Filters/vtkmFilterOverrides.h
index 489f8d4bb6ad19e11d023276973600b1b97f05f4..510666aea83a4633c2a41a8ec0fe55631fbef646 100644
--- a/Accelerators/Vtkm/Filters/vtkmFilterOverrides.h
+++ b/Accelerators/Vtkm/Filters/vtkmFilterOverrides.h
@@ -19,6 +19,7 @@
 
 /// A class with static methods to turn vtkm filter overrides on/off at runtime
 ///
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmFilterOverrides
 {
 public:
@@ -36,5 +37,6 @@ public:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmFilterOverrides_h
 // VTK-HeaderTest-Exclude: vtkmFilterOverrides.h
diff --git a/Accelerators/Vtkm/Filters/vtkmGradient.cxx b/Accelerators/Vtkm/Filters/vtkmGradient.cxx
index 775bed68da3f72c7997056601dc415d5269522b9..6de8456bebed6d36789ca9a707de9bcada1e5785 100644
--- a/Accelerators/Vtkm/Filters/vtkmGradient.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmGradient.cxx
@@ -35,6 +35,7 @@
 #include <vtkm/filter/field_conversion/PointAverage.h>
 #include <vtkm/filter/vector_analysis/Gradient.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmGradient);
 
 namespace
@@ -363,3 +364,4 @@ int vtkmGradient::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmGradient.h b/Accelerators/Vtkm/Filters/vtkmGradient.h
index 5936248d312aea852ac4b93a3b5dbbebdb2c5a64..0556edb13a91cb38c431f84d2c1a903e633b280f 100644
--- a/Accelerators/Vtkm/Filters/vtkmGradient.h
+++ b/Accelerators/Vtkm/Filters/vtkmGradient.h
@@ -37,6 +37,7 @@
 #include "vtkGradientFilter.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmGradient : public vtkGradientFilter
 {
 public:
@@ -77,4 +78,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmGradient_h
diff --git a/Accelerators/Vtkm/Filters/vtkmHistogram.cxx b/Accelerators/Vtkm/Filters/vtkmHistogram.cxx
index 56943122b108f56dd3695b3a56a1ce8edaef6ab2..9290b5efc3f03f18b3e9bbafc2fb4a0da3f4d047 100644
--- a/Accelerators/Vtkm/Filters/vtkmHistogram.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmHistogram.cxx
@@ -33,6 +33,7 @@
 #include "vtkmFilterPolicy.h"
 #include <vtkm/filter/density_estimate/Histogram.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmHistogram);
 
 //------------------------------------------------------------------------------
@@ -163,3 +164,4 @@ void vtkmHistogram::FillBinExtents(vtkDoubleArray* binExtents)
         (this->CenterBinsAroundMinAndMax ? 0.0 : halfBinDelta));
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmHistogram.h b/Accelerators/Vtkm/Filters/vtkmHistogram.h
index 875a14c9179891cc4c024865c1c498f6a4a78a49..18a75eac17c6fbc4cbcb5ac5a0b598d07ec72559 100644
--- a/Accelerators/Vtkm/Filters/vtkmHistogram.h
+++ b/Accelerators/Vtkm/Filters/vtkmHistogram.h
@@ -30,6 +30,7 @@
 #include "vtkTableAlgorithm.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmHistogram : public vtkTableAlgorithm
@@ -113,4 +114,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmHistogram_h
diff --git a/Accelerators/Vtkm/Filters/vtkmImageConnectivity.cxx b/Accelerators/Vtkm/Filters/vtkmImageConnectivity.cxx
index 0125bb96ef60c7c2276aeecdfd839b8840f6e85e..5ea45e85dddbb5b2d68bcde7516b3092489e732f 100644
--- a/Accelerators/Vtkm/Filters/vtkmImageConnectivity.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmImageConnectivity.cxx
@@ -29,6 +29,7 @@
 
 #include <vtkm/filter/connected_components/ImageConnectivity.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmImageConnectivity);
 
 //------------------------------------------------------------------------------
@@ -99,3 +100,4 @@ int vtkmImageConnectivity::RequestData(
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmImageConnectivity.h b/Accelerators/Vtkm/Filters/vtkmImageConnectivity.h
index 35c406c678f3ef10a599387bb70def896b2c93e1..538355eaa14aed47edfd30e7c3afd9d710ab843c 100644
--- a/Accelerators/Vtkm/Filters/vtkmImageConnectivity.h
+++ b/Accelerators/Vtkm/Filters/vtkmImageConnectivity.h
@@ -41,6 +41,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmImageConnectivity : public vtkImageAlgorithm
 {
 public:
@@ -60,4 +61,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmImageConnectivity_h
diff --git a/Accelerators/Vtkm/Filters/vtkmLevelOfDetail.cxx b/Accelerators/Vtkm/Filters/vtkmLevelOfDetail.cxx
index 210f7b8169ab951d32f937006c758258db10b3a8..3159750dabb449bf89165c8f1d1df912da06c9d2 100644
--- a/Accelerators/Vtkm/Filters/vtkmLevelOfDetail.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmLevelOfDetail.cxx
@@ -34,6 +34,7 @@
 // To handle computing custom coordinate sets bounds we need to include
 // the following
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmLevelOfDetail);
 
 //------------------------------------------------------------------------------
@@ -165,3 +166,4 @@ void vtkmLevelOfDetail::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Number of Y Divisions: " << this->NumberOfDivisions[1] << "\n";
   os << indent << "Number of Z Divisions: " << this->NumberOfDivisions[2] << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmLevelOfDetail.h b/Accelerators/Vtkm/Filters/vtkmLevelOfDetail.h
index 38021c1e734adba1c12e1f8e3f43ebafe277a736..e862ab10089300c78cf40f6ca34c551636497d53 100644
--- a/Accelerators/Vtkm/Filters/vtkmLevelOfDetail.h
+++ b/Accelerators/Vtkm/Filters/vtkmLevelOfDetail.h
@@ -51,6 +51,7 @@
 #include "vtkPolyDataAlgorithm.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmLevelOfDetail : public vtkPolyDataAlgorithm
 {
 public:
@@ -94,4 +95,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmLevelOfDetail_h
diff --git a/Accelerators/Vtkm/Filters/vtkmNDHistogram.cxx b/Accelerators/Vtkm/Filters/vtkmNDHistogram.cxx
index 2a6f6ac4fc946a232b36f372b2ccd69ccbd7830a..fd5f8c5a1a28195625c0a2bed1843f865c56829d 100644
--- a/Accelerators/Vtkm/Filters/vtkmNDHistogram.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmNDHistogram.cxx
@@ -32,6 +32,7 @@
 
 #include <vtkm/filter/density_estimate/NDHistogram.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmNDHistogram);
 
 //------------------------------------------------------------------------------
@@ -199,3 +200,4 @@ int vtkmNDHistogram::RequestData(vtkInformation* vtkNotUsed(request),
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmNDHistogram.h b/Accelerators/Vtkm/Filters/vtkmNDHistogram.h
index 9442251a22c2fee46d59b907b29fe6573f7987ae..33ba265f94668e5db959fc1bc3c4820c3d572f92 100644
--- a/Accelerators/Vtkm/Filters/vtkmNDHistogram.h
+++ b/Accelerators/Vtkm/Filters/vtkmNDHistogram.h
@@ -42,6 +42,7 @@
 #include "vtkArrayDataAlgorithm.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmNDHistogram : public vtkArrayDataAlgorithm
 {
 public:
@@ -80,4 +81,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmNDHistogram_h
diff --git a/Accelerators/Vtkm/Filters/vtkmPointElevation.cxx b/Accelerators/Vtkm/Filters/vtkmPointElevation.cxx
index 9def68b26c5bdebc68c2415f25a63f2f9fec0e68..0585f2c360ace9d89473d38f49bbdf6a5c078c2c 100644
--- a/Accelerators/Vtkm/Filters/vtkmPointElevation.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmPointElevation.cxx
@@ -30,6 +30,7 @@
 
 #include <vtkm/filter/field_transform/PointElevation.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmPointElevation);
 
 //------------------------------------------------------------------------------
@@ -105,3 +106,4 @@ void vtkmPointElevation::PrintSelf(std::ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmPointElevation.h b/Accelerators/Vtkm/Filters/vtkmPointElevation.h
index 0d4a84ca9e4e98ce3a7003f9968539368422204b..2e1e4b733c73a32b40ce92ebf2b830098e070436 100644
--- a/Accelerators/Vtkm/Filters/vtkmPointElevation.h
+++ b/Accelerators/Vtkm/Filters/vtkmPointElevation.h
@@ -32,6 +32,7 @@
 #include "vtkElevationFilter.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmPointElevation : public vtkElevationFilter
 {
 public:
@@ -66,4 +67,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmPointElevation_h
diff --git a/Accelerators/Vtkm/Filters/vtkmPointTransform.cxx b/Accelerators/Vtkm/Filters/vtkmPointTransform.cxx
index 909fecdb8e4df7f6a7a8e2b8724bd61b7390e311..a026ee77c336eaad64e8e847d119ee0ade6b2aff 100644
--- a/Accelerators/Vtkm/Filters/vtkmPointTransform.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmPointTransform.cxx
@@ -36,6 +36,7 @@
 
 #include "vtkmFilterPolicy.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmPointTransform);
 vtkCxxSetObjectMacro(vtkmPointTransform, Transform, vtkHomogeneousTransform);
 
@@ -168,3 +169,4 @@ void vtkmPointTransform::PrintSelf(std::ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Transform: " << this->Transform << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmPointTransform.h b/Accelerators/Vtkm/Filters/vtkmPointTransform.h
index 7e8d8c705393b693b2bc18924e7d2eec2d16f61e..2fe48b0e8cfa7608a2c87e32f8f09a028d107d48 100644
--- a/Accelerators/Vtkm/Filters/vtkmPointTransform.h
+++ b/Accelerators/Vtkm/Filters/vtkmPointTransform.h
@@ -28,6 +28,7 @@
 #include "vtkPointSetAlgorithm.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHomogeneousTransform;
 
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmPointTransform : public vtkPointSetAlgorithm
@@ -62,4 +63,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Accelerators/Vtkm/Filters/vtkmPolyDataNormals.cxx b/Accelerators/Vtkm/Filters/vtkmPolyDataNormals.cxx
index 56dd389059f2a3a19434f583c06b8c7a5f3a638a..45aaf752e3a0a506e15d7da553ee5f23aa5954b9 100644
--- a/Accelerators/Vtkm/Filters/vtkmPolyDataNormals.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmPolyDataNormals.cxx
@@ -28,6 +28,7 @@
 
 #include "vtkm/filter/vector_analysis/SurfaceNormals.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmPolyDataNormals);
 
 //------------------------------------------------------------------------------
@@ -130,3 +131,4 @@ int vtkmPolyDataNormals::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmPolyDataNormals.h b/Accelerators/Vtkm/Filters/vtkmPolyDataNormals.h
index 5e071fbdc21fb20bd3ec621d38a142630229dfbb..aeffe8a0129b42f46e54b9149a932e97f55c1bda 100644
--- a/Accelerators/Vtkm/Filters/vtkmPolyDataNormals.h
+++ b/Accelerators/Vtkm/Filters/vtkmPolyDataNormals.h
@@ -46,6 +46,7 @@
 #include "vtkPolyDataNormals.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmPolyDataNormals : public vtkPolyDataNormals
 {
 public:
@@ -79,4 +80,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmPolyDataNormals_h
diff --git a/Accelerators/Vtkm/Filters/vtkmProbe.cxx b/Accelerators/Vtkm/Filters/vtkmProbe.cxx
index 029217ff660ff05bb71b210b512ec87a730e5d9b..3e6c5e71dd8008f25e445b2ebf897f01c3c3acef 100644
--- a/Accelerators/Vtkm/Filters/vtkmProbe.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmProbe.cxx
@@ -32,6 +32,7 @@
 
 #include "vtkm/filter/Probe.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmProbe);
 
 //------------------------------------------------------------------------------
@@ -263,3 +264,4 @@ void vtkmProbe::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "PassCellArrays: " << this->PassCellArrays << "\n";
   os << indent << "PassFieldArray: " << this->PassFieldArrays << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmProbe.h b/Accelerators/Vtkm/Filters/vtkmProbe.h
index 5bf9014df53529eba7d9af982ee20c7629960e9e..9343ee1d01528112c6f28c614b55b479a4299ff7 100644
--- a/Accelerators/Vtkm/Filters/vtkmProbe.h
+++ b/Accelerators/Vtkm/Filters/vtkmProbe.h
@@ -50,6 +50,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmProbe : public vtkDataSetAlgorithm
 {
 public:
@@ -155,4 +156,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmProbe_h
diff --git a/Accelerators/Vtkm/Filters/vtkmThreshold.cxx b/Accelerators/Vtkm/Filters/vtkmThreshold.cxx
index 05f8119ed394cca0f9ca9664a1965c52710c0f8e..827110766eb47d94c27347669c147c2b450fd78b 100644
--- a/Accelerators/Vtkm/Filters/vtkmThreshold.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmThreshold.cxx
@@ -32,6 +32,7 @@
 
 #include <vtkm/filter/entity_extraction/Threshold.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmThreshold);
 
 //------------------------------------------------------------------------------
@@ -100,3 +101,4 @@ void vtkmThreshold::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmThreshold.h b/Accelerators/Vtkm/Filters/vtkmThreshold.h
index 1a82de7cc8503c8ee01bc8d220edfdb24217908f..e5c76f8637ecdc21c975551a12801837c0228ba9 100644
--- a/Accelerators/Vtkm/Filters/vtkmThreshold.h
+++ b/Accelerators/Vtkm/Filters/vtkmThreshold.h
@@ -35,6 +35,7 @@
 #include "vtkThreshold.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmThreshold : public vtkThreshold
 {
 public:
@@ -69,4 +70,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmThreshold_h
diff --git a/Accelerators/Vtkm/Filters/vtkmTriangleMeshPointNormals.cxx b/Accelerators/Vtkm/Filters/vtkmTriangleMeshPointNormals.cxx
index 260464f054065bbc4085f8fd2b519979bb2207c5..47de3c2d68eb6dae03844cc30c372ac8e15fcc23 100644
--- a/Accelerators/Vtkm/Filters/vtkmTriangleMeshPointNormals.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmTriangleMeshPointNormals.cxx
@@ -29,6 +29,7 @@
 
 #include "vtkm/filter/vector_analysis/SurfaceNormals.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmTriangleMeshPointNormals);
 
 //------------------------------------------------------------------------------
@@ -109,3 +110,4 @@ int vtkmTriangleMeshPointNormals::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmTriangleMeshPointNormals.h b/Accelerators/Vtkm/Filters/vtkmTriangleMeshPointNormals.h
index 47a16b603580049bc54da627a9fa0e2e73309704..33228888dfbc97f51d68010c6f2738b82c5b81c7 100644
--- a/Accelerators/Vtkm/Filters/vtkmTriangleMeshPointNormals.h
+++ b/Accelerators/Vtkm/Filters/vtkmTriangleMeshPointNormals.h
@@ -51,6 +51,7 @@
 #include "vtkTriangleMeshPointNormals.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmTriangleMeshPointNormals
   : public vtkTriangleMeshPointNormals
 {
@@ -85,4 +86,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmTriangleMeshPointNormals_h
diff --git a/Accelerators/Vtkm/Filters/vtkmWarpScalar.cxx b/Accelerators/Vtkm/Filters/vtkmWarpScalar.cxx
index 4d13c6549f7ebbe177a8e79b75c388b83c29a0d2..eee7a629ce97429d35aadca41adfd7972c3e769b 100644
--- a/Accelerators/Vtkm/Filters/vtkmWarpScalar.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmWarpScalar.cxx
@@ -35,6 +35,7 @@
 
 #include <vtkm/filter/field_transform/WarpScalar.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmWarpScalar);
 
 //------------------------------------------------------------------------------
@@ -185,3 +186,4 @@ void vtkmWarpScalar::PrintSelf(std::ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmWarpScalar.h b/Accelerators/Vtkm/Filters/vtkmWarpScalar.h
index 95fbbd61c1caec9450e7e9809809a54271333af7..a0885f2fb74c301223dd72aa0510918fbbb7df95 100644
--- a/Accelerators/Vtkm/Filters/vtkmWarpScalar.h
+++ b/Accelerators/Vtkm/Filters/vtkmWarpScalar.h
@@ -44,6 +44,7 @@
 #include "vtkWarpScalar.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmWarpScalar : public vtkWarpScalar
 {
 public:
@@ -64,4 +65,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmWarpScalar_h
diff --git a/Accelerators/Vtkm/Filters/vtkmWarpVector.cxx b/Accelerators/Vtkm/Filters/vtkmWarpVector.cxx
index 853e1d2435df0d61e7afcb01cd55383bd2d01d4e..a0c2ce1232ce99b0a32b1d7a2fb0f25b625286d2 100644
--- a/Accelerators/Vtkm/Filters/vtkmWarpVector.cxx
+++ b/Accelerators/Vtkm/Filters/vtkmWarpVector.cxx
@@ -35,6 +35,7 @@
 
 #include <vtkm/filter/field_transform/WarpVector.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkmWarpVector);
 
 //------------------------------------------------------------------------------
@@ -132,3 +133,4 @@ void vtkmWarpVector::PrintSelf(std::ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Accelerators/Vtkm/Filters/vtkmWarpVector.h b/Accelerators/Vtkm/Filters/vtkmWarpVector.h
index d077a462f54d80399ba32fc03714ab10e89db300..f79f4f75e5fddb45938f776b22ce4f87dc83e857 100644
--- a/Accelerators/Vtkm/Filters/vtkmWarpVector.h
+++ b/Accelerators/Vtkm/Filters/vtkmWarpVector.h
@@ -31,6 +31,7 @@
 #include "vtkWarpVector.h"
 #include "vtkmlib/vtkmInitializer.h" // Need for initializing vtk-m
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKACCELERATORSVTKMFILTERS_EXPORT vtkmWarpVector : public vtkWarpVector
 {
 public:
@@ -51,4 +52,5 @@ private:
   vtkmInitializer Initializer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkmWarpVector_h
diff --git a/CMake/vtkEncodeString.cmake b/CMake/vtkEncodeString.cmake
index 562a98c3715cc8d85a08bd4b6628738463c7dc9a..5196ec39994ffa60305a18a0f3237bbf5d32fae6 100644
--- a/CMake/vtkEncodeString.cmake
+++ b/CMake/vtkEncodeString.cmake
@@ -143,7 +143,10 @@ if (_vtk_encode_string_run AND CMAKE_SCRIPT_MODE_FILE)
     "#ifndef ${output_name}_h\n#define ${output_name}_h\n\n")
   if (export_symbol)
     file(APPEND "${output_header}"
-      "#include \"${export_header}\"\n\n${export_symbol} ")
+      "#include \"${export_header}\"\n\nVTK_ABI_NAMESPACE_BEGIN\n${export_symbol} ")
+  else ()
+    file(APPEND "${output_header}"
+      "#include \"vtkABINamespace.h\"\n\nVTK_ABI_NAMESPACE_BEGIN\n")
   endif ()
 
   if (IS_ABSOLUTE "${source_file}")
@@ -164,10 +167,10 @@ if (_vtk_encode_string_run AND CMAKE_SCRIPT_MODE_FILE)
     string(LENGTH "${original_content}" output_size)
     math(EXPR output_size "${output_size} / 2")
     file(APPEND "${output_header}"
-      "extern const unsigned char ${output_name}[${output_size}];\n\n#endif\n")
+      "extern const unsigned char ${output_name}[${output_size}];\n\nVTK_ABI_NAMESPACE_END\n#endif\n")
 
     file(APPEND "${output_source}"
-      "#include \"${output_name}.h\"\n\nconst unsigned char ${output_name}[${output_size}] = {\n")
+      "#include \"${output_name}.h\"\n\nVTK_ABI_NAMESPACE_BEGIN\n\nconst unsigned char ${output_name}[${output_size}] = {\n")
     string(REGEX REPLACE "\([0-9a-f][0-9a-f]\)" ",0x\\1" escaped_content "${original_content}")
     # Hard line wrap the file.
     string(REGEX REPLACE "\(..........................................................................,\)" "\\1\n" escaped_content "${escaped_content}")
@@ -176,10 +179,10 @@ if (_vtk_encode_string_run AND CMAKE_SCRIPT_MODE_FILE)
     file(APPEND "${output_source}"
       "${escaped_content}\n")
     file(APPEND "${output_source}"
-      "};\n")
+      "};\nVTK_ABI_NAMESPACE_END\n")
   else ()
     file(APPEND "${output_header}"
-      "extern const char *${output_name};\n\n#endif\n")
+      "extern const char *${output_name};\n\nVTK_ABI_NAMESPACE_END\n#endif\n")
 
     # Escape literal backslashes.
     string(REPLACE "\\" "\\\\" escaped_content "${original_content}")
@@ -189,8 +192,8 @@ if (_vtk_encode_string_run AND CMAKE_SCRIPT_MODE_FILE)
     string(REPLACE "\n" "\\n\"\n\"" escaped_content "${escaped_content}")
 
     file(APPEND "${output_source}"
-      "#include \"${output_name}.h\"\n\nconst char *${output_name} =\n")
+      "#include \"${output_name}.h\"\n\nVTK_ABI_NAMESPACE_BEGIN\n\nconst char *${output_name} =\n")
     file(APPEND "${output_source}"
-      "\"${escaped_content}\";\n")
+      "\"${escaped_content}\";\nVTK_ABI_NAMESPACE_END\n")
   endif ()
 endif ()
diff --git a/CMake/vtkObjectFactory.cxx.in b/CMake/vtkObjectFactory.cxx.in
index cd040941d9786873cb490636014970de7f005285..5c65a5ddae07072acdcb7a3bfbdd9385acf1d201 100644
--- a/CMake/vtkObjectFactory.cxx.in
+++ b/CMake/vtkObjectFactory.cxx.in
@@ -22,6 +22,8 @@
 // Include all of the classes we want to create overrides for.
 @_vtk_object_factory_includes@
 
+VTK_ABI_NAMESPACE_BEGIN
+
 vtkStandardNewMacro(@_vtk_object_factory_library_name@ObjectFactory);
 
 // Now create the functions to create overrides with.
@@ -60,3 +62,4 @@ static unsigned int @_vtk_object_factory_library_name@Count = 0;
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/CMake/vtkObjectFactory.h.in b/CMake/vtkObjectFactory.h.in
index b51bd66dae2a2bef61ba8e1d4b2ad263459a16b9..f294fb6fc0791af85270931df1d0cf835eb2c402 100644
--- a/CMake/vtkObjectFactory.h.in
+++ b/CMake/vtkObjectFactory.h.in
@@ -19,6 +19,8 @@
 #include "@_vtk_object_factory_library_name@Module.h" // For export macro
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class @_vtk_object_factory_configure_EXPORT_MACRO@ @_vtk_object_factory_library_name@ObjectFactory : public vtkObjectFactory
 {
 public:
@@ -39,4 +41,6 @@ private:
   void operator=(const @_vtk_object_factory_library_name@ObjectFactory&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
+
 #endif // @_vtk_object_factory_library_name@ObjectFactory_h
diff --git a/Charts/Core/vtkAxis.cxx b/Charts/Core/vtkAxis.cxx
index a5233408842a221c1cae2431ecab09496548e8c4..61c3654b62dd28001b4d2faf5880887762587bf7 100644
--- a/Charts/Core/vtkAxis.cxx
+++ b/Charts/Core/vtkAxis.cxx
@@ -41,6 +41,7 @@
 #include <limits>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAxis);
 
 //------------------------------------------------------------------------------
@@ -1952,3 +1953,4 @@ void vtkAxis::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ScalingFactor: " << this->ScalingFactor << "\n";
   os << indent << "Shift: " << this->Shift << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkAxis.h b/Charts/Core/vtkAxis.h
index a1418a8f666a56e5cd241ac56fa3dd1eaa717e7d..2f8f4c9c45e8bcc9ccbf73523850ab53c31ef70e 100644
--- a/Charts/Core/vtkAxis.h
+++ b/Charts/Core/vtkAxis.h
@@ -59,6 +59,7 @@
 #include "vtkStdString.h"    // For vtkStdString ivars
 #include "vtkVector.h"       // For position variables
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkFloatArray;
 class vtkDoubleArray;
@@ -794,4 +795,5 @@ private:
   bool InRange(double value);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkAxis_h
diff --git a/Charts/Core/vtkAxisExtended.cxx b/Charts/Core/vtkAxisExtended.cxx
index cc51be5da143225c216af5ba4faab532e8c0dbf4..6f51d21045bf40d1b475a83a30ca30982a8723b5 100644
--- a/Charts/Core/vtkAxisExtended.cxx
+++ b/Charts/Core/vtkAxisExtended.cxx
@@ -23,6 +23,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAxisExtended);
 
 vtkAxisExtended::vtkAxisExtended()
@@ -526,3 +527,4 @@ void vtkAxisExtended::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Precision: " << this->Precision << endl;
   os << indent << "LabelFormat: " << this->LabelFormat << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkAxisExtended.h b/Charts/Core/vtkAxisExtended.h
index 067f2e26cacb049d2ddd536b5e7d76082b9676a8..6b7533093a140424d6a6e355bfcb4e70d51c3c77 100644
--- a/Charts/Core/vtkAxisExtended.h
+++ b/Charts/Core/vtkAxisExtended.h
@@ -33,6 +33,7 @@
 #include "vtkObject.h"
 #include "vtkVector.h" // Needed for vtkVector
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCHARTSCORE_EXPORT vtkAxisExtended : public vtkObject
 {
 public:
@@ -136,3 +137,4 @@ private:
   vtkAxisExtended(const vtkAxisExtended&) = delete;
   void operator=(const vtkAxisExtended&) = delete;
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkCategoryLegend.cxx b/Charts/Core/vtkCategoryLegend.cxx
index bb54c07a24048b97e8c66af25a09112fddd1e54c..73d24aebff179e76e3e8557be2b480afd968e303 100644
--- a/Charts/Core/vtkCategoryLegend.cxx
+++ b/Charts/Core/vtkCategoryLegend.cxx
@@ -22,6 +22,7 @@
 #include "vtkVariantArray.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCategoryLegend);
 vtkCxxSetObjectMacro(vtkCategoryLegend, Values, vtkVariantArray);
 
@@ -301,3 +302,4 @@ void vtkCategoryLegend::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "TitleProperties: \n";
   this->TitleProperties->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkCategoryLegend.h b/Charts/Core/vtkCategoryLegend.h
index a7f7574419551332f4b6dcfd1b13ecc0b9f18f07..a44e75346a648a46d66e7bb068324bb73d9f93d1 100644
--- a/Charts/Core/vtkCategoryLegend.h
+++ b/Charts/Core/vtkCategoryLegend.h
@@ -34,6 +34,7 @@
 #include "vtkStdString.h"        // For vtkStdString ivars
 #include "vtkVector.h"           // For vtkRectf
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScalarsToColors;
 class vtkTextProperty;
 class vtkVariantArray;
@@ -120,4 +121,5 @@ private:
   void operator=(const vtkCategoryLegend&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkChart.cxx b/Charts/Core/vtkChart.cxx
index f4b6b709445a438ec0fc2d224b79af633e810f67..6f00cc7566bd35549e40e98d65f916a33840c209 100644
--- a/Charts/Core/vtkChart.cxx
+++ b/Charts/Core/vtkChart.cxx
@@ -24,6 +24,7 @@
 #include "vtkTextProperty.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkChart::MouseActions::MouseActions()
 {
   this->Pan() = vtkContextMouseEvent::LEFT_BUTTON;
@@ -484,3 +485,4 @@ void vtkChart::AxisRangeForwarderCallback(vtkObject*, unsigned long, void*)
   }
   this->InvokeEvent(vtkChart::UpdateRange, fullAxisRange);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkChart.h b/Charts/Core/vtkChart.h
index f3bd880dea754f1b4f705c29f0b57790e69f9ab3..0eeac7524c3282f3905a06f7dd2f609901589b46 100644
--- a/Charts/Core/vtkChart.h
+++ b/Charts/Core/vtkChart.h
@@ -31,6 +31,7 @@
 #include "vtkSmartPointer.h" // For SP ivars
 #include "vtkStdString.h"    // For vtkStdString ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransform2D;
 class vtkContextScene;
 class vtkPlot;
@@ -495,4 +496,5 @@ private:
   void operator=(const vtkChart&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkChart_h
diff --git a/Charts/Core/vtkChartBox.cxx b/Charts/Core/vtkChartBox.cxx
index 64f3c06bc7f0223162aea197f675df1d74bef28b..b943c1ece51cbb0781f0317a7471fb1164b0b920 100644
--- a/Charts/Core/vtkChartBox.cxx
+++ b/Charts/Core/vtkChartBox.cxx
@@ -45,6 +45,7 @@
 #include <vector>
 
 // Minimal storage class for STL containers etc.
+VTK_ABI_NAMESPACE_BEGIN
 class vtkChartBox::Private
 {
 public:
@@ -733,3 +734,4 @@ void vtkChartBox::SwapAxes(int a1, int a2)
 
   this->Storage->Plot->Update();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkChartBox.h b/Charts/Core/vtkChartBox.h
index a15ccb0657e8ab6335b5c79cdbf6082215d99733..ebeb060a21530b24505505629009486c6e096165 100644
--- a/Charts/Core/vtkChartBox.h
+++ b/Charts/Core/vtkChartBox.h
@@ -27,6 +27,7 @@
 #include "vtkChart.h"
 #include "vtkChartsCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 class vtkPlotBox;
 class vtkStdString;
@@ -256,4 +257,5 @@ struct vtkChartBoxData
 };
 ///@}
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkChartBox_h
diff --git a/Charts/Core/vtkChartHistogram2D.cxx b/Charts/Core/vtkChartHistogram2D.cxx
index 053ac9e46fcb1a2f41bad071481ae9bff1380179..c7add8e8882629aa6c969d1f1b2480400085b1c1 100644
--- a/Charts/Core/vtkChartHistogram2D.cxx
+++ b/Charts/Core/vtkChartHistogram2D.cxx
@@ -29,6 +29,7 @@
 #include "vtkTooltipItem.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkChartHistogram2D);
 
 //------------------------------------------------------------------------------
@@ -113,3 +114,4 @@ void vtkChartHistogram2D::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkChartHistogram2D.h b/Charts/Core/vtkChartHistogram2D.h
index f6a31189b2364321b4f6521403b7ab89be1e7568..be3355fcb7d173cc3870f5e00a445b097b1075b7 100644
--- a/Charts/Core/vtkChartHistogram2D.h
+++ b/Charts/Core/vtkChartHistogram2D.h
@@ -28,6 +28,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkSmartPointer.h"     // For SP ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkColorLegend;
 class vtkPlotHistogram2D;
 class vtkImageData;
@@ -85,4 +86,5 @@ private:
   void operator=(const vtkChartHistogram2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkChartHistogram2D_h
diff --git a/Charts/Core/vtkChartLegend.cxx b/Charts/Core/vtkChartLegend.cxx
index 5f0bbfac17a749af8465e640f6bf825e7db4392e..4761fe6d5e6b54f09c42c6e1a2edec945e096af5 100644
--- a/Charts/Core/vtkChartLegend.cxx
+++ b/Charts/Core/vtkChartLegend.cxx
@@ -34,6 +34,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkChartLegend::Private
 {
 public:
@@ -346,3 +347,4 @@ void vtkChartLegend::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkChartLegend.h b/Charts/Core/vtkChartLegend.h
index 8acba6c0a91ef136492df8f0486265a0fbf99ebc..065822310bd9b34ad4dc83bd22b0ef5a8f4f2c11 100644
--- a/Charts/Core/vtkChartLegend.h
+++ b/Charts/Core/vtkChartLegend.h
@@ -31,6 +31,7 @@
 #include "vtkNew.h"  // For vtkNew
 #include "vtkRect.h" // For vtkRectf return value
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkChart;
 class vtkPen;
 class vtkBrush;
@@ -316,4 +317,5 @@ private:
   void operator=(const vtkChartLegend&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkChartLegend_h
diff --git a/Charts/Core/vtkChartMatrix.cxx b/Charts/Core/vtkChartMatrix.cxx
index 71a096dcb8b75f490d41cd95503a26e564d3c93d..24c8bb8b1034ec9bca6dff87a595fd79b766ee50 100644
--- a/Charts/Core/vtkChartMatrix.cxx
+++ b/Charts/Core/vtkChartMatrix.cxx
@@ -29,6 +29,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkChartMatrix::PIMPL
 {
 public:
@@ -852,3 +853,4 @@ void vtkChartMatrix::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkChartMatrix.h b/Charts/Core/vtkChartMatrix.h
index c16069a9f43ffdb6dd655ea23184d3cb7a3cecfa..6c75ec7e19590ad875f6245e7e1a0b3dc3b15a1f 100644
--- a/Charts/Core/vtkChartMatrix.h
+++ b/Charts/Core/vtkChartMatrix.h
@@ -34,6 +34,7 @@
 #include <map>     // For specific gutter
 #include <utility> // For specific gutter
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkChart;
 
 class VTKCHARTSCORE_EXPORT vtkChartMatrix : public vtkAbstractContextItem
@@ -307,4 +308,5 @@ private:
   PIMPL* Private;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkChartMatrix_h
diff --git a/Charts/Core/vtkChartParallelCoordinates.cxx b/Charts/Core/vtkChartParallelCoordinates.cxx
index 71c1fe4c292cfaca8b038922d3ccd65a00ef1029..3dc111db299e1af9ff5376ba291c1929bc8a4fa8 100644
--- a/Charts/Core/vtkChartParallelCoordinates.cxx
+++ b/Charts/Core/vtkChartParallelCoordinates.cxx
@@ -42,6 +42,7 @@
 #include <vector>
 
 // Minimal storage class for STL containers etc.
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkChartParallelCoordinates::Private final
 {
   Private() { this->Plot = vtkSmartPointer<vtkPlotParallelCoordinates>::New(); }
@@ -916,3 +917,4 @@ void vtkChartParallelCoordinates::UpdateCurrentAxisSelection(int axisId)
   // To support multiple selection, we need to recalculate all the selection
   this->ResetSelection();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkChartParallelCoordinates.h b/Charts/Core/vtkChartParallelCoordinates.h
index 6f90f73dbbba0286513b5cf063367e41de40de29..d4bc8396b808842dfff5117d0386663439b117fb 100644
--- a/Charts/Core/vtkChartParallelCoordinates.h
+++ b/Charts/Core/vtkChartParallelCoordinates.h
@@ -28,6 +28,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkNew.h"              // For vtkNew
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 class vtkStdString;
 class vtkStringArray;
@@ -201,4 +202,5 @@ private:
   void operator=(const vtkChartParallelCoordinates&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkChartParallelCoordinates_h
diff --git a/Charts/Core/vtkChartPie.cxx b/Charts/Core/vtkChartPie.cxx
index 9ade92eabae3544aaf79772846a2abd8cc67aa77..90c5f8f40816b8749df44ad0cb992066223d4ec7 100644
--- a/Charts/Core/vtkChartPie.cxx
+++ b/Charts/Core/vtkChartPie.cxx
@@ -30,6 +30,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkChartPiePrivate
 {
 public:
@@ -292,3 +293,4 @@ void vtkChartPie::PrintSelf(ostream& os, vtkIndent indent)
     this->Private->Plot->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkChartPie.h b/Charts/Core/vtkChartPie.h
index 20becd70b23018f806573d436a3d4217f6be658a..6ed0abfecf7197094f98e11026ae37b91cb04e60 100644
--- a/Charts/Core/vtkChartPie.h
+++ b/Charts/Core/vtkChartPie.h
@@ -27,6 +27,7 @@
 #include "vtkChart.h"
 #include "vtkChartsCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkChartLegend;
 class vtkTooltipItem;
 class vtkChartPiePrivate;
@@ -166,4 +167,5 @@ private:
   vtkChartPiePrivate* Private;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkChartPie_h
diff --git a/Charts/Core/vtkChartXY.cxx b/Charts/Core/vtkChartXY.cxx
index 2804b23c388c437679a91ae7a2e1d11d0a8a1999..2044011847e0ce332b10d0423010ae064d52a5b4 100644
--- a/Charts/Core/vtkChartXY.cxx
+++ b/Charts/Core/vtkChartXY.cxx
@@ -65,6 +65,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkChartXYPrivate
 {
 public:
@@ -2911,3 +2912,4 @@ int vtkChartXY::GetMouseSelectionMode(const vtkContextMouseEvent& mouse, int sel
   }
   return selectionMode;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkChartXY.h b/Charts/Core/vtkChartXY.h
index 342ab20ac630d1b7ec08c8b18d2018caa1049a7e..fc511d3967f58e2842dfa9cb22e5277ff09d587c 100644
--- a/Charts/Core/vtkChartXY.h
+++ b/Charts/Core/vtkChartXY.h
@@ -35,6 +35,7 @@
 
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAxis;
 class vtkChartLegend;
 class vtkIdTypeArray;
@@ -45,8 +46,10 @@ class vtkTooltipItem;
 
 class vtkChartXYPrivate; // Private class to keep my STL vector in...
 
+VTK_ABI_NAMESPACE_END
 #include <map> // for std::map
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCHARTSCORE_EXPORT vtkChartXY : public vtkChart
 {
 public:
@@ -638,4 +641,5 @@ struct vtkChartPlotData
 };
 ///@}
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkChartXY_h
diff --git a/Charts/Core/vtkChartXYZ.cxx b/Charts/Core/vtkChartXYZ.cxx
index 2d63c83f043eb03a35d426a8c99aa5aca2523fdd..27d092934e947703d70868b5941dc01cd513ceba 100644
--- a/Charts/Core/vtkChartXYZ.cxx
+++ b/Charts/Core/vtkChartXYZ.cxx
@@ -45,6 +45,7 @@
 #include <list>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkChartXYZ);
 
 //------------------------------------------------------------------------------
@@ -1974,3 +1975,4 @@ void vtkChartXYZ::SetClippingPlanesEnabled(bool v)
     this->Scene->SetDirty(true);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkChartXYZ.h b/Charts/Core/vtkChartXYZ.h
index df756f2170ea0f45c44e07b3612224535687162f..278ffee3ce5a9acbb2a14c14705800a50d2caf39 100644
--- a/Charts/Core/vtkChartXYZ.h
+++ b/Charts/Core/vtkChartXYZ.h
@@ -33,6 +33,7 @@
 #include "vtkTextProperty.h" // For axes text properties
 #include <vector>            // For ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAnnotationLink;
 class vtkAxis;
 class vtkContext3D;
@@ -702,4 +703,5 @@ private:
   void operator=(const vtkChartXYZ&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkColorLegend.cxx b/Charts/Core/vtkColorLegend.cxx
index e37ade3db8260cca1417e76767170ea958554224..84143bdcdefb01564891b39ecd6b15f6f01c20c6 100644
--- a/Charts/Core/vtkColorLegend.cxx
+++ b/Charts/Core/vtkColorLegend.cxx
@@ -29,6 +29,7 @@
 #include "vtkTransform2D.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkColorLegend);
 
 //------------------------------------------------------------------------------
@@ -367,3 +368,4 @@ bool vtkColorLegend::MouseMoveEvent(const vtkContextMouseEvent& mouse)
   this->UpdateAxisPosition();
   return retval;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkColorLegend.h b/Charts/Core/vtkColorLegend.h
index f6aa3918f6d373e422d22b2faa160185b45f7ac6..fa1a12f6168b6bf3e36b13b71c55e8aeb2aae14d 100644
--- a/Charts/Core/vtkColorLegend.h
+++ b/Charts/Core/vtkColorLegend.h
@@ -29,6 +29,7 @@
 #include "vtkSmartPointer.h"     // For SP ivars
 #include "vtkVector.h"           // For vtkRectf
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAxis;
 class vtkContextMouseEvent;
 class vtkImageData;
@@ -184,4 +185,5 @@ private:
   void operator=(const vtkColorLegend&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkColorTransferControlPointsItem.cxx b/Charts/Core/vtkColorTransferControlPointsItem.cxx
index f8bd73c0364dd36d58028e38123497ef1154d097..6b8b136fcd9ebdd8343e4f83db6d6d920f9d535b 100644
--- a/Charts/Core/vtkColorTransferControlPointsItem.cxx
+++ b/Charts/Core/vtkColorTransferControlPointsItem.cxx
@@ -32,6 +32,7 @@
 #include <limits>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkColorTransferControlPointsItem);
 
 //------------------------------------------------------------------------------
@@ -241,3 +242,4 @@ void vtkColorTransferControlPointsItem::ComputeBounds(double* bounds)
     this->Superclass::ComputeBounds(bounds);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkColorTransferControlPointsItem.h b/Charts/Core/vtkColorTransferControlPointsItem.h
index fa71c97c625212b0e45e9dab4b8f691d50af8b58..c5257e8297e6e3c1475e4132e416bb822005b8f6 100644
--- a/Charts/Core/vtkColorTransferControlPointsItem.h
+++ b/Charts/Core/vtkColorTransferControlPointsItem.h
@@ -31,6 +31,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkControlPointsItem.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkColorTransferFunction;
 
 class VTKCHARTSCORE_EXPORT vtkColorTransferControlPointsItem : public vtkControlPointsItem
@@ -126,4 +127,5 @@ private:
   void operator=(const vtkColorTransferControlPointsItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkColorTransferFunctionItem.cxx b/Charts/Core/vtkColorTransferFunctionItem.cxx
index 2f218012fdc1fd020b16874b517f77767b8ef429..67ccedb671301132ff9942ef70bec0a7f5238e33 100644
--- a/Charts/Core/vtkColorTransferFunctionItem.cxx
+++ b/Charts/Core/vtkColorTransferFunctionItem.cxx
@@ -31,6 +31,7 @@
 #include <cmath>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkColorTransferFunctionItem);
 
 //------------------------------------------------------------------------------
@@ -151,3 +152,4 @@ bool vtkColorTransferFunctionItem::ConfigurePlotBar()
   }
   return ret;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkColorTransferFunctionItem.h b/Charts/Core/vtkColorTransferFunctionItem.h
index 3b6d3914ccf3bd8a8c4da868cc510892c3122a05..78342c51fdce67c39ea7b7d89e45a37c45f0456c 100644
--- a/Charts/Core/vtkColorTransferFunctionItem.h
+++ b/Charts/Core/vtkColorTransferFunctionItem.h
@@ -19,6 +19,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkScalarsToColorsItem.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkColorTransferFunction;
 class vtkImageData;
 
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkColorTransferFunctionItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkCompositeControlPointsItem.cxx b/Charts/Core/vtkCompositeControlPointsItem.cxx
index f601db85b3bd4c98cdc2734e117e7b8c4ed5b767..f6e11df83d9f13e15c157f15e40c3b2352d6abd8 100644
--- a/Charts/Core/vtkCompositeControlPointsItem.cxx
+++ b/Charts/Core/vtkCompositeControlPointsItem.cxx
@@ -34,6 +34,7 @@
 #include <limits>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeControlPointsItem);
 
 //------------------------------------------------------------------------------
@@ -420,3 +421,4 @@ void vtkCompositeControlPointsItem::EditPointCurve(vtkIdType index)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkCompositeControlPointsItem.h b/Charts/Core/vtkCompositeControlPointsItem.h
index 29e1e55a212c516b229bd7b00ab2eeb10b68c5fe..14705971a64438d9e0d04bb3cfa7121caecbcf0e 100644
--- a/Charts/Core/vtkCompositeControlPointsItem.h
+++ b/Charts/Core/vtkCompositeControlPointsItem.h
@@ -33,6 +33,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkColorTransferControlPointsItem.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPiecewiseFunction;
 class vtkPiecewisePointHandleItem;
 
@@ -168,4 +169,5 @@ private:
   void operator=(const vtkCompositeControlPointsItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkCompositeTransferFunctionItem.cxx b/Charts/Core/vtkCompositeTransferFunctionItem.cxx
index f97cd987f9b17fb529cecbf2f52b50609727a974..f5a05cb0a857ebf4e6698f65248c52905f6e27e9 100644
--- a/Charts/Core/vtkCompositeTransferFunctionItem.cxx
+++ b/Charts/Core/vtkCompositeTransferFunctionItem.cxx
@@ -31,6 +31,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeTransferFunctionItem);
 
 //------------------------------------------------------------------------------
@@ -163,3 +164,4 @@ void vtkCompositeTransferFunctionItem::ComputeTexture()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkCompositeTransferFunctionItem.h b/Charts/Core/vtkCompositeTransferFunctionItem.h
index 36b5d17b39d821bd2075afa33b84dc9a2f68218e..a879cab24f97afc8b0bc42e06e7a8c25a10c5b6c 100644
--- a/Charts/Core/vtkCompositeTransferFunctionItem.h
+++ b/Charts/Core/vtkCompositeTransferFunctionItem.h
@@ -19,6 +19,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkColorTransferFunctionItem.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPiecewiseFunction;
 
 // Description:
@@ -49,4 +50,5 @@ private:
   void operator=(const vtkCompositeTransferFunctionItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkContextArea.cxx b/Charts/Core/vtkContextArea.cxx
index 9db48f63c8248e858ba5e3f9e955d992be5e89c3..9296cbc3ec5aee033e1e3888ba473f8d7075b783 100644
--- a/Charts/Core/vtkContextArea.cxx
+++ b/Charts/Core/vtkContextArea.cxx
@@ -26,6 +26,7 @@
 #include <cstdlib>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContextArea);
 
 //------------------------------------------------------------------------------
@@ -405,3 +406,4 @@ bool vtkContextArea::GetShowGrid()
 {
   return this->Grid->GetVisible();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkContextArea.h b/Charts/Core/vtkContextArea.h
index bc8f6170ec661f80ecfb020a1142c5734d5bfe19..ddfccced4b633c0363d27d60b9d100ac49593a32 100644
--- a/Charts/Core/vtkContextArea.h
+++ b/Charts/Core/vtkContextArea.h
@@ -47,6 +47,7 @@
 #include "vtkNew.h"              // For vtkNew
 #include "vtkRect.h"             // For vtkRect/vtkVector/vtkTuple
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContextClip;
 class vtkContextTransform;
 class vtkPlotGrid;
@@ -299,4 +300,5 @@ private:
   void operator=(const vtkContextArea&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContextArea_h
diff --git a/Charts/Core/vtkContextPolygon.cxx b/Charts/Core/vtkContextPolygon.cxx
index cb96e8e09c1f9fd044579f5c35b0e97e0ed2eedb..b6ed29a4bac746c7f198513257bce4bb04759724 100644
--- a/Charts/Core/vtkContextPolygon.cxx
+++ b/Charts/Core/vtkContextPolygon.cxx
@@ -21,6 +21,7 @@
 #include "vtkTransform2D.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContextPolygonPrivate
 {
 public:
@@ -130,3 +131,4 @@ vtkContextPolygon& vtkContextPolygon::operator=(const vtkContextPolygon& other)
 
   return *this;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkContextPolygon.h b/Charts/Core/vtkContextPolygon.h
index 601ec48ead83fe9fd7b7ca34215610b6fe19fc02..25419eb1903641453c0bd31c6bf438660b497061 100644
--- a/Charts/Core/vtkContextPolygon.h
+++ b/Charts/Core/vtkContextPolygon.h
@@ -20,6 +20,7 @@
 #include "vtkType.h"   // For vtkIdType
 #include "vtkVector.h" // For vtkVector2f
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransform2D;
 class vtkContextPolygonPrivate;
 
@@ -74,5 +75,6 @@ private:
   vtkContextPolygonPrivate* const d;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContextPolygon_h
 // VTK-HeaderTest-Exclude: vtkContextPolygon.h
diff --git a/Charts/Core/vtkControlPointsItem.cxx b/Charts/Core/vtkControlPointsItem.cxx
index b2760b13d1c914c60f5fbb685689b49b54b0c8d3..5bac9b71a56b0fc63a3b4244f2a467dc0c333981 100644
--- a/Charts/Core/vtkControlPointsItem.cxx
+++ b/Charts/Core/vtkControlPointsItem.cxx
@@ -41,6 +41,7 @@
 // An internal class that is used as an item
 // to be placed below all other items
 // in order to hit when trying to add a point
+VTK_ABI_NAMESPACE_BEGIN
 class vtkControlPointsAddPointItem : public vtkPlot
 {
 public:
@@ -1753,3 +1754,4 @@ vtkVector2f vtkControlPointsItem::GetSelectionCenterOfMass() const
 {
   return this->GetCenterOfMass(this->Selection);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkControlPointsItem.h b/Charts/Core/vtkControlPointsItem.h
index 8b452498ff769c31bfd70feea4caf1d87cf8847a..ac0af0726af2e69e04e92a2858609fce9a53b992 100644
--- a/Charts/Core/vtkControlPointsItem.h
+++ b/Charts/Core/vtkControlPointsItem.h
@@ -36,6 +36,7 @@
 #include "vtkVector.h"           // For vtkVector2f
 #include <string>                // Used by GetControlPointLabel
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkContext2D;
 class vtkControlPointsAddPointItem;
@@ -525,4 +526,5 @@ private:
   bool UseAddPointItem = false;
   vtkNew<vtkControlPointsAddPointItem> AddPointItem;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkInteractiveArea.cxx b/Charts/Core/vtkInteractiveArea.cxx
index bc3727d1e5c5ff018f1ccdb07636d23c3aae85ad..04e652aa1598cc26c315f956e3de581291946f47 100644
--- a/Charts/Core/vtkInteractiveArea.cxx
+++ b/Charts/Core/vtkInteractiveArea.cxx
@@ -29,6 +29,7 @@
 /**
  * Hold mouse action key-mappings and other action related resources.
  */
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInteractiveArea::MouseActions
 {
 public:
@@ -266,3 +267,4 @@ void vtkInteractiveArea::ComputeZoom(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkInteractiveArea.h b/Charts/Core/vtkInteractiveArea.h
index 1979da0fd856dbe9f664a395f70ce96a6b6409c6..d5f7e417c7e29876436c2fc4766784b85195af57 100644
--- a/Charts/Core/vtkInteractiveArea.h
+++ b/Charts/Core/vtkInteractiveArea.h
@@ -27,6 +27,7 @@
 #include "vtkContextArea.h"
 #include "vtkNew.h" // For vtkNew
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContextTransform;
 class vtkRectd;
 
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkInteractiveArea&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkInteractiveArea_h
diff --git a/Charts/Core/vtkLookupTableItem.cxx b/Charts/Core/vtkLookupTableItem.cxx
index e174a79a156deddb08e8e2e7e62ae3db7e26313c..529086276afdf6c1b86f38d57d76abfdd5edda4d 100644
--- a/Charts/Core/vtkLookupTableItem.cxx
+++ b/Charts/Core/vtkLookupTableItem.cxx
@@ -24,6 +24,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLookupTableItem);
 
 //------------------------------------------------------------------------------
@@ -125,3 +126,4 @@ void vtkLookupTableItem::ComputeTexture()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkLookupTableItem.h b/Charts/Core/vtkLookupTableItem.h
index 7aa116225e8b5b906fb15a6f0c4c6737558df736..9b3ecc1b1e4bea4d3cc37aa732852f00bb76e165 100644
--- a/Charts/Core/vtkLookupTableItem.h
+++ b/Charts/Core/vtkLookupTableItem.h
@@ -19,6 +19,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkScalarsToColorsItem.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLookupTable;
 
 // Description:
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkLookupTableItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkPiecewiseControlPointsItem.cxx b/Charts/Core/vtkPiecewiseControlPointsItem.cxx
index 02dc3050866164eb95b87497df3b031e86153227..1f1fea0a7dca4c1ab96961f52de4ac536bf78058 100644
--- a/Charts/Core/vtkPiecewiseControlPointsItem.cxx
+++ b/Charts/Core/vtkPiecewiseControlPointsItem.cxx
@@ -32,6 +32,7 @@
 #include <limits>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPiecewiseControlPointsItem);
 
 //------------------------------------------------------------------------------
@@ -200,3 +201,4 @@ vtkIdType vtkPiecewiseControlPointsItem::RemovePoint(double* currentPoint)
 
   return removedPoint;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPiecewiseControlPointsItem.h b/Charts/Core/vtkPiecewiseControlPointsItem.h
index 198d2faa538697d00d961e6f3344b8b5ad1c39df..a75b38c62e1163027622b4005771103d707544b3 100644
--- a/Charts/Core/vtkPiecewiseControlPointsItem.h
+++ b/Charts/Core/vtkPiecewiseControlPointsItem.h
@@ -31,6 +31,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkControlPointsItem.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPiecewiseFunction;
 
 class VTKCHARTSCORE_EXPORT vtkPiecewiseControlPointsItem : public vtkControlPointsItem
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkPiecewiseControlPointsItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkPiecewiseFunctionItem.cxx b/Charts/Core/vtkPiecewiseFunctionItem.cxx
index 7739e0111b726c50fb72479efb9443da7469929a..23564a736e0440c840faddb3b167631e110a8dbc 100644
--- a/Charts/Core/vtkPiecewiseFunctionItem.cxx
+++ b/Charts/Core/vtkPiecewiseFunctionItem.cxx
@@ -28,6 +28,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPiecewiseFunctionItem);
 
 //------------------------------------------------------------------------------
@@ -143,3 +144,4 @@ void vtkPiecewiseFunctionItem::ComputeTexture()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPiecewiseFunctionItem.h b/Charts/Core/vtkPiecewiseFunctionItem.h
index c0a5a45b3d2e40492c2d68c6350fb6a5222b02ef..7e32a60ab304450c123722adefcad52793b86d11 100644
--- a/Charts/Core/vtkPiecewiseFunctionItem.h
+++ b/Charts/Core/vtkPiecewiseFunctionItem.h
@@ -19,6 +19,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkScalarsToColorsItem.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPiecewiseFunction;
 class vtkImageData;
 
@@ -52,4 +53,5 @@ private:
   void operator=(const vtkPiecewiseFunctionItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkPiecewisePointHandleItem.cxx b/Charts/Core/vtkPiecewisePointHandleItem.cxx
index 07044501fc93bd748ee355eed77ddff86a369d40..5ed6063060332e5ceaad2c3fc6e4de889ab1e51a 100644
--- a/Charts/Core/vtkPiecewisePointHandleItem.cxx
+++ b/Charts/Core/vtkPiecewisePointHandleItem.cxx
@@ -31,6 +31,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 enum enumPointHandleType
 {
   enSharpNess = 0,
@@ -427,3 +428,4 @@ void vtkPiecewisePointHandleItem::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "MouseOverHandleIndex: " << this->MouseOverHandleIndex << endl;
   os << indent << "CurrentPointIndex: " << this->CurrentPointIndex << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPiecewisePointHandleItem.h b/Charts/Core/vtkPiecewisePointHandleItem.h
index fbf8f212e0e73f27ac1c20d90e74c1650ac8746a..6f6f51317b772cb1e6ff405adc61eda8a03c957d 100644
--- a/Charts/Core/vtkPiecewisePointHandleItem.h
+++ b/Charts/Core/vtkPiecewisePointHandleItem.h
@@ -31,6 +31,7 @@
 #include "vtkContextItem.h"
 #include "vtkWeakPointer.h" // Needed for weak pointer to the PiecewiseFunction.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkPiecewiseFunction;
 class vtkCallbackCommand;
@@ -121,4 +122,5 @@ private:
   InternalPiecewisePointHandleInfo* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPiecewisePointHandleItem_h
diff --git a/Charts/Core/vtkPlot.cxx b/Charts/Core/vtkPlot.cxx
index 8236a25d0f60671985d526ba6573768b2ace5ef6..bcd13cca1fc9fd5c4448936242242ba6eb818ab2 100644
--- a/Charts/Core/vtkPlot.cxx
+++ b/Charts/Core/vtkPlot.cxx
@@ -30,6 +30,7 @@
 #include "vtkTransform2D.h"
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkPlot, XAxis, vtkAxis);
 vtkCxxSetObjectMacro(vtkPlot, YAxis, vtkAxis);
 
@@ -714,3 +715,4 @@ bool vtkPlot::Hit(const vtkContextMouseEvent& mouse)
   vtkIdType segmentId;
   return this->GetNearestPoint(mouse.GetPos(), tol, &loc, &segmentId) >= 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlot.h b/Charts/Core/vtkPlot.h
index 58f82cc0ceaa59613d0b52c9e482093f16754b41..cd0e15ff01fdf0144da6aaf2736fc8ebb7dfebfa 100644
--- a/Charts/Core/vtkPlot.h
+++ b/Charts/Core/vtkPlot.h
@@ -35,6 +35,7 @@
 #include "vtkSmartPointer.h"   // Needed to hold SP ivars
 #include "vtkStdString.h"      // Needed to hold TooltipLabelFormat ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVariant;
 class vtkTable;
 class vtkIdTypeArray;
@@ -561,4 +562,5 @@ private:
   void operator=(const vtkPlot&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlot_h
diff --git a/Charts/Core/vtkPlot3D.cxx b/Charts/Core/vtkPlot3D.cxx
index 162d91863b10e2671c4a85e4c10de9309558eb50..fc8f7ae73237ceca2110f68caca273800ac6397a 100644
--- a/Charts/Core/vtkPlot3D.cxx
+++ b/Charts/Core/vtkPlot3D.cxx
@@ -24,6 +24,7 @@
 #include "vtkStringArray.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // FIXME: Put this in a central header, as it is used across several classes.
@@ -346,3 +347,4 @@ std::vector<vtkVector3f> vtkPlot3D::GetPoints()
 {
   return this->Points;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlot3D.h b/Charts/Core/vtkPlot3D.h
index 2830fe007ebb5bcdc6627d09d08e1eff640dbf17..da3a0bfa2fff814593162ce33ba6691f1e4fae80 100644
--- a/Charts/Core/vtkPlot3D.h
+++ b/Charts/Core/vtkPlot3D.h
@@ -34,6 +34,7 @@
 #include "vtkVector.h"       // For Points ivar
 #include <vector>            // For ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkChartXYZ;
 class vtkDataArray;
 class vtkIdTypeArray;
@@ -199,4 +200,5 @@ private:
   void operator=(const vtkPlot3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlot3D_h
diff --git a/Charts/Core/vtkPlotArea.cxx b/Charts/Core/vtkPlotArea.cxx
index 90d8e74b244ce6894c9da475e0bc65898f2e9bf8..2037b83eba102f396904be4e6b4251ec6d4a62f3 100644
--- a/Charts/Core/vtkPlotArea.cxx
+++ b/Charts/Core/vtkPlotArea.cxx
@@ -37,6 +37,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 inline bool vtkIsBadPoint(const vtkVector2f& vec)
@@ -667,3 +668,4 @@ void vtkPlotArea::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotArea.h b/Charts/Core/vtkPlotArea.h
index 858a1778c41b0da66b7d80904c69bfa165a8cf65..52c3ccbf0b72593f727eacac1b6913dd3caaa8c0 100644
--- a/Charts/Core/vtkPlotArea.h
+++ b/Charts/Core/vtkPlotArea.h
@@ -28,6 +28,7 @@
 
 #include "vtkPlot.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCHARTSCORE_EXPORT vtkPlotArea : public vtkPlot
 {
 public:
@@ -130,4 +131,5 @@ private:
   vtkTimeStamp UpdateTime;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkPlotBag.cxx b/Charts/Core/vtkPlotBag.cxx
index 3a92c1e0dea5fbe99606adb63201895a72ef760e..d0c22497aa366bae0adb9fe3b4b3769e54d5692d 100644
--- a/Charts/Core/vtkPlotBag.cxx
+++ b/Charts/Core/vtkPlotBag.cxx
@@ -34,6 +34,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlotBag);
 
 vtkSetObjectImplementationMacro(vtkPlotBag, LinePen, vtkPen);
@@ -455,3 +456,4 @@ void vtkPlotBag::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotBag.h b/Charts/Core/vtkPlotBag.h
index ef4e899014fd95568b43261b82333e2f57e80fe2..104d40e65d7aee137e6490aed47b8145b85593eb 100644
--- a/Charts/Core/vtkPlotBag.h
+++ b/Charts/Core/vtkPlotBag.h
@@ -36,6 +36,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkPlotPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPen;
 
 class VTKCHARTSCORE_EXPORT vtkPlotBag : public vtkPlotPoints
@@ -140,4 +141,5 @@ private:
   void operator=(const vtkPlotBag&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotBag_h
diff --git a/Charts/Core/vtkPlotBar.cxx b/Charts/Core/vtkPlotBar.cxx
index d890d60edca53791959b5b01bd383464ceef6c66..a68a26c0ecd352e99fac00eefd2204217a62ad3c 100644
--- a/Charts/Core/vtkPlotBar.cxx
+++ b/Charts/Core/vtkPlotBar.cxx
@@ -44,6 +44,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -1100,3 +1101,4 @@ void vtkPlotBar::GetDataBounds(double bounds[2])
     table->GetRowData()->GetRange(x->GetName(), bounds);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotBar.h b/Charts/Core/vtkPlotBar.h
index c2acdb24783c65a18574accf46e8b3433ff16739..e525e117608c6e0a3b15dc1d4977c9607bfb5efd 100644
--- a/Charts/Core/vtkPlotBar.h
+++ b/Charts/Core/vtkPlotBar.h
@@ -29,6 +29,7 @@
 #include "vtkPlot.h"
 #include "vtkSmartPointer.h" // Needed to hold ColorSeries
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkTable;
 class vtkPoints2D;
@@ -323,4 +324,5 @@ private:
   vtkPlotBarPrivate* Private;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotBar_h
diff --git a/Charts/Core/vtkPlotBarRangeHandlesItem.cxx b/Charts/Core/vtkPlotBarRangeHandlesItem.cxx
index 7077a888efdeb80a72bab06fd320b9075aec1aa9..d65eb2c446e6a4e5c81511fb16c31059f95b413c 100644
--- a/Charts/Core/vtkPlotBarRangeHandlesItem.cxx
+++ b/Charts/Core/vtkPlotBarRangeHandlesItem.cxx
@@ -3,6 +3,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlotBarRangeHandlesItem);
 
 //------------------------------------------------------------------------------
@@ -99,3 +100,4 @@ void vtkPlotBarRangeHandlesItem::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotBarRangeHandlesItem.h b/Charts/Core/vtkPlotBarRangeHandlesItem.h
index 3eba8079698d54b05e2c5c1940155211a95330fc..8a30000a84439a830ba33e3c292cc362fe7034a1 100644
--- a/Charts/Core/vtkPlotBarRangeHandlesItem.h
+++ b/Charts/Core/vtkPlotBarRangeHandlesItem.h
@@ -35,6 +35,7 @@
 #include "vtkPlotRangeHandlesItem.h"
 #include "vtkSmartPointer.h" // Needed for vtkSmartPointer attribute
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCHARTSCORE_EXPORT vtkPlotBarRangeHandlesItem : public vtkPlotRangeHandlesItem
 {
 public:
@@ -72,4 +73,5 @@ private:
   vtkSmartPointer<vtkPlotBar> PlotBar;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotBarRangeHandlesItem_h
diff --git a/Charts/Core/vtkPlotBox.cxx b/Charts/Core/vtkPlotBox.cxx
index 9ef7f0a64f679660bbe58de2bce398816dac2bba..187bfa11f0d4a4df1e4965db1d50f4b61b96c44e 100644
--- a/Charts/Core/vtkPlotBox.cxx
+++ b/Charts/Core/vtkPlotBox.cxx
@@ -42,6 +42,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlotBox::Private : public std::vector<std::vector<double>>
 {
 public:
@@ -401,3 +402,4 @@ void vtkPlotBox::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotBox.h b/Charts/Core/vtkPlotBox.h
index a7f0e33897e8fc1c3fec0e07018361baee914f32..b5f6ec5512955f9da5dc02c8994f745e020fdf3f 100644
--- a/Charts/Core/vtkPlotBox.h
+++ b/Charts/Core/vtkPlotBox.h
@@ -28,6 +28,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkPlot.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBrush;
 class vtkTextProperty;
 class vtkTable;
@@ -160,4 +161,5 @@ private:
   void operator=(const vtkPlotBox&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotBox_h
diff --git a/Charts/Core/vtkPlotFunctionalBag.cxx b/Charts/Core/vtkPlotFunctionalBag.cxx
index fd8bce4aa340f9c6842e66eb14948a6f7af0d222..8a640c9aecb95743c83ffc78818f8d833b45a1a4 100644
--- a/Charts/Core/vtkPlotFunctionalBag.cxx
+++ b/Charts/Core/vtkPlotFunctionalBag.cxx
@@ -32,6 +32,7 @@
 #include "vtkTable.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlotFunctionalBag);
 
 //------------------------------------------------------------------------------
@@ -356,3 +357,4 @@ void vtkPlotFunctionalBag::CreateDefaultLookupTable()
   this->LookupTable->Register(this);
   this->LookupTable->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotFunctionalBag.h b/Charts/Core/vtkPlotFunctionalBag.h
index 6d6dce72bf4fbeaf7e9562d18de26e8259a3599e..74da4ea85101b72cfaa69684b9b980b2456e3a34 100644
--- a/Charts/Core/vtkPlotFunctionalBag.h
+++ b/Charts/Core/vtkPlotFunctionalBag.h
@@ -36,6 +36,7 @@
 #include "vtkNew.h"              // Needed to hold SP ivars
 #include "vtkPlot.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkPlotFuntionalBagInternal;
 class vtkPlotLine;
@@ -165,4 +166,5 @@ private:
   void operator=(const vtkPlotFunctionalBag&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotFunctionalBag_h
diff --git a/Charts/Core/vtkPlotGrid.cxx b/Charts/Core/vtkPlotGrid.cxx
index aa821b2cdb7e525ade4912017fa740f1eb23c893..e11ac736987325d09a1c868d9aae45d2e30d2304 100644
--- a/Charts/Core/vtkPlotGrid.cxx
+++ b/Charts/Core/vtkPlotGrid.cxx
@@ -25,6 +25,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkPlotGrid, XAxis, vtkAxis);
 vtkCxxSetObjectMacro(vtkPlotGrid, YAxis, vtkAxis);
 //------------------------------------------------------------------------------
@@ -92,3 +93,4 @@ void vtkPlotGrid::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotGrid.h b/Charts/Core/vtkPlotGrid.h
index da5163e21b41542aed3b773484aa36807888293c..6473118fe9a9664271d6a8a64d55db92a2799a09 100644
--- a/Charts/Core/vtkPlotGrid.h
+++ b/Charts/Core/vtkPlotGrid.h
@@ -30,6 +30,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkContextItem.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkPoints2D;
 class vtkAxis;
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkPlotGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotGrid_h
diff --git a/Charts/Core/vtkPlotHistogram2D.cxx b/Charts/Core/vtkPlotHistogram2D.cxx
index deac5ce99b938a0ab3f9ef111186f40b9ef288d5..59e48f444f0f09beaf766dd82a50057c76c5e5e5 100644
--- a/Charts/Core/vtkPlotHistogram2D.cxx
+++ b/Charts/Core/vtkPlotHistogram2D.cxx
@@ -28,6 +28,7 @@
 #include <algorithm>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlotHistogram2D);
 
 //------------------------------------------------------------------------------
@@ -284,3 +285,4 @@ void vtkPlotHistogram2D::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotHistogram2D.h b/Charts/Core/vtkPlotHistogram2D.h
index 3461c15ee2875e4b799367c56d47153c91cc35e7..7444b7e757553578b1f2a3235adffc163536b9ab 100644
--- a/Charts/Core/vtkPlotHistogram2D.h
+++ b/Charts/Core/vtkPlotHistogram2D.h
@@ -29,6 +29,7 @@
 #include "vtkRect.h"         // Needed for vtkRectf
 #include "vtkSmartPointer.h" // Needed for SP ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkScalarsToColors;
 
@@ -140,4 +141,5 @@ private:
   void operator=(const vtkPlotHistogram2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotHistogram2D_h
diff --git a/Charts/Core/vtkPlotLine.cxx b/Charts/Core/vtkPlotLine.cxx
index a081bf304039e7da43d7dcddd95dd5161bbafa56..70b4f33187a85118a0552e87f2a8a60ffaf84730 100644
--- a/Charts/Core/vtkPlotLine.cxx
+++ b/Charts/Core/vtkPlotLine.cxx
@@ -24,6 +24,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlotLine);
 
 //------------------------------------------------------------------------------
@@ -120,3 +121,4 @@ void vtkPlotLine::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotLine.h b/Charts/Core/vtkPlotLine.h
index dd6162efa97d222256db8717103b25123c696a67..b621e83910cea1879d86deaf85b0ab10525e3cd5 100644
--- a/Charts/Core/vtkPlotLine.h
+++ b/Charts/Core/vtkPlotLine.h
@@ -28,6 +28,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkPlotPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCHARTSCORE_EXPORT vtkPlotLine : public vtkPlotPoints
 {
 public:
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkPlotLine&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotLine_h
diff --git a/Charts/Core/vtkPlotLine3D.cxx b/Charts/Core/vtkPlotLine3D.cxx
index c69953d640a39a70f6cf357f26571bbf802e770c..9c5919fe4576a0fca4ba29045474fe301aeceb33 100644
--- a/Charts/Core/vtkPlotLine3D.cxx
+++ b/Charts/Core/vtkPlotLine3D.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlotLine3D);
 
 //------------------------------------------------------------------------------
@@ -60,3 +61,4 @@ void vtkPlotLine3D::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotLine3D.h b/Charts/Core/vtkPlotLine3D.h
index c31ad5bb0e53956d8e8b5958404790cc8a001a5e..a5ad80ff6b564925d45218f24fea5dafd991dbe6 100644
--- a/Charts/Core/vtkPlotLine3D.h
+++ b/Charts/Core/vtkPlotLine3D.h
@@ -34,6 +34,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkPlotPoints3D.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCHARTSCORE_EXPORT vtkPlotLine3D : public vtkPlotPoints3D
 {
 public:
@@ -59,4 +60,5 @@ private:
   void operator=(const vtkPlotLine3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotLine3D_h
diff --git a/Charts/Core/vtkPlotParallelCoordinates.cxx b/Charts/Core/vtkPlotParallelCoordinates.cxx
index 4db4a86c4b9a535b525d44b2e8b77854f3ffbf8b..9fa63f1c9356f1ec2e8fc7cd7432cd640f63eba0 100644
--- a/Charts/Core/vtkPlotParallelCoordinates.cxx
+++ b/Charts/Core/vtkPlotParallelCoordinates.cxx
@@ -43,6 +43,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlotParallelCoordinates::Private : public std::vector<std::vector<float>>
 {
 public:
@@ -510,3 +511,4 @@ void vtkPlotParallelCoordinates::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotParallelCoordinates.h b/Charts/Core/vtkPlotParallelCoordinates.h
index 774d0a96e19c452e6a7033888b13de60a570f7c9..72393d8eb72179544b29446336b96eba6a4a0c39 100644
--- a/Charts/Core/vtkPlotParallelCoordinates.h
+++ b/Charts/Core/vtkPlotParallelCoordinates.h
@@ -30,6 +30,7 @@
 #include "vtkScalarsToColors.h" // For VTK_COLOR_MODE_DEFAULT and _MAP_SCALARS
 #include "vtkStdString.h"       // For vtkStdString ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkChartParallelCoordinates;
 class vtkScalarsToColors;
 class vtkTable;
@@ -165,4 +166,5 @@ private:
   void operator=(const vtkPlotParallelCoordinates&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotParallelCoordinates_h
diff --git a/Charts/Core/vtkPlotPie.cxx b/Charts/Core/vtkPlotPie.cxx
index 80a2e2fd194841697c890ff7c0491f2cd5637a84..360765129ba950d16871c2e8795bf3f30d59397c 100644
--- a/Charts/Core/vtkPlotPie.cxx
+++ b/Charts/Core/vtkPlotPie.cxx
@@ -29,6 +29,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -248,3 +249,4 @@ bool vtkPlotPie::UpdateCache()
   this->BuildTime.Modified();
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotPie.h b/Charts/Core/vtkPlotPie.h
index 5b872dc5fc3bf26fee32cbf521020025efdab1ae..a4b0c1ed69a8bff753e75996c02eabdf2a023de6 100644
--- a/Charts/Core/vtkPlotPie.h
+++ b/Charts/Core/vtkPlotPie.h
@@ -27,6 +27,7 @@
 #include "vtkPlot.h"
 #include "vtkSmartPointer.h" // To hold ColorSeries etc.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkColorSeries;
 class vtkPoints2D;
@@ -124,4 +125,5 @@ private:
   vtkPlotPiePrivate* Private;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotPie_h
diff --git a/Charts/Core/vtkPlotPoints.cxx b/Charts/Core/vtkPlotPoints.cxx
index a5ef2d9a69ede001fda77333289dddd4850543cd..6d6d7374c8bcd762c08e013a7fb645008448afd0 100644
--- a/Charts/Core/vtkPlotPoints.cxx
+++ b/Charts/Core/vtkPlotPoints.cxx
@@ -38,6 +38,7 @@
 #include <vector>
 
 // PIMPL for STL vector...
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkIndexedVector2f
 {
   size_t index;
@@ -966,3 +967,4 @@ void vtkPlotPoints::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotPoints.h b/Charts/Core/vtkPlotPoints.h
index 1ee0761cc81ececbc0bd9812fe22dd9153c5951b..c803f57bc716aec778a72536825637b7ab9d1c7a 100644
--- a/Charts/Core/vtkPlotPoints.h
+++ b/Charts/Core/vtkPlotPoints.h
@@ -37,6 +37,7 @@
 #include "vtkScalarsToColors.h"    // For VTK_COLOR_MODE_DEFAULT and _MAP_SCALARS
 #include "vtkStdString.h"          // For color array name
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCharArray;
 class vtkContext2D;
 class vtkTable;
@@ -289,4 +290,5 @@ private:
   void operator=(const vtkPlotPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotPoints_h
diff --git a/Charts/Core/vtkPlotPoints3D.cxx b/Charts/Core/vtkPlotPoints3D.cxx
index 087e88be4e23a9fe24e89d3e96c07aaaa1dbba79..2897dad0f5dd2dd9e7e8282e26ba1b0774359485 100644
--- a/Charts/Core/vtkPlotPoints3D.cxx
+++ b/Charts/Core/vtkPlotPoints3D.cxx
@@ -24,6 +24,7 @@
 #include "vtkUnsignedCharArray.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlotPoints3D);
 
 //------------------------------------------------------------------------------
@@ -104,3 +105,4 @@ bool vtkPlotPoints3D::Paint(vtkContext2D* painter)
 
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotPoints3D.h b/Charts/Core/vtkPlotPoints3D.h
index 7c5d4dd34f1fb8ff1c219da4dc6618c106ed82ef..82ffdc672242dfc88ae68f68008acb6fa7436a48 100644
--- a/Charts/Core/vtkPlotPoints3D.h
+++ b/Charts/Core/vtkPlotPoints3D.h
@@ -32,6 +32,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkPlot3D.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 
 class VTKCHARTSCORE_EXPORT vtkPlotPoints3D : public vtkPlot3D
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkPlotPoints3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotPoints3D_h
diff --git a/Charts/Core/vtkPlotRangeHandlesItem.cxx b/Charts/Core/vtkPlotRangeHandlesItem.cxx
index 13e4d6efa7a98271edbbe99e74dc2ffab1c72062..26c219476730c163c4a98e7ef698f8fb6db709ae 100644
--- a/Charts/Core/vtkPlotRangeHandlesItem.cxx
+++ b/Charts/Core/vtkPlotRangeHandlesItem.cxx
@@ -32,6 +32,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlotRangeHandlesItem);
 
 //------------------------------------------------------------------------------
@@ -634,3 +635,4 @@ void vtkPlotRangeHandlesItem::SetCursor(int cursor)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotRangeHandlesItem.h b/Charts/Core/vtkPlotRangeHandlesItem.h
index a67b9b8762396597a2fc3ebf406d579217021812..8ae21ca0a0d401cd885a5622eab590713afe3d64 100644
--- a/Charts/Core/vtkPlotRangeHandlesItem.h
+++ b/Charts/Core/vtkPlotRangeHandlesItem.h
@@ -43,6 +43,7 @@
 #include "vtkCommand.h"          // For vtkCommand enum
 #include "vtkPlot.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBrush;
 
 class VTKCHARTSCORE_EXPORT vtkPlotRangeHandlesItem : public vtkPlot
@@ -253,4 +254,5 @@ protected:
   int HandleOrientation = VERTICAL;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotRangeHandlesItem_h
diff --git a/Charts/Core/vtkPlotStacked.cxx b/Charts/Core/vtkPlotStacked.cxx
index 606bc38cb94217b2d4089de753cca88dea05c114..936fb16cef39b6abc00d3f93d1f7c269555643a4 100644
--- a/Charts/Core/vtkPlotStacked.cxx
+++ b/Charts/Core/vtkPlotStacked.cxx
@@ -39,6 +39,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -809,3 +810,4 @@ vtkColorSeries* vtkPlotStacked::GetColorSeries()
 {
   return this->ColorSeries;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotStacked.h b/Charts/Core/vtkPlotStacked.h
index 2ae7f20c9057076886b3c2fe06e82698dc3d77e2..11b259f8f265ec8f62552e350796dc1a6e90802b 100644
--- a/Charts/Core/vtkPlotStacked.h
+++ b/Charts/Core/vtkPlotStacked.h
@@ -28,6 +28,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkPlot.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkChartXY;
 class vtkContext2D;
 class vtkTable;
@@ -187,4 +188,5 @@ private:
   vtkPlotStackedPrivate* Private;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotStacked_h
diff --git a/Charts/Core/vtkPlotSurface.cxx b/Charts/Core/vtkPlotSurface.cxx
index e813c6114d6cf38f235d521d192bf30e93425542..234ab8a989d0207c9b4029fcdedc713caf298bd6 100644
--- a/Charts/Core/vtkPlotSurface.cxx
+++ b/Charts/Core/vtkPlotSurface.cxx
@@ -25,6 +25,7 @@
 #include "vtkUnsignedCharArray.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlotSurface);
 
 //------------------------------------------------------------------------------
@@ -286,3 +287,4 @@ float vtkPlotSurface::RowToY(int rowIndex)
   float newRange = this->YMaximum - this->YMinimum;
   return static_cast<float>(rowIndex) * (newRange / this->NumberOfRows) + this->YMinimum;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkPlotSurface.h b/Charts/Core/vtkPlotSurface.h
index dddffcedb5f7e72be2b3065f14af9538d2ec838e..645f4a93353d12202155d3f14bb9b8eecc7e425f 100644
--- a/Charts/Core/vtkPlotSurface.h
+++ b/Charts/Core/vtkPlotSurface.h
@@ -29,6 +29,7 @@
 #include "vtkNew.h"              //  For vtkNew ivar
 #include "vtkPlot3D.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkLookupTable;
 class vtkTable;
@@ -165,4 +166,5 @@ private:
   void operator=(const vtkPlotSurface&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPlotSurface_h
diff --git a/Charts/Core/vtkRangeHandlesItem.cxx b/Charts/Core/vtkRangeHandlesItem.cxx
index 815d539c387857f02be189880f85d526eac45684..ee0736897d2be77aad06153358d1a636e33473fc 100644
--- a/Charts/Core/vtkRangeHandlesItem.cxx
+++ b/Charts/Core/vtkRangeHandlesItem.cxx
@@ -28,6 +28,7 @@
 #include "vtkTransform2D.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRangeHandlesItem);
 vtkCxxSetObjectMacro(vtkRangeHandlesItem, ColorTransferFunction, vtkColorTransferFunction);
 
@@ -159,3 +160,4 @@ void vtkRangeHandlesItem::SetActiveHandlePosition(double position)
     this->TransformScreenToData(position, 1, this->ActiveHandleRangeValue, unused);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkRangeHandlesItem.h b/Charts/Core/vtkRangeHandlesItem.h
index 0e5689eb48b84c9e04f7463f20d3e891c35dc8b4..daabb48f5137e439eaf892fe54822068a1475374 100644
--- a/Charts/Core/vtkRangeHandlesItem.h
+++ b/Charts/Core/vtkRangeHandlesItem.h
@@ -39,6 +39,7 @@
 #include "vtkChartsCoreModule.h" // For export macro
 #include "vtkPlotRangeHandlesItem.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkColorTransferFunction;
 
 class VTKCHARTSCORE_EXPORT vtkRangeHandlesItem : public vtkPlotRangeHandlesItem
@@ -116,4 +117,5 @@ private:
   vtkColorTransferFunction* ColorTransferFunction = nullptr;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkRangeHandlesItem_h
diff --git a/Charts/Core/vtkScalarsToColorsItem.cxx b/Charts/Core/vtkScalarsToColorsItem.cxx
index 3529f7ec3d34a50670ce5274ee88e1d1ab57512c..0fbc524750960f9ed95ab3d4341af577e5996342 100644
--- a/Charts/Core/vtkScalarsToColorsItem.cxx
+++ b/Charts/Core/vtkScalarsToColorsItem.cxx
@@ -36,6 +36,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkScalarsToColorsItem, HistogramTable, vtkTable);
 
 //------------------------------------------------------------------------------
@@ -273,3 +274,4 @@ vtkStdString vtkScalarsToColorsItem::GetTooltipLabel(
   }
   return "";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkScalarsToColorsItem.h b/Charts/Core/vtkScalarsToColorsItem.h
index b75bcf11957996e0c152422654b964f88e455955..0f8f07a3c8d9fcdd4ce547251a4e54b1a392c979 100644
--- a/Charts/Core/vtkScalarsToColorsItem.h
+++ b/Charts/Core/vtkScalarsToColorsItem.h
@@ -34,6 +34,7 @@
 #include "vtkNew.h"              // For vtkNew
 #include "vtkPlot.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkImageData;
 class vtkPlotBar;
@@ -170,4 +171,5 @@ private:
   void operator=(const vtkScalarsToColorsItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Charts/Core/vtkScatterPlotMatrix.cxx b/Charts/Core/vtkScatterPlotMatrix.cxx
index b2f404becfa0b1761c804f138451a8e8889eb45d..e38cd6d29be35235e865f5b5942c049329b80f37 100644
--- a/Charts/Core/vtkScatterPlotMatrix.cxx
+++ b/Charts/Core/vtkScatterPlotMatrix.cxx
@@ -50,6 +50,7 @@
 #include <map>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScatterPlotMatrix::PIMPL
 {
 public:
@@ -1991,3 +1992,4 @@ void vtkScatterPlotMatrix::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Title: " << this->Title << endl;
   os << indent << "SelectionMode: " << this->SelectionMode << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Charts/Core/vtkScatterPlotMatrix.h b/Charts/Core/vtkScatterPlotMatrix.h
index 6233204d5b7e9bfb524b27b047a148beb9419836..afa9d20a2ca45ed705a9188f0f5a87f4c3353ced 100644
--- a/Charts/Core/vtkScatterPlotMatrix.h
+++ b/Charts/Core/vtkScatterPlotMatrix.h
@@ -34,6 +34,7 @@
 #include "vtkStdString.h"        // For ivars
 #include "vtkWeakPointer.h"      // For currentPainter
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 class vtkTable;
 class vtkAxis;
@@ -506,4 +507,5 @@ private:
   void ApplyAxisSetting(vtkChart* chart, const vtkStdString& x, const vtkStdString& y);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkScatterPlotMatrix_h
diff --git a/Common/Archive/vtkBufferedArchiver.cxx b/Common/Archive/vtkBufferedArchiver.cxx
index f9a85a1a88b1fc478017c94d9f3a848c1e991ae6..ee365b20f5b10502b0df46a946dc01f999f74ced 100644
--- a/Common/Archive/vtkBufferedArchiver.cxx
+++ b/Common/Archive/vtkBufferedArchiver.cxx
@@ -21,6 +21,7 @@
 
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkBufferedArchiver::Internal
 {
   struct archive* Archive;
@@ -133,3 +134,4 @@ void vtkBufferedArchiver::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Archive/vtkBufferedArchiver.h b/Common/Archive/vtkBufferedArchiver.h
index f2132e36a932396da0b4f5e74bf7f9563381fbdf..68c1b7bfadc33af37712a2d1f89c0dc4ec4e4098 100644
--- a/Common/Archive/vtkBufferedArchiver.h
+++ b/Common/Archive/vtkBufferedArchiver.h
@@ -30,6 +30,7 @@
 
 #include "vtkArchiver.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONARCHIVE_EXPORT vtkBufferedArchiver : public vtkArchiver
 {
 public:
@@ -107,4 +108,5 @@ private:
   void operator=(const vtkBufferedArchiver&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Archive/vtkPartitionedArchiver.cxx b/Common/Archive/vtkPartitionedArchiver.cxx
index 7990cbddf9c77e4fbfbc7839a3b4e79d76cd675c..a0ab657ff8ce3a90c682ab9bb26a811283a5999a 100644
--- a/Common/Archive/vtkPartitionedArchiver.cxx
+++ b/Common/Archive/vtkPartitionedArchiver.cxx
@@ -23,6 +23,7 @@
 #include <map>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkPartitionedArchiver::Internal
 {
   std::map<std::string, std::pair<size_t, char*>> Buffers;
@@ -179,3 +180,4 @@ void vtkPartitionedArchiver::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Archive/vtkPartitionedArchiver.h b/Common/Archive/vtkPartitionedArchiver.h
index 2a40b65ca1f672f81cad0239efbd5e2f8660ab29..56bba6bcfb5c784f3ee435d037468c95c16ddb2b 100644
--- a/Common/Archive/vtkPartitionedArchiver.h
+++ b/Common/Archive/vtkPartitionedArchiver.h
@@ -31,6 +31,7 @@
 
 #include "vtkArchiver.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONARCHIVE_EXPORT vtkPartitionedArchiver : public vtkArchiver
 {
 public:
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkPartitionedArchiver&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Color/vtkColorSeries.cxx b/Common/Color/vtkColorSeries.cxx
index 72a3ab1f3bdddeaea77680feed60743607ea3747..36aed544528b312995a4f79d853968e376a006f2 100644
--- a/Common/Color/vtkColorSeries.cxx
+++ b/Common/Color/vtkColorSeries.cxx
@@ -22,6 +22,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkColorSeriesPalette
 {
 public:
@@ -602,3 +603,4 @@ void vtkColorSeries::CopyOnWrite()
     this->Modified();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Color/vtkColorSeries.h b/Common/Color/vtkColorSeries.h
index 7a095a4bbc181f763547a9e6674e4d84a49ae232..45a275d280f48bcce4cfeb3611450677330a016e 100644
--- a/Common/Color/vtkColorSeries.h
+++ b/Common/Color/vtkColorSeries.h
@@ -53,6 +53,7 @@
 #include "vtkObject.h"
 #include "vtkStdString.h" // Needed for arguments
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLookupTable;
 
 class VTKCOMMONCOLOR_EXPORT vtkColorSeries : public vtkObject
@@ -351,4 +352,5 @@ private:
   void operator=(const vtkColorSeries&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkColorSeries_h
diff --git a/Common/Color/vtkNamedColors.cxx b/Common/Color/vtkNamedColors.cxx
index 984449e3ed0fc760da45a15dd20b1c37ebad9fe1..fc02161fe907d750177ba17201c53df9331d47ee 100644
--- a/Common/Color/vtkNamedColors.cxx
+++ b/Common/Color/vtkNamedColors.cxx
@@ -26,6 +26,7 @@
 #include <sstream>  // STL Header for parsing character arrays
 #include <vector>   // STL Header for returning/storing color values
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkNamedColorsDataStore
 {
 public:
@@ -1301,3 +1302,4 @@ vtkStdString vtkNamedColors::RGBAToHTMLColor(const vtkColor4ub& rgba)
      << (int)(rgba.GetBlue()) << "," << (rgba.GetAlpha() / 255.0) << ")";
   return ss.str();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Color/vtkNamedColors.h b/Common/Color/vtkNamedColors.h
index 7b683cb615459847b3e93271476e9418b3d13b50..45393b39e04295aa6e5bcbda93b9874a396998ac 100644
--- a/Common/Color/vtkNamedColors.h
+++ b/Common/Color/vtkNamedColors.h
@@ -74,6 +74,7 @@
 #include "vtkStdString.h"   // Needed for arguments
 #include "vtkStringArray.h" // For returning color names
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkNamedColorsDataStore;
 class vtkColorStringParser;
 
@@ -400,4 +401,5 @@ private:
   void operator=(const vtkNamedColors&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkNamedColors_h */
diff --git a/Common/ComputationalGeometry/vtkBilinearQuadIntersection.cxx b/Common/ComputationalGeometry/vtkBilinearQuadIntersection.cxx
index 47caa14bfb9cbbe4a93288017b1e63ce27438c6a..91879936949b04d045d93ec54989d55e62e2c0ac 100644
--- a/Common/ComputationalGeometry/vtkBilinearQuadIntersection.cxx
+++ b/Common/ComputationalGeometry/vtkBilinearQuadIntersection.cxx
@@ -45,6 +45,7 @@ DEALINGS IN THE SOFTWARE.
 
 #define RAY_EPSILON 1e-12 // some small epsilon for flt pt
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -303,3 +304,4 @@ bool vtkBilinearQuadIntersection::RayIntersection(
       return false;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkBilinearQuadIntersection.h b/Common/ComputationalGeometry/vtkBilinearQuadIntersection.h
index bc01757e871a6e4fe7d68ba49321a4bef9aea219..e66289a15ccaf8a88651f2e06406713d3116e52c 100644
--- a/Common/ComputationalGeometry/vtkBilinearQuadIntersection.h
+++ b/Common/ComputationalGeometry/vtkBilinearQuadIntersection.h
@@ -27,6 +27,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkVector.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkBilinearQuadIntersection
 {
 public:
@@ -62,5 +63,6 @@ private:
   vtkVector3d Point11;
   int AxesSwapping = 0;
 };
+VTK_ABI_NAMESPACE_END
 #endif // vtkBilinearQuadIntersection_h
 // VTK-HeaderTest-Exclude: vtkBilinearQuadIntersection.h
diff --git a/Common/ComputationalGeometry/vtkCardinalSpline.cxx b/Common/ComputationalGeometry/vtkCardinalSpline.cxx
index c171e5b08a1716f2006bc60bca07aed65f608445..1c4061b14bcf6127206f796a963bc16c57df6cc9 100644
--- a/Common/ComputationalGeometry/vtkCardinalSpline.cxx
+++ b/Common/ComputationalGeometry/vtkCardinalSpline.cxx
@@ -20,6 +20,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCardinalSpline);
 
 //------------------------------------------------------------------------------
@@ -422,3 +423,4 @@ void vtkCardinalSpline::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkCardinalSpline.h b/Common/ComputationalGeometry/vtkCardinalSpline.h
index 0351ac7f517ff5d7676965777e4477cd3a63f9f9..bce6a04b1bf30a894328b600eb643effb558433e 100644
--- a/Common/ComputationalGeometry/vtkCardinalSpline.h
+++ b/Common/ComputationalGeometry/vtkCardinalSpline.h
@@ -31,6 +31,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkSpline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkCardinalSpline : public vtkSpline
 {
 public:
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkCardinalSpline&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkKochanekSpline.cxx b/Common/ComputationalGeometry/vtkKochanekSpline.cxx
index 44c84068da5655aba3683f62021d9bf0fdf520f8..228f3bdede8459d7a90dc0f8b3df3d07158e1070 100644
--- a/Common/ComputationalGeometry/vtkKochanekSpline.cxx
+++ b/Common/ComputationalGeometry/vtkKochanekSpline.cxx
@@ -19,6 +19,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkKochanekSpline);
 
 //------------------------------------------------------------------------------
@@ -366,3 +367,4 @@ void vtkKochanekSpline::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "DefaultTension: " << this->DefaultTension << "\n";
   os << indent << "DefaultContinuity: " << this->DefaultContinuity << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkKochanekSpline.h b/Common/ComputationalGeometry/vtkKochanekSpline.h
index 5e4ae24421f5019a0fe012fad33453caee556498..804936a6c44635f146395099509efb78b9591872 100644
--- a/Common/ComputationalGeometry/vtkKochanekSpline.h
+++ b/Common/ComputationalGeometry/vtkKochanekSpline.h
@@ -48,6 +48,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkSpline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkKochanekSpline : public vtkSpline
 {
 public:
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkKochanekSpline&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricBohemianDome.cxx b/Common/ComputationalGeometry/vtkParametricBohemianDome.cxx
index 7454f0ce7a107fd91ec7bcb7d64f13180697a54f..448b6d430a0c9c86111aedf6c25cf41186b8ab41 100644
--- a/Common/ComputationalGeometry/vtkParametricBohemianDome.cxx
+++ b/Common/ComputationalGeometry/vtkParametricBohemianDome.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricBohemianDome);
 //----------------------------------------------------------------------------//
 vtkParametricBohemianDome::vtkParametricBohemianDome()
@@ -87,3 +88,4 @@ void vtkParametricBohemianDome::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricBohemianDome.h b/Common/ComputationalGeometry/vtkParametricBohemianDome.h
index d38f8e1efdb9a55914a2395ba076035f3e06d475..49cf190a0e5c1e8a168d6504bd5ff40e7c5cda23 100644
--- a/Common/ComputationalGeometry/vtkParametricBohemianDome.h
+++ b/Common/ComputationalGeometry/vtkParametricBohemianDome.h
@@ -32,6 +32,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricBohemianDome : public vtkParametricFunction
 {
 public:
@@ -95,4 +96,5 @@ private:
   void operator=(const vtkParametricBohemianDome&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricBour.cxx b/Common/ComputationalGeometry/vtkParametricBour.cxx
index c333b2e960d94965b35d7f1dcdf0ed71848976af..bb2843e632771a38b6dcaaa7bc56906070baa697 100644
--- a/Common/ComputationalGeometry/vtkParametricBour.cxx
+++ b/Common/ComputationalGeometry/vtkParametricBour.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricBour);
 //----------------------------------------------------------------------------//
 vtkParametricBour::vtkParametricBour()
@@ -77,3 +78,4 @@ void vtkParametricBour::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricBour.h b/Common/ComputationalGeometry/vtkParametricBour.h
index 5e082c116cc0fea0176dce3f4b1d50e1b641e620..235a71b653575a4939f1c4ec8e0b1c0b9863257a 100644
--- a/Common/ComputationalGeometry/vtkParametricBour.h
+++ b/Common/ComputationalGeometry/vtkParametricBour.h
@@ -29,6 +29,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricBour : public vtkParametricFunction
 {
 public:
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkParametricBour&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricBoy.cxx b/Common/ComputationalGeometry/vtkParametricBoy.cxx
index 2bdaa6d7e7168001d8beb4520868304a8c9d46d6..30323af15473f4edc66331e8c07143feda7a6d54 100644
--- a/Common/ComputationalGeometry/vtkParametricBoy.cxx
+++ b/Common/ComputationalGeometry/vtkParametricBoy.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricBoy);
 
 //------------------------------------------------------------------------------
@@ -117,3 +118,4 @@ void vtkParametricBoy::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "ZScale: " << this->ZScale << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricBoy.h b/Common/ComputationalGeometry/vtkParametricBoy.h
index 5613ec0f3d041b52f00338fbfb9f242c1fffad2c..87f8a8249fa6f04a1282a74b3c4c6087bd76a5d2 100644
--- a/Common/ComputationalGeometry/vtkParametricBoy.h
+++ b/Common/ComputationalGeometry/vtkParametricBoy.h
@@ -36,6 +36,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricBoy : public vtkParametricFunction
 {
 public:
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkParametricBoy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricCatalanMinimal.cxx b/Common/ComputationalGeometry/vtkParametricCatalanMinimal.cxx
index 213297bb0ea39e33c900498b127edec94d806835..e6a3e4a3aaa23a1f86469c69e59c19efa02515ac 100644
--- a/Common/ComputationalGeometry/vtkParametricCatalanMinimal.cxx
+++ b/Common/ComputationalGeometry/vtkParametricCatalanMinimal.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricCatalanMinimal);
 //----------------------------------------------------------------------------//
 vtkParametricCatalanMinimal::vtkParametricCatalanMinimal()
@@ -77,3 +78,4 @@ void vtkParametricCatalanMinimal::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricCatalanMinimal.h b/Common/ComputationalGeometry/vtkParametricCatalanMinimal.h
index 0c077ccd42e2de88ba72f302f5e47218efdae4d5..fde73f76afa5a3952e56abede29143b0959109cd 100644
--- a/Common/ComputationalGeometry/vtkParametricCatalanMinimal.h
+++ b/Common/ComputationalGeometry/vtkParametricCatalanMinimal.h
@@ -30,6 +30,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricCatalanMinimal
   : public vtkParametricFunction
 {
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkParametricCatalanMinimal&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricConicSpiral.cxx b/Common/ComputationalGeometry/vtkParametricConicSpiral.cxx
index 52602ddc0b675d162a9b85739f70623bf42037ef..7d3bd4e0a6191f74b1d087d8aa5e3a28480f37f2 100644
--- a/Common/ComputationalGeometry/vtkParametricConicSpiral.cxx
+++ b/Common/ComputationalGeometry/vtkParametricConicSpiral.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricConicSpiral);
 
 //------------------------------------------------------------------------------
@@ -91,3 +92,4 @@ void vtkParametricConicSpiral::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "C: " << this->C << "\n";
   os << indent << "N: " << this->N << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricConicSpiral.h b/Common/ComputationalGeometry/vtkParametricConicSpiral.h
index 515d4f064b5ecb8ee2070b1024f35d503e011439..60b88e3e42514140f9b8a3ac78b2ec237da8b5dc 100644
--- a/Common/ComputationalGeometry/vtkParametricConicSpiral.h
+++ b/Common/ComputationalGeometry/vtkParametricConicSpiral.h
@@ -35,6 +35,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricConicSpiral : public vtkParametricFunction
 {
 public:
@@ -137,4 +138,5 @@ private:
   void operator=(const vtkParametricConicSpiral&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricCrossCap.cxx b/Common/ComputationalGeometry/vtkParametricCrossCap.cxx
index 40f1ee25201f944431e86387f93ee1573b714151..6b2eaf02da1cfd46f2566225793bf00d18656072 100644
--- a/Common/ComputationalGeometry/vtkParametricCrossCap.cxx
+++ b/Common/ComputationalGeometry/vtkParametricCrossCap.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricCrossCap);
 
 //------------------------------------------------------------------------------
@@ -79,3 +80,4 @@ void vtkParametricCrossCap::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricCrossCap.h b/Common/ComputationalGeometry/vtkParametricCrossCap.h
index f9d3ab0a91c2287e5d29e619154ee2a4b52e74b4..c6ae18be68ababb2c640a8a55da1d62041b23c14 100644
--- a/Common/ComputationalGeometry/vtkParametricCrossCap.h
+++ b/Common/ComputationalGeometry/vtkParametricCrossCap.h
@@ -36,6 +36,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricCrossCap : public vtkParametricFunction
 {
 public:
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkParametricCrossCap&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricDini.cxx b/Common/ComputationalGeometry/vtkParametricDini.cxx
index 49cb32f38a45dc323dc82fb495e4218c77dbe998..b2ab4be3dec0a3b306e5fcf6bb517a61f46cc538 100644
--- a/Common/ComputationalGeometry/vtkParametricDini.cxx
+++ b/Common/ComputationalGeometry/vtkParametricDini.cxx
@@ -18,6 +18,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricDini);
 
 //------------------------------------------------------------------------------
@@ -102,3 +103,4 @@ void vtkParametricDini::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "A: " << this->A << "\n";
   os << indent << "B: " << this->B << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricDini.h b/Common/ComputationalGeometry/vtkParametricDini.h
index ce8a12dff7a87b6e7deddeb5b995b1e90aed2cad..ee9f7f9d7be5a210b4a7b62d2f75fb873c965d2a 100644
--- a/Common/ComputationalGeometry/vtkParametricDini.h
+++ b/Common/ComputationalGeometry/vtkParametricDini.h
@@ -35,6 +35,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricDini : public vtkParametricFunction
 {
 public:
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkParametricDini&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricEllipsoid.cxx b/Common/ComputationalGeometry/vtkParametricEllipsoid.cxx
index 8c0777814583e253458a3ce6d380eb63397d83ae..0b8f47ca0b812beb9a6679d5137f73ed9d480aae 100644
--- a/Common/ComputationalGeometry/vtkParametricEllipsoid.cxx
+++ b/Common/ComputationalGeometry/vtkParametricEllipsoid.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricEllipsoid);
 
 //------------------------------------------------------------------------------
@@ -89,3 +90,4 @@ void vtkParametricEllipsoid::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Y scale factor: " << this->YRadius << "\n";
   os << indent << "Z scale factor: " << this->ZRadius << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricEllipsoid.h b/Common/ComputationalGeometry/vtkParametricEllipsoid.h
index 6fed15d02e467be01a283d2c09f1a981221685d4..33d19db65336c29676fa8942cc117ffa32ba5c8b 100644
--- a/Common/ComputationalGeometry/vtkParametricEllipsoid.h
+++ b/Common/ComputationalGeometry/vtkParametricEllipsoid.h
@@ -39,6 +39,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricEllipsoid : public vtkParametricFunction
 {
 public:
@@ -128,4 +129,5 @@ private:
   void operator=(const vtkParametricEllipsoid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricEnneper.cxx b/Common/ComputationalGeometry/vtkParametricEnneper.cxx
index 5dc58a13514a31b2ea1aab7a68e0a9d0ed39d5cd..a8069125e8e0b3e06a04375dc96a78853526bf53 100644
--- a/Common/ComputationalGeometry/vtkParametricEnneper.cxx
+++ b/Common/ComputationalGeometry/vtkParametricEnneper.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricEnneper);
 
 //------------------------------------------------------------------------------
@@ -72,3 +73,4 @@ void vtkParametricEnneper::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricEnneper.h b/Common/ComputationalGeometry/vtkParametricEnneper.h
index 3a8129cff436fe453a0d249da6bde0122e1096e1..ca5949f6ca553a236d5802bc123f54cceee3a246 100644
--- a/Common/ComputationalGeometry/vtkParametricEnneper.h
+++ b/Common/ComputationalGeometry/vtkParametricEnneper.h
@@ -36,6 +36,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricEnneper : public vtkParametricFunction
 {
 public:
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkParametricEnneper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricFigure8Klein.cxx b/Common/ComputationalGeometry/vtkParametricFigure8Klein.cxx
index 90e172af5dcad99cc38f1e0b33f9f7ffb00e43e6..c28c64a4bc3d9b92d3d34d75b14c345d0ea18584 100644
--- a/Common/ComputationalGeometry/vtkParametricFigure8Klein.cxx
+++ b/Common/ComputationalGeometry/vtkParametricFigure8Klein.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricFigure8Klein);
 
 //------------------------------------------------------------------------------
@@ -84,3 +85,4 @@ void vtkParametricFigure8Klein::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Radius: " << this->Radius << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricFigure8Klein.h b/Common/ComputationalGeometry/vtkParametricFigure8Klein.h
index 2bfc01f61e385766b0f42305cd023309a3a30a66..1ce6b8b9daca82090308463066278147deea7f14 100644
--- a/Common/ComputationalGeometry/vtkParametricFigure8Klein.h
+++ b/Common/ComputationalGeometry/vtkParametricFigure8Klein.h
@@ -43,6 +43,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricFigure8Klein : public vtkParametricFunction
 {
 public:
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkParametricFigure8Klein&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricFunction.cxx b/Common/ComputationalGeometry/vtkParametricFunction.cxx
index 353489bf30ff0e141975d0e3da1783dbd5eee7ec..d31bd38088d1bf8e9b51bf296dd169a7c813abb4 100644
--- a/Common/ComputationalGeometry/vtkParametricFunction.cxx
+++ b/Common/ComputationalGeometry/vtkParametricFunction.cxx
@@ -15,6 +15,7 @@
 #include "vtkParametricFunction.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkParametricFunction::vtkParametricFunction()
   : MinimumU(0.0)
   , MaximumU(1.0)
@@ -61,3 +62,4 @@ void vtkParametricFunction::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ClockwiseOrdering: " << this->ClockwiseOrdering << "\n";
   os << indent << "Derivatives Available: " << this->DerivativesAvailable << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricFunction.h b/Common/ComputationalGeometry/vtkParametricFunction.h
index bcf8657c8aa495db1de76ab57fc4217bd0f70f89..66f03ba34405d30d65cbb94a2818c7f93dba44ae 100644
--- a/Common/ComputationalGeometry/vtkParametricFunction.h
+++ b/Common/ComputationalGeometry/vtkParametricFunction.h
@@ -59,6 +59,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricFunction : public vtkObject
 {
 public:
@@ -266,4 +267,5 @@ private:
   void operator=(const vtkParametricFunction&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricHenneberg.cxx b/Common/ComputationalGeometry/vtkParametricHenneberg.cxx
index 1af1b27cc2bf62bce59a7a840ccad509ca74e138..3cb2765ba549011f398dc12a812969c095642fed 100644
--- a/Common/ComputationalGeometry/vtkParametricHenneberg.cxx
+++ b/Common/ComputationalGeometry/vtkParametricHenneberg.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricHenneberg);
 //----------------------------------------------------------------------------//
 vtkParametricHenneberg::vtkParametricHenneberg()
@@ -77,3 +78,4 @@ void vtkParametricHenneberg::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricHenneberg.h b/Common/ComputationalGeometry/vtkParametricHenneberg.h
index 78a70aa78bdb7f0502c64843f3fc5d95e099f9e8..344077b3d64ea0e562445a6a5b7f07da3609e4ba 100644
--- a/Common/ComputationalGeometry/vtkParametricHenneberg.h
+++ b/Common/ComputationalGeometry/vtkParametricHenneberg.h
@@ -29,6 +29,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricHenneberg : public vtkParametricFunction
 {
 public:
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkParametricHenneberg&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricKlein.cxx b/Common/ComputationalGeometry/vtkParametricKlein.cxx
index 88ff6eabc0c0724e31e62838f2c74413e0c89ac8..568957f264d7764964f17e3c0dc62903a3bf2da0 100644
--- a/Common/ComputationalGeometry/vtkParametricKlein.cxx
+++ b/Common/ComputationalGeometry/vtkParametricKlein.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricKlein);
 
 //------------------------------------------------------------------------------
@@ -102,3 +103,4 @@ void vtkParametricKlein::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricKlein.h b/Common/ComputationalGeometry/vtkParametricKlein.h
index f326e98a3ed280deb04eb5c0a4c90f9f339831a6..1c168c99e3c393806cf5a82a1cb5a4e6a4c3d26b 100644
--- a/Common/ComputationalGeometry/vtkParametricKlein.h
+++ b/Common/ComputationalGeometry/vtkParametricKlein.h
@@ -43,6 +43,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricKlein : public vtkParametricFunction
 {
 public:
@@ -99,4 +100,5 @@ private:
   void operator=(const vtkParametricKlein&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricKuen.cxx b/Common/ComputationalGeometry/vtkParametricKuen.cxx
index e4fc87449a054ad7eb60ec71c7586b498c554a70..18c23c225a818cc84b3c24606e6ba649c3ced875 100644
--- a/Common/ComputationalGeometry/vtkParametricKuen.cxx
+++ b/Common/ComputationalGeometry/vtkParametricKuen.cxx
@@ -19,6 +19,7 @@
 #include <cfloat>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricKuen);
 //----------------------------------------------------------------------------//
 vtkParametricKuen::vtkParametricKuen()
@@ -122,3 +123,4 @@ void vtkParametricKuen::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "DeltaV0: " << this->DeltaV0 << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricKuen.h b/Common/ComputationalGeometry/vtkParametricKuen.h
index 02f34c88fc0c285fb325a47dc95fc7b9c407e961..877bb9a7180edc13e923a7fce2bb85f87fc72139 100644
--- a/Common/ComputationalGeometry/vtkParametricKuen.h
+++ b/Common/ComputationalGeometry/vtkParametricKuen.h
@@ -31,6 +31,7 @@
 #include "vtkMath.h"                              // for vtkMath::Pi()
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricKuen : public vtkParametricFunction
 {
 public:
@@ -92,4 +93,5 @@ private:
   double DeltaV0;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricMobius.cxx b/Common/ComputationalGeometry/vtkParametricMobius.cxx
index d79ee909523c3c8ffeb306875ceec6a474ce8d5f..a0352553446bd0ae09887ef207ce153ec03f4eb4 100644
--- a/Common/ComputationalGeometry/vtkParametricMobius.cxx
+++ b/Common/ComputationalGeometry/vtkParametricMobius.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricMobius);
 
 //------------------------------------------------------------------------------
@@ -80,3 +81,4 @@ void vtkParametricMobius::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Radius: " << this->Radius << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricMobius.h b/Common/ComputationalGeometry/vtkParametricMobius.h
index 840baccfaf661ab3fe7b491acde11a00f9206a2f..bfb6eeb41bbae8a020e6439994372dc6f47be29e 100644
--- a/Common/ComputationalGeometry/vtkParametricMobius.h
+++ b/Common/ComputationalGeometry/vtkParametricMobius.h
@@ -34,6 +34,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricMobius : public vtkParametricFunction
 {
 public:
@@ -102,4 +103,5 @@ private:
   void operator=(const vtkParametricMobius&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricPluckerConoid.cxx b/Common/ComputationalGeometry/vtkParametricPluckerConoid.cxx
index 0a31e4272f4c679f88ed9b42c39a24d1332bb27f..2ca3124a11a294585401d6c72d2cd91c1bfc9073 100644
--- a/Common/ComputationalGeometry/vtkParametricPluckerConoid.cxx
+++ b/Common/ComputationalGeometry/vtkParametricPluckerConoid.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricPluckerConoid);
 //----------------------------------------------------------------------------//
 vtkParametricPluckerConoid::vtkParametricPluckerConoid()
@@ -78,3 +79,4 @@ void vtkParametricPluckerConoid::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricPluckerConoid.h b/Common/ComputationalGeometry/vtkParametricPluckerConoid.h
index 875c0f2f0b683c2c817fa0756c6acd178e7dfb6c..b60deb50c19fa8cee7f9794e3fec4520b8ab663f 100644
--- a/Common/ComputationalGeometry/vtkParametricPluckerConoid.h
+++ b/Common/ComputationalGeometry/vtkParametricPluckerConoid.h
@@ -34,6 +34,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricPluckerConoid
   : public vtkParametricFunction
 {
@@ -93,4 +94,5 @@ private:
   void operator=(const vtkParametricPluckerConoid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricPseudosphere.cxx b/Common/ComputationalGeometry/vtkParametricPseudosphere.cxx
index 4c8f71464cb1f7d83420f79b2033eec44c6462a2..4c9035e19f5457b619ff4c0014780d6241c70671 100644
--- a/Common/ComputationalGeometry/vtkParametricPseudosphere.cxx
+++ b/Common/ComputationalGeometry/vtkParametricPseudosphere.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricPseudosphere);
 //----------------------------------------------------------------------------//
 vtkParametricPseudosphere::vtkParametricPseudosphere()
@@ -84,3 +85,4 @@ void vtkParametricPseudosphere::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricPseudosphere.h b/Common/ComputationalGeometry/vtkParametricPseudosphere.h
index aab66afde38d873887dc79b17b720cad3bd07aba..ba5b2094db2cb15b819389e8498091c6e419ed1a 100644
--- a/Common/ComputationalGeometry/vtkParametricPseudosphere.h
+++ b/Common/ComputationalGeometry/vtkParametricPseudosphere.h
@@ -31,6 +31,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricPseudosphere : public vtkParametricFunction
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkParametricPseudosphere&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricRandomHills.cxx b/Common/ComputationalGeometry/vtkParametricRandomHills.cxx
index b6948ed08f8b1481ba84aca55ccfd80701110b37..325c4e65fabd0e0d2dea82a93df4bb0bade8c17b 100644
--- a/Common/ComputationalGeometry/vtkParametricRandomHills.cxx
+++ b/Common/ComputationalGeometry/vtkParametricRandomHills.cxx
@@ -20,6 +20,7 @@
 
 #include <ctime>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricRandomHills);
 
 //------------------------------------------------------------------------------
@@ -271,3 +272,4 @@ void vtkParametricRandomHills::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Random number generator seed: " << this->RandomSeed << "\n";
   os << indent << "Allow random generation: " << this->AllowRandomGeneration << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricRandomHills.h b/Common/ComputationalGeometry/vtkParametricRandomHills.h
index 1942ae32dada75ef2144db49757612fcb168becb..103cafa9dd930c36ac464107660e56c857572e00 100644
--- a/Common/ComputationalGeometry/vtkParametricRandomHills.h
+++ b/Common/ComputationalGeometry/vtkParametricRandomHills.h
@@ -38,6 +38,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkMinimalStandardRandomSequence;
 
@@ -260,4 +261,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricRoman.cxx b/Common/ComputationalGeometry/vtkParametricRoman.cxx
index db10d4754803dc1bbd88c8b8c902e106e88dedde..db95f84c43a263a9d05c373d82101433458ea03d 100644
--- a/Common/ComputationalGeometry/vtkParametricRoman.cxx
+++ b/Common/ComputationalGeometry/vtkParametricRoman.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricRoman);
 
 //------------------------------------------------------------------------------
@@ -85,3 +86,4 @@ void vtkParametricRoman::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Radius: " << this->Radius << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricRoman.h b/Common/ComputationalGeometry/vtkParametricRoman.h
index 4f74bb27de4e687cdb4ba75bbb3468716a40c5eb..f91156995f21495b77bb8422c41cf54216600a92 100644
--- a/Common/ComputationalGeometry/vtkParametricRoman.h
+++ b/Common/ComputationalGeometry/vtkParametricRoman.h
@@ -34,6 +34,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricRoman : public vtkParametricFunction
 {
 
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkParametricRoman&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricSpline.cxx b/Common/ComputationalGeometry/vtkParametricSpline.cxx
index 79615fa3bb7b4199ae7d2a86a75c664d75149c5f..dd750a5cd6f15b56a9b9b537d0f6234540b01d7d 100644
--- a/Common/ComputationalGeometry/vtkParametricSpline.cxx
+++ b/Common/ComputationalGeometry/vtkParametricSpline.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricSpline);
 
 //------------------------------------------------------------------------------
@@ -405,3 +406,4 @@ void vtkParametricSpline::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Right Value: " << this->RightValue << "\n";
   os << indent << "Parameterize by length: " << (this->ParameterizeByLength ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricSpline.h b/Common/ComputationalGeometry/vtkParametricSpline.h
index 400c741d7079c924df6f0e5225cb446f9d846748..ac71fdf5a800c6cb92ba5f53ef040ef56fc64922 100644
--- a/Common/ComputationalGeometry/vtkParametricSpline.h
+++ b/Common/ComputationalGeometry/vtkParametricSpline.h
@@ -38,12 +38,13 @@
 #ifndef vtkParametricSpline_h
 #define vtkParametricSpline_h
 
-class vtkSpline;
-class vtkPoints;
-
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
+class vtkSpline;
+class vtkPoints;
+
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricSpline : public vtkParametricFunction
 {
 public:
@@ -197,4 +198,5 @@ private:
   void operator=(const vtkParametricSpline&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricSuperEllipsoid.cxx b/Common/ComputationalGeometry/vtkParametricSuperEllipsoid.cxx
index 889051ce3f305de978eaf9c74f9fd415b1de6fc3..5bdbd20577377d21b873440c802a44d79ef50890 100644
--- a/Common/ComputationalGeometry/vtkParametricSuperEllipsoid.cxx
+++ b/Common/ComputationalGeometry/vtkParametricSuperEllipsoid.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricSuperEllipsoid);
 
 namespace
@@ -112,3 +113,4 @@ void vtkParametricSuperEllipsoid::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Squareness in the z-axis: " << this->N1 << "\n";
   os << indent << "Squareness in the x-y plane: " << this->N2 << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricSuperEllipsoid.h b/Common/ComputationalGeometry/vtkParametricSuperEllipsoid.h
index e138f326bcd52c255328d9d3410df8097e07c15d..a2386c683f26301d73d3a5ed87cb738ddff4ecc7 100644
--- a/Common/ComputationalGeometry/vtkParametricSuperEllipsoid.h
+++ b/Common/ComputationalGeometry/vtkParametricSuperEllipsoid.h
@@ -43,6 +43,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricSuperEllipsoid
   : public vtkParametricFunction
 {
@@ -149,4 +150,5 @@ private:
   void operator=(const vtkParametricSuperEllipsoid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricSuperToroid.cxx b/Common/ComputationalGeometry/vtkParametricSuperToroid.cxx
index 6dbf8b671f9eaca8d4edfed1151bed3e365a0d50..03abb596b49fd0e12a4b11da98cf5637f7729731 100644
--- a/Common/ComputationalGeometry/vtkParametricSuperToroid.cxx
+++ b/Common/ComputationalGeometry/vtkParametricSuperToroid.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricSuperToroid);
 
 namespace
@@ -112,3 +113,4 @@ void vtkParametricSuperToroid::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Y scale factor: " << this->YRadius << "\n";
   os << indent << "Z scale factor: " << this->ZRadius << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricSuperToroid.h b/Common/ComputationalGeometry/vtkParametricSuperToroid.h
index 7dd499c82007d0d2f747a4d8ea0b1521957d8983..f8b796f32c6f4c5aa947c88dd4fc321769eedf57 100644
--- a/Common/ComputationalGeometry/vtkParametricSuperToroid.h
+++ b/Common/ComputationalGeometry/vtkParametricSuperToroid.h
@@ -47,6 +47,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricSuperToroid : public vtkParametricFunction
 {
 public:
@@ -173,4 +174,5 @@ private:
   void operator=(const vtkParametricSuperToroid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ComputationalGeometry/vtkParametricTorus.cxx b/Common/ComputationalGeometry/vtkParametricTorus.cxx
index 286137f0500feb316d26e70b8334517f30d7f21f..65f30f6bef8820831e164d3f92fe78836924d760 100644
--- a/Common/ComputationalGeometry/vtkParametricTorus.cxx
+++ b/Common/ComputationalGeometry/vtkParametricTorus.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricTorus);
 
 //------------------------------------------------------------------------------
@@ -84,3 +85,4 @@ void vtkParametricTorus::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Ring Radius: " << this->RingRadius << "\n";
   os << indent << "Cross-Sectional Radius: " << this->CrossSectionRadius << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ComputationalGeometry/vtkParametricTorus.h b/Common/ComputationalGeometry/vtkParametricTorus.h
index ca61b1d50536bda4563104f0524a3f1ad7ec5f78..7a2853ba54c6932dfea8b53407938b7c04d539c7 100644
--- a/Common/ComputationalGeometry/vtkParametricTorus.h
+++ b/Common/ComputationalGeometry/vtkParametricTorus.h
@@ -34,6 +34,7 @@
 #include "vtkCommonComputationalGeometryModule.h" // For export macro
 #include "vtkParametricFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCOMPUTATIONALGEOMETRY_EXPORT vtkParametricTorus : public vtkParametricFunction
 {
 
@@ -113,4 +114,5 @@ private:
   void operator=(const vtkParametricTorus&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/SMP/Common/vtkSMPThreadLocalAPI.h b/Common/Core/SMP/Common/vtkSMPThreadLocalAPI.h
index e63ab157f8bbf2b3f8cfd7163fc7bf423b3fc290..de3b3eb38816150eb1b53dc3a45aa6a4f566fd28 100644
--- a/Common/Core/SMP/Common/vtkSMPThreadLocalAPI.h
+++ b/Common/Core/SMP/Common/vtkSMPThreadLocalAPI.h
@@ -44,6 +44,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename T>
 class vtkSMPThreadLocalAPI
@@ -214,6 +215,7 @@ private:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/Common/vtkSMPThreadLocalImplAbstract.h b/Common/Core/SMP/Common/vtkSMPThreadLocalImplAbstract.h
index 34b01b6c38e2e6dfc0016d57534e4acb6813b806..c2699953e052e12bb9a162c1ccc7e8fa130e09e5 100644
--- a/Common/Core/SMP/Common/vtkSMPThreadLocalImplAbstract.h
+++ b/Common/Core/SMP/Common/vtkSMPThreadLocalImplAbstract.h
@@ -26,6 +26,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename T>
 class vtkSMPThreadLocalImplAbstract
@@ -71,6 +72,7 @@ class vtkSMPThreadLocalImpl : public vtkSMPThreadLocalImplAbstract<T>
 {
 };
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/Common/vtkSMPToolsAPI.cxx b/Common/Core/SMP/Common/vtkSMPToolsAPI.cxx
index 241f35cac72ce9635bea73eaa362c6f60fa99204..ba160572bf441235ff49666e27264a45cb10c8ee 100644
--- a/Common/Core/SMP/Common/vtkSMPToolsAPI.cxx
+++ b/Common/Core/SMP/Common/vtkSMPToolsAPI.cxx
@@ -28,6 +28,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 vtkSMPToolsAPI::vtkSMPToolsAPI()
@@ -246,6 +247,7 @@ bool vtkSMPToolsAPI::GetSingleThread()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/Common/vtkSMPToolsAPI.h b/Common/Core/SMP/Common/vtkSMPToolsAPI.h
index 392354ad8e809691d758f10d6a8559c90f77732c..e47c074fe1e6455e5278d0e2ec64c9c426a84df9 100644
--- a/Common/Core/SMP/Common/vtkSMPToolsAPI.h
+++ b/Common/Core/SMP/Common/vtkSMPToolsAPI.h
@@ -43,6 +43,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 using vtkSMPToolsDefaultImpl = vtkSMPToolsImpl<DefaultBackend>;
 
@@ -297,6 +298,7 @@ private:
 #endif
 };
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/Common/vtkSMPToolsImpl.h b/Common/Core/SMP/Common/vtkSMPToolsImpl.h
index aef3d861f9574073054fcb7af8ba0a95503602fd..5e799459f7a70a76db0e013465eda24fc9611221 100644
--- a/Common/Core/SMP/Common/vtkSMPToolsImpl.h
+++ b/Common/Core/SMP/Common/vtkSMPToolsImpl.h
@@ -35,7 +35,7 @@ namespace detail
 {
 namespace smp
 {
-
+VTK_ABI_NAMESPACE_BEGIN
 enum class BackendType
 {
   Sequential = VTK_SMP_BACKEND_SEQUENTIAL,
@@ -111,6 +111,7 @@ private:
 
 using ExecuteFunctorPtrType = void (*)(void*, vtkIdType, vtkIdType, vtkIdType);
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/Common/vtkSMPToolsInternal.h b/Common/Core/SMP/Common/vtkSMPToolsInternal.h
index 6bdd0826006979232e658629055e73464268effd..1ed76064e3b8848e9be794436b16c339febb1b43 100644
--- a/Common/Core/SMP/Common/vtkSMPToolsInternal.h
+++ b/Common/Core/SMP/Common/vtkSMPToolsInternal.h
@@ -25,6 +25,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename InputIt, typename OutputIt, typename Functor>
 class UnaryTransformCall
@@ -101,6 +102,8 @@ public:
   T operator()(T vtkNotUsed(inValue)) { return Value; }
 };
 
+VTK_ABI_NAMESPACE_END
+
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/OpenMP/vtkSMPThreadLocalBackend.cxx b/Common/Core/SMP/OpenMP/vtkSMPThreadLocalBackend.cxx
index c62638304245a7fe6b5c1fe3c2a23e53812ba7c1..2c46be094c2e2678cbc5a49a839f163c4bef9dca 100644
--- a/Common/Core/SMP/OpenMP/vtkSMPThreadLocalBackend.cxx
+++ b/Common/Core/SMP/OpenMP/vtkSMPThreadLocalBackend.cxx
@@ -28,6 +28,7 @@ namespace smp
 {
 namespace OpenMP
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 static ThreadIdType GetThreadId()
 {
@@ -261,7 +262,7 @@ StoragePointerType& ThreadSpecific::GetStorage()
   }
   return slot->Storage;
 }
-
+VTK_ABI_NAMESPACE_END
 } // OpenMP
 } // namespace smp
 } // namespace detail
diff --git a/Common/Core/SMP/OpenMP/vtkSMPThreadLocalBackend.h b/Common/Core/SMP/OpenMP/vtkSMPThreadLocalBackend.h
index 5f3ed97d2cd912db91b24cfc0e539129bf1ce876..e670f40e08d080a311b0b4a450eb25d29b299480 100644
--- a/Common/Core/SMP/OpenMP/vtkSMPThreadLocalBackend.h
+++ b/Common/Core/SMP/OpenMP/vtkSMPThreadLocalBackend.h
@@ -46,6 +46,7 @@ namespace smp
 {
 namespace OpenMP
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 typedef void* ThreadIdType;
 typedef vtkTypeUInt32 HashType;
@@ -177,6 +178,7 @@ private:
   size_t CurrentSlot;
 };
 
+VTK_ABI_NAMESPACE_END
 } // OpenMP;
 } // namespace smp
 } // namespace detail
diff --git a/Common/Core/SMP/OpenMP/vtkSMPThreadLocalImpl.h b/Common/Core/SMP/OpenMP/vtkSMPThreadLocalImpl.h
index 23bc2e91232a005b7a16f048554ea02d6a97a93e..6839ee2e938edc01c3dd3542fd69b4dd5d2c2d4a 100644
--- a/Common/Core/SMP/OpenMP/vtkSMPThreadLocalImpl.h
+++ b/Common/Core/SMP/OpenMP/vtkSMPThreadLocalImpl.h
@@ -31,6 +31,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename T>
 class vtkSMPThreadLocalImpl<BackendType::OpenMP, T> : public vtkSMPThreadLocalImplAbstract<T>
@@ -126,6 +127,7 @@ private:
   void operator=(const vtkSMPThreadLocalImpl&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/OpenMP/vtkSMPToolsImpl.cxx b/Common/Core/SMP/OpenMP/vtkSMPToolsImpl.cxx
index 90fb7700a39503e4964539014d345f10ac46eb69..13f9f1707476af243e8daf58b51af16a4ac99c2b 100644
--- a/Common/Core/SMP/OpenMP/vtkSMPToolsImpl.cxx
+++ b/Common/Core/SMP/OpenMP/vtkSMPToolsImpl.cxx
@@ -26,6 +26,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 static int specifiedNumThreads = 0;
 static std::stack<int> threadIdStack;
 
@@ -107,6 +108,7 @@ void vtkSMPToolsImplForOpenMP(vtkIdType first, vtkIdType last, vtkIdType grain,
   threadIdStack.pop();
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/OpenMP/vtkSMPToolsImpl.txx b/Common/Core/SMP/OpenMP/vtkSMPToolsImpl.txx
index 2270c6f27f26dad0f14c4e40f084d9433ebd3e02..62624ecb75635b521d21080b24f010ce6a58a186 100644
--- a/Common/Core/SMP/OpenMP/vtkSMPToolsImpl.txx
+++ b/Common/Core/SMP/OpenMP/vtkSMPToolsImpl.txx
@@ -28,6 +28,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 int VTKCOMMONCORE_EXPORT GetNumberOfThreadsOpenMP();
 bool VTKCOMMONCORE_EXPORT GetSingleThreadOpenMP();
@@ -150,6 +151,7 @@ int vtkSMPToolsImpl<BackendType::OpenMP>::GetEstimatedNumberOfThreads();
 template <>
 bool vtkSMPToolsImpl<BackendType::OpenMP>::GetSingleThread();
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/STDThread/vtkSMPThreadLocalBackend.cxx b/Common/Core/SMP/STDThread/vtkSMPThreadLocalBackend.cxx
index e74ca8b7654403c46dc835e5d9d78facba67bf73..60eaac541ca4f52060bf5f2d52b47f085e6ee361 100644
--- a/Common/Core/SMP/STDThread/vtkSMPThreadLocalBackend.cxx
+++ b/Common/Core/SMP/STDThread/vtkSMPThreadLocalBackend.cxx
@@ -28,6 +28,7 @@ namespace smp
 {
 namespace STDThread
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 static ThreadIdType GetThreadId()
 {
@@ -216,6 +217,7 @@ size_t ThreadSpecific::GetSize() const
   return this->Size;
 }
 
+VTK_ABI_NAMESPACE_END
 } // STDThread
 } // namespace smp
 } // namespace detail
diff --git a/Common/Core/SMP/STDThread/vtkSMPThreadLocalBackend.h b/Common/Core/SMP/STDThread/vtkSMPThreadLocalBackend.h
index 7f5e9463441a02a59dc49c6c9c12e48d5d71b2b3..09088d660b464f1974cb02606f02066717c4f3ef 100644
--- a/Common/Core/SMP/STDThread/vtkSMPThreadLocalBackend.h
+++ b/Common/Core/SMP/STDThread/vtkSMPThreadLocalBackend.h
@@ -51,6 +51,7 @@ namespace smp
 {
 namespace STDThread
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 typedef size_t ThreadIdType;
 typedef uint_fast32_t HashType;
@@ -178,6 +179,7 @@ private:
   size_t CurrentSlot;
 };
 
+VTK_ABI_NAMESPACE_END
 } // STDThread;
 } // namespace smp
 } // namespace detail
diff --git a/Common/Core/SMP/STDThread/vtkSMPThreadLocalImpl.h b/Common/Core/SMP/STDThread/vtkSMPThreadLocalImpl.h
index a3bb9f35023450377c3364344441a7bf5dad2deb..51af83462301e13f8ba0cbbf30f81a791e0a149c 100644
--- a/Common/Core/SMP/STDThread/vtkSMPThreadLocalImpl.h
+++ b/Common/Core/SMP/STDThread/vtkSMPThreadLocalImpl.h
@@ -31,6 +31,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename T>
 class vtkSMPThreadLocalImpl<BackendType::STDThread, T> : public vtkSMPThreadLocalImplAbstract<T>
@@ -126,6 +127,7 @@ private:
   void operator=(const vtkSMPThreadLocalImpl&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/STDThread/vtkSMPThreadPool.cxx b/Common/Core/SMP/STDThread/vtkSMPThreadPool.cxx
index 69f6ba6f09de2d6303ad3accaeb50c16c03a166c..08ac09170d1d1d336a30c2b749e42b65ce3695dd 100644
--- a/Common/Core/SMP/STDThread/vtkSMPThreadPool.cxx
+++ b/Common/Core/SMP/STDThread/vtkSMPThreadPool.cxx
@@ -17,7 +17,15 @@
 
 #include <iostream>
 
-vtk::detail::smp::vtkSMPThreadPool::vtkSMPThreadPool(int threadNumber)
+namespace vtk
+{
+namespace detail
+{
+namespace smp
+{
+VTK_ABI_NAMESPACE_BEGIN
+
+vtkSMPThreadPool::vtkSMPThreadPool(int threadNumber)
 {
   this->Threads.reserve(threadNumber);
   for (int i = 0; i < threadNumber; ++i)
@@ -26,7 +34,7 @@ vtk::detail::smp::vtkSMPThreadPool::vtkSMPThreadPool(int threadNumber)
   }
 }
 
-void vtk::detail::smp::vtkSMPThreadPool::Join()
+void vtkSMPThreadPool::Join()
 {
   {
     std::unique_lock<std::mutex> lock(this->Mutex);
@@ -41,7 +49,7 @@ void vtk::detail::smp::vtkSMPThreadPool::Join()
   }
 }
 
-void vtk::detail::smp::vtkSMPThreadPool::DoJob(std::function<void(void)> job)
+void vtkSMPThreadPool::DoJob(std::function<void(void)> job)
 {
   std::unique_lock<std::mutex> lock(this->Mutex);
 
@@ -49,7 +57,7 @@ void vtk::detail::smp::vtkSMPThreadPool::DoJob(std::function<void(void)> job)
   this->ConditionVariable.notify_one();
 }
 
-void vtk::detail::smp::vtkSMPThreadPool::ThreadJob()
+void vtkSMPThreadPool::ThreadJob()
 {
   std::function<void(void)> job;
 
@@ -77,3 +85,7 @@ std::vector<std::thread>* vtk::detail::smp::vtkSMPThreadPool::GetThreads()
 {
   return &(this->Threads);
 }
+VTK_ABI_NAMESPACE_END
+} // namespace smp
+} // namespace detail
+} // namespace vtk
diff --git a/Common/Core/SMP/STDThread/vtkSMPThreadPool.h b/Common/Core/SMP/STDThread/vtkSMPThreadPool.h
index 9097e15b2ddfaa92dc8ae5f016cb525e3165d6bd..e64430876fd7132f216eaf1d61842b54e505fe01 100644
--- a/Common/Core/SMP/STDThread/vtkSMPThreadPool.h
+++ b/Common/Core/SMP/STDThread/vtkSMPThreadPool.h
@@ -39,6 +39,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 class VTKCOMMONCORE_EXPORT vtkSMPThreadPool
 {
@@ -60,6 +61,7 @@ private:
   std::vector<std::thread> Threads;
 };
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/STDThread/vtkSMPToolsImpl.cxx b/Common/Core/SMP/STDThread/vtkSMPToolsImpl.cxx
index bdaf7029c77401967a03c82031d32dd7aa42ec9c..c6d1c3d4c3810fdf51dcbd4aab5738b503f3691c 100644
--- a/Common/Core/SMP/STDThread/vtkSMPToolsImpl.cxx
+++ b/Common/Core/SMP/STDThread/vtkSMPToolsImpl.cxx
@@ -26,6 +26,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 static int specifiedNumThreads = 0;
 static std::stack<std::thread::id> threadIdStack;
 static std::mutex threadIdStackLock;
@@ -96,6 +97,7 @@ bool vtkSMPToolsImpl<BackendType::STDThread>::GetSingleThread()
   return GetSingleThreadSTDThread();
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/STDThread/vtkSMPToolsImpl.txx b/Common/Core/SMP/STDThread/vtkSMPToolsImpl.txx
index 8e680671d77df7eeb3bc7e31c356dfa17508dc76..f25557441af9b1ab500ec6d55d9a4d5c7e6714ce 100644
--- a/Common/Core/SMP/STDThread/vtkSMPToolsImpl.txx
+++ b/Common/Core/SMP/STDThread/vtkSMPToolsImpl.txx
@@ -30,6 +30,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 int VTKCOMMONCORE_EXPORT GetNumberOfThreadsSTDThread();
 bool VTKCOMMONCORE_EXPORT GetSingleThreadSTDThread();
@@ -168,6 +169,7 @@ int vtkSMPToolsImpl<BackendType::STDThread>::GetEstimatedNumberOfThreads();
 template <>
 bool vtkSMPToolsImpl<BackendType::STDThread>::GetSingleThread();
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/Sequential/vtkSMPThreadLocalImpl.h b/Common/Core/SMP/Sequential/vtkSMPThreadLocalImpl.h
index 9e3cdacb638b1e81a58b4ad9fdc7f96f6f8a5f70..9920f5fa23d7fd8f170423d34f6283e0cc5b10dc 100644
--- a/Common/Core/SMP/Sequential/vtkSMPThreadLocalImpl.h
+++ b/Common/Core/SMP/Sequential/vtkSMPThreadLocalImpl.h
@@ -34,6 +34,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename T>
 class vtkSMPThreadLocalImpl<BackendType::Sequential, T> : public vtkSMPThreadLocalImplAbstract<T>
@@ -170,6 +171,7 @@ private:
   void operator=(const vtkSMPThreadLocalImpl&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/Sequential/vtkSMPToolsImpl.cxx b/Common/Core/SMP/Sequential/vtkSMPToolsImpl.cxx
index 338a64c96838e94b464fb7826b177c664b6530b7..2e6fc5d7a8d2d119367ae472735f26c0df0bf65a 100644
--- a/Common/Core/SMP/Sequential/vtkSMPToolsImpl.cxx
+++ b/Common/Core/SMP/Sequential/vtkSMPToolsImpl.cxx
@@ -22,6 +22,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 template <>
@@ -43,6 +44,7 @@ bool vtkSMPToolsImpl<BackendType::Sequential>::GetSingleThread()
   return true;
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/Sequential/vtkSMPToolsImpl.txx b/Common/Core/SMP/Sequential/vtkSMPToolsImpl.txx
index 247d897655a07c96529a2d7a101f18b4ed105c9e..1dd8088c69fec34ac78d6e4000797e6838c2fd0e 100644
--- a/Common/Core/SMP/Sequential/vtkSMPToolsImpl.txx
+++ b/Common/Core/SMP/Sequential/vtkSMPToolsImpl.txx
@@ -27,6 +27,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //--------------------------------------------------------------------------------
 template <>
@@ -116,6 +117,7 @@ int vtkSMPToolsImpl<BackendType::Sequential>::GetEstimatedNumberOfThreads();
 template <>
 bool vtkSMPToolsImpl<BackendType::Sequential>::GetSingleThread();
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/TBB/vtkSMPThreadLocalImpl.h b/Common/Core/SMP/TBB/vtkSMPThreadLocalImpl.h
index b7a787def9aa58ab410707370b212b4c58aaaf29..b3053f9e21b6e2501b380fcde0cbe00df78eeb54 100644
--- a/Common/Core/SMP/TBB/vtkSMPThreadLocalImpl.h
+++ b/Common/Core/SMP/TBB/vtkSMPThreadLocalImpl.h
@@ -39,6 +39,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename T>
 class vtkSMPThreadLocalImpl<BackendType::TBB, T> : public vtkSMPThreadLocalImplAbstract<T>
@@ -110,6 +111,7 @@ private:
   void operator=(const vtkSMPThreadLocalImpl&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/TBB/vtkSMPToolsImpl.cxx b/Common/Core/SMP/TBB/vtkSMPToolsImpl.cxx
index fb0a7d119ab1684b39d487ecb5e5cda3d06ff6ff..6bd7e62ac06717f25d125c334407879a3b451c27 100644
--- a/Common/Core/SMP/TBB/vtkSMPToolsImpl.cxx
+++ b/Common/Core/SMP/TBB/vtkSMPToolsImpl.cxx
@@ -37,6 +37,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 static tbb::task_arena taskArena;
 static std::mutex vtkSMPToolsCS;
@@ -114,6 +115,7 @@ void vtkSMPToolsImplForTBB(vtkIdType first, vtkIdType last, vtkIdType grain,
   threadIdStackLock.unlock();
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/SMP/TBB/vtkSMPToolsImpl.txx b/Common/Core/SMP/TBB/vtkSMPToolsImpl.txx
index dc51a6ab5a69b04567383b58a7466af298a8f73e..a01f7da3d664956de2991ec30251a89f2a511e9f 100644
--- a/Common/Core/SMP/TBB/vtkSMPToolsImpl.txx
+++ b/Common/Core/SMP/TBB/vtkSMPToolsImpl.txx
@@ -39,6 +39,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 void VTKCOMMONCORE_EXPORT vtkSMPToolsImplForTBB(vtkIdType first, vtkIdType last, vtkIdType grain,
   ExecuteFunctorPtrType functorExecuter, void* functor);
@@ -201,6 +202,7 @@ int vtkSMPToolsImpl<BackendType::TBB>::GetEstimatedNumberOfThreads();
 template <>
 bool vtkSMPToolsImpl<BackendType::TBB>::GetSingleThread();
 
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
diff --git a/Common/Core/Testing/Cxx/TestArrayUserTypes.cxx b/Common/Core/Testing/Cxx/TestArrayUserTypes.cxx
index f75716608673722cef9d71254549e15568cfa1ee..7a677338e5225413b7364ce6f5bdcec7d9918c66 100644
--- a/Common/Core/Testing/Cxx/TestArrayUserTypes.cxx
+++ b/Common/Core/Testing/Cxx/TestArrayUserTypes.cxx
@@ -53,6 +53,8 @@ public:
   std::string Value;
 };
 
+VTK_ABI_NAMESPACE_BEGIN
+
 template <>
 inline UserType vtkVariantCast<UserType>(const vtkVariant& value, bool* valid)
 {
@@ -66,6 +68,7 @@ inline vtkVariant vtkVariantCreate<UserType>(const UserType& value)
 {
   return vtkVariant(value.Value);
 }
+VTK_ABI_NAMESPACE_END
 
 int TestArrayUserTypes(int vtkNotUsed(argc), char* vtkNotUsed(argv)[])
 {
diff --git a/Common/Core/Testing/Cxx/vtkTestNewVar.h b/Common/Core/Testing/Cxx/vtkTestNewVar.h
index 8d55b2936424f5bcbb391d383d398d82bc753f6c..83b8862a031cdfcb93c8fe541b86078a43cf0923 100644
--- a/Common/Core/Testing/Cxx/vtkTestNewVar.h
+++ b/Common/Core/Testing/Cxx/vtkTestNewVar.h
@@ -23,7 +23,9 @@
 #include "vtkNew.h"
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints2D;
+VTK_ABI_NAMESPACE_END
 
 class vtkTestNewVar : public vtkObject
 {
diff --git a/Common/Core/vtkABI.h b/Common/Core/vtkABI.h
index 107727128a3e6c3d1660fa9109a7b5a74bb870e9..6ae1f84f21e171dd052d650e246a22cc253e7e00 100644
--- a/Common/Core/vtkABI.h
+++ b/Common/Core/vtkABI.h
@@ -58,6 +58,8 @@
 #define VTK_ABI_HIDDEN
 #endif
 
+#include "vtkABINamespace.h"
+
 /*--------------------------------------------------------------------------*/
 /* If not already defined, define vtkTypeBool. When VTK was started, some   */
 /* compilers did not yet support the bool type, and so VTK often used int,  */
diff --git a/Common/Core/vtkAOSDataArrayTemplate.h b/Common/Core/vtkAOSDataArrayTemplate.h
index effa4ad109410edbf5e8408e7da52fb2eb8a3b2e..0bddf4e11961ca1c0636d228171ac204bdbc4894 100644
--- a/Common/Core/vtkAOSDataArrayTemplate.h
+++ b/Common/Core/vtkAOSDataArrayTemplate.h
@@ -39,6 +39,7 @@
 
 // The export macro below makes no sense, but is necessary for older compilers
 // when we export instantiations of this class from vtkCommonCore.
+VTK_ABI_NAMESPACE_BEGIN
 template <class ValueTypeT>
 class VTKCOMMONCORE_EXPORT vtkAOSDataArrayTemplate
   : public vtkGenericDataArray<vtkAOSDataArrayTemplate<ValueTypeT>, ValueTypeT>
@@ -298,6 +299,8 @@ private:
 // Declare vtkArrayDownCast implementations for AoS containers:
 vtkArrayDownCast_TemplateFastCastMacro(vtkAOSDataArrayTemplate);
 
+VTK_ABI_NAMESPACE_END
+
 // This macro is used by the subclasses to create dummy
 // declarations for these functions such that the wrapper
 // can see them. The wrappers ignore vtkAOSDataArrayTemplate.
@@ -329,9 +332,13 @@ vtkArrayDownCast_TemplateFastCastMacro(vtkAOSDataArrayTemplate);
 #define VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(T)                                                 \
   namespace vtkDataArrayPrivate                                                                    \
   {                                                                                                \
+  VTK_ABI_NAMESPACE_BEGIN                                                                          \
   VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkAOSDataArrayTemplate<T>, double);                        \
+  VTK_ABI_NAMESPACE_END                                                                            \
   }                                                                                                \
-  template class VTKCOMMONCORE_EXPORT vtkAOSDataArrayTemplate<T>
+  VTK_ABI_NAMESPACE_BEGIN                                                                          \
+  template class VTKCOMMONCORE_EXPORT vtkAOSDataArrayTemplate<T>;                                  \
+  VTK_ABI_NAMESPACE_END
 
 #elif defined(VTK_USE_EXTERN_TEMPLATE)
 #ifndef VTK_AOS_DATA_ARRAY_TEMPLATE_EXTERN
@@ -342,7 +349,9 @@ vtkArrayDownCast_TemplateFastCastMacro(vtkAOSDataArrayTemplate);
 // dllexport and is used from another class in vtkCommonCore
 #pragma warning(disable : 4910) // extern and dllexport incompatible
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkAOSDataArrayTemplate);
+VTK_ABI_NAMESPACE_END
 #ifdef _MSC_VER
 #pragma warning(pop)
 #endif
@@ -373,7 +382,9 @@ vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkAOSDataArra
 
 // Use an "extern explicit instantiation" to give the class a DLL
 // interface.  This is a compiler-specific extension.
+VTK_ABI_NAMESPACE_BEGIN
 vtkInstantiateTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkAOSDataArrayTemplate);
+VTK_ABI_NAMESPACE_END
 
 #pragma warning(pop)
 
diff --git a/Common/Core/vtkAOSDataArrayTemplate.txx b/Common/Core/vtkAOSDataArrayTemplate.txx
index af9c52971967caaeddd00c6675f7789aab63cb87..781d1862a64679724c281329fa328d6f275f048a 100644
--- a/Common/Core/vtkAOSDataArrayTemplate.txx
+++ b/Common/Core/vtkAOSDataArrayTemplate.txx
@@ -26,6 +26,7 @@
 #include "vtkArrayIteratorTemplate.h"
 
 //-----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <class ValueTypeT>
 vtkAOSDataArrayTemplate<ValueTypeT>* vtkAOSDataArrayTemplate<ValueTypeT>::New()
 {
@@ -469,4 +470,5 @@ bool vtkAOSDataArrayTemplate<ValueTypeT>::ReallocateTuples(vtkIdType numTuples)
   return false;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // header guard
diff --git a/Common/Core/vtkAbstractArray.cxx b/Common/Core/vtkAbstractArray.cxx
index 33157ee9aa31540c3fd8d5a4c8c061f81321b8db..b18e9b676ebf79b7b2fb0990e2c83ceac093fa08 100644
--- a/Common/Core/vtkAbstractArray.cxx
+++ b/Common/Core/vtkAbstractArray.cxx
@@ -58,17 +58,21 @@
 #include <iterator>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyMacro(vtkAbstractArray, GUI_HIDE, Integer);
 vtkInformationKeyMacro(vtkAbstractArray, PER_COMPONENT, InformationVector);
 vtkInformationKeyMacro(vtkAbstractArray, PER_FINITE_COMPONENT, InformationVector);
 vtkInformationKeyMacro(vtkAbstractArray, DISCRETE_VALUES, VariantVector);
 vtkInformationKeyRestrictedMacro(
   vtkAbstractArray, DISCRETE_VALUE_SAMPLE_PARAMETERS, DoubleVector, 2);
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
 typedef std::vector<std::string*> vtkInternalComponentNameBase;
 }
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray::vtkInternalComponentNames : public vtkInternalComponentNameBase
 {
 };
@@ -623,6 +627,7 @@ void vtkAbstractArray::GetProminentComponentValues(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
 
 //------------------------------------------------------------------------------
 namespace
@@ -758,6 +763,7 @@ void SampleProminentValues(std::vector<std::vector<vtkVariant>>& uniques, vtkIdT
 }
 } // End anonymous namespace.
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 void vtkAbstractArray::UpdateDiscreteValueSet(double uncertainty, double minimumProminence)
 {
@@ -869,3 +875,4 @@ void vtkAbstractArray::UpdateDiscreteValueSet(double uncertainty, double minimum
   params[1] = minimumProminence;
   this->GetInformation()->Set(DISCRETE_VALUE_SAMPLE_PARAMETERS(), params, 2);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkAbstractArray.h b/Common/Core/vtkAbstractArray.h
index 288be53b32856cb1301764d8a3fe8fdb0be34606..3ceb6f65bba17c894920aa43cfaaeb9cbf893555 100644
--- a/Common/Core/vtkAbstractArray.h
+++ b/Common/Core/vtkAbstractArray.h
@@ -69,6 +69,7 @@
 #include "vtkObject.h"
 #include "vtkVariant.h" // for variant arguments
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArrayIterator;
 class vtkDataArray;
 class vtkIdList;
@@ -758,6 +759,8 @@ ArrayT* vtkArrayDownCast(vtkAbstractArray* array)
   return vtkArrayDownCast_impl<ArrayT>()(array);
 }
 
+VTK_ABI_NAMESPACE_END
+
 ///@{
 /**
  * This macro is used to tell vtkArrayDownCast to use FastDownCast instead of
@@ -788,5 +791,4 @@ ArrayT* vtkArrayDownCast(vtkAbstractArray* array)
     }                                                                                              \
   }
 ///@}
-
 #endif
diff --git a/Common/Core/vtkAndroidOutputWindow.cxx b/Common/Core/vtkAndroidOutputWindow.cxx
index 2dc4e17a1028a1ec5fb61e26921d1d4a3ce7ea14..aa2e96db635f647a4b2484022005dceb7b722e16 100644
--- a/Common/Core/vtkAndroidOutputWindow.cxx
+++ b/Common/Core/vtkAndroidOutputWindow.cxx
@@ -20,6 +20,7 @@
 
 #include <android/log.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAndroidOutputWindow);
 
 //------------------------------------------------------------------------------
@@ -115,3 +116,4 @@ void vtkAndroidOutputWindow::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkAndroidOutputWindow.h b/Common/Core/vtkAndroidOutputWindow.h
index 375a0b82157ea7d06b3353c3374a28a8f7b281a1..f4df29835b740859bdd7b84126bf2e10fdbc70ae 100644
--- a/Common/Core/vtkAndroidOutputWindow.h
+++ b/Common/Core/vtkAndroidOutputWindow.h
@@ -31,6 +31,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkOutputWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkAndroidOutputWindow : public vtkOutputWindow
 {
 public:
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkAndroidOutputWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkAnimationCue.cxx b/Common/Core/vtkAnimationCue.cxx
index 9ea7cfe530f05d11b63b053bc94b5d6e216cee5b..2d25972a7cae96c5a2b3e8ee8c14217b7cf9764d 100644
--- a/Common/Core/vtkAnimationCue.cxx
+++ b/Common/Core/vtkAnimationCue.cxx
@@ -17,6 +17,7 @@
 #include "vtkCommand.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAnimationCue);
 
 //------------------------------------------------------------------------------
@@ -167,3 +168,4 @@ void vtkAnimationCue::PrintSelf(ostream& os, vtkIndent indent)
      << "Direction: " << (this->Direction == PlayDirection::BACKWARD ? "Backward" : "Forward")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkAnimationCue.h b/Common/Core/vtkAnimationCue.h
index 68ac593af4d61ad513e870b79fa29b7dad3fbea3..d1d39a9f79807bd3352dd5e09115acef8c14d6b5 100644
--- a/Common/Core/vtkAnimationCue.h
+++ b/Common/Core/vtkAnimationCue.h
@@ -41,6 +41,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkAnimationCue : public vtkObject
 {
 public:
@@ -242,4 +243,5 @@ private:
   void operator=(const vtkAnimationCue&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkArchiver.cxx b/Common/Core/vtkArchiver.cxx
index c8f8b85b447bc058b0c1d10edbe9c1924579cb2f..4df1ecb22d2270846b9a7a5f31302cf7344f2a5f 100644
--- a/Common/Core/vtkArchiver.cxx
+++ b/Common/Core/vtkArchiver.cxx
@@ -22,6 +22,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkArchiver);
 
 //------------------------------------------------------------------------------
@@ -83,3 +84,4 @@ void vtkArchiver::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkArchiver.h b/Common/Core/vtkArchiver.h
index ea72598c99d35ddbac323cfeedd390f8fbfb8c90..1e702de7ae08990f753b8732611f2fff22945951 100644
--- a/Common/Core/vtkArchiver.h
+++ b/Common/Core/vtkArchiver.h
@@ -33,6 +33,7 @@
 
 #include <ios> // For std::streamsize
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkArchiver : public vtkObject
 {
 public:
@@ -88,4 +89,5 @@ private:
   void operator=(const vtkArchiver&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkArray.cxx b/Common/Core/vtkArray.cxx
index 813736a474f8b54e8efd780086c5f1a6a86fe512..bc30e249a97f16801c0eca604c0822de46fafd88 100644
--- a/Common/Core/vtkArray.cxx
+++ b/Common/Core/vtkArray.cxx
@@ -32,6 +32,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkArray::vtkArray() = default;
 
 //------------------------------------------------------------------------------
@@ -246,3 +247,4 @@ vtkStdString vtkArray::GetDimensionLabel(DimensionT i)
 
   return this->InternalGetDimensionLabel(i);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkArray.h b/Common/Core/vtkArray.h
index ea82efe5ec0379a96ee82a5a0b718afb0c31b640..a71fa75650905836f2a86f3d77cde3ec405854ff 100644
--- a/Common/Core/vtkArray.h
+++ b/Common/Core/vtkArray.h
@@ -61,6 +61,7 @@
 #include "vtkStdString.h" // for vtkStdString
 #include "vtkVariant.h"   // for vtkVariant
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkArray : public vtkObject
 {
 public:
@@ -303,4 +304,5 @@ void vtkArray::SetVariantValue(CoordinateT i, CoordinateT j, CoordinateT k, cons
   this->SetVariantValue(vtkArrayCoordinates(i, j, k), value);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkArrayCoordinates.cxx b/Common/Core/vtkArrayCoordinates.cxx
index fb71ab4811f05e5e09ef24044e39106293bd81c2..68448b549ad20a4a52cb53c48ea4b1154f535a2f 100644
--- a/Common/Core/vtkArrayCoordinates.cxx
+++ b/Common/Core/vtkArrayCoordinates.cxx
@@ -21,6 +21,7 @@
 
 #include "vtkArrayCoordinates.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkArrayCoordinates::vtkArrayCoordinates() = default;
 
 vtkArrayCoordinates::vtkArrayCoordinates(CoordinateT i)
@@ -95,3 +96,4 @@ ostream& operator<<(ostream& stream, const vtkArrayCoordinates& rhs)
 
   return stream;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkArrayCoordinates.h b/Common/Core/vtkArrayCoordinates.h
index 2a02e1588a4125365589df90157d8b05efe60248..49a5bdb1b72c892cc59999a11fb0c7ee9e3b0c6c 100644
--- a/Common/Core/vtkArrayCoordinates.h
+++ b/Common/Core/vtkArrayCoordinates.h
@@ -48,6 +48,7 @@
 #include "vtkSystemIncludes.h"
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkArrayCoordinates
 {
 public:
@@ -124,6 +125,7 @@ private:
   std::vector<CoordinateT> Storage;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkArrayCoordinates.h
diff --git a/Common/Core/vtkArrayDispatch.h b/Common/Core/vtkArrayDispatch.h
index 4e532addd67bc0ee05524460f871030a429fbb90..3c0cc6c890295634200020f35253dbeee71e1dd0 100644
--- a/Common/Core/vtkArrayDispatch.h
+++ b/Common/Core/vtkArrayDispatch.h
@@ -201,6 +201,7 @@
 
 namespace vtkArrayDispatch
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 /**
  * A TypeList containing all real ValueTypes.
@@ -415,6 +416,7 @@ struct Dispatch3BySameValueType;
 template <typename ArrayList, typename ValueList>
 struct FilterArraysByValueType;
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtkArrayDispatch
 
 #include "vtkArrayDispatch.txx"
diff --git a/Common/Core/vtkArrayDispatch.txx b/Common/Core/vtkArrayDispatch.txx
index 76556c4172e0331b47a0c55bd7780ce196a5d015..4e3ad9219c0d744fdcbbaf0787d4ee7b339a1621 100644
--- a/Common/Core/vtkArrayDispatch.txx
+++ b/Common/Core/vtkArrayDispatch.txx
@@ -23,12 +23,15 @@
 
 #include <utility> // For std::forward
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
+VTK_ABI_NAMESPACE_END
 
 namespace vtkArrayDispatch
 {
 namespace impl
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 // Implementation of the single-array dispatch mechanism.
@@ -390,8 +393,10 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace impl
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 // FilterArraysByValueType implementation:
 //------------------------------------------------------------------------------
@@ -764,6 +769,7 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtkArrayDispatch
 
 #endif // vtkArrayDispatch_txx
diff --git a/Common/Core/vtkArrayExtents.cxx b/Common/Core/vtkArrayExtents.cxx
index 375e4419d28dd040e11fe3f612ad73eed96d7836..e285e7975027dd8619facb68876e68d61cffca35 100644
--- a/Common/Core/vtkArrayExtents.cxx
+++ b/Common/Core/vtkArrayExtents.cxx
@@ -25,6 +25,7 @@
 #include <functional>
 #include <numeric>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkArrayExtents::vtkArrayExtents() = default;
 
 vtkArrayExtents::vtkArrayExtents(const CoordinateT i)
@@ -231,3 +232,4 @@ ostream& operator<<(ostream& stream, const vtkArrayExtents& rhs)
 
   return stream;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkArrayExtents.h b/Common/Core/vtkArrayExtents.h
index 2743cd071a7819643a04d16feeddb40f85f3d9d4..c9ec861a79f7da85eb459b766522feb57cacafd7 100644
--- a/Common/Core/vtkArrayExtents.h
+++ b/Common/Core/vtkArrayExtents.h
@@ -65,6 +65,7 @@
 #include "vtkSystemIncludes.h"
 #include <vector> // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkArrayExtents
 {
 public:
@@ -231,5 +232,6 @@ private:
   std::vector<vtkArrayRange> Storage;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkArrayExtents.h
diff --git a/Common/Core/vtkArrayExtentsList.cxx b/Common/Core/vtkArrayExtentsList.cxx
index d7aeeea51e327ad934a1dfcec9a1a622ca59a868..f32613b1e9be0c2f9189319b731660bfadbc1e90 100644
--- a/Common/Core/vtkArrayExtentsList.cxx
+++ b/Common/Core/vtkArrayExtentsList.cxx
@@ -21,6 +21,7 @@
 
 #include "vtkArrayExtentsList.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkArrayExtentsList::vtkArrayExtentsList() = default;
 
 vtkArrayExtentsList::vtkArrayExtentsList(const vtkArrayExtents& i)
@@ -74,3 +75,4 @@ const vtkArrayExtents& vtkArrayExtentsList::operator[](vtkIdType i) const
 {
   return this->Storage[i];
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkArrayExtentsList.h b/Common/Core/vtkArrayExtentsList.h
index 37fcd84cb7246d03d3f54d587c48176b8a159730..fbe68d6894a11a969d115979d2ae1a3cb0b4e55d 100644
--- a/Common/Core/vtkArrayExtentsList.h
+++ b/Common/Core/vtkArrayExtentsList.h
@@ -48,6 +48,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include <vector>                // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkArrayExtentsList
 {
 public:
@@ -103,6 +104,7 @@ private:
   std::vector<vtkArrayExtents> Storage;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkArrayExtentsList.h
diff --git a/Common/Core/vtkArrayInterpolate.h b/Common/Core/vtkArrayInterpolate.h
index 97fcc546ed4e77cad7730009262368781e22d1c9..b0a021787582dbc70e9216deed18695c255f8f75 100644
--- a/Common/Core/vtkArrayInterpolate.h
+++ b/Common/Core/vtkArrayInterpolate.h
@@ -46,6 +46,7 @@
 
 #include "vtkTypedArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArrayExtents;
 class vtkArraySlices;
 class vtkArrayWeights;
@@ -57,6 +58,7 @@ void vtkInterpolate(vtkTypedArray<T>* source_array, const vtkArraySlices& source
   const vtkArrayWeights& source_weights, const vtkArrayExtents& target_slice,
   vtkTypedArray<T>* target_array);
 
+VTK_ABI_NAMESPACE_END
 #include "vtkArrayInterpolate.txx"
 
 #endif
diff --git a/Common/Core/vtkArrayInterpolate.txx b/Common/Core/vtkArrayInterpolate.txx
index b58bb340e033cf64ad6d8de3f80d7469cfb3343a..f1b697d0f21d500ebe443a3de250f6b840e7521b 100644
--- a/Common/Core/vtkArrayInterpolate.txx
+++ b/Common/Core/vtkArrayInterpolate.txx
@@ -25,6 +25,7 @@
 #include "vtkArrayExtentsList.h"
 #include "vtkArrayWeights.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 void vtkInterpolate(vtkTypedArray<T>* source_array, const vtkArrayExtentsList& source_slices,
   const vtkArrayWeights& source_weights, const vtkArrayExtents& target_slice,
@@ -77,4 +78,5 @@ void vtkInterpolate(vtkTypedArray<T>* source_array, const vtkArrayExtentsList& s
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkArrayIterator.cxx b/Common/Core/vtkArrayIterator.cxx
index 389e649a79a3c0054c87bf84c207e82ea5ae49fb..448cee15f90e79a354a2aed5af667d69aff1622e 100644
--- a/Common/Core/vtkArrayIterator.cxx
+++ b/Common/Core/vtkArrayIterator.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkArrayIterator::vtkArrayIterator() = default;
 
 //------------------------------------------------------------------------------
@@ -27,3 +28,4 @@ void vtkArrayIterator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkArrayIterator.h b/Common/Core/vtkArrayIterator.h
index 42d4521fa4eea25d5aa33977cca84dfe455991db..86a660eaa5de8a263504fd5651aff43a19411690 100644
--- a/Common/Core/vtkArrayIterator.h
+++ b/Common/Core/vtkArrayIterator.h
@@ -45,6 +45,7 @@
 
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class VTKCOMMONCORE_EXPORT vtkArrayIterator : public vtkObject
 {
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkArrayIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkArrayIteratorTemplate.h b/Common/Core/vtkArrayIteratorTemplate.h
index bce53d04426a7db89147d82eee32fa4c628f4312..4f6df0c02fc59ae57755ccd4a5825b4d68d90a86 100644
--- a/Common/Core/vtkArrayIteratorTemplate.h
+++ b/Common/Core/vtkArrayIteratorTemplate.h
@@ -33,6 +33,7 @@
 #include "vtkStdString.h" // For template instantiation
 #include "vtkVariant.h"   // For template instantiation
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class T>
 class VTKCOMMONCORE_EXPORT vtkArrayIteratorTemplate : public vtkArrayIterator
 {
@@ -133,6 +134,7 @@ extern template class VTKCOMMONCORE_EXPORT vtkArrayIteratorTemplate<vtkVariant>;
 #endif
 #endif // VTK_USE_EXTERN_TEMPLATE
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkArrayIteratorTemplate.h
diff --git a/Common/Core/vtkArrayIteratorTemplate.txx b/Common/Core/vtkArrayIteratorTemplate.txx
index 9a9b9056d448ddb14d7885f3c1759292fb96ab97..2d0306a53bbdbc6b024d7a040e314e4e5f26c531 100644
--- a/Common/Core/vtkArrayIteratorTemplate.txx
+++ b/Common/Core/vtkArrayIteratorTemplate.txx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 
 //-----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <class T>
 vtkArrayIteratorTemplate<T>* vtkArrayIteratorTemplate<T>::New()
 {
@@ -130,4 +131,5 @@ void vtkArrayIteratorTemplate<T>::PrintSelf(ostream& os, vtkIndent indent)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkArrayIteratorTemplateInstantiate.cxx b/Common/Core/vtkArrayIteratorTemplateInstantiate.cxx
index a6cdae8c3225ea8b5f4884ef16ec81cf15a3df74..11cfd3df46ff0d3341bdf0c12c219e0680889c6f 100644
--- a/Common/Core/vtkArrayIteratorTemplateInstantiate.cxx
+++ b/Common/Core/vtkArrayIteratorTemplateInstantiate.cxx
@@ -16,6 +16,8 @@
 
 #include "vtkArrayIteratorTemplate.txx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInstantiateTemplateMacro(template class VTKCOMMONCORE_EXPORT vtkArrayIteratorTemplate);
 template class VTKCOMMONCORE_EXPORT vtkArrayIteratorTemplate<vtkStdString>;
 template class VTKCOMMONCORE_EXPORT vtkArrayIteratorTemplate<vtkVariant>;
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkArrayPrint.h b/Common/Core/vtkArrayPrint.h
index dae760f4199c8f6f9e358663b7e16e87859125ca..6be6491041f5c2fc83f66211a2b9b538a1e9b682 100644
--- a/Common/Core/vtkArrayPrint.h
+++ b/Common/Core/vtkArrayPrint.h
@@ -36,6 +36,7 @@
 /// Serializes the contents of an array to a stream as a series of
 /// coordinates.  For 2D arrays of double values, the output is compatible
 /// with the MatrixMarket "Coordinate Text File" format.
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 void vtkPrintCoordinateFormat(ostream& stream, vtkTypedArray<T>* array);
 
@@ -49,6 +50,7 @@ void vtkPrintMatrixFormat(ostream& stream, vtkTypedArray<T>* matrix);
 template <typename T>
 void vtkPrintVectorFormat(ostream& stream, vtkTypedArray<T>* vector);
 
+VTK_ABI_NAMESPACE_END
 #include "vtkArrayPrint.txx"
 
 #endif
diff --git a/Common/Core/vtkArrayPrint.txx b/Common/Core/vtkArrayPrint.txx
index 960011c28ef3235f0bff47f493a4655efdc52f12..49da030d28d66e5647a73eae3c74734edce67454 100644
--- a/Common/Core/vtkArrayPrint.txx
+++ b/Common/Core/vtkArrayPrint.txx
@@ -26,6 +26,7 @@
 #include <algorithm>
 #include <iterator>
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 void vtkPrintCoordinateFormat(ostream& stream, vtkTypedArray<T>* array)
 {
@@ -104,4 +105,5 @@ void vtkPrintVectorFormat(ostream& stream, vtkTypedArray<T>* vector)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkArrayRange.cxx b/Common/Core/vtkArrayRange.cxx
index de464da1ea1abac9b6234b3da0e001a73120bd6e..4002a0c3e8a71b897deaec415c50c97e9afd00a5 100644
--- a/Common/Core/vtkArrayRange.cxx
+++ b/Common/Core/vtkArrayRange.cxx
@@ -23,6 +23,7 @@
 
 #include <algorithm> // for std::max()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkArrayRange::vtkArrayRange()
   : Begin(0)
   , End(0)
@@ -75,3 +76,4 @@ ostream& operator<<(ostream& stream, const vtkArrayRange& rhs)
   stream << "[" << rhs.Begin << ", " << rhs.End << ")";
   return stream;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkArrayRange.h b/Common/Core/vtkArrayRange.h
index 63121701524c8fa4ce0e5f7d6d23fe0727733a23..c8cf6672d39ceb131fb0bcfff00d1b3bbd7085c2 100644
--- a/Common/Core/vtkArrayRange.h
+++ b/Common/Core/vtkArrayRange.h
@@ -42,6 +42,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkSystemIncludes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkArrayRange
 {
 public:
@@ -112,5 +113,6 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkArrayRange.h
diff --git a/Common/Core/vtkArraySort.cxx b/Common/Core/vtkArraySort.cxx
index 0b743e9c1ac485cf6fae11ccfa08c9180474dee0..864b8c03943223fced1b918ec3ee012a4b4c6e1f 100644
--- a/Common/Core/vtkArraySort.cxx
+++ b/Common/Core/vtkArraySort.cxx
@@ -21,6 +21,7 @@
 
 #include "vtkArraySort.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkArraySort::vtkArraySort() = default;
 
 vtkArraySort::vtkArraySort(DimensionT i)
@@ -85,3 +86,4 @@ ostream& operator<<(ostream& stream, const vtkArraySort& rhs)
 
   return stream;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkArraySort.h b/Common/Core/vtkArraySort.h
index 7761d647e486bc8662be17d4e5b6caeb37dc5a13..2890d18dcca12b26f4de675a180bb36c97da5d7d 100644
--- a/Common/Core/vtkArraySort.h
+++ b/Common/Core/vtkArraySort.h
@@ -48,6 +48,7 @@
 #include "vtkSystemIncludes.h"
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkArraySort
 {
 public:
@@ -115,6 +116,7 @@ private:
   std::vector<DimensionT> Storage;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkArraySort.h
diff --git a/Common/Core/vtkArrayWeights.cxx b/Common/Core/vtkArrayWeights.cxx
index 625dc5b5a29fd3f6a61a0e6ca1c866c38830e326..710ace43f1ce69d387940a6f30dc9cc83807b941 100644
--- a/Common/Core/vtkArrayWeights.cxx
+++ b/Common/Core/vtkArrayWeights.cxx
@@ -22,6 +22,7 @@
 #include "vtkArrayWeights.h"
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArrayWeightsStorage
 {
 public:
@@ -109,3 +110,4 @@ vtkArrayWeights& vtkArrayWeights::operator=(const vtkArrayWeights& other)
   *this->Storage = *other.Storage;
   return *this;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkArrayWeights.h b/Common/Core/vtkArrayWeights.h
index 7edbe55b8f2c5818420df093e7ab473a48f9e5ce..6611b3c938717620699ffe0a51cd437aaba359be 100644
--- a/Common/Core/vtkArrayWeights.h
+++ b/Common/Core/vtkArrayWeights.h
@@ -47,6 +47,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkSystemIncludes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArrayWeightsStorage; // pimpl
 
 class VTKCOMMONCORE_EXPORT vtkArrayWeights
@@ -118,6 +119,7 @@ protected:
   vtkArrayWeightsStorage* Storage;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkArrayWeights.h
diff --git a/Common/Core/vtkAtomicMutex.cxx b/Common/Core/vtkAtomicMutex.cxx
index 24f93250ab076fdff5a64e1ad3613c2929807f0e..a7be9eb185d58f6cec3e092c0631f87179c24a94 100644
--- a/Common/Core/vtkAtomicMutex.cxx
+++ b/Common/Core/vtkAtomicMutex.cxx
@@ -26,6 +26,8 @@ static inline __attribute__((always_inline)) void _mm_pause()
 #define _mm_pause()
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //------------------------------------------------------------------------------
 vtkAtomicMutex::vtkAtomicMutex()
   : Locked(false)
@@ -76,3 +78,4 @@ void vtkAtomicMutex::unlock()
 {
   this->Locked.store(false, std::memory_order_release);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkAtomicMutex.h b/Common/Core/vtkAtomicMutex.h
index 801838b3c963fd4f4f8339f9ee31351f45f43124..fd01d34d047ae631171e15606d35cadedba00d96 100644
--- a/Common/Core/vtkAtomicMutex.h
+++ b/Common/Core/vtkAtomicMutex.h
@@ -30,6 +30,8 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include <atomic>                // For std::atomic
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKCOMMONCORE_EXPORT vtkAtomicMutex
 {
 public:
@@ -54,5 +56,6 @@ private:
   std::atomic_bool Locked;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkAtomicMutex_h
 // VTK-HeaderTest-Exclude: vtkAtomicMutex.h
diff --git a/Common/Core/vtkAutoInit.h b/Common/Core/vtkAutoInit.h
index e657982904f19cef5e356cf631722bf568494a9c..1821793e92bf2554484988ed9f5f966331255540 100644
--- a/Common/Core/vtkAutoInit.h
+++ b/Common/Core/vtkAutoInit.h
@@ -15,6 +15,7 @@
 #ifndef vtkAutoInit_h
 #define vtkAutoInit_h
 
+#include "vtkABINamespace.h"
 #include "vtkDebugLeaksManager.h" // DebugLeaks exists longer.
 #include "vtkTimeStamp.h"         // Here so that TimeStamp Schwarz initializer works
 
@@ -49,7 +50,9 @@
   VTK_AUTOINIT_DECLARE_7(t1, t2, t3, t4, t5, t6, t7) VTK_AUTOINIT_DECLARE(t8)
 #define VTK_AUTOINIT_DECLARE_9(t1, t2, t3, t4, t5, t6, t7, t8, t9)                                 \
   VTK_AUTOINIT_DECLARE_8(t1, t2, t3, t4, t5, t6, t7, t8) VTK_AUTOINIT_DECLARE(t9)
-#define VTK_AUTOINIT_DECLARE(M) void M##_AutoInit_Construct();
+#define VTK_AUTOINIT_DECLARE(M)                                                                    \
+  VTK_ABI_NAMESPACE_BEGIN void M##_AutoInit_Construct();                                           \
+  VTK_ABI_NAMESPACE_END
 
 #define VTK_AUTOINIT_CONSTRUCT_0()
 #define VTK_AUTOINIT_CONSTRUCT_1(t1) VTK_AUTOINIT_CONSTRUCT_0() VTK_AUTOINIT_CONSTRUCT(t1)
@@ -84,13 +87,14 @@
 // The above snippet if included in the global scope will ensure the object
 // factories for vtkRenderingOpenGL2 are correctly registered and unregistered.
 #define VTK_MODULE_INIT(M)                                                                         \
-  VTK_AUTOINIT_DECLARE(M) namespace                                                                \
+  VTK_AUTOINIT_DECLARE(M)                                                                          \
+  namespace                                                                                        \
   {                                                                                                \
-    static struct M##_ModuleInit                                                                   \
-    {                                                                                              \
-      /* Call <mod>_AutoInit_Construct during initialization.  */                                  \
-      M##_ModuleInit() { VTK_AUTOINIT_CONSTRUCT(M) }                                               \
-    } M##_ModuleInit_Instance;                                                                     \
+  static struct M##_ModuleInit                                                                     \
+  {                                                                                                \
+    /* Call <mod>_AutoInit_Construct during initialization.  */                                    \
+    M##_ModuleInit() { VTK_AUTOINIT_CONSTRUCT(M) }                                                 \
+  } M##_ModuleInit_Instance;                                                                       \
   }
 
 #endif
diff --git a/Common/Core/vtkBitArray.cxx b/Common/Core/vtkBitArray.cxx
index 366a52c51a07d17d00145c464bbe3addb4f2df1a..93b7347792f5b142711299601ae36fa30de39f63 100644
--- a/Common/Core/vtkBitArray.cxx
+++ b/Common/Core/vtkBitArray.cxx
@@ -18,6 +18,7 @@
 #include "vtkIdList.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 constexpr unsigned char InitializationMaskForUnusedBitsOfLastByte[8] = { 0x80, 0xc0, 0xe0, 0xf0,
@@ -836,3 +837,4 @@ void vtkBitArray::ClearLookup()
   delete this->Lookup;
   this->Lookup = nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkBitArray.h b/Common/Core/vtkBitArray.h
index 03f5f28ff54b79fb62214b4da54e32edbaff619e..bd2682340a366a98af4765a979a9be67a81db156 100644
--- a/Common/Core/vtkBitArray.h
+++ b/Common/Core/vtkBitArray.h
@@ -28,6 +28,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkDataArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArrayLookup;
 
 class VTKCOMMONCORE_EXPORT vtkBitArray : public vtkDataArray
@@ -392,4 +393,5 @@ inline void vtkBitArray::Squeeze()
 {
   this->ResizeAndExtend(this->MaxId + 1);
 }
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkBitArrayIterator.cxx b/Common/Core/vtkBitArrayIterator.cxx
index a57b2a275f7a0c94b37656ef6321f4cc5e8169a8..9f8dc5980cd3a41d3bec45d824992faf0e85a46a 100644
--- a/Common/Core/vtkBitArrayIterator.cxx
+++ b/Common/Core/vtkBitArrayIterator.cxx
@@ -17,6 +17,7 @@
 #include "vtkBitArray.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBitArrayIterator);
 vtkCxxSetObjectMacro(vtkBitArrayIterator, Array, vtkBitArray);
 //------------------------------------------------------------------------------
@@ -147,3 +148,4 @@ void vtkBitArrayIterator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkBitArrayIterator.h b/Common/Core/vtkBitArrayIterator.h
index ec0d44797448c8ccdd440f6ee7165dac0adb6440..7afbbc39f16d901e83343e425d3abd938c44d94f 100644
--- a/Common/Core/vtkBitArrayIterator.h
+++ b/Common/Core/vtkBitArrayIterator.h
@@ -25,6 +25,7 @@
 #include "vtkArrayIterator.h"
 #include "vtkCommonCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class VTKCOMMONCORE_EXPORT vtkBitArrayIterator : public vtkArrayIterator
 {
@@ -107,4 +108,5 @@ private:
   void operator=(const vtkBitArrayIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkBoxMuellerRandomSequence.cxx b/Common/Core/vtkBoxMuellerRandomSequence.cxx
index 928527cf36251e002486498ca1cb58316cf1fe36..6e201ea82518c56a63af272715c87690d25cb459 100644
--- a/Common/Core/vtkBoxMuellerRandomSequence.cxx
+++ b/Common/Core/vtkBoxMuellerRandomSequence.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoxMuellerRandomSequence);
 
 //------------------------------------------------------------------------------
@@ -94,3 +95,4 @@ void vtkBoxMuellerRandomSequence::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkBoxMuellerRandomSequence.h b/Common/Core/vtkBoxMuellerRandomSequence.h
index f9d9b21ad590bb5d41a43fab7602fae18415e3fa..32d0f4865eadd814bdfad0c5c30926a214cb36c0 100644
--- a/Common/Core/vtkBoxMuellerRandomSequence.h
+++ b/Common/Core/vtkBoxMuellerRandomSequence.h
@@ -29,6 +29,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkGaussianRandomSequence.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkBoxMuellerRandomSequence : public vtkGaussianRandomSequence
 {
 public:
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkBoxMuellerRandomSequence&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // #ifndef vtkBoxMuellerRandomSequence_h
diff --git a/Common/Core/vtkBreakPoint.cxx b/Common/Core/vtkBreakPoint.cxx
index 4eb41de5d0deb2e32759b7541b85d18af903d994..b8b968c80e3cfd350c395768d7b0e3f117981663 100644
--- a/Common/Core/vtkBreakPoint.cxx
+++ b/Common/Core/vtkBreakPoint.cxx
@@ -19,6 +19,7 @@
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkBreakPoint::Break()
 {
 #ifndef _WIN32
@@ -32,3 +33,4 @@ void vtkBreakPoint::Break()
   }
 #endif
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkBreakPoint.h b/Common/Core/vtkBreakPoint.h
index 9ac82849c95e808188ced3090ae1236e26889a96..8c77500baf2fbdfc81e75f7e17974de8c6fee583 100644
--- a/Common/Core/vtkBreakPoint.h
+++ b/Common/Core/vtkBreakPoint.h
@@ -39,6 +39,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"           // to get VTKCOMMONCORE_EXPORT
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkBreakPoint
 {
 public:
@@ -51,5 +52,6 @@ public:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // #ifndef vtkBreakPoint_h
 // VTK-HeaderTest-Exclude: vtkBreakPoint.h
diff --git a/Common/Core/vtkBuffer.h b/Common/Core/vtkBuffer.h
index b15aa9bf1ed7476695261e931803c5e3a9ae7084..2431e7d9bd692e04b587e0e4f124581d99e92428 100644
--- a/Common/Core/vtkBuffer.h
+++ b/Common/Core/vtkBuffer.h
@@ -30,6 +30,7 @@
 
 #include <algorithm> // for std::min and std::copy
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class ScalarTypeT>
 class vtkBuffer : public vtkObject
 {
@@ -262,5 +263,6 @@ bool vtkBuffer<ScalarT>::Reallocate(vtkIdType newsize)
   return true;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkBuffer.h
diff --git a/Common/Core/vtkByteSwap.cxx b/Common/Core/vtkByteSwap.cxx
index d82f7534b94ec0d0b84792186127b9b3140c055f..4c2e1ddafb485e62cc1b142b9201a8cf5fb61cb8 100644
--- a/Common/Core/vtkByteSwap.cxx
+++ b/Common/Core/vtkByteSwap.cxx
@@ -19,6 +19,7 @@
 #include <cstdint>
 #include <memory.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkByteSwap);
 
 //------------------------------------------------------------------------------
@@ -361,3 +362,4 @@ void vtkByteSwap::SwapVoidRange(void* buffer, size_t numWords, size_t wordSize)
     buf += half;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkByteSwap.h b/Common/Core/vtkByteSwap.h
index 7bab3817cfa2c338678bc4e16111150876fe6349..eace045a499e2dfd50dc44bb17125470ad5ca4a3 100644
--- a/Common/Core/vtkByteSwap.h
+++ b/Common/Core/vtkByteSwap.h
@@ -27,6 +27,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkByteSwap : public vtkObject
 {
 public:
@@ -142,4 +143,5 @@ private:
   void operator=(const vtkByteSwap&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkCallbackCommand.cxx b/Common/Core/vtkCallbackCommand.cxx
index 2ea87defc4ebbb7af3100520e60c5f688badbea9..b3850792bf6093acc9a586839003d7b604f03a4b 100644
--- a/Common/Core/vtkCallbackCommand.cxx
+++ b/Common/Core/vtkCallbackCommand.cxx
@@ -16,6 +16,7 @@
 #include "vtkCallbackCommand.h"
 
 //----------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkCallbackCommand::vtkCallbackCommand()
 {
   this->ClientData = nullptr;
@@ -45,3 +46,4 @@ void vtkCallbackCommand::Execute(vtkObject* caller, unsigned long event, void* c
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkCallbackCommand.h b/Common/Core/vtkCallbackCommand.h
index a0fffac170567b03f527237e32880f8636e88b78..691afc3e31edb02c82acdf5740f8bc3931a494c0 100644
--- a/Common/Core/vtkCallbackCommand.h
+++ b/Common/Core/vtkCallbackCommand.h
@@ -41,6 +41,7 @@
 #include "vtkCommand.h"
 #include "vtkCommonCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkCallbackCommand : public vtkCommand
 {
 public:
@@ -90,6 +91,7 @@ protected:
   ~vtkCallbackCommand() override;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkCallbackCommand.h
diff --git a/Common/Core/vtkCharArray.cxx b/Common/Core/vtkCharArray.cxx
index 8f76b220018f93e02a666b2afd6401195163b3b8..04ce47aa77070a8e50667213f5302ed6acf91016 100644
--- a/Common/Core/vtkCharArray.cxx
+++ b/Common/Core/vtkCharArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(char);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCharArray);
 vtkStandardExtendedNewMacro(vtkCharArray);
 
@@ -36,3 +37,4 @@ void vtkCharArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkCharArray.h b/Common/Core/vtkCharArray.h
index 3f71b19c97653e632b0de4f7d18ad245f25d3c86..cbd7411c8680f4bf792ffbed01ff94c1b62d2e0b 100644
--- a/Common/Core/vtkCharArray.h
+++ b/Common/Core/vtkCharArray.h
@@ -45,6 +45,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<char>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkCharArray : public vtkDataArray
 {
 public:
@@ -95,4 +96,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkCharArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkCollection.cxx b/Common/Core/vtkCollection.cxx
index c5db36acf7f6ccbe8a35f0cad865291b97cd7910..c2b9c3924b539c415a17ed56d160ee63b524fdc3 100644
--- a/Common/Core/vtkCollection.cxx
+++ b/Common/Core/vtkCollection.cxx
@@ -22,6 +22,7 @@
 #include <cmath>
 #include <cstdlib>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCollection);
 
 // Construct with empty list.
@@ -344,3 +345,4 @@ void vtkCollection::ReportReferences(vtkGarbageCollector* collector)
     vtkGarbageCollectorReport(collector, elem->Item, "Element");
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkCollection.h b/Common/Core/vtkCollection.h
index 618873940f99769083da8ebc404fce575da14b8a..b3f3a2cc1e80adb218c1622057fac42a86bba01d 100644
--- a/Common/Core/vtkCollection.h
+++ b/Common/Core/vtkCollection.h
@@ -34,6 +34,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCollectionElement //;prevents pick-up by man page generator
 {
 public:
@@ -205,4 +206,5 @@ inline vtkObject* vtkCollection::GetNextItemAsObject(void*& cookie)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkCollectionIterator.cxx b/Common/Core/vtkCollectionIterator.cxx
index c0ea6c584c974fb8f1979188bb6a6edc1feea739..7cd6fd75f02242d54fd93d9b8f938f62f1041994 100644
--- a/Common/Core/vtkCollectionIterator.cxx
+++ b/Common/Core/vtkCollectionIterator.cxx
@@ -16,6 +16,7 @@
 #include "vtkCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCollectionIterator);
 
 //------------------------------------------------------------------------------
@@ -89,3 +90,4 @@ vtkObject* vtkCollectionIterator::GetCurrentObject()
   }
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkCollectionIterator.h b/Common/Core/vtkCollectionIterator.h
index 3e048164b41380f5a2c56bfebed502dced83780e..1925561c3043730a96d51d1a842e04eb647f1447 100644
--- a/Common/Core/vtkCollectionIterator.h
+++ b/Common/Core/vtkCollectionIterator.h
@@ -31,6 +31,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCollection;
 class vtkCollectionElement;
 
@@ -93,4 +94,5 @@ private:
   void operator=(const vtkCollectionIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkCollectionRange.h b/Common/Core/vtkCollectionRange.h
index 9ac161b03dd70ef083fee42e445267e1f4d01d27..17c5c486f947f17baaea832ea625f368f1f56074 100644
--- a/Common/Core/vtkCollectionRange.h
+++ b/Common/Core/vtkCollectionRange.h
@@ -27,6 +27,7 @@ namespace vtk
 {
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename CollectionType>
 struct CollectionRange;
@@ -227,6 +228,7 @@ private:
   vtkSmartPointer<CollectionType> Collection;
 };
 
+VTK_ABI_NAMESPACE_END
 }
 } // end namespace vtk::detail
 
diff --git a/Common/Core/vtkCommand.cxx b/Common/Core/vtkCommand.cxx
index c7fc1f2d6092798bc092b41cc23c59af028bd59e..8d64264cc0c9d17c2149009c0195c6b95009c5db 100644
--- a/Common/Core/vtkCommand.cxx
+++ b/Common/Core/vtkCommand.cxx
@@ -17,6 +17,7 @@
 #include "vtkDebugLeaks.h"
 
 //----------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkCommand::vtkCommand()
   : AbortFlag(0)
   , PassiveObserver(0)
@@ -110,3 +111,4 @@ const char* vtkCommand::GetDebugClassName() const
 {
   return "vtkCommand or subclass";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkCommand.h b/Common/Core/vtkCommand.h
index 0586c73056a2843703e3e268ef983ad186a63a39..e8c5239c541562b82d1977c44ab7ade04cd27097 100644
--- a/Common/Core/vtkCommand.h
+++ b/Common/Core/vtkCommand.h
@@ -391,6 +391,7 @@
   }
 
 // The superclass that all commands should be subclasses of
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkCommand : public vtkObjectBase
 {
 public:
@@ -481,6 +482,7 @@ private:
   const char* GetDebugClassName() const final;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkCommand_h */
 
 // VTK-HeaderTest-Exclude: vtkCommand.h
diff --git a/Common/Core/vtkCommonInformationKeyManager.cxx b/Common/Core/vtkCommonInformationKeyManager.cxx
index bdff30d53be250827d84e8ec23aaee55fbb3908e..53474360b87cd758ec033d3b6a4b70ea33a93b38 100644
--- a/Common/Core/vtkCommonInformationKeyManager.cxx
+++ b/Common/Core/vtkCommonInformationKeyManager.cxx
@@ -20,6 +20,7 @@
 
 // Subclass vector so we can directly call constructor.  This works
 // around problems on Borland C++.
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkCommonInformationKeyManagerKeysType : public std::vector<vtkInformationKey*>
 {
   typedef std::vector<vtkInformationKey*> Superclass;
@@ -92,3 +93,4 @@ void vtkCommonInformationKeyManager::ClassFinalize()
     vtkCommonInformationKeyManagerKeys = nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkCommonInformationKeyManager.h b/Common/Core/vtkCommonInformationKeyManager.h
index e75dba6c6e7c604430c55fd3ca2122ef5a9518f0..40d541f83bcc550dc862a3cff09ebfcd10d16dfb 100644
--- a/Common/Core/vtkCommonInformationKeyManager.h
+++ b/Common/Core/vtkCommonInformationKeyManager.h
@@ -30,6 +30,7 @@
 
 #include "vtkDebugLeaksManager.h" // DebugLeaks exists longer than info keys.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationKey;
 
 class VTKCOMMONCORE_EXPORT vtkCommonInformationKeyManager
@@ -61,5 +62,6 @@ private:
 // initialized before and destroyed after it is used.
 static vtkCommonInformationKeyManager vtkCommonInformationKeyManagerInstance;
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkCommonInformationKeyManager.h
diff --git a/Common/Core/vtkCreateArrayDispatchArrayList.cmake b/Common/Core/vtkCreateArrayDispatchArrayList.cmake
index 170459135c504462a92b921b6f1f434a56b34e05..bdeb9e36daf5fc4c6c37c3773f9afeb34da0839b 100644
--- a/Common/Core/vtkCreateArrayDispatchArrayList.cmake
+++ b/Common/Core/vtkCreateArrayDispatchArrayList.cmake
@@ -191,6 +191,7 @@ endforeach()
 list(APPEND temp
   "\n"
   "namespace vtkArrayDispatch {\n"
+  "VTK_ABI_NAMESPACE_BEGIN\n"
   "\n"
   "typedef vtkTypeList::Unique<\n"
   "  vtkTypeList::Create<\n"
@@ -208,8 +209,9 @@ list(APPEND temp
   "  >\n"
   ">::Result Arrays\;\n"
   "\n"
-  "} // end namespace vtkArrayDispatch\n"
+  "VTK_ABI_NAMESPACE_END\n"
   "\n"
+  "} // end namespace vtkArrayDispatch\n"
   "#endif // vtkArrayDispatchArrayList_h\n"
 )
 
diff --git a/Common/Core/vtkCriticalSection.cxx b/Common/Core/vtkCriticalSection.cxx
index 8dc40338aed6d044048a1b0e39bbde266e80de73..b3c092de63344b300a4cec4c86365bdddbd96a33 100644
--- a/Common/Core/vtkCriticalSection.cxx
+++ b/Common/Core/vtkCriticalSection.cxx
@@ -21,9 +21,11 @@
 #include "vtkCriticalSection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCriticalSection);
 
 void vtkCriticalSection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkCriticalSection.h b/Common/Core/vtkCriticalSection.h
index ec3b284bd3e6eaddc34fe2ff39acc6384ea6c877..d678ce2e9be85cc5e684e44f811d5366151cea12 100644
--- a/Common/Core/vtkCriticalSection.h
+++ b/Common/Core/vtkCriticalSection.h
@@ -41,6 +41,7 @@
 #include "vtkObject.h"
 #include <mutex> // for std::mutex
 
+VTK_ABI_NAMESPACE_BEGIN
 // Remove with VTK_DEPRECATED_IN_9_2_0 because it was not actually deprecated
 // in 9.1.0.
 class VTK_DEPRECATED_IN_9_1_0("Use std::mutex instead") VTKCOMMONCORE_EXPORT vtkCriticalSection
@@ -82,6 +83,7 @@ inline void vtkCriticalSection::Unlock()
   this->mtx.unlock();
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkCriticalSection.h
diff --git a/Common/Core/vtkDataArray.cxx b/Common/Core/vtkDataArray.cxx
index ac9a5c28a6a3872bb106d3135ecafd669f2d1d56..0c526bd2df64fb79129f6df1d09d4eb683e6b174 100644
--- a/Common/Core/vtkDataArray.cxx
+++ b/Common/Core/vtkDataArray.cxx
@@ -442,6 +442,8 @@ bool hasValidKey(InfoType info, KeyType key, ComponentKeyType ckey, double range
 
 } // end anon namespace
 
+VTK_ABI_NAMESPACE_BEGIN
+
 vtkInformationKeyRestrictedMacro(vtkDataArray, COMPONENT_RANGE, DoubleVector, 2);
 vtkInformationKeyRestrictedMacro(vtkDataArray, L2_NORM_RANGE, DoubleVector, 2);
 vtkInformationKeyRestrictedMacro(vtkDataArray, L2_NORM_FINITE_RANGE, DoubleVector, 2);
@@ -1488,6 +1490,7 @@ void vtkDataArray::Fill(double value)
     this->FillComponent(i, value);
   }
 }
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -1520,6 +1523,7 @@ struct CopyComponentWorker
 };
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 void vtkDataArray::CopyComponent(int dstComponent, vtkDataArray* src, int srcComponent)
 {
@@ -1760,6 +1764,7 @@ void vtkDataArray::Modified()
   }
   this->Superclass::Modified();
 }
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -1864,6 +1869,7 @@ struct FiniteVectorRangeDispatchWrapper
 
 } // end anon namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 bool vtkDataArray::ComputeScalarRange(double* ranges)
 {
@@ -2078,3 +2084,4 @@ void vtkDataArray::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "LookupTable: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkDataArray.h b/Common/Core/vtkDataArray.h
index 3376cd031ec2bbf104d5ca12876810ec944efe49..c244b0e15a972eef7a209e012316675c53d97e6e 100644
--- a/Common/Core/vtkDataArray.h
+++ b/Common/Core/vtkDataArray.h
@@ -39,6 +39,7 @@
 #include "vtkCommonCoreModule.h"          // For export macro
 #include "vtkVTK_USE_SCALED_SOA_ARRAYS.h" // For #define of VTK_USE_SCALED_SOA_ARRAYS
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkIdList;
 class vtkInformationStringKey;
@@ -708,17 +709,20 @@ inline vtkDataArray* vtkDataArray::FastDownCast(vtkAbstractArray* source)
 }
 
 vtkArrayDownCast_FastCastMacro(vtkDataArray);
+VTK_ABI_NAMESPACE_END
 
 // These are used by vtkDataArrayPrivate.txx, but need to be available to
 // vtkGenericDataArray.h as well.
 namespace vtkDataArrayPrivate
 {
+VTK_ABI_NAMESPACE_BEGIN
 struct AllValues
 {
 };
 struct FiniteValues
 {
 };
+VTK_ABI_NAMESPACE_END
 }
 
 #endif
diff --git a/Common/Core/vtkDataArrayAccessor.h b/Common/Core/vtkDataArrayAccessor.h
index d25d8efdf0d505703b1e56879009e6f0c81801a8..c2224a4be232d9f3093d437b2123420b7f49017d 100644
--- a/Common/Core/vtkDataArrayAccessor.h
+++ b/Common/Core/vtkDataArrayAccessor.h
@@ -101,6 +101,7 @@
 #define vtkDataArrayAccessor_h
 
 // Generic form for all (non-bit) vtkDataArray subclasses.
+VTK_ABI_NAMESPACE_BEGIN
 template <typename ArrayT>
 struct vtkDataArrayAccessor
 {
@@ -199,5 +200,6 @@ struct vtkDataArrayAccessor<vtkDataArray>
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkDataArrayAccessor_h
 // VTK-HeaderTest-Exclude: vtkDataArrayAccessor.h
diff --git a/Common/Core/vtkDataArrayCollection.cxx b/Common/Core/vtkDataArrayCollection.cxx
index 63071e73983291c0023fcd2a5c9ce01d16059fe3..aa43cea02d58ef423def42153990609c1aedf821 100644
--- a/Common/Core/vtkDataArrayCollection.cxx
+++ b/Common/Core/vtkDataArrayCollection.cxx
@@ -15,9 +15,11 @@
 #include "vtkDataArrayCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataArrayCollection);
 
 void vtkDataArrayCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkDataArrayCollection.h b/Common/Core/vtkDataArrayCollection.h
index a3870c14ffa26ae32fab2c45dbb24453804f2aff..69da96d73bae792847735cbc540c344d5c457aa3 100644
--- a/Common/Core/vtkDataArrayCollection.h
+++ b/Common/Core/vtkDataArrayCollection.h
@@ -28,6 +28,7 @@
 
 #include "vtkDataArray.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkDataArrayCollection : public vtkCollection
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkDataArrayCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkDataArrayCollectionIterator.cxx b/Common/Core/vtkDataArrayCollectionIterator.cxx
index d8bebdec1d882110f24b4cbcc6dd8c3d3d85aca3..9c9c7d5ec4b2188b4f6f08efac36fa9c56587365 100644
--- a/Common/Core/vtkDataArrayCollectionIterator.cxx
+++ b/Common/Core/vtkDataArrayCollectionIterator.cxx
@@ -17,6 +17,7 @@
 #include "vtkDataArrayCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataArrayCollectionIterator);
 
 //------------------------------------------------------------------------------
@@ -59,3 +60,4 @@ vtkDataArray* vtkDataArrayCollectionIterator::GetDataArray()
 {
   return static_cast<vtkDataArray*>(this->GetCurrentObject());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkDataArrayCollectionIterator.h b/Common/Core/vtkDataArrayCollectionIterator.h
index 0fb26728ffd3546ac05e3c0c527736d3bce8dc17..67e1aee69abdc5bf601fe2d695d6796c7141efc7 100644
--- a/Common/Core/vtkDataArrayCollectionIterator.h
+++ b/Common/Core/vtkDataArrayCollectionIterator.h
@@ -27,6 +27,7 @@
 #include "vtkCollectionIterator.h"
 #include "vtkCommonCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkDataArrayCollection;
 
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkDataArrayCollectionIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkDataArrayMeta.h b/Common/Core/vtkDataArrayMeta.h
index 376244bdfdd9847681aedda5909fc95974e02abe..6e14192126d8b42f7d12a9c365bbc01257136d5f 100644
--- a/Common/Core/vtkDataArrayMeta.h
+++ b/Common/Core/vtkDataArrayMeta.h
@@ -58,19 +58,24 @@
 VTK_ITER_OPTIMIZE_START
 
 // For IsAOSDataArray:
+VTK_ABI_NAMESPACE_BEGIN
 template <typename ValueType>
 class vtkAOSDataArrayTemplate;
+VTK_ABI_NAMESPACE_END
 
 namespace vtk
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Typedef for data array indices:
 using ComponentIdType = int;
 using TupleIdType = vtkIdType;
 using ValueIdType = vtkIdType;
+VTK_ABI_NAMESPACE_END
 
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 // Used by ranges/iterators when tuple size is unknown at compile time
@@ -180,16 +185,22 @@ struct GetAPITypeImpl<vtkDataArray>
   using APIType = double;
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace detail
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //------------------------------------------------------------------------------
 // Typedef for double if vtkDataArray, or the array's ValueType for subclasses.
 template <typename ArrayType, typename = detail::EnableIfVtkDataArray<ArrayType>>
 using GetAPIType = typename detail::GetAPITypeImpl<ArrayType>::APIType;
 
+VTK_ABI_NAMESPACE_END
+
 //------------------------------------------------------------------------------
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename ArrayType>
 struct IsAOSDataArrayImpl
@@ -198,13 +209,16 @@ struct IsAOSDataArrayImpl
   static constexpr bool value = std::is_base_of<vtkAOSDataArrayTemplate<APIType>, ArrayType>::value;
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace detail
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 // True if ArrayType inherits some specialization of vtkAOSDataArrayTemplate
 template <typename ArrayType>
 using IsAOSDataArray = std::integral_constant<bool, detail::IsAOSDataArrayImpl<ArrayType>::value>;
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtk
 
 VTK_ITER_OPTIMIZE_END
diff --git a/Common/Core/vtkDataArrayPrivate.txx b/Common/Core/vtkDataArrayPrivate.txx
index 89c0a92f0052abf4b638ca2f5950c7d659918095..7cbf636694161e0cb403e8a2d38d49e43d900561 100644
--- a/Common/Core/vtkDataArrayPrivate.txx
+++ b/Common/Core/vtkDataArrayPrivate.txx
@@ -33,6 +33,7 @@
 
 namespace vtkDataArrayPrivate
 {
+VTK_ABI_NAMESPACE_BEGIN
 #if (defined(_MSC_VER) && (_MSC_VER < 2000)) ||                                                    \
   (defined(__INTEL_COMPILER) && (__INTEL_COMPILER < 1700))
 namespace msvc
@@ -634,6 +635,7 @@ bool DoComputeVectorRange(ArrayT* array, RangeValueType range[2], FiniteValues,
   return true;
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtkDataArrayPrivate
 #endif // VTK_GDA_TEMPLATE_EXTERN
 #endif
diff --git a/Common/Core/vtkDataArrayRange.h b/Common/Core/vtkDataArrayRange.h
index b38b1a7e49724ed220e2f605d2999d9a59228fb4..eca64c9c0e5a017d518c36553cd2c13dbe32fabd 100644
--- a/Common/Core/vtkDataArrayRange.h
+++ b/Common/Core/vtkDataArrayRange.h
@@ -97,9 +97,9 @@ VTK_ITER_OPTIMIZE_START
 
 namespace vtk
 {
-
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Internal detail: This utility is not directly needed by users of
 // DataArrayRange.
@@ -147,6 +147,7 @@ public:
       TupleSize>(std::declval<ArrayType*>()))>::type;
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace detail
 
 /**
@@ -253,6 +254,7 @@ public:
  * }
  * ```
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <ComponentIdType TupleSize = detail::DynamicTupleSize,
   typename ArrayTypePtr = vtkDataArray*>
 VTK_ITER_INLINE auto DataArrayTupleRange(const ArrayTypePtr& array, TupleIdType start = -1,
@@ -375,6 +377,7 @@ VTK_ITER_INLINE auto DataArrayValueRange(const ArrayTypePtr& array, ValueIdType
   return RangeType(array, start < 0 ? 0 : start, end < 0 ? array->GetNumberOfValues() : end);
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtk
 
 VTK_ITER_OPTIMIZE_END
diff --git a/Common/Core/vtkDataArraySelection.cxx b/Common/Core/vtkDataArraySelection.cxx
index 78af95b5cabc5d4227c8be13083063eed6e0cdfa..c80b0f4757fe8585b5e3f2c3ef6023bab80a2f1f 100644
--- a/Common/Core/vtkDataArraySelection.cxx
+++ b/Common/Core/vtkDataArraySelection.cxx
@@ -20,6 +20,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataArraySelection);
 
 class vtkDataArraySelection::vtkInternals
@@ -402,3 +403,4 @@ void vtkDataArraySelection::Union(vtkDataArraySelection* other, bool skipModifie
     this->Modified();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkDataArraySelection.h b/Common/Core/vtkDataArraySelection.h
index da14e00a405a3b718d9171f5bf336855cf7d70ec..b0e6d542b1410fd42b00cb7746d6f2332b52f617 100644
--- a/Common/Core/vtkDataArraySelection.h
+++ b/Common/Core/vtkDataArraySelection.h
@@ -41,6 +41,7 @@
 
 #include <memory> // for std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkDataArraySelection : public vtkObject
 {
 public:
@@ -247,4 +248,5 @@ private:
   int UnknownArraySetting;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkDataArrayTupleRange_AOS.h b/Common/Core/vtkDataArrayTupleRange_AOS.h
index 0ad04f9099e03c391c8ea461d96b79ce5ce265af..37a52b20826539432ae1534ab43a15b0cf18e000 100644
--- a/Common/Core/vtkDataArrayTupleRange_AOS.h
+++ b/Common/Core/vtkDataArrayTupleRange_AOS.h
@@ -36,9 +36,9 @@ VTK_ITER_OPTIMIZE_START
 
 namespace vtk
 {
-
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Forward decs for friends/args
 template <typename ArrayType, ComponentIdType>
@@ -988,6 +988,7 @@ template <typename ArrayType, ComponentIdType TupleSize,
   typename = typename std::enable_if<IsAOSDataArray<ArrayType>::value>::type>
 TupleRange<AOSArrayType, TupleSize> DeclareTupleRangeSpecialization(ArrayType*);
 
+VTK_ABI_NAMESPACE_END
 } // end namespace detail
 } // end namespace vtk
 
diff --git a/Common/Core/vtkDataArrayTupleRange_Generic.h b/Common/Core/vtkDataArrayTupleRange_Generic.h
index a54071acbc9b41d97229da5c9d48c7dbee20a89a..acdf4af3cbf6fb1e74f8a564b4004185819034a0 100644
--- a/Common/Core/vtkDataArrayTupleRange_Generic.h
+++ b/Common/Core/vtkDataArrayTupleRange_Generic.h
@@ -33,9 +33,9 @@ VTK_ITER_OPTIMIZE_START
 
 namespace vtk
 {
-
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Forward decs for friends/args
 template <typename ArrayType, ComponentIdType>
@@ -1743,6 +1743,7 @@ private:
 template <typename ArrayType, ComponentIdType TupleSize>
 TupleRange<ArrayType, TupleSize> DeclareTupleRangeSpecialization(vtkDataArray*);
 
+VTK_ABI_NAMESPACE_END
 } // end namespace detail
 } // end namespace vtk
 
diff --git a/Common/Core/vtkDataArrayValueRange_AOS.h b/Common/Core/vtkDataArrayValueRange_AOS.h
index 7a9ac07bfe265f956d84487c245217463c8a8f09..809848a9c458669d64792edabfc2f9fd3c0d38c3 100644
--- a/Common/Core/vtkDataArrayValueRange_AOS.h
+++ b/Common/Core/vtkDataArrayValueRange_AOS.h
@@ -36,9 +36,9 @@ VTK_ITER_OPTIMIZE_START
 
 namespace vtk
 {
-
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 // ValueRange
@@ -155,6 +155,7 @@ template <typename ArrayType, ComponentIdType TupleSize,
   typename = typename std::enable_if<IsAOSDataArray<ArrayType>::value>::type>
 ValueRange<AOSArrayType, TupleSize> DeclareValueRangeSpecialization(ArrayType*);
 
+VTK_ABI_NAMESPACE_END
 }
 } // end namespace vtk::detail
 
diff --git a/Common/Core/vtkDataArrayValueRange_Generic.h b/Common/Core/vtkDataArrayValueRange_Generic.h
index 661076a4ead7d8dbd513d00e5c83fe6a368d06cb..4f53a936799f8c61b44a157c05eadac5cd24d11b 100644
--- a/Common/Core/vtkDataArrayValueRange_Generic.h
+++ b/Common/Core/vtkDataArrayValueRange_Generic.h
@@ -33,9 +33,9 @@ VTK_ITER_OPTIMIZE_START
 
 namespace vtk
 {
-
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Forward decs for friends/args
 template <typename ArrayType, ComponentIdType>
@@ -952,6 +952,7 @@ private:
 template <typename ArrayType, ComponentIdType TupleSize>
 ValueRange<ArrayType, TupleSize> DeclareValueRangeSpecialization(vtkDataArray*);
 
+VTK_ABI_NAMESPACE_END
 } // end namespace detail
 } // end namespace vtk
 
diff --git a/Common/Core/vtkDebugLeaks.cxx b/Common/Core/vtkDebugLeaks.cxx
index 1856433bc2c8fd06ccfb37afabbd879e7b0a7635..04ce776e4b2dba05c97a47b73ef9e0a23df8e730 100644
--- a/Common/Core/vtkDebugLeaks.cxx
+++ b/Common/Core/vtkDebugLeaks.cxx
@@ -30,6 +30,7 @@
 #include <unordered_map>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 static const char* vtkDebugLeaksIgnoreClasses[] = { nullptr };
 
 //------------------------------------------------------------------------------
@@ -456,3 +457,4 @@ int vtkDebugLeaks::ExitError;
 
 // Purposely not initialized.  ClassInitialize will handle it.
 vtkDebugLeaksObserver* vtkDebugLeaks::Observer;
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkDebugLeaks.h b/Common/Core/vtkDebugLeaks.h
index be4c1577f33270de35be0901a0b7e17b811e68db..f494906afbdc8348972bab0c893de9edf389d138 100644
--- a/Common/Core/vtkDebugLeaks.h
+++ b/Common/Core/vtkDebugLeaks.h
@@ -57,6 +57,7 @@
 
 #include <mutex> // for std::mutex
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDebugLeaksHashTable;
 class vtkDebugLeaksTraceManager;
 class vtkDebugLeaksObserver;
@@ -143,4 +144,5 @@ public:
   virtual void DestructingObject(vtkObjectBase*) = 0;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkDebugLeaks_h
diff --git a/Common/Core/vtkDebugLeaksManager.cxx b/Common/Core/vtkDebugLeaksManager.cxx
index 4575255af46471fd50c0a86130ac7f7a11974c3f..a82f19dc358f1bd05d7f21ca5262fde31c6037cb 100644
--- a/Common/Core/vtkDebugLeaksManager.cxx
+++ b/Common/Core/vtkDebugLeaksManager.cxx
@@ -24,6 +24,7 @@
 
 // Must NOT be initialized.  Default initialization to zero is
 // necessary.
+VTK_ABI_NAMESPACE_BEGIN
 static unsigned int vtkDebugLeaksManagerCount;
 
 vtkDebugLeaksManager::vtkDebugLeaksManager()
@@ -45,3 +46,4 @@ vtkDebugLeaksManager::~vtkDebugLeaksManager()
 #if defined(_MSC_VER)
 #pragma optimize("g", on)
 #endif
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkDebugLeaksManager.h b/Common/Core/vtkDebugLeaksManager.h
index 546a28ce7c84b401a37a09094ca17dc24ee6c993..4be874b05f26af3c5217ca31823627c6c70bccde 100644
--- a/Common/Core/vtkDebugLeaksManager.h
+++ b/Common/Core/vtkDebugLeaksManager.h
@@ -28,6 +28,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkSystemIncludes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkDebugLeaksManager
 {
 public:
@@ -45,5 +46,6 @@ private:
 // static object destroyed.
 static vtkDebugLeaksManager vtkDebugLeaksManagerInstance;
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkDebugLeaksManager.h
diff --git a/Common/Core/vtkDenseArray.h b/Common/Core/vtkDenseArray.h
index 2c49676d6a69beea3268828aac0fb1c5866b7d1a..a2b3708def1c1b08f7402f6b1ad425a86043b9d9 100644
--- a/Common/Core/vtkDenseArray.h
+++ b/Common/Core/vtkDenseArray.h
@@ -50,6 +50,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkTypedArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 class vtkDenseArray : public vtkTypedArray<T>
 {
@@ -229,6 +230,7 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkDenseArray.txx"
 
 #endif
diff --git a/Common/Core/vtkDenseArray.txx b/Common/Core/vtkDenseArray.txx
index 578703a45f92473bd4543466f417652ef14dd8db..c2582bdf7b3edb72d8ee16fdb5f10a045b723c16 100644
--- a/Common/Core/vtkDenseArray.txx
+++ b/Common/Core/vtkDenseArray.txx
@@ -27,6 +27,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // vtkDenseArray::MemoryBlock
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 vtkDenseArray<T>::MemoryBlock::~MemoryBlock() = default;
 
@@ -370,4 +371,5 @@ void vtkDenseArray<T>::Reconfigure(const vtkArrayExtents& extents, MemoryBlock*
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkDoubleArray.cxx b/Common/Core/vtkDoubleArray.cxx
index ca1df9635df287e3e086b847628c0e0528e3ccda..e321be3aadad35fb8b9cd7fabdc76581ac26a14b 100644
--- a/Common/Core/vtkDoubleArray.cxx
+++ b/Common/Core/vtkDoubleArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(double);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDoubleArray);
 vtkStandardExtendedNewMacro(vtkDoubleArray);
 
@@ -36,3 +37,4 @@ void vtkDoubleArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkDoubleArray.h b/Common/Core/vtkDoubleArray.h
index aaa9dea9511c6c9945eeca3bd7e109077f75ccfd..79d85b88ee4ae425e141e03f36ddc6ee7c0dc58d 100644
--- a/Common/Core/vtkDoubleArray.h
+++ b/Common/Core/vtkDoubleArray.h
@@ -32,6 +32,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<double>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkDoubleArray : public vtkDataArray
 {
 public:
@@ -82,4 +83,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkDoubleArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkDynamicLoader.cxx b/Common/Core/vtkDynamicLoader.cxx
index 960cebbd307a2417a5dbeefb8c7879ad29cee6e1..a487e8980a42d4571e97848c91a8f2fda34b6487 100644
--- a/Common/Core/vtkDynamicLoader.cxx
+++ b/Common/Core/vtkDynamicLoader.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkDynamicLoader* vtkDynamicLoader::New()
 {
   VTK_STANDARD_NEW_BODY(vtkDynamicLoader);
@@ -70,3 +71,4 @@ const char* vtkDynamicLoader::LastError()
 {
   return vtksys::DynamicLoader::LastError();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkDynamicLoader.h b/Common/Core/vtkDynamicLoader.h
index 1859e99a5aaaf7048d9c1b1610f7ac69d7a17a72..1d91e7f2da2d853d3683fa8b4833f9b9e744cf7e 100644
--- a/Common/Core/vtkDynamicLoader.h
+++ b/Common/Core/vtkDynamicLoader.h
@@ -32,6 +32,7 @@
 typedef vtksys::DynamicLoader::LibraryHandle vtkLibHandle;
 typedef vtksys::DynamicLoader::SymbolPointer vtkSymbolPointer;
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkDynamicLoader : public vtkObject
 {
 public:
@@ -82,4 +83,5 @@ private:
   void operator=(const vtkDynamicLoader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkEventData.h b/Common/Core/vtkEventData.h
index 8ce24acc220a55b1b7d2206dfec6147ad366d137..2aa33337ab12fae5384181ea36e0ca017ae3f0fb 100644
--- a/Common/Core/vtkEventData.h
+++ b/Common/Core/vtkEventData.h
@@ -22,6 +22,7 @@
 #include "vtkCommand.h"
 
 // enumeration of possible devices
+VTK_ABI_NAMESPACE_BEGIN
 enum class vtkEventDataDevice
 {
   Unknown = -1,
@@ -245,6 +246,7 @@ private:
   void operator=(const vtkEventDataDevice3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkEventData.h
diff --git a/Common/Core/vtkEventForwarderCommand.cxx b/Common/Core/vtkEventForwarderCommand.cxx
index b98f025752cf50ea1b6742934994661aae3bcb32..fcf8ee83d464e163b1ba9a467f816a3c4a8cc0b8 100644
--- a/Common/Core/vtkEventForwarderCommand.cxx
+++ b/Common/Core/vtkEventForwarderCommand.cxx
@@ -17,6 +17,7 @@
 #include "vtkObject.h"
 
 //----------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkEventForwarderCommand::vtkEventForwarderCommand()
 {
   this->Target = nullptr;
@@ -30,3 +31,4 @@ void vtkEventForwarderCommand::Execute(vtkObject*, unsigned long event, void* ca
     this->Target->InvokeEvent(event, call_data);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkEventForwarderCommand.h b/Common/Core/vtkEventForwarderCommand.h
index df47aeee693c1490daac0a63bceed33181646d0f..66c2377591b1dd4646949a612c8895f9c4ac561c 100644
--- a/Common/Core/vtkEventForwarderCommand.h
+++ b/Common/Core/vtkEventForwarderCommand.h
@@ -31,6 +31,7 @@
 #include "vtkCommand.h"
 #include "vtkCommonCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkEventForwarderCommand : public vtkCommand
 {
 public:
@@ -60,6 +61,7 @@ protected:
   ~vtkEventForwarderCommand() override = default;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkEventForwarderCommand_h */
 
 // VTK-HeaderTest-Exclude: vtkEventForwarderCommand.h
diff --git a/Common/Core/vtkFileOutputWindow.cxx b/Common/Core/vtkFileOutputWindow.cxx
index 679804929af40343a1fef656bef3059fa11ded96..ead9e370784c63af04a482d564423025c5e99bfe 100644
--- a/Common/Core/vtkFileOutputWindow.cxx
+++ b/Common/Core/vtkFileOutputWindow.cxx
@@ -16,6 +16,7 @@
 #include "vtkObjectFactory.h"
 #include "vtksys/FStream.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFileOutputWindow);
 
 vtkFileOutputWindow::vtkFileOutputWindow()
@@ -73,3 +74,4 @@ void vtkFileOutputWindow::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Append: " << (this->Append ? "On" : "Off") << endl;
   os << indent << "Flush: " << (this->Flush ? "On" : "Off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkFileOutputWindow.h b/Common/Core/vtkFileOutputWindow.h
index 0aa41f696742995b7c37575bc0bd900dea6b766f..8207c9dfcc82c1c8cb4375bfd16970b9367c414c 100644
--- a/Common/Core/vtkFileOutputWindow.h
+++ b/Common/Core/vtkFileOutputWindow.h
@@ -27,6 +27,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkOutputWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkFileOutputWindow : public vtkOutputWindow
 {
 public:
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkFileOutputWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkFloatArray.cxx b/Common/Core/vtkFloatArray.cxx
index fbfda62664a167e1c8655959336966a01395c950..0a52b5e1a89c23023c415832dc418b7796d1e74f 100644
--- a/Common/Core/vtkFloatArray.cxx
+++ b/Common/Core/vtkFloatArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(float);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFloatArray);
 vtkStandardExtendedNewMacro(vtkFloatArray);
 
@@ -36,3 +37,4 @@ void vtkFloatArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkFloatArray.h b/Common/Core/vtkFloatArray.h
index 76028de7bff9f71125fb9bf2842dfe1e50fa8448..4304a22b2260462ee8a3c41a02918eae7cf034cd 100644
--- a/Common/Core/vtkFloatArray.h
+++ b/Common/Core/vtkFloatArray.h
@@ -32,6 +32,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<float>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkFloatArray : public vtkDataArray
 {
 public:
@@ -83,4 +84,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkFloatArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkFloatingPointExceptions.cxx b/Common/Core/vtkFloatingPointExceptions.cxx
index b3f45d87c0482ac92aa6cb7283d3b5a54bb3793b..d76768030b58524a93e3f416e67d2915d62cae36 100644
--- a/Common/Core/vtkFloatingPointExceptions.cxx
+++ b/Common/Core/vtkFloatingPointExceptions.cxx
@@ -47,6 +47,7 @@ void signal_handler(int signal)
 //------------------------------------------------------------------------------
 // Description:
 // Enable floating point exceptions.
+VTK_ABI_NAMESPACE_BEGIN
 void vtkFloatingPointExceptions::Enable()
 {
 #ifdef _MSC_VER
@@ -76,3 +77,4 @@ void vtkFloatingPointExceptions::Disable()
   fedisableexcept(FE_DIVBYZERO | FE_INVALID);
 #endif
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkFloatingPointExceptions.h b/Common/Core/vtkFloatingPointExceptions.h
index 50957f37dd02af7b4099ed12abc196065e986da8..5a39b14484862061178df08ac4a30d59761d4d77 100644
--- a/Common/Core/vtkFloatingPointExceptions.h
+++ b/Common/Core/vtkFloatingPointExceptions.h
@@ -29,6 +29,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkSystemIncludes.h"   // For VTKCOMMONCORE_EXPORT
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkFloatingPointExceptions
 {
 public:
@@ -48,5 +49,6 @@ private:
   void operator=(const vtkFloatingPointExceptions&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkFloatingPointExceptions.h
diff --git a/Common/Core/vtkGarbageCollector.cxx b/Common/Core/vtkGarbageCollector.cxx
index c65a320d696b111e73f529224c66d1f9ca9bf4c9..87d0a088ec402e9003f0762e6999d2c4b43355ff 100644
--- a/Common/Core/vtkGarbageCollector.cxx
+++ b/Common/Core/vtkGarbageCollector.cxx
@@ -36,6 +36,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGarbageCollector);
 
 #if VTK_GARBAGE_COLLECTOR_HASH
@@ -1065,3 +1066,4 @@ void vtkGarbageCollectorReport(
 {
   ptr.Report(collector, desc);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkGarbageCollector.h b/Common/Core/vtkGarbageCollector.h
index d8b0b345ee92d9ebad532a7c656587eacb8bd72a..48dfedf95618dbca524ef1e888962fff7b0e53db 100644
--- a/Common/Core/vtkGarbageCollector.h
+++ b/Common/Core/vtkGarbageCollector.h
@@ -78,6 +78,7 @@
 
 // This function is a friend of the collector so that it can call the
 // internal report method.
+VTK_ABI_NAMESPACE_BEGIN
 void VTKCOMMONCORE_EXPORT vtkGarbageCollectorReportInternal(
   vtkGarbageCollector*, vtkObjectBase*, void*, const char*);
 
@@ -199,4 +200,5 @@ void vtkGarbageCollectorReport(vtkGarbageCollector* collector, T*& ptr, const ch
   vtkGarbageCollectorReportInternal(collector, ptr, &ptr, desc);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkGarbageCollectorManager.cxx b/Common/Core/vtkGarbageCollectorManager.cxx
index 9776b2ea4e134f6fa1ab1a36d7097615cb2b559e..5e63ee4f20589fff7f039f3d015f26301fce59d2 100644
--- a/Common/Core/vtkGarbageCollectorManager.cxx
+++ b/Common/Core/vtkGarbageCollectorManager.cxx
@@ -18,6 +18,7 @@
 
 // Must NOT be initialized.  Default initialization to zero is
 // necessary.
+VTK_ABI_NAMESPACE_BEGIN
 static unsigned int vtkGarbageCollectorManagerCount;
 
 vtkGarbageCollectorManager::vtkGarbageCollectorManager()
@@ -35,3 +36,4 @@ vtkGarbageCollectorManager::~vtkGarbageCollectorManager()
     vtkGarbageCollector::ClassFinalize();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkGarbageCollectorManager.h b/Common/Core/vtkGarbageCollectorManager.h
index 8ebe5ba6286cf97e8143965440e511f859f6e7f5..9b0af9e5a01cb8d230dfe40741afd4b35abf26b5 100644
--- a/Common/Core/vtkGarbageCollectorManager.h
+++ b/Common/Core/vtkGarbageCollectorManager.h
@@ -31,6 +31,7 @@
 #include "vtkDebugLeaksManager.h" // DebugLeaks is around longer than
                                   // the garbage collector.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkGarbageCollectorManager
 {
 public:
@@ -48,5 +49,6 @@ private:
 // it is done being used.
 static vtkGarbageCollectorManager vtkGarbageCollectorManagerInstance;
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkGarbageCollectorManager.h
diff --git a/Common/Core/vtkGaussianRandomSequence.cxx b/Common/Core/vtkGaussianRandomSequence.cxx
index 2097b2665c27405806493d58990616830836b599..c16c4f4ca5196e89c1122cfd6805ba30206f8091 100644
--- a/Common/Core/vtkGaussianRandomSequence.cxx
+++ b/Common/Core/vtkGaussianRandomSequence.cxx
@@ -14,6 +14,7 @@
 #include "vtkGaussianRandomSequence.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkGaussianRandomSequence::vtkGaussianRandomSequence() = default;
 
 //------------------------------------------------------------------------------
@@ -37,3 +38,4 @@ void vtkGaussianRandomSequence::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkGaussianRandomSequence.h b/Common/Core/vtkGaussianRandomSequence.h
index b821954dee2c79c4838ea95090e6640c60d9ccf3..7a19c5555bcdb06024205b277d1944a21e7f9e58 100644
--- a/Common/Core/vtkGaussianRandomSequence.h
+++ b/Common/Core/vtkGaussianRandomSequence.h
@@ -28,6 +28,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkRandomSequence.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkGaussianRandomSequence : public vtkRandomSequence
 {
 public:
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkGaussianRandomSequence&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // #ifndef vtkGaussianRandomSequence_h
diff --git a/Common/Core/vtkGenericDataArray.cxx b/Common/Core/vtkGenericDataArray.cxx
index 4f2ff0d99cd5fe4a6ba99bb1a048c51faf4fdcef..9eb1f0d06a735cbe82b4da160c0bd3c7593d9cc0 100644
--- a/Common/Core/vtkGenericDataArray.cxx
+++ b/Common/Core/vtkGenericDataArray.cxx
@@ -25,5 +25,7 @@
 
 namespace vtkDataArrayPrivate
 {
+VTK_ABI_NAMESPACE_BEGIN
 VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkDataArray, double)
+VTK_ABI_NAMESPACE_END
 } // namespace vtkDataArrayPrivate
diff --git a/Common/Core/vtkGenericDataArray.h b/Common/Core/vtkGenericDataArray.h
index 7842b1b4e671a529bf7259b465e2cf673af36058..1aa0f4aa3a91a4772973e3e4e458d1b152b96576 100644
--- a/Common/Core/vtkGenericDataArray.h
+++ b/Common/Core/vtkGenericDataArray.h
@@ -75,6 +75,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class DerivedT, class ValueTypeT>
 class vtkGenericDataArray : public vtkDataArray
 {
@@ -426,10 +427,12 @@ private:
   vtkGenericDataArray(const vtkGenericDataArray&) = delete;
   void operator=(const vtkGenericDataArray&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 // these predeclarations are needed before the .txx include for MinGW
 namespace vtkDataArrayPrivate
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename A, typename R, typename T>
 bool DoComputeScalarRange(A*, R*, T, const unsigned char* ghosts, unsigned char ghostsToSkip);
 template <typename A, typename R>
@@ -438,6 +441,7 @@ bool DoComputeVectorRange(
 template <typename A, typename R>
 bool DoComputeVectorRange(
   A*, R[2], FiniteValues, const unsigned char* ghosts, unsigned char ghostsToSkip);
+VTK_ABI_NAMESPACE_END
 } // namespace vtkDataArrayPrivate
 
 #include "vtkGenericDataArray.txx"
@@ -475,6 +479,7 @@ public:
 #ifdef VTK_GDA_VALUERANGE_INSTANTIATING
 
 // Forward declare necessary stuffs:
+VTK_ABI_NAMESPACE_BEGIN
 template <typename ValueType>
 class vtkAOSDataArrayTemplate;
 template <typename ValueType>
@@ -484,6 +489,7 @@ class vtkSOADataArrayTemplate;
 template <typename ValueType>
 class vtkScaledSOADataArrayTemplate;
 #endif
+VTK_ABI_NAMESPACE_END
 
 #define VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(ArrayType, ValueType)                                 \
   template VTKCOMMONCORE_EXPORT bool DoComputeScalarRange(                                         \
@@ -521,6 +527,7 @@ class vtkScaledSOADataArrayTemplate;
 #pragma warning(disable : 4910) // extern and dllexport incompatible
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 // Forward declare necessary stuffs:
 template <typename ValueType>
 class vtkAOSDataArrayTemplate;
@@ -531,9 +538,11 @@ class vtkSOADataArrayTemplate;
 template <typename ValueType>
 class vtkScaledSOADataArrayTemplate;
 #endif
+VTK_ABI_NAMESPACE_END
 
 namespace vtkDataArrayPrivate
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename A, typename R, typename T>
 bool DoComputeScalarRange(A*, R*, T, const unsigned char* ghosts, unsigned char ghostsToSkip);
 template <typename A, typename R>
@@ -542,6 +551,7 @@ bool DoComputeVectorRange(
 template <typename A, typename R>
 bool DoComputeVectorRange(
   A*, R[2], FiniteValues, const unsigned char* ghosts, unsigned char ghostsToSkip);
+VTK_ABI_NAMESPACE_END
 } // namespace vtkDataArrayPrivate
 
 #define VTK_DECLARE_VALUERANGE_ARRAYTYPE(ArrayType, ValueType)                                     \
@@ -571,6 +581,7 @@ bool DoComputeVectorRange(
 
 namespace vtkDataArrayPrivate
 {
+VTK_ABI_NAMESPACE_BEGIN
 // These are instantiated in vtkGenericDataArrayValueRange${i}.cxx
 VTK_DECLARE_VALUERANGE_VALUETYPE(long)
 VTK_DECLARE_VALUERANGE_VALUETYPE(unsigned long)
@@ -627,6 +638,7 @@ VTK_DECLARE_VALUERANGE_ARRAYTYPE(vtkScaledSOADataArrayTemplate<long long>, doubl
 VTK_DECLARE_VALUERANGE_ARRAYTYPE(vtkScaledSOADataArrayTemplate<unsigned long long>, double)
 #endif // VTK_USE_SCALED_SOA_ARRAYS
 
+VTK_ABI_NAMESPACE_END
 } // namespace vtkDataArrayPrivate
 
 #undef VTK_DECLARE_VALUERANGE_ARRAYTYPE
diff --git a/Common/Core/vtkGenericDataArray.txx b/Common/Core/vtkGenericDataArray.txx
index c64752c46ccbb40bab0087b23f6073029e78afbc..bcd9381f2e22f7db5d57a3c99c018710cf4f3e51 100644
--- a/Common/Core/vtkGenericDataArray.txx
+++ b/Common/Core/vtkGenericDataArray.txx
@@ -22,6 +22,7 @@
 #include "vtkVariantCast.h"
 
 //-----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <class DerivedT, class ValueTypeT>
 double* vtkGenericDataArray<DerivedT, ValueTypeT>::GetTuple(vtkIdType tupleIdx)
 {
@@ -1034,9 +1035,11 @@ class vtkSOADataArrayTemplate;
 template <typename ValueType>
 class vtkScaledSOADataArrayTemplate;
 #endif
+VTK_ABI_NAMESPACE_END
 
 namespace vtk_GDA_detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Arrays templates with compiled-in support for value ranges in
 // vtkGenericDataArray.cxx
@@ -1094,8 +1097,10 @@ struct IsSupported
 {
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtk_GDA_detail
 
+VTK_ABI_NAMESPACE_BEGIN
 //-----------------------------------------------------------------------------
 template <class DerivedT, class ValueTypeT>
 void vtkGenericDataArray<DerivedT, ValueTypeT>::ComputeValueRange(
@@ -1219,9 +1224,11 @@ void vtkGenericDataArray<DerivedT, ValueTypeT>::ComputeFiniteValueRange(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
 
 namespace vtk_GDA_detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename ArrayType, typename ValueType, typename Tag>
 bool ComputeScalarValueRangeImpl(ArrayType* array, ValueType* range, Tag tag, std::true_type,
@@ -1276,8 +1283,10 @@ bool ComputeVectorValueRangeImpl(ArrayType* array, ValueType range[2], Tag tag,
   return true;
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace vtk_GDA_detail
 
+VTK_ABI_NAMESPACE_BEGIN
 //-----------------------------------------------------------------------------
 template <class DerivedT, class ValueTypeT>
 bool vtkGenericDataArray<DerivedT, ValueTypeT>::ComputeScalarValueRange(
@@ -1324,4 +1333,5 @@ bool vtkGenericDataArray<DerivedT, ValueTypeT>::ComputeFiniteVectorValueRange(
 
 #undef vtkGenericDataArrayT
 
+VTK_ABI_NAMESPACE_END
 #endif // header guard
diff --git a/Common/Core/vtkGenericDataArrayLookupHelper.h b/Common/Core/vtkGenericDataArrayLookupHelper.h
index f8564ccd74c474364406be6012f050fe5833f594..492bbd955ed0854982878c9b5ab2820d50382292 100644
--- a/Common/Core/vtkGenericDataArrayLookupHelper.h
+++ b/Common/Core/vtkGenericDataArrayLookupHelper.h
@@ -31,6 +31,7 @@
 
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T, bool>
 struct has_NaN;
 
@@ -52,8 +53,10 @@ bool isnan(T x)
   // Select the correct partially specialized type.
   return has_NaN<T, std::numeric_limits<T>::has_quiet_NaN>::isnan(x);
 }
+VTK_ABI_NAMESPACE_END
 } // namespace detail
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class ArrayTypeT>
 class vtkGenericDataArrayLookupHelper
 {
@@ -128,7 +131,7 @@ private:
     for (vtkIdType i = 0; i < num; ++i)
     {
       auto value = this->AssociatedArray->GetValue(i);
-      if (::detail::isnan(value))
+      if (detail::isnan(value))
       {
         NanIndices.push_back(i);
       }
@@ -141,7 +144,7 @@ private:
   std::vector<vtkIdType>* FindIndexVec(ValueType value)
   {
     std::vector<vtkIdType>* indices{ nullptr };
-    if (::detail::isnan(value) && !this->NanIndices.empty())
+    if (detail::isnan(value) && !this->NanIndices.empty())
     {
       indices = &this->NanIndices;
     }
@@ -158,5 +161,6 @@ private:
   std::vector<vtkIdType> NanIndices;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkGenericDataArrayLookupHelper.h
diff --git a/Common/Core/vtkGenericDataArrayValueRangeInstantiate.cxx.in b/Common/Core/vtkGenericDataArrayValueRangeInstantiate.cxx.in
index a743698cca78fdc12cb04fac35db4fcf1e0a2130..f939cf77e6ff6092be102278fb0acb776c668df0 100644
--- a/Common/Core/vtkGenericDataArrayValueRangeInstantiate.cxx.in
+++ b/Common/Core/vtkGenericDataArrayValueRangeInstantiate.cxx.in
@@ -32,5 +32,7 @@
 
 namespace vtkDataArrayPrivate
 {
+VTK_ABI_NAMESPACE_BEGIN
 VTK_INSTANTIATE_VALUERANGE_VALUETYPE(@INSTANTIATION_VALUE_TYPE@)
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Common/Core/vtkIdList.cxx b/Common/Core/vtkIdList.cxx
index c16c19c034f73e9415c5e6ec5d63c7fc005963c9..d9e31ceee2be84c28425c448b22a12e8ff766086 100644
--- a/Common/Core/vtkIdList.cxx
+++ b/Common/Core/vtkIdList.cxx
@@ -16,6 +16,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkSMPTools.h" //for parallel sort
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIdList);
 
 //------------------------------------------------------------------------------
@@ -301,3 +302,4 @@ void vtkIdList::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Number of Ids: " << this->NumberOfIds << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkIdList.h b/Common/Core/vtkIdList.h
index 99bda48677fb5f7dd7a391ae5b2d167068f5fefd..e0ece29505b76720fc452d6e099b7edf8d752da4 100644
--- a/Common/Core/vtkIdList.h
+++ b/Common/Core/vtkIdList.h
@@ -27,6 +27,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkIdList : public vtkObject
 {
 public:
@@ -251,4 +252,5 @@ inline vtkIdType vtkIdList::IsId(vtkIdType vtkid)
   return (-1);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkIdListCollection.cxx b/Common/Core/vtkIdListCollection.cxx
index 750490297d1503169d5e1e704f608e5f87228bb5..f73703115cfef6bca180d9b74e7b7cf008aedacb 100644
--- a/Common/Core/vtkIdListCollection.cxx
+++ b/Common/Core/vtkIdListCollection.cxx
@@ -15,9 +15,11 @@
 #include "vtkIdListCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIdListCollection);
 
 void vtkIdListCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkIdListCollection.h b/Common/Core/vtkIdListCollection.h
index 5fa4482e18d3b79021e3e5e9e099195f8505e2b1..f02b4260a2e3a5c601dae2034c86cc83476f2104 100644
--- a/Common/Core/vtkIdListCollection.h
+++ b/Common/Core/vtkIdListCollection.h
@@ -28,6 +28,7 @@
 
 #include "vtkIdList.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkIdListCollection : public vtkCollection
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkIdListCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkIdTypeArray.cxx b/Common/Core/vtkIdTypeArray.cxx
index 778a4bf6cf986ba7c1054a44395466bf37046248..2264dbe5e73e32dbf2ad0e01f9b2b4113366b034 100644
--- a/Common/Core/vtkIdTypeArray.cxx
+++ b/Common/Core/vtkIdTypeArray.cxx
@@ -25,6 +25,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIdTypeArray);
 vtkStandardExtendedNewMacro(vtkIdTypeArray);
 
@@ -39,3 +40,4 @@ void vtkIdTypeArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkIdTypeArray.h b/Common/Core/vtkIdTypeArray.h
index af04024807b8543abb9a91dc3aee6352d5c5f7fc..7c3fac5dae859d4745aa47436f2bfc10c1357c9a 100644
--- a/Common/Core/vtkIdTypeArray.h
+++ b/Common/Core/vtkIdTypeArray.h
@@ -32,6 +32,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<vtkIdType>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkIdTypeArray : public vtkDataArray
 {
 public:
@@ -96,4 +97,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkIdTypeArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkIndent.cxx b/Common/Core/vtkIndent.cxx
index 741d09d71a712ec651d4f9c8a57399dbd1d5f578..18dd0d0dcd005518eb8c507f743c12449dd9209c 100644
--- a/Common/Core/vtkIndent.cxx
+++ b/Common/Core/vtkIndent.cxx
@@ -16,6 +16,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkIndent* vtkIndent::New()
 {
   return new vtkIndent; // not a VTK object, don't use object factory macros
@@ -44,3 +45,4 @@ ostream& operator<<(ostream& os, const vtkIndent& ind)
   os << blanks + (VTK_NUMBER_OF_BLANKS - ind.Indent);
   return os;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkIndent.h b/Common/Core/vtkIndent.h
index 1f3a80c04a2227e6f72390db8af4f94d15c7921f..12a0d9d29376b88a882e457960c8005da5a278e6 100644
--- a/Common/Core/vtkIndent.h
+++ b/Common/Core/vtkIndent.h
@@ -27,6 +27,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkSystemIncludes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIndent;
 VTKCOMMONCORE_EXPORT ostream& operator<<(ostream& os, const vtkIndent& o);
 
@@ -52,5 +53,6 @@ protected:
   int Indent;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkIndent.h
diff --git a/Common/Core/vtkInformation.cxx b/Common/Core/vtkInformation.cxx
index 216b2c580c5123cd493af027a8319efe81712360..bb6e1601acc001d077f00c5ed5cc034b44702776 100644
--- a/Common/Core/vtkInformation.cxx
+++ b/Common/Core/vtkInformation.cxx
@@ -45,6 +45,7 @@
 
 #include "vtkInformationInternals.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInformation);
 
 //------------------------------------------------------------------------------
@@ -955,3 +956,4 @@ vtkInformationRequestKey* vtkInformation::GetRequest()
 {
   return this->Request;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformation.h b/Common/Core/vtkInformation.h
index 2792fe4a0c2b5f1d00952beff83e2299d883f7fd..e429caa0d33aef1e63960bf4cec26039cb7e3ce5 100644
--- a/Common/Core/vtkInformation.h
+++ b/Common/Core/vtkInformation.h
@@ -33,6 +33,7 @@
 
 #include <string> // for std::string compat
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 class vtkExecutive;
 class vtkInformationDataObjectKey;
@@ -463,4 +464,5 @@ private:
   vtkInformationRequestKey* Request;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationDataObjectKey.cxx b/Common/Core/vtkInformationDataObjectKey.cxx
index d0cb7717ad7e5c3d3d90ff07e313cd6e7aa2c6ec..bf1b406ec6b12748e37d89cc9c47aad5bd1ea189 100644
--- a/Common/Core/vtkInformationDataObjectKey.cxx
+++ b/Common/Core/vtkInformationDataObjectKey.cxx
@@ -19,6 +19,7 @@
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationDataObjectKey::vtkInformationDataObjectKey(const char* name, const char* location)
   : vtkInformationKey(name, location)
 {
@@ -63,3 +64,4 @@ void vtkInformationDataObjectKey::Report(vtkInformation* info, vtkGarbageCollect
 {
   this->ReportAsObjectBase(info, collector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationDataObjectKey.h b/Common/Core/vtkInformationDataObjectKey.h
index e7aefe84383572a70d6f4a91e9337098a77be0cf..649cf8c58854dbeeb8aa9f965ab271e2780da615 100644
--- a/Common/Core/vtkInformationDataObjectKey.h
+++ b/Common/Core/vtkInformationDataObjectKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 
 class VTKCOMMONCORE_EXPORT vtkInformationDataObjectKey : public vtkInformationKey
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkInformationDataObjectKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationDoubleKey.cxx b/Common/Core/vtkInformationDoubleKey.cxx
index 1ac33e193872d5af4094d27701fb04d56a0d2db3..90fa0a10d19ac3cfc23b568c779fa191f6b88c73 100644
--- a/Common/Core/vtkInformationDoubleKey.cxx
+++ b/Common/Core/vtkInformationDoubleKey.cxx
@@ -17,6 +17,7 @@
 #include "vtkInformation.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationDoubleKey::vtkInformationDoubleKey(const char* name, const char* location)
   : vtkInformationKey(name, location)
 {
@@ -108,3 +109,4 @@ double* vtkInformationDoubleKey::GetWatchAddress(vtkInformation* info)
   }
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationDoubleKey.h b/Common/Core/vtkInformationDoubleKey.h
index 3689a45a28b899fb1d01e77bca95cebf497190c5..c86a2e8fd78b42108386210202a3d485a2bffada 100644
--- a/Common/Core/vtkInformationDoubleKey.h
+++ b/Common/Core/vtkInformationDoubleKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkInformationDoubleKey : public vtkInformationKey
 {
 public:
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkInformationDoubleKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationDoubleVectorKey.cxx b/Common/Core/vtkInformationDoubleVectorKey.cxx
index df0398f07af8a1c0b743cf208c4c106f0f2486d6..85df56a44a8680a238ce577f282e01c647e6f7b3 100644
--- a/Common/Core/vtkInformationDoubleVectorKey.cxx
+++ b/Common/Core/vtkInformationDoubleVectorKey.cxx
@@ -19,6 +19,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationDoubleVectorKey ::vtkInformationDoubleVectorKey(
   const char* name, const char* location, int length)
   : vtkInformationKey(name, location)
@@ -151,3 +152,4 @@ void vtkInformationDoubleVectorKey::Print(ostream& os, vtkInformation* info)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationDoubleVectorKey.h b/Common/Core/vtkInformationDoubleVectorKey.h
index 512b1c73048c7efba0b206307ff24265d1c056ad..0642e2fb893961a5eba54570eba856cb7ba65714 100644
--- a/Common/Core/vtkInformationDoubleVectorKey.h
+++ b/Common/Core/vtkInformationDoubleVectorKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkInformationDoubleVectorKey : public vtkInformationKey
 {
 public:
@@ -82,4 +83,5 @@ private:
   void operator=(const vtkInformationDoubleVectorKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationIdTypeKey.cxx b/Common/Core/vtkInformationIdTypeKey.cxx
index bbcf890a1de99c8e7d55251d69904e0951d70208..99c33ee508a92b85661e0c3df77e22e81b50da83 100644
--- a/Common/Core/vtkInformationIdTypeKey.cxx
+++ b/Common/Core/vtkInformationIdTypeKey.cxx
@@ -17,6 +17,7 @@
 #include "vtkInformation.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationIdTypeKey::vtkInformationIdTypeKey(const char* name, const char* location)
   : vtkInformationKey(name, location)
 {
@@ -108,3 +109,4 @@ vtkIdType* vtkInformationIdTypeKey::GetWatchAddress(vtkInformation* info)
   }
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationIdTypeKey.h b/Common/Core/vtkInformationIdTypeKey.h
index 84d1c1e669e3d7a6db66ac1ef3d4bbc2ef1199c0..2fcbd450ebe62d3c0babadc2cba89a36f23265ac 100644
--- a/Common/Core/vtkInformationIdTypeKey.h
+++ b/Common/Core/vtkInformationIdTypeKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkInformationIdTypeKey : public vtkInformationKey
 {
 public:
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkInformationIdTypeKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationInformationKey.cxx b/Common/Core/vtkInformationInformationKey.cxx
index 69dd051b654e379bc38646252e9eb6b51d90f2a9..c60f3b0adb0fcbd53ce4fe2619990be70959b18b 100644
--- a/Common/Core/vtkInformationInformationKey.cxx
+++ b/Common/Core/vtkInformationInformationKey.cxx
@@ -17,6 +17,7 @@
 #include "vtkInformation.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationInformationKey::vtkInformationInformationKey(const char* name, const char* location)
   : vtkInformationKey(name, location)
 {
@@ -58,3 +59,4 @@ void vtkInformationInformationKey::DeepCopy(vtkInformation* from, vtkInformation
   this->Set(to, toInfo);
   toInfo->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationInformationKey.h b/Common/Core/vtkInformationInformationKey.h
index ff8688fe18b6c7248b57b365709636afb0e9e14b..903e38b1eed1199dc35a3279f8f4ffb22628ed08 100644
--- a/Common/Core/vtkInformationInformationKey.h
+++ b/Common/Core/vtkInformationInformationKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkInformationInformationKey : public vtkInformationKey
 {
 public:
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkInformationInformationKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationInformationVectorKey.cxx b/Common/Core/vtkInformationInformationVectorKey.cxx
index bb328fbb62acf457f94ef5433617d65fbb3e7d80..2c068bd4bda308b3fbf17926ea3d5606c593e9c6 100644
--- a/Common/Core/vtkInformationInformationVectorKey.cxx
+++ b/Common/Core/vtkInformationInformationVectorKey.cxx
@@ -18,6 +18,7 @@
 #include "vtkInformationVector.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationInformationVectorKey::vtkInformationInformationVectorKey(
   const char* name, const char* location)
   : vtkInformationKey(name, location)
@@ -77,3 +78,4 @@ void vtkInformationInformationVectorKey::Report(
 {
   this->ReportAsObjectBase(info, collector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationInformationVectorKey.h b/Common/Core/vtkInformationInformationVectorKey.h
index 03738a1e5e9ca00989b0ccefa5e23def2e2e7d3b..885066a9ae47171d6974ac5462ec5db59f7ede7b 100644
--- a/Common/Core/vtkInformationInformationVectorKey.h
+++ b/Common/Core/vtkInformationInformationVectorKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationVector;
 
 class VTKCOMMONCORE_EXPORT vtkInformationInformationVectorKey : public vtkInformationKey
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkInformationInformationVectorKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationIntegerKey.cxx b/Common/Core/vtkInformationIntegerKey.cxx
index 5f109decc9249a305aefb6a7b6b571c4da7cb07f..d041b6c21c9d33e00cf278153cdbe2133fcecc42 100644
--- a/Common/Core/vtkInformationIntegerKey.cxx
+++ b/Common/Core/vtkInformationIntegerKey.cxx
@@ -17,6 +17,7 @@
 #include "vtkInformation.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationIntegerKey::vtkInformationIntegerKey(const char* name, const char* location)
   : vtkInformationKey(name, location)
 {
@@ -108,3 +109,4 @@ int* vtkInformationIntegerKey::GetWatchAddress(vtkInformation* info)
   }
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationIntegerKey.h b/Common/Core/vtkInformationIntegerKey.h
index def6e6146da7b27d01a086d4182d86ff4d498483..e4c53e494c3bfac19542f1e0b0cb9c76de0d254f 100644
--- a/Common/Core/vtkInformationIntegerKey.h
+++ b/Common/Core/vtkInformationIntegerKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkInformationIntegerKey : public vtkInformationKey
 {
 public:
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkInformationIntegerKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationIntegerPointerKey.cxx b/Common/Core/vtkInformationIntegerPointerKey.cxx
index 0c5ee98fb05ca904a9051d2a69fc6a7318340c52..b0f3d1d84de4d9575311d20091529469ce2c4dfa 100644
--- a/Common/Core/vtkInformationIntegerPointerKey.cxx
+++ b/Common/Core/vtkInformationIntegerPointerKey.cxx
@@ -20,6 +20,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationIntegerPointerKey ::vtkInformationIntegerPointerKey(
   const char* name, const char* location, int length)
   : vtkInformationKey(name, location)
@@ -136,3 +137,4 @@ int* vtkInformationIntegerPointerKey::GetWatchAddress(vtkInformation* info)
   }
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationIntegerPointerKey.h b/Common/Core/vtkInformationIntegerPointerKey.h
index f1cdd14da520baa2917554761c030a29d74b7cf3..cfb79fe55761a0e75caaace25d8eed32129745e8 100644
--- a/Common/Core/vtkInformationIntegerPointerKey.h
+++ b/Common/Core/vtkInformationIntegerPointerKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkInformationIntegerPointerKey : public vtkInformationKey
 {
 public:
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkInformationIntegerPointerKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationIntegerVectorKey.cxx b/Common/Core/vtkInformationIntegerVectorKey.cxx
index a8466ba5a87abc3ccfcce101ddb3363d8a216c38..63c2b3a4a9b8e66820eecee9494746845a43cc27 100644
--- a/Common/Core/vtkInformationIntegerVectorKey.cxx
+++ b/Common/Core/vtkInformationIntegerVectorKey.cxx
@@ -20,6 +20,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationIntegerVectorKey ::vtkInformationIntegerVectorKey(
   const char* name, const char* location, int length)
   : vtkInformationKey(name, location)
@@ -183,3 +184,4 @@ int* vtkInformationIntegerVectorKey::GetWatchAddress(vtkInformation* info)
     static_cast<vtkInformationIntegerVectorValue*>(this->GetAsObjectBase(info));
   return (v && !v->Value.empty()) ? v->Value.data() : nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationIntegerVectorKey.h b/Common/Core/vtkInformationIntegerVectorKey.h
index 3401b3f6ad11fdb759e0e7637ab30216b750c84e..2e01f78c67e0f5d44c1a3550dee3b755e3c33886 100644
--- a/Common/Core/vtkInformationIntegerVectorKey.h
+++ b/Common/Core/vtkInformationIntegerVectorKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkInformationIntegerVectorKey : public vtkInformationKey
 {
 public:
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkInformationIntegerVectorKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationInternals.h b/Common/Core/vtkInformationInternals.h
index abe9b71a2d99a6f431c6c6eb29b294f14a4bab98..c1d0c56e13a14e6881db8cf6d6752918e1a0285d 100644
--- a/Common/Core/vtkInformationInternals.h
+++ b/Common/Core/vtkInformationInternals.h
@@ -36,6 +36,7 @@
 #endif
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationInternals
 {
 public:
@@ -79,5 +80,6 @@ private:
 
 #undef VTK_INFORMATION_USE_HASH_MAP
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkInformationInternals.h
diff --git a/Common/Core/vtkInformationIterator.cxx b/Common/Core/vtkInformationIterator.cxx
index fb7d6a8bc269c2545c0006cd74b31ea971949bef..fadcafc8f0855b322b598eb92ecf0171a393c42d 100644
--- a/Common/Core/vtkInformationIterator.cxx
+++ b/Common/Core/vtkInformationIterator.cxx
@@ -19,6 +19,7 @@
 #include "vtkInformationKey.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInformationIterator);
 
 class vtkInformationIteratorInternals
@@ -143,3 +144,4 @@ void vtkInformationIterator::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationIterator.h b/Common/Core/vtkInformationIterator.h
index 3927cc16ada9cf9c24b99f576471f5b117d99a68..78a4f9696c2cd07dcbd121f59187916622101bcd 100644
--- a/Common/Core/vtkInformationIterator.h
+++ b/Common/Core/vtkInformationIterator.h
@@ -30,6 +30,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationKey;
 class vtkInformationIteratorInternals;
@@ -98,4 +99,5 @@ private:
   void operator=(const vtkInformationIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationKey.cxx b/Common/Core/vtkInformationKey.cxx
index e6498550a5032a9071cf5669fdef70b3ea7ce2cd..929b49dccdc3b3038ddda52c25b33ae8f579edaf 100644
--- a/Common/Core/vtkInformationKey.cxx
+++ b/Common/Core/vtkInformationKey.cxx
@@ -18,6 +18,7 @@
 #include "vtkDebugLeaks.h"
 #include "vtkInformation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationKeyToInformationFriendship
 {
 public:
@@ -147,3 +148,4 @@ void vtkInformationKey::ReportAsObjectBase(vtkInformation* info, vtkGarbageColle
 
 //------------------------------------------------------------------------------
 void vtkInformationKey::ConstructClass(const char*) {}
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationKey.h b/Common/Core/vtkInformationKey.h
index 3491376f7b830870712a38e063e768d8b675521f..b928e1acaa0075c3d2131e46c7abe2b9ae32b8fc 100644
--- a/Common/Core/vtkInformationKey.h
+++ b/Common/Core/vtkInformationKey.h
@@ -33,6 +33,7 @@
 #include "vtkObject.h"           // Need vtkTypeMacro
 #include "vtkObjectBase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 
 class VTKCOMMONCORE_EXPORT vtkInformationKey : public vtkObjectBase
@@ -228,4 +229,5 @@ private:
     new vtkInformation##type##Key(#NAME, #CLASS, required);                                        \
   vtkInformation##type##Key* CLASS::NAME() { return CLASS##_##NAME; }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationKeyLookup.cxx b/Common/Core/vtkInformationKeyLookup.cxx
index 5e8b36fe46c62576592eef8427fb743e202a7184..0913c169a560100284348e833d68857fe7bdd80f 100644
--- a/Common/Core/vtkInformationKeyLookup.cxx
+++ b/Common/Core/vtkInformationKeyLookup.cxx
@@ -18,6 +18,7 @@
 #include "vtkInformationKey.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInformationKeyLookup);
 
 //------------------------------------------------------------------------------
@@ -65,3 +66,4 @@ vtkInformationKeyLookup::KeyMap& vtkInformationKeyLookup::Keys()
   static vtkInformationKeyLookup::KeyMap keys;
   return keys;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationKeyLookup.h b/Common/Core/vtkInformationKeyLookup.h
index a876af02a7d2b5da49f98b5f1328066de71330df..c3c842725bf0f9799be948f9c05bbbc6213f29a4 100644
--- a/Common/Core/vtkInformationKeyLookup.h
+++ b/Common/Core/vtkInformationKeyLookup.h
@@ -29,6 +29,7 @@
 #include <string>  // For std::string
 #include <utility> // For std::pair
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationKey;
 
 class VTKCOMMONCORE_EXPORT vtkInformationKeyLookup : public vtkObject
@@ -75,4 +76,5 @@ private:
   static KeyMap& Keys();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkInformationKeyLookup_h
diff --git a/Common/Core/vtkInformationKeyVectorKey.cxx b/Common/Core/vtkInformationKeyVectorKey.cxx
index 334242193aee831d3870a3cfc9354ed0c320f93f..fa9d64d5a79c2f02116cd8831f1c85fa3a144c73 100644
--- a/Common/Core/vtkInformationKeyVectorKey.cxx
+++ b/Common/Core/vtkInformationKeyVectorKey.cxx
@@ -19,6 +19,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyVectorKey::vtkInformationKeyVectorKey(const char* name, const char* location)
   : vtkInformationKey(name, location)
 {
@@ -185,3 +186,4 @@ void vtkInformationKeyVectorKey::Print(ostream& os, vtkInformation* info)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationKeyVectorKey.h b/Common/Core/vtkInformationKeyVectorKey.h
index 57498985137e16ed062afe2c2eb1831950bc223d..db2faad5b08bd72d9e27b58b7ba0179827884fa2 100644
--- a/Common/Core/vtkInformationKeyVectorKey.h
+++ b/Common/Core/vtkInformationKeyVectorKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkInformationKeyVectorKey : public vtkInformationKey
 {
 public:
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkInformationKeyVectorKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationObjectBaseKey.cxx b/Common/Core/vtkInformationObjectBaseKey.cxx
index 33ee6054383e22477f276511ec617fecb7b1ab9d..c76d778498f2539b52d7274e3eff20d77b015d3e 100644
--- a/Common/Core/vtkInformationObjectBaseKey.cxx
+++ b/Common/Core/vtkInformationObjectBaseKey.cxx
@@ -17,6 +17,7 @@
 #include "vtkInformation.h" // For vtkErrorWithObjectMacro
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationObjectBaseKey ::vtkInformationObjectBaseKey(
   const char* name, const char* location, const char* requiredClass)
   : vtkInformationKey(name, location)
@@ -71,3 +72,4 @@ void vtkInformationObjectBaseKey::Report(vtkInformation* info, vtkGarbageCollect
 {
   this->ReportAsObjectBase(info, collector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationObjectBaseKey.h b/Common/Core/vtkInformationObjectBaseKey.h
index 1d610ac28f74c44cfbb2fa8c27297d1b5077dc17..7740285276feaa4cdf6fb429f94fc464ae3b6e43 100644
--- a/Common/Core/vtkInformationObjectBaseKey.h
+++ b/Common/Core/vtkInformationObjectBaseKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkObjectBase;
 
 class VTKCOMMONCORE_EXPORT vtkInformationObjectBaseKey : public vtkInformationKey
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkInformationObjectBaseKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationObjectBaseVectorKey.cxx b/Common/Core/vtkInformationObjectBaseVectorKey.cxx
index 1bfff7a2bea48aea539e30ecc0b33c12b7627966..0777e1cf9d4dd6e9122ac0b2e4e3014089b33cca 100644
--- a/Common/Core/vtkInformationObjectBaseVectorKey.cxx
+++ b/Common/Core/vtkInformationObjectBaseVectorKey.cxx
@@ -19,6 +19,7 @@
 #include <vector>
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationObjectBaseVectorValue : public vtkObjectBase
 {
 public:
@@ -327,3 +328,4 @@ void vtkInformationObjectBaseVectorKey::Print(ostream& os, vtkInformation* info)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationObjectBaseVectorKey.h b/Common/Core/vtkInformationObjectBaseVectorKey.h
index 5d832176872b6f76393eb8c6451c057c86e0fdc3..f7a2323e1d6239f20919cfc13700f552ae87df9e 100644
--- a/Common/Core/vtkInformationObjectBaseVectorKey.h
+++ b/Common/Core/vtkInformationObjectBaseVectorKey.h
@@ -29,6 +29,7 @@
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 #include "vtkInformationKey.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationObjectBaseVectorValue;
 
 class VTKCOMMONCORE_EXPORT vtkInformationObjectBaseVectorKey : public vtkInformationKey
@@ -165,4 +166,5 @@ private:
   void operator=(const vtkInformationObjectBaseVectorKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationRequestKey.cxx b/Common/Core/vtkInformationRequestKey.cxx
index 955a474c797c931dc507c34317a02d9487760a22..ad21d8cdade1f4db7f2d3d53819d2695822f4edd 100644
--- a/Common/Core/vtkInformationRequestKey.cxx
+++ b/Common/Core/vtkInformationRequestKey.cxx
@@ -17,6 +17,7 @@
 #include "vtkInformation.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationRequestKey::vtkInformationRequestKey(const char* name, const char* location)
   : vtkInformationKey(name, location)
 {
@@ -74,3 +75,4 @@ void vtkInformationRequestKey::Print(ostream& os, vtkInformation* info)
     os << "1\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationRequestKey.h b/Common/Core/vtkInformationRequestKey.h
index 2b198fbdd5fab272797fa5bba9fee23c49121bc6..abec426168ebc35bee6423dfa37f9e54f085fee2 100644
--- a/Common/Core/vtkInformationRequestKey.h
+++ b/Common/Core/vtkInformationRequestKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkInformationRequestKey : public vtkInformationKey
 {
 public:
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkInformationRequestKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationStringKey.cxx b/Common/Core/vtkInformationStringKey.cxx
index 8b835331189eba42fb9497fcafc810a155742808..2242697e1be9260d906785b9104e059e8d48fcde 100644
--- a/Common/Core/vtkInformationStringKey.cxx
+++ b/Common/Core/vtkInformationStringKey.cxx
@@ -19,6 +19,7 @@
 #include <string>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationStringKey::vtkInformationStringKey(const char* name, const char* location)
   : vtkInformationKey(name, location)
 {
@@ -105,3 +106,4 @@ void vtkInformationStringKey::Print(ostream& os, vtkInformation* info)
     os << this->Get(info);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationStringKey.h b/Common/Core/vtkInformationStringKey.h
index 12e57c8baf91e676afa1028253b19b7a415e0c4a..87d447a5c6a4e85b6a8c0debbd9fae007bbacbba 100644
--- a/Common/Core/vtkInformationStringKey.h
+++ b/Common/Core/vtkInformationStringKey.h
@@ -30,6 +30,7 @@
 
 #include <string> // for std::string compat
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkInformationStringKey : public vtkInformationKey
 {
 public:
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkInformationStringKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationStringVectorKey.cxx b/Common/Core/vtkInformationStringVectorKey.cxx
index d59b9ab97ce07618bda12fe93764ff9cb9b8d288..b4412590c34cb97fb76b3e97aacca17c1bd670eb 100644
--- a/Common/Core/vtkInformationStringVectorKey.cxx
+++ b/Common/Core/vtkInformationStringVectorKey.cxx
@@ -20,6 +20,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationStringVectorKey ::vtkInformationStringVectorKey(
   const char* name, const char* location, int length)
   : vtkInformationKey(name, location)
@@ -151,3 +152,4 @@ void vtkInformationStringVectorKey::Print(ostream& os, vtkInformation* info)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationStringVectorKey.h b/Common/Core/vtkInformationStringVectorKey.h
index 5eddd04273b21cf43c333fc7b0e454f10f313172..b1ef8628cc40d286a1172d8979b34572e8581ba8 100644
--- a/Common/Core/vtkInformationStringVectorKey.h
+++ b/Common/Core/vtkInformationStringVectorKey.h
@@ -30,6 +30,7 @@
 
 #include <string> // for std::string compat
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkInformationStringVectorKey : public vtkInformationKey
 {
 public:
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkInformationStringVectorKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationUnsignedLongKey.cxx b/Common/Core/vtkInformationUnsignedLongKey.cxx
index 5833d7acf8d0a643523e649e80a684459f636223..c61dd7bde9cc5acb421534e5c694776deafe0079 100644
--- a/Common/Core/vtkInformationUnsignedLongKey.cxx
+++ b/Common/Core/vtkInformationUnsignedLongKey.cxx
@@ -17,6 +17,7 @@
 #include "vtkInformation.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationUnsignedLongKey::vtkInformationUnsignedLongKey(const char* name, const char* location)
   : vtkInformationKey(name, location)
 {
@@ -108,3 +109,4 @@ unsigned long* vtkInformationUnsignedLongKey::GetWatchAddress(vtkInformation* in
   }
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationUnsignedLongKey.h b/Common/Core/vtkInformationUnsignedLongKey.h
index 17687954e9b643edf26aeb5c17916b4ada71a041..dc082a112f93247dc5ba10449ead92817b367872 100644
--- a/Common/Core/vtkInformationUnsignedLongKey.h
+++ b/Common/Core/vtkInformationUnsignedLongKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkInformationUnsignedLongKey : public vtkInformationKey
 {
 public:
@@ -82,4 +83,5 @@ private:
   void operator=(const vtkInformationUnsignedLongKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationVariantKey.cxx b/Common/Core/vtkInformationVariantKey.cxx
index 2f5c7ce9aecdf797e5f40bd46e8f27ce859241a1..6a876ece892c3a587c4aaf520a596e79afc6bd6d 100644
--- a/Common/Core/vtkInformationVariantKey.cxx
+++ b/Common/Core/vtkInformationVariantKey.cxx
@@ -18,6 +18,7 @@
 #include "vtkVariant.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationVariantKey::vtkInformationVariantKey(const char* name, const char* location)
   : vtkInformationKey(name, location)
 {
@@ -112,3 +113,4 @@ vtkVariant* vtkInformationVariantKey::GetWatchAddress(vtkInformation* info)
   }
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationVariantKey.h b/Common/Core/vtkInformationVariantKey.h
index 95f7c1012270563a222c1eba95bb03c094cf2f9c..2c0c703d281ee4a655551da125291e006ebcfb58 100644
--- a/Common/Core/vtkInformationVariantKey.h
+++ b/Common/Core/vtkInformationVariantKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVariant;
 
 class VTKCOMMONCORE_EXPORT vtkInformationVariantKey : public vtkInformationKey
@@ -83,4 +84,5 @@ private:
   void operator=(const vtkInformationVariantKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationVariantVectorKey.cxx b/Common/Core/vtkInformationVariantVectorKey.cxx
index 33d9de34b2d62cecb34971492b6efd9afcd87ba8..7fe1c149834dbb0132bc50dc3e11cf4863706294 100644
--- a/Common/Core/vtkInformationVariantVectorKey.cxx
+++ b/Common/Core/vtkInformationVariantVectorKey.cxx
@@ -20,6 +20,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationVariantVectorKey ::vtkInformationVariantVectorKey(
   const char* name, const char* location, int length)
   : vtkInformationKey(name, location)
@@ -155,3 +156,4 @@ void vtkInformationVariantVectorKey::Print(ostream& os, vtkInformation* info)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationVariantVectorKey.h b/Common/Core/vtkInformationVariantVectorKey.h
index 42951080b65fefaad5a8287618d355be0aa2e3cb..784df6925fa3a129407d7b1d0b1754679b5e085c 100644
--- a/Common/Core/vtkInformationVariantVectorKey.h
+++ b/Common/Core/vtkInformationVariantVectorKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVariant;
 
 class VTKCOMMONCORE_EXPORT vtkInformationVariantVectorKey : public vtkInformationKey
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkInformationVariantVectorKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkInformationVector.cxx b/Common/Core/vtkInformationVector.cxx
index 2c7aec12b52956ec59ee9ce02546d39225062627..d088e14bceb38102f5c36b143e98b621d2115604 100644
--- a/Common/Core/vtkInformationVector.cxx
+++ b/Common/Core/vtkInformationVector.cxx
@@ -20,6 +20,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInformationVector);
 
 class vtkInformationVectorInternals
@@ -227,3 +228,4 @@ void vtkInformationVector::ReportReferences(vtkGarbageCollector* collector)
     vtkGarbageCollectorReport(collector, this->Internal->Vector[i], "Entry");
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkInformationVector.h b/Common/Core/vtkInformationVector.h
index 8733f36acd948a39ee00b7be80ee34e490963501..496150d35ad03a62cee0803856a900e26e513edf 100644
--- a/Common/Core/vtkInformationVector.h
+++ b/Common/Core/vtkInformationVector.h
@@ -29,6 +29,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVectorInternals;
 
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkInformationVector&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkIntArray.cxx b/Common/Core/vtkIntArray.cxx
index 95f08b2164e2e4b3ea2c9dcc497fe5f266763503..140ec65d17bb2ad9f0012a291c3a7491fcdb9e49 100644
--- a/Common/Core/vtkIntArray.cxx
+++ b/Common/Core/vtkIntArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(int);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIntArray);
 vtkStandardExtendedNewMacro(vtkIntArray);
 
@@ -36,3 +37,4 @@ void vtkIntArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkIntArray.h b/Common/Core/vtkIntArray.h
index 198a2c9b77d23d2e1f1315f3744a7da0920b20ae..62bd0cdaed1d041c3788858ff9ef3d240e8967f0 100644
--- a/Common/Core/vtkIntArray.h
+++ b/Common/Core/vtkIntArray.h
@@ -36,6 +36,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<int>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkIntArray : public vtkDataArray
 {
 public:
@@ -86,4 +87,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkIntArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkLargeInteger.cxx b/Common/Core/vtkLargeInteger.cxx
index 20e287e1a922a93cf121c644cfcdbc92aeb5608c..dd0ae5e77c4ad6207be892a63825afbf20339bcb 100644
--- a/Common/Core/vtkLargeInteger.cxx
+++ b/Common/Core/vtkLargeInteger.cxx
@@ -21,6 +21,7 @@
 
 #include "vtkLargeInteger.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 const unsigned int BIT_INCREMENT = 32;
 
 static int maximum(int a, int b)
@@ -869,3 +870,4 @@ istream& operator>>(istream& s, vtkLargeInteger& n)
   }
   return s;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkLargeInteger.h b/Common/Core/vtkLargeInteger.h
index 84f9632335186630e04e4ac9d961f4644ec22557..d69b6bc069f9f192d1337ae483c65a2d75243740 100644
--- a/Common/Core/vtkLargeInteger.h
+++ b/Common/Core/vtkLargeInteger.h
@@ -23,6 +23,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT VTK_WRAPEXCLUDE vtkLargeInteger
 {
 public:
@@ -107,6 +108,7 @@ private:
   void Minus(const vtkLargeInteger& n);           // unsigned
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkLargeInteger.h
diff --git a/Common/Core/vtkLogger.cxx b/Common/Core/vtkLogger.cxx
index b4799e443686aad5af7c85f8f4c18cfe94acf729..d5639965db32cd1cf3b90f76a15c4b1dfce03f12 100644
--- a/Common/Core/vtkLogger.cxx
+++ b/Common/Core/vtkLogger.cxx
@@ -29,6 +29,7 @@
 #include <vector>
 
 //=============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLogger::LogScopeRAII::LSInternals
 {
 public:
@@ -70,9 +71,11 @@ vtkLogger::LogScopeRAII::~LogScopeRAII()
   delete this->Internals;
 }
 //=============================================================================
+VTK_ABI_NAMESPACE_END
 
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 #if VTK_MODULE_ENABLE_VTK_loguru
 using scope_pair = std::pair<std::string, std::shared_ptr<loguru::LogScopeRAII>>;
 static std::mutex g_mutex;
@@ -109,8 +112,10 @@ static void pop_scope(const char* id)
 #endif
 
 static VTK_THREAD_LOCAL std::string ThreadName;
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //=============================================================================
 bool vtkLogger::EnableUnsafeSignalHandler = true;
 vtkLogger::Verbosity vtkLogger::InternalVerbosityLevel = vtkLogger::VERBOSITY_1;
@@ -446,3 +451,4 @@ vtkLogger::Verbosity vtkLogger::ConvertToVerbosity(const char* text)
   }
   return vtkLogger::VERBOSITY_INVALID;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkLogger.h b/Common/Core/vtkLogger.h
index 80e50e20df1fa0b561a2d4111ed3f2ae32282b79..0f825aa8902be20b8dcb417f15318f75897890e6 100644
--- a/Common/Core/vtkLogger.h
+++ b/Common/Core/vtkLogger.h
@@ -174,6 +174,7 @@
 #define VTK_FORMAT_STRING_TYPE const char*
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkLogger : public vtkObjectBase
 {
 public:
@@ -548,4 +549,5 @@ private:
  */
 #define vtkLogIdentifier(vtkobject) vtkLogger::GetIdentifier(vtkobject).c_str()
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkLongArray.cxx b/Common/Core/vtkLongArray.cxx
index 547401b21cf8f90c80cd041a22eeb0864e02e309..98767af68cd5981a4f55f5c0ddced6188a32e4bb 100644
--- a/Common/Core/vtkLongArray.cxx
+++ b/Common/Core/vtkLongArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(long);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLongArray);
 vtkStandardExtendedNewMacro(vtkLongArray);
 
@@ -36,3 +37,4 @@ void vtkLongArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkLongArray.h b/Common/Core/vtkLongArray.h
index e0412099fb5630ed1386597cc41355254743e50e..ba38db5e29bad939e2c7716849b77a9ebf9b78b9 100644
--- a/Common/Core/vtkLongArray.h
+++ b/Common/Core/vtkLongArray.h
@@ -37,6 +37,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<long>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkLongArray : public vtkDataArray
 {
 public:
@@ -87,4 +88,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkLongArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkLongLongArray.cxx b/Common/Core/vtkLongLongArray.cxx
index 6d88f966c9b582f455f0cb78e4a06ecc970cb290..474c42c9e262dc8409f4548c7f3077ee269ccb99 100644
--- a/Common/Core/vtkLongLongArray.cxx
+++ b/Common/Core/vtkLongLongArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(long long);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLongLongArray);
 vtkStandardExtendedNewMacro(vtkLongLongArray);
 
@@ -36,3 +37,4 @@ void vtkLongLongArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkLongLongArray.h b/Common/Core/vtkLongLongArray.h
index 976c3fb997b341372ed8c1c05e91903344753105..5e2bbbdc5fec64ca75406faa20e12b3068049cef 100644
--- a/Common/Core/vtkLongLongArray.h
+++ b/Common/Core/vtkLongLongArray.h
@@ -36,6 +36,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<long long>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkLongLongArray : public vtkDataArray
 {
 public:
@@ -86,4 +87,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkLongLongArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkLookupTable.cxx b/Common/Core/vtkLookupTable.cxx
index e05cc02fbfdacf4afbf345f3e54f29137cf8d528..a445363be0a2d61b6fc7606f450081108c8f8b34 100644
--- a/Common/Core/vtkLookupTable.cxx
+++ b/Common/Core/vtkLookupTable.cxx
@@ -24,6 +24,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 const vtkIdType vtkLookupTable::REPEATED_LAST_COLOR_INDEX = 0;
 const vtkIdType vtkLookupTable::BELOW_RANGE_COLOR_INDEX = 1;
 const vtkIdType vtkLookupTable::ABOVE_RANGE_COLOR_INDEX = 2;
@@ -424,6 +425,7 @@ double vtkLookupTable::GetOpacity(double v)
 
   return rgb8[3] / 255.0;
 }
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -639,6 +641,7 @@ inline void vtkLookupShiftAndScale(
 
 } // end anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 void vtkLookupTable::GetLogRange(const double range[2], double log_range[2])
 {
@@ -798,6 +801,7 @@ const unsigned char* vtkLookupTable::MapValue(double v)
 
   return this->Table->GetPointer(0) + 4 * index;
 }
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -1190,6 +1194,7 @@ void vtkLookupTableIndexedMapData(vtkLookupTable* self, const T* input, unsigned
 
 } // end anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 void vtkLookupTable::MapScalarsThroughTable2(void* input, unsigned char* output, int inputDataType,
   int numberOfValues, int inputIncrement, int outputFormat)
@@ -1465,3 +1470,4 @@ void vtkLookupTable::ResizeTableForSpecialColors()
     this->Table->Resize(neededColors);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkLookupTable.h b/Common/Core/vtkLookupTable.h
index f3d2d7ca9d1c9f5f50d05b16c71c7d06169f8d96..0445252e95e8c352cee97ba0c3753b29e63b917e 100644
--- a/Common/Core/vtkLookupTable.h
+++ b/Common/Core/vtkLookupTable.h
@@ -65,6 +65,7 @@
 #define VTK_SCALE_LINEAR 0
 #define VTK_SCALE_LOG10 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkLookupTable : public vtkScalarsToColors
 {
 public:
@@ -467,4 +468,5 @@ inline unsigned char* vtkLookupTable::WritePointer(vtkIdType id, int number)
   return this->Table->WritePointer(4 * id, 4 * number);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkMappedDataArray.h b/Common/Core/vtkMappedDataArray.h
index 034556e86bb2f7e2ceadae69b6d537fb69a65f1f..d3ee31a089ce974149f51b88724b1270de037f72 100644
--- a/Common/Core/vtkMappedDataArray.h
+++ b/Common/Core/vtkMappedDataArray.h
@@ -37,6 +37,7 @@
 
 #include "vtkTypedDataArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class Scalar>
 class vtkMappedDataArray : public vtkTypedDataArray<Scalar>
 {
@@ -143,6 +144,7 @@ private:
 // Declare vtkArrayDownCast implementations for mapped containers:
 vtkArrayDownCast_TemplateFastCastMacro(vtkMappedDataArray);
 
+VTK_ABI_NAMESPACE_END
 #include "vtkMappedDataArray.txx"
 
 // Adds an implementation of NewInstanceInternal() that returns an AoS
diff --git a/Common/Core/vtkMappedDataArray.txx b/Common/Core/vtkMappedDataArray.txx
index 5504ee57c6513bd2bac9f6891b383a4054192081..dabb2f3546490d5b1c3be1aab63926838f68568f 100644
--- a/Common/Core/vtkMappedDataArray.txx
+++ b/Common/Core/vtkMappedDataArray.txx
@@ -21,6 +21,7 @@
 #include "vtkVariant.h" // for vtkVariant
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <class Scalar>
 vtkMappedDataArray<Scalar>::vtkMappedDataArray()
 {
@@ -173,4 +174,5 @@ void vtkMappedDataArray<Scalar>::Modified()
   this->TemporaryScalarPointerSize = 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkMappedDataArray_txx
diff --git a/Common/Core/vtkMath.cxx b/Common/Core/vtkMath.cxx
index 7aa5faeea1ce925661ae64107cf21d455456419f..08c6a34b04c9083460c33002ab28750bf4a218b4 100644
--- a/Common/Core/vtkMath.cxx
+++ b/Common/Core/vtkMath.cxx
@@ -36,6 +36,7 @@
 #include <limits>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMath);
 
 class vtkMathInternal : public vtkObjectBase
@@ -3219,3 +3220,4 @@ int vtkMath::QuadraticRoot(double a, double b, double c, double min, double max,
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkMath.h b/Common/Core/vtkMath.h
index 0f9f62fb1edbd85084e237e9a1975b75ccb6c345..60531b3d44306495cb6cdbb4aa5e822525b9a9d7 100644
--- a/Common/Core/vtkMath.h
+++ b/Common/Core/vtkMath.h
@@ -71,19 +71,24 @@
 #endif // DBL_EPSILON
 #endif // VTK_DBL_EPSILON
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkPoints;
 class vtkMathInternal;
 class vtkMinimalStandardRandomSequence;
 class vtkBoxMuellerRandomSequence;
+VTK_ABI_NAMESPACE_END
 
 namespace vtk_detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 // forward declaration
 template <typename OutT>
 void RoundDoubleToIntegralIfNecessary(double val, OutT* ret);
+VTK_ABI_NAMESPACE_END
 } // end namespace vtk_detail
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkMath : public vtkObject
 {
 public:
@@ -1932,6 +1937,7 @@ inline void vtkMath::TensorFromSymmetricTensor(T tensor[9])
   tensor[2] = tensor[6]; // XZ
   tensor[1] = tensor[3]; // XY
 }
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -1975,6 +1981,7 @@ inline void vtkQuaternionToMatrix3x3(const QuaternionT& quat, MatrixT& A)
 }
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 inline void vtkMath::QuaternionToMatrix3x3(const float quat[4], float A[3][3])
 {
@@ -1993,6 +2000,7 @@ inline void vtkMath::QuaternionToMatrix3x3(const QuaternionT& q, MatrixT&& A)
 {
   vtkQuaternionToMatrix3x3(q, A);
 }
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -2049,6 +2057,7 @@ inline void vtkMatrix3x3ToQuaternion(const MatrixT& A, QuaternionT& quat)
 }
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 inline void vtkMath::Matrix3x3ToQuaternion(const float A[3][3], float quat[4])
 {
@@ -2067,9 +2076,11 @@ inline void vtkMath::Matrix3x3ToQuaternion(const MatrixT& A, QuaternionT&& q)
 {
   vtkMatrix3x3ToQuaternion(A, q);
 }
+VTK_ABI_NAMESPACE_END
 
 namespace vtk_detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 // Can't specialize templates inside a template class, so we move the impl here.
 template <typename OutT>
 void RoundDoubleToIntegralIfNecessary(double val, OutT* ret)
@@ -2101,8 +2112,10 @@ inline void RoundDoubleToIntegralIfNecessary(double val, float* retVal)
 
   *retVal = static_cast<float>(val);
 }
+VTK_ABI_NAMESPACE_END
 } // end namespace vtk_detail
 
+VTK_ABI_NAMESPACE_BEGIN
 //-----------------------------------------------------------------------------
 #if defined(VTK_HAS_ISINF) || defined(VTK_HAS_STD_ISINF)
 #define VTK_MATH_ISINF_IS_INLINE
@@ -2144,4 +2157,5 @@ inline bool vtkMath::IsFinite(double x)
 }
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkMathPrivate.hxx b/Common/Core/vtkMathPrivate.hxx
index 3b28e526c8ed721d22ede6efcea026ef33928f88..8a35ad51561967d43c92510f22c04d038a829cad 100644
--- a/Common/Core/vtkMathPrivate.hxx
+++ b/Common/Core/vtkMathPrivate.hxx
@@ -33,6 +33,7 @@
 
 namespace vtkMathPrivate
 {
+VTK_ABI_NAMESPACE_BEGIN
 static constexpr int VTK_MATH_PRIVATE_PACK_SIZE = 4;
 
 //=============================================================================
@@ -953,5 +954,6 @@ public:
     y[2] = x[2] / M[2];
   }
 };
+VTK_ABI_NAMESPACE_END
 } // namespace vtkMathPrivate
 #endif
diff --git a/Common/Core/vtkMathUtilities.h b/Common/Core/vtkMathUtilities.h
index 9063cc086a1095931a1abfcc0f2df33966a73be2..79550395f38f274a6dc7cb3c3a7171e121e7fa55 100644
--- a/Common/Core/vtkMathUtilities.h
+++ b/Common/Core/vtkMathUtilities.h
@@ -27,6 +27,8 @@
 #ifndef vtkMathUtilities_h
 #define vtkMathUtilities_h
 
+#include "vtkABINamespace.h"
+
 #include <cmath>
 #include <limits>
 #include <tuple>
@@ -34,6 +36,7 @@
 
 namespace vtkMathUtilities
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 /**
  * Perform a fuzzy compare of floats/doubles, specify the allowed tolerance
@@ -137,6 +140,7 @@ void UpdateRange(A& min0, A& max0, const A& value,
   }
 }
 
+VTK_ABI_NAMESPACE_END
 } // End vtkMathUtilities namespace.
 
 #endif // vtkMathUtilities_h
diff --git a/Common/Core/vtkMatrixUtilities.h b/Common/Core/vtkMatrixUtilities.h
index 3576dc9faa0e4d988863598a7071ec695e9cfa98..00d45a3362ba38d1b91f22bfea2887fa05ccbe00 100644
--- a/Common/Core/vtkMatrixUtilities.h
+++ b/Common/Core/vtkMatrixUtilities.h
@@ -27,10 +27,13 @@
 #ifndef vtkMatrixUtilities_h
 #define vtkMatrixUtilities_h
 
+#include "vtkABINamespace.h"
+
 #include <type_traits> // for type traits
 
 namespace vtkMatrixUtilities
 {
+VTK_ABI_NAMESPACE_BEGIN
 //=============================================================================
 /**
  * This struct determines a prior transform to input matrices, changing the
@@ -353,6 +356,7 @@ public:
       MatrixLayoutIs2D<MatrixT>()>::template Get<RowT, ColT>(M);
   }
 };
+VTK_ABI_NAMESPACE_END
 } // namespace vtkMatrixUtilities
 #endif
 
diff --git a/Common/Core/vtkMersenneTwister.cxx b/Common/Core/vtkMersenneTwister.cxx
index e62235425837e4432ea8bf3d5ba475ac600dd682..32229b04b7e5ea2fef8d357281153a9385acc332 100644
--- a/Common/Core/vtkMersenneTwister.cxx
+++ b/Common/Core/vtkMersenneTwister.cxx
@@ -124,6 +124,7 @@ const int* MersenneExponentsEnd = MersenneExponents + NMersenneExponents;
 #include "vtkMersenneTwister.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMersenneTwisterInternals : public MersenneTwister
 {
 public:
@@ -227,3 +228,4 @@ void vtkMersenneTwister::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkMersenneTwister.h b/Common/Core/vtkMersenneTwister.h
index 9ab2b804e79d84dac9fed0ff6e27b037956aa493..f13b6dfd401140773573b8c20c32ea2b44d8db36 100644
--- a/Common/Core/vtkMersenneTwister.h
+++ b/Common/Core/vtkMersenneTwister.h
@@ -71,6 +71,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkRandomSequence.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMersenneTwisterInternals;
 
 class VTKCOMMONCORE_EXPORT vtkMersenneTwister : public vtkRandomSequence
@@ -147,4 +148,5 @@ private:
   void operator=(const vtkMersenneTwister&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // #ifndef vtkMersenneTwister_h
diff --git a/Common/Core/vtkMersenneTwister_Private.cxx b/Common/Core/vtkMersenneTwister_Private.cxx
index 04a413018b997cddd195bec432ed71c6bd973596..1bdfec96ef51acca09a89297f17092992b09629c 100644
--- a/Common/Core/vtkMersenneTwister_Private.cxx
+++ b/Common/Core/vtkMersenneTwister_Private.cxx
@@ -89,6 +89,8 @@ typedef vtkTypeUInt8 uint8_t;
 
 //  dc.h
 
+VTK_ABI_NAMESPACE_BEGIN
+
 typedef struct mt_struct_ {
     uint32_t aaa;
     int mm,nn,rr,ww;
@@ -1765,6 +1767,8 @@ int CheckPeriod_dc_(check32_t *ck, org_state_ *st,
     return REDU;
 }
 
+VTK_ABI_NAMESPACE_END
+
 #undef N
 #undef NOT_REJECTED
 #undef REJECTED
diff --git a/Common/Core/vtkMeta.h b/Common/Core/vtkMeta.h
index 92474302374a4a4470d83bbaa949f0b5baca5b09..284c5c82dd728b0c3976995a275887124957427e 100644
--- a/Common/Core/vtkMeta.h
+++ b/Common/Core/vtkMeta.h
@@ -16,6 +16,8 @@
 #ifndef vtkMeta_h
 #define vtkMeta_h
 
+#include "vtkABINamespace.h"
+
 #include <type_traits>
 #include <utility>
 
@@ -26,17 +28,20 @@
  */
 
 // Forward decs for StripPointers:
+VTK_ABI_NAMESPACE_BEGIN
 template <typename ArrayType>
 class vtkNew;
 template <typename ArrayType>
 class vtkSmartPointer;
 template <typename ArrayType>
 class vtkWeakPointer;
+VTK_ABI_NAMESPACE_END
 
 namespace vtk
 {
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 // Strip vtkNew, vtkSmartPointer, etc from a type.
@@ -86,6 +91,7 @@ public:
   static constexpr bool value = bool_constant::value;
 };
 
+VTK_ABI_NAMESPACE_END
 }
 } // end namespace vtk::detail
 
diff --git a/Common/Core/vtkMinimalStandardRandomSequence.cxx b/Common/Core/vtkMinimalStandardRandomSequence.cxx
index 220a888b7106d2a179d020aafd35d35c845355f1..ad87ad385dd366d25e95bc788d2feb7b801294a6 100644
--- a/Common/Core/vtkMinimalStandardRandomSequence.cxx
+++ b/Common/Core/vtkMinimalStandardRandomSequence.cxx
@@ -16,6 +16,7 @@
 #include "vtkObjectFactory.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMinimalStandardRandomSequence);
 
 const int VTK_K_A = 16807;
@@ -121,3 +122,4 @@ void vtkMinimalStandardRandomSequence::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkMinimalStandardRandomSequence.h b/Common/Core/vtkMinimalStandardRandomSequence.h
index b0be7260be0f8e55e7b55c8150470eec59ca1acb..274f534450900894a488a4b9acafa952537274e5 100644
--- a/Common/Core/vtkMinimalStandardRandomSequence.h
+++ b/Common/Core/vtkMinimalStandardRandomSequence.h
@@ -38,6 +38,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkRandomSequence.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkMinimalStandardRandomSequence : public vtkRandomSequence
 {
 public:
@@ -134,4 +135,5 @@ private:
   void operator=(const vtkMinimalStandardRandomSequence&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // #ifndef vtkMinimalStandardRandomSequence_h
diff --git a/Common/Core/vtkMultiThreader.cxx b/Common/Core/vtkMultiThreader.cxx
index 1ca92374a2bf6748e60a86e395f7cb53e90c5133..b67b0b888ac013b316d19e1fd3cad6552444f4ad 100644
--- a/Common/Core/vtkMultiThreader.cxx
+++ b/Common/Core/vtkMultiThreader.cxx
@@ -17,7 +17,9 @@
 #include "vtkObjectFactory.h"
 #include "vtkWindows.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMultiThreader);
+VTK_ABI_NAMESPACE_END
 
 // Need to define "vtkExternCThreadFunctionType" to avoid warning on some
 // platforms about passing function pointer to an argument expecting an
@@ -39,6 +41,7 @@ typedef vtkThreadFunctionType vtkExternCThreadFunctionType;
 #endif
 
 // Initialize static member that controls global maximum number of threads
+VTK_ABI_NAMESPACE_BEGIN
 static int vtkMultiThreaderGlobalMaximumNumberOfThreads = 0;
 
 void vtkMultiThreader::SetGlobalMaximumNumberOfThreads(int val)
@@ -642,3 +645,4 @@ void vtkMultiThreader::PrintSelf(ostream& os, vtkIndent indent)
 #endif
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkMultiThreader.h b/Common/Core/vtkMultiThreader.h
index 0d8fd81fee64cca25afcd03838f3342cf5316833..ceed5310459a50671a85ab19f2ffe9c5e7829e95 100644
--- a/Common/Core/vtkMultiThreader.h
+++ b/Common/Core/vtkMultiThreader.h
@@ -73,6 +73,7 @@ typedef int vtkThreadProcessIDType;
 typedef int vtkMultiThreaderIDType;
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkMultiThreader : public vtkObject
 {
 public:
@@ -233,4 +234,5 @@ private:
 
 using ThreadInfoStruct = vtkMultiThreader::ThreadInfo;
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkNew.h b/Common/Core/vtkNew.h
index 06a06576f0c06bc49277445f6433ff35327db289..cc5470255971f8be5211b6c74aad29f6d1609eb8 100644
--- a/Common/Core/vtkNew.h
+++ b/Common/Core/vtkNew.h
@@ -49,6 +49,7 @@
 
 #include <type_traits> // for is_base_of
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkObjectBase;
 
 template <class T>
@@ -171,5 +172,6 @@ private:
   T* Object;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkNew.h
diff --git a/Common/Core/vtkOStrStreamWrapper.cxx b/Common/Core/vtkOStrStreamWrapper.cxx
index 5da8eac9f573790e413d05d165bcfde2a0a3370f..b42fd4fb480130418294e6c3931de2ef0b253b1a 100644
--- a/Common/Core/vtkOStrStreamWrapper.cxx
+++ b/Common/Core/vtkOStrStreamWrapper.cxx
@@ -22,6 +22,7 @@
 using std::ostringstream;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkOStrStreamWrapper::vtkOStrStreamWrapper()
   : vtkOStreamWrapper(*(new ostringstream))
 {
@@ -69,3 +70,4 @@ void vtkOStrStreamWrapper::freeze(int f)
 {
   this->Frozen = f;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkOStrStreamWrapper.h b/Common/Core/vtkOStrStreamWrapper.h
index 77f40477dde214dd88195d68d2fb2db40208d90a..babfa1cfe1b124ee55686e56ff1138812fb9200b 100644
--- a/Common/Core/vtkOStrStreamWrapper.h
+++ b/Common/Core/vtkOStrStreamWrapper.h
@@ -33,6 +33,7 @@
 Do_not_include_vtkOStrStreamWrapper_directly_vtkSystemIncludes_includes_it;
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkOStrStreamWrapper : public vtkOStreamWrapper
 {
 public:
@@ -80,5 +81,6 @@ private:
   vtkOStrStreamWrapper& operator=(const vtkOStrStreamWrapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkOStrStreamWrapper.h
diff --git a/Common/Core/vtkOStreamWrapper.cxx b/Common/Core/vtkOStreamWrapper.cxx
index 32b7e83fe882b60ca08e86ee98349b81767cad5c..c985d303eb202cf31f71ee5240e070a7deb0cc64 100644
--- a/Common/Core/vtkOStreamWrapper.cxx
+++ b/Common/Core/vtkOStreamWrapper.cxx
@@ -38,6 +38,7 @@
   }
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkOStreamWrapper::vtkOStreamWrapper(ostream& os)
   : ostr(os)
 {
@@ -136,3 +137,4 @@ void vtkOStreamWrapper::flush()
 {
   this->ostr.flush();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkOStreamWrapper.h b/Common/Core/vtkOStreamWrapper.h
index 9c8a5dc3cfd6c2101245804cac0c9a400f3c3480..fb5d1619ad232b804c8cc0bb72b118390fe8c78d 100644
--- a/Common/Core/vtkOStreamWrapper.h
+++ b/Common/Core/vtkOStreamWrapper.h
@@ -33,6 +33,7 @@
 Do_not_include_vtkOStreamWrapper_directly_vtkSystemIncludes_includes_it;
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIndent;
 class vtkObjectBase;
 class vtkLargeInteger;
@@ -168,5 +169,6 @@ private:
   vtkOStreamWrapper& operator<<(std_string const&);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkOStreamWrapper.h
diff --git a/Common/Core/vtkObject.cxx b/Common/Core/vtkObject.cxx
index 5d5c1816bdbd40053481ddc947fcfebd5cde13f7..747f53a1ecaa634a986e132fd62946c57cab9308 100644
--- a/Common/Core/vtkObject.cxx
+++ b/Common/Core/vtkObject.cxx
@@ -26,6 +26,7 @@
 #include <vector>
 
 // Initialize static member that controls warning display
+VTK_ABI_NAMESPACE_BEGIN
 static int vtkObjectGlobalWarningDisplay = 1;
 
 //------------------------------------------------------------------------------
@@ -1008,3 +1009,4 @@ std::string vtkObject::GetObjectDescription() const
   }
   return s.str();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkObject.h b/Common/Core/vtkObject.h
index b4a5123637ef324e234a162e83ef34677aa5fab4..23a4306979a5a1bc46823773861dd57f678eaaa6 100644
--- a/Common/Core/vtkObject.h
+++ b/Common/Core/vtkObject.h
@@ -47,6 +47,7 @@
 #include "vtkTimeStamp.h"
 #include "vtkWeakPointerBase.h" // needed for vtkWeakPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSubjectHelper;
 class vtkCommand;
 
@@ -420,5 +421,6 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkObject.h
diff --git a/Common/Core/vtkObjectBase.cxx b/Common/Core/vtkObjectBase.cxx
index e06ef845bea6b0715a384d673bf68383e0ccdafe..a7d4db00895575d87239b84baab1a21c428b36df 100644
--- a/Common/Core/vtkObjectBase.cxx
+++ b/Common/Core/vtkObjectBase.cxx
@@ -24,11 +24,14 @@
 
 #ifdef VTK_USE_MEMKIND
 #include <memkind.h>
+VTK_ABI_NAMESPACE_BEGIN
 struct memkind* MemkindHandle = nullptr;
+VTK_ABI_NAMESPACE_END
 #endif
 
 #define vtkBaseDebugMacro(x)
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkObjectBaseToGarbageCollectorFriendship
 {
 public:
@@ -365,6 +368,7 @@ void vtkObjectBase::ReportReferences(vtkGarbageCollector*)
 {
   // vtkObjectBase has no references to report.
 }
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -378,6 +382,7 @@ VTK_THREAD_LOCAL vtkFreeingFunction CurrentFreeFunction = free;
 VTK_THREAD_LOCAL vtkFreeingFunction AlternateFreeFunction = vtkCustomFree;
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 void vtkObjectBase::SetMemkindDirectory(const char* directoryname)
 {
@@ -522,3 +527,4 @@ void vtkObjectBase::vtkMemkindRAII::Restore()
   vtkObjectBase::SetUsingMemkind(this->OriginalValue);
 #endif
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkObjectBase.h b/Common/Core/vtkObjectBase.h
index 461befac19c73aebd81d255da0714ba08773bcb2..ec5bfaedc3ae8488f275c0e9fd821daf532bc0de 100644
--- a/Common/Core/vtkObjectBase.h
+++ b/Common/Core/vtkObjectBase.h
@@ -57,6 +57,7 @@
 #include <atomic> // For std::atomic
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGarbageCollector;
 class vtkGarbageCollectorToObjectBaseFriendship;
 class vtkWeakPointerBase;
@@ -330,6 +331,7 @@ protected:
   vtkObjectBase(const vtkObjectBase&) {}
   void operator=(const vtkObjectBase&) {}
 };
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkObjectBase.h
diff --git a/Common/Core/vtkObjectFactory.cxx b/Common/Core/vtkObjectFactory.cxx
index 77c5d59c6187f294c7994a23ee55d840231b317f..0ad902a772cebb629837f44d80e6e32fd8732834 100644
--- a/Common/Core/vtkObjectFactory.cxx
+++ b/Common/Core/vtkObjectFactory.cxx
@@ -25,6 +25,7 @@
 
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryCollection* vtkObjectFactory::RegisteredFactories = nullptr;
 static unsigned int vtkObjectFactoryRegistryCleanupCounter = 0;
 
@@ -646,3 +647,4 @@ void vtkObjectFactory::CreateAllInstance(const char* vtkclassname, vtkCollection
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkObjectFactory.h b/Common/Core/vtkObjectFactory.h
index 7f9bd20bc073bf4a731d4186ad18f29324c1ae9e..16a01acbb86c8baea5462167b16ae35ae44c065f 100644
--- a/Common/Core/vtkObjectFactory.h
+++ b/Common/Core/vtkObjectFactory.h
@@ -45,6 +45,7 @@
 
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkObjectFactoryCollection;
 class vtkOverrideInformationCollection;
 class vtkCollection;
@@ -288,6 +289,7 @@ static vtkObjectFactoryRegistryCleanup vtkObjectFactoryRegistryCleanupInstance;
 #define VTK_CREATE_CREATE_FUNCTION(classname)                                                      \
   static vtkObject* vtkObjectFactoryCreate##classname() { return classname::New(); }
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 #define VTK_FACTORY_INTERFACE_EXPORT VTKCOMMONCORE_EXPORT
diff --git a/Common/Core/vtkObjectFactoryCollection.cxx b/Common/Core/vtkObjectFactoryCollection.cxx
index 2b4a632446eccab1335d707d35d06e0e4cf97728..4922f77a701120dd32bf983889d835547edd00a0 100644
--- a/Common/Core/vtkObjectFactoryCollection.cxx
+++ b/Common/Core/vtkObjectFactoryCollection.cxx
@@ -17,6 +17,7 @@
 #include "vtkDebugLeaks.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryCollection* vtkObjectFactoryCollection::New()
 {
   // Don't use the object factory macros. Creating an object factory here
@@ -30,3 +31,4 @@ void vtkObjectFactoryCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkObjectFactoryCollection.h b/Common/Core/vtkObjectFactoryCollection.h
index ebff6718bc57af8e661bf4a8b789d60003801392..bb8d2f3b91108db90999771424a679ecc750ab6e 100644
--- a/Common/Core/vtkObjectFactoryCollection.h
+++ b/Common/Core/vtkObjectFactoryCollection.h
@@ -31,6 +31,7 @@
 
 #include "vtkObjectFactory.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkObjectFactoryCollection : public vtkCollection
 {
 public:
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkObjectFactoryCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkOldStyleCallbackCommand.cxx b/Common/Core/vtkOldStyleCallbackCommand.cxx
index 4ec540f6b8021b87199e8d3f7d78e2a929f65e50..2fd8eca4554999d2741e764ab115984062edc9e7 100644
--- a/Common/Core/vtkOldStyleCallbackCommand.cxx
+++ b/Common/Core/vtkOldStyleCallbackCommand.cxx
@@ -21,6 +21,7 @@
 #include <cstring>
 
 //----------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkOldStyleCallbackCommand::vtkOldStyleCallbackCommand()
 {
   this->ClientData = nullptr;
@@ -43,3 +44,4 @@ void vtkOldStyleCallbackCommand::Execute(vtkObject*, unsigned long, void*)
     this->Callback(this->ClientData);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkOldStyleCallbackCommand.h b/Common/Core/vtkOldStyleCallbackCommand.h
index ea9ecdfc817e76b45ab988dc7c145774822badbc..39b407b2ed8185ac518d3e012780d82d3e2ac23a 100644
--- a/Common/Core/vtkOldStyleCallbackCommand.h
+++ b/Common/Core/vtkOldStyleCallbackCommand.h
@@ -38,6 +38,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 
 // the old style void fund(void *) callbacks
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkOldStyleCallbackCommand : public vtkCommand
 {
 public:
@@ -68,6 +69,7 @@ protected:
   ~vtkOldStyleCallbackCommand() override;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkOldStyleCallbackCommand_h */
 
 // VTK-HeaderTest-Exclude: vtkOldStyleCallbackCommand.h
diff --git a/Common/Core/vtkOutputWindow.cxx b/Common/Core/vtkOutputWindow.cxx
index a8cd85f66b5da5c73830f3e017c9aa89b7d5b576..cb2839159d5785e435945687e703218566e73663 100644
--- a/Common/Core/vtkOutputWindow.cxx
+++ b/Common/Core/vtkOutputWindow.cxx
@@ -50,6 +50,7 @@ public:
 };
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 std::mutex InstanceLock; // XXX(c++17): use a `shared_mutex`
 vtkSmartPointer<vtkOutputWindow> vtkOutputWindowGlobalInstance;
@@ -368,3 +369,4 @@ void vtkOutputWindow::SetInstance(vtkOutputWindow* instance)
 
   vtkOutputWindowGlobalInstance = vtk::MakeSmartPointer(instance);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkOutputWindow.h b/Common/Core/vtkOutputWindow.h
index 06e6160d2f87eef566d9b8321aff490395ff923c..fb80340c867ff46bf1057b043bfd98411d7efbc7 100644
--- a/Common/Core/vtkOutputWindow.h
+++ b/Common/Core/vtkOutputWindow.h
@@ -30,6 +30,7 @@
 #include "vtkDeprecation.h"       // For `VTK_DEPRECATED_IN_9_3_0`
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTK_DEPRECATED_IN_9_3_0(
   "`vtkOutputWindowCleanup` is no longer necessary") VTKCOMMONCORE_EXPORT vtkOutputWindowCleanup
 {
@@ -186,4 +187,5 @@ private:
   void operator=(const vtkOutputWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkOverrideInformation.cxx b/Common/Core/vtkOverrideInformation.cxx
index 8d876d485aa393213745ad04e6ed56cc2ef1a72d..3492bec1aab050da4f892f8c460d930a4d22d699 100644
--- a/Common/Core/vtkOverrideInformation.cxx
+++ b/Common/Core/vtkOverrideInformation.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOverrideInformation);
 vtkCxxSetObjectMacro(vtkOverrideInformation, ObjectFactory, vtkObjectFactory);
 
@@ -64,3 +65,4 @@ void vtkOverrideInformation::PrintSelf(ostream& os, vtkIndent indent)
     os << n << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkOverrideInformation.h b/Common/Core/vtkOverrideInformation.h
index 7b40aa22a7f446bb9cb27c01fa8c97a62efef815..89e11f70c4ff2a853a6b08f0f95df12f81dad19a 100644
--- a/Common/Core/vtkOverrideInformation.h
+++ b/Common/Core/vtkOverrideInformation.h
@@ -27,6 +27,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkObjectFactory;
 
 class VTKCOMMONCORE_EXPORT vtkOverrideInformation : public vtkObject
@@ -102,4 +103,5 @@ private:
   void operator=(const vtkOverrideInformation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkOverrideInformationCollection.cxx b/Common/Core/vtkOverrideInformationCollection.cxx
index 657766e456624a1bb543aface28403b88922ec2d..a1df099ba62cbf38e36f0cb958d9625d50be36c9 100644
--- a/Common/Core/vtkOverrideInformationCollection.cxx
+++ b/Common/Core/vtkOverrideInformationCollection.cxx
@@ -15,9 +15,11 @@
 #include "vtkOverrideInformationCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOverrideInformationCollection);
 
 void vtkOverrideInformationCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkOverrideInformationCollection.h b/Common/Core/vtkOverrideInformationCollection.h
index 739056c7975dbc172dd67a67ce1abd0a74b9b823..5a7867f31f031e7c8628cfe7b9679812722a88c3 100644
--- a/Common/Core/vtkOverrideInformationCollection.h
+++ b/Common/Core/vtkOverrideInformationCollection.h
@@ -30,6 +30,7 @@
 
 #include "vtkOverrideInformation.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkOverrideInformationCollection : public vtkCollection
 {
 public:
@@ -79,4 +80,5 @@ inline vtkOverrideInformation* vtkOverrideInformationCollection::GetNextItem()
   return static_cast<vtkOverrideInformation*>(this->GetNextItemAsObject());
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkPoints.cxx b/Common/Core/vtkPoints.cxx
index 0f54497751d97869e0da39145049f0b1703ee074..3865d3d6cfce40a0576b3a3b76d6f17c29647164 100644
--- a/Common/Core/vtkPoints.cxx
+++ b/Common/Core/vtkPoints.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkPoints* vtkPoints::New(int dataType)
 {
   // First try to create the object from the vtkObjectFactory
@@ -284,3 +285,4 @@ void vtkPoints::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "  Ymin,Ymax: (" << bounds[2] << ", " << bounds[3] << ")\n";
   os << indent << "  Zmin,Zmax: (" << bounds[4] << ", " << bounds[5] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkPoints.h b/Common/Core/vtkPoints.h
index d70e6e09689ffc79c9169826804f392048c92b0e..b6363b63322ce97e85a46d54f432be5bdd6367fa 100644
--- a/Common/Core/vtkPoints.h
+++ b/Common/Core/vtkPoints.h
@@ -28,6 +28,7 @@
 
 #include "vtkDataArray.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 
 class VTKCOMMONCORE_EXPORT vtkPoints : public vtkObject
@@ -302,4 +303,5 @@ inline vtkIdType vtkPoints::InsertNextPoint(double x, double y, double z)
   return this->Data->InsertNextTuple(p);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkPoints2D.cxx b/Common/Core/vtkPoints2D.cxx
index 3abab6f06c1e920f99bfb9ffab5bc514c7488bc6..ed5efb1ca176c0ca65fc2bb4fc3a26a552e521bd 100644
--- a/Common/Core/vtkPoints2D.cxx
+++ b/Common/Core/vtkPoints2D.cxx
@@ -30,6 +30,7 @@
 #include "vtkUnsignedShortArray.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkPoints2D* vtkPoints2D::New(int dataType)
 {
   // First try to create the object from the vtkObjectFactory
@@ -232,3 +233,4 @@ void vtkPoints2D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "  Xmin,Xmax: (" << bounds[0] << ", " << bounds[1] << ")\n";
   os << indent << "  Ymin,Ymax: (" << bounds[2] << ", " << bounds[3] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkPoints2D.h b/Common/Core/vtkPoints2D.h
index 35269e1c0d6b07f6b9d997b4140cf61094aafc22..552ee17472f5dc22e12c6fa67b6327d5847205e0 100644
--- a/Common/Core/vtkPoints2D.h
+++ b/Common/Core/vtkPoints2D.h
@@ -28,6 +28,7 @@
 
 #include "vtkDataArray.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 
 class VTKCOMMONCORE_EXPORT vtkPoints2D : public vtkObject
@@ -250,4 +251,5 @@ inline vtkIdType vtkPoints2D::InsertNextPoint(double x, double y)
   return this->Data->InsertNextTuple(p);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkPriorityQueue.cxx b/Common/Core/vtkPriorityQueue.cxx
index 482d1d9589ea869a56212cde3e81d8f366b250fe..b8d638e678675f992163cba88301a9408eafe053 100644
--- a/Common/Core/vtkPriorityQueue.cxx
+++ b/Common/Core/vtkPriorityQueue.cxx
@@ -15,6 +15,7 @@
 #include "vtkPriorityQueue.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPriorityQueue);
 
 // Instantiate priority queue with default size and extension size of 1000.
@@ -241,3 +242,4 @@ void vtkPriorityQueue::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Size: " << this->Size << "\n";
   os << indent << "Extend size: " << this->Extend << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkPriorityQueue.h b/Common/Core/vtkPriorityQueue.h
index b8d2eebd4e83a33827d2c1ad54d7a0a3edb21bcf..f9a06487c981f38563e66b7c1ef9bd893510ec1f 100644
--- a/Common/Core/vtkPriorityQueue.h
+++ b/Common/Core/vtkPriorityQueue.h
@@ -43,6 +43,7 @@
 
 #include "vtkIdTypeArray.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkPriorityQueue : public vtkObject
 {
 public:
@@ -186,4 +187,5 @@ inline vtkIdType vtkPriorityQueue::Peek(vtkIdType location)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkRandomPool.cxx b/Common/Core/vtkRandomPool.cxx
index 5b3ace97352803b3152f3fa3443d920356381523..f061668e4f5e0a36bf519cb6f4bd48e301ab86cf 100644
--- a/Common/Core/vtkRandomPool.cxx
+++ b/Common/Core/vtkRandomPool.cxx
@@ -27,8 +27,10 @@
 #include <algorithm>
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRandomPool);
 vtkCxxSetObjectMacro(vtkRandomPool, Sequence, vtkRandomSequence);
+VTK_ABI_NAMESPACE_END
 
 //------------------------------------------------------------------------------
 // Static methods to populate a data array.
@@ -138,6 +140,8 @@ struct PopulateDAComponentLauncher
 
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //------------------------------------------------------------------------------
 vtkRandomPool::vtkRandomPool()
 {
@@ -362,3 +366,4 @@ void vtkRandomPool::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Number Of Components: " << this->NumberOfComponents << "\n";
   os << indent << "Chunk Size: " << this->ChunkSize << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkRandomPool.h b/Common/Core/vtkRandomPool.h
index 6ee2ef9de02da9f658b77aa30bf6af05fac92e35..c51946a32f82cfb7da0d86256b8d030f3871c722 100644
--- a/Common/Core/vtkRandomPool.h
+++ b/Common/Core/vtkRandomPool.h
@@ -42,6 +42,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRandomSequence;
 class vtkDataArray;
 
@@ -163,4 +164,5 @@ private:
   void operator=(const vtkRandomPool&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkRandomSequence.cxx b/Common/Core/vtkRandomSequence.cxx
index ca37afcfcbdf191871675629e65a9ff5c7fe7566..d3211a9a97d8809f92908877f32c774001e5f0d7 100644
--- a/Common/Core/vtkRandomSequence.cxx
+++ b/Common/Core/vtkRandomSequence.cxx
@@ -16,6 +16,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkRandomSequence::vtkRandomSequence() = default;
 
 //------------------------------------------------------------------------------
@@ -33,3 +34,4 @@ double vtkRandomSequence::GetNextValue()
   this->Next();
   return this->GetValue();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkRandomSequence.h b/Common/Core/vtkRandomSequence.h
index f5094e5e09c21dd651f37df39810266e993cd8ac..8f2212f6eafb15fd8e1dae84654e5dfbb36add07 100644
--- a/Common/Core/vtkRandomSequence.h
+++ b/Common/Core/vtkRandomSequence.h
@@ -34,6 +34,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkRandomSequence : public vtkObject
 {
 public:
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkRandomSequence&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // #ifndef vtkRandomSequence_h
diff --git a/Common/Core/vtkRange.h b/Common/Core/vtkRange.h
index dd09e1b38082585eead93b42d4f79ce5e7cfb89e..73e333b9ffc66859dc7f68cf6f6249a2852efcbd 100644
--- a/Common/Core/vtkRange.h
+++ b/Common/Core/vtkRange.h
@@ -25,6 +25,7 @@
 
 namespace vtk
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 /**
  * Generate an iterable STL proxy object for a VTK container.
@@ -90,6 +91,7 @@ auto Range(IterablePtr iterable, Options&&... opts) ->
   return RangeType{ iterable, std::forward<Options>(opts)... };
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtk
 
 #endif // vtkRange_h
diff --git a/Common/Core/vtkRangeIterableTraits.h b/Common/Core/vtkRangeIterableTraits.h
index b451232e38c90fb743fa32efa399700b59079b55..e4ccb3ba6c6f3a7a976ea5f7699731cec3715817 100644
--- a/Common/Core/vtkRangeIterableTraits.h
+++ b/Common/Core/vtkRangeIterableTraits.h
@@ -16,14 +16,19 @@
 #ifndef vtkRangeIterableTraits_h
 #define vtkRangeIterableTraits_h
 
+#include "vtkABINamespace.h"
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCollection;
 class vtkCompositeDataSet;
 class vtkDataObjectTree;
+VTK_ABI_NAMESPACE_END
 
 namespace vtk
 {
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename CollectionType>
 struct CollectionRange;
@@ -63,6 +68,7 @@ public:
   using RangeType = typename std::decay<RangeTypeInternal>::type;
 };
 
+VTK_ABI_NAMESPACE_END
 }
 }
 
diff --git a/Common/Core/vtkReferenceCount.cxx b/Common/Core/vtkReferenceCount.cxx
index 515d2c7dd7fa4774b02755dbebd107c6fbe9d773..a11b76047c222e0c5354cddd6e865a35c465bef3 100644
--- a/Common/Core/vtkReferenceCount.cxx
+++ b/Common/Core/vtkReferenceCount.cxx
@@ -15,6 +15,7 @@
 #include "vtkReferenceCount.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkReferenceCount);
 
 vtkReferenceCount::vtkReferenceCount() = default;
@@ -25,3 +26,4 @@ void vtkReferenceCount::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkReferenceCount.h b/Common/Core/vtkReferenceCount.h
index d123410edd7d3db68e44adde1a467cf59d0bc38e..8ea3f58b182de280de7ec958f6efaf4ded83c702 100644
--- a/Common/Core/vtkReferenceCount.h
+++ b/Common/Core/vtkReferenceCount.h
@@ -27,6 +27,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkReferenceCount : public vtkObject
 {
 public:
@@ -44,4 +45,5 @@ private:
   void operator=(const vtkReferenceCount&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkSMPThreadLocal.h b/Common/Core/vtkSMPThreadLocal.h
index 07609dd0ce26df4a420f3f406a44fa2d3827af4d..590d0bdd4be1654bd1fda669b0e78f5100e16d63 100644
--- a/Common/Core/vtkSMPThreadLocal.h
+++ b/Common/Core/vtkSMPThreadLocal.h
@@ -83,6 +83,7 @@
 
 #include "SMP/Common/vtkSMPThreadLocalAPI.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 class vtkSMPThreadLocal
 {
@@ -148,5 +149,6 @@ private:
   void operator=(const vtkSMPThreadLocal&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkSMPThreadLocal.h
diff --git a/Common/Core/vtkSMPThreadLocalObject.h b/Common/Core/vtkSMPThreadLocalObject.h
index a700f69cef78f302a44f6dc962f651626c7ccead..822b5ae81671a7579eeb88213146fc74e3b4b65b 100644
--- a/Common/Core/vtkSMPThreadLocalObject.h
+++ b/Common/Core/vtkSMPThreadLocalObject.h
@@ -76,6 +76,7 @@
 
 #include "vtkSMPThreadLocal.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 class vtkSMPThreadLocalObject
 {
@@ -202,5 +203,6 @@ private:
   T* Exemplar;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkSMPThreadLocalObject.h
diff --git a/Common/Core/vtkSMPTools.cxx b/Common/Core/vtkSMPTools.cxx
index 00fb805e6fe75cd541cbcf76be3fc22965d04d88..184bb12fd1e760d04d074ecc45626b29e7654ee6 100644
--- a/Common/Core/vtkSMPTools.cxx
+++ b/Common/Core/vtkSMPTools.cxx
@@ -18,6 +18,7 @@
 #include "vtkSMP.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 const char* vtkSMPTools::GetBackend()
 {
   auto& SMPToolsAPI = vtk::detail::smp::vtkSMPToolsAPI::GetInstance();
@@ -72,3 +73,4 @@ bool vtkSMPTools::GetSingleThread()
   auto& SMPToolsAPI = vtk::detail::smp::vtkSMPToolsAPI::GetInstance();
   return SMPToolsAPI.GetSingleThread();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkSMPTools.h b/Common/Core/vtkSMPTools.h
index e95a81f598e2f9989311f0a5489d6b7b7a6a7ae5..0e5b019de0a24bc0009cf87897101754195d7b73 100644
--- a/Common/Core/vtkSMPTools.h
+++ b/Common/Core/vtkSMPTools.h
@@ -46,6 +46,7 @@ namespace detail
 {
 namespace smp
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 class vtkSMPTools_Has_Initialize
 {
@@ -218,11 +219,13 @@ public:
 
 template <typename T>
 using resolvedNotInt = typename std::enable_if<!std::is_integral<T>::value, void>::type;
+VTK_ABI_NAMESPACE_END
 } // namespace smp
 } // namespace detail
 } // namespace vtk
 #endif // DOXYGEN_SHOULD_SKIP_THIS
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkSMPTools
 {
 public:
@@ -602,5 +605,6 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkSMPTools.h
diff --git a/Common/Core/vtkSOADataArrayTemplate.h b/Common/Core/vtkSOADataArrayTemplate.h
index a25876e186d340878f7e1ec8254445c700d899ec..c65d5739a45f090ca2d0aaa03f9f7e5117942590 100644
--- a/Common/Core/vtkSOADataArrayTemplate.h
+++ b/Common/Core/vtkSOADataArrayTemplate.h
@@ -35,6 +35,7 @@
 
 // The export macro below makes no sense, but is necessary for older compilers
 // when we export instantiations of this class from vtkCommonCore.
+VTK_ABI_NAMESPACE_BEGIN
 template <class ValueTypeT>
 class VTKCOMMONCORE_EXPORT vtkSOADataArrayTemplate
   : public vtkGenericDataArray<vtkSOADataArrayTemplate<ValueTypeT>, ValueTypeT>
@@ -243,6 +244,7 @@ private:
 // Declare vtkArrayDownCast implementations for SoA containers:
 vtkArrayDownCast_TemplateFastCastMacro(vtkSOADataArrayTemplate);
 
+VTK_ABI_NAMESPACE_END
 #endif // header guard
 
 // This portion must be OUTSIDE the include blockers. This is used to tell
@@ -253,9 +255,13 @@ vtkArrayDownCast_TemplateFastCastMacro(vtkSOADataArrayTemplate);
 #define VTK_SOA_DATA_ARRAY_TEMPLATE_INSTANTIATE(T)                                                 \
   namespace vtkDataArrayPrivate                                                                    \
   {                                                                                                \
+  VTK_ABI_NAMESPACE_BEGIN                                                                          \
   VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkSOADataArrayTemplate<T>, double);                        \
+  VTK_ABI_NAMESPACE_END                                                                            \
   }                                                                                                \
-  template class VTKCOMMONCORE_EXPORT vtkSOADataArrayTemplate<T>
+  VTK_ABI_NAMESPACE_BEGIN                                                                          \
+  template class VTKCOMMONCORE_EXPORT vtkSOADataArrayTemplate<T>;                                  \
+  VTK_ABI_NAMESPACE_END
 
 #elif defined(VTK_USE_EXTERN_TEMPLATE)
 #ifndef VTK_SOA_DATA_ARRAY_TEMPLATE_EXTERN
@@ -266,10 +272,12 @@ vtkArrayDownCast_TemplateFastCastMacro(vtkSOADataArrayTemplate);
 // dllexport and is used from another class in vtkCommonCore
 #pragma warning(disable : 4910) // extern and dllexport incompatible
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkSOADataArrayTemplate);
 #ifdef _MSC_VER
 #pragma warning(pop)
 #endif
+VTK_ABI_NAMESPACE_END
 #endif // VTK_SOA_DATA_ARRAY_TEMPLATE_EXTERN
 
 // The following clause is only for MSVC 2008 and 2010
@@ -297,10 +305,12 @@ vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkSOADataArra
 
 // Use an "extern explicit instantiation" to give the class a DLL
 // interface.  This is a compiler-specific extension.
+VTK_ABI_NAMESPACE_BEGIN
 vtkInstantiateTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkSOADataArrayTemplate);
 
 #pragma warning(pop)
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkSOADataArrayTemplate.h
diff --git a/Common/Core/vtkSOADataArrayTemplate.txx b/Common/Core/vtkSOADataArrayTemplate.txx
index d1e6a06367033a70348895b12956c74c459ea708..8e590ad0a028a682e1e534fb8298e070b24ffe73 100644
--- a/Common/Core/vtkSOADataArrayTemplate.txx
+++ b/Common/Core/vtkSOADataArrayTemplate.txx
@@ -30,6 +30,7 @@
 #include <cassert>
 
 //-----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <class ValueType>
 vtkSOADataArrayTemplate<ValueType>* vtkSOADataArrayTemplate<ValueType>::New()
 {
@@ -384,4 +385,5 @@ void vtkSOADataArrayTemplate<ValueType>::ExportToVoidPointer(void* voidPtr)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkScalarsToColors.cxx b/Common/Core/vtkScalarsToColors.cxx
index 823bb2cd00df3c80ef984fb818bfa8da885a2cf6..faf4aa7c7bea63d20667f6c813898d91cd632681 100644
--- a/Common/Core/vtkScalarsToColors.cxx
+++ b/Common/Core/vtkScalarsToColors.cxx
@@ -31,6 +31,7 @@
 // Note you cannot use a map or sort etc as the
 // comparison operator for vtkVarient is not suitable
 // for strict sorting.
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScalarsToColors::vtkInternalAnnotatedValueList : public std::list<vtkVariant>
 {
 };
@@ -457,6 +458,7 @@ void vtkScalarsToColors::MapScalarsThroughTable(
   this->MapScalarsThroughTable(scalars->GetVoidPointer(0), output, scalars->GetDataType(),
     scalars->GetNumberOfTuples(), scalars->GetNumberOfComponents(), outputFormat);
 }
+VTK_ABI_NAMESPACE_END
 
 //------------------------------------------------------------------------------
 // Color type converters in anonymous namespace
@@ -1072,6 +1074,7 @@ unsigned char* vtkScalarsToColorsUnpackBits(void* inPtr, vtkIdType numValues)
 // end anonymous namespace
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 void vtkScalarsToColors::MapColorsToColors(void* inPtr, unsigned char* outPtr, int inputDataType,
   int numberOfTuples, int numberOfComponents, int inputFormat, int outputFormat)
@@ -1838,3 +1841,4 @@ void vtkScalarsToColors::UpdateAnnotatedValueMap()
     this->AnnotatedValueList->push_back(this->AnnotatedValues->GetVariantValue(i));
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkScalarsToColors.h b/Common/Core/vtkScalarsToColors.h
index ea8d1c317bb42da7f635984e625fef94e60571f8..69a3e54bb756c651a4ad0336f522c2fefe243d42 100644
--- a/Common/Core/vtkScalarsToColors.h
+++ b/Common/Core/vtkScalarsToColors.h
@@ -50,6 +50,7 @@
 #include "vtkObject.h"
 #include "vtkVariant.h" // Set/get annotation methods require variants.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkDataArray;
 class vtkUnsignedCharArray;
@@ -483,4 +484,5 @@ inline unsigned char vtkScalarsToColors::ColorToUChar(float t)
 }
 ///@}
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkScaledSOADataArrayTemplate.h b/Common/Core/vtkScaledSOADataArrayTemplate.h
index 285d2b5513b1aff12c9215a29592adbc1edbdcac..4c009e5e7f5fda6e170bf1398a580725131c0d85 100644
--- a/Common/Core/vtkScaledSOADataArrayTemplate.h
+++ b/Common/Core/vtkScaledSOADataArrayTemplate.h
@@ -41,6 +41,7 @@
 
 // The export macro below makes no sense, but is necessary for older compilers
 // when we export instantiations of this class from vtkCommonCore.
+VTK_ABI_NAMESPACE_BEGIN
 template <class ValueTypeT>
 class VTKCOMMONCORE_EXPORT vtkScaledSOADataArrayTemplate
   : public vtkGenericDataArray<vtkScaledSOADataArrayTemplate<ValueTypeT>, ValueTypeT>
@@ -292,6 +293,7 @@ private:
 // Declare vtkArrayDownCast implementations for scale SoA containers:
 vtkArrayDownCast_TemplateFastCastMacro(vtkScaledSOADataArrayTemplate);
 
+VTK_ABI_NAMESPACE_END
 #endif // header guard
 
 // This portion must be OUTSIDE the include blockers. This is used to tell
@@ -302,9 +304,13 @@ vtkArrayDownCast_TemplateFastCastMacro(vtkScaledSOADataArrayTemplate);
 #define VTK_SCALED_SOA_DATA_ARRAY_TEMPLATE_INSTANTIATE(T)                                          \
   namespace vtkDataArrayPrivate                                                                    \
   {                                                                                                \
+  VTK_ABI_NAMESPACE_BEGIN                                                                          \
   VTK_INSTANTIATE_VALUERANGE_ARRAYTYPE(vtkScaledSOADataArrayTemplate<T>, double);                  \
+  VTK_ABI_NAMESPACE_END                                                                            \
   }                                                                                                \
-  template class VTKCOMMONCORE_EXPORT vtkScaledSOADataArrayTemplate<T>
+  VTK_ABI_NAMESPACE_BEGIN                                                                          \
+  template class VTKCOMMONCORE_EXPORT vtkScaledSOADataArrayTemplate<T>;                            \
+  VTK_ABI_NAMESPACE_END
 
 #elif defined(VTK_USE_EXTERN_TEMPLATE)
 #ifndef VTK_SCALED_SOA_DATA_ARRAY_TEMPLATE_EXTERN
@@ -315,10 +321,12 @@ vtkArrayDownCast_TemplateFastCastMacro(vtkScaledSOADataArrayTemplate);
 // dllexport and is used from another class in vtkCommonCore
 #pragma warning(disable : 4910) // extern and dllexport incompatible
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkScaledSOADataArrayTemplate);
 #ifdef _MSC_VER
 #pragma warning(pop)
 #endif
+VTK_ABI_NAMESPACE_END
 #endif // VTK_SCALED_SOA_DATA_ARRAY_TEMPLATE_EXTERN
 
 // The following clause is only for MSVC 2008 and 2010
@@ -346,11 +354,13 @@ vtkExternTemplateMacro(extern template class VTKCOMMONCORE_EXPORT vtkScaledSOADa
 
 // Use an "extern explicit instantiation" to give the class a DLL
 // interface.  This is a compiler-specific extension.
+VTK_ABI_NAMESPACE_BEGIN
 vtkInstantiateTemplateMacro(
   extern template class VTKCOMMONCORE_EXPORT vtkScaledSOADataArrayTemplate);
 
 #pragma warning(pop)
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkScaledSOADataArrayTemplate.h
diff --git a/Common/Core/vtkScaledSOADataArrayTemplate.txx b/Common/Core/vtkScaledSOADataArrayTemplate.txx
index 2280a75d7936ecb64530f1f61568386bbc0d9f42..56cebeab8c8fcd73d887adc939ce1157003b2ab6 100644
--- a/Common/Core/vtkScaledSOADataArrayTemplate.txx
+++ b/Common/Core/vtkScaledSOADataArrayTemplate.txx
@@ -30,6 +30,7 @@
 #include <cassert>
 
 //-----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <class ValueType>
 vtkScaledSOADataArrayTemplate<ValueType>* vtkScaledSOADataArrayTemplate<ValueType>::New()
 {
@@ -371,4 +372,5 @@ void vtkScaledSOADataArrayTemplate<ValueType>::ExportToVoidPointer(void* voidPtr
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkSetGet.h b/Common/Core/vtkSetGet.h
index 511f682c88b5f471838c90867eaa2356b4349b6f..bc91183f3d80982976d088ad680b197d79f261cc 100644
--- a/Common/Core/vtkSetGet.h
+++ b/Common/Core/vtkSetGet.h
@@ -758,6 +758,7 @@
 // This is to avoid vtkObject #include of vtkOutputWindow
 // while vtkOutputWindow #includes vtkObject
 
+VTK_ABI_NAMESPACE_BEGIN
 extern VTKCOMMONCORE_EXPORT void vtkOutputWindowDisplayText(const char*);
 extern VTKCOMMONCORE_EXPORT void vtkOutputWindowDisplayErrorText(const char*);
 extern VTKCOMMONCORE_EXPORT void vtkOutputWindowDisplayWarningText(const char*);
@@ -775,6 +776,7 @@ extern VTKCOMMONCORE_EXPORT void vtkOutputWindowDisplayGenericWarningText(
   const char*, int, const char*);
 extern VTKCOMMONCORE_EXPORT void vtkOutputWindowDisplayDebugText(
   const char*, int, const char*, vtkObject* sourceObj);
+VTK_ABI_NAMESPACE_END
 
 //
 // This macro is used for any output that may not be in an instance method
diff --git a/Common/Core/vtkShortArray.cxx b/Common/Core/vtkShortArray.cxx
index b62b5a459643f6b2bbb1bc2bc310291ab1b089af..c0eba2ac8323c059f1597b70476283f415a12556 100644
--- a/Common/Core/vtkShortArray.cxx
+++ b/Common/Core/vtkShortArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(short);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkShortArray);
 vtkStandardExtendedNewMacro(vtkShortArray);
 
@@ -36,3 +37,4 @@ void vtkShortArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkShortArray.h b/Common/Core/vtkShortArray.h
index 0216c18b74d726ed66980464b498b6bdf9c0624c..d36095410d7b18f6419dac7ccdf7dc486b6909ac 100644
--- a/Common/Core/vtkShortArray.h
+++ b/Common/Core/vtkShortArray.h
@@ -36,6 +36,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<short>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkShortArray : public vtkDataArray
 {
 public:
@@ -86,4 +87,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkShortArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkSignedCharArray.cxx b/Common/Core/vtkSignedCharArray.cxx
index b354e0fee66aa20f29630c2d7fbc520fe1e701c9..dda4f6b318d79db9e438d2a6077967e60f674945 100644
--- a/Common/Core/vtkSignedCharArray.cxx
+++ b/Common/Core/vtkSignedCharArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(signed char);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSignedCharArray);
 vtkStandardExtendedNewMacro(vtkSignedCharArray);
 
@@ -36,3 +37,4 @@ void vtkSignedCharArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkSignedCharArray.h b/Common/Core/vtkSignedCharArray.h
index e6f82c55d32a815e96767bf2f57302cf511b49d8..020fd9941e03cf85951a028304c3170041c72a1b 100644
--- a/Common/Core/vtkSignedCharArray.h
+++ b/Common/Core/vtkSignedCharArray.h
@@ -32,6 +32,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<signed char>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkSignedCharArray : public vtkDataArray
 {
 public:
@@ -82,4 +83,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkSignedCharArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkSmartPointer.h b/Common/Core/vtkSmartPointer.h
index 1c9bcc95fbdb1857701278a2fba77d349f54d2f4..08e9eae3853df919e353a183a860478d4f1a7d72 100644
--- a/Common/Core/vtkSmartPointer.h
+++ b/Common/Core/vtkSmartPointer.h
@@ -31,6 +31,7 @@
 #include <type_traits> // for is_base_of
 #include <utility>     // for std::move
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class T>
 class vtkSmartPointer : public vtkSmartPointerBase
 {
@@ -330,9 +331,11 @@ VTK_SMART_POINTER_DEFINE_OPERATOR(>)
 VTK_SMART_POINTER_DEFINE_OPERATOR(>=)
 
 #undef VTK_SMART_POINTER_DEFINE_OPERATOR
+VTK_ABI_NAMESPACE_END
 
 namespace vtk
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 /// Construct a vtkSmartPointer<T> containing @a obj. A new reference is added
 /// to @a obj.
@@ -350,8 +353,10 @@ vtkSmartPointer<T> TakeSmartPointer(T* obj)
   return vtkSmartPointer<T>::Take(obj);
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtk
 
+VTK_ABI_NAMESPACE_BEGIN
 /**
  * Streaming operator to print smart pointer like regular pointers.
  */
@@ -361,5 +366,6 @@ inline ostream& operator<<(ostream& os, const vtkSmartPointer<T>& p)
   return os << static_cast<const vtkSmartPointerBase&>(p);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkSmartPointer.h
diff --git a/Common/Core/vtkSmartPointerBase.cxx b/Common/Core/vtkSmartPointerBase.cxx
index 948fc1f51466b59f738c924761cbe4b4dd03b73a..9bb0faf207f7e3066fe910680c13ffff0954e001 100644
--- a/Common/Core/vtkSmartPointerBase.cxx
+++ b/Common/Core/vtkSmartPointerBase.cxx
@@ -17,6 +17,7 @@
 #include "vtkGarbageCollector.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkSmartPointerBase::vtkSmartPointerBase() noexcept
   : Object(nullptr)
 {
@@ -123,3 +124,4 @@ ostream& operator<<(ostream& os, const vtkSmartPointerBase& p)
   // Just print the pointer value into the stream.
   return os << static_cast<void*>(p.GetPointer());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkSmartPointerBase.h b/Common/Core/vtkSmartPointerBase.h
index 691b6ad4e62dfeb750fff6dfbb975dfe43f8c475..b80a36a2de7ebaca5fd5e468fb9a03647ed98cc9 100644
--- a/Common/Core/vtkSmartPointerBase.h
+++ b/Common/Core/vtkSmartPointerBase.h
@@ -29,6 +29,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObjectBase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkSmartPointerBase
 {
 public:
@@ -135,5 +136,6 @@ VTK_SMART_POINTER_BASE_DEFINE_OPERATOR(>=)
  */
 VTKCOMMONCORE_EXPORT ostream& operator<<(ostream& os, const vtkSmartPointerBase& p);
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkSmartPointerBase.h
diff --git a/Common/Core/vtkSortDataArray.cxx b/Common/Core/vtkSortDataArray.cxx
index 06e2291cb0ce51bd14ebd1b2f13546661553e832..cf18f8fe9c7bde1c5203554d1828119c41b0291b 100644
--- a/Common/Core/vtkSortDataArray.cxx
+++ b/Common/Core/vtkSortDataArray.cxx
@@ -37,6 +37,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSortDataArray);
 
 //------------------------------------------------------------------------------
@@ -98,6 +99,7 @@ void vtkSortDataArray::Sort(vtkAbstractArray* keys, int dir)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
 
 //------------------------------------------------------------------------------
 // Hide some stuff; mostly things plugged into templated functions
@@ -210,6 +212,7 @@ void ShuffleTuples(
 
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 // Allocate and initialize sort indices
 vtkIdType* vtkSortDataArray::InitializeSortIndices(vtkIdType num)
@@ -463,3 +466,4 @@ void vtkSortDataArray::PrintSelf(ostream& os, vtkIndent indent)
 }
 
 // vtkSortDataArray methods -------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkSortDataArray.h b/Common/Core/vtkSortDataArray.h
index df3271b0eb0068f2772b04a987dbc78c80dbd04a..91b9099067ccc73d49380902128988c5c6703abf 100644
--- a/Common/Core/vtkSortDataArray.h
+++ b/Common/Core/vtkSortDataArray.h
@@ -69,6 +69,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkAbstractArray;
 
@@ -198,4 +199,5 @@ private:
   void operator=(const vtkSortDataArray&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSortDataArray_h
diff --git a/Common/Core/vtkSparseArray.h b/Common/Core/vtkSparseArray.h
index 7f7c7212bb9dbff4d83b9bb61dc469ef1c71e8af..098cd83e50f250091b90f57e462782008dc70d0c 100644
--- a/Common/Core/vtkSparseArray.h
+++ b/Common/Core/vtkSparseArray.h
@@ -71,6 +71,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkTypedArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 class vtkSparseArray : public vtkTypedArray<T>
 {
@@ -254,6 +255,7 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkSparseArray.txx"
 
 #endif
diff --git a/Common/Core/vtkSparseArray.txx b/Common/Core/vtkSparseArray.txx
index 569600faa11ec3eb237df855c964bc9558cfa5fe..7a90258cf77d6f91c576fcfd4b85de7137b9e7dc 100644
--- a/Common/Core/vtkSparseArray.txx
+++ b/Common/Core/vtkSparseArray.txx
@@ -25,6 +25,7 @@
 #include <algorithm>
 #include <limits>
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 vtkSparseArray<T>* vtkSparseArray<T>::New()
 {
@@ -613,4 +614,5 @@ vtkStdString vtkSparseArray<T>::InternalGetDimensionLabel(DimensionT i)
   return this->DimensionLabels[i];
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkStdString.cxx b/Common/Core/vtkStdString.cxx
index 689b14decfc4b795490ecc06b1126f29a2049bb0..2c5ab70f61f62506d15049bf7e7d1a3bd71e29d4 100644
--- a/Common/Core/vtkStdString.cxx
+++ b/Common/Core/vtkStdString.cxx
@@ -15,7 +15,9 @@
 #include "vtkStdString.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 ostream& operator<<(ostream& os, const vtkStdString& s)
 {
   return os << s.c_str();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkStdString.h b/Common/Core/vtkStdString.h
index 7397cd646051bfba09e3c4c7af5c29422f40775a..79242344e6c3d383167663c29d7bac2a2805087d 100644
--- a/Common/Core/vtkStdString.h
+++ b/Common/Core/vtkStdString.h
@@ -30,6 +30,7 @@
 #include <string>                // For the superclass.
 #include <utility>               // For std::move
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStdString;
 VTKCOMMONCORE_EXPORT ostream& operator<<(ostream&, const vtkStdString&);
 
@@ -77,5 +78,6 @@ public:
   operator const char*() { return this->c_str(); }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkStdString.h
diff --git a/Common/Core/vtkStringArray.cxx b/Common/Core/vtkStringArray.cxx
index 13db2aef55df77725c9a8d2677ea7cc76cbde799..dc91af353f0175be2183f544454a94a0aad56cf5 100644
--- a/Common/Core/vtkStringArray.cxx
+++ b/Common/Core/vtkStringArray.cxx
@@ -39,6 +39,7 @@
 // since we last build the vtkStringArrayLookup.
 typedef std::multimap<vtkStdString, vtkIdType> vtkStringCachedUpdates;
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 auto DefaultDeleteFunction = [](void* ptr) { delete[] reinterpret_cast<vtkStdString*>(ptr); };
@@ -1032,3 +1033,4 @@ void vtkStringArray::LookupValue(const char* value, vtkIdList* ids)
 }
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkStringArray.h b/Common/Core/vtkStringArray.h
index 927d3d9428d35aff746f6ff2da8f57e1969012ea..1f523d25ba1dd5c3bf4d1e6dba691eea7ebed5cd 100644
--- a/Common/Core/vtkStringArray.h
+++ b/Common/Core/vtkStringArray.h
@@ -31,6 +31,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkStdString.h"        // needed for vtkStdString definition
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArrayLookup;
 
 class VTKCOMMONCORE_EXPORT vtkStringArray : public vtkAbstractArray
@@ -369,4 +370,5 @@ private:
   void UpdateLookup();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkStringOutputWindow.cxx b/Common/Core/vtkStringOutputWindow.cxx
index 872353d897f8379acd72a26a4c0009ae971d5bf6..d04d92f672b3f375312174f66306f2780e54cc3d 100644
--- a/Common/Core/vtkStringOutputWindow.cxx
+++ b/Common/Core/vtkStringOutputWindow.cxx
@@ -15,6 +15,7 @@
 #include "vtkStringOutputWindow.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStringOutputWindow);
 
 vtkStringOutputWindow::vtkStringOutputWindow()
@@ -45,3 +46,4 @@ void vtkStringOutputWindow::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkStringOutputWindow.h b/Common/Core/vtkStringOutputWindow.h
index a04ae7413983a11b717a9701acac55db70570ba8..1a7927727fd2af48981e9300ff91080bb3663cff 100644
--- a/Common/Core/vtkStringOutputWindow.h
+++ b/Common/Core/vtkStringOutputWindow.h
@@ -28,6 +28,7 @@
 #include "vtkOutputWindow.h"
 #include <sstream> // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkStringOutputWindow : public vtkOutputWindow
 {
 public:
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkStringOutputWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkTestDataArray.h b/Common/Core/vtkTestDataArray.h
index 526c4a8a4058f66f60ec4f47b2fc0e2e506f37f1..ba3a021967ec2c66374a84f6e8c180ea779a948a 100644
--- a/Common/Core/vtkTestDataArray.h
+++ b/Common/Core/vtkTestDataArray.h
@@ -33,6 +33,7 @@
 #include "vtkGenericDataArray.h"
 #include "vtkObjectFactory.h" // For VTK_STANDARD_NEW_BODY
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class ArrayT>
 class vtkTestDataArray
   : public vtkGenericDataArray<vtkTestDataArray<ArrayT>, typename ArrayT::ValueType>
@@ -94,5 +95,6 @@ private:
   void operator=(const vtkTestDataArray&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkTestDataArray.h
diff --git a/Common/Core/vtkTimePointUtility.cxx b/Common/Core/vtkTimePointUtility.cxx
index 6a3dce6ab14edc242087f8146fc0ac704cf7441d..2c30225e3992c5e5f907b414dfb2a1b7914f84e9 100644
--- a/Common/Core/vtkTimePointUtility.cxx
+++ b/Common/Core/vtkTimePointUtility.cxx
@@ -26,6 +26,7 @@
 #include <locale> // C++ locale
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 const int vtkTimePointUtility::MILLIS_PER_SECOND = 1000;
 const int vtkTimePointUtility::MILLIS_PER_MINUTE = 60000;
 const int vtkTimePointUtility::MILLIS_PER_HOUR = 3600000;
@@ -419,3 +420,4 @@ const char* vtkTimePointUtility::TimePointToISO8601(vtkTypeUInt64 time, int form
   strcpy(copy, oss.str().c_str());
   return copy;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkTimePointUtility.h b/Common/Core/vtkTimePointUtility.h
index 3b46f3ae4b753187186d86cd4f9505af96a70464..81e54ff031e46c00232a2c536c07d72f7cb133a6 100644
--- a/Common/Core/vtkTimePointUtility.h
+++ b/Common/Core/vtkTimePointUtility.h
@@ -31,6 +31,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkTimePointUtility : public vtkObject
 {
 public:
@@ -167,4 +168,5 @@ private:
   void operator=(const vtkTimePointUtility&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkTimeStamp.cxx b/Common/Core/vtkTimeStamp.cxx
index 636a81d072406b639bea2050170d718574c4c8ab..2416b3d029cd4769333c54292bf243b953b0933a 100644
--- a/Common/Core/vtkTimeStamp.cxx
+++ b/Common/Core/vtkTimeStamp.cxx
@@ -20,6 +20,7 @@
 #include <atomic>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkTimeStamp* vtkTimeStamp::New()
 {
   // If the factory was unable to create the object, then create it here.
@@ -55,3 +56,4 @@ void vtkTimeStamp::Modified()
 #endif
   this->ModifiedTime = (vtkMTimeType)++GlobalTimeStamp;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkTimeStamp.h b/Common/Core/vtkTimeStamp.h
index d5c42be4d957a350ecd9832a6bf3888a7e11de9b..8494997a1bcb6565df37c007f0b1fe7b8320f31b 100644
--- a/Common/Core/vtkTimeStamp.h
+++ b/Common/Core/vtkTimeStamp.h
@@ -29,6 +29,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkSystemIncludes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkTimeStamp
 {
 public:
@@ -70,5 +71,6 @@ private:
   vtkMTimeType ModifiedTime;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkTimeStamp.h
diff --git a/Common/Core/vtkType.h b/Common/Core/vtkType.h
index a1bb15cc5f30a0d97f9fcf63e8b261a584d10e3a..52fc1af73b78cbd6d2efd634e5b8d02086a6f029 100644
--- a/Common/Core/vtkType.h
+++ b/Common/Core/vtkType.h
@@ -15,6 +15,7 @@
 #ifndef vtkType_h
 #define vtkType_h
 
+#include "vtkABINamespace.h"
 #include "vtkCompiler.h" // for VTK_USE_EXTERN_TEMPLATE
 #include "vtkOptions.h"  // for VTK_USE_64BIT_IDS and VTK_USE_64BIT_TIMESTAMPS
 #include "vtk_kwiml.h"
@@ -359,11 +360,13 @@ typedef bool vtkTypeUBool;
  * is intended to handle vtkIdType, which does not have the same tag as its
  * underlying data type.
  * @note This method is only available when included from a C++ source file. */
+VTK_ABI_NAMESPACE_BEGIN
 inline vtkTypeBool vtkDataTypesCompare(int a, int b)
 {
   return (a == b ||
     ((a == VTK_ID_TYPE || a == VTK_ID_TYPE_IMPL) && (b == VTK_ID_TYPE || b == VTK_ID_TYPE_IMPL)));
 }
+VTK_ABI_NAMESPACE_END
 #endif
 
 /*--------------------------------------------------------------------------*/
diff --git a/Common/Core/vtkTypeList.h b/Common/Core/vtkTypeList.h
index c4f141d684037401e46a80f0d70d317163367ae7..95290459a55eda9d4abbc53ed908db522ae7dc78 100644
--- a/Common/Core/vtkTypeList.h
+++ b/Common/Core/vtkTypeList.h
@@ -50,10 +50,12 @@
 #ifndef vtkTypeList_h
 #define vtkTypeList_h
 
+#include "vtkABINamespace.h"
 #include "vtkTypeListMacros.h"
 
 namespace vtkTypeList
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 /**
@@ -163,16 +165,19 @@ struct DerivedToFront;
 template <typename TList, typename T>
 struct Append;
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtkTypeList
 
 #include "vtkTypeList.txx"
 
 namespace vtkTypeList
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename... Ts>
 using Create = typename vtkTypeList::detail::CreateImpl<Ts...>::type;
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtkTypeList
 
 #endif // vtkTypeList_h
diff --git a/Common/Core/vtkTypeList.txx b/Common/Core/vtkTypeList.txx
index 3bdbdd185d17a480e58ee2933c5946f1147adb9c..0728e00923dfef150f2044b6cd570453c5d915d6 100644
--- a/Common/Core/vtkTypeList.txx
+++ b/Common/Core/vtkTypeList.txx
@@ -20,9 +20,9 @@
 
 namespace vtkTypeList
 {
-
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename... Ts>
 struct CreateImpl;
@@ -64,8 +64,11 @@ struct CreateImpl<T1, T2, T3, T4, Tail...>
         vtkTypeList::TypeList<T4, typename vtkTypeList::detail::CreateImpl<Tail...>::type>>>>;
 };
 
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //------------------------------------------------------------------------------
 // Description:
 // Sets Result to T if Exp is true, or F if Exp is false.
@@ -377,6 +380,7 @@ struct Append<vtkTypeList::TypeList<Head, Tail>, T>
   typedef vtkTypeList::TypeList<Head, typename Append<Tail, T>::Result> Result;
 };
 
+VTK_ABI_NAMESPACE_END
 }
 
 #endif // vtkTypeList_txx
diff --git a/Common/Core/vtkTypeTraits.h b/Common/Core/vtkTypeTraits.h
index c768a6b938d7316de76cc324c7a58b6c4e1e134d..b669321fd54d83bd6f11f923a233f57d337b980c 100644
--- a/Common/Core/vtkTypeTraits.h
+++ b/Common/Core/vtkTypeTraits.h
@@ -26,6 +26,7 @@
 #include "vtkSystemIncludes.h"
 
 // Forward-declare template.  There is no primary template.
+VTK_ABI_NAMESPACE_BEGIN
 template <class T>
 struct vtkTypeTraits;
 
@@ -153,5 +154,6 @@ VTK_TYPE_TRAITS(unsigned long long, UNSIGNED_LONG_LONG, 0, UInt64, unsigned long
 
 #undef VTK_TYPE_TRAITS
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkTypeTraits.h
diff --git a/Common/Core/vtkTypedArray.cxx.in b/Common/Core/vtkTypedArray.cxx.in
index e61d9bd8476aee1677d9fcaace2df29b0ea3451c..c829626f30b7808ca3683eb0768fabdb634d9bb4 100644
--- a/Common/Core/vtkTypedArray.cxx.in
+++ b/Common/Core/vtkTypedArray.cxx.in
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkType@VTK_TYPE_NAME@Array);
 
 //----------------------------------------------------------------------------
@@ -30,3 +31,4 @@ void vtkType@VTK_TYPE_NAME@Array::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os,indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkTypedArray.h b/Common/Core/vtkTypedArray.h
index 1f119f6f25a5c0af777d38709ab1a0cda26f67db..3b28d38863e69e1cf1d93be4e2c4215ac6560143 100644
--- a/Common/Core/vtkTypedArray.h
+++ b/Common/Core/vtkTypedArray.h
@@ -49,6 +49,7 @@
 
 #include "vtkArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArrayCoordinates;
 
 template <typename T>
@@ -128,6 +129,7 @@ private:
   void operator=(const vtkTypedArray&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkTypedArray.txx"
 
 #endif
diff --git a/Common/Core/vtkTypedArray.h.in b/Common/Core/vtkTypedArray.h.in
index 2350c830db3e6606b58661d6f758dc7501422510..af6b1d17031ea307eadc006678e851563e4adb79 100644
--- a/Common/Core/vtkTypedArray.h.in
+++ b/Common/Core/vtkTypedArray.h.in
@@ -29,6 +29,9 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkType.h" // For native type selections.
 @VTK_TYPE_NATIVE@
+
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKCOMMONCORE_EXPORT vtkType@VTK_TYPE_NAME@Array : public vtkTypeArrayBase
 {
 public:
@@ -55,6 +58,9 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkType@VTK_TYPE_NAME@Array);
 
+VTK_ABI_NAMESPACE_END
+
 #undef vtkTypeArrayBase
 
 #endif
+/* VTK-HeaderTest-Exclude: INCLUDES */
diff --git a/Common/Core/vtkTypedArray.txx b/Common/Core/vtkTypedArray.txx
index df1940c6706a340afc0d767ed3f27fce3d56c812..066808c468717acaf3e982170aa47aee8857bfeb 100644
--- a/Common/Core/vtkTypedArray.txx
+++ b/Common/Core/vtkTypedArray.txx
@@ -22,6 +22,7 @@
 #include "vtkVariantCast.h"
 #include "vtkVariantCreate.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 void vtkTypedArray<T>::PrintSelf(ostream& os, vtkIndent indent)
 {
@@ -94,3 +95,4 @@ void vtkTypedArray<T>::CopyValue(
   this->SetValueN(
     target_index, static_cast<vtkTypedArray<T>*>(source)->GetValue(source_coordinates));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkTypedDataArray.h b/Common/Core/vtkTypedDataArray.h
index b0a8f74850d8cafcf2667b79171e08d10dd55cab..327cd41fa17972ab1abcc9e2f55466e37652adef 100644
--- a/Common/Core/vtkTypedDataArray.h
+++ b/Common/Core/vtkTypedDataArray.h
@@ -41,6 +41,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkTypeTraits.h"       // For type metadata
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class Scalar>
 class vtkTypedDataArrayIterator;
 
@@ -184,8 +185,10 @@ private:
 vtkArrayDownCast_TemplateFastCastMacro(vtkTypedDataArray);
 
 // Included here to resolve chicken/egg issue with container/iterator:
+VTK_ABI_NAMESPACE_END
 #include "vtkTypedDataArrayIterator.h" // For iterator
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class Scalar>
 inline typename vtkTypedDataArray<Scalar>::Iterator vtkTypedDataArray<Scalar>::Begin()
 {
@@ -198,6 +201,7 @@ inline typename vtkTypedDataArray<Scalar>::Iterator vtkTypedDataArray<Scalar>::E
   return Iterator(this, this->MaxId + 1);
 }
 
+VTK_ABI_NAMESPACE_END
 #include "vtkTypedDataArray.txx"
 
 #endif // vtkTypedDataArray_h
diff --git a/Common/Core/vtkTypedDataArray.txx b/Common/Core/vtkTypedDataArray.txx
index 868b02c3c64dde42b58736a20094f21e65c96a4e..b72bdb4be9f7516139d02366fa7681b251324b94 100644
--- a/Common/Core/vtkTypedDataArray.txx
+++ b/Common/Core/vtkTypedDataArray.txx
@@ -19,6 +19,7 @@
 #include "vtkTypedDataArray.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <typename Scalar>
 vtkTypedDataArray<Scalar>::vtkTypedDataArray() = default;
 
@@ -95,4 +96,5 @@ inline vtkTypedDataArray<Scalar>* vtkTypedDataArray<Scalar>::FastDownCast(vtkAbs
   return nullptr;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTypedDataArray_txx
diff --git a/Common/Core/vtkTypedDataArrayIterator.h b/Common/Core/vtkTypedDataArrayIterator.h
index 1ba6997a355923af9f28e03e982f29ccac86ab05..6505be8d2733b6bff064fb08640d7bedd45f7648 100644
--- a/Common/Core/vtkTypedDataArrayIterator.h
+++ b/Common/Core/vtkTypedDataArrayIterator.h
@@ -37,6 +37,7 @@
 
 #include "vtkTypedDataArray.h" // For vtkTypedDataArray
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class Scalar>
 class vtkTypedDataArrayIterator
 {
@@ -165,6 +166,7 @@ private:
   vtkIdType Index;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTypedDataArrayIterator_h
 
 // VTK-HeaderTest-Exclude: vtkTypedDataArrayIterator.h
diff --git a/Common/Core/vtkUnsignedCharArray.cxx b/Common/Core/vtkUnsignedCharArray.cxx
index f002204b07fde968a7babfe01a0d7127985ca3a8..94a84676638adb43dddaa286488e3fcde285690d 100644
--- a/Common/Core/vtkUnsignedCharArray.cxx
+++ b/Common/Core/vtkUnsignedCharArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(unsigned char);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnsignedCharArray);
 vtkStandardExtendedNewMacro(vtkUnsignedCharArray);
 
@@ -36,3 +37,4 @@ void vtkUnsignedCharArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkUnsignedCharArray.h b/Common/Core/vtkUnsignedCharArray.h
index fcaf2f176623ab7c893d5a2f7af8eb553dcf51e9..b38503b63c5e8b9b9070badce096baa7fcc49d01 100644
--- a/Common/Core/vtkUnsignedCharArray.h
+++ b/Common/Core/vtkUnsignedCharArray.h
@@ -32,6 +32,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<unsigned char>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkUnsignedCharArray : public vtkDataArray
 {
 public:
@@ -82,4 +83,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkUnsignedCharArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkUnsignedIntArray.cxx b/Common/Core/vtkUnsignedIntArray.cxx
index a68c7d85fd94cb22d3b744f20acf993043e1531a..81ed024873b2d1b6f650c51f8a3cc1215c99e121 100644
--- a/Common/Core/vtkUnsignedIntArray.cxx
+++ b/Common/Core/vtkUnsignedIntArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(unsigned int);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnsignedIntArray);
 vtkStandardExtendedNewMacro(vtkUnsignedIntArray);
 
@@ -36,3 +37,4 @@ void vtkUnsignedIntArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkUnsignedIntArray.h b/Common/Core/vtkUnsignedIntArray.h
index f5f24e6df5e2aac09fb7dbbc8b15f800a8e642c6..dc26712324a1614417b08b87e205dc1b934e9306 100644
--- a/Common/Core/vtkUnsignedIntArray.h
+++ b/Common/Core/vtkUnsignedIntArray.h
@@ -36,6 +36,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<unsigned int>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkUnsignedIntArray : public vtkDataArray
 {
 public:
@@ -86,4 +87,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkUnsignedIntArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkUnsignedLongArray.cxx b/Common/Core/vtkUnsignedLongArray.cxx
index c123f80b69f18a2767438556d25c57c64628edff..b8cda7cee8d573502581a5f2ab48e83902858e0e 100644
--- a/Common/Core/vtkUnsignedLongArray.cxx
+++ b/Common/Core/vtkUnsignedLongArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(unsigned long);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnsignedLongArray);
 vtkStandardExtendedNewMacro(vtkUnsignedLongArray);
 
@@ -36,3 +37,4 @@ void vtkUnsignedLongArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkUnsignedLongArray.h b/Common/Core/vtkUnsignedLongArray.h
index 7d5ef1f252cfd2f7eb8613711fa5872679f555bd..e968631243a983acbcbd8350fd6ae922fe0ff3ef 100644
--- a/Common/Core/vtkUnsignedLongArray.h
+++ b/Common/Core/vtkUnsignedLongArray.h
@@ -38,6 +38,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<unsigned long>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkUnsignedLongArray : public vtkDataArray
 {
 public:
@@ -88,4 +89,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkUnsignedLongArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkUnsignedLongLongArray.cxx b/Common/Core/vtkUnsignedLongLongArray.cxx
index 3c67e34ab50792502f9a54e26bf2331f5dc9db29..fce7befe235b9db51b755745b088c35df9473042 100644
--- a/Common/Core/vtkUnsignedLongLongArray.cxx
+++ b/Common/Core/vtkUnsignedLongLongArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(unsigned long long);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnsignedLongLongArray);
 vtkStandardExtendedNewMacro(vtkUnsignedLongLongArray);
 
@@ -36,3 +37,4 @@ void vtkUnsignedLongLongArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkUnsignedLongLongArray.h b/Common/Core/vtkUnsignedLongLongArray.h
index 5a576627b0d69799c918e0c72e491f28e5834458..705dfe3477efddf111df7e2db878bdef4df59667 100644
--- a/Common/Core/vtkUnsignedLongLongArray.h
+++ b/Common/Core/vtkUnsignedLongLongArray.h
@@ -36,6 +36,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<unsigned long long>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkUnsignedLongLongArray : public vtkDataArray
 {
 public:
@@ -86,4 +87,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkUnsignedLongLongArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkUnsignedShortArray.cxx b/Common/Core/vtkUnsignedShortArray.cxx
index d40b0b23db9a2938d973badb9597f058f24438c9..1a2ee76f9822067844cba3e7d5fcc07505cb367f 100644
--- a/Common/Core/vtkUnsignedShortArray.cxx
+++ b/Common/Core/vtkUnsignedShortArray.cxx
@@ -22,6 +22,7 @@ VTK_AOS_DATA_ARRAY_TEMPLATE_INSTANTIATE(unsigned short);
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnsignedShortArray);
 vtkStandardExtendedNewMacro(vtkUnsignedShortArray);
 
@@ -36,3 +37,4 @@ void vtkUnsignedShortArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->RealSuperclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkUnsignedShortArray.h b/Common/Core/vtkUnsignedShortArray.h
index 40a1f1f6ade5f24777bac663f46e50aa228432a5..76a4d9c833f643eb5adc4f2785605658a252f0be 100644
--- a/Common/Core/vtkUnsignedShortArray.h
+++ b/Common/Core/vtkUnsignedShortArray.h
@@ -36,6 +36,7 @@
 #ifndef __VTK_WRAP__
 #define vtkDataArray vtkAOSDataArrayTemplate<unsigned short>
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkUnsignedShortArray : public vtkDataArray
 {
 public:
@@ -86,4 +87,5 @@ private:
 // Define vtkArrayDownCast implementation:
 vtkArrayDownCast_FastCastMacro(vtkUnsignedShortArray);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkVTK_USE_SCALED_SOA_ARRAYS.h.in b/Common/Core/vtkVTK_USE_SCALED_SOA_ARRAYS.h.in
index 9d3bf29dcb26c9474cf3343ed3fa44edafc5da26..103786119ca060dc841c9e13e7ec5490d4f22147 100644
--- a/Common/Core/vtkVTK_USE_SCALED_SOA_ARRAYS.h.in
+++ b/Common/Core/vtkVTK_USE_SCALED_SOA_ARRAYS.h.in
@@ -13,5 +13,10 @@
 
 =========================================================================*/
 
+#ifndef vtkVTK_USE_SCALED_SOA_ARRAYS_h
+#define vtkVTK_USE_SCALED_SOA_ARRAYS_h
+
 // defined if VTK provides the vtkScaledSOADataArray classes
 #cmakedefine VTK_USE_SCALED_SOA_ARRAYS
+
+#endif // vtkVTK_USE_SCALED_SOA_ARRAYS_h
diff --git a/Common/Core/vtkVariant.cxx b/Common/Core/vtkVariant.cxx
index 70bae934d35f5988b654d8bfd19c9e684f6f8edf..753334f8bbb7f7e849ed397028f484794bb584a4 100644
--- a/Common/Core/vtkVariant.cxx
+++ b/Common/Core/vtkVariant.cxx
@@ -39,6 +39,7 @@
 
 // Implementation of vtkVariant's
 // fast-but-potentially-counterintuitive < operation
+VTK_ABI_NAMESPACE_BEGIN
 bool vtkVariantStrictWeakOrder::operator()(const vtkVariant& s1, const vtkVariant& s2) const
 {
   // First sort on type if they are different
@@ -853,6 +854,7 @@ T vtkVariantStringToNumeric(vtkStdString str, bool* valid, T* vtkNotUsed(ignored
 // Definition of ToNumeric
 
 // NOLINTNEXTLINE(bugprone-suspicious-include)
+VTK_ABI_NAMESPACE_END
 #include "vtkVariantToNumeric.cxx"
 
 //------------------------------------------------------------------------------
@@ -864,6 +866,7 @@ T vtkVariantStringToNumeric(vtkStdString str, bool* valid, T* vtkNotUsed(ignored
 
 #define vtkVariantToNumericInstantiateMacro(x) template x vtkVariant::ToNumeric<x>(bool*, x*) const
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkVariantToNumericInstantiateMacro(char);
 vtkVariantToNumericInstantiateMacro(float);
 vtkVariantToNumericInstantiateMacro(double);
@@ -878,11 +881,13 @@ vtkVariantToNumericInstantiateMacro(unsigned long);
 vtkVariantToNumericInstantiateMacro(long long);
 vtkVariantToNumericInstantiateMacro(unsigned long long);
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 //------------------------------------------------------------------------------
 // Callers causing implicit instantiations of ToNumeric
 
+VTK_ABI_NAMESPACE_BEGIN
 float vtkVariant::ToFloat(bool* valid) const
 {
   return this->ToNumeric(valid, static_cast<float*>(nullptr));
@@ -1034,3 +1039,4 @@ ostream& operator<<(ostream& os, const vtkVariant& val)
   }
   return os;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkVariant.h b/Common/Core/vtkVariant.h
index 2459756801bcbd714b6f0a3f25ae9147aff367e0..4dd411aa5e04db71006d5aacc385749fafe8924d 100644
--- a/Common/Core/vtkVariant.h
+++ b/Common/Core/vtkVariant.h
@@ -52,6 +52,7 @@
   vtkArrayIteratorTemplateMacro(call);                                                             \
   vtkArrayIteratorTemplateMacroCase(VTK_VARIANT, vtkVariant, call)
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStdString;
 class vtkObjectBase;
 class vtkAbstractArray;
@@ -426,6 +427,7 @@ private:
   friend struct vtkVariantStrictEquality;
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkVariantInlineOperators.h" // needed for operator== and company
 
 // A STL-style function object so you can compare two variants using
@@ -434,6 +436,7 @@ private:
 // compare values.  It satisfies the STL requirement for a comparison
 // function for ordered containers like map and set.
 
+VTK_ABI_NAMESPACE_BEGIN
 struct VTKCOMMONCORE_EXPORT vtkVariantLessThan
 {
 public:
@@ -461,5 +464,6 @@ public:
   bool operator()(const vtkVariant& s1, const vtkVariant& s2) const;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkVariant.h
diff --git a/Common/Core/vtkVariantArray.cxx b/Common/Core/vtkVariantArray.cxx
index cf4cf1ea87dba5b2854db292f572f768d33e8fc0..c213138f7f983a58744beb40b7b985b77b41f19a 100644
--- a/Common/Core/vtkVariantArray.cxx
+++ b/Common/Core/vtkVariantArray.cxx
@@ -47,6 +47,7 @@ namespace
 {
 auto DefaultDeleteFunction = [](void* ptr) { delete[] reinterpret_cast<vtkVariant*>(ptr); };
 }
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 class vtkVariantArrayLookup
@@ -1040,3 +1041,4 @@ void vtkVariantArray::ClearLookup()
   delete this->Lookup;
   this->Lookup = nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkVariantArray.h b/Common/Core/vtkVariantArray.h
index ae980f65aa9e67b22b862c4d3475de36a71aa4d1..3635d8fba044d38a8d24d3990c699094703d7113 100644
--- a/Common/Core/vtkVariantArray.h
+++ b/Common/Core/vtkVariantArray.h
@@ -35,8 +35,6 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkVariant.h"          // For variant type
 
-class vtkVariantArrayLookup;
-
 /// Forward declaration required for Boost serialization
 namespace boost
 {
@@ -46,6 +44,9 @@ class access;
 }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+class vtkVariantArrayLookup;
+
 class VTKCOMMONCORE_EXPORT vtkVariantArray : public vtkAbstractArray
 {
 
@@ -351,4 +352,5 @@ private:
   void UpdateLookup();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkVariantCast.h b/Common/Core/vtkVariantCast.h
index 2101c5c77702a285d0829b1a013454b8b59e4376..7d429b70b00e6443edd6aa903623939d511f0d27 100644
--- a/Common/Core/vtkVariantCast.h
+++ b/Common/Core/vtkVariantCast.h
@@ -39,6 +39,7 @@
 #include "vtkVariant.h"
 #include <typeinfo> // for warnings
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 T vtkVariantCast(const vtkVariant& value, bool* valid = nullptr)
 {
@@ -150,6 +151,7 @@ inline vtkVariant vtkVariantCast<vtkVariant>(const vtkVariant& value, bool* vali
   return value;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkVariantCast.h
diff --git a/Common/Core/vtkVariantCreate.h b/Common/Core/vtkVariantCreate.h
index e04d3514d518e664004fe927f77520503c83ca94..bab5bca13a199f063179ad0a0b15f3c7cd4c6f91 100644
--- a/Common/Core/vtkVariantCreate.h
+++ b/Common/Core/vtkVariantCreate.h
@@ -35,6 +35,7 @@
 #include "vtkVariant.h"
 #include <typeinfo> // for warnings
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 vtkVariant vtkVariantCreate(const T&)
 {
@@ -129,6 +130,7 @@ inline vtkVariant vtkVariantCreate<vtkVariant>(const vtkVariant& value)
   return value;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkVariantCreate.h
diff --git a/Common/Core/vtkVariantExtract.h b/Common/Core/vtkVariantExtract.h
index 87db266c5986443ae522b3ff2082c272dfd96e2c..9d458ffdfa6e25b16b78f659ab81ff447f76d707 100644
--- a/Common/Core/vtkVariantExtract.h
+++ b/Common/Core/vtkVariantExtract.h
@@ -38,6 +38,7 @@
 #include "vtkVariant.h"
 #include <typeinfo> // for typeid
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 T vtkVariantExtract(const vtkVariant& value, bool& valid)
 {
@@ -151,6 +152,7 @@ inline vtkVariant vtkVariantExtract<vtkVariant>(const vtkVariant& value, bool& v
   return value;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkVariantExtract.h
diff --git a/Common/Core/vtkVariantInlineOperators.h b/Common/Core/vtkVariantInlineOperators.h
index 6b663515d727b913869bc69e1b171f3c6340c3b9..2114bdd90e733d6a24d1ec5b763eb8cf1b2cd8ba 100644
--- a/Common/Core/vtkVariantInlineOperators.h
+++ b/Common/Core/vtkVariantInlineOperators.h
@@ -1,6 +1,8 @@
 #ifndef vtkVariantInlineOperators_h
 #define vtkVariantInlineOperators_h
 
+#include "vtkABINamespace.h"
+
 #include <climits>
 
 // ----------------------------------------------------------------------
@@ -9,6 +11,7 @@
 // type we're actually dealing with.  With any luck the compiler will
 // inline these so they have very little overhead.
 
+VTK_ABI_NAMESPACE_BEGIN
 inline bool IsSigned64Bit(int VariantType)
 {
   return ((VariantType == VTK_LONG_LONG) || (VariantType == VTK_TYPE_INT64));
@@ -245,5 +248,6 @@ inline bool vtkVariant::operator>=(const vtkVariant& other) const
   return (!this->operator<(other));
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkVariantInlineOperators.h
diff --git a/Common/Core/vtkVariantToNumeric.cxx b/Common/Core/vtkVariantToNumeric.cxx
index 33d0f099bd9885a8248df1a86b3e802b7e492729..bb7e3aa90c8ba3007ea7dfc7def3673695ebbdf3 100644
--- a/Common/Core/vtkVariantToNumeric.cxx
+++ b/Common/Core/vtkVariantToNumeric.cxx
@@ -23,6 +23,7 @@
 // allow it to be defined before its use with most compilers, but after its
 // use for (at least) Visual Studio 6.
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 T vtkVariant::ToNumeric(bool* valid, T* vtkNotUsed(ignored)) const
 {
@@ -117,3 +118,4 @@ T vtkVariant::ToNumeric(bool* valid, T* vtkNotUsed(ignored)) const
   }
   return static_cast<T>(0);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkVersion.cxx b/Common/Core/vtkVersion.cxx
index ce7d4f149b9673280c8ace53d1feaf95ff2a489c..61c357fb0ec006c107dbdf954c0431d48a90f702 100644
--- a/Common/Core/vtkVersion.cxx
+++ b/Common/Core/vtkVersion.cxx
@@ -16,6 +16,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkVersionFull.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVersion);
 
 void vtkVersion::PrintSelf(ostream& os, vtkIndent indent)
@@ -34,3 +35,4 @@ const char* GetVTKVersion()
 {
   return vtkVersion::GetVTKVersion();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkVersion.h b/Common/Core/vtkVersion.h
index bcd27ec5c0f2b4f343cffaa9b961ea1bccea66da..5824777f810e0f62fb697b43c1e665b98cf4c46f 100644
--- a/Common/Core/vtkVersion.h
+++ b/Common/Core/vtkVersion.h
@@ -31,6 +31,7 @@
 #include "vtkObject.h"
 #include "vtkVersionMacros.h" // For version macros
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkVersion : public vtkObject
 {
 public:
@@ -64,4 +65,5 @@ extern "C"
   VTKCOMMONCORE_EXPORT const char* GetVTKVersion();
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkVoidArray.cxx b/Common/Core/vtkVoidArray.cxx
index dea3cf7fc0754cf1ec0d39daf7310950da6cd8d1..62e64ddcfd091a133867e628a5df94c480e2f663 100644
--- a/Common/Core/vtkVoidArray.cxx
+++ b/Common/Core/vtkVoidArray.cxx
@@ -15,6 +15,7 @@
 #include "vtkVoidArray.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVoidArray);
 vtkStandardExtendedNewMacro(vtkVoidArray);
 
@@ -176,3 +177,4 @@ void vtkVoidArray::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Array: (null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkVoidArray.h b/Common/Core/vtkVoidArray.h
index b18e9f4f4405158100e393d1acd6567188522903..96d9a2b4f9ce84dd147a2c0eb783da8ce590e6f3 100644
--- a/Common/Core/vtkVoidArray.h
+++ b/Common/Core/vtkVoidArray.h
@@ -27,6 +27,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkVoidArray : public vtkObject
 {
 public:
@@ -140,4 +141,5 @@ private:
   void operator=(const vtkVoidArray&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkWeakPointer.h b/Common/Core/vtkWeakPointer.h
index ba6c0054c362fcc024a2b5654d2323d068f305a6..58e3a00234b1a40bfc5fba9bcaf897329aa7db3c 100644
--- a/Common/Core/vtkWeakPointer.h
+++ b/Common/Core/vtkWeakPointer.h
@@ -51,6 +51,7 @@
 #include <type_traits> // for is_base_of
 #include <utility>     // for std::move
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class T>
 class vtkWeakPointer : public vtkWeakPointerBase
 {
@@ -291,8 +292,11 @@ VTK_WEAK_POINTER_DEFINE_OPERATOR(>=)
 
 #undef VTK_WEAK_POINTER_DEFINE_OPERATOR
 
+VTK_ABI_NAMESPACE_END
+
 namespace vtk
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 /// Construct a vtkWeakPointer<T> containing @a obj. @a obj's reference count
 /// is not changed.
@@ -302,8 +306,10 @@ vtkWeakPointer<T> TakeWeakPointer(T* obj)
   return vtkWeakPointer<T>(obj);
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtk
 
+VTK_ABI_NAMESPACE_BEGIN
 /**
  * Streaming operator to print smart pointer like regular pointers.
  */
@@ -313,6 +319,7 @@ inline ostream& operator<<(ostream& os, const vtkWeakPointer<T>& p)
   return os << static_cast<const vtkWeakPointerBase&>(p);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkWeakPointer.h
diff --git a/Common/Core/vtkWeakPointerBase.cxx b/Common/Core/vtkWeakPointerBase.cxx
index 1fe8f46f5ef5a671aa724d3400ef1b6c3da66081..08889562a15a83162a2ce055468e43a7c23847e6 100644
--- a/Common/Core/vtkWeakPointerBase.cxx
+++ b/Common/Core/vtkWeakPointerBase.cxx
@@ -15,6 +15,7 @@
 #include "vtkWeakPointerBase.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWeakPointerBaseToObjectBaseFriendship
 {
 public:
@@ -203,3 +204,4 @@ ostream& operator<<(ostream& os, const vtkWeakPointerBase& p)
   // Just print the pointer value into the stream.
   return os << static_cast<void*>(p.GetPointer());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkWeakPointerBase.h b/Common/Core/vtkWeakPointerBase.h
index d35c3ff83d5c9b9cc5b04fb8dc02d8c2a43c7b96..006375ca90ed249379d136fc089d3d6e41402cbf 100644
--- a/Common/Core/vtkWeakPointerBase.h
+++ b/Common/Core/vtkWeakPointerBase.h
@@ -28,6 +28,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObjectBase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkObjectBaseToWeakPointerBaseFriendship;
 
 class VTKCOMMONCORE_EXPORT vtkWeakPointerBase
@@ -126,5 +127,6 @@ VTK_WEAK_POINTER_BASE_DEFINE_OPERATOR(>=)
  */
 VTKCOMMONCORE_EXPORT ostream& operator<<(ostream& os, const vtkWeakPointerBase& p);
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkWeakPointerBase.h
diff --git a/Common/Core/vtkWeakReference.cxx b/Common/Core/vtkWeakReference.cxx
index f2c64ca5fbf5e50e9b5424d696673200caa985cc..179bc5f7bd0e0f33420632365544c049cbca4afe 100644
--- a/Common/Core/vtkWeakReference.cxx
+++ b/Common/Core/vtkWeakReference.cxx
@@ -18,6 +18,7 @@
 #include "vtkWeakPointer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWeakReference);
 
 //------------------------------------------------------------------------------
@@ -37,3 +38,4 @@ vtkObject* vtkWeakReference::Get()
 {
   return this->Object;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkWeakReference.h b/Common/Core/vtkWeakReference.h
index c8236ba08cdc4d45554c3a85f83d23daead3f19e..1ff09cd549bb063ae55e57e5ff62b57a00d7bb43 100644
--- a/Common/Core/vtkWeakReference.h
+++ b/Common/Core/vtkWeakReference.h
@@ -28,6 +28,7 @@
 #include "vtkObject.h"
 #include "vtkWeakPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkWeakReference : public vtkObject
 {
 public:
@@ -50,6 +51,7 @@ private:
   vtkWeakPointer<vtkObject> Object;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkWeakReference.h
diff --git a/Common/Core/vtkWin32OutputWindow.cxx b/Common/Core/vtkWin32OutputWindow.cxx
index 20ed9393f03b85da4a920ee12995d031c3a22b86..76e5807ccbb4f99e4054d46501c7024c9361a336 100644
--- a/Common/Core/vtkWin32OutputWindow.cxx
+++ b/Common/Core/vtkWin32OutputWindow.cxx
@@ -20,6 +20,7 @@
 
 #include "vtksys/Encoding.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWin32OutputWindow);
 
 HWND vtkWin32OutputWindowOutputWindow = 0;
@@ -262,3 +263,4 @@ void vtkWin32OutputWindow::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "OutputWindow: (null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkWin32OutputWindow.h b/Common/Core/vtkWin32OutputWindow.h
index b4cfb3bfd16ff63a9a3885e0d3a91a5d4a16c83f..f0dcedf159ccf491c783ba8e832aa05eb8b4e603 100644
--- a/Common/Core/vtkWin32OutputWindow.h
+++ b/Common/Core/vtkWin32OutputWindow.h
@@ -36,6 +36,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkOutputWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkWin32OutputWindow : public vtkOutputWindow
 {
 public:
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkWin32OutputWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkWin32ProcessOutputWindow.cxx b/Common/Core/vtkWin32ProcessOutputWindow.cxx
index 41ed845bdec12cc88fca0e5ec8e50986a751f936..2d560c9343085556696bc906e75de87692bde5d5 100644
--- a/Common/Core/vtkWin32ProcessOutputWindow.cxx
+++ b/Common/Core/vtkWin32ProcessOutputWindow.cxx
@@ -34,6 +34,7 @@
 #endif
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWin32ProcessOutputWindow);
 
 extern "C" int vtkEncodedArrayWin32OutputWindowProcessWrite(const char* fname);
@@ -174,3 +175,4 @@ void vtkWin32ProcessOutputWindow::Write(const char* data, size_t length)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkWin32ProcessOutputWindow.h b/Common/Core/vtkWin32ProcessOutputWindow.h
index 68e9e513cf3bb7bf28ae7b479c34ee16932b8364..8dad2fd13c0639a4b934e57ea7fff6bb81880dd4 100644
--- a/Common/Core/vtkWin32ProcessOutputWindow.h
+++ b/Common/Core/vtkWin32ProcessOutputWindow.h
@@ -28,6 +28,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkOutputWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkWin32ProcessOutputWindow : public vtkOutputWindow
 {
 public:
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkWin32ProcessOutputWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkWindow.cxx b/Common/Core/vtkWindow.cxx
index 8ff35e876408edaf812fd8a1641eae8512009056..1fd7de7aada49b9c7435d55c3938c6d0da3888b3 100644
--- a/Common/Core/vtkWindow.cxx
+++ b/Common/Core/vtkWindow.cxx
@@ -20,6 +20,7 @@
 // Construct an instance of vtkRenderWindow with its screen size
 // set to 300x300, borders turned on, positioned at (0,0), double
 // buffering turned on.
+VTK_ABI_NAMESPACE_BEGIN
 vtkWindow::vtkWindow()
 {
   this->ShowWindow = true;
@@ -138,3 +139,4 @@ void vtkWindow::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "TileViewport: (" << this->TileViewport[0] << ", " << this->TileViewport[1]
      << ", " << this->TileViewport[2] << ", " << this->TileViewport[3] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkWindow.h b/Common/Core/vtkWindow.h
index b4a0192d8762de9a74b3a92a8fd8fca302be836e..137c4e29ffcd06b66b0ef91ee19d368c31820f87 100644
--- a/Common/Core/vtkWindow.h
+++ b/Common/Core/vtkWindow.h
@@ -29,6 +29,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkUnsignedCharArray;
 
@@ -285,4 +286,5 @@ private:
   void operator=(const vtkWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Core/vtkXMLFileOutputWindow.cxx b/Common/Core/vtkXMLFileOutputWindow.cxx
index 97db961ab732ba542c06ecdb15d17821457d8f8b..277b27d257c156206520702cbe33db049dab9e97 100644
--- a/Common/Core/vtkXMLFileOutputWindow.cxx
+++ b/Common/Core/vtkXMLFileOutputWindow.cxx
@@ -17,6 +17,7 @@
 #include "vtksys/Encoding.hxx"
 #include "vtksys/FStream.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLFileOutputWindow);
 
 void vtkXMLFileOutputWindow::PrintSelf(ostream& os, vtkIndent indent)
@@ -150,3 +151,4 @@ void vtkXMLFileOutputWindow::DisplayDebugText(const char* text)
 {
   this->DisplayXML("Debug", text);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Core/vtkXMLFileOutputWindow.h b/Common/Core/vtkXMLFileOutputWindow.h
index 748e7fdc6447c8e2ea4d59290ee7f9957a35525d..02d0b77b187305f4e5704fcff69091d4bb1dae6f 100644
--- a/Common/Core/vtkXMLFileOutputWindow.h
+++ b/Common/Core/vtkXMLFileOutputWindow.h
@@ -40,6 +40,7 @@
 #include "vtkCommonCoreModule.h" // For export macro
 #include "vtkFileOutputWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONCORE_EXPORT vtkXMLFileOutputWindow : public vtkFileOutputWindow
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkXMLFileOutputWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkAMRBox.cxx b/Common/DataModel/vtkAMRBox.cxx
index 7a7ab2e099f14d0278d7f500adad89371b3467e7..ffd37c55ce8fefc2829f71cd5fc880f930afcb80 100644
--- a/Common/DataModel/vtkAMRBox.cxx
+++ b/Common/DataModel/vtkAMRBox.cxx
@@ -28,6 +28,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkAMRBox::vtkAMRBox()
 {
   this->Initialize();
@@ -742,3 +743,4 @@ void vtkAMRBox::Shrink(int byN)
   }
   assert("post: Grown AMR Box instance is invalid" && !this->IsInvalid());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAMRBox.h b/Common/DataModel/vtkAMRBox.h
index 6112b10cf7b1469e10ebe058d5f8151ead97385e..5694d373b4f0907e4633a0e09dcfbf6b41d0e86d 100644
--- a/Common/DataModel/vtkAMRBox.h
+++ b/Common/DataModel/vtkAMRBox.h
@@ -30,6 +30,7 @@
 #include "vtkObject.h"
 #include "vtkStructuredData.h" // For VTK_XYZ_GRID definition
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkAMRBox
 {
 public:
@@ -388,5 +389,6 @@ void FillRegion(T* pArray, const vtkAMRBox& arrayRegion, const vtkAMRBox& destRe
   ///@}
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkAMRBox.h
diff --git a/Common/DataModel/vtkAMRDataInternals.cxx b/Common/DataModel/vtkAMRDataInternals.cxx
index 29875df6d674aaa971421342dce52ae0a96bf9fa..0c8e74c280b4a77cda2d25996137f828fc8a38fa 100644
--- a/Common/DataModel/vtkAMRDataInternals.cxx
+++ b/Common/DataModel/vtkAMRDataInternals.cxx
@@ -17,6 +17,7 @@
 #include "vtkUniformGrid.h"
 
 #include <cassert>
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMRDataInternals);
 
 vtkAMRDataInternals::Block::Block(unsigned int i, vtkUniformGrid* g)
@@ -146,3 +147,4 @@ void vtkAMRDataInternals::RecursiveShallowCopy(vtkObject* src)
 
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAMRDataInternals.h b/Common/DataModel/vtkAMRDataInternals.h
index e8c763b270eba09808b8defcde916a4b7cdf5890..9acd5e45ca2dc2a886b436973b9bc060741dcb84 100644
--- a/Common/DataModel/vtkAMRDataInternals.h
+++ b/Common/DataModel/vtkAMRDataInternals.h
@@ -31,6 +31,7 @@
 #include "vtkSmartPointer.h" //for storing smart pointers to blocks
 #include <vector>            //for storing blocks
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUniformGrid;
 class VTKCOMMONDATAMODEL_EXPORT vtkAMRDataInternals : public vtkObject
 {
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkAMRDataInternals&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkAMRInformation.cxx b/Common/DataModel/vtkAMRInformation.cxx
index 7d026837da0e4c0aa7051fed8bb26910c1c873ac..cbfed9fd7d066b23ae0c5aa672a4cd7b48796691 100644
--- a/Common/DataModel/vtkAMRInformation.cxx
+++ b/Common/DataModel/vtkAMRInformation.cxx
@@ -24,6 +24,7 @@
 #include <cassert>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMRInformation);
 
 namespace
@@ -989,3 +990,4 @@ bool vtkAMRInformation::FindGrid(double q[3], int level, unsigned int& gridId)
   }
   return false;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAMRInformation.h b/Common/DataModel/vtkAMRInformation.h
index a492a577024198096d503f029ee7c8cef9a315a5..e68a29aa25f98fad94423e4cbaa44316a19a93fe 100644
--- a/Common/DataModel/vtkAMRInformation.h
+++ b/Common/DataModel/vtkAMRInformation.h
@@ -39,6 +39,7 @@
 
 typedef std::vector<vtkAMRBox> vtkAMRBoxList;
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedIntArray;
 class vtkIntArray;
 class vtkDoubleArray;
@@ -290,4 +291,5 @@ private:
   std::vector<std::vector<std::vector<unsigned int>>> AllParents;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkAMRUtilities.cxx b/Common/DataModel/vtkAMRUtilities.cxx
index d68b3cd558b993a8566f4c2d18ab10f1e9c99a51..16b918dafe7a5888d3c3eb901fa233122e7b3ef3 100644
--- a/Common/DataModel/vtkAMRUtilities.cxx
+++ b/Common/DataModel/vtkAMRUtilities.cxx
@@ -36,6 +36,7 @@
 #define KMAX(ext) ext[5]
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkAMRUtilities::PrintSelf(std::ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
@@ -464,3 +465,4 @@ void vtkAMRUtilities::MergeGhostArrays(vtkDataArray* existingArray, vtkUnsignedC
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAMRUtilities.h b/Common/DataModel/vtkAMRUtilities.h
index d1dc7813445c75764137913e0fb506a1d1320e3a..bf27b51f1ca2175b6337f5b71703463be536c53c 100644
--- a/Common/DataModel/vtkAMRUtilities.h
+++ b/Common/DataModel/vtkAMRUtilities.h
@@ -31,6 +31,7 @@
 #include <vector> // For C++ vector
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkFieldData;
 class vtkOverlappingAMR;
@@ -105,4 +106,5 @@ private:
   static void MergeGhostArrays(vtkDataArray* existingArray, vtkUnsignedCharArray* ghosts);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMRUtilities_h */
diff --git a/Common/DataModel/vtkAbstractCellLinks.cxx b/Common/DataModel/vtkAbstractCellLinks.cxx
index 6d3e46fa68c838110ca133b2c176c59b42f48a0b..2d50196327282c241463b7049b25fc78127e8636 100644
--- a/Common/DataModel/vtkAbstractCellLinks.cxx
+++ b/Common/DataModel/vtkAbstractCellLinks.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractCellLinks::vtkAbstractCellLinks()
 {
   this->SequentialProcessing = false;
@@ -57,3 +58,4 @@ void vtkAbstractCellLinks::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Sequential Processing: " << (this->SequentialProcessing ? "true\n" : "false\n");
   os << indent << "Type: " << this->Type << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAbstractCellLinks.h b/Common/DataModel/vtkAbstractCellLinks.h
index b5a80138782fc70604a2d7fc3b9341eba6b9b13b..1fb1e05b9e726aa0066951ac7b864b5baff4021e 100644
--- a/Common/DataModel/vtkAbstractCellLinks.h
+++ b/Common/DataModel/vtkAbstractCellLinks.h
@@ -34,6 +34,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkCellArray;
 class vtkIdList;
@@ -165,4 +166,5 @@ private:
   void operator=(const vtkAbstractCellLinks&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkAbstractCellLocator.cxx b/Common/DataModel/vtkAbstractCellLocator.cxx
index 7d10a5be8ec088e2b110b96a5a888e064f2fdb77..bc2a2958524e893e8f0913bc9ba650a5caf0b968 100644
--- a/Common/DataModel/vtkAbstractCellLocator.cxx
+++ b/Common/DataModel/vtkAbstractCellLocator.cxx
@@ -29,6 +29,7 @@
 #include "vtkUnstructuredGrid.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractCellLocator::vtkAbstractCellLocator()
 {
   this->CacheCellBounds = 1;
@@ -305,3 +306,4 @@ void vtkAbstractCellLocator::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Retain Cell Lists: " << (this->RetainCellLists ? "On\n" : "Off\n");
   os << indent << "Number of Cells Per Bucket: " << this->NumberOfCellsPerNode << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAbstractCellLocator.h b/Common/DataModel/vtkAbstractCellLocator.h
index 450ea958cec7e5a76901a9ffa0a2856c3cbe7e09..5abe65f77375b2e90e37173a95d3199c89610b0c 100644
--- a/Common/DataModel/vtkAbstractCellLocator.h
+++ b/Common/DataModel/vtkAbstractCellLocator.h
@@ -45,6 +45,7 @@
 #include <memory> // For shared_ptr
 #include <vector> // For Weights
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkGenericCell;
 class vtkIdList;
@@ -383,4 +384,5 @@ private:
   void operator=(const vtkAbstractCellLocator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkAbstractElectronicData.cxx b/Common/DataModel/vtkAbstractElectronicData.cxx
index 3d5c8845b3d4c575a68b2d5d2749e7abcb1cf15e..ca88c53dbadfb4a3df391c979cd29e2867de23d3 100644
--- a/Common/DataModel/vtkAbstractElectronicData.cxx
+++ b/Common/DataModel/vtkAbstractElectronicData.cxx
@@ -16,6 +16,7 @@
 #include "vtkAbstractElectronicData.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractElectronicData::vtkAbstractElectronicData()
   : Padding(0.0)
 {
@@ -48,3 +49,4 @@ void vtkAbstractElectronicData::DeepCopy(vtkDataObject* obj)
   // Copy ivars
   this->Padding = aed->Padding;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAbstractElectronicData.h b/Common/DataModel/vtkAbstractElectronicData.h
index 8870dfbaf51e97d81aebc852ffdc4e259322e4f6..281f170c5eb557c45f5aa75eb167dba00c9b6a0f 100644
--- a/Common/DataModel/vtkAbstractElectronicData.h
+++ b/Common/DataModel/vtkAbstractElectronicData.h
@@ -25,6 +25,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkAbstractElectronicData : public vtkDataObject
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkAbstractElectronicData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkAbstractPointLocator.cxx b/Common/DataModel/vtkAbstractPointLocator.cxx
index 5ee1514cf0a8a161ed225a7a4df8b2ef07305620..21350961e5fcc305db895de7e8be767b0df95d7a 100644
--- a/Common/DataModel/vtkAbstractPointLocator.cxx
+++ b/Common/DataModel/vtkAbstractPointLocator.cxx
@@ -18,6 +18,7 @@
 #include "vtkIdList.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractPointLocator::vtkAbstractPointLocator()
 {
   for (int i = 0; i < 6; i++)
@@ -85,3 +86,4 @@ void vtkAbstractPointLocator::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Number of Buckets: " << this->NumberOfBuckets << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAbstractPointLocator.h b/Common/DataModel/vtkAbstractPointLocator.h
index 77977cce6a3761fe7bcb53d85680d35e5da6634d..113dc1a0a0b90f2b7720cede500e0a8366d75f0b 100644
--- a/Common/DataModel/vtkAbstractPointLocator.h
+++ b/Common/DataModel/vtkAbstractPointLocator.h
@@ -33,6 +33,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkAbstractPointLocator : public vtkLocator
@@ -117,4 +118,5 @@ private:
   void operator=(const vtkAbstractPointLocator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkAdjacentVertexIterator.cxx b/Common/DataModel/vtkAdjacentVertexIterator.cxx
index 6e394eda67f334013503576ee81ca5a03466a891..3a6179638640dc94b52c4ae44d0eea48b5d7e586 100644
--- a/Common/DataModel/vtkAdjacentVertexIterator.cxx
+++ b/Common/DataModel/vtkAdjacentVertexIterator.cxx
@@ -23,6 +23,7 @@
 #include "vtkGraph.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkAdjacentVertexIterator, Graph, vtkGraph);
 vtkStandardNewMacro(vtkAdjacentVertexIterator);
 //------------------------------------------------------------------------------
@@ -64,3 +65,4 @@ void vtkAdjacentVertexIterator::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "Vertex: " << this->Vertex << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAdjacentVertexIterator.h b/Common/DataModel/vtkAdjacentVertexIterator.h
index d795e39d8643f6646e7a651c50311e6b4e4436cc..bad199c470a09170e8bfea408fe433e2df4b4842 100644
--- a/Common/DataModel/vtkAdjacentVertexIterator.h
+++ b/Common/DataModel/vtkAdjacentVertexIterator.h
@@ -39,6 +39,7 @@
 
 #include "vtkGraph.h" // For edge type definitions
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraphEdge;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkAdjacentVertexIterator : public vtkObject
@@ -98,4 +99,5 @@ private:
   void operator=(const vtkAdjacentVertexIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkAngularPeriodicDataArray.h b/Common/DataModel/vtkAngularPeriodicDataArray.h
index 12263dfbd8bfda054cc146dd9a8a0838ec3b559c..74a3cc32a92905fe9b8bcfe7eb98ddbcdd490aec 100644
--- a/Common/DataModel/vtkAngularPeriodicDataArray.h
+++ b/Common/DataModel/vtkAngularPeriodicDataArray.h
@@ -35,6 +35,7 @@
 #define VTK_PERIODIC_ARRAY_AXIS_Y 1
 #define VTK_PERIODIC_ARRAY_AXIS_Z 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix3x3;
 
 template <class Scalar>
@@ -104,6 +105,7 @@ private:
   vtkMatrix3x3* RotationMatrix;
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkAngularPeriodicDataArray.txx"
 
 #endif // vtkAngularPeriodicDataArray_h
diff --git a/Common/DataModel/vtkAngularPeriodicDataArray.txx b/Common/DataModel/vtkAngularPeriodicDataArray.txx
index c2d407b3b9829b51ddca820c9e4b816ffcefdb0d..0c4e85be35d2f521c42bff19b08ba281898d3346 100644
--- a/Common/DataModel/vtkAngularPeriodicDataArray.txx
+++ b/Common/DataModel/vtkAngularPeriodicDataArray.txx
@@ -21,6 +21,7 @@
 
 //------------------------------------------------------------------------------
 // Can't use vtkStandardNewMacro on a templated class.
+VTK_ABI_NAMESPACE_BEGIN
 template <class Scalar>
 vtkAngularPeriodicDataArray<Scalar>* vtkAngularPeriodicDataArray<Scalar>::New()
 {
@@ -185,3 +186,4 @@ vtkAngularPeriodicDataArray<Scalar>::~vtkAngularPeriodicDataArray()
 {
   this->RotationMatrix->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAnimationScene.cxx b/Common/DataModel/vtkAnimationScene.cxx
index 8eaf3a717816759ce070d828de4be454ca29da24..406fc905fe722d2624d877210a4869d11c5fa174 100644
--- a/Common/DataModel/vtkAnimationScene.cxx
+++ b/Common/DataModel/vtkAnimationScene.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkTimerLog.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAnimationScene);
 
 //------------------------------------------------------------------------------
@@ -294,3 +295,4 @@ void vtkAnimationScene::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "InPlay: " << this->InPlay << endl;
   os << indent << "StopPlay: " << this->StopPlay << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAnimationScene.h b/Common/DataModel/vtkAnimationScene.h
index ccfe5eea46434002fb8e671dfe17f8151f15a2a0..44a0e96219acf3e229f79fcbec24eaf342edd205 100644
--- a/Common/DataModel/vtkAnimationScene.h
+++ b/Common/DataModel/vtkAnimationScene.h
@@ -33,6 +33,7 @@
 #include "vtkAnimationCue.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAnimationCue;
 class vtkCollection;
 class vtkCollectionIterator;
@@ -153,4 +154,5 @@ private:
   void operator=(const vtkAnimationScene&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkAnnotation.cxx b/Common/DataModel/vtkAnnotation.cxx
index fe765494308f82362ae697b80d2c25f2378acc9d..0a589886c4ab5e8a3edb8771a891f3909bbd6351 100644
--- a/Common/DataModel/vtkAnnotation.cxx
+++ b/Common/DataModel/vtkAnnotation.cxx
@@ -31,6 +31,7 @@
 #include "vtkSelection.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAnnotation);
 
 vtkCxxSetObjectMacro(vtkAnnotation, Selection, vtkSelection);
@@ -186,3 +187,4 @@ vtkAnnotation* vtkAnnotation::GetData(vtkInformationVector* v, int i)
 {
   return vtkAnnotation::GetData(v->GetInformationObject(i));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAnnotation.h b/Common/DataModel/vtkAnnotation.h
index 58d7b4dc9c63e53c63e92136199bc8fedace0959..d9d629eeff6b71906ea1696f039d3a6e77c7471a 100644
--- a/Common/DataModel/vtkAnnotation.h
+++ b/Common/DataModel/vtkAnnotation.h
@@ -39,6 +39,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationStringKey;
 class vtkInformationDoubleVectorKey;
 class vtkInformationIntegerVectorKey;
@@ -144,4 +145,5 @@ private:
   void operator=(const vtkAnnotation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkAnnotationLayers.cxx b/Common/DataModel/vtkAnnotationLayers.cxx
index a74a8313626d130cbc2b9470947605687313e577..66b0fd5aae4735207557a3472bd9fe2b1e1c3d1c 100644
--- a/Common/DataModel/vtkAnnotationLayers.cxx
+++ b/Common/DataModel/vtkAnnotationLayers.cxx
@@ -33,6 +33,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAnnotationLayers);
 vtkCxxSetObjectMacro(vtkAnnotationLayers, CurrentAnnotation, vtkAnnotation);
 
@@ -219,3 +220,4 @@ vtkAnnotationLayers* vtkAnnotationLayers::GetData(vtkInformationVector* v, int i
 {
   return vtkAnnotationLayers::GetData(v->GetInformationObject(i));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAnnotationLayers.h b/Common/DataModel/vtkAnnotationLayers.h
index f3fa13cd7dd202e6aea9531a939ad08a4f1d6a52..db821b23d2a0199a7d684b57b03a44d44423fc26 100644
--- a/Common/DataModel/vtkAnnotationLayers.h
+++ b/Common/DataModel/vtkAnnotationLayers.h
@@ -36,6 +36,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAnnotation;
 class vtkSelection;
 
@@ -131,4 +132,5 @@ private:
   void operator=(const vtkAnnotationLayers&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkArrayData.cxx b/Common/DataModel/vtkArrayData.cxx
index 843c3c0782c2ea564e44d636197108af5e29d232..275789ebef26e24f25b5b22bd7ffaa479ca49f08 100644
--- a/Common/DataModel/vtkArrayData.cxx
+++ b/Common/DataModel/vtkArrayData.cxx
@@ -32,6 +32,7 @@
 // Standard functions
 //
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkArrayData);
 
 class vtkArrayData::implementation
@@ -188,3 +189,4 @@ void vtkArrayData::DeepCopy(vtkDataObject* other)
 
   Superclass::DeepCopy(other);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkArrayData.h b/Common/DataModel/vtkArrayData.h
index 51e0ff2080658738b73212cc7a3f56e7be369786..ba8988c814f1bcaf93d61ff8e23afc979968400c 100644
--- a/Common/DataModel/vtkArrayData.h
+++ b/Common/DataModel/vtkArrayData.h
@@ -43,6 +43,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArray;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkArrayData : public vtkDataObject
@@ -100,4 +101,5 @@ private:
   implementation* const Implementation;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkArrayListTemplate.h b/Common/DataModel/vtkArrayListTemplate.h
index 4d985e87a6f507d97426a460f8f7d4e48d2819f1..50f0b240fb3fae4d84eb11cb17c9312ccb05ec2e 100644
--- a/Common/DataModel/vtkArrayListTemplate.h
+++ b/Common/DataModel/vtkArrayListTemplate.h
@@ -55,6 +55,7 @@
 
 // Create a generic class supporting virtual dispatch to type-specific
 // subclasses.
+VTK_ABI_NAMESPACE_BEGIN
 struct BaseArrayPair
 {
   vtkIdType Num;
@@ -424,6 +425,7 @@ struct ArrayList
   vtkIdType GetNumberOfArrays() { return static_cast<vtkIdType>(Arrays.size()); }
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkArrayListTemplate.txx"
 
 #endif
diff --git a/Common/DataModel/vtkArrayListTemplate.txx b/Common/DataModel/vtkArrayListTemplate.txx
index eeaef8bd96a70a3af9e4a1f1fde5ae744c32c934..9a9e90a43d5bf43f5d149191c692db3f815bf9b7 100644
--- a/Common/DataModel/vtkArrayListTemplate.txx
+++ b/Common/DataModel/vtkArrayListTemplate.txx
@@ -22,6 +22,7 @@
 
 //----------------------------------------------------------------------------
 // Sort of a little object factory (in conjunction w/ vtkTemplateMacro())
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 void CreateArrayPair(ArrayList* list, T* inData, T* outData, vtkIdType numTuples, int numComp,
   vtkAbstractArray* outArray, T nullValue)
@@ -197,4 +198,5 @@ inline void ArrayList::AddSelfInterpolatingArrays(
   }     // for each candidate array
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkAtom.cxx b/Common/DataModel/vtkAtom.cxx
index 7526ddef362e9ebfbc7a18baf596365cafce943d..31d281473f810580470ebfb95b8c5469956a800e 100644
--- a/Common/DataModel/vtkAtom.cxx
+++ b/Common/DataModel/vtkAtom.cxx
@@ -20,6 +20,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkAtom::vtkAtom(vtkMolecule* parent, vtkIdType id)
   : Molecule(parent)
   , Id(id)
@@ -82,3 +83,4 @@ void vtkAtom::SetPosition(const vtkVector3f& pos)
 {
   this->Molecule->SetAtomPosition(this->Id, pos);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAtom.h b/Common/DataModel/vtkAtom.h
index 2dc72c0334e061fbade4949a5ae259195bdf8979..aa99370b389acd3ee4eb6b2147f6225bdc684982 100644
--- a/Common/DataModel/vtkAtom.h
+++ b/Common/DataModel/vtkAtom.h
@@ -24,6 +24,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"                // For macros, defines, etc
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMolecule;
 class vtkVector3d;
 class vtkVector3f;
@@ -82,5 +83,6 @@ inline vtkMolecule* vtkAtom::GetMolecule()
   return this->Molecule;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkAtom.h
diff --git a/Common/DataModel/vtkAttributesErrorMetric.cxx b/Common/DataModel/vtkAttributesErrorMetric.cxx
index 4c0749fe68018b8ef2d8744f09393debeaa93565..1bac9d6586115509e612e83c3604b8663e5a3fbb 100644
--- a/Common/DataModel/vtkAttributesErrorMetric.cxx
+++ b/Common/DataModel/vtkAttributesErrorMetric.cxx
@@ -22,6 +22,7 @@
 #include <cassert>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAttributesErrorMetric);
 
 //------------------------------------------------------------------------------
@@ -268,3 +269,4 @@ void vtkAttributesErrorMetric::ComputeSquareAbsoluteAttributeTolerance()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkAttributesErrorMetric.h b/Common/DataModel/vtkAttributesErrorMetric.h
index f958ffee292ab5336c1d11c2869a7505f1f4870e..ef729476481c220998b94f595178ac8084e6b276 100644
--- a/Common/DataModel/vtkAttributesErrorMetric.h
+++ b/Common/DataModel/vtkAttributesErrorMetric.h
@@ -31,6 +31,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkGenericSubdivisionErrorMetric.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericAttributeCollection;
 class vtkGenericDataSet;
 
@@ -160,4 +161,5 @@ private:
   void operator=(const vtkAttributesErrorMetric&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkBSPCuts.cxx b/Common/DataModel/vtkBSPCuts.cxx
index 53c2671649efa55c88e8de12b140faba4c071e4a..4f94c6b265e27e10ba501eb39399df9d5b3814de 100644
--- a/Common/DataModel/vtkBSPCuts.cxx
+++ b/Common/DataModel/vtkBSPCuts.cxx
@@ -23,6 +23,7 @@
 #include "vtkKdTree.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBSPCuts);
 
 //------------------------------------------------------------------------------
@@ -611,3 +612,4 @@ void vtkBSPCuts::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "UpperDataCoord: " << this->UpperDataCoord << endl;
   os << indent << "Npoints: " << this->Npoints << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBSPCuts.h b/Common/DataModel/vtkBSPCuts.h
index fc20799306ad8f5fd25101366278a6a86a9c5155..1a52d2c1b05c29bd34b4a3360d22f7bdb71f6d4c 100644
--- a/Common/DataModel/vtkBSPCuts.h
+++ b/Common/DataModel/vtkBSPCuts.h
@@ -39,6 +39,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkKdNode;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkBSPCuts : public vtkDataObject
@@ -169,4 +170,5 @@ protected:
   void operator=(const vtkBSPCuts&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkBSPIntersections.cxx b/Common/DataModel/vtkBSPIntersections.cxx
index 98da8825044ec8f432c60754b1a4eb641fb39ba9..1cd63bef563f04403e462093d01e99f72a539d9b 100644
--- a/Common/DataModel/vtkBSPIntersections.cxx
+++ b/Common/DataModel/vtkBSPIntersections.cxx
@@ -28,6 +28,7 @@
 
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBSPIntersections);
 
 #define REGIONCHECK(err)                                                                           \
@@ -499,3 +500,4 @@ void vtkBSPIntersections::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CellBoundsCache " << d[0] << " " << d[1] << " " << d[2] << " " << d[3] << " "
      << d[4] << " " << d[5] << " " << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBSPIntersections.h b/Common/DataModel/vtkBSPIntersections.h
index 20db5a7d9197bc56b7c8404f0bd54ad1b0d42908..4ac1f12260bb5d7f6db566edde45aee354ee8f6c 100644
--- a/Common/DataModel/vtkBSPIntersections.h
+++ b/Common/DataModel/vtkBSPIntersections.h
@@ -37,6 +37,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTimeStamp;
 class vtkCell;
 class vtkKdNode;
@@ -198,4 +199,5 @@ private:
   vtkBSPIntersections(const vtkBSPIntersections&) = delete;
   void operator=(const vtkBSPIntersections&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkBezierCurve.cxx b/Common/DataModel/vtkBezierCurve.cxx
index dad795f795491efa0e5980e529911ef3231e57d1..e10d9cfe950c0f090934f69cf4f3b94e0b92baeb 100644
--- a/Common/DataModel/vtkBezierCurve.cxx
+++ b/Common/DataModel/vtkBezierCurve.cxx
@@ -27,6 +27,7 @@
 #include "vtkVector.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBezierCurve);
 
 vtkBezierCurve::vtkBezierCurve() = default;
@@ -140,3 +141,4 @@ vtkDoubleArray* vtkBezierCurve::GetRationalWeights()
 {
   return RationalWeights.Get();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBezierCurve.h b/Common/DataModel/vtkBezierCurve.h
index 59b3f3158eca748debe962b382c14721fc2a0b18..49f4990193d871879dfb315d0eddb54d708f6604 100644
--- a/Common/DataModel/vtkBezierCurve.h
+++ b/Common/DataModel/vtkBezierCurve.h
@@ -25,6 +25,7 @@
 #include "vtkNew.h"          // For member variable.
 #include "vtkSmartPointer.h" // For member variable.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDoubleArray;
 class vtkIdList;
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkBezierCurve&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkBezierCurve_h
diff --git a/Common/DataModel/vtkBezierHexahedron.cxx b/Common/DataModel/vtkBezierHexahedron.cxx
index b7a61a77f219dd4869b3aad5a9b16340d7261ef9..4da2b51cea187b35a088f7948477998b4af3b760 100644
--- a/Common/DataModel/vtkBezierHexahedron.cxx
+++ b/Common/DataModel/vtkBezierHexahedron.cxx
@@ -31,6 +31,7 @@
 #include "vtkVector.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBezierHexahedron);
 
 vtkBezierHexahedron::vtkBezierHexahedron() = default;
@@ -229,3 +230,4 @@ vtkHigherOrderInterpolation* vtkBezierHexahedron::GetInterpolation()
 {
   return Interp;
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBezierHexahedron.h b/Common/DataModel/vtkBezierHexahedron.h
index 6959c5395ea63572169a1098d8a647efd4912b4d..958fa30df973ee6b43580cda971f3bd96999aeb1 100644
--- a/Common/DataModel/vtkBezierHexahedron.h
+++ b/Common/DataModel/vtkBezierHexahedron.h
@@ -32,6 +32,7 @@
 #include "vtkNew.h"          // For member variable.
 #include "vtkSmartPointer.h" // For member variable.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDoubleArray;
 class vtkHexahedron;
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkBezierHexahedron&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkBezierHexahedron_h
diff --git a/Common/DataModel/vtkBezierInterpolation.cxx b/Common/DataModel/vtkBezierInterpolation.cxx
index 57e45da8369d43ffed159d3ce0f894a92c33d6a1..e427830b83ee1c4643fa85b1c89826e6a65dfbd8 100644
--- a/Common/DataModel/vtkBezierInterpolation.cxx
+++ b/Common/DataModel/vtkBezierInterpolation.cxx
@@ -28,6 +28,7 @@
 #include "vtkVectorOperators.h"
 #include <numeric> // std::accumulate
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBezierInterpolation);
 
 vtkBezierInterpolation::vtkBezierInterpolation() = default;
@@ -380,3 +381,4 @@ void vtkBezierInterpolation::WedgeEvaluateDerivative(const int order[3], const d
   this->vtkHigherOrderInterpolation::WedgeEvaluateDerivative(order, pcoords, points, fieldVals,
     fieldDim, fieldDerivs, *tri, vtkBezierInterpolation::EvaluateShapeAndGradient);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBezierInterpolation.h b/Common/DataModel/vtkBezierInterpolation.h
index d11ea0e2aa8b68a4f22b41290dde87f63a6b6e1c..17d026a810d48078ff4393aebb91d00886756346 100644
--- a/Common/DataModel/vtkBezierInterpolation.h
+++ b/Common/DataModel/vtkBezierInterpolation.h
@@ -28,6 +28,7 @@
 // Define this to include support for a "complete" (21- vs 18-point) wedge.
 #define VTK_21_POINT_WEDGE true
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkVector2i;
 class vtkVector3d;
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkBezierInterpolation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkBezierInterpolation_h
diff --git a/Common/DataModel/vtkBezierQuadrilateral.cxx b/Common/DataModel/vtkBezierQuadrilateral.cxx
index 13156740d6279b9ad6e9eb325d532e1c091f9ca7..1fe074dda2cc6ddac0ea8acf12bf2c56919555a4 100644
--- a/Common/DataModel/vtkBezierQuadrilateral.cxx
+++ b/Common/DataModel/vtkBezierQuadrilateral.cxx
@@ -29,6 +29,7 @@
 #include "vtkVector.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBezierQuadrilateral);
 
 vtkBezierQuadrilateral::vtkBezierQuadrilateral() = default;
@@ -187,3 +188,4 @@ vtkHigherOrderCurve* vtkBezierQuadrilateral::GetEdgeCell()
 {
   return EdgeCell;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBezierQuadrilateral.h b/Common/DataModel/vtkBezierQuadrilateral.h
index 475165dad3ba83b607134042d789d6252cffa7ce..cfd611e92fff9abb854517baecac62bf37ce9e83 100644
--- a/Common/DataModel/vtkBezierQuadrilateral.h
+++ b/Common/DataModel/vtkBezierQuadrilateral.h
@@ -25,6 +25,7 @@
 #include "vtkNew.h"          // For member variable.
 #include "vtkSmartPointer.h" // For member variable.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDoubleArray;
 class vtkIdList;
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkBezierQuadrilateral&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkBezierQuadrilateral_h
diff --git a/Common/DataModel/vtkBezierTetra.cxx b/Common/DataModel/vtkBezierTetra.cxx
index 4af346db5d0952f65e256dc18ade30f1671e03e4..cf5572388b345668ba4a612468c29fed2519876e 100644
--- a/Common/DataModel/vtkBezierTetra.cxx
+++ b/Common/DataModel/vtkBezierTetra.cxx
@@ -27,6 +27,7 @@
 #include "vtkPoints.h"
 #include "vtkTetra.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBezierTetra);
 //------------------------------------------------------------------------------
 vtkBezierTetra::vtkBezierTetra() = default;
@@ -189,3 +190,4 @@ vtkHigherOrderTriangle* vtkBezierTetra::GetFaceCell()
 {
   return FaceCell;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBezierTetra.h b/Common/DataModel/vtkBezierTetra.h
index 8c444024c92d1b96139dd88b7e7132e6547c0302..03538c1af83102e171038de1ecad654d91b92283 100644
--- a/Common/DataModel/vtkBezierTetra.h
+++ b/Common/DataModel/vtkBezierTetra.h
@@ -34,6 +34,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkHigherOrderTetra.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTetra;
 class vtkBezierCurve;
 class vtkBezierTriangle;
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkBezierTetra&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkBezierTriangle.cxx b/Common/DataModel/vtkBezierTriangle.cxx
index 2ef4869b3d7fd15e7c41b0e51e2def4f7c5f169a..08e3cb0aabd83eb5eacfd8bc350cc2830bcc9731 100644
--- a/Common/DataModel/vtkBezierTriangle.cxx
+++ b/Common/DataModel/vtkBezierTriangle.cxx
@@ -32,6 +32,7 @@
 #define ENABLE_CACHING
 #define SEVEN_POINT_TRIANGLE
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBezierTriangle);
 //------------------------------------------------------------------------------
 vtkBezierTriangle::vtkBezierTriangle() = default;
@@ -156,3 +157,4 @@ vtkHigherOrderCurve* vtkBezierTriangle::GetEdgeCell()
 {
   return EdgeCell;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBezierTriangle.h b/Common/DataModel/vtkBezierTriangle.h
index 1f5d28bc25f3adc44ee5125a8d5a1edaf17ee8f1..5ec27b2ae88c5805d4876aedf540d4a77a3b4a2f 100644
--- a/Common/DataModel/vtkBezierTriangle.h
+++ b/Common/DataModel/vtkBezierTriangle.h
@@ -34,6 +34,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkHigherOrderTriangle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkBezierCurve;
 class vtkTriangle;
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkBezierTriangle&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkBezierWedge.cxx b/Common/DataModel/vtkBezierWedge.cxx
index c02f1e27c2c0ff61a9fc9b7c30191eebf7c8b970..496905e760db911bbf1f3c2599a43e2b8ea44f63 100644
--- a/Common/DataModel/vtkBezierWedge.cxx
+++ b/Common/DataModel/vtkBezierWedge.cxx
@@ -32,6 +32,7 @@
 #include "vtkVectorOperators.h"
 #include "vtkWedge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBezierWedge);
 
 vtkBezierWedge::vtkBezierWedge() = default;
@@ -216,3 +217,4 @@ vtkHigherOrderInterpolation* vtkBezierWedge::GetInterpolation()
 {
   return Interp;
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBezierWedge.h b/Common/DataModel/vtkBezierWedge.h
index cb3f4d394d20ee196350ea4d8710cb1c1fe2d9fe..632af06f4023b30a876fd8845deec34fca10c1b3 100644
--- a/Common/DataModel/vtkBezierWedge.h
+++ b/Common/DataModel/vtkBezierWedge.h
@@ -40,6 +40,7 @@
 #include "vtkNew.h"          // For member variable.
 #include "vtkSmartPointer.h" // For member variable.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDoubleArray;
 class vtkWedge;
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkBezierWedge&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkBezierWedge_h
diff --git a/Common/DataModel/vtkBiQuadraticQuad.cxx b/Common/DataModel/vtkBiQuadraticQuad.cxx
index 9fad872a48554d45d047c34e414e524ca4aae1ba..eb867cc8a340d7aa39d3bbd7c203458a1eed60a2 100644
--- a/Common/DataModel/vtkBiQuadraticQuad.cxx
+++ b/Common/DataModel/vtkBiQuadraticQuad.cxx
@@ -26,6 +26,7 @@
 #include "vtkQuad.h"
 #include "vtkQuadraticEdge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBiQuadraticQuad);
 
 //------------------------------------------------------------------------------
@@ -462,3 +463,4 @@ void vtkBiQuadraticQuad::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBiQuadraticQuad.h b/Common/DataModel/vtkBiQuadraticQuad.h
index a9038debc1c35d3b2017de5d9e500db0aea030ec..b36245c998a8efed5b9351ae9e72118980aba42e 100644
--- a/Common/DataModel/vtkBiQuadraticQuad.h
+++ b/Common/DataModel/vtkBiQuadraticQuad.h
@@ -43,6 +43,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkQuad;
 class vtkTriangle;
@@ -132,4 +133,5 @@ inline int vtkBiQuadraticQuad::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkBiQuadraticQuadraticHexahedron.cxx b/Common/DataModel/vtkBiQuadraticQuadraticHexahedron.cxx
index 9dd59f4f1031b328f047981653665e90504c8399..36932c4d24279a45976ef32c444c40349edb2d51 100644
--- a/Common/DataModel/vtkBiQuadraticQuadraticHexahedron.cxx
+++ b/Common/DataModel/vtkBiQuadraticQuadraticHexahedron.cxx
@@ -30,6 +30,7 @@
 #include "vtkQuadraticQuad.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBiQuadraticQuadraticHexahedron);
 
 //------------------------------------------------------------------------------
@@ -828,3 +829,4 @@ void vtkBiQuadraticQuadraticHexahedron::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBiQuadraticQuadraticHexahedron.h b/Common/DataModel/vtkBiQuadraticQuadraticHexahedron.h
index 4532e278d9b2935a5c31c75341872098007fc913..3868df33ae84fce92cf86d396d5370270f485fee 100644
--- a/Common/DataModel/vtkBiQuadraticQuadraticHexahedron.h
+++ b/Common/DataModel/vtkBiQuadraticQuadraticHexahedron.h
@@ -71,6 +71,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkQuadraticQuad;
 class vtkBiQuadraticQuad;
@@ -181,4 +182,5 @@ private:
   void operator=(const vtkBiQuadraticQuadraticHexahedron&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkBiQuadraticQuadraticWedge.cxx b/Common/DataModel/vtkBiQuadraticQuadraticWedge.cxx
index b62a7e250e86abc9f03830bd8e484445f4522fbd..4082e6c3103465d276f087fc8f1ea11d3272dec5 100644
--- a/Common/DataModel/vtkBiQuadraticQuadraticWedge.cxx
+++ b/Common/DataModel/vtkBiQuadraticQuadraticWedge.cxx
@@ -29,6 +29,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBiQuadraticQuadraticWedge);
 
 //------------------------------------------------------------------------------
@@ -706,3 +707,4 @@ void vtkBiQuadraticQuadraticWedge::PrintSelf(ostream & os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf (os, indent.GetNextIndent ());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBiQuadraticQuadraticWedge.h b/Common/DataModel/vtkBiQuadraticQuadraticWedge.h
index aae908a0458ee76f0ceb8450420d23aa3e268315..ed33ded9746bc7e7a899e9d21663734b006f7640 100644
--- a/Common/DataModel/vtkBiQuadraticQuadraticWedge.h
+++ b/Common/DataModel/vtkBiQuadraticQuadraticWedge.h
@@ -44,6 +44,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkBiQuadraticQuad;
 class vtkQuadraticTriangle;
@@ -161,4 +162,5 @@ inline int vtkBiQuadraticQuadraticWedge::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkBiQuadraticTriangle.cxx b/Common/DataModel/vtkBiQuadraticTriangle.cxx
index 34f03d7708b179615c2dfacfd1c65af81e71efad..14ad41c0e3f33e2ef7cfa598bf0a8c52f49ee3e0 100644
--- a/Common/DataModel/vtkBiQuadraticTriangle.cxx
+++ b/Common/DataModel/vtkBiQuadraticTriangle.cxx
@@ -22,6 +22,7 @@
 #include "vtkQuadraticEdge.h"
 #include "vtkTriangle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBiQuadraticTriangle);
 
 //------------------------------------------------------------------------------
@@ -504,3 +505,4 @@ void vtkBiQuadraticTriangle::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Face: " << this->Face << endl;
   os << indent << "Scalars: " << this->Scalars << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBiQuadraticTriangle.h b/Common/DataModel/vtkBiQuadraticTriangle.h
index 1b810900e3e24cfc731cf79bd62f38bdb5c0e0b1..f93720c3b9c39055249b41fe83b275d61cba2108 100644
--- a/Common/DataModel/vtkBiQuadraticTriangle.h
+++ b/Common/DataModel/vtkBiQuadraticTriangle.h
@@ -41,6 +41,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkTriangle;
 class vtkDoubleArray;
@@ -141,4 +142,5 @@ inline int vtkBiQuadraticTriangle::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkBond.cxx b/Common/DataModel/vtkBond.cxx
index bf7e703295fbdae47c64ed041ee4c356c02d0712..9a84a26815a35907c907aaa677a1bfa5bb80ecbc 100644
--- a/Common/DataModel/vtkBond.cxx
+++ b/Common/DataModel/vtkBond.cxx
@@ -22,6 +22,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkBond::vtkBond(vtkMolecule* parent, vtkIdType id, vtkIdType beginAtomId, vtkIdType endAtomId)
   : Molecule(parent)
   , Id(id)
@@ -94,3 +95,4 @@ unsigned short vtkBond::GetOrder()
 {
   return this->Molecule->GetBondOrder(this->Id);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBond.h b/Common/DataModel/vtkBond.h
index 7a54f2e3b3a3e44c2fa6d45d84d96e8ae918f530..3fb2d1424420c01866b1a2efa77f51112cb632b6 100644
--- a/Common/DataModel/vtkBond.h
+++ b/Common/DataModel/vtkBond.h
@@ -25,6 +25,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"                // For macros, etc
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMolecule;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkBond
@@ -95,5 +96,6 @@ inline vtkMolecule* vtkBond::GetMolecule()
   return this->Molecule;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkBond.h
diff --git a/Common/DataModel/vtkBoundingBox.cxx b/Common/DataModel/vtkBoundingBox.cxx
index e089cff4e60445a29dd6e9814af8f32812415675..2c71d798472d63d8af302d99c50e25502a1658de 100644
--- a/Common/DataModel/vtkBoundingBox.cxx
+++ b/Common/DataModel/vtkBoundingBox.cxx
@@ -27,6 +27,7 @@
 #include <cmath>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 inline double Sign(const double& a)
@@ -991,3 +992,4 @@ void vtkBoundingBox::ComputeLocalBounds(
   }
   bbox.GetBounds(outputBounds);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBoundingBox.h b/Common/DataModel/vtkBoundingBox.h
index 136eff9cffb69949fc56ff6824e9ca545dc8a558..5bf1e0b29fddde575c8d73c07aa787f56597aa8d 100644
--- a/Common/DataModel/vtkBoundingBox.h
+++ b/Common/DataModel/vtkBoundingBox.h
@@ -31,6 +31,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkSystemIncludes.h"
 #include <atomic> // For threaded bounding box computation
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkBoundingBox
@@ -567,5 +568,6 @@ inline void vtkBoundingBox::GetCorner(int corner, double p[3]) const
   p[2] = pts[iz][2];
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkBoundingBox.h
diff --git a/Common/DataModel/vtkBox.cxx b/Common/DataModel/vtkBox.cxx
index 171b72a459bf97285266214bb0128cd28e21076a..24f2d323ea8ecea199099f64cad737f20ddaf630 100644
--- a/Common/DataModel/vtkBox.cxx
+++ b/Common/DataModel/vtkBox.cxx
@@ -23,6 +23,7 @@
 #include <limits> // for IntersectWithInfiniteLine
 #include <vector> // for IntersectWithPlane
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBox);
 
 // Construct the box centered at the origin and each side length 1.0.
@@ -901,3 +902,4 @@ vtkTypeBool vtkBox::IsBoxInFrustum(double planes[24], double bounds[6])
   // not sure so return true
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkBox.h b/Common/DataModel/vtkBox.h
index f50e6c9066a17bf22b809868e1123014ef933758..34cab8607f605df6f1a6b09c361fdde659d97ca0 100644
--- a/Common/DataModel/vtkBox.h
+++ b/Common/DataModel/vtkBox.h
@@ -33,6 +33,7 @@
 
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBoundingBox;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkBox : public vtkImplicitFunction
@@ -181,4 +182,5 @@ inline void vtkBox::SetXMax(double p[3])
   this->SetXMax(p[0], p[1], p[2]);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkCell.cxx b/Common/DataModel/vtkCell.cxx
index d586704bb6242a5d0312514c49869e9d65c22676..a41cb47ddc8afff16c1b9d61a578410e045698d9 100644
--- a/Common/DataModel/vtkCell.cxx
+++ b/Common/DataModel/vtkCell.cxx
@@ -27,6 +27,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 //----------------------------------------------------------------------------
@@ -596,3 +597,4 @@ double* vtkCell::GetParametricCoords()
 {
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCell.h b/Common/DataModel/vtkCell.h
index 412e542bc12d0fe880c2caea642122317a405f88..f771e265585348d8297349653986cdcdbc1d4008 100644
--- a/Common/DataModel/vtkCell.h
+++ b/Common/DataModel/vtkCell.h
@@ -47,6 +47,7 @@
 #include "vtkCellType.h"    // Needed to define cell types
 #include "vtkIdList.h"      // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkCellData;
 class vtkDataArray;
@@ -405,4 +406,5 @@ private:
   void operator=(const vtkCell&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkCell3D.cxx b/Common/DataModel/vtkCell3D.cxx
index e7d2eb8c9aaa7c7781c105b8034bb44d05e9c16b..a343837af580a241cae56007c28ec17c2729a355 100644
--- a/Common/DataModel/vtkCell3D.cxx
+++ b/Common/DataModel/vtkCell3D.cxx
@@ -30,6 +30,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCell3D::vtkCell3D()
 {
   this->Triangulator = nullptr;
@@ -519,3 +520,4 @@ void vtkCell3D::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Merge Tolerance: " << this->MergeTolerance << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCell3D.h b/Common/DataModel/vtkCell3D.h
index 9bd6db9d9b4dae6482fa403b6e7c22cb371e678e..13b262912fa1734c28712df9623ab508469daf28 100644
--- a/Common/DataModel/vtkCell3D.h
+++ b/Common/DataModel/vtkCell3D.h
@@ -30,6 +30,7 @@
 #include "vtkCell.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOrderedTriangulator;
 class vtkTetra;
 class vtkCellArray;
@@ -218,4 +219,5 @@ private:
   void operator=(const vtkCell3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkCellArray.cxx b/Common/DataModel/vtkCellArray.cxx
index 7817a0f5ecbc0eb45422f8db81214338c872b069..2353b95f422371d1006e303f04b1c81f66d9230d 100644
--- a/Common/DataModel/vtkCellArray.cxx
+++ b/Common/DataModel/vtkCellArray.cxx
@@ -533,6 +533,7 @@ struct AppendImpl
 
 } // end anon namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCellArray::vtkCellArray() = default;
 vtkCellArray::~vtkCellArray() = default;
 vtkStandardNewMacro(vtkCellArray);
@@ -867,6 +868,8 @@ void vtkCellArray::SetData(
 #endif
 }
 
+VTK_ABI_NAMESPACE_END
+
 namespace
 {
 
@@ -909,6 +912,7 @@ struct GenerateOffsetsImpl
 
 } // end anon namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 bool vtkCellArray::SetData(vtkDataArray* offsets, vtkDataArray* connectivity)
 {
@@ -1231,3 +1235,4 @@ vtkIdType vtkCellArray::IsHomogeneous()
 {
   return this->Visit(IsHomogeneousImpl{});
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCellArray.h b/Common/DataModel/vtkCellArray.h
index 01e8cd5fb23eff9b13ccf983c76af0fefb5b4231..f05b685f22799fc42c00e0448fc0f8cb21659780 100644
--- a/Common/DataModel/vtkCellArray.h
+++ b/Common/DataModel/vtkCellArray.h
@@ -174,6 +174,7 @@
  */
 #define VTK_CELL_ARRAY_V2
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArrayIterator;
 class vtkIdTypeArray;
 
@@ -1377,9 +1378,11 @@ vtkCellArray::VisitState<ArrayT>::GetCellRange(vtkIdType cellId)
   return vtk::DataArrayValueRange<1>(
     this->GetConnectivity(), this->GetBeginOffset(cellId), this->GetEndOffset(cellId));
 }
+VTK_ABI_NAMESPACE_END
 
 namespace vtkCellArray_detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 struct InsertNextCellImpl
 {
@@ -1522,8 +1525,10 @@ struct ResetImpl
   }
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtkCellArray_detail
 
+VTK_ABI_NAMESPACE_BEGIN
 //----------------------------------------------------------------------------
 inline void vtkCellArray::InitTraversal()
 {
@@ -1639,4 +1644,5 @@ inline void vtkCellArray::Reset()
   this->Visit(vtkCellArray_detail::ResetImpl{});
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCellArray.h
diff --git a/Common/DataModel/vtkCellArrayIterator.cxx b/Common/DataModel/vtkCellArrayIterator.cxx
index dc4050a4bfc5a39ef472dacf6bca613e3c21e5ed..d9365c4d9b780b0893ecf6a0891424e0ce7a560c 100644
--- a/Common/DataModel/vtkCellArrayIterator.cxx
+++ b/Common/DataModel/vtkCellArrayIterator.cxx
@@ -16,6 +16,7 @@
 #include "vtkCellArrayIterator.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellArrayIterator);
 
 void vtkCellArrayIterator::PrintSelf(std::ostream& os, vtkIndent indent)
@@ -25,3 +26,4 @@ void vtkCellArrayIterator::PrintSelf(std::ostream& os, vtkIndent indent)
   os << indent << "CurrentCellId: " << this->CurrentCellId << "\n";
   os << indent << "CellArray: " << this->CellArray.Get() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCellArrayIterator.h b/Common/DataModel/vtkCellArrayIterator.h
index 517254ccaa45b2bf54d7af469d8f2a0012427d67..2f408e05e4dc09743f343f4820f61969266239aa 100644
--- a/Common/DataModel/vtkCellArrayIterator.h
+++ b/Common/DataModel/vtkCellArrayIterator.h
@@ -75,6 +75,7 @@
 #include <cassert>     // for assert
 #include <type_traits> // for std::enable_if
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkCellArrayIterator : public vtkObject
 {
 public:
@@ -255,4 +256,5 @@ private:
   void operator=(const vtkCellArrayIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCellArrayIterator_h
diff --git a/Common/DataModel/vtkCellData.cxx b/Common/DataModel/vtkCellData.cxx
index b7194564628cbcfffb876a98865d1098fdfa01c6..7a37a120acd40641cb05a4bd3745e5744b793a4a 100644
--- a/Common/DataModel/vtkCellData.cxx
+++ b/Common/DataModel/vtkCellData.cxx
@@ -17,6 +17,7 @@
 #include "vtkDataSetAttributes.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellData);
 vtkStandardExtendedNewMacro(vtkCellData);
 
@@ -31,3 +32,4 @@ void vtkCellData::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCellData.h b/Common/DataModel/vtkCellData.h
index f508f6b5ff3ff2d3cbc40d1d0104528b480e44f5..28841568e2522be842a19791e0cf483773350b0c 100644
--- a/Common/DataModel/vtkCellData.h
+++ b/Common/DataModel/vtkCellData.h
@@ -32,6 +32,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataSetAttributes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkCellData : public vtkDataSetAttributes
 {
 public:
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkCellData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkCellIterator.cxx b/Common/DataModel/vtkCellIterator.cxx
index cfacc97f46a21e40e5fa03db066b99a4a5abe24d..cfc58e9a621bec89a413e10a19ec0c00216355c7 100644
--- a/Common/DataModel/vtkCellIterator.cxx
+++ b/Common/DataModel/vtkCellIterator.cxx
@@ -21,6 +21,7 @@
 #include "vtkPoints.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkCellIterator::PrintSelf(ostream& os, vtkIndent indent)
 {
   os << indent << "CacheFlags: ";
@@ -169,3 +170,4 @@ vtkCellIterator::vtkCellIterator()
 
 //------------------------------------------------------------------------------
 vtkCellIterator::~vtkCellIterator() = default;
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCellIterator.h b/Common/DataModel/vtkCellIterator.h
index 101bef399711a9600d2735ef8add6f120f1b9342..262225130ee83d6d130663a6f9868fdc9f4aa94a 100644
--- a/Common/DataModel/vtkCellIterator.h
+++ b/Common/DataModel/vtkCellIterator.h
@@ -71,6 +71,7 @@
 #include "vtkNew.h"                   // For vtkNew
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericCell;
 class vtkPoints;
 
@@ -384,4 +385,5 @@ inline vtkIdType vtkCellIterator::GetNumberOfFaces()
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCellIterator_h
diff --git a/Common/DataModel/vtkCellLinks.cxx b/Common/DataModel/vtkCellLinks.cxx
index 865ff42817e5bbcd83049a4d1b35b61f2a8e7906..311435c69336ec2689bf09363d18f6bf72360216 100644
--- a/Common/DataModel/vtkCellLinks.cxx
+++ b/Common/DataModel/vtkCellLinks.cxx
@@ -23,6 +23,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellLinks);
 
 //------------------------------------------------------------------------------
@@ -304,3 +305,4 @@ void vtkCellLinks::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "MaxId: " << this->MaxId << "\n";
   os << indent << "Extend: " << this->Extend << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCellLinks.h b/Common/DataModel/vtkCellLinks.h
index 4df2c3d8d2c0c0219f52b3011ce72dd6e015275b..977cb5bf0e6dea42946b98ed3d402f3f12f40ea6 100644
--- a/Common/DataModel/vtkCellLinks.h
+++ b/Common/DataModel/vtkCellLinks.h
@@ -39,6 +39,7 @@
 #include "vtkAbstractCellLinks.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkCellArray;
 
@@ -264,4 +265,5 @@ inline void vtkCellLinks::ResizeCellList(vtkIdType ptId, int size)
   this->Array[ptId].cells = cells;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkCellLocator.cxx b/Common/DataModel/vtkCellLocator.cxx
index c729de254ef13dbe3461b973423ce3beb7906400..c0c9c81d1ab76ddd7e3028d325d2d4642664d4b8 100644
--- a/Common/DataModel/vtkCellLocator.cxx
+++ b/Common/DataModel/vtkCellLocator.cxx
@@ -27,6 +27,7 @@
 #include <array>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkCellLocator);
 
@@ -1465,3 +1466,4 @@ void vtkCellLocator::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "H: " << this->H[0] << " " << this->H[1] << " " << this->H[2] << "\n";
   os << indent << "NumberOfDivisions: " << this->NumberOfDivisions << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCellLocator.h b/Common/DataModel/vtkCellLocator.h
index d7edceae4fc89f33bc1b0f63ae706c5f9cd32982..964c2c104e55eb5b992758e0254c26e7e7911bf3 100644
--- a/Common/DataModel/vtkCellLocator.h
+++ b/Common/DataModel/vtkCellLocator.h
@@ -50,6 +50,7 @@
 #include "vtkDeprecation.h"           // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkNew.h"                   // For vtkNew
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIntArray;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkCellLocator : public vtkAbstractCellLocator
@@ -241,4 +242,5 @@ private:
   void operator=(const vtkCellLocator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkCellLocatorStrategy.cxx b/Common/DataModel/vtkCellLocatorStrategy.cxx
index 6e2d4ffcbaee135f9147bea6283e98e1bf05ee6a..4c741c60c4d64ab73f09ab5659cd7ee8f4f65121 100644
--- a/Common/DataModel/vtkCellLocatorStrategy.cxx
+++ b/Common/DataModel/vtkCellLocatorStrategy.cxx
@@ -21,6 +21,7 @@
 #include "vtkPointSet.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellLocatorStrategy);
 
 //------------------------------------------------------------------------------
@@ -177,3 +178,4 @@ void vtkCellLocatorStrategy::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "CellLocator: " << this->CellLocator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCellLocatorStrategy.h b/Common/DataModel/vtkCellLocatorStrategy.h
index d5733c29d81ef579fe8a15e57cb62798324f10b3..d8ff85fcdb9618374e32bf6a060bdae9ef08094f 100644
--- a/Common/DataModel/vtkCellLocatorStrategy.h
+++ b/Common/DataModel/vtkCellLocatorStrategy.h
@@ -31,6 +31,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkFindCellStrategy.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractCellLocator;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkCellLocatorStrategy : public vtkFindCellStrategy
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkCellLocatorStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkCellTreeLocator.cxx b/Common/DataModel/vtkCellTreeLocator.cxx
index 126311f0cdb316afed123e920a2572ceabcff7a5..634c797e6bad6bcb6de43bf3b8928508cb6c8cb4 100644
--- a/Common/DataModel/vtkCellTreeLocator.cxx
+++ b/Common/DataModel/vtkCellTreeLocator.cxx
@@ -30,12 +30,15 @@
 #include <stack>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkCellTreeLocator);
+VTK_ABI_NAMESPACE_END
 
 //------------------------------------------------------------------------------
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 enum
 {
   POS_X,
@@ -1284,8 +1287,10 @@ void CellTree<T>::FindCellsWithinBounds(double* bbox, vtkIdList* cells)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
 } // namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkCellTreeLocator::vtkCellTreeLocator()
 {
@@ -1488,3 +1493,4 @@ void vtkCellTreeLocator::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "NumberOfBuckets: " << this->NumberOfBuckets << "\n";
   os << indent << "LargeIds: " << this->LargeIds << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCellTreeLocator.h b/Common/DataModel/vtkCellTreeLocator.h
index c360988e1d482f8c843045fbaf909d5b2e320225..f6b49bd70839ef32dbb42c4967c768aa9c960fd1 100644
--- a/Common/DataModel/vtkCellTreeLocator.h
+++ b/Common/DataModel/vtkCellTreeLocator.h
@@ -57,14 +57,17 @@
 
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 // Forward declarations for PIMPL
 struct vtkCellTree;
 template <typename T>
 struct CellTree;
 template <typename T>
 struct CellTreeBuilder;
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkCellTreeLocator : public vtkAbstractCellLocator
 {
   template <typename>
@@ -190,5 +193,6 @@ private:
   vtkCellTreeLocator(const vtkCellTreeLocator&) = delete;
   void operator=(const vtkCellTreeLocator&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
diff --git a/Common/DataModel/vtkCellType.h b/Common/DataModel/vtkCellType.h
index 5596a38f6314108a4943697675ada9d802ec1699..3196647a82bc9743f92780d2ada611324a41f74c 100644
--- a/Common/DataModel/vtkCellType.h
+++ b/Common/DataModel/vtkCellType.h
@@ -26,6 +26,8 @@
 #ifndef vtkCellType_h
 #define vtkCellType_h
 
+#include "vtkABINamespace.h"
+
 // To add a new cell type, define a new integer type flag here, then
 // create a subclass of vtkCell to implement the proper behavior. You
 // may have to modify the following methods: vtkDataSet (and subclasses)
@@ -40,6 +42,7 @@
 // unsigned char array. Therefore, the maximum encoding number for a cell type
 // is 255.
 
+VTK_ABI_NAMESPACE_BEGIN
 typedef enum
 {
   // Linear cells
@@ -127,5 +130,6 @@ typedef enum
   VTK_NUMBER_OF_CELL_TYPES
 } VTKCellType;
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkCellType.h
diff --git a/Common/DataModel/vtkCellTypes.cxx b/Common/DataModel/vtkCellTypes.cxx
index 5375edbff438b447f939bffbc413498af1850f28..61bef7881e8fe4a7a3fb259d166d33c6cfdebeb5 100644
--- a/Common/DataModel/vtkCellTypes.cxx
+++ b/Common/DataModel/vtkCellTypes.cxx
@@ -24,6 +24,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellTypes);
 
 namespace
@@ -308,3 +309,4 @@ void vtkCellTypes::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "MaxId: " << this->MaxId << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCellTypes.h b/Common/DataModel/vtkCellTypes.h
index 980380e2c7f7563cd0b9db2a611d2546a691adde..f11cf960a629f3c0e0637f368e41c33cd6990b64 100644
--- a/Common/DataModel/vtkCellTypes.h
+++ b/Common/DataModel/vtkCellTypes.h
@@ -45,6 +45,7 @@
 #include "vtkSmartPointer.h"      // Needed for internals
 #include "vtkUnsignedCharArray.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIntArray;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkCellTypes : public vtkObject
@@ -218,4 +219,5 @@ inline int vtkCellTypes::IsLinear(unsigned char type)
   return ((type <= 20) || (type == VTK_CONVEX_POINT_SET) || (type == VTK_POLYHEDRON));
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkClosestNPointsStrategy.cxx b/Common/DataModel/vtkClosestNPointsStrategy.cxx
index aecccf992b8c5e3e80f70ccdd3f2a8ea1750d0b9..5d44b83bed39cb8ede29d83d2ca794062ad967de 100644
--- a/Common/DataModel/vtkClosestNPointsStrategy.cxx
+++ b/Common/DataModel/vtkClosestNPointsStrategy.cxx
@@ -25,6 +25,7 @@
 #include <set>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClosestNPointsStrategy);
 
 //------------------------------------------------------------------------------
@@ -105,3 +106,4 @@ void vtkClosestNPointsStrategy::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkClosestNPointsStrategy.h b/Common/DataModel/vtkClosestNPointsStrategy.h
index 7546a3555da9bf0163761d1f0c72bb6a1a8c291d..ef76493828d5917577ad4c3f463a6d816f3e761d 100644
--- a/Common/DataModel/vtkClosestNPointsStrategy.h
+++ b/Common/DataModel/vtkClosestNPointsStrategy.h
@@ -32,6 +32,7 @@
 #include "vtkClosestPointStrategy.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkClosestNPointsStrategy : public vtkClosestPointStrategy
 {
 public:
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkClosestNPointsStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkClosestPointStrategy.cxx b/Common/DataModel/vtkClosestPointStrategy.cxx
index 5d17f4b213a97f1f03a5cccf6a2cbf71d50f88d3..0fa972f1e04c6318734eb21bdb137dd930ef84f4 100644
--- a/Common/DataModel/vtkClosestPointStrategy.cxx
+++ b/Common/DataModel/vtkClosestPointStrategy.cxx
@@ -21,6 +21,7 @@
 #include "vtkPointSet.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClosestPointStrategy);
 
 //------------------------------------------------------------------------------
@@ -406,3 +407,4 @@ void vtkClosestPointStrategy::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "PointLocator: " << this->PointLocator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkClosestPointStrategy.h b/Common/DataModel/vtkClosestPointStrategy.h
index 33e24d565a401a732d088e62f188690ad3ed506f..999f6321dbc29b32adc0651b06a919dba801fdb1 100644
--- a/Common/DataModel/vtkClosestPointStrategy.h
+++ b/Common/DataModel/vtkClosestPointStrategy.h
@@ -40,6 +40,7 @@
 
 #include <vector> // For tracking visited cells
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkAbstractPointLocator;
 
@@ -148,4 +149,5 @@ inline vtkCell* vtkClosestPointStrategy::SelectCell(
   return cell;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkColor.h b/Common/DataModel/vtkColor.h
index 4a04c8fc8499233a9370b9126ee4f2de3be6d547..c7b762c21a1001f1e5c900c771c0668377ad501d 100644
--- a/Common/DataModel/vtkColor.h
+++ b/Common/DataModel/vtkColor.h
@@ -30,6 +30,7 @@
 
 // .NAME vtkColor3 - templated base type for storage of 3 component colors.
 //
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 class vtkColor3 : public vtkTuple<T, 3>
 {
@@ -338,5 +339,6 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkColor_h
 // VTK-HeaderTest-Exclude: vtkColor.h
diff --git a/Common/DataModel/vtkCompositeDataIterator.cxx b/Common/DataModel/vtkCompositeDataIterator.cxx
index 7b772dbc73ffea987eb08f5087b84a7ebb8bf3ab..90b31e7d4965d9aa0672c0e7c08681458327df4f 100644
--- a/Common/DataModel/vtkCompositeDataIterator.cxx
+++ b/Common/DataModel/vtkCompositeDataIterator.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkCompositeDataIterator::vtkCompositeDataIterator()
 {
   this->Reverse = 0;
@@ -61,3 +62,4 @@ void vtkCompositeDataIterator::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Reverse: " << (this->Reverse ? "On" : "Off") << endl;
   os << indent << "SkipEmptyNodes: " << (this->SkipEmptyNodes ? "On" : "Off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCompositeDataIterator.h b/Common/DataModel/vtkCompositeDataIterator.h
index f496cc07c1852646cee4684b16fc46f4db835bd9..e61036b3f15a48726490ed089b5fe251db683206 100644
--- a/Common/DataModel/vtkCompositeDataIterator.h
+++ b/Common/DataModel/vtkCompositeDataIterator.h
@@ -26,6 +26,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkCompositeDataSetInternals;
 class vtkCompositeDataSetIndex;
@@ -131,4 +132,5 @@ private:
   void operator=(const vtkCompositeDataIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkCompositeDataSet.cxx b/Common/DataModel/vtkCompositeDataSet.cxx
index 01a293ff8565d8ac51c167d767613635fc5bc7a2..0ae73707d2ade99e6f9a181c2f93f65a3d6215f5 100644
--- a/Common/DataModel/vtkCompositeDataSet.cxx
+++ b/Common/DataModel/vtkCompositeDataSet.cxx
@@ -25,6 +25,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyMacro(vtkCompositeDataSet, NAME, String);
 vtkInformationKeyMacro(vtkCompositeDataSet, CURRENT_PROCESS_CAN_LOAD_BLOCK, Integer);
 
@@ -170,3 +171,4 @@ void vtkCompositeDataSet::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCompositeDataSet.h b/Common/DataModel/vtkCompositeDataSet.h
index 93e70eeb1a1a626f1e88544ad26c1f41029e2ce4..86d742df691cbbaf6e1e6121a28c5e6886219a7c 100644
--- a/Common/DataModel/vtkCompositeDataSet.h
+++ b/Common/DataModel/vtkCompositeDataSet.h
@@ -38,6 +38,7 @@
 
 #include <vector> // For GetDataSets
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataIterator;
 class vtkCompositeDataSetInternals;
 class vtkDataSet;
@@ -196,6 +197,7 @@ private:
   void operator=(const vtkCompositeDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkCompositeDataSet.txx" // for template implementations
 
 #endif
diff --git a/Common/DataModel/vtkCompositeDataSet.txx b/Common/DataModel/vtkCompositeDataSet.txx
index fa502f20d9f657063c8480bebe8753e62c0ba1f9..c49a536f77e8f34ff4f1cd29ff8d97a96dd377e0 100644
--- a/Common/DataModel/vtkCompositeDataSet.txx
+++ b/Common/DataModel/vtkCompositeDataSet.txx
@@ -23,6 +23,7 @@
 #define vtkCompositeDataSet_txx
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <class DataSetT>
 std::vector<DataSetT*> vtkCompositeDataSet::GetDataSets(vtkDataObject* dobj, bool preserveNull)
 {
@@ -56,4 +57,5 @@ std::vector<DataSetT*> vtkCompositeDataSet::GetDataSets(vtkDataObject* dobj, boo
   return datasets;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkCompositeDataSetNodeReference.h b/Common/DataModel/vtkCompositeDataSetNodeReference.h
index 6a41e12cd420b2e5d71ba8581fda53aae78e7c04..67c3c905ff7b03bc27d37685457fc28e7b255ab8 100644
--- a/Common/DataModel/vtkCompositeDataSetNodeReference.h
+++ b/Common/DataModel/vtkCompositeDataSetNodeReference.h
@@ -25,9 +25,9 @@
 
 namespace vtk
 {
-
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 // MTimeWatcher:
@@ -85,8 +85,11 @@ template <class ObjectType>
 using DebugWeakPointer = ObjectType*;
 #endif
 
+VTK_ABI_NAMESPACE_END
 } // end namespace detail
 
+VTK_ABI_NAMESPACE_BEGIN
+
 /**
  * A reference proxy into a vtkCompositeDataSet, obtained by dereferencing an
  * iterator from the vtk::Range(vtkCompositeDataSet*) overloads.
@@ -265,6 +268,7 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtk
 
 #endif // vtkCompositeDataSetNodeReference_h
diff --git a/Common/DataModel/vtkCompositeDataSetRange.h b/Common/DataModel/vtkCompositeDataSetRange.h
index 3c22876c7c56201817a4313c143f4830416ad964..1def6efcf362acf39a626935c739008565172a5f 100644
--- a/Common/DataModel/vtkCompositeDataSetRange.h
+++ b/Common/DataModel/vtkCompositeDataSetRange.h
@@ -27,6 +27,7 @@
 
 namespace vtk
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Pass these to vtk::Range(cds, options):
 enum class CompositeDataSetOptions : unsigned int
@@ -35,15 +36,18 @@ enum class CompositeDataSetOptions : unsigned int
   SkipEmptyNodes = 1 << 1 // Skip null datasets.
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtk (for bitflag op definition)
 
+VTK_ABI_NAMESPACE_BEGIN
 VTK_GENERATE_BITFLAG_OPS(vtk::CompositeDataSetOptions)
+VTK_ABI_NAMESPACE_END
 
 namespace vtk
 {
-
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 struct CompositeDataSetRange;
 struct CompositeDataSetIterator;
@@ -263,6 +267,7 @@ private:
   CompositeDataSetOptions Options;
 };
 
+VTK_ABI_NAMESPACE_END
 }
 } // end namespace vtk::detail
 
diff --git a/Common/DataModel/vtkCone.cxx b/Common/DataModel/vtkCone.cxx
index 56f5b11f65eaa7d8e5670d153cd4395e546b279e..1bdc550431e0bada765ba4941d4f51f24e439f82 100644
--- a/Common/DataModel/vtkCone.cxx
+++ b/Common/DataModel/vtkCone.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCone);
 
 // Construct cone with angle of 45 degrees.
@@ -46,3 +47,4 @@ void vtkCone::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Angle: " << this->Angle << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCone.h b/Common/DataModel/vtkCone.h
index 052dd389ca52e38bee07709626dd343b01aa7769..170771f516358356c04ca9308dbb43245b1dbffc 100644
--- a/Common/DataModel/vtkCone.h
+++ b/Common/DataModel/vtkCone.h
@@ -34,6 +34,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkCone : public vtkImplicitFunction
 {
 public:
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkCone&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkConvexPointSet.cxx b/Common/DataModel/vtkConvexPointSet.cxx
index 8c3a1a02d42ffe4d4f30e3694a3bcd0841eaf273..5fdcffb77132535aaaf2649b598dc082d1889608 100644
--- a/Common/DataModel/vtkConvexPointSet.cxx
+++ b/Common/DataModel/vtkConvexPointSet.cxx
@@ -26,6 +26,7 @@
 #include "vtkTetra.h"
 #include "vtkTriangle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkConvexPointSet);
 
 //------------------------------------------------------------------------------
@@ -416,3 +417,4 @@ void vtkConvexPointSet::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "ParametricCoords: (null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkConvexPointSet.h b/Common/DataModel/vtkConvexPointSet.h
index 1d2a43f93f08d4209c9d60f2fe5fb5d3427f09cd..67c2c492ef1fbd4d9d94fc0d9e8b8e6dc673c55d 100644
--- a/Common/DataModel/vtkConvexPointSet.h
+++ b/Common/DataModel/vtkConvexPointSet.h
@@ -33,6 +33,7 @@
 #include "vtkCell3D.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGrid;
 class vtkCellArray;
 class vtkTriangle;
@@ -235,4 +236,5 @@ inline int vtkConvexPointSet::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkCoordinateFrame.cxx b/Common/DataModel/vtkCoordinateFrame.cxx
index 8576b741ecfece33196760294219d2a26af6fa02..a33415a1251d0c92e39b96a8923ba0448c867fd4 100644
--- a/Common/DataModel/vtkCoordinateFrame.cxx
+++ b/Common/DataModel/vtkCoordinateFrame.cxx
@@ -21,6 +21,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCoordinateFrame);
 
 double vtkCoordinateFrame::EvaluateFunction(double x[3])
@@ -81,3 +82,4 @@ void vtkCoordinateFrame::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ZAxis: " << this->ZAxis[0] << " " << this->ZAxis[1] << " " << this->ZAxis[2]
      << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCoordinateFrame.h b/Common/DataModel/vtkCoordinateFrame.h
index 7ae29e22191f4e04f3c10bf4ca8d35c23f315c59..74a85a13cba44491e2cb233e9d43da7f7cd15ee3 100644
--- a/Common/DataModel/vtkCoordinateFrame.h
+++ b/Common/DataModel/vtkCoordinateFrame.h
@@ -39,6 +39,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlane;
 class vtkDataArray;
 
@@ -104,4 +105,5 @@ private:
   void operator=(const vtkCoordinateFrame&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkCubicLine.cxx b/Common/DataModel/vtkCubicLine.cxx
index 9ca06676651c4ca00628af889f456919eaf6f127..c9b30abd59a5eac1a9add8da1720aa34eb4d3221 100644
--- a/Common/DataModel/vtkCubicLine.cxx
+++ b/Common/DataModel/vtkCubicLine.cxx
@@ -26,6 +26,7 @@
 #include "vtkPointData.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCubicLine);
 
 //------------------------------------------------------------------------------
@@ -445,3 +446,4 @@ void vtkCubicLine::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Line: " << this->Line << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCubicLine.h b/Common/DataModel/vtkCubicLine.h
index bc4ce6ba4f7eae3ae60d2a1aa466776e05c40413..a95925647d2f4da633b59e439c8c7028cc1aceda 100644
--- a/Common/DataModel/vtkCubicLine.h
+++ b/Common/DataModel/vtkCubicLine.h
@@ -36,6 +36,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkDoubleArray;
 
@@ -132,4 +133,5 @@ inline int vtkCubicLine::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkCylinder.cxx b/Common/DataModel/vtkCylinder.cxx
index 469bcade243efad4d62483578ec80e4493fb9f65..a5e46b3dc3f0572ba0c6a1e58eeaa449cb302ce6 100644
--- a/Common/DataModel/vtkCylinder.cxx
+++ b/Common/DataModel/vtkCylinder.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCylinder);
 
 //------------------------------------------------------------------------------
@@ -116,3 +117,4 @@ void vtkCylinder::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Radius: " << this->Radius << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkCylinder.h b/Common/DataModel/vtkCylinder.h
index 1d6a8fc840cec5a4f22a00e42331dfdd858ffb2b..10bb464b99b7ad463d19e499739a748bc53d08ad 100644
--- a/Common/DataModel/vtkCylinder.h
+++ b/Common/DataModel/vtkCylinder.h
@@ -41,6 +41,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkCylinder : public vtkImplicitFunction
 {
 public:
@@ -106,4 +107,5 @@ private:
   void operator=(const vtkCylinder&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDataAssembly.cxx b/Common/DataModel/vtkDataAssembly.cxx
index 6ff4cd260a4f7853782d7658cdd40440fc217b61..b7fc7e80cfac9d1029d749c2a7f3dd1e37e6d8a3 100644
--- a/Common/DataModel/vtkDataAssembly.cxx
+++ b/Common/DataModel/vtkDataAssembly.cxx
@@ -32,6 +32,7 @@
 #include <unordered_map>
 #include <unordered_set>
 
+VTK_ABI_NAMESPACE_BEGIN
 static constexpr const char* DATASET_NODE_NAME = "dataset";
 
 //============================================================================
@@ -1333,3 +1334,4 @@ void vtkDataAssembly::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "XML Representation : " << endl << endl;
   this->Internals->Document.save(os, "    ");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDataAssembly.h b/Common/DataModel/vtkDataAssembly.h
index 39ff85f47db6485a297b11df6683428bc054b1d8..32463927f15a6083bc69e7a6709022baefcc3c93 100644
--- a/Common/DataModel/vtkDataAssembly.h
+++ b/Common/DataModel/vtkDataAssembly.h
@@ -125,6 +125,7 @@
 #include <string> // for std::string
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataAssemblyVisitor;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkDataAssembly : public vtkObject
@@ -474,4 +475,5 @@ private:
   std::unique_ptr<vtkInternals> Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDataAssemblyUtilities.cxx b/Common/DataModel/vtkDataAssemblyUtilities.cxx
index d52a20a4aa40de15fbe0251465529979d8490a00..a3802ee452692049e426ef3c994de27ae3b77835 100644
--- a/Common/DataModel/vtkDataAssemblyUtilities.cxx
+++ b/Common/DataModel/vtkDataAssemblyUtilities.cxx
@@ -35,6 +35,7 @@
 #include <sstream>
 #include <tuple>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -832,3 +833,4 @@ std::vector<std::string> vtkDataAssemblyUtilities::GetSelectorsForCompositeIds(
   // use-case.
   return {};
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDataAssemblyUtilities.h b/Common/DataModel/vtkDataAssemblyUtilities.h
index dc963840613264d1ad603c5e74c5cae059a7d341..dcc0cb8f2cb5977c8914d8717af2e42efbc268dd 100644
--- a/Common/DataModel/vtkDataAssemblyUtilities.h
+++ b/Common/DataModel/vtkDataAssemblyUtilities.h
@@ -30,6 +30,7 @@
 #include <string> // for std::string
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkDataAssembly;
 class vtkDataObject;
@@ -135,4 +136,5 @@ private:
   void operator=(const vtkDataAssemblyUtilities&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDataAssemblyVisitor.h b/Common/DataModel/vtkDataAssemblyVisitor.h
index 72005b03b599a62cb16b06929a71a97d7295e92b..a9c32529cdfc2bc0ab437808348a5d2cd2a1251e 100644
--- a/Common/DataModel/vtkDataAssemblyVisitor.h
+++ b/Common/DataModel/vtkDataAssemblyVisitor.h
@@ -54,6 +54,7 @@
 #include <memory> // for std::unique_ptr
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataAssembly;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkDataAssemblyVisitor : public vtkObject
@@ -121,4 +122,5 @@ private:
   friend class vtkDataAssembly;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDataObject.cxx b/Common/DataModel/vtkDataObject.cxx
index 2d04d7d62ea8d5765e65e931d1e7edd63bc750ae..af1314e6ccd2ddbe3c29cb0bc841317970b96ec1 100644
--- a/Common/DataModel/vtkDataObject.cxx
+++ b/Common/DataModel/vtkDataObject.cxx
@@ -30,6 +30,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkObjectFactory.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataObject);
 
 vtkCxxSetObjectMacro(vtkDataObject, Information, vtkInformation);
@@ -696,3 +697,4 @@ vtkIdType vtkDataObject::GetNumberOfElements(int type)
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDataObject.h b/Common/DataModel/vtkDataObject.h
index 9ba87aeca4b0aaabed9340a220f9586cb35d88f5..33fb720164ed50a12012b7acd1f928024cdebfdc 100644
--- a/Common/DataModel/vtkDataObject.h
+++ b/Common/DataModel/vtkDataObject.h
@@ -37,6 +37,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkDataSetAttributes;
 class vtkFieldData;
@@ -441,4 +442,5 @@ private:
   void operator=(const vtkDataObject&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDataObjectCollection.cxx b/Common/DataModel/vtkDataObjectCollection.cxx
index 4112183bc2e5d9f61f24070d03d33fa02c2bfc26..edf79f226675921a3ee4e6bd57398da4c6342892 100644
--- a/Common/DataModel/vtkDataObjectCollection.cxx
+++ b/Common/DataModel/vtkDataObjectCollection.cxx
@@ -15,9 +15,11 @@
 #include "vtkDataObjectCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataObjectCollection);
 
 void vtkDataObjectCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDataObjectCollection.h b/Common/DataModel/vtkDataObjectCollection.h
index beedadad1246eb058453150251cadec2d35c9d66..901d8fbd8b344aab96764f91f983b85388c7b87d 100644
--- a/Common/DataModel/vtkDataObjectCollection.h
+++ b/Common/DataModel/vtkDataObjectCollection.h
@@ -28,6 +28,7 @@
 
 #include "vtkDataObject.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkDataObjectCollection : public vtkCollection
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkDataObjectCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDataObjectTree.cxx b/Common/DataModel/vtkDataObjectTree.cxx
index 0935876de63d6b32d68e4830980b50c0633cee33..b03f2838dfa1b469683af885113957b0995cc256 100644
--- a/Common/DataModel/vtkDataObjectTree.cxx
+++ b/Common/DataModel/vtkDataObjectTree.cxx
@@ -25,6 +25,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkDataObjectTree::vtkDataObjectTree()
 {
   this->Internals = new vtkDataObjectTreeInternals;
@@ -663,3 +664,4 @@ void vtkDataObjectTree::PrintSelf(ostream& os, vtkIndent indent)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDataObjectTree.h b/Common/DataModel/vtkDataObjectTree.h
index b4588a35bee6e414ad2ad036c1ea30193fd5243a..01e6aa396d8ea58ba4f31acb37e2c152455f3519 100644
--- a/Common/DataModel/vtkDataObjectTree.h
+++ b/Common/DataModel/vtkDataObjectTree.h
@@ -36,6 +36,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkCompositeDataSet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataIterator;
 class vtkDataObjectTreeIterator;
 class vtkDataObjectTreeInternals;
@@ -224,4 +225,5 @@ private:
   void operator=(const vtkDataObjectTree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDataObjectTreeInternals.h b/Common/DataModel/vtkDataObjectTreeInternals.h
index 266b6e1d210fe6340b19fc25592ff9ce6512c467..e63731f57ebf270fd8c5df650adfabed595162be 100644
--- a/Common/DataModel/vtkDataObjectTreeInternals.h
+++ b/Common/DataModel/vtkDataObjectTreeInternals.h
@@ -28,6 +28,7 @@
 
 //-----------------------------------------------------------------------------
 // Item in the VectorOfDataObjects.
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkDataObjectTreeItem
 {
   vtkSmartPointer<vtkDataObject> DataObject;
@@ -57,6 +58,7 @@ class vtkDataObjectTreeIndex : public std::vector<unsigned int>
   int IsValid() { return !this->empty(); }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkDataObjectTreeInternals.h
diff --git a/Common/DataModel/vtkDataObjectTreeIterator.cxx b/Common/DataModel/vtkDataObjectTreeIterator.cxx
index fd9568a4c4d0088a8cd9687f2147b0e333d14449..4c99aba5e0cfab5e4bb3114dfc9fe8deb63fd543 100644
--- a/Common/DataModel/vtkDataObjectTreeIterator.cxx
+++ b/Common/DataModel/vtkDataObjectTreeIterator.cxx
@@ -18,6 +18,7 @@
 #include "vtkDataObjectTreeInternals.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObjectTreeIterator::vtkInternals
 {
 public:
@@ -412,3 +413,4 @@ void vtkDataObjectTreeIterator::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "SkipEmptyNodes: " << (this->SkipEmptyNodes ? "On" : "Off") << endl;
   os << indent << "CurrentFlatIndex: " << this->CurrentFlatIndex << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDataObjectTreeIterator.h b/Common/DataModel/vtkDataObjectTreeIterator.h
index 7644f035ed76a4d744ed6476bd4c71a4a11ed472..1c466458093b948184cf59e966f4ae58d3ecee68 100644
--- a/Common/DataModel/vtkDataObjectTreeIterator.h
+++ b/Common/DataModel/vtkDataObjectTreeIterator.h
@@ -27,6 +27,7 @@
 #include "vtkCompositeDataIterator.h"
 #include "vtkSmartPointer.h" //to store data sets
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObjectTree;
 class vtkDataObjectTreeInternals;
 class vtkDataObjectTreeIndex;
@@ -158,4 +159,5 @@ private:
   void UpdateLocation();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDataObjectTreeRange.h b/Common/DataModel/vtkDataObjectTreeRange.h
index 484a06c8d3bd78729d6cfe5a092500ee4182a1ab..00a40218ed805263b358e45a526a137728bf1e6c 100644
--- a/Common/DataModel/vtkDataObjectTreeRange.h
+++ b/Common/DataModel/vtkDataObjectTreeRange.h
@@ -27,6 +27,7 @@
 
 namespace vtk
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Pass these to vtk::Range(cds, options):
 enum class DataObjectTreeOptions : unsigned int
@@ -37,15 +38,18 @@ enum class DataObjectTreeOptions : unsigned int
   TraverseSubTree = 1 << 3, // Descend into child composite datasets.
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtk (for bitflag op definition)
 
+VTK_ABI_NAMESPACE_BEGIN
 VTK_GENERATE_BITFLAG_OPS(vtk::DataObjectTreeOptions)
+VTK_ABI_NAMESPACE_END
 
 namespace vtk
 {
-
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 struct DataObjectTreeRange;
 struct DataObjectTreeIterator;
@@ -261,6 +265,7 @@ private:
   DataObjectTreeOptions Options;
 };
 
+VTK_ABI_NAMESPACE_END
 }
 } // end namespace vtk::detail
 
diff --git a/Common/DataModel/vtkDataObjectTypes.cxx b/Common/DataModel/vtkDataObjectTypes.cxx
index 2a7a87000f283e93692c9dd53345af90b370222b..44daa150807c1dc56530579504dde96a8cf1de05 100644
--- a/Common/DataModel/vtkDataObjectTypes.cxx
+++ b/Common/DataModel/vtkDataObjectTypes.cxx
@@ -56,6 +56,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataObjectTypes);
 
 // This list should contain the data object class names in
@@ -423,3 +424,4 @@ int vtkDataObjectTypes::GetCommonBaseTypeId(int typeA, int typeB)
   }
   return baseType;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDataObjectTypes.h b/Common/DataModel/vtkDataObjectTypes.h
index cfe9e262d4058e8a6e3146dfbd766978151b1689..0648a5db53c1ddf966c3bab069ec65847682a4ed 100644
--- a/Common/DataModel/vtkDataObjectTypes.h
+++ b/Common/DataModel/vtkDataObjectTypes.h
@@ -30,6 +30,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkDataObjectTypes : public vtkObject
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkDataObjectTypes&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDataSet.cxx b/Common/DataModel/vtkDataSet.cxx
index ab5d10baa7d361d4a9e3541c0e33cbc4a05bbcc3..f92d535946a951a2ce5e5608049bd02653e6c9a0 100644
--- a/Common/DataModel/vtkDataSet.cxx
+++ b/Common/DataModel/vtkDataSet.cxx
@@ -44,6 +44,7 @@
 
 //------------------------------------------------------------------------------
 // Constructor with default bounds (0,1, 0,1, 0,1).
+VTK_ABI_NAMESPACE_BEGIN
 vtkDataSet::vtkDataSet()
 {
   vtkMath::UninitializeBounds(this->Bounds);
@@ -1041,3 +1042,4 @@ void vtkDataSet::OnDataModified(vtkObject* source, unsigned long, void* clientda
     This->UpdateCellGhostArrayCache();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDataSet.h b/Common/DataModel/vtkDataSet.h
index 94efcd90cb2d93e8a6bd6ec429f8e9af7c7230c5..56dc5186f02e40cc3a69a1301c4ee8c5470d27bb 100644
--- a/Common/DataModel/vtkDataSet.h
+++ b/Common/DataModel/vtkDataSet.h
@@ -44,6 +44,7 @@
 #include "vtkDataObject.h"
 #include "vtkDeprecation.h" // for VTK_DEPRECATED_IN_9_3_0
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkCellData;
 class vtkCellIterator;
@@ -573,4 +574,5 @@ inline void vtkDataSet::GetPoint(vtkIdType id, double x[3])
   x[2] = pt[2];
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDataSetAttributes.cxx b/Common/DataModel/vtkDataSetAttributes.cxx
index 8b349fc0abde332a9fdfd981fcc1f1a7ef4bf345..76a6c8de67ceed6588e46bda5fd33657c792dc02 100644
--- a/Common/DataModel/vtkDataSetAttributes.cxx
+++ b/Common/DataModel/vtkDataSetAttributes.cxx
@@ -25,6 +25,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 static constexpr const vtkIdType SMP_THRESHOLD = 10000;
 
@@ -1937,3 +1938,4 @@ const char* vtkDataSetAttributes::GetLongAttributeTypeAsString(int attributeType
   }
   return vtkDataSetAttributes::LongAttributeNames[attributeType];
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDataSetAttributes.h b/Common/DataModel/vtkDataSetAttributes.h
index a9e17e1a4f969a313e3bbf1ca1f9fa61119b3613..432c5fcb8d9300d0bc02015788114fec76da50b0 100644
--- a/Common/DataModel/vtkDataSetAttributes.h
+++ b/Common/DataModel/vtkDataSetAttributes.h
@@ -55,6 +55,7 @@
 #include "vtkDataSetAttributesFieldList.h" // for vtkDataSetAttributesFieldList
 #include "vtkFieldData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLookupTable;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkDataSetAttributes : public vtkFieldData
@@ -679,4 +680,5 @@ private:
   friend class vtkDataSetAttributesFieldList;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDataSetAttributesFieldList.cxx b/Common/DataModel/vtkDataSetAttributesFieldList.cxx
index 5ed50b5b431b3c6395a5b0dfd192a55dc4b14a2e..d5de99f593ae95d139cf052bcd58ee59640b121d 100644
--- a/Common/DataModel/vtkDataSetAttributesFieldList.cxx
+++ b/Common/DataModel/vtkDataSetAttributesFieldList.cxx
@@ -32,6 +32,7 @@
 
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 /**
  * FieldInfo is used to store metadata about a field.
  */
@@ -301,8 +302,11 @@ void remove_if(Container& cont, ForwardIt first, ForwardIt second, UnaryPredicat
     }
   }
 }
+VTK_ABI_NAMESPACE_END
 } // namespace detail
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkDataSetAttributesFieldList::vtkInternals
 {
 public:
@@ -827,3 +831,4 @@ void vtkDataSetAttributesFieldList::PrintSelf(ostream& os, vtkIndent indent)
     pair.second.PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDataSetAttributesFieldList.h b/Common/DataModel/vtkDataSetAttributesFieldList.h
index 06fc90e78ab1d20524ef83299d0d0cf0b6b6b4f5..7619a71088bcde02192b2cbf7c648303ddb24f48 100644
--- a/Common/DataModel/vtkDataSetAttributesFieldList.h
+++ b/Common/DataModel/vtkDataSetAttributesFieldList.h
@@ -62,6 +62,7 @@
 #include <functional> // for std::function
 #include <memory>     // for unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkDataSetAttributes;
 class vtkIdList;
@@ -161,5 +162,6 @@ private:
   void operator=(vtkDataSetAttributesFieldList&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkDataSetAttributesFieldList.h
diff --git a/Common/DataModel/vtkDataSetCellIterator.cxx b/Common/DataModel/vtkDataSetCellIterator.cxx
index f3897c01f84e9468bd5f2c0c05e739d893a8d0e1..1e9b6949e166c4f44c6e191e9f3a465ec0e56a29 100644
--- a/Common/DataModel/vtkDataSetCellIterator.cxx
+++ b/Common/DataModel/vtkDataSetCellIterator.cxx
@@ -21,6 +21,7 @@
 #include "vtkPoints.h"
 #include "vtkRectilinearGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataSetCellIterator);
 
 namespace
@@ -207,3 +208,4 @@ void vtkDataSetCellIterator::FetchPoints()
     this->Points->SetPoint(i, point);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDataSetCellIterator.h b/Common/DataModel/vtkDataSetCellIterator.h
index 8dafcc98a8fbda1f08f65763adea4afcf95aae72..9e5f4401af78886e7951e47b6bf01880ff031e96 100644
--- a/Common/DataModel/vtkDataSetCellIterator.h
+++ b/Common/DataModel/vtkDataSetCellIterator.h
@@ -25,6 +25,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkSmartPointer.h"          // For vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkDataSetCellIterator : public vtkCellIterator
@@ -58,4 +59,5 @@ private:
   void operator=(const vtkDataSetCellIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkDataSetCellIterator_h
diff --git a/Common/DataModel/vtkDataSetCollection.cxx b/Common/DataModel/vtkDataSetCollection.cxx
index 87096504356b511a07e74ee355945d0a674883d2..7a7c3dd72f6524854c55e9ed805117c7355c53dc 100644
--- a/Common/DataModel/vtkDataSetCollection.cxx
+++ b/Common/DataModel/vtkDataSetCollection.cxx
@@ -15,9 +15,11 @@
 #include "vtkDataSetCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataSetCollection);
 
 void vtkDataSetCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDataSetCollection.h b/Common/DataModel/vtkDataSetCollection.h
index 97118afe485ca712efe0679c2062b5de02770ec4..0792a2bb84b96e5e074852bc4e8435c204ee1b6b 100644
--- a/Common/DataModel/vtkDataSetCollection.h
+++ b/Common/DataModel/vtkDataSetCollection.h
@@ -28,6 +28,7 @@
 
 #include "vtkDataSet.h" // Needed for inline methods.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkDataSetCollection : public vtkCollection
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkDataSetCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDirectedAcyclicGraph.cxx b/Common/DataModel/vtkDirectedAcyclicGraph.cxx
index d7cb2f011e13ac807ff0ab3d5f1ea89590e3aa08..c87f27efc30021b2a7228b1930bf2b49c530409e 100644
--- a/Common/DataModel/vtkDirectedAcyclicGraph.cxx
+++ b/Common/DataModel/vtkDirectedAcyclicGraph.cxx
@@ -28,6 +28,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDirectedAcyclicGraph);
 //------------------------------------------------------------------------------
 vtkDirectedAcyclicGraph::vtkDirectedAcyclicGraph() = default;
@@ -122,3 +123,4 @@ void vtkDirectedAcyclicGraph::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDirectedAcyclicGraph.h b/Common/DataModel/vtkDirectedAcyclicGraph.h
index 6017f9c2fc6d3d2fbd84c0f7482866d584af9c44..a7578ae20fb279d3e73111f53ce0b178d2bae110 100644
--- a/Common/DataModel/vtkDirectedAcyclicGraph.h
+++ b/Common/DataModel/vtkDirectedAcyclicGraph.h
@@ -49,6 +49,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDirectedGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkDirectedAcyclicGraph : public vtkDirectedGraph
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkDirectedAcyclicGraph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDirectedGraph.cxx b/Common/DataModel/vtkDirectedGraph.cxx
index 199005131f714f873ebcb4c9d966ce0da7a5f8df..27703da130a505a5b14734b387bd4378b7328841 100644
--- a/Common/DataModel/vtkDirectedGraph.cxx
+++ b/Common/DataModel/vtkDirectedGraph.cxx
@@ -32,6 +32,7 @@
 //------------------------------------------------------------------------------
 // class vtkDirectedGraph
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDirectedGraph);
 //------------------------------------------------------------------------------
 vtkDirectedGraph::vtkDirectedGraph() = default;
@@ -107,3 +108,4 @@ void vtkDirectedGraph::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDirectedGraph.h b/Common/DataModel/vtkDirectedGraph.h
index 24b889ec89632c6ed6e76d408f9613e81178a51c..1eca8ab20b0465dc769c25e1c2e7b179316e237e 100644
--- a/Common/DataModel/vtkDirectedGraph.h
+++ b/Common/DataModel/vtkDirectedGraph.h
@@ -41,6 +41,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkDirectedGraph : public vtkGraph
 {
 public:
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkDirectedGraph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkDistributedGraphHelper.cxx b/Common/DataModel/vtkDistributedGraphHelper.cxx
index aecd6b3ca3c3cb29c5e9b53b1c1c52b59137d50c..9dbec35bcd54173063e54867cd93b164dcdc046b 100644
--- a/Common/DataModel/vtkDistributedGraphHelper.cxx
+++ b/Common/DataModel/vtkDistributedGraphHelper.cxx
@@ -30,6 +30,7 @@
 #include <cassert> // assert()
 #include <climits> // CHAR_BIT
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyMacro(vtkDistributedGraphHelper, DISTRIBUTEDVERTEXIDS, Integer);
 vtkInformationKeyMacro(vtkDistributedGraphHelper, DISTRIBUTEDEDGEIDS, Integer);
 
@@ -232,3 +233,4 @@ vtkIdType vtkDistributedGraphHelper::GetVertexOwnerByPedigreeId(const vtkVariant
 
   return hash % numProcs;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkDistributedGraphHelper.h b/Common/DataModel/vtkDistributedGraphHelper.h
index 3f2b53129c69dbd2a27b8da6e076cb18683b138d..c8f599aac63ea769680e59aefeced7cb159ebe5a 100644
--- a/Common/DataModel/vtkDistributedGraphHelper.h
+++ b/Common/DataModel/vtkDistributedGraphHelper.h
@@ -56,6 +56,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDistributedGraphHelperInternals;
 struct vtkEdgeType;
 class vtkGraph;
@@ -272,4 +273,5 @@ private:
   friend class vtkGraph;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkDistributedGraphHelper_h
diff --git a/Common/DataModel/vtkEdgeListIterator.cxx b/Common/DataModel/vtkEdgeListIterator.cxx
index d325e92ae20603478c6a567d8e67d45c0b2164c7..bec1b7369fcd8301ce8c017a3701e0b09f0c3bc7 100644
--- a/Common/DataModel/vtkEdgeListIterator.cxx
+++ b/Common/DataModel/vtkEdgeListIterator.cxx
@@ -27,6 +27,7 @@
 #include "vtkInformation.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEdgeListIterator);
 //------------------------------------------------------------------------------
 vtkEdgeListIterator::vtkEdgeListIterator()
@@ -209,3 +210,4 @@ void vtkEdgeListIterator::PrintSelf(ostream& os, vtkIndent indent)
     this->Graph->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkEdgeListIterator.h b/Common/DataModel/vtkEdgeListIterator.h
index c4cab856886e32d88cad9a92f0bb913b3928dff2..ce9f99e3ad2e980b462fe9d56973735f08796b21 100644
--- a/Common/DataModel/vtkEdgeListIterator.h
+++ b/Common/DataModel/vtkEdgeListIterator.h
@@ -41,6 +41,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 class vtkGraphEdge;
 
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkEdgeListIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkEdgeTable.cxx b/Common/DataModel/vtkEdgeTable.cxx
index eba22814205f23db694f105edf96194c7da46ffe..47e51792e9e1d56bc5f92bb8b510a55e03ae75b2 100644
--- a/Common/DataModel/vtkEdgeTable.cxx
+++ b/Common/DataModel/vtkEdgeTable.cxx
@@ -18,6 +18,7 @@
 #include "vtkPoints.h"
 #include "vtkVoidArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEdgeTable);
 
 //------------------------------------------------------------------------------
@@ -596,3 +597,4 @@ void vtkEdgeTable::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "NumberOfEdges: " << this->GetNumberOfEdges() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkEdgeTable.h b/Common/DataModel/vtkEdgeTable.h
index 0e18021536737c0dffbd55f675267cd1b76cdc73..519f759d76e1f8fd5ee45a1efe4d41bcdd47a765 100644
--- a/Common/DataModel/vtkEdgeTable.h
+++ b/Common/DataModel/vtkEdgeTable.h
@@ -33,6 +33,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkPoints;
 class vtkVoidArray;
@@ -186,4 +187,5 @@ private:
   void operator=(const vtkEdgeTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkEmptyCell.cxx b/Common/DataModel/vtkEmptyCell.cxx
index 7dd7a1c70f6776a7b84521c0ebc8790eeb12a62c..66b11b7004db04777bbfee1e9c251ef8c8a9d423 100644
--- a/Common/DataModel/vtkEmptyCell.cxx
+++ b/Common/DataModel/vtkEmptyCell.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEmptyCell);
 
 //------------------------------------------------------------------------------
@@ -96,3 +97,4 @@ void vtkEmptyCell::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkEmptyCell.h b/Common/DataModel/vtkEmptyCell.h
index cffc74c2e7ebd9252bf5e6c7ef4dccad664d8e1c..35111be6bd31af49db4b7a11bf7af831821f3344 100644
--- a/Common/DataModel/vtkEmptyCell.h
+++ b/Common/DataModel/vtkEmptyCell.h
@@ -26,6 +26,7 @@
 #include "vtkCell.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkEmptyCell : public vtkCell
 {
 public:
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkEmptyCell&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkExplicitStructuredGrid.cxx b/Common/DataModel/vtkExplicitStructuredGrid.cxx
index 3941d45fb632d0076411e7c29753b58e0b9376c7..e38097d72710b3674cd182f5f94c6231ea1da04a 100644
--- a/Common/DataModel/vtkExplicitStructuredGrid.cxx
+++ b/Common/DataModel/vtkExplicitStructuredGrid.cxx
@@ -34,6 +34,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 static const unsigned char MASKED_CELL_VALUE =
   vtkDataSetAttributes::HIDDENCELL | vtkDataSetAttributes::REFINEDCELL;
 
@@ -1252,3 +1253,4 @@ void vtkExplicitStructuredGrid::ReorderCellsPoints(const int* ptsMap, const int
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkExplicitStructuredGrid.h b/Common/DataModel/vtkExplicitStructuredGrid.h
index 377c65d36553aa38aaea1afd9584a484a3f7d7b8..67f8f7ff109a9c3eb71d8661b750bcf8f8b19d04 100644
--- a/Common/DataModel/vtkExplicitStructuredGrid.h
+++ b/Common/DataModel/vtkExplicitStructuredGrid.h
@@ -59,6 +59,7 @@
 #include "vtkPointSet.h"
 #include "vtkStructuredData.h" // For static method usage
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkAbstractCellLinks;
 class vtkEmptyCell;
@@ -435,4 +436,5 @@ inline vtkIdType vtkExplicitStructuredGrid::ComputeCellId(int i, int j, int k, b
     return vtkStructuredData::ComputeCellId(dims, ijk);
   }
 }
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkExtractStructuredGridHelper.cxx b/Common/DataModel/vtkExtractStructuredGridHelper.cxx
index 3456fc9f719522b148f63d681963a1050cfbf71d..03822ae1b5ba3a795ad8296df3a998680087325e 100644
--- a/Common/DataModel/vtkExtractStructuredGridHelper.cxx
+++ b/Common/DataModel/vtkExtractStructuredGridHelper.cxx
@@ -49,6 +49,7 @@ namespace vtk
 {
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Index mapping works as:
 // inputExtent = Mapping[dim][outputExtent - this->OutputWholeExtent[2*dim]]
@@ -57,9 +58,11 @@ struct vtkIndexMap
   std::vector<int> Mapping[3];
 };
 
+VTK_ABI_NAMESPACE_END
 } // End namespace detail
 } // End namespace vtk
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractStructuredGridHelper);
 
 //------------------------------------------------------------------------------
@@ -257,6 +260,7 @@ int vtkExtractStructuredGridHelper::GetSize(const int dim)
   assert("pre: dimension dim is out-of-bounds!" && (dim >= 0) && (dim < 3));
   return (static_cast<int>(this->IndexMap->Mapping[dim].size()));
 }
+VTK_ABI_NAMESPACE_END
 
 //------------------------------------------------------------------------------
 namespace
@@ -267,6 +271,7 @@ int roundToInt(double r)
 }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 void vtkExtractStructuredGridHelper::ComputeBeginAndEnd(
   int inExt[6], int voi[6], int begin[3], int end[3])
@@ -657,3 +662,4 @@ void vtkExtractStructuredGridHelper::GetPartitionedOutputExtent(const int global
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkExtractStructuredGridHelper.h b/Common/DataModel/vtkExtractStructuredGridHelper.h
index ea2f8dda2fe2c992877e09467116144b0995030c..2c07cef8c81b4109b3fc163e32d569bf10ac7add 100644
--- a/Common/DataModel/vtkExtractStructuredGridHelper.h
+++ b/Common/DataModel/vtkExtractStructuredGridHelper.h
@@ -34,20 +34,25 @@
 #include "vtkObject.h"
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkPointData;
 class vtkPoints;
+VTK_ABI_NAMESPACE_END
 
 namespace vtk
 {
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 struct vtkIndexMap;
 
+VTK_ABI_NAMESPACE_END
 } // END namespace detail
 } // END namespace vtk
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkExtractStructuredGridHelper : public vtkObject
 {
 public:
@@ -227,4 +232,5 @@ private:
   void operator=(const vtkExtractStructuredGridHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTKEXTRACTSTRUCTUREDGRIDHELPER_H_ */
diff --git a/Common/DataModel/vtkFieldData.cxx b/Common/DataModel/vtkFieldData.cxx
index 52b35383e5bff77ecd4acc59bd975fa251cf4f76..63b4f24dd6576d6517c2f1a97c64d402728ea8f3 100644
--- a/Common/DataModel/vtkFieldData.cxx
+++ b/Common/DataModel/vtkFieldData.cxx
@@ -28,6 +28,7 @@
 #include <tuple>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFieldData);
 vtkStandardExtendedNewMacro(vtkFieldData);
 
@@ -1085,3 +1086,4 @@ vtkIdType vtkFieldData::InsertNextTuple(const vtkIdType j, vtkFieldData* source)
   this->InsertTuple(id, j, source);
   return id;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkFieldData.h b/Common/DataModel/vtkFieldData.h
index c3b9c7163e16ee392764472704c9f19beb133815..b7c41a2ababfb5192f37cfd2729b8c024565458b 100644
--- a/Common/DataModel/vtkFieldData.h
+++ b/Common/DataModel/vtkFieldData.h
@@ -52,8 +52,9 @@
 #include <tuple>  // For CachedGhostRangeType
 #include <vector> // For list indices
 
-class vtkDoubleArray;
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
+class vtkDoubleArray;
 class vtkUnsignedCharArray;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkFieldData : public vtkObject
@@ -558,4 +559,5 @@ public:
   };
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkFindCellStrategy.cxx b/Common/DataModel/vtkFindCellStrategy.cxx
index 1a7aa0abc0b39bf4687f50adb9882d728d166c0f..6169c627b42dc82f7e454a4d9b8edaf655ec286b 100644
--- a/Common/DataModel/vtkFindCellStrategy.cxx
+++ b/Common/DataModel/vtkFindCellStrategy.cxx
@@ -18,6 +18,7 @@
 #include "vtkPointSet.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkFindCellStrategy::vtkFindCellStrategy()
 {
   this->PointSet = nullptr;
@@ -60,3 +61,4 @@ void vtkFindCellStrategy::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "vtkPointSet: " << this->PointSet << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkFindCellStrategy.h b/Common/DataModel/vtkFindCellStrategy.h
index 47d623ecf67c930a92f06b23361749e9db0ae01f..3103446b33d1a55814978f4fa6e0a7bdc7b55c8f 100644
--- a/Common/DataModel/vtkFindCellStrategy.h
+++ b/Common/DataModel/vtkFindCellStrategy.h
@@ -51,6 +51,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkGenericCell;
 class vtkPointSet;
@@ -142,4 +143,5 @@ private:
   void operator=(const vtkFindCellStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGenericAdaptorCell.cxx b/Common/DataModel/vtkGenericAdaptorCell.cxx
index 995032af414fa1bbf54ce78a05949e17c1f2a504..770dd13d9327eef7b8421f1ce68fc919d88056d4 100644
--- a/Common/DataModel/vtkGenericAdaptorCell.cxx
+++ b/Common/DataModel/vtkGenericAdaptorCell.cxx
@@ -38,6 +38,7 @@
 #include "vtkVertex.h"
 #include "vtkWedge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkGenericAdaptorCell::vtkGenericAdaptorCell()
 {
   this->Tetra = vtkTetra::New();
@@ -1078,3 +1079,4 @@ void vtkGenericAdaptorCell::AllocateTuples(int size)
     this->TuplesCapacity = size;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGenericAdaptorCell.h b/Common/DataModel/vtkGenericAdaptorCell.h
index 829cfaac5fd624afa3a0a3eec2f790f8a8656469..a3fe995f3317c9da8cb8ad575f8cb10060c89693 100644
--- a/Common/DataModel/vtkGenericAdaptorCell.h
+++ b/Common/DataModel/vtkGenericAdaptorCell.h
@@ -62,6 +62,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkTetra;
 class vtkPoints;
@@ -622,4 +623,5 @@ private:
   void operator=(const vtkGenericAdaptorCell&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGenericAttribute.cxx b/Common/DataModel/vtkGenericAttribute.cxx
index bd5f741a186ca0bf5aabfaa750d6889f7450a5da..12a21542cbd352da69fd3e335f98228643e6695d 100644
--- a/Common/DataModel/vtkGenericAttribute.cxx
+++ b/Common/DataModel/vtkGenericAttribute.cxx
@@ -19,6 +19,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkGenericAttribute::vtkGenericAttribute() = default;
 
 //------------------------------------------------------------------------------
@@ -50,3 +51,4 @@ void vtkGenericAttribute::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGenericAttribute.h b/Common/DataModel/vtkGenericAttribute.h
index 5c7b030d86c4e02fd07216f5cb728c9484352f33..6314c76b2f24f8f3f59089b0f1ba61df6fff534a 100644
--- a/Common/DataModel/vtkGenericAttribute.h
+++ b/Common/DataModel/vtkGenericAttribute.h
@@ -33,6 +33,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericCellIterator;
 class vtkGenericAdaptorCell;
 class vtkGenericPointIterator;
@@ -222,4 +223,5 @@ private:
   void operator=(const vtkGenericAttribute&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGenericAttributeCollection.cxx b/Common/DataModel/vtkGenericAttributeCollection.cxx
index 0414ae8db6505291a3cdd0d2ab945640346e28a6..e7f507261805ac64bda15e7a4c0eda3d9316a31c 100644
--- a/Common/DataModel/vtkGenericAttributeCollection.cxx
+++ b/Common/DataModel/vtkGenericAttributeCollection.cxx
@@ -21,6 +21,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericAttributeCollection);
 
 class vtkGenericAttributeInternalVector
@@ -518,3 +519,4 @@ void vtkGenericAttributeCollection::SetAttributesToInterpolateToAll()
 // *** ALL THE PREVIOUS METHODS SHOULD BE REMOVED WHEN vtkInformation
 // will be ready.
 // *** END
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGenericAttributeCollection.h b/Common/DataModel/vtkGenericAttributeCollection.h
index 8666119086c8b62e3fe3476d1f9475d81269a59b..49c3a1b5ad2b266ddca256d6115d78fe01d864f7 100644
--- a/Common/DataModel/vtkGenericAttributeCollection.h
+++ b/Common/DataModel/vtkGenericAttributeCollection.h
@@ -26,6 +26,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericAttributeInternalVector;
 class vtkIntInternalVector;
 class vtkGenericAttribute;
@@ -278,4 +279,5 @@ private:
   vtkGenericAttributeCollection(const vtkGenericAttributeCollection&) = delete;
   void operator=(const vtkGenericAttributeCollection&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGenericCell.cxx b/Common/DataModel/vtkGenericCell.cxx
index a64f145dba5fb3d27aab08ab1ee690d25c500b6c..3509bab0e652a65a1f90f6b404242f288187f7b8 100644
--- a/Common/DataModel/vtkGenericCell.cxx
+++ b/Common/DataModel/vtkGenericCell.cxx
@@ -67,6 +67,7 @@
 #include "vtkVoxel.h"
 #include "vtkWedge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericCell);
 
 //------------------------------------------------------------------------------
@@ -497,3 +498,4 @@ void vtkGenericCell::SetPointIds(vtkIdList* pointIds)
     this->Cell->PointIds->Register(this);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGenericCell.h b/Common/DataModel/vtkGenericCell.h
index 679289c5df882110a10b9151922a43a2ebeb2a69..ed5c5b549eb1edd76fd581c64399e0c57eb957c2 100644
--- a/Common/DataModel/vtkGenericCell.h
+++ b/Common/DataModel/vtkGenericCell.h
@@ -33,6 +33,7 @@
 #include "vtkCell.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkGenericCell : public vtkCell
 {
 public:
@@ -185,4 +186,5 @@ private:
   void operator=(const vtkGenericCell&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGenericCellIterator.cxx b/Common/DataModel/vtkGenericCellIterator.cxx
index 94038089a0eb97cfcf08e2c36f6fca77ac3d8e9d..774bca2bb2611901e27e2944bb2ed78741e002c2 100644
--- a/Common/DataModel/vtkGenericCellIterator.cxx
+++ b/Common/DataModel/vtkGenericCellIterator.cxx
@@ -15,6 +15,7 @@
 #include "vtkGenericCellIterator.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkGenericCellIterator::vtkGenericCellIterator() = default;
 
 //------------------------------------------------------------------------------
@@ -25,3 +26,4 @@ void vtkGenericCellIterator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGenericCellIterator.h b/Common/DataModel/vtkGenericCellIterator.h
index 76f7f6126be75af36167433465ae3df061e72f5d..2ba16a676f487d4e1f4dd94ed2c7fe2e84b908ed 100644
--- a/Common/DataModel/vtkGenericCellIterator.h
+++ b/Common/DataModel/vtkGenericCellIterator.h
@@ -36,6 +36,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericAdaptorCell;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkGenericCellIterator : public vtkObject
@@ -97,4 +98,5 @@ private:
   void operator=(const vtkGenericCellIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGenericCellTessellator.cxx b/Common/DataModel/vtkGenericCellTessellator.cxx
index ddf97ef21fc3cd753fb027e5069b74ffebd7a8e5..27805dd5cf54b5e8fd2132af2c12f47db639bdee 100644
--- a/Common/DataModel/vtkGenericCellTessellator.cxx
+++ b/Common/DataModel/vtkGenericCellTessellator.cxx
@@ -32,6 +32,7 @@
 
 #include "vtkMath.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkGenericCellTessellator, ErrorMetrics, vtkCollection);
 
 //------------------------------------------------------------------------------
@@ -226,3 +227,4 @@ void vtkGenericCellTessellator::SetGenericCell(vtkGenericAdaptorCell* cell)
     e = static_cast<vtkGenericSubdivisionErrorMetric*>(this->ErrorMetrics->GetNextItemAsObject());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGenericCellTessellator.h b/Common/DataModel/vtkGenericCellTessellator.h
index 83fb942e53d71a6dec741c1404888d3e0b63ef6b..dbfe93127cff709ae917ec55d3ef3c57e33f4900 100644
--- a/Common/DataModel/vtkGenericCellTessellator.h
+++ b/Common/DataModel/vtkGenericCellTessellator.h
@@ -43,6 +43,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkDoubleArray;
 class vtkCollection;
@@ -211,4 +212,5 @@ private:
   void operator=(const vtkGenericCellTessellator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGenericDataSet.cxx b/Common/DataModel/vtkGenericDataSet.cxx
index 581803431b1d3a0790ea6d3e4dcb05b174a7036a..e2f525cf99901c6067900e67f818e66336a16dfa 100644
--- a/Common/DataModel/vtkGenericDataSet.cxx
+++ b/Common/DataModel/vtkGenericDataSet.cxx
@@ -25,6 +25,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkGenericDataSet, Tessellator, vtkGenericCellTessellator);
 
 //------------------------------------------------------------------------------
@@ -233,3 +234,4 @@ vtkGenericDataSet* vtkGenericDataSet::GetData(vtkInformationVector* v, int i)
 {
   return vtkGenericDataSet::GetData(v->GetInformationObject(i));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGenericDataSet.h b/Common/DataModel/vtkGenericDataSet.h
index 83449ff5bcae03a229332864cf6601f75b63b8e9..dceafcbdcbfa31dba7f5657f92783dc3e5cb811b 100644
--- a/Common/DataModel/vtkGenericDataSet.h
+++ b/Common/DataModel/vtkGenericDataSet.h
@@ -60,6 +60,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellTypes;
 class vtkGenericCellIterator;
 class vtkGenericAttributeCollection;
@@ -303,4 +304,5 @@ private:
   void operator=(const vtkGenericDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGenericEdgeTable.cxx b/Common/DataModel/vtkGenericEdgeTable.cxx
index b6464d90145a39148a11da6357aaa4bff3f92cfe..1fd13c4894966650902ef292e5bbcf600502fccd 100644
--- a/Common/DataModel/vtkGenericEdgeTable.cxx
+++ b/Common/DataModel/vtkGenericEdgeTable.cxx
@@ -19,6 +19,7 @@
 #include <cmath>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericEdgeTable);
 
 static int PRIME_NUMBERS[] = { 1, 3, 7, 13, 31, 61, 127, 251, 509, 1021, 2039, 4093 };
@@ -742,3 +743,4 @@ void vtkGenericEdgeTable::LoadFactor()
   this->EdgeTable->LoadFactor();
   this->HashPoints->LoadFactor();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGenericEdgeTable.h b/Common/DataModel/vtkGenericEdgeTable.h
index dccb65f6a2ae5d3a3d88960867f12b313fb3f21c..410c0408231b94277a7bf658b8a71b1d9dbba421 100644
--- a/Common/DataModel/vtkGenericEdgeTable.h
+++ b/Common/DataModel/vtkGenericEdgeTable.h
@@ -33,6 +33,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEdgeTableEdge;
 class vtkEdgeTablePoints;
 
@@ -275,4 +276,5 @@ private:
   void operator=(const vtkGenericEdgeTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGenericInterpolatedVelocityField.cxx b/Common/DataModel/vtkGenericInterpolatedVelocityField.cxx
index 0348fda13b293a3eb651c670a65ca62da7d14e19..6a625c0c1161f03d1c54f15bfc9281f502bce6f3 100644
--- a/Common/DataModel/vtkGenericInterpolatedVelocityField.cxx
+++ b/Common/DataModel/vtkGenericInterpolatedVelocityField.cxx
@@ -24,6 +24,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericInterpolatedVelocityField);
 
 typedef std::vector<vtkGenericDataSet*> DataSetsTypeBase;
@@ -308,3 +309,4 @@ void vtkGenericInterpolatedVelocityField::PrintSelf(ostream& os, vtkIndent inden
      << endl;
   os << indent << "LastDataSet : " << this->LastDataSet << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGenericInterpolatedVelocityField.h b/Common/DataModel/vtkGenericInterpolatedVelocityField.h
index 5aea53a01a779c627287b389542941b6aa203af4..c222c5b5a342485f49be8bbbfabb1f7bfeec43ec 100644
--- a/Common/DataModel/vtkGenericInterpolatedVelocityField.h
+++ b/Common/DataModel/vtkGenericInterpolatedVelocityField.h
@@ -45,6 +45,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkFunctionSet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericDataSet;
 class vtkGenericCellIterator;
 class vtkGenericAdaptorCell;
@@ -168,4 +169,5 @@ private:
   void operator=(const vtkGenericInterpolatedVelocityField&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGenericPointIterator.cxx b/Common/DataModel/vtkGenericPointIterator.cxx
index 1ddd9719afea7dfe79c11f79430aef8a233b9e9f..4ae25befc2734613b0e8a10b90c2c081aca7ad6a 100644
--- a/Common/DataModel/vtkGenericPointIterator.cxx
+++ b/Common/DataModel/vtkGenericPointIterator.cxx
@@ -15,6 +15,7 @@
 #include "vtkGenericPointIterator.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkGenericPointIterator::vtkGenericPointIterator() = default;
 
 //------------------------------------------------------------------------------
@@ -25,3 +26,4 @@ void vtkGenericPointIterator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGenericPointIterator.h b/Common/DataModel/vtkGenericPointIterator.h
index 61b32e6fb9988c2e23b7c202ca975ff8b5d8d89e..f62629b6ab725bd0d6062740ea60c195220325da 100644
--- a/Common/DataModel/vtkGenericPointIterator.h
+++ b/Common/DataModel/vtkGenericPointIterator.h
@@ -36,6 +36,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkGenericPointIterator : public vtkObject
 {
 public:
@@ -97,4 +98,5 @@ private:
   void operator=(const vtkGenericPointIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGenericSubdivisionErrorMetric.cxx b/Common/DataModel/vtkGenericSubdivisionErrorMetric.cxx
index 30b86304d685a1f695b3248e8015b0ae99a7623f..d5289325b8504f89b55a288910f39cbbce284f1c 100644
--- a/Common/DataModel/vtkGenericSubdivisionErrorMetric.cxx
+++ b/Common/DataModel/vtkGenericSubdivisionErrorMetric.cxx
@@ -23,6 +23,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkGenericSubdivisionErrorMetric::vtkGenericSubdivisionErrorMetric()
 {
   this->GenericCell = nullptr;
@@ -56,3 +57,4 @@ void vtkGenericSubdivisionErrorMetric::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "GenericCell: " << this->GenericCell << endl;
   os << indent << "DataSet: " << this->DataSet << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGenericSubdivisionErrorMetric.h b/Common/DataModel/vtkGenericSubdivisionErrorMetric.h
index e3da02ad6312726f589d6ac93a323b3d4d4b718e..cf62962d44404871508221096a02c152a3be754b 100644
--- a/Common/DataModel/vtkGenericSubdivisionErrorMetric.h
+++ b/Common/DataModel/vtkGenericSubdivisionErrorMetric.h
@@ -41,6 +41,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericAttributeCollection;
 class vtkGenericAdaptorCell;
 class vtkGenericDataSet;
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkGenericSubdivisionErrorMetric&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGeometricErrorMetric.cxx b/Common/DataModel/vtkGeometricErrorMetric.cxx
index 5da6fc2bdc8accca3019fad3c38817d8c3687d74..f0802f8c5b8ca08d8e9d3e04fa0bdc9d419c87bc 100644
--- a/Common/DataModel/vtkGeometricErrorMetric.cxx
+++ b/Common/DataModel/vtkGeometricErrorMetric.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGeometricErrorMetric);
 
 //------------------------------------------------------------------------------
@@ -233,3 +234,4 @@ void vtkGeometricErrorMetric::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "AbsoluteGeometricTolerance: " << this->AbsoluteGeometricTolerance << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGeometricErrorMetric.h b/Common/DataModel/vtkGeometricErrorMetric.h
index 44f22d67817854b24ed0b2a655d327e3b53eddff..e6ad8e0f519f04bf756e435d4869f12fbd2479a8 100644
--- a/Common/DataModel/vtkGeometricErrorMetric.h
+++ b/Common/DataModel/vtkGeometricErrorMetric.h
@@ -31,6 +31,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkGenericSubdivisionErrorMetric.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericDataSet;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkGeometricErrorMetric : public vtkGenericSubdivisionErrorMetric
@@ -139,4 +140,5 @@ private:
   void operator=(const vtkGeometricErrorMetric&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGraph.cxx b/Common/DataModel/vtkGraph.cxx
index 399be0063534ee3ddc291b80a0e078512b0fab64..4d5efba18d2e8b6b9b5aca627f7a458c2c9ada19 100644
--- a/Common/DataModel/vtkGraph.cxx
+++ b/Common/DataModel/vtkGraph.cxx
@@ -49,6 +49,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 double vtkGraph::DefaultPoint[3] = { 0, 0, 0 };
 
 //------------------------------------------------------------------------------
@@ -2005,3 +2006,4 @@ ostream& operator<<(ostream& out, vtkEdgeBase e)
 {
   return out << e.Id;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGraph.h b/Common/DataModel/vtkGraph.h
index 12503d2b0573a0d748936bb9b1581eff1bd663a9..ef5ed79e9601d005a56180eaea368ab2233eb2b1 100644
--- a/Common/DataModel/vtkGraph.h
+++ b/Common/DataModel/vtkGraph.h
@@ -213,6 +213,16 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataObject.h"
 
+// Forward declare some boost stuff even if boost wrappers
+// are turned off.
+namespace boost
+{
+class vtk_edge_iterator;
+class vtk_out_edge_pointer_iterator;
+class vtk_in_edge_pointer_iterator;
+}
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAdjacentVertexIterator;
 class vtkCellArray;
 class vtkEdgeListIterator;
@@ -231,15 +241,6 @@ class vtkVertexListIterator;
 class vtkVariant;
 class vtkVariantArray;
 
-// Forward declare some boost stuff even if boost wrappers
-// are turned off.
-namespace boost
-{
-class vtk_edge_iterator;
-class vtk_out_edge_pointer_iterator;
-class vtk_in_edge_pointer_iterator;
-}
-
 // Edge structures.
 struct vtkEdgeBase
 {
@@ -837,4 +838,5 @@ bool VTKCOMMONDATAMODEL_EXPORT operator==(vtkEdgeBase e1, vtkEdgeBase e2);
 bool VTKCOMMONDATAMODEL_EXPORT operator!=(vtkEdgeBase e1, vtkEdgeBase e2);
 VTKCOMMONDATAMODEL_EXPORT ostream& operator<<(ostream& out, vtkEdgeBase e);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGraphEdge.cxx b/Common/DataModel/vtkGraphEdge.cxx
index 39a086532f82513a8dc7e8bbc66d6a7c018c85cb..f5773c1f72369e062868a871ce2595bc18da10d3 100644
--- a/Common/DataModel/vtkGraphEdge.cxx
+++ b/Common/DataModel/vtkGraphEdge.cxx
@@ -22,6 +22,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphEdge);
 //------------------------------------------------------------------------------
 vtkGraphEdge::vtkGraphEdge()
@@ -42,3 +43,4 @@ void vtkGraphEdge::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Target: " << this->Target << endl;
   os << indent << "Id: " << this->Id << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGraphEdge.h b/Common/DataModel/vtkGraphEdge.h
index d2e45f9f383931608f33c858640416b87c22566e..dd8b5abfa6ddd0a4ee570f4b9d4fa4c551c926b5 100644
--- a/Common/DataModel/vtkGraphEdge.h
+++ b/Common/DataModel/vtkGraphEdge.h
@@ -36,6 +36,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkGraphEdge : public vtkObject
 {
 public:
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkGraphEdge&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkGraphInternals.cxx b/Common/DataModel/vtkGraphInternals.cxx
index 2f333b049933939324e2a461971df4d3bc626826..2635595bce05a7733e614d979430fb119b043137 100644
--- a/Common/DataModel/vtkGraphInternals.cxx
+++ b/Common/DataModel/vtkGraphInternals.cxx
@@ -21,6 +21,7 @@
 #include "vtkDistributedGraphHelper.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphInternals);
 
 //------------------------------------------------------------------------------
@@ -114,3 +115,4 @@ void vtkGraphInternals::ReplaceEdgeFromInList(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkGraphInternals.h b/Common/DataModel/vtkGraphInternals.h
index 48329c7659db3184431d49202f8bc6138f36a97b..a0891768af14ee716e8cb2c987128e29035b11bd 100644
--- a/Common/DataModel/vtkGraphInternals.h
+++ b/Common/DataModel/vtkGraphInternals.h
@@ -39,6 +39,7 @@
 // class vtkVertexAdjacencyList
 //----------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVertexAdjacencyList
 {
 public:
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkGraphInternals&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkGraphInternals_h
diff --git a/Common/DataModel/vtkHexagonalPrism.cxx b/Common/DataModel/vtkHexagonalPrism.cxx
index 63811d5f22080fa7248e93be711459a32d420b86..690daa9d7285d83c66f0abcc47289ed64a431018 100644
--- a/Common/DataModel/vtkHexagonalPrism.cxx
+++ b/Common/DataModel/vtkHexagonalPrism.cxx
@@ -32,6 +32,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHexagonalPrism);
 
 static const double VTK_DIVERGED = 1.e6;
@@ -1117,3 +1118,4 @@ void vtkHexagonalPrism::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Polygon:\n";
   this->Polygon->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHexagonalPrism.h b/Common/DataModel/vtkHexagonalPrism.h
index f249828db21d3c5faca2eb2f596cc20e897e28fa..c07d57bec9c73e38f43657379e3220d56812ba79 100644
--- a/Common/DataModel/vtkHexagonalPrism.h
+++ b/Common/DataModel/vtkHexagonalPrism.h
@@ -38,6 +38,7 @@
 #include "vtkCell3D.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkPolygon;
 class vtkQuad;
@@ -207,4 +208,5 @@ inline int vtkHexagonalPrism::GetParametricCenter(double pcoords[3])
   pcoords[2] = 0.5;
   return 0;
 }
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHexahedron.cxx b/Common/DataModel/vtkHexahedron.cxx
index b46b0c2e91f402e499ef4f231f97b7d254581e87..1959e545e85c782085cecaf2247500cbaeb629f4 100644
--- a/Common/DataModel/vtkHexahedron.cxx
+++ b/Common/DataModel/vtkHexahedron.cxx
@@ -30,6 +30,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHexahedron);
 
 namespace
@@ -499,8 +500,10 @@ bool vtkHexahedron::ComputeCentroid(
 
 // Marching cubes case table
 //
+VTK_ABI_NAMESPACE_END
 #include "vtkMarchingCubesTriangleCases.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkHexahedron::Contour(double value, vtkDataArray* cellScalars,
   vtkIncrementalPointLocator* locator, vtkCellArray* verts, vtkCellArray* lines,
   vtkCellArray* polys, vtkPointData* inPd, vtkPointData* outPd, vtkCellData* inCd, vtkIdType cellId,
@@ -1027,3 +1030,4 @@ void vtkHexahedron::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Quad:\n";
   this->Quad->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHexahedron.h b/Common/DataModel/vtkHexahedron.h
index 2ce3d98f107b7515f970a9837efdb4bc185e281b..7bb0e8a363a133876ce75deda5dc794c492bc596 100644
--- a/Common/DataModel/vtkHexahedron.h
+++ b/Common/DataModel/vtkHexahedron.h
@@ -34,6 +34,7 @@
 #include "vtkCell3D.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkQuad;
 class vtkIncrementalPointLocator;
@@ -200,4 +201,5 @@ private:
   void operator=(const vtkHexahedron&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHierarchicalBoxDataIterator.cxx b/Common/DataModel/vtkHierarchicalBoxDataIterator.cxx
index 20c17fbd08493c01dd75be752fccfa5d5efc6f36..d9b43de0e149e868ded9575432c4ce3cab6c7706 100644
--- a/Common/DataModel/vtkHierarchicalBoxDataIterator.cxx
+++ b/Common/DataModel/vtkHierarchicalBoxDataIterator.cxx
@@ -18,6 +18,7 @@
 #include "vtkHierarchicalBoxDataIterator.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHierarchicalBoxDataIterator);
 
 vtkHierarchicalBoxDataIterator::vtkHierarchicalBoxDataIterator() = default;
@@ -30,3 +31,4 @@ void vtkHierarchicalBoxDataIterator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHierarchicalBoxDataIterator.h b/Common/DataModel/vtkHierarchicalBoxDataIterator.h
index a5bf7b95a2458b2e4b2070a4de423802049adb4e..2bd171b913f3fb6ea4646b5913e260d170727de3 100644
--- a/Common/DataModel/vtkHierarchicalBoxDataIterator.h
+++ b/Common/DataModel/vtkHierarchicalBoxDataIterator.h
@@ -27,6 +27,7 @@
 #include "vtkDeprecation.h"           // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkUniformGridAMRDataIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTK_DEPRECATED_IN_9_2_0(
   "Use vtkUniformGridAMRDataIterator instead of vtkHierarchicalBoxDataIterator")
   VTKCOMMONDATAMODEL_EXPORT vtkHierarchicalBoxDataIterator : public vtkUniformGridAMRDataIterator
@@ -45,6 +46,7 @@ private:
   void operator=(const vtkHierarchicalBoxDataIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkHierarchicalBoxDataIterator.h
diff --git a/Common/DataModel/vtkHierarchicalBoxDataSet.cxx b/Common/DataModel/vtkHierarchicalBoxDataSet.cxx
index f9a43c8d7ae4cde8a8601e909d6f9f3d25542dc1..c6ed6a70c362fbf64b8dd4783da923ff4cbf28e6 100644
--- a/Common/DataModel/vtkHierarchicalBoxDataSet.cxx
+++ b/Common/DataModel/vtkHierarchicalBoxDataSet.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkUniformGridAMRDataIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHierarchicalBoxDataSet);
 
 //------------------------------------------------------------------------------
@@ -50,3 +51,4 @@ vtkHierarchicalBoxDataSet* vtkHierarchicalBoxDataSet::GetData(vtkInformationVect
 {
   return vtkHierarchicalBoxDataSet::GetData(v->GetInformationObject(i));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHierarchicalBoxDataSet.h b/Common/DataModel/vtkHierarchicalBoxDataSet.h
index 9bdc7a97280af99000bb912c02a35a8bdd3c588f..0cf7656beecb428a3bc285b3d18b939b585c7ef7 100644
--- a/Common/DataModel/vtkHierarchicalBoxDataSet.h
+++ b/Common/DataModel/vtkHierarchicalBoxDataSet.h
@@ -28,6 +28,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkOverlappingAMR.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkHierarchicalBoxDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHigherOrderCurve.cxx b/Common/DataModel/vtkHigherOrderCurve.cxx
index 5003a797064bc7c89f2e2ebc1cd273460e9a3d56..9efc2855508f3959ca434650f5c61e4169c52fac 100644
--- a/Common/DataModel/vtkHigherOrderCurve.cxx
+++ b/Common/DataModel/vtkHigherOrderCurve.cxx
@@ -27,6 +27,7 @@
 #include "vtkVector.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkHigherOrderCurve::vtkHigherOrderCurve()
 {
   this->Approx = nullptr;
@@ -416,3 +417,4 @@ bool vtkHigherOrderCurve::TransformApproxToCellParams(int subCell, double* pcoor
   }
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHigherOrderCurve.h b/Common/DataModel/vtkHigherOrderCurve.h
index e694cf21a284a920c0f0fb5a2208bb6f48898793..c6fca30844b91a52b8ffda9e83b251705ec82206 100644
--- a/Common/DataModel/vtkHigherOrderCurve.h
+++ b/Common/DataModel/vtkHigherOrderCurve.h
@@ -25,6 +25,7 @@
 #include "vtkNonLinearCell.h"
 #include "vtkSmartPointer.h" // For member variable.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDoubleArray;
 class vtkIdList;
@@ -114,4 +115,5 @@ inline int vtkHigherOrderCurve::GetParametricCenter(double center[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHigherOrderCurve_h
diff --git a/Common/DataModel/vtkHigherOrderHexahedron.cxx b/Common/DataModel/vtkHigherOrderHexahedron.cxx
index 2b349c7d578c0f7cda9a0760910402133f4867bb..4ac2bd0a05fbdcbc38d4a3b97f91e98a66df738f 100644
--- a/Common/DataModel/vtkHigherOrderHexahedron.cxx
+++ b/Common/DataModel/vtkHigherOrderHexahedron.cxx
@@ -31,6 +31,7 @@
 #include "vtkVector.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkHigherOrderHexahedron::vtkHigherOrderHexahedron()
 {
   this->Approx = nullptr;
@@ -783,3 +784,4 @@ const int* vtkHigherOrderHexahedron::GetOrder()
   }
   return this->Order;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHigherOrderHexahedron.h b/Common/DataModel/vtkHigherOrderHexahedron.h
index aa4587603fd4795c84254ee188bbd58fc95ac3d3..62ab7a4a75d4c045037b5e4377f6bb9a2274ef01 100644
--- a/Common/DataModel/vtkHigherOrderHexahedron.h
+++ b/Common/DataModel/vtkHigherOrderHexahedron.h
@@ -33,6 +33,7 @@
 #include "vtkSmartPointer.h" // For member variable.
 #include <functional>        //For std::function
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDoubleArray;
 class vtkHexahedron;
@@ -142,4 +143,5 @@ inline int vtkHigherOrderHexahedron::GetParametricCenter(double center[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHigherOrderHexahedron_h
diff --git a/Common/DataModel/vtkHigherOrderInterpolation.cxx b/Common/DataModel/vtkHigherOrderInterpolation.cxx
index 717ce5806d2714559c5227cc6939d6c9d7dfc0db..15af9ab1103e3c58d64a95331b0d3c921d58dba6 100644
--- a/Common/DataModel/vtkHigherOrderInterpolation.cxx
+++ b/Common/DataModel/vtkHigherOrderInterpolation.cxx
@@ -30,6 +30,7 @@
 // vtkStandardNewMacro(vtkHigherOrderInterpolation);
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 static constexpr double hexCorner[8][3] = { { 0., 0., 0. }, { +1., 0., 0. }, { +1., +1., 0. },
   { 0., +1., 0. }, { 0., 0., +1. }, { +1., 0., +1. }, { +1., +1., +1. }, { 0., +1., +1. } };
 
@@ -1279,3 +1280,4 @@ void vtkHigherOrderInterpolation::PrepareForOrder(
     this->DerivSpace.resize(maxDeriv);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHigherOrderInterpolation.h b/Common/DataModel/vtkHigherOrderInterpolation.h
index f44e9b75887908c72a329773a3e53a9995bbe88e..005cc2aa870accbde0a9ae2353d620a2f6f83094 100644
--- a/Common/DataModel/vtkHigherOrderInterpolation.h
+++ b/Common/DataModel/vtkHigherOrderInterpolation.h
@@ -27,6 +27,7 @@
 // Define this to include support for a "complete" (21- vs 18-point) wedge.
 #define VTK_21_POINT_WEDGE true
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkVector2i;
 class vtkVector3d;
@@ -144,4 +145,5 @@ int vtkHigherOrderInterpolation::NumberOfIntervals(const int order[N])
   return ni;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHigherOrderInterpolation_h
diff --git a/Common/DataModel/vtkHigherOrderQuadrilateral.cxx b/Common/DataModel/vtkHigherOrderQuadrilateral.cxx
index e7293256098f151853b809e5d2920dd53a695956..ab35e29586e1bd34c400b774b3746c1ddc5f4906 100644
--- a/Common/DataModel/vtkHigherOrderQuadrilateral.cxx
+++ b/Common/DataModel/vtkHigherOrderQuadrilateral.cxx
@@ -29,6 +29,7 @@
 #include "vtkVector.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkHigherOrderQuadrilateral::vtkHigherOrderQuadrilateral()
 {
   this->Approx = nullptr;
@@ -614,3 +615,4 @@ const int* vtkHigherOrderQuadrilateral::GetOrder()
   }
   return this->Order;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHigherOrderQuadrilateral.h b/Common/DataModel/vtkHigherOrderQuadrilateral.h
index 91c2eb86bab107f715aad6bb4e5857d4d10a3961..889bf8f042e4cf0e73b64222aadf612c856fd06c 100644
--- a/Common/DataModel/vtkHigherOrderQuadrilateral.h
+++ b/Common/DataModel/vtkHigherOrderQuadrilateral.h
@@ -27,6 +27,7 @@
 #include "vtkNonLinearCell.h"
 #include "vtkSmartPointer.h" // For member variable.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDoubleArray;
 class vtkIdList;
@@ -129,4 +130,5 @@ inline int vtkHigherOrderQuadrilateral::GetParametricCenter(double center[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHigherOrderQuadrilateral_h
diff --git a/Common/DataModel/vtkHigherOrderTetra.cxx b/Common/DataModel/vtkHigherOrderTetra.cxx
index 4472950eb3773dbef094865376f8d5a9f081f5a8..6f77b44e67a23ae258024840b4cefe8ed64fb0c2 100644
--- a/Common/DataModel/vtkHigherOrderTetra.cxx
+++ b/Common/DataModel/vtkHigherOrderTetra.cxx
@@ -29,6 +29,7 @@
 #define ENABLE_CACHING
 #define FIFTEEN_POINT_TETRA
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // The linearized tetra is comprised of four linearized faces. Each face is
@@ -1080,3 +1081,4 @@ void vtkHigherOrderTetra::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHigherOrderTetra.h b/Common/DataModel/vtkHigherOrderTetra.h
index 91f5488b0092cc912f9783a30e78fee99c7cf87b..c9d28297cb91c4ada1bbeb7b9dfe6cc2941d8fc5 100644
--- a/Common/DataModel/vtkHigherOrderTetra.h
+++ b/Common/DataModel/vtkHigherOrderTetra.h
@@ -40,6 +40,7 @@
 
 #include <vector> //For caching
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTetra;
 class vtkHigherOrderCurve;
 class vtkHigherOrderTriangle;
@@ -134,4 +135,5 @@ private:
   void operator=(const vtkHigherOrderTetra&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHigherOrderTriangle.cxx b/Common/DataModel/vtkHigherOrderTriangle.cxx
index b4ab72c509a622f5391adce809aecc23dae81610..68e6e061af041f3de22be9ee2fb2f1f079fd7359 100644
--- a/Common/DataModel/vtkHigherOrderTriangle.cxx
+++ b/Common/DataModel/vtkHigherOrderTriangle.cxx
@@ -30,6 +30,7 @@
 #define ENABLE_CACHING
 #define SEVEN_POINT_TRIANGLE
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkHigherOrderTriangle::vtkHigherOrderTriangle()
 {
@@ -907,3 +908,4 @@ void vtkHigherOrderTriangle::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHigherOrderTriangle.h b/Common/DataModel/vtkHigherOrderTriangle.h
index e35dfc4851c2413367859859fa6d764366aa0ac9..89e93f392ccbe8963d9d9269408d1bc029508509 100644
--- a/Common/DataModel/vtkHigherOrderTriangle.h
+++ b/Common/DataModel/vtkHigherOrderTriangle.h
@@ -40,6 +40,7 @@
 
 #include <vector> // For caching
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkHigherOrderCurve;
 class vtkTriangle;
@@ -128,4 +129,5 @@ private:
   void operator=(const vtkHigherOrderTriangle&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHigherOrderWedge.cxx b/Common/DataModel/vtkHigherOrderWedge.cxx
index c688e4452842971c6afcc87319d1d723e8ed5e2d..85be53309020f79ad22ec39f49b43cd5c8c89fc6 100644
--- a/Common/DataModel/vtkHigherOrderWedge.cxx
+++ b/Common/DataModel/vtkHigherOrderWedge.cxx
@@ -34,6 +34,7 @@
 
 // VTK_21_POINT_WEDGE is defined (or not) in vtkHigherOrderInterpolation.h
 #ifdef VTK_21_POINT_WEDGE
+VTK_ABI_NAMESPACE_BEGIN
 static double vtkHigherOrderWedge21ParametricCoords[21 * 3] = { 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0,
   1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.5,
   0.0, 0.5, 0.0, 1.0, 0.5, 0.5, 1.0, 0.0, 0.5, 1.0, 0.0, 0.0, 0.5, 1.0, 0.0, 0.5, 0.0, 1.0, 0.5,
@@ -68,6 +69,7 @@ static constexpr vtkIdType vtkHigherOrderWedge21QuadFace[3][9] = {
 };
 static constexpr vtkIdType vtkHigherOrderWedge21Edge[9][3] = { { 0, 1, 6 }, { 1, 2, 7 },
   { 2, 0, 8 }, { 3, 4, 9 }, { 4, 5, 10 }, { 5, 3, 11 }, { 0, 3, 12 }, { 1, 4, 13 }, { 2, 5, 14 } };
+VTK_ABI_NAMESPACE_END
 #endif
 
 // Return the offset into the array of face-DOFs of triangle barycentric integer coordinates (i,j)
@@ -103,6 +105,7 @@ static constexpr vtkIdType vtkHigherOrderWedge21Edge[9][3] = { { 0, 1, 6 }, { 1,
 // return offset = 2 since the face-DOF for this triangle
 // are ordered { +, @, o }.
 //
+VTK_ABI_NAMESPACE_BEGIN
 static int triangleDOFOffset(int order, int i, int j)
 {
   int off = i + order * (j - 1) - (j * (j + 1)) / 2;
@@ -1277,3 +1280,4 @@ const int* vtkHigherOrderWedge::GetOrder()
   }
   return this->Order;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHigherOrderWedge.h b/Common/DataModel/vtkHigherOrderWedge.h
index 9f0f3b17cb464fe683d5c85de0ad01eab12d4ef4..df690d4a7f3c74b41c52b5a187781d22e478c03b 100644
--- a/Common/DataModel/vtkHigherOrderWedge.h
+++ b/Common/DataModel/vtkHigherOrderWedge.h
@@ -42,6 +42,7 @@
 #include "vtkNonLinearCell.h"
 #include "vtkSmartPointer.h" // For member variable.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDoubleArray;
 class vtkWedge;
@@ -161,4 +162,5 @@ inline int vtkHigherOrderWedge::GetParametricCenter(double center[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHigherOrderWedge_h
diff --git a/Common/DataModel/vtkHyperTree.cxx b/Common/DataModel/vtkHyperTree.cxx
index 0527362681100a5b9e5656a5a6a6f3a0e38f0b32..db8df26ebe26f40353c88fbd46fb383a87982a47 100644
--- a/Common/DataModel/vtkHyperTree.cxx
+++ b/Common/DataModel/vtkHyperTree.cxx
@@ -30,6 +30,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkHyperTree::vtkHyperTree()
 {
   this->InitializeBase(2, 3, 8);
@@ -611,3 +612,4 @@ vtkHyperTree* vtkHyperTree::CreateInstance(unsigned char factor, unsigned char d
   ht->Initialize(factor, dimension, pow(factor, dimension));
   return ht;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTree.h b/Common/DataModel/vtkHyperTree.h
index eb2ec4781328d7ed4bb00247481192b8ece82532..18a893d250ee36593ed4038b2b218ec822166098 100644
--- a/Common/DataModel/vtkHyperTree.h
+++ b/Common/DataModel/vtkHyperTree.h
@@ -141,6 +141,7 @@
 #include <cassert> // Used internally
 #include <memory>  // std::shared_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkIdList;
 class vtkHyperTreeGridScales;
@@ -554,4 +555,5 @@ private:
   void operator=(const vtkHyperTree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeCursor.cxx b/Common/DataModel/vtkHyperTreeCursor.cxx
index 715eb881349d819c6867ded8517e6b5d2932b2bd..a9624aa3eebba5527a8be957b1f5c220b9ff1384 100644
--- a/Common/DataModel/vtkHyperTreeCursor.cxx
+++ b/Common/DataModel/vtkHyperTreeCursor.cxx
@@ -15,6 +15,7 @@
 #include "vtkHyperTreeCursor.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkHyperTreeCursor::vtkHyperTreeCursor() = default;
 
 //------------------------------------------------------------------------------
@@ -25,3 +26,4 @@ void vtkHyperTreeCursor::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeCursor.h b/Common/DataModel/vtkHyperTreeCursor.h
index 4bcf8e85d18e15ce0b9e5e005188d1d266d4bc74..b161b02a1c509a940feeff42dfaa7b1286826d8e 100644
--- a/Common/DataModel/vtkHyperTreeCursor.h
+++ b/Common/DataModel/vtkHyperTreeCursor.h
@@ -38,6 +38,7 @@
 #include "vtkDeprecation.h"           // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 
 class VTK_DEPRECATED_IN_9_2_0(
@@ -155,5 +156,6 @@ private:
   vtkHyperTreeCursor(const vtkHyperTreeCursor&) = delete;
   void operator=(const vtkHyperTreeCursor&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkHyperTreeCursor.h
diff --git a/Common/DataModel/vtkHyperTreeGrid.cxx b/Common/DataModel/vtkHyperTreeGrid.cxx
index 365553a1245920ba33c93ff8de2f73d3b33a7f23..df9a9721ffeb950ffc712c28b3cbd92002934623 100644
--- a/Common/DataModel/vtkHyperTreeGrid.cxx
+++ b/Common/DataModel/vtkHyperTreeGrid.cxx
@@ -51,6 +51,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 #include <deque>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyMacro(vtkHyperTreeGrid, LEVELS, Integer);
 vtkInformationKeyMacro(vtkHyperTreeGrid, DIMENSION, Integer);
 vtkInformationKeyMacro(vtkHyperTreeGrid, ORIENTATION, Integer);
@@ -1737,3 +1738,4 @@ bool vtkHyperTreeGrid::HasAnyGhostCells() const
 {
   return this->CellData->GetArray(vtkDataSetAttributes::GhostArrayName()) != nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGrid.h b/Common/DataModel/vtkHyperTreeGrid.h
index b77d2a86cb214775180da67abd6b059391427e10..a8f5ff7e5432e8c673da95dab574f80854edd330 100644
--- a/Common/DataModel/vtkHyperTreeGrid.h
+++ b/Common/DataModel/vtkHyperTreeGrid.h
@@ -70,6 +70,7 @@
 #include <map>     // std::map
 #include <memory>  // std::shared_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkBoundingBox;
 class vtkCellLinks;
@@ -834,4 +835,5 @@ private:
   void operator=(const vtkHyperTreeGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridEntry.cxx b/Common/DataModel/vtkHyperTreeGridEntry.cxx
index bf5a13a7681d7f64f4a6733c2cf02b89f3f4c6ed..3a8692cbc9a6c0d7f9f5a338f46cb7ef4d4a45bd 100644
--- a/Common/DataModel/vtkHyperTreeGridEntry.cxx
+++ b/Common/DataModel/vtkHyperTreeGridEntry.cxx
@@ -22,6 +22,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkHyperTreeGridEntry::PrintSelf(ostream& os, vtkIndent indent)
 {
   os << indent << "--vtkHyperTreeGridEntry--" << endl;
@@ -139,3 +140,4 @@ void vtkHyperTreeGridEntry::ToChild(
   assert("pre: is_masked" && !IsMasked(grid, tree));
   this->Index = tree->GetElderChildIndex(this->Index) + ichild;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridEntry.h b/Common/DataModel/vtkHyperTreeGridEntry.h
index 5ccd303e6f096f9b1e6979a7b5e5ff8e9b65e000..ecced92c69e4a8922d0ff00ccf246a132f526a09 100644
--- a/Common/DataModel/vtkHyperTreeGridEntry.h
+++ b/Common/DataModel/vtkHyperTreeGridEntry.h
@@ -66,6 +66,7 @@
 
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 
@@ -193,5 +194,6 @@ protected:
   vtkIdType Index;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridEntry_h
 // VTK-HeaderTest-Exclude: vtkHyperTreeGridEntry.h
diff --git a/Common/DataModel/vtkHyperTreeGridGeometricLocator.cxx b/Common/DataModel/vtkHyperTreeGridGeometricLocator.cxx
index f1cd119bd604b8a0e1d589bd2e94a197a3ff1423..621a58f5e4169be309eecae282814d656654679c 100644
--- a/Common/DataModel/vtkHyperTreeGridGeometricLocator.cxx
+++ b/Common/DataModel/vtkHyperTreeGridGeometricLocator.cxx
@@ -31,6 +31,7 @@
 #include <numeric>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkHyperTreeGridGeometricLocator);
 
@@ -695,3 +696,4 @@ std::vector<int> vtkHyperTreeGridGeometricLocator::GetSortingMap(
   std::sort(map.begin(), map.end(), [&other](int i0, int i1) { return (other[i0] < other[i1]); });
   return map;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridGeometricLocator.h b/Common/DataModel/vtkHyperTreeGridGeometricLocator.h
index 5d0731e849ae61edfa309e8c2490d99d36415a52..c16233499f681749c3fa93ba561a191cef5386a5 100644
--- a/Common/DataModel/vtkHyperTreeGridGeometricLocator.h
+++ b/Common/DataModel/vtkHyperTreeGridGeometricLocator.h
@@ -38,6 +38,7 @@
 #include "vtkCommonDataModelModule.h" //For export macro
 #include "vtkHyperTreeGridLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericCell;
 class vtkPoints;
 class vtkIdList;
@@ -191,4 +192,6 @@ private:
 
 }; // vtkHyperTreeGridGeometricLocator
 
+VTK_ABI_NAMESPACE_END
+
 #endif // vtkHyperTreeGridGeometricLocator_h
diff --git a/Common/DataModel/vtkHyperTreeGridGeometryEntry.cxx b/Common/DataModel/vtkHyperTreeGridGeometryEntry.cxx
index ef941341b8da8f9b8bb6dfc0bd24beb25cf521db..80910fabeb8c09e069489174a6ec8fe75c79ea82 100644
--- a/Common/DataModel/vtkHyperTreeGridGeometryEntry.cxx
+++ b/Common/DataModel/vtkHyperTreeGridGeometryEntry.cxx
@@ -22,6 +22,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkHyperTreeGridGeometryEntry::vtkHyperTreeGridGeometryEntry()
 {
   this->Index = 0;
@@ -214,3 +215,4 @@ void vtkHyperTreeGridGeometryEntry::ToChild(const vtkHyperTreeGrid* grid, const
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridGeometryEntry.h b/Common/DataModel/vtkHyperTreeGridGeometryEntry.h
index 4294041731a842fe8a4a402e320f2e832d24a71b..11ad487e453ededfa1b347ea1134c6824dccfc54 100644
--- a/Common/DataModel/vtkHyperTreeGridGeometryEntry.h
+++ b/Common/DataModel/vtkHyperTreeGridGeometryEntry.h
@@ -40,6 +40,7 @@ JB
 
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 
@@ -225,5 +226,6 @@ private:
   double Origin[3];
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridGeometryEntry_h
 // VTK-HeaderTest-Exclude: vtkHyperTreeGridGeometryEntry.h
diff --git a/Common/DataModel/vtkHyperTreeGridGeometryLevelEntry.cxx b/Common/DataModel/vtkHyperTreeGridGeometryLevelEntry.cxx
index 4bc1df0885e3330c829074bba2f07b0fcce34d1d..f912149a12ced4fe2bb8a325e65b12445f0f8077 100644
--- a/Common/DataModel/vtkHyperTreeGridGeometryLevelEntry.cxx
+++ b/Common/DataModel/vtkHyperTreeGridGeometryLevelEntry.cxx
@@ -24,6 +24,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkHyperTreeGridGeometryLevelEntry::PrintSelf(ostream& os, vtkIndent indent)
 {
   os << indent << "--vtkHyperTreeGridGeometryLevelEntry--" << endl;
@@ -238,3 +239,4 @@ void vtkHyperTreeGridGeometryLevelEntry::GetPoint(double point[3]) const
   point[1] = this->Origin[1] + sizeChild[1] / 2.;
   point[2] = this->Origin[2] + sizeChild[2] / 2.;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridGeometryLevelEntry.h b/Common/DataModel/vtkHyperTreeGridGeometryLevelEntry.h
index 6bcba80ba9724a3f6c200b8d84ff4dc59617dbf8..2810f9283b89ec5682995ff773fc1262fbbf06b9 100644
--- a/Common/DataModel/vtkHyperTreeGridGeometryLevelEntry.h
+++ b/Common/DataModel/vtkHyperTreeGridGeometryLevelEntry.h
@@ -44,6 +44,7 @@
 #include "vtkHyperTreeGridNonOrientedGeometryCursor.h"
 #include "vtkHyperTreeGridOrientedGeometryCursor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 
@@ -264,5 +265,6 @@ private:
   double Origin[3];
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridGeometryLevelEntry
 // VTK-HeaderTest-Exclude: vtkHyperTreeGridGeometryLevelEntry.h
diff --git a/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedEntry.cxx b/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedEntry.cxx
index b37e8a6f1f8e9d1f6bb3bd1e504981b6e33274d2..ff555ab98e50c7cfb0f4b79af6d9647adf61d0a7 100644
--- a/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedEntry.cxx
+++ b/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedEntry.cxx
@@ -22,6 +22,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 #include <limits>
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkHyperTreeGridGeometryUnlimitedEntry::vtkHyperTreeGridGeometryUnlimitedEntry()
 {
@@ -254,3 +255,4 @@ void vtkHyperTreeGridGeometryUnlimitedEntry::ToChild(const vtkHyperTreeGrid* gri
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedEntry.h b/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedEntry.h
index dac9d08b544c84d765b4fdc6d8d2e556fd31b0b6..629064e55f01129c216a7cc892e80e5dc3da5dda 100644
--- a/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedEntry.h
+++ b/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedEntry.h
@@ -40,6 +40,7 @@ JB
 
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 
@@ -228,5 +229,6 @@ private:
   double Origin[3];
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridGeometryUnlimitedEntry_h
 // VTK-HeaderTest-Exclude: vtkHyperTreeGridGeometryUnlimitedEntry.h
diff --git a/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedLevelEntry.cxx b/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedLevelEntry.cxx
index 35a292643c9a5f875c743a57e99930a31fc5628b..393f7d48aa4f58dd924b53838f7b5811f201c02c 100644
--- a/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedLevelEntry.cxx
+++ b/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedLevelEntry.cxx
@@ -24,6 +24,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 #include <limits>
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 void vtkHyperTreeGridGeometryUnlimitedLevelEntry::Initialize(
   vtkHyperTree* tree, unsigned int level, vtkIdType index, const double* origin)
@@ -253,3 +254,4 @@ void vtkHyperTreeGridGeometryUnlimitedLevelEntry::GetPoint(double point[3]) cons
   point[1] = this->Origin[1] + sizeChild[1] / 2.;
   point[2] = this->Origin[2] + sizeChild[2] / 2.;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedLevelEntry.h b/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedLevelEntry.h
index 1226b790d904150656d93a4450d4155851fa05c3..5393f72cd7c9140320b8958469588b198daf48db 100644
--- a/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedLevelEntry.h
+++ b/Common/DataModel/vtkHyperTreeGridGeometryUnlimitedLevelEntry.h
@@ -45,6 +45,7 @@
 #include "vtkHyperTreeGridNonOrientedGeometryCursor.h"
 #include "vtkHyperTreeGridOrientedGeometryCursor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 
@@ -253,5 +254,6 @@ private:
   double Origin[3];
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridGeometryUnlimitedLevelEntry
 // VTK-HeaderTest-Exclude: vtkHyperTreeGridGeometryUnlimitedLevelEntry.h
diff --git a/Common/DataModel/vtkHyperTreeGridLevelEntry.cxx b/Common/DataModel/vtkHyperTreeGridLevelEntry.cxx
index 2ca801e1e17e0413da1c7421d6164b4fedc3c221..600b49e6c600bc927cc663c295405761649306cf 100644
--- a/Common/DataModel/vtkHyperTreeGridLevelEntry.cxx
+++ b/Common/DataModel/vtkHyperTreeGridLevelEntry.cxx
@@ -23,6 +23,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkHyperTreeGridLevelEntry::vtkHyperTreeGridLevelEntry(
   vtkHyperTreeGrid* grid, vtkIdType treeIndex, bool create)
   : Tree(grid->GetTree(treeIndex, create))
@@ -169,3 +170,4 @@ void vtkHyperTreeGridLevelEntry::ToChild(const vtkHyperTreeGrid* grid, unsigned
   this->Index = this->Tree->GetElderChildIndex(this->Index) + ichild;
   this->Level++;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridLevelEntry.h b/Common/DataModel/vtkHyperTreeGridLevelEntry.h
index cd4abe81da9e0e7f2c347b72d18aa1e5fb3e4f62..1a189d158f14bcd6d40b38e537ee906e7bd45e02 100644
--- a/Common/DataModel/vtkHyperTreeGridLevelEntry.h
+++ b/Common/DataModel/vtkHyperTreeGridLevelEntry.h
@@ -39,6 +39,7 @@
 #include "vtkObject.h"
 #include "vtkSmartPointer.h" // Used internally
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridNonOrientedCursor;
@@ -237,5 +238,6 @@ protected:
   vtkIdType Index;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridLevelEntry_h
 // VTK-HeaderTest-Exclude: vtkHyperTreeGridLevelEntry.h
diff --git a/Common/DataModel/vtkHyperTreeGridLocator.cxx b/Common/DataModel/vtkHyperTreeGridLocator.cxx
index 73f6ffd2b5505f8753dab5308ec1b9b7fbcc1646..e967b9903260e73c606d3aaf0f7e687f191e0921 100644
--- a/Common/DataModel/vtkHyperTreeGridLocator.cxx
+++ b/Common/DataModel/vtkHyperTreeGridLocator.cxx
@@ -17,6 +17,7 @@
 #include "vtkHyperTreeGrid.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkHyperTreeGridLocator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
@@ -57,3 +58,4 @@ void vtkHyperTreeGridLocator::Update()
     return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridLocator.h b/Common/DataModel/vtkHyperTreeGridLocator.h
index b91c4f7109d9d6403ce05daa1a0e363c24c3e247..528a6498255d7eb7297a5626f2d5eedf65248eba 100644
--- a/Common/DataModel/vtkHyperTreeGridLocator.h
+++ b/Common/DataModel/vtkHyperTreeGridLocator.h
@@ -39,6 +39,8 @@
 #include "vtkObject.h"
 #include "vtkWeakPointer.h" //For HTG member
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkHyperTreeGrid;
 class vtkPoints;
 class vtkIdList;
@@ -148,4 +150,5 @@ private:
 
 }; // vtkHyperTreeGridLocator
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridLocator_h
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedCursor.cxx b/Common/DataModel/vtkHyperTreeGridNonOrientedCursor.cxx
index 23ffddb5a2ba810bc6fceb0e6f6c8945cdb64efb..1fea20a68b420c6d6070c584235ae9d3b47a867d 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedCursor.cxx
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedCursor.cxx
@@ -22,6 +22,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridNonOrientedCursor);
 
 //------------------------------------------------------------------------------
@@ -235,3 +236,4 @@ vtkHyperTreeGridNonOrientedCursor::vtkHyperTreeGridNonOrientedCursor()
 vtkHyperTreeGridNonOrientedCursor::~vtkHyperTreeGridNonOrientedCursor() = default;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedCursor.h b/Common/DataModel/vtkHyperTreeGridNonOrientedCursor.h
index de46ed3e9bf5e7881506d3ebbe7e76cc06166cb0..d9e7005a65a4607ffd5a3be2a520f72fedcceb09 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedCursor.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedCursor.h
@@ -46,6 +46,7 @@
 
 #include <vector> // For std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridEntry;
@@ -227,4 +228,5 @@ private:
   vtkHyperTreeGridNonOrientedCursor(const vtkHyperTreeGridNonOrientedCursor&) = delete;
   void operator=(const vtkHyperTreeGridNonOrientedCursor&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedGeometryCursor.cxx b/Common/DataModel/vtkHyperTreeGridNonOrientedGeometryCursor.cxx
index 76b42609c6d3fee31a6d009b1ccb7d5d92908c1a..840506e894f3df7566846baf6599c53d47bcb682 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedGeometryCursor.cxx
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedGeometryCursor.cxx
@@ -25,6 +25,7 @@ PURPOSE.  See the above copyright Nonice for more information.
 
 #include "vtkHyperTreeGridOrientedGeometryCursor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridNonOrientedGeometryCursor);
 
 //------------------------------------------------------------------------------
@@ -317,3 +318,4 @@ vtkHyperTreeGridNonOrientedGeometryCursor::GetHyperTreeGridOrientedGeometryCurso
   cursor->Initialize(grid, this->Tree, this->GetLevel(), this->GetVertexId(), this->GetOrigin());
   return cursor;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedGeometryCursor.h b/Common/DataModel/vtkHyperTreeGridNonOrientedGeometryCursor.h
index d1a050e21105301839d0aeba3437b00d22428c84..21f3402bf06b8fddedba3857058e9f005d8254e7 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedGeometryCursor.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedGeometryCursor.h
@@ -51,6 +51,7 @@
 #include <memory>                          // std::shared_ptr
 #include <vector>                          // std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridScales;
@@ -262,4 +263,5 @@ private:
     const vtkHyperTreeGridNonOrientedGeometryCursor&) = delete;
   void operator=(const vtkHyperTreeGridNonOrientedGeometryCursor&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursor.cxx b/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursor.cxx
index a8abc05af978c6568bb2bbf1c5a8dff1d71f649d..c91f5288b2634fb259734259dff7cba393dab3d4 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursor.cxx
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursor.cxx
@@ -25,11 +25,14 @@ PURPOSE.  See the above copyright Nonice for more information.
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridNonOrientedMooreSuperCursor);
 
+VTK_ABI_NAMESPACE_END
 #include "vtkHyperTreeGridNonOrientedMooreSuperCursorData.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkHyperTreeGridNonOrientedMooreSuperCursor::Initialize(
   vtkHyperTreeGrid* grid, vtkIdType treeIndex, bool create)
 {
@@ -373,3 +376,4 @@ vtkHyperTreeGridNonOrientedMooreSuperCursor::~vtkHyperTreeGridNonOrientedMooreSu
   default;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursor.h b/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursor.h
index 3b08bb2afbaa6c70b4e02228400a8200a1df7d5b..4c4922909368e4264c2079637016c3563cc41b2b 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursor.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursor.h
@@ -43,6 +43,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkHyperTreeGridNonOrientedSuperCursor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkHyperTree;
 class vtkHyperTreeGrid;
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkHyperTreeGridNonOrientedMooreSuperCursor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursorData.h b/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursorData.h
index 84bd2ab105d49b7bc71a6d2258b1def89bd657ac..732107dc21d021f76714919c3940c45446995151 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursorData.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursorData.h
@@ -7,6 +7,7 @@
 // Super cursor traversal table to retrieve the child index for each cursor
 // of the parent node. There are (3*f)^d entries in the table.
 // d = 1 f = 2
+VTK_ABI_NAMESPACE_BEGIN
 static const unsigned int MooreChildCursorToChildTable12[6] = {
   1, 0, 1,
   0, 1, 0,
@@ -226,5 +227,7 @@ static const unsigned int* CornerNeighborCursorsTable3D[8] = {
 };
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_END
+
 // clang-format on
 #endif /* end of include guard: vtkHyperTreeGridNonOrientedMooreSuperCursorData_h */
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursorLight.cxx b/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursorLight.cxx
index 48809335333dce294cba9c419d4601dfa0ef2f1a..4e6a77ddda62f3205e2fe0814f7f6271afc84cfd 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursorLight.cxx
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursorLight.cxx
@@ -26,11 +26,14 @@ PURPOSE.  See the above copyright Nonice for more information.
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridNonOrientedMooreSuperCursorLight);
 
+VTK_ABI_NAMESPACE_END
 #include "vtkHyperTreeGridNonOrientedMooreSuperCursorData.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkHyperTreeGridNonOrientedMooreSuperCursorLight::Initialize(
   vtkHyperTreeGrid* grid, vtkIdType treeIndex, bool create)
 {
@@ -373,3 +376,4 @@ vtkHyperTreeGridNonOrientedMooreSuperCursorLight::
   ~vtkHyperTreeGridNonOrientedMooreSuperCursorLight() = default;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursorLight.h b/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursorLight.h
index 71acd1b939b2f010fe1cd9a34ec70e4a21fe0fa2..06cdfc724154d836823920a64b6c5896703125a0 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursorLight.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedMooreSuperCursorLight.h
@@ -42,6 +42,7 @@
 
 #include "vtkHyperTreeGridNonOrientedSuperCursorLight.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkHyperTree;
 class vtkHyperTreeGrid;
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkHyperTreeGridNonOrientedMooreSuperCursorLight&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursor.cxx b/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursor.cxx
index ce7bcb202cbe8fe70c18a53d07a35583d249f1c2..487ca62240665b1e13321d8c7dbc37c49ad313f4 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursor.cxx
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursor.cxx
@@ -31,6 +31,7 @@ PURPOSE.  See the above copyright Nonice for more information.
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkHyperTreeGridNonOrientedSuperCursor* vtkHyperTreeGridNonOrientedSuperCursor::Clone()
 {
   vtkHyperTreeGridNonOrientedSuperCursor* clone = this->NewInstance();
@@ -553,3 +554,4 @@ unsigned int vtkHyperTreeGridNonOrientedSuperCursor::GetIndicePreviousEntry(unsi
 
   return this->ReferenceEntries[refId];
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursor.h b/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursor.h
index f61370b61aef0809ff6d1f0c777785dd82286dc7..dbb460eba9a93fe8928de9a7d7406dbcb217e872 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursor.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursor.h
@@ -50,6 +50,7 @@
 
 #include <vector> // For std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridNonOrientedGeometryCursor;
@@ -310,4 +311,5 @@ private:
   void operator=(const vtkHyperTreeGridNonOrientedSuperCursor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursorLight.cxx b/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursorLight.cxx
index 1fb1798c42bf9651c452c5c423e0d6e54b87c3c6..efe4cea6f8770d3c3cdbe6bd514883ff40c02551 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursorLight.cxx
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursorLight.cxx
@@ -27,6 +27,7 @@ PURPOSE.  See the above copyright Nonice for more information.
 #include <limits>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkHyperTreeGridNonOrientedSuperCursorLight* vtkHyperTreeGridNonOrientedSuperCursorLight::Clone()
 {
   vtkHyperTreeGridNonOrientedSuperCursorLight* clone = this->NewInstance();
@@ -462,3 +463,4 @@ vtkHyperTreeGridNonOrientedSuperCursorLight::~vtkHyperTreeGridNonOrientedSuperCu
   default;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursorLight.h b/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursorLight.h
index 26c657ed005136351276612d9ec91cb5e10edd1d..c3ea989dd884d1561afaa5749064d05594718965 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursorLight.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedSuperCursorLight.h
@@ -47,6 +47,7 @@
 #include <cassert> // Used internally
 #include <vector>  // std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridNonOrientedGeometryCursor;
@@ -347,4 +348,5 @@ private:
   void operator=(const vtkHyperTreeGridNonOrientedSuperCursorLight&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor.cxx b/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor.cxx
index f65b9de9c9b3c361571947e8502354c54287b46d..5ff3193262415da87f75dd1f66e79c5a85bc6a3b 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor.cxx
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor.cxx
@@ -26,6 +26,7 @@ PURPOSE.  See the above copyright Nonice for more information.
 #include "vtkHyperTreeGridNonOrientedGeometryCursor.h"
 #include "vtkHyperTreeGridOrientedGeometryCursor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor);
 
 //------------------------------------------------------------------------------
@@ -334,3 +335,4 @@ vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor::GetHyperTreeGridNonOrientedG
   cursor->Initialize(grid, this->Tree, this->GetLevel(), this->GetVertexId(), this->GetOrigin());
   return cursor;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor.h b/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor.h
index 6f2b268789512896030f20f6de0492e8577a51cd..1c15a608760e91ff02734544cb5a8d7bc4139dd0 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor.h
@@ -51,6 +51,7 @@
 #include <memory>                                   // std::shared_ptr
 #include <vector>                                   // std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridScales;
@@ -273,4 +274,5 @@ private:
     const vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor&) = delete;
   void operator=(const vtkHyperTreeGridNonOrientedUnlimitedGeometryCursor&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor.cxx b/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor.cxx
index 9fc0021a335b5670e17e4b16b7a267a5bf47185e..f1ae08fa0d9cfc50a749d8c039bae7c0dfccbdd8 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor.cxx
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor.cxx
@@ -27,6 +27,7 @@ PURPOSE.  See the above copyright Nonice for more information.
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor);
 
 //------------------------------------------------------------------------------
@@ -372,3 +373,4 @@ vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor::
   ~vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor() = default;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor.h b/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor.h
index 21503101329bfcc5189c111c1f3ddf4051e4ef2a..18660cb3f1f97a3703016bdefaf7a78feba39571 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor.h
@@ -31,6 +31,7 @@
 
 #include "vtkHyperTreeGridNonOrientedUnlimitedSuperCursor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkHyperTree;
 class vtkHyperTreeGrid;
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkHyperTreeGridNonOrientedUnlimitedMooreSuperCursor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedSuperCursor.cxx b/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedSuperCursor.cxx
index 5d0e14944ef93cafa1755b62bfe5b9526053f1a0..6e7328ff2bafaf7608d56ac37f6d034b35a0ff5d 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedSuperCursor.cxx
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedSuperCursor.cxx
@@ -31,6 +31,7 @@ PURPOSE.  See the above copyright Nonice for more information.
 #include <ostream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkHyperTreeGridNonOrientedUnlimitedSuperCursor*
 vtkHyperTreeGridNonOrientedUnlimitedSuperCursor::Clone()
@@ -547,3 +548,4 @@ unsigned int vtkHyperTreeGridNonOrientedUnlimitedSuperCursor::GetIndicePreviousE
 
   return this->ReferenceEntries[refId];
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedSuperCursor.h b/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedSuperCursor.h
index c4e49c77879d1e34824138deba7e0c80c6a200d9..41c26760df37c3e7d3ac5a73fc9ecc99993bb966 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedSuperCursor.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedUnlimitedSuperCursor.h
@@ -31,6 +31,7 @@
 
 #include <vector> // For std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridNonOrientedGeometryCursor;
@@ -288,4 +289,5 @@ private:
   void operator=(const vtkHyperTreeGridNonOrientedUnlimitedSuperCursor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursor.cxx b/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursor.cxx
index d680c846a427b845e1681e92d604c2dbc25d41ad..42a635a086d8be28b67642a2afddbc692c4e65d4 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursor.cxx
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursor.cxx
@@ -23,11 +23,14 @@ PURPOSE.  See the above copyright Nonice for more information.
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridNonOrientedVonNeumannSuperCursor);
 
+VTK_ABI_NAMESPACE_END
 #include "vtkHyperTreeGridNonOrientedVonNeumannSuperCursorData.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkHyperTreeGridNonOrientedVonNeumannSuperCursor::Initialize(
   vtkHyperTreeGrid* grid, vtkIdType treeIndex, bool create)
 {
@@ -312,3 +315,4 @@ vtkHyperTreeGridNonOrientedVonNeumannSuperCursor::
   ~vtkHyperTreeGridNonOrientedVonNeumannSuperCursor() = default;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursor.h b/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursor.h
index 211efeaf3c265add6d0736c692249a431f9b2f83..2da2c63e80e5c87a429c215e3f5f3d963af606ec 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursor.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursor.h
@@ -43,6 +43,7 @@
 
 #include "vtkHyperTreeGridNonOrientedSuperCursor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTreeGrid;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkHyperTreeGridNonOrientedVonNeumannSuperCursor
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkHyperTreeGridNonOrientedVonNeumannSuperCursor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursorData.h b/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursorData.h
index 6420127262bdfeed05226221366378a7cf302d0e..7a2ec358a3d9767b9f29a5413d78d8995c48c918 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursorData.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursorData.h
@@ -7,6 +7,7 @@
 // Super cursor traversal table to retrieve the child index for each cursor
 // of the parent node. There are (2*d+1)*f^d entries in the table.
 // d = 1 f = 2
+VTK_ABI_NAMESPACE_BEGIN
 static const unsigned int VonNeumannChildCursorToParentCursorTable12[6] = {
   0, 1, 1,
   1, 1, 2,
@@ -168,6 +169,7 @@ static const unsigned int* VonNeumannChildCursorToChildTable[3][2] = {
    VonNeumannChildCursorToChildTable33}
 };
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
 
 // clang-format off
 #endif /* end of include guard: vtkHyperTreeGridNonOrientedVonNeumannSuperCursorData_h */
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight.cxx b/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight.cxx
index bb6a8a447d5273d3dd20133eed8839566a8c34f8..020ced5336ef299f65f3240fb7b5b8df29837ec2 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight.cxx
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight.cxx
@@ -24,12 +24,15 @@ PURPOSE.  See the above copyright Nonice for more information.
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight);
 
 // NOLINTNEXTLINE(bugprone-suspicious-include)
+VTK_ABI_NAMESPACE_END
 #include "vtkHyperTreeGridNonOrientedVonNeumannSuperCursorData.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight::Initialize(
   vtkHyperTreeGrid* grid, vtkIdType treeIndex, bool create)
 {
@@ -314,3 +317,4 @@ vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight::
   ~vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight() = default;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight.h b/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight.h
index 060e6fe0b82bbeaa286e1659bbf6d2785281c079..1889de4ea0fb327a9ccf86093c69bc68cc836e59 100644
--- a/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight.h
+++ b/Common/DataModel/vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight.h
@@ -40,6 +40,7 @@
 
 #include "vtkHyperTreeGridNonOrientedSuperCursorLight.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTreeGrid;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridOrientedCursor.cxx b/Common/DataModel/vtkHyperTreeGridOrientedCursor.cxx
index bf5900c244cece685fd681c5724ca0d3bbd298d2..964a74e37bf1ac17eff15ac9df4214db29b41c98 100644
--- a/Common/DataModel/vtkHyperTreeGridOrientedCursor.cxx
+++ b/Common/DataModel/vtkHyperTreeGridOrientedCursor.cxx
@@ -22,6 +22,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridOrientedCursor);
 
 //------------------------------------------------------------------------------
@@ -185,3 +186,4 @@ vtkHyperTreeGridOrientedCursor::vtkHyperTreeGridOrientedCursor()
 vtkHyperTreeGridOrientedCursor::~vtkHyperTreeGridOrientedCursor() = default;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridOrientedCursor.h b/Common/DataModel/vtkHyperTreeGridOrientedCursor.h
index cdea35ec2e6b8cb30a347bcdb0b8b38e07a84647..ee659a07fcb3927121a212fc8006ef82d6d6479a 100644
--- a/Common/DataModel/vtkHyperTreeGridOrientedCursor.h
+++ b/Common/DataModel/vtkHyperTreeGridOrientedCursor.h
@@ -45,6 +45,7 @@
 #include "vtkHyperTreeGridEntry.h"    // Used internally
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 
@@ -204,4 +205,5 @@ private:
   vtkHyperTreeGridOrientedCursor(const vtkHyperTreeGridOrientedCursor&) = delete;
   void operator=(const vtkHyperTreeGridOrientedCursor&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridOrientedGeometryCursor.cxx b/Common/DataModel/vtkHyperTreeGridOrientedGeometryCursor.cxx
index 59da9ac425923d408c42f3ac488a6c9252cbb45d..c04394e6825984ecb2cb5e5d9482041df1a0c438 100644
--- a/Common/DataModel/vtkHyperTreeGridOrientedGeometryCursor.cxx
+++ b/Common/DataModel/vtkHyperTreeGridOrientedGeometryCursor.cxx
@@ -22,6 +22,7 @@ PURPOSE.  See the above copyright Nonice for more information.
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridOrientedGeometryCursor);
 
 //------------------------------------------------------------------------------
@@ -245,3 +246,4 @@ vtkHyperTreeGridOrientedGeometryCursor::vtkHyperTreeGridOrientedGeometryCursor()
 vtkHyperTreeGridOrientedGeometryCursor::~vtkHyperTreeGridOrientedGeometryCursor() = default;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkHyperTreeGridOrientedGeometryCursor.h b/Common/DataModel/vtkHyperTreeGridOrientedGeometryCursor.h
index 35b8723b09e1ce767fe57798a15ab4f211b278d7..011e5a6f6173b9f1c956dcfce03588e8a543cf26 100644
--- a/Common/DataModel/vtkHyperTreeGridOrientedGeometryCursor.h
+++ b/Common/DataModel/vtkHyperTreeGridOrientedGeometryCursor.h
@@ -47,6 +47,7 @@
 #include <memory> // For std::shared_ptr
 #include <vector> // For std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTree;
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridScales;
@@ -227,4 +228,5 @@ private:
   vtkHyperTreeGridOrientedGeometryCursor(const vtkHyperTreeGridOrientedGeometryCursor&) = delete;
   void operator=(const vtkHyperTreeGridOrientedGeometryCursor&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkHyperTreeGridScales.h b/Common/DataModel/vtkHyperTreeGridScales.h
index 3e81dd29a7373ff7d66e541770cae9c3ed1285e6..68bd4db871cd1c12e1c171f017b8b47c6c770ff2 100644
--- a/Common/DataModel/vtkHyperTreeGridScales.h
+++ b/Common/DataModel/vtkHyperTreeGridScales.h
@@ -29,9 +29,12 @@
 #ifndef vtkHyperTreeGridScales_h
 #define vtkHyperTreeGridScales_h
 
+#include "vtkABINamespace.h"
+
 #include <cstring> // For memcpy
 #include <vector>  // For std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTreeGridScales
 {
 public:
@@ -141,5 +144,6 @@ private:
   mutable std::vector<double> CellScales;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkHyperTreeGridScales.h
diff --git a/Common/DataModel/vtkHyperTreeGridTools.h b/Common/DataModel/vtkHyperTreeGridTools.h
index db57de647ea3a331c0d7e5555053ceb907bce7c6..848b4c52e046655a16ad783a3e9cb630b263c13f 100644
--- a/Common/DataModel/vtkHyperTreeGridTools.h
+++ b/Common/DataModel/vtkHyperTreeGridTools.h
@@ -16,10 +16,13 @@
 #ifndef vtkHyperTreeGridTools_h
 #define vtkHyperTreeGridTools_h
 
+#include "vtkABINamespace.h"
+
 namespace vtk
 {
 namespace hypertreegrid
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <class T>
 bool HasTree(const T& e)
@@ -27,6 +30,7 @@ bool HasTree(const T& e)
   return e.GetTree() != nullptr;
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace hypertreegrid
 } // namespace vtk
 
diff --git a/Common/DataModel/vtkImageData.cxx b/Common/DataModel/vtkImageData.cxx
index de0670b9930737a3457f06f3c3ea53d29ac93bf6..0fe4f5f3b2e55c228fb2c0f21a1473c925deec5d 100644
--- a/Common/DataModel/vtkImageData.cxx
+++ b/Common/DataModel/vtkImageData.cxx
@@ -34,6 +34,7 @@
 #include "vtkVertex.h"
 #include "vtkVoxel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageData);
 vtkStandardExtendedNewMacro(vtkImageData);
 
@@ -2630,3 +2631,4 @@ bool vtkImageData::HasAnyBlankCells()
   int cellBlanking = this->CellData->HasAnyGhostBitSet(vtkDataSetAttributes::HIDDENCELL);
   return cellBlanking || this->HasAnyBlankPoints();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkImageData.h b/Common/DataModel/vtkImageData.h
index 935ee8ffbd906254839ca9dbacaa278e2f34d99c..bcc9415959a005fab10c43faf9146014a797c066 100644
--- a/Common/DataModel/vtkImageData.h
+++ b/Common/DataModel/vtkImageData.h
@@ -36,6 +36,7 @@
 
 #include "vtkStructuredData.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkLine;
 class vtkMatrix3x3;
@@ -701,4 +702,5 @@ inline int vtkImageData::GetDataDimension()
   return vtkStructuredData::GetDataDimension(this->DataDescription);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkImageIterator.cxx b/Common/DataModel/vtkImageIterator.cxx
index 8df1cdd86f77e5486a9ef831211a596af3f643f8..f4f57ef90154568f5e3c962bbb2d7db062094b6c 100644
--- a/Common/DataModel/vtkImageIterator.cxx
+++ b/Common/DataModel/vtkImageIterator.cxx
@@ -17,4 +17,6 @@
 
 #include "vtkImageIterator.txx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInstantiateTemplateMacro(template class VTKCOMMONDATAMODEL_EXPORT vtkImageIterator);
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkImageIterator.h b/Common/DataModel/vtkImageIterator.h
index 1222eeb26efafb6e98947aade2ef123f3ce4a781..ea3f5fda3c79858ca5df2b88d86663fc1d914e57 100644
--- a/Common/DataModel/vtkImageIterator.h
+++ b/Common/DataModel/vtkImageIterator.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkSystemIncludes.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 template <class DType>
@@ -94,5 +95,6 @@ vtkExternTemplateMacro(extern template class VTKCOMMONDATAMODEL_EXPORT vtkImageI
 #endif
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkImageIterator.h
diff --git a/Common/DataModel/vtkImageIterator.txx b/Common/DataModel/vtkImageIterator.txx
index e421725466e2a6e7bc61662f0d8ddd901ad41a82..27392789cc2f2fc49cbb8e53fd128a5a3bf22a94 100644
--- a/Common/DataModel/vtkImageIterator.txx
+++ b/Common/DataModel/vtkImageIterator.txx
@@ -19,6 +19,7 @@
 #include "vtkImageIterator.h"
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <class DType>
 vtkImageIterator<DType>::vtkImageIterator()
 {
@@ -70,4 +71,5 @@ void vtkImageIterator<DType>::NextSpan()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkImageTransform.cxx b/Common/DataModel/vtkImageTransform.cxx
index 641b00321e8c712f1234cc28c1193f27b12a54f9..8e3a338ac641e8a0b61d727b93e054349b3be47f 100644
--- a/Common/DataModel/vtkImageTransform.cxx
+++ b/Common/DataModel/vtkImageTransform.cxx
@@ -25,6 +25,7 @@
 #include "vtkPointSet.h"
 #include "vtkSMPTools.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageTransform);
 
 //============================================================================
@@ -341,3 +342,4 @@ void vtkImageTransform::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkImageTransform.h b/Common/DataModel/vtkImageTransform.h
index d355e8dc04ed66dd1fe5c65d71bac6dcad51e8de..4e00e4180bee20ca41b6764db58e70b4ca158745 100644
--- a/Common/DataModel/vtkImageTransform.h
+++ b/Common/DataModel/vtkImageTransform.h
@@ -46,6 +46,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkImageData;
 class vtkMatrix3x3;
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkImageTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkImplicitBoolean.cxx b/Common/DataModel/vtkImplicitBoolean.cxx
index e16e723964465d213aaafaff2025c22d42121821..0b34e978178433660c6d27733b2a75a935826453 100644
--- a/Common/DataModel/vtkImplicitBoolean.cxx
+++ b/Common/DataModel/vtkImplicitBoolean.cxx
@@ -19,6 +19,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitBoolean);
 
 // Construct with union operation.
@@ -258,3 +259,4 @@ void vtkImplicitBoolean::PrintSelf(ostream& os, vtkIndent indent)
     os << "VTK_DIFFERENCE\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkImplicitBoolean.h b/Common/DataModel/vtkImplicitBoolean.h
index bc0fb9f88f37b8d49f5ed4a893149d067cfa1b75..5905f847c545357e7d83e58320a77105338c6e90 100644
--- a/Common/DataModel/vtkImplicitBoolean.h
+++ b/Common/DataModel/vtkImplicitBoolean.h
@@ -38,6 +38,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunctionCollection;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkImplicitBoolean : public vtkImplicitFunction
@@ -141,4 +142,5 @@ inline const char* vtkImplicitBoolean::GetOperationTypeAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkImplicitDataSet.cxx b/Common/DataModel/vtkImplicitDataSet.cxx
index a81d6bb8df2a710198d868bb179e6a62f4ddb90a..654c0bdee52cc4fb5d56f45d1376eccb29d0da2e 100644
--- a/Common/DataModel/vtkImplicitDataSet.cxx
+++ b/Common/DataModel/vtkImplicitDataSet.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitDataSet);
 vtkCxxSetObjectMacro(vtkImplicitDataSet, DataSet, vtkDataSet);
 
@@ -185,3 +186,4 @@ void vtkImplicitDataSet::ReportReferences(vtkGarbageCollector* collector)
   // reference loop.
   vtkGarbageCollectorReport(collector, this->DataSet, "DataSet");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkImplicitDataSet.h b/Common/DataModel/vtkImplicitDataSet.h
index 8a7033fd9dab9ecf810dbf6a5375a22b2cd5c454..b3c40c2009656b99b822fa7623761e503b929afd 100644
--- a/Common/DataModel/vtkImplicitDataSet.h
+++ b/Common/DataModel/vtkImplicitDataSet.h
@@ -43,6 +43,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkImplicitDataSet : public vtkImplicitFunction
@@ -118,4 +119,5 @@ private:
   void operator=(const vtkImplicitDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkImplicitFunction.cxx b/Common/DataModel/vtkImplicitFunction.cxx
index 7430b374c2141a41d2acee5ffd58d48423e539b1..f3ee8f76cf17b1c2e09822b57c589789b7cef887 100644
--- a/Common/DataModel/vtkImplicitFunction.cxx
+++ b/Common/DataModel/vtkImplicitFunction.cxx
@@ -22,6 +22,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkImplicitFunction, Transform, vtkAbstractTransform);
 
 vtkImplicitFunction::vtkImplicitFunction()
@@ -258,3 +259,4 @@ void vtkImplicitFunction::SetTransform(const double elements[16])
   this->SetTransform(transform);
   transform->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkImplicitFunction.h b/Common/DataModel/vtkImplicitFunction.h
index c262cfbdd6b288f628a0c13e027acf51e4179202..2cbf541909b01ecf05d4794fa8660a1667e51fdd 100644
--- a/Common/DataModel/vtkImplicitFunction.h
+++ b/Common/DataModel/vtkImplicitFunction.h
@@ -53,6 +53,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 
 class vtkAbstractTransform;
@@ -147,4 +148,5 @@ private:
   void operator=(const vtkImplicitFunction&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkImplicitFunctionCollection.cxx b/Common/DataModel/vtkImplicitFunctionCollection.cxx
index 246d39c2685d572f627d8acee5a4d42ee7f60c7e..13e120ce062b04c0719a39492b4abdfff72c954e 100644
--- a/Common/DataModel/vtkImplicitFunctionCollection.cxx
+++ b/Common/DataModel/vtkImplicitFunctionCollection.cxx
@@ -15,9 +15,11 @@
 #include "vtkImplicitFunctionCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitFunctionCollection);
 
 void vtkImplicitFunctionCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkImplicitFunctionCollection.h b/Common/DataModel/vtkImplicitFunctionCollection.h
index 016fb168ab57aab6f1f1ab48d5c3d7a4658fc9d5..91cf495b4f78ed2e18348c246de332d9c7ea7412 100644
--- a/Common/DataModel/vtkImplicitFunctionCollection.h
+++ b/Common/DataModel/vtkImplicitFunctionCollection.h
@@ -30,6 +30,7 @@
 
 #include "vtkImplicitFunction.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkImplicitFunctionCollection : public vtkCollection
 {
 public:
@@ -81,4 +82,5 @@ inline vtkImplicitFunction* vtkImplicitFunctionCollection::GetNextItem()
   return static_cast<vtkImplicitFunction*>(this->GetNextItemAsObject());
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkImplicitHalo.cxx b/Common/DataModel/vtkImplicitHalo.cxx
index 76eb9b998d8dfb0841ab49507538a1a4699a7ca4..4cadaf7fc060acceac03998ddbca8bf511e826d8 100644
--- a/Common/DataModel/vtkImplicitHalo.cxx
+++ b/Common/DataModel/vtkImplicitHalo.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitHalo);
 
 //------------------------------------------------------------------------------
@@ -75,3 +76,4 @@ void vtkImplicitHalo::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Radius: " << this->Radius << endl;
   os << indent << "FadeOut: " << this->FadeOut << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkImplicitHalo.h b/Common/DataModel/vtkImplicitHalo.h
index 53001c4e764d5f6382ffda2b5fc5e93712ee1b27..0bb5237e5aba604a905c6d9be9a99ed2f4530852 100644
--- a/Common/DataModel/vtkImplicitHalo.h
+++ b/Common/DataModel/vtkImplicitHalo.h
@@ -35,6 +35,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkImplicitHalo : public vtkImplicitFunction
 {
 public:
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkImplicitHalo&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkImplicitSelectionLoop.cxx b/Common/DataModel/vtkImplicitSelectionLoop.cxx
index d839be111ac2637854aafd161317b8e4c95e1ae7..cfa14aeae52543d78c5a9dc0a507f652709662bc 100644
--- a/Common/DataModel/vtkImplicitSelectionLoop.cxx
+++ b/Common/DataModel/vtkImplicitSelectionLoop.cxx
@@ -22,6 +22,7 @@
 #include "vtkPoints.h"
 #include "vtkPolygon.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitSelectionLoop);
 vtkCxxSetObjectMacro(vtkImplicitSelectionLoop, Loop, vtkPoints);
 
@@ -208,3 +209,4 @@ void vtkImplicitSelectionLoop::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Normal: (" << this->Normal[0] << ", " << this->Normal[1] << ", "
      << this->Normal[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkImplicitSelectionLoop.h b/Common/DataModel/vtkImplicitSelectionLoop.h
index a9d2c22d0df23941d71054cf393a16f95052b9e2..1fa2322dd2f93cfc0932259384bfb72f1d7f9642 100644
--- a/Common/DataModel/vtkImplicitSelectionLoop.h
+++ b/Common/DataModel/vtkImplicitSelectionLoop.h
@@ -51,6 +51,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkPolygon;
 
@@ -142,4 +143,5 @@ private:
   void operator=(const vtkImplicitSelectionLoop&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkImplicitSum.cxx b/Common/DataModel/vtkImplicitSum.cxx
index 5bce3244d25c1fe3e0624752d78c542fb55e687c..2b14dfc3e9b7b67841b1be94431d3470e7e78228 100644
--- a/Common/DataModel/vtkImplicitSum.cxx
+++ b/Common/DataModel/vtkImplicitSum.cxx
@@ -20,6 +20,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitSum);
 
 //------------------------------------------------------------------------------
@@ -188,3 +189,4 @@ void vtkImplicitSum::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Weights:\n";
   this->Weights->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkImplicitSum.h b/Common/DataModel/vtkImplicitSum.h
index 28dab2bfd1426b402f0c32d8a34b7f9eb9d4b491..ac227dcbe98da71ba4bb21b7014a1d2533448e48 100644
--- a/Common/DataModel/vtkImplicitSum.h
+++ b/Common/DataModel/vtkImplicitSum.h
@@ -29,6 +29,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkImplicitFunctionCollection;
 
@@ -110,4 +111,5 @@ private:
   void operator=(const vtkImplicitSum&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkImplicitVolume.cxx b/Common/DataModel/vtkImplicitVolume.cxx
index c75497716a14191294e77c9bc3f30325bf49bd79..e92fca69043b67ebd4644c8d0904053faa86d636 100644
--- a/Common/DataModel/vtkImplicitVolume.cxx
+++ b/Common/DataModel/vtkImplicitVolume.cxx
@@ -21,6 +21,7 @@
 #include "vtkPointData.h"
 #include "vtkVoxel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitVolume);
 vtkCxxSetObjectMacro(vtkImplicitVolume, Volume, vtkImageData);
 
@@ -172,3 +173,4 @@ void vtkImplicitVolume::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Volume: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkImplicitVolume.h b/Common/DataModel/vtkImplicitVolume.h
index 2780151a9f20b13a9b48b6f68f1b74ad04f23de6..c37493307d46a8f625506c76a856006aef2cb8b0 100644
--- a/Common/DataModel/vtkImplicitVolume.h
+++ b/Common/DataModel/vtkImplicitVolume.h
@@ -43,6 +43,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkImageData;
 
@@ -118,4 +119,5 @@ private:
   void operator=(const vtkImplicitVolume&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkImplicitWindowFunction.cxx b/Common/DataModel/vtkImplicitWindowFunction.cxx
index 3a931ddb704eb39358ef88b23fb37fca0e93f5d2..38aa08b361b88ab0ec0148d849c83690397a1289 100644
--- a/Common/DataModel/vtkImplicitWindowFunction.cxx
+++ b/Common/DataModel/vtkImplicitWindowFunction.cxx
@@ -17,6 +17,7 @@
 #include "vtkGarbageCollector.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitWindowFunction);
 vtkCxxSetObjectMacro(vtkImplicitWindowFunction, ImplicitFunction, vtkImplicitFunction);
 
@@ -139,3 +140,4 @@ void vtkImplicitWindowFunction ::ReportReferences(vtkGarbageCollector* collector
   // reference loop.
   vtkGarbageCollectorReport(collector, this->ImplicitFunction, "ImplicitFunction");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkImplicitWindowFunction.h b/Common/DataModel/vtkImplicitWindowFunction.h
index eafd3c270d91cb6b0730bff3e79324258d07699f..7d82dead74e5ab2e0816c76149205b1d918c609a 100644
--- a/Common/DataModel/vtkImplicitWindowFunction.h
+++ b/Common/DataModel/vtkImplicitWindowFunction.h
@@ -36,6 +36,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkImplicitWindowFunction : public vtkImplicitFunction
 {
 public:
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkImplicitWindowFunction&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkInEdgeIterator.cxx b/Common/DataModel/vtkInEdgeIterator.cxx
index 47e46dbf6e5f0568e2d992462365a00b49c36189..f28062799eba4ca695c4ea7d41726a912bf722d0 100644
--- a/Common/DataModel/vtkInEdgeIterator.cxx
+++ b/Common/DataModel/vtkInEdgeIterator.cxx
@@ -24,6 +24,7 @@
 #include "vtkGraphEdge.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkInEdgeIterator, Graph, vtkGraph);
 vtkStandardNewMacro(vtkInEdgeIterator);
 //------------------------------------------------------------------------------
@@ -84,3 +85,4 @@ void vtkInEdgeIterator::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "Vertex: " << this->Vertex << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkInEdgeIterator.h b/Common/DataModel/vtkInEdgeIterator.h
index 93c816e04ef1acd61aac13fcb0fc8e534e168aed..e5dd5ae72e57f057dea8be9a3762e8a283411673 100644
--- a/Common/DataModel/vtkInEdgeIterator.h
+++ b/Common/DataModel/vtkInEdgeIterator.h
@@ -40,6 +40,7 @@
 
 #include "vtkGraph.h" // For edge type definitions
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraphEdge;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkInEdgeIterator : public vtkObject
@@ -109,4 +110,5 @@ private:
   void operator=(const vtkInEdgeIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkIncrementalOctreeNode.cxx b/Common/DataModel/vtkIncrementalOctreeNode.cxx
index ffeb69adc60d1a309000fa70359a6cd79e988fec..ae56f33cc498da77a319267006071e9af41d2317 100644
--- a/Common/DataModel/vtkIncrementalOctreeNode.cxx
+++ b/Common/DataModel/vtkIncrementalOctreeNode.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIncrementalOctreeNode);
 
 vtkCxxSetObjectMacro(vtkIncrementalOctreeNode, PointIdSet, vtkIdList);
@@ -832,3 +833,4 @@ int vtkIncrementalOctreeNode::GetNumberOfLevels() const
     return 1;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkIncrementalOctreeNode.h b/Common/DataModel/vtkIncrementalOctreeNode.h
index 9a54f9ae23f5ee15fff385e40d89b4c9931714d6..d5b672c2a1eba036c5932134c6f4632d579de26e 100644
--- a/Common/DataModel/vtkIncrementalOctreeNode.h
+++ b/Common/DataModel/vtkIncrementalOctreeNode.h
@@ -62,6 +62,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkIdList;
 
@@ -469,4 +470,5 @@ inline int vtkIncrementalOctreeNode::UpdateCounterAndDataBoundsRecursively(
       ? updated
       : this->Parent->UpdateCounterAndDataBoundsRecursively(point, nHits, updated, endNode));
 }
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkIncrementalOctreePointLocator.cxx b/Common/DataModel/vtkIncrementalOctreePointLocator.cxx
index d4f0bc1baeb63407840d614cf16031a0b0fe8f66..1da9f8742730ad03dba1455d72ca66e7320c0f3c 100644
--- a/Common/DataModel/vtkIncrementalOctreePointLocator.cxx
+++ b/Common/DataModel/vtkIncrementalOctreePointLocator.cxx
@@ -32,6 +32,7 @@
 #include <stack>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIncrementalOctreePointLocator);
 
 //------------------------------------------------------------------------------
@@ -1332,3 +1333,4 @@ int vtkIncrementalOctreePointLocator::GetNumberOfLevels()
 {
   return this->Level = this->OctreeRootNode->GetNumberOfLevels();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkIncrementalOctreePointLocator.h b/Common/DataModel/vtkIncrementalOctreePointLocator.h
index 69aa3d5a66fa2b866b3fc9c4d78edc1664f2ffbf..d29f8a1d637ae8c73bc855599918c84466f3251e 100644
--- a/Common/DataModel/vtkIncrementalOctreePointLocator.h
+++ b/Common/DataModel/vtkIncrementalOctreePointLocator.h
@@ -51,6 +51,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkIncrementalPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkIdList;
 class vtkIntArray;
@@ -508,4 +509,5 @@ private:
   vtkIncrementalOctreePointLocator(const vtkIncrementalOctreePointLocator&) = delete;
   void operator=(const vtkIncrementalOctreePointLocator&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkIncrementalPointLocator.cxx b/Common/DataModel/vtkIncrementalPointLocator.cxx
index c2376a5838f91fc7d31c68535c6788e617b9e142..af5f833d2305c3a8f84dc4a0352bce14614b905b 100644
--- a/Common/DataModel/vtkIncrementalPointLocator.cxx
+++ b/Common/DataModel/vtkIncrementalPointLocator.cxx
@@ -16,6 +16,7 @@
 #include "vtkIncrementalPointLocator.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkIncrementalPointLocator::vtkIncrementalPointLocator() = default;
 
 vtkIncrementalPointLocator::~vtkIncrementalPointLocator() = default;
@@ -24,3 +25,4 @@ void vtkIncrementalPointLocator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkIncrementalPointLocator.h b/Common/DataModel/vtkIncrementalPointLocator.h
index 8b3c8b5b76ebdf10d9cec2fcb580fd3308b080bc..11c609f5b428fe23f9b3dfcf95aaa216a0d8a113 100644
--- a/Common/DataModel/vtkIncrementalPointLocator.h
+++ b/Common/DataModel/vtkIncrementalPointLocator.h
@@ -45,6 +45,7 @@
 #include "vtkAbstractPointLocator.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkIdList;
 
@@ -138,4 +139,5 @@ private:
   void operator=(const vtkIncrementalPointLocator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkInformationQuadratureSchemeDefinitionVectorKey.cxx b/Common/DataModel/vtkInformationQuadratureSchemeDefinitionVectorKey.cxx
index a45692a9b5b25c1bd554055e43c59d6fb032c5a9..54b8de55a0b59104689e29534836fbadde52e693 100644
--- a/Common/DataModel/vtkInformationQuadratureSchemeDefinitionVectorKey.cxx
+++ b/Common/DataModel/vtkInformationQuadratureSchemeDefinitionVectorKey.cxx
@@ -21,6 +21,7 @@
 #include <vector>
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationQuadratureSchemeDefinitionVectorValue : public vtkObjectBase
 {
 public:
@@ -392,3 +393,4 @@ void vtkInformationQuadratureSchemeDefinitionVectorKey::Print(ostream& os, vtkIn
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkInformationQuadratureSchemeDefinitionVectorKey.h b/Common/DataModel/vtkInformationQuadratureSchemeDefinitionVectorKey.h
index 21a57dae295f6412ca31c43ddc16471c077f69a2..d55b146f6e2e4b874ef25734987363e938056110 100644
--- a/Common/DataModel/vtkInformationQuadratureSchemeDefinitionVectorKey.h
+++ b/Common/DataModel/vtkInformationQuadratureSchemeDefinitionVectorKey.h
@@ -29,6 +29,7 @@
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 #include "vtkInformationKey.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationQuadratureSchemeDefinitionVectorValue;
 class vtkXMLDataElement;
 class vtkQuadratureSchemeDefinition;
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkInformationQuadratureSchemeDefinitionVectorKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkIntersectionCounter.h b/Common/DataModel/vtkIntersectionCounter.h
index d9b1fef03d1e8309d5513b9506e3c222bbd9676e..df6216c5f08fe4d5b4db0364b7c03a62ade1e892 100644
--- a/Common/DataModel/vtkIntersectionCounter.h
+++ b/Common/DataModel/vtkIntersectionCounter.h
@@ -26,6 +26,7 @@
 
 // class VTKCOMMONDATAMODEL_EXPORT vtkIntersectionCounter
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIntersectionCounter
 {
 public:
@@ -104,5 +105,6 @@ protected:
 
 }; // vtkIntersectionCounter
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkIntersectionCounter.h
diff --git a/Common/DataModel/vtkIterativeClosestPointTransform.cxx b/Common/DataModel/vtkIterativeClosestPointTransform.cxx
index b21da271c9344c7c51054e8fadbf89d7710f8981..32dc8959aed4e6258896bffe29813ecddb5a4bca 100644
--- a/Common/DataModel/vtkIterativeClosestPointTransform.cxx
+++ b/Common/DataModel/vtkIterativeClosestPointTransform.cxx
@@ -22,6 +22,7 @@
 #include "vtkPoints.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIterativeClosestPointTransform);
 
 //------------------------------------------------------------------------------
@@ -512,3 +513,4 @@ void vtkIterativeClosestPointTransform::PrintSelf(ostream& os, vtkIndent indent)
     this->LandmarkTransform->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkIterativeClosestPointTransform.h b/Common/DataModel/vtkIterativeClosestPointTransform.h
index d629cf0464ba57a6d55af28ec1bbbe090d930745..5ea5b47c4f9e582dce5139795ac6aab14342d45d 100644
--- a/Common/DataModel/vtkIterativeClosestPointTransform.h
+++ b/Common/DataModel/vtkIterativeClosestPointTransform.h
@@ -45,6 +45,7 @@
 #define VTK_ICP_MODE_RMS 0
 #define VTK_ICP_MODE_AV 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellLocator;
 class vtkLandmarkTransform;
 class vtkDataSet;
@@ -224,4 +225,5 @@ private:
   void operator=(const vtkIterativeClosestPointTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkKdNode.cxx b/Common/DataModel/vtkKdNode.cxx
index 784a39055ea2e79516199ca503f3906b3d6d72f7..188394d36b539acc5b75bcf0853df4234a099f02 100644
--- a/Common/DataModel/vtkKdNode.cxx
+++ b/Common/DataModel/vtkKdNode.cxx
@@ -26,6 +26,7 @@
 #include "vtkPlanesIntersection.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkKdNode);
 vtkCxxSetObjectMacro(vtkKdNode, Left, vtkKdNode);
 vtkCxxSetObjectMacro(vtkKdNode, Right, vtkKdNode);
@@ -993,3 +994,4 @@ void vtkKdNode::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "MaxVal: " << this->MaxVal[0] << " " << this->MaxVal[1] << " " << this->MaxVal[2]
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkKdNode.h b/Common/DataModel/vtkKdNode.h
index 26ad1f323bb2607e2fb843137682a9172a029968..aeffeb04e0c23df56497b337de888b2b4ecd0a16 100644
--- a/Common/DataModel/vtkKdNode.h
+++ b/Common/DataModel/vtkKdNode.h
@@ -36,6 +36,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkPlanesIntersection;
 
@@ -303,4 +304,5 @@ private:
   void operator=(const vtkKdNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkKdTree.cxx b/Common/DataModel/vtkKdTree.cxx
index a9e831c0859f63a64e48ca84a08984c70bd25746..5c00e8fc5b094d8d94427147d5c11af08d6e5816 100644
--- a/Common/DataModel/vtkKdTree.cxx
+++ b/Common/DataModel/vtkKdTree.cxx
@@ -50,6 +50,7 @@
 #include <queue>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 class TimeLog // Similar to vtkTimerLogScope, but can be disabled at runtime.
@@ -4820,3 +4821,4 @@ void vtkKdTree::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "Progress: " << this->Progress << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkKdTree.h b/Common/DataModel/vtkKdTree.h
index ac2412e0a214b9a683341a804c71b1a886cb3030..61801548567c156b5ef5ad5b49b45af662de868d 100644
--- a/Common/DataModel/vtkKdTree.h
+++ b/Common/DataModel/vtkKdTree.h
@@ -59,6 +59,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTimerLog;
 class vtkIdList;
 class vtkIdTypeArray;
@@ -912,4 +913,5 @@ protected:
   vtkKdTree(const vtkKdTree&) = delete;
   void operator=(const vtkKdTree&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkKdTreePointLocator.cxx b/Common/DataModel/vtkKdTreePointLocator.cxx
index 45e9e64a212a6b0401403ec063b9235a9540ce5c..c95f486856452b0112678bba8f6938f61a9c9b92 100644
--- a/Common/DataModel/vtkKdTreePointLocator.cxx
+++ b/Common/DataModel/vtkKdTreePointLocator.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointSet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkKdTreePointLocator);
 
@@ -139,3 +140,4 @@ void vtkKdTreePointLocator::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "KdTree " << this->KdTree << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkKdTreePointLocator.h b/Common/DataModel/vtkKdTreePointLocator.h
index 2f930c5c8ec8a8a0dc85152fe9e4c8207c1dce98..c1b7fbe35962551fdd6294ffed92b315d4316ba9 100644
--- a/Common/DataModel/vtkKdTreePointLocator.h
+++ b/Common/DataModel/vtkKdTreePointLocator.h
@@ -29,6 +29,7 @@
 #include "vtkAbstractPointLocator.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkKdTree;
 
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkKdTreePointLocator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkLabelMapLookup.h b/Common/DataModel/vtkLabelMapLookup.h
index 35d2c7174f541916b83b789c3fbe1c14e2057fe5..67d103cd9513d1ad1f8151aa7f8e94b292ed453b 100644
--- a/Common/DataModel/vtkLabelMapLookup.h
+++ b/Common/DataModel/vtkLabelMapLookup.h
@@ -28,9 +28,12 @@
 #ifndef vtkLabelMapLookup_h
 #define vtkLabelMapLookup_h
 
+#include "vtkCommonDataModelModule.h"
+
 #include <unordered_set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 // Determine whether an image label/object has been specified for output.
 // This requires looking up an image pixel/scalar value and determining
 // whether it's part of a segmented object. Since this can be relatively
@@ -184,5 +187,6 @@ vtkLabelMapLookup<T>* vtkLabelMapLookup<T>::CreateLabelLookup(
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkLabelMapLookup.h
diff --git a/Common/DataModel/vtkLagrangeCurve.cxx b/Common/DataModel/vtkLagrangeCurve.cxx
index 83ce1f9b5b5260a561bdebf270cbc2059c4579b8..b3498a6298d48b0cc4535e53cc26e67f58be7874 100644
--- a/Common/DataModel/vtkLagrangeCurve.cxx
+++ b/Common/DataModel/vtkLagrangeCurve.cxx
@@ -27,6 +27,7 @@
 #include "vtkVector.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLagrangeCurve);
 vtkLagrangeCurve::vtkLagrangeCurve() = default;
 
@@ -85,3 +86,4 @@ void vtkLagrangeCurve::InterpolateDerivs(const double pcoords[3], double* derivs
 {
   vtkLagrangeInterpolation::Tensor1ShapeDerivatives(this->GetOrder(), pcoords, derivs);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkLagrangeCurve.h b/Common/DataModel/vtkLagrangeCurve.h
index 8a1c6d74f83fd388923c4356f8a38966f16c5f67..7d415acf66566f0340a22825a1fe76fd331d4c9e 100644
--- a/Common/DataModel/vtkLagrangeCurve.h
+++ b/Common/DataModel/vtkLagrangeCurve.h
@@ -25,6 +25,7 @@
 #include "vtkNew.h"          // For member variable.
 #include "vtkSmartPointer.h" // For member variable.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDoubleArray;
 class vtkIdList;
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkLagrangeCurve&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLagrangeCurve_h
diff --git a/Common/DataModel/vtkLagrangeHexahedron.cxx b/Common/DataModel/vtkLagrangeHexahedron.cxx
index a07e8c8d24dfd8d68f888109c8de0731638a7a6c..113c707c213219f788a8b065aa05fc10fcdd1964 100644
--- a/Common/DataModel/vtkLagrangeHexahedron.cxx
+++ b/Common/DataModel/vtkLagrangeHexahedron.cxx
@@ -31,6 +31,7 @@
 #include "vtkVector.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLagrangeHexahedron);
 
 vtkLagrangeHexahedron::vtkLagrangeHexahedron() = default;
@@ -136,3 +137,4 @@ vtkHigherOrderInterpolation* vtkLagrangeHexahedron::GetInterpolation()
 {
   return Interp;
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkLagrangeHexahedron.h b/Common/DataModel/vtkLagrangeHexahedron.h
index 4db5abc8d6155a6f7f4c885e636ba8a13c2c8fda..701af640da3ff9c0805dcee1d255ffb30ce946e2 100644
--- a/Common/DataModel/vtkLagrangeHexahedron.h
+++ b/Common/DataModel/vtkLagrangeHexahedron.h
@@ -32,6 +32,7 @@
 #include "vtkNew.h"          // For member variable.
 #include "vtkSmartPointer.h" // For member variable.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDoubleArray;
 class vtkHexahedron;
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkLagrangeHexahedron&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLagrangeHexahedron_h
diff --git a/Common/DataModel/vtkLagrangeInterpolation.cxx b/Common/DataModel/vtkLagrangeInterpolation.cxx
index b1ff57c12d54288af58fee66af5e7ec344b934d4..873059611793c341f350d822eb2d891d77bdfbc4 100644
--- a/Common/DataModel/vtkLagrangeInterpolation.cxx
+++ b/Common/DataModel/vtkLagrangeInterpolation.cxx
@@ -27,6 +27,7 @@
 #include <array>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLagrangeInterpolation);
 
 vtkLagrangeInterpolation::vtkLagrangeInterpolation() = default;
@@ -185,3 +186,4 @@ void vtkLagrangeInterpolation::WedgeEvaluateDerivative(const int order[3], const
   this->vtkHigherOrderInterpolation::WedgeEvaluateDerivative(order, pcoords, points, fieldVals,
     fieldDim, fieldDerivs, *tri, vtkLagrangeInterpolation::EvaluateShapeAndGradient);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkLagrangeInterpolation.h b/Common/DataModel/vtkLagrangeInterpolation.h
index b4f62ff0ef85bbde962bf8abc40ca7f478f15c17..7a4fc2e06a4279321a41f1383652fddbdbc99cf3 100644
--- a/Common/DataModel/vtkLagrangeInterpolation.h
+++ b/Common/DataModel/vtkLagrangeInterpolation.h
@@ -27,6 +27,7 @@
 // Define this to include support for a "complete" (21- vs 18-point) wedge.
 #define VTK_21_POINT_WEDGE true
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkVector2i;
 class vtkVector3d;
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkLagrangeInterpolation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLagrangeInterpolation_h
diff --git a/Common/DataModel/vtkLagrangeQuadrilateral.cxx b/Common/DataModel/vtkLagrangeQuadrilateral.cxx
index 5279299e1c005866410a701bc3133e82364ebd97..6e37308693382ad98eba7b5731723f64cbf5e51c 100644
--- a/Common/DataModel/vtkLagrangeQuadrilateral.cxx
+++ b/Common/DataModel/vtkLagrangeQuadrilateral.cxx
@@ -28,6 +28,7 @@
 #include "vtkVector.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLagrangeQuadrilateral);
 
 vtkLagrangeQuadrilateral::vtkLagrangeQuadrilateral() = default;
@@ -109,3 +110,4 @@ vtkHigherOrderCurve* vtkLagrangeQuadrilateral::GetEdgeCell()
 {
   return EdgeCell;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkLagrangeQuadrilateral.h b/Common/DataModel/vtkLagrangeQuadrilateral.h
index 53531aae0d973fa6e3e8d94d4371ce31efbec4e0..ef04bd4d15fccb2f8836aad0635b948b9e9deccd 100644
--- a/Common/DataModel/vtkLagrangeQuadrilateral.h
+++ b/Common/DataModel/vtkLagrangeQuadrilateral.h
@@ -25,6 +25,7 @@
 #include "vtkNew.h"          // For member variable.
 #include "vtkSmartPointer.h" // For member variable.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDoubleArray;
 class vtkIdList;
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkLagrangeQuadrilateral&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLagrangeQuadrilateral_h
diff --git a/Common/DataModel/vtkLagrangeTetra.cxx b/Common/DataModel/vtkLagrangeTetra.cxx
index 817880d01563dc3bec6662c6e9ff2c498c13beb2..7460299a85fbc22822520e8a02517424bed8631f 100644
--- a/Common/DataModel/vtkLagrangeTetra.cxx
+++ b/Common/DataModel/vtkLagrangeTetra.cxx
@@ -24,6 +24,7 @@
 #include "vtkPoints.h"
 #include "vtkTetra.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLagrangeTetra);
 //------------------------------------------------------------------------------
 vtkLagrangeTetra::vtkLagrangeTetra() = default;
@@ -306,3 +307,4 @@ vtkHigherOrderTriangle* vtkLagrangeTetra::GetFaceCell()
 {
   return FaceCell;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkLagrangeTetra.h b/Common/DataModel/vtkLagrangeTetra.h
index 011d1a9c59ae69296b785ef4f2c0683333766abc..dcd5638d772b2a6814b8d21d399a5bf0734706db 100644
--- a/Common/DataModel/vtkLagrangeTetra.h
+++ b/Common/DataModel/vtkLagrangeTetra.h
@@ -36,6 +36,7 @@
 
 #include <vector> // For caching
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTetra;
 class vtkLagrangeCurve;
 class vtkLagrangeTriangle;
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkLagrangeTetra&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkLagrangeTriangle.cxx b/Common/DataModel/vtkLagrangeTriangle.cxx
index cb41c1ffb4e2d20c8cc58a808bc65f6fc328ac83..5dc2d25dfe261ffaaa81035676e6d3f4a84ccdf5 100644
--- a/Common/DataModel/vtkLagrangeTriangle.cxx
+++ b/Common/DataModel/vtkLagrangeTriangle.cxx
@@ -29,6 +29,7 @@
 #define ENABLE_CACHING
 #define SEVEN_POINT_TRIANGLE
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLagrangeTriangle);
 //------------------------------------------------------------------------------
 vtkLagrangeTriangle::vtkLagrangeTriangle() = default;
@@ -210,3 +211,4 @@ vtkHigherOrderCurve* vtkLagrangeTriangle::GetEdgeCell()
 {
   return EdgeCell;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkLagrangeTriangle.h b/Common/DataModel/vtkLagrangeTriangle.h
index a19e110d612f766dfbd21ca4c0a208ef611f7c5a..5509ec53c9f5d69b8b5b4b3d9c746733f2698035 100644
--- a/Common/DataModel/vtkLagrangeTriangle.h
+++ b/Common/DataModel/vtkLagrangeTriangle.h
@@ -36,6 +36,7 @@
 
 #include <vector> // For caching
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkLagrangeCurve;
 class vtkTriangle;
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkLagrangeTriangle&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkLagrangeWedge.cxx b/Common/DataModel/vtkLagrangeWedge.cxx
index 5b068d4eaf9d3f07a4f50e064c62edac7ddb1c38..6a6dabaac45261d0b7682a7e4768061f9be554d7 100644
--- a/Common/DataModel/vtkLagrangeWedge.cxx
+++ b/Common/DataModel/vtkLagrangeWedge.cxx
@@ -32,6 +32,7 @@
 #include "vtkVectorOperators.h"
 #include "vtkWedge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLagrangeWedge);
 
 vtkLagrangeWedge::vtkLagrangeWedge() = default;
@@ -119,3 +120,4 @@ vtkHigherOrderInterpolation* vtkLagrangeWedge::GetInterpolation()
 {
   return Interp;
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkLagrangeWedge.h b/Common/DataModel/vtkLagrangeWedge.h
index f15b1b3eea435e1a884c4501bb46f10445318fc6..6e08068e765ce7bc32fc36b5d4bc0d3825981bc4 100644
--- a/Common/DataModel/vtkLagrangeWedge.h
+++ b/Common/DataModel/vtkLagrangeWedge.h
@@ -40,6 +40,7 @@
 #include "vtkNew.h"          // For member variable.
 #include "vtkSmartPointer.h" // For member variable.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDoubleArray;
 class vtkWedge;
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkLagrangeWedge&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLagrangeWedge_h
diff --git a/Common/DataModel/vtkLine.cxx b/Common/DataModel/vtkLine.cxx
index 97d4855acde62b232c736a1469710d812401d115..375e332e9918d71acbc196fbcfbc04f39544607d 100644
--- a/Common/DataModel/vtkLine.cxx
+++ b/Common/DataModel/vtkLine.cxx
@@ -24,6 +24,7 @@
 #include "vtkPointData.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLine);
 
 //------------------------------------------------------------------------------
@@ -843,3 +844,4 @@ void vtkLine::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkLine.h b/Common/DataModel/vtkLine.h
index 82500eafc6a00bb0301e6d224758b308ad0023f6..ae5b30bfb1e26cfb0fffc755baa6632d25ec8078 100644
--- a/Common/DataModel/vtkLine.h
+++ b/Common/DataModel/vtkLine.h
@@ -24,6 +24,8 @@
 
 #include "vtkCell.h"
 #include "vtkCommonDataModelModule.h" // For export macro
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkLine : public vtkCell
@@ -198,4 +200,5 @@ inline int vtkLine::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkLocator.cxx b/Common/DataModel/vtkLocator.cxx
index 339f52a67a465a8a3cc9437a214d58d09c0cfbc1..16eaf1c0c6374bba950545aba2922c47078dc8c8 100644
--- a/Common/DataModel/vtkLocator.cxx
+++ b/Common/DataModel/vtkLocator.cxx
@@ -17,6 +17,7 @@
 #include "vtkDataSet.h"
 #include "vtkGarbageCollector.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkCxxSetObjectMacro(vtkLocator, DataSet, vtkDataSet);
 
@@ -88,3 +89,4 @@ void vtkLocator::ReportReferences(vtkGarbageCollector* collector)
   this->Superclass::ReportReferences(collector);
   vtkGarbageCollectorReport(collector, this->DataSet, "DataSet");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkLocator.h b/Common/DataModel/vtkLocator.h
index be6200d1cf0cdd4febf6f790bf5e57df48fdecbf..5b2a8f92a5f106f58218893439c25c7440eb772d 100644
--- a/Common/DataModel/vtkLocator.h
+++ b/Common/DataModel/vtkLocator.h
@@ -63,6 +63,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkPolyData;
 
@@ -218,4 +219,5 @@ private:
   void operator=(const vtkLocator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkMappedUnstructuredGrid.h b/Common/DataModel/vtkMappedUnstructuredGrid.h
index 48e7f4380cfaff7a160679fc988f3b905b8dc7b1..ef3bc81c381ea5eb78fcb92d91fbc45e05b48ffd 100644
--- a/Common/DataModel/vtkMappedUnstructuredGrid.h
+++ b/Common/DataModel/vtkMappedUnstructuredGrid.h
@@ -146,6 +146,7 @@
 #include "vtkNew.h"                                // For vtkNew
 #include "vtkSmartPointer.h"                       // For vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class Implementation,
   class CellIterator = vtkMappedUnstructuredGridCellIterator<Implementation>>
 class vtkMappedUnstructuredGrid : public vtkUnstructuredGridBase
@@ -200,6 +201,7 @@ private:
   vtkNew<vtkGenericCell> TempCell;
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkMappedUnstructuredGrid.txx"
 
 // We need to fake the superclass for the wrappers, otherwise they will choke on
diff --git a/Common/DataModel/vtkMappedUnstructuredGrid.txx b/Common/DataModel/vtkMappedUnstructuredGrid.txx
index a627d0a60dcfd9f5453104dfffe027d8d9c56c38..f022473af05d0c745ad831c012a8f82a2a46c498 100644
--- a/Common/DataModel/vtkMappedUnstructuredGrid.txx
+++ b/Common/DataModel/vtkMappedUnstructuredGrid.txx
@@ -19,6 +19,7 @@
 #include <algorithm>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <class Implementation, class CellIterator>
 void vtkMappedUnstructuredGrid<Implementation, CellIterator>::PrintSelf(
   ostream& os, vtkIndent indent)
@@ -226,3 +227,4 @@ Implementation* vtkMappedUnstructuredGrid<Implementation, CellIterator>::GetImpl
 {
   return this->Impl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkMappedUnstructuredGridCellIterator.h b/Common/DataModel/vtkMappedUnstructuredGridCellIterator.h
index d97bd08eddd6d99137c2ba2dbc54b0ebd93a6209..bb1152d61a203a17ed3dc69e438768572e67d473 100644
--- a/Common/DataModel/vtkMappedUnstructuredGridCellIterator.h
+++ b/Common/DataModel/vtkMappedUnstructuredGridCellIterator.h
@@ -30,6 +30,7 @@
 #include "vtkCellIterator.h"
 #include "vtkSmartPointer.h" // For vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class Implementation, class CellIterator>
 class vtkMappedUnstructuredGrid;
 
@@ -68,6 +69,7 @@ private:
   vtkIdType NumberOfCells;
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkMappedUnstructuredGridCellIterator.txx" // template implementations
 
 #endif // vtkMappedUnstructuredGridCellIterator_h
diff --git a/Common/DataModel/vtkMappedUnstructuredGridCellIterator.txx b/Common/DataModel/vtkMappedUnstructuredGridCellIterator.txx
index 62baddfdc427248145c36c2953bbd4824bf72e8e..a134ec43fdc3c75f73ae93aae75df932f58d79ab 100644
--- a/Common/DataModel/vtkMappedUnstructuredGridCellIterator.txx
+++ b/Common/DataModel/vtkMappedUnstructuredGridCellIterator.txx
@@ -20,6 +20,7 @@
 #include "vtkPoints.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <class Implementation>
 vtkMappedUnstructuredGridCellIterator<Implementation>*
 vtkMappedUnstructuredGridCellIterator<Implementation>::New()
@@ -132,3 +133,4 @@ void vtkMappedUnstructuredGridCellIterator<Implementation>::SetMappedUnstructure
     this->Points->SetDataType(this->GridPoints->GetDataType());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkMarchingCubesPolygonCases.cxx b/Common/DataModel/vtkMarchingCubesPolygonCases.cxx
index 12258de9edb721dc1a217892a645e461d6437ba5..4e23f9128ee8468a4c7e28b911ec5c462fe4fbd8 100644
--- a/Common/DataModel/vtkMarchingCubesPolygonCases.cxx
+++ b/Common/DataModel/vtkMarchingCubesPolygonCases.cxx
@@ -285,7 +285,9 @@ static vtkMarchingCubesPolygonCases VTK_MARCHING_CUBES_POLYGONCASES[] = {
   { { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 } }  // 255 0
 };
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkMarchingCubesPolygonCases* vtkMarchingCubesPolygonCases::GetCases()
 {
   return VTK_MARCHING_CUBES_POLYGONCASES;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkMarchingCubesPolygonCases.h b/Common/DataModel/vtkMarchingCubesPolygonCases.h
index 78a08ac3fdd86cc35df09396d7eac9d0c1dc0938..4e9c6457cd983954f4e72a1f4da8bd3ca8a7f420 100644
--- a/Common/DataModel/vtkMarchingCubesPolygonCases.h
+++ b/Common/DataModel/vtkMarchingCubesPolygonCases.h
@@ -20,12 +20,14 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkSystemIncludes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 struct VTKCOMMONDATAMODEL_EXPORT vtkMarchingCubesPolygonCases
 {
   int edges[17];
   static vtkMarchingCubesPolygonCases* GetCases();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkMarchingCubesPolygonCases.h
diff --git a/Common/DataModel/vtkMarchingCubesTriangleCases.cxx b/Common/DataModel/vtkMarchingCubesTriangleCases.cxx
index 70b5e18700b12cbe08b4e86a278f4accd9ad3894..1eab07df8946e4690d643244e0eea011ba946170 100644
--- a/Common/DataModel/vtkMarchingCubesTriangleCases.cxx
+++ b/Common/DataModel/vtkMarchingCubesTriangleCases.cxx
@@ -19,6 +19,7 @@
 // Edges to intersect.  Three at a time form a triangle. Comments at
 // end of line indicate case number (0->255) and base case number (0->15).
 //
+VTK_ABI_NAMESPACE_BEGIN
 static vtkMarchingCubesTriangleCases VTK_MARCHING_CUBES_TRICASES[] = {
   { { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 } }, /* 0 0 */
   { { 0, 3, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 } },    /* 1 1 */
@@ -282,3 +283,4 @@ vtkMarchingCubesTriangleCases* vtkMarchingCubesTriangleCases::GetCases()
 {
   return VTK_MARCHING_CUBES_TRICASES;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkMarchingCubesTriangleCases.h b/Common/DataModel/vtkMarchingCubesTriangleCases.h
index 5f067050af2de8c58887432a995697aa95bb1e6c..df646ebd6f0a6cd8c8281149ce1cde1333e2ee7c 100644
--- a/Common/DataModel/vtkMarchingCubesTriangleCases.h
+++ b/Common/DataModel/vtkMarchingCubesTriangleCases.h
@@ -20,11 +20,13 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkSystemIncludes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 struct VTKCOMMONDATAMODEL_EXPORT vtkMarchingCubesTriangleCases
 {
   int edges[16];
   static vtkMarchingCubesTriangleCases* GetCases();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkMarchingCubesTriangleCases.h
diff --git a/Common/DataModel/vtkMarchingSquaresLineCases.cxx b/Common/DataModel/vtkMarchingSquaresLineCases.cxx
index a8f63ef547c23e204c33ce89bd6ddcb133853a3e..bfa1aa97a837c1b7b14fc176933f3a0f36f56093 100644
--- a/Common/DataModel/vtkMarchingSquaresLineCases.cxx
+++ b/Common/DataModel/vtkMarchingSquaresLineCases.cxx
@@ -17,6 +17,7 @@
 
 // Note: the following code is placed here to deal with cross-library
 // symbol export and import on Microsoft compilers.
+VTK_ABI_NAMESPACE_BEGIN
 static vtkMarchingSquaresLineCases VTK_MARCHING_SQUARES_LINECASES[] = {
   { { -1, -1, -1, -1, -1 } },
   { { 0, 3, -1, -1, -1 } },
@@ -40,3 +41,4 @@ vtkMarchingSquaresLineCases* vtkMarchingSquaresLineCases::GetCases()
 {
   return VTK_MARCHING_SQUARES_LINECASES;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkMarchingSquaresLineCases.h b/Common/DataModel/vtkMarchingSquaresLineCases.h
index 5adfa4322d5dba1f14365fd57552cecb27084f11..849dac63cf2c69b15d0dcccb67443bccac476ca0 100644
--- a/Common/DataModel/vtkMarchingSquaresLineCases.h
+++ b/Common/DataModel/vtkMarchingSquaresLineCases.h
@@ -20,11 +20,13 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkSystemIncludes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 struct VTKCOMMONDATAMODEL_EXPORT vtkMarchingSquaresLineCases
 {
   int edges[5];
   static vtkMarchingSquaresLineCases* GetCases();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkMarchingSquaresLineCases.h
diff --git a/Common/DataModel/vtkMeanValueCoordinatesInterpolator.cxx b/Common/DataModel/vtkMeanValueCoordinatesInterpolator.cxx
index 77e8da4cf98beace8322574480d835cd0f8089ee..892d946bff42351c67d3741b880d7b4443387676 100644
--- a/Common/DataModel/vtkMeanValueCoordinatesInterpolator.cxx
+++ b/Common/DataModel/vtkMeanValueCoordinatesInterpolator.cxx
@@ -29,6 +29,7 @@
 #include <numeric>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMeanValueCoordinatesInterpolator);
 
 // Special class that can iterate over different type of triangle representations
@@ -638,3 +639,4 @@ void vtkMeanValueCoordinatesInterpolator::PrintSelf(ostream& os, vtkIndent inden
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkMeanValueCoordinatesInterpolator.h b/Common/DataModel/vtkMeanValueCoordinatesInterpolator.h
index be41be496ffd4d6824eddee465f8a2304bb95111..63e72f860a175110f9ab4389cc70b154355d7ecf 100644
--- a/Common/DataModel/vtkMeanValueCoordinatesInterpolator.h
+++ b/Common/DataModel/vtkMeanValueCoordinatesInterpolator.h
@@ -45,6 +45,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkIdList;
 class vtkCellArray;
@@ -107,4 +108,5 @@ private:
   void operator=(const vtkMeanValueCoordinatesInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkMergePoints.cxx b/Common/DataModel/vtkMergePoints.cxx
index 2af805829e7fcedfabd04ad6e9347ffe6c00b354..f15d1fa5fd12a42de163f9680ec31118fedfa40a 100644
--- a/Common/DataModel/vtkMergePoints.cxx
+++ b/Common/DataModel/vtkMergePoints.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMergePoints);
 
 //------------------------------------------------------------------------------
@@ -170,3 +171,4 @@ void vtkMergePoints::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkMergePoints.h b/Common/DataModel/vtkMergePoints.h
index 5d42b39427988a6be26e7b036df2063cf196b17c..dfbb835d0a59ebeebd5f98dc46e38f1e50e08d72 100644
--- a/Common/DataModel/vtkMergePoints.h
+++ b/Common/DataModel/vtkMergePoints.h
@@ -30,6 +30,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkMergePoints : public vtkPointLocator
 {
 public:
@@ -69,4 +70,5 @@ private:
   void operator=(const vtkMergePoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkMolecule.cxx b/Common/DataModel/vtkMolecule.cxx
index 89277d46a42808584ca3284b79c18a6b240f073e..f3adad64f1d3cddbbf301b2dad774a1f3319ea01 100644
--- a/Common/DataModel/vtkMolecule.cxx
+++ b/Common/DataModel/vtkMolecule.cxx
@@ -34,6 +34,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMolecule);
 
 //------------------------------------------------------------------------------
@@ -828,3 +829,4 @@ unsigned long vtkMolecule::GetActualMemorySize()
   }
   return size;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkMolecule.h b/Common/DataModel/vtkMolecule.h
index 71e34e0c9902a4077e510ed29d092c9d8a6c8608..5b5f5c20069b5924ea18dcc81d6469bd8141a617 100644
--- a/Common/DataModel/vtkMolecule.h
+++ b/Common/DataModel/vtkMolecule.h
@@ -78,6 +78,7 @@
 
 #include "vtkVector.h" // Small templated vector convenience class
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractElectronicData;
 class vtkDataArray;
 class vtkInformation;
@@ -479,4 +480,5 @@ private:
   void operator=(const vtkMolecule&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkMultiBlockDataSet.cxx b/Common/DataModel/vtkMultiBlockDataSet.cxx
index 2a42d71c2d44c9eda72902cd366068ebd2e7377e..e04c19ca2186becf5c0eed26e7847ce5e24fcc5a 100644
--- a/Common/DataModel/vtkMultiBlockDataSet.cxx
+++ b/Common/DataModel/vtkMultiBlockDataSet.cxx
@@ -20,6 +20,7 @@
 #include "vtkPartitionedDataSetCollection.h"
 #include "vtkUniformGridAMR.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMultiBlockDataSet);
 //------------------------------------------------------------------------------
 vtkMultiBlockDataSet::vtkMultiBlockDataSet() = default;
@@ -101,3 +102,4 @@ void vtkMultiBlockDataSet::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkMultiBlockDataSet.h b/Common/DataModel/vtkMultiBlockDataSet.h
index ec872b0b6765fb909c6cfa6dcd7d9e5074e12e82..912289a27423e5f2504c1987b1ea884754aa80f5 100644
--- a/Common/DataModel/vtkMultiBlockDataSet.h
+++ b/Common/DataModel/vtkMultiBlockDataSet.h
@@ -42,6 +42,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataObjectTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkMultiBlockDataSet : public vtkDataObjectTree
 {
 public:
@@ -144,4 +145,5 @@ private:
   void operator=(const vtkMultiBlockDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkMultiPieceDataSet.cxx b/Common/DataModel/vtkMultiPieceDataSet.cxx
index 770156ad8ea92f4dcd9a4c9b8bc9d661028450b2..561b2175ff20650ff6d7db5c860b093723c27a1f 100644
--- a/Common/DataModel/vtkMultiPieceDataSet.cxx
+++ b/Common/DataModel/vtkMultiPieceDataSet.cxx
@@ -18,6 +18,7 @@
 #include "vtkInformationVector.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMultiPieceDataSet);
 //------------------------------------------------------------------------------
 vtkMultiPieceDataSet::vtkMultiPieceDataSet() = default;
@@ -42,3 +43,4 @@ void vtkMultiPieceDataSet::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkMultiPieceDataSet.h b/Common/DataModel/vtkMultiPieceDataSet.h
index a549477d6f51e8eeeb7c7bea26899ba64e2fa7f2..8fee42735db25211be505dc9be5c00e086c6c1fb 100644
--- a/Common/DataModel/vtkMultiPieceDataSet.h
+++ b/Common/DataModel/vtkMultiPieceDataSet.h
@@ -36,6 +36,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkPartitionedDataSet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class VTKCOMMONDATAMODEL_EXPORT vtkMultiPieceDataSet : public vtkPartitionedDataSet
 {
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkMultiPieceDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkMutableDirectedGraph.cxx b/Common/DataModel/vtkMutableDirectedGraph.cxx
index 532232c5e27f83048a9576eecadb9010d0cfe5fe..cf7933a869aba886fcfb7389b89b52cd2212a2ea 100644
--- a/Common/DataModel/vtkMutableDirectedGraph.cxx
+++ b/Common/DataModel/vtkMutableDirectedGraph.cxx
@@ -28,6 +28,7 @@
 //------------------------------------------------------------------------------
 // class vtkMutableDirectedGraph
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMutableDirectedGraph);
 //------------------------------------------------------------------------------
 vtkMutableDirectedGraph::vtkMutableDirectedGraph()
@@ -248,3 +249,4 @@ void vtkMutableDirectedGraph::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkMutableDirectedGraph.h b/Common/DataModel/vtkMutableDirectedGraph.h
index 9c3ff84955de4569badb6f7e46e0750c11f6243f..4b9938c73a17562842b42c627e281a1be978bbc7 100644
--- a/Common/DataModel/vtkMutableDirectedGraph.h
+++ b/Common/DataModel/vtkMutableDirectedGraph.h
@@ -38,6 +38,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDirectedGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEdgeListIterator;
 class vtkGraphEdge;
 class vtkVariant;
@@ -333,4 +334,5 @@ private:
   void operator=(const vtkMutableDirectedGraph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkMutableUndirectedGraph.cxx b/Common/DataModel/vtkMutableUndirectedGraph.cxx
index 7394dad986ff5cae3a783aa861c716f6712aa138..f5ad07812e4fd11f17e5de338f204fce1b515d37 100644
--- a/Common/DataModel/vtkMutableUndirectedGraph.cxx
+++ b/Common/DataModel/vtkMutableUndirectedGraph.cxx
@@ -29,6 +29,7 @@
 //------------------------------------------------------------------------------
 // class vtkMutableUndirectedGraph
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMutableUndirectedGraph);
 //------------------------------------------------------------------------------
 vtkMutableUndirectedGraph::vtkMutableUndirectedGraph()
@@ -249,3 +250,4 @@ void vtkMutableUndirectedGraph::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkMutableUndirectedGraph.h b/Common/DataModel/vtkMutableUndirectedGraph.h
index 874817e8f13e29047bf282449419d2cd23dfc979..a886b068fc909c47e56748d887da3f6fd11116c5 100644
--- a/Common/DataModel/vtkMutableUndirectedGraph.h
+++ b/Common/DataModel/vtkMutableUndirectedGraph.h
@@ -37,6 +37,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkUndirectedGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEdgeListIterator;
 class vtkGraphEdge;
 
@@ -328,4 +329,5 @@ private:
   void operator=(const vtkMutableUndirectedGraph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkNonLinearCell.cxx b/Common/DataModel/vtkNonLinearCell.cxx
index 0dd735d71e94d443494efbf2958584caf600979f..ba7d99d34f01e51e1f0c614817976601d88eb664 100644
--- a/Common/DataModel/vtkNonLinearCell.cxx
+++ b/Common/DataModel/vtkNonLinearCell.cxx
@@ -16,6 +16,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkNonLinearCell::vtkNonLinearCell() = default;
 
 //------------------------------------------------------------------------------
@@ -23,3 +24,4 @@ void vtkNonLinearCell::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkNonLinearCell.h b/Common/DataModel/vtkNonLinearCell.h
index 4d9fc5171dd0150cd04cb7ae17825f5172cb7de8..56d59e7e8dc0ad0a7557000aec2b2b7ff997e4dd 100644
--- a/Common/DataModel/vtkNonLinearCell.h
+++ b/Common/DataModel/vtkNonLinearCell.h
@@ -33,6 +33,7 @@
 #include "vtkCell.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkNonLinearCell : public vtkCell
 {
 public:
@@ -55,4 +56,5 @@ private:
   void operator=(const vtkNonLinearCell&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkNonMergingPointLocator.cxx b/Common/DataModel/vtkNonMergingPointLocator.cxx
index fd4b757c8b49a769f316f3c1efefe3e84ecf2cb7..f5dde6cddb6b8ae5262e992bf0b50d539b041596 100644
--- a/Common/DataModel/vtkNonMergingPointLocator.cxx
+++ b/Common/DataModel/vtkNonMergingPointLocator.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkNonMergingPointLocator);
 
 //------------------------------------------------------------------------------
@@ -31,3 +32,4 @@ void vtkNonMergingPointLocator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkNonMergingPointLocator.h b/Common/DataModel/vtkNonMergingPointLocator.h
index 515d3aa5f46441ac1b3a09614964443b42c6729c..eecc787fa4c8e0efd3e8ba5e4262f2e6c46984a1 100644
--- a/Common/DataModel/vtkNonMergingPointLocator.h
+++ b/Common/DataModel/vtkNonMergingPointLocator.h
@@ -37,6 +37,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkNonMergingPointLocator : public vtkPointLocator
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkNonMergingPointLocator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkNonOverlappingAMR.cxx b/Common/DataModel/vtkNonOverlappingAMR.cxx
index d1a0d75fb3bd61579d064db56606f7cb926184e5..fa4fd96eed85b02172c48c9f2dd02410958ee7d9 100644
--- a/Common/DataModel/vtkNonOverlappingAMR.cxx
+++ b/Common/DataModel/vtkNonOverlappingAMR.cxx
@@ -15,6 +15,7 @@
 #include "vtkNonOverlappingAMR.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkNonOverlappingAMR);
 
 //------------------------------------------------------------------------------
@@ -28,3 +29,4 @@ void vtkNonOverlappingAMR::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkNonOverlappingAMR.h b/Common/DataModel/vtkNonOverlappingAMR.h
index f94815be0bcb6ca75fd5e610c05d7caec90f3440..69094371e7f44fcbeccf3a2ed19107fb1bfccb95 100644
--- a/Common/DataModel/vtkNonOverlappingAMR.h
+++ b/Common/DataModel/vtkNonOverlappingAMR.h
@@ -27,6 +27,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkUniformGridAMR.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkNonOverlappingAMR : public vtkUniformGridAMR
 {
 public:
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkNonOverlappingAMR&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkNonOverlappingAMR_h */
diff --git a/Common/DataModel/vtkOctreePointLocator.cxx b/Common/DataModel/vtkOctreePointLocator.cxx
index 2ad792df833b539a3d4520d18f6410df2e53d137..ed1c787cc8fbe36d26ae0ce69c0862379f982ae1 100644
--- a/Common/DataModel/vtkOctreePointLocator.cxx
+++ b/Common/DataModel/vtkOctreePointLocator.cxx
@@ -36,6 +36,7 @@
 #include <stack>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOctreePointLocator);
 
 // helper class for ordering the points in
@@ -1300,3 +1301,4 @@ void vtkOctreePointLocator::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "MaxWidth: " << this->MaxWidth << endl;
   os << indent << "CreateCubicOctants: " << this->CreateCubicOctants << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkOctreePointLocator.h b/Common/DataModel/vtkOctreePointLocator.h
index 86267110623cac036ce123c913860e17ad04aeec..1c2e12c1cac6a80ec0382562dbc792305b6b002b 100644
--- a/Common/DataModel/vtkOctreePointLocator.h
+++ b/Common/DataModel/vtkOctreePointLocator.h
@@ -40,6 +40,7 @@
 #include "vtkAbstractPointLocator.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkIdTypeArray;
 class vtkOctreePointLocatorNode;
@@ -282,4 +283,5 @@ protected:
   vtkOctreePointLocator(const vtkOctreePointLocator&) = delete;
   void operator=(const vtkOctreePointLocator&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkOctreePointLocatorNode.cxx b/Common/DataModel/vtkOctreePointLocatorNode.cxx
index 1000cc1d799ac2d6247afe6a9eff7a2401151eb3..a3c48ab2118574c82a922237fe7b758eaee92c50 100644
--- a/Common/DataModel/vtkOctreePointLocatorNode.cxx
+++ b/Common/DataModel/vtkOctreePointLocatorNode.cxx
@@ -26,6 +26,7 @@
 #include "vtkPlanesIntersection.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOctreePointLocatorNode);
 
 //------------------------------------------------------------------------------
@@ -631,3 +632,4 @@ void vtkOctreePointLocatorNode::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "MaxDataBounds: " << this->MaxDataBounds[0] << " " << this->MaxDataBounds[1]
      << " " << this->MaxDataBounds[2] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkOctreePointLocatorNode.h b/Common/DataModel/vtkOctreePointLocatorNode.h
index 2cf8f0d7d3080625c21c8d889717621164a13730..ad9ee251bcd6e6b681482355a18365dfe6580c76 100644
--- a/Common/DataModel/vtkOctreePointLocatorNode.h
+++ b/Common/DataModel/vtkOctreePointLocatorNode.h
@@ -40,6 +40,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkPlanesIntersection;
 
@@ -298,4 +299,5 @@ private:
   void operator=(const vtkOctreePointLocatorNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkOrderedTriangulator.cxx b/Common/DataModel/vtkOrderedTriangulator.cxx
index 95c51009ce00c40f28ce383329266bc669ca63ce..8ee659f957ad65ce13a205fe3db1d0d38ba56af8 100644
--- a/Common/DataModel/vtkOrderedTriangulator.cxx
+++ b/Common/DataModel/vtkOrderedTriangulator.cxx
@@ -34,6 +34,7 @@
 #include <stack>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOrderedTriangulator);
 
 #ifdef _WIN32_WCE
@@ -49,12 +50,14 @@ inline void __cdecl operator delete(void*, void*)
 }
 #endif
 #else
+VTK_ABI_NAMESPACE_END
 #include <new>
 #endif
 
 // Classes are used to represent points, faces, and tetras-------------------
 // This data structure consists of points and tetras, with the face used
 // temporarily as a place holder during triangulation.
+VTK_ABI_NAMESPACE_BEGIN
 struct OTPoint;
 struct OTFace;
 struct OTTetra;
@@ -1669,3 +1672,4 @@ void vtkOrderedTriangulator::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "UseTemplates: " << (this->UseTemplates ? "On\n" : "Off\n");
   os << indent << "NumberOfPoints: " << this->NumberOfPoints << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkOrderedTriangulator.h b/Common/DataModel/vtkOrderedTriangulator.h
index b03519b6d47e42a9851487af3862b87912975184..3cc840ff1d8fe95fafeaeac40319062770116f3b 100644
--- a/Common/DataModel/vtkOrderedTriangulator.h
+++ b/Common/DataModel/vtkOrderedTriangulator.h
@@ -88,6 +88,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGrid;
 class vtkCellArray;
 class vtkHeap;
@@ -363,4 +364,5 @@ private:
   void operator=(const vtkOrderedTriangulator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkOutEdgeIterator.cxx b/Common/DataModel/vtkOutEdgeIterator.cxx
index fd8ae1317d1f884091b996fa704d3109f4d3dcfd..bcf835a297211296e984475542561b16d6af1b3d 100644
--- a/Common/DataModel/vtkOutEdgeIterator.cxx
+++ b/Common/DataModel/vtkOutEdgeIterator.cxx
@@ -24,6 +24,7 @@
 #include "vtkGraphEdge.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkOutEdgeIterator, Graph, vtkGraph);
 vtkStandardNewMacro(vtkOutEdgeIterator);
 //------------------------------------------------------------------------------
@@ -84,3 +85,4 @@ void vtkOutEdgeIterator::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "Vertex: " << this->Vertex << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkOutEdgeIterator.h b/Common/DataModel/vtkOutEdgeIterator.h
index 6768feff117f22b4d92c00c2a2e7fe4e368c642f..80f16a0f4ef0043c77a1c72d572da115e88ff031 100644
--- a/Common/DataModel/vtkOutEdgeIterator.h
+++ b/Common/DataModel/vtkOutEdgeIterator.h
@@ -40,6 +40,7 @@
 
 #include "vtkGraph.h" // For edge type definitions
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraphEdge;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkOutEdgeIterator : public vtkObject
@@ -109,4 +110,5 @@ private:
   void operator=(const vtkOutEdgeIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkOverlappingAMR.cxx b/Common/DataModel/vtkOverlappingAMR.cxx
index 4552838ac889ad120df94ff2089fa39e3292d72f..7676819cf0c22453eb7345b4192d4353ac8512a5 100644
--- a/Common/DataModel/vtkOverlappingAMR.cxx
+++ b/Common/DataModel/vtkOverlappingAMR.cxx
@@ -23,6 +23,7 @@
 #include "vtkUnsignedCharArray.h"
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOverlappingAMR);
 
 vtkInformationKeyMacro(vtkOverlappingAMR, NUMBER_OF_BLANKED_POINTS, IdType);
@@ -246,3 +247,4 @@ bool vtkOverlappingAMR::FindGrid(double q[3], unsigned int& level, unsigned int&
 {
   return this->AMRInfo->FindGrid(q, level, gridId);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkOverlappingAMR.h b/Common/DataModel/vtkOverlappingAMR.h
index 48708877d1ae05095f4a58f81fe6810fe0b7ab25..fdada40827d09a5c69f938020a8f6f9ac574743f 100644
--- a/Common/DataModel/vtkOverlappingAMR.h
+++ b/Common/DataModel/vtkOverlappingAMR.h
@@ -31,6 +31,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkUniformGridAMR.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAMRBox;
 class vtkCompositeDataIterator;
 class vtkUniformGrid;
@@ -194,4 +195,5 @@ private:
   void operator=(const vtkOverlappingAMR&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPartitionedDataSet.cxx b/Common/DataModel/vtkPartitionedDataSet.cxx
index affcbf9181494e38703038f2a849e0f8f31df53d..743d2ebf322e5619b18d5c79220671f02ef91d37 100644
--- a/Common/DataModel/vtkPartitionedDataSet.cxx
+++ b/Common/DataModel/vtkPartitionedDataSet.cxx
@@ -19,6 +19,7 @@
 #include "vtkInformationVector.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPartitionedDataSet);
 //------------------------------------------------------------------------------
 vtkPartitionedDataSet::vtkPartitionedDataSet() = default;
@@ -104,3 +105,4 @@ void vtkPartitionedDataSet::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPartitionedDataSet.h b/Common/DataModel/vtkPartitionedDataSet.h
index 19a1e8b32ed28a6a590683b3ff823adcca06cf8e..573111a9a81bbbbbc1560d5652c40772e2f063b5 100644
--- a/Common/DataModel/vtkPartitionedDataSet.h
+++ b/Common/DataModel/vtkPartitionedDataSet.h
@@ -42,6 +42,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataObjectTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class VTKCOMMONDATAMODEL_EXPORT vtkPartitionedDataSet : public vtkDataObjectTree
 {
@@ -139,4 +140,5 @@ private:
   void operator=(const vtkPartitionedDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPartitionedDataSetCollection.cxx b/Common/DataModel/vtkPartitionedDataSetCollection.cxx
index adda5e235b8070ef6a07321d0c6101bdf684e899..ffa94a690a53809b1d0fcd2e9612bf52a6c339ce 100644
--- a/Common/DataModel/vtkPartitionedDataSetCollection.cxx
+++ b/Common/DataModel/vtkPartitionedDataSetCollection.cxx
@@ -27,6 +27,7 @@
 #include <algorithm>
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPartitionedDataSetCollection);
 vtkCxxSetObjectMacro(vtkPartitionedDataSetCollection, DataAssembly, vtkDataAssembly);
 //------------------------------------------------------------------------------
@@ -249,3 +250,4 @@ void vtkPartitionedDataSetCollection::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "DataAssembly: " << this->DataAssembly << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPartitionedDataSetCollection.h b/Common/DataModel/vtkPartitionedDataSetCollection.h
index 2d761910444931f3edd29daedf105841b6726e38..c325a52592a9952dc6c6a54bd95d896204bfdca4 100644
--- a/Common/DataModel/vtkPartitionedDataSetCollection.h
+++ b/Common/DataModel/vtkPartitionedDataSetCollection.h
@@ -30,6 +30,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataObjectTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPartitionedDataSet;
 class vtkDataAssembly;
 class vtkDataSet;
@@ -186,4 +187,5 @@ private:
   vtkDataAssembly* DataAssembly;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPath.cxx b/Common/DataModel/vtkPath.cxx
index a603d7d77e83a56403556e4218b877b00d5d4bb5..31397ba43ebe7ea544525cd0b00f5a9f39547c69 100644
--- a/Common/DataModel/vtkPath.cxx
+++ b/Common/DataModel/vtkPath.cxx
@@ -26,6 +26,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPath);
 
 //------------------------------------------------------------------------------
@@ -129,3 +130,4 @@ vtkIntArray* vtkPath::GetCodes()
 {
   return vtkArrayDownCast<vtkIntArray>(this->PointData->GetScalars());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPath.h b/Common/DataModel/vtkPath.h
index 10cc484b5fb5ef36f2d6502e5be338641dec9017..cb75ecff2737cdba4559c8deb62b77c70a71930b 100644
--- a/Common/DataModel/vtkPath.h
+++ b/Common/DataModel/vtkPath.h
@@ -27,6 +27,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkPointSet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIntArray;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkPath : public vtkPointSet
@@ -134,4 +135,5 @@ private:
   void operator=(const vtkPath&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPentagonalPrism.cxx b/Common/DataModel/vtkPentagonalPrism.cxx
index 60a898022866e23191aa93bac829a242cfd20f3b..370390e5207452eb0672bf79772d63a8c83e198d 100644
--- a/Common/DataModel/vtkPentagonalPrism.cxx
+++ b/Common/DataModel/vtkPentagonalPrism.cxx
@@ -39,6 +39,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPentagonalPrism);
 
 static const double VTK_DIVERGED = 1.e6;
@@ -1154,3 +1155,4 @@ void vtkPentagonalPrism::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Polygon:\n";
   this->Polygon->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPentagonalPrism.h b/Common/DataModel/vtkPentagonalPrism.h
index b83230b5144b586dafb9dfb255176320768c8cdd..96666a4a494daaae7751620cc7faa83f63ccf127 100644
--- a/Common/DataModel/vtkPentagonalPrism.h
+++ b/Common/DataModel/vtkPentagonalPrism.h
@@ -45,6 +45,7 @@
 #include "vtkCell3D.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkPolygon;
 class vtkQuad;
@@ -217,4 +218,5 @@ inline int vtkPentagonalPrism::GetParametricCenter(double pcoords[3])
 
   return 0;
 }
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPeriodicDataArray.h b/Common/DataModel/vtkPeriodicDataArray.h
index c81a7422d6480559495edd04f4d5d6e7b6e89171..d85c813fefeaa08a8a6e88cc61a25b1d35f3b2da 100644
--- a/Common/DataModel/vtkPeriodicDataArray.h
+++ b/Common/DataModel/vtkPeriodicDataArray.h
@@ -32,6 +32,7 @@
 #include "vtkAOSDataArrayTemplate.h" // Template
 #include "vtkGenericDataArray.h"     // Parent
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class Scalar>
 class vtkPeriodicDataArray : public vtkGenericDataArray<vtkPeriodicDataArray<Scalar>, Scalar>
 {
@@ -383,6 +384,7 @@ private:
   double PeriodicFiniteRange[6]; // Transformed periodic finite range
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkPeriodicDataArray.txx"
 
 #endif // vtkPeriodicDataArray_h
diff --git a/Common/DataModel/vtkPeriodicDataArray.txx b/Common/DataModel/vtkPeriodicDataArray.txx
index d7fcce049480e8d7d891ceee5495c6dcefd6ee1d..2914f1d38704ae43eaab3742b2413b1803c439db 100644
--- a/Common/DataModel/vtkPeriodicDataArray.txx
+++ b/Common/DataModel/vtkPeriodicDataArray.txx
@@ -18,6 +18,7 @@
 #include "vtkVariant.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <class Scalar>
 void vtkPeriodicDataArray<Scalar>::PrintSelf(ostream& os, vtkIndent indent)
 {
@@ -718,3 +719,4 @@ vtkPeriodicDataArray<Scalar>::~vtkPeriodicDataArray()
 {
   this->Initialize();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPerlinNoise.cxx b/Common/DataModel/vtkPerlinNoise.cxx
index fa454989e8c466c7db71cea3567cca940e51b6ad..6dc7961ba19215ccadf71ad5f41d1144d4ff3274 100644
--- a/Common/DataModel/vtkPerlinNoise.cxx
+++ b/Common/DataModel/vtkPerlinNoise.cxx
@@ -17,6 +17,7 @@
 #include <cassert>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPerlinNoise);
 
 // These functions are from Greg Ward's recursive implementation in
@@ -137,3 +138,4 @@ void vtkPerlinNoise::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Phase: (" << this->Phase[0] << ", " << this->Phase[1] << ", " << this->Phase[2]
      << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPerlinNoise.h b/Common/DataModel/vtkPerlinNoise.h
index 1b18d94b32939d5c5e5295d0a75df2d4ce047245..69020b4c77568b3851f9d356db9d9ff8e4ef4ac7 100644
--- a/Common/DataModel/vtkPerlinNoise.h
+++ b/Common/DataModel/vtkPerlinNoise.h
@@ -35,6 +35,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkPerlinNoise : public vtkImplicitFunction
 {
 public:
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkPerlinNoise&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPiecewiseFunction.cxx b/Common/DataModel/vtkPiecewiseFunction.cxx
index ae3bf0034d827a7deace69cc4d8021ef9941e099..a5442e8bd74f99af87fcbcefd4aba96e753651f8 100644
--- a/Common/DataModel/vtkPiecewiseFunction.cxx
+++ b/Common/DataModel/vtkPiecewiseFunction.cxx
@@ -26,6 +26,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPiecewiseFunction);
 
 // The Node structure
@@ -1010,3 +1011,4 @@ void vtkPiecewiseFunction::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "AllowDuplicateScalars: " << this->AllowDuplicateScalars << endl;
   os << indent << "UseLogScale: " << this->UseLogScale << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPiecewiseFunction.h b/Common/DataModel/vtkPiecewiseFunction.h
index 7db685e153c666863e374a8505525ddae3c17788..71e90d872a019d41fec5050b4921b679c886d26a 100644
--- a/Common/DataModel/vtkPiecewiseFunction.h
+++ b/Common/DataModel/vtkPiecewiseFunction.h
@@ -40,6 +40,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPiecewiseFunctionInternals;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkPiecewiseFunction : public vtkDataObject
@@ -283,4 +284,5 @@ private:
   void operator=(const vtkPiecewiseFunction&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPixel.cxx b/Common/DataModel/vtkPixel.cxx
index af03e3def7d5fe47967df1bc383f07db028591ba..0c0803e734600d6615119a83d9ea797585804e27 100644
--- a/Common/DataModel/vtkPixel.cxx
+++ b/Common/DataModel/vtkPixel.cxx
@@ -31,6 +31,7 @@
 #include <algorithm>
 #include <array>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPixel);
 
 //------------------------------------------------------------------------------
@@ -295,8 +296,10 @@ int vtkPixel::CellBoundary(int vtkNotUsed(subId), const double pcoords[3], vtkId
 //
 // Marching squares
 //
+VTK_ABI_NAMESPACE_END
 #include "vtkMarchingSquaresLineCases.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 static int edges[4][2] = { { 0, 1 }, { 1, 3 }, { 2, 3 }, { 0, 2 } };
 
 void vtkPixel::Contour(double value, vtkDataArray* cellScalars, vtkIncrementalPointLocator* locator,
@@ -800,3 +803,4 @@ void vtkPixel::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Line:\n";
   this->Line->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPixel.h b/Common/DataModel/vtkPixel.h
index b4d1820a8d30e531c840409bf12a4f86bb97b788..d45fdc4ec19451cdd0e21247d12715608a569e78 100644
--- a/Common/DataModel/vtkPixel.h
+++ b/Common/DataModel/vtkPixel.h
@@ -28,6 +28,7 @@
 #include "vtkCell.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkIncrementalPointLocator;
 
@@ -134,4 +135,5 @@ inline int vtkPixel::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPixelExtent.cxx b/Common/DataModel/vtkPixelExtent.cxx
index 78e26923c6f6ac7345fb2f3928759f8c88692d52..c45245e06c0ee53e7d753edb65d80bb5b5b2d86d 100644
--- a/Common/DataModel/vtkPixelExtent.cxx
+++ b/Common/DataModel/vtkPixelExtent.cxx
@@ -18,6 +18,7 @@ using std::deque;
 using std::ostream;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkPixelExtent vtkPixelExtent::Grow(
   const vtkPixelExtent& inputExt, const vtkPixelExtent& problemDomain, int n)
 {
@@ -315,3 +316,4 @@ ostream& operator<<(ostream& os, const vtkPixelExtent& ext)
   }
   return os;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPixelExtent.h b/Common/DataModel/vtkPixelExtent.h
index a65de1e2f2a4afd275187fefd44b8605d662f78b..89ff9d50d5da6259d61db11e601917c4263efd69 100644
--- a/Common/DataModel/vtkPixelExtent.h
+++ b/Common/DataModel/vtkPixelExtent.h
@@ -35,6 +35,7 @@
 #include <deque>     // for inline impl
 #include <iostream>  // for inline impl
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkPixelExtent
 {
 public:
@@ -632,5 +633,6 @@ inline bool operator<(const vtkPixelExtent& l, const vtkPixelExtent& r)
   return l.Size() < r.Size();
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkPixelExtent.h
diff --git a/Common/DataModel/vtkPixelTransfer.cxx b/Common/DataModel/vtkPixelTransfer.cxx
index 32b99a73c9e671b89bf8c96a37949f5c3197dd8f..36b3dbcea4014309f75bf570fed7801a0f25c0cc 100644
--- a/Common/DataModel/vtkPixelTransfer.cxx
+++ b/Common/DataModel/vtkPixelTransfer.cxx
@@ -1,6 +1,7 @@
 #include "vtkPixelTransfer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 int vtkPixelTransfer::Blit(const vtkPixelExtent& srcWholeExt, const vtkPixelExtent& srcExt,
   const vtkPixelExtent& destWholeExt, const vtkPixelExtent& destExt, int nSrcComps, int srcType,
   void* srcData, int nDestComps, int destType, void* destData)
@@ -13,3 +14,4 @@ int vtkPixelTransfer::Blit(const vtkPixelExtent& srcWholeExt, const vtkPixelExte
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPixelTransfer.h b/Common/DataModel/vtkPixelTransfer.h
index 2335c7bd170a432d8f4613c9e3a62d32e4044150..169bc690c7771381d56611d8806114fb20cad022 100644
--- a/Common/DataModel/vtkPixelTransfer.h
+++ b/Common/DataModel/vtkPixelTransfer.h
@@ -33,6 +33,7 @@
 #include "vtkSetGet.h"                // for macros
 #include <cstring>                    // for memcpy
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkPixelTransfer
 {
 public:
@@ -162,5 +163,6 @@ int vtkPixelTransfer::Blit(const vtkPixelExtent& srcWholeExt, const vtkPixelExte
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkPixelTransfer.h
diff --git a/Common/DataModel/vtkPlane.cxx b/Common/DataModel/vtkPlane.cxx
index becf886c7ae103041568ce7a4af971835fddfd4e..0d6c7518d6799c18f2c737e64d83573f37430d9c 100644
--- a/Common/DataModel/vtkPlane.cxx
+++ b/Common/DataModel/vtkPlane.cxx
@@ -26,6 +26,7 @@
 #include <algorithm>
 #include <array>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlane);
 
 //------------------------------------------------------------------------------
@@ -628,3 +629,4 @@ void vtkPlane::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Origin: (" << this->Origin[0] << ", " << this->Origin[1] << ", "
      << this->Origin[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPlane.h b/Common/DataModel/vtkPlane.h
index 696137b2c382619e124574342f6011b24021b316..c4790c9c894e86215200c082f45b632220d67dac 100644
--- a/Common/DataModel/vtkPlane.h
+++ b/Common/DataModel/vtkPlane.h
@@ -28,6 +28,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints; // forward declaration
 
 class VTKCOMMONDATAMODEL_EXPORT vtkPlane : public vtkImplicitFunction
@@ -193,4 +194,5 @@ inline double vtkPlane::DistanceToPlane(double x[3], double n[3], double p0[3])
   return (vtkPlaneAbs(n[0] * (x[0] - p0[0]) + n[1] * (x[1] - p0[1]) + n[2] * (x[2] - p0[2])));
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPlaneCollection.cxx b/Common/DataModel/vtkPlaneCollection.cxx
index 41ea69e3e52b18a482c78f01fd865c44d6a0cc07..d6f988f6f7ce26369f93d2465518540d12606bc6 100644
--- a/Common/DataModel/vtkPlaneCollection.cxx
+++ b/Common/DataModel/vtkPlaneCollection.cxx
@@ -15,6 +15,7 @@
 #include "vtkPlaneCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlaneCollection);
 
 void vtkPlaneCollection::PrintSelf(ostream& os, vtkIndent indent)
@@ -26,3 +27,4 @@ vtkPlane* vtkPlaneCollection::GetNextPlane(vtkCollectionSimpleIterator& cookie)
 {
   return static_cast<vtkPlane*>(this->GetNextItemAsObject(cookie));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPlaneCollection.h b/Common/DataModel/vtkPlaneCollection.h
index 33141045872760a5ef855c826e7fec6797c69266..ca8f23043e0927e86293e17a517a9d36c6e8a676 100644
--- a/Common/DataModel/vtkPlaneCollection.h
+++ b/Common/DataModel/vtkPlaneCollection.h
@@ -30,6 +30,7 @@
 
 #include "vtkPlane.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkPlaneCollection : public vtkCollection
 {
 public:
@@ -81,4 +82,5 @@ inline vtkPlane* vtkPlaneCollection::GetNextItem()
   return static_cast<vtkPlane*>(this->GetNextItemAsObject());
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPlanes.cxx b/Common/DataModel/vtkPlanes.cxx
index e5a88809604009c2207b708b8ba4d75f915b31d8..dca8209ac9d32594e834dcfcfa37a2f053cde956 100644
--- a/Common/DataModel/vtkPlanes.cxx
+++ b/Common/DataModel/vtkPlanes.cxx
@@ -21,6 +21,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlanes);
 vtkCxxSetObjectMacro(vtkPlanes, Points, vtkPoints);
 
@@ -377,3 +378,4 @@ void vtkPlanes::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Normals: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPlanes.h b/Common/DataModel/vtkPlanes.h
index 6bd732251397ef9848222aeded445c5701ce9e59..974057dc16fd24c65c734350070117dbc196dd8a 100644
--- a/Common/DataModel/vtkPlanes.h
+++ b/Common/DataModel/vtkPlanes.h
@@ -42,6 +42,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlane;
 class vtkPoints;
 class vtkDataArray;
@@ -142,4 +143,5 @@ private:
   void operator=(const vtkPlanes&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPlanesIntersection.cxx b/Common/DataModel/vtkPlanesIntersection.cxx
index 74648f51c21a26db84fddfe63179ab6536a49025..211716b1d9caf63c3e01a7a00ee1671b31bab56a 100644
--- a/Common/DataModel/vtkPlanesIntersection.cxx
+++ b/Common/DataModel/vtkPlanesIntersection.cxx
@@ -24,6 +24,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointsProjectedHull.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlanesIntersection);
 
 // Experiment shows that we get plane equation values on the
@@ -900,3 +901,4 @@ void vtkPlanesIntersection::PrintSelf(ostream& os, vtkIndent indent)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPlanesIntersection.h b/Common/DataModel/vtkPlanesIntersection.h
index acd75f7336bbc03504db4544b30c73c5198d1a54..aed1f495937a2cbcb8c9409dc17de8ecb998ecbe 100644
--- a/Common/DataModel/vtkPlanesIntersection.h
+++ b/Common/DataModel/vtkPlanesIntersection.h
@@ -45,6 +45,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkPlanes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkPointsProjectedHull;
 class vtkCell;
@@ -131,4 +132,5 @@ private:
   vtkPlanesIntersection(const vtkPlanesIntersection&) = delete;
   void operator=(const vtkPlanesIntersection&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPointData.cxx b/Common/DataModel/vtkPointData.cxx
index a233eac927115b770882d4f035d51ffcf6027909..c5ecf61afd727e591e438e29a0aed74996919b75 100644
--- a/Common/DataModel/vtkPointData.cxx
+++ b/Common/DataModel/vtkPointData.cxx
@@ -17,6 +17,7 @@
 #include "vtkDataSetAttributes.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointData);
 vtkStandardExtendedNewMacro(vtkPointData);
 
@@ -31,3 +32,4 @@ void vtkPointData::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPointData.h b/Common/DataModel/vtkPointData.h
index 3cc97761d9533ad30e22c4ae9f944c773b7083da..c842b18d8ad9c932e1b7a7d261de3eb04b06aec4 100644
--- a/Common/DataModel/vtkPointData.h
+++ b/Common/DataModel/vtkPointData.h
@@ -31,6 +31,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataSetAttributes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkPointData : public vtkDataSetAttributes
 {
 public:
@@ -49,4 +50,5 @@ private:
   void operator=(const vtkPointData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPointLocator.cxx b/Common/DataModel/vtkPointLocator.cxx
index ebf4ed52a9155ab8c9fb2f66c11685174b8f2860..6a05a57a15bf580ddefe8e7495c561f31da631e1 100644
--- a/Common/DataModel/vtkPointLocator.cxx
+++ b/Common/DataModel/vtkPointLocator.cxx
@@ -24,6 +24,7 @@
 
 #include <algorithm> //std::sort
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointLocator);
 
 static const int VTK_INITIAL_SIZE = 1000;
@@ -1732,3 +1733,4 @@ void vtkPointLocator::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Points: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPointLocator.h b/Common/DataModel/vtkPointLocator.h
index 28a3c543c37c113c6daba781a1286c729f565260..69c5995a0b2e281bb1597a7155fa32fa9e395a0d 100644
--- a/Common/DataModel/vtkPointLocator.h
+++ b/Common/DataModel/vtkPointLocator.h
@@ -49,6 +49,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkIncrementalPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkIdList;
 class vtkNeighborPoints;
@@ -302,4 +303,5 @@ private:
   void operator=(const vtkPointLocator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPointSet.cxx b/Common/DataModel/vtkPointSet.cxx
index eb375f2322d23f754e763c9c48b5ebab47721117..3aab486a2c38fc49a6ee0b2673baced31da003f8 100644
--- a/Common/DataModel/vtkPointSet.cxx
+++ b/Common/DataModel/vtkPointSet.cxx
@@ -30,6 +30,7 @@
 
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointSet);
 vtkStandardExtendedNewMacro(vtkPointSet);
 
@@ -356,3 +357,4 @@ void vtkPointSet::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "PointLocator: " << this->PointLocator << "\n";
   os << indent << "CellLocator: " << this->CellLocator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPointSet.h b/Common/DataModel/vtkPointSet.h
index fde27d356beed6917e6b03eb5600fa7f50e545fb..5d858a89736ebe2233f4c859620080a64ce7e44d 100644
--- a/Common/DataModel/vtkPointSet.h
+++ b/Common/DataModel/vtkPointSet.h
@@ -60,6 +60,7 @@
 #include "vtkGenericCell.h" // For GetCell
 #include "vtkPoints.h"      // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 class vtkAbstractCellLocator;
 
@@ -295,4 +296,5 @@ inline vtkIdType vtkPointSet::GetNumberOfPoints()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPointSetCellIterator.cxx b/Common/DataModel/vtkPointSetCellIterator.cxx
index ea1d3f073fd47bccc317fa7bac258a524d7b70f2..7d98f1b4a9ab67e6eed595c1731fca4368d39ea2 100644
--- a/Common/DataModel/vtkPointSetCellIterator.cxx
+++ b/Common/DataModel/vtkPointSetCellIterator.cxx
@@ -20,6 +20,7 @@
 #include "vtkPointSet.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointSetCellIterator);
 
 //------------------------------------------------------------------------------
@@ -94,3 +95,4 @@ void vtkPointSetCellIterator::FetchPoints()
   vtkIdList* pointIds = this->GetPointIds();
   this->PointSetPoints->GetPoints(pointIds, this->Points);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPointSetCellIterator.h b/Common/DataModel/vtkPointSetCellIterator.h
index 41c7df07c2267819f7b6c2157d0aced48ff1976b..4678bee2f019b8a387809275eebfc57a5e18643e 100644
--- a/Common/DataModel/vtkPointSetCellIterator.h
+++ b/Common/DataModel/vtkPointSetCellIterator.h
@@ -25,6 +25,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkSmartPointer.h"          // For vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkPointSet;
 
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkPointSetCellIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPointSetCellIterator_h
diff --git a/Common/DataModel/vtkPointsProjectedHull.cxx b/Common/DataModel/vtkPointsProjectedHull.cxx
index b44371138f5110f31999d4ee0e01280690d29191..f191f2a4a4606b4ed4d4a751c376dc2f02400ec8 100644
--- a/Common/DataModel/vtkPointsProjectedHull.cxx
+++ b/Common/DataModel/vtkPointsProjectedHull.cxx
@@ -20,6 +20,7 @@
 #include "vtkPointsProjectedHull.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointsProjectedHull);
 
 static const int xdim = 0, ydim = 1, zdim = 2;
@@ -187,6 +188,7 @@ int vtkPointsProjectedHull::RectangleIntersection(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
 //
 // Suppose the points are projected orthogonally in the dir
 // of the positive x, y or z axis.  Compute the points (2 components)
@@ -209,6 +211,7 @@ extern "C"
   int vtkPointsProjectedHullCCW(const void* p1, const void* p2);
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 int vtkPointsProjectedHull::GrahamScanAlgorithm(int dir)
 {
   int horizAxis = 0, vertAxis = 0;
@@ -724,6 +727,7 @@ int vtkPointsProjectedHull::RectangleOutside1DPolygon(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
 
 // The sort functions
 
@@ -772,6 +776,7 @@ extern "C"
   }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkPointsProjectedHull::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
@@ -801,3 +806,4 @@ void vtkPointsProjectedHull::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "HullSize Z: " << this->HullSize[2] << endl;
   os << indent << "HullTime Z: " << this->HullTime[2] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPointsProjectedHull.h b/Common/DataModel/vtkPointsProjectedHull.h
index 2ad1bfedacd890600785648df8f62cef2c1f5961..2a01e133ce80eeb5751c914585745b99210a4369 100644
--- a/Common/DataModel/vtkPointsProjectedHull.h
+++ b/Common/DataModel/vtkPointsProjectedHull.h
@@ -35,6 +35,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkPointsProjectedHull : public vtkPoints
 {
   vtkTypeMacro(vtkPointsProjectedHull, vtkPoints);
@@ -184,4 +185,5 @@ private:
   vtkPointsProjectedHull(const vtkPointsProjectedHull&) = delete;
   void operator=(const vtkPointsProjectedHull&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPolyData.cxx b/Common/DataModel/vtkPolyData.cxx
index 121fa5da6ee67e54817cf8e5c17af29429df264a..8de29b5cb1836a4ca025de9f5ca486be9dce69fb 100644
--- a/Common/DataModel/vtkPolyData.cxx
+++ b/Common/DataModel/vtkPolyData.cxx
@@ -43,14 +43,17 @@
 // vtkPolyDataInternals.h methods:
 namespace vtkPolyData_detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 vtkStandardNewMacro(CellMap);
 
 CellMap::CellMap() = default;
 CellMap::~CellMap() = default;
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtkPolyData_detail
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyData);
 vtkStandardExtendedNewMacro(vtkPolyData);
 
@@ -853,6 +856,8 @@ void vtkPolyData::DeleteCells()
   this->Cells = nullptr;
 }
 
+VTK_ABI_NAMESPACE_END
+
 namespace
 {
 
@@ -888,6 +893,7 @@ struct BuildCellsImpl
 
 } // end anon namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 // Create data structure that allows random access of cells.
 void vtkPolyData::BuildCells()
@@ -2173,3 +2179,4 @@ vtkMTimeType vtkPolyData::GetMTime()
   }
   return time;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPolyData.h b/Common/DataModel/vtkPolyData.h
index 264dc6e1cae06ed257ea764e313ea8d20fb4a5fb..ffea8b47b78b6e204ff4a35ad267aeae213e9d6f 100644
--- a/Common/DataModel/vtkPolyData.h
+++ b/Common/DataModel/vtkPolyData.h
@@ -69,6 +69,7 @@
 #include "vtkCellLinks.h"         // Needed for inline methods
 #include "vtkPolyDataInternals.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVertex;
 class vtkPolyVertex;
 class vtkLine;
@@ -994,4 +995,5 @@ inline void vtkPolyData::GetCellPoints(
   cells->GetCellAtId(tag.GetCellId(), npts, pts, ptIds);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPolyDataCollection.cxx b/Common/DataModel/vtkPolyDataCollection.cxx
index 21d7dec0640b60cc1ecf79a6a28034464a875b15..026f39c11eeff929bf0d78af9ea2160bdd5b7071 100644
--- a/Common/DataModel/vtkPolyDataCollection.cxx
+++ b/Common/DataModel/vtkPolyDataCollection.cxx
@@ -15,6 +15,7 @@
 #include "vtkPolyDataCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataCollection);
 
 //------------------------------------------------------------------------------
@@ -22,3 +23,4 @@ void vtkPolyDataCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPolyDataCollection.h b/Common/DataModel/vtkPolyDataCollection.h
index 896a4017a08e35f805fd4779c175e9975a9d2edc..5068be9fa46b814f3216ff902c352a195517680d 100644
--- a/Common/DataModel/vtkPolyDataCollection.h
+++ b/Common/DataModel/vtkPolyDataCollection.h
@@ -31,6 +31,7 @@
 
 #include "vtkPolyData.h" // Needed for static cast
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkPolyDataCollection : public vtkCollection
 {
 public:
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkPolyDataCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPolyDataInternals.h b/Common/DataModel/vtkPolyDataInternals.h
index d313fa3cd87c5201c568ed6ff364274a99ec7ba2..58149801c0c13936c808384a7d746b224d975779 100644
--- a/Common/DataModel/vtkPolyDataInternals.h
+++ b/Common/DataModel/vtkPolyDataInternals.h
@@ -68,6 +68,7 @@
 
 namespace vtkPolyData_detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 static constexpr vtkTypeUInt64 CELLID_MASK = 0x0fffffffffffffffull;
 static constexpr vtkTypeUInt64 SHIFTED_TYPE_INDEX_MASK = 0xf000000000000000ull;
@@ -302,6 +303,7 @@ private:
   CellMap& operator=(const CellMap&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtkPolyData_detail
 
 #endif // vtkPolyDataInternals.h
diff --git a/Common/DataModel/vtkPolyLine.cxx b/Common/DataModel/vtkPolyLine.cxx
index 1062a3a4624d5287076cfe4ae85223a4eccdb965..cb6e894578b5b9b0dbb8de025b71d6d53ebddb0a 100644
--- a/Common/DataModel/vtkPolyLine.cxx
+++ b/Common/DataModel/vtkPolyLine.cxx
@@ -30,6 +30,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyLine);
 
 //------------------------------------------------------------------------------
@@ -501,3 +502,4 @@ void vtkPolyLine::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Line:\n";
   this->Line->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPolyLine.h b/Common/DataModel/vtkPolyLine.h
index d030e822ef42a1d2537f6a767a1e164619de3b47..583553c3a19c46d322e9e8cf352b41bffd07a447 100644
--- a/Common/DataModel/vtkPolyLine.h
+++ b/Common/DataModel/vtkPolyLine.h
@@ -26,6 +26,7 @@
 #include "vtkCell.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkCellArray;
 class vtkLine;
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkPolyLine&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPolyPlane.cxx b/Common/DataModel/vtkPolyPlane.cxx
index ca56514e9601f881b56ee13f44370417c92e7cda..c515f91408fc2c08508331ac2d46043622cb26ff 100644
--- a/Common/DataModel/vtkPolyPlane.cxx
+++ b/Common/DataModel/vtkPolyPlane.cxx
@@ -22,6 +22,7 @@
 #include "vtkPolyLine.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyPlane);
 vtkCxxSetObjectMacro(vtkPolyPlane, PolyLine, vtkPolyLine);
 
@@ -311,3 +312,4 @@ void vtkPolyPlane::PrintSelf(ostream& os, vtkIndent indent)
     this->Normals->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPolyPlane.h b/Common/DataModel/vtkPolyPlane.h
index f38724ec28bc51073f32fe9af9969b2c668c4950..be3424ca80435e9c9d4e8c5e9173e54eb1f93539 100644
--- a/Common/DataModel/vtkPolyPlane.h
+++ b/Common/DataModel/vtkPolyPlane.h
@@ -32,6 +32,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyLine;
 class vtkDoubleArray;
 
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkPolyPlane&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPolyVertex.cxx b/Common/DataModel/vtkPolyVertex.cxx
index fbbb153f7bb0aa8eadd917cd12144220a90e19ef..5c69d74dff9b6c7490cd94cf117b7039db18ae02 100644
--- a/Common/DataModel/vtkPolyVertex.cxx
+++ b/Common/DataModel/vtkPolyVertex.cxx
@@ -23,6 +23,7 @@
 #include "vtkPoints.h"
 #include "vtkVertex.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyVertex);
 
 //------------------------------------------------------------------------------
@@ -233,3 +234,4 @@ void vtkPolyVertex::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Vertex:\n";
   this->Vertex->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPolyVertex.h b/Common/DataModel/vtkPolyVertex.h
index ae7b3a2afe235540793f78c5ddad201a04e19e7c..a4e8464da880afec6e62e456e456da2af09c1402 100644
--- a/Common/DataModel/vtkPolyVertex.h
+++ b/Common/DataModel/vtkPolyVertex.h
@@ -26,6 +26,7 @@
 #include "vtkCell.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVertex;
 class vtkIncrementalPointLocator;
 
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkPolyVertex&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPolygon.cxx b/Common/DataModel/vtkPolygon.cxx
index 52b5f8fccaaa9e3d021746f1254f8044ea55f0dd..b755cf87010666ec0e7deaadb2779614e19a35db 100644
--- a/Common/DataModel/vtkPolygon.cxx
+++ b/Common/DataModel/vtkPolygon.cxx
@@ -36,6 +36,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolygon);
 
 #define VTK_POLYGON_TOL 1.e-08 // Absolute tolerance for testing near polygon boundary
@@ -2267,3 +2268,4 @@ int vtkPolygon::IntersectConvex2DCells(
     return 0;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPolygon.h b/Common/DataModel/vtkPolygon.h
index 0fb35c97114bfde04fcacc9115aae6c1cfea9045..8d866d8620c9c25ef967482357bbd03432d3e781 100644
--- a/Common/DataModel/vtkPolygon.h
+++ b/Common/DataModel/vtkPolygon.h
@@ -28,6 +28,7 @@
 #include "vtkCell.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkIdTypeArray;
 class vtkLine;
@@ -318,4 +319,5 @@ private:
   void operator=(const vtkPolygon&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPolyhedron.cxx b/Common/DataModel/vtkPolyhedron.cxx
index f19568ddb35de65a28c5ae4e4b47acbbd12e3456..758789010b8ea0275d40a98d66c5c3b98919b50c 100644
--- a/Common/DataModel/vtkPolyhedron.cxx
+++ b/Common/DataModel/vtkPolyhedron.cxx
@@ -41,6 +41,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <unordered_set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyhedron);
 
 // Special typedef
@@ -2493,3 +2494,4 @@ void vtkPolyhedron::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Faces:\n";
   this->GlobalFaces->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPolyhedron.h b/Common/DataModel/vtkPolyhedron.h
index 66d9073e39dfc7ce74ee80015bc281514b2725b5..8c004a445b9f46ed1477b29d221b7e1b83067a06 100644
--- a/Common/DataModel/vtkPolyhedron.h
+++ b/Common/DataModel/vtkPolyhedron.h
@@ -38,6 +38,7 @@
 #include "vtkCell3D.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 class vtkCellArray;
 class vtkTriangle;
@@ -345,4 +346,5 @@ inline int vtkPolyhedron::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkPyramid.cxx b/Common/DataModel/vtkPyramid.cxx
index b67850b6e8626b988d47e8dcb896827f0dd3f178..f446cfd26638a7b0043d6f2a2aefdc82f9e7971a 100644
--- a/Common/DataModel/vtkPyramid.cxx
+++ b/Common/DataModel/vtkPyramid.cxx
@@ -31,6 +31,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPyramid);
 
 namespace
@@ -1073,3 +1074,4 @@ void vtkPyramid::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Quad:\n";
   this->Quad->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkPyramid.h b/Common/DataModel/vtkPyramid.h
index 784e6cc1fd41ad6747aa300da8fef6a24043edbc..f9c26be5faf12fc37315e896fe3dae2aebcab7dd 100644
--- a/Common/DataModel/vtkPyramid.h
+++ b/Common/DataModel/vtkPyramid.h
@@ -34,6 +34,7 @@
 #include "vtkCell3D.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkQuad;
 class vtkTriangle;
@@ -211,4 +212,5 @@ inline int vtkPyramid::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuad.cxx b/Common/DataModel/vtkQuad.cxx
index 0b7bdc7015b3816681d72d7bf3f2dd2947ad4729..5cd8771477fe697410fe04d4becfd8e46fb62edf 100644
--- a/Common/DataModel/vtkQuad.cxx
+++ b/Common/DataModel/vtkQuad.cxx
@@ -25,6 +25,7 @@
 #include "vtkPoints.h"
 #include "vtkTriangle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuad);
 
 static const double VTK_DIVERGED = 1.e6;
@@ -1020,3 +1021,4 @@ void vtkQuad::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Triangle:\n";
   this->Triangle->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuad.h b/Common/DataModel/vtkQuad.h
index 69e45642e468a4eef6e478110c7a694483d5def8..c44bf5894989bba964de375394c2728406317499 100644
--- a/Common/DataModel/vtkQuad.h
+++ b/Common/DataModel/vtkQuad.h
@@ -28,6 +28,7 @@
 #include "vtkCell.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkTriangle;
 class vtkIncrementalPointLocator;
@@ -123,4 +124,5 @@ inline int vtkQuad::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuadraticEdge.cxx b/Common/DataModel/vtkQuadraticEdge.cxx
index 594e39b82143a2cc495d333089432582b27ac842..522eaf2919721be5a400745f8efbec62b16dd7fe 100644
--- a/Common/DataModel/vtkQuadraticEdge.cxx
+++ b/Common/DataModel/vtkQuadraticEdge.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadraticEdge);
 
 //------------------------------------------------------------------------------
@@ -275,3 +276,4 @@ void vtkQuadraticEdge::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Line:\n";
   this->Line->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuadraticEdge.h b/Common/DataModel/vtkQuadraticEdge.h
index 26442c0ef119e460d0d777ce0edc752fdb1c8577..95ee9c96b9e9359acf7af9f311a0387598200b04 100644
--- a/Common/DataModel/vtkQuadraticEdge.h
+++ b/Common/DataModel/vtkQuadraticEdge.h
@@ -34,6 +34,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkDoubleArray;
 
@@ -123,4 +124,5 @@ inline int vtkQuadraticEdge::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuadraticHexahedron.cxx b/Common/DataModel/vtkQuadraticHexahedron.cxx
index ef1a6fe29c151a303175f4417cb59328e6cc7ff0..01be8539b26cd4190bfbe3e338ba0767a5d15980 100644
--- a/Common/DataModel/vtkQuadraticHexahedron.cxx
+++ b/Common/DataModel/vtkQuadraticHexahedron.cxx
@@ -25,6 +25,7 @@
 #include "vtkQuadraticEdge.h"
 #include "vtkQuadraticQuad.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadraticHexahedron);
 
 //------------------------------------------------------------------------------
@@ -992,3 +993,4 @@ void vtkQuadraticHexahedron::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuadraticHexahedron.h b/Common/DataModel/vtkQuadraticHexahedron.h
index 3aa8e776624f6bd2cbf2eda6bc1ced5f7813d1f8..895c2705e87133250e83b3055f44f58094011509 100644
--- a/Common/DataModel/vtkQuadraticHexahedron.h
+++ b/Common/DataModel/vtkQuadraticHexahedron.h
@@ -37,6 +37,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkQuadraticQuad;
 class vtkHexahedron;
@@ -145,4 +146,5 @@ private:
   void operator=(const vtkQuadraticHexahedron&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuadraticLinearQuad.cxx b/Common/DataModel/vtkQuadraticLinearQuad.cxx
index 3a0df9c2fe7cedc00327852f711cebf62f89e2b9..53c2ac278abb7da0fd2d8b4078675958db71380d 100644
--- a/Common/DataModel/vtkQuadraticLinearQuad.cxx
+++ b/Common/DataModel/vtkQuadraticLinearQuad.cxx
@@ -26,6 +26,7 @@
 #include "vtkQuad.h"
 #include "vtkQuadraticEdge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadraticLinearQuad);
 
 //------------------------------------------------------------------------------
@@ -446,3 +447,4 @@ void vtkQuadraticLinearQuad::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuadraticLinearQuad.h b/Common/DataModel/vtkQuadraticLinearQuad.h
index d83d12fd33e72f2b0b4e342266f011470c39a122..cd8d20c4a54b356fe4dd96227991d059bb7a2da3 100644
--- a/Common/DataModel/vtkQuadraticLinearQuad.h
+++ b/Common/DataModel/vtkQuadraticLinearQuad.h
@@ -39,6 +39,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkLine;
 class vtkQuad;
@@ -145,4 +146,5 @@ inline int vtkQuadraticLinearQuad::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuadraticLinearWedge.cxx b/Common/DataModel/vtkQuadraticLinearWedge.cxx
index ec01b926fd4d294f49ffb9a0d884a3d23f816a23..39bb4b00345aa5b4fb27ee3cbc02b534177e3958 100644
--- a/Common/DataModel/vtkQuadraticLinearWedge.cxx
+++ b/Common/DataModel/vtkQuadraticLinearWedge.cxx
@@ -28,6 +28,7 @@
 #include "vtkQuadraticTriangle.h"
 #include "vtkWedge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadraticLinearWedge);
 
 //------------------------------------------------------------------------------
@@ -672,3 +673,4 @@ void vtkQuadraticLinearWedge::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuadraticLinearWedge.h b/Common/DataModel/vtkQuadraticLinearWedge.h
index 4f613a364e03ea51b795af1f92fbcdc4b7bde3a4..f8ce99e79a303abc37955a515623b7ec74a94a87 100644
--- a/Common/DataModel/vtkQuadraticLinearWedge.h
+++ b/Common/DataModel/vtkQuadraticLinearWedge.h
@@ -42,6 +42,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkLine;
 class vtkQuadraticLinearQuad;
@@ -168,4 +169,5 @@ inline int vtkQuadraticLinearWedge::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuadraticPolygon.cxx b/Common/DataModel/vtkQuadraticPolygon.cxx
index 83a2945ef67f7cfcc5f2b1e2411ff998b96b7227..1adc709606325428d1de064dcf69add8c81c5bfc 100644
--- a/Common/DataModel/vtkQuadraticPolygon.cxx
+++ b/Common/DataModel/vtkQuadraticPolygon.cxx
@@ -23,6 +23,7 @@
 #include "vtkPolygon.h"
 #include "vtkQuadraticEdge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadraticPolygon);
 
 //------------------------------------------------------------------------------
@@ -443,3 +444,4 @@ void vtkQuadraticPolygon::Derivatives(int vtkNotUsed(subId), const double vtkNot
   const double* vtkNotUsed(values), int vtkNotUsed(dim), double* vtkNotUsed(derivs))
 {
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuadraticPolygon.h b/Common/DataModel/vtkQuadraticPolygon.h
index 9206051de1598eeed39a7e7a582ab62112c448c4..35fb222f998fa3ae84326adfbbc4549af284b8b2 100644
--- a/Common/DataModel/vtkQuadraticPolygon.h
+++ b/Common/DataModel/vtkQuadraticPolygon.h
@@ -36,6 +36,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkPolygon;
 class vtkIdTypeArray;
@@ -150,4 +151,5 @@ private:
   void operator=(const vtkQuadraticPolygon&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuadraticPyramid.cxx b/Common/DataModel/vtkQuadraticPyramid.cxx
index 8d5d9e5a82ac37cb38b6393dc772ca808d541577..ee69a2ec3f6fa2394a628d324032400b00e23f0f 100644
--- a/Common/DataModel/vtkQuadraticPyramid.cxx
+++ b/Common/DataModel/vtkQuadraticPyramid.cxx
@@ -27,6 +27,7 @@
 #include "vtkQuadraticTriangle.h"
 #include "vtkTetra.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadraticPyramid);
 
 //------------------------------------------------------------------------------
@@ -896,3 +897,4 @@ void vtkQuadraticPyramid::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuadraticPyramid.h b/Common/DataModel/vtkQuadraticPyramid.h
index d6a90e17753af580e66becbaf6417e14a90e0134..92ef054987768b3f0ad8eb5d5f4d15a10a36e7a6 100644
--- a/Common/DataModel/vtkQuadraticPyramid.h
+++ b/Common/DataModel/vtkQuadraticPyramid.h
@@ -42,6 +42,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkQuadraticQuad;
 class vtkQuadraticTriangle;
@@ -185,4 +186,5 @@ inline int vtkQuadraticPyramid::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuadraticQuad.cxx b/Common/DataModel/vtkQuadraticQuad.cxx
index 22caa561f5e75654fade6db4a90f9cfec007b1b3..018b057e7e0b8cb0eae264d4ccb7f05801ba4a46 100644
--- a/Common/DataModel/vtkQuadraticQuad.cxx
+++ b/Common/DataModel/vtkQuadraticQuad.cxx
@@ -23,6 +23,7 @@
 #include "vtkQuad.h"
 #include "vtkQuadraticEdge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadraticQuad);
 
 //------------------------------------------------------------------------------
@@ -581,3 +582,4 @@ void vtkQuadraticQuad::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuadraticQuad.h b/Common/DataModel/vtkQuadraticQuad.h
index 23f070a7695d5909a1dda63fd7c68ab6f79fdfe8..0ecfa89cb9f6d0ab106cb599c0fbedecf13f86c3 100644
--- a/Common/DataModel/vtkQuadraticQuad.h
+++ b/Common/DataModel/vtkQuadraticQuad.h
@@ -36,6 +36,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkQuad;
 class vtkDoubleArray;
@@ -139,4 +140,5 @@ inline int vtkQuadraticQuad::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuadraticTetra.cxx b/Common/DataModel/vtkQuadraticTetra.cxx
index 6e0fda750cd2284b72b033657a21f1d75530f2da..3c0552bddbb63890d1c431168a8710a15b259f38 100644
--- a/Common/DataModel/vtkQuadraticTetra.cxx
+++ b/Common/DataModel/vtkQuadraticTetra.cxx
@@ -23,6 +23,7 @@
 #include "vtkQuadraticTriangle.h"
 #include "vtkTetra.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadraticTetra);
 
 //------------------------------------------------------------------------------
@@ -651,3 +652,4 @@ void vtkQuadraticTetra::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuadraticTetra.h b/Common/DataModel/vtkQuadraticTetra.h
index 38a2446c09b0b152eba117eea57fcd3fa980b505..3832d6eeb4de975c1182e40a8d7dd2d205a2878d 100644
--- a/Common/DataModel/vtkQuadraticTetra.h
+++ b/Common/DataModel/vtkQuadraticTetra.h
@@ -40,6 +40,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkQuadraticTriangle;
 class vtkTetra;
@@ -152,4 +153,5 @@ private:
   void operator=(const vtkQuadraticTetra&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuadraticTriangle.cxx b/Common/DataModel/vtkQuadraticTriangle.cxx
index 597262384064cc326c19115870cfd57834ab3702..cd77c159cfd7f0aaebdd2ed219e3fe9e667d523a 100644
--- a/Common/DataModel/vtkQuadraticTriangle.cxx
+++ b/Common/DataModel/vtkQuadraticTriangle.cxx
@@ -22,6 +22,7 @@
 #include "vtkQuadraticEdge.h"
 #include "vtkTriangle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadraticTriangle);
 
 //------------------------------------------------------------------------------
@@ -441,3 +442,4 @@ void vtkQuadraticTriangle::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuadraticTriangle.h b/Common/DataModel/vtkQuadraticTriangle.h
index 31feb96ae58509ba7549f7bcfc6c38b7381dc08c..0c3fe33a47512fe26c87f592d27debfa77ee4c1b 100644
--- a/Common/DataModel/vtkQuadraticTriangle.h
+++ b/Common/DataModel/vtkQuadraticTriangle.h
@@ -36,6 +36,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkTriangle;
 class vtkDoubleArray;
@@ -136,4 +137,5 @@ inline int vtkQuadraticTriangle::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuadraticWedge.cxx b/Common/DataModel/vtkQuadraticWedge.cxx
index 50a2a76ad4a6e52d952d7aa26133783b9763baa0..2876f91cbcc490b749904cc79e7fbee057ab9f6a 100644
--- a/Common/DataModel/vtkQuadraticWedge.cxx
+++ b/Common/DataModel/vtkQuadraticWedge.cxx
@@ -26,6 +26,7 @@
 #include "vtkQuadraticTriangle.h"
 #include "vtkWedge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadraticWedge);
 
 //------------------------------------------------------------------------------
@@ -768,3 +769,4 @@ void vtkQuadraticWedge::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuadraticWedge.h b/Common/DataModel/vtkQuadraticWedge.h
index daac17590b2998cb2786ad69f85f05e73b909551..b5b2c267a3304b94a57ab8cff5ea3d75bc215721 100644
--- a/Common/DataModel/vtkQuadraticWedge.h
+++ b/Common/DataModel/vtkQuadraticWedge.h
@@ -39,6 +39,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkQuadraticQuad;
 class vtkQuadraticTriangle;
@@ -162,4 +163,5 @@ inline int vtkQuadraticWedge::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuadratureSchemeDefinition.cxx b/Common/DataModel/vtkQuadratureSchemeDefinition.cxx
index bd44bbca7ebe868da2f335d9eb4cc63b657fcb6d..929b77746901c8713f564e42b02c9d6b6ed43b8c 100644
--- a/Common/DataModel/vtkQuadratureSchemeDefinition.cxx
+++ b/Common/DataModel/vtkQuadratureSchemeDefinition.cxx
@@ -26,6 +26,7 @@ using std::ostringstream;
 #include <string>
 using std::string;
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadratureSchemeDefinition);
 
 //------------------------------------------------------------------------------
@@ -481,3 +482,4 @@ int vtkQuadratureSchemeDefinition::RestoreState(vtkXMLDataElement* root)
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuadratureSchemeDefinition.h b/Common/DataModel/vtkQuadratureSchemeDefinition.h
index a5c17c3fd4e6919268d41f7d69c1915f198ee14e..b721c5c0c0252242a86f8813d894cb38c6d6e873 100644
--- a/Common/DataModel/vtkQuadratureSchemeDefinition.h
+++ b/Common/DataModel/vtkQuadratureSchemeDefinition.h
@@ -38,6 +38,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationQuadratureSchemeDefinitionVectorKey;
 class vtkInformationStringKey;
 class vtkXMLDataElement;
@@ -167,4 +168,5 @@ private:
   double* QuadratureWeights;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkQuadric.cxx b/Common/DataModel/vtkQuadric.cxx
index a640bbd3fb04889be8c0563a34eabeb1d5d54057..859de62ff1a7534932eec0db6f0f3581b4d008f1 100644
--- a/Common/DataModel/vtkQuadric.cxx
+++ b/Common/DataModel/vtkQuadric.cxx
@@ -15,6 +15,7 @@
 #include "vtkQuadric.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadric);
 
 // Construct quadric with all coefficients = 1.
@@ -97,3 +98,4 @@ void vtkQuadric::PrintSelf(ostream& os, vtkIndent indent)
      << "\n\ta6: " << this->Coefficients[6] << "\n\ta7: " << this->Coefficients[7]
      << "\n\ta8: " << this->Coefficients[8] << "\n\ta9: " << this->Coefficients[9] << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkQuadric.h b/Common/DataModel/vtkQuadric.h
index abfe969d6e03ad2391d9728c7e14d303ce748439..5ec2723f09ab2670cdf423e5b2be4298feab26d8 100644
--- a/Common/DataModel/vtkQuadric.h
+++ b/Common/DataModel/vtkQuadric.h
@@ -27,6 +27,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkQuadric : public vtkImplicitFunction
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkQuadric&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkRect.h b/Common/DataModel/vtkRect.h
index 146ea87bc168b829143c5c299af24bcd42ac0e6d..64ad775755be306efa04479bd850d7baf9fa827a 100644
--- a/Common/DataModel/vtkRect.h
+++ b/Common/DataModel/vtkRect.h
@@ -31,6 +31,7 @@
 
 #include "vtkMath.h" // for Min, Max
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 class vtkRect : public vtkVector<T, 4>
 {
@@ -360,5 +361,6 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkRect_h
 // VTK-HeaderTest-Exclude: vtkRect.h
diff --git a/Common/DataModel/vtkRectilinearGrid.cxx b/Common/DataModel/vtkRectilinearGrid.cxx
index 54b7ea8069078f1feb199acad41208adab113fe9..9468d336eda9ff81972461a86be3bbc68773db72 100644
--- a/Common/DataModel/vtkRectilinearGrid.cxx
+++ b/Common/DataModel/vtkRectilinearGrid.cxx
@@ -33,6 +33,7 @@
 #include "vtkVertex.h"
 #include "vtkVoxel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearGrid);
 vtkStandardExtendedNewMacro(vtkRectilinearGrid);
 
@@ -1574,3 +1575,4 @@ bool vtkRectilinearGrid::HasAnyBlankCells()
   int cellBlanking = this->CellData->HasAnyGhostBitSet(vtkDataSetAttributes::HIDDENCELL);
   return cellBlanking || this->HasAnyBlankPoints();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkRectilinearGrid.h b/Common/DataModel/vtkRectilinearGrid.h
index d46673aa0f653b8b08e93384de978885d2edd692..ca965c4fee795c526f148aa3684935afe50902a6 100644
--- a/Common/DataModel/vtkRectilinearGrid.h
+++ b/Common/DataModel/vtkRectilinearGrid.h
@@ -41,6 +41,7 @@
 #include "vtkDataSet.h"
 #include "vtkStructuredData.h" // For inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVertex;
 class vtkLine;
 class vtkPixel;
@@ -365,4 +366,5 @@ inline vtkIdType vtkRectilinearGrid::ComputeCellId(int ijk[3])
   return vtkStructuredData::ComputeCellId(this->Dimensions, ijk);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkReebGraph.cxx b/Common/DataModel/vtkReebGraph.cxx
index f4fc2e0e4376e4dc48e5f3dc4ca3b06a218f4079..9279f7587d6595c47d51f07569334d12356e7b3b 100644
--- a/Common/DataModel/vtkReebGraph.cxx
+++ b/Common/DataModel/vtkReebGraph.cxx
@@ -39,6 +39,7 @@
 //------------------------------------------------------------------------------
 // Contain all of the internal data structures, and macros, in the
 // implementation.
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 //------------------------------------------------------------------------------
@@ -3381,3 +3382,4 @@ inline vtkIdType vtkReebGraph::Implementation::AddArc(vtkIdType nodeId0, vtkIdTy
   vtkIdType nodevtkReebArcble[] = { nodeId0, nodeId1 };
   return AddPath(2, nodevtkReebArcble, 0);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkReebGraph.h b/Common/DataModel/vtkReebGraph.h
index cfc3182f20e6f65badc0af3dcb118be94eaadc62..8396fdf0d83cc9bb350c884e71f65555abcf6c29 100644
--- a/Common/DataModel/vtkReebGraph.h
+++ b/Common/DataModel/vtkReebGraph.h
@@ -121,6 +121,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkMutableDirectedGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkDataSet;
 class vtkIdList;
@@ -363,4 +364,5 @@ private:
   void operator=(const vtkReebGraph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkReebGraphSimplificationMetric.cxx b/Common/DataModel/vtkReebGraphSimplificationMetric.cxx
index 79ebae10f89f94483962f6d41acefb57a1cf2f5b..6434af2e0407dd90876133d15018ad250f701033 100644
--- a/Common/DataModel/vtkReebGraphSimplificationMetric.cxx
+++ b/Common/DataModel/vtkReebGraphSimplificationMetric.cxx
@@ -18,6 +18,7 @@
 #include "vtkInformationVector.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkReebGraphSimplificationMetric);
 
 //------------------------------------------------------------------------------
@@ -46,3 +47,4 @@ double vtkReebGraphSimplificationMetric::ComputeMetric(vtkDataSet* vtkNotUsed(me
   printf("too bad, wrong code\n");
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkReebGraphSimplificationMetric.h b/Common/DataModel/vtkReebGraphSimplificationMetric.h
index b1672fef391a33b668126a06b0feae8fd26acdca..654e41e7b965ec47fb95f09b587ce336119cff90 100644
--- a/Common/DataModel/vtkReebGraphSimplificationMetric.h
+++ b/Common/DataModel/vtkReebGraphSimplificationMetric.h
@@ -49,6 +49,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkDataArray;
 class vtkAbstractArray;
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkReebGraphSimplificationMetric&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkSelection.cxx b/Common/DataModel/vtkSelection.cxx
index 1d825f6c2f3d55d43d2843e3b493244f62935edd..a4b765c5ef0f7c3be0efdce6d15e2d2cd307891e 100644
--- a/Common/DataModel/vtkSelection.cxx
+++ b/Common/DataModel/vtkSelection.cxx
@@ -42,6 +42,7 @@
 //============================================================================
 namespace parser
 {
+VTK_ABI_NAMESPACE_BEGIN
 class Node
 {
 public:
@@ -168,8 +169,10 @@ public:
     os << ")";
   }
 };
+VTK_ABI_NAMESPACE_END
 } // namespace parser
 
+VTK_ABI_NAMESPACE_BEGIN
 //============================================================================
 class vtkSelection::vtkInternals
 {
@@ -793,3 +796,4 @@ void vtkSelection::Dump(ostream& os)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkSelection.h b/Common/DataModel/vtkSelection.h
index f05803d85556e3fa04c018d4d0d93f9f8f5e77a9..056d51c7e8dab748dced85c56ecb1661cddfb818 100644
--- a/Common/DataModel/vtkSelection.h
+++ b/Common/DataModel/vtkSelection.h
@@ -47,6 +47,7 @@
 #include <memory> // for unique_ptr.
 #include <string> // for string.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSelectionNode;
 class vtkSignedCharArray;
 
@@ -236,4 +237,5 @@ inline vtkSmartPointer<vtkSignedCharArray> vtkSelection::Evaluate(const MapType&
   return this->Evaluate(&values[0], num_nodes);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkSelectionNode.cxx b/Common/DataModel/vtkSelectionNode.cxx
index d236ab53626ef5390beb668a6d288e299ab2c298..b215d9aa3b42cc8c5f6fd083dad273f339e845b5 100644
--- a/Common/DataModel/vtkSelectionNode.cxx
+++ b/Common/DataModel/vtkSelectionNode.cxx
@@ -34,6 +34,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSelectionNode);
 vtkCxxSetObjectMacro(vtkSelectionNode, SelectionData, vtkDataSetAttributes);
 
@@ -551,3 +552,4 @@ int vtkSelectionNode::ConvertAttributeTypeToSelectionField(int attrType)
       return vtkSelectionNode::CELL;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkSelectionNode.h b/Common/DataModel/vtkSelectionNode.h
index caa27f67c7ab899261ad3be1d127927453fab0f6..0d8c1d82a71ecdc362d8fe71735b71879b2dceb8 100644
--- a/Common/DataModel/vtkSelectionNode.h
+++ b/Common/DataModel/vtkSelectionNode.h
@@ -223,6 +223,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkDataSetAttributes;
 class vtkInformation;
@@ -535,4 +536,5 @@ private:
   void operator=(const vtkSelectionNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkSimpleCellTessellator.cxx b/Common/DataModel/vtkSimpleCellTessellator.cxx
index 23604b32f07790fd7e603d003dc95c0bd55577ad..a22dbc36f2ac133d6bba8cf44757ba6c86b25797 100644
--- a/Common/DataModel/vtkSimpleCellTessellator.cxx
+++ b/Common/DataModel/vtkSimpleCellTessellator.cxx
@@ -38,6 +38,7 @@
 
 // format of the arrays LeftPoint, MidPoint, RightPoint is global, parametric,
 // attributes: xyz rst [abc de...]
+VTK_ABI_NAMESPACE_BEGIN
 const int PARAMETRIC_OFFSET = 3;
 const int ATTRIBUTES_OFFSET = 6;
 
@@ -2789,3 +2790,4 @@ int vtkSimpleCellTessellator::FacesAreEqual(const vtkIdType* originalFace, const
   }
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkSimpleCellTessellator.h b/Common/DataModel/vtkSimpleCellTessellator.h
index e3059c231dbd35139dbf00c44b2f8652cc47c9bc..dad9c1bfdbb825214e81f52f823e091f28c259e3 100644
--- a/Common/DataModel/vtkSimpleCellTessellator.h
+++ b/Common/DataModel/vtkSimpleCellTessellator.h
@@ -48,6 +48,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkGenericCellTessellator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTriangleTile;
 class vtkTetraTile;
 class vtkCellArray;
@@ -403,4 +404,5 @@ private:
   friend class vtkTriangleTile;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkSmoothErrorMetric.cxx b/Common/DataModel/vtkSmoothErrorMetric.cxx
index 9f59b4ffe25ff13ea4034c3c3607b43bebdb0498..bcf0321f6dc75c39d5b67bb32209b93c7a338286 100644
--- a/Common/DataModel/vtkSmoothErrorMetric.cxx
+++ b/Common/DataModel/vtkSmoothErrorMetric.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSmoothErrorMetric);
 
 //------------------------------------------------------------------------------
@@ -175,3 +176,4 @@ void vtkSmoothErrorMetric::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "AngleTolerance: " << this->AngleTolerance << endl;
   os << indent << "CosTolerance: " << this->CosTolerance << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkSmoothErrorMetric.h b/Common/DataModel/vtkSmoothErrorMetric.h
index 00a6fd30e2c5a3e7b1a3eed86649ca40c28f0024..0b02de3f225f23180890fe77a39129044b07d487 100644
--- a/Common/DataModel/vtkSmoothErrorMetric.h
+++ b/Common/DataModel/vtkSmoothErrorMetric.h
@@ -34,6 +34,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkGenericSubdivisionErrorMetric.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericDataSet;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkSmoothErrorMetric : public vtkGenericSubdivisionErrorMetric
@@ -115,4 +116,5 @@ private:
   void operator=(const vtkSmoothErrorMetric&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkSortFieldData.cxx b/Common/DataModel/vtkSortFieldData.cxx
index 9ea74696fdd769ca6d26204206887e04309dd2af..27950014a08c683e39ad67456f6e2935c01415f9 100644
--- a/Common/DataModel/vtkSortFieldData.cxx
+++ b/Common/DataModel/vtkSortFieldData.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSortFieldData);
 
 //------------------------------------------------------------------------------
@@ -105,3 +106,4 @@ void vtkSortFieldData::PrintSelf(ostream& os, vtkIndent indent)
 }
 
 // vtkSortFieldData methods -------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkSortFieldData.h b/Common/DataModel/vtkSortFieldData.h
index c54f1fa2d4040a6ea528ebfdd34a50832a7949c0..5ce890c59e50c50cd5ed8886bb3bc7bd050bb8a7 100644
--- a/Common/DataModel/vtkSortFieldData.h
+++ b/Common/DataModel/vtkSortFieldData.h
@@ -47,6 +47,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkSortDataArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFieldData;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkSortFieldData : public vtkSortDataArray
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkSortFieldData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSortFieldData_h
diff --git a/Common/DataModel/vtkSphere.cxx b/Common/DataModel/vtkSphere.cxx
index fac70aa8bb1b3eaca901ccd31740a41504e22f43..dd741913893efe0017397c93af88abb1fd3d35f8 100644
--- a/Common/DataModel/vtkSphere.cxx
+++ b/Common/DataModel/vtkSphere.cxx
@@ -18,6 +18,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSphere);
 
 //------------------------------------------------------------------------------
@@ -392,3 +393,4 @@ void vtkSphere::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Center: (" << this->Center[0] << ", " << this->Center[1] << ", "
      << this->Center[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkSphere.h b/Common/DataModel/vtkSphere.h
index 793e00e865b2baa85b9b757a379623793305ff5a..37ead5cf8fb447d8ef3689932dc09cc78ca9f722 100644
--- a/Common/DataModel/vtkSphere.h
+++ b/Common/DataModel/vtkSphere.h
@@ -28,6 +28,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkSphere : public vtkImplicitFunction
 {
 public:
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkSphere&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkSpheres.cxx b/Common/DataModel/vtkSpheres.cxx
index f0a583fc82eb764cf7719b5fee733f951cee847b..822cab94de5380f8f9eff73485d0405aa9d48054 100644
--- a/Common/DataModel/vtkSpheres.cxx
+++ b/Common/DataModel/vtkSpheres.cxx
@@ -21,6 +21,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSpheres);
 vtkCxxSetObjectMacro(vtkSpheres, Centers, vtkPoints);
 
@@ -215,3 +216,4 @@ void vtkSpheres::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Radii: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkSpheres.h b/Common/DataModel/vtkSpheres.h
index 3bb4f46d2ed8d2ac183213dfe489a1d63d52d95d..9e66fa7843e08a8e4f12d55f1fdc0be8f94e2268 100644
--- a/Common/DataModel/vtkSpheres.h
+++ b/Common/DataModel/vtkSpheres.h
@@ -35,6 +35,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSphere;
 class vtkPoints;
 class vtkDataArray;
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkSpheres&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkSphericalPointIterator.cxx b/Common/DataModel/vtkSphericalPointIterator.cxx
index c3ee7b67d83fca89db4f5a8c602c922e1eca8fe4..abf8c0087aa983229d691b8eb78e5212439d6d20 100644
--- a/Common/DataModel/vtkSphericalPointIterator.cxx
+++ b/Common/DataModel/vtkSphericalPointIterator.cxx
@@ -25,6 +25,7 @@
 #include <numeric>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSphericalPointIterator);
 
 //=============================================================================
@@ -616,3 +617,4 @@ void vtkSphericalPointIterator::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Axes: " << this->Axes << "\n";
   os << indent << "Sorting: " << this->Sorting << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkSphericalPointIterator.h b/Common/DataModel/vtkSphericalPointIterator.h
index f299bb69ded9b7b8f6356f066aabd1877f7ff577..6f9a861a8197337dd8c815fd6e2fdda4990b88da 100644
--- a/Common/DataModel/vtkSphericalPointIterator.h
+++ b/Common/DataModel/vtkSphericalPointIterator.h
@@ -82,6 +82,7 @@
 
 #include <memory> // for std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkPolyData;
 struct SpiralPointIterator;
@@ -282,4 +283,5 @@ private:
   void operator=(const vtkSphericalPointIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSphericalPointIterator_h
diff --git a/Common/DataModel/vtkSpline.cxx b/Common/DataModel/vtkSpline.cxx
index 4c98cffd6030bae8f3856367541453a96dcd3b30..81af192ce59ce8a4f3d763c42599256a751e672a 100644
--- a/Common/DataModel/vtkSpline.cxx
+++ b/Common/DataModel/vtkSpline.cxx
@@ -19,6 +19,7 @@
 //------------------------------------------------------------------------------
 // Construct a spline with the following defaults:
 // ClampValueOff
+VTK_ABI_NAMESPACE_BEGIN
 vtkSpline::vtkSpline()
 {
   this->ComputeTime = 0;
@@ -227,3 +228,4 @@ void vtkSpline::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Closed: " << (this->Closed ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkSpline.h b/Common/DataModel/vtkSpline.h
index 84c01d511b1f98b25ef01203a40a90b8125d79d0..a809b6603655cfe5ea32cf08919d1e0119321423 100644
--- a/Common/DataModel/vtkSpline.h
+++ b/Common/DataModel/vtkSpline.h
@@ -57,6 +57,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPiecewiseFunction;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkSpline : public vtkObject
@@ -200,4 +201,5 @@ private:
   void operator=(const vtkSpline&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkStaticCellLinks.cxx b/Common/DataModel/vtkStaticCellLinks.cxx
index 7aeebe13770adf59bcf21d36193a8fbd88555cfb..844b483890197a71bc2224ba1de245d1ec4feeda 100644
--- a/Common/DataModel/vtkStaticCellLinks.cxx
+++ b/Common/DataModel/vtkStaticCellLinks.cxx
@@ -15,6 +15,7 @@
 #include "vtkStaticCellLinks.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStaticCellLinks);
 
 //------------------------------------------------------------------------------
@@ -36,3 +37,4 @@ void vtkStaticCellLinks::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Implementation: " << this->Impl << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkStaticCellLinks.h b/Common/DataModel/vtkStaticCellLinks.h
index 18652ee2eb6fc0fbc3f0c59c724674d43c35c844..50b2c071f2a54b8f1345959c454b8028ea35eb17 100644
--- a/Common/DataModel/vtkStaticCellLinks.h
+++ b/Common/DataModel/vtkStaticCellLinks.h
@@ -47,6 +47,7 @@
 #include "vtkCommonDataModelModule.h"   // For export macro
 #include "vtkStaticCellLinksTemplate.h" // For implementations
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkCellArray;
 
@@ -143,4 +144,5 @@ private:
   void operator=(const vtkStaticCellLinks&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkStaticCellLinksTemplate.h b/Common/DataModel/vtkStaticCellLinksTemplate.h
index 4357dd729abdfe080a1bff5f521677da5d482cb7..aa16677778910156a1d8f8e5694c1f4323c1ac84 100644
--- a/Common/DataModel/vtkStaticCellLinksTemplate.h
+++ b/Common/DataModel/vtkStaticCellLinksTemplate.h
@@ -45,14 +45,19 @@
 #ifndef vtkStaticCellLinksTemplate_h
 #define vtkStaticCellLinksTemplate_h
 
+#include "vtkABINamespace.h"
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkPolyData;
 class vtkUnstructuredGrid;
 class vtkExplicitStructuredGrid;
 class vtkCellArray;
+VTK_ABI_NAMESPACE_END
 
 #include "vtkAbstractCellLinks.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename TIds>
 class vtkStaticCellLinksTemplate
 {
@@ -172,6 +177,7 @@ private:
   void operator=(const vtkStaticCellLinksTemplate&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkStaticCellLinksTemplate.txx"
 
 #endif
diff --git a/Common/DataModel/vtkStaticCellLinksTemplate.txx b/Common/DataModel/vtkStaticCellLinksTemplate.txx
index 7d7c4c26884b7d1ffd210f6843740b697eed92d3..1a137a3ab61834adabf879a653aaa67316a0e106 100644
--- a/Common/DataModel/vtkStaticCellLinksTemplate.txx
+++ b/Common/DataModel/vtkStaticCellLinksTemplate.txx
@@ -35,6 +35,7 @@
 
 //----------------------------------------------------------------------------
 // Default constructor. BuildLinks() does most of the work.
+VTK_ABI_NAMESPACE_BEGIN
 template <typename TIds>
 vtkStaticCellLinksTemplate<TIds>::vtkStaticCellLinksTemplate()
   : LinksSize(0)
@@ -167,9 +168,11 @@ void vtkStaticCellLinksTemplate<TIds>::BuildLinks(vtkDataSet* ds)
 
   cellPts->Delete();
 }
+VTK_ABI_NAMESPACE_END
 
 namespace vtkSCLT_detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 struct CountPoints
 {
@@ -252,8 +255,10 @@ struct BuildLinksThreaded
   }
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtkSCLT_detail
 
+VTK_ABI_NAMESPACE_BEGIN
 //----------------------------------------------------------------------------
 // Build the link list array for unstructured grids. Note this is a serial
 // implementation: while there is another method (threaded) that is usually
@@ -290,6 +295,7 @@ void vtkStaticCellLinksTemplate<TIds>::SerialBuildLinks(
 
   this->Offsets[numPts] = this->LinksSize;
 }
+VTK_ABI_NAMESPACE_END
 
 //----------------------------------------------------------------------------
 // Threaded implementation of BuildLinks() using vtkSMPTools and std::atomic.
@@ -340,6 +346,7 @@ struct InsertLinks
 
 } // anonymous
 
+VTK_ABI_NAMESPACE_BEGIN
 //----------------------------------------------------------------------------
 // Build the link list array for unstructured grids. Note this is a threaded
 // implementation: it uses SMPTools and atomics to prevent race situations.
@@ -672,4 +679,5 @@ void vtkStaticCellLinksTemplate<TIds>::SelectCells(
     }); // end lambda
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkStaticCellLocator.cxx b/Common/DataModel/vtkStaticCellLocator.cxx
index 08c8970bf711aa77ab3dcbed6997251f4c4a88eb..2e8ef2b6d5019f27d4494173585b4c71cc818bcd 100644
--- a/Common/DataModel/vtkStaticCellLocator.cxx
+++ b/Common/DataModel/vtkStaticCellLocator.cxx
@@ -35,6 +35,7 @@
 #include <queue>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStaticCellLocator);
 
 //------------------------------------------------------------------------------
@@ -1822,3 +1823,4 @@ void vtkStaticCellLocator::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Large IDs: " << this->LargeIds << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkStaticCellLocator.h b/Common/DataModel/vtkStaticCellLocator.h
index b89b67f40ad5b4c54678ab4cba2d794fae90443c..e9cc2d253c3d2dba29b8e61a19f29de81a14d7bf 100644
--- a/Common/DataModel/vtkStaticCellLocator.h
+++ b/Common/DataModel/vtkStaticCellLocator.h
@@ -54,6 +54,7 @@
 #include "vtkDeprecation.h"           // For VTK_DEPRECATED_IN_9_2_0
 
 // Forward declarations for PIMPL
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkCellBinner;
 struct vtkCellProcessor;
 
@@ -287,4 +288,5 @@ private:
   void operator=(const vtkStaticCellLocator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkStaticEdgeLocatorTemplate.h b/Common/DataModel/vtkStaticEdgeLocatorTemplate.h
index a8d1622b5b0c28b344a09feebec439a68f52a28d..bc2dc87a030131219b798a430dd4ff0014ea816b 100644
--- a/Common/DataModel/vtkStaticEdgeLocatorTemplate.h
+++ b/Common/DataModel/vtkStaticEdgeLocatorTemplate.h
@@ -63,6 +63,8 @@
 #ifndef vtkStaticEdgeLocatorTemplate_h
 #define vtkStaticEdgeLocatorTemplate_h
 
+#include "vtkABINamespace.h"
+
 #include <algorithm>
 #include <vector>
 
@@ -72,6 +74,7 @@
  * sort) by using smaller types (32-int versus 64-bit vtkIdType). It is
  * required that V0 < V1; the tuple constructor enforces this.
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <typename TId, typename TED>
 struct EdgeTuple
 {
@@ -298,6 +301,7 @@ private:
   void operator=(const vtkStaticEdgeLocatorTemplate&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkStaticEdgeLocatorTemplate.txx"
 
 #endif
diff --git a/Common/DataModel/vtkStaticEdgeLocatorTemplate.txx b/Common/DataModel/vtkStaticEdgeLocatorTemplate.txx
index 7b948d10dbad04c08faddfebb5464306169b3980..f2c22aaa1ed0b10c5983ff668808475392ab78b4 100644
--- a/Common/DataModel/vtkStaticEdgeLocatorTemplate.txx
+++ b/Common/DataModel/vtkStaticEdgeLocatorTemplate.txx
@@ -21,6 +21,7 @@
 
 //----------------------------------------------------------------------------
 // Gather coincident edges into contiguous runs. Use this for merging edges.
+VTK_ABI_NAMESPACE_BEGIN
 template <typename IDType, typename EdgeData>
 const IDType* vtkStaticEdgeLocatorTemplate<IDType, EdgeData>::MergeEdges(
   vtkIdType numEdges, EdgeTupleType* mergeArray, vtkIdType& numUniqueEdges)
@@ -110,4 +111,5 @@ vtkIdType vtkStaticEdgeLocatorTemplate<IDType, EdgeData>::BuildLocator(
   return this->NumEdges;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkStaticPointLocator.cxx b/Common/DataModel/vtkStaticPointLocator.cxx
index b31c37f866b8c1147da807170e8cc0fc5e90e61d..50dfbf11466274098595acea3bd5b25d167ca36c 100644
--- a/Common/DataModel/vtkStaticPointLocator.cxx
+++ b/Common/DataModel/vtkStaticPointLocator.cxx
@@ -32,6 +32,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStaticPointLocator);
 
 // There are stack-allocated bucket neighbor lists. This is the initial
@@ -2393,3 +2394,4 @@ void vtkStaticPointLocator::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Traversal Order: " << (this->TraversalOrder ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkStaticPointLocator.h b/Common/DataModel/vtkStaticPointLocator.h
index 1d5629697e7e8fe3b2a27bf04141f2d262cb11be..b1a53a59b0919cc991e2b6b7c6b6b75398b68bc1 100644
--- a/Common/DataModel/vtkStaticPointLocator.h
+++ b/Common/DataModel/vtkStaticPointLocator.h
@@ -60,6 +60,7 @@
 #include "vtkAbstractPointLocator.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 struct vtkBucketList;
 class vtkDataArray;
@@ -312,4 +313,5 @@ private:
   void operator=(const vtkStaticPointLocator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkStaticPointLocator2D.cxx b/Common/DataModel/vtkStaticPointLocator2D.cxx
index afb876f0a42cf69230672feff1ed8e6e0933f532..42db7e15ce6a88dd6e144f9f0546d4b4cb907d4a 100644
--- a/Common/DataModel/vtkStaticPointLocator2D.cxx
+++ b/Common/DataModel/vtkStaticPointLocator2D.cxx
@@ -30,6 +30,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStaticPointLocator2D);
 
 // There are stack-allocated bucket neighbor lists. This is the initial
@@ -2086,3 +2087,4 @@ void vtkStaticPointLocator2D::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Large IDs: " << this->LargeIds << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkStaticPointLocator2D.h b/Common/DataModel/vtkStaticPointLocator2D.h
index 8a797f641e510fe490a12d9f014de5fa97a13853..05b5d8cb156b0472fadc03b3f4e75408253a8675 100644
--- a/Common/DataModel/vtkStaticPointLocator2D.h
+++ b/Common/DataModel/vtkStaticPointLocator2D.h
@@ -59,6 +59,7 @@
 #include "vtkAbstractPointLocator.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 struct vtkBucketList2D;
 
@@ -294,4 +295,5 @@ private:
   void operator=(const vtkStaticPointLocator2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkStructuredData.cxx b/Common/DataModel/vtkStructuredData.cxx
index f7954a1575ac059e39a8595c2675b389af0f4a8f..b37b0efab8781c84adf4a1e277080c4f2afd3898 100644
--- a/Common/DataModel/vtkStructuredData.cxx
+++ b/Common/DataModel/vtkStructuredData.cxx
@@ -23,6 +23,7 @@
 #include <algorithm>
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // FIXME
@@ -769,3 +770,4 @@ void vtkStructuredData::GetCellNeighbors(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkStructuredData.h b/Common/DataModel/vtkStructuredData.h
index 526c3b6e991476c86aedc878ee644bd4dad4cb5c..8ec8f59728f7181d456f3d57195924cf057d06eb 100644
--- a/Common/DataModel/vtkStructuredData.h
+++ b/Common/DataModel/vtkStructuredData.h
@@ -32,6 +32,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkUnsignedCharArray;
 
@@ -445,4 +446,5 @@ inline void vtkStructuredData::ComputePointStructuredCoordsForExtent(
   vtkStructuredData::GetGlobalStructuredCoordinates(lijk, ext, ijk);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkStructuredExtent.cxx b/Common/DataModel/vtkStructuredExtent.cxx
index 483b4e1b110b7260f555a645f6032ace57623bc1..c586f5738ffb2f1d08c4ce933de1904bbbd5c96e 100644
--- a/Common/DataModel/vtkStructuredExtent.cxx
+++ b/Common/DataModel/vtkStructuredExtent.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredExtent);
 //------------------------------------------------------------------------------
 vtkStructuredExtent::vtkStructuredExtent() = default;
@@ -28,3 +29,4 @@ void vtkStructuredExtent::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkStructuredExtent.h b/Common/DataModel/vtkStructuredExtent.h
index aae1b237551a951744cdf6ad05bb514d268bd5bf..9ba26301c7af6d7d1d0e66f18340f2d40ea75797 100644
--- a/Common/DataModel/vtkStructuredExtent.h
+++ b/Common/DataModel/vtkStructuredExtent.h
@@ -29,6 +29,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkStructuredExtent : public vtkObject
 {
 public:
@@ -177,4 +178,5 @@ inline void vtkStructuredExtent::GetDimensions(const int ext[6], int dims[3])
   dims[2] = ext[5] - ext[4] + 1;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkStructuredGrid.cxx b/Common/DataModel/vtkStructuredGrid.cxx
index 6c7dcc316d7b6682aaa7ffffce971cf239f04fca..7a680bdc0124c436a0a8196b4325463e27b625cc 100644
--- a/Common/DataModel/vtkStructuredGrid.cxx
+++ b/Common/DataModel/vtkStructuredGrid.cxx
@@ -29,6 +29,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkVertex.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredGrid);
 vtkStandardExtendedNewMacro(vtkStructuredGrid);
 
@@ -1339,3 +1340,4 @@ bool vtkStructuredGrid::HasAnyBlankCells()
   int cellBlanking = this->CellData->HasAnyGhostBitSet(vtkDataSetAttributes::HIDDENCELL);
   return cellBlanking || this->HasAnyBlankPoints();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkStructuredGrid.h b/Common/DataModel/vtkStructuredGrid.h
index 6acccc413cc09baa42cc10bd5794c82854edfecb..5d9c447d3e98556823068273d9f7ff6726096d11 100644
--- a/Common/DataModel/vtkStructuredGrid.h
+++ b/Common/DataModel/vtkStructuredGrid.h
@@ -48,6 +48,7 @@
 
 #include "vtkStructuredData.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEmptyCell;
 class vtkHexahedron;
 class vtkLine;
@@ -310,4 +311,5 @@ inline int vtkStructuredGrid::GetDataDimension()
   return vtkStructuredData::GetDataDimension(this->DataDescription);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkStructuredPoints.cxx b/Common/DataModel/vtkStructuredPoints.cxx
index bbacae72070e614825bcd82e0c6e5ba8505ecb7b..52f8dc4007160941f51124b40b8ab2f23105d39c 100644
--- a/Common/DataModel/vtkStructuredPoints.cxx
+++ b/Common/DataModel/vtkStructuredPoints.cxx
@@ -17,6 +17,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredPoints);
 
 vtkStructuredPoints::vtkStructuredPoints() = default;
@@ -25,3 +26,4 @@ void vtkStructuredPoints::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkStructuredPoints.h b/Common/DataModel/vtkStructuredPoints.h
index 20df008a2b21715bc7c8a555b148b1052d1061bb..655196fe4ba9779cd77f6dd23bb6fd9484f1845a 100644
--- a/Common/DataModel/vtkStructuredPoints.h
+++ b/Common/DataModel/vtkStructuredPoints.h
@@ -32,6 +32,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImageData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkStructuredPoints : public vtkImageData
 {
 public:
@@ -53,4 +54,5 @@ private:
   void operator=(const vtkStructuredPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkStructuredPointsCollection.cxx b/Common/DataModel/vtkStructuredPointsCollection.cxx
index a16332d60bb74bfda519d10219320113e1ce2c3b..fece23bc55e3728d2fd249637618ac00599e7b81 100644
--- a/Common/DataModel/vtkStructuredPointsCollection.cxx
+++ b/Common/DataModel/vtkStructuredPointsCollection.cxx
@@ -15,6 +15,7 @@
 #include "vtkStructuredPointsCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredPointsCollection);
 
 //------------------------------------------------------------------------------
@@ -22,3 +23,4 @@ void vtkStructuredPointsCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkStructuredPointsCollection.h b/Common/DataModel/vtkStructuredPointsCollection.h
index 7d1afd2874e10d131a071a1f36e3c48b07fd28eb..ad8e65e4a3f07aac0ba253bbc5844d0bf838892c 100644
--- a/Common/DataModel/vtkStructuredPointsCollection.h
+++ b/Common/DataModel/vtkStructuredPointsCollection.h
@@ -28,6 +28,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkStructuredPoints.h"      // Needed for static cast
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkStructuredPointsCollection : public vtkCollection
 {
 public:
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkStructuredPointsCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkSuperquadric.cxx b/Common/DataModel/vtkSuperquadric.cxx
index 4fe1b79164926d030d0d4eb38043ce82c47218f8..f7eae5826ab2eeafdc24948aeaab14fc1412431c 100644
--- a/Common/DataModel/vtkSuperquadric.cxx
+++ b/Common/DataModel/vtkSuperquadric.cxx
@@ -24,6 +24,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSuperquadric);
 
 // Construct with superquadric radius of 0.5, toroidal off, center at 0.0,
@@ -149,3 +150,4 @@ void vtkSuperquadric::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scale: (" << this->Scale[0] << ", " << this->Scale[1] << ", " << this->Scale[2]
      << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkSuperquadric.h b/Common/DataModel/vtkSuperquadric.h
index 7c43e97fa73d6f15a4c275d6d08957ffc9b755c0..64c4acd2789b05192dd4cfdce19ace2e442a1678 100644
--- a/Common/DataModel/vtkSuperquadric.h
+++ b/Common/DataModel/vtkSuperquadric.h
@@ -47,6 +47,7 @@
 
 #define VTK_MIN_SUPERQUADRIC_THICKNESS 1e-4
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkSuperquadric : public vtkImplicitFunction
 {
 public:
@@ -141,4 +142,5 @@ private:
   void operator=(const vtkSuperquadric&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkTable.cxx b/Common/DataModel/vtkTable.cxx
index 3558dd8036ff97edb7a35ba1664e414668c7890b..658de69461c493d9cc538ff01d621e7b132587ca 100644
--- a/Common/DataModel/vtkTable.cxx
+++ b/Common/DataModel/vtkTable.cxx
@@ -37,6 +37,7 @@
 // Standard functions
 //
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTable);
 vtkStandardExtendedNewMacro(vtkTable);
 vtkCxxSetObjectMacro(vtkTable, RowData, vtkDataSetAttributes);
@@ -804,3 +805,4 @@ vtkIdType vtkTable::GetNumberOfElements(int type)
   }
   return this->Superclass::GetNumberOfElements(type);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkTable.h b/Common/DataModel/vtkTable.h
index 801ac4e3ae45ce6d0beb5ffb40583d502c7c3dd8..187499f12d2620182ddf1689f88ff388487339ab 100644
--- a/Common/DataModel/vtkTable.h
+++ b/Common/DataModel/vtkTable.h
@@ -59,6 +59,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDataObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkDataSetAttributes;
 class vtkVariant;
@@ -316,4 +317,5 @@ private:
   void operator=(const vtkTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkTetra.cxx b/Common/DataModel/vtkTetra.cxx
index ae2bb834ab6fa1a4bf2f946bcc2f908097201cbf..dca31e4ac293392a62f8199466ea0ab41f7cb8b8 100644
--- a/Common/DataModel/vtkTetra.cxx
+++ b/Common/DataModel/vtkTetra.cxx
@@ -29,6 +29,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTetra);
 
 //------------------------------------------------------------------------------
@@ -1209,3 +1210,4 @@ void vtkTetra::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Triangle:\n";
   this->Triangle->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkTetra.h b/Common/DataModel/vtkTetra.h
index 9bd4c45f037a8d7ee0d678c8f17f212e89ecd95c..0aad695c4e6a7e05a12e9170260dd1b93b60b593 100644
--- a/Common/DataModel/vtkTetra.h
+++ b/Common/DataModel/vtkTetra.h
@@ -33,6 +33,7 @@
 #include "vtkCell3D.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkTriangle;
 class vtkUnstructuredGrid;
@@ -267,4 +268,5 @@ inline int vtkTetra::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkTree.cxx b/Common/DataModel/vtkTree.cxx
index 439677892e0f67b8e97fa5521b1eff6f3db10ada..90b3bbbfbd13014de1abcde7f921f8b9e00b0144 100644
--- a/Common/DataModel/vtkTree.cxx
+++ b/Common/DataModel/vtkTree.cxx
@@ -28,6 +28,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTree);
 //------------------------------------------------------------------------------
 vtkTree::vtkTree()
@@ -218,3 +219,4 @@ void vtkTree::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Root: " << this->Root << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkTree.h b/Common/DataModel/vtkTree.h
index 239729a4cc35809ec314158190c89a6efb3cc801..645dff6dfc4f33c1b96a6e604362d968bc39c1c8 100644
--- a/Common/DataModel/vtkTree.h
+++ b/Common/DataModel/vtkTree.h
@@ -49,6 +49,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkDirectedAcyclicGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkTree : public vtkDirectedAcyclicGraph
@@ -145,4 +146,5 @@ private:
   void operator=(const vtkTree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkTreeBFSIterator.cxx b/Common/DataModel/vtkTreeBFSIterator.cxx
index c0071848c65ff20ce4cc6ce3e6ac2e1b6edb5de8..af1c8527ab20fc5b961fa283947f39d93f7d9e8e 100644
--- a/Common/DataModel/vtkTreeBFSIterator.cxx
+++ b/Common/DataModel/vtkTreeBFSIterator.cxx
@@ -22,6 +22,7 @@
 #include <queue>
 using std::queue;
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTreeBFSIteratorInternals
 {
 public:
@@ -114,3 +115,4 @@ vtkIdType vtkTreeBFSIterator::NextInternal()
   }
   return -1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkTreeBFSIterator.h b/Common/DataModel/vtkTreeBFSIterator.h
index 66ccbf312428129f019c26b024d2cf6e17f3dcae..7d988d1a375a2b468078ef8c921f5317e78dec10 100644
--- a/Common/DataModel/vtkTreeBFSIterator.h
+++ b/Common/DataModel/vtkTreeBFSIterator.h
@@ -34,6 +34,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkTreeIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTreeBFSIteratorInternals;
 class vtkIntArray;
 
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkTreeBFSIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkTreeDFSIterator.cxx b/Common/DataModel/vtkTreeDFSIterator.cxx
index 4047f688550053b7e78e568a8f845b6b79191474..9c98d6090efecdebdd6483c1571039351be60a73 100644
--- a/Common/DataModel/vtkTreeDFSIterator.cxx
+++ b/Common/DataModel/vtkTreeDFSIterator.cxx
@@ -27,6 +27,7 @@
 #include <stack>
 using std::stack;
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkTreeDFSIteratorPosition
 {
   vtkTreeDFSIteratorPosition(vtkIdType vertex, vtkIdType index)
@@ -197,3 +198,4 @@ vtkIdType vtkTreeDFSIterator::NextInternal()
   // cout << "DFS no more!" << endl;
   return -1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkTreeDFSIterator.h b/Common/DataModel/vtkTreeDFSIterator.h
index 40e5123e6b43f0ac7ffc42d65bdd7167f1fcf012..570735ef57b9cc18aef34c1e9c52ca6bf9e88b48 100644
--- a/Common/DataModel/vtkTreeDFSIterator.h
+++ b/Common/DataModel/vtkTreeDFSIterator.h
@@ -41,6 +41,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkTreeIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTreeDFSIteratorInternals;
 class vtkIntArray;
 
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkTreeDFSIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkTreeIterator.cxx b/Common/DataModel/vtkTreeIterator.cxx
index c069be8da2216c62a594e9b5e1d149e921fea8a8..80bd01966db08448e096bc220ed4234c0d92fa80 100644
--- a/Common/DataModel/vtkTreeIterator.cxx
+++ b/Common/DataModel/vtkTreeIterator.cxx
@@ -17,6 +17,7 @@
 
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkTreeIterator::vtkTreeIterator()
 {
   this->Tree = nullptr;
@@ -81,3 +82,4 @@ void vtkTreeIterator::Restart()
 {
   this->Initialize();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkTreeIterator.h b/Common/DataModel/vtkTreeIterator.h
index aaf780ae5ca3a5d3aefe515e8068393fb0df0bc0..a1f4e9ed85d36b8d39fd190ff43cc97093d0096c 100644
--- a/Common/DataModel/vtkTreeIterator.h
+++ b/Common/DataModel/vtkTreeIterator.h
@@ -34,6 +34,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTree;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkTreeIterator : public vtkObject
@@ -91,4 +92,5 @@ private:
   void operator=(const vtkTreeIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkTriQuadraticHexahedron.cxx b/Common/DataModel/vtkTriQuadraticHexahedron.cxx
index 71426aaca130371d4c8a5d44b68595d441c3c7b5..ac5a97029c36cc279942cece7b6c42d8c4f54115 100644
--- a/Common/DataModel/vtkTriQuadraticHexahedron.cxx
+++ b/Common/DataModel/vtkTriQuadraticHexahedron.cxx
@@ -26,6 +26,7 @@
 #include "vtkPoints.h"
 #include "vtkQuadraticEdge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTriQuadraticHexahedron);
 
 //------------------------------------------------------------------------------
@@ -742,3 +743,4 @@ void vtkTriQuadraticHexahedron::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkTriQuadraticHexahedron.h b/Common/DataModel/vtkTriQuadraticHexahedron.h
index f89ddd66c849a02d259a133c87b08bde1f79b76b..676af78b6aebe9aa6259b71531ec3d0d5cded1e1 100644
--- a/Common/DataModel/vtkTriQuadraticHexahedron.h
+++ b/Common/DataModel/vtkTriQuadraticHexahedron.h
@@ -74,6 +74,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkBiQuadraticQuad;
 class vtkHexahedron;
@@ -176,4 +177,5 @@ private:
   void operator=(const vtkTriQuadraticHexahedron&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkTriQuadraticPyramid.cxx b/Common/DataModel/vtkTriQuadraticPyramid.cxx
index d9142f6f11186cee481b41d31f694d74dc742ee8..0f66297c500e433e1852df159d4657a5d98f4923 100644
--- a/Common/DataModel/vtkTriQuadraticPyramid.cxx
+++ b/Common/DataModel/vtkTriQuadraticPyramid.cxx
@@ -29,6 +29,7 @@
 
 #include <cstddef>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // defined constants used in interpolation functions and their partial derivatives
@@ -1078,3 +1079,4 @@ void vtkTriQuadraticPyramid::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalars:\n";
   this->Scalars->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkTriQuadraticPyramid.h b/Common/DataModel/vtkTriQuadraticPyramid.h
index 91ccb9170742ef58ebc65684e78b9f9989f923c9..e62b28b2a9c96d4e93e116eca752de427763d5dc 100644
--- a/Common/DataModel/vtkTriQuadraticPyramid.h
+++ b/Common/DataModel/vtkTriQuadraticPyramid.h
@@ -94,6 +94,7 @@
 #include "vtkNew.h"                   // initialize cells that are used for the implementation
 #include "vtkNonLinearCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadraticEdge;
 class vtkBiQuadraticQuad;
 class vtkBiQuadraticTriangle;
@@ -226,4 +227,5 @@ inline int vtkTriQuadraticPyramid::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkTriangle.cxx b/Common/DataModel/vtkTriangle.cxx
index 9aa06e5e3ee647a7263b9e28dc86a6543cb401c5..fad03d75d451dc9587225fcc052d6ae7451ef3fa 100644
--- a/Common/DataModel/vtkTriangle.cxx
+++ b/Common/DataModel/vtkTriangle.cxx
@@ -30,6 +30,7 @@
 #include <limits>
 #include <utility>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTriangle);
 
 //------------------------------------------------------------------------------
@@ -1710,3 +1711,4 @@ void vtkTriangle::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Line:\n";
   this->Line->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkTriangle.h b/Common/DataModel/vtkTriangle.h
index 9125fa08733c61e71300ca2df8244f65f1726e11..5d726a5282707c44f1a00809ba2622ee3842cef9 100644
--- a/Common/DataModel/vtkTriangle.h
+++ b/Common/DataModel/vtkTriangle.h
@@ -28,6 +28,7 @@
 
 #include "vtkMath.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkQuadric;
 class vtkIncrementalPointLocator;
@@ -293,4 +294,5 @@ inline double vtkTriangle::TriangleArea(const double p1[3], const double p2[3],
   return 0.5 * vtkMath::Norm(n);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkTriangleStrip.cxx b/Common/DataModel/vtkTriangleStrip.cxx
index 0d3f5ce893c4a2c64d7ef426a4226bce8f055ca4..490d03ed0088529f5abded4d57d5fac642e44c0d 100644
--- a/Common/DataModel/vtkTriangleStrip.cxx
+++ b/Common/DataModel/vtkTriangleStrip.cxx
@@ -22,6 +22,7 @@
 #include "vtkPoints.h"
 #include "vtkTriangle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTriangleStrip);
 
 //------------------------------------------------------------------------------
@@ -344,3 +345,4 @@ void vtkTriangleStrip::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Triangle:\n";
   this->Triangle->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkTriangleStrip.h b/Common/DataModel/vtkTriangleStrip.h
index 83a22aa65578a7a8384b7b2b694448b791189736..673a71611d47e4bd5f33fbb67a2989b849a76299 100644
--- a/Common/DataModel/vtkTriangleStrip.h
+++ b/Common/DataModel/vtkTriangleStrip.h
@@ -30,6 +30,7 @@
 #include "vtkCell.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkTriangle;
 class vtkIncrementalPointLocator;
@@ -93,4 +94,5 @@ private:
   void operator=(const vtkTriangleStrip&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkUndirectedGraph.cxx b/Common/DataModel/vtkUndirectedGraph.cxx
index 313d21feebe1535a8a260bf000f971a7aa9ef6fc..2fade9fe03f2d23d81d3cad9e81f434e4aac091a 100644
--- a/Common/DataModel/vtkUndirectedGraph.cxx
+++ b/Common/DataModel/vtkUndirectedGraph.cxx
@@ -31,6 +31,7 @@
 //------------------------------------------------------------------------------
 // class vtkUndirectedGraph
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUndirectedGraph);
 //------------------------------------------------------------------------------
 vtkUndirectedGraph::vtkUndirectedGraph() = default;
@@ -130,3 +131,4 @@ void vtkUndirectedGraph::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkUndirectedGraph.h b/Common/DataModel/vtkUndirectedGraph.h
index 75bbfe3b1dcc0fbc330ae0dbaff520ab7ca6a0e8..ce31575e30a3961de1572f7bce464a294e139bfc 100644
--- a/Common/DataModel/vtkUndirectedGraph.h
+++ b/Common/DataModel/vtkUndirectedGraph.h
@@ -45,6 +45,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkUndirectedGraph : public vtkGraph
 {
 public:
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkUndirectedGraph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkUniformGrid.cxx b/Common/DataModel/vtkUniformGrid.cxx
index ae071584df2ede7b29514a2d5f83c1224bafd388..010748d34f3ddb6e88f28290118fc64806ee7203 100644
--- a/Common/DataModel/vtkUniformGrid.cxx
+++ b/Common/DataModel/vtkUniformGrid.cxx
@@ -33,6 +33,7 @@
 #include "vtkVertex.h"
 #include "vtkVoxel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUniformGrid);
 
 unsigned char vtkUniformGrid::MASKED_CELL_VALUE =
@@ -1083,3 +1084,4 @@ bool vtkUniformGrid::HasAnyBlankCells()
   int cellBlanking = this->CellData->HasAnyGhostBitSet(vtkDataSetAttributes::HIDDENCELL);
   return cellBlanking || this->HasAnyBlankPoints();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkUniformGrid.h b/Common/DataModel/vtkUniformGrid.h
index 561c6ab0d492a204a6cd369f7201c8aeeb6b15f5..714359bb53a28b252a1c318c0e165dd013fad8a8 100644
--- a/Common/DataModel/vtkUniformGrid.h
+++ b/Common/DataModel/vtkUniformGrid.h
@@ -26,6 +26,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkImageData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEmptyCell;
 class vtkStructuredVisibilityConstraint;
 class vtkUnsignedCharArray;
@@ -208,4 +209,5 @@ private:
   static unsigned char MASKED_CELL_VALUE;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkUniformGridAMR.cxx b/Common/DataModel/vtkUniformGridAMR.cxx
index b3077d7013ab7e6b6192dde7cb84dd799a3ab430..0024977bbc287fc9fab63030b066de1aac41a739 100644
--- a/Common/DataModel/vtkUniformGridAMR.cxx
+++ b/Common/DataModel/vtkUniformGridAMR.cxx
@@ -24,6 +24,7 @@
 #include "vtkUniformGrid.h"
 #include "vtkUniformGridAMRDataIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUniformGridAMR);
 
 //------------------------------------------------------------------------------
@@ -367,3 +368,4 @@ void vtkUniformGridAMR::GetMax(double max[3])
   max[1] = bb[3];
   max[2] = bb[5];
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkUniformGridAMR.h b/Common/DataModel/vtkUniformGridAMR.h
index ae679ad4c335cd4c9d2cc56c227b5d8bb84dabdd..2af680d031218033522577ea1c2bae62417802b6 100644
--- a/Common/DataModel/vtkUniformGridAMR.h
+++ b/Common/DataModel/vtkUniformGridAMR.h
@@ -28,6 +28,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkCompositeDataSet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataIterator;
 class vtkUniformGrid;
 class vtkAMRInformation;
@@ -184,4 +185,5 @@ private:
   friend class vtkUniformGridAMRDataIterator;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkUniformGridAMRDataIterator.cxx b/Common/DataModel/vtkUniformGridAMRDataIterator.cxx
index 8be5d7a69fdc98012401920c2f657ca6c08507ac..c386f15fbfd647ea89992b43918be09a18ff5d07 100644
--- a/Common/DataModel/vtkUniformGridAMRDataIterator.cxx
+++ b/Common/DataModel/vtkUniformGridAMRDataIterator.cxx
@@ -23,6 +23,7 @@
 #include <cassert>
 
 //----------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class AMRIndexIterator : public vtkObject
 {
 public:
@@ -216,3 +217,4 @@ int vtkUniformGridAMRDataIterator::IsDoneWithTraversal()
 {
   return (!this->Iter) || this->Iter->IsDone();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkUniformGridAMRDataIterator.h b/Common/DataModel/vtkUniformGridAMRDataIterator.h
index 39c83c856cb5f5a0f76c040ebcacf766a17acdb5..3ede000c13166dfdf50f6a08fffc9c1f7348ea49 100644
--- a/Common/DataModel/vtkUniformGridAMRDataIterator.h
+++ b/Common/DataModel/vtkUniformGridAMRDataIterator.h
@@ -26,6 +26,7 @@
 #include "vtkCompositeDataIterator.h"
 #include "vtkSmartPointer.h" //for member variable Information
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkAMRInformation;
 class vtkAMRDataInternals;
@@ -107,4 +108,5 @@ private:
   void GetCurrentIndexPair(unsigned int& level, unsigned int& id);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkUniformHyperTreeGrid.cxx b/Common/DataModel/vtkUniformHyperTreeGrid.cxx
index caa27f2fcdef31bceed05976cb3ff89b3c0730ae..c6252b7ea61f8a6d82d9bf282d73416fe6909055 100644
--- a/Common/DataModel/vtkUniformHyperTreeGrid.cxx
+++ b/Common/DataModel/vtkUniformHyperTreeGrid.cxx
@@ -22,6 +22,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <deque>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUniformHyperTreeGrid);
 
 // Helper macros to quickly fetch a HT at a given index or iterator
@@ -461,3 +462,4 @@ unsigned long vtkUniformHyperTreeGrid::GetActualMemorySizeBytes()
 
   return size;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkUniformHyperTreeGrid.h b/Common/DataModel/vtkUniformHyperTreeGrid.h
index af8c88bcedbedef198950e6f3437bcdace2a3da2..cf7005c536fd609d229c711a67ef9eff4b34d282 100644
--- a/Common/DataModel/vtkUniformHyperTreeGrid.h
+++ b/Common/DataModel/vtkUniformHyperTreeGrid.h
@@ -38,6 +38,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkHyperTreeGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkHyperTreeGridScales;
 
@@ -241,4 +242,5 @@ private:
   void operator=(const vtkUniformHyperTreeGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkUnstructuredGrid.cxx b/Common/DataModel/vtkUnstructuredGrid.cxx
index 5494308567cc66aef5bdf76e60ee3cdbb58ebb27..3c7ac84dfd1767cae40fb2c34f1341117c009d3a 100644
--- a/Common/DataModel/vtkUnstructuredGrid.cxx
+++ b/Common/DataModel/vtkUnstructuredGrid.cxx
@@ -89,6 +89,7 @@
 #include <algorithm>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnstructuredGrid);
 vtkStandardExtendedNewMacro(vtkUnstructuredGrid);
 
@@ -2497,3 +2498,4 @@ vtkUnstructuredGrid* vtkUnstructuredGrid::GetData(vtkInformationVector* v, int i
 {
   return vtkUnstructuredGrid::GetData(v->GetInformationObject(i));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkUnstructuredGrid.h b/Common/DataModel/vtkUnstructuredGrid.h
index 3537a97e66c322c7d5c05167efff4fbca001b2c2..093d1d931c887349194106c83db873d6e456d175 100644
--- a/Common/DataModel/vtkUnstructuredGrid.h
+++ b/Common/DataModel/vtkUnstructuredGrid.h
@@ -37,6 +37,7 @@
 
 #include "vtkSmartPointer.h" // for smart pointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkAbstractCellLinks;
 class vtkBezierCurve;
@@ -657,4 +658,5 @@ private:
   void Cleanup();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkUnstructuredGridBase.cxx b/Common/DataModel/vtkUnstructuredGridBase.cxx
index 6e50c0c8a37cf5b5d46a2ea374d5d2ed86c03674..b5191f092a8ee45aa8c344e36a3a5c89b3ad82f7 100644
--- a/Common/DataModel/vtkUnstructuredGridBase.cxx
+++ b/Common/DataModel/vtkUnstructuredGridBase.cxx
@@ -20,6 +20,7 @@
 #include "vtkSmartPointer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkUnstructuredGridBase::vtkUnstructuredGridBase() = default;
 
 //------------------------------------------------------------------------------
@@ -79,3 +80,4 @@ void vtkUnstructuredGridBase::ReplaceCell(vtkIdType cellId, int npts, const vtkI
 {
   this->InternalReplaceCell(cellId, npts, pts);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkUnstructuredGridBase.h b/Common/DataModel/vtkUnstructuredGridBase.h
index 0a884ccf1f4d07dfd1d98114f8761121b742eefe..2bb3a556a2e013ff3d1d54ccf741f30b09315d78 100644
--- a/Common/DataModel/vtkUnstructuredGridBase.h
+++ b/Common/DataModel/vtkUnstructuredGridBase.h
@@ -31,6 +31,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkPointSet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONDATAMODEL_EXPORT vtkUnstructuredGridBase : public vtkPointSet
 {
 public:
@@ -129,4 +130,5 @@ private:
   void operator=(const vtkUnstructuredGridBase&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkUnstructuredGridCellIterator.cxx b/Common/DataModel/vtkUnstructuredGridCellIterator.cxx
index 78c0e9cf197c6c44261dd0d466cb0354958cc693..a4f31df80a02e40a03cd13879e595e2e2cde0e7a 100644
--- a/Common/DataModel/vtkUnstructuredGridCellIterator.cxx
+++ b/Common/DataModel/vtkUnstructuredGridCellIterator.cxx
@@ -26,6 +26,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnstructuredGridCellIterator);
 
 //------------------------------------------------------------------------------
@@ -196,3 +197,4 @@ void vtkUnstructuredGridCellIterator::FetchFaces()
     this->Faces->SetNumberOfIds(0);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkUnstructuredGridCellIterator.h b/Common/DataModel/vtkUnstructuredGridCellIterator.h
index 8aa120239aaa95e743cdba1944c5fde62d044e0d..8dbdd4cb0cff3e9d9a11ab2ba7be3f36e4a07e6b 100644
--- a/Common/DataModel/vtkUnstructuredGridCellIterator.h
+++ b/Common/DataModel/vtkUnstructuredGridCellIterator.h
@@ -26,6 +26,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkSmartPointer.h"          // For vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkIdTypeArray;
 class vtkUnsignedCharArray;
@@ -85,4 +86,5 @@ private:
   void operator=(const vtkUnstructuredGridCellIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkUnstructuredGridCellIterator_h
diff --git a/Common/DataModel/vtkVector.h b/Common/DataModel/vtkVector.h
index 0cdc231a1ccf04f6949f91ec08f51138afe17952..ef3ef5cf3bf6c44564ca0acd3c7d9d5f8f101e8b 100644
--- a/Common/DataModel/vtkVector.h
+++ b/Common/DataModel/vtkVector.h
@@ -33,6 +33,7 @@
 
 #include <cmath> // For math functions
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T, int Size>
 class vtkVector : public vtkTuple<T, Size>
 {
@@ -519,5 +520,6 @@ public:
   vtkVectorDerivedMacro(vtkVector4d, double, 4);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkVector_h
 // VTK-HeaderTest-Exclude: vtkVector.h
diff --git a/Common/DataModel/vtkVectorOperators.h b/Common/DataModel/vtkVectorOperators.h
index 9755233814c82cb2ac73db9a5fdf159ad73ba635..92c36b7f21ed6ba73d20e47718e34d59e4922a5c 100644
--- a/Common/DataModel/vtkVectorOperators.h
+++ b/Common/DataModel/vtkVectorOperators.h
@@ -22,6 +22,7 @@
 
 // Description:
 // Unary minus / negation of vector.
+VTK_ABI_NAMESPACE_BEGIN
 template <typename A, int Size>
 vtkVector<A, Size> operator-(const vtkVector<A, Size>& v)
 {
@@ -190,5 +191,6 @@ vtkVectorOperatorMacro(vtkVector3i, int, 3);
 vtkVectorOperatorMacro(vtkVector3f, float, 3);
 vtkVectorOperatorMacro(vtkVector3d, double, 3);
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkVectorOperators.h
diff --git a/Common/DataModel/vtkVertex.cxx b/Common/DataModel/vtkVertex.cxx
index 0d61c6013ffe9bb2e3bf0d960fb66decfa1c7740..2066a9a5f2dc978a6e30ecc289598a2c193e70fe 100644
--- a/Common/DataModel/vtkVertex.cxx
+++ b/Common/DataModel/vtkVertex.cxx
@@ -22,6 +22,7 @@
 #include "vtkPointData.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVertex);
 
 //------------------------------------------------------------------------------
@@ -260,3 +261,4 @@ void vtkVertex::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkVertex.h b/Common/DataModel/vtkVertex.h
index d2980d907e4864b07f738cf1f2a7d92e5eacfbea..54db1198c5dd049e9cd174776b8d877dbe8773cc 100644
--- a/Common/DataModel/vtkVertex.h
+++ b/Common/DataModel/vtkVertex.h
@@ -25,6 +25,7 @@
 #include "vtkCell.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkVertex : public vtkCell
@@ -142,4 +143,5 @@ inline int vtkVertex::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkVertexListIterator.cxx b/Common/DataModel/vtkVertexListIterator.cxx
index 9bed98725c2150cf1a051283ef1b8365509d5f0e..9c46848c306e75df0e5d9494f1f510a6ae196887 100644
--- a/Common/DataModel/vtkVertexListIterator.cxx
+++ b/Common/DataModel/vtkVertexListIterator.cxx
@@ -26,6 +26,7 @@
 #include "vtkInformation.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVertexListIterator);
 //------------------------------------------------------------------------------
 vtkVertexListIterator::vtkVertexListIterator()
@@ -75,3 +76,4 @@ void vtkVertexListIterator::PrintSelf(ostream& os, vtkIndent indent)
     this->Graph->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkVertexListIterator.h b/Common/DataModel/vtkVertexListIterator.h
index 56412a23a6af1dbb7dbda873cf13ef00de300271..635de892a88c239d7b5c06accba71db73daee6ce 100644
--- a/Common/DataModel/vtkVertexListIterator.h
+++ b/Common/DataModel/vtkVertexListIterator.h
@@ -39,6 +39,7 @@
 
 #include "vtkGraph.h" // For edge type definitions
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraphEdge;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkVertexListIterator : public vtkObject
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkVertexListIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkVoxel.cxx b/Common/DataModel/vtkVoxel.cxx
index b139dd7b2fae2bbce64e75552407c87ed114b148..a4aff585b609f0377daa1dd509e6db8723b87de4 100644
--- a/Common/DataModel/vtkVoxel.cxx
+++ b/Common/DataModel/vtkVoxel.cxx
@@ -30,6 +30,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVoxel);
 
 //------------------------------------------------------------------------------
@@ -446,8 +447,10 @@ constexpr vtkIdType pointToOneRingPoints[vtkVoxel::NumberOfPoints][vtkVoxel::Max
 //
 // Marching cubes case table
 //
+VTK_ABI_NAMESPACE_END
 #include "vtkMarchingCubesTriangleCases.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkVoxel::Contour(double value, vtkDataArray* cellScalars, vtkIncrementalPointLocator* locator,
   vtkCellArray* verts, vtkCellArray* lines, vtkCellArray* polys, vtkPointData* inPd,
   vtkPointData* outPd, vtkCellData* inCd, vtkIdType cellId, vtkCellData* outCd)
@@ -893,3 +896,4 @@ void vtkVoxel::PrintSelf(ostream& os, vtkIndent indent)
     os << "None\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkVoxel.h b/Common/DataModel/vtkVoxel.h
index 728c36e69b26275ee6b3851685613f1e727206fc..22d75681634588eaf73e2b2953e8e7da56206024 100644
--- a/Common/DataModel/vtkVoxel.h
+++ b/Common/DataModel/vtkVoxel.h
@@ -31,6 +31,7 @@
 #include "vtkCell3D.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkPixel;
 class vtkIncrementalPointLocator;
@@ -214,4 +215,5 @@ private:
   vtkPixel* Pixel;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkWedge.cxx b/Common/DataModel/vtkWedge.cxx
index e7ece4e1b162c598819d2aee2c069ffb517c9399..c7b405c50bc326ef6300607782a7f26df6083fb7 100644
--- a/Common/DataModel/vtkWedge.cxx
+++ b/Common/DataModel/vtkWedge.cxx
@@ -30,6 +30,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWedge);
 
 namespace
@@ -1063,3 +1064,4 @@ void vtkWedge::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Quad:\n";
   this->Quad->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkWedge.h b/Common/DataModel/vtkWedge.h
index a9af7d3b889f5ddb83dbd2e93ec21e9044b6d939..6633304d1a83c494194c71f7603900d917b3b2e4 100644
--- a/Common/DataModel/vtkWedge.h
+++ b/Common/DataModel/vtkWedge.h
@@ -34,6 +34,7 @@
 #include "vtkCell3D.h"
 #include "vtkCommonDataModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLine;
 class vtkTriangle;
 class vtkQuad;
@@ -210,4 +211,5 @@ inline int vtkWedge::GetParametricCenter(double pcoords[3])
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/DataModel/vtkXMLDataElement.cxx b/Common/DataModel/vtkXMLDataElement.cxx
index 29e96a44bab535aa273bd34e7287ccc9f7d12c25..6c47bc12fc27690bb9911b21d702a69287cf0cd6 100644
--- a/Common/DataModel/vtkXMLDataElement.cxx
+++ b/Common/DataModel/vtkXMLDataElement.cxx
@@ -26,6 +26,7 @@ using std::ostringstream;
 using std::string;
 #include <locale> // C++ locale
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLDataElement);
 
 //------------------------------------------------------------------------------
@@ -1129,3 +1130,4 @@ void vtkXMLDataElement::PrintSelf(ostream& os, vtkIndent indent)
      << endl;
   os << indent << "CharacterDataWidth: " << this->CharacterDataWidth << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/DataModel/vtkXMLDataElement.h b/Common/DataModel/vtkXMLDataElement.h
index e561e6a3f9b5b3cc37cd1eeb64541142dee23253..c490d7d6ee753450fee04f6de857d33cec8e9fce 100644
--- a/Common/DataModel/vtkXMLDataElement.h
+++ b/Common/DataModel/vtkXMLDataElement.h
@@ -31,6 +31,7 @@
 #include "vtkCommonDataModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXMLDataParser;
 
 class VTKCOMMONDATAMODEL_EXPORT vtkXMLDataElement : public vtkObject
@@ -374,4 +375,5 @@ inline void vtkXMLDataElement::AddCharacterData(const char* data, size_t length)
   return;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkAlgorithm.cxx b/Common/ExecutionModel/vtkAlgorithm.cxx
index b36a23d921ef776590079e623124f8541f7d55d9..e182f632cc1451a1f6375c2026a9b33aba3e44ba 100644
--- a/Common/ExecutionModel/vtkAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkAlgorithm.cxx
@@ -49,6 +49,7 @@
 #include <vector>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAlgorithm);
 
 vtkCxxSetObjectMacro(vtkAlgorithm, Information, vtkInformation);
@@ -1866,3 +1867,4 @@ void vtkAlgorithm::AddInputDataObject(int port, vtkDataObject* input)
     tp->Delete();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkAlgorithm.h b/Common/ExecutionModel/vtkAlgorithm.h
index b3b6cd9879b2a42b6d123e5136c6583cded9b9e3..bfde3203b998d31c4649f8544ba8d4e0ac124553 100644
--- a/Common/ExecutionModel/vtkAlgorithm.h
+++ b/Common/ExecutionModel/vtkAlgorithm.h
@@ -35,6 +35,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkAlgorithmInternals;
 class vtkAlgorithmOutput;
@@ -953,4 +954,5 @@ private:
   bool AbortOutput;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkAlgorithmOutput.cxx b/Common/ExecutionModel/vtkAlgorithmOutput.cxx
index 53d155e1781d1a1d64706b65fed1e5ef55bba458..1824df3b82ea1d4b898f218069552b693a1d0d66 100644
--- a/Common/ExecutionModel/vtkAlgorithmOutput.cxx
+++ b/Common/ExecutionModel/vtkAlgorithmOutput.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAlgorithmOutput);
 
 //------------------------------------------------------------------------------
@@ -66,3 +67,4 @@ void vtkAlgorithmOutput::SetProducer(vtkAlgorithm* producer)
 {
   this->Producer = producer;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkAlgorithmOutput.h b/Common/ExecutionModel/vtkAlgorithmOutput.h
index e94a666ba156b058923155236abe31e617a93b53..69993f9e16be7a276960909cad93be4d0c423b34 100644
--- a/Common/ExecutionModel/vtkAlgorithmOutput.h
+++ b/Common/ExecutionModel/vtkAlgorithmOutput.h
@@ -31,6 +31,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithm;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkAlgorithmOutput : public vtkObject
@@ -58,4 +59,5 @@ private:
   void operator=(const vtkAlgorithmOutput&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkAnnotationLayersAlgorithm.cxx b/Common/ExecutionModel/vtkAnnotationLayersAlgorithm.cxx
index 87dafa11f9f37f593e075695ed9a8590ab3914d4..220b9fd74e936dfb73ddfe21736aa25b2d55a9d7 100644
--- a/Common/ExecutionModel/vtkAnnotationLayersAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkAnnotationLayersAlgorithm.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAnnotationLayersAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -127,3 +128,4 @@ int vtkAnnotationLayersAlgorithm::RequestData(vtkInformation* vtkNotUsed(request
 {
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkAnnotationLayersAlgorithm.h b/Common/ExecutionModel/vtkAnnotationLayersAlgorithm.h
index fb9117af3a1e124afe1f475ad61e68971d7cb2df..0da219301d867194e78195684798d2b8c7e81975 100644
--- a/Common/ExecutionModel/vtkAnnotationLayersAlgorithm.h
+++ b/Common/ExecutionModel/vtkAnnotationLayersAlgorithm.h
@@ -37,6 +37,7 @@
 #include "vtkAnnotationLayers.h"           // makes things a bit easier
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkAnnotationLayersAlgorithm : public vtkAlgorithm
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkAnnotationLayersAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkArrayDataAlgorithm.cxx b/Common/ExecutionModel/vtkArrayDataAlgorithm.cxx
index 410e3109fd98c37a3cafc410cde3faf294cc46e3..995b8c96655a834e2d1f580d58d2c94cb1608136 100644
--- a/Common/ExecutionModel/vtkArrayDataAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkArrayDataAlgorithm.cxx
@@ -27,6 +27,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkArrayDataAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -131,3 +132,4 @@ int vtkArrayDataAlgorithm::RequestData(vtkInformation* vtkNotUsed(request),
 {
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkArrayDataAlgorithm.h b/Common/ExecutionModel/vtkArrayDataAlgorithm.h
index 81a7198c81301a9c48009a637903bae3964616ca..f941715e9172c9602216865ecb9f4d0e7983dfc3 100644
--- a/Common/ExecutionModel/vtkArrayDataAlgorithm.h
+++ b/Common/ExecutionModel/vtkArrayDataAlgorithm.h
@@ -47,6 +47,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArrayData;
 class vtkDataSet;
 
@@ -107,4 +108,5 @@ private:
   void operator=(const vtkArrayDataAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.cxx b/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.cxx
index 86d6f73be7e613d6a5f484ac8f0787ed91542d8f..febd617323c8a2d6bc0e0173c990612fa961c687 100644
--- a/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.cxx
+++ b/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.cxx
@@ -25,6 +25,7 @@
 #include "vtkInformationVector.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCachedStreamingDemandDrivenPipeline);
 
 //------------------------------------------------------------------------------
@@ -273,3 +274,4 @@ int vtkCachedStreamingDemandDrivenPipeline ::ExecuteData(
 
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.h b/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.h
index 5c5db6dcd07ac00fe5cc92794bdca34a2fdab81e..12f522b9415db7e92b4de42e83a5a08b13031f2e 100644
--- a/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.h
+++ b/Common/ExecutionModel/vtkCachedStreamingDemandDrivenPipeline.h
@@ -24,6 +24,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationIntegerKey;
 class vtkInformationIntegerVectorKey;
 
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkCachedStreamingDemandDrivenPipeline&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkCastToConcrete.cxx b/Common/ExecutionModel/vtkCastToConcrete.cxx
index 701d2577489407af852d8a276b7de4d0f5d21f6c..1660be366ebf084958be2a8a4c287c04f4d99156 100644
--- a/Common/ExecutionModel/vtkCastToConcrete.cxx
+++ b/Common/ExecutionModel/vtkCastToConcrete.cxx
@@ -23,6 +23,7 @@
 #include "vtkStructuredPoints.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCastToConcrete);
 
 int vtkCastToConcrete::RequestData(vtkInformation* vtkNotUsed(request),
@@ -61,3 +62,4 @@ void vtkCastToConcrete::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkCastToConcrete.h b/Common/ExecutionModel/vtkCastToConcrete.h
index 52db46b556d13a74c5cfea28faeabd1e3871dd3e..99399401485dcdceaf475cdfb7dd387a2014c68b 100644
--- a/Common/ExecutionModel/vtkCastToConcrete.h
+++ b/Common/ExecutionModel/vtkCastToConcrete.h
@@ -44,6 +44,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkCastToConcrete : public vtkDataSetAlgorithm
 {
 
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkCastToConcrete&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkCompositeDataPipeline.cxx b/Common/ExecutionModel/vtkCompositeDataPipeline.cxx
index 63d795ad1afbc882352349e2476bc6aa6bf89350..a53096d4852444d63718059fddbd95e6afe27bb2 100644
--- a/Common/ExecutionModel/vtkCompositeDataPipeline.cxx
+++ b/Common/ExecutionModel/vtkCompositeDataPipeline.cxx
@@ -41,6 +41,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkTrivialProducer.h"
 #include "vtkUniformGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeDataPipeline);
 
 vtkInformationKeyMacro(vtkCompositeDataPipeline, LOAD_REQUESTED_BLOCKS, Integer);
@@ -1126,3 +1127,4 @@ void vtkCompositeDataPipeline::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkCompositeDataPipeline.h b/Common/ExecutionModel/vtkCompositeDataPipeline.h
index 4f1be664dcfb2bee6e9e10e0e1d3f155f28effb7..c4fc9b9830f14f0bbe0b4d4028c27be57b361d45 100644
--- a/Common/ExecutionModel/vtkCompositeDataPipeline.h
+++ b/Common/ExecutionModel/vtkCompositeDataPipeline.h
@@ -50,6 +50,7 @@
 
 #include <vector> // for vector in return type
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkCompositeDataIterator;
 class vtkInformationDoubleKey;
@@ -211,4 +212,5 @@ private:
   void operator=(const vtkCompositeDataPipeline&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkCompositeDataSetAlgorithm.cxx b/Common/ExecutionModel/vtkCompositeDataSetAlgorithm.cxx
index 13dcc41512c6217d48b2397340815fc71ac33ac5..bd99468a1c66bc8a70f0076202c2105d65af1677 100644
--- a/Common/ExecutionModel/vtkCompositeDataSetAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkCompositeDataSetAlgorithm.cxx
@@ -23,6 +23,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeDataSetAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -129,3 +130,4 @@ void vtkCompositeDataSetAlgorithm::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkCompositeDataSetAlgorithm.h b/Common/ExecutionModel/vtkCompositeDataSetAlgorithm.h
index 3370cfe4fd4bff479e618261d65b056ab1be83e7..491e7def30eeec03dbdf5c031d40187152db7d7f 100644
--- a/Common/ExecutionModel/vtkCompositeDataSetAlgorithm.h
+++ b/Common/ExecutionModel/vtkCompositeDataSetAlgorithm.h
@@ -27,6 +27,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkCompositeDataSetAlgorithm : public vtkAlgorithm
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkCompositeDataSetAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkDataObjectAlgorithm.cxx b/Common/ExecutionModel/vtkDataObjectAlgorithm.cxx
index dd0d7619114d78341a0483436f416d98ad78c8cd..113a385161335965d9c80c1cda841e703d58f615 100644
--- a/Common/ExecutionModel/vtkDataObjectAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkDataObjectAlgorithm.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataObjectAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -179,3 +180,4 @@ bool vtkDataObjectAlgorithm::SetOutputDataObject(
   }
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkDataObjectAlgorithm.h b/Common/ExecutionModel/vtkDataObjectAlgorithm.h
index 3cb3d3fdcf498d42ff045cae2386f962cfa6716c..423606329f8e238f7b06fbe2dbdb748aba70be34 100644
--- a/Common/ExecutionModel/vtkDataObjectAlgorithm.h
+++ b/Common/ExecutionModel/vtkDataObjectAlgorithm.h
@@ -37,6 +37,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkDataObject.h"                 // makes things a bit easier
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkDataObject;
 
@@ -138,4 +139,5 @@ private:
   void operator=(const vtkDataObjectAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkDataSetAlgorithm.cxx b/Common/ExecutionModel/vtkDataSetAlgorithm.cxx
index acbb46e802fcce3d184857b538a4ee18297997e8..8def325c98e25d76816b2939e5c9beb30395dbd7 100644
--- a/Common/ExecutionModel/vtkDataSetAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkDataSetAlgorithm.cxx
@@ -27,6 +27,7 @@
 #include "vtkStructuredPoints.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataSetAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -232,3 +233,4 @@ void vtkDataSetAlgorithm::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkDataSetAlgorithm.h b/Common/ExecutionModel/vtkDataSetAlgorithm.h
index f0fc36319d025b31fab7f8031ff2c44913fed429..25706806a0737cd3ea474cf6d910fa065f687a59 100644
--- a/Common/ExecutionModel/vtkDataSetAlgorithm.h
+++ b/Common/ExecutionModel/vtkDataSetAlgorithm.h
@@ -37,6 +37,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkImageData;
 class vtkPolyData;
@@ -187,4 +188,5 @@ private:
   void operator=(const vtkDataSetAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkDemandDrivenPipeline.cxx b/Common/ExecutionModel/vtkDemandDrivenPipeline.cxx
index 5664631bb873ef7be11d4c14bd2f771a8f74e270..1383daba8735a01e4d851cfe4d1fa6ae758b61f9 100644
--- a/Common/ExecutionModel/vtkDemandDrivenPipeline.cxx
+++ b/Common/ExecutionModel/vtkDemandDrivenPipeline.cxx
@@ -37,6 +37,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDemandDrivenPipeline);
 
 vtkInformationKeyMacro(vtkDemandDrivenPipeline, DATA_NOT_GENERATED, Integer);
@@ -1076,3 +1077,4 @@ int vtkDemandDrivenPipeline::GetReleaseDataFlag(int port)
   }
   return info->Get(RELEASE_DATA());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkDemandDrivenPipeline.h b/Common/ExecutionModel/vtkDemandDrivenPipeline.h
index 36e8a6b9f5abfce71eaaa489080a88b621936f44..2b96ffe17d01da86310948d6e26750e18083cf1f 100644
--- a/Common/ExecutionModel/vtkDemandDrivenPipeline.h
+++ b/Common/ExecutionModel/vtkDemandDrivenPipeline.h
@@ -27,6 +27,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkExecutive.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkDataArray;
 class vtkDataSetAttributes;
@@ -233,4 +234,5 @@ private:
   void operator=(const vtkDemandDrivenPipeline&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkDirectedGraphAlgorithm.cxx b/Common/ExecutionModel/vtkDirectedGraphAlgorithm.cxx
index a6605ce06a0cb74f87f451b02d6245961e621d06..5b2f3947ba1f2f0fecb41d92e64266e168a4a507 100644
--- a/Common/ExecutionModel/vtkDirectedGraphAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkDirectedGraphAlgorithm.cxx
@@ -26,6 +26,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDirectedGraphAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -130,3 +131,4 @@ int vtkDirectedGraphAlgorithm::RequestData(vtkInformation* vtkNotUsed(request),
 {
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkDirectedGraphAlgorithm.h b/Common/ExecutionModel/vtkDirectedGraphAlgorithm.h
index 3f0e5c2aeae1cdaa2c6297d4f0f2b016cadef810..62a9ac68015b4d5cc6f2278a12aec4f73ec9c577 100644
--- a/Common/ExecutionModel/vtkDirectedGraphAlgorithm.h
+++ b/Common/ExecutionModel/vtkDirectedGraphAlgorithm.h
@@ -47,6 +47,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkDirectedGraph.h"              // makes things a bit easier
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkDirectedGraphAlgorithm : public vtkAlgorithm
@@ -106,4 +107,5 @@ private:
   void operator=(const vtkDirectedGraphAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkEnsembleSource.cxx b/Common/ExecutionModel/vtkEnsembleSource.cxx
index 678cd8b842f2e6bbc74ac1ba77bdb0612921db1d..e92710a1afb34799fc23425a217b70601605af4d 100644
--- a/Common/ExecutionModel/vtkEnsembleSource.cxx
+++ b/Common/ExecutionModel/vtkEnsembleSource.cxx
@@ -27,6 +27,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEnsembleSource);
 vtkCxxSetObjectMacro(vtkEnsembleSource, MetaData, vtkTable);
 
@@ -176,3 +177,4 @@ void vtkEnsembleSource::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "(nullptr)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkEnsembleSource.h b/Common/ExecutionModel/vtkEnsembleSource.h
index 62ea687492cdae8df8f2dbc1143b4cbe08fc20d6..17479a4f5fc6bab45bba404aad64abe6ddad2787 100644
--- a/Common/ExecutionModel/vtkEnsembleSource.h
+++ b/Common/ExecutionModel/vtkEnsembleSource.h
@@ -30,6 +30,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkEnsembleSourceInternal;
 class vtkTable;
 class vtkInformationDataObjectMetaDataKey;
@@ -112,4 +113,5 @@ private:
   void operator=(const vtkEnsembleSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkExecutive.cxx b/Common/ExecutionModel/vtkExecutive.cxx
index 4204debf6b741d066ecfd1e3f3cb103fd1bdf48d..e99c249b793303aa58710f0798c335339c09e743 100644
--- a/Common/ExecutionModel/vtkExecutive.cxx
+++ b/Common/ExecutionModel/vtkExecutive.cxx
@@ -33,6 +33,7 @@
 
 #include "vtkCompositeDataPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyMacro(vtkExecutive, ALGORITHM_AFTER_FORWARD, Integer);
 vtkInformationKeyMacro(vtkExecutive, ALGORITHM_BEFORE_FORWARD, Integer);
 vtkInformationKeyMacro(vtkExecutive, ALGORITHM_DIRECTION, Integer);
@@ -795,3 +796,4 @@ bool vtkExecutive::CheckAbortedInput(vtkInformationVector** inInfoVec)
   }
   return false;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkExecutive.h b/Common/ExecutionModel/vtkExecutive.h
index 0af04e1155719a54c8ac3e2b067e9fa551a5af19..2626639144ea0abb7b96fe92aa46c3addc87d208 100644
--- a/Common/ExecutionModel/vtkExecutive.h
+++ b/Common/ExecutionModel/vtkExecutive.h
@@ -30,6 +30,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithm;
 class vtkAlgorithmOutput;
 class vtkAlgorithmToExecutiveFriendship;
@@ -293,4 +294,5 @@ private:
   void operator=(const vtkExecutive&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkExplicitStructuredGridAlgorithm.cxx b/Common/ExecutionModel/vtkExplicitStructuredGridAlgorithm.cxx
index 32a9341c601b4ec90dcd5419eb414e6f198732cc..d75d9c213d1875cfada9213aa5ed278124c4bb23 100644
--- a/Common/ExecutionModel/vtkExplicitStructuredGridAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkExplicitStructuredGridAlgorithm.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExplicitStructuredGridAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -178,3 +179,4 @@ int vtkExplicitStructuredGridAlgorithm::FillInputPortInformation(
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkExplicitStructuredGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkExplicitStructuredGridAlgorithm.h b/Common/ExecutionModel/vtkExplicitStructuredGridAlgorithm.h
index 801d45d509516cea2ea392f45e19c32a445b1c9e..b60255d779b00f3bc56c6b6d235d95123f685add 100644
--- a/Common/ExecutionModel/vtkExplicitStructuredGridAlgorithm.h
+++ b/Common/ExecutionModel/vtkExplicitStructuredGridAlgorithm.h
@@ -24,6 +24,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkExplicitStructuredGrid;
 
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkExplicitStructuredGridAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkExtentRCBPartitioner.cxx b/Common/ExecutionModel/vtkExtentRCBPartitioner.cxx
index a2a0c2d78f6a72efe2cebc07e5291a5789147a1a..d95bd8f10fb80d3df9f73f376b9852f5765d35c4 100644
--- a/Common/ExecutionModel/vtkExtentRCBPartitioner.cxx
+++ b/Common/ExecutionModel/vtkExtentRCBPartitioner.cxx
@@ -23,6 +23,7 @@
 #include <cassert>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtentRCBPartitioner);
 
 //------------------------------------------------------------------------------
@@ -422,3 +423,4 @@ void vtkExtentRCBPartitioner::PrintExtent(const std::string& name, int ext[6])
   cout << "]\n";
   cout.flush();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkExtentRCBPartitioner.h b/Common/ExecutionModel/vtkExtentRCBPartitioner.h
index a95b0cb38db39e8179328c75c37aadd409be9342..1c6b592a7881348aeed89ddba5d6d57b12f61890 100644
--- a/Common/ExecutionModel/vtkExtentRCBPartitioner.h
+++ b/Common/ExecutionModel/vtkExtentRCBPartitioner.h
@@ -27,6 +27,7 @@
 #include <string>  // For std::string
 #include <vector>  // For STL vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkExtentRCBPartitioner : public vtkObject
 {
 public:
@@ -220,4 +221,5 @@ private:
   void operator=(const vtkExtentRCBPartitioner&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTKEXTENTRCBPARTITIONER_H_ */
diff --git a/Common/ExecutionModel/vtkExtentSplitter.cxx b/Common/ExecutionModel/vtkExtentSplitter.cxx
index 342c2e99cda260c05a7fed235ee73587d641bd01..fdd3248a0e5b60ec01a7aa76e8ffce29b4750d73 100644
--- a/Common/ExecutionModel/vtkExtentSplitter.cxx
+++ b/Common/ExecutionModel/vtkExtentSplitter.cxx
@@ -20,6 +20,7 @@
 #include <queue>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtentSplitter);
 
 //------------------------------------------------------------------------------
@@ -467,3 +468,4 @@ int vtkExtentSplitter::Max(int a, int b)
 {
   return (a > b) ? a : b;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkExtentSplitter.h b/Common/ExecutionModel/vtkExtentSplitter.h
index 322f87e6d647d15176eea2e67af1e39c7d6ae24c..015b666cf6fbbd5fdb40152191a40d981f2929d0 100644
--- a/Common/ExecutionModel/vtkExtentSplitter.h
+++ b/Common/ExecutionModel/vtkExtentSplitter.h
@@ -32,6 +32,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtentSplitterInternals;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkExtentSplitter : public vtkObject
@@ -131,4 +132,5 @@ private:
   void operator=(const vtkExtentSplitter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkExtentTranslator.cxx b/Common/ExecutionModel/vtkExtentTranslator.cxx
index 3b34c662692b6ff855f285ae28fcf6d510fa7219..7044df72fedcdd300e224436639b1b1562509a20 100644
--- a/Common/ExecutionModel/vtkExtentTranslator.cxx
+++ b/Common/ExecutionModel/vtkExtentTranslator.cxx
@@ -18,6 +18,7 @@
 #include "vtkLargeInteger.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtentTranslator);
 
 vtkInformationKeyMacro(vtkExtentTranslator, DATA_SPLIT_MODE, Integer);
@@ -376,3 +377,4 @@ void vtkExtentTranslator::PrintSelf(ostream& os, vtkIndent indent)
     os << "Unknown\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkExtentTranslator.h b/Common/ExecutionModel/vtkExtentTranslator.h
index 528ac46e868f595532bde53afad24426ac425712..3d593cf97cda03bae49ee128415eb99442d3050b 100644
--- a/Common/ExecutionModel/vtkExtentTranslator.h
+++ b/Common/ExecutionModel/vtkExtentTranslator.h
@@ -28,6 +28,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationIntegerRequestKey;
 class vtkInformationIntegerKey;
 
@@ -141,4 +142,5 @@ private:
   void operator=(const vtkExtentTranslator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkFilteringInformationKeyManager.cxx b/Common/ExecutionModel/vtkFilteringInformationKeyManager.cxx
index 13736569e7d62094ad8918b4f63c4c3748d1ba06..cd2c6ffd538930ddb2716880e26c90ccfba97d54 100644
--- a/Common/ExecutionModel/vtkFilteringInformationKeyManager.cxx
+++ b/Common/ExecutionModel/vtkFilteringInformationKeyManager.cxx
@@ -20,6 +20,7 @@
 
 // Subclass vector so we can directly call constructor.  This works
 // around problems on Borland C++.
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkFilteringInformationKeyManagerKeysType : public std::vector<vtkInformationKey*>
 {
   typedef std::vector<vtkInformationKey*> Superclass;
@@ -92,3 +93,4 @@ void vtkFilteringInformationKeyManager::ClassFinalize()
     vtkFilteringInformationKeyManagerKeys = nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkFilteringInformationKeyManager.h b/Common/ExecutionModel/vtkFilteringInformationKeyManager.h
index 5d8a5902286702c23fe6d0df6f0000575c1102c6..27c4be9d199a706128613ba92c15d89feb3709d1 100644
--- a/Common/ExecutionModel/vtkFilteringInformationKeyManager.h
+++ b/Common/ExecutionModel/vtkFilteringInformationKeyManager.h
@@ -30,6 +30,7 @@
 
 #include "vtkDebugLeaksManager.h" // DebugLeaks exists longer than info keys.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationKey;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkFilteringInformationKeyManager
@@ -61,5 +62,6 @@ private:
 // initialized before and destroyed after it is used.
 static vtkFilteringInformationKeyManager vtkFilteringInformationKeyManagerInstance;
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkFilteringInformationKeyManager.h
diff --git a/Common/ExecutionModel/vtkGraphAlgorithm.cxx b/Common/ExecutionModel/vtkGraphAlgorithm.cxx
index 65ad6adcd0e88678bfc4b2f93bab5303506c2c2b..6b93029af8901ca1e6fd76af254fcc351e39bf2a 100644
--- a/Common/ExecutionModel/vtkGraphAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkGraphAlgorithm.cxx
@@ -26,6 +26,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -167,3 +168,4 @@ int vtkGraphAlgorithm::RequestDataObject(
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkGraphAlgorithm.h b/Common/ExecutionModel/vtkGraphAlgorithm.h
index e073c6a74a84676ce03a0198d81347b59ab63570..2650108ca3481f148c42498ff03b37c0ee9db5df 100644
--- a/Common/ExecutionModel/vtkGraphAlgorithm.h
+++ b/Common/ExecutionModel/vtkGraphAlgorithm.h
@@ -46,6 +46,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkGraph.h"                      // makes things a bit easier
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkGraphAlgorithm : public vtkAlgorithm
@@ -108,4 +109,5 @@ private:
   void operator=(const vtkGraphAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkHierarchicalBoxDataSetAlgorithm.cxx b/Common/ExecutionModel/vtkHierarchicalBoxDataSetAlgorithm.cxx
index 9e4605ea877123c5d095266c50c421b0eb50b72d..11073228c09958e0270e33e3060b6c777336169d 100644
--- a/Common/ExecutionModel/vtkHierarchicalBoxDataSetAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkHierarchicalBoxDataSetAlgorithm.cxx
@@ -21,6 +21,7 @@
 #include "vtkInformationVector.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHierarchicalBoxDataSetAlgorithm);
 //------------------------------------------------------------------------------
 vtkHierarchicalBoxDataSetAlgorithm::vtkHierarchicalBoxDataSetAlgorithm()
@@ -128,3 +129,4 @@ void vtkHierarchicalBoxDataSetAlgorithm::PrintSelf(ostream& os, vtkIndent indent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkHierarchicalBoxDataSetAlgorithm.h b/Common/ExecutionModel/vtkHierarchicalBoxDataSetAlgorithm.h
index af4e80f6c7c045400d7dbd91e3a54cce96ac6689..9b35a16ebab89f4da35479176c7000bc61cbf385 100644
--- a/Common/ExecutionModel/vtkHierarchicalBoxDataSetAlgorithm.h
+++ b/Common/ExecutionModel/vtkHierarchicalBoxDataSetAlgorithm.h
@@ -28,6 +28,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHierarchicalBoxDataSet;
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkHierarchicalBoxDataSetAlgorithm : public vtkAlgorithm
 {
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkHierarchicalBoxDataSetAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkHyperTreeGridAlgorithm.cxx b/Common/ExecutionModel/vtkHyperTreeGridAlgorithm.cxx
index ccb5928fe9d147d6fcbfb33fc35f2fd6f5a4dff7..c1f5168845df3d61e73eb05072f7d4e783f88bda 100644
--- a/Common/ExecutionModel/vtkHyperTreeGridAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkHyperTreeGridAlgorithm.cxx
@@ -26,6 +26,7 @@
 #include "vtkUnstructuredGrid.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkHyperTreeGridAlgorithm::vtkHyperTreeGridAlgorithm()
 {
   // By default, only one input and one output ports
@@ -300,3 +301,4 @@ void vtkHyperTreeGridAlgorithm::AddInputData(int index, vtkDataObject* input)
 {
   this->AddInputDataInternal(index, input);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkHyperTreeGridAlgorithm.h b/Common/ExecutionModel/vtkHyperTreeGridAlgorithm.h
index 6e2d9170d5936b936ddb8a790348380fc7477503..9ec9bc5c95a4ea6ebebdf47fe26b1b8b5d3d490a 100644
--- a/Common/ExecutionModel/vtkHyperTreeGridAlgorithm.h
+++ b/Common/ExecutionModel/vtkHyperTreeGridAlgorithm.h
@@ -38,6 +38,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkDataSetAttributes;
 class vtkHyperTreeGrid;
@@ -168,4 +169,5 @@ private:
   void operator=(const vtkHyperTreeGridAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkImageAlgorithm.cxx b/Common/ExecutionModel/vtkImageAlgorithm.cxx
index 7fc43cd5c7efe2d954575ef8532d67cf67fee82a..4b5203a8f687dfd6f42d3fd6a7d6abb21824e1b0 100644
--- a/Common/ExecutionModel/vtkImageAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkImageAlgorithm.cxx
@@ -25,6 +25,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkImageAlgorithm::vtkImageAlgorithm()
 {
   this->SetNumberOfInputPorts(1);
@@ -413,3 +414,4 @@ void vtkImageAlgorithm::AddInputData(int index, vtkDataObject* input)
 {
   this->AddInputDataInternal(index, input);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkImageAlgorithm.h b/Common/ExecutionModel/vtkImageAlgorithm.h
index 5e8dfab579febf58245b7860f83b7d68e52ba34e..419dde0350770038017768609d1198ccb4539411 100644
--- a/Common/ExecutionModel/vtkImageAlgorithm.h
+++ b/Common/ExecutionModel/vtkImageAlgorithm.h
@@ -31,6 +31,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkImageData;
 
@@ -172,4 +173,5 @@ private:
   void operator=(const vtkImageAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkImageInPlaceFilter.cxx b/Common/ExecutionModel/vtkImageInPlaceFilter.cxx
index 989ac976972b537f39a899a44f045c6adfe86039..ce9e37ac30e33834d6aacc8658a4837a7e509398 100644
--- a/Common/ExecutionModel/vtkImageInPlaceFilter.cxx
+++ b/Common/ExecutionModel/vtkImageInPlaceFilter.cxx
@@ -23,6 +23,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkImageInPlaceFilter::vtkImageInPlaceFilter() = default;
 
 //------------------------------------------------------------------------------
@@ -115,3 +116,4 @@ void vtkImageInPlaceFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkImageInPlaceFilter.h b/Common/ExecutionModel/vtkImageInPlaceFilter.h
index 55bb93ccb094ea2fc94a6cf6566224af663ba3d1..b80c6807ef7d3d32c9037a7869c6c338fb8c70c4 100644
--- a/Common/ExecutionModel/vtkImageInPlaceFilter.h
+++ b/Common/ExecutionModel/vtkImageInPlaceFilter.h
@@ -28,6 +28,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkImageInPlaceFilter : public vtkImageAlgorithm
 {
 public:
@@ -48,4 +49,5 @@ private:
   void operator=(const vtkImageInPlaceFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkImageProgressIterator.cxx b/Common/ExecutionModel/vtkImageProgressIterator.cxx
index 9b011aef5d5b166c98fa0510f41b9b3f07dcaaf1..54f7e9adf7ac6de30f27aed69e393eaf356d719d 100644
--- a/Common/ExecutionModel/vtkImageProgressIterator.cxx
+++ b/Common/ExecutionModel/vtkImageProgressIterator.cxx
@@ -17,4 +17,6 @@
 
 #include "vtkImageProgressIterator.txx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInstantiateTemplateMacro(template class VTKCOMMONEXECUTIONMODEL_EXPORT vtkImageProgressIterator);
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkImageProgressIterator.h b/Common/ExecutionModel/vtkImageProgressIterator.h
index 95fee9ba32e6d647e0300fb12011662450b6925e..fc0a5056e24d393178b7b45c37a82d51f352d853 100644
--- a/Common/ExecutionModel/vtkImageProgressIterator.h
+++ b/Common/ExecutionModel/vtkImageProgressIterator.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkImageIterator.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithm;
 
 template <class DType>
@@ -68,5 +69,6 @@ vtkExternTemplateMacro(
   extern template class VTKCOMMONEXECUTIONMODEL_EXPORT vtkImageProgressIterator);
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkImageProgressIterator.h
diff --git a/Common/ExecutionModel/vtkImageProgressIterator.txx b/Common/ExecutionModel/vtkImageProgressIterator.txx
index 4a5408539c770ea36dafdd8a9f3357992a8e91ff..2dabf3e884a9a695c77b8a863d224269b1f25fd6 100644
--- a/Common/ExecutionModel/vtkImageProgressIterator.txx
+++ b/Common/ExecutionModel/vtkImageProgressIterator.txx
@@ -19,6 +19,7 @@
 #include "vtkImageData.h"
 #include "vtkImageProgressIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class DType>
 vtkImageProgressIterator<DType>::vtkImageProgressIterator(
   vtkImageData* imgd, int* ext, vtkAlgorithm* po, int id)
@@ -68,4 +69,5 @@ vtkTypeBool vtkImageProgressIterator<DType>::IsAtEnd()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkImageToStructuredGrid.cxx b/Common/ExecutionModel/vtkImageToStructuredGrid.cxx
index a62b9aec9371107cbaa17cbf2b2f2328c712dbdd..dddcc2855a32f9b56c7a4970d6aa862dfeefb477 100644
--- a/Common/ExecutionModel/vtkImageToStructuredGrid.cxx
+++ b/Common/ExecutionModel/vtkImageToStructuredGrid.cxx
@@ -28,6 +28,7 @@
 //
 // Standard methods
 //
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageToStructuredGrid);
 
 vtkImageToStructuredGrid::vtkImageToStructuredGrid() = default;
@@ -126,3 +127,4 @@ void vtkImageToStructuredGrid::CopyCellData(vtkImageData* img, vtkStructuredGrid
     sgrid->GetCellData()->AddArray(myArray);
   } // END for all cell arrays
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkImageToStructuredGrid.h b/Common/ExecutionModel/vtkImageToStructuredGrid.h
index 37c05f40c2d66efc4bc4a503653026cacc0892ff..7dbc6a91dbc911dfc9b1c1cdb805f53c2ae12f09 100644
--- a/Common/ExecutionModel/vtkImageToStructuredGrid.h
+++ b/Common/ExecutionModel/vtkImageToStructuredGrid.h
@@ -27,6 +27,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkStructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStructuredGrid;
 class vtkImageData;
 class vtkInformation;
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkImageToStructuredGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTKIMAGEDATATOSTRUCTUREDGRIDFILTER_H_ */
diff --git a/Common/ExecutionModel/vtkImageToStructuredPoints.cxx b/Common/ExecutionModel/vtkImageToStructuredPoints.cxx
index 509fb7081b69349918b86696d86fcd6911c748a2..b6769155ae21622afc99448d2f2371794e194d46 100644
--- a/Common/ExecutionModel/vtkImageToStructuredPoints.cxx
+++ b/Common/ExecutionModel/vtkImageToStructuredPoints.cxx
@@ -26,6 +26,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageToStructuredPoints);
 
 //------------------------------------------------------------------------------
@@ -345,3 +346,4 @@ int vtkImageToStructuredPoints::FillInputPortInformation(int port, vtkInformatio
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkImageToStructuredPoints.h b/Common/ExecutionModel/vtkImageToStructuredPoints.h
index 1ac8d1146de0b453bc1f0ddb065b6a5e555d0ddd..62ad2673c63d30929cef3142bb862a328265a205 100644
--- a/Common/ExecutionModel/vtkImageToStructuredPoints.h
+++ b/Common/ExecutionModel/vtkImageToStructuredPoints.h
@@ -30,6 +30,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkStructuredPoints;
 
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkImageToStructuredPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.cxx b/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.cxx
index 2dd429fb53595c919bf6ee182d5f2384c82690ab..14ec9a6c27576db47de8623e8406753060d402f7 100644
--- a/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.cxx
+++ b/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.cxx
@@ -18,6 +18,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationDataObjectMetaDataKey::vtkInformationDataObjectMetaDataKey(
   const char* name, const char* location)
   : vtkInformationDataObjectKey(name, location)
@@ -42,3 +43,4 @@ void vtkInformationDataObjectMetaDataKey::PrintSelf(ostream& os, vtkIndent inden
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.h b/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.h
index 300e90edf79c0808ffc1962aa2a8291b376ea4fd..2a1604a901be08c25992d8d3ac1b1ccc554c6b7e 100644
--- a/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.h
+++ b/Common/ExecutionModel/vtkInformationDataObjectMetaDataKey.h
@@ -28,6 +28,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkInformationDataObjectMetaDataKey
   : public vtkInformationDataObjectKey
 {
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkInformationDataObjectMetaDataKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkInformationExecutivePortKey.cxx b/Common/ExecutionModel/vtkInformationExecutivePortKey.cxx
index 606141ed4a4d2233097390c1a3221b65e4341087..34bf664e66040b9359abca95d94c0a06d82856ed 100644
--- a/Common/ExecutionModel/vtkInformationExecutivePortKey.cxx
+++ b/Common/ExecutionModel/vtkInformationExecutivePortKey.cxx
@@ -19,6 +19,7 @@
 #include "vtkSmartPointer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationExecutivePortKey::vtkInformationExecutivePortKey(
   const char* name, const char* location)
   : vtkInformationKey(name, location)
@@ -144,3 +145,4 @@ void vtkInformationExecutivePortKey::Report(vtkInformation* info, vtkGarbageColl
     v->Executive.Report(collector, this->GetName());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkInformationExecutivePortKey.h b/Common/ExecutionModel/vtkInformationExecutivePortKey.h
index c5c261b83a1644b3561e9cb51e1b3e9115abb00c..5de4c3b2e641854590e767b388583cdc2c601df9 100644
--- a/Common/ExecutionModel/vtkInformationExecutivePortKey.h
+++ b/Common/ExecutionModel/vtkInformationExecutivePortKey.h
@@ -29,6 +29,7 @@
 
 #include "vtkFilteringInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExecutive;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkInformationExecutivePortKey : public vtkInformationKey
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkInformationExecutivePortKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkInformationExecutivePortVectorKey.cxx b/Common/ExecutionModel/vtkInformationExecutivePortVectorKey.cxx
index db2cbc5d88f984a34b6c291c0be43bfbb3e5050e..94899decf4200d12c130b282ee93f5bca5991a99 100644
--- a/Common/ExecutionModel/vtkInformationExecutivePortVectorKey.cxx
+++ b/Common/ExecutionModel/vtkInformationExecutivePortVectorKey.cxx
@@ -26,6 +26,7 @@
 #define VTK_USE_SINGLE_REF 1
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationExecutivePortVectorKey::vtkInformationExecutivePortVectorKey(
   const char* name, const char* location)
   : vtkInformationKey(name, location)
@@ -284,3 +285,4 @@ int* vtkInformationExecutivePortVectorKey ::GetPortsWatchAddress(vtkInformation*
     static_cast<vtkInformationExecutivePortVectorValue*>(this->GetAsObjectBase(info));
   return (v && !v->Ports.empty()) ? v->Ports.data() : nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkInformationExecutivePortVectorKey.h b/Common/ExecutionModel/vtkInformationExecutivePortVectorKey.h
index bb218cdde3b8269e59ff946b5c32ca82f8819702..9647b5153301e143f8fa23431946d19c7c650d8c 100644
--- a/Common/ExecutionModel/vtkInformationExecutivePortVectorKey.h
+++ b/Common/ExecutionModel/vtkInformationExecutivePortVectorKey.h
@@ -29,6 +29,7 @@
 
 #include "vtkFilteringInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExecutive;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkInformationExecutivePortVectorKey : public vtkInformationKey
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkInformationExecutivePortVectorKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkInformationIntegerRequestKey.cxx b/Common/ExecutionModel/vtkInformationIntegerRequestKey.cxx
index 5ced4198ce49696cb1fb6caae8a49eae3017de2b..6ecd165d106266d10423eff032b5446fb2246a20 100644
--- a/Common/ExecutionModel/vtkInformationIntegerRequestKey.cxx
+++ b/Common/ExecutionModel/vtkInformationIntegerRequestKey.cxx
@@ -18,6 +18,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationIntegerRequestKey::vtkInformationIntegerRequestKey(
   const char* name, const char* location)
   : vtkInformationIntegerKey(name, location)
@@ -61,3 +62,4 @@ void vtkInformationIntegerRequestKey::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkInformationIntegerRequestKey.h b/Common/ExecutionModel/vtkInformationIntegerRequestKey.h
index 367be17d886fa225634dcb787f1f04ef80221c50..57cacc9357563f94bc2436b7645d8d82f7d7c2a6 100644
--- a/Common/ExecutionModel/vtkInformationIntegerRequestKey.h
+++ b/Common/ExecutionModel/vtkInformationIntegerRequestKey.h
@@ -38,6 +38,7 @@
 
 #include "vtkCommonInformationKeyManager.h" // Manage instances of this type.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkInformationIntegerRequestKey
   : public vtkInformationIntegerKey
 {
@@ -88,4 +89,5 @@ private:
   void operator=(const vtkInformationIntegerRequestKey&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkMoleculeAlgorithm.cxx b/Common/ExecutionModel/vtkMoleculeAlgorithm.cxx
index 04c1f400484333291e983c7fe785a8b82c44921d..08cdcaa34b4b5e108dd0caaa387337cddfbd6b02 100644
--- a/Common/ExecutionModel/vtkMoleculeAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkMoleculeAlgorithm.cxx
@@ -22,6 +22,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkTrivialProducer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMoleculeAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -175,3 +176,4 @@ void vtkMoleculeAlgorithm::AddInputData(int index, vtkDataObject* input)
 
   this->AddInputDataInternal(index, input);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkMoleculeAlgorithm.h b/Common/ExecutionModel/vtkMoleculeAlgorithm.h
index 307aa9168edc6b92b8dc9824289cce91ae3f6a92..14de9f91e1941f2a63c9ed2d603858c117417814 100644
--- a/Common/ExecutionModel/vtkMoleculeAlgorithm.h
+++ b/Common/ExecutionModel/vtkMoleculeAlgorithm.h
@@ -36,6 +36,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkMolecule;
 
@@ -122,4 +123,5 @@ private:
   void operator=(const vtkMoleculeAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkMultiBlockDataSetAlgorithm.cxx b/Common/ExecutionModel/vtkMultiBlockDataSetAlgorithm.cxx
index 5d8ea4a44b92e55242ce04c2de8d67bd3902f833..5b4a4d140deeb4c2596279db911f3bc94a385eaf 100644
--- a/Common/ExecutionModel/vtkMultiBlockDataSetAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkMultiBlockDataSetAlgorithm.cxx
@@ -23,6 +23,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMultiBlockDataSetAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -129,3 +130,4 @@ void vtkMultiBlockDataSetAlgorithm::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkMultiBlockDataSetAlgorithm.h b/Common/ExecutionModel/vtkMultiBlockDataSetAlgorithm.h
index 94ec770c862238d1233fcccf1f4aba586fa5671f..c6a75de936ece857bdb2a3294ca2a3776a6c9ba7 100644
--- a/Common/ExecutionModel/vtkMultiBlockDataSetAlgorithm.h
+++ b/Common/ExecutionModel/vtkMultiBlockDataSetAlgorithm.h
@@ -27,6 +27,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkMultiBlockDataSetAlgorithm : public vtkAlgorithm
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkMultiBlockDataSetAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.cxx b/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.cxx
index 413aaf9390b426ee58a7d7a5e31db089b8a9cbed..3295bbbea7051ac8ff0c3891e61631a02fa78602 100644
--- a/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.cxx
@@ -27,6 +27,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkSmartPointer.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMultiTimeStepAlgorithm);
 
 vtkInformationKeyMacro(vtkMultiTimeStepAlgorithm, UPDATE_TIME_STEPS, DoubleVector);
@@ -199,3 +200,4 @@ void vtkMultiTimeStepAlgorithm::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.h b/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.h
index a749385cdd509928bc0e151c2342e1c276d15e00..ce61cb84083ab1f3233c2af9fbf08695cc3d196d 100644
--- a/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.h
+++ b/Common/ExecutionModel/vtkMultiTimeStepAlgorithm.h
@@ -45,6 +45,7 @@
 #include "vtkDataObject.h" // needed for the smart pointer
 #include <vector>          //needed for a private variable
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationDoubleVectorKey;
 class vtkMultiBlockDataSet;
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkMultiTimeStepAlgorithm : public vtkAlgorithm
@@ -135,4 +136,5 @@ private:
   std::vector<TimeCache> Cache;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkNonOverlappingAMRAlgorithm.cxx b/Common/ExecutionModel/vtkNonOverlappingAMRAlgorithm.cxx
index abbceb2cb242ed7178be1441cbe92c8feffa6856..c7305b831526344e1d7b04f1a18463c7574e2826 100644
--- a/Common/ExecutionModel/vtkNonOverlappingAMRAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkNonOverlappingAMRAlgorithm.cxx
@@ -18,6 +18,7 @@
 #include "vtkNonOverlappingAMR.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkNonOverlappingAMRAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -65,3 +66,4 @@ int vtkNonOverlappingAMRAlgorithm::FillInputPortInformation(
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkNonOverlappingAMR");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkNonOverlappingAMRAlgorithm.h b/Common/ExecutionModel/vtkNonOverlappingAMRAlgorithm.h
index 624dbf5d54c7a6bb88b2ffdbd7d46826b69b5695..e3c352c4bb3cfa8d2262092e8496dd9bdedc6412 100644
--- a/Common/ExecutionModel/vtkNonOverlappingAMRAlgorithm.h
+++ b/Common/ExecutionModel/vtkNonOverlappingAMRAlgorithm.h
@@ -26,6 +26,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkUniformGridAMRAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkNonOverlappingAMR;
 class vtkInformation;
 
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkNonOverlappingAMRAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTKNONOVERLAPPINGAMRALGORITHM_H_ */
diff --git a/Common/ExecutionModel/vtkOverlappingAMRAlgorithm.cxx b/Common/ExecutionModel/vtkOverlappingAMRAlgorithm.cxx
index 3062b732a36bb9d84b8e9106e1f3875e37403d06..a9ea4ef83167ec45a07393ffc69d2890e0475160 100644
--- a/Common/ExecutionModel/vtkOverlappingAMRAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkOverlappingAMRAlgorithm.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkOverlappingAMR.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOverlappingAMRAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -64,3 +65,4 @@ int vtkOverlappingAMRAlgorithm::FillInputPortInformation(int vtkNotUsed(port), v
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkOverlappingAMR");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkOverlappingAMRAlgorithm.h b/Common/ExecutionModel/vtkOverlappingAMRAlgorithm.h
index f547cda005112aa53c65a588cc40143be027fe0d..e9f46daf2adef05323fed029ea533ce89c10d4a0 100644
--- a/Common/ExecutionModel/vtkOverlappingAMRAlgorithm.h
+++ b/Common/ExecutionModel/vtkOverlappingAMRAlgorithm.h
@@ -24,6 +24,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkUniformGridAMRAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOverlappingAMR;
 class vtkInformation;
 
@@ -59,4 +60,5 @@ private:
   void operator=(const vtkOverlappingAMRAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTKOVERLAPPINGAMRALGORITHM_H_ */
diff --git a/Common/ExecutionModel/vtkParallelReader.cxx b/Common/ExecutionModel/vtkParallelReader.cxx
index 26438bb223da021b3094021b84ee0ed465bbffd1..f17d28861c246b197d6fc401e9ea0d1929e2635a 100644
--- a/Common/ExecutionModel/vtkParallelReader.cxx
+++ b/Common/ExecutionModel/vtkParallelReader.cxx
@@ -22,6 +22,7 @@
 #include <numeric>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkParallelReaderInternal
 {
   using FileNamesType = std::vector<std::string>;
@@ -185,3 +186,4 @@ double vtkParallelReader::GetTimeValue(const std::string&)
 {
   return vtkMath::Nan();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkParallelReader.h b/Common/ExecutionModel/vtkParallelReader.h
index 5338aa17fc0ed5dbf700f1bf5b9f94cb9304144a..9106e742b753e18ae7c5e7a8101e040cdc071bca 100644
--- a/Common/ExecutionModel/vtkParallelReader.h
+++ b/Common/ExecutionModel/vtkParallelReader.h
@@ -31,6 +31,7 @@
 
 #include <string> // needed for std::string in the interface
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkParallelReaderInternal;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkParallelReader : public vtkReaderAlgorithm
@@ -128,4 +129,5 @@ private:
   vtkParallelReaderInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkPartitionedDataSetAlgorithm.cxx b/Common/ExecutionModel/vtkPartitionedDataSetAlgorithm.cxx
index 5269a12ff7c2f0b8de2a958c77dfa780348f84da..111f4dbf4e88fdc8c42fd9b310fda730464c4db6 100644
--- a/Common/ExecutionModel/vtkPartitionedDataSetAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkPartitionedDataSetAlgorithm.cxx
@@ -20,6 +20,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkPartitionedDataSetAlgorithm::vtkPartitionedDataSetAlgorithm()
 {
   this->SetNumberOfInputPorts(1);
@@ -95,3 +96,4 @@ void vtkPartitionedDataSetAlgorithm::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkPartitionedDataSetAlgorithm.h b/Common/ExecutionModel/vtkPartitionedDataSetAlgorithm.h
index 517f2c24248116813ceb502afcda4bfd05517ea8..77d4a0811f526dbd277a29dca6b77c9c1ba9048d 100644
--- a/Common/ExecutionModel/vtkPartitionedDataSetAlgorithm.h
+++ b/Common/ExecutionModel/vtkPartitionedDataSetAlgorithm.h
@@ -26,6 +26,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPartitionedDataSet;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkPartitionedDataSetAlgorithm : public vtkAlgorithm
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkPartitionedDataSetAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkPartitionedDataSetCollectionAlgorithm.cxx b/Common/ExecutionModel/vtkPartitionedDataSetCollectionAlgorithm.cxx
index c835ecbd7f63459a32005534b5ce8bbd181b609b..a25efab1df464b5e6f9f35a30ad7fa2a8bc0e223 100644
--- a/Common/ExecutionModel/vtkPartitionedDataSetCollectionAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkPartitionedDataSetCollectionAlgorithm.cxx
@@ -20,6 +20,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkPartitionedDataSetCollectionAlgorithm::vtkPartitionedDataSetCollectionAlgorithm()
 {
   this->SetNumberOfInputPorts(1);
@@ -95,3 +96,4 @@ void vtkPartitionedDataSetCollectionAlgorithm::PrintSelf(ostream& os, vtkIndent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkPartitionedDataSetCollectionAlgorithm.h b/Common/ExecutionModel/vtkPartitionedDataSetCollectionAlgorithm.h
index 57aa576d7cb9099c39d14aa55dccff945956953f..e8da00bddd2f0c08767bb0915b18d71c3e794372 100644
--- a/Common/ExecutionModel/vtkPartitionedDataSetCollectionAlgorithm.h
+++ b/Common/ExecutionModel/vtkPartitionedDataSetCollectionAlgorithm.h
@@ -26,6 +26,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPartitionedDataSetCollection;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkPartitionedDataSetCollectionAlgorithm : public vtkAlgorithm
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkPartitionedDataSetCollectionAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkPassInputTypeAlgorithm.cxx b/Common/ExecutionModel/vtkPassInputTypeAlgorithm.cxx
index 4cb3a0149acad66edbdefe2e07b16c9bd673feaf..8d566bd66dce58110f91c877150d9d77edc4b93f 100644
--- a/Common/ExecutionModel/vtkPassInputTypeAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkPassInputTypeAlgorithm.cxx
@@ -31,6 +31,7 @@
 #include "vtkTable.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPassInputTypeAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -256,3 +257,4 @@ void vtkPassInputTypeAlgorithm::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkPassInputTypeAlgorithm.h b/Common/ExecutionModel/vtkPassInputTypeAlgorithm.h
index dad3718839a01c3d0cec84c22d7b8c00726ffac7..5de05611805d4e0b522ae382ef2f5cde5d1767c7 100644
--- a/Common/ExecutionModel/vtkPassInputTypeAlgorithm.h
+++ b/Common/ExecutionModel/vtkPassInputTypeAlgorithm.h
@@ -37,6 +37,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 class vtkGraph;
 class vtkHyperTreeGrid;
@@ -197,4 +198,5 @@ private:
   void operator=(const vtkPassInputTypeAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkPiecewiseFunctionAlgorithm.cxx b/Common/ExecutionModel/vtkPiecewiseFunctionAlgorithm.cxx
index 32809f758aa2b9288f32f97e929d77ed1caef324..f78a777181a5eff5b8098646ad4cce4c68943af9 100644
--- a/Common/ExecutionModel/vtkPiecewiseFunctionAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkPiecewiseFunctionAlgorithm.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPiecewiseFunctionAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -137,3 +138,4 @@ void vtkPiecewiseFunctionAlgorithm::AddInputData(int index, vtkDataObject* input
 {
   this->AddInputDataInternal(index, input);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkPiecewiseFunctionAlgorithm.h b/Common/ExecutionModel/vtkPiecewiseFunctionAlgorithm.h
index e31041e0d495531b915182041defef4d46964c89..744a95b4c5fd64346cf05762c65319f524190873 100644
--- a/Common/ExecutionModel/vtkPiecewiseFunctionAlgorithm.h
+++ b/Common/ExecutionModel/vtkPiecewiseFunctionAlgorithm.h
@@ -37,6 +37,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkPiecewiseFunction.h"          // makes things a bit easier
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkDataObject;
 
@@ -107,4 +108,5 @@ private:
   void operator=(const vtkPiecewiseFunctionAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkPiecewiseFunctionShiftScale.cxx b/Common/ExecutionModel/vtkPiecewiseFunctionShiftScale.cxx
index 856ee11e40e9eee86b07f93786c623c73a972b77..504bdab044966a9fb70ea5dc06c60371ad13682a 100644
--- a/Common/ExecutionModel/vtkPiecewiseFunctionShiftScale.cxx
+++ b/Common/ExecutionModel/vtkPiecewiseFunctionShiftScale.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPiecewiseFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPiecewiseFunctionShiftScale);
 
 vtkPiecewiseFunctionShiftScale::vtkPiecewiseFunctionShiftScale()
@@ -66,3 +67,4 @@ void vtkPiecewiseFunctionShiftScale::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ValueShift: " << this->ValueShift << "\n";
   os << indent << "ValueScale: " << this->ValueScale << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkPiecewiseFunctionShiftScale.h b/Common/ExecutionModel/vtkPiecewiseFunctionShiftScale.h
index b9c702bf31a962aff11b62d3ee276294172ff361..50c6e12915ad571dff6cbdad83ec362594cc9533 100644
--- a/Common/ExecutionModel/vtkPiecewiseFunctionShiftScale.h
+++ b/Common/ExecutionModel/vtkPiecewiseFunctionShiftScale.h
@@ -25,6 +25,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkPiecewiseFunctionAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPiecewiseFunction;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkPiecewiseFunctionShiftScale
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkPiecewiseFunctionShiftScale&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkPointSetAlgorithm.cxx b/Common/ExecutionModel/vtkPointSetAlgorithm.cxx
index b9e0d9aa4cc3afef6d4892824ec4d5b6a579aaf2..2eb5a1d8efe41ffebb1c3716c9ea57378cf9d5f7 100644
--- a/Common/ExecutionModel/vtkPointSetAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkPointSetAlgorithm.cxx
@@ -24,6 +24,7 @@
 #include "vtkStructuredGrid.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointSetAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -202,3 +203,4 @@ void vtkPointSetAlgorithm::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkPointSetAlgorithm.h b/Common/ExecutionModel/vtkPointSetAlgorithm.h
index 62dbb9ec93eff6070f150517d81ad9fa9ed9c092..a413342322dd40e73c9c34b4b89e0acae972eca3 100644
--- a/Common/ExecutionModel/vtkPointSetAlgorithm.h
+++ b/Common/ExecutionModel/vtkPointSetAlgorithm.h
@@ -35,6 +35,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPointSet;
 class vtkPolyData;
 class vtkStructuredGrid;
@@ -154,4 +155,5 @@ private:
   void operator=(const vtkPointSetAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkPolyDataAlgorithm.cxx b/Common/ExecutionModel/vtkPolyDataAlgorithm.cxx
index 7ea56a7dbd8130ca6fbae57e475659efcf8a3a96..568bbdd402b65c0b209c929227cbe8de2652ec7a 100644
--- a/Common/ExecutionModel/vtkPolyDataAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkPolyDataAlgorithm.cxx
@@ -21,6 +21,7 @@
 #include "vtkPolyData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -173,3 +174,4 @@ void vtkPolyDataAlgorithm::AddInputData(int index, vtkDataObject* input)
 {
   this->AddInputDataInternal(index, input);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkPolyDataAlgorithm.h b/Common/ExecutionModel/vtkPolyDataAlgorithm.h
index ff7c975cf11b4fe8ed7c20aa2fb8ce4f523d759e..980525b37bf592e90823a7f8593903a4d526db30 100644
--- a/Common/ExecutionModel/vtkPolyDataAlgorithm.h
+++ b/Common/ExecutionModel/vtkPolyDataAlgorithm.h
@@ -35,6 +35,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkPolyData.h"                   // makes things a bit easier
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkPolyData;
 
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkPolyDataAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkProgressObserver.cxx b/Common/ExecutionModel/vtkProgressObserver.cxx
index 445403ac3493893c56cd04b0ffd89b9e953aee82..0732c32e71afdbda26e5815a0ac75e5a9a50de20 100644
--- a/Common/ExecutionModel/vtkProgressObserver.cxx
+++ b/Common/ExecutionModel/vtkProgressObserver.cxx
@@ -17,6 +17,7 @@
 #include "vtkCommand.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProgressObserver);
 
 vtkProgressObserver::vtkProgressObserver() = default;
@@ -33,3 +34,4 @@ void vtkProgressObserver::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkProgressObserver.h b/Common/ExecutionModel/vtkProgressObserver.h
index 6b904a858ce69d3b7e6725644982684fa1b5ab1a..357aa3a48bdc6b6339fb836646f4737c83f96356 100644
--- a/Common/ExecutionModel/vtkProgressObserver.h
+++ b/Common/ExecutionModel/vtkProgressObserver.h
@@ -33,6 +33,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkProgressObserver : public vtkObject
 {
 public:
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkProgressObserver&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkReaderAlgorithm.cxx b/Common/ExecutionModel/vtkReaderAlgorithm.cxx
index f0c0c7077b7bbecf1d94984aef3d5d5ac904a202..39d8d187bbfe3de7157ee7741471dd9114992f67 100644
--- a/Common/ExecutionModel/vtkReaderAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkReaderAlgorithm.cxx
@@ -21,6 +21,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkReaderAlgorithm::vtkReaderAlgorithm()
 {
   // by default assume filters have one input and one output
@@ -140,3 +141,4 @@ void vtkReaderAlgorithm::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkReaderAlgorithm.h b/Common/ExecutionModel/vtkReaderAlgorithm.h
index 8489a4b290f8c18b8690ecf261ea28eb2fba61e2..2ea6a6b4837d5e58105681be0fbf319445a05a72 100644
--- a/Common/ExecutionModel/vtkReaderAlgorithm.h
+++ b/Common/ExecutionModel/vtkReaderAlgorithm.h
@@ -34,6 +34,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkReaderAlgorithm : public vtkAlgorithm
 {
 public:
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkReaderAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkRectilinearGridAlgorithm.cxx b/Common/ExecutionModel/vtkRectilinearGridAlgorithm.cxx
index 661961e640bbbf19993445775c01a39846acd464..be64bfcc5259ef2670f79e67b110b89ceb920add 100644
--- a/Common/ExecutionModel/vtkRectilinearGridAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkRectilinearGridAlgorithm.cxx
@@ -21,6 +21,7 @@
 #include "vtkRectilinearGrid.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearGridAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -158,3 +159,4 @@ void vtkRectilinearGridAlgorithm::AddInputData(int index, vtkDataObject* input)
 {
   this->AddInputDataInternal(index, input);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkRectilinearGridAlgorithm.h b/Common/ExecutionModel/vtkRectilinearGridAlgorithm.h
index 3d67a94d6fc0a8598077f29bce3e75b100eccb63..e2cf5f1cc53433799d6b96e50095ec2c1adc4a74 100644
--- a/Common/ExecutionModel/vtkRectilinearGridAlgorithm.h
+++ b/Common/ExecutionModel/vtkRectilinearGridAlgorithm.h
@@ -37,6 +37,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkRectilinearGrid.h"            // makes things a bit easier
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkRectilinearGrid;
 
@@ -123,4 +124,5 @@ private:
   void operator=(const vtkRectilinearGridAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkSMPProgressObserver.cxx b/Common/ExecutionModel/vtkSMPProgressObserver.cxx
index 57a430145525b38b4b1a4836a69d6d1510ad4194..14fa96db292f43a8c9aa8b81414ab6421facf46a 100644
--- a/Common/ExecutionModel/vtkSMPProgressObserver.cxx
+++ b/Common/ExecutionModel/vtkSMPProgressObserver.cxx
@@ -17,6 +17,7 @@
 #include "vtkCommand.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSMPProgressObserver);
 
 vtkSMPProgressObserver::vtkSMPProgressObserver() = default;
@@ -33,3 +34,4 @@ void vtkSMPProgressObserver::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkSMPProgressObserver.h b/Common/ExecutionModel/vtkSMPProgressObserver.h
index c5408b0567e64f6aa1603729c44ec0ac2dfdf2a9..7c96aa964b14085c93ed80dbd1e435c59be70376 100644
--- a/Common/ExecutionModel/vtkSMPProgressObserver.h
+++ b/Common/ExecutionModel/vtkSMPProgressObserver.h
@@ -31,6 +31,7 @@
 #include "vtkProgressObserver.h"
 #include "vtkSMPThreadLocalObject.h" // For thread local observers.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkSMPProgressObserver : public vtkProgressObserver
 {
 public:
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkSMPProgressObserver&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkScalarTree.cxx b/Common/ExecutionModel/vtkScalarTree.cxx
index 7ca8ed6b151bdabb8afa052fd9c9ecdc90033cf8..c57c48f77572baa8355d5efd96e66cc3fb11600c 100644
--- a/Common/ExecutionModel/vtkScalarTree.cxx
+++ b/Common/ExecutionModel/vtkScalarTree.cxx
@@ -19,6 +19,7 @@
 #include "vtkGarbageCollector.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkScalarTree, DataSet, vtkDataSet);
 vtkCxxSetObjectMacro(vtkScalarTree, Scalars, vtkDataArray);
 
@@ -72,3 +73,4 @@ void vtkScalarTree::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Build Time: " << this->BuildTime.GetMTime() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkScalarTree.h b/Common/ExecutionModel/vtkScalarTree.h
index 76d9c3ecd8631adf1155dfb3e125d7e0413da2a6..03619b1e258cad849a45fb52988da840b3ace7ea 100644
--- a/Common/ExecutionModel/vtkScalarTree.h
+++ b/Common/ExecutionModel/vtkScalarTree.h
@@ -45,6 +45,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkDataArray;
 class vtkDataSet;
@@ -156,4 +157,5 @@ private:
   void operator=(const vtkScalarTree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkSelectionAlgorithm.cxx b/Common/ExecutionModel/vtkSelectionAlgorithm.cxx
index fcdd11b9d87da28cbc386e42e3d778cf65a4608b..090e5a6f799bcc1b76b509b7f681f7ac081a47aa 100644
--- a/Common/ExecutionModel/vtkSelectionAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkSelectionAlgorithm.cxx
@@ -21,6 +21,7 @@
 #include "vtkSelection.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSelectionAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -125,3 +126,4 @@ int vtkSelectionAlgorithm::RequestData(vtkInformation* vtkNotUsed(request),
 {
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkSelectionAlgorithm.h b/Common/ExecutionModel/vtkSelectionAlgorithm.h
index 6db06e8cbfc081add1456134005efe44d9b96d6e..c79d98b0ca833280e73aec73d340a5b653cac426 100644
--- a/Common/ExecutionModel/vtkSelectionAlgorithm.h
+++ b/Common/ExecutionModel/vtkSelectionAlgorithm.h
@@ -41,6 +41,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkSelection.h"                  // makes things a bit easier
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkSelectionAlgorithm : public vtkAlgorithm
@@ -100,4 +101,5 @@ private:
   void operator=(const vtkSelectionAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkSimpleImageToImageFilter.cxx b/Common/ExecutionModel/vtkSimpleImageToImageFilter.cxx
index defad09a4063b76b4d4733848aaf2f1440d81ec1..a4ca5892325cfd18ad34f50e4cde442d0ba26487 100644
--- a/Common/ExecutionModel/vtkSimpleImageToImageFilter.cxx
+++ b/Common/ExecutionModel/vtkSimpleImageToImageFilter.cxx
@@ -21,6 +21,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkSimpleImageToImageFilter::vtkSimpleImageToImageFilter() = default;
 
 //------------------------------------------------------------------------------
@@ -72,3 +73,4 @@ void vtkSimpleImageToImageFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkSimpleImageToImageFilter.h b/Common/ExecutionModel/vtkSimpleImageToImageFilter.h
index dd486cf4e40460360f887ce89d31eb8a9058361b..025c3fee6e47fb5d3d91b4f8eceb156cf363335e 100644
--- a/Common/ExecutionModel/vtkSimpleImageToImageFilter.h
+++ b/Common/ExecutionModel/vtkSimpleImageToImageFilter.h
@@ -43,6 +43,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkSimpleImageToImageFilter : public vtkImageAlgorithm
 {
 public:
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkSimpleImageToImageFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkSimpleReader.cxx b/Common/ExecutionModel/vtkSimpleReader.cxx
index d71394410407f7e8ed4da447c871a29a8cb9106f..7a6ec6023ac464da9d2bd58b2dbca2cf6ad1a56d 100644
--- a/Common/ExecutionModel/vtkSimpleReader.cxx
+++ b/Common/ExecutionModel/vtkSimpleReader.cxx
@@ -22,6 +22,7 @@
 #include <numeric>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkSimpleReaderInternal
 {
   using FileNamesType = std::vector<std::string>;
@@ -238,3 +239,4 @@ double vtkSimpleReader::GetTimeValue(const std::string&)
 {
   return vtkMath::Nan();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkSimpleReader.h b/Common/ExecutionModel/vtkSimpleReader.h
index 54dac98fc666fcb6646164d65ddc75dced7bedd3..48afd0ba67938687a81bd63703f69af0bd90cedb 100644
--- a/Common/ExecutionModel/vtkSimpleReader.h
+++ b/Common/ExecutionModel/vtkSimpleReader.h
@@ -26,6 +26,7 @@
 
 #include <string> // needed for std::string in the interface
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkSimpleReaderInternal;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkSimpleReader : public vtkReaderAlgorithm
@@ -135,4 +136,5 @@ private:
   vtkSimpleReaderInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkSimpleScalarTree.cxx b/Common/ExecutionModel/vtkSimpleScalarTree.cxx
index c7fbee624656b59733e37354be7199e43bb84e7f..89405c2813ace5b502e3edd6917574e94c770436 100644
--- a/Common/ExecutionModel/vtkSimpleScalarTree.cxx
+++ b/Common/ExecutionModel/vtkSimpleScalarTree.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScalarNode
 {
 };
@@ -459,3 +460,4 @@ void vtkSimpleScalarTree::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Max Level: " << this->GetMaxLevel() << "\n";
   os << indent << "Branching Factor: " << this->GetBranchingFactor() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkSimpleScalarTree.h b/Common/ExecutionModel/vtkSimpleScalarTree.h
index c60a3e5f9bd4eeafc7a20f9d1417d811e05673fc..5c4ebf6ac1d2a366a7115f072f606059872d238d 100644
--- a/Common/ExecutionModel/vtkSimpleScalarTree.h
+++ b/Common/ExecutionModel/vtkSimpleScalarTree.h
@@ -50,6 +50,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkScalarTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScalarNode;
 class vtkSimpleScalarTree;
 
@@ -173,4 +174,5 @@ private:
   void operator=(const vtkSimpleScalarTree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkSpanSpace.cxx b/Common/ExecutionModel/vtkSpanSpace.cxx
index 51e5f1cdc95830dba8eef98e0e2cfe80b005904f..a6a3c42efc3a8441ce5714128286bc1bc1e32916 100644
--- a/Common/ExecutionModel/vtkSpanSpace.cxx
+++ b/Common/ExecutionModel/vtkSpanSpace.cxx
@@ -27,6 +27,7 @@
 #include "vtkUnstructuredGrid.h"
 
 // Methods and functors for processing in parallel
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 { // begin anonymous namespace
 
@@ -722,3 +723,4 @@ void vtkSpanSpace::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Compute Resolution: " << (this->ComputeResolution ? "On\n" : "Off\n");
   os << indent << "Number of Cells Per Bucket: " << this->NumberOfCellsPerBucket << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkSpanSpace.h b/Common/ExecutionModel/vtkSpanSpace.h
index 5682849f68cb27fda51667ba176e83ff7e265374..2afa27d4dbafc89b3a8d1c9df18abf9fda2b043c 100644
--- a/Common/ExecutionModel/vtkSpanSpace.h
+++ b/Common/ExecutionModel/vtkSpanSpace.h
@@ -42,6 +42,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkScalarTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSpanSpace;
 struct vtkInternalSpanSpace;
 
@@ -214,4 +215,5 @@ private:
   void operator=(const vtkSpanSpace&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkSphereTree.cxx b/Common/ExecutionModel/vtkSphereTree.cxx
index 1c64ab6ad6c4c505ad2dc541099dfbecb6e71b19..a38b52e8e544a88c42d8a5c97ccfa3922ba6560a 100644
--- a/Common/ExecutionModel/vtkSphereTree.cxx
+++ b/Common/ExecutionModel/vtkSphereTree.cxx
@@ -35,6 +35,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSphereTree);
 vtkCxxSetObjectMacro(vtkSphereTree, DataSet, vtkDataSet);
 
@@ -1617,3 +1618,4 @@ void vtkSphereTree::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Maximum Number Of Levels: " << this->MaxLevel << "\n";
   os << indent << "Build Hierarchy: " << (this->BuildHierarchy ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkSphereTree.h b/Common/ExecutionModel/vtkSphereTree.h
index 8ef8f7de7bdb1930337fb225487f2a67d9411743..84b52cab95b6409b4731de07cfdc3dd38b75b209 100644
--- a/Common/ExecutionModel/vtkSphereTree.h
+++ b/Common/ExecutionModel/vtkSphereTree.h
@@ -53,6 +53,7 @@
 #include "vtkObject.h"
 #include "vtkPlane.h" // to specify the cutting plane
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkDataArray;
 class vtkIdList;
@@ -226,4 +227,5 @@ private:
   void operator=(const vtkSphereTree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.cxx b/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.cxx
index cfc655c3919468325ac919ab53bf2febec95aec3..6b2b4c15ebf335fd13b203ff06bd9d2afda8f982 100644
--- a/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.cxx
+++ b/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.cxx
@@ -39,6 +39,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStreamingDemandDrivenPipeline);
 
 vtkInformationKeyMacro(vtkStreamingDemandDrivenPipeline, CONTINUE_EXECUTING, Integer);
@@ -1516,3 +1517,4 @@ int vtkStreamingDemandDrivenPipeline::GetRequestExactExtent(int port)
   }
   return info->Get(EXACT_EXTENT());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.h b/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.h
index 4b2435800d33473bc419669df4d9177b68e532df..990fb245ae6a5a845ac04db6f41ab45f4da1d200 100644
--- a/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.h
+++ b/Common/ExecutionModel/vtkStreamingDemandDrivenPipeline.h
@@ -32,6 +32,7 @@
 #define VTK_UPDATE_EXTENT_COMBINE 1
 #define VTK_UPDATE_EXTENT_REPLACE 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationDoubleKey;
 class vtkInformationDoubleVectorKey;
 class vtkInformationIdTypeKey;
@@ -321,4 +322,5 @@ private:
   void operator=(const vtkStreamingDemandDrivenPipeline&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkStructuredGridAlgorithm.cxx b/Common/ExecutionModel/vtkStructuredGridAlgorithm.cxx
index db7286e0177510c326146c0c35002ba687ca8660..e07dcf391254c80c0c4330898ef07f7206e65954 100644
--- a/Common/ExecutionModel/vtkStructuredGridAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkStructuredGridAlgorithm.cxx
@@ -21,6 +21,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkStructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredGridAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -157,3 +158,4 @@ void vtkStructuredGridAlgorithm::AddInputData(int index, vtkDataObject* input)
 {
   this->AddInputDataInternal(index, input);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkStructuredGridAlgorithm.h b/Common/ExecutionModel/vtkStructuredGridAlgorithm.h
index 2952b618e22a3d87d45122bc1365963216cae9ba..a6af67345920ac6191b067b64a6b44d47deb065a 100644
--- a/Common/ExecutionModel/vtkStructuredGridAlgorithm.h
+++ b/Common/ExecutionModel/vtkStructuredGridAlgorithm.h
@@ -35,6 +35,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkStructuredGrid.h"             // makes things a bit easier
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkStructuredGrid;
 
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkStructuredGridAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkTableAlgorithm.cxx b/Common/ExecutionModel/vtkTableAlgorithm.cxx
index d2a8da4081239da8cb3b532d10ea3dbcfba926cc..475e2a99e41b2eb5b6a5dc3b2eabbf77dee3bfa3 100644
--- a/Common/ExecutionModel/vtkTableAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkTableAlgorithm.cxx
@@ -27,6 +27,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTableAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -131,3 +132,4 @@ int vtkTableAlgorithm::RequestData(vtkInformation* vtkNotUsed(request),
 {
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkTableAlgorithm.h b/Common/ExecutionModel/vtkTableAlgorithm.h
index 0c8ec36861bea68aae2d7d9681dbce3c39e632ac..ed32a58372b7f6c84568eca89e2b94123864dace 100644
--- a/Common/ExecutionModel/vtkTableAlgorithm.h
+++ b/Common/ExecutionModel/vtkTableAlgorithm.h
@@ -42,6 +42,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkTable;
 
@@ -102,4 +103,5 @@ private:
   void operator=(const vtkTableAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkThreadedCompositeDataPipeline.cxx b/Common/ExecutionModel/vtkThreadedCompositeDataPipeline.cxx
index a7537df5a0c204d27e74716e0ced018d03f0be58..664f0db58d6bc80ba79619375760e5dbfd5246b4 100644
--- a/Common/ExecutionModel/vtkThreadedCompositeDataPipeline.cxx
+++ b/Common/ExecutionModel/vtkThreadedCompositeDataPipeline.cxx
@@ -44,6 +44,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkThreadedCompositeDataPipeline);
 
 //------------------------------------------------------------------------------
@@ -287,3 +288,4 @@ int vtkThreadedCompositeDataPipeline::CallAlgorithm(vtkInformation* request, int
 
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkThreadedCompositeDataPipeline.h b/Common/ExecutionModel/vtkThreadedCompositeDataPipeline.h
index 880e2a40b7604bcd0aa57931f0fec2228c034548..6bdeed312f774a3f462f44862eae2348ed0b0eed 100644
--- a/Common/ExecutionModel/vtkThreadedCompositeDataPipeline.h
+++ b/Common/ExecutionModel/vtkThreadedCompositeDataPipeline.h
@@ -31,6 +31,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkCompositeDataPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationVector;
 class vtkInformation;
 
@@ -62,4 +63,5 @@ private:
   friend class ProcessBlock;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkThreadedImageAlgorithm.cxx b/Common/ExecutionModel/vtkThreadedImageAlgorithm.cxx
index d6f0f70304d4b7fc37d98daf983a66e95c2d2944..7a9a76382f06d646c063770c6b06a9b1fc4663f1 100644
--- a/Common/ExecutionModel/vtkThreadedImageAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkThreadedImageAlgorithm.cxx
@@ -32,12 +32,17 @@
 // If SMP backend is Sequential then fall back to vtkMultiThreader,
 // else enable the newer vtkSMPTools code path by default.
 #ifdef VTK_SMP_Sequential
+VTK_ABI_NAMESPACE_BEGIN
 bool vtkThreadedImageAlgorithm::GlobalDefaultEnableSMP = false;
+VTK_ABI_NAMESPACE_END
 #else
+VTK_ABI_NAMESPACE_BEGIN
 bool vtkThreadedImageAlgorithm::GlobalDefaultEnableSMP = true;
+VTK_ABI_NAMESPACE_END
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkThreadedImageAlgorithm::vtkThreadedImageAlgorithm()
 {
   this->Threader = vtkMultiThreader::New();
@@ -669,3 +674,4 @@ void vtkThreadedImageAlgorithm::ThreadedExecute(
   (void)threadId;
   vtkErrorMacro("Subclass should override this method!!!");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkThreadedImageAlgorithm.h b/Common/ExecutionModel/vtkThreadedImageAlgorithm.h
index 6d728db53fba265c69acc4bec327181fc73d0e89..39be5b62543bf1b128d7280aae2fe90712b96798 100644
--- a/Common/ExecutionModel/vtkThreadedImageAlgorithm.h
+++ b/Common/ExecutionModel/vtkThreadedImageAlgorithm.h
@@ -32,6 +32,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkThreads.h" // for VTK_MAX_THREADS
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkMultiThreader;
 
@@ -177,4 +178,5 @@ private:
   friend class vtkThreadedImageAlgorithmFunctor;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkTreeAlgorithm.cxx b/Common/ExecutionModel/vtkTreeAlgorithm.cxx
index 4bc43a2f51138bca22de989580e1671442131a8a..95481171ecacde27e36c6bf0dca2431454dca84e 100644
--- a/Common/ExecutionModel/vtkTreeAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkTreeAlgorithm.cxx
@@ -26,6 +26,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -130,3 +131,4 @@ int vtkTreeAlgorithm::RequestData(vtkInformation* vtkNotUsed(request),
 {
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkTreeAlgorithm.h b/Common/ExecutionModel/vtkTreeAlgorithm.h
index 85393608824c292d90a445948a2bd43240825acc..dda0b1bbd95083372fdeb39b145b773b1f5d9e6f 100644
--- a/Common/ExecutionModel/vtkTreeAlgorithm.h
+++ b/Common/ExecutionModel/vtkTreeAlgorithm.h
@@ -40,6 +40,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkTree.h"                       // makes things a bit easier
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkTreeAlgorithm : public vtkAlgorithm
@@ -99,4 +100,5 @@ private:
   void operator=(const vtkTreeAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkTrivialConsumer.cxx b/Common/ExecutionModel/vtkTrivialConsumer.cxx
index dd605296835b853af275d07a8b05c11a422ee3c6..33778afddbf6948644342c8d2e566a40c920c7e9 100644
--- a/Common/ExecutionModel/vtkTrivialConsumer.cxx
+++ b/Common/ExecutionModel/vtkTrivialConsumer.cxx
@@ -18,6 +18,7 @@
 #include "vtkInformation.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTrivialConsumer);
 
 //------------------------------------------------------------------------------
@@ -48,3 +49,4 @@ int vtkTrivialConsumer::FillOutputPortInformation(int, vtkInformation*)
 {
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkTrivialConsumer.h b/Common/ExecutionModel/vtkTrivialConsumer.h
index b133fd3c2fe7fe5b02cefb6d19c7121a2265d60c..b599ec79840b566c98a669d46b7026b1b2ca7c7b 100644
--- a/Common/ExecutionModel/vtkTrivialConsumer.h
+++ b/Common/ExecutionModel/vtkTrivialConsumer.h
@@ -28,6 +28,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkTrivialConsumer : public vtkAlgorithm
 {
 public:
@@ -47,4 +48,5 @@ private:
   void operator=(const vtkTrivialConsumer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkTrivialProducer.cxx b/Common/ExecutionModel/vtkTrivialProducer.cxx
index 20058f06a6596bfcd4aca07534bbeb6ab5df69c4..b9ee305949f75b84acc41204dbb6d71955a01fcf 100644
--- a/Common/ExecutionModel/vtkTrivialProducer.cxx
+++ b/Common/ExecutionModel/vtkTrivialProducer.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTrivialProducer);
 
 // This compile-time switch determines whether the update extent is
@@ -262,3 +263,4 @@ void vtkTrivialProducer::ReportReferences(vtkGarbageCollector* collector)
   this->Superclass::ReportReferences(collector);
   vtkGarbageCollectorReport(collector, this->Output, "Output");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkTrivialProducer.h b/Common/ExecutionModel/vtkTrivialProducer.h
index b735a78e2f13ffbb0bcb1cd8d6f851ecb910b96d..f0b548f5903ed4cada408ff69e863d2cde216c79 100644
--- a/Common/ExecutionModel/vtkTrivialProducer.h
+++ b/Common/ExecutionModel/vtkTrivialProducer.h
@@ -29,6 +29,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkTrivialProducer : public vtkAlgorithm
@@ -95,4 +96,5 @@ private:
   void operator=(const vtkTrivialProducer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkUndirectedGraphAlgorithm.cxx b/Common/ExecutionModel/vtkUndirectedGraphAlgorithm.cxx
index cf5df8c814229d599515476e7edd98bc019b3660..0d6b3e57cc662759eee287bfe7e1f147362cc504 100644
--- a/Common/ExecutionModel/vtkUndirectedGraphAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkUndirectedGraphAlgorithm.cxx
@@ -26,6 +26,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUndirectedGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUndirectedGraphAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -132,3 +133,4 @@ int vtkUndirectedGraphAlgorithm::RequestData(vtkInformation* vtkNotUsed(request)
 {
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkUndirectedGraphAlgorithm.h b/Common/ExecutionModel/vtkUndirectedGraphAlgorithm.h
index 56476c4376f2e2605008a90c8d5bcc680f58da6d..10861f34551b728e330f95ff43fc6f81fa26966c 100644
--- a/Common/ExecutionModel/vtkUndirectedGraphAlgorithm.h
+++ b/Common/ExecutionModel/vtkUndirectedGraphAlgorithm.h
@@ -44,6 +44,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkUndirectedGraph.h"            // makes things a bit easier
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKCOMMONEXECUTIONMODEL_EXPORT vtkUndirectedGraphAlgorithm : public vtkAlgorithm
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkUndirectedGraphAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkUniformGridAMRAlgorithm.cxx b/Common/ExecutionModel/vtkUniformGridAMRAlgorithm.cxx
index 85be8d213a7d0fdf5bb39e317414b5893a5a7178..d29b776ae02a39928d6e2089d97bc8a1010d2c27 100644
--- a/Common/ExecutionModel/vtkUniformGridAMRAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkUniformGridAMRAlgorithm.cxx
@@ -22,6 +22,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUniformGridAMR.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUniformGridAMRAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -128,3 +129,4 @@ vtkDataObject* vtkUniformGridAMRAlgorithm::GetInput(int port)
   }
   return this->GetExecutive()->GetInputData(port, 0);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkUniformGridAMRAlgorithm.h b/Common/ExecutionModel/vtkUniformGridAMRAlgorithm.h
index 5b100579ceb597d3322b5d7da3190dd4163c57f0..3dcb57522afb2eb1ce4f39b248a1c445a4f6e1d8 100644
--- a/Common/ExecutionModel/vtkUniformGridAMRAlgorithm.h
+++ b/Common/ExecutionModel/vtkUniformGridAMRAlgorithm.h
@@ -27,6 +27,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUniformGridAMR;
 class vtkInformation;
 class vtkInformationVector;
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkUniformGridAMRAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTKUNIFORMGRIDAMRALGORITHM_H_ */
diff --git a/Common/ExecutionModel/vtkUniformGridPartitioner.cxx b/Common/ExecutionModel/vtkUniformGridPartitioner.cxx
index 59ecf92066fdc8ddeb19b6a419c337312682835c..b876b6d70f623792f179200a45f2a35fab6f2aa8 100644
--- a/Common/ExecutionModel/vtkUniformGridPartitioner.cxx
+++ b/Common/ExecutionModel/vtkUniformGridPartitioner.cxx
@@ -27,6 +27,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUniformGridPartitioner);
 
 //------------------------------------------------------------------------------
@@ -147,3 +148,4 @@ int vtkUniformGridPartitioner::RequestData(vtkInformation* vtkNotUsed(request),
   extentPartitioner->Delete();
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkUniformGridPartitioner.h b/Common/ExecutionModel/vtkUniformGridPartitioner.h
index 3151a3e5e6dd220c3f3fc61733ab211160a1d735..43272ef2832086ad1200fb7bdac94cb6b79641cd 100644
--- a/Common/ExecutionModel/vtkUniformGridPartitioner.h
+++ b/Common/ExecutionModel/vtkUniformGridPartitioner.h
@@ -31,6 +31,7 @@
 #include "vtkCommonExecutionModelModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 class vtkIndent;
@@ -83,4 +84,5 @@ private:
   void operator=(const vtkUniformGridPartitioner&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTKUNIFORMGRIDPARTITIONER_H_ */
diff --git a/Common/ExecutionModel/vtkUnstructuredGridAlgorithm.cxx b/Common/ExecutionModel/vtkUnstructuredGridAlgorithm.cxx
index 53e085d2b3d4b531e30359ef53345435c9ad6771..d30eaa2fb11a9c5bf64a178675fceec795fce76a 100644
--- a/Common/ExecutionModel/vtkUnstructuredGridAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkUnstructuredGridAlgorithm.cxx
@@ -20,6 +20,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnstructuredGridAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -168,3 +169,4 @@ void vtkUnstructuredGridAlgorithm::AddInputData(int index, vtkDataObject* input)
 {
   this->AddInputDataInternal(index, input);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkUnstructuredGridAlgorithm.h b/Common/ExecutionModel/vtkUnstructuredGridAlgorithm.h
index 5881c6ea35f769851d8836c22516eb29755bc01e..ae3eae4cbea49071421e90d9c94a8ef5f19c516e 100644
--- a/Common/ExecutionModel/vtkUnstructuredGridAlgorithm.h
+++ b/Common/ExecutionModel/vtkUnstructuredGridAlgorithm.h
@@ -34,6 +34,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkUnstructuredGrid;
 
@@ -115,4 +116,5 @@ private:
   void operator=(const vtkUnstructuredGridAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/ExecutionModel/vtkUnstructuredGridBaseAlgorithm.cxx b/Common/ExecutionModel/vtkUnstructuredGridBaseAlgorithm.cxx
index 5a6d60f6aca2a8d919865e58e5a051fabac2276e..b5de05c8bad2ce174f2b7c7ebd3980e0b3adf8d8 100644
--- a/Common/ExecutionModel/vtkUnstructuredGridBaseAlgorithm.cxx
+++ b/Common/ExecutionModel/vtkUnstructuredGridBaseAlgorithm.cxx
@@ -20,6 +20,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnstructuredGridBase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnstructuredGridBaseAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -196,3 +197,4 @@ void vtkUnstructuredGridBaseAlgorithm::AddInputData(int index, vtkDataObject* in
 {
   this->AddInputDataInternal(index, input);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/ExecutionModel/vtkUnstructuredGridBaseAlgorithm.h b/Common/ExecutionModel/vtkUnstructuredGridBaseAlgorithm.h
index bf84fdadea49e02dbd7bbfee29232005d2b0efd6..68da6867b097bfcf37ba6a371881094f3668d78b 100644
--- a/Common/ExecutionModel/vtkUnstructuredGridBaseAlgorithm.h
+++ b/Common/ExecutionModel/vtkUnstructuredGridBaseAlgorithm.h
@@ -33,6 +33,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkCommonExecutionModelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkUnstructuredGridBase;
 
@@ -115,4 +116,5 @@ private:
   void operator=(const vtkUnstructuredGridBaseAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Math/vtkAmoebaMinimizer.cxx b/Common/Math/vtkAmoebaMinimizer.cxx
index b37f85839c923703cd52249a6b68c0ad936eccde..ba4b8755d5346ed6048022edc8f565e6004a9e78 100644
--- a/Common/Math/vtkAmoebaMinimizer.cxx
+++ b/Common/Math/vtkAmoebaMinimizer.cxx
@@ -20,6 +20,7 @@
 #define N_STEPS_NO_VALUE_IMPROVEMENT 2
 #define N_STEPS_NO_PARAM_IMPROVEMENT 18
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAmoebaMinimizer);
 
 //------------------------------------------------------------------------------
@@ -772,3 +773,4 @@ int vtkAmoebaMinimizer::PerformAmoeba()
 
   return (improvement_found);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Math/vtkAmoebaMinimizer.h b/Common/Math/vtkAmoebaMinimizer.h
index 53de4d2a5ba95220d99ea9fc9ce9e25a6071d65c..3a3a022147ddbc1ced54035db15a5fc7e8cdc80d 100644
--- a/Common/Math/vtkAmoebaMinimizer.h
+++ b/Common/Math/vtkAmoebaMinimizer.h
@@ -32,6 +32,7 @@
 #include "vtkCommonMathModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONMATH_EXPORT vtkAmoebaMinimizer : public vtkObject
 {
 public:
@@ -238,4 +239,5 @@ private:
   void operator=(const vtkAmoebaMinimizer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Math/vtkFFT.cxx b/Common/Math/vtkFFT.cxx
index 72b70711b718e827bf12e53c428c504f8eb07dad..b793f5fabe335c625acd7b28c679178f11da464d 100644
--- a/Common/Math/vtkFFT.cxx
+++ b/Common/Math/vtkFFT.cxx
@@ -21,6 +21,7 @@
 #include <stdexcept>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFFT);
 
 //------------------------------------------------------------------------------
@@ -310,3 +311,4 @@ void vtkFFT::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Math/vtkFFT.h b/Common/Math/vtkFFT.h
index 1f9fd0ee67ae7d9f404e7fcd93845f941c726c67..a4cc1a517abdb65bcab60afb07ceda3055dd9083 100644
--- a/Common/Math/vtkFFT.h
+++ b/Common/Math/vtkFFT.h
@@ -51,6 +51,7 @@
 #include <type_traits> // std::enable_if, std::iterator_traits
 #include <vector>      // std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONMATH_EXPORT vtkFFT : public vtkObject
 {
 public:
@@ -517,6 +518,8 @@ void vtkFFT::GenerateKernel2D(T* kernel, std::size_t n, std::size_t m, WindowGen
   }
 }
 
+VTK_ABI_NAMESPACE_END
+
 #include "vtkFFT.txx" // complex templated functions not wrapped by python
 
 #endif // vtkFFT_h
diff --git a/Common/Math/vtkFFT.txx b/Common/Math/vtkFFT.txx
index bf640a2cde483d1384ddf81b3eb10824e4fe5996..71cd9a44be7682f4ec22f574637769e527a43d65 100644
--- a/Common/Math/vtkFFT.txx
+++ b/Common/Math/vtkFFT.txx
@@ -20,6 +20,7 @@
 
 #ifndef __VTK_WRAP__
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 template <typename InputIt>
 typename std::iterator_traits<InputIt>::value_type vtkFFT::ComputeScaling(
@@ -312,5 +313,6 @@ vtkSmartPointer<vtkFFT::vtkScalarNumberArray> vtkFFT::Csd(vtkScalarNumberArray*
   return average;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // __VTK_WRAP__
 #endif // vtkFFT_txx
diff --git a/Common/Math/vtkFunctionSet.cxx b/Common/Math/vtkFunctionSet.cxx
index ad547d4b5ee51dd4ce41bc3b64f161b7daf6d86f..fdaf661dbc3f9cedcb931cb63bbc1e02ddc7c311 100644
--- a/Common/Math/vtkFunctionSet.cxx
+++ b/Common/Math/vtkFunctionSet.cxx
@@ -14,6 +14,7 @@
 =========================================================================*/
 #include "vtkFunctionSet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkFunctionSet::vtkFunctionSet()
 {
   this->NumFuncs = 0;
@@ -26,3 +27,4 @@ void vtkFunctionSet::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Number of functions: " << this->NumFuncs << "\n";
   os << indent << "Number of independent variables: " << this->NumIndepVars << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Math/vtkFunctionSet.h b/Common/Math/vtkFunctionSet.h
index 7a7f5f371c4366ce850ca3c6a7686287fb7bf12c..9e8a3f71aaa11b9394f4cee7c8516b3581057e2f 100644
--- a/Common/Math/vtkFunctionSet.h
+++ b/Common/Math/vtkFunctionSet.h
@@ -32,6 +32,7 @@
 #include "vtkCommonMathModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONMATH_EXPORT vtkFunctionSet : public vtkObject
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkFunctionSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Math/vtkInitialValueProblemSolver.cxx b/Common/Math/vtkInitialValueProblemSolver.cxx
index e2bd29e2b372a19d11d0eaf0adcf534fabfe34b0..2de0d9b2b79ff68b024044ab7ec0c79e1b2b2a89 100644
--- a/Common/Math/vtkInitialValueProblemSolver.cxx
+++ b/Common/Math/vtkInitialValueProblemSolver.cxx
@@ -17,6 +17,7 @@
 #include "vtkFunctionSet.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInitialValueProblemSolver::vtkInitialValueProblemSolver()
 {
   this->FunctionSet = nullptr;
@@ -86,3 +87,4 @@ void vtkInitialValueProblemSolver::Initialize()
   this->Derivs = new double[this->FunctionSet->GetNumberOfFunctions()];
   this->Initialized = 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Math/vtkInitialValueProblemSolver.h b/Common/Math/vtkInitialValueProblemSolver.h
index 2527e15eda5a9f2ac02670c5f161e532365dd249..c50f80f45bfd19549bc9af7a72c69c5d1cd02fde 100644
--- a/Common/Math/vtkInitialValueProblemSolver.h
+++ b/Common/Math/vtkInitialValueProblemSolver.h
@@ -35,6 +35,7 @@
 #include "vtkCommonMathModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFunctionSet;
 
 class VTKCOMMONMATH_EXPORT vtkInitialValueProblemSolver : public vtkObject
@@ -166,4 +167,5 @@ private:
   void operator=(const vtkInitialValueProblemSolver&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Math/vtkMatrix3x3.cxx b/Common/Math/vtkMatrix3x3.cxx
index b4395f7e3081fd8bebd399397ec04e24f2f8322a..679ef3455486557ac3b42f3a003fdb8e37cac58e 100644
--- a/Common/Math/vtkMatrix3x3.cxx
+++ b/Common/Math/vtkMatrix3x3.cxx
@@ -19,6 +19,7 @@
 #include <cmath>
 #include <cstdlib>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMatrix3x3);
 
 //------------------------------------------------------------------------------
@@ -229,3 +230,4 @@ void vtkMatrix3x3::PrintSelf(ostream& os, vtkIndent indent)
     os << "\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Math/vtkMatrix3x3.h b/Common/Math/vtkMatrix3x3.h
index ce28fe7d573016261000baf4552483fe5e82cec5..d6f2c3f62099b60edd5bc8e158a94cb93b1a1bcd 100644
--- a/Common/Math/vtkMatrix3x3.h
+++ b/Common/Math/vtkMatrix3x3.h
@@ -30,6 +30,7 @@
 #include "vtkCommonMathModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONMATH_EXPORT vtkMatrix3x3 : public vtkObject
 {
   // Some of the methods in here have a corresponding static (class)
@@ -215,4 +216,5 @@ inline bool vtkMatrix3x3::IsIdentity()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Math/vtkMatrix4x4.cxx b/Common/Math/vtkMatrix4x4.cxx
index d6622456ba3bed274c0625db26bed5c381efa125..1368833ddaf797d35bc512cd7af85b05846ac383 100644
--- a/Common/Math/vtkMatrix4x4.cxx
+++ b/Common/Math/vtkMatrix4x4.cxx
@@ -19,6 +19,7 @@
 #include <cmath>
 #include <cstdlib>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMatrix4x4);
 
 //------------------------------------------------------------------------------
@@ -307,3 +308,4 @@ void vtkMatrix4x4::PrintSelf(ostream& os, vtkIndent indent)
     os << "\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Math/vtkMatrix4x4.h b/Common/Math/vtkMatrix4x4.h
index a2bb4664b02dd9894295e5815ccc8d43eeeef7ae..ba0615bf2fb2d8f92a7c5d03434d17858e97658f 100644
--- a/Common/Math/vtkMatrix4x4.h
+++ b/Common/Math/vtkMatrix4x4.h
@@ -32,6 +32,7 @@
 #include "vtkCommonMathModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONMATH_EXPORT vtkMatrix4x4 : public vtkObject
 {
 public:
@@ -313,4 +314,5 @@ inline bool vtkMatrix4x4::IsIdentity()
     M[12] == 0.0 && M[13] == 0.0 && M[14] == 0.0 && M[15] == 1.0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Math/vtkPolynomialSolversUnivariate.cxx b/Common/Math/vtkPolynomialSolversUnivariate.cxx
index 146dcd26f2c7701e970a994b2d5e7c9fda910281..874866b15a611c0c65996d8d3c296c261e2c14b2 100644
--- a/Common/Math/vtkPolynomialSolversUnivariate.cxx
+++ b/Common/Math/vtkPolynomialSolversUnivariate.cxx
@@ -31,6 +31,7 @@
 
 #define VTK_SIGN(x) (((x) < 0) ? (-1) : (1))
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolynomialSolversUnivariate);
 
 static const double sqrt3 = sqrt(static_cast<double>(3.));
@@ -2226,3 +2227,4 @@ double vtkPolynomialSolversUnivariate::GetDivisionTolerance()
 {
   return vtkPolynomialSolversUnivariate::DivisionTolerance;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Math/vtkPolynomialSolversUnivariate.h b/Common/Math/vtkPolynomialSolversUnivariate.h
index 5508fd1ec298e36ba14a120023ea3955352b6128..5d6239b55c48049214551870a7caa95fa2ab8b63 100644
--- a/Common/Math/vtkPolynomialSolversUnivariate.h
+++ b/Common/Math/vtkPolynomialSolversUnivariate.h
@@ -52,6 +52,7 @@
 #include "vtkCommonMathModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONMATH_EXPORT vtkPolynomialSolversUnivariate : public vtkObject
 {
 public:
@@ -288,4 +289,5 @@ private:
   void operator=(const vtkPolynomialSolversUnivariate&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Math/vtkQuaternion.h b/Common/Math/vtkQuaternion.h
index 7b891d9efe83af7219a851e62b84918d9238a91e..ab9af0b1d4c64898fa43ae68cb5ca88dd2551020 100644
--- a/Common/Math/vtkQuaternion.h
+++ b/Common/Math/vtkQuaternion.h
@@ -35,6 +35,7 @@
 
 #include "vtkTuple.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 class vtkQuaternion : public vtkTuple<T, 4>
 {
@@ -442,6 +443,7 @@ public:
   vtkQuaternionOperatorMacro(vtkQuaterniond, double);
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkQuaternion.txx"
 
 #endif // vtkQuaternion_h
diff --git a/Common/Math/vtkQuaternion.txx b/Common/Math/vtkQuaternion.txx
index 88cce1a61526b79d9c471c70d3d5b08f58e086e2..453c5374a49a707757451349ab44cc85d0cc901c 100644
--- a/Common/Math/vtkQuaternion.txx
+++ b/Common/Math/vtkQuaternion.txx
@@ -23,6 +23,7 @@
 #include <cmath>
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 vtkQuaternion<T>::vtkQuaternion()
 {
@@ -628,4 +629,5 @@ vtkQuaternion<T> vtkQuaternion<T>::NormalizedWithAngleInDegrees() const
   return unitVTK;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Math/vtkQuaternionInterpolator.cxx b/Common/Math/vtkQuaternionInterpolator.cxx
index e04dcc468ff68464998ad30594c30f2e9b2f60ad..1e6debe4d8b36d989fafbfab630673dbe5726444 100644
--- a/Common/Math/vtkQuaternionInterpolator.cxx
+++ b/Common/Math/vtkQuaternionInterpolator.cxx
@@ -20,6 +20,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuaternionInterpolator);
 
 //------------------------------------------------------------------------------
@@ -367,3 +368,4 @@ void vtkQuaternionInterpolator::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "InterpolationType: "
      << (this->InterpolationType == INTERPOLATION_TYPE_LINEAR ? "Linear\n" : "Spline\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Math/vtkQuaternionInterpolator.h b/Common/Math/vtkQuaternionInterpolator.h
index 134056049c624507699574fb8c4485c8265a33ad..b2f39f586c648be6af818fb4f49722c8e724e37a 100644
--- a/Common/Math/vtkQuaternionInterpolator.h
+++ b/Common/Math/vtkQuaternionInterpolator.h
@@ -58,6 +58,7 @@
 #include "vtkCommonMathModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuaterniond;
 class vtkQuaternionList;
 
@@ -179,4 +180,5 @@ private:
   void operator=(const vtkQuaternionInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Math/vtkReservoirSampler.cxx b/Common/Math/vtkReservoirSampler.cxx
index 1f6ae11c06f0eed62ecb5b77fa7308e02a03ba9f..91f30b9bd7cab6ab8c96a636e1696806092f1152 100644
--- a/Common/Math/vtkReservoirSampler.cxx
+++ b/Common/Math/vtkReservoirSampler.cxx
@@ -14,8 +14,10 @@
 =========================================================================*/
 #include "vtkReservoirSampler.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkReservoirSamplerBase::SeedType vtkReservoirSamplerBase::RandomSeed()
 {
   VTK_THREAD_LOCAL std::random_device device;
   return device();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Math/vtkReservoirSampler.h b/Common/Math/vtkReservoirSampler.h
index d7960850cfc4096081a9ca7171d80c436412da4b..c4b8a98c4e0322a0855d8827d875fb1650400b0b 100644
--- a/Common/Math/vtkReservoirSampler.h
+++ b/Common/Math/vtkReservoirSampler.h
@@ -39,6 +39,8 @@
 #include <random>
 #include <stdexcept>
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKCOMMONMATH_EXPORT vtkReservoirSamplerBase
 {
 protected:
@@ -146,5 +148,6 @@ protected:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkReservoirSampler_h
 // VTK-HeaderTest-Exclude: vtkReservoirSampler.h
diff --git a/Common/Math/vtkRungeKutta2.cxx b/Common/Math/vtkRungeKutta2.cxx
index e50841918ebc866b50a32d468ae3cd4e81712042..406887faffd87120aaf56d3c510a530edcc692ab 100644
--- a/Common/Math/vtkRungeKutta2.cxx
+++ b/Common/Math/vtkRungeKutta2.cxx
@@ -17,6 +17,7 @@
 #include "vtkFunctionSet.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRungeKutta2);
 
 vtkRungeKutta2::vtkRungeKutta2() = default;
@@ -96,3 +97,4 @@ int vtkRungeKutta2::ComputeNextStep(double* xprev, double* dxprev, double* xnext
 
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Math/vtkRungeKutta2.h b/Common/Math/vtkRungeKutta2.h
index ed06dba4ca7c1e91c4af2b839f89275ad5c42487..71cf6e6baf25dfed5bb638b147fcb1792445dcc3 100644
--- a/Common/Math/vtkRungeKutta2.h
+++ b/Common/Math/vtkRungeKutta2.h
@@ -32,6 +32,7 @@
 #include "vtkCommonMathModule.h" // For export macro
 #include "vtkInitialValueProblemSolver.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONMATH_EXPORT vtkRungeKutta2 : public vtkInitialValueProblemSolver
 {
 public:
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkRungeKutta2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Math/vtkRungeKutta4.cxx b/Common/Math/vtkRungeKutta4.cxx
index 1c9ea7a34664aa1ddbf99e45b1530cebab50f261..4bba16f04563a33e783cce0374be71b7f5b1adf3 100644
--- a/Common/Math/vtkRungeKutta4.cxx
+++ b/Common/Math/vtkRungeKutta4.cxx
@@ -17,6 +17,7 @@
 #include "vtkFunctionSet.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRungeKutta4);
 
 vtkRungeKutta4::vtkRungeKutta4()
@@ -159,3 +160,4 @@ void vtkRungeKutta4::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Runge-Kutta 4 function derivatives: " << this->NextDerivs[0] << " "
      << this->NextDerivs[1] << " " << this->NextDerivs[2] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Math/vtkRungeKutta4.h b/Common/Math/vtkRungeKutta4.h
index 12606fa4e0fc2d43416090ddeaec4e97c0737fb2..6308c7f47c356454300ddadbf8aacf471ad00992 100644
--- a/Common/Math/vtkRungeKutta4.h
+++ b/Common/Math/vtkRungeKutta4.h
@@ -32,6 +32,7 @@
 #include "vtkCommonMathModule.h" // For export macro
 #include "vtkInitialValueProblemSolver.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONMATH_EXPORT vtkRungeKutta4 : public vtkInitialValueProblemSolver
 {
 public:
@@ -100,4 +101,5 @@ private:
   void operator=(const vtkRungeKutta4&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Math/vtkRungeKutta45.cxx b/Common/Math/vtkRungeKutta45.cxx
index 3f14d64758f1d6ca71fa60cba1a0b830c78ea1fb..46adaf54fc04911fdb71e1b952d7d2857730219b 100644
--- a/Common/Math/vtkRungeKutta45.cxx
+++ b/Common/Math/vtkRungeKutta45.cxx
@@ -19,6 +19,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRungeKutta45);
 
 //------------------------------------------------------------------------------
@@ -298,3 +299,4 @@ void vtkRungeKutta45::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Math/vtkRungeKutta45.h b/Common/Math/vtkRungeKutta45.h
index 1737d0d129a7d3451fca6091a9e7236649045578..de3998b8c642dd0233b0e4906064afc45eda12cb 100644
--- a/Common/Math/vtkRungeKutta45.h
+++ b/Common/Math/vtkRungeKutta45.h
@@ -38,6 +38,7 @@
 #include "vtkCommonMathModule.h" // For export macro
 #include "vtkInitialValueProblemSolver.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONMATH_EXPORT vtkRungeKutta45 : public vtkInitialValueProblemSolver
 {
 public:
@@ -124,4 +125,5 @@ private:
   void operator=(const vtkRungeKutta45&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Math/vtkTuple.h b/Common/Math/vtkTuple.h
index b622ebe3d0fee97f339b5e206b4b488944527023..a58a17175f0b98d74e78e459edfe16a1c862d63a 100644
--- a/Common/Math/vtkTuple.h
+++ b/Common/Math/vtkTuple.h
@@ -33,6 +33,7 @@
 #include <cmath>     // for std::abs() with float overloads
 #include <cstdlib>   // for std::abs() with int overloads
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T, int Size>
 class vtkTuple
 {
@@ -229,5 +230,6 @@ bool operator!=(const vtkTuple<A, Size>& t1, const vtkTuple<A, Size>& t2)
   return !(t1 == t2);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTuple_h
 // VTK-HeaderTest-Exclude: vtkTuple.h
diff --git a/Common/Misc/vtkContourValues.cxx b/Common/Misc/vtkContourValues.cxx
index 2ab6617c4eee42f0470d815f61c0ffa6bb32d2e2..0fc1a49d0f3fe2d6f5d24a487d9c79df68ff486f 100644
--- a/Common/Misc/vtkContourValues.cxx
+++ b/Common/Misc/vtkContourValues.cxx
@@ -16,6 +16,7 @@
 #include "vtkDoubleArray.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContourValues);
 
 // Construct object with a single contour value at 0.0.
@@ -177,3 +178,4 @@ void vtkContourValues::DeepCopy(vtkContourValues* other)
 {
   this->Contours->DeepCopy(other->Contours);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Misc/vtkContourValues.h b/Common/Misc/vtkContourValues.h
index bc23011321c3c2373e20741e890cd909438ae4ea..2f8fe9ee80ba115d1d8db2af97e1a7b3f8ca0b53 100644
--- a/Common/Misc/vtkContourValues.h
+++ b/Common/Misc/vtkContourValues.h
@@ -30,6 +30,7 @@
 #include "vtkCommonMiscModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 
 class VTKCOMMONMISC_EXPORT vtkContourValues : public vtkObject
@@ -106,4 +107,5 @@ private:
   void operator=(const vtkContourValues&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Misc/vtkErrorCode.cxx b/Common/Misc/vtkErrorCode.cxx
index bd025c34eb473d97b94652738883f7fa2530e19c..d87bac7f943fef2faf3f0fd1c5338c754aa124a2 100644
--- a/Common/Misc/vtkErrorCode.cxx
+++ b/Common/Misc/vtkErrorCode.cxx
@@ -20,6 +20,7 @@
 
 // this list should only contain the initial, contiguous
 // set of error codes and should not include UserError
+VTK_ABI_NAMESPACE_BEGIN
 static const char* vtkErrorCodeErrorStrings[] = { "NoError", "FileNotFoundError",
   "CannotOpenFileError", "UnrecognizedFileTypeError", "PrematureEndOfFileError", "FileFormatError",
   "NoFileNameError", "OutOfDiskSpaceError", "UnknownError", "UserError", nullptr };
@@ -80,3 +81,4 @@ unsigned long vtkErrorCode::GetLastSystemError()
 {
   return static_cast<unsigned long>(errno);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Misc/vtkErrorCode.h b/Common/Misc/vtkErrorCode.h
index f141a691f6e2459b6ed2b0ac41f9ba46eeb8e3d4..a70119056e7930ebb79957c4667302659a20a738 100644
--- a/Common/Misc/vtkErrorCode.h
+++ b/Common/Misc/vtkErrorCode.h
@@ -26,6 +26,7 @@
 #include "vtkSystemIncludes.h"
 
 // The superclass that all commands should be subclasses of
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONMISC_EXPORT vtkErrorCode
 {
 public:
@@ -54,6 +55,7 @@ public:
   };
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkErrorCode_h */
 
 // VTK-HeaderTest-Exclude: vtkErrorCode.h
diff --git a/Common/Misc/vtkExprTkFunctionParser.cxx b/Common/Misc/vtkExprTkFunctionParser.cxx
index ab79b83c3f149d75e1f8ebe73ef57718527bdb16..9ace27483b2ca3a4ef8c75a9e5eba3d8d4f5def3 100644
--- a/Common/Misc/vtkExprTkFunctionParser.cxx
+++ b/Common/Misc/vtkExprTkFunctionParser.cxx
@@ -32,6 +32,7 @@ using ExprTkResultType = exprtk::results_context<double>::type_store_t::store_ty
 /**
  * Implementation of vtkExprTkTools
  */
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkExprTkTools
 {
   exprtk::symbol_table<double> SymbolTable;
@@ -1322,3 +1323,4 @@ bool vtkExprTkFunctionParser::GetVectorVariableNeeded(const std::string& inVaria
     return false;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Misc/vtkExprTkFunctionParser.h b/Common/Misc/vtkExprTkFunctionParser.h
index 3788d96c635acc19bb052b1858c00f5e2fddbd1f..4a98950629589c5181ac8c60d45b1a736140a33e 100644
--- a/Common/Misc/vtkExprTkFunctionParser.h
+++ b/Common/Misc/vtkExprTkFunctionParser.h
@@ -41,6 +41,7 @@
 #include <vector>     // needed for vector
 
 // forward declarations for ExprTk tools
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkExprTkTools;
 
 class VTKCOMMONMISC_EXPORT vtkExprTkFunctionParser : public vtkObject
@@ -362,4 +363,5 @@ private:
   void operator=(const vtkExprTkFunctionParser&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Misc/vtkFunctionParser.cxx b/Common/Misc/vtkFunctionParser.cxx
index 47e73feab9f49fb290a4277084ec10316d4d71d0..0950102488727a6c322dcade8f1b443d1071ec52 100644
--- a/Common/Misc/vtkFunctionParser.cxx
+++ b/Common/Misc/vtkFunctionParser.cxx
@@ -18,6 +18,7 @@
 #include <algorithm>
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFunctionParser);
 
 static double vtkParserVectorErrorResult[3] = { VTK_PARSER_ERROR_RESULT, VTK_PARSER_ERROR_RESULT,
@@ -2419,3 +2420,4 @@ bool vtkFunctionParser::GetVectorVariableNeeded(const char* inVariableName)
     return false;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Misc/vtkFunctionParser.h b/Common/Misc/vtkFunctionParser.h
index 2235252bce974c406a9b563bad65f1094d565e27..6a3ab3757f2cb514f598ad34382fa82edd916958 100644
--- a/Common/Misc/vtkFunctionParser.h
+++ b/Common/Misc/vtkFunctionParser.h
@@ -130,6 +130,7 @@
 // the value that is returned as a result if there is an error
 #define VTK_PARSER_ERROR_RESULT VTK_FLOAT_MAX
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONMISC_EXPORT vtkFunctionParser : public vtkObject
 {
 public:
@@ -457,4 +458,5 @@ private:
   void operator=(const vtkFunctionParser&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Misc/vtkHeap.cxx b/Common/Misc/vtkHeap.cxx
index 932e54884e9451ca7dd316a1bacd9c4ed651f516..3aeb69222f438980249ff59a1a561cd9aefad190 100644
--- a/Common/Misc/vtkHeap.cxx
+++ b/Common/Misc/vtkHeap.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include <cstddef>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHeap);
 
 static size_t vtkGetLongAlignment()
@@ -182,3 +183,4 @@ void vtkHeap::PrintSelf(ostream& os, vtkIndent indent)
           static_cast<int>(this->Position))
      << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Misc/vtkHeap.h b/Common/Misc/vtkHeap.h
index 6faefa6695c4f482a765a3849c95b2ca115d4c1f..df9e2b94c6c09bbd617fa08624093a4ddd598e45 100644
--- a/Common/Misc/vtkHeap.h
+++ b/Common/Misc/vtkHeap.h
@@ -48,6 +48,7 @@
 #include "vtkCommonMiscModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHeapBlock; // forward declaration
 
 class VTKCOMMONMISC_EXPORT vtkHeap : public vtkObject
@@ -118,4 +119,5 @@ private:
   void operator=(const vtkHeap&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Misc/vtkPolygonBuilder.cxx b/Common/Misc/vtkPolygonBuilder.cxx
index e2784f07f3cef9e5acb5388e34c0c2b58f229fe6..bd4545a7627af3a05279c7425f035c216b68d628 100644
--- a/Common/Misc/vtkPolygonBuilder.cxx
+++ b/Common/Misc/vtkPolygonBuilder.cxx
@@ -15,6 +15,7 @@
 #include "vtkPolygonBuilder.h"
 #include "vtkIdListCollection.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkPolygonBuilder::vtkPolygonBuilder() = default;
 
 void vtkPolygonBuilder::InsertTriangle(const vtkIdType* abc)
@@ -170,3 +171,4 @@ void vtkPolygonBuilder::Reset()
   this->EdgeCounter.clear();
   this->Edges.clear();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Misc/vtkPolygonBuilder.h b/Common/Misc/vtkPolygonBuilder.h
index 10aa83285c9e9140288a061beb2612f2cac34725..6a824ab6cf7cd0669bc4d98c891d8be4c4b41c1f 100644
--- a/Common/Misc/vtkPolygonBuilder.h
+++ b/Common/Misc/vtkPolygonBuilder.h
@@ -34,6 +34,7 @@
 #include <utility>   //for private data members
 #include <vector>    // for private data members
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdListCollection;
 
 class VTKCOMMONMISC_EXPORT vtkPolygonBuilder
@@ -72,5 +73,6 @@ private:
   EdgeMap Edges;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkPolygonBuilder.h
diff --git a/Common/Misc/vtkResourceFileLocator.cxx b/Common/Misc/vtkResourceFileLocator.cxx
index 90fa24398d0af25f7ee9189037a9a5b6b2cd1386..e9d58afbd5afe3ee8b3ce2c90549028871beadf8 100644
--- a/Common/Misc/vtkResourceFileLocator.cxx
+++ b/Common/Misc/vtkResourceFileLocator.cxx
@@ -36,6 +36,7 @@
 #include <dlfcn.h>
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkResourceFileLocator);
 //------------------------------------------------------------------------------
 vtkResourceFileLocator::vtkResourceFileLocator()
@@ -134,3 +135,4 @@ void vtkResourceFileLocator::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "LogVerbosity: " << this->LogVerbosity << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Misc/vtkResourceFileLocator.h b/Common/Misc/vtkResourceFileLocator.h
index 32bb36141651713486157ab1f3a3757adf8334fc..e5584f15c3edcb16e57d83805f7398aeb3cde199 100644
--- a/Common/Misc/vtkResourceFileLocator.h
+++ b/Common/Misc/vtkResourceFileLocator.h
@@ -38,6 +38,7 @@
 #include <string> // needed for std::string
 #include <vector> // needed for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONMISC_EXPORT vtkResourceFileLocator : public vtkObject
 {
 public:
@@ -110,4 +111,5 @@ private:
   vtkResourceFileLocator::GetLibraryPathForSymbolUnix(#function)
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Python/vtkPythonArchiver.cxx b/Common/Python/vtkPythonArchiver.cxx
index 4bfa93f75809bedfa2ff63052903d5fdad310c09..e5be62c696baf77a55215acfbcd7734fcfa1789e 100644
--- a/Common/Python/vtkPythonArchiver.cxx
+++ b/Common/Python/vtkPythonArchiver.cxx
@@ -18,6 +18,7 @@
 #include "vtkSmartPyObject.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPythonArchiver);
 
 //------------------------------------------------------------------------------
@@ -232,3 +233,4 @@ void vtkPythonArchiver::PrintSelf(ostream& os, vtkIndent indent)
     os << std::endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Python/vtkPythonArchiver.h b/Common/Python/vtkPythonArchiver.h
index a0dfc5ea978d035546bd7d4ff53474c9281be656..c5de37537ad1cde6285834a808891ccf1a820582 100644
--- a/Common/Python/vtkPythonArchiver.h
+++ b/Common/Python/vtkPythonArchiver.h
@@ -43,6 +43,7 @@
 #include "vtkArchiver.h"
 #include "vtkCommonPythonModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSmartPyObject;
 
 class VTKCOMMONPYTHON_EXPORT vtkPythonArchiver : public vtkArchiver
@@ -100,5 +101,6 @@ private:
   PyObject* Object;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 #endif
diff --git a/Common/System/vtkClientSocket.cxx b/Common/System/vtkClientSocket.cxx
index cd7152046aabdf092d3704d7640ff89c0ee3205e..ff16ebd95522233d1175028e52a412bb4266cf5a 100644
--- a/Common/System/vtkClientSocket.cxx
+++ b/Common/System/vtkClientSocket.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClientSocket);
 //------------------------------------------------------------------------------
 vtkClientSocket::vtkClientSocket()
@@ -62,3 +63,4 @@ void vtkClientSocket::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "ConnectingSide: " << this->ConnectingSide << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/System/vtkClientSocket.h b/Common/System/vtkClientSocket.h
index f11bc80ca573242db2419fff7b8e95f6b8733441..a7a071a063207c61abd4289808d78d14b9dcfa1b 100644
--- a/Common/System/vtkClientSocket.h
+++ b/Common/System/vtkClientSocket.h
@@ -22,6 +22,7 @@
 
 #include "vtkCommonSystemModule.h" // For export macro
 #include "vtkSocket.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkServerSocket;
 
 class VTKCOMMONSYSTEM_EXPORT vtkClientSocket : public vtkSocket
@@ -59,4 +60,5 @@ private:
   void operator=(const vtkClientSocket&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/System/vtkDirectory.cxx b/Common/System/vtkDirectory.cxx
index 86bc32264ce4f04360331d3bc1a835f11da4eab2..a181d997fab5bc29cde1d2002142c9b4ced42786 100644
--- a/Common/System/vtkDirectory.cxx
+++ b/Common/System/vtkDirectory.cxx
@@ -20,6 +20,7 @@
 
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDirectory);
 
 vtkDirectory::vtkDirectory()
@@ -64,6 +65,7 @@ void vtkDirectory::PrintSelf(ostream& os, vtkIndent indent)
 // First microsoft and borland compilers
 
 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__MINGW32__)
+VTK_ABI_NAMESPACE_END
 #include "vtkWindows.h"
 #include <cctype>
 #include <cstdio>
@@ -74,6 +76,7 @@ void vtkDirectory::PrintSelf(ostream& os, vtkIndent indent)
 #include <io.h>
 #include <sys/types.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 int vtkDirectory::Open(const char* name)
 {
   // clean up from any previous open
@@ -127,6 +130,7 @@ const char* vtkDirectory::GetCurrentWorkingDirectory(char* buf, unsigned int len
 
 // Now the POSIX style directory access
 
+VTK_ABI_NAMESPACE_END
 #include <dirent.h>
 #include <sys/types.h>
 #include <unistd.h>
@@ -145,6 +149,7 @@ const char* vtkDirectory::GetCurrentWorkingDirectory(char* buf, unsigned int len
 #define vtkdirectory_dirent dirent
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 int vtkDirectory::Open(const char* name)
 {
   // clean up from any previous open
@@ -299,3 +304,4 @@ int vtkDirectory::Rename(const char* oldname, const char* newname)
 {
   return 0 == rename(oldname, newname);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/System/vtkDirectory.h b/Common/System/vtkDirectory.h
index f8f628c8e17a62b9d74a568edec230fc763657a4..d17fd5ff136209e7ec28f932231895ac2a2d3186 100644
--- a/Common/System/vtkDirectory.h
+++ b/Common/System/vtkDirectory.h
@@ -29,6 +29,7 @@
 #include "vtkCommonSystemModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 
 class VTKCOMMONSYSTEM_EXPORT vtkDirectory : public vtkObject
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkDirectory&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/System/vtkExecutableRunner.cxx b/Common/System/vtkExecutableRunner.cxx
index e339bdbd6abf48f2d54e83e633d1993e6ecf6823..74bffd140c5c993d57c612d49934ad65586f52fe 100644
--- a/Common/System/vtkExecutableRunner.cxx
+++ b/Common/System/vtkExecutableRunner.cxx
@@ -23,6 +23,7 @@
 
 namespace details
 {
+VTK_ABI_NAMESPACE_BEGIN
 // trim strings. This should go in vtksys at some point
 static inline void ltrim(std::string& s)
 {
@@ -78,8 +79,10 @@ std::vector<std::string> ParseCommand(std::string command)
 
   return res;
 }
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkExecutableRunner);
 
@@ -194,3 +197,4 @@ void vtkExecutableRunner::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Timeout: " << this->GetTimeout() << std::endl;
   os << indent << "RightTrimResult: " << this->GetRightTrimResult() << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/System/vtkExecutableRunner.h b/Common/System/vtkExecutableRunner.h
index c2279a99a73420e1f800586af623345b61a419a4..65f75bd9697b2ca6d5237301b2943912be390457 100644
--- a/Common/System/vtkExecutableRunner.h
+++ b/Common/System/vtkExecutableRunner.h
@@ -29,6 +29,7 @@
  * Launch a process on the current machine and get its standard output and
  * standard error output.
  */
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONSYSTEM_EXPORT vtkExecutableRunner : public vtkObject
 {
 public:
@@ -109,4 +110,5 @@ private:
   std::string StdErr;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkExecutableRunner_h
diff --git a/Common/System/vtkServerSocket.cxx b/Common/System/vtkServerSocket.cxx
index 3d766ecf9148849cae5a934c227a942df65f5ab6..97274d936a90bc9a7f623f88b154a879a9ac0008 100644
--- a/Common/System/vtkServerSocket.cxx
+++ b/Common/System/vtkServerSocket.cxx
@@ -17,6 +17,7 @@
 #include "vtkClientSocket.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkServerSocket);
 //------------------------------------------------------------------------------
 vtkServerSocket::vtkServerSocket() = default;
@@ -98,3 +99,4 @@ void vtkServerSocket::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/System/vtkServerSocket.h b/Common/System/vtkServerSocket.h
index ca93a05956de97991399403e8bf1a165dfc5edb8..68b30e70f41a1cb784baaaa82360ffccb9f53f15 100644
--- a/Common/System/vtkServerSocket.h
+++ b/Common/System/vtkServerSocket.h
@@ -25,6 +25,7 @@
 #include "vtkCommonSystemModule.h" // For export macro
 #include "vtkSocket.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkClientSocket;
 class VTKCOMMONSYSTEM_EXPORT vtkServerSocket : public vtkSocket
 {
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkServerSocket&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/System/vtkSocket.cxx b/Common/System/vtkSocket.cxx
index 418911ac6dc6c3249ae7b6585506403f63e07813..db95bb343f9fa4187006e854c1bc068099ed5bcc 100644
--- a/Common/System/vtkSocket.cxx
+++ b/Common/System/vtkSocket.cxx
@@ -90,6 +90,7 @@
 
 // on windows strerror doesn't handle socket error codes
 #if defined(_WIN32) && !defined(__CYGWIN__)
+VTK_ABI_NAMESPACE_BEGIN
 static const char* wsaStrerror(int wsaeid)
 {
   wchar_t wbuf[256];
@@ -113,9 +114,11 @@ static const char* wsaStrerror(int wsaeid)
 
   return buf;
 }
+VTK_ABI_NAMESPACE_END
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkSocket::vtkSocket()
 {
   this->SocketDescriptor = -1;
@@ -616,3 +619,4 @@ void vtkSocket::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "SocketDescriptor: " << this->SocketDescriptor << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/System/vtkSocket.h b/Common/System/vtkSocket.h
index 0930b9afa2692c735bce92550a5313fafd615ab2..d19d462137e70675937eec28063d1f48cbdc71d0 100644
--- a/Common/System/vtkSocket.h
+++ b/Common/System/vtkSocket.h
@@ -26,6 +26,7 @@
 #include "vtkCommonSystemModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSocketCollection;
 class VTKCOMMONSYSTEM_EXPORT vtkSocket : public vtkObject
 {
@@ -134,4 +135,5 @@ private:
   void operator=(const vtkSocket&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/System/vtkSocketCollection.cxx b/Common/System/vtkSocketCollection.cxx
index 7c199ed747a47859e2c104ed36ca07fbe2ebc1b2..19c960b762043fb173ed655f6d67222fa502d585 100644
--- a/Common/System/vtkSocketCollection.cxx
+++ b/Common/System/vtkSocketCollection.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkSocket.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSocketCollection);
 //------------------------------------------------------------------------------
 vtkSocketCollection::vtkSocketCollection()
@@ -137,3 +138,4 @@ void vtkSocketCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/System/vtkSocketCollection.h b/Common/System/vtkSocketCollection.h
index 920e43ba1e8cddae5c3818141ae426d1677f7dcf..eba4503dd561ad5968753c76118decbb712cfabf 100644
--- a/Common/System/vtkSocketCollection.h
+++ b/Common/System/vtkSocketCollection.h
@@ -27,6 +27,7 @@
 #include "vtkCollection.h"
 #include "vtkCommonSystemModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSocket;
 class VTKCOMMONSYSTEM_EXPORT vtkSocketCollection : public vtkCollection
 {
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkSocketCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/System/vtkTimerLog.cxx b/Common/System/vtkTimerLog.cxx
index 3822b32a03fbdc526181e0860060058e64ce53bf..9a610d87dd717707c8140eeee28b8e23f5efebb9 100644
--- a/Common/System/vtkTimerLog.cxx
+++ b/Common/System/vtkTimerLog.cxx
@@ -49,6 +49,7 @@
 #include "vtkObjectFactory.h"
 
 //==============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 static unsigned int vtkTimerLogCleanupCounter = 0;
 std::vector<vtkTimerLogEntry>* vtkTimerLogEntryVectorPtr = nullptr;
 
@@ -798,3 +799,4 @@ int vtkTimerLog::GetMaxEntries()
 {
   return vtkTimerLog::MaxEntries;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/System/vtkTimerLog.h b/Common/System/vtkTimerLog.h
index 15aca22fe0256a62b4dc81a0a2998f41cb0d8811..deff339bd9734fb31095a35fcd45cb5173483eb9 100644
--- a/Common/System/vtkTimerLog.h
+++ b/Common/System/vtkTimerLog.h
@@ -62,6 +62,7 @@ typedef long fd_mask;
 #endif
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkTimerLogEntry
 {
   enum LogEntryType
@@ -301,4 +302,5 @@ private:
 };
 static vtkTimerLogCleanup vtkTimerLogCleanupInstance;
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkAbstractTransform.cxx b/Common/Transforms/vtkAbstractTransform.cxx
index ed1745d06c3ac25be242d68e4e1faccc95477d91..eae4617ce9fde7484a1ac241ffd148a298046fa2 100644
--- a/Common/Transforms/vtkAbstractTransform.cxx
+++ b/Common/Transforms/vtkAbstractTransform.cxx
@@ -23,6 +23,7 @@
 #include "vtkPoints.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractTransform::vtkAbstractTransform()
 {
   this->MyInverse = nullptr;
@@ -1052,3 +1053,4 @@ void vtkTransformConcatenationStack::DeepCopy(vtkTransformConcatenationStack* st
     this->StackBottom[k]->DeepCopy(stack->StackBottom[k]);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkAbstractTransform.h b/Common/Transforms/vtkAbstractTransform.h
index 1fd8a8ac056b0363a946234d45b0bfd074151e8f..e9c9c2e63aace37cf0c10051c8d596dd14e4f87b 100644
--- a/Common/Transforms/vtkAbstractTransform.h
+++ b/Common/Transforms/vtkAbstractTransform.h
@@ -44,6 +44,7 @@
 
 #include <mutex> // for std::mutex
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkMatrix4x4;
 class vtkPoints;
@@ -512,4 +513,5 @@ private:
   void operator=(const vtkTransformConcatenationStack&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkCylindricalTransform.cxx b/Common/Transforms/vtkCylindricalTransform.cxx
index 78b61da3bc7675c1653d916100209f78a15aeda3..968620ef97ca2f015510a7f4d1002bbe2e1ead66 100644
--- a/Common/Transforms/vtkCylindricalTransform.cxx
+++ b/Common/Transforms/vtkCylindricalTransform.cxx
@@ -18,6 +18,7 @@
 #include <cmath>
 #include <cstdlib>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCylindricalTransform);
 
 //------------------------------------------------------------------------------
@@ -148,3 +149,4 @@ void vtkCylindricalTransform::InverseTransformDerivative(
   vtkRectangularToCylindrical(inPoint, outPoint);
   vtkCylindricalToRectangular(outPoint, tmp, derivative);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkCylindricalTransform.h b/Common/Transforms/vtkCylindricalTransform.h
index 51c84948ee062b0b17259eb0eba03ec68952c492..f0d9e36be5212aedcacf16c9983317fafd430ee5 100644
--- a/Common/Transforms/vtkCylindricalTransform.h
+++ b/Common/Transforms/vtkCylindricalTransform.h
@@ -34,6 +34,7 @@
 #include "vtkCommonTransformsModule.h" // For export macro
 #include "vtkWarpTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONTRANSFORMS_EXPORT vtkCylindricalTransform : public vtkWarpTransform
 {
 public:
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkCylindricalTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkGeneralTransform.cxx b/Common/Transforms/vtkGeneralTransform.cxx
index 75662da88e1d7c398fbf6ceb3ffdb173e32bf6fd..378a2d2e01ea84eefa129fddbb6ba4f57c95bfce 100644
--- a/Common/Transforms/vtkGeneralTransform.cxx
+++ b/Common/Transforms/vtkGeneralTransform.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGeneralTransform);
 
 //------------------------------------------------------------------------------
@@ -310,3 +311,4 @@ vtkMTimeType vtkGeneralTransform::GetMTime()
   }
   return mtime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkGeneralTransform.h b/Common/Transforms/vtkGeneralTransform.h
index bda41ccf51b4fb641ac887c31287631796f10287..fca274369574521ab160594f82aeeeed3f5d074d 100644
--- a/Common/Transforms/vtkGeneralTransform.h
+++ b/Common/Transforms/vtkGeneralTransform.h
@@ -34,6 +34,7 @@
 
 #include "vtkMatrix4x4.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONTRANSFORMS_EXPORT vtkGeneralTransform : public vtkAbstractTransform
 {
 public:
@@ -319,4 +320,5 @@ private:
   void operator=(const vtkGeneralTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkHomogeneousTransform.cxx b/Common/Transforms/vtkHomogeneousTransform.cxx
index 6ce4ae1d776ec5fae828823fca08282145b9e8d5..97484a25f4db95fba49fd6bb91034dfb281d0e0c 100644
--- a/Common/Transforms/vtkHomogeneousTransform.cxx
+++ b/Common/Transforms/vtkHomogeneousTransform.cxx
@@ -18,6 +18,7 @@
 #include "vtkMatrix4x4.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 void TransformVector(double M[4][4], double* outPnt, double f, double* inVec, double* outVec)
@@ -223,3 +224,4 @@ void vtkHomogeneousTransform::InternalDeepCopy(vtkAbstractTransform* transform)
 
   this->Matrix->DeepCopy(t->Matrix);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkHomogeneousTransform.h b/Common/Transforms/vtkHomogeneousTransform.h
index da1948b887bfaf2016ee3dc29248ab612c13c635..5458ba455fecb5fc3711ec0aa72a67c5e437e343 100644
--- a/Common/Transforms/vtkHomogeneousTransform.h
+++ b/Common/Transforms/vtkHomogeneousTransform.h
@@ -29,6 +29,7 @@
 #include "vtkAbstractTransform.h"
 #include "vtkCommonTransformsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 
 class VTKCOMMONTRANSFORMS_EXPORT vtkHomogeneousTransform : public vtkAbstractTransform
@@ -113,4 +114,5 @@ private:
   void operator=(const vtkHomogeneousTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkIdentityTransform.cxx b/Common/Transforms/vtkIdentityTransform.cxx
index 8bd758067fe57646d42743b795b06aecfccfc34c..a60b620c616d78093014f7f321cac0476f5b02d8 100644
--- a/Common/Transforms/vtkIdentityTransform.cxx
+++ b/Common/Transforms/vtkIdentityTransform.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIdentityTransform);
 
 //------------------------------------------------------------------------------
@@ -184,3 +185,4 @@ void vtkIdentityTransform::TransformVectors(vtkDataArray* inNms, vtkDataArray* o
     outNms->InsertNextTuple(vect);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkIdentityTransform.h b/Common/Transforms/vtkIdentityTransform.h
index b333a1569fb1d0b98fda223ecd4240263e20cfdb..a53c80cb6b5224cf7924ee461791b976b0465e60 100644
--- a/Common/Transforms/vtkIdentityTransform.h
+++ b/Common/Transforms/vtkIdentityTransform.h
@@ -29,6 +29,7 @@
 #include "vtkCommonTransformsModule.h" // For export macro
 #include "vtkLinearTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONTRANSFORMS_EXPORT vtkIdentityTransform : public vtkLinearTransform
 {
 public:
@@ -123,4 +124,5 @@ private:
   void operator=(const vtkIdentityTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkLandmarkTransform.cxx b/Common/Transforms/vtkLandmarkTransform.cxx
index 03654f1198c77e98686197ae3f0e5b60c5d62491..b7e7e34f818b30b707b527aa61cccfdd3a91a2a0 100644
--- a/Common/Transforms/vtkLandmarkTransform.cxx
+++ b/Common/Transforms/vtkLandmarkTransform.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLandmarkTransform);
 
 //------------------------------------------------------------------------------
@@ -473,3 +474,4 @@ void vtkLandmarkTransform::InternalDeepCopy(vtkAbstractTransform* transform)
 
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkLandmarkTransform.h b/Common/Transforms/vtkLandmarkTransform.h
index 72104f7316ec6bc896fb2c1ab474a6b9c334a03f..c8c1e29c18f936a887c3fd455bbdaf6c6b8beaf0 100644
--- a/Common/Transforms/vtkLandmarkTransform.h
+++ b/Common/Transforms/vtkLandmarkTransform.h
@@ -39,6 +39,7 @@
 #define VTK_LANDMARK_SIMILARITY 7
 #define VTK_LANDMARK_AFFINE 12
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONTRANSFORMS_EXPORT vtkLandmarkTransform : public vtkLinearTransform
 {
 public:
@@ -136,4 +137,5 @@ inline const char* vtkLandmarkTransform::GetModeAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkLinearTransform.cxx b/Common/Transforms/vtkLinearTransform.cxx
index 0792ef53cefee0f3c4dd99e254b6acb69e6b3ee6..63dba6f2bc776ce4731646acb1b078cae99530e8 100644
--- a/Common/Transforms/vtkLinearTransform.cxx
+++ b/Common/Transforms/vtkLinearTransform.cxx
@@ -21,6 +21,7 @@
 #include "vtkSMPTools.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkLinearTransform::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
@@ -413,3 +414,4 @@ void vtkLinearTransform::TransformVectors(vtkDataArray* inVrs, vtkDataArray* out
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkLinearTransform.h b/Common/Transforms/vtkLinearTransform.h
index 242dbc374cec40db2ffeb08edd4a6c4dd60d741b..ca9b4681672188fd1c78642410d21aa823b1c6ae 100644
--- a/Common/Transforms/vtkLinearTransform.h
+++ b/Common/Transforms/vtkLinearTransform.h
@@ -36,6 +36,7 @@
 #include "vtkCommonTransformsModule.h" // For export macro
 #include "vtkHomogeneousTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONTRANSFORMS_EXPORT vtkLinearTransform : public vtkHomogeneousTransform
 {
 public:
@@ -267,4 +268,5 @@ private:
   void operator=(const vtkLinearTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkMatrixToHomogeneousTransform.cxx b/Common/Transforms/vtkMatrixToHomogeneousTransform.cxx
index 03a1af9a86c627b34a22403ee21d26270b314f65..23f15d64f80b67f70491a0b0a570b2dfed1da5b9 100644
--- a/Common/Transforms/vtkMatrixToHomogeneousTransform.cxx
+++ b/Common/Transforms/vtkMatrixToHomogeneousTransform.cxx
@@ -17,6 +17,7 @@
 #include "vtkMatrix4x4.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMatrixToHomogeneousTransform);
 vtkCxxSetObjectMacro(vtkMatrixToHomogeneousTransform, Input, vtkMatrix4x4);
 
@@ -103,3 +104,4 @@ vtkMTimeType vtkMatrixToHomogeneousTransform::GetMTime()
   }
   return mtime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkMatrixToHomogeneousTransform.h b/Common/Transforms/vtkMatrixToHomogeneousTransform.h
index e43ae018dff07f68095badaf43dfc4f7d93c6992..d34575e27fcf3c43bf12c98b3b5eba497cf80595 100644
--- a/Common/Transforms/vtkMatrixToHomogeneousTransform.h
+++ b/Common/Transforms/vtkMatrixToHomogeneousTransform.h
@@ -32,6 +32,7 @@
 #include "vtkCommonTransformsModule.h" // For export macro
 #include "vtkHomogeneousTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 
 class VTKCOMMONTRANSFORMS_EXPORT vtkMatrixToHomogeneousTransform : public vtkHomogeneousTransform
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkMatrixToHomogeneousTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkMatrixToLinearTransform.cxx b/Common/Transforms/vtkMatrixToLinearTransform.cxx
index ece4f1c3839541398b461c18299f30ee536d8cab..b4ee94fc0be2fc6ad31ebd277242af3b9587e598 100644
--- a/Common/Transforms/vtkMatrixToLinearTransform.cxx
+++ b/Common/Transforms/vtkMatrixToLinearTransform.cxx
@@ -17,6 +17,7 @@
 #include "vtkMatrix4x4.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMatrixToLinearTransform);
 vtkCxxSetObjectMacro(vtkMatrixToLinearTransform, Input, vtkMatrix4x4);
 
@@ -102,3 +103,4 @@ vtkMTimeType vtkMatrixToLinearTransform::GetMTime()
   }
   return mtime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkMatrixToLinearTransform.h b/Common/Transforms/vtkMatrixToLinearTransform.h
index be2e06f06fbb33686e695a966d28f8d7c7af0970..e1b4f62e066c9c90ca6fffa5fb88164eba8a2a7e 100644
--- a/Common/Transforms/vtkMatrixToLinearTransform.h
+++ b/Common/Transforms/vtkMatrixToLinearTransform.h
@@ -32,6 +32,7 @@
 #include "vtkCommonTransformsModule.h" // For export macro
 #include "vtkLinearTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 
 class VTKCOMMONTRANSFORMS_EXPORT vtkMatrixToLinearTransform : public vtkLinearTransform
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkMatrixToLinearTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkPerspectiveTransform.cxx b/Common/Transforms/vtkPerspectiveTransform.cxx
index f0f546ab88d1ee2ea4eae97e7b71b0ec1da9e01e..b555a71186620e00c8d8572bbed5da0f6c4344fb 100644
--- a/Common/Transforms/vtkPerspectiveTransform.cxx
+++ b/Common/Transforms/vtkPerspectiveTransform.cxx
@@ -18,6 +18,7 @@
 
 #include <cstdlib>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPerspectiveTransform);
 
 //------------------------------------------------------------------------------
@@ -465,3 +466,4 @@ void vtkPerspectiveTransform::SetupCamera(double p0, double p1, double p2, doubl
 
   this->SetupCamera(p, fp, vup);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkPerspectiveTransform.h b/Common/Transforms/vtkPerspectiveTransform.h
index 7b6be6776336d2c4f530937606b95172ca63ed76..fc23b2920c283870035d7dc81852fa20060ba7d9 100644
--- a/Common/Transforms/vtkPerspectiveTransform.h
+++ b/Common/Transforms/vtkPerspectiveTransform.h
@@ -50,6 +50,7 @@
 
 #include "vtkMatrix4x4.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONTRANSFORMS_EXPORT vtkPerspectiveTransform : public vtkHomogeneousTransform
 {
 public:
@@ -411,4 +412,5 @@ private:
   void operator=(const vtkPerspectiveTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkSphericalTransform.cxx b/Common/Transforms/vtkSphericalTransform.cxx
index 441c319be45a4221027d5cecaa2c41dbb2927163..46ec6a6809854c2e6b9033159d321d7b9f6c4c5c 100644
--- a/Common/Transforms/vtkSphericalTransform.cxx
+++ b/Common/Transforms/vtkSphericalTransform.cxx
@@ -18,6 +18,7 @@
 #include <cmath>
 #include <cstdlib>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSphericalTransform);
 
 //------------------------------------------------------------------------------
@@ -157,3 +158,4 @@ void vtkSphericalTransform::InverseTransformDerivative(
   vtkRectangularToSpherical(inPoint, outPoint);
   vtkSphericalToRectangular(outPoint, tmp, derivative);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkSphericalTransform.h b/Common/Transforms/vtkSphericalTransform.h
index ba6cc8a67dd3bdb5c72d83dc872da29d7fce467d..b9bc7f3a07e7c686ab081cafaead42053f585a5f 100644
--- a/Common/Transforms/vtkSphericalTransform.h
+++ b/Common/Transforms/vtkSphericalTransform.h
@@ -35,6 +35,7 @@
 #include "vtkCommonTransformsModule.h" // For export macro
 #include "vtkWarpTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONTRANSFORMS_EXPORT vtkSphericalTransform : public vtkWarpTransform
 {
 public:
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkSphericalTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkThinPlateSplineTransform.cxx b/Common/Transforms/vtkThinPlateSplineTransform.cxx
index 95ddb86125eee61db6dc67e6796bc6e2835b2945..3ebdff64e50235aa2c35cebb6da8010b5c02657b 100644
--- a/Common/Transforms/vtkThinPlateSplineTransform.cxx
+++ b/Common/Transforms/vtkThinPlateSplineTransform.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkThinPlateSplineTransform);
 
 //------------------------------------------------------------------------------
@@ -805,3 +806,4 @@ const char* vtkThinPlateSplineTransform::GetBasisAsString()
   }
   return "Unknown";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkThinPlateSplineTransform.h b/Common/Transforms/vtkThinPlateSplineTransform.h
index 1fa35a2a7fd2285d1159d4a36181b5d3a1290b12..d4b9b984000b0adb027f7a3493992fdf686bae3e 100644
--- a/Common/Transforms/vtkThinPlateSplineTransform.h
+++ b/Common/Transforms/vtkThinPlateSplineTransform.h
@@ -47,6 +47,7 @@
 #define VTK_RBF_R 1
 #define VTK_RBF_R2LOGR 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONTRANSFORMS_EXPORT vtkThinPlateSplineTransform : public vtkWarpTransform
 {
 public:
@@ -192,4 +193,5 @@ private:
   void operator=(const vtkThinPlateSplineTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkTransform.cxx b/Common/Transforms/vtkTransform.cxx
index 37b398496b0a2b80c91dc682f21c826fb4d90525..206520d3999cf1824b476b3a045a54ea2c6cba39 100644
--- a/Common/Transforms/vtkTransform.cxx
+++ b/Common/Transforms/vtkTransform.cxx
@@ -18,6 +18,7 @@
 
 #include <cstdlib>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransform);
 
 //------------------------------------------------------------------------------
@@ -547,3 +548,4 @@ void vtkTransform::GetTranspose(vtkMatrix4x4* transpose)
 {
   vtkMatrix4x4::Transpose(this->GetMatrix(), transpose);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkTransform.h b/Common/Transforms/vtkTransform.h
index 5fd2c7b0b5bcb9c8d34d8399440cffdc8d2c712b..28185d12284ccd66d9baed0c8e02c9cd01838224 100644
--- a/Common/Transforms/vtkTransform.h
+++ b/Common/Transforms/vtkTransform.h
@@ -51,6 +51,7 @@
 
 #include "vtkMatrix4x4.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONTRANSFORMS_EXPORT vtkTransform : public vtkLinearTransform
 {
 public:
@@ -456,4 +457,5 @@ private:
   void operator=(const vtkTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkTransform2D.cxx b/Common/Transforms/vtkTransform2D.cxx
index 340494495c6e7d0312abb9da787c7c56565fc0c8..6d0127239f0d6cb1b676bbb9c6ba924735764049 100644
--- a/Common/Transforms/vtkTransform2D.cxx
+++ b/Common/Transforms/vtkTransform2D.cxx
@@ -19,6 +19,7 @@
 
 #include <cstdlib>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransform2D);
 
 //------------------------------------------------------------------------------
@@ -279,3 +280,4 @@ void vtkTransform2D::InverseTransformPoints(vtkPoints2D* inPts, vtkPoints2D* out
     outPts->SetPoint(i, point);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkTransform2D.h b/Common/Transforms/vtkTransform2D.h
index 9ac82f0d6a13aa1af6c89783e7976c8f12ba822d..a8b9ea5e3bd833efa932ad70605b720a7c7335cd 100644
--- a/Common/Transforms/vtkTransform2D.h
+++ b/Common/Transforms/vtkTransform2D.h
@@ -40,6 +40,7 @@
 
 #include "vtkMatrix3x3.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints2D;
 
 class VTKCOMMONTRANSFORMS_EXPORT vtkTransform2D : public vtkObject
@@ -212,4 +213,5 @@ private:
   void operator=(const vtkTransform2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkTransformCollection.cxx b/Common/Transforms/vtkTransformCollection.cxx
index 76a2d8b3ffbf0e92cf9459c08c3704e428b932cb..9d277ead88613802940a83014627901b2df39268 100644
--- a/Common/Transforms/vtkTransformCollection.cxx
+++ b/Common/Transforms/vtkTransformCollection.cxx
@@ -15,9 +15,11 @@
 #include "vtkTransformCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransformCollection);
 
 void vtkTransformCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkTransformCollection.h b/Common/Transforms/vtkTransformCollection.h
index be2b9476127689334e1672e24fba7000e2d366d4..e14fb57060960ba72eaa665bed04a565c18d15c0 100644
--- a/Common/Transforms/vtkTransformCollection.h
+++ b/Common/Transforms/vtkTransformCollection.h
@@ -32,6 +32,7 @@
 
 #include "vtkTransform.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONTRANSFORMS_EXPORT vtkTransformCollection : public vtkCollection
 {
 public:
@@ -84,4 +85,5 @@ inline vtkTransform* vtkTransformCollection::GetNextItem()
   return static_cast<vtkTransform*>(this->GetNextItemAsObject());
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Common/Transforms/vtkWarpTransform.cxx b/Common/Transforms/vtkWarpTransform.cxx
index 4060f0362e752f0b3d8c6788a5ae2458c49c2b13..6fac6d16484e277912ab808ee41e31473c328efc 100644
--- a/Common/Transforms/vtkWarpTransform.cxx
+++ b/Common/Transforms/vtkWarpTransform.cxx
@@ -16,6 +16,7 @@
 #include "vtkMath.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkWarpTransform::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
@@ -252,3 +253,4 @@ void vtkWarpTransform::Inverse()
   this->InverseFlag = !this->InverseFlag;
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Common/Transforms/vtkWarpTransform.h b/Common/Transforms/vtkWarpTransform.h
index cc738648172332fcc081ec30caada6d61f48f19e..8fcb0f062bf2e60c2388da49b54805024982bbae 100644
--- a/Common/Transforms/vtkWarpTransform.h
+++ b/Common/Transforms/vtkWarpTransform.h
@@ -28,6 +28,7 @@
 #include "vtkAbstractTransform.h"
 #include "vtkCommonTransformsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKCOMMONTRANSFORMS_EXPORT vtkWarpTransform : public vtkAbstractTransform
 {
 public:
@@ -187,4 +188,5 @@ private:
   void operator=(const vtkWarpTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkBlueObeliskData.cxx b/Domains/Chemistry/vtkBlueObeliskData.cxx
index 0187f89705de671d6275f013b25f3f3a538c5c24..52f3883f4071053a42715c176c80c2e703d285f2 100644
--- a/Domains/Chemistry/vtkBlueObeliskData.cxx
+++ b/Domains/Chemistry/vtkBlueObeliskData.cxx
@@ -27,6 +27,7 @@
 #include <vector>
 
 // Hidden STL reference: std::vector<vtkAbstractArray*>
+VTK_ABI_NAMESPACE_BEGIN
 class MyStdVectorOfVtkAbstractArrays : public std::vector<vtkAbstractArray*>
 {
 };
@@ -154,6 +155,7 @@ void vtkBlueObeliskData::PrintSelfIfExists(
     os << indent << name << " is null.\n";
   }
 }
+VTK_ABI_NAMESPACE_END
 
 // Helpers for reading raw data from the private header into a VTK array.
 namespace
@@ -185,6 +187,7 @@ void LoadDataArray(
 
 } // End anon namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 void vtkBlueObeliskData::LockWriteMutex()
 {
@@ -241,6 +244,7 @@ void vtkBlueObeliskData::Initialize()
   this->Initialized = true;
 }
 
+VTK_ABI_NAMESPACE_END
 // Helpers for GenerateHeaderFromXML:
 namespace
 {
@@ -315,6 +319,7 @@ void WriteDataArray(const std::string& name, ArrayT* data, std::ostream& out)
 
 } // end anon namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 bool vtkBlueObeliskData::GenerateHeaderFromXML(std::istream& xml, std::ostream& out)
 {
@@ -401,3 +406,4 @@ void vtkBlueObeliskData::Reset()
     (*it)->Reset();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkBlueObeliskData.h b/Domains/Chemistry/vtkBlueObeliskData.h
index 80856f437059fd524252ee4b04e945159252c397..e4df335d8ea04b0fe6562e9364ebf00539d945a7 100644
--- a/Domains/Chemistry/vtkBlueObeliskData.h
+++ b/Domains/Chemistry/vtkBlueObeliskData.h
@@ -42,6 +42,7 @@
 
 #include <mutex> // for std::mutex
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkFloatArray;
 class vtkStringArray;
@@ -192,4 +193,5 @@ private:
   std::mutex NewWriteMutex;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkBlueObeliskDataInternal.h b/Domains/Chemistry/vtkBlueObeliskDataInternal.h
index ba9b9edf2edfb60b69f589e00bfa9bccedd1938a..ce730cbb59788c7cdf07cfbebb9293825fe11e54 100644
--- a/Domains/Chemistry/vtkBlueObeliskDataInternal.h
+++ b/Domains/Chemistry/vtkBlueObeliskDataInternal.h
@@ -3,6 +3,7 @@
 // Do not edit. Any modifications may be lost.
 
 namespace vtkBlueObeliskData_ {
+VTK_ABI_NAMESPACE_BEGIN
 
 static const unsigned int numberOfElements = 118;
 
@@ -2324,5 +2325,6 @@ static const unsigned short Groups[119][1] = {
   { 18 }
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtkBlueObeliskData_
 // VTK-HeaderTest-Exclude: vtkBlueObeliskDataInternal.h
diff --git a/Domains/Chemistry/vtkBlueObeliskDataParser.cxx b/Domains/Chemistry/vtkBlueObeliskDataParser.cxx
index a558140a471fac8c344b5ee21c7af4c82b951869..5fe1a549df956f408960d201783de6ee489c888e 100644
--- a/Domains/Chemistry/vtkBlueObeliskDataParser.cxx
+++ b/Domains/Chemistry/vtkBlueObeliskDataParser.cxx
@@ -36,6 +36,7 @@
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBlueObeliskDataParser);
 
 //------------------------------------------------------------------------------
@@ -516,3 +517,4 @@ inline std::string* vtkBlueObeliskDataParser::ToLower(std::string* str)
   }
   return str;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkBlueObeliskDataParser.h b/Domains/Chemistry/vtkBlueObeliskDataParser.h
index b3068126b6421662179eb2ce459ab845ebe8ef27..7fa3bf2a216d1990526a2bbbbc38f2b194d1f05f 100644
--- a/Domains/Chemistry/vtkBlueObeliskDataParser.h
+++ b/Domains/Chemistry/vtkBlueObeliskDataParser.h
@@ -41,6 +41,7 @@
 
 #include "vtkSmartPointer.h" // For vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkBlueObeliskData;
 class vtkFloatArray;
@@ -175,4 +176,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkMoleculeMapper.cxx b/Domains/Chemistry/vtkMoleculeMapper.cxx
index d8a73e5c258e4b880c86589a56905a2e368f443e..bcf12201137c3c64091959d038456b074b195995 100644
--- a/Domains/Chemistry/vtkMoleculeMapper.cxx
+++ b/Domains/Chemistry/vtkMoleculeMapper.cxx
@@ -48,6 +48,7 @@
 // Note this class may have an accelerated subclass ala
 // vtkOpenGLMoleculeMapper. If you change this class please
 // also check that class for impacts.
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkMoleculeMapper);
 
 //------------------------------------------------------------------------------
@@ -959,3 +960,4 @@ void vtkMoleculeMapper::SetMapScalars(bool map)
   this->BondGlyphMapper->SetColorMode(
     map ? VTK_COLOR_MODE_MAP_SCALARS : VTK_COLOR_MODE_DIRECT_SCALARS);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkMoleculeMapper.h b/Domains/Chemistry/vtkMoleculeMapper.h
index feff3af19d84a3dc678f617075552bfe5277f0e1..fd04a5280ac0440eb948792c395915145d40f8be 100644
--- a/Domains/Chemistry/vtkMoleculeMapper.h
+++ b/Domains/Chemistry/vtkMoleculeMapper.h
@@ -28,6 +28,7 @@
 #include "vtkMapper.h"
 #include "vtkNew.h" // For vtkNew
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkGlyph3DMapper;
 class vtkIdTypeArray;
@@ -374,4 +375,5 @@ private:
   void operator=(const vtkMoleculeMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkMoleculeToAtomBallFilter.cxx b/Domains/Chemistry/vtkMoleculeToAtomBallFilter.cxx
index c5fae0a66052c3d61f87a76b2134ba8b353bf40f..ac6fdc4679fa7e3abdf2c1baff34966dd9b3bbba 100644
--- a/Domains/Chemistry/vtkMoleculeToAtomBallFilter.cxx
+++ b/Domains/Chemistry/vtkMoleculeToAtomBallFilter.cxx
@@ -26,6 +26,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMoleculeToAtomBallFilter);
 
 //------------------------------------------------------------------------------
@@ -182,3 +183,4 @@ void vtkMoleculeToAtomBallFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Resolution: " << Resolution << "\n";
   os << indent << "RadiusScale: " << RadiusScale << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkMoleculeToAtomBallFilter.h b/Domains/Chemistry/vtkMoleculeToAtomBallFilter.h
index 4de219c2df1472f4b7432fd3bc68dd42c735bd17..ad2b06d81ab93cf89ad42f4d8ac7855656de742f 100644
--- a/Domains/Chemistry/vtkMoleculeToAtomBallFilter.h
+++ b/Domains/Chemistry/vtkMoleculeToAtomBallFilter.h
@@ -37,6 +37,7 @@
 #include "vtkDomainsChemistryModule.h" // For export macro
 #include "vtkMoleculeToPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMolecule;
 
 class VTKDOMAINSCHEMISTRY_EXPORT vtkMoleculeToAtomBallFilter : public vtkMoleculeToPolyDataFilter
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkMoleculeToAtomBallFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkMoleculeToBondStickFilter.cxx b/Domains/Chemistry/vtkMoleculeToBondStickFilter.cxx
index ed43e23e67c1986fadca10c8f6009943bfe6effe..72c0e1e577d70b40cb5770ae0d655f75215d7fdf 100644
--- a/Domains/Chemistry/vtkMoleculeToBondStickFilter.cxx
+++ b/Domains/Chemistry/vtkMoleculeToBondStickFilter.cxx
@@ -27,6 +27,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMoleculeToBondStickFilter);
 
 //------------------------------------------------------------------------------
@@ -210,3 +211,4 @@ void vtkMoleculeToBondStickFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkMoleculeToBondStickFilter.h b/Domains/Chemistry/vtkMoleculeToBondStickFilter.h
index f15de2192b17e6e95ece4ed1251654b8627f0285..a65eb902d85f9abb3acce00b11a282e45650f920 100644
--- a/Domains/Chemistry/vtkMoleculeToBondStickFilter.h
+++ b/Domains/Chemistry/vtkMoleculeToBondStickFilter.h
@@ -24,6 +24,7 @@
 #include "vtkDomainsChemistryModule.h" // For export macro
 #include "vtkMoleculeToPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMolecule;
 
 class VTKDOMAINSCHEMISTRY_EXPORT vtkMoleculeToBondStickFilter : public vtkMoleculeToPolyDataFilter
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkMoleculeToBondStickFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkMoleculeToLinesFilter.cxx b/Domains/Chemistry/vtkMoleculeToLinesFilter.cxx
index 8efba5daf57951b07ee454701d97c27c5b07055a..10c10656a8d8cf426088c6b5031cb53a4ccfc90b 100644
--- a/Domains/Chemistry/vtkMoleculeToLinesFilter.cxx
+++ b/Domains/Chemistry/vtkMoleculeToLinesFilter.cxx
@@ -20,6 +20,7 @@
 #include "vtkMolecule.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMoleculeToLinesFilter);
 
 //------------------------------------------------------------------------------
@@ -53,3 +54,4 @@ int vtkMoleculeToLinesFilter::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkMoleculeToLinesFilter.h b/Domains/Chemistry/vtkMoleculeToLinesFilter.h
index 79479af8774f1fe0c49d42e94256e96467338571..b165789fac8516d8f63d418f7f36096595d4cbcc 100644
--- a/Domains/Chemistry/vtkMoleculeToLinesFilter.h
+++ b/Domains/Chemistry/vtkMoleculeToLinesFilter.h
@@ -31,6 +31,7 @@
 #include "vtkDomainsChemistryModule.h" // For export macro
 #include "vtkMoleculeToPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKDOMAINSCHEMISTRY_EXPORT vtkMoleculeToLinesFilter : public vtkMoleculeToPolyDataFilter
 {
 public:
@@ -49,4 +50,5 @@ private:
   void operator=(const vtkMoleculeToLinesFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkMoleculeToPolyDataFilter.cxx b/Domains/Chemistry/vtkMoleculeToPolyDataFilter.cxx
index 6f68b9b9dc36a39507e5b8f4ce017b9280f24919..09f45667857d0d7a4c203ae284c802885369df37 100644
--- a/Domains/Chemistry/vtkMoleculeToPolyDataFilter.cxx
+++ b/Domains/Chemistry/vtkMoleculeToPolyDataFilter.cxx
@@ -18,6 +18,7 @@
 #include "vtkMolecule.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkMoleculeToPolyDataFilter::vtkMoleculeToPolyDataFilter()
 {
   this->SetNumberOfInputPorts(1);
@@ -48,3 +49,4 @@ void vtkMoleculeToPolyDataFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkMoleculeToPolyDataFilter.h b/Domains/Chemistry/vtkMoleculeToPolyDataFilter.h
index 228bc78e5056bc3596554f9c3b3afa1a9790603f..4d270651f95557d69cf742efb65bcc00ca5ca573 100644
--- a/Domains/Chemistry/vtkMoleculeToPolyDataFilter.h
+++ b/Domains/Chemistry/vtkMoleculeToPolyDataFilter.h
@@ -27,6 +27,7 @@
 #include "vtkDomainsChemistryModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMolecule;
 
 class VTKDOMAINSCHEMISTRY_EXPORT vtkMoleculeToPolyDataFilter : public vtkPolyDataAlgorithm
@@ -48,4 +49,5 @@ private:
   void operator=(const vtkMoleculeToPolyDataFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkOpenQubeElectronicData.cxx b/Domains/Chemistry/vtkOpenQubeElectronicData.cxx
index 0364a75d382593c8384480df0c61a327c666f057..c1a1dd6a8228140a5d8fa7e0018808751e4a5c92 100644
--- a/Domains/Chemistry/vtkOpenQubeElectronicData.cxx
+++ b/Domains/Chemistry/vtkOpenQubeElectronicData.cxx
@@ -24,6 +24,7 @@
 #include <openqube/cube.h>
 
 // Internal class to store queue/qube information along with the image
+VTK_ABI_NAMESPACE_BEGIN
 class OQEDImageData : public vtkImageData
 {
 public:
@@ -429,3 +430,4 @@ void vtkOpenQubeElectronicData::FillImageDataFromQube(OpenQube::Cube* qube, vtkI
   vtkDebugMacro(<< "Copied " << qubeSize << " (actual: " << qubeInd + 1
                 << ") points from qube to vtkImageData.");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkOpenQubeElectronicData.h b/Domains/Chemistry/vtkOpenQubeElectronicData.h
index 507539dead409ad54210c6e1eed1653906d5aeba..e0e48c4fa933d77ef697153de2e60d5049b914b8 100644
--- a/Domains/Chemistry/vtkOpenQubeElectronicData.h
+++ b/Domains/Chemistry/vtkOpenQubeElectronicData.h
@@ -31,6 +31,8 @@ class BasisSet;
 class Cube;
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkImageData;
 class vtkDataSetCollection;
 
@@ -143,4 +145,5 @@ private:
   void operator=(const vtkOpenQubeElectronicData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkOpenQubeMoleculeSource.cxx b/Domains/Chemistry/vtkOpenQubeMoleculeSource.cxx
index 099ed7b70baedbaa9e3d5b43695a02d9498133e7..ae9d2f95f2522d28d0372f550da83e30b48641f4 100644
--- a/Domains/Chemistry/vtkOpenQubeMoleculeSource.cxx
+++ b/Domains/Chemistry/vtkOpenQubeMoleculeSource.cxx
@@ -28,6 +28,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenQubeMoleculeSource);
 
 //------------------------------------------------------------------------------
@@ -163,3 +164,4 @@ void vtkOpenQubeMoleculeSource::CopyOQMoleculeToVtkMolecule(
 
   // TODO copy bonds (OQ doesn't currently have bonds)
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkOpenQubeMoleculeSource.h b/Domains/Chemistry/vtkOpenQubeMoleculeSource.h
index 8ef976760def7903d599807eb16e73adca8a5efa..0619a29f88c47620ab262ef2d61b14344d8224e9 100644
--- a/Domains/Chemistry/vtkOpenQubeMoleculeSource.h
+++ b/Domains/Chemistry/vtkOpenQubeMoleculeSource.h
@@ -26,14 +26,15 @@
 #include "vtkDataReader.h"
 #include "vtkDomainsChemistryModule.h" // For export macro
 
-class vtkMolecule;
-
 namespace OpenQube
 {
 class Molecule;
 class BasisSet;
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+class vtkMolecule;
+
 class VTKDOMAINSCHEMISTRY_EXPORT vtkOpenQubeMoleculeSource : public vtkDataReader
 {
 public:
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkOpenQubeMoleculeSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkPeriodicTable.cxx b/Domains/Chemistry/vtkPeriodicTable.cxx
index 4be5b1efe5ea6b17dcc58d04ead690fabb7ed8e6..03c1cd174c8d5bcf46043b218e4205f83b8908f8 100644
--- a/Domains/Chemistry/vtkPeriodicTable.cxx
+++ b/Domains/Chemistry/vtkPeriodicTable.cxx
@@ -32,6 +32,7 @@
 #include <string>
 
 // Setup static variables
+VTK_ABI_NAMESPACE_BEGIN
 vtkNew<vtkBlueObeliskData> vtkPeriodicTable::BlueObeliskData;
 
 //------------------------------------------------------------------------------
@@ -220,3 +221,4 @@ vtkColor3f vtkPeriodicTable::GetDefaultRGBTuple(unsigned short atomicNum)
   vtkPeriodicTable::BlueObeliskData->GetDefaultColors()->GetTypedTuple(atomicNum, result.GetData());
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkPeriodicTable.h b/Domains/Chemistry/vtkPeriodicTable.h
index b373d7e5b1974bd7c80be79393ce74b545e39539..aaa024cb89a0f0d656f7b9a9c2742dabcc5e03b4 100644
--- a/Domains/Chemistry/vtkPeriodicTable.h
+++ b/Domains/Chemistry/vtkPeriodicTable.h
@@ -30,6 +30,7 @@
 #include "vtkNew.h"                    // Needed for the static data member
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBlueObeliskData;
 class vtkColor3f;
 class vtkLookupTable;
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkPeriodicTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkPointSetToMoleculeFilter.cxx b/Domains/Chemistry/vtkPointSetToMoleculeFilter.cxx
index ba36fca06149bb67ee21b42903173b7f892c8e8a..a166235947cffa861ac77cd9e5ab79b3f4d5290a 100644
--- a/Domains/Chemistry/vtkPointSetToMoleculeFilter.cxx
+++ b/Domains/Chemistry/vtkPointSetToMoleculeFilter.cxx
@@ -23,6 +23,7 @@
 #include "vtkPointData.h"
 #include "vtkPointSet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointSetToMoleculeFilter);
 
 //------------------------------------------------------------------------------
@@ -102,3 +103,4 @@ int vtkPointSetToMoleculeFilter::RequestData(
 
   return res;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkPointSetToMoleculeFilter.h b/Domains/Chemistry/vtkPointSetToMoleculeFilter.h
index 22d8b57e3efbb4324ff042003e654f7c7ffc93e1..43fc5924492d33ce118ed1b5dacaa48d0bc8553b 100644
--- a/Domains/Chemistry/vtkPointSetToMoleculeFilter.h
+++ b/Domains/Chemistry/vtkPointSetToMoleculeFilter.h
@@ -29,6 +29,7 @@
 #include "vtkDomainsChemistryModule.h" // For export macro
 #include "vtkMoleculeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKDOMAINSCHEMISTRY_EXPORT vtkPointSetToMoleculeFilter : public vtkMoleculeAlgorithm
 {
 public:
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkPointSetToMoleculeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkProgrammableElectronicData.cxx b/Domains/Chemistry/vtkProgrammableElectronicData.cxx
index ab0f40f2468c9275be97ad7597b82df83fc0188f..48a47dab6cb463a7fdb1f1bfbb955a170b3aeadb 100644
--- a/Domains/Chemistry/vtkProgrammableElectronicData.cxx
+++ b/Domains/Chemistry/vtkProgrammableElectronicData.cxx
@@ -24,6 +24,7 @@
 #include <vector>
 
 // PIMPL'd std::vector
+VTK_ABI_NAMESPACE_BEGIN
 class StdVectorOfImageDataPointers : public std::vector<vtkSmartPointer<vtkImageData>>
 {
 };
@@ -176,3 +177,4 @@ void vtkProgrammableElectronicData::DeepCopy(vtkDataObject* obj)
     this->SetElectronDensity(newImage);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkProgrammableElectronicData.h b/Domains/Chemistry/vtkProgrammableElectronicData.h
index 5c0fc24dc9bebc0e30b3e3ab15823ac107ea2e23..6308d81e48b20838e6ca44641e3b71f53a10744b 100644
--- a/Domains/Chemistry/vtkProgrammableElectronicData.h
+++ b/Domains/Chemistry/vtkProgrammableElectronicData.h
@@ -24,6 +24,7 @@
 #include "vtkAbstractElectronicData.h"
 #include "vtkDomainsChemistryModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class StdVectorOfImageDataPointers;
@@ -104,4 +105,5 @@ private:
   void operator=(const vtkProgrammableElectronicData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Chemistry/vtkProteinRibbonFilter.cxx b/Domains/Chemistry/vtkProteinRibbonFilter.cxx
index 2833a8dc14c6660024625b895545e33de465452a..8554cb95daea2bd05e8531d6004f050c5ef6d124 100644
--- a/Domains/Chemistry/vtkProteinRibbonFilter.cxx
+++ b/Domains/Chemistry/vtkProteinRibbonFilter.cxx
@@ -38,6 +38,7 @@
 #include <map>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProteinRibbonFilter);
 
 namespace
@@ -425,3 +426,4 @@ void vtkProteinRibbonFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkProteinRibbonFilter.h b/Domains/Chemistry/vtkProteinRibbonFilter.h
index b4c3bd032f1cb18ad526e97be28abe7340818f43..9b0404e4e5f7984ab9aa33ac4c042a4b826117c7 100644
--- a/Domains/Chemistry/vtkProteinRibbonFilter.h
+++ b/Domains/Chemistry/vtkProteinRibbonFilter.h
@@ -30,6 +30,7 @@
 #include "vtkColor.h" // For vtkColor3ub.
 #include <map>        // For element to color map.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVector3f;
 class vtkStringArray;
 
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkProteinRibbonFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkProteinRibbonFilter_h
diff --git a/Domains/Chemistry/vtkSimpleBondPerceiver.cxx b/Domains/Chemistry/vtkSimpleBondPerceiver.cxx
index 33ff68cfeadc1bd97efc13eba603bae44e6dfb86..f44764c93e0ef38e22c4dd65ac7b76f2bcb2c75f 100644
--- a/Domains/Chemistry/vtkSimpleBondPerceiver.cxx
+++ b/Domains/Chemistry/vtkSimpleBondPerceiver.cxx
@@ -33,6 +33,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkSimpleBondPerceiver);
 
 //------------------------------------------------------------------------------
@@ -193,3 +194,4 @@ double vtkSimpleBondPerceiver::GetCovalentRadiusWithTolerance(
   return this->IsToleranceAbsolute ? table->GetCovalentRadius(atomicNumber) + this->Tolerance / 2
                                    : table->GetCovalentRadius(atomicNumber) * this->Tolerance;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Chemistry/vtkSimpleBondPerceiver.h b/Domains/Chemistry/vtkSimpleBondPerceiver.h
index 606b814686aba78e5faf898e3b571881279bc9ce..a397c4a548eacf6c607caed0cfdc28e0efcf35bf 100644
--- a/Domains/Chemistry/vtkSimpleBondPerceiver.h
+++ b/Domains/Chemistry/vtkSimpleBondPerceiver.h
@@ -37,6 +37,7 @@
 #include "vtkDomainsChemistryModule.h" // For export macro
 #include "vtkMoleculeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkMolecule;
 class vtkPeriodicTable;
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkSimpleBondPerceiver&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/ChemistryOpenGL2/vtkOpenGLMoleculeMapper.cxx b/Domains/ChemistryOpenGL2/vtkOpenGLMoleculeMapper.cxx
index 931d53f83e347337dc1bc7256cbe7cf086048b20..4b4b2929577dc62035990635ee1f2ec87a0af8b7 100644
--- a/Domains/ChemistryOpenGL2/vtkOpenGLMoleculeMapper.cxx
+++ b/Domains/ChemistryOpenGL2/vtkOpenGLMoleculeMapper.cxx
@@ -25,6 +25,7 @@
 #include "vtkTrivialProducer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLMoleculeMapper);
 
 //------------------------------------------------------------------------------
@@ -155,3 +156,4 @@ void vtkOpenGLMoleculeMapper::SetMapScalars(bool map)
   this->FastBondMapper->SetColorMode(
     map ? VTK_COLOR_MODE_MAP_SCALARS : VTK_COLOR_MODE_DIRECT_SCALARS);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/ChemistryOpenGL2/vtkOpenGLMoleculeMapper.h b/Domains/ChemistryOpenGL2/vtkOpenGLMoleculeMapper.h
index 3a3d4bbdbe0ce528a010cc21f30f6f48d9b270ff..1ab591766e0669ed8c790c8bbc73d5975b1ad9b9 100644
--- a/Domains/ChemistryOpenGL2/vtkOpenGLMoleculeMapper.h
+++ b/Domains/ChemistryOpenGL2/vtkOpenGLMoleculeMapper.h
@@ -26,6 +26,7 @@
 #include "vtkMoleculeMapper.h"
 #include "vtkNew.h" // For vtkNew
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLSphereMapper;
 class vtkOpenGLStickMapper;
 
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkOpenGLMoleculeMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/Microscopy/vtkOpenSlideReader.cxx b/Domains/Microscopy/vtkOpenSlideReader.cxx
index eb29208b6b7b2a6fd7a5bfde947efd03dc485e9a..4de3b355422746b22dbaa5814373c2c9c2f0ee0b 100644
--- a/Domains/Microscopy/vtkOpenSlideReader.cxx
+++ b/Domains/Microscopy/vtkOpenSlideReader.cxx
@@ -22,6 +22,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenSlideReader);
 
 void vtkOpenSlideReader::ExecuteInformation()
@@ -155,3 +156,4 @@ void vtkOpenSlideReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/Microscopy/vtkOpenSlideReader.h b/Domains/Microscopy/vtkOpenSlideReader.h
index 60cf548c95497920177e14f3068db384f5bf8ea1..70104a4b6cc353d64035b8d9390500a5b65af7dd 100644
--- a/Domains/Microscopy/vtkOpenSlideReader.h
+++ b/Domains/Microscopy/vtkOpenSlideReader.h
@@ -36,6 +36,7 @@ extern "C"
 #include "openslide/openslide.h" // For openslide support
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKDOMAINSMICROSCOPY_EXPORT vtkOpenSlideReader : public vtkImageReader2
 {
 public:
@@ -78,4 +79,5 @@ private:
   vtkOpenSlideReader(const vtkOpenSlideReader&) = delete;
   void operator=(const vtkOpenSlideReader&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Domains/ParallelChemistry/vtkPSimpleBondPerceiver.cxx b/Domains/ParallelChemistry/vtkPSimpleBondPerceiver.cxx
index 1ee8ab34800502664279b86fff354f0597e8625a..66a868bdbe1e876c1dd3d8cd70e060d8a1b6cf01 100644
--- a/Domains/ParallelChemistry/vtkPSimpleBondPerceiver.cxx
+++ b/Domains/ParallelChemistry/vtkPSimpleBondPerceiver.cxx
@@ -28,6 +28,7 @@
 #include "vtkPolyData.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPSimpleBondPerceiver);
 
 //------------------------------------------------------------------------------
@@ -130,3 +131,4 @@ void vtkPSimpleBondPerceiver::ComputeBonds(vtkMolecule* molecule)
 
   this->Superclass::ComputeBonds(molecule);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Domains/ParallelChemistry/vtkPSimpleBondPerceiver.h b/Domains/ParallelChemistry/vtkPSimpleBondPerceiver.h
index 6e3906935de01a388ba3ead4d56cbdfbecbd783a..6bbeaa89beaeddb127f65c07d294b5c165363adb 100644
--- a/Domains/ParallelChemistry/vtkPSimpleBondPerceiver.h
+++ b/Domains/ParallelChemistry/vtkPSimpleBondPerceiver.h
@@ -34,6 +34,7 @@
 #include "vtkDomainsParallelChemistryModule.h" // For export macro
 #include "vtkSimpleBondPerceiver.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKDOMAINSPARALLELCHEMISTRY_EXPORT vtkPSimpleBondPerceiver : public vtkSimpleBondPerceiver
 {
 public:
@@ -60,4 +61,5 @@ private:
   vtkPSimpleBondPerceiver(const vtkPSimpleBondPerceiver&) = delete;
   void operator=(const vtkPSimpleBondPerceiver&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Examples/AMR/Cxx/AMRCommon.h b/Examples/AMR/Cxx/AMRCommon.h
index 1da7face68392bb574a44dacf1fb13a0e94a7500..43a9e39dc0d8ded2f261c86a3a97732bbe472f91 100644
--- a/Examples/AMR/Cxx/AMRCommon.h
+++ b/Examples/AMR/Cxx/AMRCommon.h
@@ -39,6 +39,7 @@
 
 namespace AMRCommon
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 // Description:
@@ -155,6 +156,7 @@ void ComputeCellCenter(vtkUniformGrid* grid, const int cellIdx, double c[3])
   delete[] weights;
 }
 
+VTK_ABI_NAMESPACE_END
 } // END namespace
 
 #endif /* AMRCOMMON_H_ */
diff --git a/Examples/Build/vtkMy/Common/vtkBar.cxx b/Examples/Build/vtkMy/Common/vtkBar.cxx
index 1f1902b83650a1af626bb0e69d8c4c869a52e7d5..49efea8efeb671fbdbfb0a84e223fce5ca87fff9 100644
--- a/Examples/Build/vtkMy/Common/vtkBar.cxx
+++ b/Examples/Build/vtkMy/Common/vtkBar.cxx
@@ -15,6 +15,7 @@
 #include "vtkBar.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkBar);
 
@@ -23,3 +24,4 @@ void vtkBar::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Examples/Build/vtkMy/Common/vtkBar.h b/Examples/Build/vtkMy/Common/vtkBar.h
index 53beec3d3aac028cedea2e2714ae2b244a0df6cf..10ae350078d3efa5bd1cbc2c86e199d26b9d1da6 100644
--- a/Examples/Build/vtkMy/Common/vtkBar.h
+++ b/Examples/Build/vtkMy/Common/vtkBar.h
@@ -25,6 +25,7 @@
 #include "vtkObject.h"
 #include "vtkmyCommonModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKMYCOMMON_EXPORT vtkBar : public vtkObject
 {
 public:
@@ -41,4 +42,5 @@ private:
   void operator=(const vtkBar&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Examples/Build/vtkMy/Imaging/vtkImageFoo.cxx b/Examples/Build/vtkMy/Imaging/vtkImageFoo.cxx
index 0ee7ebede585fa04fd4b85d4edd123f1cbcf6229..1d6142b21ec6c20fe5f8d0c36dbf73bc345a0bdc 100644
--- a/Examples/Build/vtkMy/Imaging/vtkImageFoo.cxx
+++ b/Examples/Build/vtkMy/Imaging/vtkImageFoo.cxx
@@ -19,6 +19,7 @@
 #include "vtkInformationVector.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkImageFoo);
 
@@ -161,3 +162,4 @@ void vtkImageFoo::ThreadedRequestData(vtkInformation*, vtkInformationVector**,
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Examples/Build/vtkMy/Imaging/vtkImageFoo.h b/Examples/Build/vtkMy/Imaging/vtkImageFoo.h
index ec2bcc6863d6f930042478ed3249f50e1efaccd5..7f15a1cbd68c02ab973da4d7c76fb7b3fc9c8901 100644
--- a/Examples/Build/vtkMy/Imaging/vtkImageFoo.h
+++ b/Examples/Build/vtkMy/Imaging/vtkImageFoo.h
@@ -25,6 +25,7 @@
 #include "vtkThreadedImageAlgorithm.h"
 #include "vtkmyImagingModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBar;
 
 class VTKMYIMAGING_EXPORT vtkImageFoo : public vtkThreadedImageAlgorithm
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkImageFoo&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Examples/Build/vtkMy/Unsorted/vtkBar2.cxx b/Examples/Build/vtkMy/Unsorted/vtkBar2.cxx
index 9e32d89c1a5e94fd7d7dd66b6d1a032e05db8ee9..e78430c42f2266c6c4910c8635e5d5e54607eeda 100644
--- a/Examples/Build/vtkMy/Unsorted/vtkBar2.cxx
+++ b/Examples/Build/vtkMy/Unsorted/vtkBar2.cxx
@@ -15,6 +15,7 @@
 #include "vtkBar2.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkBar2);
 
@@ -23,3 +24,4 @@ void vtkBar2::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Examples/Build/vtkMy/Unsorted/vtkBar2.h b/Examples/Build/vtkMy/Unsorted/vtkBar2.h
index cf2aa0ee5e41bc061bc3fcf5de665773299b1900..6b7a7654484b48864d52515d5757ccab3e528782 100644
--- a/Examples/Build/vtkMy/Unsorted/vtkBar2.h
+++ b/Examples/Build/vtkMy/Unsorted/vtkBar2.h
@@ -25,6 +25,7 @@
 #include "vtkObject.h"
 #include "vtkmyUnsortedModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKMYUNSORTED_EXPORT vtkBar2 : public vtkObject
 {
 public:
@@ -40,5 +41,6 @@ private:
   vtkBar2(const vtkBar2&) = delete;
   void operator=(const vtkBar2&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
diff --git a/Examples/Charts/Cxx/vtkGraphItem.h b/Examples/Charts/Cxx/vtkGraphItem.h
index 2cfbc5bbe5a44b83b5f70ece75ea21ba2382f749..65d83dbafa897c4abc88e12fdb4db089f53e10c5 100644
--- a/Examples/Charts/Cxx/vtkGraphItem.h
+++ b/Examples/Charts/Cxx/vtkGraphItem.h
@@ -27,8 +27,10 @@
 
 #include "vtkContextItem.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkGraph;
+VTK_ABI_NAMESPACE_END
 
 class vtkGraphItem : public vtkContextItem
 {
diff --git a/Examples/GUI/Qt/SimpleView/SimpleView.h b/Examples/GUI/Qt/SimpleView/SimpleView.h
index fd478fd733c0abea12921c0c083249c4284ca705..37a32b017d9fc497087da3dbbb2bc71a95b30c41 100644
--- a/Examples/GUI/Qt/SimpleView/SimpleView.h
+++ b/Examples/GUI/Qt/SimpleView/SimpleView.h
@@ -21,8 +21,10 @@
 // Forward Qt class declarations
 class Ui_SimpleView;
 
+VTK_ABI_NAMESPACE_BEGIN
 // Forward VTK class declarations
 class vtkQtTableView;
+VTK_ABI_NAMESPACE_END
 
 class SimpleView : public QMainWindow
 {
diff --git a/Examples/Infovis/Cxx/CustomLinkView/CustomLinkView.h b/Examples/Infovis/Cxx/CustomLinkView/CustomLinkView.h
index c105cd72cc6c342e878dc30e6272ed8bea6c4e09..9b96bbd41ce116d95ba6a403739b732501356a24 100644
--- a/Examples/Infovis/Cxx/CustomLinkView/CustomLinkView.h
+++ b/Examples/Infovis/Cxx/CustomLinkView/CustomLinkView.h
@@ -36,6 +36,7 @@
 // Forward Qt class declarations
 class Ui_CustomLinkView;
 
+VTK_ABI_NAMESPACE_BEGIN
 // Forward VTK class declarations
 class vtkCommand;
 class vtkEventQtSlotConnect;
@@ -44,6 +45,7 @@ class vtkObject;
 class vtkQtTableView;
 class vtkQtTreeView;
 class vtkXMLTreeReader;
+VTK_ABI_NAMESPACE_END
 
 class CustomLinkView : public QMainWindow
 {
diff --git a/Examples/Infovis/Cxx/EasyView/EasyView.h b/Examples/Infovis/Cxx/EasyView/EasyView.h
index 77a551756b13e775742be865d5a8206a04e9a3cc..be9e482066df78b08822b84847345f7e637f62ca 100644
--- a/Examples/Infovis/Cxx/EasyView/EasyView.h
+++ b/Examples/Infovis/Cxx/EasyView/EasyView.h
@@ -36,11 +36,13 @@
 // Forward Qt class declarations
 class Ui_EasyView;
 
+VTK_ABI_NAMESPACE_BEGIN
 // Forward VTK class declarations
 class vtkXMLTreeReader;
 class vtkGraphLayoutView;
 class vtkQtTableView;
 class vtkQtTreeView;
+VTK_ABI_NAMESPACE_END
 
 class EasyView : public QMainWindow
 {
diff --git a/Examples/Infovis/Cxx/StatsView/StatsView.h b/Examples/Infovis/Cxx/StatsView/StatsView.h
index c1211b85b8268345a791e6e1269f7057b3fe7924..a568542f69ab5e483565c3bffbaff5f96b9e11cf 100644
--- a/Examples/Infovis/Cxx/StatsView/StatsView.h
+++ b/Examples/Infovis/Cxx/StatsView/StatsView.h
@@ -22,9 +22,11 @@
 // Forward Qt class declarations
 class Ui_StatsView;
 
+VTK_ABI_NAMESPACE_BEGIN
 // Forward VTK class declarations
 class vtkRowQueryToTable;
 class vtkQtTableView;
+VTK_ABI_NAMESPACE_END
 
 class StatsView : public QMainWindow
 {
diff --git a/Filters/AMR/vtkAMRCutPlane.cxx b/Filters/AMR/vtkAMRCutPlane.cxx
index 7d00872f509ea7c2c4c878357ea8cd039d53ead3..e322d975ceabfaf58c0db9d433b9572083c24497 100644
--- a/Filters/AMR/vtkAMRCutPlane.cxx
+++ b/Filters/AMR/vtkAMRCutPlane.cxx
@@ -36,6 +36,7 @@
 #include <algorithm>
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMRCutPlane);
 
 vtkCxxSetObjectMacro(vtkAMRCutPlane, Controller, vtkMultiProcessController);
@@ -539,3 +540,4 @@ bool vtkAMRCutPlane::IsAMRData2D(vtkOverlappingAMR* input)
 
   return input->GetGridDescription() != VTK_XYZ_GRID;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/AMR/vtkAMRCutPlane.h b/Filters/AMR/vtkAMRCutPlane.h
index 811ce3a07f53ac6680b3161093e4194fc882d608..d12209bb886964b688473ad916c11cff12c00297 100644
--- a/Filters/AMR/vtkAMRCutPlane.h
+++ b/Filters/AMR/vtkAMRCutPlane.h
@@ -30,6 +30,7 @@
 #include <map>    // For STL map
 #include <vector> // For STL vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkOverlappingAMR;
 class vtkMultiProcessController;
@@ -196,4 +197,5 @@ private:
   void operator=(const vtkAMRCutPlane&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMRCutPlane_h */
diff --git a/Filters/AMR/vtkAMRGaussianPulseSource.cxx b/Filters/AMR/vtkAMRGaussianPulseSource.cxx
index acd1fd7dd1a90fbb46f873803e022ff42dad6c97..6a9cc20df04e116ae0751eefcc939d07c090235e 100644
--- a/Filters/AMR/vtkAMRGaussianPulseSource.cxx
+++ b/Filters/AMR/vtkAMRGaussianPulseSource.cxx
@@ -30,6 +30,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMRGaussianPulseSource);
 
 //------------------------------------------------------------------------------
@@ -355,3 +356,4 @@ int vtkAMRGaussianPulseSource::RequestData(vtkInformation* vtkNotUsed(request),
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/AMR/vtkAMRGaussianPulseSource.h b/Filters/AMR/vtkAMRGaussianPulseSource.h
index 7fd54fca3e8412458d92d6f98cd707d46c5d8bf9..1c54414405d864558bffadd7cc1917d5b1824ede 100644
--- a/Filters/AMR/vtkAMRGaussianPulseSource.h
+++ b/Filters/AMR/vtkAMRGaussianPulseSource.h
@@ -32,6 +32,7 @@
 
 #include <cmath> // For std::exp
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOverlappingAMR;
 class vtkUniformGrid;
 class vtkInformation;
@@ -215,4 +216,5 @@ private:
   void operator=(const vtkAMRGaussianPulseSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMRGaussianPulseSource_h */
diff --git a/Filters/AMR/vtkAMRResampleFilter.cxx b/Filters/AMR/vtkAMRResampleFilter.cxx
index a303f81a0a115cba7c6f947b6017a5f87e28f907..acbcac9ccfc2ca52a06c2f4d2566871fb055de99 100644
--- a/Filters/AMR/vtkAMRResampleFilter.cxx
+++ b/Filters/AMR/vtkAMRResampleFilter.cxx
@@ -43,6 +43,7 @@
 #include <cmath>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMRResampleFilter);
 vtkCxxSetObjectMacro(vtkAMRResampleFilter, Controller, vtkMultiProcessController);
 
@@ -1234,3 +1235,4 @@ vtkUniformGrid* vtkAMRResampleFilter::GetReferenceGrid(vtkOverlappingAMR* amrds)
   // This process has no grids
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/AMR/vtkAMRResampleFilter.h b/Filters/AMR/vtkAMRResampleFilter.h
index 3afd9f295c426af80828cbd566b72a28e714ee97..4f9e4df48c3b62044ce8dd57e5f4d64134961905 100644
--- a/Filters/AMR/vtkAMRResampleFilter.h
+++ b/Filters/AMR/vtkAMRResampleFilter.h
@@ -37,6 +37,7 @@
 #include "vtkMultiBlockDataSetAlgorithm.h"
 #include <vector> // For STL vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 class vtkUniformGrid;
@@ -376,4 +377,5 @@ private:
   void operator=(const vtkAMRResampleFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMRResampleFilter_h */
diff --git a/Filters/AMR/vtkAMRSliceFilter.cxx b/Filters/AMR/vtkAMRSliceFilter.cxx
index defd3eca4aaac974474b50cfd643c40d5c735e50..e737046d3d22750ac0a6e07566afac5e7e9f5325 100644
--- a/Filters/AMR/vtkAMRSliceFilter.cxx
+++ b/Filters/AMR/vtkAMRSliceFilter.cxx
@@ -43,6 +43,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMRSliceFilter);
 vtkCxxSetObjectMacro(vtkAMRSliceFilter, Controller, vtkMultiProcessController);
 
@@ -632,3 +633,4 @@ int vtkAMRSliceFilter::RequestData(vtkInformation* vtkNotUsed(request),
   vtkTimerLog::MarkEndEvent(eventName.c_str());
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/AMR/vtkAMRSliceFilter.h b/Filters/AMR/vtkAMRSliceFilter.h
index b650dbe2c4b6c21256a5a212722b7c0df5f122ad..1fa90e3fd42f96c63dbd8e418ec914e06e28697c 100644
--- a/Filters/AMR/vtkAMRSliceFilter.h
+++ b/Filters/AMR/vtkAMRSliceFilter.h
@@ -29,6 +29,7 @@
 
 #include <vector> // For STL vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 class vtkOverlappingAMR;
@@ -184,4 +185,5 @@ private:
   void operator=(const vtkAMRSliceFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMRSliceFilter_h */
diff --git a/Filters/AMR/vtkAMRToMultiBlockFilter.cxx b/Filters/AMR/vtkAMRToMultiBlockFilter.cxx
index 98acf3f276f6ad8de813c380770d4e5f37124dc4..a7dee6fbdc80ba0271c2d396e4fdb8f3ecbcfe44 100644
--- a/Filters/AMR/vtkAMRToMultiBlockFilter.cxx
+++ b/Filters/AMR/vtkAMRToMultiBlockFilter.cxx
@@ -24,6 +24,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMRToMultiBlockFilter);
 vtkCxxSetObjectMacro(vtkAMRToMultiBlockFilter, Controller, vtkMultiProcessController);
 
@@ -123,3 +124,4 @@ int vtkAMRToMultiBlockFilter::RequestData(vtkInformation* vtkNotUsed(rqst),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/AMR/vtkAMRToMultiBlockFilter.h b/Filters/AMR/vtkAMRToMultiBlockFilter.h
index 6d902e5c853bb1623ecef95d34b8d3e4e6205de9..17f2a353be4540f87902e3464859bf39748b55a0 100644
--- a/Filters/AMR/vtkAMRToMultiBlockFilter.h
+++ b/Filters/AMR/vtkAMRToMultiBlockFilter.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersAMRModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 class vtkIndent;
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkAMRToMultiBlockFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMRToMultiBlockFilter_h */
diff --git a/Filters/AMR/vtkImageToAMR.cxx b/Filters/AMR/vtkImageToAMR.cxx
index a6bc41a386677c97fa9a84cf0b892b4c1120d479..c8a5e98ec9ea129a2bee55d9f442c0215bc6c5d6 100644
--- a/Filters/AMR/vtkImageToAMR.cxx
+++ b/Filters/AMR/vtkImageToAMR.cxx
@@ -32,6 +32,7 @@
 #include "vtkAMRInformation.h"
 #include <algorithm>
 #include <vector>
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // Split one box to eight
@@ -362,3 +363,4 @@ void vtkImageToAMR::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "NumberOfLevels: " << this->NumberOfLevels << endl;
   os << indent << "RefinementRatio: " << this->RefinementRatio << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/AMR/vtkImageToAMR.h b/Filters/AMR/vtkImageToAMR.h
index 4dd6f08b077700083be259417db0d1c9e3ab49eb..5b27294dcec015df1d7bb39282a372737500b14f 100644
--- a/Filters/AMR/vtkImageToAMR.h
+++ b/Filters/AMR/vtkImageToAMR.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersAMRModule.h" // For export macro
 #include "vtkOverlappingAMRAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSAMR_EXPORT vtkImageToAMR : public vtkOverlappingAMRAlgorithm
 {
 public:
@@ -88,4 +89,5 @@ private:
   void operator=(const vtkImageToAMR&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/AMR/vtkParallelAMRUtilities.cxx b/Filters/AMR/vtkParallelAMRUtilities.cxx
index 7702e55c94fe7db8b559bb72cd57a349f9e369d4..27de794403d742c63afc2577eb84c9cd0ec59f5f 100644
--- a/Filters/AMR/vtkParallelAMRUtilities.cxx
+++ b/Filters/AMR/vtkParallelAMRUtilities.cxx
@@ -25,6 +25,7 @@
 #include <limits>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkParallelAMRUtilities::PrintSelf(std::ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
@@ -144,3 +145,4 @@ void vtkParallelAMRUtilities::BlankCells(
     vtkAMRUtilities::BlankGridsAtLevel(amr, i, info->GetChildrenAtLevel(i), processorMap);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/AMR/vtkParallelAMRUtilities.h b/Filters/AMR/vtkParallelAMRUtilities.h
index c885722d5b6c6bad86ab335de754896c08a7a094..0caa5baab5913e9816e1a9b4ca1c9d7699702ecf 100644
--- a/Filters/AMR/vtkParallelAMRUtilities.h
+++ b/Filters/AMR/vtkParallelAMRUtilities.h
@@ -31,6 +31,7 @@
 #include <vector>                // For C++ vector
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class vtkOverlappingAMR;
 
@@ -69,4 +70,5 @@ private:
   void operator=(const vtkParallelAMRUtilities&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkParallelAMRUtilities_h */
diff --git a/Filters/Core/VoronoiKernel.cxx b/Filters/Core/VoronoiKernel.cxx
index ef28c40a32663c395949756b36a738816ab586be..38cb0566a64c65e9d712c20dbcf2a089aa55e926 100644
--- a/Filters/Core/VoronoiKernel.cxx
+++ b/Filters/Core/VoronoiKernel.cxx
@@ -16,6 +16,7 @@
 #include "vtkVoronoiKernel.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkVoronoiKernel::vtkVoronoiKernel() {}
 
 //------------------------------------------------------------------------------
@@ -32,3 +33,4 @@ void vtkVoronoiKernel::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtk3DLinearGridCrinkleExtractor.cxx b/Filters/Core/vtk3DLinearGridCrinkleExtractor.cxx
index 14cd4e047a23002f4849e1f1d67f9ad36bf6f389..6bf96a6172cb0d10eae354b08e8949d852299aea 100644
--- a/Filters/Core/vtk3DLinearGridCrinkleExtractor.cxx
+++ b/Filters/Core/vtk3DLinearGridCrinkleExtractor.cxx
@@ -40,6 +40,7 @@
 #include <atomic>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtk3DLinearGridCrinkleExtractor);
 vtkCxxSetObjectMacro(vtk3DLinearGridCrinkleExtractor, ImplicitFunction, vtkImplicitFunction);
 
@@ -1018,3 +1019,4 @@ void vtk3DLinearGridCrinkleExtractor::PrintSelf(ostream& os, vtkIndent indent)
 #undef EXECUTE_SMPFOR
 #undef EXECUTE_REDUCED_SMPFOR
 #undef MAX_CELL_VERTS
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtk3DLinearGridCrinkleExtractor.h b/Filters/Core/vtk3DLinearGridCrinkleExtractor.h
index c6443335a394b350a7b6202c97ff3e8a4ab47f1b..42f11196a585484eb5537d3522016dee29fc209b 100644
--- a/Filters/Core/vtk3DLinearGridCrinkleExtractor.h
+++ b/Filters/Core/vtk3DLinearGridCrinkleExtractor.h
@@ -73,6 +73,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGrid;
 class vtkImplicitFunction;
 
@@ -202,4 +203,5 @@ private:
   void operator=(const vtk3DLinearGridCrinkleExtractor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtk3DLinearGridPlaneCutter.cxx b/Filters/Core/vtk3DLinearGridPlaneCutter.cxx
index a40b7d2389125af97ec3b3b5a97ef23d39927b57..eba413036d0e6a1b1682cd85ec7dade58b1bcc58 100644
--- a/Filters/Core/vtk3DLinearGridPlaneCutter.cxx
+++ b/Filters/Core/vtk3DLinearGridPlaneCutter.cxx
@@ -52,6 +52,7 @@
 #include <algorithm>
 #include <numeric>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtk3DLinearGridPlaneCutter);
 vtkCxxSetObjectMacro(vtk3DLinearGridPlaneCutter, Plane, vtkPlane);
 
@@ -1315,3 +1316,4 @@ void vtk3DLinearGridPlaneCutter::PrintSelf(ostream& os, vtkIndent indent)
 #undef EXECUTE_SMPFOR
 #undef EXECUTE_REDUCED_SMPFOR
 #undef MAX_CELL_VERTS
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtk3DLinearGridPlaneCutter.h b/Filters/Core/vtk3DLinearGridPlaneCutter.h
index 448a609b866404a4821aaa8cca3ae24ccbea6c76..c7e705e4520743eb630e9e651437b93c499463b4 100644
--- a/Filters/Core/vtk3DLinearGridPlaneCutter.h
+++ b/Filters/Core/vtk3DLinearGridPlaneCutter.h
@@ -75,6 +75,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlane;
 class vtkUnstructuredGrid;
 class vtkPolyData;
@@ -216,4 +217,5 @@ private:
   void operator=(const vtk3DLinearGridPlaneCutter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkAppendArcLength.cxx b/Filters/Core/vtkAppendArcLength.cxx
index 084668221abc3d403a2a7f5b1be7572ccaf3eec5..a42f3d588cea1f0045646d0dd5564de07337554d 100644
--- a/Filters/Core/vtkAppendArcLength.cxx
+++ b/Filters/Core/vtkAppendArcLength.cxx
@@ -23,6 +23,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAppendArcLength);
 //------------------------------------------------------------------------------
 vtkAppendArcLength::vtkAppendArcLength() = default;
@@ -93,3 +94,4 @@ void vtkAppendArcLength::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkAppendArcLength.h b/Filters/Core/vtkAppendArcLength.h
index 3083fbf6744bbaa54c4607ffbc854bbfa0cdd809..b9bd744b140c57bd61c7d21334e48ebd28a21b7c 100644
--- a/Filters/Core/vtkAppendArcLength.h
+++ b/Filters/Core/vtkAppendArcLength.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkAppendArcLength : public vtkPolyDataAlgorithm
 {
 public:
@@ -57,4 +58,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkAppendCompositeDataLeaves.cxx b/Filters/Core/vtkAppendCompositeDataLeaves.cxx
index f32d6ad9d19da39c8dda1ddf9e305b51dda00146..f3870dffcafcffdb4b73b3bcbdda8e96c2505940 100644
--- a/Filters/Core/vtkAppendCompositeDataLeaves.cxx
+++ b/Filters/Core/vtkAppendCompositeDataLeaves.cxx
@@ -36,6 +36,7 @@
 #include "vtkTable.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAppendCompositeDataLeaves);
 
 //------------------------------------------------------------------------------
@@ -274,3 +275,4 @@ void vtkAppendCompositeDataLeaves::AppendFieldDataArrays(vtkInformationVector* i
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkAppendCompositeDataLeaves.h b/Filters/Core/vtkAppendCompositeDataLeaves.h
index 236253ee78ee2b71fad01c02754655dffabf0a81..f0cbfc9335ef1ebf97020946b2eb361b4e9c8ca0 100644
--- a/Filters/Core/vtkAppendCompositeDataLeaves.h
+++ b/Filters/Core/vtkAppendCompositeDataLeaves.h
@@ -58,6 +58,7 @@
 #include "vtkCompositeDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataIterator;
 class vtkDataSet;
 
@@ -128,4 +129,5 @@ private:
   void operator=(const vtkAppendCompositeDataLeaves&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkAppendCompositeDataLeaves_h
diff --git a/Filters/Core/vtkAppendDataSets.cxx b/Filters/Core/vtkAppendDataSets.cxx
index 65040b8d42a4180da5d59cb75c53e28bfb7f7d2a..cd938ae560100099d2fe2c7ba5cfe38a57af896f 100644
--- a/Filters/Core/vtkAppendDataSets.cxx
+++ b/Filters/Core/vtkAppendDataSets.cxx
@@ -33,6 +33,7 @@
 #include "vtkType.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAppendDataSets);
 
 //------------------------------------------------------------------------------
@@ -231,3 +232,4 @@ void vtkAppendDataSets::PrintSelf(ostream& os, vtkIndent indent)
      << "\n";
   os << indent << "OutputPointsPrecision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkAppendDataSets.h b/Filters/Core/vtkAppendDataSets.h
index 1872037768fbbd850ba1c638c2fe9d7c07ce49d6..6167e101450f567fa533b67b78087f6f0a65b65f 100644
--- a/Filters/Core/vtkAppendDataSets.h
+++ b/Filters/Core/vtkAppendDataSets.h
@@ -45,6 +45,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkDataSetCollection;
 
@@ -156,4 +157,5 @@ private:
   vtkDataSetCollection* GetNonEmptyInputs(vtkInformationVector** inputVector);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkAppendFilter.cxx b/Filters/Core/vtkAppendFilter.cxx
index ed661e2b70e792d571b0f6efdbf4cfd20d4bf708..e54aee84ed2017586af8005ffd7fbb20019eabc8 100644
--- a/Filters/Core/vtkAppendFilter.cxx
+++ b/Filters/Core/vtkAppendFilter.cxx
@@ -32,6 +32,7 @@
 #include <string>
 #include <unordered_map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAppendFilter);
 
 //------------------------------------------------------------------------------
@@ -521,3 +522,4 @@ void vtkAppendFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "OutputPointsPrecision: " << this->OutputPointsPrecision << "\n";
   os << indent << "Tolerance: " << this->Tolerance << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkAppendFilter.h b/Filters/Core/vtkAppendFilter.h
index e90ddefb4c211c541c46bfb350ba29a404d67a3e..b441b0937bfb90721dbfe0f5034b35d090845e53 100644
--- a/Filters/Core/vtkAppendFilter.h
+++ b/Filters/Core/vtkAppendFilter.h
@@ -39,6 +39,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSetAttributes;
 class vtkDataSetCollection;
 
@@ -148,4 +149,5 @@ private:
     vtkUnstructuredGrid* output, vtkIdType totalNumberOfElements);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkAppendPolyData.cxx b/Filters/Core/vtkAppendPolyData.cxx
index 2205b6f3bebd3219e3059d79e4f70c86ba9d4269..eee9ba45ac06cdc7d319d8c6608d54c34d8582b0 100644
--- a/Filters/Core/vtkAppendPolyData.cxx
+++ b/Filters/Core/vtkAppendPolyData.cxx
@@ -32,6 +32,7 @@
 #include <cassert>
 #include <cstdlib>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAppendPolyData);
 
 //------------------------------------------------------------------------------
@@ -603,3 +604,4 @@ int vtkAppendPolyData::FillInputPortInformation(int port, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_IS_REPEATABLE(), 1);
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkAppendPolyData.h b/Filters/Core/vtkAppendPolyData.h
index 2bfe997debbe142e8033af4b223ab6f52bf42dab..06816ef0ce51269c2c020d559ab18557a669d2d8 100644
--- a/Filters/Core/vtkAppendPolyData.h
+++ b/Filters/Core/vtkAppendPolyData.h
@@ -39,6 +39,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkDataArray;
 class vtkPoints;
@@ -156,4 +157,5 @@ private:
   void operator=(const vtkAppendPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkAppendSelection.cxx b/Filters/Core/vtkAppendSelection.cxx
index c28bc29259ada8d764df7a01afdffe50176ef4b3..1179357b41f837a1c6171ffa4a8dab9a2b6307e4 100644
--- a/Filters/Core/vtkAppendSelection.cxx
+++ b/Filters/Core/vtkAppendSelection.cxx
@@ -32,6 +32,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 //------------------------------------------------------------------------------
@@ -412,3 +413,4 @@ void vtkAppendSelection::PrintSelf(ostream& os, vtkIndent indent)
     os << "InputName " << i << ": " << this->Internals->Names[i] << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkAppendSelection.h b/Filters/Core/vtkAppendSelection.h
index 9130868be955946ad73eca1a47cf48a59b550d95..95d373d56b034514228f4af1f44de7a5bcecd1ec 100644
--- a/Filters/Core/vtkAppendSelection.h
+++ b/Filters/Core/vtkAppendSelection.h
@@ -46,6 +46,7 @@
 
 #include <memory> // For std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSelection;
 
 class VTKFILTERSCORE_EXPORT vtkAppendSelection : public vtkSelectionAlgorithm
@@ -191,4 +192,5 @@ private:
   void operator=(const vtkAppendSelection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkArrayCalculator.cxx b/Filters/Core/vtkArrayCalculator.cxx
index 0f90d9098d797e49e744524fdbfb61e080647b39..f2e3c888bf8d0c15f8d1bc0096d37696c1b6eca5 100644
--- a/Filters/Core/vtkArrayCalculator.cxx
+++ b/Filters/Core/vtkArrayCalculator.cxx
@@ -35,6 +35,7 @@
 #include "vtkTable.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkArrayCalculator);
 
@@ -1222,3 +1223,4 @@ void vtkArrayCalculator::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Replace Invalid Values: " << (this->ReplaceInvalidValues ? "On" : "Off") << endl;
   os << indent << "Replacement Value: " << this->ReplacementValue << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkArrayCalculator.h b/Filters/Core/vtkArrayCalculator.h
index 1e5638200a12066f9c12367040b9787dbc0d4e62..593d1b6fec883304287a5a5a58b325ed088a67f0 100644
--- a/Filters/Core/vtkArrayCalculator.h
+++ b/Filters/Core/vtkArrayCalculator.h
@@ -78,6 +78,7 @@
 #include "vtkTuple.h" // needed for vtkTuple
 #include <vector>     // needed for vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKFILTERSCORE_EXPORT vtkArrayCalculator : public vtkPassInputTypeAlgorithm
@@ -378,4 +379,5 @@ private:
   int ProcessDataObject(vtkDataObject* input, vtkDataObject* output);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkArrayRename.cxx b/Filters/Core/vtkArrayRename.cxx
index 31ddc3594cd2898a79990f13d8773aa536985619..6559410919fc5fa85921fc37ca510539aeae0ce3 100644
--- a/Filters/Core/vtkArrayRename.cxx
+++ b/Filters/Core/vtkArrayRename.cxx
@@ -24,6 +24,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStringArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkArrayRename);
 
 //------------------------------------------------------------------------------
@@ -206,3 +207,4 @@ int vtkArrayRename::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkArrayRename.h b/Filters/Core/vtkArrayRename.h
index 6046455f6c6aab4bf3f3e38f56d823eac9868b17..089449e8a9e953034d8c463e8d8c9faa43468594 100644
--- a/Filters/Core/vtkArrayRename.h
+++ b/Filters/Core/vtkArrayRename.h
@@ -36,6 +36,7 @@
 #include <map>    // for std::map
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkArrayRename : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -246,4 +247,5 @@ private:
   std::map<int, std::map<std::string, std::string>> ArrayMapping;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkArrayRename_h
diff --git a/Filters/Core/vtkAssignAttribute.cxx b/Filters/Core/vtkAssignAttribute.cxx
index b7913a4229d0b2dd73cbeac78c58375cad298120..f7ef6bddd1c2ab01b250b5a7669c1abb957728c5 100644
--- a/Filters/Core/vtkAssignAttribute.cxx
+++ b/Filters/Core/vtkAssignAttribute.cxx
@@ -27,6 +27,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 static int vtkGetArrayIndex(vtkDataSetAttributes* dsa, vtkAbstractArray* array)
 {
   for (int cc = 0; cc < dsa->GetNumberOfArrays(); cc++)
@@ -371,3 +372,4 @@ void vtkAssignAttribute::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Input attribute type: " << this->InputAttributeType << endl;
   os << indent << "Attribute location: " << this->AttributeLocationAssignment << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkAssignAttribute.h b/Filters/Core/vtkAssignAttribute.h
index ba0420aee68d3fa777987be5c0fc8362378dd5f5..88cf301415e756ccfd0b42a8c5ac2ec32b2eaed0 100644
--- a/Filters/Core/vtkAssignAttribute.h
+++ b/Filters/Core/vtkAssignAttribute.h
@@ -53,6 +53,7 @@
 
 #include "vtkDataSetAttributes.h" // Needed for NUM_ATTRIBUTES
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFieldData;
 
 class VTKFILTERSCORE_EXPORT vtkAssignAttribute : public vtkPassInputTypeAlgorithm
@@ -120,4 +121,5 @@ private:
   void operator=(const vtkAssignAttribute&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkAttributeDataToFieldDataFilter.cxx b/Filters/Core/vtkAttributeDataToFieldDataFilter.cxx
index 8d48be0bcbd8896b0cc59442c0e9313ff8af08eb..5b9a71bca95f942a3a9440183e96f7e53c46008f 100644
--- a/Filters/Core/vtkAttributeDataToFieldDataFilter.cxx
+++ b/Filters/Core/vtkAttributeDataToFieldDataFilter.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAttributeDataToFieldDataFilter);
 
 // Instantiate object.
@@ -53,3 +54,4 @@ void vtkAttributeDataToFieldDataFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Pass Attribute Data: " << (this->PassAttributeData ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkAttributeDataToFieldDataFilter.h b/Filters/Core/vtkAttributeDataToFieldDataFilter.h
index 6441ccb9efe49e72be470331bf15807803ab0e12..8d42ab08053f2cb5029a28ba563baed1db2b828f 100644
--- a/Filters/Core/vtkAttributeDataToFieldDataFilter.h
+++ b/Filters/Core/vtkAttributeDataToFieldDataFilter.h
@@ -45,6 +45,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkAttributeDataToFieldDataFilter : public vtkDataSetAlgorithm
 {
 public:
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkAttributeDataToFieldDataFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkBinCellDataFilter.cxx b/Filters/Core/vtkBinCellDataFilter.cxx
index ea153f3c63975dd1af40a6e6d1657af70ac1e4df..b91ed03ae5ccee9201b6537e9f3fc6446ead3d85 100644
--- a/Filters/Core/vtkBinCellDataFilter.cxx
+++ b/Filters/Core/vtkBinCellDataFilter.cxx
@@ -33,6 +33,7 @@
 #include <map>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBinCellDataFilter);
 
 //------------------------------------------------------------------------------
@@ -427,3 +428,4 @@ void vtkBinCellDataFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Cell Locator: " << this->CellLocator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkBinCellDataFilter.h b/Filters/Core/vtkBinCellDataFilter.h
index add7bf48cc2373d525ad6c76a27cecde32a704c6..b0ebf197461f74160d96537bb41f5ab6a4785d16 100644
--- a/Filters/Core/vtkBinCellDataFilter.h
+++ b/Filters/Core/vtkBinCellDataFilter.h
@@ -36,6 +36,7 @@
 
 #include "vtkContourValues.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractCellLocator;
 
 class VTKFILTERSCORE_EXPORT vtkBinCellDataFilter : public vtkDataSetAlgorithm
@@ -280,4 +281,5 @@ inline void vtkBinCellDataFilter::GenerateValues(int numBins, double rangeStart,
   this->BinValues->GenerateValues(numBins, rangeStart, rangeEnd);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkBinnedDecimation.cxx b/Filters/Core/vtkBinnedDecimation.cxx
index efb95d635c694d1ed3c74285c5280751769b8972..1c8a33d3f3d85815357072a5e4f66e6d59a6b11b 100644
--- a/Filters/Core/vtkBinnedDecimation.cxx
+++ b/Filters/Core/vtkBinnedDecimation.cxx
@@ -39,6 +39,7 @@
 #include <atomic>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBinnedDecimation);
 
 //----------------------------------------------------------------------------
@@ -1651,3 +1652,4 @@ void vtkBinnedDecimation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Pass Point Data : " << this->ProducePointData << endl;
   os << indent << "Produce Cell Data : " << this->ProduceCellData << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkBinnedDecimation.h b/Filters/Core/vtkBinnedDecimation.h
index eaa8360872a95e1d049632b8709a81e9bcd90af9..253bc63e59b30b69d801da16e80c8e0ffeb96b9a 100644
--- a/Filters/Core/vtkBinnedDecimation.h
+++ b/Filters/Core/vtkBinnedDecimation.h
@@ -92,6 +92,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkBinnedDecimation : public vtkPolyDataAlgorithm
 {
 public:
@@ -258,4 +259,5 @@ private:
   void operator=(const vtkBinnedDecimation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkCellCenters.cxx b/Filters/Core/vtkCellCenters.cxx
index ebe9c137e86f7f7732fd8cb9e176da9d0bb8cd5c..436ed7182b09844bcabea9703ba468b5a9203318 100644
--- a/Filters/Core/vtkCellCenters.cxx
+++ b/Filters/Core/vtkCellCenters.cxx
@@ -37,6 +37,7 @@
 
 #include <atomic>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellCenters);
 
 namespace
@@ -319,3 +320,4 @@ void vtkCellCenters::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Vertex Cells: " << (this->VertexCells ? "On\n" : "Off\n");
   os << indent << "CopyArrays: " << (this->CopyArrays ? "On" : "Off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkCellCenters.h b/Filters/Core/vtkCellCenters.h
index 99a8bccf27a3824062f1625d5edb66faf5d8395d..d9edacaceb4e1c64314bb61e18b8a27c39680bec 100644
--- a/Filters/Core/vtkCellCenters.h
+++ b/Filters/Core/vtkCellCenters.h
@@ -42,6 +42,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 
 class VTKFILTERSCORE_EXPORT vtkCellCenters : public vtkPolyDataAlgorithm
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkCellCenters&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkCellDataToPointData.cxx b/Filters/Core/vtkCellDataToPointData.cxx
index ac92c5e05e4c43410911a5f2a9f1779910bd6bd1..2c0e1d27fd473abd4e182ec88afa1c0779f694a6 100644
--- a/Filters/Core/vtkCellDataToPointData.cxx
+++ b/Filters/Core/vtkCellDataToPointData.cxx
@@ -42,6 +42,7 @@
 
 #define VTK_MAX_CELLS_PER_POINT 4096
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkCellDataToPointData);
 
 namespace
@@ -743,3 +744,4 @@ int vtkCellDataToPointData::InterpolatePointData(vtkDataSet* input, vtkDataSet*
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkCellDataToPointData.h b/Filters/Core/vtkCellDataToPointData.h
index b5918b1af3a5c22b1fb3a1de41bd9ba2035aac2b..133453fdf600658a4352463cb6d749f291a45896 100644
--- a/Filters/Core/vtkCellDataToPointData.h
+++ b/Filters/Core/vtkCellDataToPointData.h
@@ -57,6 +57,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKFILTERSCORE_EXPORT vtkCellDataToPointData : public vtkDataSetAlgorithm
@@ -191,4 +192,5 @@ private:
   void operator=(const vtkCellDataToPointData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkCenterOfMass.cxx b/Filters/Core/vtkCenterOfMass.cxx
index 8635b0616a30bd4cbf3f614e1b62b5e83e529315..6be4c1d087f7abf076b688bac0073059d45495fc 100644
--- a/Filters/Core/vtkCenterOfMass.cxx
+++ b/Filters/Core/vtkCenterOfMass.cxx
@@ -25,6 +25,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCenterOfMass);
 
 vtkCenterOfMass::vtkCenterOfMass()
@@ -125,3 +126,4 @@ void vtkCenterOfMass::PrintSelf(ostream& os, vtkIndent indent)
      << endl;
   os << indent << "UseScalarsAsWeights: " << this->UseScalarsAsWeights << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkCenterOfMass.h b/Filters/Core/vtkCenterOfMass.h
index ee06f7b62605177bc5e5bb36a56ad30b7febaa5e..3602acb50a69a7b7a424ac0ef905c81c0e1110cc 100644
--- a/Filters/Core/vtkCenterOfMass.h
+++ b/Filters/Core/vtkCenterOfMass.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkDataArray;
 
@@ -82,4 +83,5 @@ private:
   double Center[3];
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkCleanPolyData.cxx b/Filters/Core/vtkCleanPolyData.cxx
index 52bbbb585c365308c57df3dd62bd0fccec4a4160..8be91150cd82f632459309d79641d22cf6f2c559 100644
--- a/Filters/Core/vtkCleanPolyData.cxx
+++ b/Filters/Core/vtkCleanPolyData.cxx
@@ -29,6 +29,7 @@
 
 #include <unordered_map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCleanPolyData);
 
 namespace
@@ -735,3 +736,4 @@ vtkMTimeType vtkCleanPolyData::GetMTime()
   }
   return mTime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkCleanPolyData.h b/Filters/Core/vtkCleanPolyData.h
index 970a971d5e299b99045641053e90efdcef4341c5..d8a9beb532f5a9d41cbf50252539414ceeb8d3c9 100644
--- a/Filters/Core/vtkCleanPolyData.h
+++ b/Filters/Core/vtkCleanPolyData.h
@@ -84,6 +84,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 
 class VTKFILTERSCORE_EXPORT vtkCleanPolyData : public vtkPolyDataAlgorithm
@@ -238,4 +239,5 @@ private:
   void operator=(const vtkCleanPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkClipPolyData.cxx b/Filters/Core/vtkClipPolyData.cxx
index 8ceb54b9566c17119228f59b60d78eec83d1b1e3..4ce39f3cb0605dcb643f00cdd43a662ef8ec2a25 100644
--- a/Filters/Core/vtkClipPolyData.cxx
+++ b/Filters/Core/vtkClipPolyData.cxx
@@ -32,6 +32,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClipPolyData);
 vtkCxxSetObjectMacro(vtkClipPolyData, ClipFunction, vtkImplicitFunction);
 
@@ -432,3 +433,4 @@ void vtkClipPolyData::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkClipPolyData.h b/Filters/Core/vtkClipPolyData.h
index ab0b22da03ac2889e917057d702613309a0d1dee..890e5f9e3123fb6930e5aeaa03713a7fe301c6ce 100644
--- a/Filters/Core/vtkClipPolyData.h
+++ b/Filters/Core/vtkClipPolyData.h
@@ -62,6 +62,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
 class vtkIncrementalPointLocator;
 
@@ -196,4 +197,5 @@ private:
   void operator=(const vtkClipPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkCompositeCutter.cxx b/Filters/Core/vtkCompositeCutter.cxx
index 2b65b5fdcf52fdc6bf16691e426c259d32e2b5ca..892654d3f6e231e37bc0078327dc7aaa0c41d053 100644
--- a/Filters/Core/vtkCompositeCutter.cxx
+++ b/Filters/Core/vtkCompositeCutter.cxx
@@ -36,6 +36,7 @@
 #include <cassert>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeCutter);
 
 #ifdef DEBUGME
@@ -171,3 +172,4 @@ void vtkCompositeCutter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkCompositeCutter.h b/Filters/Core/vtkCompositeCutter.h
index 92fac89135a3c90c7950e03e1dcee278a728de76..1a979bdad1c8d5baf38c7243ae8810cc6f2445c5 100644
--- a/Filters/Core/vtkCompositeCutter.h
+++ b/Filters/Core/vtkCompositeCutter.h
@@ -27,6 +27,7 @@
 #include "vtkCutter.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkCompositeCutter : public vtkCutter
 {
 public:
@@ -48,4 +49,5 @@ private:
   void operator=(const vtkCompositeCutter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkCompositeDataProbeFilter.cxx b/Filters/Core/vtkCompositeDataProbeFilter.cxx
index d4a0f3be80d872e08d1a88e961ba494c4ceea0b4..3e1244e74b2cbc9a4e2aec590d8f5fc1597dbde5 100644
--- a/Filters/Core/vtkCompositeDataProbeFilter.cxx
+++ b/Filters/Core/vtkCompositeDataProbeFilter.cxx
@@ -33,6 +33,7 @@
 #include "vtkPointData.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeDataProbeFilter);
 //------------------------------------------------------------------------------
 vtkCompositeDataProbeFilter::vtkCompositeDataProbeFilter()
@@ -352,3 +353,4 @@ void vtkCompositeDataProbeFilter::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << "PassPartialArrays: " << this->PassPartialArrays << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkCompositeDataProbeFilter.h b/Filters/Core/vtkCompositeDataProbeFilter.h
index 45eaf88f615ca8a2a058a144376d431f449aee58..8d884c9653450ca0072e0b47b4497152fcdbbba0 100644
--- a/Filters/Core/vtkCompositeDataProbeFilter.h
+++ b/Filters/Core/vtkCompositeDataProbeFilter.h
@@ -45,6 +45,7 @@
 
 #include <map> // For std::map
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkDataSet;
 class vtkFindCellStrategy;
@@ -123,4 +124,5 @@ private:
   std::map<vtkDataSet*, vtkSmartPointer<vtkFindCellStrategy>> StrategyMap;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkConnectivityFilter.cxx b/Filters/Core/vtkConnectivityFilter.cxx
index b0ca47c890e8a5b0eacc207881618ff029e317c3..74bd74a13aec79c44cb966943e6ccaef02065992 100644
--- a/Filters/Core/vtkConnectivityFilter.cxx
+++ b/Filters/Core/vtkConnectivityFilter.cxx
@@ -32,6 +32,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkConnectivityFilter);
 
 // Construct with default extraction mode to extract largest regions.
@@ -756,3 +757,4 @@ void vtkConnectivityFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scalar Range: (" << range[0] << ", " << range[1] << ")\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkConnectivityFilter.h b/Filters/Core/vtkConnectivityFilter.h
index e001c87df6ecc10d8b7f83aa1d8e7282ab6c5491..4469a964cf603d855b8e32faa58b91b334a49699 100644
--- a/Filters/Core/vtkConnectivityFilter.h
+++ b/Filters/Core/vtkConnectivityFilter.h
@@ -67,6 +67,7 @@
 #define VTK_EXTRACT_ALL_REGIONS 5
 #define VTK_EXTRACT_CLOSEST_POINT_REGION 6
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkDataSet;
 class vtkFloatArray;
@@ -300,4 +301,5 @@ inline const char* vtkConnectivityFilter::GetExtractionModeAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkConstrainedSmoothingFilter.cxx b/Filters/Core/vtkConstrainedSmoothingFilter.cxx
index ba39fd1ee036759aaed7a9a1d6f2462c7683660c..ec41e989d856f11acd9be0b08a22e205c5d58d4e 100644
--- a/Filters/Core/vtkConstrainedSmoothingFilter.cxx
+++ b/Filters/Core/vtkConstrainedSmoothingFilter.cxx
@@ -32,7 +32,9 @@
 #include "vtkStaticCellLinksTemplate.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkConstrainedSmoothingFilter);
+VTK_ABI_NAMESPACE_END
 
 // The following code defines core methods for the
 // vtkConstrainedSmoothingFilter class.
@@ -394,6 +396,7 @@ struct AttrWorker
 
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //=================Begin VTK class proper=======================================
 //------------------------------------------------------------------------------
 vtkConstrainedSmoothingFilter::vtkConstrainedSmoothingFilter()
@@ -567,3 +570,4 @@ void vtkConstrainedSmoothingFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Generate Error Vectors: " << (this->GenerateErrorVectors ? "On\n" : "Off\n");
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkConstrainedSmoothingFilter.h b/Filters/Core/vtkConstrainedSmoothingFilter.h
index db577ddd91d3515e9e8b361be158375c03f0ffe3..24f5bee38668264ace07e073478f057fe56fda4d 100644
--- a/Filters/Core/vtkConstrainedSmoothingFilter.h
+++ b/Filters/Core/vtkConstrainedSmoothingFilter.h
@@ -60,6 +60,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkConstrainedSmoothingFilter : public vtkPointSetAlgorithm
 {
 public:
@@ -208,5 +209,6 @@ private:
   vtkConstrainedSmoothingFilter(const vtkConstrainedSmoothingFilter&) = delete;
   void operator=(const vtkConstrainedSmoothingFilter&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
diff --git a/Filters/Core/vtkContour3DLinearGrid.cxx b/Filters/Core/vtkContour3DLinearGrid.cxx
index 0a0f64803600b86de050e0110b81da5dcd55f0d6..91f0ddf0d3c3948f028c4a61f728c013d1d8a9bc 100644
--- a/Filters/Core/vtkContour3DLinearGrid.cxx
+++ b/Filters/Core/vtkContour3DLinearGrid.cxx
@@ -57,6 +57,7 @@
 #include <set>
 #include <utility> //make_pair
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContour3DLinearGrid);
 vtkCxxSetObjectMacro(vtkContour3DLinearGrid, ScalarTree, vtkScalarTree);
 
@@ -1722,3 +1723,4 @@ void vtkContour3DLinearGrid::PrintSelf(ostream& os, vtkIndent indent)
 #undef MAX_CELL_VERTS
 #undef EXTRACT_MERGED
 #undef EXTRACT_FAST_PATH
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkContour3DLinearGrid.h b/Filters/Core/vtkContour3DLinearGrid.h
index b632edb5754c88d40b2ec038bf017d4af2bd8992..93ecd1f1c659b714fd1b890fea66d8ff3ab434dd 100644
--- a/Filters/Core/vtkContour3DLinearGrid.h
+++ b/Filters/Core/vtkContour3DLinearGrid.h
@@ -117,6 +117,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkUnstructuredGrid;
 class vtkScalarTree;
@@ -372,4 +373,5 @@ inline void vtkContour3DLinearGrid::GenerateValues(
   this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkContourFilter.cxx b/Filters/Core/vtkContourFilter.cxx
index ac956f92712263568ffed043eb094f1144fb0ca2..b01165f32a6bf4ef6826b67d401877b588e13653 100644
--- a/Filters/Core/vtkContourFilter.cxx
+++ b/Filters/Core/vtkContourFilter.cxx
@@ -47,6 +47,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkContourFilter);
 vtkCxxSetObjectMacro(vtkContourFilter, ScalarTree, vtkScalarTree);
 
@@ -779,3 +780,4 @@ void vtkContourFilter::InternalProgressCallbackFunction(
   double progress = *static_cast<double*>(callData);
   contourFilter->UpdateProgress(progress);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkContourFilter.h b/Filters/Core/vtkContourFilter.h
index 26a537bd7248b8992531c178710bea318b488705..332d23fec053b6ff6a3f1b883f4a42e39e82a917 100644
--- a/Filters/Core/vtkContourFilter.h
+++ b/Filters/Core/vtkContourFilter.h
@@ -59,6 +59,7 @@
 
 #include "vtkContourValues.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 class vtkScalarTree;
 class vtkSynchronizedTemplates2D;
@@ -309,4 +310,5 @@ inline void vtkContourFilter::GenerateValues(int numContours, double rangeStart,
   this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkContourGrid.cxx b/Filters/Core/vtkContourGrid.cxx
index b7c9ac781b7ea5a8b4e14872cb33af1ce6b924c6..03c00cb0a47b8ce9e2cdcfd79730a31139850d6b 100644
--- a/Filters/Core/vtkContourGrid.cxx
+++ b/Filters/Core/vtkContourGrid.cxx
@@ -44,6 +44,7 @@
 #include <cmath>
 #include <limits>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContourGrid);
 
 //------------------------------------------------------------------------------
@@ -549,3 +550,4 @@ void vtkContourGrid::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Precision of the output points: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkContourGrid.h b/Filters/Core/vtkContourGrid.h
index 57267ac2ec305cf2a564002a761fd4329b40aae5..208352af64ca64e0bc4add93169a81c1dac891f6 100644
--- a/Filters/Core/vtkContourGrid.h
+++ b/Filters/Core/vtkContourGrid.h
@@ -58,6 +58,7 @@
 
 #include "vtkContourValues.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEdgeTable;
 class vtkScalarTree;
 class vtkIncrementalPointLocator;
@@ -267,4 +268,5 @@ inline void vtkContourGrid::GenerateValues(int numContours, double rangeStart, d
   this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkContourHelper.cxx b/Filters/Core/vtkContourHelper.cxx
index b05aadccb58a854d9d1bc15ddf7838efb73d3d5d..532bf0015ce38173e1dfcde711e3b83caa254b91 100644
--- a/Filters/Core/vtkContourHelper.cxx
+++ b/Filters/Core/vtkContourHelper.cxx
@@ -24,6 +24,7 @@
 #include "vtkPolygonBuilder.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkContourHelper::vtkContourHelper(vtkIncrementalPointLocator* locator, vtkCellArray* verts,
   vtkCellArray* lines, vtkCellArray* polys, vtkPointData* inPd, vtkCellData* inCd,
   vtkPointData* outPd, vtkCellData* outCd, int estimatedSize, bool outputTriangles)
@@ -110,3 +111,4 @@ void vtkContourHelper::Contour(
     this->PolyCollection->RemoveAllItems();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkContourHelper.h b/Filters/Core/vtkContourHelper.h
index 558564fdf57d1d516739f3d83c9154d7dcbadd20..7c950f500beae08967eadab5b036448405d7f159 100644
--- a/Filters/Core/vtkContourHelper.h
+++ b/Filters/Core/vtkContourHelper.h
@@ -31,6 +31,7 @@
 #include "vtkPolygonBuilder.h"    //for a member variable
 #include "vtkSmartPointer.h"      //for a member variable
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 class vtkCellArray;
 class vtkPointData;
@@ -68,5 +69,6 @@ private:
   bool GenerateTriangles;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkContourHelper.h
diff --git a/Filters/Core/vtkConvertToMultiBlockDataSet.cxx b/Filters/Core/vtkConvertToMultiBlockDataSet.cxx
index 21bb5d2b41fbb0ab09abcf931e4215e76a82e341..37b3bcde3d31c94d2c885ab3554845913d00fe61 100644
--- a/Filters/Core/vtkConvertToMultiBlockDataSet.cxx
+++ b/Filters/Core/vtkConvertToMultiBlockDataSet.cxx
@@ -21,6 +21,7 @@
 #include "vtkPartitionedDataSetCollection.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkConvertToMultiBlockDataSet);
 //----------------------------------------------------------------------------
 vtkConvertToMultiBlockDataSet::vtkConvertToMultiBlockDataSet() = default;
@@ -77,3 +78,4 @@ void vtkConvertToMultiBlockDataSet::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkConvertToMultiBlockDataSet.h b/Filters/Core/vtkConvertToMultiBlockDataSet.h
index 0ae1d598ec7b4e2d898d3f503ae2dc43a8bef724..25d1f8e27419aece67eb61b677a0a06d35f1d21f 100644
--- a/Filters/Core/vtkConvertToMultiBlockDataSet.h
+++ b/Filters/Core/vtkConvertToMultiBlockDataSet.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkConvertToMultiBlockDataSet : public vtkMultiBlockDataSetAlgorithm
 {
 public:
@@ -52,4 +53,5 @@ private:
   void operator=(const vtkConvertToMultiBlockDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkConvertToPartitionedDataSetCollection.cxx b/Filters/Core/vtkConvertToPartitionedDataSetCollection.cxx
index 5ab0b0fb5dd337de44764d80474c038195b486e7..7313eefc2083764f54813296e4031feee4b7cb5c 100644
--- a/Filters/Core/vtkConvertToPartitionedDataSetCollection.cxx
+++ b/Filters/Core/vtkConvertToPartitionedDataSetCollection.cxx
@@ -32,6 +32,7 @@
 #include <functional>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkConvertToPartitionedDataSetCollection);
 //----------------------------------------------------------------------------
 vtkConvertToPartitionedDataSetCollection::vtkConvertToPartitionedDataSetCollection() = default;
@@ -86,3 +87,4 @@ void vtkConvertToPartitionedDataSetCollection::PrintSelf(ostream& os, vtkIndent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkConvertToPartitionedDataSetCollection.h b/Filters/Core/vtkConvertToPartitionedDataSetCollection.h
index 1e5c674588464383813a584507a5ca007202e202..2c4537ddf3892959e91fbd243132ae98a7174220 100644
--- a/Filters/Core/vtkConvertToPartitionedDataSetCollection.h
+++ b/Filters/Core/vtkConvertToPartitionedDataSetCollection.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPartitionedDataSetCollectionAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkConvertToPartitionedDataSetCollection
   : public vtkPartitionedDataSetCollectionAlgorithm
 {
@@ -52,4 +53,5 @@ private:
   void operator=(const vtkConvertToPartitionedDataSetCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkConvertToPolyhedra.cxx b/Filters/Core/vtkConvertToPolyhedra.cxx
index 6647dcd6dfa1f1fb31ada665326e45bf1a1e32b7..10e217ceb9839b36c81246289dbda3f33feb878b 100644
--- a/Filters/Core/vtkConvertToPolyhedra.cxx
+++ b/Filters/Core/vtkConvertToPolyhedra.cxx
@@ -28,6 +28,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkConvertToPolyhedra);
 
 //------------------------------------------------------------------------------
@@ -125,3 +126,4 @@ void vtkConvertToPolyhedra::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output All Cells: " << (this->OutputAllCells ? "true\n" : "false\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkConvertToPolyhedra.h b/Filters/Core/vtkConvertToPolyhedra.h
index 26a7c2836c584cbbc8faabaea7859b55eb40751c..678f3bae90c2728abb3180e602a89422f6a2220c 100644
--- a/Filters/Core/vtkConvertToPolyhedra.h
+++ b/Filters/Core/vtkConvertToPolyhedra.h
@@ -42,6 +42,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkConvertToPolyhedra : public vtkUnstructuredGridAlgorithm
 {
 public:
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkConvertToPolyhedra&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkCutter.cxx b/Filters/Core/vtkCutter.cxx
index 0ccff15481aeacd057691591c4f528f884de3609..5d6c02f5594c6c719bf959a9392a5784ece0a300 100644
--- a/Filters/Core/vtkCutter.cxx
+++ b/Filters/Core/vtkCutter.cxx
@@ -50,6 +50,7 @@
 #include <algorithm>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCutter);
 vtkCxxSetObjectMacro(vtkCutter, CutFunction, vtkImplicitFunction);
 vtkCxxSetObjectMacro(vtkCutter, Locator, vtkIncrementalPointLocator);
@@ -1084,3 +1085,4 @@ void vtkCutter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Precision of the output points: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkCutter.h b/Filters/Core/vtkCutter.h
index 8eb13460996a0dc50e2749b2704ffd88fb0c3fde..99a547ee6f15b099b9a5d0f1bb4ccd48dbab32b2 100644
--- a/Filters/Core/vtkCutter.h
+++ b/Filters/Core/vtkCutter.h
@@ -57,6 +57,7 @@
 #define VTK_SORT_BY_VALUE 0
 #define VTK_SORT_BY_CELL 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGridSynchronizedTemplates3D;
 class vtkImplicitFunction;
 class vtkIncrementalPointLocator;
@@ -272,4 +273,5 @@ inline const char* vtkCutter::GetSortByAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkDataObjectGenerator.cxx b/Filters/Core/vtkDataObjectGenerator.cxx
index 6f6901d00341965384ac09f1a790687e36227d48..3a6c5f9156df5b87327de3e617db473ab256fc07 100644
--- a/Filters/Core/vtkDataObjectGenerator.cxx
+++ b/Filters/Core/vtkDataObjectGenerator.cxx
@@ -40,6 +40,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataObjectGenerator);
 
 //============================================================================
@@ -1200,3 +1201,4 @@ void vtkDataObjectGenerator::MakeUnstructuredGrid4(vtkDataSet* ids)
 
   this->MakeValues(ds);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkDataObjectGenerator.h b/Filters/Core/vtkDataObjectGenerator.h
index ff0732c851ec623f59a6e854974a4819c6a4480c..6a3585555895b84ddb2e00d220fa553125cf1cb5 100644
--- a/Filters/Core/vtkDataObjectGenerator.h
+++ b/Filters/Core/vtkDataObjectGenerator.h
@@ -40,6 +40,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInternalStructureCache;
 
 class VTKFILTERSCORE_EXPORT vtkDataObjectGenerator : public vtkDataObjectAlgorithm
@@ -115,4 +116,5 @@ private:
   void operator=(const vtkDataObjectGenerator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkDataObjectToDataSetFilter.cxx b/Filters/Core/vtkDataObjectToDataSetFilter.cxx
index 65a68c814adb34f9772000a580f849424426f1b1..32d82977d3258b41a4523165c9d59a5adb171eb0 100644
--- a/Filters/Core/vtkDataObjectToDataSetFilter.cxx
+++ b/Filters/Core/vtkDataObjectToDataSetFilter.cxx
@@ -28,6 +28,7 @@
 #include "vtkStructuredPoints.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataObjectToDataSetFilter);
 
 //------------------------------------------------------------------------------
@@ -1403,3 +1404,4 @@ int vtkDataObjectToDataSetFilter::RequestDataObject(
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkDataObjectToDataSetFilter.h b/Filters/Core/vtkDataObjectToDataSetFilter.h
index 83b7d814114c0e1c8faadc643d457f9684672026..c7d6bac7ee9e862d6afe8bfe7c5818d20e873cbd 100644
--- a/Filters/Core/vtkDataObjectToDataSetFilter.h
+++ b/Filters/Core/vtkDataObjectToDataSetFilter.h
@@ -68,6 +68,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkDataArray;
 class vtkDataSet;
@@ -371,4 +372,5 @@ private:
   void operator=(const vtkDataObjectToDataSetFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkDataSetEdgeSubdivisionCriterion.cxx b/Filters/Core/vtkDataSetEdgeSubdivisionCriterion.cxx
index f6917b259ea03012bc3f6ac62c6982f3494afde5..309300b416e455b301a0dfae30bc91bbe49b38f2 100644
--- a/Filters/Core/vtkDataSetEdgeSubdivisionCriterion.cxx
+++ b/Filters/Core/vtkDataSetEdgeSubdivisionCriterion.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataSetEdgeSubdivisionCriterion);
 
 vtkDataSetEdgeSubdivisionCriterion::vtkDataSetEdgeSubdivisionCriterion()
@@ -241,3 +242,4 @@ void vtkDataSetEdgeSubdivisionCriterion::ResetFieldError2()
   this->FieldError2Length = 0;
   this->ActiveFieldCriteria = 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkDataSetEdgeSubdivisionCriterion.h b/Filters/Core/vtkDataSetEdgeSubdivisionCriterion.h
index dd64296ce2bc20ed221e91d30ea63eea74f9b6f5..95020a2be7bc2212fa71dac529d84362891ce9ba 100644
--- a/Filters/Core/vtkDataSetEdgeSubdivisionCriterion.h
+++ b/Filters/Core/vtkDataSetEdgeSubdivisionCriterion.h
@@ -39,6 +39,7 @@
 #include "vtkEdgeSubdivisionCriterion.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkDataSet;
 
@@ -201,4 +202,5 @@ inline const vtkCell* vtkDataSetEdgeSubdivisionCriterion::GetCell() const
   return this->CurrentCellData;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkDataSetEdgeSubdivisionCriterion_h
diff --git a/Filters/Core/vtkDataSetToDataObjectFilter.cxx b/Filters/Core/vtkDataSetToDataObjectFilter.cxx
index dc2b4f92b018d2b629245b26641ce6fcfa5ff947..7e35562d965e8b4bf893c1cf3be58c088a133275 100644
--- a/Filters/Core/vtkDataSetToDataObjectFilter.cxx
+++ b/Filters/Core/vtkDataSetToDataObjectFilter.cxx
@@ -32,6 +32,7 @@
 #include <sstream>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataSetToDataObjectFilter);
 
 //------------------------------------------------------------------------------
@@ -348,3 +349,4 @@ void vtkDataSetToDataObjectFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Point Data: " << (this->PointData ? "On\n" : "Off\n");
   os << indent << "Cell Data: " << (this->CellData ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkDataSetToDataObjectFilter.h b/Filters/Core/vtkDataSetToDataObjectFilter.h
index f40821761edba1a9769703acea5f2b00766d3a30..f5944f92b342ad5892a10c577628832eff28a398 100644
--- a/Filters/Core/vtkDataSetToDataObjectFilter.h
+++ b/Filters/Core/vtkDataSetToDataObjectFilter.h
@@ -50,6 +50,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKFILTERSCORE_EXPORT vtkDataSetToDataObjectFilter : public vtkDataObjectAlgorithm
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkDataSetToDataObjectFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkDecimatePolylineFilter.cxx b/Filters/Core/vtkDecimatePolylineFilter.cxx
index 06c37be5561b8f2bc1d490bfb516207ed5c23dc4..cefcdf002c6f6012b0afab72db3aabd5226e9ebe 100644
--- a/Filters/Core/vtkDecimatePolylineFilter.cxx
+++ b/Filters/Core/vtkDecimatePolylineFilter.cxx
@@ -28,6 +28,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDecimatePolylineFilter);
 
 //------------------------------------------------------------------------------
@@ -292,3 +293,4 @@ void vtkDecimatePolylineFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Maximum Error: " << this->MaximumError << "\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkDecimatePolylineFilter.h b/Filters/Core/vtkDecimatePolylineFilter.h
index 0f1560d846f5f264f146da54766b68d22bcd25e5..caaae0fb713d3339d7921f1e8fa0373bf641f1a9 100644
--- a/Filters/Core/vtkDecimatePolylineFilter.h
+++ b/Filters/Core/vtkDecimatePolylineFilter.h
@@ -49,6 +49,7 @@
 
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPriorityQueue;
 
 class VTKFILTERSCORE_EXPORT vtkDecimatePolylineFilter : public vtkPolyDataAlgorithm
@@ -117,4 +118,5 @@ private:
   void operator=(const vtkDecimatePolylineFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkDecimatePro.cxx b/Filters/Core/vtkDecimatePro.cxx
index 700692ef3ca74b63a986a6dedb16b21a0a77e110..bc6769180725d51040d05f915cdf0fbda097ff91 100644
--- a/Filters/Core/vtkDecimatePro.cxx
+++ b/Filters/Core/vtkDecimatePro.cxx
@@ -28,6 +28,7 @@
 #include "vtkPriorityQueue.h"
 #include "vtkTriangle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDecimatePro);
 
 #define VTK_TOLERANCE 1.0e-05
@@ -1728,3 +1729,4 @@ void vtkDecimatePro::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkDecimatePro.h b/Filters/Core/vtkDecimatePro.h
index 7f7a345566a7633a81da54722a8de4ae8d17ff14..5224b99ad5c48c76eb3c86b2c3a615fdd9e4df34 100644
--- a/Filters/Core/vtkDecimatePro.h
+++ b/Filters/Core/vtkDecimatePro.h
@@ -85,6 +85,7 @@
 
 #include "vtkCell.h" // Needed for VTK_CELL_SIZE
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkPriorityQueue;
 
@@ -429,4 +430,5 @@ private:
   void operator=(const vtkDecimatePro&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkDelaunay2D.cxx b/Filters/Core/vtkDelaunay2D.cxx
index 91017b31c81c409f52349ce8cafaf6ddf6056690..21b96ed0eedabc0ff912cfbe1f4c4461a0ce2e89 100644
--- a/Filters/Core/vtkDelaunay2D.cxx
+++ b/Filters/Core/vtkDelaunay2D.cxx
@@ -32,6 +32,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDelaunay2D);
 
 //------------------------------------------------------------------------------
@@ -1652,3 +1653,4 @@ void vtkDelaunay2D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Random Point Insertion: " << (this->RandomPointInsertion ? "On" : "Off") << "\n";
   os << indent << "Bounding Triangulation: " << (this->BoundingTriangulation ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkDelaunay2D.h b/Filters/Core/vtkDelaunay2D.h
index c81162f922bdb74efe610bb5544fdd1698e1de7d..b223bdfb784ccb88b6fdc6eb9ad9b5f26590e216 100644
--- a/Filters/Core/vtkDelaunay2D.h
+++ b/Filters/Core/vtkDelaunay2D.h
@@ -131,6 +131,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkIdList;
 class vtkPointSet;
@@ -332,4 +333,5 @@ private:
   void operator=(const vtkDelaunay2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkDelaunay3D.cxx b/Filters/Core/vtkDelaunay3D.cxx
index 1e72eb77441d10b23bce781b152500405f59b110..375d6c9b1ad3aaca73a953e805ccd95275552b45 100644
--- a/Filters/Core/vtkDelaunay3D.cxx
+++ b/Filters/Core/vtkDelaunay3D.cxx
@@ -29,6 +29,7 @@
 #include "vtkTriangle.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDelaunay3D);
 
 //------------------------------------------------------------------------------
@@ -1132,3 +1133,4 @@ int vtkDelaunay3D::FillInputPortInformation(int port, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPointSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkDelaunay3D.h b/Filters/Core/vtkDelaunay3D.h
index 5bee926a19ab8f3c466a69bc67408da4509d748a..758a2a7ff370e513c2a8835612ed96e094695ef8 100644
--- a/Filters/Core/vtkDelaunay3D.h
+++ b/Filters/Core/vtkDelaunay3D.h
@@ -97,6 +97,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkPointLocator;
 class vtkPointSet;
@@ -307,4 +308,5 @@ private:
   void operator=(const vtkDelaunay3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkEdgeSubdivisionCriterion.cxx b/Filters/Core/vtkEdgeSubdivisionCriterion.cxx
index f8f41848e0728dc3fd0d175c486f0469c351e483..c9a100314396a77edc41fb94cae971138040b1a5 100644
--- a/Filters/Core/vtkEdgeSubdivisionCriterion.cxx
+++ b/Filters/Core/vtkEdgeSubdivisionCriterion.cxx
@@ -14,6 +14,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkEdgeSubdivisionCriterion::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
@@ -183,3 +184,4 @@ bool vtkEdgeSubdivisionCriterion::FixedFieldErrorEval(
 
   return false;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkEdgeSubdivisionCriterion.h b/Filters/Core/vtkEdgeSubdivisionCriterion.h
index a892726577353286beb5ddc3300433a39f7409e0..5f80a9efa8f284ca58c8847998bc5800be5cb824 100644
--- a/Filters/Core/vtkEdgeSubdivisionCriterion.h
+++ b/Filters/Core/vtkEdgeSubdivisionCriterion.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSetAttributes;
 class vtkMatrix4x4;
 class vtkStreamingTessellator;
@@ -193,4 +194,5 @@ inline int vtkEdgeSubdivisionCriterion::GetNumberOfFields() const
   return this->NumberOfFields;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkEdgeSubdivisionCriterion_h
diff --git a/Filters/Core/vtkElevationFilter.cxx b/Filters/Core/vtkElevationFilter.cxx
index 4194f3a81d57a250bac82bf088d0c0e9efa03f69..640e0adb167b0a2e5bd12804d909b9ddc476e1d5 100644
--- a/Filters/Core/vtkElevationFilter.cxx
+++ b/Filters/Core/vtkElevationFilter.cxx
@@ -28,6 +28,7 @@
 #include "vtkSMPTools.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkElevationFilter);
 
 namespace
@@ -236,3 +237,4 @@ int vtkElevationFilter::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkElevationFilter.h b/Filters/Core/vtkElevationFilter.h
index f109267f2f91f18d756682e21509bafdce2a7bf4..f4135892c4859f5dc0410867dce4aa6dfbe64fb9 100644
--- a/Filters/Core/vtkElevationFilter.h
+++ b/Filters/Core/vtkElevationFilter.h
@@ -41,6 +41,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkElevationFilter : public vtkDataSetAlgorithm
 {
 public:
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkElevationFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkExecutionTimer.cxx b/Filters/Core/vtkExecutionTimer.cxx
index 6fa62ec2e222b7666ddfbe0e9c1b466eb956b3f5..089dae0def6bfd39a8017859bd27c1602af1c12b 100644
--- a/Filters/Core/vtkExecutionTimer.cxx
+++ b/Filters/Core/vtkExecutionTimer.cxx
@@ -21,6 +21,7 @@
 #include "vtkTimerLog.h"
 #include <iostream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExecutionTimer);
 
 //------------------------------------------------------------------------------
@@ -147,3 +148,4 @@ void vtkExecutionTimer::TimerFinished()
 {
   // Nothing to do here
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkExecutionTimer.h b/Filters/Core/vtkExecutionTimer.h
index 0875d32b8a21ac3a85200e789ee090649b24098d..79ed91c5c01660277a736f0e5f471e2907680d1a 100644
--- a/Filters/Core/vtkExecutionTimer.h
+++ b/Filters/Core/vtkExecutionTimer.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithm;
 class vtkCallbackCommand;
 
@@ -129,4 +130,5 @@ private:
   void operator=(const vtkExecutionTimer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkExplicitStructuredGridCrop.cxx b/Filters/Core/vtkExplicitStructuredGridCrop.cxx
index 2c42327dea52edf9c6e01ea443126903717c3872..5ec1884060d73a4cf52e131799ed76056bdadda8 100644
--- a/Filters/Core/vtkExplicitStructuredGridCrop.cxx
+++ b/Filters/Core/vtkExplicitStructuredGridCrop.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExplicitStructuredGridCrop);
 
 //------------------------------------------------------------------------------
@@ -169,3 +170,4 @@ int vtkExplicitStructuredGridCrop::RequestData(vtkInformation* vtkNotUsed(reques
   this->UpdateProgress(1.);
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkExplicitStructuredGridCrop.h b/Filters/Core/vtkExplicitStructuredGridCrop.h
index 8c81ec67a2644b47b5299c7e913d3e4190d68254..256d2afc8f2df4034a53e5ca5068007fb6a0fe29 100644
--- a/Filters/Core/vtkExplicitStructuredGridCrop.h
+++ b/Filters/Core/vtkExplicitStructuredGridCrop.h
@@ -24,6 +24,7 @@
 #include "vtkExplicitStructuredGridAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkExplicitStructuredGridCrop
   : public vtkExplicitStructuredGridAlgorithm
 {
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkExplicitStructuredGridCrop&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkExplicitStructuredGridToUnstructuredGrid.cxx b/Filters/Core/vtkExplicitStructuredGridToUnstructuredGrid.cxx
index de7cdb15d12bcc0db73975bd5eec0c39ff81d39b..455e29606e49c4168e862d730f439a9084e2009d 100644
--- a/Filters/Core/vtkExplicitStructuredGridToUnstructuredGrid.cxx
+++ b/Filters/Core/vtkExplicitStructuredGridToUnstructuredGrid.cxx
@@ -27,6 +27,7 @@
 #include "vtkPointData.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExplicitStructuredGridToUnstructuredGrid);
 
 //------------------------------------------------------------------------------
@@ -124,3 +125,4 @@ int vtkExplicitStructuredGridToUnstructuredGrid::FillInputPortInformation(
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkExplicitStructuredGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkExplicitStructuredGridToUnstructuredGrid.h b/Filters/Core/vtkExplicitStructuredGridToUnstructuredGrid.h
index 1efa20ebc4a915429ab49316bfc2537813b9b8b7..fe511a7a138899d26cc3e6686500fb5548662f70 100644
--- a/Filters/Core/vtkExplicitStructuredGridToUnstructuredGrid.h
+++ b/Filters/Core/vtkExplicitStructuredGridToUnstructuredGrid.h
@@ -23,6 +23,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkExplicitStructuredGridToUnstructuredGrid
   : public vtkUnstructuredGridAlgorithm
 {
@@ -44,4 +45,5 @@ private:
   void operator=(const vtkExplicitStructuredGridToUnstructuredGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkExtractCellsAlongPolyLine.cxx b/Filters/Core/vtkExtractCellsAlongPolyLine.cxx
index affbc3f77df695cc59d6a264f659ac587c1336a2..0682beededc6de6f23e32004d404718109b03dcc 100644
--- a/Filters/Core/vtkExtractCellsAlongPolyLine.cxx
+++ b/Filters/Core/vtkExtractCellsAlongPolyLine.cxx
@@ -37,6 +37,7 @@
 #include <unordered_map>
 #include <unordered_set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractCellsAlongPolyLine);
 
 namespace
@@ -846,3 +847,4 @@ void vtkExtractCellsAlongPolyLine::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkExtractCellsAlongPolyLine.h b/Filters/Core/vtkExtractCellsAlongPolyLine.h
index 99d8fc82ec85fddb783bd6e555922082807562c7..848490080355f8c54862ccc87c0582adae69bd78 100644
--- a/Filters/Core/vtkExtractCellsAlongPolyLine.h
+++ b/Filters/Core/vtkExtractCellsAlongPolyLine.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkExtractCellsAlongPolyLine : public vtkUnstructuredGridAlgorithm
 {
 public:
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkExtractCellsAlongPolyLine&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkExtractEdges.cxx b/Filters/Core/vtkExtractEdges.cxx
index 09e26915681cba4490d38cbf430e7c031a2dbd69..d55525f01ed3c16a2bd297dccec1a3926e973bd6 100644
--- a/Filters/Core/vtkExtractEdges.cxx
+++ b/Filters/Core/vtkExtractEdges.cxx
@@ -33,6 +33,7 @@
 #include "vtkSMPTools.h"
 #include "vtkStaticEdgeLocatorTemplate.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractEdges);
 
 //------------------------------------------------------------------------------
@@ -41,6 +42,7 @@ vtkExtractEdges::vtkExtractEdges()
 {
   this->UseAllPoints = false;
 }
+VTK_ABI_NAMESPACE_END
 
 // The following namespace supports a threaded algorithm for extracting edges
 // while retaining the initial point ids. Using this threading approach, each
@@ -401,6 +403,7 @@ int NonLocatorExtraction(
 
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 // Generate feature edges for mesh. If UseAllPoints is disabled, then a locator
 // is employed which is slower and inherently serial. (This could be sped up
@@ -604,3 +607,4 @@ void vtkExtractEdges::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Locator: (none) UseAllPoints:" << this->UseAllPoints << "\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkExtractEdges.h b/Filters/Core/vtkExtractEdges.h
index deac9506c0ab717f342c086857927ab1d1e031fc..e4158600b092ea11465bb53b0d9b6d2265c5254b 100644
--- a/Filters/Core/vtkExtractEdges.h
+++ b/Filters/Core/vtkExtractEdges.h
@@ -44,6 +44,7 @@
 #include "vtkIncrementalPointLocator.h" // Support vtkSmartPointer<>
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkExtractEdges : public vtkPolyDataAlgorithm
 {
 public:
@@ -105,5 +106,6 @@ private:
   vtkExtractEdges(const vtkExtractEdges&) = delete;
   void operator=(const vtkExtractEdges&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
diff --git a/Filters/Core/vtkFeatureEdges.cxx b/Filters/Core/vtkFeatureEdges.cxx
index 7f464ea2bd7ca5065f9d2f2b005c28084df42022..8236d70ea5f979aeb6269c869aef80a8c2750e85 100644
--- a/Filters/Core/vtkFeatureEdges.cxx
+++ b/Filters/Core/vtkFeatureEdges.cxx
@@ -33,6 +33,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFeatureEdges);
 
 namespace
@@ -68,8 +69,11 @@ vtkFeatureEdges::~vtkFeatureEdges()
   }
 }
 
+VTK_ABI_NAMESPACE_END
+
 //------------------------------------------------------------------------------
 // Generate feature edges for mesh
+VTK_ABI_NAMESPACE_BEGIN
 int vtkFeatureEdges::RequestData(vtkInformation* vtkNotUsed(request),
   vtkInformationVector** inputVector, vtkInformationVector* outputVector)
 {
@@ -628,3 +632,4 @@ void vtkFeatureEdges::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkFeatureEdges.h b/Filters/Core/vtkFeatureEdges.h
index 140f36904d69720eea7e54e2e8afada80bff5e9e..4f4752b0623dabb0730775bb8ca87cc207f22b33 100644
--- a/Filters/Core/vtkFeatureEdges.h
+++ b/Filters/Core/vtkFeatureEdges.h
@@ -42,6 +42,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 
 class VTKFILTERSCORE_EXPORT vtkFeatureEdges : public vtkPolyDataAlgorithm
@@ -206,4 +207,5 @@ private:
   void operator=(const vtkFeatureEdges&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkFieldDataToAttributeDataFilter.cxx b/Filters/Core/vtkFieldDataToAttributeDataFilter.cxx
index 8d7998a9ed22fbe402085a583a461dbe34079d5f..08059b5e8b1b0518f75bed4ab95c16de630d6be8 100644
--- a/Filters/Core/vtkFieldDataToAttributeDataFilter.cxx
+++ b/Filters/Core/vtkFieldDataToAttributeDataFilter.cxx
@@ -23,6 +23,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFieldDataToAttributeDataFilter);
 
 // Instantiate object with no input and no defined output.
@@ -1147,3 +1148,4 @@ int vtkFieldDataToAttributeDataFilter::RequestUpdateExtent(vtkInformation* vtkNo
     outInfo->Get(vtkStreamingDemandDrivenPipeline::EXACT_EXTENT()));
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkFieldDataToAttributeDataFilter.h b/Filters/Core/vtkFieldDataToAttributeDataFilter.h
index fcdc2799705665f9528c4f60a296b269929cd262..4f5b75a8d3770d5b38090f5937817bf655a75afd 100644
--- a/Filters/Core/vtkFieldDataToAttributeDataFilter.h
+++ b/Filters/Core/vtkFieldDataToAttributeDataFilter.h
@@ -65,6 +65,7 @@
 #define VTK_CELL_DATA 0
 #define VTK_POINT_DATA 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkDataSetAttributes;
 class vtkFieldData;
@@ -324,4 +325,5 @@ private:
   void operator=(const vtkFieldDataToAttributeDataFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkFlyingEdges2D.cxx b/Filters/Core/vtkFlyingEdges2D.cxx
index c8a662246fc76c5b64172e70ac0914b2008d798b..5632a7825ca97c32bf28b74cf32faf9d36eeada3 100644
--- a/Filters/Core/vtkFlyingEdges2D.cxx
+++ b/Filters/Core/vtkFlyingEdges2D.cxx
@@ -29,6 +29,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFlyingEdges2D);
 
 // This templated class is the heart of the algorithm. Templated across
@@ -994,3 +995,4 @@ void vtkFlyingEdges2D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Compute Scalars: " << (this->ComputeScalars ? "On\n" : "Off\n");
   os << indent << "ArrayComponent: " << this->ArrayComponent << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkFlyingEdges2D.h b/Filters/Core/vtkFlyingEdges2D.h
index b65456e2e130abffcf50b0d560b628ed253c8267..5a98c3cb40c0b01fe9b08feae0da7b70c9459dd3 100644
--- a/Filters/Core/vtkFlyingEdges2D.h
+++ b/Filters/Core/vtkFlyingEdges2D.h
@@ -67,6 +67,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKFILTERSCORE_EXPORT vtkFlyingEdges2D : public vtkPolyDataAlgorithm
@@ -169,4 +170,5 @@ private:
   void operator=(const vtkFlyingEdges2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkFlyingEdges3D.cxx b/Filters/Core/vtkFlyingEdges3D.cxx
index 4630228c77faf232f5521d90b1719f176beb34bd..8a2dc2d8a45f4e94d2ad873cba123fa0c0a55acd 100644
--- a/Filters/Core/vtkFlyingEdges3D.cxx
+++ b/Filters/Core/vtkFlyingEdges3D.cxx
@@ -33,6 +33,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFlyingEdges3D);
 
 //------------------------------------------------------------------------------
@@ -1566,3 +1567,4 @@ void vtkFlyingEdges3D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Interpolate Attributes: " << (this->InterpolateAttributes ? "On\n" : "Off\n");
   os << indent << "ArrayComponent: " << this->ArrayComponent << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkFlyingEdges3D.h b/Filters/Core/vtkFlyingEdges3D.h
index f945e18cce8579119a336dc6962fc08cb119c39b..88d03398e5db90b9deb8bad35653c262f971e779 100644
--- a/Filters/Core/vtkFlyingEdges3D.h
+++ b/Filters/Core/vtkFlyingEdges3D.h
@@ -70,6 +70,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKFILTERSCORE_EXPORT vtkFlyingEdges3D : public vtkPolyDataAlgorithm
@@ -213,4 +214,5 @@ private:
   void operator=(const vtkFlyingEdges3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkFlyingEdgesPlaneCutter.cxx b/Filters/Core/vtkFlyingEdgesPlaneCutter.cxx
index 0973ef5f1e260d13667c056531a5cf05e7067bbc..b01d70260a6c5a1dbfc8bb0e8b94c3aa7157583d 100644
--- a/Filters/Core/vtkFlyingEdgesPlaneCutter.cxx
+++ b/Filters/Core/vtkFlyingEdgesPlaneCutter.cxx
@@ -35,6 +35,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFlyingEdgesPlaneCutter);
 vtkCxxSetObjectMacro(vtkFlyingEdgesPlaneCutter, Plane, vtkPlane);
 
@@ -1551,3 +1552,4 @@ void vtkFlyingEdgesPlaneCutter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Compute Normals: " << (this->ComputeNormals ? "On\n" : "Off\n");
   os << indent << "Interpolate Attributes: " << (this->InterpolateAttributes ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkFlyingEdgesPlaneCutter.h b/Filters/Core/vtkFlyingEdgesPlaneCutter.h
index 36f2183dffae0d13d99b96779d3f3856c673eaf7..293c4bf853448dbe5e603f667f30afc0a40702fb 100644
--- a/Filters/Core/vtkFlyingEdgesPlaneCutter.h
+++ b/Filters/Core/vtkFlyingEdgesPlaneCutter.h
@@ -56,6 +56,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkPlane;
 
@@ -133,4 +134,5 @@ private:
   void operator=(const vtkFlyingEdgesPlaneCutter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkGlyph2D.cxx b/Filters/Core/vtkGlyph2D.cxx
index 07948c78fa70c6d54d641bcd6ba3517e9420c0de..9cec43b74bf508944b0481579c7846d941acc511 100644
--- a/Filters/Core/vtkGlyph2D.cxx
+++ b/Filters/Core/vtkGlyph2D.cxx
@@ -25,6 +25,7 @@
 #include "vtkTransform.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGlyph2D);
 
 int vtkGlyph2D::RequestData(vtkInformation* vtkNotUsed(request), vtkInformationVector** inputVector,
@@ -490,3 +491,4 @@ void vtkGlyph2D::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkGlyph2D.h b/Filters/Core/vtkGlyph2D.h
index 942591db9d3f3071fbf14035d95784e7e1a5ad33..a63f8823df4c8d709749c325f8c3a0dcf2114496 100644
--- a/Filters/Core/vtkGlyph2D.h
+++ b/Filters/Core/vtkGlyph2D.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkGlyph3D.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkGlyph2D : public vtkGlyph3D
 {
 public:
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkGlyph2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkGlyph3D.cxx b/Filters/Core/vtkGlyph3D.cxx
index f7af9c74d29c450eaf033647b8a25b1df651e02a..f0941d486dc37915df4603c30181ee2bef7ba756 100644
--- a/Filters/Core/vtkGlyph3D.cxx
+++ b/Filters/Core/vtkGlyph3D.cxx
@@ -33,6 +33,7 @@
 #include "vtkUniformGrid.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGlyph3D);
 vtkCxxSetObjectMacro(vtkGlyph3D, SourceTransform, vtkTransform);
 
@@ -970,3 +971,4 @@ int vtkGlyph3D::FillInputPortInformation(int port, vtkInformation* info)
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkGlyph3D.h b/Filters/Core/vtkGlyph3D.h
index 5b632fdc25e330ae98e7e574e1972459116a4a02..94dbc8f0c2394e72a9c4c6c78d056a237cf3be43 100644
--- a/Filters/Core/vtkGlyph3D.h
+++ b/Filters/Core/vtkGlyph3D.h
@@ -101,6 +101,7 @@
 #define VTK_INDEXING_BY_SCALAR 1
 #define VTK_INDEXING_BY_VECTOR 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransform;
 
 class VTKFILTERSCORE_EXPORT vtkGlyph3D : public vtkPolyDataAlgorithm
@@ -457,4 +458,5 @@ inline const char* vtkGlyph3D::GetIndexModeAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkGridSynchronizedTemplates3D.cxx b/Filters/Core/vtkGridSynchronizedTemplates3D.cxx
index d174c344f15d4eecbbb05221871d53085658e11c..f67009b876fd410a36f1a9b2b589286c58351cec 100644
--- a/Filters/Core/vtkGridSynchronizedTemplates3D.cxx
+++ b/Filters/Core/vtkGridSynchronizedTemplates3D.cxx
@@ -41,6 +41,7 @@
 #include "vtkUnsignedShortArray.h"
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGridSynchronizedTemplates3D);
 
 //------------------------------------------------------------------------------
@@ -994,3 +995,4 @@ int vtkGridSynchronizedTemplates3D::RequestData(vtkInformation* vtkNotUsed(reque
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkGridSynchronizedTemplates3D.h b/Filters/Core/vtkGridSynchronizedTemplates3D.h
index aba226094e57d08dfb2f3e806d45b46a0efd990f..f435f9aa9b63c1d432bd18b431555b3b7ebaadd7 100644
--- a/Filters/Core/vtkGridSynchronizedTemplates3D.h
+++ b/Filters/Core/vtkGridSynchronizedTemplates3D.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStructuredGrid;
 
 class VTKFILTERSCORE_EXPORT vtkGridSynchronizedTemplates3D : public vtkPolyDataAlgorithm
@@ -192,4 +193,5 @@ private:
   void operator=(const vtkGridSynchronizedTemplates3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkHedgeHog.cxx b/Filters/Core/vtkHedgeHog.cxx
index 3712147f3d0a74b4fbf9532c8df22262288ca00d..70eb305b864add8e0de41031a3678cc4ae4dd78a 100644
--- a/Filters/Core/vtkHedgeHog.cxx
+++ b/Filters/Core/vtkHedgeHog.cxx
@@ -22,6 +22,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHedgeHog);
 
 vtkHedgeHog::vtkHedgeHog()
@@ -172,3 +173,4 @@ void vtkHedgeHog::PrintSelf(ostream& os, vtkIndent indent)
      << (this->VectorMode == VTK_USE_VECTOR ? "Orient by vector\n" : "Orient by normal\n");
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkHedgeHog.h b/Filters/Core/vtkHedgeHog.h
index d600e56ec39dd7cd6c448e3bafe4a17f237a5e9a..6c43c8603b96497cd84399b33b1ff0cf47463cb1 100644
--- a/Filters/Core/vtkHedgeHog.h
+++ b/Filters/Core/vtkHedgeHog.h
@@ -31,6 +31,7 @@
 #define VTK_USE_VECTOR 0
 #define VTK_USE_NORMAL 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkHedgeHog : public vtkPolyDataAlgorithm
 {
 public:
@@ -100,4 +101,5 @@ inline const char* vtkHedgeHog::GetVectorModeAsString()
     return "Unknown";
   }
 }
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkHull.cxx b/Filters/Core/vtkHull.cxx
index eb55059318fa1fb3b3eb9bb043f961246fd3af14..943ba9d6378d621e52a2238813c8d9877785e4fd 100644
--- a/Filters/Core/vtkHull.cxx
+++ b/Filters/Core/vtkHull.cxx
@@ -23,6 +23,7 @@
 #include "vtkPolyData.h"
 #include "vtkSMPTools.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHull);
 
 //------------------------------------------------------------------------------
@@ -788,3 +789,4 @@ void vtkHull::PrintSelf(ostream& os, vtkIndent indent)
        << " " << this->Planes[i * 4 + 2] << " " << this->Planes[i * 4 + 3] << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkHull.h b/Filters/Core/vtkHull.h
index 5ea1c02875176be15d65feb2e1f61c22048561c9..6e843f6c2a1d56fb27cb5f88d5ee77d03d97ec13 100644
--- a/Filters/Core/vtkHull.h
+++ b/Filters/Core/vtkHull.h
@@ -45,6 +45,7 @@
 #include "vtkPointSetAlgorithm.h"
 #include <vector> //for storing planes
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkPlanes;
 class vtkPoints;
@@ -198,4 +199,5 @@ private:
   void operator=(const vtkHull&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkHyperTreeGridProbeFilter.cxx b/Filters/Core/vtkHyperTreeGridProbeFilter.cxx
index 298a08e5b0547cd9214a6abf99fcf49d31fa95ee..ae443e7cf726fdb8ec9d41b193ef7f99debda8c8 100644
--- a/Filters/Core/vtkHyperTreeGridProbeFilter.cxx
+++ b/Filters/Core/vtkHyperTreeGridProbeFilter.cxx
@@ -41,6 +41,7 @@
 #include <cmath>
 #include <numeric>
 #include <vector>
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkHyperTreeGridProbeFilter);
@@ -516,3 +517,4 @@ vtkIdTypeArray* vtkHyperTreeGridProbeFilter::GetValidPoints()
 
   return this->ValidPoints;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkHyperTreeGridProbeFilter.h b/Filters/Core/vtkHyperTreeGridProbeFilter.h
index 09821faf0ae1d6dd8c088e049d6d6eb6c3bef29e..56ac1309ce92896f15fa8fc2d013c7f529a64e5a 100644
--- a/Filters/Core/vtkHyperTreeGridProbeFilter.h
+++ b/Filters/Core/vtkHyperTreeGridProbeFilter.h
@@ -29,6 +29,7 @@
 #include "vtkNew.h"               //For init in header
 #include "vtkSmartPointer.h"      //For members
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCharArray;
 class vtkIdList;
 class vtkIdTypeArray;
@@ -220,4 +221,5 @@ private:
 
 }; // vtkHyperTreeGridProbeFilter
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridProbeFilter_h
diff --git a/Filters/Core/vtkIdFilter.cxx b/Filters/Core/vtkIdFilter.cxx
index 302f208460028d72758027918d24321e6455aea1..4536a63f657e5cb7e49d2c648ac0d89fab9a0e85 100644
--- a/Filters/Core/vtkIdFilter.cxx
+++ b/Filters/Core/vtkIdFilter.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIdFilter);
 
 // Construct object with PointIds and CellIds on; and ids being generated
@@ -149,3 +150,4 @@ void vtkIdFilter::PrintSelf(ostream& os, vtkIndent indent)
      << "CellIdsArrayName: " << (this->CellIdsArrayName ? this->CellIdsArrayName : "(none)")
      << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkIdFilter.h b/Filters/Core/vtkIdFilter.h
index baeba2e583fb2d34a4b4487b7c2acac3e0d557c0..f13e1adb7f0aa3e9e98f8ff998d2901c16f2ffd5 100644
--- a/Filters/Core/vtkIdFilter.h
+++ b/Filters/Core/vtkIdFilter.h
@@ -33,6 +33,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkIdFilter : public vtkDataSetAlgorithm
 {
 public:
@@ -108,4 +109,5 @@ private:
   void operator=(const vtkIdFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkImageAppend.cxx b/Filters/Core/vtkImageAppend.cxx
index 338c327f9ab1ffcee6da5951ceb5b6477a81e492..4fc5e92632e70a1324bd9b9bb584a020f6ff059d 100644
--- a/Filters/Core/vtkImageAppend.cxx
+++ b/Filters/Core/vtkImageAppend.cxx
@@ -24,6 +24,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageAppend);
 
 //------------------------------------------------------------------------------
@@ -660,3 +661,4 @@ void vtkImageAppend::CopyAttributeData(vtkImageData* vtkNotUsed(input),
   // Do not simply shallow copy forward the data as other imaging filters do.
   // We have to append instead.
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkImageAppend.h b/Filters/Core/vtkImageAppend.h
index d1cb51e4122e891405482b6c3a557aa855ce4225..eb8a9cf7fdc2cbda0ea8b28b60ebb7264ba69b74 100644
--- a/Filters/Core/vtkImageAppend.h
+++ b/Filters/Core/vtkImageAppend.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkImageAppend : public vtkThreadedImageAlgorithm
 {
 public:
@@ -136,4 +137,5 @@ private:
   void operator=(const vtkImageAppend&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkImageDataToExplicitStructuredGrid.cxx b/Filters/Core/vtkImageDataToExplicitStructuredGrid.cxx
index 3144004c767c28846b39f5bcdf2ce29134300680..c1aa6444b20bfaeeaf705a9b66a979345b5e965b 100644
--- a/Filters/Core/vtkImageDataToExplicitStructuredGrid.cxx
+++ b/Filters/Core/vtkImageDataToExplicitStructuredGrid.cxx
@@ -26,6 +26,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageDataToExplicitStructuredGrid);
 
 //------------------------------------------------------------------------------
@@ -121,3 +122,4 @@ int vtkImageDataToExplicitStructuredGrid::FillInputPortInformation(
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkImageData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkImageDataToExplicitStructuredGrid.h b/Filters/Core/vtkImageDataToExplicitStructuredGrid.h
index 7e7e2737ffc9588046c6a7122305d6fd19973254..32e462c2c105b4684fbc44bc2e448d55fff00974 100644
--- a/Filters/Core/vtkImageDataToExplicitStructuredGrid.h
+++ b/Filters/Core/vtkImageDataToExplicitStructuredGrid.h
@@ -23,6 +23,7 @@
 #include "vtkExplicitStructuredGridAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkImageDataToExplicitStructuredGrid
   : public vtkExplicitStructuredGridAlgorithm
 {
@@ -44,4 +45,5 @@ private:
   void operator=(const vtkImageDataToExplicitStructuredGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkImplicitPolyDataDistance.cxx b/Filters/Core/vtkImplicitPolyDataDistance.cxx
index 64472122e97c2472f8bcf45c5c688945851b5812..07cb0150a1d12b5086168cc65d76eacf6a1730bf 100644
--- a/Filters/Core/vtkImplicitPolyDataDistance.cxx
+++ b/Filters/Core/vtkImplicitPolyDataDistance.cxx
@@ -24,6 +24,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkTriangleFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitPolyDataDistance);
 
 //------------------------------------------------------------------------------
@@ -354,3 +355,4 @@ void vtkImplicitPolyDataDistance::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Input : (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkImplicitPolyDataDistance.h b/Filters/Core/vtkImplicitPolyDataDistance.h
index 08b49d7420712843a4ab5d6a0900cb3af5c70b32..92ac938e413ab187dbcfe75a72b28f4555ccec8c 100644
--- a/Filters/Core/vtkImplicitPolyDataDistance.h
+++ b/Filters/Core/vtkImplicitPolyDataDistance.h
@@ -43,6 +43,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkImplicitFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellLocator;
 class vtkPolyData;
 
@@ -142,4 +143,5 @@ private:
   void operator=(const vtkImplicitPolyDataDistance&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkImplicitProjectOnPlaneDistance.cxx b/Filters/Core/vtkImplicitProjectOnPlaneDistance.cxx
index 0f12a5dba9ff8b5cf73655d443c606749c56e0a5..6b6473586a88461d24a5358b5c4e7fb9ab222012 100644
--- a/Filters/Core/vtkImplicitProjectOnPlaneDistance.cxx
+++ b/Filters/Core/vtkImplicitProjectOnPlaneDistance.cxx
@@ -25,6 +25,7 @@
 #include "vtkStaticCellLocator.h"
 #include "vtkTriangle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitProjectOnPlaneDistance);
 
 //------------------------------------------------------------------------------
@@ -189,3 +190,4 @@ void vtkImplicitProjectOnPlaneDistance::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "ProjectionPlane : (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkImplicitProjectOnPlaneDistance.h b/Filters/Core/vtkImplicitProjectOnPlaneDistance.h
index d4b632ff5fb6df728d205cc8142f41f0c3090d86..14e5a627140ed50bb10845ff0844fe5c46475907 100644
--- a/Filters/Core/vtkImplicitProjectOnPlaneDistance.h
+++ b/Filters/Core/vtkImplicitProjectOnPlaneDistance.h
@@ -37,6 +37,7 @@
 #include "vtkFiltersCoreModule.h"   // For export macro
 #include "vtkSmartPointer.h"        // It has vtkSmartPointer fields
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericCell;
 class vtkPolyData;
 class vtkPlane;
@@ -146,4 +147,5 @@ private:
   void operator=(const vtkImplicitProjectOnPlaneDistance&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkMarchingCubes.cxx b/Filters/Core/vtkMarchingCubes.cxx
index 4ac2ae5cabf8972b0757022e477139078946979f..8a3d9ec6a406a480cea601aabcdecb4cddc867cd 100644
--- a/Filters/Core/vtkMarchingCubes.cxx
+++ b/Filters/Core/vtkMarchingCubes.cxx
@@ -40,6 +40,7 @@
 #include "vtkUnsignedLongArray.h"
 #include "vtkUnsignedShortArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMarchingCubes);
 
 // Description:
@@ -606,3 +607,4 @@ void vtkMarchingCubes::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Locator: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkMarchingCubes.h b/Filters/Core/vtkMarchingCubes.h
index 9c8e5c35c16c5d281e91c52f6f1638d1f5e8a3fb..0b69b57dba28ec5453e02a10b82dd8ae6dc2bbc9 100644
--- a/Filters/Core/vtkMarchingCubes.h
+++ b/Filters/Core/vtkMarchingCubes.h
@@ -52,6 +52,7 @@
 
 #include "vtkContourValues.h" // Needed for direct access to ContourValues
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 
 class VTKFILTERSCORE_EXPORT vtkMarchingCubes : public vtkPolyDataAlgorithm
@@ -214,4 +215,5 @@ inline void vtkMarchingCubes::GenerateValues(int numContours, double rangeStart,
   this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkMarchingSquares.cxx b/Filters/Core/vtkMarchingSquares.cxx
index 4f5663868407db65085633685e3675776936cb41..2d783b7a00aab839b7e6fe05a570cd28b39d774f 100644
--- a/Filters/Core/vtkMarchingSquares.cxx
+++ b/Filters/Core/vtkMarchingSquares.cxx
@@ -40,6 +40,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMarchingSquares);
 
 // Description:
@@ -507,3 +508,4 @@ void vtkMarchingSquares::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Locator: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkMarchingSquares.h b/Filters/Core/vtkMarchingSquares.h
index 05dc65a554e050b128fe0ecfbd2950a8e59b95cd..f3095d686f0bc204ae11c6eb0932e35180bc7ed8 100644
--- a/Filters/Core/vtkMarchingSquares.h
+++ b/Filters/Core/vtkMarchingSquares.h
@@ -44,6 +44,7 @@
 
 #include "vtkContourValues.h" // Passes calls to vtkContourValues
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkIncrementalPointLocator;
 
@@ -182,4 +183,5 @@ inline void vtkMarchingSquares::GenerateValues(int numContours, double rangeStar
   this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkMaskFields.cxx b/Filters/Core/vtkMaskFields.cxx
index 7f75bba082e76222c118593b0a9763e1c47c2797..a314b993e85dfbe793c900daa56d9a6ea4a4c933 100644
--- a/Filters/Core/vtkMaskFields.cxx
+++ b/Filters/Core/vtkMaskFields.cxx
@@ -23,6 +23,7 @@
 #include "vtkPointData.h"
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMaskFields);
 
 char vtkMaskFields::FieldLocationNames[3][12] = { "OBJECT_DATA", "POINT_DATA", "CELL_DATA" };
@@ -491,3 +492,4 @@ void vtkMaskFields::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "CopyAttributes: " << this->CopyAttributes << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkMaskFields.h b/Filters/Core/vtkMaskFields.h
index 2c98ef07109ff6d03d8025da21d0c51dee4f3dfe..47e116cfa2c27f5c67a8a03e4d6788407bbb5dfb 100644
--- a/Filters/Core/vtkMaskFields.h
+++ b/Filters/Core/vtkMaskFields.h
@@ -35,6 +35,7 @@
 
 #include "vtkDataSetAttributes.h" // Needed for NUM_ATTRIBUTES
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKFILTERSCORE_EXPORT vtkMaskFields : public vtkDataSetAlgorithm
@@ -183,4 +184,5 @@ private:
   void operator=(const vtkMaskFields&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkMaskPoints.cxx b/Filters/Core/vtkMaskPoints.cxx
index 73842cceb80c9d4863a2384bfa13e8dae63b552b..c04e026f1ceec4d7f497250d6fa1a670ec84749f 100644
--- a/Filters/Core/vtkMaskPoints.cxx
+++ b/Filters/Core/vtkMaskPoints.cxx
@@ -33,6 +33,7 @@
 #include <cstdlib>
 #include <random>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -831,3 +832,4 @@ void vtkMaskPoints::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->GetOutputPointsPrecision() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkMaskPoints.h b/Filters/Core/vtkMaskPoints.h
index 7fdb6fa2c07ba6f3516ce8cb8c3e680edb5f3f2f..f5fddbd64c1c73164ee60fc91aa51951e8c5a7d2 100644
--- a/Filters/Core/vtkMaskPoints.h
+++ b/Filters/Core/vtkMaskPoints.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkMaskPoints : public vtkPolyDataAlgorithm
 {
 public:
@@ -217,4 +218,5 @@ private:
   void operator=(const vtkMaskPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkMaskPolyData.cxx b/Filters/Core/vtkMaskPolyData.cxx
index aa5916068385591adfbe2b36a1f7c3c4698af419..297e61ad20397d330f919a37a8d1983a77714cd7 100644
--- a/Filters/Core/vtkMaskPolyData.cxx
+++ b/Filters/Core/vtkMaskPolyData.cxx
@@ -21,6 +21,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMaskPolyData);
 
 vtkMaskPolyData::vtkMaskPolyData()
@@ -95,3 +96,4 @@ void vtkMaskPolyData::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "On Ratio: " << this->OnRatio << "\n";
   os << indent << "Offset: " << this->Offset << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkMaskPolyData.h b/Filters/Core/vtkMaskPolyData.h
index 64de5cc46bc05cc42b18f9f31ac1088c7fdff3a4..c408a1f3910f892a68e6064f62cd45b2ebc04be5 100644
--- a/Filters/Core/vtkMaskPolyData.h
+++ b/Filters/Core/vtkMaskPolyData.h
@@ -30,6 +30,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkMaskPolyData : public vtkPolyDataAlgorithm
 {
 public:
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkMaskPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkMassProperties.cxx b/Filters/Core/vtkMassProperties.cxx
index 968b232ba55584dd046ed0047575a57616ff5224..111b99aa56d9620b0da06797520241ce6e07ce30 100644
--- a/Filters/Core/vtkMassProperties.cxx
+++ b/Filters/Core/vtkMassProperties.cxx
@@ -23,6 +23,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMassProperties);
 
 //------------------------------------------------------------------------------
@@ -314,3 +315,4 @@ void vtkMassProperties::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Max Cell Area: " << this->GetMaxCellArea() << "\n";
   os << indent << "Normalized Shape Index: " << this->GetNormalizedShapeIndex() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkMassProperties.h b/Filters/Core/vtkMassProperties.h
index d2b3f21c45ae87815eb5c8336791a2dcf2eebc99..5585747ff0611ce035250b7c51100b96f9cc0afb 100644
--- a/Filters/Core/vtkMassProperties.h
+++ b/Filters/Core/vtkMassProperties.h
@@ -43,6 +43,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkMassProperties : public vtkPolyDataAlgorithm
 {
 public:
@@ -179,4 +180,5 @@ private:
   void operator=(const vtkMassProperties&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkMergeDataObjectFilter.cxx b/Filters/Core/vtkMergeDataObjectFilter.cxx
index c695776ae4be9988d91ec15d5e5c65c61c72c09c..e64e4dd7e2b530cc5799c7acda0f2abdca2ce5d1 100644
--- a/Filters/Core/vtkMergeDataObjectFilter.cxx
+++ b/Filters/Core/vtkMergeDataObjectFilter.cxx
@@ -25,6 +25,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMergeDataObjectFilter);
 
 //------------------------------------------------------------------------------
@@ -173,3 +174,4 @@ void vtkMergeDataObjectFilter::PrintSelf(ostream& os, vtkIndent indent)
     os << "CellDataField\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkMergeDataObjectFilter.h b/Filters/Core/vtkMergeDataObjectFilter.h
index 4fde803bb60b692a4983a6b36763edbd700aab33..38f9efa425fcd72eb980f4d8efa39c0074449bab 100644
--- a/Filters/Core/vtkMergeDataObjectFilter.h
+++ b/Filters/Core/vtkMergeDataObjectFilter.h
@@ -44,6 +44,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkMergeDataObjectFilter : public vtkDataSetAlgorithm
 {
 public:
@@ -88,4 +89,5 @@ private:
   void operator=(const vtkMergeDataObjectFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkMergeFields.cxx b/Filters/Core/vtkMergeFields.cxx
index 27da06411d1c8c49fb8edb22d279a8fc7d763738..47c1d561e0d1ed3e23228432f1006ff3bffe885d 100644
--- a/Filters/Core/vtkMergeFields.cxx
+++ b/Filters/Core/vtkMergeFields.cxx
@@ -25,6 +25,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMergeFields);
 
 char vtkMergeFields::FieldLocationNames[3][12] = { "DATA_OBJECT", "POINT_DATA", "CELL_DATA" };
@@ -422,3 +423,4 @@ void vtkMergeFields::PrintAllComponents(ostream& os, vtkIndent indent)
     this->PrintComponent(before, os, indent);
   } while (cur);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkMergeFields.h b/Filters/Core/vtkMergeFields.h
index f4ad8c5db4f7d31e83edfcb8d7167c399de0de33..01046eb7c1b68d9265a1499ee90a3f13612c65d2 100644
--- a/Filters/Core/vtkMergeFields.h
+++ b/Filters/Core/vtkMergeFields.h
@@ -40,6 +40,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkFieldData;
 
@@ -153,4 +154,5 @@ private:
   void operator=(const vtkMergeFields&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkMergeFilter.cxx b/Filters/Core/vtkMergeFilter.cxx
index cc1a3a12a0cb726e175992a3543b78ca355a249b..0259608e977181adfe52f30c7284f297508a4d57 100644
--- a/Filters/Core/vtkMergeFilter.cxx
+++ b/Filters/Core/vtkMergeFilter.cxx
@@ -26,6 +26,7 @@
 #include "vtkStructuredPoints.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMergeFilter);
 
 class vtkFieldNode
@@ -544,3 +545,4 @@ void vtkMergeFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkMergeFilter.h b/Filters/Core/vtkMergeFilter.h
index 357dd2cc4945b86b276153e2bfe56224bc524b4b..dd2f015dcef1292b58a3d2fb0b73620797ee7f42 100644
--- a/Filters/Core/vtkMergeFilter.h
+++ b/Filters/Core/vtkMergeFilter.h
@@ -28,6 +28,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFieldList;
 
 class VTKFILTERSCORE_EXPORT vtkMergeFilter : public vtkDataSetAlgorithm
@@ -179,4 +180,5 @@ private:
   void operator=(const vtkMergeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkMoleculeAppend.cxx b/Filters/Core/vtkMoleculeAppend.cxx
index bb3c7e29ac5477253b481fd8cca09b7345811000..171649ba9a58d0ebfcc2bce36ac19b6dcbf985f6 100644
--- a/Filters/Core/vtkMoleculeAppend.cxx
+++ b/Filters/Core/vtkMoleculeAppend.cxx
@@ -30,6 +30,7 @@
 #include <set>
 #include <utility>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMoleculeAppend);
 
 //------------------------------------------------------------------------------
@@ -282,3 +283,4 @@ bool vtkMoleculeAppend::CheckArrays(vtkAbstractArray* array1, vtkAbstractArray*
 
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkMoleculeAppend.h b/Filters/Core/vtkMoleculeAppend.h
index 5b53f26aa4f8ee821888236e7158fc5c2419ed99..a937ac14d7556c24416733cc0b759de3126fe3d8 100644
--- a/Filters/Core/vtkMoleculeAppend.h
+++ b/Filters/Core/vtkMoleculeAppend.h
@@ -33,6 +33,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkMoleculeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkMoleculeAppend : public vtkMoleculeAlgorithm
 {
 public:
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkMoleculeAppend&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkMultiObjectMassProperties.cxx b/Filters/Core/vtkMultiObjectMassProperties.cxx
index f0da7ec5e8c5a9125e8b43af4c9a3f1e63445884..b74f56c0e45562f6b972e10335cc0900e7c257fc 100644
--- a/Filters/Core/vtkMultiObjectMassProperties.cxx
+++ b/Filters/Core/vtkMultiObjectMassProperties.cxx
@@ -32,6 +32,7 @@
 #include "vtkInformation.h"
 #include "vtkInformationVector.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMultiObjectMassProperties);
 
 //------------------------------------------------------------------------------
@@ -590,3 +591,4 @@ void vtkMultiObjectMassProperties::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Total Volume: " << this->TotalVolume << "\n";
   os << indent << "Total Area: " << this->TotalArea << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkMultiObjectMassProperties.h b/Filters/Core/vtkMultiObjectMassProperties.h
index 430a2ed3b2b32fae665e7108973fb18fb66b0f9c..ca6ae8127d031c95fdb27fe1c6b98d9b17474da7 100644
--- a/Filters/Core/vtkMultiObjectMassProperties.h
+++ b/Filters/Core/vtkMultiObjectMassProperties.h
@@ -94,6 +94,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkUnsignedCharArray;
 class vtkIdTypeArray;
@@ -194,4 +195,5 @@ private:
   void operator=(const vtkMultiObjectMassProperties&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkPassThrough.cxx b/Filters/Core/vtkPassThrough.cxx
index c0cba8a6ef9d8fbc1130a5e1e1af6468676fafd5..f76a96b5264b22d92f7d1e58810b819d9bad45ef 100644
--- a/Filters/Core/vtkPassThrough.cxx
+++ b/Filters/Core/vtkPassThrough.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPassThrough);
 
 //------------------------------------------------------------------------------
@@ -98,3 +99,4 @@ int vtkPassThrough::FillInputPortInformation(int port, vtkInformation* info)
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkPassThrough.h b/Filters/Core/vtkPassThrough.h
index 492c098ad71186b4014f197b22332d50723afc35..24494b09b6b1dc6990f3d41d056569e064d1e962 100644
--- a/Filters/Core/vtkPassThrough.h
+++ b/Filters/Core/vtkPassThrough.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkPassThrough : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkPassThrough&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkPlaneCutter.cxx b/Filters/Core/vtkPlaneCutter.cxx
index e59c8b91dd50338759072cdd89065d51a67d1385..0b92d644df7c2d94ba056ef6c7e5ae47e2e59ed0 100644
--- a/Filters/Core/vtkPlaneCutter.cxx
+++ b/Filters/Core/vtkPlaneCutter.cxx
@@ -54,6 +54,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkPlaneCutter);
 vtkCxxSetObjectMacro(vtkPlaneCutter, Plane, vtkPlane);
 
@@ -875,3 +876,4 @@ void vtkPlaneCutter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Merge Points: " << (this->MergePoints ? "On\n" : "Off\n");
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkPlaneCutter.h b/Filters/Core/vtkPlaneCutter.h
index 71251fb64cb52d85543b4412dae01e0bc4688a62..397a8e14540eea9580f8586fad0796a1688903de 100644
--- a/Filters/Core/vtkPlaneCutter.h
+++ b/Filters/Core/vtkPlaneCutter.h
@@ -76,6 +76,7 @@
 #include "vtkSmartPointer.h"      // For SmartPointer
 #include <map>                    // For std::map
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObjectTree;
 class vtkPlane;
 class vtkPolyData;
@@ -243,4 +244,5 @@ private:
   void operator=(const vtkPlaneCutter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkPointDataToCellData.cxx b/Filters/Core/vtkPointDataToCellData.cxx
index e9c0665ee1aadeda173ffc9f590151142c64a20c..5a0697bd542f2d7833e1cb9389ec748691ed5d34 100644
--- a/Filters/Core/vtkPointDataToCellData.cxx
+++ b/Filters/Core/vtkPointDataToCellData.cxx
@@ -37,6 +37,7 @@
 #define VTK_EPSILON 1.e-6
 
 // Anonymous namespace
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 //------------------------------------------------------------------------------
@@ -478,3 +479,4 @@ void vtkPointDataToCellData::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Categorical Data: " << (this->CategoricalData ? "On\n" : "Off\n");
   os << indent << "Pass Point Data: " << (this->PassPointData ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkPointDataToCellData.h b/Filters/Core/vtkPointDataToCellData.h
index d9353fa9f124be601027f18934da94a7f3930241..65816d5bc5a8fa9671b4bd5c98177f1055bf7477 100644
--- a/Filters/Core/vtkPointDataToCellData.h
+++ b/Filters/Core/vtkPointDataToCellData.h
@@ -46,6 +46,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkPointDataToCellData : public vtkDataSetAlgorithm
 {
 public:
@@ -133,4 +134,5 @@ private:
   void operator=(const vtkPointDataToCellData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkPolyDataConnectivityFilter.cxx b/Filters/Core/vtkPolyDataConnectivityFilter.cxx
index e4acc5a3e553558716b79f8814cebc9a17fb712a..28e0ef2cb3af6c7a389f4fa5044c881348af2e6c 100644
--- a/Filters/Core/vtkPolyDataConnectivityFilter.cxx
+++ b/Filters/Core/vtkPolyDataConnectivityFilter.cxx
@@ -29,6 +29,7 @@
 
 #include <algorithm> // for fill_n
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataConnectivityFilter);
 
 // Construct with default extraction mode to extract largest regions.
@@ -646,3 +647,4 @@ void vtkPolyDataConnectivityFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkPolyDataConnectivityFilter.h b/Filters/Core/vtkPolyDataConnectivityFilter.h
index 92dc467fd53c383fae5d5c4f43b7a9d9bbfcfd45..3aa1e590e3ffa84d75177133d0a9f4401afe6a73 100644
--- a/Filters/Core/vtkPolyDataConnectivityFilter.h
+++ b/Filters/Core/vtkPolyDataConnectivityFilter.h
@@ -60,6 +60,7 @@
 #define VTK_EXTRACT_ALL_REGIONS 5
 #define VTK_EXTRACT_CLOSEST_POINT_REGION 6
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkIdList;
 class vtkIdTypeArray;
@@ -308,4 +309,5 @@ inline const char* vtkPolyDataConnectivityFilter::GetExtractionModeAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkPolyDataEdgeConnectivityFilter.cxx b/Filters/Core/vtkPolyDataEdgeConnectivityFilter.cxx
index d9e8d306dc410edc260be4f1e07c6e065bf1e01b..b45b3f0d3a0fab39e93b116c60d2e31f11c560fb 100644
--- a/Filters/Core/vtkPolyDataEdgeConnectivityFilter.cxx
+++ b/Filters/Core/vtkPolyDataEdgeConnectivityFilter.cxx
@@ -36,6 +36,7 @@
 #include <algorithm> // for fill_n
 #include <numeric>   //for iota
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataEdgeConnectivityFilter);
 
 namespace
@@ -1097,3 +1098,4 @@ void vtkPolyDataEdgeConnectivityFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkPolyDataEdgeConnectivityFilter.h b/Filters/Core/vtkPolyDataEdgeConnectivityFilter.h
index a01082304fa85a162fbaa5510f013276626ac0ef..b18a19b771403fa719a81eb4c74676e8fd39ed53 100644
--- a/Filters/Core/vtkPolyDataEdgeConnectivityFilter.h
+++ b/Filters/Core/vtkPolyDataEdgeConnectivityFilter.h
@@ -94,6 +94,7 @@
 #define VTK_EXTRACT_CLOSEST_POINT_REGION 6
 #define VTK_EXTRACT_LARGE_REGIONS 7
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkCharArray;
 class vtkIdList;
@@ -442,4 +443,5 @@ inline const char* vtkPolyDataEdgeConnectivityFilter::GetExtractionModeAsString(
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkPolyDataNormals.cxx b/Filters/Core/vtkPolyDataNormals.cxx
index 4e1f451cbd37c29235d6a9d8fd00dbeba21e8620..b4277d9117df54b0c6413b0e8bccc552e43d7c54 100644
--- a/Filters/Core/vtkPolyDataNormals.cxx
+++ b/Filters/Core/vtkPolyDataNormals.cxx
@@ -34,6 +34,7 @@
 #include <mutex>
 
 //-----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataNormals);
 
 //-----------------------------------------------------------------------------
@@ -805,3 +806,4 @@ void vtkPolyDataNormals::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Non-manifold Traversal: " << (this->NonManifoldTraversal ? "On\n" : "Off\n");
   os << indent << "Precision of the output points: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkPolyDataNormals.h b/Filters/Core/vtkPolyDataNormals.h
index 73570c5040dc350638735912b52c433dd04dd9eb..b6c42cf4b580c837c4c83a4691b37de0c508bfea 100644
--- a/Filters/Core/vtkPolyDataNormals.h
+++ b/Filters/Core/vtkPolyDataNormals.h
@@ -65,6 +65,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 class vtkIdList;
 class vtkPolyData;
@@ -218,4 +219,5 @@ private:
   void operator=(const vtkPolyDataNormals&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkPolyDataPlaneClipper.cxx b/Filters/Core/vtkPolyDataPlaneClipper.cxx
index 7e96aae3c594afdbc63c35f4d09e3266045af257..0277b5b3d27967217a2013b3ed41c8cbf96c9ffc 100644
--- a/Filters/Core/vtkPolyDataPlaneClipper.cxx
+++ b/Filters/Core/vtkPolyDataPlaneClipper.cxx
@@ -38,6 +38,7 @@
 #include "vtkStaticEdgeLocatorTemplate.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkPolyDataPlaneClipper);
 
 //------------------------------------------------------------------------------
@@ -939,3 +940,4 @@ void vtkPolyDataPlaneClipper::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
   os << indent << "Batch Size: " << this->BatchSize << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkPolyDataPlaneClipper.h b/Filters/Core/vtkPolyDataPlaneClipper.h
index 7788fe7c2bb0554edb11f56f4640800bac57be8e..1e4ce68cb6ac3733ddf54bd1ea1115005f522c3e 100644
--- a/Filters/Core/vtkPolyDataPlaneClipper.h
+++ b/Filters/Core/vtkPolyDataPlaneClipper.h
@@ -57,6 +57,7 @@
 #include "vtkPolyDataPlaneCutter.h" // For CanFullyProcessDataObject() method
 #include "vtkSmartPointer.h"        // For SmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkPolyDataPlaneClipper : public vtkPolyDataAlgorithm
 {
 public:
@@ -188,4 +189,5 @@ private:
   void operator=(const vtkPolyDataPlaneClipper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkPolyDataPlaneCutter.cxx b/Filters/Core/vtkPolyDataPlaneCutter.cxx
index 4591272d641ae4d4179af1ea23e5451bdd710e35..28246f43398c0aa1729bfd7aa6adfe090c2536bb 100644
--- a/Filters/Core/vtkPolyDataPlaneCutter.cxx
+++ b/Filters/Core/vtkPolyDataPlaneCutter.cxx
@@ -38,7 +38,9 @@
 #include "vtkStaticEdgeLocatorTemplate.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkPolyDataPlaneCutter);
+VTK_ABI_NAMESPACE_END
 
 //------------------------------------------------------------------------------
 // A high level overview of the algorithms is as follows. All steps are
@@ -468,6 +470,7 @@ struct OutputPointsWorker
 
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //==============================================================================
 //------------------------------------------------------------------------------
 // Here is the VTK class proper.
@@ -662,6 +665,7 @@ int vtkPolyDataPlaneCutter::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
 
 // Support convexity check on input
 namespace // begin anonymous namespace
@@ -726,6 +730,7 @@ struct CheckConvex
 
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 // Assess whether the specified data object can be processed by this filter. The
 // input data must be of type vtkPolyData, and contain only convex polygons.
@@ -774,3 +779,4 @@ void vtkPolyDataPlaneCutter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
   os << indent << "Batch Size: " << this->BatchSize << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkPolyDataPlaneCutter.h b/Filters/Core/vtkPolyDataPlaneCutter.h
index 6dc0ce257037bab670a836527481ac76902ab54d..e504feb7aeb1e771c14ec12abd649418fc018970 100644
--- a/Filters/Core/vtkPolyDataPlaneCutter.h
+++ b/Filters/Core/vtkPolyDataPlaneCutter.h
@@ -50,6 +50,7 @@
 #include "vtkPolyDataAlgorithm.h"
 #include "vtkSmartPointer.h" // For SmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkPolyDataPlaneCutter : public vtkPolyDataAlgorithm
 {
 public:
@@ -150,5 +151,6 @@ private:
   vtkPolyDataPlaneCutter(const vtkPolyDataPlaneCutter&) = delete;
   void operator=(const vtkPolyDataPlaneCutter&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
diff --git a/Filters/Core/vtkPolyDataTangents.cxx b/Filters/Core/vtkPolyDataTangents.cxx
index 57262164798e2c81e1fb10aa96c16dcdf3ded630..7db54ea56f30f1daa98eaa3d37212ce0486392e3 100644
--- a/Filters/Core/vtkPolyDataTangents.cxx
+++ b/Filters/Core/vtkPolyDataTangents.cxx
@@ -30,6 +30,7 @@
 
 #include "vtkSMPTools.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 struct TangentComputation
 {
   TangentComputation(vtkIdType offset, vtkPoints* points, vtkCellArray* triangles,
@@ -210,3 +211,4 @@ void vtkPolyDataTangents::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Compute Point Tangents: " << (this->ComputePointTangents ? "On\n" : "Off\n");
   os << indent << "Compute Cell Tangents: " << (this->ComputeCellTangents ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkPolyDataTangents.h b/Filters/Core/vtkPolyDataTangents.h
index bd1040efedd13c9a0e6bdc5063fa319012a0a190..d089ece6cf0fa2005ebfc3732a27572fd046e3cf 100644
--- a/Filters/Core/vtkPolyDataTangents.h
+++ b/Filters/Core/vtkPolyDataTangents.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 class vtkIdList;
 class vtkPolyData;
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkPolyDataTangents&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkProbeFilter.cxx b/Filters/Core/vtkProbeFilter.cxx
index 144180691eea70c2c6169f2bc59f5ebd748d607c..7bf9b31a0ade257054c4e9ee44088ad39b9c301d 100644
--- a/Filters/Core/vtkProbeFilter.cxx
+++ b/Filters/Core/vtkProbeFilter.cxx
@@ -42,6 +42,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProbeFilter);
 vtkCxxSetObjectMacro(vtkProbeFilter, CellLocatorPrototype, vtkAbstractCellLocator);
 vtkCxxSetObjectMacro(vtkProbeFilter, FindCellStrategy, vtkFindCellStrategy);
@@ -1248,3 +1249,4 @@ void vtkProbeFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CellLocatorPrototype: "
      << (this->CellLocatorPrototype ? this->CellLocatorPrototype->GetClassName() : "NULL") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkProbeFilter.h b/Filters/Core/vtkProbeFilter.h
index 8c17bf3054cb13c7a90816f558016fe4a0f77b22..df784a31f4b838fdfae2e0407d3079961c68be50 100644
--- a/Filters/Core/vtkProbeFilter.h
+++ b/Filters/Core/vtkProbeFilter.h
@@ -71,6 +71,7 @@
 
 #include <vector> // For std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractCellLocator;
 class vtkCell;
 class vtkCharArray;
@@ -329,4 +330,5 @@ private:
   std::vector<vtkDataArray*> CellArrays;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkQuadricClustering.cxx b/Filters/Core/vtkQuadricClustering.cxx
index 76050f6f293092f8e11ba8ef8f833aa6e2f8284d..42d1a1788ee96f121bb89295e8585cb7f49aecf3 100644
--- a/Filters/Core/vtkQuadricClustering.cxx
+++ b/Filters/Core/vtkQuadricClustering.cxx
@@ -29,6 +29,7 @@
 
 #include <unordered_set> // keep track of inserted triangles
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadricClustering);
 
 //------------------------------------------------------------------------------
@@ -1529,3 +1530,4 @@ void vtkQuadricClustering::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Prevent Duplicate Cells : " << (this->PreventDuplicateCells ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkQuadricClustering.h b/Filters/Core/vtkQuadricClustering.h
index 12e1b728a4fa0226c4c0c8fe1bad3a7c0a929f81..9dbf0a7fdf373076dd2f6d0a5c16167178697305 100644
--- a/Filters/Core/vtkQuadricClustering.h
+++ b/Filters/Core/vtkQuadricClustering.h
@@ -93,6 +93,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkFeatureEdges;
 class vtkPoints;
@@ -423,4 +424,5 @@ private:
   void operator=(const vtkQuadricClustering&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkQuadricDecimation.cxx b/Filters/Core/vtkQuadricDecimation.cxx
index 91fa982fd039e77b24ee95cbcedffcbc805c583e..51aaa41cbf4107e64d350088efd8b7992933745e 100644
--- a/Filters/Core/vtkQuadricDecimation.cxx
+++ b/Filters/Core/vtkQuadricDecimation.cxx
@@ -55,6 +55,7 @@
 #include "vtkPriorityQueue.h"
 #include "vtkTriangle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadricDecimation);
 
 //------------------------------------------------------------------------------
@@ -1477,3 +1478,4 @@ void vtkQuadricDecimation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "TCoords Weight: " << this->TCoordsWeight << "\n";
   os << indent << "Tensors Weight: " << this->TensorsWeight << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkQuadricDecimation.h b/Filters/Core/vtkQuadricDecimation.h
index 6720e527125be77156d252aa2a45a54396f93451..28eccebdcc54870105f136044482b7a4e135bc67 100644
--- a/Filters/Core/vtkQuadricDecimation.h
+++ b/Filters/Core/vtkQuadricDecimation.h
@@ -59,6 +59,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEdgeTable;
 class vtkIdList;
 class vtkPointData;
@@ -282,4 +283,5 @@ private:
   void operator=(const vtkQuadricDecimation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkRearrangeFields.cxx b/Filters/Core/vtkRearrangeFields.cxx
index dc17d679de91dc8d00e9efe3aa032d9c8c355d9a..f3ba86ba927038f781da8bd97f0e4187ac94f837 100644
--- a/Filters/Core/vtkRearrangeFields.cxx
+++ b/Filters/Core/vtkRearrangeFields.cxx
@@ -25,6 +25,7 @@
 #include "vtkPointData.h"
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRearrangeFields);
 
 typedef vtkRearrangeFields::Operation Operation;
@@ -719,3 +720,4 @@ void vtkRearrangeFields::PrintOperation(Operation* op, ostream& os, vtkIndent in
   os << indent << "Next operation: " << op->Next << endl;
   os << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkRearrangeFields.h b/Filters/Core/vtkRearrangeFields.h
index 46d31f3131754dab87c78a90e8b574974511a857..b53dc0514c2d8937dac93297ddd1a5680674a8b8 100644
--- a/Filters/Core/vtkRearrangeFields.h
+++ b/Filters/Core/vtkRearrangeFields.h
@@ -59,6 +59,7 @@
 
 #include "vtkDataSetAttributes.h" // Needed for NUM_ATTRIBUTES
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFieldData;
 
 class VTKFILTERSCORE_EXPORT vtkRearrangeFields : public vtkDataSetAlgorithm
@@ -205,4 +206,5 @@ private:
   void operator=(const vtkRearrangeFields&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkRectilinearSynchronizedTemplates.cxx b/Filters/Core/vtkRectilinearSynchronizedTemplates.cxx
index 4df69533d1445a2c32f48abd2ec1afe9c62700c1..91ecebb54f283f7d4a79bd067acaddff43cb09ba 100644
--- a/Filters/Core/vtkRectilinearSynchronizedTemplates.cxx
+++ b/Filters/Core/vtkRectilinearSynchronizedTemplates.cxx
@@ -42,6 +42,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearSynchronizedTemplates);
 
 //------------------------------------------------------------------------------
@@ -861,3 +862,4 @@ void vtkRectilinearSynchronizedTemplates::PrintSelf(ostream& os, vtkIndent inden
   os << indent << "Compute Scalars: " << (this->ComputeScalars ? "On\n" : "Off\n");
   os << indent << "ArrayComponent: " << this->ArrayComponent << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkRectilinearSynchronizedTemplates.h b/Filters/Core/vtkRectilinearSynchronizedTemplates.h
index 1cdc4725f813208f6b2e4ca7ac608c3640d50e66..9f3e574cab089fe5df33ecb89c207a1d6545e10e 100644
--- a/Filters/Core/vtkRectilinearSynchronizedTemplates.h
+++ b/Filters/Core/vtkRectilinearSynchronizedTemplates.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRectilinearGrid;
 class vtkDataArray;
 
@@ -194,4 +195,5 @@ private:
 extern int VTK_RECTILINEAR_SYNCHONIZED_TEMPLATES_TABLE_1[];
 extern int VTK_RECTILINEAR_SYNCHONIZED_TEMPLATES_TABLE_2[];
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkRemoveDuplicatePolys.cxx b/Filters/Core/vtkRemoveDuplicatePolys.cxx
index e81261ccfdf58b565968f2946dcba59be271cf51..3c95e4325bfe218563c911c80a0377631996dcdb 100644
--- a/Filters/Core/vtkRemoveDuplicatePolys.cxx
+++ b/Filters/Core/vtkRemoveDuplicatePolys.cxx
@@ -30,6 +30,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRemoveDuplicatePolys);
 
 //------------------------------------------------------------------------------
@@ -143,3 +144,4 @@ int vtkRemoveDuplicatePolys::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkRemoveDuplicatePolys.h b/Filters/Core/vtkRemoveDuplicatePolys.h
index 1bc83c1c3e378607c50f02c370c58c935f724072..5bb7dacda4725b32f4ddef9abaecf08ac7a08e72 100644
--- a/Filters/Core/vtkRemoveDuplicatePolys.h
+++ b/Filters/Core/vtkRemoveDuplicatePolys.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkRemoveDuplicatePolys : public vtkPolyDataAlgorithm
 {
 public:
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkRemoveDuplicatePolys&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkRemoveUnusedPoints.cxx b/Filters/Core/vtkRemoveUnusedPoints.cxx
index 1e583901f4a7deb00d1471f69adc3a8f3ba89660..e9319b8ce7dda900f7190552ad42375c05712485 100644
--- a/Filters/Core/vtkRemoveUnusedPoints.cxx
+++ b/Filters/Core/vtkRemoveUnusedPoints.cxx
@@ -32,6 +32,7 @@
 #include <numeric>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 template <typename ArrayT>
@@ -269,3 +270,4 @@ void vtkRemoveUnusedPoints::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "OriginalPointIdsArrayName: "
      << (this->OriginalPointIdsArrayName ? this->OriginalPointIdsArrayName : "(null)") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkRemoveUnusedPoints.h b/Filters/Core/vtkRemoveUnusedPoints.h
index 9192a4877a800b58d58033b72316c6acc8abdd35..2dbb15bc086370db9b3f6629bd9b4c0baa8c088a 100644
--- a/Filters/Core/vtkRemoveUnusedPoints.h
+++ b/Filters/Core/vtkRemoveUnusedPoints.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkRemoveUnusedPoints : public vtkUnstructuredGridAlgorithm
 {
 public:
@@ -67,4 +68,5 @@ private:
   char* OriginalPointIdsArrayName;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkResampleToImage.cxx b/Filters/Core/vtkResampleToImage.cxx
index 295cf5ba93a1229196419759ff3d846a3271cbc8..f767d6f7ae161704c0c637da254bda74f813a7d8 100644
--- a/Filters/Core/vtkResampleToImage.cxx
+++ b/Filters/Core/vtkResampleToImage.cxx
@@ -32,6 +32,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkResampleToImage);
 
 //------------------------------------------------------------------------------
@@ -413,3 +414,4 @@ void vtkResampleToImage::ComputeDataBounds(vtkDataObject* data, double bounds[6]
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkResampleToImage.h b/Filters/Core/vtkResampleToImage.h
index 089b1a742fd026664a802fc6d50aa27dd9f760dc..0a08ce25466d943a76b23ac6dd24c7afed35e598 100644
--- a/Filters/Core/vtkResampleToImage.h
+++ b/Filters/Core/vtkResampleToImage.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkNew.h"               // For vtkCompositeDataProbeFilter member variable
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 class vtkImageData;
 
@@ -117,4 +118,5 @@ private:
   void operator=(const vtkResampleToImage&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkResampleWithDataSet.cxx b/Filters/Core/vtkResampleWithDataSet.cxx
index c81d77b488b9329cced5e761a64bd4b71df17690..94ab1818dc1a6976c9a20c869b61a63382d8775f 100644
--- a/Filters/Core/vtkResampleWithDataSet.cxx
+++ b/Filters/Core/vtkResampleWithDataSet.cxx
@@ -33,6 +33,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkResampleWithDataSet);
 
 //------------------------------------------------------------------------------
@@ -384,3 +385,4 @@ int vtkResampleWithDataSet::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkResampleWithDataSet.h b/Filters/Core/vtkResampleWithDataSet.h
index 8780b1cb744f869424d7036825a0e7881a085a4c..171fa24c51f2bacca89a72c901686c5cd5a90ae0 100644
--- a/Filters/Core/vtkResampleWithDataSet.h
+++ b/Filters/Core/vtkResampleWithDataSet.h
@@ -34,6 +34,7 @@
 #include "vtkNew.h"               // For vtkCompositeDataProbeFilter member variable
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractCellLocator;
 class vtkCompositeDataProbeFilter;
 class vtkDataSet;
@@ -205,4 +206,5 @@ private:
   void operator=(const vtkResampleWithDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkResampleWithDataSet_h
diff --git a/Filters/Core/vtkReverseSense.cxx b/Filters/Core/vtkReverseSense.cxx
index c82dbbe672c7e13b67d600e32d6c558fa1e07705..49aa4cfc11ed6b4f50c3f0eda90f6e164be5d901 100644
--- a/Filters/Core/vtkReverseSense.cxx
+++ b/Filters/Core/vtkReverseSense.cxx
@@ -23,6 +23,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkReverseSense);
 
 // Construct object so that behavior is to reverse cell ordering and
@@ -164,3 +165,4 @@ void vtkReverseSense::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Reverse Cells: " << (this->ReverseCells ? "On\n" : "Off\n");
   os << indent << "Reverse Normals: " << (this->ReverseNormals ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkReverseSense.h b/Filters/Core/vtkReverseSense.h
index 5eec994b6d74736fa1bbd8e228b6cb399cb5c8e4..f1752915d6f0921d59c812513bb7c27e872976c0 100644
--- a/Filters/Core/vtkReverseSense.h
+++ b/Filters/Core/vtkReverseSense.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkReverseSense : public vtkPolyDataAlgorithm
 {
 public:
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkReverseSense&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkSimpleElevationFilter.cxx b/Filters/Core/vtkSimpleElevationFilter.cxx
index 498aa5a7e88eb6906ef0d0f2548cf101eda8440f..6c4878f3da1cca3862b9d479b8b004d9f9679034 100644
--- a/Filters/Core/vtkSimpleElevationFilter.cxx
+++ b/Filters/Core/vtkSimpleElevationFilter.cxx
@@ -26,6 +26,7 @@
 #include "vtkPointSet.h"
 #include "vtkSMPTools.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSimpleElevationFilter);
 
 namespace
@@ -200,3 +201,4 @@ void vtkSimpleElevationFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Vector: (" << this->Vector[0] << ", " << this->Vector[1] << ", "
      << this->Vector[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkSimpleElevationFilter.h b/Filters/Core/vtkSimpleElevationFilter.h
index 2aa1604d683ab95edcaa0e941fff9ffc7dd841a8..bc006bf8654b9dc847d7f2bc6694104c30b54e5b 100644
--- a/Filters/Core/vtkSimpleElevationFilter.h
+++ b/Filters/Core/vtkSimpleElevationFilter.h
@@ -43,6 +43,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkSimpleElevationFilter : public vtkDataSetAlgorithm
 {
 public:
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkSimpleElevationFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkSmoothPolyDataFilter.cxx b/Filters/Core/vtkSmoothPolyDataFilter.cxx
index a159db12e93285cf76cb835cdf9a303782b0c6bf..5c3206de051067827eb5c845e9e18dc56601d28b 100644
--- a/Filters/Core/vtkSmoothPolyDataFilter.cxx
+++ b/Filters/Core/vtkSmoothPolyDataFilter.cxx
@@ -31,6 +31,7 @@
 #include <limits>
 #include <memory>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSmoothPolyDataFilter);
 
 // The following code defines a helper class for performing mesh smoothing
@@ -782,3 +783,4 @@ void vtkSmoothPolyDataFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkSmoothPolyDataFilter.h b/Filters/Core/vtkSmoothPolyDataFilter.h
index 50c94a33b2b8a1f77b7d0ad63c85c7d0f5b4addb..a603543b8837a9537a6f671a8608388ae0e6c5e3 100644
--- a/Filters/Core/vtkSmoothPolyDataFilter.h
+++ b/Filters/Core/vtkSmoothPolyDataFilter.h
@@ -99,6 +99,7 @@
 #include "vtkPolyDataAlgorithm.h"
 #include <memory> // For std::unique_ptr<>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSmoothPoints;
 
 class VTKFILTERSCORE_EXPORT vtkSmoothPolyDataFilter : public vtkPolyDataAlgorithm
@@ -249,4 +250,5 @@ private:
   void operator=(const vtkSmoothPolyDataFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkSphereTreeFilter.cxx b/Filters/Core/vtkSphereTreeFilter.cxx
index 365c52e4b56bd6ef2f488e9359214a3320c61e27..ee0dc6ba1457a0dd8a83437a914fc48b76544c0b 100644
--- a/Filters/Core/vtkSphereTreeFilter.cxx
+++ b/Filters/Core/vtkSphereTreeFilter.cxx
@@ -26,6 +26,7 @@
 #include "vtkSphereTree.h"
 #include "vtkStructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSphereTreeFilter);
 vtkCxxSetObjectMacro(vtkSphereTreeFilter, SphereTree, vtkSphereTree);
 
@@ -268,3 +269,4 @@ void vtkSphereTreeFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Normal: (" << this->Normal[0] << ", " << this->Normal[1] << ", "
      << this->Normal[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkSphereTreeFilter.h b/Filters/Core/vtkSphereTreeFilter.h
index ac1fcc6efe9030f3516a95a0ce4b3b6028ac6a87..ab7c80a66129c11286fb80715a4fe9ac43ee573b 100644
--- a/Filters/Core/vtkSphereTreeFilter.h
+++ b/Filters/Core/vtkSphereTreeFilter.h
@@ -49,6 +49,7 @@
 #define VTK_SPHERE_TREE_LINE 2
 #define VTK_SPHERE_TREE_PLANE 3
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSphereTree;
 
 class VTKFILTERSCORE_EXPORT vtkSphereTreeFilter : public vtkPolyDataAlgorithm
@@ -169,4 +170,5 @@ private:
   void operator=(const vtkSphereTreeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkStaticCleanPolyData.cxx b/Filters/Core/vtkStaticCleanPolyData.cxx
index 053cb67e8b6d4c36b50d0b55c81859cc5c14a827..1690b8110c0ea118cb69cbf5dbd676b80da1d34e 100644
--- a/Filters/Core/vtkStaticCleanPolyData.cxx
+++ b/Filters/Core/vtkStaticCleanPolyData.cxx
@@ -32,6 +32,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStaticCleanPolyData);
 
 // This filter uses methods found in vtkStaticCleanUnstructuredGrid.
@@ -535,3 +536,4 @@ void vtkStaticCleanPolyData::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
   os << indent << "PieceInvariant: " << (this->PieceInvariant ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkStaticCleanPolyData.h b/Filters/Core/vtkStaticCleanPolyData.h
index 51140bc3c0f68621cd6fbceccb43d50abdb36ee2..d98cee73b3a54d163e4ab07a7cc19abbe8714010 100644
--- a/Filters/Core/vtkStaticCleanPolyData.h
+++ b/Filters/Core/vtkStaticCleanPolyData.h
@@ -77,6 +77,7 @@
 #include "vtkPolyDataAlgorithm.h"
 #include "vtkStaticPointLocator.h" // For enums
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkStaticCleanPolyData : public vtkPolyDataAlgorithm
 {
 public:
@@ -260,4 +261,5 @@ private:
   void operator=(const vtkStaticCleanPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkStaticCleanUnstructuredGrid.cxx b/Filters/Core/vtkStaticCleanUnstructuredGrid.cxx
index 50dc39de1ae7b575ddccf758f3015e7ec7d64063..ae95cac1b64933d5b64cd78ac2f48a860e6269ca 100644
--- a/Filters/Core/vtkStaticCleanUnstructuredGrid.cxx
+++ b/Filters/Core/vtkStaticCleanUnstructuredGrid.cxx
@@ -32,6 +32,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStaticCleanUnstructuredGrid);
 
 namespace
@@ -707,3 +708,4 @@ void vtkStaticCleanUnstructuredGrid::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Average Point Data: " << (this->AveragePointData ? "On\n" : "Off\n");
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkStaticCleanUnstructuredGrid.h b/Filters/Core/vtkStaticCleanUnstructuredGrid.h
index ae63ea1ded288017a77c9a8fc07ffa349ed7199b..92b24b69640c6facae4ad48fcc2cc438e0f9d5f4 100644
--- a/Filters/Core/vtkStaticCleanUnstructuredGrid.h
+++ b/Filters/Core/vtkStaticCleanUnstructuredGrid.h
@@ -76,6 +76,7 @@
 #include "vtkUnstructuredGridAlgorithm.h"
 #include <vector> // API to vtkStaticCleanUnstructuredGrid
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkCellData;
 class vtkPointData;
@@ -249,4 +250,5 @@ private:
   void operator=(const vtkStaticCleanUnstructuredGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkStreamerBase.cxx b/Filters/Core/vtkStreamerBase.cxx
index 273922a2a7a0cb0d7104b7a1a46b8e573f07e2b0..a32c18be8646b3dc99466174c738fe218017d010 100644
--- a/Filters/Core/vtkStreamerBase.cxx
+++ b/Filters/Core/vtkStreamerBase.cxx
@@ -20,6 +20,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 
 //=============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStreamerBase::vtkStreamerBase()
 {
   this->NumberOfPasses = 1;
@@ -89,3 +90,4 @@ int vtkStreamerBase::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkStreamerBase.h b/Filters/Core/vtkStreamerBase.h
index 760a067a51ec0b6813ea67291889621bb9a148f9..590d76ec1dd7b24b2551b123ab7f0f57e9335031 100644
--- a/Filters/Core/vtkStreamerBase.h
+++ b/Filters/Core/vtkStreamerBase.h
@@ -36,6 +36,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkStreamerBase : public vtkAlgorithm
 {
 public:
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkStreamerBase&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif //_vtkStreamerBase_h
diff --git a/Filters/Core/vtkStreamingTessellator.cxx b/Filters/Core/vtkStreamingTessellator.cxx
index cd40be335476c6e27a878f6f71cc7a349526c78e..4f1b70d758da4fc44fd5039ba1c58cdadb2757b2 100644
--- a/Filters/Core/vtkStreamingTessellator.cxx
+++ b/Filters/Core/vtkStreamingTessellator.cxx
@@ -31,6 +31,7 @@
 #  define VTK_TESSELLATOR_INCR_SUBCASE_COUNT(cs,sc)
 #endif // PARAVIEW_DEBUG_TESSELLATOR
 
+VTK_ABI_NAMESPACE_BEGIN
 static void DefaultFacet3Callback(
   const double* a, const double* b, const double* c, const double* d,
   vtkEdgeSubdivisionCriterion*, void* pd, const void* )
@@ -2214,3 +2215,4 @@ vtkIdType vtkStreamingTessellator::TetrahedralDecompositions[] =
 
 };
 
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkStreamingTessellator.h b/Filters/Core/vtkStreamingTessellator.h
index f36518ec00a7f494a29f78a3da7ec8a8d0731b56..61b14c8db66eea275499183879ecde1bb7eb3a2b 100644
--- a/Filters/Core/vtkStreamingTessellator.h
+++ b/Filters/Core/vtkStreamingTessellator.h
@@ -80,6 +80,7 @@
 
 #undef PARAVIEW_DEBUG_TESSELLATOR
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEdgeSubdivisionCriterion;
 
 class VTKFILTERSCORE_EXPORT vtkStreamingTessellator : public vtkObject
@@ -392,4 +393,5 @@ inline int vtkStreamingTessellator::GetMaximumNumberOfSubdivisions()
   return this->MaximumNumberOfSubdivisions;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkStreamingTessellator_h
diff --git a/Filters/Core/vtkStripper.cxx b/Filters/Core/vtkStripper.cxx
index 5b8542a39b8420a164161d13d549531c8c50b51d..4237f5db540eb727e8427220ce0a23dae8a0c5de 100644
--- a/Filters/Core/vtkStripper.cxx
+++ b/Filters/Core/vtkStripper.cxx
@@ -27,6 +27,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStripper);
 
 // Construct object with MaximumLength set to 1000.
@@ -744,3 +745,4 @@ void vtkStripper::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "PassThroughPointIds: " << this->PassThroughPointIds << endl;
   os << indent << "JoinContiguousSegments: " << this->JoinContiguousSegments << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkStripper.h b/Filters/Core/vtkStripper.h
index c01f8119849bc1dc4050d57d6c9b97ea377e0448..efa6287baa9ef372b7f92262c5cd9d3ac8fd660f 100644
--- a/Filters/Core/vtkStripper.h
+++ b/Filters/Core/vtkStripper.h
@@ -63,6 +63,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkStripper : public vtkPolyDataAlgorithm
 {
 public:
@@ -146,4 +147,5 @@ private:
   void operator=(const vtkStripper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkStructuredDataPlaneCutter.cxx b/Filters/Core/vtkStructuredDataPlaneCutter.cxx
index fc609dffd4d653bed10e0ae1fb6964dad803c4f0..5fe65ceac63864967b1b49c217460a966c88a858 100644
--- a/Filters/Core/vtkStructuredDataPlaneCutter.cxx
+++ b/Filters/Core/vtkStructuredDataPlaneCutter.cxx
@@ -37,6 +37,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkStructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkStructuredDataPlaneCutter);
 
@@ -1236,3 +1237,4 @@ int vtkStructuredDataPlaneCutter::RequestData(vtkInformation* vtkNotUsed(request
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkStructuredDataPlaneCutter.h b/Filters/Core/vtkStructuredDataPlaneCutter.h
index 94a226d67ea888bad48fa453b62c8aa1a8ae77ff..e093a91cb5ab94e2c19b8624c2591599f28bf783 100644
--- a/Filters/Core/vtkStructuredDataPlaneCutter.h
+++ b/Filters/Core/vtkStructuredDataPlaneCutter.h
@@ -51,6 +51,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSphereTree;
 class vtkPlane;
 
@@ -217,4 +218,5 @@ private:
   void operator=(const vtkStructuredDataPlaneCutter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkStructuredGridAppend.cxx b/Filters/Core/vtkStructuredGridAppend.cxx
index 06e0d5e266fb8420e17ea486154bf644a01a9871..d8176d0b8e3ae1592a5e92e8504d463065ef3beb 100644
--- a/Filters/Core/vtkStructuredGridAppend.cxx
+++ b/Filters/Core/vtkStructuredGridAppend.cxx
@@ -29,6 +29,7 @@
 #include "vtkUnsignedCharArray.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredGridAppend);
 
 //------------------------------------------------------------------------------
@@ -396,3 +397,4 @@ void vtkStructuredGridAppend::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkStructuredGridAppend.h b/Filters/Core/vtkStructuredGridAppend.h
index 68d61ab04ba185a45d4ca2168fc2e4ed5d240c61..182ff4e7749b54233f6a0e0e9c589b88e0f7a6d6 100644
--- a/Filters/Core/vtkStructuredGridAppend.h
+++ b/Filters/Core/vtkStructuredGridAppend.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkStructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkStructuredGridAppend : public vtkStructuredGridAlgorithm
 {
 public:
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkStructuredGridAppend&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkStructuredGridOutlineFilter.cxx b/Filters/Core/vtkStructuredGridOutlineFilter.cxx
index 009611fd9fa38f7c2ea885b9edbc351366fee32e..289437678b941a5622afa881db9d1392011ca9e6 100644
--- a/Filters/Core/vtkStructuredGridOutlineFilter.cxx
+++ b/Filters/Core/vtkStructuredGridOutlineFilter.cxx
@@ -22,6 +22,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkStructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredGridOutlineFilter);
 
 //------------------------------------------------------------------------------
@@ -258,3 +259,4 @@ int vtkStructuredGridOutlineFilter::FillInputPortInformation(int, vtkInformation
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkStructuredGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkStructuredGridOutlineFilter.h b/Filters/Core/vtkStructuredGridOutlineFilter.h
index 84c2233ec2ea08db667f16599c15e92bf5a891f0..1308ee5a894dffa9a5eea21dc8e767230c2b669f 100644
--- a/Filters/Core/vtkStructuredGridOutlineFilter.h
+++ b/Filters/Core/vtkStructuredGridOutlineFilter.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkStructuredGridOutlineFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -46,4 +47,5 @@ private:
   void operator=(const vtkStructuredGridOutlineFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkSurfaceNets2D.cxx b/Filters/Core/vtkSurfaceNets2D.cxx
index c713b786da31b65d4303b991a7f6818eb7c56be5..6b0fbd8cb3aa00f4966fcb247b042857272d379d 100644
--- a/Filters/Core/vtkSurfaceNets2D.cxx
+++ b/Filters/Core/vtkSurfaceNets2D.cxx
@@ -32,6 +32,7 @@
 
 #include <memory>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSurfaceNets2D);
 
 //============================================================================
@@ -1382,3 +1383,4 @@ void vtkSurfaceNets2D::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Data Caching: " << (this->DataCaching ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkSurfaceNets2D.h b/Filters/Core/vtkSurfaceNets2D.h
index 801b46ba2801ecb5ae0d84e594b4cd4f685269eb..fb7b0e8d368da62923a03ac3b6bc19dfccc83fc5 100644
--- a/Filters/Core/vtkSurfaceNets2D.h
+++ b/Filters/Core/vtkSurfaceNets2D.h
@@ -125,6 +125,8 @@
 #include "vtkPolyData.h"                   // To support data caching
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkImageData;
 
 class VTKFILTERSCORE_EXPORT vtkSurfaceNets2D : public vtkPolyDataAlgorithm
@@ -336,4 +338,5 @@ private:
   void operator=(const vtkSurfaceNets2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkSynchronizedTemplates2D.cxx b/Filters/Core/vtkSynchronizedTemplates2D.cxx
index 1531291d8cf17b4cd27ecffb00d9eaa96898d32a..1e30a0ead068050965acece310a89a7c60dc8289 100644
--- a/Filters/Core/vtkSynchronizedTemplates2D.cxx
+++ b/Filters/Core/vtkSynchronizedTemplates2D.cxx
@@ -37,6 +37,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSynchronizedTemplates2D);
 
 //------------------------------------------------------------------------------
@@ -520,3 +521,4 @@ void vtkSynchronizedTemplates2D::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "ArrayComponent: " << this->ArrayComponent << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkSynchronizedTemplates2D.h b/Filters/Core/vtkSynchronizedTemplates2D.h
index c7a9fc88cc8c2de0479a06334040fc7ff5537362..bac8bdb46e0b9421e494c5ddb898ee2650e50bed 100644
--- a/Filters/Core/vtkSynchronizedTemplates2D.h
+++ b/Filters/Core/vtkSynchronizedTemplates2D.h
@@ -36,6 +36,7 @@
 
 #include "vtkContourValues.h" // Needed for direct access to ContourValues
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKFILTERSCORE_EXPORT vtkSynchronizedTemplates2D : public vtkPolyDataAlgorithm
@@ -138,4 +139,5 @@ private:
   void operator=(const vtkSynchronizedTemplates2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkSynchronizedTemplates3D.cxx b/Filters/Core/vtkSynchronizedTemplates3D.cxx
index f4afd75f55bf620abdd432f2bb3632f5caf17865..4044935c7d81abb43433db94b3d147de00ced33e 100644
--- a/Filters/Core/vtkSynchronizedTemplates3D.cxx
+++ b/Filters/Core/vtkSynchronizedTemplates3D.cxx
@@ -41,6 +41,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSynchronizedTemplates3D);
 
 //------------------------------------------------------------------------------
@@ -1852,3 +1853,4 @@ int VTK_SYNCHRONIZED_TEMPLATES_3D_TABLE_2[] = {
   3, 2, 1, 4, 2, 3, -1, 0, 3, 4, -1, 0,      //
   2, 1, -1                                   //
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkSynchronizedTemplates3D.h b/Filters/Core/vtkSynchronizedTemplates3D.h
index a2a5d5d415b4b92002139a501fd842b0ff22cd4b..ef228df4372466ed0d3e9d0d3b328935c457e3ef 100644
--- a/Filters/Core/vtkSynchronizedTemplates3D.h
+++ b/Filters/Core/vtkSynchronizedTemplates3D.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKFILTERSCORE_EXPORT vtkSynchronizedTemplates3D : public vtkPolyDataAlgorithm
@@ -197,4 +198,5 @@ private:
 extern int VTKFILTERSCORE_EXPORT VTK_SYNCHRONIZED_TEMPLATES_3D_TABLE_1[];
 extern int VTKFILTERSCORE_EXPORT VTK_SYNCHRONIZED_TEMPLATES_3D_TABLE_2[];
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkSynchronizedTemplatesCutter3D.cxx b/Filters/Core/vtkSynchronizedTemplatesCutter3D.cxx
index ad1b0aeb1cb6a415f280ca12580c06f488043d8c..e15203d7f7eeb756261da5098f26fb030925cf31 100644
--- a/Filters/Core/vtkSynchronizedTemplatesCutter3D.cxx
+++ b/Filters/Core/vtkSynchronizedTemplatesCutter3D.cxx
@@ -42,6 +42,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSynchronizedTemplatesCutter3D);
 vtkCxxSetObjectMacro(vtkSynchronizedTemplatesCutter3D, CutFunction, vtkImplicitFunction);
 
@@ -584,3 +585,4 @@ void vtkSynchronizedTemplatesCutter3D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Cut Function: " << this->CutFunction << "\n";
   os << indent << "Precision of the output points: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkSynchronizedTemplatesCutter3D.h b/Filters/Core/vtkSynchronizedTemplatesCutter3D.h
index 3f3ce6160defadb412e5a7f127ff27e9e4e59f98..b31a55cecc5dee250d4aeae00ae3b7bc082b32c5 100644
--- a/Filters/Core/vtkSynchronizedTemplatesCutter3D.h
+++ b/Filters/Core/vtkSynchronizedTemplatesCutter3D.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkSynchronizedTemplates3D.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
 
 class VTKFILTERSCORE_EXPORT vtkSynchronizedTemplatesCutter3D : public vtkSynchronizedTemplates3D
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkSynchronizedTemplatesCutter3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkTensorGlyph.cxx b/Filters/Core/vtkTensorGlyph.cxx
index 8f722cf3a72fff817bf11e77cefa80fd7a8db050..c2ea0ebfc4c8d00877048cbd286823236bafa7f7 100644
--- a/Filters/Core/vtkTensorGlyph.cxx
+++ b/Filters/Core/vtkTensorGlyph.cxx
@@ -28,6 +28,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTensorGlyph);
 
 //------------------------------------------------------------------------------
@@ -561,3 +562,4 @@ void vtkTensorGlyph::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Symmetric: " << (this->Symmetric ? "On\n" : "Off\n");
   os << indent << "Length: " << this->Length << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkTensorGlyph.h b/Filters/Core/vtkTensorGlyph.h
index 0fb3fed7e56de075456ca95bf33ccf5a63d27d5a..badc710288d700de9c76b5279997ca27d0ede1f8 100644
--- a/Filters/Core/vtkTensorGlyph.h
+++ b/Filters/Core/vtkTensorGlyph.h
@@ -87,6 +87,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkTensorGlyph : public vtkPolyDataAlgorithm
 {
 public:
@@ -259,4 +260,5 @@ private:
   void operator=(const vtkTensorGlyph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkThreshold.cxx b/Filters/Core/vtkThreshold.cxx
index 67d493c0cecbdf3ad774fd6b5d1a128cb2bae5a9..64227cdc5ce7284358d1d41eafd8356297e0bb80 100644
--- a/Filters/Core/vtkThreshold.cxx
+++ b/Filters/Core/vtkThreshold.cxx
@@ -32,6 +32,7 @@
 #include <algorithm>
 #include <limits>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkThreshold);
 
 // Construct with lower threshold=0, upper threshold=1, and threshold
@@ -480,3 +481,4 @@ void vtkThreshold::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Precision of the output points: " << this->OutputPointsPrecision << "\n";
   os << indent << "Use Continuous Cell Range: " << this->UseContinuousCellRange << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkThreshold.h b/Filters/Core/vtkThreshold.h
index 7e545db77a0ae03bf2a0e8cebe774522d65005cd..b2d079c1ddf2123d4a6654650636248e3a39f4f7 100644
--- a/Filters/Core/vtkThreshold.h
+++ b/Filters/Core/vtkThreshold.h
@@ -49,6 +49,7 @@
 #define VTK_COMPONENT_MODE_USE_ALL 1
 #define VTK_COMPONENT_MODE_USE_ANY 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkIdList;
 
@@ -246,4 +247,5 @@ private:
   void operator=(const vtkThreshold&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkThresholdPoints.cxx b/Filters/Core/vtkThresholdPoints.cxx
index 356edc47ba2bd585f1d49be344b70dd880401e05..ebdeba866ccabda2a0347ab71e87b0e38ad8e6a2 100644
--- a/Filters/Core/vtkThresholdPoints.cxx
+++ b/Filters/Core/vtkThresholdPoints.cxx
@@ -24,6 +24,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkThresholdPoints);
 
 //------------------------------------------------------------------------------
@@ -252,3 +253,4 @@ void vtkThresholdPoints::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Upper Threshold: " << this->UpperThreshold << "\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkThresholdPoints.h b/Filters/Core/vtkThresholdPoints.h
index e0712ee2cddd7aef1fb4bb876ab9318b26f1748d..38cf138234659fc7ce9572d95c97ec718719ff47 100644
--- a/Filters/Core/vtkThresholdPoints.h
+++ b/Filters/Core/vtkThresholdPoints.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkThresholdPoints : public vtkPolyDataAlgorithm
 {
 public:
@@ -117,4 +118,5 @@ private:
   void operator=(const vtkThresholdPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkTransposeTable.cxx b/Filters/Core/vtkTransposeTable.cxx
index 007ff8f874a88123dad1b150343fec5328725419..09569fa386956931f7f8e1d4b867cba852db44bc 100644
--- a/Filters/Core/vtkTransposeTable.cxx
+++ b/Filters/Core/vtkTransposeTable.cxx
@@ -43,6 +43,7 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransposeTableInternal
 {
 public:
@@ -296,3 +297,4 @@ int vtkTransposeTable::RequestData(
   vtkTransposeTableInternal intern(this);
   return intern.TransposeTable(inTable, outTable) ? 1 : 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkTransposeTable.h b/Filters/Core/vtkTransposeTable.h
index 57936b4133f729b60dbcf51a3f55f8f71f7fd881..d03428c64127e3ffd58b8703da939da95e63caff 100644
--- a/Filters/Core/vtkTransposeTable.h
+++ b/Filters/Core/vtkTransposeTable.h
@@ -33,6 +33,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkTransposeTable : public vtkTableAlgorithm
 {
 public:
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkTransposeTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkTriangleFilter.cxx b/Filters/Core/vtkTriangleFilter.cxx
index 57663eb38304c7e9032c52a224a057e9683ca9d6..f9e5999e48319b3d068f16bc595a9a585cc9ec4a 100644
--- a/Filters/Core/vtkTriangleFilter.cxx
+++ b/Filters/Core/vtkTriangleFilter.cxx
@@ -24,6 +24,7 @@
 #include "vtkPolygon.h"
 #include "vtkTriangleStrip.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTriangleFilter);
 
 //-------------------------------------------------------------------------
@@ -240,3 +241,4 @@ void vtkTriangleFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Pass Verts: " << (this->PassVerts ? "On\n" : "Off\n");
   os << indent << "Pass Lines: " << (this->PassLines ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkTriangleFilter.h b/Filters/Core/vtkTriangleFilter.h
index f69ff282aee2d0caa328f9ebd09c917ed2d7c344..af7d4b9758256d13aa8692f4752b9acb236fd1c0 100644
--- a/Filters/Core/vtkTriangleFilter.h
+++ b/Filters/Core/vtkTriangleFilter.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkTriangleFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkTriangleFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkTriangleMeshPointNormals.cxx b/Filters/Core/vtkTriangleMeshPointNormals.cxx
index 3f5fd59ff7b58400367590df83b35021d71ad037..92b82c1e12792bb8ec2a53a720d15cf888e48c14 100644
--- a/Filters/Core/vtkTriangleMeshPointNormals.cxx
+++ b/Filters/Core/vtkTriangleMeshPointNormals.cxx
@@ -27,6 +27,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTriangleMeshPointNormals);
 
 namespace
@@ -200,3 +201,4 @@ void vtkTriangleMeshPointNormals::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkTriangleMeshPointNormals.h b/Filters/Core/vtkTriangleMeshPointNormals.h
index 3835b8fed5bf9e5606d468e7596e3f39d4751462..a4590dc1d89ff467e69fa9b1e70582859638856e 100644
--- a/Filters/Core/vtkTriangleMeshPointNormals.h
+++ b/Filters/Core/vtkTriangleMeshPointNormals.h
@@ -66,6 +66,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKFILTERSCORE_EXPORT vtkTriangleMeshPointNormals : public vtkPolyDataAlgorithm
@@ -88,4 +89,5 @@ private:
   void operator=(const vtkTriangleMeshPointNormals&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkTubeBender.cxx b/Filters/Core/vtkTubeBender.cxx
index dd1e41843bacb539bd76027ee80f3dbfb2e8fedd..88e8213dfca27d4e40cadb73455eccb09dfa3568 100644
--- a/Filters/Core/vtkTubeBender.cxx
+++ b/Filters/Core/vtkTubeBender.cxx
@@ -20,6 +20,7 @@
 
 //----------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 void initRotateAboutLineWXYZQuaternion(
@@ -235,3 +236,4 @@ void vtkTubeBender::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Radius: " << this->Radius << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkTubeBender.h b/Filters/Core/vtkTubeBender.h
index 3478aeb5b326387332102fe69da662f263a75b86..75a95e8efb8bdc88a32cb703c77851abf943888c 100644
--- a/Filters/Core/vtkTubeBender.h
+++ b/Filters/Core/vtkTubeBender.h
@@ -49,6 +49,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkTubeBender : public vtkPolyDataAlgorithm
 {
 public:
@@ -80,4 +81,5 @@ protected:
     vtkInformationVector* outputVector) override;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTubeBender_h
diff --git a/Filters/Core/vtkTubeFilter.cxx b/Filters/Core/vtkTubeFilter.cxx
index 2bdef82d83b638086c88375e349a91e474619f94..d019e5ce55cdd948fc1266671c7f1bd6a464ed21 100644
--- a/Filters/Core/vtkTubeFilter.cxx
+++ b/Filters/Core/vtkTubeFilter.cxx
@@ -27,6 +27,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTubeFilter);
 
 // Construct object with radius 0.5, radius variation turned off, the number
@@ -844,3 +845,4 @@ void vtkTubeFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Texture Length: " << this->TextureLength << endl;
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkTubeFilter.h b/Filters/Core/vtkTubeFilter.h
index 3e792f6d729376b95a9d3cf7a4b703d20ed86f68..99c324ace2d54a2a7d88cb5759057e465c24c3d3 100644
--- a/Filters/Core/vtkTubeFilter.h
+++ b/Filters/Core/vtkTubeFilter.h
@@ -69,6 +69,7 @@
 #define VTK_TCOORDS_FROM_LENGTH 2
 #define VTK_TCOORDS_FROM_SCALARS 3
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkCellData;
 class vtkDataArray;
@@ -271,4 +272,5 @@ private:
   void operator=(const vtkTubeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkUnstructuredGridQuadricDecimation.cxx b/Filters/Core/vtkUnstructuredGridQuadricDecimation.cxx
index 291bddf3e5564b22c2d374b1a5a6841fd34496d4..393a8d480efb4df204ea3cfc459cbc8da6c95408 100644
--- a/Filters/Core/vtkUnstructuredGridQuadricDecimation.cxx
+++ b/Filters/Core/vtkUnstructuredGridQuadricDecimation.cxx
@@ -28,6 +28,7 @@
 #include <map>
 #include <utility>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGridQuadricDecimationEdge;
 class vtkUnstructuredGridQuadricDecimationFace;
 class vtkUnstructuredGridQuadricDecimationFaceHash;
@@ -1594,3 +1595,4 @@ int vtkUnstructuredGridQuadricDecimation::RequestData(vtkInformation* vtkNotUsed
   myMesh.SaveUnstructuredGrid(output);
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkUnstructuredGridQuadricDecimation.h b/Filters/Core/vtkUnstructuredGridQuadricDecimation.h
index 5e93953c6358e22fa18702f144d339744064c7ec..f8ffff5b58c71f68acde724453d2430a0cf71015 100644
--- a/Filters/Core/vtkUnstructuredGridQuadricDecimation.h
+++ b/Filters/Core/vtkUnstructuredGridQuadricDecimation.h
@@ -65,6 +65,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkUnstructuredGridQuadricDecimation
   : public vtkUnstructuredGridAlgorithm
 {
@@ -185,4 +186,5 @@ private:
   void operator=(const vtkUnstructuredGridQuadricDecimation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkUnstructuredGridToExplicitStructuredGrid.cxx b/Filters/Core/vtkUnstructuredGridToExplicitStructuredGrid.cxx
index 5bdea71bd6eb09eb4176e1c33e704c0a0b5a8b67..c985ea2ceacda2fec4dd7ad5a2f9f06115b8b149 100644
--- a/Filters/Core/vtkUnstructuredGridToExplicitStructuredGrid.cxx
+++ b/Filters/Core/vtkUnstructuredGridToExplicitStructuredGrid.cxx
@@ -26,6 +26,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnstructuredGridToExplicitStructuredGrid);
 
 //------------------------------------------------------------------------------
@@ -213,3 +214,4 @@ int vtkUnstructuredGridToExplicitStructuredGrid::FillInputPortInformation(
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkUnstructuredGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkUnstructuredGridToExplicitStructuredGrid.h b/Filters/Core/vtkUnstructuredGridToExplicitStructuredGrid.h
index db1ee25b3fff65da14a4613b86f9cd6afa0b9085..d3bfac8067f2d615a801fd649fe4e39350dcb97d 100644
--- a/Filters/Core/vtkUnstructuredGridToExplicitStructuredGrid.h
+++ b/Filters/Core/vtkUnstructuredGridToExplicitStructuredGrid.h
@@ -25,6 +25,7 @@
 #include "vtkExplicitStructuredGridAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkUnstructuredGridToExplicitStructuredGrid
   : public vtkExplicitStructuredGridAlgorithm
 {
@@ -58,4 +59,5 @@ private:
   void operator=(const vtkUnstructuredGridToExplicitStructuredGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkVectorDot.cxx b/Filters/Core/vtkVectorDot.cxx
index 99e6adbde59ab0d244327dce3e5449ccdb9555d9..0c6a6da62055eb0902c773620e623dbf201685dd 100644
--- a/Filters/Core/vtkVectorDot.cxx
+++ b/Filters/Core/vtkVectorDot.cxx
@@ -28,6 +28,7 @@
 #include <algorithm>
 #include <limits>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVectorDot);
 
 namespace
@@ -248,3 +249,4 @@ void vtkVectorDot::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Actual Range: (" << this->ActualRange[0] << ", " << this->ActualRange[1]
      << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkVectorDot.h b/Filters/Core/vtkVectorDot.h
index 748cafca99a5a7aa1293d337c9bd7e276ff1e54f..a1e36993379655b36ded57ee0e2d1fd4ee6a8785 100644
--- a/Filters/Core/vtkVectorDot.h
+++ b/Filters/Core/vtkVectorDot.h
@@ -38,6 +38,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkVectorDot : public vtkDataSetAlgorithm
 {
 public:
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkVectorDot&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkVectorNorm.cxx b/Filters/Core/vtkVectorNorm.cxx
index 6e8c3532da80a2613f1327bade2c82c34d0e3ee1..72d8dd09466e6acac0b7d624e50d0973016d3e72 100644
--- a/Filters/Core/vtkVectorNorm.cxx
+++ b/Filters/Core/vtkVectorNorm.cxx
@@ -27,6 +27,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVectorNorm);
 
 namespace
@@ -237,3 +238,4 @@ void vtkVectorNorm::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Normalize: " << (this->Normalize ? "On\n" : "Off\n");
   os << indent << "Attribute Mode: " << this->GetAttributeModeAsString() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkVectorNorm.h b/Filters/Core/vtkVectorNorm.h
index f49f339289ee4972450965c233ad56203448840c..80a00ab85d8404699d95eb67c0eaa92facab6a58 100644
--- a/Filters/Core/vtkVectorNorm.h
+++ b/Filters/Core/vtkVectorNorm.h
@@ -42,6 +42,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkVectorNorm : public vtkDataSetAlgorithm
 {
 public:
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkVectorNorm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkVoronoi2D.cxx b/Filters/Core/vtkVoronoi2D.cxx
index 5e10aa14b019328bc308faaac9b020994f8747fb..1d875a99e6532aa56704f13d2dbca13c9123d180 100644
--- a/Filters/Core/vtkVoronoi2D.cxx
+++ b/Filters/Core/vtkVoronoi2D.cxx
@@ -36,6 +36,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVoronoi2D);
 vtkCxxSetObjectMacro(vtkVoronoi2D, Transform, vtkAbstractTransform);
 
@@ -1074,3 +1075,4 @@ void vtkVoronoi2D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Maximum Number Of Tile Clips: " << this->MaximumNumberOfTileClips << "\n";
   os << indent << "Generate Voronoi Flower: " << (this->GenerateVoronoiFlower ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkVoronoi2D.h b/Filters/Core/vtkVoronoi2D.h
index 35fa3ec51fe7f4b31eba972b803e6c0c54f8ffaf..d0969295c9cc809d8bc79d0aec5ee7cf7aade564 100644
--- a/Filters/Core/vtkVoronoi2D.h
+++ b/Filters/Core/vtkVoronoi2D.h
@@ -94,6 +94,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStaticPointLocator2D;
 class vtkAbstractTransform;
 class vtkPointSet;
@@ -276,4 +277,5 @@ private:
   void operator=(const vtkVoronoi2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Core/vtkWindowedSincPolyDataFilter.cxx b/Filters/Core/vtkWindowedSincPolyDataFilter.cxx
index fdd5570c8ffdacc16c08d4a3c37fbf21b4716561..04806e8fd38b230e168110cfa111048bbc1a9965 100644
--- a/Filters/Core/vtkWindowedSincPolyDataFilter.cxx
+++ b/Filters/Core/vtkWindowedSincPolyDataFilter.cxx
@@ -37,6 +37,7 @@
 #include <atomic>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWindowedSincPolyDataFilter);
 
 //------------------------------------------------------------------------------
@@ -1567,3 +1568,4 @@ void vtkWindowedSincPolyDataFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Generate Error Scalars: " << (this->GenerateErrorScalars ? "On\n" : "Off\n");
   os << indent << "Generate Error Vectors: " << (this->GenerateErrorVectors ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Core/vtkWindowedSincPolyDataFilter.h b/Filters/Core/vtkWindowedSincPolyDataFilter.h
index a85c5c06743ec5bf772d0e1a93cffe252759130d..beacf76b81fc32918c2571e4c6bdd4f68efe6aa2 100644
--- a/Filters/Core/vtkWindowedSincPolyDataFilter.h
+++ b/Filters/Core/vtkWindowedSincPolyDataFilter.h
@@ -159,6 +159,7 @@
 #include "vtkFiltersCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSCORE_EXPORT vtkWindowedSincPolyDataFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -317,4 +318,5 @@ private:
   void operator=(const vtkWindowedSincPolyDataFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkBlockSelector.cxx b/Filters/Extraction/vtkBlockSelector.cxx
index e75780cbe799c91a577667d10a6787fda0ccc666..ea207053a23544547b5d9d42d3472ca81ba85979 100644
--- a/Filters/Extraction/vtkBlockSelector.cxx
+++ b/Filters/Extraction/vtkBlockSelector.cxx
@@ -29,6 +29,7 @@
 #include <set>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBlockSelector::vtkInternals
 {
 public:
@@ -209,3 +210,4 @@ void vtkBlockSelector::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkBlockSelector.h b/Filters/Extraction/vtkBlockSelector.h
index c7e382052284812118b7f887edc7f5da4ad06562..0f0ec7d816f39343a0aefb76dd6d83246acc2f23 100644
--- a/Filters/Extraction/vtkBlockSelector.h
+++ b/Filters/Extraction/vtkBlockSelector.h
@@ -28,6 +28,7 @@
 
 #include "vtkSelector.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSEXTRACTION_EXPORT vtkBlockSelector : public vtkSelector
 {
 public:
@@ -61,4 +62,5 @@ private:
   vtkInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkConvertSelection.cxx b/Filters/Extraction/vtkConvertSelection.cxx
index 572d179b938bfc52c1d4c58e8e3e8fd05ebf3a54..a1e75a7d76355e753e22683d55484a08fa581bd8 100644
--- a/Filters/Extraction/vtkConvertSelection.cxx
+++ b/Filters/Extraction/vtkConvertSelection.cxx
@@ -52,6 +52,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkConvertSelection, ArrayNames, vtkStringArray);
 vtkCxxSetObjectMacro(vtkConvertSelection, SelectionExtractor, vtkExtractSelection);
 
@@ -1204,3 +1205,4 @@ void vtkConvertSelection::PrintSelf(ostream& os, vtkIndent indent)
     this->ArrayNames->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkConvertSelection.h b/Filters/Extraction/vtkConvertSelection.h
index d031135c290a7cba1e235bf7cd8a41b2fb5bd6bd..a89018db9c4448c2c7af419875466ffe147080eb 100644
--- a/Filters/Extraction/vtkConvertSelection.h
+++ b/Filters/Extraction/vtkConvertSelection.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersExtractionModule.h" // For export macro
 #include "vtkSelectionAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkGraph;
 class vtkIdTypeArray;
@@ -206,4 +207,5 @@ private:
   void operator=(const vtkConvertSelection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExpandMarkedElements.cxx b/Filters/Extraction/vtkExpandMarkedElements.cxx
index 811d76bdd62b58004457bd6970e96746af40d923..c4bdc3040528278d1536455b42fae7c4bbdde812 100644
--- a/Filters/Extraction/vtkExpandMarkedElements.cxx
+++ b/Filters/Extraction/vtkExpandMarkedElements.cxx
@@ -48,6 +48,7 @@
 #include <algorithm>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 void ShallowCopy(vtkDataObject* input, vtkDataObject* output)
@@ -409,3 +410,4 @@ void vtkExpandMarkedElements::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Controller: " << this->Controller << endl;
   os << indent << "NumberOfLayers: " << this->NumberOfLayers << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExpandMarkedElements.h b/Filters/Extraction/vtkExpandMarkedElements.h
index 94459d468067e05eb7e0a78891fa72b1c5a29180..7d8c3c43e0313fa056153b8f44483b0584190008 100644
--- a/Filters/Extraction/vtkExpandMarkedElements.h
+++ b/Filters/Extraction/vtkExpandMarkedElements.h
@@ -37,6 +37,7 @@
 #include "vtkFiltersExtractionModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSEXTRACTION_EXPORT vtkExpandMarkedElements : public vtkPassInputTypeAlgorithm
@@ -100,4 +101,5 @@ private:
   bool RemoveIntermediateLayers = false;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractBlock.cxx b/Filters/Extraction/vtkExtractBlock.cxx
index e61aea427a2b15591aad7d4bceb73cbf8862d555..9fa953974fe0a347a92a5da3a9eff3fa8476cfd9 100644
--- a/Filters/Extraction/vtkExtractBlock.cxx
+++ b/Filters/Extraction/vtkExtractBlock.cxx
@@ -28,6 +28,7 @@
 #include <cassert>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtractBlock::vtkSet : public std::set<unsigned int>
 {
 };
@@ -251,3 +252,4 @@ void vtkExtractBlock::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "PruneOutput: " << this->PruneOutput << endl;
   os << indent << "MaintainStructure: " << this->MaintainStructure << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractBlock.h b/Filters/Extraction/vtkExtractBlock.h
index 8720ece95fa497427f7c2deebfbcf79a4ac72c27..887a9d2ab8e81aafad5195266d50fc6f39c6382b 100644
--- a/Filters/Extraction/vtkExtractBlock.h
+++ b/Filters/Extraction/vtkExtractBlock.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersExtractionModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObjectTreeIterator;
 class vtkPartitionedDataSet;
 class vtkMultiBlockDataSet;
@@ -123,4 +124,5 @@ private:
   vtkSet* Indices;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractBlockUsingDataAssembly.cxx b/Filters/Extraction/vtkExtractBlockUsingDataAssembly.cxx
index 8f0875651c9b4ef62bf21b69c3346899300aa1d4..374c8affe1c5d5e04b36f71339dfa20ce9ab187b 100644
--- a/Filters/Extraction/vtkExtractBlockUsingDataAssembly.cxx
+++ b/Filters/Extraction/vtkExtractBlockUsingDataAssembly.cxx
@@ -33,6 +33,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 class vtkScopedFieldDataCopier
@@ -369,3 +370,4 @@ void vtkExtractBlockUsingDataAssembly::PrintSelf(ostream& os, vtkIndent indent)
     os << indent.GetNextIndent() << selector << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractBlockUsingDataAssembly.h b/Filters/Extraction/vtkExtractBlockUsingDataAssembly.h
index 3dab76190723fa71461c5871050d4aa52feed1b1..99c8e21db2507a1f7df10d4deb0075acba39f20c 100644
--- a/Filters/Extraction/vtkExtractBlockUsingDataAssembly.h
+++ b/Filters/Extraction/vtkExtractBlockUsingDataAssembly.h
@@ -44,6 +44,7 @@
 #include "vtkCompositeDataSetAlgorithm.h"
 #include "vtkFiltersExtractionModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataAssembly;
 class vtkPartitionedDataSetCollection;
 
@@ -137,4 +138,5 @@ private:
   char* AssemblyName;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractCells.cxx b/Filters/Extraction/vtkExtractCells.cxx
index def72bdcdf2d423c1755be1d6a5ee736f56673ca..cf57aa7df7d6d71a246f542771b0981cea33cbc3 100644
--- a/Filters/Extraction/vtkExtractCells.cxx
+++ b/Filters/Extraction/vtkExtractCells.cxx
@@ -42,6 +42,7 @@
 #include <numeric>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -638,3 +639,4 @@ void vtkExtractCells::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ExtractAllCells: " << this->ExtractAllCells << endl;
   os << indent << "AssumeSortedAndUniqueIds: " << this->AssumeSortedAndUniqueIds << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractCells.h b/Filters/Extraction/vtkExtractCells.h
index cf969517e155a1e2783239d07c80ff6362058220..01f79a84274718de2e47d5ae0e02a95d6c14b5db 100644
--- a/Filters/Extraction/vtkExtractCells.h
+++ b/Filters/Extraction/vtkExtractCells.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersExtractionModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkExtractCellsSTLCloak;
 
@@ -117,4 +118,5 @@ private:
   void operator=(const vtkExtractCells&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractCellsByType.cxx b/Filters/Extraction/vtkExtractCellsByType.cxx
index 3b637481f94614756eae50a03f5b182147a9945c..da83e4a7355b07fedbfe10a122e607c5de540884 100644
--- a/Filters/Extraction/vtkExtractCellsByType.cxx
+++ b/Filters/Extraction/vtkExtractCellsByType.cxx
@@ -31,13 +31,16 @@
 #include "vtkUniformGrid.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractCellsByType);
 
+VTK_ABI_NAMESPACE_END
 #include <set>
 
 // Special token marks any cell type
 #define VTK_ANY_CELL_TYPE 1000000
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkCellTypeSet : public std::set<unsigned int>
 {
 };
@@ -431,3 +434,4 @@ void vtkExtractCellsByType::PrintSelf(ostream& os, vtkIndent indent)
   // Output the number of types specified
   os << indent << "Number of types specified: " << this->CellTypes->size() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractCellsByType.h b/Filters/Extraction/vtkExtractCellsByType.h
index 98bd4418e94233823186d81d93b4ea02b34e38d4..6719c0da34ac6651000860e83dfa3f9ea999f959 100644
--- a/Filters/Extraction/vtkExtractCellsByType.h
+++ b/Filters/Extraction/vtkExtractCellsByType.h
@@ -50,6 +50,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersExtractionModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkCellTypeSet;
 class vtkIdTypeArray;
 
@@ -98,4 +99,5 @@ private:
   vtkCellTypeSet* CellTypes;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractDataArraysOverTime.cxx b/Filters/Extraction/vtkExtractDataArraysOverTime.cxx
index 49229795932dbfb432f10d76bc06ac6a5c1f4d89..5b49f661833af3933b2a821ae9c820587149b7cc 100644
--- a/Filters/Extraction/vtkExtractDataArraysOverTime.cxx
+++ b/Filters/Extraction/vtkExtractDataArraysOverTime.cxx
@@ -42,6 +42,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 struct ClearInvalidElementsWorker
@@ -815,3 +816,4 @@ vtkSmartPointer<vtkOrderStatistics> vtkExtractDataArraysOverTime::NewOrderStatis
 {
   return vtkSmartPointer<vtkOrderStatistics>::New();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractDataArraysOverTime.h b/Filters/Extraction/vtkExtractDataArraysOverTime.h
index 799de4bb8449a95253f3f621dff8952b4632dacf..285864f63e8f77a2a1add3410127a966abc2fcf9 100644
--- a/Filters/Extraction/vtkExtractDataArraysOverTime.h
+++ b/Filters/Extraction/vtkExtractDataArraysOverTime.h
@@ -64,6 +64,7 @@
 #include "vtkMultiBlockDataSetAlgorithm.h"
 #include "vtkSmartPointer.h" // for vtkSmartPointer.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkTable;
 class vtkDataSetAttributes;
@@ -160,4 +161,5 @@ private:
   friend class vtkInternal;
   vtkInternal* Internal;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractDataOverTime.cxx b/Filters/Extraction/vtkExtractDataOverTime.cxx
index fcade7129ada15f52bd3209d3fad0f6ab8a6dfdf..03d89ce6939643f858241b283b53828b59a63b32 100644
--- a/Filters/Extraction/vtkExtractDataOverTime.cxx
+++ b/Filters/Extraction/vtkExtractDataOverTime.cxx
@@ -22,6 +22,7 @@
 #include "vtkPointSet.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractDataOverTime);
 
 //------------------------------------------------------------------------------
@@ -191,3 +192,4 @@ int vtkExtractDataOverTime::AllocateOutputData(vtkPointSet* input, vtkPointSet*
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractDataOverTime.h b/Filters/Extraction/vtkExtractDataOverTime.h
index 4ffc34115da7b10f5ab7cb452b521a5821ebfa39..f199d7b0092218c634ab1d5625aa6828537ebab6 100644
--- a/Filters/Extraction/vtkExtractDataOverTime.h
+++ b/Filters/Extraction/vtkExtractDataOverTime.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersExtractionModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractDataOverTime : public vtkPointSetAlgorithm
 {
 public:
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkExtractDataOverTime&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractDataSets.cxx b/Filters/Extraction/vtkExtractDataSets.cxx
index 2359a904417f999356f363e9939814c1d743cb9b..ba19635f04f87aab13284e8eb3962d723169abda 100644
--- a/Filters/Extraction/vtkExtractDataSets.cxx
+++ b/Filters/Extraction/vtkExtractDataSets.cxx
@@ -27,6 +27,7 @@
 #include <cassert>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtractDataSets::vtkInternals
 {
 public:
@@ -152,3 +153,4 @@ void vtkExtractDataSets::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractDataSets.h b/Filters/Extraction/vtkExtractDataSets.h
index 2e6af31b9190bc397e57726b4683ff0d18bb4aee..4e742aeca4592cbd66c3d7f36b6461fb99061b25 100644
--- a/Filters/Extraction/vtkExtractDataSets.h
+++ b/Filters/Extraction/vtkExtractDataSets.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersExtractionModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractDataSets : public vtkMultiBlockDataSetAlgorithm
 {
 public:
@@ -65,4 +66,5 @@ private:
   vtkInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractExodusGlobalTemporalVariables.cxx b/Filters/Extraction/vtkExtractExodusGlobalTemporalVariables.cxx
index ad994eb92e238d6f222ecee5a360a156e2199fb8..9cc8640a3775236a1007175f2da9d6b7fb8be3a6 100644
--- a/Filters/Extraction/vtkExtractExodusGlobalTemporalVariables.cxx
+++ b/Filters/Extraction/vtkExtractExodusGlobalTemporalVariables.cxx
@@ -36,6 +36,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtractExodusGlobalTemporalVariables::vtkInternals
 {
   std::map<std::string, vtkSmartPointer<vtkAbstractArray>> Arrays;
@@ -414,3 +415,4 @@ void vtkExtractExodusGlobalTemporalVariables::PrintSelf(ostream& os, vtkIndent i
   os << indent << "AutoDetectGlobalTemporalDataArrays: " << this->AutoDetectGlobalTemporalDataArrays
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractExodusGlobalTemporalVariables.h b/Filters/Extraction/vtkExtractExodusGlobalTemporalVariables.h
index 9edaabe9d3889d282862c66a3ce6d4bdbdccce7a..37bf849d5c26ee3cd5cefec81168d322741ff280 100644
--- a/Filters/Extraction/vtkExtractExodusGlobalTemporalVariables.h
+++ b/Filters/Extraction/vtkExtractExodusGlobalTemporalVariables.h
@@ -51,6 +51,7 @@
 
 #include <memory> // for std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractExodusGlobalTemporalVariables : public vtkTableAlgorithm
 {
 public:
@@ -103,4 +104,5 @@ private:
   bool AutoDetectGlobalTemporalDataArrays;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractGeometry.cxx b/Filters/Extraction/vtkExtractGeometry.cxx
index 740ba35c008c0ab70733b9aa83521679b645aeec..f6284502da46ece2eab830e4bca0e5409bb95e2b 100644
--- a/Filters/Extraction/vtkExtractGeometry.cxx
+++ b/Filters/Extraction/vtkExtractGeometry.cxx
@@ -31,6 +31,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractGeometry);
 vtkCxxSetObjectMacro(vtkExtractGeometry, ImplicitFunction, vtkImplicitFunction);
 
@@ -326,3 +327,4 @@ void vtkExtractGeometry::PrintSelf(ostream& os, vtkIndent indent)
   os << indent
      << "Extract Only Boundary Cells: " << (this->ExtractOnlyBoundaryCells ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractGeometry.h b/Filters/Extraction/vtkExtractGeometry.h
index b2082ef86ae0cd2baeeffaf01464e595f7cf4612..d45457993a6b96d5e202d0f314829d8d430c4db7 100644
--- a/Filters/Extraction/vtkExtractGeometry.h
+++ b/Filters/Extraction/vtkExtractGeometry.h
@@ -42,6 +42,7 @@
 #include "vtkFiltersExtractionModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
 
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractGeometry : public vtkUnstructuredGridAlgorithm
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkExtractGeometry&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractGrid.cxx b/Filters/Extraction/vtkExtractGrid.cxx
index 3b5b961ac7ce80b8a7bbbe10ea7b1ad80f7760ee..dd55e7a95fee229f8a426ca3c910676b5e15ea2a 100644
--- a/Filters/Extraction/vtkExtractGrid.cxx
+++ b/Filters/Extraction/vtkExtractGrid.cxx
@@ -25,6 +25,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkStructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractGrid);
 
 // Construct object to extract all of the input data.
@@ -230,3 +231,4 @@ void vtkExtractGrid::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Include Boundary: " << (this->IncludeBoundary ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractGrid.h b/Filters/Extraction/vtkExtractGrid.h
index ef8b5befa2c4ee733ad1ce663aee71011f4e97e0..bbc286acf24493588d68552b7a825b58c04ecd94 100644
--- a/Filters/Extraction/vtkExtractGrid.h
+++ b/Filters/Extraction/vtkExtractGrid.h
@@ -44,6 +44,7 @@
 #include "vtkStructuredGridAlgorithm.h"
 
 // Forward Declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtractStructuredGridHelper;
 
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractGrid : public vtkStructuredGridAlgorithm
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkExtractGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractLevel.cxx b/Filters/Extraction/vtkExtractLevel.cxx
index 5841da70275343548909bf9f92f6cb0ee4aaaab5..39f824ce481a01bea4a6e5744044a76aaa7b0c6a 100644
--- a/Filters/Extraction/vtkExtractLevel.cxx
+++ b/Filters/Extraction/vtkExtractLevel.cxx
@@ -26,6 +26,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtractLevel::vtkSet : public std::set<unsigned int>
 {
 };
@@ -190,3 +191,4 @@ void vtkExtractLevel::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractLevel.h b/Filters/Extraction/vtkExtractLevel.h
index 5a8ea2c147ab0df678cc658563cb0b3b308f7ae7..902b8d756daa2f626e1377217e4542e04f6d2a4e 100644
--- a/Filters/Extraction/vtkExtractLevel.h
+++ b/Filters/Extraction/vtkExtractLevel.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersExtractionModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractLevel : public vtkMultiBlockDataSetAlgorithm
 {
 public:
@@ -64,4 +65,5 @@ private:
   vtkSet* Levels;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractParticlesOverTime.cxx b/Filters/Extraction/vtkExtractParticlesOverTime.cxx
index 09fe17b6aacb829c3c74485776f18ad3175fa1a7..26bf868de4ce52b6f6cb0515ed7e2a0e0d2d27f9 100644
--- a/Filters/Extraction/vtkExtractParticlesOverTime.cxx
+++ b/Filters/Extraction/vtkExtractParticlesOverTime.cxx
@@ -28,6 +28,7 @@
 #include <set>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractParticlesOverTime);
 
 namespace
@@ -367,3 +368,4 @@ void vtkExtractParticlesOverTime::PrintSelf(ostream& os, vtkIndent indent)
      << "IdChannelArray: " << (this->IdChannelArray.empty() ? "None" : this->IdChannelArray)
      << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractParticlesOverTime.h b/Filters/Extraction/vtkExtractParticlesOverTime.h
index 5e0f6aa09f702429d6aeb1dd2c0d4733ea018ea8..841b875d8189a21a791b60b7c0013c5642aa2403 100644
--- a/Filters/Extraction/vtkExtractParticlesOverTime.h
+++ b/Filters/Extraction/vtkExtractParticlesOverTime.h
@@ -33,6 +33,7 @@
 #include <memory>                       // For smart pointers
 #include <string>                       // For channel array name
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtractParticlesOverTimeInternals;
 
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractParticlesOverTime : public vtkDataSetAlgorithm
@@ -84,4 +85,5 @@ private:
   std::shared_ptr<vtkExtractParticlesOverTimeInternals> Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractPolyDataGeometry.cxx b/Filters/Extraction/vtkExtractPolyDataGeometry.cxx
index 2672b7b219e94ee58eeb35fb236894fabd43f342..cba10b24dfa8aed9ff13d3ee6646826ea3446b95 100644
--- a/Filters/Extraction/vtkExtractPolyDataGeometry.cxx
+++ b/Filters/Extraction/vtkExtractPolyDataGeometry.cxx
@@ -24,6 +24,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractPolyDataGeometry);
 vtkCxxSetObjectMacro(vtkExtractPolyDataGeometry, ImplicitFunction, vtkImplicitFunction);
 
@@ -403,3 +404,4 @@ void vtkExtractPolyDataGeometry::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Extract Boundary Cells: " << (this->ExtractBoundaryCells ? "On\n" : "Off\n");
   os << indent << "Pass Points: " << (this->PassPoints ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractPolyDataGeometry.h b/Filters/Extraction/vtkExtractPolyDataGeometry.h
index 6b61f4cb489df80e5b90dfacca70037b7fcc66ba..10f25237d39992c9bdb17c8175892ab6bab649c0 100644
--- a/Filters/Extraction/vtkExtractPolyDataGeometry.h
+++ b/Filters/Extraction/vtkExtractPolyDataGeometry.h
@@ -47,6 +47,7 @@
 #include "vtkFiltersExtractionModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
 
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractPolyDataGeometry : public vtkPolyDataAlgorithm
@@ -137,4 +138,5 @@ inline vtkIdType vtkExtractPolyDataGeometry::InsertPointInMap(
 }
 ///@}
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractRectilinearGrid.cxx b/Filters/Extraction/vtkExtractRectilinearGrid.cxx
index dd46a04424706ac61f1a9830a46bbddb9ac83b7d..f194d59fc9e729514b6ec48590fb26ccc2d7b725 100644
--- a/Filters/Extraction/vtkExtractRectilinearGrid.cxx
+++ b/Filters/Extraction/vtkExtractRectilinearGrid.cxx
@@ -25,6 +25,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkStructuredData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractRectilinearGrid);
 
 // Construct object to extract all of the input data.
@@ -245,3 +246,4 @@ void vtkExtractRectilinearGrid::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Include Boundary: " << (this->IncludeBoundary ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractRectilinearGrid.h b/Filters/Extraction/vtkExtractRectilinearGrid.h
index 383f919282830b6245b6bf1aa46c0bc085001e98..d4cbf13b376076fb5021eef58d80982988a1be64 100644
--- a/Filters/Extraction/vtkExtractRectilinearGrid.h
+++ b/Filters/Extraction/vtkExtractRectilinearGrid.h
@@ -33,6 +33,7 @@
 #include "vtkRectilinearGridAlgorithm.h"
 
 // Forward Declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtractStructuredGridHelper;
 
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractRectilinearGrid : public vtkRectilinearGridAlgorithm
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkExtractRectilinearGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractSelectedArraysOverTime.cxx b/Filters/Extraction/vtkExtractSelectedArraysOverTime.cxx
index 7443debe2b4d9cd2493d76d3949e9c3724f59602..5f8e15b8ee4c323984639d007dfb92de956960e6 100644
--- a/Filters/Extraction/vtkExtractSelectedArraysOverTime.cxx
+++ b/Filters/Extraction/vtkExtractSelectedArraysOverTime.cxx
@@ -27,6 +27,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 //****************************************************************************
 vtkStandardNewMacro(vtkExtractSelectedArraysOverTime);
 //------------------------------------------------------------------------------
@@ -277,3 +278,4 @@ int vtkExtractSelectedArraysOverTime::DetermineSelectionType(vtkSelection* sel)
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractSelectedArraysOverTime.h b/Filters/Extraction/vtkExtractSelectedArraysOverTime.h
index 7cd92aa7b0ba0a8eabdfda1b7bf016566636f778..aed369b85fce1ccf69b613c69b0bc51ab0b06558 100644
--- a/Filters/Extraction/vtkExtractSelectedArraysOverTime.h
+++ b/Filters/Extraction/vtkExtractSelectedArraysOverTime.h
@@ -36,6 +36,7 @@
 #include "vtkMultiBlockDataSetAlgorithm.h"
 #include "vtkSmartPointer.h" // for vtkSmartPointer.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkDataSetAttributes;
 class vtkExtractDataArraysOverTime;
@@ -144,4 +145,5 @@ private:
   bool IsExecuting;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractSelectedBlock.cxx b/Filters/Extraction/vtkExtractSelectedBlock.cxx
index 874fc4754891fc710caf719e708a0143c42d0934..ad948a4da1ac62fd53088f4a76b7105bd7746fde 100644
--- a/Filters/Extraction/vtkExtractSelectedBlock.cxx
+++ b/Filters/Extraction/vtkExtractSelectedBlock.cxx
@@ -29,6 +29,7 @@
 #include "vtkUnsignedIntArray.h"
 
 #include <unordered_set>
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractSelectedBlock);
 //------------------------------------------------------------------------------
 vtkExtractSelectedBlock::vtkExtractSelectedBlock() = default;
@@ -227,3 +228,4 @@ void vtkExtractSelectedBlock::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractSelectedBlock.h b/Filters/Extraction/vtkExtractSelectedBlock.h
index 2b6410db8258c473955fb6b46ee63a4aefdf970c..f21e6a5dfccde16b4362ae32d40f196437d7f617 100644
--- a/Filters/Extraction/vtkExtractSelectedBlock.h
+++ b/Filters/Extraction/vtkExtractSelectedBlock.h
@@ -49,6 +49,7 @@
 #include "vtkExtractSelectionBase.h"
 #include "vtkFiltersExtractionModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTK_DEPRECATED_IN_9_2_0("Use vtkExtractSelection instead of vtkExtractSelectedBlock.")
   VTKFILTERSEXTRACTION_EXPORT vtkExtractSelectedBlock : public vtkExtractSelectionBase
 {
@@ -77,6 +78,7 @@ private:
   void operator=(const vtkExtractSelectedBlock&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkExtractSelectedBlock.h
diff --git a/Filters/Extraction/vtkExtractSelectedIds.cxx b/Filters/Extraction/vtkExtractSelectedIds.cxx
index a9e10d58178947019745ddc4aa016616a905fd7c..de5a6e89f9d72fcbe0ee03a451fad06405c44072 100644
--- a/Filters/Extraction/vtkExtractSelectedIds.cxx
+++ b/Filters/Extraction/vtkExtractSelectedIds.cxx
@@ -39,6 +39,7 @@
 #include "vtkStringArray.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractSelectedIds);
 
 //------------------------------------------------------------------------------
@@ -987,3 +988,4 @@ void vtkExtractSelectedIds::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractSelectedIds.h b/Filters/Extraction/vtkExtractSelectedIds.h
index 6dc2ab04c27804bb3e4962bf7e617291b61eeb8b..b65d518371aea36ae4e9341a7092713ba3873fca 100644
--- a/Filters/Extraction/vtkExtractSelectedIds.h
+++ b/Filters/Extraction/vtkExtractSelectedIds.h
@@ -51,6 +51,7 @@
 #include "vtkExtractSelectionBase.h"
 #include "vtkFiltersExtractionModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSelection;
 class vtkSelectionNode;
 
@@ -80,6 +81,7 @@ private:
   void operator=(const vtkExtractSelectedIds&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkExtractSelectedIds.h
diff --git a/Filters/Extraction/vtkExtractSelectedLocations.cxx b/Filters/Extraction/vtkExtractSelectedLocations.cxx
index 6075ad0d36edd0a55725a0beff7496008f2aa9dc..251a105ad67e677d88a4b798413c5b9fd862325f 100644
--- a/Filters/Extraction/vtkExtractSelectedLocations.cxx
+++ b/Filters/Extraction/vtkExtractSelectedLocations.cxx
@@ -37,6 +37,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractSelectedLocations);
 
 //------------------------------------------------------------------------------
@@ -558,3 +559,4 @@ void vtkExtractSelectedLocations::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractSelectedLocations.h b/Filters/Extraction/vtkExtractSelectedLocations.h
index 1eeee1306194595a88be652b4d3ea64286e43bc3..56919f18a9423b0260a3ec2c4a623b88da4923ed 100644
--- a/Filters/Extraction/vtkExtractSelectedLocations.h
+++ b/Filters/Extraction/vtkExtractSelectedLocations.h
@@ -49,6 +49,7 @@
 #include "vtkExtractSelectionBase.h"
 #include "vtkFiltersExtractionModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSelection;
 class vtkSelectionNode;
 
@@ -75,6 +76,7 @@ private:
   void operator=(const vtkExtractSelectedLocations&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkExtractSelectedLocations.h
diff --git a/Filters/Extraction/vtkExtractSelectedPolyDataIds.cxx b/Filters/Extraction/vtkExtractSelectedPolyDataIds.cxx
index 676b69463789ad2888d0b89f5730cd5bbe0e114c..60094800a43f18c14c38889518cf3896bd846414 100644
--- a/Filters/Extraction/vtkExtractSelectedPolyDataIds.cxx
+++ b/Filters/Extraction/vtkExtractSelectedPolyDataIds.cxx
@@ -29,6 +29,7 @@
 #include "vtkSelection.h"
 #include "vtkSelectionNode.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractSelectedPolyDataIds);
 
 //------------------------------------------------------------------------------
@@ -145,3 +146,4 @@ int vtkExtractSelectedPolyDataIds::FillInputPortInformation(int port, vtkInforma
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractSelectedPolyDataIds.h b/Filters/Extraction/vtkExtractSelectedPolyDataIds.h
index f96683c3695e3431685a526492b8eb4b72302e21..8a669ef94b62777935921919ff54ece54e340c9d 100644
--- a/Filters/Extraction/vtkExtractSelectedPolyDataIds.h
+++ b/Filters/Extraction/vtkExtractSelectedPolyDataIds.h
@@ -47,6 +47,7 @@
 #include "vtkFiltersExtractionModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSelection;
 
 class VTK_DEPRECATED_IN_9_2_0("Use vtkExtractSelection instead of vtkExtractSelectedPolyDataIds.")
@@ -71,6 +72,7 @@ private:
   void operator=(const vtkExtractSelectedPolyDataIds&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkExtractSelectedPolyDataIds.h
diff --git a/Filters/Extraction/vtkExtractSelectedRows.cxx b/Filters/Extraction/vtkExtractSelectedRows.cxx
index 9eb834b0cf16878bc58358601a849d0ed861a15c..a3f6872929e31c332dc5534365caf75d8673dadb 100644
--- a/Filters/Extraction/vtkExtractSelectedRows.cxx
+++ b/Filters/Extraction/vtkExtractSelectedRows.cxx
@@ -50,6 +50,7 @@
 #include <map>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractSelectedRows);
 //------------------------------------------------------------------------------
 vtkExtractSelectedRows::vtkExtractSelectedRows()
@@ -241,3 +242,4 @@ void vtkExtractSelectedRows::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "AddOriginalRowIdsArray: " << this->AddOriginalRowIdsArray << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractSelectedRows.h b/Filters/Extraction/vtkExtractSelectedRows.h
index b55e1b562f6e2a027dec6248323660bcd2c80dc9..56a99a74345f5ac39ba01bb7dcac9770d98434b1 100644
--- a/Filters/Extraction/vtkExtractSelectedRows.h
+++ b/Filters/Extraction/vtkExtractSelectedRows.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersExtractionModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractSelectedRows : public vtkTableAlgorithm
 {
 public:
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkExtractSelectedRows&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractSelectedThresholds.cxx b/Filters/Extraction/vtkExtractSelectedThresholds.cxx
index 9cc9d4f66d1b3d14c2c7f6a37f0891e2567af777..633c64144ea511821c71a9efd9628256e1894193 100644
--- a/Filters/Extraction/vtkExtractSelectedThresholds.cxx
+++ b/Filters/Extraction/vtkExtractSelectedThresholds.cxx
@@ -39,6 +39,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractSelectedThresholds);
 
 //------------------------------------------------------------------------------
@@ -772,3 +773,4 @@ int vtkExtractSelectedThresholds::EvaluateValue(vtkDataArray* scalars, int comp_
     *InsideCount = inside;
   return keepCell;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractSelectedThresholds.h b/Filters/Extraction/vtkExtractSelectedThresholds.h
index e5b32b955bd54da2f2778aef18cdc769fb530411..345a3873ffdd8f23c0ab629aa1f2bbeab8033ced 100644
--- a/Filters/Extraction/vtkExtractSelectedThresholds.h
+++ b/Filters/Extraction/vtkExtractSelectedThresholds.h
@@ -53,6 +53,7 @@
 #include "vtkExtractSelectionBase.h"
 #include "vtkFiltersExtractionModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkSelection;
 class vtkSelectionNode;
@@ -130,6 +131,7 @@ private:
   void operator=(const vtkExtractSelectedThresholds&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkExtractSelectedThresholds.h
diff --git a/Filters/Extraction/vtkExtractSelection.cxx b/Filters/Extraction/vtkExtractSelection.cxx
index 5c91265cc1076e7156ddeaf11465bc052220d4d4..3ee7cdd5cd3945976affa397752bbf338fcd6a73 100644
--- a/Filters/Extraction/vtkExtractSelection.cxx
+++ b/Filters/Extraction/vtkExtractSelection.cxx
@@ -46,6 +46,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractSelection);
 //------------------------------------------------------------------------------
 vtkExtractSelection::vtkExtractSelection()
@@ -670,3 +671,4 @@ void vtkExtractSelection::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "PreserveTopology: " << this->PreserveTopology << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractSelection.h b/Filters/Extraction/vtkExtractSelection.h
index 93146c015a07c7df300a1d6288804cc32f34ee9f..d72a23207117a3b510f34caec9ee7db9b9d409ef 100644
--- a/Filters/Extraction/vtkExtractSelection.h
+++ b/Filters/Extraction/vtkExtractSelection.h
@@ -41,6 +41,7 @@
 #include "vtkSelectionNode.h" // for vtkSelectionNode::SelectionContent
 #include "vtkSmartPointer.h"  // for smart pointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSignedCharArray;
 class vtkSelection;
 class vtkSelectionNode;
@@ -142,4 +143,5 @@ private:
   void operator=(const vtkExtractSelection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractTensorComponents.cxx b/Filters/Extraction/vtkExtractTensorComponents.cxx
index 62cbbf573ec242984efd4683899ef4c39bfb96cd..d581ad98807c08d689bc85aa3d3955bb35e930f9 100644
--- a/Filters/Extraction/vtkExtractTensorComponents.cxx
+++ b/Filters/Extraction/vtkExtractTensorComponents.cxx
@@ -24,6 +24,7 @@
 #include "vtkPointData.h"
 #include "vtkSMPTools.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractTensorComponents);
 
 //------------------------------------------------------------------------------
@@ -354,3 +355,4 @@ void vtkExtractTensorComponents::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Precision: " << this->OutputPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractTensorComponents.h b/Filters/Extraction/vtkExtractTensorComponents.h
index 8f26330c462b99f4484eab176b1566fb24926126..fef2dbce310bbfdec3f3f4c66a9dd34fe8de9b85 100644
--- a/Filters/Extraction/vtkExtractTensorComponents.h
+++ b/Filters/Extraction/vtkExtractTensorComponents.h
@@ -61,6 +61,7 @@
 #define VTK_EXTRACT_NONNEGATIVE_DETERMINANT 3
 #define VTK_EXTRACT_TRACE 4
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractTensorComponents : public vtkDataSetAlgorithm
 {
 public:
@@ -249,4 +250,5 @@ private:
   void operator=(const vtkExtractTensorComponents&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractTimeSteps.cxx b/Filters/Extraction/vtkExtractTimeSteps.cxx
index c2ce84b70976d7cc58efc21159d90c36a1fdf4e1..5dba603a0f0951eb074cd0d903f657a8f3141118 100644
--- a/Filters/Extraction/vtkExtractTimeSteps.cxx
+++ b/Filters/Extraction/vtkExtractTimeSteps.cxx
@@ -24,6 +24,7 @@
 #include <cmath>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractTimeSteps);
 
 vtkExtractTimeSteps::vtkExtractTimeSteps()
@@ -256,3 +257,4 @@ int vtkExtractTimeSteps::RequestData(
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractTimeSteps.h b/Filters/Extraction/vtkExtractTimeSteps.h
index b94442afaef003dba6f8aa23370ab27f7f3715f1..e23df0f54dae5b0f52ad0b076644ccd20008eea2 100644
--- a/Filters/Extraction/vtkExtractTimeSteps.h
+++ b/Filters/Extraction/vtkExtractTimeSteps.h
@@ -40,6 +40,7 @@
 
 #include <set> // for time step indices
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractTimeSteps : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkExtractTimeSteps&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkExtractTimeSteps_h
diff --git a/Filters/Extraction/vtkExtractUnstructuredGrid.cxx b/Filters/Extraction/vtkExtractUnstructuredGrid.cxx
index 1caf708c98cb6d5721bce967280fcbb556b522ca..1023484eaa690dd94089bb794ff975fed9f34e67 100644
--- a/Filters/Extraction/vtkExtractUnstructuredGrid.cxx
+++ b/Filters/Extraction/vtkExtractUnstructuredGrid.cxx
@@ -25,6 +25,7 @@
 #include "vtkPointData.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractUnstructuredGrid);
 
 // Construct with all types of clipping turned off.
@@ -338,3 +339,4 @@ void vtkExtractUnstructuredGrid::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Locator: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractUnstructuredGrid.h b/Filters/Extraction/vtkExtractUnstructuredGrid.h
index bf9372609ad62a7f961b1e4558f034aaf4e7574d..f8822da023a4e7e290275f82971d182c1c183d3f 100644
--- a/Filters/Extraction/vtkExtractUnstructuredGrid.h
+++ b/Filters/Extraction/vtkExtractUnstructuredGrid.h
@@ -42,6 +42,7 @@
 #include "vtkFiltersExtractionModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractUnstructuredGrid : public vtkUnstructuredGridAlgorithm
@@ -180,4 +181,5 @@ private:
   void operator=(const vtkExtractUnstructuredGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkExtractVectorComponents.cxx b/Filters/Extraction/vtkExtractVectorComponents.cxx
index d4ed6e9304754fb999f47b999658724a56ade6d4..813c06b1d6a83d64635eceda2b38ff3147dc8db9 100644
--- a/Filters/Extraction/vtkExtractVectorComponents.cxx
+++ b/Filters/Extraction/vtkExtractVectorComponents.cxx
@@ -27,6 +27,7 @@
 #include "vtkPointData.h"
 #include "vtkSMPTools.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractVectorComponents);
 
 //------------------------------------------------------------------------------
@@ -346,3 +347,4 @@ void vtkExtractVectorComponents::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "ExtractToFieldData: " << this->ExtractToFieldData << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkExtractVectorComponents.h b/Filters/Extraction/vtkExtractVectorComponents.h
index fc19af0dba6767553d7595d54ac4a09fb04e6aa2..3eba94514c73475832646d8cc8839562038f5f21 100644
--- a/Filters/Extraction/vtkExtractVectorComponents.h
+++ b/Filters/Extraction/vtkExtractVectorComponents.h
@@ -42,6 +42,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersExtractionModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKFILTERSEXTRACTION_EXPORT vtkExtractVectorComponents : public vtkDataSetAlgorithm
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkExtractVectorComponents&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkFrustumSelector.cxx b/Filters/Extraction/vtkFrustumSelector.cxx
index 3651ebb44606a07799c63899ee1bcf627ffa82c1..170b0e3af35f09d09e6016b59d60be6b4125beca 100644
--- a/Filters/Extraction/vtkFrustumSelector.cxx
+++ b/Filters/Extraction/vtkFrustumSelector.cxx
@@ -36,6 +36,7 @@
 
 #define MAXPLANE 6
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 //------------------------------------------------------------------------------
@@ -773,3 +774,4 @@ int vtkFrustumSelector::OverallBoundsTest(double bounds[6])
   rc = functor.ABoxFrustumIsect(bounds, vox);
   return (rc > 0);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkFrustumSelector.h b/Filters/Extraction/vtkFrustumSelector.h
index 487ec7ad974bdd324e59de8eb696aa393f7447bd..21a92155b69e6ed721d21ad0d7c56716dea37f38 100644
--- a/Filters/Extraction/vtkFrustumSelector.h
+++ b/Filters/Extraction/vtkFrustumSelector.h
@@ -29,6 +29,7 @@
 
 #include "vtkSmartPointer.h" // for smart pointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkPlanes;
 class vtkSignedCharArray;
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkFrustumSelector&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkHierarchicalDataExtractDataSets.cxx b/Filters/Extraction/vtkHierarchicalDataExtractDataSets.cxx
index 18ba801901d865cc69ef22e6b3359072696b39e5..3bbd970a7acd77d410516593cde8821c2c9448a2 100644
--- a/Filters/Extraction/vtkHierarchicalDataExtractDataSets.cxx
+++ b/Filters/Extraction/vtkHierarchicalDataExtractDataSets.cxx
@@ -15,6 +15,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkHierarchicalDataExtractDataSets.h"
 
 #include "vtkObjectFactory.h"
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHierarchicalDataExtractDataSets);
 
 //------------------------------------------------------------------------------
@@ -28,3 +29,4 @@ void vtkHierarchicalDataExtractDataSets::PrintSelf(ostream& os, vtkIndent indent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkHierarchicalDataExtractDataSets.h b/Filters/Extraction/vtkHierarchicalDataExtractDataSets.h
index b7d70379e5a3bd3452c06e1d9a00b465ec9ebc8d..fe07c7c906d544e18d13fde29a1d13b216068b5d 100644
--- a/Filters/Extraction/vtkHierarchicalDataExtractDataSets.h
+++ b/Filters/Extraction/vtkHierarchicalDataExtractDataSets.h
@@ -28,6 +28,7 @@
 #include "vtkExtractDataSets.h"
 #include "vtkFiltersExtractionModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkHierarchicalDataExtractDataSetsInternals;
 
 class VTKFILTERSEXTRACTION_EXPORT vtkHierarchicalDataExtractDataSets : public vtkExtractDataSets
@@ -46,4 +47,5 @@ private:
   void operator=(const vtkHierarchicalDataExtractDataSets&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkHierarchicalDataExtractLevel.cxx b/Filters/Extraction/vtkHierarchicalDataExtractLevel.cxx
index f0a89d1dfd52c6262350380fdedcb9f1be757805..7ae748f3e927ce6fcc2f27c6e686d20da24c9487 100644
--- a/Filters/Extraction/vtkHierarchicalDataExtractLevel.cxx
+++ b/Filters/Extraction/vtkHierarchicalDataExtractLevel.cxx
@@ -16,6 +16,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHierarchicalDataExtractLevel);
 
 //------------------------------------------------------------------------------
@@ -29,3 +30,4 @@ void vtkHierarchicalDataExtractLevel::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkHierarchicalDataExtractLevel.h b/Filters/Extraction/vtkHierarchicalDataExtractLevel.h
index fd398e3bee34267fdfdde657f26fd7c38c3225d8..f249a841f2237c1e27d0aafc8cd2f92ae10305c8 100644
--- a/Filters/Extraction/vtkHierarchicalDataExtractLevel.h
+++ b/Filters/Extraction/vtkHierarchicalDataExtractLevel.h
@@ -25,6 +25,7 @@
 #include "vtkExtractLevel.h"
 #include "vtkFiltersExtractionModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSEXTRACTION_EXPORT vtkHierarchicalDataExtractLevel : public vtkExtractLevel
 {
 public:
@@ -42,4 +43,5 @@ private:
   void operator=(const vtkHierarchicalDataExtractLevel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkLocationSelector.cxx b/Filters/Extraction/vtkLocationSelector.cxx
index 114a27e981b68df4027c60038cacda228606fc37..d3f84bb5a9502f0b29ccc89753e806b8aa881324 100644
--- a/Filters/Extraction/vtkLocationSelector.cxx
+++ b/Filters/Extraction/vtkLocationSelector.cxx
@@ -28,6 +28,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLocationSelector::vtkInternals
 {
 public:
@@ -227,3 +228,4 @@ void vtkLocationSelector::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkLocationSelector.h b/Filters/Extraction/vtkLocationSelector.h
index 08c88e7ada745b9ea442a13788e2a4810c1d8956..c58c9f39ee2616e6aa24867c73ed354b94527e7b 100644
--- a/Filters/Extraction/vtkLocationSelector.h
+++ b/Filters/Extraction/vtkLocationSelector.h
@@ -27,6 +27,7 @@
 
 #include <memory> // unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSEXTRACTION_EXPORT vtkLocationSelector : public vtkSelector
 {
 public:
@@ -53,4 +54,5 @@ private:
   std::unique_ptr<vtkInternals> Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkProbeSelectedLocations.cxx b/Filters/Extraction/vtkProbeSelectedLocations.cxx
index c0639deabca51bfa971d6ede60bdc926a37d6fdd..d3788dd268cec5a7f1fe0734a4dc55d27041721d 100644
--- a/Filters/Extraction/vtkProbeSelectedLocations.cxx
+++ b/Filters/Extraction/vtkProbeSelectedLocations.cxx
@@ -26,6 +26,7 @@
 #include "vtkTrivialProducer.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProbeSelectedLocations);
 //------------------------------------------------------------------------------
 vtkProbeSelectedLocations::vtkProbeSelectedLocations() = default;
@@ -154,3 +155,4 @@ void vtkProbeSelectedLocations::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkProbeSelectedLocations.h b/Filters/Extraction/vtkProbeSelectedLocations.h
index e4d790457ae58831464edc39747eac467f63332c..530ae2be8945153c3272d924d0944b33fe52b817 100644
--- a/Filters/Extraction/vtkProbeSelectedLocations.h
+++ b/Filters/Extraction/vtkProbeSelectedLocations.h
@@ -31,6 +31,7 @@
 #include "vtkExtractSelectionBase.h"
 #include "vtkFiltersExtractionModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSEXTRACTION_EXPORT vtkProbeSelectedLocations : public vtkExtractSelectionBase
 {
 public:
@@ -55,4 +56,5 @@ private:
   void operator=(const vtkProbeSelectedLocations&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkSelector.cxx b/Filters/Extraction/vtkSelector.cxx
index 7deb6d5f443c9131a5755863f3fb941e06a0478e..e9fc47ee36be93d12d3a27155112a738ea178094 100644
--- a/Filters/Extraction/vtkSelector.cxx
+++ b/Filters/Extraction/vtkSelector.cxx
@@ -35,6 +35,7 @@
 #include "vtkUniformGridAMRDataIterator.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkSelector::vtkSelector() = default;
 
 //------------------------------------------------------------------------------
@@ -391,3 +392,4 @@ void vtkSelector::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "InsidednessArrayName: " << this->InsidednessArrayName << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkSelector.h b/Filters/Extraction/vtkSelector.h
index 6b786021ac581332faf6f955d870867e3a189f65..9bf070fd3b570f1cfd3215be2f4f8bb0d221cbff 100644
--- a/Filters/Extraction/vtkSelector.h
+++ b/Filters/Extraction/vtkSelector.h
@@ -29,6 +29,7 @@
 
 #include <set> // for std::set
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkDataObject;
 class vtkSelectionNode;
@@ -171,4 +172,5 @@ private:
   std::set<unsigned int> SubsetCompositeIds;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Extraction/vtkValueSelector.cxx b/Filters/Extraction/vtkValueSelector.cxx
index dcdc54d40d4a8264212c9eef566ff0104fe9e130..6de92f485a336ce5652b2479d7f2eafe381578cd 100644
--- a/Filters/Extraction/vtkValueSelector.cxx
+++ b/Filters/Extraction/vtkValueSelector.cxx
@@ -29,6 +29,7 @@
 
 #include <cassert>
 #include <type_traits>
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -610,3 +611,4 @@ void vtkValueSelector::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Extraction/vtkValueSelector.h b/Filters/Extraction/vtkValueSelector.h
index 66304385ab805a3a3275963cfef6fd68d7eeea7e..0b6744739130375a026ef5ec62787d9d4800e1b3 100644
--- a/Filters/Extraction/vtkValueSelector.h
+++ b/Filters/Extraction/vtkValueSelector.h
@@ -44,6 +44,7 @@
 
 #include <memory> // unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkConvertSelection;
 
 class VTKFILTERSEXTRACTION_EXPORT vtkValueSelector : public vtkSelector
@@ -73,4 +74,5 @@ private:
   std::unique_ptr<vtkInternals> Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkAMRInterpolatedVelocityField.cxx b/Filters/FlowPaths/vtkAMRInterpolatedVelocityField.cxx
index 1b282d53f36c418d410c6f10c53d4a7aeaa82c7f..f92dbb0f072c71cfbe5eec4a3d423f141fc8fba6 100644
--- a/Filters/FlowPaths/vtkAMRInterpolatedVelocityField.cxx
+++ b/Filters/FlowPaths/vtkAMRInterpolatedVelocityField.cxx
@@ -23,6 +23,7 @@
 #include "vtkUniformGrid.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 bool Inside(double q[3], double gbounds[6])
@@ -225,3 +226,4 @@ void vtkAMRInterpolatedVelocityField::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkAMRInterpolatedVelocityField.h b/Filters/FlowPaths/vtkAMRInterpolatedVelocityField.h
index 42580d120853bc3b6afed8da347385d74cf8a5a0..641d796c57f2f8658992d49783a38ede1a1c2340 100644
--- a/Filters/FlowPaths/vtkAMRInterpolatedVelocityField.h
+++ b/Filters/FlowPaths/vtkAMRInterpolatedVelocityField.h
@@ -28,6 +28,7 @@
 
 #include "vtkAbstractInterpolatedVelocityField.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOverlappingAMR;
 
 class VTKFILTERSFLOWPATHS_EXPORT vtkAMRInterpolatedVelocityField
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkAMRInterpolatedVelocityField&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkAbstractInterpolatedVelocityField.cxx b/Filters/FlowPaths/vtkAbstractInterpolatedVelocityField.cxx
index 64c67eb49ead5347aba05184fb5e50ddcc3d18d4..ec20d287e339fd22e52a5a809eb308fd3b02aa77 100644
--- a/Filters/FlowPaths/vtkAbstractInterpolatedVelocityField.cxx
+++ b/Filters/FlowPaths/vtkAbstractInterpolatedVelocityField.cxx
@@ -31,6 +31,7 @@
 #include "vtkUnstructuredGrid.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkAbstractInterpolatedVelocityField, FindCellStrategy, vtkFindCellStrategy);
 
 //------------------------------------------------------------------------------
@@ -605,3 +606,4 @@ void vtkAbstractInterpolatedVelocityField::PrintSelf(ostream& os, vtkIndent inde
   os << indent << "FindCell Strategy: " << endl;
   this->FindCellStrategy->PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkAbstractInterpolatedVelocityField.h b/Filters/FlowPaths/vtkAbstractInterpolatedVelocityField.h
index 27c6235e72a9561131cedff1b5d021992e0f73e3..5f6cbf240a67df8af2175240c89adfa38744a3c9 100644
--- a/Filters/FlowPaths/vtkAbstractInterpolatedVelocityField.h
+++ b/Filters/FlowPaths/vtkAbstractInterpolatedVelocityField.h
@@ -84,6 +84,7 @@
 
 #include <vector> // for weights
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellLocatorStrategy;
 class vtkClosestPointStrategy;
 class vtkClosestNPointsStrategy;
@@ -388,4 +389,5 @@ private:
   void operator=(const vtkAbstractInterpolatedVelocityField&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkCachingInterpolatedVelocityField.cxx b/Filters/FlowPaths/vtkCachingInterpolatedVelocityField.cxx
index a6e37b928b942afbf3262e70618b8d9aa38915ee..0f454dc0019968f8364766f3dd86d3da786b9b2e 100644
--- a/Filters/FlowPaths/vtkCachingInterpolatedVelocityField.cxx
+++ b/Filters/FlowPaths/vtkCachingInterpolatedVelocityField.cxx
@@ -30,6 +30,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCachingInterpolatedVelocityField);
 //------------------------------------------------------------------------------
 const double IVFDataSetInfo::TOLERANCE_SCALE = 1.0E-8;
@@ -462,3 +463,4 @@ void vtkCachingInterpolatedVelocityField::PrintSelf(ostream& os, vtkIndent inden
   os << indent << "LastCacheIndex : " << this->LastCacheIndex << endl;
 }
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkCachingInterpolatedVelocityField.h b/Filters/FlowPaths/vtkCachingInterpolatedVelocityField.h
index 9644490e51d1c84c247a0beb3a7a3b4a6eb5e014..54c1bf085335fca1f01c9465294cc117d1a31cbd 100644
--- a/Filters/FlowPaths/vtkCachingInterpolatedVelocityField.h
+++ b/Filters/FlowPaths/vtkCachingInterpolatedVelocityField.h
@@ -51,6 +51,7 @@
 
 #include <vector> // we need them
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkDataArray;
 class vtkPointData;
@@ -217,6 +218,7 @@ public:
 
 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkCachingInterpolatedVelocityField.h
diff --git a/Filters/FlowPaths/vtkCellLocatorInterpolatedVelocityField.cxx b/Filters/FlowPaths/vtkCellLocatorInterpolatedVelocityField.cxx
index cf92996a97f636e209824949b67c5bfcb6661aa7..9f5354f635e99ed3a8b7f1a161f6d3a894700cda 100644
--- a/Filters/FlowPaths/vtkCellLocatorInterpolatedVelocityField.cxx
+++ b/Filters/FlowPaths/vtkCellLocatorInterpolatedVelocityField.cxx
@@ -20,6 +20,7 @@
 #include "vtkCellLocatorStrategy.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellLocatorInterpolatedVelocityField);
 
 //------------------------------------------------------------------------------
@@ -38,3 +39,4 @@ void vtkCellLocatorInterpolatedVelocityField::PrintSelf(ostream& os, vtkIndent i
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkCellLocatorInterpolatedVelocityField.h b/Filters/FlowPaths/vtkCellLocatorInterpolatedVelocityField.h
index 437c66555432cc12abfe0990363953e56c4ac55c..91c10535e6a2341421882400fb3023dca0ecaad2 100644
--- a/Filters/FlowPaths/vtkCellLocatorInterpolatedVelocityField.h
+++ b/Filters/FlowPaths/vtkCellLocatorInterpolatedVelocityField.h
@@ -55,6 +55,7 @@
 #include "vtkDeprecation.h"            // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkFiltersFlowPathsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractCellLocator;
 
 class VTK_DEPRECATED_IN_9_2_0(
@@ -85,6 +86,7 @@ private:
   void operator=(const vtkCellLocatorInterpolatedVelocityField&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkCellLocatorInterpolatedVelocityField.h
diff --git a/Filters/FlowPaths/vtkCompositeInterpolatedVelocityField.cxx b/Filters/FlowPaths/vtkCompositeInterpolatedVelocityField.cxx
index 291a7b8b470cc1655a1f33c8daf3fbffe8d75030..30de566b63248d73844f9532521785ceb2888c2d 100644
--- a/Filters/FlowPaths/vtkCompositeInterpolatedVelocityField.cxx
+++ b/Filters/FlowPaths/vtkCompositeInterpolatedVelocityField.cxx
@@ -23,6 +23,7 @@
 
 #include <array>
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkCompositeInterpolatedVelocityField::DataSetBoundsInformation::DataSetBoundsInformation()
   : DataSet(nullptr)
@@ -258,3 +259,4 @@ void vtkCompositeInterpolatedVelocityField::PrintSelf(ostream& os, vtkIndent ind
   os << indent << "CacheDataSetHit: " << this->CacheDataSetHit << endl;
   os << indent << "CacheDataSetMiss: " << this->CacheDataSetMiss << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkCompositeInterpolatedVelocityField.h b/Filters/FlowPaths/vtkCompositeInterpolatedVelocityField.h
index 99c7bb1818d8207007ad98bdbcc405e1af03fc1f..9a225ca682b6399368d66d617114c51f126e9dd5 100644
--- a/Filters/FlowPaths/vtkCompositeInterpolatedVelocityField.h
+++ b/Filters/FlowPaths/vtkCompositeInterpolatedVelocityField.h
@@ -41,6 +41,7 @@
 #include <array>  // For array
 #include <vector> // For vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKFILTERSFLOWPATHS_EXPORT vtkCompositeInterpolatedVelocityField
@@ -154,4 +155,5 @@ private:
   void operator=(const vtkCompositeInterpolatedVelocityField&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkEvenlySpacedStreamlines2D.cxx b/Filters/FlowPaths/vtkEvenlySpacedStreamlines2D.cxx
index de7eca7456214a8417931764fd880fd5471c5b9c..4f5d56bda9b199e0ce13eedb570bccfc5759542b 100644
--- a/Filters/FlowPaths/vtkEvenlySpacedStreamlines2D.cxx
+++ b/Filters/FlowPaths/vtkEvenlySpacedStreamlines2D.cxx
@@ -53,6 +53,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <iostream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkEvenlySpacedStreamlines2D);
 vtkCxxSetObjectMacro(vtkEvenlySpacedStreamlines2D, Integrator, vtkInitialValueProblemSolver);
 vtkCxxSetObjectMacro(
@@ -869,3 +870,4 @@ void vtkEvenlySpacedStreamlines2D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Integrator: " << this->Integrator << endl;
   os << indent << "Vorticity computation: " << (this->ComputeVorticity ? " On" : " Off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkEvenlySpacedStreamlines2D.h b/Filters/FlowPaths/vtkEvenlySpacedStreamlines2D.h
index 5a9d42f3c605658bc0304c25172c5ae48ce39bac..0c0a4689a3d67c9b3ae4cedbddca6f3cacde2fbb 100644
--- a/Filters/FlowPaths/vtkEvenlySpacedStreamlines2D.h
+++ b/Filters/FlowPaths/vtkEvenlySpacedStreamlines2D.h
@@ -95,6 +95,7 @@
 #include <array>  // for std::array
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractInterpolatedVelocityField;
 class vtkCompositeDataSet;
 class vtkDataArray;
@@ -383,4 +384,5 @@ private:
   void operator=(const vtkEvenlySpacedStreamlines2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkInterpolatedVelocityField.cxx b/Filters/FlowPaths/vtkInterpolatedVelocityField.cxx
index b7e91aff9c4a69102d05d69542f5796b224f8a52..9c017fdbfadc63d91770bff8fe3079ee9170db90 100644
--- a/Filters/FlowPaths/vtkInterpolatedVelocityField.cxx
+++ b/Filters/FlowPaths/vtkInterpolatedVelocityField.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInterpolatedVelocityField);
 
 //------------------------------------------------------------------------------
@@ -36,3 +37,4 @@ void vtkInterpolatedVelocityField::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkInterpolatedVelocityField.h b/Filters/FlowPaths/vtkInterpolatedVelocityField.h
index 949ca52ba1c1bcb2ae68062ebbcb62cebb5dc843..fc3ccf8bf428967442d186c887c8be0d4910a0f9 100644
--- a/Filters/FlowPaths/vtkInterpolatedVelocityField.h
+++ b/Filters/FlowPaths/vtkInterpolatedVelocityField.h
@@ -62,6 +62,7 @@
 #include "vtkDeprecation.h"            // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkFiltersFlowPathsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTK_DEPRECATED_IN_9_2_0(
   "Use vtkCompositeInterpolatedVelocityField instead of vtkCellLocatorInterpolatedVelocityField "
   "and set the desired strategy.") VTKFILTERSFLOWPATHS_EXPORT vtkInterpolatedVelocityField
@@ -90,6 +91,7 @@ private:
   void operator=(const vtkInterpolatedVelocityField&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkInterpolatedVelocityField.h
diff --git a/Filters/FlowPaths/vtkLagrangianBasicIntegrationModel.cxx b/Filters/FlowPaths/vtkLagrangianBasicIntegrationModel.cxx
index 4301a4103a51ce047099ae370e9cfd9ae5918f76..97a8b17caa16cc601fba610999b4972294801fd8 100644
--- a/Filters/FlowPaths/vtkLagrangianBasicIntegrationModel.cxx
+++ b/Filters/FlowPaths/vtkLagrangianBasicIntegrationModel.cxx
@@ -49,6 +49,7 @@
 
 //------------------------------------------------------------------------------
 typedef std::vector<vtkSmartPointer<vtkAbstractCellLocator>> LocatorsTypeBase;
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLocatorsType : public LocatorsTypeBase
 {
 };
@@ -1353,3 +1354,4 @@ void vtkLagrangianBasicIntegrationModel::InsertParticleData(
       break;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkLagrangianBasicIntegrationModel.h b/Filters/FlowPaths/vtkLagrangianBasicIntegrationModel.h
index b8f88b42bda13f1c354d0a8a1047c3e4e333becf..a0a445fd82903339bc6997cc58b0948e52f110c4 100644
--- a/Filters/FlowPaths/vtkLagrangianBasicIntegrationModel.h
+++ b/Filters/FlowPaths/vtkLagrangianBasicIntegrationModel.h
@@ -60,6 +60,7 @@
 #include <mutex> // for mutexes
 #include <queue> // for new particles
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkAbstractCellLocator;
 class vtkCell;
@@ -655,4 +656,5 @@ private:
   void operator=(const vtkLagrangianBasicIntegrationModel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkLagrangianMatidaIntegrationModel.cxx b/Filters/FlowPaths/vtkLagrangianMatidaIntegrationModel.cxx
index f0e7b69b003c3e3007fcc9377b7cc447dc19893f..dc3e871a30e191d8497647a382c1cee125bc6854 100644
--- a/Filters/FlowPaths/vtkLagrangianMatidaIntegrationModel.cxx
+++ b/Filters/FlowPaths/vtkLagrangianMatidaIntegrationModel.cxx
@@ -26,6 +26,7 @@
 
 #include <cstring>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkLagrangianMatidaIntegrationModel);
 
 //------------------------------------------------------------------------------
@@ -180,3 +181,4 @@ double vtkLagrangianMatidaIntegrationModel::GetDragCoefficient(const double* flo
   double reynolds = flowDensity * relativeSpeed * particleDiameter / dynVisc;
   return (1.0 + 0.15 * pow(reynolds, 0.687));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkLagrangianMatidaIntegrationModel.h b/Filters/FlowPaths/vtkLagrangianMatidaIntegrationModel.h
index e34437ef177c6942d5cc14ec411563dd6c15831e..ad5c9b7c9b2c251a3ff5bb81fb615bb67ba0637b 100644
--- a/Filters/FlowPaths/vtkLagrangianMatidaIntegrationModel.h
+++ b/Filters/FlowPaths/vtkLagrangianMatidaIntegrationModel.h
@@ -39,6 +39,7 @@
 #include "vtkFiltersFlowPathsModule.h" // For export macro
 #include "vtkLagrangianBasicIntegrationModel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSFLOWPATHS_EXPORT vtkLagrangianMatidaIntegrationModel
   : public vtkLagrangianBasicIntegrationModel
 {
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkLagrangianMatidaIntegrationModel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkLagrangianParticle.cxx b/Filters/FlowPaths/vtkLagrangianParticle.cxx
index 86f2135927ba62b55a38f8e65d13211130b877e9..742da8107bb862f203467a8e3c52d1d9fa60298c 100644
--- a/Filters/FlowPaths/vtkLagrangianParticle.cxx
+++ b/Filters/FlowPaths/vtkLagrangianParticle.cxx
@@ -20,6 +20,7 @@
 #include "vtkSetGet.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkLagrangianParticle::vtkLagrangianParticle(int numberOfVariables, vtkIdType seedId,
   vtkIdType particleId, vtkIdType seedArrayTupleIndex, double integrationTime,
   vtkPointData* seedData, int numberOfTrackedUserData)
@@ -387,3 +388,4 @@ void vtkLagrangianParticle::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "ThreadedData: " << this->ThreadedData << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkLagrangianParticle.h b/Filters/FlowPaths/vtkLagrangianParticle.h
index 10a84e4c39c39af0f1597b974c3418879fe73653..5f0b2a888d9483802a3ab8ba4c39f3415395786d 100644
--- a/Filters/FlowPaths/vtkLagrangianParticle.h
+++ b/Filters/FlowPaths/vtkLagrangianParticle.h
@@ -35,6 +35,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractCellLocator;
 class vtkBilinearQuadIntersection;
 class vtkDataSet;
@@ -494,5 +495,6 @@ protected:
   bool PManualShift;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkLagrangianParticle.h
diff --git a/Filters/FlowPaths/vtkLagrangianParticleTracker.cxx b/Filters/FlowPaths/vtkLagrangianParticleTracker.cxx
index 0242cd9d6f7d46fcf297d41965d1334b1889a1f3..88f297208a44944b6d9b1dab40364fcb3f8ae6d8 100644
--- a/Filters/FlowPaths/vtkLagrangianParticleTracker.cxx
+++ b/Filters/FlowPaths/vtkLagrangianParticleTracker.cxx
@@ -50,6 +50,7 @@
 #include <limits>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkLagrangianParticleTracker);
 vtkCxxSetObjectMacro(
   vtkLagrangianParticleTracker, IntegrationModel, vtkLagrangianBasicIntegrationModel);
@@ -1363,3 +1364,4 @@ void vtkLagrangianParticleTracker::DeleteParticle(vtkLagrangianParticle* particl
   this->IntegrationModel->ParticleAboutToBeDeleted(particle);
   delete particle;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkLagrangianParticleTracker.h b/Filters/FlowPaths/vtkLagrangianParticleTracker.h
index 98da915f0b262a7eb09e2cda4c5b63b6327c462b..a5540947a6c451204b22485aee3db65bb185766f 100644
--- a/Filters/FlowPaths/vtkLagrangianParticleTracker.h
+++ b/Filters/FlowPaths/vtkLagrangianParticleTracker.h
@@ -96,6 +96,7 @@
 #include <mutex>  // for mutexes
 #include <queue>  // for particle queue
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBoundingBox;
 class vtkCellArray;
 class vtkDataSet;
@@ -410,4 +411,5 @@ private:
   void operator=(const vtkLagrangianParticleTracker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkLagrangianThreadedData.h b/Filters/FlowPaths/vtkLagrangianThreadedData.h
index f5292682ca3a242399ab3c88f2aa85b5102b0db5..0cd642017541512f0aca0b1857eccb1026b8783a 100644
--- a/Filters/FlowPaths/vtkLagrangianThreadedData.h
+++ b/Filters/FlowPaths/vtkLagrangianThreadedData.h
@@ -29,6 +29,7 @@
 #include "vtkIdList.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 class vtkInitialValueProblemSolver;
 
@@ -57,5 +58,6 @@ struct VTKFILTERSFLOWPATHS_EXPORT vtkLagrangianThreadedData
   ~vtkLagrangianThreadedData() { delete this->BilinearQuadIntersection; }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLagrangianThreadedData_h
 // VTK-HeaderTest-Exclude: vtkLagrangianThreadedData.h
diff --git a/Filters/FlowPaths/vtkLinearTransformCellLocator.cxx b/Filters/FlowPaths/vtkLinearTransformCellLocator.cxx
index 60d731c4bfdc863e59968a14121cfecb508c02dc..e27d6830ecc1cea77fe6919587e52c7c44105c05 100644
--- a/Filters/FlowPaths/vtkLinearTransformCellLocator.cxx
+++ b/Filters/FlowPaths/vtkLinearTransformCellLocator.cxx
@@ -36,6 +36,7 @@
 
 static constexpr vtkIdType VTK_MAX_SAMPLE_POINTS = 100;
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkLinearTransformCellLocator);
 
@@ -536,3 +537,4 @@ bool vtkLinearTransformCellLocator::InsideCellBounds(double x[3], vtkIdType cell
   this->InverseTransform->InternalTransformPoint(x, xTransform);
   return this->CellLocator->InsideCellBounds(xTransform, cellId);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkLinearTransformCellLocator.h b/Filters/FlowPaths/vtkLinearTransformCellLocator.h
index bed9685dd04337270a505e1a1a19433e8659e3f8..d415a73db3b31dd2aab5d6c303518c053a88f3dd 100644
--- a/Filters/FlowPaths/vtkLinearTransformCellLocator.h
+++ b/Filters/FlowPaths/vtkLinearTransformCellLocator.h
@@ -42,6 +42,8 @@
 #include "vtkFiltersFlowPathsModule.h" // For export macro
 #include "vtkSmartPointer.h"           // For vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkTransform;
 
 class VTKFILTERSFLOWPATHS_EXPORT vtkLinearTransformCellLocator : public vtkAbstractCellLocator
@@ -218,4 +220,5 @@ private:
   void operator=(const vtkLinearTransformCellLocator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkModifiedBSPTree.cxx b/Filters/FlowPaths/vtkModifiedBSPTree.cxx
index 5bcbae7be24a4c66ed0e17f744da3f94365908dd..a806dd540d4561f02592bb7f36802d21bda162a5 100644
--- a/Filters/FlowPaths/vtkModifiedBSPTree.cxx
+++ b/Filters/FlowPaths/vtkModifiedBSPTree.cxx
@@ -32,6 +32,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkModifiedBSPTree);
 
 //------------------------------------------------------------------------------
@@ -1117,3 +1118,4 @@ bool BSPNode::Inside(double point[3]) const
     this->Bounds[2] <= point[1] && point[1] <= this->Bounds[3] && this->Bounds[4] <= point[2] &&
     point[2] <= this->Bounds[5];
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkModifiedBSPTree.h b/Filters/FlowPaths/vtkModifiedBSPTree.h
index 780265ad8215aab0eb4d306f6e8bde8f6725d56a..df348a2effff163c3ee42ec10c7f68065d6bb43c 100644
--- a/Filters/FlowPaths/vtkModifiedBSPTree.h
+++ b/Filters/FlowPaths/vtkModifiedBSPTree.h
@@ -164,6 +164,7 @@
 #include "vtkFiltersFlowPathsModule.h" // For export macro
 #include "vtkSmartPointer.h"           // required because it is nice
 
+VTK_ABI_NAMESPACE_BEGIN
 class Sorted_cell_extents_Lists;
 class BSPNode;
 class vtkGenericCell;
@@ -351,4 +352,5 @@ public:
 
 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkParallelVectors.cxx b/Filters/FlowPaths/vtkParallelVectors.cxx
index 113aee13c3030c38a679d932d318cb6007e6923f..678804410c77bfaf9da19737eabececada0be92e 100644
--- a/Filters/FlowPaths/vtkParallelVectors.cxx
+++ b/Filters/FlowPaths/vtkParallelVectors.cxx
@@ -400,6 +400,7 @@ bool surfaceTessellationForCell(vtkCell3D* cell, std::vector<std::array<vtkIdTyp
 }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkParallelVectors);
 
@@ -443,9 +444,12 @@ void vtkParallelVectors::Postfilter(
   }
 }
 
+VTK_ABI_NAMESPACE_END
+
 //------------------------------------------------------------------------------
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 /**
  * Struct to store the coordinates and the additional criteria of a surface triangle point
  */
@@ -642,8 +646,11 @@ struct CollectValidCellSurfacePointsWorker
     vtkSMPTools::For(0, input->GetNumberOfCells(), functor);
   }
 };
+
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 int vtkParallelVectors::RequestData(
   vtkInformation* info, vtkInformationVector** inputVector, vtkInformationVector* outputVector)
@@ -861,3 +868,4 @@ void vtkParallelVectors::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "SecondVectorFieldName:"
      << (this->SecondVectorFieldName ? this->SecondVectorFieldName : "(undefined)") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkParallelVectors.h b/Filters/FlowPaths/vtkParallelVectors.h
index 66dada050d7abd6b45537f5c12ab20f625ae8892..3eef18015adfd1481de17b6ddfa461db9aec14ef 100644
--- a/Filters/FlowPaths/vtkParallelVectors.h
+++ b/Filters/FlowPaths/vtkParallelVectors.h
@@ -40,10 +40,13 @@
 
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename VArrayType, typename WArrayType>
 class CollectValidCellSurfacePointsFunctor;
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSFLOWPATHS_EXPORT vtkParallelVectors : public vtkPolyDataAlgorithm
 {
   template <typename, typename>
@@ -113,4 +116,5 @@ private:
   void operator=(const vtkParallelVectors&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkParticlePathFilter.cxx b/Filters/FlowPaths/vtkParticlePathFilter.cxx
index 64aa26d3330aae9f4808a675b1dcb4a400c1ca35..99dcf1c47722925189fca97a884ff990afc92e40 100644
--- a/Filters/FlowPaths/vtkParticlePathFilter.cxx
+++ b/Filters/FlowPaths/vtkParticlePathFilter.cxx
@@ -29,6 +29,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkParticlePathFilter);
 
 void ParticlePathFilterInternal::Initialize(vtkParticleTracerBase* filter)
@@ -255,3 +256,4 @@ int vtkParticlePathFilter::RequestInformation(
 
   return this->Superclass::RequestInformation(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkParticlePathFilter.h b/Filters/FlowPaths/vtkParticlePathFilter.h
index afcfc6dd24a6a9460aa439adfb4f11d256e53fa0..853d74177b4408ee468a0a47590773d4bf67fdd2 100644
--- a/Filters/FlowPaths/vtkParticlePathFilter.h
+++ b/Filters/FlowPaths/vtkParticlePathFilter.h
@@ -31,6 +31,7 @@
 #include "vtkSmartPointer.h" // For protected ivars.
 #include <vector>            // For protected ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSFLOWPATHS_EXPORT ParticlePathFilterInternal
 {
 public:
@@ -90,4 +91,5 @@ private:
   vtkIntArray* SimulationTimeStep;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkParticleTracer.cxx b/Filters/FlowPaths/vtkParticleTracer.cxx
index b33873d8cefeba7779ff479e18e6fc2aea773f39..ce4f65112f702dc5e165fdedbd4527cdeb0a0fc8 100644
--- a/Filters/FlowPaths/vtkParticleTracer.cxx
+++ b/Filters/FlowPaths/vtkParticleTracer.cxx
@@ -18,6 +18,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkObjectFactory.h"
 #include "vtkSetGet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkParticleTracer);
 
 vtkParticleTracer::vtkParticleTracer()
@@ -35,3 +36,4 @@ void vtkParticleTracer::PrintSelf(ostream& os, vtkIndent indent)
 {
   Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkParticleTracer.h b/Filters/FlowPaths/vtkParticleTracer.h
index d0ded40bdea4bd14920a19ee77ec0501beac5bfe..ad0710f1b3bcba1ed1893eb57c8f1c68db35a27d 100644
--- a/Filters/FlowPaths/vtkParticleTracer.h
+++ b/Filters/FlowPaths/vtkParticleTracer.h
@@ -30,6 +30,7 @@
 #include "vtkParticleTracerBase.h"
 #include "vtkSmartPointer.h" // For protected ivars.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSFLOWPATHS_EXPORT vtkParticleTracer : public vtkParticleTracerBase
 {
 public:
@@ -46,4 +47,5 @@ protected:
   int OutputParticles(vtkPolyData* poly) override;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkParticleTracerBase.cxx b/Filters/FlowPaths/vtkParticleTracerBase.cxx
index 03fd472e0127bf352d21e004dee6ace8e2178df7..ceeccdd068a0f82c2556d121df3469f70816f9f5 100644
--- a/Filters/FlowPaths/vtkParticleTracerBase.cxx
+++ b/Filters/FlowPaths/vtkParticleTracerBase.cxx
@@ -60,6 +60,7 @@
 // We support up to 6th order hexahedra.
 #define VTK_MAXIMUM_NUMBER_OF_POINTS 216
 
+VTK_ABI_NAMESPACE_BEGIN
 const double vtkParticleTracerBase::Epsilon = 1.0E-12;
 
 using namespace vtkParticleTracerBaseNamespace;
@@ -87,6 +88,7 @@ ParticleTracerSetMacro(ComputeVorticity, bool);
 ParticleTracerSetMacro(RotationScale, double);
 ParticleTracerSetMacro(ForceReinjectionEveryNSteps, int);
 ParticleTracerSetMacro(TerminalSpeed, double);
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -110,6 +112,7 @@ inline int FindInterval(double a, const std::vector<double>& A)
 }
 };
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkParticleTracerBase::vtkParticleTracerBase()
 {
@@ -766,9 +769,11 @@ int vtkParticleTracerBase::ProcessInput(vtkInformationVector** inputVector)
   return 1;
 }
 
+VTK_ABI_NAMESPACE_END
 //------------------------------------------------------------------------------
 namespace vtkParticleTracerBaseNamespace
 {
+VTK_ABI_NAMESPACE_BEGIN
 struct ParticleTracerFunctor
 {
   vtkParticleTracerBase* PT;
@@ -847,8 +852,10 @@ struct ParticleTracerFunctor
     this->PT->ResizeArrays(this->ParticleCount);
   }
 };
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkParticleTracerBase::ResizeArrays(vtkIdType numTuples)
 {
   // resize first so that if you already have data, you don't lose them
@@ -1881,3 +1888,4 @@ void vtkParticleTracerBase::PrintParticleHistories()
   }
   cout << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkParticleTracerBase.h b/Filters/FlowPaths/vtkParticleTracerBase.h
index 1925c875daa08e52e17ed0d3b5e73551d35450e4..8efab7eebed8812e0506a6802abdda78c9457128 100644
--- a/Filters/FlowPaths/vtkParticleTracerBase.h
+++ b/Filters/FlowPaths/vtkParticleTracerBase.h
@@ -37,6 +37,7 @@
 #include <mutex>  // STL Header
 #include <vector> // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractParticleWriter;
 class vtkCellArray;
 class vtkCompositeDataSet;
@@ -54,9 +55,11 @@ class vtkPoints;
 class vtkPolyData;
 class vtkSignedCharArray;
 class vtkTemporalInterpolatedVelocityField;
+VTK_ABI_NAMESPACE_END
 
 namespace vtkParticleTracerBaseNamespace
 {
+VTK_ABI_NAMESPACE_BEGIN
 struct Position_t
 {
   double x[4];
@@ -99,8 +102,10 @@ typedef ParticleVector::iterator ParticleIterator;
 typedef std::list<ParticleInformation> ParticleDataList;
 typedef ParticleDataList::iterator ParticleListIterator;
 struct ParticleTracerFunctor;
+VTK_ABI_NAMESPACE_END
 };
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSFLOWPATHS_EXPORT vtkParticleTracerBase : public vtkPolyDataAlgorithm
 {
 public:
@@ -667,4 +672,5 @@ private:
   static const double Epsilon;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkStreaklineFilter.cxx b/Filters/FlowPaths/vtkStreaklineFilter.cxx
index addd8265f7cbe5e4f0d424dba5a5e3817862cec0..b45f696223bdf8cf3c2eb4b9222ca56f4405a4bf 100644
--- a/Filters/FlowPaths/vtkStreaklineFilter.cxx
+++ b/Filters/FlowPaths/vtkStreaklineFilter.cxx
@@ -36,6 +36,7 @@ PURPOSE.  See the above copyright notice for more information.
 #define Assert(a)
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class StreakParticle
 {
 public:
@@ -151,3 +152,4 @@ void vtkStreaklineFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkStreaklineFilter.h b/Filters/FlowPaths/vtkStreaklineFilter.h
index dccec5a6f3cd55ceaee9258f76c6d13a839ac34f..e3568a73138cd3c2392207d61d8cfdf3a53da4cc 100644
--- a/Filters/FlowPaths/vtkStreaklineFilter.h
+++ b/Filters/FlowPaths/vtkStreaklineFilter.h
@@ -30,6 +30,7 @@
 #include "vtkParticleTracerBase.h"
 #include "vtkSmartPointer.h" // For protected ivars.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSFLOWPATHS_EXPORT StreaklineFilterInternal
 {
 public:
@@ -66,4 +67,5 @@ protected:
   StreaklineFilterInternal It;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkStreamSurface.cxx b/Filters/FlowPaths/vtkStreamSurface.cxx
index 2f3e9ba1051561f1324993289974631cb317a7bb..b3b3b3ec2e52bdde15284d798c5c3e3f36fc528f 100644
--- a/Filters/FlowPaths/vtkStreamSurface.cxx
+++ b/Filters/FlowPaths/vtkStreamSurface.cxx
@@ -33,6 +33,7 @@
 #include <vtkUniformGridAMR.h>
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStreamSurface);
 
 //----------------------------------------------------------------------------
@@ -458,3 +459,4 @@ int vtkStreamSurface::RequestData(vtkInformation* vtkNotUsed(request),
   }
   return finishedSuccessfully;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkStreamSurface.h b/Filters/FlowPaths/vtkStreamSurface.h
index 33a620fa84e4906c43ebec17a4672c042375c105..a1be3b6ff2617954d9cf6983c2309a915b0b2543 100644
--- a/Filters/FlowPaths/vtkStreamSurface.h
+++ b/Filters/FlowPaths/vtkStreamSurface.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersFlowPathsModule.h" // For export macro
 #include "vtkStreamTracer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAppendPolyData;
 class vtkRuledSurfaceFilter;
 
@@ -92,4 +93,5 @@ private:
   vtkNew<vtkStreamTracer> StreamTracer;
   vtkNew<vtkAppendPolyData> AppendSurfaces;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkStreamTracer.cxx b/Filters/FlowPaths/vtkStreamTracer.cxx
index 3927fcaaf2106fdf2f2c8306c1c8316de4da95ca..fd9554e3dbf92dbd464ae7dacdafbc223c0d9b1a 100644
--- a/Filters/FlowPaths/vtkStreamTracer.cxx
+++ b/Filters/FlowPaths/vtkStreamTracer.cxx
@@ -49,6 +49,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkStreamTracer);
 vtkCxxSetObjectMacro(vtkStreamTracer, Integrator, vtkInitialValueProblemSolver);
 vtkCxxSetObjectMacro(vtkStreamTracer, InterpolatorPrototype, vtkAbstractInterpolatedVelocityField);
@@ -1857,3 +1858,4 @@ vtkExecutive* vtkStreamTracer::CreateDefaultExecutive()
 {
   return vtkCompositeDataPipeline::New();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkStreamTracer.h b/Filters/FlowPaths/vtkStreamTracer.h
index 8e8b1e7850d020fe3a48fcba2b6ed3bd000cfa87..99a75f4a6739a09c08d49ffd3e0f35db638795f3 100644
--- a/Filters/FlowPaths/vtkStreamTracer.h
+++ b/Filters/FlowPaths/vtkStreamTracer.h
@@ -97,6 +97,7 @@
 #include "vtkDataSetAttributesFieldList.h" // Needed to identify common data arrays
 #include "vtkInitialValueProblemSolver.h"  // Needed for constants
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractInterpolatedVelocityField;
 class vtkCompositeDataSet;
 class vtkDataArray;
@@ -108,9 +109,11 @@ class vtkIdList;
 class vtkIntArray;
 class vtkPoints;
 
+VTK_ABI_NAMESPACE_END
 #include <vector> // for std::vector
 
 // Helper struct to convert between different length scales.
+VTK_ABI_NAMESPACE_BEGIN
 struct VTKFILTERSFLOWPATHS_EXPORT vtkIntervalInformation
 {
   double Interval;
@@ -565,4 +568,5 @@ private:
   void operator=(const vtkStreamTracer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.cxx b/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.cxx
index bc6fc3c7d9ee53505ae1024bbd58d97e39dcba58..50669aadde9158965dacb685b66c597476a99e99 100644
--- a/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.cxx
+++ b/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.cxx
@@ -34,6 +34,7 @@
 #include "vtkUnstructuredGrid.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTemporalInterpolatedVelocityField);
 
 //------------------------------------------------------------------------------
@@ -701,3 +702,4 @@ void vtkTemporalInterpolatedVelocityField::PrintSelf(ostream& os, vtkIndent inde
     os << "(none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.h b/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.h
index 05502df33b8f23c2e0415405c588aaad16e8f372..063e5001a9ad173bf516b9d816c68bf70020219d 100644
--- a/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.h
+++ b/Filters/FlowPaths/vtkTemporalInterpolatedVelocityField.h
@@ -54,6 +54,7 @@
 
 #include <vector> // For internal structures
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractCellLinks;
 class vtkCompositeDataSet;
 class vtkCompositeInterpolatedVelocityField;
@@ -278,4 +279,5 @@ private:
   void operator=(const vtkTemporalInterpolatedVelocityField&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkVectorFieldTopology.cxx b/Filters/FlowPaths/vtkVectorFieldTopology.cxx
index 43d42c6c73da5e9a1f02bb615c2a97219ee5b7e3..1cdae711c5b4572afb4ef28e0ee2dd0fdfe0602d 100644
--- a/Filters/FlowPaths/vtkVectorFieldTopology.cxx
+++ b/Filters/FlowPaths/vtkVectorFieldTopology.cxx
@@ -68,6 +68,7 @@
 #define epsilon (1e-10)
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVectorFieldTopology);
 
 //----------------------------------------------------------------------------
@@ -1959,3 +1960,4 @@ int vtkVectorFieldTopology::RequestData(vtkInformation* vtkNotUsed(request),
 
   return success;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkVectorFieldTopology.h b/Filters/FlowPaths/vtkVectorFieldTopology.h
index 01e0e44b333f5ea47cd5f723e1452f6cef225295..349e77ab07ffdfb5777f449da739d80f6634fd7f 100644
--- a/Filters/FlowPaths/vtkVectorFieldTopology.h
+++ b/Filters/FlowPaths/vtkVectorFieldTopology.h
@@ -31,6 +31,7 @@
 #include "vtkPolyDataAlgorithm.h"
 #include "vtkStreamTracer.h" // for vtkStreamSurface::CELL_LENGTH_UNIT
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGradientFilter;
 class vtkImageData;
 class vtkPolyData;
@@ -515,4 +516,5 @@ private:
 
   vtkNew<vtkStreamSurface> StreamSurface;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/FlowPaths/vtkVortexCore.cxx b/Filters/FlowPaths/vtkVortexCore.cxx
index 51ba726e1f70d7915ff4f75677d4ba0be9df33bf..89230f08ea1d19d9ad99cccf5c0ce002b8ce4f7c 100644
--- a/Filters/FlowPaths/vtkVortexCore.cxx
+++ b/Filters/FlowPaths/vtkVortexCore.cxx
@@ -34,6 +34,7 @@
 #include <array>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // Computes A*b = x given a 3-matrix A and a 3-vector b.
@@ -495,3 +496,4 @@ void vtkVortexCore::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/FlowPaths/vtkVortexCore.h b/Filters/FlowPaths/vtkVortexCore.h
index 467015693056cd6f3f165304247633d8d6e9bc31..1984b4dda2efd85f5d95e2496ffdf8240a574545 100644
--- a/Filters/FlowPaths/vtkVortexCore.h
+++ b/Filters/FlowPaths/vtkVortexCore.h
@@ -61,6 +61,7 @@
 #include "vtkFiltersFlowPathsModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSFLOWPATHS_EXPORT vtkVortexCore : public vtkPolyDataAlgorithm
 {
 public:
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkVortexCore&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkAnimateModes.cxx b/Filters/General/vtkAnimateModes.cxx
index 308d5dd229fd1a06544d62106c20062f0da3d608..f2a90fcc1b5cff3c9d39e0b73712d9a740fb6efb 100644
--- a/Filters/General/vtkAnimateModes.cxx
+++ b/Filters/General/vtkAnimateModes.cxx
@@ -32,6 +32,7 @@
 #include "vtkSMPTools.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkAnimateModesWorker
 {
   template <typename PointsArray, typename DisplacementsArray>
@@ -232,3 +233,4 @@ void vtkAnimateModes::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "DisplacementPreapplied: " << this->DisplacementPreapplied << endl;
   os << indent << "TimeRange: " << this->TimeRange[0] << ", " << this->TimeRange[1] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkAnimateModes.h b/Filters/General/vtkAnimateModes.h
index 86ca6c06b663a6c6de3bcef09a37b50787dfaa6e..18aebde39b709ece0c876b0d82003e14144d9a1c 100644
--- a/Filters/General/vtkAnimateModes.h
+++ b/Filters/General/vtkAnimateModes.h
@@ -40,6 +40,7 @@
 
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkAnimateModes : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -126,4 +127,5 @@ private:
   double TimeRange[2];
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkAnnotationLink.cxx b/Filters/General/vtkAnnotationLink.cxx
index 8f4fcfe2580024b85049c761ca6053c0bd06801b..e5083b1738abcd7e5854a1e25f6b6a44fd109d61 100644
--- a/Filters/General/vtkAnnotationLink.cxx
+++ b/Filters/General/vtkAnnotationLink.cxx
@@ -27,6 +27,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAnnotationLink);
 // vtkCxxSetObjectMacro(vtkAnnotationLink, AnnotationLayers, vtkAnnotationLayers);
 
@@ -343,3 +344,4 @@ void vtkAnnotationLink::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkAnnotationLink.h b/Filters/General/vtkAnnotationLink.h
index 650cd3ce5002802ef9092cf854f629ac35c16daf..29be6ea662b638f8262e56d8eaf65971f09ec117 100644
--- a/Filters/General/vtkAnnotationLink.h
+++ b/Filters/General/vtkAnnotationLink.h
@@ -47,6 +47,7 @@
 #include "vtkAnnotationLayersAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCommand;
 class vtkDataObjectCollection;
 class vtkInformation;
@@ -143,4 +144,5 @@ private:
   Command* Observer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkAppendLocationAttributes.cxx b/Filters/General/vtkAppendLocationAttributes.cxx
index 54d214006090508da60d2c02218dacce5b0db1e2..d0503242d1aa368fc1e2c21e9d724362b25c7c4a 100644
--- a/Filters/General/vtkAppendLocationAttributes.cxx
+++ b/Filters/General/vtkAppendLocationAttributes.cxx
@@ -27,6 +27,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAppendLocationAttributes);
 
 //------------------------------------------------------------------------------
@@ -107,3 +108,4 @@ void vtkAppendLocationAttributes::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "AppendPointLocations: " << (this->AppendPointLocations ? "On\n" : "Off\n");
   os << indent << "AppendCellCenters: " << (this->AppendCellCenters ? "On" : "Off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkAppendLocationAttributes.h b/Filters/General/vtkAppendLocationAttributes.h
index d1df77fa57e6a14f05ea752ea850de80ae1f0824..c5a7763b77c5a604a6d4c90379fabb294bed108d 100644
--- a/Filters/General/vtkAppendLocationAttributes.h
+++ b/Filters/General/vtkAppendLocationAttributes.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkAppendLocationAttributes : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkAppendLocationAttributes&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkAppendPoints.cxx b/Filters/General/vtkAppendPoints.cxx
index b9c7a9103f1bdb62bbc1a5bb68fc5af10378abc4..74a5d57e87e2804c9e6ec77f85c1acf4ca6a9eeb 100644
--- a/Filters/General/vtkAppendPoints.cxx
+++ b/Filters/General/vtkAppendPoints.cxx
@@ -28,6 +28,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAppendPoints);
 
 //------------------------------------------------------------------------------
@@ -209,3 +210,4 @@ int vtkAppendPoints::FillInputPortInformation(int port, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_IS_OPTIONAL(), 1);
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkAppendPoints.h b/Filters/General/vtkAppendPoints.h
index 55d9315ff368490dde73475f1846c4455d60a90e..53183ed9e623d295174822c44c52f54e2f5ec786 100644
--- a/Filters/General/vtkAppendPoints.h
+++ b/Filters/General/vtkAppendPoints.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkAppendPoints : public vtkPolyDataAlgorithm
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkAppendPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkApproximatingSubdivisionFilter.cxx b/Filters/General/vtkApproximatingSubdivisionFilter.cxx
index 45cfe901172505570b5b901ed98948ecbd72c672..8a26081cc6d7bb3ee20749f306829997d02bcc50 100644
--- a/Filters/General/vtkApproximatingSubdivisionFilter.cxx
+++ b/Filters/General/vtkApproximatingSubdivisionFilter.cxx
@@ -27,6 +27,7 @@
 #include "vtkUnsignedCharArray.h"
 
 // Construct object with number of subdivisions set to 1.
+VTK_ABI_NAMESPACE_BEGIN
 vtkApproximatingSubdivisionFilter::vtkApproximatingSubdivisionFilter() = default;
 
 int vtkApproximatingSubdivisionFilter::RequestData(
@@ -253,3 +254,4 @@ void vtkApproximatingSubdivisionFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkApproximatingSubdivisionFilter.h b/Filters/General/vtkApproximatingSubdivisionFilter.h
index 54b991d5ee3c9db13cefd393948e36c24f259a9c..ecd3e58d03980619b8eddcee5d3cf48923d63591 100644
--- a/Filters/General/vtkApproximatingSubdivisionFilter.h
+++ b/Filters/General/vtkApproximatingSubdivisionFilter.h
@@ -30,6 +30,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkSubdivisionFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkCellData;
 class vtkIdList;
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkApproximatingSubdivisionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkAreaContourSpectrumFilter.cxx b/Filters/General/vtkAreaContourSpectrumFilter.cxx
index 89583f7275069bc8de072169ec4d9e83299eae08..ceda54cbc34d4e54768a32cfedcf672320667538 100644
--- a/Filters/General/vtkAreaContourSpectrumFilter.cxx
+++ b/Filters/General/vtkAreaContourSpectrumFilter.cxx
@@ -27,6 +27,7 @@
 #include "vtkTriangle.h"
 #include "vtkVariantArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAreaContourSpectrumFilter);
 
 //------------------------------------------------------------------------------
@@ -294,3 +295,4 @@ int vtkAreaContourSpectrumFilter::RequestData(vtkInformation* vtkNotUsed(request
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkAreaContourSpectrumFilter.h b/Filters/General/vtkAreaContourSpectrumFilter.h
index 0ce15c11ae49b6cb2ef535761f153f7940883126..b6ab1b78103a6c4e75413f9ef5962e9e773ef2a2 100644
--- a/Filters/General/vtkAreaContourSpectrumFilter.h
+++ b/Filters/General/vtkAreaContourSpectrumFilter.h
@@ -47,6 +47,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTable;
 
 class VTKFILTERSGENERAL_EXPORT vtkAreaContourSpectrumFilter : public vtkDataObjectAlgorithm
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkAreaContourSpectrumFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkAxes.cxx b/Filters/General/vtkAxes.cxx
index a0971fb6c3d25ea0bebbbb3eed8be589dc764b31..133088915b27c309e542366147f31e873a43d66c 100644
--- a/Filters/General/vtkAxes.cxx
+++ b/Filters/General/vtkAxes.cxx
@@ -22,6 +22,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAxes);
 
 //------------------------------------------------------------------------------
@@ -187,3 +188,4 @@ void vtkAxes::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Symmetric: " << this->Symmetric << "\n";
   os << indent << "ComputeNormals: " << this->ComputeNormals << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkAxes.h b/Filters/General/vtkAxes.h
index 52d941efa9aa06f4c496bbae1aa9b26ccfd572f6..3537a82e81843202266ccd4167e5fd70a3be4017 100644
--- a/Filters/General/vtkAxes.h
+++ b/Filters/General/vtkAxes.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkAxes : public vtkPolyDataAlgorithm
 {
 public:
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkAxes&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkBlankStructuredGrid.cxx b/Filters/General/vtkBlankStructuredGrid.cxx
index 97d58583f8f974418cc6cf0f57f9893be21dadd0..594bbda95ad06fd17e120b62977fa1043665d733 100644
--- a/Filters/General/vtkBlankStructuredGrid.cxx
+++ b/Filters/General/vtkBlankStructuredGrid.cxx
@@ -22,6 +22,7 @@
 #include "vtkStructuredGrid.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBlankStructuredGrid);
 
 // Construct object to extract all of the input data.
@@ -143,3 +144,4 @@ void vtkBlankStructuredGrid::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Array ID: " << this->ArrayId << "\n";
   os << indent << "Component: " << this->Component << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkBlankStructuredGrid.h b/Filters/General/vtkBlankStructuredGrid.h
index 591e8d319b36f4df3716cd1c8a7fa027034bde37..6fa50e0f098ab99b2af7460eeea9f2ae7364b090 100644
--- a/Filters/General/vtkBlankStructuredGrid.h
+++ b/Filters/General/vtkBlankStructuredGrid.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkStructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkBlankStructuredGrid : public vtkStructuredGridAlgorithm
 {
 public:
@@ -107,4 +108,5 @@ private:
   void operator=(const vtkBlankStructuredGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkBlankStructuredGridWithImage.cxx b/Filters/General/vtkBlankStructuredGridWithImage.cxx
index f6573c5d457dd9482115fcafcffcda86df90fa3e..2a37190e5ac53180961abd600096ae4c8260fa40 100644
--- a/Filters/General/vtkBlankStructuredGridWithImage.cxx
+++ b/Filters/General/vtkBlankStructuredGridWithImage.cxx
@@ -25,6 +25,7 @@
 #include "vtkStructuredGrid.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBlankStructuredGridWithImage);
 
 //------------------------------------------------------------------------------
@@ -136,3 +137,4 @@ void vtkBlankStructuredGridWithImage::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkBlankStructuredGridWithImage.h b/Filters/General/vtkBlankStructuredGridWithImage.h
index be72911f89647336789df37c886d7259435ccd07..9d2116ee8462dc9a7a3dba3609cf6f1491616905 100644
--- a/Filters/General/vtkBlankStructuredGridWithImage.h
+++ b/Filters/General/vtkBlankStructuredGridWithImage.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkStructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKFILTERSGENERAL_EXPORT vtkBlankStructuredGridWithImage : public vtkStructuredGridAlgorithm
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkBlankStructuredGridWithImage&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkBlockIdScalars.cxx b/Filters/General/vtkBlockIdScalars.cxx
index f2211da3f6d37e5809d9ed3a3f459e052bb79fd3..774468b1ddf9432369d33cd63254643d20cd9c5a 100644
--- a/Filters/General/vtkBlockIdScalars.cxx
+++ b/Filters/General/vtkBlockIdScalars.cxx
@@ -23,6 +23,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBlockIdScalars);
 //------------------------------------------------------------------------------
 vtkBlockIdScalars::vtkBlockIdScalars() = default;
@@ -129,3 +130,4 @@ void vtkBlockIdScalars::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkBlockIdScalars.h b/Filters/General/vtkBlockIdScalars.h
index 1265e57333a9b93411943bc805dc3076ceafdedd..21d3440bfba2332e9388c59bcb6971b2a85d5727 100644
--- a/Filters/General/vtkBlockIdScalars.h
+++ b/Filters/General/vtkBlockIdScalars.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkBlockIdScalars : public vtkMultiBlockDataSetAlgorithm
 {
 public:
@@ -47,4 +48,5 @@ private:
   void operator=(const vtkBlockIdScalars&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkBooleanOperationPolyDataFilter.cxx b/Filters/General/vtkBooleanOperationPolyDataFilter.cxx
index 7b979d7dc188ae7eca95b58b07206dccdb6e5abc..6f03822b51cd11d15df8e452a6a989b31bddc532 100644
--- a/Filters/General/vtkBooleanOperationPolyDataFilter.cxx
+++ b/Filters/General/vtkBooleanOperationPolyDataFilter.cxx
@@ -26,6 +26,7 @@
 #include "vtkPointData.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBooleanOperationPolyDataFilter);
 
 //------------------------------------------------------------------------------
@@ -346,3 +347,4 @@ void vtkBooleanOperationPolyDataFilter ::CopyCells(vtkPolyData* in, vtkPolyData*
     newCellPts->Reset();
   } // for all cells
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkBooleanOperationPolyDataFilter.h b/Filters/General/vtkBooleanOperationPolyDataFilter.h
index 9ebcfeda7dc21c9c31d3832ab1108018abadf884..d96c9531a9a9def3006ecbdb17a7ef325c29a2a5 100644
--- a/Filters/General/vtkBooleanOperationPolyDataFilter.h
+++ b/Filters/General/vtkBooleanOperationPolyDataFilter.h
@@ -42,6 +42,7 @@
 
 #include "vtkDataSetAttributes.h" // Needed for CopyCells() method
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 
 class VTKFILTERSGENERAL_EXPORT vtkBooleanOperationPolyDataFilter : public vtkPolyDataAlgorithm
@@ -139,4 +140,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkBoxClipDataSet.cxx b/Filters/General/vtkBoxClipDataSet.cxx
index 45d875d47daff34a1302799df846976a42b27f70..04b0f544d7a08627de343b92d34ecc979609b857 100644
--- a/Filters/General/vtkBoxClipDataSet.cxx
+++ b/Filters/General/vtkBoxClipDataSet.cxx
@@ -38,6 +38,7 @@
 #include <cmath>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoxClipDataSet);
 vtkCxxSetObjectMacro(vtkBoxClipDataSet, Locator, vtkIncrementalPointLocator);
 //------------------------------------------------------------------------------
@@ -6657,3 +6658,4 @@ void vtkBoxClipDataSet::ClipHexahedronInOut0D(vtkGenericCell* cell,
   }
   arrayvert->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkBoxClipDataSet.h b/Filters/General/vtkBoxClipDataSet.h
index 2f9dcf2013f12a7ed218a52b911ceaf42b18d016..755adbd20086366ddd03f7073f7874a45c7992e5 100644
--- a/Filters/General/vtkBoxClipDataSet.h
+++ b/Filters/General/vtkBoxClipDataSet.h
@@ -51,6 +51,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell3D;
 class vtkCellArray;
 class vtkCellData;
@@ -239,4 +240,5 @@ private:
   void operator=(const vtkBoxClipDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkBrownianPoints.cxx b/Filters/General/vtkBrownianPoints.cxx
index 8da2d43a7ec1a00a05bee21cea21bef53854170e..802d212314c42ed0333d5801ce45610064f27155 100644
--- a/Filters/General/vtkBrownianPoints.cxx
+++ b/Filters/General/vtkBrownianPoints.cxx
@@ -24,6 +24,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBrownianPoints);
 
 vtkBrownianPoints::vtkBrownianPoints()
@@ -128,3 +129,4 @@ void vtkBrownianPoints::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Minimum Speed: " << this->MinimumSpeed << "\n";
   os << indent << "Maximum Speed: " << this->MaximumSpeed << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkBrownianPoints.h b/Filters/General/vtkBrownianPoints.h
index e11488eca3bc001f243175abc3e669816bb99406..e9e9d172dbc410927a5cb4a90779ea6bb83de8eb 100644
--- a/Filters/General/vtkBrownianPoints.h
+++ b/Filters/General/vtkBrownianPoints.h
@@ -30,6 +30,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkBrownianPoints : public vtkDataSetAlgorithm
 {
 public:
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkBrownianPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkCellDerivatives.cxx b/Filters/General/vtkCellDerivatives.cxx
index 0b12f3c80ef0e8c885b86becdb4fc920902d3504..7282444194aa900044563a5c9fcfeeeb06df6481 100644
--- a/Filters/General/vtkCellDerivatives.cxx
+++ b/Filters/General/vtkCellDerivatives.cxx
@@ -30,6 +30,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellDerivatives);
 
 //----------------------------------------------------------------------------
@@ -391,3 +392,4 @@ void vtkCellDerivatives::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Tensor Mode: " << this->GetTensorModeAsString() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkCellDerivatives.h b/Filters/General/vtkCellDerivatives.h
index ed3d2193d30af7630de8f7e58fd955ca5bed6f53..7d5aace6f176f3e3b9b5f65dc43726ff9d3b9257 100644
--- a/Filters/General/vtkCellDerivatives.h
+++ b/Filters/General/vtkCellDerivatives.h
@@ -60,6 +60,7 @@
 #define VTK_TENSOR_MODE_COMPUTE_STRAIN 2
 #define VTK_TENSOR_MODE_COMPUTE_GREEN_LAGRANGE_STRAIN 3
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkCellDerivatives : public vtkDataSetAlgorithm
 {
 public:
@@ -126,4 +127,5 @@ private:
   void operator=(const vtkCellDerivatives&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkCellValidator.cxx b/Filters/General/vtkCellValidator.cxx
index 9169072439c4c26077022b7b3b5e46218bfb6540..56031b5d687c4a6461563bd7462a6cd10c2cd504 100644
--- a/Filters/General/vtkCellValidator.cxx
+++ b/Filters/General/vtkCellValidator.cxx
@@ -87,6 +87,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellValidator);
 
 //------------------------------------------------------------------------------
@@ -1982,3 +1983,4 @@ void vtkCellValidator::PrintState(vtkCellValidator::State state, ostream& os, vt
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkCellValidator.h b/Filters/General/vtkCellValidator.h
index e01339ff4ac6a7df24895086826dc84f9a4dfe41..b2334efe79c7645aed8a7a8f8ae07b3a17ab1fd2 100644
--- a/Filters/General/vtkCellValidator.h
+++ b/Filters/General/vtkCellValidator.h
@@ -74,6 +74,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkGenericCell;
 class vtkEmptyCell;
@@ -241,4 +242,5 @@ private:
   void operator=(const vtkCellValidator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkClipClosedSurface.cxx b/Filters/General/vtkClipClosedSurface.cxx
index 9bfb5fc473ef5fdd4a1f24d4242c605f9a63e37c..d98719aa7fbf6432bf0f173d81cb10e067413e24 100644
--- a/Filters/General/vtkClipClosedSurface.cxx
+++ b/Filters/General/vtkClipClosedSurface.cxx
@@ -43,6 +43,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClipClosedSurface);
 
 vtkCxxSetObjectMacro(vtkClipClosedSurface, ClippingPlanes, vtkPlaneCollection);
@@ -1310,3 +1311,4 @@ int vtkClipClosedSurface::TriangulatePolygon(
 {
   return vtkContourTriangulator::TriangulatePolygon(polygon, points, triangles);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkClipClosedSurface.h b/Filters/General/vtkClipClosedSurface.h
index 792add76fb3ac972fc8a4dc29fdb99651de9763f..d2dd814c88c6c5bda0f27673f7b6e3d570393da1 100644
--- a/Filters/General/vtkClipClosedSurface.h
+++ b/Filters/General/vtkClipClosedSurface.h
@@ -55,6 +55,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlaneCollection;
 class vtkUnsignedCharArray;
 class vtkDoubleArray;
@@ -324,4 +325,5 @@ private:
   void operator=(const vtkClipClosedSurface&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkClipConvexPolyData.cxx b/Filters/General/vtkClipConvexPolyData.cxx
index b266213c6735f9c68c018f838976bdae746c4930..d93debef3cdd256d2f5d4a2281b3bc4d99445001 100644
--- a/Filters/General/vtkClipConvexPolyData.cxx
+++ b/Filters/General/vtkClipConvexPolyData.cxx
@@ -28,6 +28,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClipConvexPolyData);
 
 vtkCxxSetObjectMacro(vtkClipConvexPolyData, Planes, vtkPlaneCollection);
@@ -616,3 +617,4 @@ void vtkClipConvexPolyData::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Planes: " << this->Planes << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkClipConvexPolyData.h b/Filters/General/vtkClipConvexPolyData.h
index d6c9060b4d26de4e10d1f99386eb1be745e8b15f..5a1dad5347f99d442e7b3a33aa7f140858255edb 100644
--- a/Filters/General/vtkClipConvexPolyData.h
+++ b/Filters/General/vtkClipConvexPolyData.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlaneCollection;
 class vtkPlane;
 class vtkClipConvexPolyDataInternals;
@@ -95,4 +96,5 @@ private:
   void operator=(const vtkClipConvexPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkClipDataSet.cxx b/Filters/General/vtkClipDataSet.cxx
index 6ed173341ff6b509cbc8555e7b7dc177ad088974..3d21a17c9de61cedfc120481d638cb77681b8071 100644
--- a/Filters/General/vtkClipDataSet.cxx
+++ b/Filters/General/vtkClipDataSet.cxx
@@ -35,6 +35,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClipDataSet);
 vtkCxxSetObjectMacro(vtkClipDataSet, ClipFunction, vtkImplicitFunction);
 
@@ -680,3 +681,4 @@ void vtkClipDataSet::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Precision of the output points: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkClipDataSet.h b/Filters/General/vtkClipDataSet.h
index 46fc736eda263ba915090db4e4aa58c7b0099d2a..180677c42ad459b042706bf015554500a8ff6102 100644
--- a/Filters/General/vtkClipDataSet.h
+++ b/Filters/General/vtkClipDataSet.h
@@ -63,6 +63,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkImplicitFunction;
 class vtkIncrementalPointLocator;
@@ -229,4 +230,5 @@ private:
   void operator=(const vtkClipDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkClipVolume.cxx b/Filters/General/vtkClipVolume.cxx
index e0640aeb0930a0ce323d5c195d74a0a75f16676d..88cf971c84757290e80051d6edf53b8d5028ab47 100644
--- a/Filters/General/vtkClipVolume.cxx
+++ b/Filters/General/vtkClipVolume.cxx
@@ -36,6 +36,7 @@
 #include "vtkUnstructuredGrid.h"
 #include "vtkVoxel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClipVolume);
 vtkCxxSetObjectMacro(vtkClipVolume, ClipFunction, vtkImplicitFunction);
 
@@ -693,3 +694,4 @@ void vtkClipVolume::ReportReferences(vtkGarbageCollector* collector)
   // reference loop.
   vtkGarbageCollectorReport(collector, this->ClipFunction, "ClipFunction");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkClipVolume.h b/Filters/General/vtkClipVolume.h
index e6b83945d2fdcd4774aac2f88839154a4e9d0564..1e8567766723512374fb197decc1eddf711b59bb 100644
--- a/Filters/General/vtkClipVolume.h
+++ b/Filters/General/vtkClipVolume.h
@@ -64,6 +64,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDataArray;
 class vtkIdList;
@@ -238,4 +239,5 @@ private:
   void operator=(const vtkClipVolume&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkCoincidentPoints.cxx b/Filters/General/vtkCoincidentPoints.cxx
index 120cf7cbb516a79da1d16e222b50fee3c3e1270e..ebcc00ba1c7431e60de4c8125a462be17bfb8e91 100644
--- a/Filters/General/vtkCoincidentPoints.cxx
+++ b/Filters/General/vtkCoincidentPoints.cxx
@@ -33,6 +33,7 @@
 //------------------------------------------------------------------------------
 // vtkCoincidentPoints::implementation
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCoincidentPoints::implementation
 {
 public:
@@ -219,3 +220,4 @@ void vtkCoincidentPoints::SpiralPoints(vtkIdType num, vtkPoints* offsets)
     offsets->SetPoint(i, x, y, 0);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkCoincidentPoints.h b/Filters/General/vtkCoincidentPoints.h
index b93ddadf6db723cf1008ee6cdf680af48bcb1654..56d5287027cd95a47d2c95b4ed645a0d4e573df9 100644
--- a/Filters/General/vtkCoincidentPoints.h
+++ b/Filters/General/vtkCoincidentPoints.h
@@ -33,6 +33,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkPoints;
 
@@ -104,4 +105,5 @@ private:
   friend class implementation;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCoincidentPoints_h
diff --git a/Filters/General/vtkContourTriangulator.cxx b/Filters/General/vtkContourTriangulator.cxx
index 6e73a51eb0ad8129ec95d1f7bf3ffdb7bd23fd95..5125c88fcb69fdc6e0aa7092d78175edf286838b 100644
--- a/Filters/General/vtkContourTriangulator.cxx
+++ b/Filters/General/vtkContourTriangulator.cxx
@@ -33,6 +33,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContourTriangulator);
 
 //------------------------------------------------------------------------------
@@ -2627,3 +2628,4 @@ int vtkContourTriangulator::TriangulatePolygon(
   }
   return success;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkContourTriangulator.h b/Filters/General/vtkContourTriangulator.h
index 20dfb7a93204f246c0719100c254d71ccae8fd2e..2e1f53ebeec587229e94ac16c2955b644be33aa2 100644
--- a/Filters/General/vtkContourTriangulator.h
+++ b/Filters/General/vtkContourTriangulator.h
@@ -44,6 +44,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkIdList;
 
@@ -109,4 +110,5 @@ private:
   void operator=(const vtkContourTriangulator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkCountFaces.cxx b/Filters/General/vtkCountFaces.cxx
index d12257ac56c20f1ec0722e0711689dd2c0c02b5f..c11dfbfaec608c077ef661dc7dc780e4c2ca345b 100644
--- a/Filters/General/vtkCountFaces.cxx
+++ b/Filters/General/vtkCountFaces.cxx
@@ -24,6 +24,7 @@
 #include "vtkNew.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCountFaces);
 
 //------------------------------------------------------------------------------
@@ -93,3 +94,4 @@ int vtkCountFaces::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkCountFaces.h b/Filters/General/vtkCountFaces.h
index 372ec1c0e26d94d4b832ac89d12952e22991b08b..d04d7778228d19884f4b16939a26d13a370c3cac 100644
--- a/Filters/General/vtkCountFaces.h
+++ b/Filters/General/vtkCountFaces.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkCountFaces : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkCountFaces&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCountFaces_h
diff --git a/Filters/General/vtkCountVertices.cxx b/Filters/General/vtkCountVertices.cxx
index 5505b84225ca0e053f1c031b09d4dd531603bc2d..2919cec56cf5e09e92e3bd7715dbcc9db291a990 100644
--- a/Filters/General/vtkCountVertices.cxx
+++ b/Filters/General/vtkCountVertices.cxx
@@ -24,6 +24,7 @@
 #include "vtkNew.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCountVertices);
 
 //------------------------------------------------------------------------------
@@ -93,3 +94,4 @@ int vtkCountVertices::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkCountVertices.h b/Filters/General/vtkCountVertices.h
index ad9b7afc15c530d78802312ae491c73f811ed8ff..e924c667075e7efa0b3a26c70832d5ca71777612 100644
--- a/Filters/General/vtkCountVertices.h
+++ b/Filters/General/vtkCountVertices.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkCountVertices : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkCountVertices&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCountVertices_h
diff --git a/Filters/General/vtkCursor2D.cxx b/Filters/General/vtkCursor2D.cxx
index f6316b045c3d49535e7f27e28cdce6e04a7138e7..9b5192026bd1e66169e9ab1dc08b392a0ed2c7a0 100644
--- a/Filters/General/vtkCursor2D.cxx
+++ b/Filters/General/vtkCursor2D.cxx
@@ -20,6 +20,7 @@
 #include "vtkPolyData.h"
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCursor2D);
 
 //------------------------------------------------------------------------------
@@ -336,3 +337,4 @@ void vtkCursor2D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Wrap: " << (this->Wrap ? "On\n" : "Off\n");
   os << indent << "Translation Mode: " << (this->TranslationMode ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkCursor2D.h b/Filters/General/vtkCursor2D.h
index a05b9129a57c108d54c04811baab2e1f85aa211c..a092af16378d54cf6de7986519cb0ec77c1fdbd5 100644
--- a/Filters/General/vtkCursor2D.h
+++ b/Filters/General/vtkCursor2D.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkCursor2D : public vtkPolyDataAlgorithm
 {
 public:
@@ -163,4 +164,5 @@ private:
   void operator=(const vtkCursor2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkCursor3D.cxx b/Filters/General/vtkCursor3D.cxx
index 44d4bdcfbca358b79c47d796e7afe52ff422b7c3..7eb620f1b70687c8db91767e4ccf2ca918ff1ad2 100644
--- a/Filters/General/vtkCursor3D.cxx
+++ b/Filters/General/vtkCursor3D.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCursor3D);
 
 // Construct with model bounds = (-1,1,-1,1,-1,1), focal point = (0,0,0),
@@ -514,3 +515,4 @@ void vtkCursor3D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Wrap: " << (this->Wrap ? "On\n" : "Off\n");
   os << indent << "Translation Mode: " << (this->TranslationMode ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkCursor3D.h b/Filters/General/vtkCursor3D.h
index b9a2a2d7b781e8ebe5d31704a547a26df432f217..be285a36801511a0f003a5c7777767396067353f 100644
--- a/Filters/General/vtkCursor3D.h
+++ b/Filters/General/vtkCursor3D.h
@@ -33,6 +33,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkCursor3D : public vtkPolyDataAlgorithm
 {
 public:
@@ -176,4 +177,5 @@ private:
   void operator=(const vtkCursor3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkCurvatures.cxx b/Filters/General/vtkCurvatures.cxx
index d7e4a37ef2d2fbd0c46e3fb8e7af0d5c039429dc..c5250ddc4c0f8f3331cad084a73058cff8df4377 100644
--- a/Filters/General/vtkCurvatures.cxx
+++ b/Filters/General/vtkCurvatures.cxx
@@ -34,6 +34,7 @@
 
 #include <memory> // For unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCurvatures);
 
 //-------------------------------------------------------//
@@ -480,3 +481,4 @@ void vtkCurvatures::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CurvatureType: " << this->CurvatureType << "\n";
   os << indent << "InvertMeanCurvature: " << this->InvertMeanCurvature << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkCurvatures.h b/Filters/General/vtkCurvatures.h
index 341f74962f156b0fc63b1549307ba7bde4631ec9..15f78cdbc61a7b0438f3cfb168aa2f939a3aabc8 100644
--- a/Filters/General/vtkCurvatures.h
+++ b/Filters/General/vtkCurvatures.h
@@ -76,6 +76,7 @@
 #define VTK_CURVATURE_MAXIMUM 2
 #define VTK_CURVATURE_MINIMUM 3
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkCurvatures : public vtkPolyDataAlgorithm
 {
 public:
@@ -150,4 +151,5 @@ private:
   void operator=(const vtkCurvatures&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkDataSetGradient.cxx b/Filters/General/vtkDataSetGradient.cxx
index 408402ca44c04da5e0a4f7050645746c7b952dd2..4df86c988cdaba68ae3517c9d06dc02a80a0a90b 100644
--- a/Filters/General/vtkDataSetGradient.cxx
+++ b/Filters/General/vtkDataSetGradient.cxx
@@ -51,6 +51,7 @@
 #define VTK_CQS_EPSILON 1e-12
 
 // standard constructors and factory
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataSetGradient);
 
 /*!
@@ -226,3 +227,4 @@ int vtkDataSetGradient::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDataSetGradient.h b/Filters/General/vtkDataSetGradient.h
index ff50a5ee4365bbbddc9b9b87ca94efe173552482..ae1897ef3d4cb555ce63ea445bf3b196c70e373e 100644
--- a/Filters/General/vtkDataSetGradient.h
+++ b/Filters/General/vtkDataSetGradient.h
@@ -32,6 +32,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkDataSetGradient : public vtkDataSetAlgorithm
 {
 public:
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkDataSetGradient&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTK_DATA_SET_GRADIENT_H */
diff --git a/Filters/General/vtkDataSetGradientPrecompute.cxx b/Filters/General/vtkDataSetGradientPrecompute.cxx
index 84bc5f1cb9a492a7dd4f800d53ba40d9aa68a7ee..7e2651a235b7ce074e75c90cff1f45bb1883f28c 100644
--- a/Filters/General/vtkDataSetGradientPrecompute.cxx
+++ b/Filters/General/vtkDataSetGradientPrecompute.cxx
@@ -36,6 +36,7 @@
 #define VTK_DATASET_GRADIENT_TRIANGLE_OPTIMIZATION
 //#define DEBUG
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataSetGradientPrecompute);
 
 vtkDataSetGradientPrecompute::vtkDataSetGradientPrecompute() = default;
@@ -363,3 +364,4 @@ int vtkDataSetGradientPrecompute::RequestData(vtkInformation* vtkNotUsed(request
   _output->ShallowCopy(_input);
   return vtkDataSetGradientPrecompute::GradientPrecompute(_output);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDataSetGradientPrecompute.h b/Filters/General/vtkDataSetGradientPrecompute.h
index 98781a56793c0f607c6a2baf56b93d5fa2ea5243..96eb85d991b0b729b9762f2c1ddb3e4cf8e8ee92 100644
--- a/Filters/General/vtkDataSetGradientPrecompute.h
+++ b/Filters/General/vtkDataSetGradientPrecompute.h
@@ -32,6 +32,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkDataSetGradientPrecompute : public vtkDataSetAlgorithm
 {
 public:
@@ -52,4 +53,5 @@ private:
   void operator=(const vtkDataSetGradientPrecompute&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTK_DATA_SET_GRADIENT_PRECOMPUTE_H */
diff --git a/Filters/General/vtkDataSetTriangleFilter.cxx b/Filters/General/vtkDataSetTriangleFilter.cxx
index a289baf525bda2680fa22f983e3e09bebab26081..dede9deba57b58b322f4e0f18b5eb5cee56453a7 100644
--- a/Filters/General/vtkDataSetTriangleFilter.cxx
+++ b/Filters/General/vtkDataSetTriangleFilter.cxx
@@ -30,6 +30,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataSetTriangleFilter);
 
 vtkDataSetTriangleFilter::vtkDataSetTriangleFilter()
@@ -411,3 +412,4 @@ void vtkDataSetTriangleFilter::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "TetrahedraOnly: " << (this->TetrahedraOnly ? "On" : "Off") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDataSetTriangleFilter.h b/Filters/General/vtkDataSetTriangleFilter.h
index 6cdde21705dc3afe0b7bc95e8d2e4ac4e5be96de..d7c62f3b33e9e4dcb38f1cd00ff85d3f739c8be7 100644
--- a/Filters/General/vtkDataSetTriangleFilter.h
+++ b/Filters/General/vtkDataSetTriangleFilter.h
@@ -37,6 +37,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOrderedTriangulator;
 
 class VTKFILTERSGENERAL_EXPORT vtkDataSetTriangleFilter : public vtkUnstructuredGridAlgorithm
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkDataSetTriangleFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkDateToNumeric.cxx b/Filters/General/vtkDateToNumeric.cxx
index d6d29bd472b2679dabb45f12607f5dd7ea8d744b..13fe8d4192cb45efc263745dc098740b0c1d89aa 100644
--- a/Filters/General/vtkDateToNumeric.cxx
+++ b/Filters/General/vtkDateToNumeric.cxx
@@ -35,6 +35,7 @@
 #include "time.h"
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDateToNumeric);
 //------------------------------------------------------------------------------
 vtkDateToNumeric::vtkDateToNumeric()
@@ -180,3 +181,4 @@ void vtkDateToNumeric::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "DateFormat: " << (this->DateFormat ? this->DateFormat : "(none)");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDateToNumeric.h b/Filters/General/vtkDateToNumeric.h
index 228a3e3a73394b054245929beb0dfd63b79f5227..a135cfe2efe84c4e9d7dfc4af4a82f8df233b844 100644
--- a/Filters/General/vtkDateToNumeric.h
+++ b/Filters/General/vtkDateToNumeric.h
@@ -36,6 +36,7 @@
 #include "vtkPassInputTypeAlgorithm.h"
 #include "vtkSmartPointer.h" // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkDateToNumeric : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkDateToNumeric&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkDeflectNormals.cxx b/Filters/General/vtkDeflectNormals.cxx
index 69987edc324e4c44628a8f7032ed0fe41abdd9c9..04428678795770a313af7f551667897238aa0cfe 100644
--- a/Filters/General/vtkDeflectNormals.cxx
+++ b/Filters/General/vtkDeflectNormals.cxx
@@ -25,6 +25,7 @@
 #include "vtkSMPTools.h"
 #include "vtkVector.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDeflectNormals);
 
 //------------------------------------------------------------------------------
@@ -173,3 +174,4 @@ void vtkDeflectNormals::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "User Normal: " << this->UserNormal[0] << ", " << this->UserNormal[1] << ", "
      << this->UserNormal[2] << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDeflectNormals.h b/Filters/General/vtkDeflectNormals.h
index 7b00d216a0b2f4d6c27d6014221664d2d1d3181c..dd7fc401a7836a754b7ee8e00b274548dee0dcc8 100644
--- a/Filters/General/vtkDeflectNormals.h
+++ b/Filters/General/vtkDeflectNormals.h
@@ -28,6 +28,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkDeflectNormals : public vtkDataSetAlgorithm
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkDeflectNormals&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkDeformPointSet.cxx b/Filters/General/vtkDeformPointSet.cxx
index 2d213319bb638c5f45036ed43169bb58e51af2e2..d5eeed59283b034689e5deb7c52c495423de6749 100644
--- a/Filters/General/vtkDeformPointSet.cxx
+++ b/Filters/General/vtkDeformPointSet.cxx
@@ -26,6 +26,7 @@
 #include "vtkPolyData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDeformPointSet);
 
 //------------------------------------------------------------------------------
@@ -203,3 +204,4 @@ void vtkDeformPointSet::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Initialize Weights: " << (this->InitializeWeights ? "true" : "false") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDeformPointSet.h b/Filters/General/vtkDeformPointSet.h
index d9f2b93366a598d6839ac9a346df4f3f9923e62f..0127689f90b18dda8787f85f0e308858f995b8f6 100644
--- a/Filters/General/vtkDeformPointSet.h
+++ b/Filters/General/vtkDeformPointSet.h
@@ -67,6 +67,7 @@
 
 #include "vtkSmartPointer.h" // For protected ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkPolyData;
 
@@ -131,4 +132,5 @@ private:
   void operator=(const vtkDeformPointSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkDensifyPolyData.cxx b/Filters/General/vtkDensifyPolyData.cxx
index 1210669829229959af2fc59d96c9f99bb2c627fe..8fed85e44ba947dc9d7d73ddf423924f5ca6872c 100644
--- a/Filters/General/vtkDensifyPolyData.cxx
+++ b/Filters/General/vtkDensifyPolyData.cxx
@@ -28,6 +28,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDensifyPolyDataInternals
 {
 public:
@@ -535,3 +536,4 @@ void vtkDensifyPolyData::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Number of Subdivisions: " << this->NumberOfSubdivisions << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDensifyPolyData.h b/Filters/General/vtkDensifyPolyData.h
index 8ab7abdbeeb3ef49e34bceb120a8b5f7f273fead..b36b1ec29c9f4f943d09a3430dcb865946ca2875 100644
--- a/Filters/General/vtkDensifyPolyData.h
+++ b/Filters/General/vtkDensifyPolyData.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkDensifyPolyData : public vtkPolyDataAlgorithm
 {
 public:
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkDensifyPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkDicer.cxx b/Filters/General/vtkDicer.cxx
index cc493fb0ccd9da6e709850ed9f4f9810f1cf203a..d5b76b157ab8324a3c199f4af2e708f784adcce1 100644
--- a/Filters/General/vtkDicer.cxx
+++ b/Filters/General/vtkDicer.cxx
@@ -18,6 +18,7 @@
 #include "vtkMath.h"
 
 // Instantiate object.
+VTK_ABI_NAMESPACE_BEGIN
 vtkDicer::vtkDicer()
 {
   this->NumberOfPointsPerPiece = 5000;
@@ -86,3 +87,4 @@ void vtkDicer::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Dice Mode: Memory Limit\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDicer.h b/Filters/General/vtkDicer.h
index 819a45dcdd843f6b2818f04d5c3d56f1a3023fc3..dba082f8e701cb9cd356a9fc7db61cf38fe284d6 100644
--- a/Filters/General/vtkDicer.h
+++ b/Filters/General/vtkDicer.h
@@ -51,6 +51,7 @@
 #define VTK_DICE_MODE_SPECIFIED_NUMBER 1
 #define VTK_DICE_MODE_MEMORY_LIMIT 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkDicer : public vtkDataSetAlgorithm
 {
 public:
@@ -143,4 +144,5 @@ private:
   void operator=(const vtkDicer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkDiscreteFlyingEdges2D.cxx b/Filters/General/vtkDiscreteFlyingEdges2D.cxx
index 1cf1458f626ac6bb0deaffce8f709a82766fbf78..c1e890aa46578b7dbd005eb7d7b9ecafe9e118c0 100644
--- a/Filters/General/vtkDiscreteFlyingEdges2D.cxx
+++ b/Filters/General/vtkDiscreteFlyingEdges2D.cxx
@@ -29,6 +29,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDiscreteFlyingEdges2D);
 
 // This templated class is the heart of the algorithm. Templated across
@@ -975,3 +976,4 @@ void vtkDiscreteFlyingEdges2D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Compute Scalars: " << (this->ComputeScalars ? "On\n" : "Off\n");
   os << indent << "ArrayComponent: " << this->ArrayComponent << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDiscreteFlyingEdges2D.h b/Filters/General/vtkDiscreteFlyingEdges2D.h
index f722dda3d6d0c9d23e8787c7c7efcd772ab927b1..0af35fbff3cc5ce7cd0a3f6a8b3074d1121373cf 100644
--- a/Filters/General/vtkDiscreteFlyingEdges2D.h
+++ b/Filters/General/vtkDiscreteFlyingEdges2D.h
@@ -48,6 +48,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKFILTERSGENERAL_EXPORT vtkDiscreteFlyingEdges2D : public vtkPolyDataAlgorithm
@@ -150,4 +151,5 @@ private:
   void operator=(const vtkDiscreteFlyingEdges2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkDiscreteFlyingEdges3D.cxx b/Filters/General/vtkDiscreteFlyingEdges3D.cxx
index daf86ecfcb2efcca6360494a3e96deb90809e4ad..fdad1e85c43d47585f7ff200658ad9bb09d427b7 100644
--- a/Filters/General/vtkDiscreteFlyingEdges3D.cxx
+++ b/Filters/General/vtkDiscreteFlyingEdges3D.cxx
@@ -33,6 +33,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDiscreteFlyingEdges3D);
 
 //------------------------------------------------------------------------------
@@ -1561,3 +1562,4 @@ void vtkDiscreteFlyingEdges3D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Interpolate Attributes: " << (this->InterpolateAttributes ? "On\n" : "Off\n");
   os << indent << "ArrayComponent: " << this->ArrayComponent << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDiscreteFlyingEdges3D.h b/Filters/General/vtkDiscreteFlyingEdges3D.h
index 13fc07003da62b9a7b5b808c588e2369723979fb..d60fcc6ddd74e11acdad9c08553aad4eaf77383a 100644
--- a/Filters/General/vtkDiscreteFlyingEdges3D.h
+++ b/Filters/General/vtkDiscreteFlyingEdges3D.h
@@ -54,6 +54,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKFILTERSGENERAL_EXPORT vtkDiscreteFlyingEdges3D : public vtkPolyDataAlgorithm
@@ -197,4 +198,5 @@ private:
   void operator=(const vtkDiscreteFlyingEdges3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkDiscreteFlyingEdgesClipper2D.cxx b/Filters/General/vtkDiscreteFlyingEdgesClipper2D.cxx
index f42f32ea27723ea2d54b15a1aea70a65fbee412c..61f6e2907612aa632ac3886d66e66de907c5a7cd 100644
--- a/Filters/General/vtkDiscreteFlyingEdgesClipper2D.cxx
+++ b/Filters/General/vtkDiscreteFlyingEdgesClipper2D.cxx
@@ -33,6 +33,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDiscreteFlyingEdgesClipper2D);
 
 //============================================================================
@@ -1597,3 +1598,4 @@ void vtkDiscreteFlyingEdgesClipper2D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Compute Scalars: " << (this->ComputeScalars ? "On\n" : "Off\n");
   os << indent << "ArrayComponent: " << this->ArrayComponent << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDiscreteFlyingEdgesClipper2D.h b/Filters/General/vtkDiscreteFlyingEdgesClipper2D.h
index 90bdcd7bcf9fd26110ad19e4b4d5c03ba1c6308e..ea21ec0eb0b80e017407ff4790a88bebf20ea4df 100644
--- a/Filters/General/vtkDiscreteFlyingEdgesClipper2D.h
+++ b/Filters/General/vtkDiscreteFlyingEdgesClipper2D.h
@@ -58,6 +58,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKFILTERSGENERAL_EXPORT vtkDiscreteFlyingEdgesClipper2D : public vtkPolyDataAlgorithm
@@ -167,4 +168,5 @@ private:
   void operator=(const vtkDiscreteFlyingEdgesClipper2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkDiscreteMarchingCubes.cxx b/Filters/General/vtkDiscreteMarchingCubes.cxx
index 162186523c561e76f26ed6b9539d56139b5d5da4..909aafccb95e01cc48215c72e54df10be6c0bc6c 100644
--- a/Filters/General/vtkDiscreteMarchingCubes.cxx
+++ b/Filters/General/vtkDiscreteMarchingCubes.cxx
@@ -39,6 +39,7 @@
 #include "vtkUnsignedLongArray.h"
 #include "vtkUnsignedShortArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDiscreteMarchingCubes);
 
 void vtkDiscreteMarchingCubes::PrintSelf(ostream& os, vtkIndent indent)
@@ -418,3 +419,4 @@ int vtkDiscreteMarchingCubes::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDiscreteMarchingCubes.h b/Filters/General/vtkDiscreteMarchingCubes.h
index 8b6c05ef50fe021c005fc394adf15262551bc083..37ebaf2b63e69827ea1ace5e1131227b14092b7b 100644
--- a/Filters/General/vtkDiscreteMarchingCubes.h
+++ b/Filters/General/vtkDiscreteMarchingCubes.h
@@ -77,6 +77,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkMarchingCubes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkDiscreteMarchingCubes : public vtkMarchingCubes
 {
 public:
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkDiscreteMarchingCubes&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkDistancePolyDataFilter.cxx b/Filters/General/vtkDistancePolyDataFilter.cxx
index 60ad939f692b6ae6e3bd24e389f3faafd6668946..75a4b7a621a4fddc57295b11639b8f9d8c279a7c 100644
--- a/Filters/General/vtkDistancePolyDataFilter.cxx
+++ b/Filters/General/vtkDistancePolyDataFilter.cxx
@@ -28,6 +28,7 @@
 // We support up to 6th order hexahedra.
 #define VTK_MAXIMUM_NUMBER_OF_POINTS 216
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDistancePolyDataFilter);
 
 //------------------------------------------------------------------------------
@@ -165,3 +166,4 @@ void vtkDistancePolyDataFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ComputeSecondDistance: " << this->ComputeSecondDistance << "\n";
   os << indent << "ComputeCellCenterDistance: " << this->ComputeCellCenterDistance << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkDistancePolyDataFilter.h b/Filters/General/vtkDistancePolyDataFilter.h
index 096652b9a77dc69280d0692f643370c0e00bc192..6297f99cf83f40120407ae98c8184174cf2448a6 100644
--- a/Filters/General/vtkDistancePolyDataFilter.h
+++ b/Filters/General/vtkDistancePolyDataFilter.h
@@ -40,6 +40,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkDistancePolyDataFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -115,4 +116,5 @@ private:
   vtkTypeBool ComputeCellCenterDistance;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkEdgePoints.cxx b/Filters/General/vtkEdgePoints.cxx
index 7b0b4853e62947a7056dd47dac356b2883dc9501..a490c9d6309688943abbf5ccf2d62bb9906ea03d 100644
--- a/Filters/General/vtkEdgePoints.cxx
+++ b/Filters/General/vtkEdgePoints.cxx
@@ -26,6 +26,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEdgePoints);
 
 // Construct object with contour value of 0.0.
@@ -235,3 +236,4 @@ void vtkEdgePoints::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Contour Value: " << this->Value << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkEdgePoints.h b/Filters/General/vtkEdgePoints.h
index 1606b24e17ddef8ad29163bd9f75e92ef5f987b2..1ba5b1da132c44216de15aeace7cf59d30baa4bd 100644
--- a/Filters/General/vtkEdgePoints.h
+++ b/Filters/General/vtkEdgePoints.h
@@ -33,6 +33,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMergePoints;
 
 class VTKFILTERSGENERAL_EXPORT vtkEdgePoints : public vtkPolyDataAlgorithm
@@ -69,4 +70,5 @@ private:
   void operator=(const vtkEdgePoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkEqualizerFilter.cxx b/Filters/General/vtkEqualizerFilter.cxx
index 2cea81c2ea5ec6447a87d9f08217796466872b9b..49686745c5744a4bc5ca477bfb2a83cf73b671dc 100644
--- a/Filters/General/vtkEqualizerFilter.cxx
+++ b/Filters/General/vtkEqualizerFilter.cxx
@@ -33,6 +33,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEqualizerFilter::vtkInternal
 {
 public:
@@ -451,3 +452,4 @@ void vtkEqualizerFilter::ProcessColumn(
   resultTable->AddColumn(rfftArray);
   // end fill result table
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkEqualizerFilter.h b/Filters/General/vtkEqualizerFilter.h
index 51307c61bada312eed3a667d1289da3eda70a9f6..0c77da5308e0e63d58a77466bb19c1560639fa30 100644
--- a/Filters/General/vtkEqualizerFilter.h
+++ b/Filters/General/vtkEqualizerFilter.h
@@ -28,6 +28,7 @@
  * depending on the frequency characteristics.
  */
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkEqualizerFilter : public vtkTableAlgorithm
 {
 public:
@@ -103,4 +104,5 @@ private:
   vtkInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkExtractArray.cxx b/Filters/General/vtkExtractArray.cxx
index 7286ed19bcf672924895af18e8d763e9384ce9cd..2c504471cbfb7a385d135a9dd06525f48b9e098c 100644
--- a/Filters/General/vtkExtractArray.cxx
+++ b/Filters/General/vtkExtractArray.cxx
@@ -30,6 +30,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // vtkExtractArray
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractArray);
 
 vtkExtractArray::vtkExtractArray()
@@ -77,3 +78,4 @@ int vtkExtractArray::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkExtractArray.h b/Filters/General/vtkExtractArray.h
index ad8a58b1527354182719630bda7eb54719343f50..cf94d9f79f63228275c5f4baf60fcc37d55e3ba6 100644
--- a/Filters/General/vtkExtractArray.h
+++ b/Filters/General/vtkExtractArray.h
@@ -35,6 +35,7 @@
 #include "vtkArrayDataAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkExtractArray : public vtkArrayDataAlgorithm
 {
 public:
@@ -65,4 +66,5 @@ private:
   vtkIdType Index;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkExtractGhostCells.cxx b/Filters/General/vtkExtractGhostCells.cxx
index 1ff5db5f72279b390b18cba26549bf2c092b4541..ffd280f4c0a298fa5bd5e8e955e86c2cf831ebb0 100644
--- a/Filters/General/vtkExtractGhostCells.cxx
+++ b/Filters/General/vtkExtractGhostCells.cxx
@@ -26,6 +26,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractGhostCells);
 
 //------------------------------------------------------------------------------
@@ -101,3 +102,4 @@ void vtkExtractGhostCells::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "OutputGhostArrayName: "
      << (this->OutputGhostArrayName ? this->OutputGhostArrayName : "(nullptr)") << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkExtractGhostCells.h b/Filters/General/vtkExtractGhostCells.h
index 8ae70a4e5489082821e02899603839c5d62f1d60..c0efb83ac746a5dd22e68490a592bda5b55c92c3 100644
--- a/Filters/General/vtkExtractGhostCells.h
+++ b/Filters/General/vtkExtractGhostCells.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersGeneralModule.h" // for export macros
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkExtractGhostCells : public vtkUnstructuredGridAlgorithm
 {
 public:
@@ -58,4 +59,5 @@ private:
   void operator=(const vtkExtractGhostCells&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkExtractSelectedFrustum.cxx b/Filters/General/vtkExtractSelectedFrustum.cxx
index 9f95809bdef98805023f681dba6b10f4cfab5815..ef5249d51999a98d85419cdeb633b711c9e96a0c 100644
--- a/Filters/General/vtkExtractSelectedFrustum.cxx
+++ b/Filters/General/vtkExtractSelectedFrustum.cxx
@@ -37,6 +37,7 @@
 #include "vtkUnstructuredGrid.h"
 #include "vtkVoxel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractSelectedFrustum);
 vtkCxxSetObjectMacro(vtkExtractSelectedFrustum, Frustum, vtkPlanes);
 
@@ -1124,3 +1125,4 @@ void vtkExtractSelectedFrustum::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "InsideOut: " << (this->InsideOut ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkExtractSelectedFrustum.h b/Filters/General/vtkExtractSelectedFrustum.h
index 9197ef66e983c404bd7bcffdc7087e4e26880216..85c62a31f3ba27f39e5769b70e4f2dec542a9274 100644
--- a/Filters/General/vtkExtractSelectedFrustum.h
+++ b/Filters/General/vtkExtractSelectedFrustum.h
@@ -39,6 +39,7 @@
 #include "vtkExtractSelectionBase.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlanes;
 class vtkInformation;
 class vtkInformationVector;
@@ -167,4 +168,5 @@ private:
   void operator=(const vtkExtractSelectedFrustum&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkExtractSelectionBase.cxx b/Filters/General/vtkExtractSelectionBase.cxx
index a19a7bea916cf1f38b36982b8630e6b41008e343..148d2071f77057771f35b1d45f1d0ab82de203c0 100644
--- a/Filters/General/vtkExtractSelectionBase.cxx
+++ b/Filters/General/vtkExtractSelectionBase.cxx
@@ -23,6 +23,7 @@
 #include "vtkUnstructuredGrid.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkExtractSelectionBase::vtkExtractSelectionBase()
 {
   this->PreserveTopology = 0;
@@ -122,3 +123,4 @@ void vtkExtractSelectionBase::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "PreserveTopology: " << this->PreserveTopology << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkExtractSelectionBase.h b/Filters/General/vtkExtractSelectionBase.h
index d520ace0f8a011fc61f540d4ba301cedaedd5bcd..c5f33bbf05ce489e80cc3d963d897bf35ea3294b 100644
--- a/Filters/General/vtkExtractSelectionBase.h
+++ b/Filters/General/vtkExtractSelectionBase.h
@@ -27,6 +27,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkExtractSelectionBase : public vtkDataObjectAlgorithm
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkExtractSelectionBase&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkFiniteElementFieldDistributor.cxx b/Filters/General/vtkFiniteElementFieldDistributor.cxx
index 82a0c265a3c9495be822c6e4db9dac7ac78e556c..c14a77e91afce2c1c801287d2177342c83964549 100644
--- a/Filters/General/vtkFiniteElementFieldDistributor.cxx
+++ b/Filters/General/vtkFiniteElementFieldDistributor.cxx
@@ -1185,6 +1185,8 @@ void InterpolateToNodes(const ::VblpMatrixType& vblpmats, const std::vector<doub
 
 } // end anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkFiniteElementFieldDistributor::vtkInternals
 {
 public:
@@ -2070,3 +2072,4 @@ int vtkFiniteElementFieldDistributor::RequestData(vtkInformation* vtkNotUsed(req
   } // for each element block
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkFiniteElementFieldDistributor.h b/Filters/General/vtkFiniteElementFieldDistributor.h
index 6097d18a4d25ba8f581a54200abbee430b8f7647..dc960a70cc41fdf94c6a1c0b54b3bcac34ca1128 100644
--- a/Filters/General/vtkFiniteElementFieldDistributor.h
+++ b/Filters/General/vtkFiniteElementFieldDistributor.h
@@ -27,6 +27,7 @@
 
 #include <memory> // for std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkFiniteElementFieldDistributor
   : public vtkPartitionedDataSetCollectionAlgorithm
 {
@@ -50,4 +51,5 @@ private:
   std::unique_ptr<vtkInternals> Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkGradientFilter.cxx b/Filters/General/vtkGradientFilter.cxx
index df789ce9898ac06334ec9170a9a61c8cafbe8354..d01ca276a459bc84999cf97ee7b766b4706510c3 100644
--- a/Filters/General/vtkGradientFilter.cxx
+++ b/Filters/General/vtkGradientFilter.cxx
@@ -52,7 +52,9 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkGradientFilter);
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -163,6 +165,7 @@ int GetOutputDataType(DataT vtkNotUsed(data))
 
 } // end anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkGradientFilter::vtkGradientFilter()
 {
@@ -1130,6 +1133,8 @@ int vtkGradientFilter::GetOutputArrayType(vtkDataArray* array)
   return retType;
 }
 
+VTK_ABI_NAMESPACE_END
+
 namespace // anonymous
 {
 
diff --git a/Filters/General/vtkGradientFilter.h b/Filters/General/vtkGradientFilter.h
index f958b2ce01deb10523921bc116747a8b9d26da9e..6065a1ed6b5cde0c4b5ea02c1781d57ce59bdc0f 100644
--- a/Filters/General/vtkGradientFilter.h
+++ b/Filters/General/vtkGradientFilter.h
@@ -49,6 +49,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 
 class VTKFILTERSGENERAL_EXPORT vtkGradientFilter : public vtkDataSetAlgorithm
@@ -327,4 +328,5 @@ private:
   void operator=(const vtkGradientFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif //_vtkGradientFilter_h
diff --git a/Filters/General/vtkGraphLayoutFilter.cxx b/Filters/General/vtkGraphLayoutFilter.cxx
index 42c0c0a018dddf1a39a6bac6f13ff116f3d72066..80c28a6a3f409e7fbc240d9d5a43d8aaa58d7fc5 100644
--- a/Filters/General/vtkGraphLayoutFilter.cxx
+++ b/Filters/General/vtkGraphLayoutFilter.cxx
@@ -23,6 +23,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphLayoutFilter);
 
 vtkGraphLayoutFilter::vtkGraphLayoutFilter()
@@ -282,3 +283,4 @@ void vtkGraphLayoutFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Three Dimensional Layout: " << (this->ThreeDimensionalLayout ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkGraphLayoutFilter.h b/Filters/General/vtkGraphLayoutFilter.h
index 120c28da06a9696e05e4db52ceb5594f59bf5ceb..9c40471452f30b7a0c4422324500efa1cbe8c5b9 100644
--- a/Filters/General/vtkGraphLayoutFilter.h
+++ b/Filters/General/vtkGraphLayoutFilter.h
@@ -37,6 +37,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkGraphLayoutFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -109,4 +110,5 @@ private:
   void operator=(const vtkGraphLayoutFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkGraphToPoints.cxx b/Filters/General/vtkGraphToPoints.cxx
index dddc5ab6739947e6f582c8ef1e9bfd096be87108..6aea09cb90a9478de815055095fb6b2152a8c08d 100644
--- a/Filters/General/vtkGraphToPoints.cxx
+++ b/Filters/General/vtkGraphToPoints.cxx
@@ -27,6 +27,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphToPoints);
 
 vtkGraphToPoints::vtkGraphToPoints() = default;
@@ -58,3 +59,4 @@ void vtkGraphToPoints::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkGraphToPoints.h b/Filters/General/vtkGraphToPoints.h
index 2814e9c35c121c7330576a790b12ea272456ae69..b2b4456d998305401bc4fcd2dc6f541150178a7a 100644
--- a/Filters/General/vtkGraphToPoints.h
+++ b/Filters/General/vtkGraphToPoints.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkGraphToPoints : public vtkPolyDataAlgorithm
 {
 public:
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkGraphToPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkGraphWeightEuclideanDistanceFilter.cxx b/Filters/General/vtkGraphWeightEuclideanDistanceFilter.cxx
index 9a58453e7d811eff79411220795e703dbe16c4f3..3c0435e47f1ed6b1f08e8695cbb327cb3577b6c9 100644
--- a/Filters/General/vtkGraphWeightEuclideanDistanceFilter.cxx
+++ b/Filters/General/vtkGraphWeightEuclideanDistanceFilter.cxx
@@ -18,6 +18,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphWeightEuclideanDistanceFilter);
 
 float vtkGraphWeightEuclideanDistanceFilter::ComputeWeight(
@@ -49,3 +50,4 @@ void vtkGraphWeightEuclideanDistanceFilter::PrintSelf(ostream& os, vtkIndent ind
 {
   vtkGraphWeightFilter::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkGraphWeightEuclideanDistanceFilter.h b/Filters/General/vtkGraphWeightEuclideanDistanceFilter.h
index a4e86ff402f2fe7b66491eb1d844310afc3e32b3..bf46d2fe37fd378351cfaaff1a2517705640127f 100644
--- a/Filters/General/vtkGraphWeightEuclideanDistanceFilter.h
+++ b/Filters/General/vtkGraphWeightEuclideanDistanceFilter.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkGraphWeightFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 
 class VTKFILTERSGENERAL_EXPORT vtkGraphWeightEuclideanDistanceFilter : public vtkGraphWeightFilter
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkGraphWeightEuclideanDistanceFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkGraphWeightFilter.cxx b/Filters/General/vtkGraphWeightFilter.cxx
index c200c0433611426b3f60f04cd5f7fca0e22fc36c..9af08d9321a3ba07d4d0154665876ad3ea33922b 100644
--- a/Filters/General/vtkGraphWeightFilter.cxx
+++ b/Filters/General/vtkGraphWeightFilter.cxx
@@ -29,6 +29,7 @@
 #include "vtkPolyData.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 bool vtkGraphWeightFilter::CheckRequirements(vtkGraph* const vtkNotUsed(graph)) const
 {
   return true;
@@ -87,3 +88,4 @@ void vtkGraphWeightFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   vtkGraphAlgorithm::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkGraphWeightFilter.h b/Filters/General/vtkGraphWeightFilter.h
index f913b6f00e01f3ac49ca56386d7faccf815e3fc8..745b6a23d8eb69ce8da65418e86654e5d7388d0f 100644
--- a/Filters/General/vtkGraphWeightFilter.h
+++ b/Filters/General/vtkGraphWeightFilter.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkGraphAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 
 class VTKFILTERSGENERAL_EXPORT vtkGraphWeightFilter : public vtkGraphAlgorithm
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkGraphWeightFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkGroupDataSetsFilter.cxx b/Filters/General/vtkGroupDataSetsFilter.cxx
index 892dfaa7683121c7b2f615fe47255e254b2f3597..41ec2f65ffc872a23f72abfc7ffffdcfc217cec9 100644
--- a/Filters/General/vtkGroupDataSetsFilter.cxx
+++ b/Filters/General/vtkGroupDataSetsFilter.cxx
@@ -34,6 +34,7 @@
 #include VTK_FMT(fmt/core.h)
 // clang-format on
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGroupDataSetsFilter::vtkInternals
 {
 public:
@@ -255,3 +256,4 @@ void vtkGroupDataSetsFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkGroupDataSetsFilter.h b/Filters/General/vtkGroupDataSetsFilter.h
index 8658864a7dc66c5afbfaaecd86d9d0b8b9266ad7..fd5f3e69c0fb7dd7f7ae830ac7a8efad83c1e946 100644
--- a/Filters/General/vtkGroupDataSetsFilter.h
+++ b/Filters/General/vtkGroupDataSetsFilter.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include <memory>                    // for std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkGroupDataSetsFilter : public vtkDataObjectAlgorithm
 {
 public:
@@ -92,4 +93,5 @@ private:
   std::unique_ptr<vtkInternals> Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkGroupTimeStepsFilter.cxx b/Filters/General/vtkGroupTimeStepsFilter.cxx
index 10a5730ec902a27d98fe63ea1fe9ee1b5746cbe0..0afa515a5f7556b5fd7f865a72be50fe80dea3cf 100644
--- a/Filters/General/vtkGroupTimeStepsFilter.cxx
+++ b/Filters/General/vtkGroupTimeStepsFilter.cxx
@@ -27,6 +27,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGroupTimeStepsFilter);
 //----------------------------------------------------------------------------
 vtkGroupTimeStepsFilter::vtkGroupTimeStepsFilter()
@@ -278,3 +279,4 @@ void vtkGroupTimeStepsFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkGroupTimeStepsFilter.h b/Filters/General/vtkGroupTimeStepsFilter.h
index 1cadfb8db68b3ab146f0777340bcf5e16a7a4701..cdb294ad938187006f551c152e05690cd4d16687 100644
--- a/Filters/General/vtkGroupTimeStepsFilter.h
+++ b/Filters/General/vtkGroupTimeStepsFilter.h
@@ -40,6 +40,7 @@
 
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPartitionedDataSet;
 class vtkPartitionedDataSetCollection;
 class vtkMultiBlockDataSet;
@@ -76,4 +77,5 @@ private:
   vtkSmartPointer<vtkDataObject> AccumulatedData;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkHierarchicalDataLevelFilter.cxx b/Filters/General/vtkHierarchicalDataLevelFilter.cxx
index f788ddbde67ec62332ba7d0e077dbef444944ddb..36f6e3df9f0dd3ed6692b2e11522c14694770c79 100644
--- a/Filters/General/vtkHierarchicalDataLevelFilter.cxx
+++ b/Filters/General/vtkHierarchicalDataLevelFilter.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHierarchicalDataLevelFilter);
 
 // Construct object with PointIds and CellIds on; and ids being generated
@@ -28,3 +29,4 @@ void vtkHierarchicalDataLevelFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkHierarchicalDataLevelFilter.h b/Filters/General/vtkHierarchicalDataLevelFilter.h
index 3a6fa99eba73c6dfd8aed29b0b2349c356228ad2..cc5e2eac71928db71d44a6237955a3859cf53095 100644
--- a/Filters/General/vtkHierarchicalDataLevelFilter.h
+++ b/Filters/General/vtkHierarchicalDataLevelFilter.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkLevelIdScalars.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkHierarchicalDataLevelFilter : public vtkLevelIdScalars
 {
 public:
@@ -49,4 +50,5 @@ private:
   void operator=(const vtkHierarchicalDataLevelFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkHyperStreamline.cxx b/Filters/General/vtkHyperStreamline.cxx
index bf3e885f179e2c3c21c0c9041b880f34fdfa37f6..304b707a650681fbc2e04a672057dc6c1b1901b9 100644
--- a/Filters/General/vtkHyperStreamline.cxx
+++ b/Filters/General/vtkHyperStreamline.cxx
@@ -24,6 +24,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperStreamline);
 
 //
@@ -901,3 +902,4 @@ void vtkHyperStreamline::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Integrate Along Minor Eigenvector\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkHyperStreamline.h b/Filters/General/vtkHyperStreamline.h
index df3ee64720027164bee1d739cfbef204ff189c9a..e3bff6fb931913ad84f4b9b772b6fbb92bacc602 100644
--- a/Filters/General/vtkHyperStreamline.h
+++ b/Filters/General/vtkHyperStreamline.h
@@ -59,6 +59,7 @@
 #define VTK_INTEGRATE_MEDIUM_EIGENVECTOR 1
 #define VTK_INTEGRATE_MINOR_EIGENVECTOR 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperArray;
 
 class VTKFILTERSGENERAL_EXPORT vtkHyperStreamline : public vtkPolyDataAlgorithm
@@ -303,4 +304,5 @@ private:
   void operator=(const vtkHyperStreamline&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkIconGlyphFilter.cxx b/Filters/General/vtkIconGlyphFilter.cxx
index ce2e7b1e1be805f04e8e784269d00a2c1936913d..4c7dd13dd8023ed99cb00c067cc4c1a4b4bebe35 100644
--- a/Filters/General/vtkIconGlyphFilter.cxx
+++ b/Filters/General/vtkIconGlyphFilter.cxx
@@ -28,6 +28,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIconGlyphFilter);
 
 //------------------------------------------------------------------------------
@@ -243,3 +244,4 @@ int vtkIconGlyphFilter::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkIconGlyphFilter.h b/Filters/General/vtkIconGlyphFilter.h
index 8040963fbe5b96d48789e51dff7489f317f2200b..828fb74df481411c528a5324ecf2f6dca7406f7a 100644
--- a/Filters/General/vtkIconGlyphFilter.h
+++ b/Filters/General/vtkIconGlyphFilter.h
@@ -55,6 +55,7 @@
 #define VTK_ICON_SCALING_OFF 0
 #define VTK_ICON_SCALING_USE_SCALING_ARRAY 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkIconGlyphFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -189,4 +190,5 @@ inline void vtkIconGlyphFilter::IconConvertIndex(int id, int& j, int& k)
   k = dimY - static_cast<int>(id / dimX) - 1;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkImageDataToPointSet.cxx b/Filters/General/vtkImageDataToPointSet.cxx
index 8c6427939b7bb18987997b4f1149a2b62da306a7..c56cdbda7be3aaf5b73486b79928809fd5e23ebc 100644
--- a/Filters/General/vtkImageDataToPointSet.cxx
+++ b/Filters/General/vtkImageDataToPointSet.cxx
@@ -29,6 +29,7 @@
 
 #include "vtkNew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageDataToPointSet);
 
 //------------------------------------------------------------------------------
@@ -95,3 +96,4 @@ int vtkImageDataToPointSet::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkImageDataToPointSet.h b/Filters/General/vtkImageDataToPointSet.h
index 76e8f4079bd994b9eaf9fec1799350d5c84bf009..453aa1ecc1046ac7a6c13b0c902987db61d1ffa6 100644
--- a/Filters/General/vtkImageDataToPointSet.h
+++ b/Filters/General/vtkImageDataToPointSet.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkStructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkStructuredData;
 
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkImageDataToPointSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkImageDataToPointSet_h
diff --git a/Filters/General/vtkImageMarchingCubes.cxx b/Filters/General/vtkImageMarchingCubes.cxx
index 5614ecb9d45eb3ec79504276a80cf6b4188d6f3c..c2b32b55b25d283400767b23d798abcf623cf8ad 100644
--- a/Filters/General/vtkImageMarchingCubes.cxx
+++ b/Filters/General/vtkImageMarchingCubes.cxx
@@ -29,6 +29,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageMarchingCubes);
 
 //------------------------------------------------------------------------------
@@ -806,3 +807,4 @@ void vtkImageMarchingCubes::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "InputMemoryLimit: " << this->InputMemoryLimit << "K bytes\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkImageMarchingCubes.h b/Filters/General/vtkImageMarchingCubes.h
index 384a08508b21cc3e9eb8cd8aa00ec03f669b3717..aecde616ad7b5437356674c4e56de9c2efc63ebb 100644
--- a/Filters/General/vtkImageMarchingCubes.h
+++ b/Filters/General/vtkImageMarchingCubes.h
@@ -41,6 +41,7 @@
 
 #include "vtkContourValues.h" // Needed for direct access to ContourValues
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkFloatArray;
 class vtkImageData;
@@ -233,4 +234,5 @@ inline void vtkImageMarchingCubes::GenerateValues(
   this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkInterpolateDataSetAttributes.cxx b/Filters/General/vtkInterpolateDataSetAttributes.cxx
index 357879ad32df540a11d1bf41f16fea7090380a47..17b835a0c4ebf5eb86396ed4fde1c896af279791 100644
--- a/Filters/General/vtkInterpolateDataSetAttributes.cxx
+++ b/Filters/General/vtkInterpolateDataSetAttributes.cxx
@@ -28,6 +28,7 @@
 #include "vtkStructuredPoints.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInterpolateDataSetAttributes);
 
 // Create object with no input or output.
@@ -241,3 +242,4 @@ void vtkInterpolateDataSetAttributes ::ReportReferences(vtkGarbageCollector* col
   this->Superclass::ReportReferences(collector);
   vtkGarbageCollectorReport(collector, this->InputList, "InputList");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkInterpolateDataSetAttributes.h b/Filters/General/vtkInterpolateDataSetAttributes.h
index 98115839d720b6a666800233e63dd8341043e40b..a99bc6064da5bb9a869df6b57013748ff00c9c18 100644
--- a/Filters/General/vtkInterpolateDataSetAttributes.h
+++ b/Filters/General/vtkInterpolateDataSetAttributes.h
@@ -36,6 +36,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSetCollection;
 
 class VTKFILTERSGENERAL_EXPORT vtkInterpolateDataSetAttributes : public vtkDataSetAlgorithm
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkInterpolateDataSetAttributes&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkInterpolatingSubdivisionFilter.cxx b/Filters/General/vtkInterpolatingSubdivisionFilter.cxx
index d5bd5bcc03ed28cda19b54835d96ae7c3b9a2ae1..3199d98bdb9852bb377dc449cc10e457fb6816db 100644
--- a/Filters/General/vtkInterpolatingSubdivisionFilter.cxx
+++ b/Filters/General/vtkInterpolatingSubdivisionFilter.cxx
@@ -23,6 +23,7 @@
 #include "vtkPolyData.h"
 
 // Construct object with number of subdivisions set to 1.
+VTK_ABI_NAMESPACE_BEGIN
 vtkInterpolatingSubdivisionFilter::vtkInterpolatingSubdivisionFilter() = default;
 
 int vtkInterpolatingSubdivisionFilter::RequestData(
@@ -239,3 +240,4 @@ void vtkInterpolatingSubdivisionFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkInterpolatingSubdivisionFilter.h b/Filters/General/vtkInterpolatingSubdivisionFilter.h
index ff329e6967b918b4d9ad079e3e782172535785e5..1b1ee01564ff24b3f98f80794f29c0076174313e 100644
--- a/Filters/General/vtkInterpolatingSubdivisionFilter.h
+++ b/Filters/General/vtkInterpolatingSubdivisionFilter.h
@@ -33,6 +33,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkSubdivisionFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkCellData;
 class vtkIdList;
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkInterpolatingSubdivisionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkIntersectionPolyDataFilter.cxx b/Filters/General/vtkIntersectionPolyDataFilter.cxx
index c83fc005db47235b953d103237078dd523928647..ac9aeaf65930b4d45933c2f76e099ccc8705bb7f 100644
--- a/Filters/General/vtkIntersectionPolyDataFilter.cxx
+++ b/Filters/General/vtkIntersectionPolyDataFilter.cxx
@@ -45,6 +45,7 @@
 
 //------------------------------------------------------------------------------
 // Helper typedefs and data structures.
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -2539,3 +2540,4 @@ int vtkIntersectionPolyDataFilter::FillInputPortInformation(int port, vtkInforma
 }
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkIntersectionPolyDataFilter.h b/Filters/General/vtkIntersectionPolyDataFilter.h
index 14d0ae4434525dd69736e1bfd52d9fd706c09273..c560fcb29ed42952a89ed8e0aac72517a7af1eb8 100644
--- a/Filters/General/vtkIntersectionPolyDataFilter.h
+++ b/Filters/General/vtkIntersectionPolyDataFilter.h
@@ -66,6 +66,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkIntersectionPolyDataFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -208,4 +209,5 @@ private:
   class Impl; // Implementation class
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkIntersectionPolyDataFilter_h
diff --git a/Filters/General/vtkJoinTables.cxx b/Filters/General/vtkJoinTables.cxx
index d815c125dea09534adab5f2d96f9c1964ce0fdba..6abb265036e5e55cef1ced61e2ab461a587372f8 100644
--- a/Filters/General/vtkJoinTables.cxx
+++ b/Filters/General/vtkJoinTables.cxx
@@ -33,6 +33,7 @@
 #include <string>
 #include <utility>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkJoinTables);
 
 //------------------------------------------------------------------------------
@@ -176,3 +177,4 @@ void vtkJoinTables::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkJoinTables.h b/Filters/General/vtkJoinTables.h
index 45575673d5e8d28d947ed1dd7060993ea08326a6..45bb8ac07fcb2f83a8bcb6f8c386dee5e4a55ed9 100644
--- a/Filters/General/vtkJoinTables.h
+++ b/Filters/General/vtkJoinTables.h
@@ -37,6 +37,7 @@
 #include <map>    // For left and right key maps
 #include <string> // For LeftKey and RightKey
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkJoinTables : public vtkTableAlgorithm
 {
 public:
@@ -132,6 +133,7 @@ private:
   void operator=(const vtkJoinTables&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkJoinTables.txx" // for template implementations
 
 #endif
diff --git a/Filters/General/vtkJoinTables.txx b/Filters/General/vtkJoinTables.txx
index 52444fa2f9bc8016b03a9d340738006d50966843..7ae8b3f0bed7f2af439a23d921b07fee62d508e2 100644
--- a/Filters/General/vtkJoinTables.txx
+++ b/Filters/General/vtkJoinTables.txx
@@ -14,6 +14,7 @@
 =========================================================================*/
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <typename KeyColType, typename KeyValues>
 KeyValues GetCell(KeyColType*, int);
 
@@ -274,3 +275,4 @@ void vtkJoinTables::JoinAlgorithm(vtkTable* left, vtkTable* right, vtkTable* out
   }
   outputKeyCol->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkLevelIdScalars.cxx b/Filters/General/vtkLevelIdScalars.cxx
index 49192470c2c6d56d1f9f0475fc161a864e2b805d..2cc283abf4efde5c1f5c9a8d165100d61e6d4262 100644
--- a/Filters/General/vtkLevelIdScalars.cxx
+++ b/Filters/General/vtkLevelIdScalars.cxx
@@ -15,6 +15,7 @@
 #include "vtkLevelIdScalars.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLevelIdScalars);
 
 //------------------------------------------------------------------------------
@@ -28,3 +29,4 @@ void vtkLevelIdScalars::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkLevelIdScalars.h b/Filters/General/vtkLevelIdScalars.h
index d6430139e79ea719f98802220b0b141de1c3f506..8a1be4fdb3d763b6765602eae5157893611c3385 100644
--- a/Filters/General/vtkLevelIdScalars.h
+++ b/Filters/General/vtkLevelIdScalars.h
@@ -23,6 +23,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkOverlappingAMRLevelIdScalars.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkLevelIdScalars : public vtkOverlappingAMRLevelIdScalars
 {
 public:
@@ -39,4 +40,5 @@ private:
   void operator=(const vtkLevelIdScalars&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTKLEVELIDSCALARS_H_ */
diff --git a/Filters/General/vtkLinkEdgels.cxx b/Filters/General/vtkLinkEdgels.cxx
index 83ed36cd34b32195160d76c92428c0258a4928cb..be290ae553c5a870f35f71a9ecfbd3a0a3570dd4 100644
--- a/Filters/General/vtkLinkEdgels.cxx
+++ b/Filters/General/vtkLinkEdgels.cxx
@@ -24,6 +24,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLinkEdgels);
 
 // Construct instance of vtkLinkEdgels with GradientThreshold set to
@@ -335,3 +336,4 @@ void vtkLinkEdgels::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "LinkThreshold:" << this->LinkThreshold << "\n";
   os << indent << "PhiThreshold:" << this->PhiThreshold << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkLinkEdgels.h b/Filters/General/vtkLinkEdgels.h
index 47a02916d8afb929af958affa36810d8643cb16e..ac17f9583fba25b6710cd1c0d9ef7d4d236f6941 100644
--- a/Filters/General/vtkLinkEdgels.h
+++ b/Filters/General/vtkLinkEdgels.h
@@ -51,6 +51,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkDataArray;
 class vtkDoubleArray;
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkLinkEdgels&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkLoopBooleanPolyDataFilter.cxx b/Filters/General/vtkLoopBooleanPolyDataFilter.cxx
index a532cfd55c58bd5baefcbe2ffa4f69ff8f6f7833..223004677a1cb7b87d015f4f2f47ac3a9f3a7ccd 100644
--- a/Filters/General/vtkLoopBooleanPolyDataFilter.cxx
+++ b/Filters/General/vtkLoopBooleanPolyDataFilter.cxx
@@ -49,6 +49,7 @@
 
 //------------------------------------------------------------------------------
 // Helper typedefs and data structures.
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -1494,3 +1495,4 @@ void vtkLoopBooleanPolyDataFilter::Impl::ThresholdRegions(vtkPolyData** surfaces
     booleanCells[i]->Delete();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkLoopBooleanPolyDataFilter.h b/Filters/General/vtkLoopBooleanPolyDataFilter.h
index 975310a8e5afe8190458cd08ebe7606739a52833..16d73ebfb5a08181de947b45bbfdd76182d66311 100644
--- a/Filters/General/vtkLoopBooleanPolyDataFilter.h
+++ b/Filters/General/vtkLoopBooleanPolyDataFilter.h
@@ -37,6 +37,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 
 /*!
@@ -146,4 +147,5 @@ private:
   class Impl;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkMarchingContourFilter.cxx b/Filters/General/vtkMarchingContourFilter.cxx
index 5f8b525176f506bf9febc78f87e1b6521c992c21..633d53bb85d7b9152249d81db9665d05f9bff79d 100644
--- a/Filters/General/vtkMarchingContourFilter.cxx
+++ b/Filters/General/vtkMarchingContourFilter.cxx
@@ -34,6 +34,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMarchingContourFilter);
 
 // Construct object with initial range (0,1) and single contour value
@@ -341,3 +342,4 @@ void vtkMarchingContourFilter::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Locator: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkMarchingContourFilter.h b/Filters/General/vtkMarchingContourFilter.h
index 156a896b0b5d05169c02e7df813ae2a0e9e1d7b2..977ee6677e4901259cb6495bf0b1802687a7222e 100644
--- a/Filters/General/vtkMarchingContourFilter.h
+++ b/Filters/General/vtkMarchingContourFilter.h
@@ -59,6 +59,7 @@
 
 #include "vtkContourValues.h" // Needed for direct access to ContourValues
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 class vtkScalarTree;
 
@@ -252,4 +253,5 @@ inline void vtkMarchingContourFilter::GenerateValues(
   this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkMatricizeArray.cxx b/Filters/General/vtkMatricizeArray.cxx
index 3c95bc8abd45c317b0f0ce4753aa4e13c1df23b2..2763330fa5d77d931a666582717716a10871b482 100644
--- a/Filters/General/vtkMatricizeArray.cxx
+++ b/Filters/General/vtkMatricizeArray.cxx
@@ -33,6 +33,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // vtkMatricizeArray
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMatricizeArray);
 
 vtkMatricizeArray::vtkMatricizeArray()
@@ -130,3 +131,4 @@ int vtkMatricizeArray::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkMatricizeArray.h b/Filters/General/vtkMatricizeArray.h
index 6fad1ee00ff3097fa2999551263c1282f38d7a06..d1cdc7d4d1e050996520044ba49ee6bcec2f160a 100644
--- a/Filters/General/vtkMatricizeArray.h
+++ b/Filters/General/vtkMatricizeArray.h
@@ -39,6 +39,7 @@
 #include "vtkArrayDataAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkMatricizeArray : public vtkArrayDataAlgorithm
 {
 public:
@@ -75,4 +76,5 @@ private:
   vtkIdType SliceDimension;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkMergeArrays.cxx b/Filters/General/vtkMergeArrays.cxx
index 686efb4d6037c0a5c493f7d7860d8050d316f556..951ed84da747fc62a6de66c5c95986dedf07b101 100644
--- a/Filters/General/vtkMergeArrays.cxx
+++ b/Filters/General/vtkMergeArrays.cxx
@@ -26,6 +26,7 @@
 #include "vtkPointData.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMergeArrays);
 
 //------------------------------------------------------------------------------
@@ -194,3 +195,4 @@ void vtkMergeArrays::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkMergeArrays.h b/Filters/General/vtkMergeArrays.h
index 7c0ce117112d5b018f71b62931d7342cfe41c351..d62b55c22899a2cd9f19a559e5e74793babc830f 100644
--- a/Filters/General/vtkMergeArrays.h
+++ b/Filters/General/vtkMergeArrays.h
@@ -36,6 +36,7 @@
 
 #include <string> // Needed for protected method argument
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkFieldData;
 
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkMergeArrays&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkMergeCells.cxx b/Filters/General/vtkMergeCells.cxx
index 28c3ff45be3bddc60a156da4e43eb0e3fe43cf46..4b94b12f7ac3ba29806b50482cc25b14517f7f30 100644
--- a/Filters/General/vtkMergeCells.cxx
+++ b/Filters/General/vtkMergeCells.cxx
@@ -40,6 +40,7 @@
 #include <cstdlib>
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -781,3 +782,4 @@ void vtkMergeCells::PrintSelf(ostream& os, vtkIndent indent)
     os << "(None)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkMergeCells.h b/Filters/General/vtkMergeCells.h
index c943d6f2060cd2566afe91b3d42de96d8cba6844..769b270c9394ce7d04fe445d22b2e028e91e9c48 100644
--- a/Filters/General/vtkMergeCells.h
+++ b/Filters/General/vtkMergeCells.h
@@ -51,6 +51,7 @@
 #include "vtkObject.h"
 #include "vtkSmartPointer.h" // for vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellData;
 class vtkDataSet;
 class vtkMergeCellsSTLCloak;
@@ -227,4 +228,5 @@ private:
   vtkMergeCells(const vtkMergeCells&) = delete;
   void operator=(const vtkMergeCells&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkMergeTimeFilter.cxx b/Filters/General/vtkMergeTimeFilter.cxx
index 36223879c502fd088704eaa830c21564a998f269..5edd4e5363e927c7a433c7743ccaa5ccce9a29dc 100644
--- a/Filters/General/vtkMergeTimeFilter.cxx
+++ b/Filters/General/vtkMergeTimeFilter.cxx
@@ -27,6 +27,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMergeTimeFilter);
 
 //------------------------------------------------------------------------------
@@ -253,3 +254,4 @@ int vtkMergeTimeFilter::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkMergeTimeFilter.h b/Filters/General/vtkMergeTimeFilter.h
index c86b1e2b52fad2b0e928d5fda1c35e04efaae894..62b713fe9452253494881f678a38791ae19f2a15 100644
--- a/Filters/General/vtkMergeTimeFilter.h
+++ b/Filters/General/vtkMergeTimeFilter.h
@@ -37,6 +37,7 @@
 
 #include <vector> // Use of dynamically allocated array
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkMergeTimeFilter : public vtkMultiBlockDataSetAlgorithm
 {
 public:
@@ -136,4 +137,5 @@ private:
   void operator=(const vtkMergeTimeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkMergeVectorComponents.cxx b/Filters/General/vtkMergeVectorComponents.cxx
index 57e9a4c5cc9cae28fc0044f646865a7f6b501463..00a6d3efa26a7f83dd99b739a08ec813585e441b 100644
--- a/Filters/General/vtkMergeVectorComponents.cxx
+++ b/Filters/General/vtkMergeVectorComponents.cxx
@@ -26,6 +26,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkSMPTools.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMergeVectorComponents);
 
 //------------------------------------------------------------------------------
@@ -209,3 +210,4 @@ void vtkMergeVectorComponents::PrintSelf(ostream& os, vtkIndent indent)
      << endl;
   os << indent << "AttributeType: " << this->AttributeType << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkMergeVectorComponents.h b/Filters/General/vtkMergeVectorComponents.h
index e96dec2d3c86315e0350fdf962cccde6d5c9bd09..6c5bac0f401696910a04e514a58792577f274ec6 100644
--- a/Filters/General/vtkMergeVectorComponents.h
+++ b/Filters/General/vtkMergeVectorComponents.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkMergeVectorComponents : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -106,4 +107,5 @@ private:
   void operator=(const vtkMergeVectorComponents&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkMultiBlockDataGroupFilter.cxx b/Filters/General/vtkMultiBlockDataGroupFilter.cxx
index 70ccc7dd5afd5e07a6745757e05ff440c4f217b3..fc08470858deafd4453eb08e718ff13998f9ed43 100644
--- a/Filters/General/vtkMultiBlockDataGroupFilter.cxx
+++ b/Filters/General/vtkMultiBlockDataGroupFilter.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMultiBlockDataGroupFilter);
 //------------------------------------------------------------------------------
 vtkMultiBlockDataGroupFilter::vtkMultiBlockDataGroupFilter() = default;
@@ -142,3 +143,4 @@ void vtkMultiBlockDataGroupFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkMultiBlockDataGroupFilter.h b/Filters/General/vtkMultiBlockDataGroupFilter.h
index 80a68c88011355ae0e2f494d0ed5d593f6d616ce..9d809f79f52ce2fa35ba31a9030771d0d6fdc71b 100644
--- a/Filters/General/vtkMultiBlockDataGroupFilter.h
+++ b/Filters/General/vtkMultiBlockDataGroupFilter.h
@@ -33,6 +33,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkMultiBlockDataGroupFilter : public vtkMultiBlockDataSetAlgorithm
 {
 public:
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkMultiBlockDataGroupFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkMultiBlockMergeFilter.cxx b/Filters/General/vtkMultiBlockMergeFilter.cxx
index 20826cd49d174a6b4aa736e1e12492a76d2b90a7..3afe611a672639f53373870d15004b7679a5aac4 100644
--- a/Filters/General/vtkMultiBlockMergeFilter.cxx
+++ b/Filters/General/vtkMultiBlockMergeFilter.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMultiBlockMergeFilter);
 //------------------------------------------------------------------------------
 vtkMultiBlockMergeFilter::vtkMultiBlockMergeFilter() = default;
@@ -203,3 +204,4 @@ void vtkMultiBlockMergeFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkMultiBlockMergeFilter.h b/Filters/General/vtkMultiBlockMergeFilter.h
index f723add73a39cc489382edc878f800471b757037..a605f8b7bf90550a68eb778944ecec16168cc299 100644
--- a/Filters/General/vtkMultiBlockMergeFilter.h
+++ b/Filters/General/vtkMultiBlockMergeFilter.h
@@ -30,6 +30,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkMultiBlockMergeFilter : public vtkMultiBlockDataSetAlgorithm
 {
 public:
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkMultiBlockMergeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkMultiThreshold.cxx b/Filters/General/vtkMultiThreshold.cxx
index 0e6cba434522a70abdc50e13f0d9eaad6789bdac..78042704d8eeb9e13349042fc8683ffe982b451d 100644
--- a/Filters/General/vtkMultiThreshold.cxx
+++ b/Filters/General/vtkMultiThreshold.cxx
@@ -34,6 +34,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMultiThreshold);
 
 // Prevent lots of error messages on the inner loop of the filter by keeping track of how many we
@@ -788,3 +789,4 @@ void vtkMultiThreshold::PrintGraph(ostream& os)
   }
   os << "}" << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkMultiThreshold.h b/Filters/General/vtkMultiThreshold.h
index 77c2e57a1970707854dbb948f3f274cd7291406e..6954ba376fb5b275f354c64ade0deffdfc2ba927 100644
--- a/Filters/General/vtkMultiThreshold.h
+++ b/Filters/General/vtkMultiThreshold.h
@@ -112,6 +112,7 @@
 #include <string> // for holding array names in NormKey
 #include <vector> // for lists of threshold rules
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkCellData;
 class vtkDataArray;
@@ -527,4 +528,5 @@ inline vtkMultiThreshold::BooleanSet* vtkMultiThreshold::BooleanSet::GetBooleanS
   return this;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkMultiThreshold_h
diff --git a/Filters/General/vtkNonOverlappingAMRLevelIdScalars.cxx b/Filters/General/vtkNonOverlappingAMRLevelIdScalars.cxx
index 3865c8400f07511d528787d5e7250cead29d7ad7..7217d510bfa2ea14af2becc4d3f58e1ee03e6dd3 100644
--- a/Filters/General/vtkNonOverlappingAMRLevelIdScalars.cxx
+++ b/Filters/General/vtkNonOverlappingAMRLevelIdScalars.cxx
@@ -25,6 +25,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkNonOverlappingAMRLevelIdScalars);
 //------------------------------------------------------------------------------
 vtkNonOverlappingAMRLevelIdScalars::vtkNonOverlappingAMRLevelIdScalars() {}
@@ -123,3 +124,4 @@ void vtkNonOverlappingAMRLevelIdScalars::PrintSelf(ostream& os, vtkIndent indent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkNonOverlappingAMRLevelIdScalars.h b/Filters/General/vtkNonOverlappingAMRLevelIdScalars.h
index 200d6f8746a020028cd83d949b84c9b754d4c5fa..ec29897508151ca2f735d723940a368cfdd76c8a 100644
--- a/Filters/General/vtkNonOverlappingAMRLevelIdScalars.h
+++ b/Filters/General/vtkNonOverlappingAMRLevelIdScalars.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkNonOverlappingAMRAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUniformGrid;
 class vtkUniformGridAMR;
 
@@ -52,4 +53,5 @@ private:
   void operator=(const vtkNonOverlappingAMRLevelIdScalars&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkNormalizeMatrixVectors.cxx b/Filters/General/vtkNormalizeMatrixVectors.cxx
index 584fb9ae484776292994b5d9a8893dfdb103d04d..1bbb052794cc3f5a08ce623e72c5a0c793e91696 100644
--- a/Filters/General/vtkNormalizeMatrixVectors.cxx
+++ b/Filters/General/vtkNormalizeMatrixVectors.cxx
@@ -35,6 +35,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // vtkNormalizeMatrixVectors
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkNormalizeMatrixVectors);
 
 vtkNormalizeMatrixVectors::vtkNormalizeMatrixVectors()
@@ -119,3 +120,4 @@ int vtkNormalizeMatrixVectors::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkNormalizeMatrixVectors.h b/Filters/General/vtkNormalizeMatrixVectors.h
index 9004195ad395270dc8ac16c4c8fd86a67b103fd0..715a30e4ed435e782fcb1597b18ad36ca1c1d364 100644
--- a/Filters/General/vtkNormalizeMatrixVectors.h
+++ b/Filters/General/vtkNormalizeMatrixVectors.h
@@ -35,6 +35,7 @@
 #include "vtkArrayDataAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkNormalizeMatrixVectors : public vtkArrayDataAlgorithm
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkNormalizeMatrixVectors&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkOBBDicer.cxx b/Filters/General/vtkOBBDicer.cxx
index c3e5e7f2cb615149e647e31d1e786c6f0543aaa2..9d70aa9be40fec83600b8578704cd8a8b6b36a8f 100644
--- a/Filters/General/vtkOBBDicer.cxx
+++ b/Filters/General/vtkOBBDicer.cxx
@@ -26,6 +26,7 @@
 #include "vtkPoints.h"
 #include "vtkShortArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOBBDicer);
 
 void vtkOBBDicer::BuildTree(vtkIdList* ptIds, vtkOBBNode* OBBptr, vtkDataSet* input)
@@ -231,3 +232,4 @@ void vtkOBBDicer::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkOBBDicer.h b/Filters/General/vtkOBBDicer.h
index 2163b5406cd3c65d7ca08f63424d9cdfb7e0e33b..09176e4714ac24f40a8706c89d4bfe32434cf2c2 100644
--- a/Filters/General/vtkOBBDicer.h
+++ b/Filters/General/vtkOBBDicer.h
@@ -34,6 +34,7 @@
 #include "vtkDicer.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOBBNode;
 class vtkShortArray;
 class vtkIdList;
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkOBBDicer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkOBBTree.cxx b/Filters/General/vtkOBBTree.cxx
index f60ffb325ba11e0e695ef3138f41918d30ac8e3d..a33e008de6ccaf979aaeda423f4aa74c6e97723b 100644
--- a/Filters/General/vtkOBBTree.cxx
+++ b/Filters/General/vtkOBBTree.cxx
@@ -27,6 +27,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkOBBTree);
 
@@ -1946,3 +1947,4 @@ void vtkOBBTree::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "OBBCount " << this->OBBCount << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkOBBTree.h b/Filters/General/vtkOBBTree.h
index cb7fb4d877d9074fc9248f6f4585649f88b68bca..7bc08d77e62b25d5128b24306320a5b765462d12 100644
--- a/Filters/General/vtkOBBTree.h
+++ b/Filters/General/vtkOBBTree.h
@@ -69,6 +69,7 @@
 #include "vtkAbstractCellLocator.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 
 // Special class defines node for the OBB tree
@@ -229,4 +230,5 @@ private:
   void operator=(const vtkOBBTree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkOverlappingAMRLevelIdScalars.cxx b/Filters/General/vtkOverlappingAMRLevelIdScalars.cxx
index 25f20421d2de0ec3a75a4d1e849cc55959b03df3..8ff866377757447c28c0352c9fc18f46e0649ea5 100644
--- a/Filters/General/vtkOverlappingAMRLevelIdScalars.cxx
+++ b/Filters/General/vtkOverlappingAMRLevelIdScalars.cxx
@@ -25,6 +25,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOverlappingAMRLevelIdScalars);
 //------------------------------------------------------------------------------
 vtkOverlappingAMRLevelIdScalars::vtkOverlappingAMRLevelIdScalars() = default;
@@ -106,3 +107,4 @@ void vtkOverlappingAMRLevelIdScalars::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkOverlappingAMRLevelIdScalars.h b/Filters/General/vtkOverlappingAMRLevelIdScalars.h
index 6f4481fa29732ebac368a0b541e5199a1a668c33..0bb032511f56ce46c0852df3d27b06f92b90512e 100644
--- a/Filters/General/vtkOverlappingAMRLevelIdScalars.h
+++ b/Filters/General/vtkOverlappingAMRLevelIdScalars.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkOverlappingAMRAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUniformGrid;
 class vtkUniformGridAMR;
 
@@ -51,4 +52,5 @@ private:
   void operator=(const vtkOverlappingAMRLevelIdScalars&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkPassArrays.cxx b/Filters/General/vtkPassArrays.cxx
index 5dae6d91083ae43a98fbca012365c0926dc99548..c9434bc76ff557445a7863606e25590b889e5a91 100644
--- a/Filters/General/vtkPassArrays.cxx
+++ b/Filters/General/vtkPassArrays.cxx
@@ -33,6 +33,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPassArrays);
 
 namespace
@@ -357,3 +358,4 @@ void vtkPassArrays::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "RemoveArrays: " << (this->RemoveArrays ? "on" : "off") << endl;
   os << indent << "UseFieldTypes: " << (this->UseFieldTypes ? "on" : "off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkPassArrays.h b/Filters/General/vtkPassArrays.h
index b245dd8affe986e9ec6219013729d13f4520700f..4f698a8138fded5594e7df4113e3e46533d955c9 100644
--- a/Filters/General/vtkPassArrays.h
+++ b/Filters/General/vtkPassArrays.h
@@ -74,6 +74,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkPassArrays : public vtkDataObjectAlgorithm
 {
 public:
@@ -179,4 +180,5 @@ private:
   void operator=(const vtkPassArrays&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkPassSelectedArrays.cxx b/Filters/General/vtkPassSelectedArrays.cxx
index 98a4530b3099a7d9fa94e0de6e2043857986b154..3e1323d911d6e83e8fba97c68348ca8418bed665 100644
--- a/Filters/General/vtkPassSelectedArrays.cxx
+++ b/Filters/General/vtkPassSelectedArrays.cxx
@@ -20,6 +20,7 @@
 #include "vtkInformation.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPassSelectedArrays);
 //------------------------------------------------------------------------------
 vtkPassSelectedArrays::vtkPassSelectedArrays()
@@ -147,3 +148,4 @@ void vtkPassSelectedArrays::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "RowDataArraySelection: " << endl;
   this->GetRowDataArraySelection()->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkPassSelectedArrays.h b/Filters/General/vtkPassSelectedArrays.h
index 93bf77e6be3ae008c212333e3b00bf9bae342e79..a98d4558bee38ff7fdb82d3a9d9d0264f57feb2b 100644
--- a/Filters/General/vtkPassSelectedArrays.h
+++ b/Filters/General/vtkPassSelectedArrays.h
@@ -37,6 +37,7 @@
 #include "vtkPassInputTypeAlgorithm.h"
 #include "vtkSmartPointer.h" // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 
 class VTKFILTERSGENERAL_EXPORT vtkPassSelectedArrays : public vtkPassInputTypeAlgorithm
@@ -110,4 +111,5 @@ private:
   vtkSmartPointer<vtkDataArraySelection> ArraySelections[vtkDataObject::NUMBER_OF_ASSOCIATIONS];
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkPointConnectivityFilter.cxx b/Filters/General/vtkPointConnectivityFilter.cxx
index 03ebcd9ccd94523a28ff01d941d6801c7e4e270c..ead9d504cd6ffc1a1550aac1e85bf9be505a819a 100644
--- a/Filters/General/vtkPointConnectivityFilter.cxx
+++ b/Filters/General/vtkPointConnectivityFilter.cxx
@@ -28,6 +28,7 @@
 #include "vtkNew.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointConnectivityFilter);
 
 //------------------------------------------------------------------------------
@@ -118,3 +119,4 @@ void vtkPointConnectivityFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkPointConnectivityFilter.h b/Filters/General/vtkPointConnectivityFilter.h
index f7c216a5bcf30d40b79a75cac3fc0ee129c97c89..d39399dc7ca5899a3b00be46484397317ad626b7 100644
--- a/Filters/General/vtkPointConnectivityFilter.h
+++ b/Filters/General/vtkPointConnectivityFilter.h
@@ -30,6 +30,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkPointConnectivityFilter : public vtkDataSetAlgorithm
 {
 public:
@@ -54,4 +55,5 @@ private:
   void operator=(const vtkPointConnectivityFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkPolyDataStreamer.cxx b/Filters/General/vtkPolyDataStreamer.cxx
index ce1d41151e0b556eccb4c75d1ec83bbe000fecdf..4dcb3f2ea6e16ab2f4fcaf3e9429de4d5d64a180 100644
--- a/Filters/General/vtkPolyDataStreamer.cxx
+++ b/Filters/General/vtkPolyDataStreamer.cxx
@@ -23,6 +23,7 @@
 #include "vtkPolyData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataStreamer);
 
 //------------------------------------------------------------------------------
@@ -149,3 +150,4 @@ int vtkPolyDataStreamer::FillInputPortInformation(int vtkNotUsed(port), vtkInfor
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPolyData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkPolyDataStreamer.h b/Filters/General/vtkPolyDataStreamer.h
index cf255b5a8cd8f5222515acd8a82d089e3bfae7f4..53135e75cc6df45f5a4de3d94c740a2410cf4b6d 100644
--- a/Filters/General/vtkPolyDataStreamer.h
+++ b/Filters/General/vtkPolyDataStreamer.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkStreamerBase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAppendPolyData;
 
 class VTKFILTERSGENERAL_EXPORT vtkPolyDataStreamer : public vtkStreamerBase
@@ -87,4 +88,5 @@ private:
   vtkAppendPolyData* Append;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkPolyDataToReebGraphFilter.cxx b/Filters/General/vtkPolyDataToReebGraphFilter.cxx
index b54b37676180b7fba3e2bd044e8ddc8895ad328d..bb2404653c70824353b4ed5b7e21e63d01937899 100644
--- a/Filters/General/vtkPolyDataToReebGraphFilter.cxx
+++ b/Filters/General/vtkPolyDataToReebGraphFilter.cxx
@@ -22,6 +22,7 @@
 #include "vtkPolyData.h"
 #include "vtkReebGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataToReebGraphFilter);
 
 //------------------------------------------------------------------------------
@@ -98,3 +99,4 @@ int vtkPolyDataToReebGraphFilter::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkPolyDataToReebGraphFilter.h b/Filters/General/vtkPolyDataToReebGraphFilter.h
index e1924ae3023f72d4f909f3e8feee29de2b020ee2..1aa3152a549cfac157881e29bd795e9617a55353 100644
--- a/Filters/General/vtkPolyDataToReebGraphFilter.h
+++ b/Filters/General/vtkPolyDataToReebGraphFilter.h
@@ -29,6 +29,7 @@
 #include "vtkDirectedGraphAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkReebGraph;
 
 class VTKFILTERSGENERAL_EXPORT vtkPolyDataToReebGraphFilter : public vtkDirectedGraphAlgorithm
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkPolyDataToReebGraphFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkProbePolyhedron.cxx b/Filters/General/vtkProbePolyhedron.cxx
index f321f766e2368f20d3178a709ada6b967cdffa20..a39ea088db7daea4032ebaf4e2b02bb16356a0e6 100644
--- a/Filters/General/vtkProbePolyhedron.cxx
+++ b/Filters/General/vtkProbePolyhedron.cxx
@@ -26,6 +26,7 @@
 #include "vtkPolyData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProbePolyhedron);
 
 //------------------------------------------------------------------------------
@@ -252,3 +253,4 @@ void vtkProbePolyhedron::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Probe Cell Data: " << (this->ProbeCellData ? "true" : "false") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkProbePolyhedron.h b/Filters/General/vtkProbePolyhedron.h
index b26cdce3f5ee25d21560f20b055073875b71e7bf..eaf443dbfb0bed00c6a8886f1b2054c9c8c124fe 100644
--- a/Filters/General/vtkProbePolyhedron.h
+++ b/Filters/General/vtkProbePolyhedron.h
@@ -56,6 +56,7 @@
 #include "vtkDataSetAttributes.h"    // needed for vtkDataSetAttributes::FieldList
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 class vtkCharArray;
 class vtkMaskPoints;
@@ -127,4 +128,5 @@ private:
   void operator=(const vtkProbePolyhedron&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkQuadraturePointInterpolator.cxx b/Filters/General/vtkQuadraturePointInterpolator.cxx
index f075ecc047541d7a7273010178049d0973b88d18..6cf4c47829cd8cefd7168b9613b3e25a13eaae16 100644
--- a/Filters/General/vtkQuadraturePointInterpolator.cxx
+++ b/Filters/General/vtkQuadraturePointInterpolator.cxx
@@ -42,6 +42,7 @@ using std::ostringstream;
 
 #include "vtkQuadraturePointsUtilities.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadraturePointInterpolator);
 
 //------------------------------------------------------------------------------
@@ -203,3 +204,4 @@ void vtkQuadraturePointInterpolator::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "No state." << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkQuadraturePointInterpolator.h b/Filters/General/vtkQuadraturePointInterpolator.h
index a10d27a4c3f92dcc315939974063f36f2428e599..3b3e830561deff581932f110747cc9b1cc3e3d96 100644
--- a/Filters/General/vtkQuadraturePointInterpolator.h
+++ b/Filters/General/vtkQuadraturePointInterpolator.h
@@ -35,6 +35,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGrid;
 class vtkInformation;
 class vtkInformationVector;
@@ -70,4 +71,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkQuadraturePointsGenerator.cxx b/Filters/General/vtkQuadraturePointsGenerator.cxx
index 577c6a35865298bc7df8741acfeb55cb97f30ad3..404682e99b5cb80385c955da22370b1bc42c98e2 100644
--- a/Filters/General/vtkQuadraturePointsGenerator.cxx
+++ b/Filters/General/vtkQuadraturePointsGenerator.cxx
@@ -45,6 +45,7 @@
 using std::ostringstream;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadraturePointsGenerator);
 
 //------------------------------------------------------------------------------
@@ -332,3 +333,4 @@ void vtkQuadraturePointsGenerator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkQuadraturePointsGenerator.h b/Filters/General/vtkQuadraturePointsGenerator.h
index 81db63d00daec6879df81ca949227c726c8b82c1..9897dbeed5db307832f547363ae325892dcb14e1 100644
--- a/Filters/General/vtkQuadraturePointsGenerator.h
+++ b/Filters/General/vtkQuadraturePointsGenerator.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkUnstructuredGrid;
 class vtkInformation;
@@ -69,4 +70,5 @@ private:
   void operator=(const vtkQuadraturePointsGenerator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkQuadraturePointsUtilities.hxx b/Filters/General/vtkQuadraturePointsUtilities.hxx
index fdef6abfe4b29fb8771f3676e949082e14d1cdd7..05e3864d190ce0a705298b94e6dc317a08a65eeb 100644
--- a/Filters/General/vtkQuadraturePointsUtilities.hxx
+++ b/Filters/General/vtkQuadraturePointsUtilities.hxx
@@ -26,6 +26,7 @@
 
 namespace vtkQuadraturePointsUtilities
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Description:
 // For all cells in the input "usg", for a specific array
@@ -119,6 +120,7 @@ void ApplyShapeFunction(double* r, double N_j, T* A, int nComps)
   }
 }
 
-};
+VTK_ABI_NAMESPACE_END
+}
 
 #endif
diff --git a/Filters/General/vtkQuadratureSchemeDictionaryGenerator.cxx b/Filters/General/vtkQuadratureSchemeDictionaryGenerator.cxx
index a95313e948650e5dbe9a62c6770ca1aa2a4fce90..af1f23a99324b66357c8e9107c1086eb38b2a8af 100644
--- a/Filters/General/vtkQuadratureSchemeDictionaryGenerator.cxx
+++ b/Filters/General/vtkQuadratureSchemeDictionaryGenerator.cxx
@@ -44,6 +44,7 @@ using std::string;
 // Here are some default shape functions weights which
 // we will use to create dictionaries in a gvien data set.
 // Unused weights are commented out to avoid compiler warnings.
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // double W_T_11_A[]={
@@ -282,3 +283,4 @@ void vtkQuadratureSchemeDictionaryGenerator::PrintSelf(ostream& os, vtkIndent in
 
   os << indent << "No state." << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkQuadratureSchemeDictionaryGenerator.h b/Filters/General/vtkQuadratureSchemeDictionaryGenerator.h
index f94a781c8459a58d048333899974781d2721bfd3..4eaf1d5afc3c287c0fda44778d3e67d4442a381e 100644
--- a/Filters/General/vtkQuadratureSchemeDictionaryGenerator.h
+++ b/Filters/General/vtkQuadratureSchemeDictionaryGenerator.h
@@ -33,6 +33,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkUnstructuredGrid;
 class vtkInformation;
@@ -67,4 +68,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkQuantizePolyDataPoints.cxx b/Filters/General/vtkQuantizePolyDataPoints.cxx
index 014022d4c9685f00a25594af5fd5e5d6def9f3d2..3e987605b6e1fd7f61609a060885613f7c3a51b9 100644
--- a/Filters/General/vtkQuantizePolyDataPoints.cxx
+++ b/Filters/General/vtkQuantizePolyDataPoints.cxx
@@ -16,6 +16,7 @@
 #include "vtkMergePoints.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuantizePolyDataPoints);
 
 //------------------------------------------------------------------------------
@@ -52,3 +53,4 @@ void vtkQuantizePolyDataPoints::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "QFactor: " << this->QFactor << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkQuantizePolyDataPoints.h b/Filters/General/vtkQuantizePolyDataPoints.h
index ab56e6dd41645e67584a4693735a8d63903dcd13..aeb26bc006082d0b97ab75c2de31cb8b4b6b23a2 100644
--- a/Filters/General/vtkQuantizePolyDataPoints.h
+++ b/Filters/General/vtkQuantizePolyDataPoints.h
@@ -45,6 +45,7 @@
 #include "vtkCleanPolyData.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkQuantizePolyDataPoints : public vtkCleanPolyData
 {
 public:
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkQuantizePolyDataPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkRandomAttributeGenerator.cxx b/Filters/General/vtkRandomAttributeGenerator.cxx
index d02cbb551acab5c67693ebb3fc04df84140f95d4..991e2b307a3439a1538201ad029d1c66b57789ca 100644
--- a/Filters/General/vtkRandomAttributeGenerator.cxx
+++ b/Filters/General/vtkRandomAttributeGenerator.cxx
@@ -41,6 +41,7 @@
 #include "vtkUnsignedLongLongArray.h"
 #include "vtkUnsignedShortArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRandomAttributeGenerator);
 
 //------------------------------------------------------------------------------
@@ -567,3 +568,4 @@ int vtkRandomAttributeGenerator::FillInputPortInformation(
   info->Append(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkCompositeDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkRandomAttributeGenerator.h b/Filters/General/vtkRandomAttributeGenerator.h
index 0ecc070033bc7d1a9bc5df85063e0bab17b6b067..ebf449be2c8f97ecefd4489751ce04a8bbb8c0cf 100644
--- a/Filters/General/vtkRandomAttributeGenerator.h
+++ b/Filters/General/vtkRandomAttributeGenerator.h
@@ -53,6 +53,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkCompositeDataSet;
 
@@ -387,4 +388,5 @@ private:
   void operator=(const vtkRandomAttributeGenerator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkRectilinearGridClip.cxx b/Filters/General/vtkRectilinearGridClip.cxx
index cf39714ae6cc09e4162583a57b7d14cedb0b05b6..8864e0a0f217d7a8356395848d5b3db07f3f5948 100644
--- a/Filters/General/vtkRectilinearGridClip.cxx
+++ b/Filters/General/vtkRectilinearGridClip.cxx
@@ -24,6 +24,7 @@
 #include "vtkRectilinearGrid.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearGridClip);
 
 //------------------------------------------------------------------------------
@@ -203,3 +204,4 @@ int vtkRectilinearGridClip::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkRectilinearGridClip.h b/Filters/General/vtkRectilinearGridClip.h
index 992af930e6af14fd199f977878c472337505e2c0..56285e78c390b75100ac04dc08e959ee0897ee21 100644
--- a/Filters/General/vtkRectilinearGridClip.h
+++ b/Filters/General/vtkRectilinearGridClip.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkRectilinearGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkRectilinearGridClip : public vtkRectilinearGridAlgorithm
 {
 public:
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkRectilinearGridClip&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkRectilinearGridToPointSet.cxx b/Filters/General/vtkRectilinearGridToPointSet.cxx
index 982e9f29766ac7db406208865ce5dcfcfbcc2475..7f81a1d28959868ab9961454d484ed9213de0e29 100644
--- a/Filters/General/vtkRectilinearGridToPointSet.cxx
+++ b/Filters/General/vtkRectilinearGridToPointSet.cxx
@@ -28,6 +28,7 @@
 
 #include "vtkNew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearGridToPointSet);
 
 //------------------------------------------------------------------------------
@@ -127,3 +128,4 @@ int vtkRectilinearGridToPointSet::RequestData(vtkInformation* vtkNotUsed(request
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkRectilinearGridToPointSet.h b/Filters/General/vtkRectilinearGridToPointSet.h
index 5af895e80503552e281ec13f25b0036e68727303..933e2169ebcbe7f2bff9bdef444c90036e609b74 100644
--- a/Filters/General/vtkRectilinearGridToPointSet.h
+++ b/Filters/General/vtkRectilinearGridToPointSet.h
@@ -37,6 +37,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkStructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRectilinearGrid;
 class vtkStructuredData;
 
@@ -64,4 +65,5 @@ private:
   int CopyStructure(vtkStructuredGrid* outData, vtkRectilinearGrid* inData);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkRectilinearGridToPointSet_h
diff --git a/Filters/General/vtkRectilinearGridToTetrahedra.cxx b/Filters/General/vtkRectilinearGridToTetrahedra.cxx
index 60c9358e81c48df1522d85bba95248db9f828a7d..60ef073b67dd5b309505a4ce4dd8080aa177b5df 100644
--- a/Filters/General/vtkRectilinearGridToTetrahedra.cxx
+++ b/Filters/General/vtkRectilinearGridToTetrahedra.cxx
@@ -29,6 +29,7 @@
 #include "vtkUnstructuredGrid.h"
 #include "vtkVoxel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearGridToTetrahedra);
 
 // ways to convert to a voxel to tetrahedra.
@@ -596,3 +597,4 @@ void vtkRectilinearGridToTetrahedra::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Mesh Type: " << this->TetraPerCell << "\n";
   os << indent << "RememberVoxel Id: " << this->RememberVoxelId << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkRectilinearGridToTetrahedra.h b/Filters/General/vtkRectilinearGridToTetrahedra.h
index c937a740d2adec8fb8ac34990600a1b28c7a7aaf..6a87d0d3dbe2a36dcd8d8477e9e9909f9b600d06 100644
--- a/Filters/General/vtkRectilinearGridToTetrahedra.h
+++ b/Filters/General/vtkRectilinearGridToTetrahedra.h
@@ -54,6 +54,7 @@
 
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRectilinearGrid;
 class vtkSignedCharArray;
 class vtkIdList;
@@ -153,4 +154,5 @@ private:
   static inline void TetrahedralizeAddCenterPoint(vtkIdList* VoxelCorners, vtkPoints* NodeList);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkRectilinearGridToTetrahedra_h */
diff --git a/Filters/General/vtkRecursiveDividingCubes.cxx b/Filters/General/vtkRecursiveDividingCubes.cxx
index a550f5d961c4b614eb8d214ecd595174cba316dd..69a72d8dcd814362eaf2d08e1a85b0e70c1efc32 100644
--- a/Filters/General/vtkRecursiveDividingCubes.cxx
+++ b/Filters/General/vtkRecursiveDividingCubes.cxx
@@ -26,6 +26,7 @@
 #include "vtkPolyData.h"
 #include "vtkVoxel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRecursiveDividingCubes);
 
 vtkRecursiveDividingCubes::vtkRecursiveDividingCubes()
@@ -345,3 +346,4 @@ void vtkRecursiveDividingCubes::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Distance: " << this->Distance << "\n";
   os << indent << "Increment: " << this->Increment << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkRecursiveDividingCubes.h b/Filters/General/vtkRecursiveDividingCubes.h
index 867238121caca8183fdd589401886153920b9bb2..670fe7bb57db4e0921870bd1b6910c6b59eaac29 100644
--- a/Filters/General/vtkRecursiveDividingCubes.h
+++ b/Filters/General/vtkRecursiveDividingCubes.h
@@ -40,6 +40,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVoxel;
 
 class VTKFILTERSGENERAL_EXPORT vtkRecursiveDividingCubes : public vtkPolyDataAlgorithm
@@ -98,4 +99,5 @@ private:
   void operator=(const vtkRecursiveDividingCubes&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkReflectionFilter.cxx b/Filters/General/vtkReflectionFilter.cxx
index 7ef8015e97a544591e254db13b49b5193af8aaae..9fcb55e1bd0b35fe3fbbb1648717f746778c190f 100644
--- a/Filters/General/vtkReflectionFilter.cxx
+++ b/Filters/General/vtkReflectionFilter.cxx
@@ -34,6 +34,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 /**
@@ -1143,3 +1144,4 @@ void vtkReflectionFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Center: " << this->Center << endl;
   os << indent << "CopyInput: " << this->CopyInput << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkReflectionFilter.h b/Filters/General/vtkReflectionFilter.h
index 7d7e21b2161e0dd63ebf850bdcd92e5fc54a1cdb..d3aca9e540ec49cfbd3253c0590b27f6da5b98dc 100644
--- a/Filters/General/vtkReflectionFilter.h
+++ b/Filters/General/vtkReflectionFilter.h
@@ -28,6 +28,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGrid;
 class vtkDataSet;
 
@@ -143,4 +144,5 @@ private:
   void operator=(const vtkReflectionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkRemovePolyData.cxx b/Filters/General/vtkRemovePolyData.cxx
index a29abd326c61f391e813e817459c78d514adcf38..6b60efd7a80e255ba3022cc7d72fe3a8eeb1cb4c 100644
--- a/Filters/General/vtkRemovePolyData.cxx
+++ b/Filters/General/vtkRemovePolyData.cxx
@@ -33,6 +33,7 @@
 #include "vtkStaticCellLinksTemplate.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRemovePolyData);
 vtkCxxSetObjectMacro(vtkRemovePolyData, CellIds, vtkIdTypeArray);
 vtkCxxSetObjectMacro(vtkRemovePolyData, PointIds, vtkIdTypeArray);
@@ -813,3 +814,4 @@ void vtkRemovePolyData::PrintSelf(ostream& os, vtkIndent indent)
   os << "Point Ids: " << this->PointIds << endl;
   os << "Exact Match: " << (this->ExactMatch ? "On" : "Off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkRemovePolyData.h b/Filters/General/vtkRemovePolyData.h
index 8556cf654e448eec23a7212f5511f6d7eb53e174..164549d5e2b97c6c0d58cfaeb5c53c4a820557f2 100644
--- a/Filters/General/vtkRemovePolyData.h
+++ b/Filters/General/vtkRemovePolyData.h
@@ -44,6 +44,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkDataArray;
 class vtkPoints;
@@ -133,4 +134,5 @@ private:
   void operator=(const vtkRemovePolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkRotationFilter.cxx b/Filters/General/vtkRotationFilter.cxx
index bef35c96cb5e4237aecd47fae880cc62a69ec348..4c08b2b150f1624d49d2bae6ce31d0fee8089b54 100644
--- a/Filters/General/vtkRotationFilter.cxx
+++ b/Filters/General/vtkRotationFilter.cxx
@@ -25,6 +25,7 @@
 #include "vtkTransform.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRotationFilter);
 
 //------------------------------------------------------------------------------
@@ -224,3 +225,4 @@ int vtkRotationFilter::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkRotationFilter.h b/Filters/General/vtkRotationFilter.h
index 0cc221bfe7ea3bbe5feba067b983903294033f89..ba2267ed3b1e94d8e64caeb6a31d15c560dacd7f 100644
--- a/Filters/General/vtkRotationFilter.h
+++ b/Filters/General/vtkRotationFilter.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkRotationFilter : public vtkUnstructuredGridAlgorithm
 {
 public:
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkRotationFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkSampleImplicitFunctionFilter.cxx b/Filters/General/vtkSampleImplicitFunctionFilter.cxx
index 7ea6f81fbfb5ad596651eec6be8d8428de5c1375..1821b0d25d06202c6217fc9774c7cb7a1bc8ff71 100644
--- a/Filters/General/vtkSampleImplicitFunctionFilter.cxx
+++ b/Filters/General/vtkSampleImplicitFunctionFilter.cxx
@@ -27,6 +27,7 @@
 #include "vtkSMPTools.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSampleImplicitFunctionFilter);
 vtkCxxSetObjectMacro(vtkSampleImplicitFunctionFilter, ImplicitFunction, vtkImplicitFunction);
 
@@ -268,3 +269,4 @@ void vtkSampleImplicitFunctionFilter::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkSampleImplicitFunctionFilter.h b/Filters/General/vtkSampleImplicitFunctionFilter.h
index 895a6316afa99112f275cc12993eb62a55cb47e7..90cf1edbab6b3ea459bf2c725cfd8bbf5e9e3774 100644
--- a/Filters/General/vtkSampleImplicitFunctionFilter.h
+++ b/Filters/General/vtkSampleImplicitFunctionFilter.h
@@ -38,6 +38,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
 class vtkDataArray;
 
@@ -112,4 +113,5 @@ private:
   void operator=(const vtkSampleImplicitFunctionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkShrinkFilter.cxx b/Filters/General/vtkShrinkFilter.cxx
index ee0a2dcb6c669b9112078a7de40601d46595d9a8..6fae470e63cd7d785f9f955479bcf62ecf283a12 100644
--- a/Filters/General/vtkShrinkFilter.cxx
+++ b/Filters/General/vtkShrinkFilter.cxx
@@ -24,6 +24,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkShrinkFilter);
 
 //------------------------------------------------------------------------------
@@ -185,3 +186,4 @@ int vtkShrinkFilter::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkShrinkFilter.h b/Filters/General/vtkShrinkFilter.h
index fb5e1996ea47fb55f0ca0d9f1b970676a534b38c..bcd443374677d4a5793ab52c1bdfebcbb7862917 100644
--- a/Filters/General/vtkShrinkFilter.h
+++ b/Filters/General/vtkShrinkFilter.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkShrinkFilter : public vtkUnstructuredGridAlgorithm
 {
 public:
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkShrinkFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkShrinkPolyData.cxx b/Filters/General/vtkShrinkPolyData.cxx
index 45690b0fb943bad1894a3f3771c26f5508799421..c202053e31eb99efa227980b5402067318295f68 100644
--- a/Filters/General/vtkShrinkPolyData.cxx
+++ b/Filters/General/vtkShrinkPolyData.cxx
@@ -24,6 +24,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkShrinkPolyData);
 
 vtkShrinkPolyData::vtkShrinkPolyData(double sf)
@@ -309,3 +310,4 @@ void vtkShrinkPolyData::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Shrink Factor: " << this->ShrinkFactor << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkShrinkPolyData.h b/Filters/General/vtkShrinkPolyData.h
index d974c9029871da645ea53017d01047972dc849df..ea51c9ea723e7ff15def8757e4d86dcaed597143 100644
--- a/Filters/General/vtkShrinkPolyData.h
+++ b/Filters/General/vtkShrinkPolyData.h
@@ -42,6 +42,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkShrinkPolyData : public vtkPolyDataAlgorithm
 {
 public:
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkShrinkPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkSpatialRepresentationFilter.cxx b/Filters/General/vtkSpatialRepresentationFilter.cxx
index 941fcd113390558763ac320a7371b87a0a086d89..dbf9b3e80d70b613bb4a49db0a722962b370cdd1 100644
--- a/Filters/General/vtkSpatialRepresentationFilter.cxx
+++ b/Filters/General/vtkSpatialRepresentationFilter.cxx
@@ -24,6 +24,7 @@
 
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSpatialRepresentationFilterInternal
 {
 public:
@@ -137,3 +138,4 @@ int vtkSpatialRepresentationFilter::FillInputPortInformation(int port, vtkInform
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkSpatialRepresentationFilter.h b/Filters/General/vtkSpatialRepresentationFilter.h
index a87e04667104eca92b4935c1f0f3ef33bcdb735a..a2a418565a73bca800eff38dd53c6b7c15f7997e 100644
--- a/Filters/General/vtkSpatialRepresentationFilter.h
+++ b/Filters/General/vtkSpatialRepresentationFilter.h
@@ -50,6 +50,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLocator;
 class vtkDataSet;
 class vtkSpatialRepresentationFilterInternal;
@@ -117,4 +118,5 @@ private:
   vtkSpatialRepresentationFilterInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkSphericalHarmonics.cxx b/Filters/General/vtkSphericalHarmonics.cxx
index 5b0288a1165fa068156f8a6eaa219f0cb35d210f..8887fec9ca13e1d0a0afec50110dda9793abb1b8 100644
--- a/Filters/General/vtkSphericalHarmonics.cxx
+++ b/Filters/General/vtkSphericalHarmonics.cxx
@@ -28,6 +28,7 @@
 #include <array>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSphericalHarmonics);
 
 namespace
@@ -228,3 +229,4 @@ int vtkSphericalHarmonics::FillOutputPortInformation(int vtkNotUsed(port), vtkIn
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkTable");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkSphericalHarmonics.h b/Filters/General/vtkSphericalHarmonics.h
index adeb7d5aa6099430a13d938117a51299adf70d23..83cd2efada38b7c78f3a10447cfc6128197e81b9 100644
--- a/Filters/General/vtkSphericalHarmonics.h
+++ b/Filters/General/vtkSphericalHarmonics.h
@@ -30,6 +30,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkSphericalHarmonics : public vtkImageAlgorithm
 {
 public:
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkSphericalHarmonics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkSplineFilter.cxx b/Filters/General/vtkSplineFilter.cxx
index 7176fef45e18a21d099654b7c73757c89254cd9d..a319b280cde940618e994c7137043cfaa1e4eb79 100644
--- a/Filters/General/vtkSplineFilter.cxx
+++ b/Filters/General/vtkSplineFilter.cxx
@@ -26,6 +26,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSplineFilter);
 vtkCxxSetObjectMacro(vtkSplineFilter, Spline, vtkSpline);
 
@@ -375,3 +376,4 @@ void vtkSplineFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Generate TCoords: " << this->GetGenerateTCoordsAsString() << endl;
   os << indent << "Texture Length: " << this->TextureLength << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkSplineFilter.h b/Filters/General/vtkSplineFilter.h
index 0522c6989804764f7780fafc3dd6478c0b6c8ad3..85f282710204a9f5cd95a84aa6f29937c402a859 100644
--- a/Filters/General/vtkSplineFilter.h
+++ b/Filters/General/vtkSplineFilter.h
@@ -48,6 +48,7 @@
 #define VTK_TCOORDS_FROM_LENGTH 2
 #define VTK_TCOORDS_FROM_SCALARS 3
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkCellData;
 class vtkFloatArray;
@@ -180,4 +181,5 @@ private:
   void operator=(const vtkSplineFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkSplitByCellScalarFilter.cxx b/Filters/General/vtkSplitByCellScalarFilter.cxx
index b647105b63ca1641b55ca496900c2a960d00eaef..f2d0f1d5c25b3e3663ffb8e044a43db97c15a6c5 100644
--- a/Filters/General/vtkSplitByCellScalarFilter.cxx
+++ b/Filters/General/vtkSplitByCellScalarFilter.cxx
@@ -32,6 +32,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSplitByCellScalarFilter);
 
 //------------------------------------------------------------------------------
@@ -238,3 +239,4 @@ void vtkSplitByCellScalarFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Pass All Points: " << (this->GetPassAllPoints() ? "On" : "Off") << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkSplitByCellScalarFilter.h b/Filters/General/vtkSplitByCellScalarFilter.h
index 583a0cc226c2035d7a388b7e9a1af51bb3e0ae08..87f2502e1865bbeda023da39d9a07e43ee68b351 100644
--- a/Filters/General/vtkSplitByCellScalarFilter.h
+++ b/Filters/General/vtkSplitByCellScalarFilter.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkSplitByCellScalarFilter : public vtkMultiBlockDataSetAlgorithm
 {
 public:
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkSplitByCellScalarFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkSplitColumnComponents.cxx b/Filters/General/vtkSplitColumnComponents.cxx
index 82f6785783d20cf698f9a07d774f807785c1092b..1471c1f2d681a10e8b6dae803de3400cd0239e11 100644
--- a/Filters/General/vtkSplitColumnComponents.cxx
+++ b/Filters/General/vtkSplitColumnComponents.cxx
@@ -32,6 +32,7 @@
 #include <cmath>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSplitColumnComponents);
 vtkInformationKeyMacro(vtkSplitColumnComponents, ORIGINAL_ARRAY_NAME, String);
 vtkInformationKeyMacro(vtkSplitColumnComponents, ORIGINAL_COMPONENT_NUMBER, Integer);
@@ -290,3 +291,4 @@ void vtkSplitColumnComponents::PrintSelf(ostream& os, vtkIndent indent)
       os << "INVALID" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkSplitColumnComponents.h b/Filters/General/vtkSplitColumnComponents.h
index fb29c0b6c39c7de89210437042c89b269028aab3..f33a030072604b136f93606e1107354300ed02a6 100644
--- a/Filters/General/vtkSplitColumnComponents.h
+++ b/Filters/General/vtkSplitColumnComponents.h
@@ -42,6 +42,7 @@
 
 #include <string> // for std::strin
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationIntegerKey;
 class vtkInformationStringKey;
 
@@ -119,4 +120,5 @@ private:
   int NamingMode;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkSplitField.cxx b/Filters/General/vtkSplitField.cxx
index ea183fd57d0281a7575362a58ff20207062dfc56..23f1d404f23636359d41dde868e4703ce04d8729 100644
--- a/Filters/General/vtkSplitField.cxx
+++ b/Filters/General/vtkSplitField.cxx
@@ -26,6 +26,7 @@
 #include "vtkPointData.h"
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSplitField);
 
 char vtkSplitField::FieldLocationNames[3][12] = { "DATA_OBJECT", "POINT_DATA", "CELL_DATA" };
@@ -418,3 +419,4 @@ void vtkSplitField::PrintAllComponents(ostream& os, vtkIndent indent)
     this->PrintComponent(before, os, indent);
   } while (cur);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkSplitField.h b/Filters/General/vtkSplitField.h
index 8ffd3e831c4f6ee85be4b3ddcad6eb82d1aa5984..aae8e2057a1165535793a0de7eba6026d7f187ae 100644
--- a/Filters/General/vtkSplitField.h
+++ b/Filters/General/vtkSplitField.h
@@ -51,6 +51,7 @@
 
 #include "vtkDataSetAttributes.h" // Needed for NUM_ATTRIBUTES
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFieldData;
 
 class VTKFILTERSGENERAL_EXPORT vtkSplitField : public vtkDataSetAlgorithm
@@ -159,4 +160,5 @@ private:
   void operator=(const vtkSplitField&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkStructuredGridClip.cxx b/Filters/General/vtkStructuredGridClip.cxx
index a87a4399e40b4902c4aa9d851fcaff07192b76d5..9f9f027a485b03fd29ed7a8d98632a6b4ef1e173 100644
--- a/Filters/General/vtkStructuredGridClip.cxx
+++ b/Filters/General/vtkStructuredGridClip.cxx
@@ -24,6 +24,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkStructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredGridClip);
 
 //------------------------------------------------------------------------------
@@ -201,3 +202,4 @@ int vtkStructuredGridClip::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkStructuredGridClip.h b/Filters/General/vtkStructuredGridClip.h
index b6499e9af0cf04d77b19f2c64feadbf0b16b9210..fb12e636813c40306dbc81d8a191bede90009d7f 100644
--- a/Filters/General/vtkStructuredGridClip.h
+++ b/Filters/General/vtkStructuredGridClip.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkStructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkStructuredGridClip : public vtkStructuredGridAlgorithm
 {
 public:
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkStructuredGridClip&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkSubPixelPositionEdgels.cxx b/Filters/General/vtkSubPixelPositionEdgels.cxx
index 65233c2244106a258fc507b56f7273a20e71cf47..8809b1f5cfaa0388317f8731d26874ecbcb6fc8b 100644
--- a/Filters/General/vtkSubPixelPositionEdgels.cxx
+++ b/Filters/General/vtkSubPixelPositionEdgels.cxx
@@ -25,6 +25,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkStructuredPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSubPixelPositionEdgels);
 
 vtkSubPixelPositionEdgels::vtkSubPixelPositionEdgels()
@@ -710,3 +711,4 @@ void vtkSubPixelPositionEdgels::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "TargetFlag: " << this->TargetFlag << endl;
   os << indent << "TargetValue: " << this->TargetValue << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkSubPixelPositionEdgels.h b/Filters/General/vtkSubPixelPositionEdgels.h
index f8bca19c273a78c93dcfef591ff0cf3ce83befce..9126ca1931535836c7cd01f7c17f996d0908cdb2 100644
--- a/Filters/General/vtkSubPixelPositionEdgels.h
+++ b/Filters/General/vtkSubPixelPositionEdgels.h
@@ -40,6 +40,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStructuredPoints;
 class vtkDataArray;
 
@@ -91,4 +92,5 @@ private:
   void operator=(const vtkSubPixelPositionEdgels&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkSubdivisionFilter.cxx b/Filters/General/vtkSubdivisionFilter.cxx
index 758de552cad9febc7d830ee84b3f4805b5b82f8a..d57dd9f465f661cc7f5195f99867e8f46f895a2f 100644
--- a/Filters/General/vtkSubdivisionFilter.cxx
+++ b/Filters/General/vtkSubdivisionFilter.cxx
@@ -32,6 +32,7 @@
 
 // Construct object with number of subdivisions set to 1, check for
 // triangles set to 1
+VTK_ABI_NAMESPACE_BEGIN
 vtkSubdivisionFilter::vtkSubdivisionFilter()
 {
   this->NumberOfSubdivisions = 1;
@@ -101,3 +102,4 @@ void vtkSubdivisionFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Number of subdivisions: " << this->GetNumberOfSubdivisions() << endl;
   os << indent << "Check for triangles: " << this->GetCheckForTriangles() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkSubdivisionFilter.h b/Filters/General/vtkSubdivisionFilter.h
index 9c957d4e60299654efd6c86bb055b8089a7b08c7..503f463dfdd045a3324491168063e928525d9fae 100644
--- a/Filters/General/vtkSubdivisionFilter.h
+++ b/Filters/General/vtkSubdivisionFilter.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkCellData;
 class vtkIdList;
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkSubdivisionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkSynchronizeTimeFilter.cxx b/Filters/General/vtkSynchronizeTimeFilter.cxx
index 589d10bd445c3057b206a385f2faa54134dd344c..5ad66cddddf83e64c3a76aebb346b01b848f59f1 100644
--- a/Filters/General/vtkSynchronizeTimeFilter.cxx
+++ b/Filters/General/vtkSynchronizeTimeFilter.cxx
@@ -24,6 +24,7 @@
 #include <algorithm>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSynchronizeTimeFilter);
 
 //------------------------------------------------------------------------------
@@ -198,3 +199,4 @@ int vtkSynchronizeTimeFilter::RequestData(vtkInformation* vtkNotUsed(request),
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkSynchronizeTimeFilter.h b/Filters/General/vtkSynchronizeTimeFilter.h
index de60e9475c2c993395b70f45b15287c0cf5d0f87..84bf7ecf63861880c1a883f44dd40ab9857782e4 100644
--- a/Filters/General/vtkSynchronizeTimeFilter.h
+++ b/Filters/General/vtkSynchronizeTimeFilter.h
@@ -35,6 +35,7 @@
 
 #include <vector> // Use of dynamically allocated array
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkSynchronizeTimeFilter : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -94,4 +95,5 @@ private:
   double RelativeTolerance;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkTableBasedClipCases.cxx b/Filters/General/vtkTableBasedClipCases.cxx
index aa7d0f66f391bf1a424a7985aa686f61404d8b46..2ffb16abc5ceb530104adc91793dbcdbef23146b 100644
--- a/Filters/General/vtkTableBasedClipCases.cxx
+++ b/Filters/General/vtkTableBasedClipCases.cxx
@@ -35,6 +35,7 @@
 
 namespace vtkTableBasedClipperTriangulationTables
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 static const int8_t TetTriangulationTable[16][7] = {
   {-1, -1, -1, -1, -1, -1, -1},
@@ -824,7 +825,8 @@ static const int8_t LineVerticesFromEdges[1][2] =
     {0,1}
 };
 
-};
+VTK_ABI_NAMESPACE_END
+}
 
 // ============================================================================
 // ====================== vtkTriangulationTables ( end ) ======================
@@ -837,6 +839,7 @@ static const int8_t LineVerticesFromEdges[1][2] =
 
 namespace vtkTableBasedClipperClipTables
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 // ---- ClipCases.h (begin)
@@ -8985,7 +8988,8 @@ static uint8_t ClipShapesVtx[] = {
 // ---- ClipCasesVtx.C ( end )
 //------------------------------------------------------------------------------
 
-};
+VTK_ABI_NAMESPACE_END
+}
 
 // ============================================================================
 // ============================= ClipCases ( end ) ============================
diff --git a/Filters/General/vtkTableBasedClipDataSet.cxx b/Filters/General/vtkTableBasedClipDataSet.cxx
index f25f7f1bb463b7e1285a8faac98b0879bdaf983c..a864b2310528a340ec43edd822878c7a15568efe 100644
--- a/Filters/General/vtkTableBasedClipDataSet.cxx
+++ b/Filters/General/vtkTableBasedClipDataSet.cxx
@@ -60,6 +60,7 @@
 // NOLINTNEXTLINE(bugprone-suspicious-include)
 #include "vtkTableBasedClipCases.cxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTableBasedClipDataSet);
 vtkCxxSetObjectMacro(vtkTableBasedClipDataSet, ClipFunction, vtkImplicitFunction);
 
@@ -2906,3 +2907,4 @@ void vtkTableBasedClipDataSet::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Precision of the output points: " << this->OutputPointsPrecision << "\n";
   os << indent << "Batch size: " << this->BatchSize << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkTableBasedClipDataSet.h b/Filters/General/vtkTableBasedClipDataSet.h
index 004eca542bf0a9f0c462379ae5ac427e6ae5600c..37d12edf00c7118c7966bfebadc9b9eb11070221 100644
--- a/Filters/General/vtkTableBasedClipDataSet.h
+++ b/Filters/General/vtkTableBasedClipDataSet.h
@@ -99,6 +99,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkDoubleArray;
 class vtkImplicitFunction;
@@ -320,4 +321,5 @@ private:
   void operator=(const vtkTableBasedClipDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkTableFFT.cxx b/Filters/General/vtkTableFFT.cxx
index abac1f19e778871fccf52c43b99b60ca14651a81..77c423cdd09ee8929869d52b860269e8c2b4dafd 100644
--- a/Filters/General/vtkTableFFT.cxx
+++ b/Filters/General/vtkTableFFT.cxx
@@ -43,6 +43,7 @@
 
 namespace details
 {
+VTK_ABI_NAMESPACE_BEGIN
 // Easy access to the right windowing function using vtkTableFFT enumeration.
 // clang-format off
 constexpr static std::array<vtkFFT::WindowGenerator, vtkTableFFT::MAX_WINDOWING_FUNCTION> WindowingFunctionsList =
@@ -54,8 +55,10 @@ constexpr static std::array<vtkFFT::WindowGenerator, vtkTableFFT::MAX_WINDOWING_
   vtkFFT::RectangularGenerator
 };
 // clang-format on
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 struct vtkTableFFT::vtkInternal
 {
@@ -344,3 +347,4 @@ void vtkTableFFT::PrintSelf(std::ostream& os, vtkIndent indent)
   os << indent << "BlockSize: " << this->BlockSize << std::endl;
   os << indent << "WindowingFunction: " << this->WindowingFunction << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkTableFFT.h b/Filters/General/vtkTableFFT.h
index 054ee82222187e6a9406ff898686a6e7587a6fbf..271306ccc866434d2c2f93bb3558984567c5060b 100644
--- a/Filters/General/vtkTableFFT.h
+++ b/Filters/General/vtkTableFFT.h
@@ -55,6 +55,8 @@
 
 #include <memory> // For unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKFILTERSGENERAL_EXPORT vtkTableFFT : public vtkTableAlgorithm
 {
 public:
@@ -313,4 +315,5 @@ private:
   std::unique_ptr<vtkInternal> Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTableFFT_h
diff --git a/Filters/General/vtkTableToPolyData.cxx b/Filters/General/vtkTableToPolyData.cxx
index 44979d8342c54030ad94a8c8ee79d53d65df960a..6d58de529a1ea60b6ec093cdb63357041f8ce7a0 100644
--- a/Filters/General/vtkTableToPolyData.cxx
+++ b/Filters/General/vtkTableToPolyData.cxx
@@ -23,6 +23,7 @@
 #include "vtkPolyData.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTableToPolyData);
 //------------------------------------------------------------------------------
 vtkTableToPolyData::vtkTableToPolyData()
@@ -189,3 +190,4 @@ void vtkTableToPolyData::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "PreserveCoordinateColumnsAsDataArrays: "
      << (this->PreserveCoordinateColumnsAsDataArrays ? "true" : "false") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkTableToPolyData.h b/Filters/General/vtkTableToPolyData.h
index 9db6087e7c541d97a86f9f19e145840e94554989..b4d7ffd824c24880769bf10499cc6e8d2919c5d7 100644
--- a/Filters/General/vtkTableToPolyData.h
+++ b/Filters/General/vtkTableToPolyData.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkTableToPolyData : public vtkPolyDataAlgorithm
 {
 public:
@@ -165,4 +166,5 @@ private:
   void operator=(const vtkTableToPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkTableToStructuredGrid.cxx b/Filters/General/vtkTableToStructuredGrid.cxx
index ade68cc7d8427f6ecd3a9223472a10000b00b6c3..a7f88d0be9a05fd6cf5ed8740c8fe5cdd7be286c 100644
--- a/Filters/General/vtkTableToStructuredGrid.cxx
+++ b/Filters/General/vtkTableToStructuredGrid.cxx
@@ -23,6 +23,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTableToStructuredGrid);
 //------------------------------------------------------------------------------
 vtkTableToStructuredGrid::vtkTableToStructuredGrid()
@@ -154,3 +155,4 @@ void vtkTableToStructuredGrid::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ZColumn: " << (this->ZColumn ? this->ZColumn : "(none)") << endl;
   os << indent << "ZComponent: " << this->ZComponent << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkTableToStructuredGrid.h b/Filters/General/vtkTableToStructuredGrid.h
index f1fef22ca8c30abb5594362e1e0500490b771a35..a26ddf907bb6d400cc3522bbc72fda913b1ba390 100644
--- a/Filters/General/vtkTableToStructuredGrid.h
+++ b/Filters/General/vtkTableToStructuredGrid.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkStructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTable;
 
 class VTKFILTERSGENERAL_EXPORT vtkTableToStructuredGrid : public vtkStructuredGridAlgorithm
@@ -137,4 +138,5 @@ private:
   void operator=(const vtkTableToStructuredGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkTemporalPathLineFilter.cxx b/Filters/General/vtkTemporalPathLineFilter.cxx
index 9446730b900326a76b50be9f91539d7e8a9033b9..fca910a76924f8b7fcda756169fdfcb5580b11a0 100644
--- a/Filters/General/vtkTemporalPathLineFilter.cxx
+++ b/Filters/General/vtkTemporalPathLineFilter.cxx
@@ -34,6 +34,7 @@
 #include <string>
 #include <vector>
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTemporalPathLineFilter);
 //------------------------------------------------------------------------------
 //
@@ -640,3 +641,4 @@ void vtkTemporalPathLineFilter::PrintSelf(ostream& os, vtkIndent indent)
      << this->MaxStepDistance[1] << "," << this->MaxStepDistance[2] << "}\n";
   os << indent << "KeepDeadTrails: " << this->KeepDeadTrails << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkTemporalPathLineFilter.h b/Filters/General/vtkTemporalPathLineFilter.h
index 9f7688d1edd1093a7fbf66c249b0678709bce3ca..8eddcaa42f299c2c170e360ea5513c66b8f2bb6e 100644
--- a/Filters/General/vtkTemporalPathLineFilter.h
+++ b/Filters/General/vtkTemporalPathLineFilter.h
@@ -39,13 +39,16 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkCellArray;
 class vtkMergePoints;
 class vtkFloatArray;
 
+VTK_ABI_NAMESPACE_END
 #include "vtkSmartPointer.h" // for memory safety
 #include <set>               // Because we want to use it
+VTK_ABI_NAMESPACE_BEGIN
 class ParticleTrail;
 class vtkTemporalPathLineFilterInternals;
 typedef vtkSmartPointer<ParticleTrail> TrailPointer;
@@ -206,4 +209,5 @@ private:
   void operator=(const vtkTemporalPathLineFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkTemporalStatistics.cxx b/Filters/General/vtkTemporalStatistics.cxx
index 2e6e17d0284dcd6e2e0cc8c5497c35f02342d44a..6dc4ca99ad2c2b9359d22541df7d2ae3300a0487 100644
--- a/Filters/General/vtkTemporalStatistics.cxx
+++ b/Filters/General/vtkTemporalStatistics.cxx
@@ -46,6 +46,7 @@
 #include <functional>
 
 //=============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTemporalStatistics);
 
 namespace
@@ -721,3 +722,4 @@ vtkDataArray* vtkTemporalStatistics::GetArray(
 
   return outArray;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkTemporalStatistics.h b/Filters/General/vtkTemporalStatistics.h
index dd57b0803326352b4ed6b70ee60eacd75fd942dd..995a0e5752510f4e6f87184b15405c2975408541 100644
--- a/Filters/General/vtkTemporalStatistics.h
+++ b/Filters/General/vtkTemporalStatistics.h
@@ -55,6 +55,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkDataSet;
 class vtkFieldData;
@@ -169,4 +170,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif //_vtkTemporalStatistics_h
diff --git a/Filters/General/vtkTessellatorFilter.cxx b/Filters/General/vtkTessellatorFilter.cxx
index b5e590bfac8e8401a89d37ce5ba5dc72c600c0b0..635fdadb069d5015f88a775afb3f06fc605234ce 100644
--- a/Filters/General/vtkTessellatorFilter.cxx
+++ b/Filters/General/vtkTessellatorFilter.cxx
@@ -34,6 +34,7 @@
 #include "vtkTessellatorFilter.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTessellatorFilter);
 
 namespace
@@ -1694,3 +1695,4 @@ int vtkTessellatorFilter::FillInputPortInformation(int vtkNotUsed(port), vtkInfo
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkTessellatorFilter.h b/Filters/General/vtkTessellatorFilter.h
index 4504a4e9b5b67b73d01565b23dca34f67506ab2b..9ba048b5cc8e965a351573fd1ece7d2830d8ec1c 100644
--- a/Filters/General/vtkTessellatorFilter.h
+++ b/Filters/General/vtkTessellatorFilter.h
@@ -56,6 +56,7 @@ statement of authorship are reproduced on all copies.
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkDataSet;
 class vtkDataSetEdgeSubdivisionCriterion;
@@ -202,4 +203,5 @@ inline int vtkTessellatorFilter::GetOutputDimension() const
 }
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTessellatorFilter_h
diff --git a/Filters/General/vtkTimeSourceExample.cxx b/Filters/General/vtkTimeSourceExample.cxx
index 6efb6946abd92b4a9fdda804c2d44d47ca53caff..3fa1e64353f53d9af06594b9e99f6d8571a439b4 100644
--- a/Filters/General/vtkTimeSourceExample.cxx
+++ b/Filters/General/vtkTimeSourceExample.cxx
@@ -31,6 +31,7 @@
 #include "vtkUnstructuredGrid.h"
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTimeSourceExample);
 
 //------------------------------------------------------------------------------
@@ -340,3 +341,4 @@ void vtkTimeSourceExample::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "YAmplitude: " << this->YAmplitude << endl;
   os << indent << "Growing: " << this->Growing << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkTimeSourceExample.h b/Filters/General/vtkTimeSourceExample.h
index 5e0b470c6fff0409f0e5e5fa7a17ac7abeb8988c..853c6b5280aa7e8d09802c0be54c48384c76978e 100644
--- a/Filters/General/vtkTimeSourceExample.h
+++ b/Filters/General/vtkTimeSourceExample.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkTimeSourceExample : public vtkUnstructuredGridAlgorithm
 {
 public:
@@ -99,4 +100,5 @@ private:
   void operator=(const vtkTimeSourceExample&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkTransformFilter.cxx b/Filters/General/vtkTransformFilter.cxx
index 78a90374f214db29543ff44a0839e1d3bc338706..dfe943113fd134c6e2d3b17fa4289ad079d737bc 100644
--- a/Filters/General/vtkTransformFilter.cxx
+++ b/Filters/General/vtkTransformFilter.cxx
@@ -33,6 +33,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransformFilter);
 vtkCxxSetObjectMacro(vtkTransformFilter, Transform, vtkAbstractTransform);
 
@@ -399,3 +400,4 @@ void vtkTransformFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Transform: " << this->Transform << "\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkTransformFilter.h b/Filters/General/vtkTransformFilter.h
index 35dd989ddd273be1cdf728fe6b4a8aa3f57ee889..043b228e206254a2905cce9ac35201cb5d45e90c 100644
--- a/Filters/General/vtkTransformFilter.h
+++ b/Filters/General/vtkTransformFilter.h
@@ -41,6 +41,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractTransform;
 
 class VTKFILTERSGENERAL_EXPORT vtkTransformFilter : public vtkPointSetAlgorithm
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkTransformFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkTransformPolyDataFilter.cxx b/Filters/General/vtkTransformPolyDataFilter.cxx
index 85051cc43c2d6ad192301be15b760e2a56fe70a3..fdfe64baa5611f2d00f65923c8630227bfa09544 100644
--- a/Filters/General/vtkTransformPolyDataFilter.cxx
+++ b/Filters/General/vtkTransformPolyDataFilter.cxx
@@ -25,6 +25,7 @@
 #include "vtkPolyData.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransformPolyDataFilter);
 vtkCxxSetObjectMacro(vtkTransformPolyDataFilter, Transform, vtkAbstractTransform);
 
@@ -224,3 +225,4 @@ void vtkTransformPolyDataFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Transform: " << this->Transform << "\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkTransformPolyDataFilter.h b/Filters/General/vtkTransformPolyDataFilter.h
index 3b2915036d6579208a20a96810f8b4f6cd08eda4..ede25d6f625ede674504ffa876e7390cd5ca9dab 100644
--- a/Filters/General/vtkTransformPolyDataFilter.h
+++ b/Filters/General/vtkTransformPolyDataFilter.h
@@ -40,6 +40,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractTransform;
 
 class VTKFILTERSGENERAL_EXPORT vtkTransformPolyDataFilter : public vtkPolyDataAlgorithm
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkTransformPolyDataFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkUncertaintyTubeFilter.cxx b/Filters/General/vtkUncertaintyTubeFilter.cxx
index eee5e950428421302f3e9f5d73a591ae5cd7fde0..7184ed02fc9c6e5ceae0e1a5ce0e32e0381b385d 100644
--- a/Filters/General/vtkUncertaintyTubeFilter.cxx
+++ b/Filters/General/vtkUncertaintyTubeFilter.cxx
@@ -27,6 +27,7 @@
 #include "vtkPolyData.h"
 #include "vtkPolyLine.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUncertaintyTubeFilter);
 
 //
@@ -425,3 +426,4 @@ void vtkUncertaintyTubeFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Number Of Sides: " << this->NumberOfSides << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkUncertaintyTubeFilter.h b/Filters/General/vtkUncertaintyTubeFilter.h
index e6fe21387ea7fde4cfea02b9616675632581910c..d464ec86291c6e6a3518f187b21e3c7df7b223e2 100644
--- a/Filters/General/vtkUncertaintyTubeFilter.h
+++ b/Filters/General/vtkUncertaintyTubeFilter.h
@@ -38,6 +38,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTubeArray;
 
 class VTKFILTERSGENERAL_EXPORT vtkUncertaintyTubeFilter : public vtkPolyDataAlgorithm
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkUncertaintyTubeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkVertexGlyphFilter.cxx b/Filters/General/vtkVertexGlyphFilter.cxx
index 853e19c707fedc6ec60c53c7e8dcb914518d8a74..64316a9e591ecd219ff729bbbbc6153cd3841ebe 100644
--- a/Filters/General/vtkVertexGlyphFilter.cxx
+++ b/Filters/General/vtkVertexGlyphFilter.cxx
@@ -30,6 +30,7 @@
 #include "vtkSmartPointer.h"
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVertexGlyphFilter);
 
 //------------------------------------------------------------------------------
@@ -106,3 +107,4 @@ int vtkVertexGlyphFilter::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkVertexGlyphFilter.h b/Filters/General/vtkVertexGlyphFilter.h
index 6d2ded336a97d692551585f6476a9b77b1b9cdcc..12444ba73f682e839d6ce0bf940cb253d4aa7a0d 100644
--- a/Filters/General/vtkVertexGlyphFilter.h
+++ b/Filters/General/vtkVertexGlyphFilter.h
@@ -37,6 +37,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkVertexGlyphFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkVertexGlyphFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif //_vtkVertexGlyphFilter_h
diff --git a/Filters/General/vtkVolumeContourSpectrumFilter.cxx b/Filters/General/vtkVolumeContourSpectrumFilter.cxx
index 775272b44a89cf66194d8b2e0ef8ac447724e3c2..bb97a44cc1504cc09b06d28df9f9276906a5c967 100644
--- a/Filters/General/vtkVolumeContourSpectrumFilter.cxx
+++ b/Filters/General/vtkVolumeContourSpectrumFilter.cxx
@@ -29,6 +29,7 @@
 #include "vtkUnstructuredGrid.h"
 #include "vtkVariantArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVolumeContourSpectrumFilter);
 
 //------------------------------------------------------------------------------
@@ -304,3 +305,4 @@ int vtkVolumeContourSpectrumFilter::RequestData(vtkInformation* vtkNotUsed(reque
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkVolumeContourSpectrumFilter.h b/Filters/General/vtkVolumeContourSpectrumFilter.h
index 32038c14db2d37d7ef8ec90f9d7cbe78918b259c..3a4de088ede0dcc753711ed8ec1a9e40de3998de 100644
--- a/Filters/General/vtkVolumeContourSpectrumFilter.h
+++ b/Filters/General/vtkVolumeContourSpectrumFilter.h
@@ -47,6 +47,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkReebGraph;
 class vtkTable;
 
@@ -104,4 +105,5 @@ private:
   void operator=(const vtkVolumeContourSpectrumFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkVoxelContoursToSurfaceFilter.cxx b/Filters/General/vtkVoxelContoursToSurfaceFilter.cxx
index 96396ace606fc207befb40b6a222766f5bb73113..9cb0b3ee70a52fcd312ceb2c12569d0cae925be2 100644
--- a/Filters/General/vtkVoxelContoursToSurfaceFilter.cxx
+++ b/Filters/General/vtkVoxelContoursToSurfaceFilter.cxx
@@ -25,6 +25,7 @@
 #include "vtkPolyData.h"
 #include "vtkStructuredPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVoxelContoursToSurfaceFilter);
 
 vtkVoxelContoursToSurfaceFilter::vtkVoxelContoursToSurfaceFilter()
@@ -648,3 +649,4 @@ void vtkVoxelContoursToSurfaceFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Spacing: " << this->Spacing[0] << " " << this->Spacing[1] << " "
      << this->Spacing[2] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkVoxelContoursToSurfaceFilter.h b/Filters/General/vtkVoxelContoursToSurfaceFilter.h
index 6f75d8d6f4883a9aa04c15c460a7d57d8c737014..7091c436dd257a9e75b951e803d041937924c6d2 100644
--- a/Filters/General/vtkVoxelContoursToSurfaceFilter.h
+++ b/Filters/General/vtkVoxelContoursToSurfaceFilter.h
@@ -46,6 +46,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkVoxelContoursToSurfaceFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkVoxelContoursToSurfaceFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkWarpLens.cxx b/Filters/General/vtkWarpLens.cxx
index 5e4cca963fbf95880399d2656596a21055671390..a09a2e9ee496e6603f27d638e39d92e7f9a972e6 100644
--- a/Filters/General/vtkWarpLens.cxx
+++ b/Filters/General/vtkWarpLens.cxx
@@ -29,6 +29,7 @@
 #include "vtkNew.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWarpLens);
 
 //
@@ -234,3 +235,4 @@ void vtkWarpLens::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ImageWidth: " << this->ImageWidth << " in pixels\n";
   os << indent << "ImageHeight: " << this->ImageHeight << " in pixels\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkWarpLens.h b/Filters/General/vtkWarpLens.h
index 98050558c27eb6e89669111e9611b99cfc964e57..48b2a4ef793c895bf489382a63b0825009936220 100644
--- a/Filters/General/vtkWarpLens.h
+++ b/Filters/General/vtkWarpLens.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkWarpLens : public vtkPointSetAlgorithm
 {
 public:
@@ -123,4 +124,5 @@ private:
   void operator=(const vtkWarpLens&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkWarpScalar.cxx b/Filters/General/vtkWarpScalar.cxx
index b4b2515ef735cb6dd8bf0c25904bf2d87ed40c22..ba93e2f87880817061bb77e9808b7e65af832ccc 100644
--- a/Filters/General/vtkWarpScalar.cxx
+++ b/Filters/General/vtkWarpScalar.cxx
@@ -34,6 +34,7 @@
 #include "vtkSMPTools.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWarpScalar);
 
 //------------------------------------------------------------------------------
@@ -312,3 +313,4 @@ void vtkWarpScalar::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "XY Plane: " << (this->XYPlane ? "On\n" : "Off\n");
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkWarpScalar.h b/Filters/General/vtkWarpScalar.h
index 7812bf39ef2bf0abb5fe17e1e4704a3230a00b14..55560bd566ae2fb727609977dcc393f90e2e2fac 100644
--- a/Filters/General/vtkWarpScalar.h
+++ b/Filters/General/vtkWarpScalar.h
@@ -41,6 +41,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 
 class VTKFILTERSGENERAL_EXPORT vtkWarpScalar : public vtkPointSetAlgorithm
@@ -125,4 +126,5 @@ private:
   void operator=(const vtkWarpScalar&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkWarpTo.cxx b/Filters/General/vtkWarpTo.cxx
index 9affb3ce37a16e1c17b4417e8f2c5ba9abbf0b1a..d592212c56d91e5321f7f951b534c91141cb862f 100644
--- a/Filters/General/vtkWarpTo.cxx
+++ b/Filters/General/vtkWarpTo.cxx
@@ -30,6 +30,7 @@
 #include "vtkNew.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWarpTo);
 
 vtkWarpTo::vtkWarpTo()
@@ -194,3 +195,4 @@ void vtkWarpTo::PrintSelf(ostream& os, vtkIndent indent)
      << this->Position[2] << ")\n";
   os << indent << "Scale Factor: " << this->ScaleFactor << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkWarpTo.h b/Filters/General/vtkWarpTo.h
index d0feefd093af50e1ce28ecc18ed45b2c2fd740fb..45ab47c03562beb3758b32e712d81e0c77996437 100644
--- a/Filters/General/vtkWarpTo.h
+++ b/Filters/General/vtkWarpTo.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkWarpTo : public vtkPointSetAlgorithm
 {
 public:
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkWarpTo&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkWarpVector.cxx b/Filters/General/vtkWarpVector.cxx
index bc0fc9963e18eb1807c52879f8c1284bbb47cdb7..14b8ec261efaefd6e0c09d7bd75dcfa206ecc5ea 100644
--- a/Filters/General/vtkWarpVector.cxx
+++ b/Filters/General/vtkWarpVector.cxx
@@ -34,6 +34,7 @@
 #include "vtkSMPTools.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWarpVector);
 
 //------------------------------------------------------------------------------
@@ -253,3 +254,4 @@ void vtkWarpVector::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Scale Factor: " << this->ScaleFactor << "\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkWarpVector.h b/Filters/General/vtkWarpVector.h
index 449c48814e4e40ae34c6de8635132746f3ca6e42..df2f709d334f9f74589491afd69a1a094c3eb4e1 100644
--- a/Filters/General/vtkWarpVector.h
+++ b/Filters/General/vtkWarpVector.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersGeneralModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERAL_EXPORT vtkWarpVector : public vtkPointSetAlgorithm
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkWarpVector&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/General/vtkYoungsMaterialInterface.cxx b/Filters/General/vtkYoungsMaterialInterface.cxx
index a8f18b9f24e7b0c97e808185ef39d4e103d458c2..e2cc01a111efd8d56907f4f24cb783df70c9dce2 100644
--- a/Filters/General/vtkYoungsMaterialInterface.cxx
+++ b/Filters/General/vtkYoungsMaterialInterface.cxx
@@ -58,6 +58,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkYoungsMaterialInterfaceCellCut
 {
 public:
@@ -1574,6 +1575,7 @@ int vtkYoungsMaterialInterface::RequestData(vtkInformation* vtkNotUsed(request),
 
 #undef GET_POINT_DATA
 
+VTK_ABI_NAMESPACE_END
 /* ------------------------------------------------------------------------------------------
    --- Low level computations including interface placement and intersection line/polygon ---
    ------------------------------------------------------------------------------------------ */
@@ -1582,6 +1584,7 @@ int vtkYoungsMaterialInterface::RequestData(vtkInformation* vtkNotUsed(request),
 // and a set of simplices
 namespace vtkYoungsMaterialInterfaceCellCutInternals
 {
+VTK_ABI_NAMESPACE_BEGIN
 #define REAL_PRECISION 64 // use double precision
 #define REAL_COORD REAL3
 
@@ -1716,6 +1719,7 @@ namespace vtkYoungsMaterialInterfaceCellCutInternals
  */
 
 // define base vector types and operators or use those provided by CUDA
+
 #ifndef __CUDACC__
 struct float2
 {
@@ -3075,9 +3079,10 @@ struct CWVertex
   int eid[2];
   inline bool operator<(const CWVertex& v) const { return angle < v.angle; }
 };
-
+VTK_ABI_NAMESPACE_END
 } /* namespace vtkYoungsMaterialInterfaceCellCutInternals */
 
+VTK_ABI_NAMESPACE_BEGIN
 // ------------------------------------
 //         ####     ####
 //             #    #   #
@@ -3450,3 +3455,4 @@ double vtkYoungsMaterialInterfaceCellCut::findTriangleSetCuttingPlane(const doub
 
   return -d;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/General/vtkYoungsMaterialInterface.h b/Filters/General/vtkYoungsMaterialInterface.h
index aed8acff4c184c10dcf31e8487d7148fc789fe89..3b9c86cfceb4f1fbfabf1fa702853f7a9c1ec781 100644
--- a/Filters/General/vtkYoungsMaterialInterface.h
+++ b/Filters/General/vtkYoungsMaterialInterface.h
@@ -39,6 +39,7 @@
 
 #include "vtkSmartPointer.h" // For SP ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIntArray;
 class vtkInformation;
 class vtkInformationVector;
@@ -239,4 +240,5 @@ private:
   void operator=(const vtkYoungsMaterialInterface&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTK_YOUNGS_MATERIAL_INTERFACE_H */
diff --git a/Filters/Generic/vtkGenericClip.cxx b/Filters/Generic/vtkGenericClip.cxx
index 465f9f6dcd7aa6761cfe1dc309fe7db1004f92e9..c9d2e17db9b3424db6af9d3428dadcbb1e0d0669 100644
--- a/Filters/Generic/vtkGenericClip.cxx
+++ b/Filters/Generic/vtkGenericClip.cxx
@@ -40,6 +40,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericClip);
 vtkCxxSetObjectMacro(vtkGenericClip, ClipFunction, vtkImplicitFunction);
 vtkCxxSetObjectMacro(vtkGenericClip, Locator, vtkIncrementalPointLocator);
@@ -427,3 +428,4 @@ int vtkGenericClip::FillInputPortInformation(int port, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkGenericDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Generic/vtkGenericClip.h b/Filters/Generic/vtkGenericClip.h
index 78f34bb20ab55088ad4825967a49f0341708a38b..e511b583586a6134fc6809d7bc85478aeb7b2bb2 100644
--- a/Filters/Generic/vtkGenericClip.h
+++ b/Filters/Generic/vtkGenericClip.h
@@ -64,6 +64,7 @@
 #include "vtkFiltersGenericModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
 
 class vtkPointData;
@@ -216,4 +217,5 @@ private:
   void operator=(const vtkGenericClip&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Generic/vtkGenericContourFilter.cxx b/Filters/Generic/vtkGenericContourFilter.cxx
index 67ae44770773f37e0f65bebe72d5f2296284d806..6eeee66f381ea6c89ae56ff54d323bb37e88857d 100644
--- a/Filters/Generic/vtkGenericContourFilter.cxx
+++ b/Filters/Generic/vtkGenericContourFilter.cxx
@@ -36,6 +36,7 @@
 #include "vtkTimerLog.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericContourFilter);
 
 vtkCxxSetObjectMacro(vtkGenericContourFilter, Locator, vtkIncrementalPointLocator);
@@ -401,3 +402,4 @@ int vtkGenericContourFilter::FillInputPortInformation(int port, vtkInformation*
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkGenericDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Generic/vtkGenericContourFilter.h b/Filters/Generic/vtkGenericContourFilter.h
index d814bbf41b128594904d74321c5e3c86fb9964f4..cf2deaf6b6c71eca8229be9b2a2d1ff34a0384ea 100644
--- a/Filters/Generic/vtkGenericContourFilter.h
+++ b/Filters/Generic/vtkGenericContourFilter.h
@@ -46,6 +46,7 @@
 #include "vtkFiltersGenericModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContourValues;
 class vtkIncrementalPointLocator;
 class vtkPointData;
@@ -171,4 +172,5 @@ private:
   vtkGenericContourFilter(const vtkGenericContourFilter&) = delete;
   void operator=(const vtkGenericContourFilter&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Generic/vtkGenericCutter.cxx b/Filters/Generic/vtkGenericCutter.cxx
index 63070f9c79709bfff0f9a80e1ef532489a73b8fb..2ca019e185ac7dd09acc8cd1b88a969e0f9c6c80 100644
--- a/Filters/Generic/vtkGenericCutter.cxx
+++ b/Filters/Generic/vtkGenericCutter.cxx
@@ -40,6 +40,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericCutter);
 vtkCxxSetObjectMacro(vtkGenericCutter, CutFunction, vtkImplicitFunction);
 vtkCxxSetObjectMacro(vtkGenericCutter, Locator, vtkIncrementalPointLocator);
@@ -395,3 +396,4 @@ int vtkGenericCutter::FillInputPortInformation(int port, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkGenericDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Generic/vtkGenericCutter.h b/Filters/Generic/vtkGenericCutter.h
index 4474ed0dc949de1ef448a3d44be4bf4d91be130a..617050dd9dd9613eb6a15d5fca7bd06ff4c5e1dd 100644
--- a/Filters/Generic/vtkGenericCutter.h
+++ b/Filters/Generic/vtkGenericCutter.h
@@ -49,6 +49,7 @@
 #include "vtkFiltersGenericModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContourValues;
 
 class vtkImplicitFunction;
@@ -183,4 +184,5 @@ private:
   void operator=(const vtkGenericCutter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Generic/vtkGenericDataSetTessellator.cxx b/Filters/Generic/vtkGenericDataSetTessellator.cxx
index 5d2c1c1ed98ff60e6d4d836f22cc1a5ca199b2ea..3284893515823cadbb4a88d1274c7ca0fed106c5 100644
--- a/Filters/Generic/vtkGenericDataSetTessellator.cxx
+++ b/Filters/Generic/vtkGenericDataSetTessellator.cxx
@@ -35,6 +35,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericDataSetTessellator);
 
 vtkCxxSetObjectMacro(vtkGenericDataSetTessellator, Locator, vtkIncrementalPointLocator);
@@ -281,3 +282,4 @@ vtkMTimeType vtkGenericDataSetTessellator::GetMTime()
   }
   return mTime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Generic/vtkGenericDataSetTessellator.h b/Filters/Generic/vtkGenericDataSetTessellator.h
index 27bdbb3caa6d1d9f4060dce4e3759dadd2096730..da447ffdd474b652142014bea42795843ba5b834 100644
--- a/Filters/Generic/vtkGenericDataSetTessellator.h
+++ b/Filters/Generic/vtkGenericDataSetTessellator.h
@@ -39,6 +39,7 @@
 #include "vtkFiltersGenericModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPointData;
 class vtkIncrementalPointLocator;
 
@@ -118,4 +119,5 @@ private:
   void operator=(const vtkGenericDataSetTessellator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Generic/vtkGenericGeometryFilter.cxx b/Filters/Generic/vtkGenericGeometryFilter.cxx
index 2e74e8b54ac5bf5fdf4fc995582a19223d615f8e..3746f906fc936b59a0ca58d368c72fe8c71254e2 100644
--- a/Filters/Generic/vtkGenericGeometryFilter.cxx
+++ b/Filters/Generic/vtkGenericGeometryFilter.cxx
@@ -43,6 +43,7 @@
 #include "vtkVoxel.h"
 #include "vtkWedge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericGeometryFilter);
 
 vtkCxxSetObjectMacro(vtkGenericGeometryFilter, Locator, vtkIncrementalPointLocator);
@@ -495,3 +496,4 @@ int vtkGenericGeometryFilter::RequestUpdateExtent(vtkInformation* vtkNotUsed(req
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Generic/vtkGenericGeometryFilter.h b/Filters/Generic/vtkGenericGeometryFilter.h
index 7caed5f99d447620d0f1e4e78cbda015a9782fca..d8f3ade60e5915919caf837e71e80b119171c25e 100644
--- a/Filters/Generic/vtkGenericGeometryFilter.h
+++ b/Filters/Generic/vtkGenericGeometryFilter.h
@@ -50,6 +50,7 @@
 #include "vtkFiltersGenericModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 class vtkPointData;
 
@@ -208,4 +209,5 @@ private:
   void operator=(const vtkGenericGeometryFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Generic/vtkGenericGlyph3DFilter.cxx b/Filters/Generic/vtkGenericGlyph3DFilter.cxx
index 0eb980cbcdc716314183488bc9f43597394dc9c4..ae742d8ec88634637ad50af80554e7e7f5b8c9a5 100644
--- a/Filters/Generic/vtkGenericGlyph3DFilter.cxx
+++ b/Filters/Generic/vtkGenericGlyph3DFilter.cxx
@@ -36,6 +36,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkTrivialProducer.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericGlyph3DFilter);
 
 // Construct object with scaling on, scaling mode is by scalar value,
@@ -869,3 +870,4 @@ int vtkGenericGlyph3DFilter ::FillInputPortInformation(int port, vtkInformation*
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Generic/vtkGenericGlyph3DFilter.h b/Filters/Generic/vtkGenericGlyph3DFilter.h
index b5977c91ee9f7167133436fa562ad220867d6d5d..7b0b4a5b9f09764f087716379dd870985874e748 100644
--- a/Filters/Generic/vtkGenericGlyph3DFilter.h
+++ b/Filters/Generic/vtkGenericGlyph3DFilter.h
@@ -99,6 +99,7 @@
 #define VTK_INDEXING_BY_SCALAR 1
 #define VTK_INDEXING_BY_VECTOR 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGENERIC_EXPORT vtkGenericGlyph3DFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -384,4 +385,5 @@ inline const char* vtkGenericGlyph3DFilter::GetIndexModeAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Generic/vtkGenericOutlineFilter.cxx b/Filters/Generic/vtkGenericOutlineFilter.cxx
index 24a3989af7cac883a9d5dff0cdf426377f1349e5..7050fa49984181db0882f1276c1fabe8f1e0dfdc 100644
--- a/Filters/Generic/vtkGenericOutlineFilter.cxx
+++ b/Filters/Generic/vtkGenericOutlineFilter.cxx
@@ -21,6 +21,7 @@
 #include "vtkOutlineSource.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericOutlineFilter);
 
 //------------------------------------------------------------------------------
@@ -104,3 +105,4 @@ int vtkGenericOutlineFilter::FillInputPortInformation(int port, vtkInformation*
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkGenericDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Generic/vtkGenericOutlineFilter.h b/Filters/Generic/vtkGenericOutlineFilter.h
index 630a8b3e817cd96dcf36deab48a5b0819f61eacc..1955734044bf9b219ecb131995f49000c564c3bc 100644
--- a/Filters/Generic/vtkGenericOutlineFilter.h
+++ b/Filters/Generic/vtkGenericOutlineFilter.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersGenericModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOutlineSource;
 
 class VTKFILTERSGENERIC_EXPORT vtkGenericOutlineFilter : public vtkPolyDataAlgorithm
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkGenericOutlineFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Generic/vtkGenericProbeFilter.cxx b/Filters/Generic/vtkGenericProbeFilter.cxx
index 71c344cc8ff97cac350fa84b275f70173a962dbb..a0809f9100759b4a90b07e0a355d280851373a26 100644
--- a/Filters/Generic/vtkGenericProbeFilter.cxx
+++ b/Filters/Generic/vtkGenericProbeFilter.cxx
@@ -30,6 +30,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericProbeFilter);
 
 //------------------------------------------------------------------------------
@@ -253,3 +254,4 @@ int vtkGenericProbeFilter::FillInputPortInformation(int port, vtkInformation* in
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Generic/vtkGenericProbeFilter.h b/Filters/Generic/vtkGenericProbeFilter.h
index 0d65e0fc6d80491b3a48efe1395c007e9ea945ae..28c98842d9b270aa03e066268bab7abf3eb79013 100644
--- a/Filters/Generic/vtkGenericProbeFilter.h
+++ b/Filters/Generic/vtkGenericProbeFilter.h
@@ -45,6 +45,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGenericModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 class vtkGenericDataSet;
 
@@ -88,4 +89,5 @@ private:
   void operator=(const vtkGenericProbeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Generic/vtkGenericStreamTracer.cxx b/Filters/Generic/vtkGenericStreamTracer.cxx
index 922e4bacff9dc81e4302eaae3a6cab55b277d02c..e134e74722d829ed714a021e73f704d6ff41bd94 100644
--- a/Filters/Generic/vtkGenericStreamTracer.cxx
+++ b/Filters/Generic/vtkGenericStreamTracer.cxx
@@ -36,6 +36,7 @@
 #include "vtkInformation.h"
 #include "vtkInformationVector.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericStreamTracer);
 vtkCxxSetObjectMacro(vtkGenericStreamTracer, Integrator, vtkInitialValueProblemSolver);
 vtkCxxSetObjectMacro(
@@ -1351,3 +1352,4 @@ void vtkGenericStreamTracer::SetSourceConnection(vtkAlgorithmOutput* algOutput)
 {
   this->SetInputConnection(1, algOutput);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Generic/vtkGenericStreamTracer.h b/Filters/Generic/vtkGenericStreamTracer.h
index f352c34bb94c6bd18839a5f18e8bada32a8ed243..f5e0763cc071ffc396d2b138f05ca847650d8424 100644
--- a/Filters/Generic/vtkGenericStreamTracer.h
+++ b/Filters/Generic/vtkGenericStreamTracer.h
@@ -71,6 +71,7 @@
 
 #include "vtkInitialValueProblemSolver.h" // Needed for constants
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkGenericAdaptorCell;
 class vtkIdList;
@@ -448,4 +449,5 @@ private:
   void operator=(const vtkGenericStreamTracer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkAbstractGridConnectivity.cxx b/Filters/Geometry/vtkAbstractGridConnectivity.cxx
index a30244a5774b8569af9fc4d86791bd22934f3789..81b2a9a282f8913219bd8a12d78550d883b92243 100644
--- a/Filters/Geometry/vtkAbstractGridConnectivity.cxx
+++ b/Filters/Geometry/vtkAbstractGridConnectivity.cxx
@@ -14,6 +14,7 @@
  =========================================================================*/
 #include "vtkAbstractGridConnectivity.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractGridConnectivity::vtkAbstractGridConnectivity()
 {
   this->NumberOfGrids = 0;
@@ -35,3 +36,4 @@ void vtkAbstractGridConnectivity::PrintSelf(std::ostream& os, vtkIndent indent)
   os << "NumberOfGrids: " << this->NumberOfGrids << std::endl;
   os << "NumberOfGhostLayers: " << this->NumberOfGhostLayers << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkAbstractGridConnectivity.h b/Filters/Geometry/vtkAbstractGridConnectivity.h
index f7865952d12711771663564ab030982e35d4a1fc..368b6737fff8bed72f4fbb887c7dbb3fcf2f6b6a 100644
--- a/Filters/Geometry/vtkAbstractGridConnectivity.h
+++ b/Filters/Geometry/vtkAbstractGridConnectivity.h
@@ -51,15 +51,18 @@
 #include "vtkUnsignedCharArray.h" // for vtkUnsignedCharArray definition
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPointData;
 class vtkCellData;
 class vtkUnsignedCharArray;
 class vtkPoints;
 
 // C++ include directives
+VTK_ABI_NAMESPACE_END
 #include <cassert> // For assert
 #include <vector>  // For STL vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGEOMETRY_EXPORT vtkAbstractGridConnectivity : public vtkObject
 {
 public:
@@ -490,4 +493,5 @@ inline void vtkAbstractGridConnectivity::RegisterGridNodes(const int gridID, vtk
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAbstractGridConnectivity_h */
diff --git a/Filters/Geometry/vtkAttributeSmoothingFilter.cxx b/Filters/Geometry/vtkAttributeSmoothingFilter.cxx
index ca9d399a6fe91ef522ee370df3efefb29ea353de..7dd73f0791776774edc502bfb9dd18f068a3c589 100644
--- a/Filters/Geometry/vtkAttributeSmoothingFilter.cxx
+++ b/Filters/Geometry/vtkAttributeSmoothingFilter.cxx
@@ -35,7 +35,9 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAttributeSmoothingFilter);
+VTK_ABI_NAMESPACE_END
 
 // The following code defines core methods for the
 // vtkAttributeSmoothingFilter class.
@@ -457,6 +459,7 @@ void AddExcludedArrays(
 
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //=================Begin VTK class proper=======================================
 //------------------------------------------------------------------------------
 vtkAttributeSmoothingFilter::vtkAttributeSmoothingFilter()
@@ -629,3 +632,4 @@ void vtkAttributeSmoothingFilter::PrintSelf(ostream& os, vtkIndent indent)
     os << nextIndent << "Excluded Array: " << this->ExcludedArrays[i] << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkAttributeSmoothingFilter.h b/Filters/Geometry/vtkAttributeSmoothingFilter.h
index e82c88fc3d3df03fa5e8f3aa6c9125715f1f8fd7..1473a8e6a3cf61aa798f947a7a3f1fc742f754f4 100644
--- a/Filters/Geometry/vtkAttributeSmoothingFilter.h
+++ b/Filters/Geometry/vtkAttributeSmoothingFilter.h
@@ -108,6 +108,7 @@
 #include "vtkUnsignedCharArray.h"     // For point smoothing mask
 #include <vector>                     //For std::vector<> - ExcludedArrays
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGEOMETRY_EXPORT vtkAttributeSmoothingFilter : public vtkDataSetAlgorithm
 {
 public:
@@ -271,5 +272,6 @@ private:
   vtkAttributeSmoothingFilter(const vtkAttributeSmoothingFilter&) = delete;
   void operator=(const vtkAttributeSmoothingFilter&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
diff --git a/Filters/Geometry/vtkCompositeDataGeometryFilter.cxx b/Filters/Geometry/vtkCompositeDataGeometryFilter.cxx
index f841e059b4c45b75a75deb794fd4a272aea18877..ae00a0d1665faf654bf31d4868138dbc0382ff0b 100644
--- a/Filters/Geometry/vtkCompositeDataGeometryFilter.cxx
+++ b/Filters/Geometry/vtkCompositeDataGeometryFilter.cxx
@@ -27,6 +27,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeDataGeometryFilter);
 
 //------------------------------------------------------------------------------
@@ -111,3 +112,4 @@ void vtkCompositeDataGeometryFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkCompositeDataGeometryFilter.h b/Filters/Geometry/vtkCompositeDataGeometryFilter.h
index f567bbeb494fe1c151548a47f4b36108598142f1..8e174ab7ccd5ba5f6585046d4e48adcd217d9a63 100644
--- a/Filters/Geometry/vtkCompositeDataGeometryFilter.h
+++ b/Filters/Geometry/vtkCompositeDataGeometryFilter.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKFILTERSGEOMETRY_EXPORT vtkCompositeDataGeometryFilter : public vtkPolyDataAlgorithm
@@ -59,4 +60,5 @@ private:
   void operator=(const vtkCompositeDataGeometryFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkDataSetRegionSurfaceFilter.cxx b/Filters/Geometry/vtkDataSetRegionSurfaceFilter.cxx
index 7ed37d904d3ef520fb55b9199a3538e16af8d86f..967b8a03301b398238bad661da25a09eeef70039 100644
--- a/Filters/Geometry/vtkDataSetRegionSurfaceFilter.cxx
+++ b/Filters/Geometry/vtkDataSetRegionSurfaceFilter.cxx
@@ -32,6 +32,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSetRegionSurfaceFilter::Internals
 {
 public:
@@ -1169,3 +1170,4 @@ vtkFastGeomQuad* vtkDataSetRegionSurfaceFilter::GetNextVisibleQuadFromHash()
 
   return quad;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkDataSetRegionSurfaceFilter.h b/Filters/Geometry/vtkDataSetRegionSurfaceFilter.h
index 32f55a81a8dda363148fce0656dad899d1684318..55a79cc434d83b191ca14fc192d3dae6137670d7 100644
--- a/Filters/Geometry/vtkDataSetRegionSurfaceFilter.h
+++ b/Filters/Geometry/vtkDataSetRegionSurfaceFilter.h
@@ -25,6 +25,7 @@
 
 #include "vtkDataSetSurfaceFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCharArray;
 
 class VTKFILTERSGEOMETRY_EXPORT vtkDataSetRegionSurfaceFilter : public vtkDataSetSurfaceFilter
@@ -140,4 +141,5 @@ private:
   Internals* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkDataSetSurfaceFilter.cxx b/Filters/Geometry/vtkDataSetSurfaceFilter.cxx
index f3e9374e3a49afe4acd9d6b1f43f1cbc9cb5719b..154fcabe9ed589611c527ee396c5ec8da56dd73d 100644
--- a/Filters/Geometry/vtkDataSetSurfaceFilter.cxx
+++ b/Filters/Geometry/vtkDataSetSurfaceFilter.cxx
@@ -297,6 +297,7 @@ bool StructuredExecuteWithBlanking(
 
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSetSurfaceFilter::vtkEdgeInterpolationMap
 {
 public:
@@ -2781,3 +2782,4 @@ void vtkDataSetSurfaceFilter::RecordOrigPointId(vtkIdType destIndex, vtkIdType o
     this->OriginalPointIds->InsertValue(destIndex, originalId);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkDataSetSurfaceFilter.h b/Filters/Geometry/vtkDataSetSurfaceFilter.h
index 18ea856760b99b72fc14d3497c3079fe25fb44f1..b27952decd2df76040ed4f0b3ada61e550981ffe 100644
--- a/Filters/Geometry/vtkDataSetSurfaceFilter.h
+++ b/Filters/Geometry/vtkDataSetSurfaceFilter.h
@@ -92,6 +92,7 @@
 #include "vtkGeometryFilter.h"        // To facilitate delegation
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename ArrayType>
 class vtkSmartPointer;
 
@@ -369,4 +370,5 @@ private:
   void operator=(const vtkDataSetSurfaceFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkExplicitStructuredGridSurfaceFilter.cxx b/Filters/Geometry/vtkExplicitStructuredGridSurfaceFilter.cxx
index 83010be37f592c77ac63068e775dfef1b8515556..801135cf86a025a000a3eb9adaddcea0268a37fd 100644
--- a/Filters/Geometry/vtkExplicitStructuredGridSurfaceFilter.cxx
+++ b/Filters/Geometry/vtkExplicitStructuredGridSurfaceFilter.cxx
@@ -19,6 +19,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExplicitStructuredGridSurfaceFilter);
 
 //------------------------------------------------------------------------------
@@ -266,3 +267,4 @@ void vtkExplicitStructuredGridSurfaceFilter::PrintSelf(ostream& os, vtkIndent in
   os << indent << "OriginalCellIdsName: " << this->GetOriginalCellIdsName() << endl;
   os << indent << "OriginalPointIdsName: " << this->GetOriginalPointIdsName() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkExplicitStructuredGridSurfaceFilter.h b/Filters/Geometry/vtkExplicitStructuredGridSurfaceFilter.h
index 90f3017fb90ab9bdcadc32ee18e05a5f82cc0a2d..8299a1d7a8970d71e92626e07c45d13188ddfac6 100644
--- a/Filters/Geometry/vtkExplicitStructuredGridSurfaceFilter.h
+++ b/Filters/Geometry/vtkExplicitStructuredGridSurfaceFilter.h
@@ -23,6 +23,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExplicitStructuredGrid;
 class vtkIdTypeArray;
 class vtkMultiProcessController;
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkExplicitStructuredGridSurfaceFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkGeometryFilter.cxx b/Filters/Geometry/vtkGeometryFilter.cxx
index 75fca83187fb8de2a3a3890947bc3eec8230b324..d612158089f7deaf8ee5816d272f0e1071f2844a 100644
--- a/Filters/Geometry/vtkGeometryFilter.cxx
+++ b/Filters/Geometry/vtkGeometryFilter.cxx
@@ -54,6 +54,7 @@
 #include <memory>
 #include <mutex>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGeometryFilter);
 vtkCxxSetObjectMacro(vtkGeometryFilter, Locator, vtkIncrementalPointLocator);
 
@@ -3685,3 +3686,4 @@ int vtkGeometryFilter::RequestUpdateExtent(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkGeometryFilter.h b/Filters/Geometry/vtkGeometryFilter.h
index b5c8b568a49b6b679230aaf68ae64e3603c91c7a..02c837b76e36e1d1e01385938690fd93db688641 100644
--- a/Filters/Geometry/vtkGeometryFilter.h
+++ b/Filters/Geometry/vtkGeometryFilter.h
@@ -92,6 +92,7 @@
 
 #include <array> // For std::array
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 class vtkStructuredGrid;
 class vtkUnstructuredGridBase;
@@ -480,4 +481,5 @@ private:
   void operator=(const vtkGeometryFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkHierarchicalDataSetGeometryFilter.cxx b/Filters/Geometry/vtkHierarchicalDataSetGeometryFilter.cxx
index 3c8cb619455e65962df35f944bb7f38763ec8f80..ff3e5e1482f7c515fe30d7ae941ea55fc8ce03e8 100644
--- a/Filters/Geometry/vtkHierarchicalDataSetGeometryFilter.cxx
+++ b/Filters/Geometry/vtkHierarchicalDataSetGeometryFilter.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHierarchicalDataSetGeometryFilter);
 //------------------------------------------------------------------------------
 vtkHierarchicalDataSetGeometryFilter::vtkHierarchicalDataSetGeometryFilter() = default;
@@ -28,3 +29,4 @@ void vtkHierarchicalDataSetGeometryFilter::PrintSelf(ostream& os, vtkIndent inde
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkHierarchicalDataSetGeometryFilter.h b/Filters/Geometry/vtkHierarchicalDataSetGeometryFilter.h
index 0fd947b682f2cb05b6969f2cce00b2b5edd2c900..5b22b6201ad78e5afda958875391b520fc4c6e27 100644
--- a/Filters/Geometry/vtkHierarchicalDataSetGeometryFilter.h
+++ b/Filters/Geometry/vtkHierarchicalDataSetGeometryFilter.h
@@ -28,6 +28,7 @@
 #include "vtkCompositeDataGeometryFilter.h"
 #include "vtkFiltersGeometryModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKFILTERSGEOMETRY_EXPORT vtkHierarchicalDataSetGeometryFilter
@@ -47,4 +48,5 @@ private:
   void operator=(const vtkHierarchicalDataSetGeometryFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkImageDataGeometryFilter.cxx b/Filters/Geometry/vtkImageDataGeometryFilter.cxx
index c86c0e580769ece73efdb0459b09e290bbaf3a0c..78712a40114e41dc1f9f66d0472074e8f2c63ba6 100644
--- a/Filters/Geometry/vtkImageDataGeometryFilter.cxx
+++ b/Filters/Geometry/vtkImageDataGeometryFilter.cxx
@@ -23,6 +23,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageDataGeometryFilter);
 
 // Construct with initial extent of all the data
@@ -475,3 +476,4 @@ void vtkImageDataGeometryFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ThresholdValue " << this->ThresholdValue << "\n";
   os << indent << "ThresholdCells " << this->ThresholdCells << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkImageDataGeometryFilter.h b/Filters/Geometry/vtkImageDataGeometryFilter.h
index 5f66a93ccc2b51e6c56ac95c3f87e596098bb300..a99f7b2c94db528e7b5d3dfc8c6e85b3b3d4bd08 100644
--- a/Filters/Geometry/vtkImageDataGeometryFilter.h
+++ b/Filters/Geometry/vtkImageDataGeometryFilter.h
@@ -41,6 +41,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGEOMETRY_EXPORT vtkImageDataGeometryFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkImageDataGeometryFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkImageDataToUniformGrid.cxx b/Filters/Geometry/vtkImageDataToUniformGrid.cxx
index b64ba75f87746eb793b506a400b32096b5e64faa..f379b4e2a3905656c66345ecb3998cd2e76bb37e 100644
--- a/Filters/Geometry/vtkImageDataToUniformGrid.cxx
+++ b/Filters/Geometry/vtkImageDataToUniformGrid.cxx
@@ -27,6 +27,7 @@
 #include "vtkUniformGrid.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageDataToUniformGrid);
 
 //------------------------------------------------------------------------------
@@ -259,3 +260,4 @@ int vtkImageDataToUniformGrid::Process(
 
   return VTK_OK;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkImageDataToUniformGrid.h b/Filters/Geometry/vtkImageDataToUniformGrid.h
index a9f068573b24dea0ad3735251ad719dc56b39522..7e2abe233aca581f4d1af2d6ac1ea4495cd422e9 100644
--- a/Filters/Geometry/vtkImageDataToUniformGrid.h
+++ b/Filters/Geometry/vtkImageDataToUniformGrid.h
@@ -29,6 +29,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersGeometryModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkFieldData;
 class vtkImageData;
@@ -75,4 +76,5 @@ private:
   vtkTypeBool Reverse;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkLinearToQuadraticCellsFilter.cxx b/Filters/Geometry/vtkLinearToQuadraticCellsFilter.cxx
index d12671d02417a7b30f7221dfce12c2d44392d26a..6efe2fde6d60f9a8b850c2395d463baeb115222f 100644
--- a/Filters/Geometry/vtkLinearToQuadraticCellsFilter.cxx
+++ b/Filters/Geometry/vtkLinearToQuadraticCellsFilter.cxx
@@ -45,6 +45,7 @@
 #include "vtkUnstructuredGrid.h"
 #include "vtkWedge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLinearToQuadraticCellsFilter);
 
 namespace
@@ -266,3 +267,4 @@ void vtkLinearToQuadraticCellsFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkLinearToQuadraticCellsFilter.h b/Filters/Geometry/vtkLinearToQuadraticCellsFilter.h
index 9ef5af1cfa6e777b9af4397fbb06cd8ac14a02fa..e402e519df1c6af9bb36d380721ec52083e09a42 100644
--- a/Filters/Geometry/vtkLinearToQuadraticCellsFilter.h
+++ b/Filters/Geometry/vtkLinearToQuadraticCellsFilter.h
@@ -30,6 +30,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 
 class VTKFILTERSGEOMETRY_EXPORT vtkLinearToQuadraticCellsFilter
@@ -85,4 +86,5 @@ private:
   void operator=(const vtkLinearToQuadraticCellsFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkMarkBoundaryFilter.cxx b/Filters/Geometry/vtkMarkBoundaryFilter.cxx
index 91774508ace994e4cf8a1f5d5cf0175b2444c790..7896a50471cd90d78182bfdfec0fe37f5b76ada5 100644
--- a/Filters/Geometry/vtkMarkBoundaryFilter.cxx
+++ b/Filters/Geometry/vtkMarkBoundaryFilter.cxx
@@ -43,6 +43,7 @@
 #include "vtkVoxel.h"
 #include "vtkWedge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMarkBoundaryFilter);
 
 //------------------------------------------------------------------------------
@@ -1038,3 +1039,4 @@ int vtkMarkBoundaryFilter::RequestData(vtkInformation* vtkNotUsed(request),
   // Use the general case for 1D/2D images, or for other dataset types
   return DataSetExecute(input, cellGhosts, bPtsPtr, bCellsPtr, bFacesPtr);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkMarkBoundaryFilter.h b/Filters/Geometry/vtkMarkBoundaryFilter.h
index 1a7f0763fdc0f0e41707f4aee8f05cd3ec9be200..8529f1b4c0c42bc9ed6ec473437a6fc1ab0498cc 100644
--- a/Filters/Geometry/vtkMarkBoundaryFilter.h
+++ b/Filters/Geometry/vtkMarkBoundaryFilter.h
@@ -65,6 +65,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersGeometryModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGEOMETRY_EXPORT vtkMarkBoundaryFilter : public vtkDataSetAlgorithm
 {
 public:
@@ -122,4 +123,5 @@ private:
   void operator=(const vtkMarkBoundaryFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkProjectSphereFilter.cxx b/Filters/Geometry/vtkProjectSphereFilter.cxx
index 15a25f3ef1b3fe1d09b5afb1180c8d69aa294a40..338e1132cae637df738d0ace05f66acda888d888 100644
--- a/Filters/Geometry/vtkProjectSphereFilter.cxx
+++ b/Filters/Geometry/vtkProjectSphereFilter.cxx
@@ -34,6 +34,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 void ConvertXYZToLatLonDepth(double xyz[3], double lonLatDepth[3], double center[3])
@@ -553,3 +554,4 @@ void vtkProjectSphereFilter::SetCellInformation(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkProjectSphereFilter.h b/Filters/Geometry/vtkProjectSphereFilter.h
index e436681e2134634c77ae994dd3f3efbccbfdb5f9..7412cdd0127b8a85ccad6bb7b95c777d2bfdf069 100644
--- a/Filters/Geometry/vtkProjectSphereFilter.h
+++ b/Filters/Geometry/vtkProjectSphereFilter.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkCellArray;
 class vtkDataSetAttributes;
@@ -114,4 +115,5 @@ private:
   bool TranslateZ;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkProjectSphereFilter_h
diff --git a/Filters/Geometry/vtkRectilinearGridGeometryFilter.cxx b/Filters/Geometry/vtkRectilinearGridGeometryFilter.cxx
index 44333efa1aad80a2138060f76d5e7b015b3fdd72..2e53105c3674bcd6e3cab02641e558d838b7bcdd 100644
--- a/Filters/Geometry/vtkRectilinearGridGeometryFilter.cxx
+++ b/Filters/Geometry/vtkRectilinearGridGeometryFilter.cxx
@@ -24,6 +24,7 @@
 #include "vtkPolyData.h"
 #include "vtkRectilinearGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearGridGeometryFilter);
 
 // Construct with initial extent (0,100, 0,100, 0,0) (i.e., a k-plane).
@@ -435,3 +436,4 @@ void vtkRectilinearGridGeometryFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "  Jmin,Jmax: (" << this->Extent[2] << ", " << this->Extent[3] << ")\n";
   os << indent << "  Kmin,Kmax: (" << this->Extent[4] << ", " << this->Extent[5] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkRectilinearGridGeometryFilter.h b/Filters/Geometry/vtkRectilinearGridGeometryFilter.h
index f7caeb1fe16c5352f5c7513b68f2fdb912218251..05381e34e51fce7356e79f01d2f2e7ea6d8b1f47 100644
--- a/Filters/Geometry/vtkRectilinearGridGeometryFilter.h
+++ b/Filters/Geometry/vtkRectilinearGridGeometryFilter.h
@@ -41,6 +41,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGEOMETRY_EXPORT vtkRectilinearGridGeometryFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkRectilinearGridGeometryFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkRectilinearGridPartitioner.cxx b/Filters/Geometry/vtkRectilinearGridPartitioner.cxx
index 6cdfff3cf4f8578af5f89dd43387f77b08a5a3a4..7cff7c91228c212710388d489c00a1bad73a5658 100644
--- a/Filters/Geometry/vtkRectilinearGridPartitioner.cxx
+++ b/Filters/Geometry/vtkRectilinearGridPartitioner.cxx
@@ -29,6 +29,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearGridPartitioner);
 
 //------------------------------------------------------------------------------
@@ -183,3 +184,4 @@ int vtkRectilinearGridPartitioner::RequestData(vtkInformation* vtkNotUsed(reques
   extentPartitioner->Delete();
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkRectilinearGridPartitioner.h b/Filters/Geometry/vtkRectilinearGridPartitioner.h
index 083b2998aa3f4fec81a7afb229b20598ddcd3d96..68a354fe498df0806ec3dfa1d89e67aefff9e30b 100644
--- a/Filters/Geometry/vtkRectilinearGridPartitioner.h
+++ b/Filters/Geometry/vtkRectilinearGridPartitioner.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 class vtkIndent;
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkRectilinearGridPartitioner&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkRectilinearGridPartitioner_h */
diff --git a/Filters/Geometry/vtkStructuredAMRGridConnectivity.cxx b/Filters/Geometry/vtkStructuredAMRGridConnectivity.cxx
index f5a021bd02e1dbc1571a1b9386c7f5410d85207a..32ee81a8d8d2889eb89aafe34a553283d42e5906 100644
--- a/Filters/Geometry/vtkStructuredAMRGridConnectivity.cxx
+++ b/Filters/Geometry/vtkStructuredAMRGridConnectivity.cxx
@@ -34,6 +34,7 @@
 
 namespace AMRBlockFace
 {
+VTK_ABI_NAMESPACE_BEGIN
 enum
 {
   FRONT = 0,  // (+k diretion)
@@ -44,8 +45,10 @@ enum
   BOTTOM = 5, // (-j direction)
   NOT_ON_BLOCK_FACE = 6
 };
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredAMRGridConnectivity);
 
 //------------------------------------------------------------------------------
@@ -2128,3 +2131,4 @@ void vtkStructuredAMRGridConnectivity::ComputeWholeExtent()
   this->DataDescription = vtkStructuredData::GetDataDescriptionFromExtent(this->WholeExtent);
   this->DataDimension = vtkStructuredData::GetDataDimension(this->DataDescription);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkStructuredAMRGridConnectivity.h b/Filters/Geometry/vtkStructuredAMRGridConnectivity.h
index 4084352a47d8c9f0551bb2ad950f08b1e52b84dc..24b590e2f10413118c72164388ca085cd6199dfc 100644
--- a/Filters/Geometry/vtkStructuredAMRGridConnectivity.h
+++ b/Filters/Geometry/vtkStructuredAMRGridConnectivity.h
@@ -42,6 +42,7 @@
 #include <set>     // For STL set
 #include <vector>  // For STL vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGEOMETRY_EXPORT vtkStructuredAMRGridConnectivity
   : public vtkAbstractGridConnectivity
 {
@@ -739,4 +740,5 @@ inline void vtkStructuredAMRGridConnectivity::InsertGridAtLevel(const int level,
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTKSTRUCTUREDAMRGRIDCONNECTIVITY_H_ */
diff --git a/Filters/Geometry/vtkStructuredAMRNeighbor.cxx b/Filters/Geometry/vtkStructuredAMRNeighbor.cxx
index c08261fd1910a9810556393dd4613fb1c434da03..122ca13924cc68f392a63dcfc5c9daa568d89cbb 100644
--- a/Filters/Geometry/vtkStructuredAMRNeighbor.cxx
+++ b/Filters/Geometry/vtkStructuredAMRNeighbor.cxx
@@ -15,6 +15,7 @@
 #include "vtkStructuredAMRNeighbor.h"
 #include "vtkStructuredExtent.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStructuredAMRNeighbor::vtkStructuredAMRNeighbor()
 {
   this->GridLevel = -1;
@@ -200,3 +201,4 @@ void vtkStructuredAMRNeighbor::ComputeSendAndReceiveExtent(int gridRealExtent[6]
   vtkStructuredExtent::Clamp(this->RcvExtent, neiRealExtent);
   vtkStructuredExtent::Clamp(this->SendExtent, gridRealExtent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkStructuredAMRNeighbor.h b/Filters/Geometry/vtkStructuredAMRNeighbor.h
index 528d26b95c7454a1e77f4a28dfad2733ade91d53..c1bc9aa64aff663dc75c105d35deeb043ff3b268 100644
--- a/Filters/Geometry/vtkStructuredAMRNeighbor.h
+++ b/Filters/Geometry/vtkStructuredAMRNeighbor.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkStructuredNeighbor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGEOMETRY_EXPORT vtkStructuredAMRNeighbor : public vtkStructuredNeighbor
 {
 public:
@@ -106,5 +107,6 @@ public:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkStructuredAMRNeighbor_h */
 // VTK-HeaderTest-Exclude: vtkStructuredAMRNeighbor.h
diff --git a/Filters/Geometry/vtkStructuredGridConnectivity.cxx b/Filters/Geometry/vtkStructuredGridConnectivity.cxx
index 764f3f980f62fde12a752803e28a0d04e4b08983..ac573d0d4809b214805066a179b00c2ef570e423 100644
--- a/Filters/Geometry/vtkStructuredGridConnectivity.cxx
+++ b/Filters/Geometry/vtkStructuredGridConnectivity.cxx
@@ -22,12 +22,15 @@
 #include "vtkStructuredNeighbor.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredGridConnectivity);
+VTK_ABI_NAMESPACE_END
 
 // Description:
 // An enum to define the 6 block faces
 namespace BlockFace
 {
+VTK_ABI_NAMESPACE_BEGIN
 enum
 {
   FRONT = 0,  // (+k diretion)
@@ -38,8 +41,10 @@ enum
   BOTTOM = 5, // (-j direction)
   NOT_ON_BLOCK_FACE = 6
 };
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStructuredGridConnectivity::vtkStructuredGridConnectivity()
 {
@@ -1532,3 +1537,4 @@ void vtkStructuredGridConnectivity::CreateGhostLayers(const int N)
     this->TransferGhostDataFromNeighbors(i);
   } // END for all grids
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkStructuredGridConnectivity.h b/Filters/Geometry/vtkStructuredGridConnectivity.h
index 1a79f371406aac722a72d28f8358b84a3f20e2f7..37fdfbb77dda49b14053ddfdf945c661245171dd 100644
--- a/Filters/Geometry/vtkStructuredGridConnectivity.h
+++ b/Filters/Geometry/vtkStructuredGridConnectivity.h
@@ -48,6 +48,7 @@
 #include <vector>   // For STL vector
 
 // Forward Declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkUnsignedCharArray;
 class vtkPointData;
@@ -999,4 +1000,5 @@ inline void vtkStructuredGridConnectivity::SetNumberOfGrids(const unsigned int N
   this->Neighbors.resize(N);
   this->BlockTopology.resize(N);
 }
+VTK_ABI_NAMESPACE_END
 #endif /* vtkStructuredGridConnectivity_h */
diff --git a/Filters/Geometry/vtkStructuredGridGeometryFilter.cxx b/Filters/Geometry/vtkStructuredGridGeometryFilter.cxx
index b8ca124a2b9716886916d93c9aaea21ef525e451..c29cadb1f8fa81d6e552aecbda53f4a4cd2269fd 100644
--- a/Filters/Geometry/vtkStructuredGridGeometryFilter.cxx
+++ b/Filters/Geometry/vtkStructuredGridGeometryFilter.cxx
@@ -24,6 +24,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkStructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredGridGeometryFilter);
 
 // Construct with initial extent of all the data
@@ -490,3 +491,4 @@ void vtkStructuredGridGeometryFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "  Jmin,Jmax: (" << this->Extent[2] << ", " << this->Extent[3] << ")\n";
   os << indent << "  Kmin,Kmax: (" << this->Extent[4] << ", " << this->Extent[5] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkStructuredGridGeometryFilter.h b/Filters/Geometry/vtkStructuredGridGeometryFilter.h
index c0b65c9110ddd53d5d9cba5f70e2514d2c686a3e..3d680a6052a8df8c552762c59a879f18ab171658 100644
--- a/Filters/Geometry/vtkStructuredGridGeometryFilter.h
+++ b/Filters/Geometry/vtkStructuredGridGeometryFilter.h
@@ -47,6 +47,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGEOMETRY_EXPORT vtkStructuredGridGeometryFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkStructuredGridGeometryFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkStructuredGridPartitioner.cxx b/Filters/Geometry/vtkStructuredGridPartitioner.cxx
index 25575039da5fbc555a5ec7b67487339168156089..c4d3cedbc29efcef7f30b2ea8c48b6ff07702ab2 100644
--- a/Filters/Geometry/vtkStructuredGridPartitioner.cxx
+++ b/Filters/Geometry/vtkStructuredGridPartitioner.cxx
@@ -27,6 +27,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredGridPartitioner);
 
 //------------------------------------------------------------------------------
@@ -172,3 +173,4 @@ int vtkStructuredGridPartitioner::RequestData(vtkInformation* vtkNotUsed(request
   extentPartitioner->Delete();
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkStructuredGridPartitioner.h b/Filters/Geometry/vtkStructuredGridPartitioner.h
index 1829ebefc164452ac8a6486333aac71a003b6699..3f99cc9fab75a7a4a0ad16d8f2a3a1de96b3b370 100644
--- a/Filters/Geometry/vtkStructuredGridPartitioner.h
+++ b/Filters/Geometry/vtkStructuredGridPartitioner.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 class vtkIndent;
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkStructuredGridPartitioner&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkStructuredGridPartitioner_h */
diff --git a/Filters/Geometry/vtkStructuredNeighbor.cxx b/Filters/Geometry/vtkStructuredNeighbor.cxx
index eb92f701b5d5e81a2a06778468da319a0578416f..6cf166d0dd18bf8008fb37b951ebc1f404e2e77b 100644
--- a/Filters/Geometry/vtkStructuredNeighbor.cxx
+++ b/Filters/Geometry/vtkStructuredNeighbor.cxx
@@ -15,6 +15,7 @@
 #include "vtkStructuredNeighbor.h"
 #include "vtkStructuredExtent.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStructuredNeighbor::vtkStructuredNeighbor()
 {
   this->NeighborID = 0;
@@ -96,3 +97,4 @@ void vtkStructuredNeighbor::ComputeSendAndReceiveExtent(int gridRealExtent[6],
   vtkStructuredExtent::Clamp(this->RcvExtent, WholeExtent);
   vtkStructuredExtent::Clamp(this->SendExtent, WholeExtent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkStructuredNeighbor.h b/Filters/Geometry/vtkStructuredNeighbor.h
index d5fb32f88a6b078b62ccd945eb79be54875c1271..f38a6ecbdb496212949ab77904e8a9f6ee12993f 100644
--- a/Filters/Geometry/vtkStructuredNeighbor.h
+++ b/Filters/Geometry/vtkStructuredNeighbor.h
@@ -23,6 +23,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGEOMETRY_EXPORT vtkStructuredNeighbor
 {
 public:
@@ -124,5 +125,6 @@ public:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkStructuredNeighbor_h */
 // VTK-HeaderTest-Exclude: vtkStructuredNeighbor.h
diff --git a/Filters/Geometry/vtkStructuredPointsGeometryFilter.cxx b/Filters/Geometry/vtkStructuredPointsGeometryFilter.cxx
index 1487455933fc2a733062e9030a9ad313577c2617..098270debf453167235622e4cdf75cb55e7741f5 100644
--- a/Filters/Geometry/vtkStructuredPointsGeometryFilter.cxx
+++ b/Filters/Geometry/vtkStructuredPointsGeometryFilter.cxx
@@ -15,6 +15,7 @@
 #include "vtkStructuredPointsGeometryFilter.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredPointsGeometryFilter);
 
 void vtkStructuredPointsGeometryFilter::PrintSelf(ostream& os, vtkIndent indent)
@@ -29,3 +30,4 @@ vtkStructuredPointsGeometryFilter::vtkStructuredPointsGeometryFilter()
     << "the next release after VTK 4.0. Please use" << endl
     << "vtkImageDataGeometryFilter instead");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkStructuredPointsGeometryFilter.h b/Filters/Geometry/vtkStructuredPointsGeometryFilter.h
index 18235e7a0c486ece2652341c4ddefce9b2a89b41..c1b5202bae4260b8264b70701aada35e126939a6 100644
--- a/Filters/Geometry/vtkStructuredPointsGeometryFilter.h
+++ b/Filters/Geometry/vtkStructuredPointsGeometryFilter.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkImageDataGeometryFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGEOMETRY_EXPORT vtkStructuredPointsGeometryFilter
   : public vtkImageDataGeometryFilter
 {
@@ -47,4 +48,5 @@ private:
   void operator=(const vtkStructuredPointsGeometryFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Geometry/vtkUnstructuredGridGeometryFilter.cxx b/Filters/Geometry/vtkUnstructuredGridGeometryFilter.cxx
index 1d3b01b2e5264a2b2a9bc5c41ac5a4bb87b1e121..992442074fbe4cdcfdbbd03517709c129d1a1cd4 100644
--- a/Filters/Geometry/vtkUnstructuredGridGeometryFilter.cxx
+++ b/Filters/Geometry/vtkUnstructuredGridGeometryFilter.cxx
@@ -63,6 +63,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnstructuredGridGeometryFilter);
 
 #if 0
@@ -1432,3 +1433,4 @@ int vtkUnstructuredGridGeometryFilter::RequestUpdateExtent(vtkInformation* vtkNo
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Geometry/vtkUnstructuredGridGeometryFilter.h b/Filters/Geometry/vtkUnstructuredGridGeometryFilter.h
index 24a7a4fb835d5aea259c1af7e1b85420d4d5f0ec..9eb21edc924239236112cf7d224951b69fafb330 100644
--- a/Filters/Geometry/vtkUnstructuredGridGeometryFilter.h
+++ b/Filters/Geometry/vtkUnstructuredGridGeometryFilter.h
@@ -44,6 +44,7 @@
 #include "vtkFiltersGeometryModule.h" // For export macro
 #include "vtkUnstructuredGridBaseAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 class vtkHashTableOfSurfels; // internal class
 
@@ -237,4 +238,5 @@ private:
   void operator=(const vtkUnstructuredGridGeometryFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/GeometryPreview/vtkOctreeImageToPointSetFilter.cxx b/Filters/GeometryPreview/vtkOctreeImageToPointSetFilter.cxx
index ee5d1754e33995a6ad7360435dda634d975afb53..7c71aabb16f730f5ebf48d69f6c3be448e1f4121 100644
--- a/Filters/GeometryPreview/vtkOctreeImageToPointSetFilter.cxx
+++ b/Filters/GeometryPreview/vtkOctreeImageToPointSetFilter.cxx
@@ -29,6 +29,7 @@
 #include "vtkSMPTools.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkOctreeImageToPointSetFilter);
 
@@ -388,3 +389,4 @@ int vtkOctreeImageToPointSetFilter::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/GeometryPreview/vtkOctreeImageToPointSetFilter.h b/Filters/GeometryPreview/vtkOctreeImageToPointSetFilter.h
index 94f7d18baf33e6b1b74a5980232bafabe3d2a033..464c8eaa20f214da6a381d3bd01b095f90292060 100644
--- a/Filters/GeometryPreview/vtkOctreeImageToPointSetFilter.h
+++ b/Filters/GeometryPreview/vtkOctreeImageToPointSetFilter.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersGeometryPreviewModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGEOMETRYPREVIEW_EXPORT vtkOctreeImageToPointSetFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -92,4 +93,5 @@ private:
   int CellArrayComponent = 0;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOctreeImageToPointSetFilter_h
diff --git a/Filters/GeometryPreview/vtkPointSetStreamer.cxx b/Filters/GeometryPreview/vtkPointSetStreamer.cxx
index e9b5e7e7fe52200c860bcff89f524f10dc0555e3..65489a087dff0562a73fc677506da510ea226bf5 100644
--- a/Filters/GeometryPreview/vtkPointSetStreamer.cxx
+++ b/Filters/GeometryPreview/vtkPointSetStreamer.cxx
@@ -22,6 +22,7 @@
 
 #include <numeric>
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkPointSetStreamer);
 
@@ -131,3 +132,4 @@ int vtkPointSetStreamer::RequestData(
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/GeometryPreview/vtkPointSetStreamer.h b/Filters/GeometryPreview/vtkPointSetStreamer.h
index bbe6237f5c304081ff30f8b668e3d799e2dbad8b..f02840eee3e842b44df864ce125298362540d132 100644
--- a/Filters/GeometryPreview/vtkPointSetStreamer.h
+++ b/Filters/GeometryPreview/vtkPointSetStreamer.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersGeometryPreviewModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStaticPointLocator;
 
 class VTKFILTERSGEOMETRYPREVIEW_EXPORT vtkPointSetStreamer : public vtkPolyDataAlgorithm
@@ -102,4 +103,5 @@ private:
   vtkNew<vtkStaticPointLocator> PointLocator;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPointSetStreamer_h
diff --git a/Filters/GeometryPreview/vtkPointSetToOctreeImageFilter.cxx b/Filters/GeometryPreview/vtkPointSetToOctreeImageFilter.cxx
index b4c90970b131601270bfa86d451660b8db7cbdf7..5d47c07b453a2a2f9dc4eed78fe6f54b133ea0ec 100644
--- a/Filters/GeometryPreview/vtkPointSetToOctreeImageFilter.cxx
+++ b/Filters/GeometryPreview/vtkPointSetToOctreeImageFilter.cxx
@@ -31,6 +31,7 @@
 
 #include <mutex>
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkPointSetToOctreeImageFilter);
 
@@ -419,3 +420,4 @@ int vtkPointSetToOctreeImageFilter::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/GeometryPreview/vtkPointSetToOctreeImageFilter.h b/Filters/GeometryPreview/vtkPointSetToOctreeImageFilter.h
index 4fcc7bf8d192d9c0d60f1a4085bea616623e5fed..847a5486d47b93e154d0a6876831eeb735dda0ec 100644
--- a/Filters/GeometryPreview/vtkPointSetToOctreeImageFilter.h
+++ b/Filters/GeometryPreview/vtkPointSetToOctreeImageFilter.h
@@ -41,6 +41,7 @@
 #include "vtkFiltersGeometryPreviewModule.h" // For export macro
 #include "vtkPartitionedDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSGEOMETRYPREVIEW_EXPORT vtkPointSetToOctreeImageFilter
   : public vtkPartitionedDataSetAlgorithm
 {
@@ -178,4 +179,5 @@ private:
   struct PointSetToImageWorker;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPointSetToOctreeImageFilter_h
diff --git a/Filters/Hybrid/vtkAdaptiveDataSetSurfaceFilter.cxx b/Filters/Hybrid/vtkAdaptiveDataSetSurfaceFilter.cxx
index 10d3f80e033db94ef5dcc7e316a4cb7f2d49e7a8..f06ff634c7d8ab7672f0424257a7341637645de3 100644
--- a/Filters/Hybrid/vtkAdaptiveDataSetSurfaceFilter.cxx
+++ b/Filters/Hybrid/vtkAdaptiveDataSetSurfaceFilter.cxx
@@ -32,6 +32,7 @@
 #include "vtkHyperTreeGridNonOrientedGeometryCursor.h"
 #include "vtkHyperTreeGridNonOrientedVonNeumannSuperCursorLight.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 static const unsigned int VonNeumannCursors3D[] = { 0, 1, 2, 4, 5, 6 };
 static const unsigned int VonNeumannOrientations3D[] = { 2, 1, 0, 0, 1, 2 };
 static const unsigned int VonNeumannOffsets3D[] = { 0, 0, 0, 1, 1, 1 };
@@ -749,3 +750,4 @@ vtkMTimeType vtkAdaptiveDataSetSurfaceFilter::GetMTime()
   }   // if ( this->Renderer )
   return this->Superclass::GetMTime();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkAdaptiveDataSetSurfaceFilter.h b/Filters/Hybrid/vtkAdaptiveDataSetSurfaceFilter.h
index d89006c9753654c3586f083cfb494372d03fd392..b80c12dea915e42c20fd653bed193f00b05d72ce 100644
--- a/Filters/Hybrid/vtkAdaptiveDataSetSurfaceFilter.h
+++ b/Filters/Hybrid/vtkAdaptiveDataSetSurfaceFilter.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkGeometryFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkCamera;
 class vtkHyperTreeGrid;
@@ -271,4 +272,5 @@ private:
   void operator=(const vtkAdaptiveDataSetSurfaceFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkAdaptiveDataSetSurfaceFilter_h
diff --git a/Filters/Hybrid/vtkBSplineTransform.cxx b/Filters/Hybrid/vtkBSplineTransform.cxx
index 6b03922fe9950a037e3650a8ab9ddeb220842cc3..035c9fbed5f38159d9f393fb4f57f621f3f29986 100644
--- a/Filters/Hybrid/vtkBSplineTransform.cxx
+++ b/Filters/Hybrid/vtkBSplineTransform.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBSplineTransform);
 
 class vtkBSplineTransformConnectionHolder : public vtkAlgorithm
@@ -908,3 +909,4 @@ vtkImageData* vtkBSplineTransform::GetCoefficientData()
 {
   return vtkImageData::SafeDownCast(this->ConnectionHolder->GetInputDataObject(0, 0));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkBSplineTransform.h b/Filters/Hybrid/vtkBSplineTransform.h
index b5c2d1eee66bba3cb0dd25a6537edfcd17d10227..f3d47c837e8ff8a8b3e77fb95c4e44de94d313bc 100644
--- a/Filters/Hybrid/vtkBSplineTransform.h
+++ b/Filters/Hybrid/vtkBSplineTransform.h
@@ -38,6 +38,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkWarpTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithmOutput;
 class vtkBSplineTransformConnectionHolder;
 class vtkImageData;
@@ -154,4 +155,5 @@ private:
   vtkBSplineTransformConnectionHolder* ConnectionHolder;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkDSPFilterDefinition.cxx b/Filters/Hybrid/vtkDSPFilterDefinition.cxx
index 0f07be7b552d526fe74534fca3c0c5162d456790..5459740bbdd360519acf53d87383ce2fc5d8f984 100644
--- a/Filters/Hybrid/vtkDSPFilterDefinition.cxx
+++ b/Filters/Hybrid/vtkDSPFilterDefinition.cxx
@@ -27,6 +27,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDSPFilterDefinition);
 
 class vtkDSPFilterDefinitionVectorDoubleSTLCloak
@@ -218,3 +219,4 @@ void vtkDSPFilterDefinition::PrintSelf(ostream& os, vtkIndent indent)
 
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkDSPFilterDefinition.h b/Filters/Hybrid/vtkDSPFilterDefinition.h
index dfbdcee7c2d45f154c72a47a2e99a7774885eb7f..1c0f264dfc9bf0ad6134287fcc64b31dd83ae7ed 100644
--- a/Filters/Hybrid/vtkDSPFilterDefinition.h
+++ b/Filters/Hybrid/vtkDSPFilterDefinition.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDSPFilterDefinitionVectorDoubleSTLCloak;
 class vtkDSPFilterDefinitionStringSTLCloak;
 
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkDSPFilterDefinition&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkDSPFilterGroup.cxx b/Filters/Hybrid/vtkDSPFilterGroup.cxx
index 92e13e52269cc961185b663964093244381a0251..3fb00516028a0049697d630455e579a1d2c1f20e 100644
--- a/Filters/Hybrid/vtkDSPFilterGroup.cxx
+++ b/Filters/Hybrid/vtkDSPFilterGroup.cxx
@@ -35,6 +35,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDSPFilterGroup);
 
 class vtkDSPFilterGroupVectorIntSTLCloak
@@ -544,3 +545,4 @@ vtkFloatArray* vtkDSPFilterGroup::GetOutput(
 
   return (l_output);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkDSPFilterGroup.h b/Filters/Hybrid/vtkDSPFilterGroup.h
index 31d2873498439533a63ab7f723c9c5ef7a8355bb..a91358c104e84b7258c6f640d0cbd7328c0436ae 100644
--- a/Filters/Hybrid/vtkDSPFilterGroup.h
+++ b/Filters/Hybrid/vtkDSPFilterGroup.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDSPFilterGroupVectorIntSTLCloak;
 class vtkDSPFilterGroupVectorVectorIntSTLCloak;
 class vtkDSPFilterGroupVectorArraySTLCloak;
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkDSPFilterGroup&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkDepthSortPolyData.cxx b/Filters/Hybrid/vtkDepthSortPolyData.cxx
index cab9c1e6ff9f481074a45eb49a58405465d70fc2..05f18ee76d37a90e8198d069854c32710bcd9b72 100644
--- a/Filters/Hybrid/vtkDepthSortPolyData.cxx
+++ b/Filters/Hybrid/vtkDepthSortPolyData.cxx
@@ -44,6 +44,7 @@
 #include <cstdlib>
 #include <limits>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -588,3 +589,4 @@ void vtkDepthSortPolyData::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Sort Scalars: " << (this->SortScalars ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkDepthSortPolyData.h b/Filters/Hybrid/vtkDepthSortPolyData.h
index 5e18f1f78cce24c2ccc5c058cc7ebbd2fb4cb96b..325aa5fb64232187a1a0af83d9bc783c5140459e 100644
--- a/Filters/Hybrid/vtkDepthSortPolyData.h
+++ b/Filters/Hybrid/vtkDepthSortPolyData.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 class vtkProp3D;
 class vtkTransform;
@@ -168,4 +169,5 @@ private:
   void operator=(const vtkDepthSortPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkEarthSource.cxx b/Filters/Hybrid/vtkEarthSource.cxx
index eb34d2dd4d594c5c6865d45a2a5389cc14766d55..80b6fdbc3606f285271c6d580d722606536d4723 100644
--- a/Filters/Hybrid/vtkEarthSource.cxx
+++ b/Filters/Hybrid/vtkEarthSource.cxx
@@ -27,6 +27,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEarthSource);
 
 // Description:
@@ -51,8 +52,10 @@ void vtkEarthSource::PrintSelf(ostream& os, vtkIndent indent)
 }
 
 // NOLINTNEXTLINE(bugprone-suspicious-include)
+VTK_ABI_NAMESPACE_END
 #include "vtkEarthSourceData.cxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 int vtkEarthSource::RequestData(vtkInformation* vtkNotUsed(request),
   vtkInformationVector** vtkNotUsed(inputVector), vtkInformationVector* outputVector)
 {
@@ -183,3 +186,4 @@ int vtkEarthSource::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkEarthSource.h b/Filters/Hybrid/vtkEarthSource.h
index 99125d9a20d46c9189ee8cfb18b577fb0fb87a6a..37f4fde93a0e2d527be0b1ead63b5ec9b333887d 100644
--- a/Filters/Hybrid/vtkEarthSource.h
+++ b/Filters/Hybrid/vtkEarthSource.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSHYBRID_EXPORT vtkEarthSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkEarthSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkEarthSourceData.cxx b/Filters/Hybrid/vtkEarthSourceData.cxx
index c860a49eaf00e9d9a2a9d7edab583da64b69ea7b..262db9f3151c8f9dfef2923eda76f954d390f197 100644
--- a/Filters/Hybrid/vtkEarthSourceData.cxx
+++ b/Filters/Hybrid/vtkEarthSourceData.cxx
@@ -21,6 +21,7 @@
 // Special thanks to Tom Johnson at Johnson Scientific International who
 // developed and contributed this class based on the data of John B. Allison.
 
+VTK_ABI_NAMESPACE_BEGIN
 static const short vtkEarthData[] = {
 /* 0 */
 3903, 1, 13663, 15523, 21733,
@@ -6762,3 +6763,4 @@ static const short vtkEarthData[] = {
  22, 64, 44, 0, 1, -17,
 0,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkFacetReader.cxx b/Filters/Hybrid/vtkFacetReader.cxx
index 577a8c10b1945b9c45a1f55cddafdaa30d6f5293..81e828bb36d1a665e1a487841949b9ef365da136 100644
--- a/Filters/Hybrid/vtkFacetReader.cxx
+++ b/Filters/Hybrid/vtkFacetReader.cxx
@@ -36,6 +36,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFacetReader);
 
 //------------------------------------------------------------------------------
@@ -419,3 +420,4 @@ void vtkFacetReader::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "File Name: " << (this->FileName ? this->FileName : "(none)") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkFacetReader.h b/Filters/Hybrid/vtkFacetReader.h
index e71960634eafe442e02918c4208fbfe2c94fb6ee..bc1afad5945603597ff54b2d75a30a72be781532 100644
--- a/Filters/Hybrid/vtkFacetReader.h
+++ b/Filters/Hybrid/vtkFacetReader.h
@@ -42,6 +42,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSHYBRID_EXPORT vtkFacetReader : public vtkPolyDataAlgorithm
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkFacetReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkForceTime.cxx b/Filters/Hybrid/vtkForceTime.cxx
index ea3aeb559c268a6d0442f44ec8f1c4e2b46d93da..07a96939e980e8ef99d037fe672d59f9503572b4 100644
--- a/Filters/Hybrid/vtkForceTime.cxx
+++ b/Filters/Hybrid/vtkForceTime.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkForceTime);
 
 //------------------------------------------------------------------------------
@@ -171,3 +172,4 @@ int vtkForceTime::RequestUpdateExtent(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkForceTime.h b/Filters/Hybrid/vtkForceTime.h
index c8e97f4da4fd3ab080a82b714bc6509d098ea889..a754891fa2e34157be40aa5a159e4cf7180cdb71 100644
--- a/Filters/Hybrid/vtkForceTime.h
+++ b/Filters/Hybrid/vtkForceTime.h
@@ -19,6 +19,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSHYBRID_EXPORT vtkForceTime : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -57,4 +58,5 @@ private:
   vtkDataObject* Cache;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkForceTime_h
diff --git a/Filters/Hybrid/vtkGenerateTimeSteps.cxx b/Filters/Hybrid/vtkGenerateTimeSteps.cxx
index d71f02f63ff72174f65c348ead97c3f8767f4094..3734f3ce7433304df71fc1df6ad7a5f86fcddb07 100644
--- a/Filters/Hybrid/vtkGenerateTimeSteps.cxx
+++ b/Filters/Hybrid/vtkGenerateTimeSteps.cxx
@@ -24,6 +24,7 @@
 #include <cmath>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenerateTimeSteps);
 
 //------------------------------------------------------------------------------
@@ -127,3 +128,4 @@ int vtkGenerateTimeSteps::RequestData(vtkInformation* vtkNotUsed(request),
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkGenerateTimeSteps.h b/Filters/Hybrid/vtkGenerateTimeSteps.h
index bd0a559e289225c4d8d35808384b12d5695db9be..d309a6e43f1d37fdf4e7734b4d039e1a9624b8a2 100644
--- a/Filters/Hybrid/vtkGenerateTimeSteps.h
+++ b/Filters/Hybrid/vtkGenerateTimeSteps.h
@@ -29,6 +29,7 @@
 
 #include <vector> // for time steps
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSHYBRID_EXPORT vtkGenerateTimeSteps : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -86,5 +87,6 @@ private:
   vtkGenerateTimeSteps(const vtkGenerateTimeSteps&) = delete;
   void operator=(const vtkGenerateTimeSteps&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif // vtkGenerateTimeSteps_h
diff --git a/Filters/Hybrid/vtkGreedyTerrainDecimation.cxx b/Filters/Hybrid/vtkGreedyTerrainDecimation.cxx
index dca25a56fbef93ae6cf11ace069371f31c395d58..cb851f75dd4bc1271f4235742fe2f12256c3a6be 100644
--- a/Filters/Hybrid/vtkGreedyTerrainDecimation.cxx
+++ b/Filters/Hybrid/vtkGreedyTerrainDecimation.cxx
@@ -29,6 +29,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGreedyTerrainDecimation);
 
 // Define some constants describing vertices
@@ -1312,3 +1313,4 @@ void vtkGreedyTerrainDecimation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "BoundaryVertexDeletion: " << (this->BoundaryVertexDeletion ? "On\n" : "Off\n");
   os << indent << "ComputeNormals: " << (this->ComputeNormals ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkGreedyTerrainDecimation.h b/Filters/Hybrid/vtkGreedyTerrainDecimation.h
index 9332c1052cad96e24701bbc57dd7c850827e25f6..f5ab88e8fd8265aec8a5e52b7882caa371770e8a 100644
--- a/Filters/Hybrid/vtkGreedyTerrainDecimation.h
+++ b/Filters/Hybrid/vtkGreedyTerrainDecimation.h
@@ -70,6 +70,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPriorityQueue;
 class vtkDataArray;
 class vtkPointData;
@@ -254,4 +255,5 @@ private:
   void operator=(const vtkGreedyTerrainDecimation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkGridTransform.cxx b/Filters/Hybrid/vtkGridTransform.cxx
index b09158faea46b80116e6a3cc150e9ac01a26346f..667adaf42447437d5c8c61bc8e20ec1665843594 100644
--- a/Filters/Hybrid/vtkGridTransform.cxx
+++ b/Filters/Hybrid/vtkGridTransform.cxx
@@ -25,6 +25,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGridTransform);
 
 class vtkGridTransformConnectionHolder : public vtkAlgorithm
@@ -1179,3 +1180,4 @@ vtkImageData* vtkGridTransform::GetDisplacementGrid()
 {
   return vtkImageData::SafeDownCast(this->ConnectionHolder->GetInputDataObject(0, 0));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkGridTransform.h b/Filters/Hybrid/vtkGridTransform.h
index cde865a833c84fde3d5cdc5f1235bde259f6d938..014c734116df104d16ae49f3efb2aaf0f72f551a 100644
--- a/Filters/Hybrid/vtkGridTransform.h
+++ b/Filters/Hybrid/vtkGridTransform.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkWarpTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithmOutput;
 class vtkGridTransformConnectionHolder;
 class vtkImageData;
@@ -176,4 +177,5 @@ inline const char* vtkGridTransform::GetInterpolationModeAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkImageToPolyDataFilter.cxx b/Filters/Hybrid/vtkImageToPolyDataFilter.cxx
index 491063697df0f0dca580f94573fabdd09b87f2aa..db2114f705164da60da7aa4f6132d02c4140336a 100644
--- a/Filters/Hybrid/vtkImageToPolyDataFilter.cxx
+++ b/Filters/Hybrid/vtkImageToPolyDataFilter.cxx
@@ -30,6 +30,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageToPolyDataFilter);
 
 vtkCxxSetObjectMacro(vtkImageToPolyDataFilter, LookupTable, vtkScalarsToColors);
@@ -1353,3 +1354,4 @@ void vtkImageToPolyDataFilter::DecimateEdges(
     } // if manifold
   }   // for all points
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkImageToPolyDataFilter.h b/Filters/Hybrid/vtkImageToPolyDataFilter.h
index 71278ccecaaa35cfb7337d744accf3d68b49b149..4cad0a28dc0c02f6bb637c945f571c09e49756a3 100644
--- a/Filters/Hybrid/vtkImageToPolyDataFilter.h
+++ b/Filters/Hybrid/vtkImageToPolyDataFilter.h
@@ -74,6 +74,7 @@
 #define VTK_COLOR_MODE_LUT 0
 #define VTK_COLOR_MODE_LINEAR_256 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkEdgeTable;
 class vtkIdTypeArray;
@@ -250,4 +251,5 @@ private:
   void operator=(const vtkImageToPolyDataFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkImplicitModeller.cxx b/Filters/Hybrid/vtkImplicitModeller.cxx
index 8f8537e6bc9221504e0fe5896cb4ec148f8c8f07..1da1470549d43d6c4d58a2a38db2537ab6a23c96 100644
--- a/Filters/Hybrid/vtkImplicitModeller.cxx
+++ b/Filters/Hybrid/vtkImplicitModeller.cxx
@@ -38,6 +38,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitModeller);
 
 struct vtkImplicitModellerAppendInfo
@@ -1156,3 +1157,4 @@ void vtkImplicitModeller::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Process Mode: " << this->GetProcessModeAsString() << endl;
   os << indent << "Number Of Threads (for PerVoxel mode): " << this->NumberOfThreads << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkImplicitModeller.h b/Filters/Hybrid/vtkImplicitModeller.h
index 5dcd2e8d811b90f84f8da95efd72e5891a9048cf..95c3c1e21494abda948fa55f39e9c610ae5f31aa 100644
--- a/Filters/Hybrid/vtkImplicitModeller.h
+++ b/Filters/Hybrid/vtkImplicitModeller.h
@@ -94,6 +94,7 @@
 #define VTK_VOXEL_MODE 0
 #define VTK_CELL_MODE 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkExtractGeometry;
 class vtkMultiThreader;
@@ -320,4 +321,5 @@ private:
   void operator=(const vtkImplicitModeller&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkPCAAnalysisFilter.cxx b/Filters/Hybrid/vtkPCAAnalysisFilter.cxx
index 1571d7c7a989b5400feccf5672a256a2489d6d72..5a8b1f6ba0b9790d4052a6d84de1468bc1fce75c 100644
--- a/Filters/Hybrid/vtkPCAAnalysisFilter.cxx
+++ b/Filters/Hybrid/vtkPCAAnalysisFilter.cxx
@@ -23,6 +23,7 @@
 #include "vtkPolyData.h"
 #include "vtkTransformPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPCAAnalysisFilter);
 
 //------------------------------------------------------------------------------
@@ -540,3 +541,4 @@ int vtkPCAAnalysisFilter::GetModesRequiredFor(double proportion)
 
   return Evals->GetNumberOfTuples();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkPCAAnalysisFilter.h b/Filters/Hybrid/vtkPCAAnalysisFilter.h
index 6dc73876789bec6db47da9d404244b753a9cd2f0..c2e6127485db8aaaa293ec99629090f6c6f75fbd 100644
--- a/Filters/Hybrid/vtkPCAAnalysisFilter.h
+++ b/Filters/Hybrid/vtkPCAAnalysisFilter.h
@@ -53,6 +53,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 class vtkPointSet;
 
@@ -134,4 +135,5 @@ private:
   double* meanshape;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkPolyDataSilhouette.cxx b/Filters/Hybrid/vtkPolyDataSilhouette.cxx
index c272fb329d215b58fe2680f13fe2d6c99293cfcf..61850ccda10ac32ab916cc5b4e864d91de5f3ee3 100644
--- a/Filters/Hybrid/vtkPolyDataSilhouette.cxx
+++ b/Filters/Hybrid/vtkPolyDataSilhouette.cxx
@@ -39,6 +39,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataSilhouette);
 
 vtkCxxSetObjectMacro(vtkPolyDataSilhouette, Camera, vtkCamera);
@@ -482,3 +483,4 @@ void vtkPolyDataSilhouette::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EnableFeatureAngle: " << this->EnableFeatureAngle << "\n";
   os << indent << "BorderEdges: " << this->BorderEdges << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkPolyDataSilhouette.h b/Filters/Hybrid/vtkPolyDataSilhouette.h
index 5ea138fe504bd851c81a405fa2eef397450a0ba1..4a235a9e2123a2e7a50cb8dd36572bb80214e384 100644
--- a/Filters/Hybrid/vtkPolyDataSilhouette.h
+++ b/Filters/Hybrid/vtkPolyDataSilhouette.h
@@ -41,6 +41,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 class vtkProp3D;
 class vtkTransform;
@@ -189,4 +190,5 @@ private:
   void operator=(const vtkPolyDataSilhouette&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkProcrustesAlignmentFilter.cxx b/Filters/Hybrid/vtkProcrustesAlignmentFilter.cxx
index 2bbb5bf212733b7ce978d38384d5bcc4debc57d4..fe3cdd720c7eb596efff5cb3cd0683340e31c74c 100644
--- a/Filters/Hybrid/vtkProcrustesAlignmentFilter.cxx
+++ b/Filters/Hybrid/vtkProcrustesAlignmentFilter.cxx
@@ -25,6 +25,7 @@
 #include "vtkPolyData.h"
 #include "vtkTransformPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProcrustesAlignmentFilter);
 
 //------------------------------------------------------------------------------
@@ -476,3 +477,4 @@ void vtkProcrustesAlignmentFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Start From Centroid: " << (this->StartFromCentroid ? "On\n" : "Off\n");
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkProcrustesAlignmentFilter.h b/Filters/Hybrid/vtkProcrustesAlignmentFilter.h
index 8558919cd2758d4bf4fa927dd3c6872f989e05ec..3f731bb624d6c7d75b6c336bf486b335913134e7 100644
--- a/Filters/Hybrid/vtkProcrustesAlignmentFilter.h
+++ b/Filters/Hybrid/vtkProcrustesAlignmentFilter.h
@@ -55,6 +55,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLandmarkTransform;
 class vtkPointSet;
 class vtkPoints;
@@ -137,4 +138,5 @@ private:
   void operator=(const vtkProcrustesAlignmentFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkProjectedTerrainPath.cxx b/Filters/Hybrid/vtkProjectedTerrainPath.cxx
index fa82cddd2c2e4ca1b03b2f8022fd6bc4327aef86..907a4bea2804a1f173d6345f8c090de165fd6277 100644
--- a/Filters/Hybrid/vtkProjectedTerrainPath.cxx
+++ b/Filters/Hybrid/vtkProjectedTerrainPath.cxx
@@ -29,6 +29,7 @@
 #include <vector>
 
 // Define the edge list class--------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkEdge
 {
   vtkEdge(vtkIdType v1, vtkIdType v2)
@@ -549,3 +550,4 @@ void vtkProjectedTerrainPath::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Height Tolerance: " << this->HeightTolerance << "\n";
   os << indent << "Maximum Number Of Lines: " << this->MaximumNumberOfLines << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkProjectedTerrainPath.h b/Filters/Hybrid/vtkProjectedTerrainPath.h
index 51db15c7c9282b7c72bf70932663db928726ea22..38b074ad595f1f381730436edbee5f35229e57fd 100644
--- a/Filters/Hybrid/vtkProjectedTerrainPath.h
+++ b/Filters/Hybrid/vtkProjectedTerrainPath.h
@@ -71,6 +71,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPriorityQueue;
 class vtkImageData;
 class vtkEdgeList;
@@ -205,4 +206,5 @@ private:
   void operator=(const vtkProjectedTerrainPath&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkRenderLargeImage.cxx b/Filters/Hybrid/vtkRenderLargeImage.cxx
index 6932baff742cc0a5f237814a32c3fac48e94625c..7256235a6af463b21cfc35502ec757d5de4a693d 100644
--- a/Filters/Hybrid/vtkRenderLargeImage.cxx
+++ b/Filters/Hybrid/vtkRenderLargeImage.cxx
@@ -30,6 +30,7 @@
 
 #include <vector>
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderLargeImage);
 
 vtkCxxSetObjectMacro(vtkRenderLargeImage, Input, vtkRenderer);
@@ -470,3 +471,4 @@ void vtkRenderLargeImage::Restore2DActors()
   this->StoredData->StoredActors->RemoveAllItems();
 }
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkRenderLargeImage.h b/Filters/Hybrid/vtkRenderLargeImage.h
index 20db9dadfa767ce984706e714e43752cd8dfb376..fd9d34d5e1c9fc0b50c147b50ed85c46e68ad722 100644
--- a/Filters/Hybrid/vtkRenderLargeImage.h
+++ b/Filters/Hybrid/vtkRenderLargeImage.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkImageData.h"           // makes things a bit easier
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkActor2DCollection;
 class vtkCollection;
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkRenderLargeImage&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkTemporalArrayOperatorFilter.cxx b/Filters/Hybrid/vtkTemporalArrayOperatorFilter.cxx
index 33530b987d8c339d7a7c74f09042549c51ac58c9..3a1f75ec11539ac028a580683ec714600dff4ba8 100644
--- a/Filters/Hybrid/vtkTemporalArrayOperatorFilter.cxx
+++ b/Filters/Hybrid/vtkTemporalArrayOperatorFilter.cxx
@@ -33,6 +33,7 @@
 #include <algorithm>
 #include <functional>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTemporalArrayOperatorFilter);
 
 //------------------------------------------------------------------------------
@@ -451,3 +452,4 @@ vtkDataArray* vtkTemporalArrayOperatorFilter::ProcessDataArray(
 
   return outputDataArray;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkTemporalArrayOperatorFilter.h b/Filters/Hybrid/vtkTemporalArrayOperatorFilter.h
index 7582e0a98e3b7e73cec0800803b06497ca190d9a..e55a02553069df7ccf11b304b6daa6203fab6256 100644
--- a/Filters/Hybrid/vtkTemporalArrayOperatorFilter.h
+++ b/Filters/Hybrid/vtkTemporalArrayOperatorFilter.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkMultiTimeStepAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSHYBRID_EXPORT vtkTemporalArrayOperatorFilter : public vtkMultiTimeStepAlgorithm
 {
 public:
@@ -107,4 +108,5 @@ private:
   void operator=(const vtkTemporalArrayOperatorFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkTemporalDataSetCache.cxx b/Filters/Hybrid/vtkTemporalDataSetCache.cxx
index 8bcc3b9d08b6915525c50a11370ee4354acc848a..ef14ca22e58fdb7823b607cb0c3270e10cb6439c 100644
--- a/Filters/Hybrid/vtkTemporalDataSetCache.cxx
+++ b/Filters/Hybrid/vtkTemporalDataSetCache.cxx
@@ -29,6 +29,7 @@
 #include <vector>
 
 // A helper class to to turn on memkind, if enabled, while ensuring it always is restored
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTDSCMemkindRAII
 {
 #ifdef VTK_USE_MEMKIND
@@ -532,3 +533,4 @@ void vtkTemporalDataSetCache::SetEjected(vtkDataObject* victim)
     // this->Modified(); //this is only thing we are changing from the macro
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkTemporalDataSetCache.h b/Filters/Hybrid/vtkTemporalDataSetCache.h
index d0f81878fe3c558845230400525a31304a70a3ef..cff6baed6843a3e585b58f6ebe897826a4e524e9 100644
--- a/Filters/Hybrid/vtkTemporalDataSetCache.h
+++ b/Filters/Hybrid/vtkTemporalDataSetCache.h
@@ -37,6 +37,7 @@
 #include <map>    // used for the cache
 #include <vector> // used for the timestep records
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSHYBRID_EXPORT vtkTemporalDataSetCache : public vtkAlgorithm
 {
 public:
@@ -115,4 +116,5 @@ private:
   vtkDataObject* Ejected;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkTemporalFractal.cxx b/Filters/Hybrid/vtkTemporalFractal.cxx
index 2ec898232994393f67f3ad2c458f7f3e5fbbf022..439d46f3b1f4dc0003fced1662855bad0a289659 100644
--- a/Filters/Hybrid/vtkTemporalFractal.cxx
+++ b/Filters/Hybrid/vtkTemporalFractal.cxx
@@ -36,6 +36,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class TemporalFractalOutputUtil : public vtkObject
 {
 public:
@@ -1570,3 +1571,4 @@ void vtkTemporalFractal::PrintSelf(ostream& os, vtkIndent indent)
   os << indent
      << "GenerateRectilinearGrids: " << (this->GenerateRectilinearGrids ? "True" : "False") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkTemporalFractal.h b/Filters/Hybrid/vtkTemporalFractal.h
index f587778855f5c5bf5490b94699cff20ce49815d2..852be060fa118628c4d3e57c04c25b8f1cb9202d 100644
--- a/Filters/Hybrid/vtkTemporalFractal.h
+++ b/Filters/Hybrid/vtkTemporalFractal.h
@@ -33,6 +33,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkSmartPointer.h"        //for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkDataSet;
 class vtkHierarchicalBoxDataSet;
@@ -238,4 +239,5 @@ private:
   void operator=(const vtkTemporalFractal&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkTemporalInterpolator.cxx b/Filters/Hybrid/vtkTemporalInterpolator.cxx
index de4773e7cc1d9ee61561d44302f395e61df2df44..90f7ba58a4f2cad6e09c70e27ead019cfe9249c3 100644
--- a/Filters/Hybrid/vtkTemporalInterpolator.cxx
+++ b/Filters/Hybrid/vtkTemporalInterpolator.cxx
@@ -34,6 +34,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTemporalInterpolator);
 
 //------------------------------------------------------------------------------
@@ -618,3 +619,4 @@ vtkDataArray* vtkTemporalInterpolator ::InterpolateDataArray(
 
   return output;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkTemporalInterpolator.h b/Filters/Hybrid/vtkTemporalInterpolator.h
index 14fcac9d65cb9c81f57f79bf2eb7c179c71be86c..cc0bc4c910ed0875b706e0575c7745c905989c03 100644
--- a/Filters/Hybrid/vtkTemporalInterpolator.h
+++ b/Filters/Hybrid/vtkTemporalInterpolator.h
@@ -58,6 +58,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkMultiTimeStepAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class VTKFILTERSHYBRID_EXPORT vtkTemporalInterpolator : public vtkMultiTimeStepAlgorithm
 {
@@ -165,4 +166,5 @@ private:
   void operator=(const vtkTemporalInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkTemporalShiftScale.cxx b/Filters/Hybrid/vtkTemporalShiftScale.cxx
index a5713e650eada10a4d03f7cc8ca94947563583c9..f967b2a73b2a7888c7787023ac40ad4fb58876c4 100644
--- a/Filters/Hybrid/vtkTemporalShiftScale.cxx
+++ b/Filters/Hybrid/vtkTemporalShiftScale.cxx
@@ -24,6 +24,7 @@
 #include <cmath>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTemporalShiftScale);
 
 //------------------------------------------------------------------------------
@@ -346,3 +347,4 @@ int vtkTemporalShiftScale::RequestUpdateExtent(vtkInformation* vtkNotUsed(reques
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkTemporalShiftScale.h b/Filters/Hybrid/vtkTemporalShiftScale.h
index 062f24234c9e85b008bcbe063495d4c745719508..b47fedf6588f63e82fc925b8bf38ef24eb31ca8e 100644
--- a/Filters/Hybrid/vtkTemporalShiftScale.h
+++ b/Filters/Hybrid/vtkTemporalShiftScale.h
@@ -36,6 +36,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkFiltersHybridModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSHYBRID_EXPORT vtkTemporalShiftScale : public vtkAlgorithm
 {
 public:
@@ -155,4 +156,5 @@ private:
   void operator=(const vtkTemporalShiftScale&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkTemporalSnapToTimeStep.cxx b/Filters/Hybrid/vtkTemporalSnapToTimeStep.cxx
index b1a049ab5024ef2fc2457220ef38996adc88af73..bf6caae39dc2e8f78df093f57f9be0a5164e8935 100644
--- a/Filters/Hybrid/vtkTemporalSnapToTimeStep.cxx
+++ b/Filters/Hybrid/vtkTemporalSnapToTimeStep.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTemporalSnapToTimeStep);
 
 //------------------------------------------------------------------------------
@@ -191,3 +192,4 @@ void vtkTemporalSnapToTimeStep::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "SnapMode: " << this->SnapMode << endl;
 }
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkTemporalSnapToTimeStep.h b/Filters/Hybrid/vtkTemporalSnapToTimeStep.h
index 9dc163476ad1bc2eaa13d00edea340f6a84dcc80..0a34383e01d1be2d85761c3d90b829cc24696522 100644
--- a/Filters/Hybrid/vtkTemporalSnapToTimeStep.h
+++ b/Filters/Hybrid/vtkTemporalSnapToTimeStep.h
@@ -37,6 +37,7 @@
 
 #include <vector> // used because I am a bad boy. So there.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSHYBRID_EXPORT vtkTemporalSnapToTimeStep : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -85,4 +86,5 @@ private:
   void operator=(const vtkTemporalSnapToTimeStep&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkTransformToGrid.cxx b/Filters/Hybrid/vtkTransformToGrid.cxx
index 4db17d703eadde5054746c5fdb67f5b7736ac776..b53b0324961dda0d1859f5fc0b2085f2205b23b2 100644
--- a/Filters/Hybrid/vtkTransformToGrid.cxx
+++ b/Filters/Hybrid/vtkTransformToGrid.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransformToGrid);
 
 vtkCxxSetObjectMacro(vtkTransformToGrid, Input, vtkAbstractTransform);
@@ -466,3 +467,4 @@ int vtkTransformToGrid::FillOutputPortInformation(int vtkNotUsed(port), vtkInfor
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkImageData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkTransformToGrid.h b/Filters/Hybrid/vtkTransformToGrid.h
index 13d45f00be02fb2778f77f61c7d2096ccf39719d..f82769e89ad39117747ca77ecc4dfe2ca32f9233 100644
--- a/Filters/Hybrid/vtkTransformToGrid.h
+++ b/Filters/Hybrid/vtkTransformToGrid.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkImageData.h"           // makes things a bit easier
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractTransform;
 
 class VTKFILTERSHYBRID_EXPORT vtkTransformToGrid : public vtkAlgorithm
@@ -150,4 +151,5 @@ private:
   void operator=(const vtkTransformToGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Hybrid/vtkWeightedTransformFilter.cxx b/Filters/Hybrid/vtkWeightedTransformFilter.cxx
index ef2709e23e9c4873ca0d7b510feccbbd3142de4e..c60cde6df7bdf3caab9ec5bd3775c57aee0dc1dc 100644
--- a/Filters/Hybrid/vtkWeightedTransformFilter.cxx
+++ b/Filters/Hybrid/vtkWeightedTransformFilter.cxx
@@ -29,6 +29,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWeightedTransformFilter);
 
 // helper functions.  Can't easily get to these in Matrix4x4 as written.
@@ -835,3 +836,4 @@ void vtkWeightedTransformFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CellDataTransformIndexArray: "
      << (this->CellDataTransformIndexArray ? this->CellDataTransformIndexArray : "(none)") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Hybrid/vtkWeightedTransformFilter.h b/Filters/Hybrid/vtkWeightedTransformFilter.h
index 464ba88cc5da05e846c77cca2e44e895177ae5c7..e161026f480126f46e0a1dccd1b8e0ff2be7561d 100644
--- a/Filters/Hybrid/vtkWeightedTransformFilter.h
+++ b/Filters/Hybrid/vtkWeightedTransformFilter.h
@@ -74,6 +74,7 @@
 #include "vtkFiltersHybridModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractTransform;
 
 class VTKFILTERSHYBRID_EXPORT vtkWeightedTransformFilter : public vtkPointSetAlgorithm
@@ -198,4 +199,5 @@ private:
   void operator=(const vtkWeightedTransformFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/HyperTree/vtkHyperTreeGridAxisClip.cxx b/Filters/HyperTree/vtkHyperTreeGridAxisClip.cxx
index e261c5798d9360990130ca3ce5cde0a83a0e0f71..68fba4c2010065c728e56b33b857887247ef2e08 100644
--- a/Filters/HyperTree/vtkHyperTreeGridAxisClip.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridAxisClip.cxx
@@ -33,6 +33,7 @@
 
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridAxisClip);
 vtkCxxSetObjectMacro(vtkHyperTreeGridAxisClip, Quadric, vtkQuadric);
 
@@ -504,3 +505,4 @@ void vtkHyperTreeGridAxisClip::RecursivelyProcessTree(
   // Mask output cell if necessary
   this->OutMask->InsertTuple1(outId, clipped);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridAxisClip.h b/Filters/HyperTree/vtkHyperTreeGridAxisClip.h
index bcb0b40ea0de0a8bc3524e2e3b650aecc085c190..3f1d87198db24baa6d67e90ae47f06f7471e7229 100644
--- a/Filters/HyperTree/vtkHyperTreeGridAxisClip.h
+++ b/Filters/HyperTree/vtkHyperTreeGridAxisClip.h
@@ -37,6 +37,7 @@
 #include "vtkFiltersHyperTreeModule.h" // For export macro
 #include "vtkHyperTreeGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkHyperTreeGrid;
 class vtkQuadric;
@@ -214,4 +215,5 @@ private:
   void operator=(const vtkHyperTreeGridAxisClip&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridAxisClip_h
diff --git a/Filters/HyperTree/vtkHyperTreeGridAxisCut.cxx b/Filters/HyperTree/vtkHyperTreeGridAxisCut.cxx
index 5e184e49a13f08ab500976cf46f7055d191766ef..7ee5b81ac50bec0d6b4d49f5652c5adaaf4f58b4 100644
--- a/Filters/HyperTree/vtkHyperTreeGridAxisCut.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridAxisCut.cxx
@@ -30,6 +30,7 @@
 #include "vtkHyperTreeGridNonOrientedCursor.h"
 #include "vtkHyperTreeGridNonOrientedGeometryCursor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridAxisCut);
 
 //------------------------------------------------------------------------------
@@ -296,3 +297,4 @@ void vtkHyperTreeGridAxisCut::RecursivelyProcessTree(
     } // inChild
   }   // if ( ! cursor->IsLeaf() )
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridAxisCut.h b/Filters/HyperTree/vtkHyperTreeGridAxisCut.h
index 798498a82226ccfc90c35bed2befccc27543eea7..cf83eb983333494cc6ad99c69953aa84d203a837 100644
--- a/Filters/HyperTree/vtkHyperTreeGridAxisCut.h
+++ b/Filters/HyperTree/vtkHyperTreeGridAxisCut.h
@@ -42,6 +42,7 @@
 #include "vtkFiltersHyperTreeModule.h" // For export macro
 #include "vtkHyperTreeGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridNonOrientedCursor;
@@ -115,4 +116,5 @@ private:
   void operator=(const vtkHyperTreeGridAxisCut&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridAxisCut_h
diff --git a/Filters/HyperTree/vtkHyperTreeGridAxisReflection.cxx b/Filters/HyperTree/vtkHyperTreeGridAxisReflection.cxx
index 84231b31b97392957f3497518847f57aec5a14c6..cf53c414c602fc8994ca2d814c8810f2be291ea8 100644
--- a/Filters/HyperTree/vtkHyperTreeGridAxisReflection.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridAxisReflection.cxx
@@ -24,6 +24,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkUniformHyperTreeGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridAxisReflection);
 
 //------------------------------------------------------------------------------
@@ -289,3 +290,4 @@ int vtkHyperTreeGridAxisReflection::ProcessTrees(vtkHyperTreeGrid* input, vtkDat
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridAxisReflection.h b/Filters/HyperTree/vtkHyperTreeGridAxisReflection.h
index 89f8a099efe5904b27a5281aefab72a8caec6bb1..c001321d96f36126cd92ba341d90ffe95333350c 100644
--- a/Filters/HyperTree/vtkHyperTreeGridAxisReflection.h
+++ b/Filters/HyperTree/vtkHyperTreeGridAxisReflection.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersHyperTreeModule.h" // For export macro
 #include "vtkHyperTreeGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTreeGrid;
 
 class VTKFILTERSHYPERTREE_EXPORT vtkHyperTreeGridAxisReflection : public vtkHyperTreeGridAlgorithm
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkHyperTreeGridAxisReflection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkHyperTreeGridAxisReflection */
diff --git a/Filters/HyperTree/vtkHyperTreeGridCellCenters.cxx b/Filters/HyperTree/vtkHyperTreeGridCellCenters.cxx
index 3f8998f2fa1e133a33aba63d505842e68b7ccdec..230dccf1cc934a3a3fb297adfe04c84860a13b0f 100644
--- a/Filters/HyperTree/vtkHyperTreeGridCellCenters.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridCellCenters.cxx
@@ -29,6 +29,7 @@
 
 #include "vtkHyperTreeGridNonOrientedGeometryCursor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridCellCenters);
 
 //------------------------------------------------------------------------------
@@ -241,3 +242,4 @@ void vtkHyperTreeGridCellCenters::RecursivelyProcessTree(
     } // child
   }   // else
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridCellCenters.h b/Filters/HyperTree/vtkHyperTreeGridCellCenters.h
index c9765896fc5293f097f19eb8c91e222687f4f54b..1a8a7d2408cfce3c2500be781c22d4f96ace9b95 100644
--- a/Filters/HyperTree/vtkHyperTreeGridCellCenters.h
+++ b/Filters/HyperTree/vtkHyperTreeGridCellCenters.h
@@ -47,6 +47,7 @@
 #include "vtkCellCenters.h"
 #include "vtkFiltersHyperTreeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkDataSetAttributes;
 class vtkHyperTreeGrid;
@@ -97,4 +98,5 @@ private:
   void operator=(const vtkHyperTreeGridCellCenters&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridCellCenters_h
diff --git a/Filters/HyperTree/vtkHyperTreeGridContour.cxx b/Filters/HyperTree/vtkHyperTreeGridContour.cxx
index 552ac70fb4606454ad39b891669ca06dfeb4ba7d..ebac47199792ab1a9ee54dba8ba23faf08152ece 100644
--- a/Filters/HyperTree/vtkHyperTreeGridContour.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridContour.cxx
@@ -38,6 +38,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkVoxel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 static const unsigned int MooreCursors1D[2] = { 0, 2 };
 static const unsigned int MooreCursors2D[8] = { 0, 1, 2, 3, 5, 6, 7, 8 };
 static const unsigned int MooreCursors3D[26] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15,
@@ -639,3 +640,4 @@ void vtkHyperTreeGridContour::RecursivelyProcessTree(
     }   // cornerIdx
   }     // else if ( ! this->InMask || this->InMask->GetTuple1( id ) )
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridContour.h b/Filters/HyperTree/vtkHyperTreeGridContour.h
index 41bdeddf2f91fc6671938304b9983fc4be129819..e7c715ad4edb5d9b0c67e227aa2a0f516a6889c6 100644
--- a/Filters/HyperTree/vtkHyperTreeGridContour.h
+++ b/Filters/HyperTree/vtkHyperTreeGridContour.h
@@ -43,6 +43,7 @@
 
 #include <vector> // For STL
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkCellData;
 class vtkContourHelper;
@@ -250,4 +251,5 @@ inline void vtkHyperTreeGridContour::GenerateValues(
   this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridContour_h
diff --git a/Filters/HyperTree/vtkHyperTreeGridDepthLimiter.cxx b/Filters/HyperTree/vtkHyperTreeGridDepthLimiter.cxx
index 05e0cdf849014a9f0acfc37fc58ff4144c51e386..3e43bc4bffba6f439c3e38555cdb64bc2549467c 100644
--- a/Filters/HyperTree/vtkHyperTreeGridDepthLimiter.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridDepthLimiter.cxx
@@ -22,6 +22,7 @@
 #include "vtkInformation.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridDepthLimiter);
 
 //------------------------------------------------------------------------------
@@ -200,3 +201,4 @@ void vtkHyperTreeGridDepthLimiter::RecursivelyProcessTree(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridDepthLimiter.h b/Filters/HyperTree/vtkHyperTreeGridDepthLimiter.h
index 223116acfcc52a0ff115d4b17b1ea0327e5e1540..5cc9caefa5ba70e0edc04df61faa1352a093458b 100644
--- a/Filters/HyperTree/vtkHyperTreeGridDepthLimiter.h
+++ b/Filters/HyperTree/vtkHyperTreeGridDepthLimiter.h
@@ -40,6 +40,7 @@
 #include "vtkFiltersHyperTreeModule.h" // For export macro
 #include "vtkHyperTreeGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridNonOrientedCursor;
@@ -123,4 +124,5 @@ private:
   void operator=(const vtkHyperTreeGridDepthLimiter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridDepthLimiter_h
diff --git a/Filters/HyperTree/vtkHyperTreeGridEvaluateCoarse.cxx b/Filters/HyperTree/vtkHyperTreeGridEvaluateCoarse.cxx
index b4d52236d323c52e12f8406aae0958195a8cb480..1de0d24b8bedb2e771c763a1bae28675c277c654 100644
--- a/Filters/HyperTree/vtkHyperTreeGridEvaluateCoarse.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridEvaluateCoarse.cxx
@@ -27,6 +27,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridEvaluateCoarse);
 
 //------------------------------------------------------------------------------
@@ -324,3 +325,4 @@ double vtkHyperTreeGridEvaluateCoarse::SplattingAverage(const std::vector<double
   }
   return sum / this->SplattingFactor;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridEvaluateCoarse.h b/Filters/HyperTree/vtkHyperTreeGridEvaluateCoarse.h
index 74dcf0d355c669325cd1f847227d16e3cce890b9..c70a83dc89d249cdbb314c843c5519e258401aba 100644
--- a/Filters/HyperTree/vtkHyperTreeGridEvaluateCoarse.h
+++ b/Filters/HyperTree/vtkHyperTreeGridEvaluateCoarse.h
@@ -79,6 +79,7 @@
 
 #include <vector> // For scratch storage.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 
 class vtkHyperTreeGrid;
@@ -174,4 +175,5 @@ private:
   vtkBitArray* Mask;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridEvaluateCoarse_h
diff --git a/Filters/HyperTree/vtkHyperTreeGridGeometry.cxx b/Filters/HyperTree/vtkHyperTreeGridGeometry.cxx
index 25ccf68849426ef0c2bf91249fa9316150938cc4..18da341f24167f8bd17b7477cb72a52d081bd3cc 100644
--- a/Filters/HyperTree/vtkHyperTreeGridGeometry.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridGeometry.cxx
@@ -43,6 +43,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 static constexpr unsigned int VonNeumannCursors3D[] = { 0, 1, 2, 4, 5, 6 };
 static constexpr unsigned int VonNeumannOrientations3D[] = { 2, 1, 0, 0, 1, 2 };
 static constexpr unsigned int VonNeumannOffsets3D[] = { 0, 0, 0, 1, 1, 1 };
@@ -1274,3 +1275,4 @@ void vtkHyperTreeGridGeometry::AddFace2(vtkIdType inId, vtkIdType useId, const d
     this->OutData->CopyData(this->InData, useId, outId);
   } // if ( create )
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridGeometry.h b/Filters/HyperTree/vtkHyperTreeGridGeometry.h
index 2be478326493d40339b3d3ef0eebe0836d79d43a..89f6242b408f4015bd3a8654c0a5e798aa4ce3d2 100644
--- a/Filters/HyperTree/vtkHyperTreeGridGeometry.h
+++ b/Filters/HyperTree/vtkHyperTreeGridGeometry.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersHyperTreeModule.h" // For export macro
 #include "vtkHyperTreeGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkCellArray;
 class vtkDoubleArray;
@@ -177,4 +178,5 @@ private:
   void operator=(const vtkHyperTreeGridGeometry&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkHyperTreeGridGeometry_h */
diff --git a/Filters/HyperTree/vtkHyperTreeGridGradient.cxx b/Filters/HyperTree/vtkHyperTreeGridGradient.cxx
index 9d509d2faa7c833db5e8ae19c7b8f536851dff55..5326c92cc8e95b41d00680a36fd2747793d8d12c 100644
--- a/Filters/HyperTree/vtkHyperTreeGridGradient.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridGradient.cxx
@@ -34,6 +34,7 @@
 
 namespace
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // inherit from tuple to give automatic comparison operator
 struct Neigh : public std::tuple<vtkIdType, vtkIdType>
@@ -184,8 +185,10 @@ struct GradientWorker
   }
 };
 
+VTK_ABI_NAMESPACE_END
 } // end of anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 // ---- vtkHyperTreeGridGradient ---
 
 vtkStandardNewMacro(vtkHyperTreeGridGradient);
@@ -306,3 +309,4 @@ void vtkHyperTreeGridGradient::RecursivelyProcessTree(
     worker.AccumulateGradienAt(supercursor);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridGradient.h b/Filters/HyperTree/vtkHyperTreeGridGradient.h
index 27f74e855ec649dfa8e5db44c2d3ab82a175cd05..ea8c351b88f2756035d47d40be730b71fe264ec0 100644
--- a/Filters/HyperTree/vtkHyperTreeGridGradient.h
+++ b/Filters/HyperTree/vtkHyperTreeGridGradient.h
@@ -40,6 +40,8 @@
 
 #include <string> // for internal fields
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkHyperTreeGridNonOrientedGeometryCursor;
 class vtkHyperTreeGridNonOrientedMooreSuperCursor;
 class vtkBitArray;
@@ -99,4 +101,5 @@ private:
   void operator=(const vtkHyperTreeGridGradient&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHyperTreeGridGradient_h
diff --git a/Filters/HyperTree/vtkHyperTreeGridPlaneCutter.cxx b/Filters/HyperTree/vtkHyperTreeGridPlaneCutter.cxx
index deaac6d6fac2e6ca3837afb45d2146030d184d36..4bfaa287d087df734901c3c11e2879e96027c195 100644
--- a/Filters/HyperTree/vtkHyperTreeGridPlaneCutter.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridPlaneCutter.cxx
@@ -36,6 +36,7 @@
 #include <cassert>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 vtkIdType First8Integers[] = { 0, 1, 2, 3, 4, 5, 6, 7 };
@@ -891,3 +892,4 @@ void vtkHyperTreeGridPlaneCutter::ReorderCutPoints(int n, double points[][3])
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridPlaneCutter.h b/Filters/HyperTree/vtkHyperTreeGridPlaneCutter.h
index 78a7a28afbaf1fa2884993a1f7458fd56b12e20d..19b9a16213d036bd6294a30e33f8d38960ef009c 100644
--- a/Filters/HyperTree/vtkHyperTreeGridPlaneCutter.h
+++ b/Filters/HyperTree/vtkHyperTreeGridPlaneCutter.h
@@ -43,6 +43,7 @@
 #include "vtkFiltersHyperTreeModule.h" // For export macro
 #include "vtkHyperTreeGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkCutter;
 class vtkIdList;
@@ -200,4 +201,5 @@ private:
   void operator=(const vtkHyperTreeGridPlaneCutter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkHyperTreeGridPlaneCutter_h */
diff --git a/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx b/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx
index 30b54f3c9819875f9f4efa9886eff6eca3fe71e9..83464134bf820ca0079a1ea409763a8635596d87 100644
--- a/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridThreshold.cxx
@@ -29,6 +29,7 @@
 #include <cmath>
 #include <limits>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridThreshold);
 
 //------------------------------------------------------------------------------
@@ -332,3 +333,4 @@ bool vtkHyperTreeGridThreshold::RecursivelyProcessTreeWithCreateNewMask(
   // Return whether current node is within range
   return discard;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridThreshold.h b/Filters/HyperTree/vtkHyperTreeGridThreshold.h
index 65b921fc226b7b248e667f81ba100973b7eac99f..e32db896178e13b0e8ce475e6e9e4098f06bf99c 100644
--- a/Filters/HyperTree/vtkHyperTreeGridThreshold.h
+++ b/Filters/HyperTree/vtkHyperTreeGridThreshold.h
@@ -43,6 +43,7 @@
 #include "vtkFiltersHyperTreeModule.h" // For export macro
 #include "vtkHyperTreeGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkHyperTreeGrid;
 
@@ -145,4 +146,5 @@ private:
   void operator=(const vtkHyperTreeGridThreshold&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkHyperTreeGridThreshold */
diff --git a/Filters/HyperTree/vtkHyperTreeGridToDualGrid.cxx b/Filters/HyperTree/vtkHyperTreeGridToDualGrid.cxx
index a78286a977d956af373f42928374740e2f6a96a6..444c533335e6077cb8c356814886d5cad2ae6b1b 100644
--- a/Filters/HyperTree/vtkHyperTreeGridToDualGrid.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridToDualGrid.cxx
@@ -29,6 +29,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkPoints.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridToDualGrid);
 
 static const unsigned int CornerNeighborCursorsTable3D0[8] = { 0, 1, 3, 4, 9, 10, 12, 13 };
@@ -1320,3 +1321,4 @@ void vtkHyperTreeGridToDualGrid::GenerateDualCornerFromLeaf3D(
     } // if ( owner )
   }   // c
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridToDualGrid.h b/Filters/HyperTree/vtkHyperTreeGridToDualGrid.h
index 2687994403149db6912685cc38b2fdd895f7d1a1..be747c0509d8abce4a79d4efeb01878df035b38f 100644
--- a/Filters/HyperTree/vtkHyperTreeGridToDualGrid.h
+++ b/Filters/HyperTree/vtkHyperTreeGridToDualGrid.h
@@ -28,6 +28,7 @@
 
 #include <map> // std::map
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridNonOrientedMooreSuperCursor;
 class vtkIdTypeArray;
@@ -86,4 +87,5 @@ private:
   std::map<vtkIdType, double> ReductionFactors;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkHyperTreeGridToDualGrid_h */
diff --git a/Filters/HyperTree/vtkHyperTreeGridToUnstructuredGrid.cxx b/Filters/HyperTree/vtkHyperTreeGridToUnstructuredGrid.cxx
index 85283deb92e7b2526661e5f6f49d0d5055449f40..1f332204da51c7632d4ca651c1c0cba3e7ff1a31 100644
--- a/Filters/HyperTree/vtkHyperTreeGridToUnstructuredGrid.cxx
+++ b/Filters/HyperTree/vtkHyperTreeGridToUnstructuredGrid.cxx
@@ -25,6 +25,7 @@
 
 #include "vtkHyperTreeGridNonOrientedGeometryCursor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridToUnstructuredGrid);
 
 //------------------------------------------------------------------------------
@@ -297,3 +298,4 @@ void vtkHyperTreeGridToUnstructuredGrid::AddCell(vtkIdType inId, double* origin,
     this->OriginalIds->SetTuple1(outId, inId);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkHyperTreeGridToUnstructuredGrid.h b/Filters/HyperTree/vtkHyperTreeGridToUnstructuredGrid.h
index 746149555f0f96d3e13c19f392948efde15afbee..ce0d0447441eac74dac4784cca4e68e069fff627 100644
--- a/Filters/HyperTree/vtkHyperTreeGridToUnstructuredGrid.h
+++ b/Filters/HyperTree/vtkHyperTreeGridToUnstructuredGrid.h
@@ -43,6 +43,7 @@
 #include "vtkFiltersHyperTreeModule.h" // For export macro
 #include "vtkHyperTreeGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkCellArray;
 class vtkHyperTreeGrid;
@@ -117,4 +118,5 @@ private:
   void operator=(const vtkHyperTreeGridToUnstructuredGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkHyperTreeGridToUnstructuredGrid_h */
diff --git a/Filters/HyperTree/vtkImageDataToHyperTreeGrid.cxx b/Filters/HyperTree/vtkImageDataToHyperTreeGrid.cxx
index 302f84db1302ba2815034b0758fcb82e1b65fb4e..8cedd3c593cf1301b93e765486a4a2331e9fcae9 100644
--- a/Filters/HyperTree/vtkImageDataToHyperTreeGrid.cxx
+++ b/Filters/HyperTree/vtkImageDataToHyperTreeGrid.cxx
@@ -33,6 +33,7 @@
 
 #include "vtkHyperTreeGridNonOrientedCursor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageDataToHyperTreeGrid);
 
 //------------------------------------------------------------------------------
@@ -271,3 +272,4 @@ int vtkImageDataToHyperTreeGrid::FillInputPortInformation(
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkImageData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/HyperTree/vtkImageDataToHyperTreeGrid.h b/Filters/HyperTree/vtkImageDataToHyperTreeGrid.h
index a3f57d4bfa1a1ee820e2fe8f499121b51a51ff8a..119b3a04e065e8d5cd01361556824f8779c088c6 100644
--- a/Filters/HyperTree/vtkImageDataToHyperTreeGrid.h
+++ b/Filters/HyperTree/vtkImageDataToHyperTreeGrid.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersHyperTreeModule.h" // For export macro
 #include "vtkHyperTreeGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkIntArray;
 class vtkUnsignedCharArray;
@@ -80,4 +81,5 @@ private:
   int GlobalId;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkImageDataToHyperTreeGrid_h
diff --git a/Filters/Imaging/vtkComputeHistogram2DOutliers.cxx b/Filters/Imaging/vtkComputeHistogram2DOutliers.cxx
index aa29f6ed22d1820ee501c80413574225d2de0a73..900cda6f5ea17133ccb54372ca1b9b7721dc1c42 100644
--- a/Filters/Imaging/vtkComputeHistogram2DOutliers.cxx
+++ b/Filters/Imaging/vtkComputeHistogram2DOutliers.cxx
@@ -37,6 +37,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkSortDataArray.h"
 #include "vtkTable.h"
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkComputeHistogram2DOutliers);
 //------------------------------------------------------------------------------
 vtkComputeHistogram2DOutliers::vtkComputeHistogram2DOutliers()
@@ -428,3 +429,4 @@ vtkTable* vtkComputeHistogram2DOutliers::GetOutputTable()
     this->Update();
   return vtkTable::SafeDownCast(this->GetOutputDataObject(OUTPUT_SELECTED_TABLE_DATA));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Imaging/vtkComputeHistogram2DOutliers.h b/Filters/Imaging/vtkComputeHistogram2DOutliers.h
index 0c06eee097dff90e932325732873d56be03ccd3e..070ac361ff76af9e33eb81910e725ab96757ae95 100644
--- a/Filters/Imaging/vtkComputeHistogram2DOutliers.h
+++ b/Filters/Imaging/vtkComputeHistogram2DOutliers.h
@@ -53,6 +53,7 @@
 #include "vtkSelectionAlgorithm.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCollection;
 class vtkDoubleArray;
 class vtkIdTypeArray;
@@ -145,4 +146,5 @@ private:
   void operator=(const vtkComputeHistogram2DOutliers&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Imaging/vtkExtractHistogram2D.cxx b/Filters/Imaging/vtkExtractHistogram2D.cxx
index 78a43d77e037958a8d535c4ac31ab386f12ccbee..a3b1bf7b940e7710c12d0a17e4eb75a1beec26f7 100644
--- a/Filters/Imaging/vtkExtractHistogram2D.cxx
+++ b/Filters/Imaging/vtkExtractHistogram2D.cxx
@@ -36,6 +36,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkTimerLog.h"
 #include "vtkUnsignedIntArray.h"
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractHistogram2D);
 vtkCxxSetObjectMacro(vtkExtractHistogram2D, RowMask, vtkDataArray);
 //------------------------------------------------------------------------------
@@ -375,3 +376,4 @@ int vtkExtractHistogram2D::ComputeBinExtents(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Imaging/vtkExtractHistogram2D.h b/Filters/Imaging/vtkExtractHistogram2D.h
index 9c46b65f0297d3da89354fc12a8b4560874f6084..92411ae348d3b3c30aaa293c279756a1997c6836 100644
--- a/Filters/Imaging/vtkExtractHistogram2D.h
+++ b/Filters/Imaging/vtkExtractHistogram2D.h
@@ -51,6 +51,7 @@
 #include "vtkFiltersImagingModule.h" // For export macro
 #include "vtkStatisticsAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSetAttributes;
 class vtkImageData;
 class vtkIdTypeArray;
@@ -238,4 +239,5 @@ private:
   void operator=(const vtkExtractHistogram2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Imaging/vtkPairwiseExtractHistogram2D.cxx b/Filters/Imaging/vtkPairwiseExtractHistogram2D.cxx
index 0cfe31c7a6d0756b4ed925a06c526d4457760072..35f910d4fbee7127de8fb111b7546b2db26b8024 100644
--- a/Filters/Imaging/vtkPairwiseExtractHistogram2D.cxx
+++ b/Filters/Imaging/vtkPairwiseExtractHistogram2D.cxx
@@ -44,6 +44,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <string>
 #include <vector>
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPairwiseExtractHistogram2D);
 //------------------------------------------------------------------------------
 class vtkPairwiseExtractHistogram2D::Internals
@@ -441,3 +442,4 @@ int vtkPairwiseExtractHistogram2D::FillOutputPortInformation(int port, vtkInform
     return this->Superclass::FillOutputPortInformation(port, info);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Imaging/vtkPairwiseExtractHistogram2D.h b/Filters/Imaging/vtkPairwiseExtractHistogram2D.h
index 6739ec1af7ed52b661ca17df8ccbdc28ebb75371..8105de19fdde4d830a74d94c602de1bddb9ee014 100644
--- a/Filters/Imaging/vtkPairwiseExtractHistogram2D.h
+++ b/Filters/Imaging/vtkPairwiseExtractHistogram2D.h
@@ -48,6 +48,7 @@
 #include "vtkFiltersImagingModule.h" // For export macro
 #include "vtkSmartPointer.h"         //needed for smart pointer ivars
 #include "vtkStatisticsAlgorithm.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCollection;
 class vtkExtractHistogram2D;
 class vtkImageData;
@@ -211,4 +212,5 @@ private:
   void operator=(const vtkPairwiseExtractHistogram2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkAdaptiveSubdivisionFilter.cxx b/Filters/Modeling/vtkAdaptiveSubdivisionFilter.cxx
index 14509600d1ce3344c4e77db3a329ac0deff701d3..ace925923a18cac6ebb525a41ed3aab0bd00f5ff 100644
--- a/Filters/Modeling/vtkAdaptiveSubdivisionFilter.cxx
+++ b/Filters/Modeling/vtkAdaptiveSubdivisionFilter.cxx
@@ -25,6 +25,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkTriangle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAdaptiveSubdivisionFilter);
 vtkCxxSetObjectMacro(vtkAdaptiveSubdivisionFilter, Locator, vtkIncrementalPointLocator);
 
@@ -395,3 +396,4 @@ void vtkAdaptiveSubdivisionFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Precision of the output points: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkAdaptiveSubdivisionFilter.h b/Filters/Modeling/vtkAdaptiveSubdivisionFilter.h
index 8306f6e3820794a62d500dee919ee1e8b0924405..7caf0193300c99fba32ed686de8bce15bb5586f2 100644
--- a/Filters/Modeling/vtkAdaptiveSubdivisionFilter.h
+++ b/Filters/Modeling/vtkAdaptiveSubdivisionFilter.h
@@ -72,6 +72,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 
 class VTKFILTERSMODELING_EXPORT vtkAdaptiveSubdivisionFilter : public vtkPolyDataAlgorithm
@@ -179,4 +180,5 @@ private:
   void operator=(const vtkAdaptiveSubdivisionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkBandedPolyDataContourFilter.cxx b/Filters/Modeling/vtkBandedPolyDataContourFilter.cxx
index aa4539a5c8972c4fd6062f77b5711bcf1c679de2..4c76668b701bfb3939497e2c939c677205000e5e 100644
--- a/Filters/Modeling/vtkBandedPolyDataContourFilter.cxx
+++ b/Filters/Modeling/vtkBandedPolyDataContourFilter.cxx
@@ -34,6 +34,7 @@
 
 #include <cfloat>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBandedPolyDataContourFilter);
 
 namespace
@@ -977,3 +978,4 @@ void vtkBandedPolyDataContourFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Clip Tolerance: " << this->ClipTolerance << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkBandedPolyDataContourFilter.h b/Filters/Modeling/vtkBandedPolyDataContourFilter.h
index ce41b3a753ddeb4a71c8355e385757acb2cce5d9..fb8aa799a292e65e42a75ff5db1fd92c4b199640 100644
--- a/Filters/Modeling/vtkBandedPolyDataContourFilter.h
+++ b/Filters/Modeling/vtkBandedPolyDataContourFilter.h
@@ -46,6 +46,7 @@
 
 #include "vtkContourValues.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkCellArray;
 class vtkPointData;
@@ -258,4 +259,5 @@ inline void vtkBandedPolyDataContourFilter::GenerateValues(
   this->ContourValues->GenerateValues(numContours, rangeStart, rangeEnd);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkButterflySubdivisionFilter.cxx b/Filters/Modeling/vtkButterflySubdivisionFilter.cxx
index bded986c50dd3dae76ca58efa66de5d2fdc5fb41..abefe2310900fb160e89f33bb2826f4f4d2ab46a 100644
--- a/Filters/Modeling/vtkButterflySubdivisionFilter.cxx
+++ b/Filters/Modeling/vtkButterflySubdivisionFilter.cxx
@@ -23,6 +23,7 @@
 #include "vtkPolyData.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkButterflySubdivisionFilter);
 
 void vtkButterflySubdivisionFilter::PrintSelf(ostream& os, vtkIndent indent)
@@ -477,3 +478,4 @@ void vtkButterflySubdivisionFilter::GenerateButterflyStencil(
     weights[i] = butterflyWeights[i];
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkButterflySubdivisionFilter.h b/Filters/Modeling/vtkButterflySubdivisionFilter.h
index eead5eb84e37beeae6ba554faaf668885d7291eb..939cea7230009ea0fb299cc7ebb2e33a5b3a836f 100644
--- a/Filters/Modeling/vtkButterflySubdivisionFilter.h
+++ b/Filters/Modeling/vtkButterflySubdivisionFilter.h
@@ -48,6 +48,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkInterpolatingSubdivisionFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkIdList;
 class vtkIntArray;
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkButterflySubdivisionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkCollisionDetectionFilter.cxx b/Filters/Modeling/vtkCollisionDetectionFilter.cxx
index cb037a1192112889a02523775b30528d98c671c3..2f86d977fa65007abdcb80392cd0f83f062e9a75 100644
--- a/Filters/Modeling/vtkCollisionDetectionFilter.cxx
+++ b/Filters/Modeling/vtkCollisionDetectionFilter.cxx
@@ -71,6 +71,7 @@
 #include "vtkTrivialProducer.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCollisionDetectionFilter);
 
 // Constructs with initial 0 values.
@@ -803,3 +804,4 @@ void vtkCollisionDetectionFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Matrix 0: " << this->GetMatrix(0) << "\n";
   os << indent << "Matrix 1: " << this->GetMatrix(1) << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkCollisionDetectionFilter.h b/Filters/Modeling/vtkCollisionDetectionFilter.h
index 8ea38d686a1b63791fba0f3d91782a41e572d9dc..fe0557dce77b65d308d3e224f6485bec083461b5 100644
--- a/Filters/Modeling/vtkCollisionDetectionFilter.h
+++ b/Filters/Modeling/vtkCollisionDetectionFilter.h
@@ -95,6 +95,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOBBTree;
 class vtkPolyData;
 class vtkPoints;
@@ -298,4 +299,5 @@ private:
   void operator=(const vtkCollisionDetectionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkContourLoopExtraction.cxx b/Filters/Modeling/vtkContourLoopExtraction.cxx
index 0823dbe5b64dfc82c7ba9d9ace0a4c88bb510a5f..ed0e73bf9324c03f2dbeabbdec4ac9465acb797e 100644
--- a/Filters/Modeling/vtkContourLoopExtraction.cxx
+++ b/Filters/Modeling/vtkContourLoopExtraction.cxx
@@ -32,6 +32,7 @@
 #include <cfloat>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContourLoopExtraction);
 
 //------------------------------------------------------------------------------
@@ -526,3 +527,4 @@ void vtkContourLoopExtraction::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Clean Points: " << (this->CleanPoints ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkContourLoopExtraction.h b/Filters/Modeling/vtkContourLoopExtraction.h
index bb9df4124ad4c05dbc21c8d2d722df0fa561409e..39254fd3531fdd0313a5dd8abf93f84e5fb2f9c6 100644
--- a/Filters/Modeling/vtkContourLoopExtraction.h
+++ b/Filters/Modeling/vtkContourLoopExtraction.h
@@ -82,6 +82,7 @@
 #define VTK_OUTPUT_POLYLINES 1
 #define VTK_OUTPUT_BOTH 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSMODELING_EXPORT vtkContourLoopExtraction : public vtkPolyDataAlgorithm
 {
 public:
@@ -186,4 +187,5 @@ private:
   void operator=(const vtkContourLoopExtraction&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkCookieCutter.cxx b/Filters/Modeling/vtkCookieCutter.cxx
index bdd93098505374794b7d380fa6eac860e6fc037f..e9280e27b496955bd1f2a6762126e24749c15708 100644
--- a/Filters/Modeling/vtkCookieCutter.cxx
+++ b/Filters/Modeling/vtkCookieCutter.cxx
@@ -29,6 +29,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCookieCutter);
 vtkCxxSetObjectMacro(vtkCookieCutter, Locator, vtkIncrementalPointLocator);
 
@@ -1681,3 +1682,4 @@ void vtkCookieCutter::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Locator: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkCookieCutter.h b/Filters/Modeling/vtkCookieCutter.h
index 1036b1d0866b894c4ff411d5858242b29e161b2f..fe88c633773d805322210ca86c969439bbabaf12 100644
--- a/Filters/Modeling/vtkCookieCutter.h
+++ b/Filters/Modeling/vtkCookieCutter.h
@@ -55,6 +55,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSMODELING_EXPORT vtkCookieCutter : public vtkPolyDataAlgorithm
 {
 public:
@@ -165,4 +166,5 @@ private:
   void operator=(const vtkCookieCutter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkDijkstraGraphGeodesicPath.cxx b/Filters/Modeling/vtkDijkstraGraphGeodesicPath.cxx
index e217666a7db54df263fa653308010496cfd9bad8..a7dc084df6946c2f82e8d0e36712a98d0296015a 100644
--- a/Filters/Modeling/vtkDijkstraGraphGeodesicPath.cxx
+++ b/Filters/Modeling/vtkDijkstraGraphGeodesicPath.cxx
@@ -26,6 +26,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDijkstraGraphGeodesicPath);
 vtkCxxSetObjectMacro(vtkDijkstraGraphGeodesicPath, RepelVertices, vtkPoints);
 
@@ -408,3 +409,4 @@ void vtkDijkstraGraphGeodesicPath::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "IdList: " << this->IdList << endl;
   os << indent << "Number of vertices in input data: " << this->NumberOfVertices << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkDijkstraGraphGeodesicPath.h b/Filters/Modeling/vtkDijkstraGraphGeodesicPath.h
index 03bffa79a46ae9d5f4ffe049cb0eaf6ba03f885b..79fa5bdd827e7117de84a48a33799a4f2859551b 100644
--- a/Filters/Modeling/vtkDijkstraGraphGeodesicPath.h
+++ b/Filters/Modeling/vtkDijkstraGraphGeodesicPath.h
@@ -42,6 +42,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkGraphGeodesicPath.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDijkstraGraphInternals;
 class vtkIdList;
 
@@ -161,4 +162,5 @@ private:
   void operator=(const vtkDijkstraGraphGeodesicPath&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkDijkstraGraphInternals.h b/Filters/Modeling/vtkDijkstraGraphInternals.h
index 723ef995c0e38a71da58f74afa22e16baacdeb7f..17039175bb16aa8effbd2700d18a55661a88da97 100644
--- a/Filters/Modeling/vtkDijkstraGraphInternals.h
+++ b/Filters/Modeling/vtkDijkstraGraphInternals.h
@@ -29,6 +29,7 @@
 #include <vector>
 
 //-----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDijkstraGraphInternals
 {
 public:
@@ -180,5 +181,6 @@ private:
   std::vector<int> HeapIndices;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkDijkstraGraphInternals.h
diff --git a/Filters/Modeling/vtkDijkstraImageGeodesicPath.cxx b/Filters/Modeling/vtkDijkstraImageGeodesicPath.cxx
index 1316c77d9d80e7b839ac26d930e9c19e047de77b..de8e1565f94b5eb0139559a7bbf9a503c5b8f7fe 100644
--- a/Filters/Modeling/vtkDijkstraImageGeodesicPath.cxx
+++ b/Filters/Modeling/vtkDijkstraImageGeodesicPath.cxx
@@ -27,6 +27,7 @@
 
 #include "vtkDijkstraGraphInternals.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDijkstraImageGeodesicPath);
 
 //------------------------------------------------------------------------------
@@ -297,3 +298,4 @@ void vtkDijkstraImageGeodesicPath::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EdgeLengthWeight: " << this->EdgeLengthWeight << endl;
   os << indent << "CurvatureWeight: " << this->CurvatureWeight << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkDijkstraImageGeodesicPath.h b/Filters/Modeling/vtkDijkstraImageGeodesicPath.h
index 81c709a106b4287ada4851f3a863d22aeed4f73d..b9883508638d17f6a6d90d31e5ba7e82bca1f2ce 100644
--- a/Filters/Modeling/vtkDijkstraImageGeodesicPath.h
+++ b/Filters/Modeling/vtkDijkstraImageGeodesicPath.h
@@ -53,6 +53,7 @@
 #include "vtkDijkstraGraphGeodesicPath.h"
 #include "vtkFiltersModelingModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKFILTERSMODELING_EXPORT vtkDijkstraImageGeodesicPath : public vtkDijkstraGraphGeodesicPath
@@ -131,4 +132,5 @@ private:
   void operator=(const vtkDijkstraImageGeodesicPath&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkFillHolesFilter.cxx b/Filters/Modeling/vtkFillHolesFilter.cxx
index f0417ce9f74fa34f020ed258e7aa0f0994144fc7..edd3415f5e38f3331e18b01171c9f3e3e8404c56 100644
--- a/Filters/Modeling/vtkFillHolesFilter.cxx
+++ b/Filters/Modeling/vtkFillHolesFilter.cxx
@@ -27,6 +27,7 @@
 #include "vtkSphere.h"
 #include "vtkTriangleStrip.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFillHolesFilter);
 
 //------------------------------------------------------------------------------
@@ -262,3 +263,4 @@ void vtkFillHolesFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Hole Size: " << this->HoleSize << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkFillHolesFilter.h b/Filters/Modeling/vtkFillHolesFilter.h
index b555375c6a087eb546d9f5f674d744ba150da1ea..7b1a78f873977f6220c41d0194aa19545ac0604c 100644
--- a/Filters/Modeling/vtkFillHolesFilter.h
+++ b/Filters/Modeling/vtkFillHolesFilter.h
@@ -42,6 +42,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractTransform;
 
 class VTKFILTERSMODELING_EXPORT vtkFillHolesFilter : public vtkPolyDataAlgorithm
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkFillHolesFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkFitToHeightMapFilter.cxx b/Filters/Modeling/vtkFitToHeightMapFilter.cxx
index 59787ecaeb143b7ee62f276d555097872b4cdf0a..fc825b274bdbee52578b3fcea3916d5cfc4881a5 100644
--- a/Filters/Modeling/vtkFitToHeightMapFilter.cxx
+++ b/Filters/Modeling/vtkFitToHeightMapFilter.cxx
@@ -28,6 +28,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkTriangle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFitToHeightMapFilter);
 
 // These are created to support a (float,double) fast path. They work in
@@ -649,3 +650,4 @@ void vtkFitToHeightMapFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Fitting Strategy: " << this->FittingStrategy << "\n";
   os << indent << "Use Height Map Offset: " << (this->UseHeightMapOffset ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkFitToHeightMapFilter.h b/Filters/Modeling/vtkFitToHeightMapFilter.h
index 9f68de2240723bf1571d49c10448fa00f36b7b9b..719c075c025ad802395b67b2c7d65b7ed1a1d6b1 100644
--- a/Filters/Modeling/vtkFitToHeightMapFilter.h
+++ b/Filters/Modeling/vtkFitToHeightMapFilter.h
@@ -66,6 +66,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKFILTERSMODELING_EXPORT vtkFitToHeightMapFilter : public vtkPolyDataAlgorithm
@@ -171,4 +172,5 @@ private:
   void operator=(const vtkFitToHeightMapFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkGeodesicPath.cxx b/Filters/Modeling/vtkGeodesicPath.cxx
index ba230e2cd27caceb8840c9087ee311598f7b5fc9..6030d02adc1fb61d1baae62745b5bd72c3c3135f 100644
--- a/Filters/Modeling/vtkGeodesicPath.cxx
+++ b/Filters/Modeling/vtkGeodesicPath.cxx
@@ -21,6 +21,7 @@
 #include "vtkPolyData.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkGeodesicPath::vtkGeodesicPath()
 {
   this->SetNumberOfInputPorts(1);
@@ -45,3 +46,4 @@ void vtkGeodesicPath::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkGeodesicPath.h b/Filters/Modeling/vtkGeodesicPath.h
index e5ce3a79212a5ef8b60b918480227b18795b469a..89af089c6c4055e582f985968a1e5e3ec83a1ad0 100644
--- a/Filters/Modeling/vtkGeodesicPath.h
+++ b/Filters/Modeling/vtkGeodesicPath.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKFILTERSMODELING_EXPORT vtkGeodesicPath : public vtkPolyDataAlgorithm
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkGeodesicPath&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkGraphGeodesicPath.cxx b/Filters/Modeling/vtkGraphGeodesicPath.cxx
index d0f5064fc7668d29e5391d19602e3824dedad22f..1b0d1ce7bfc9e476915adae3c2bb6a9dd2815838 100644
--- a/Filters/Modeling/vtkGraphGeodesicPath.cxx
+++ b/Filters/Modeling/vtkGraphGeodesicPath.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkGraphGeodesicPath::vtkGraphGeodesicPath()
 {
   this->StartVertex = 0;
@@ -37,3 +38,4 @@ void vtkGraphGeodesicPath::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "StartVertex: " << this->StartVertex << endl;
   os << indent << "EndVertex: " << this->EndVertex << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkGraphGeodesicPath.h b/Filters/Modeling/vtkGraphGeodesicPath.h
index ab5aa5772be226d62f40041b57d76e1fb4a6f4d7..4631f15bf9190fb706f8f91851630dc2e445aa0b 100644
--- a/Filters/Modeling/vtkGraphGeodesicPath.h
+++ b/Filters/Modeling/vtkGraphGeodesicPath.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkGeodesicPath.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 
 class VTKFILTERSMODELING_EXPORT vtkGraphGeodesicPath : public vtkGeodesicPath
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkGraphGeodesicPath&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkHausdorffDistancePointSetFilter.cxx b/Filters/Modeling/vtkHausdorffDistancePointSetFilter.cxx
index f9e4a97ec7f95310b71bd144511f7b0616dee140..df040de2010cfc124efb15093855ace3a1e83abc 100644
--- a/Filters/Modeling/vtkHausdorffDistancePointSetFilter.cxx
+++ b/Filters/Modeling/vtkHausdorffDistancePointSetFilter.cxx
@@ -52,6 +52,7 @@
 #include "vtkPointSet.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHausdorffDistancePointSetFilter);
 
 //------------------------------------------------------------------------------
@@ -266,3 +267,4 @@ void vtkHausdorffDistancePointSetFilter::PrintSelf(ostream& os, vtkIndent indent
      << this->GetRelativeDistance()[1] << "\n";
   os << indent << "TargetDistanceMethod: " << this->GetTargetDistanceMethodAsString() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkHausdorffDistancePointSetFilter.h b/Filters/Modeling/vtkHausdorffDistancePointSetFilter.h
index 942fa9322bde94724ced08ad39babc2a292797c4..c440594aefafc51a8993c74fe0c980aaac6a818b 100644
--- a/Filters/Modeling/vtkHausdorffDistancePointSetFilter.h
+++ b/Filters/Modeling/vtkHausdorffDistancePointSetFilter.h
@@ -67,6 +67,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSMODELING_EXPORT vtkHausdorffDistancePointSetFilter : public vtkPointSetAlgorithm
 {
 public:
@@ -141,4 +142,5 @@ inline const char* vtkHausdorffDistancePointSetFilter::GetTargetDistanceMethodAs
     return "PointToCell";
   }
 }
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkHyperTreeGridOutlineFilter.cxx b/Filters/Modeling/vtkHyperTreeGridOutlineFilter.cxx
index cc62268a4aa87658462edc68e4c54aed928e6dc6..47ca985dc900b8c0183d0721b0142f9f12db012b 100644
--- a/Filters/Modeling/vtkHyperTreeGridOutlineFilter.cxx
+++ b/Filters/Modeling/vtkHyperTreeGridOutlineFilter.cxx
@@ -21,6 +21,7 @@
 #include "vtkOutlineSource.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridOutlineFilter);
 
 //------------------------------------------------------------------------------
@@ -113,3 +114,4 @@ void vtkHyperTreeGridOutlineFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Generate Faces: " << (this->GenerateFaces ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkHyperTreeGridOutlineFilter.h b/Filters/Modeling/vtkHyperTreeGridOutlineFilter.h
index 150406a64d83bfff96863bcf0c709d95f787e01a..08cdef24c3e8222aa18c554e1d627ef1c529c9c6 100644
--- a/Filters/Modeling/vtkHyperTreeGridOutlineFilter.h
+++ b/Filters/Modeling/vtkHyperTreeGridOutlineFilter.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkHyperTreeGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOutlineSource;
 
 class VTKFILTERSMODELING_EXPORT vtkHyperTreeGridOutlineFilter : public vtkHyperTreeGridAlgorithm
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkHyperTreeGridOutlineFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkImageDataOutlineFilter.cxx b/Filters/Modeling/vtkImageDataOutlineFilter.cxx
index b1bfc13060ee0f0db24621be45e7a00f6ab3b456..cd9744c87c97ceae314d666df21c8131457082fc 100644
--- a/Filters/Modeling/vtkImageDataOutlineFilter.cxx
+++ b/Filters/Modeling/vtkImageDataOutlineFilter.cxx
@@ -24,6 +24,7 @@
 #include "vtkNew.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageDataOutlineFilter);
 
 //------------------------------------------------------------------------------
@@ -218,3 +219,4 @@ void vtkImageDataOutlineFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Generate Faces: " << (this->GenerateFaces ? "On\n" : "Off\n");
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkImageDataOutlineFilter.h b/Filters/Modeling/vtkImageDataOutlineFilter.h
index 29531d826593c865810b6279acfb78696825fd0b..ffe9e2c3566a76d31bf02b0782571af2f53e87dc 100644
--- a/Filters/Modeling/vtkImageDataOutlineFilter.h
+++ b/Filters/Modeling/vtkImageDataOutlineFilter.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSMODELING_EXPORT vtkImageDataOutlineFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkImageDataOutlineFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkImprintFilter.cxx b/Filters/Modeling/vtkImprintFilter.cxx
index 78c3bee89b77a15d9c2c731b290754e849649915..f0bc4d5cf7dbad74a283ac7414e461e9f7265531 100644
--- a/Filters/Modeling/vtkImprintFilter.cxx
+++ b/Filters/Modeling/vtkImprintFilter.cxx
@@ -43,6 +43,7 @@
 #include <mutex>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImprintFilter);
 
 //------------------------------------------------------------------------------
@@ -3041,3 +3042,4 @@ void vtkImprintFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Debug Output Type: " << this->DebugOutputType << "\n";
   os << indent << "Debug Cell Id: " << this->DebugCellId << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkImprintFilter.h b/Filters/Modeling/vtkImprintFilter.h
index 0452bf1dc55762d62bed564f222025beedcd4bcc..8d4d1cc936071e097b08fe4cb964d1b91d8aabae 100644
--- a/Filters/Modeling/vtkImprintFilter.h
+++ b/Filters/Modeling/vtkImprintFilter.h
@@ -96,6 +96,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStaticCellLocator;
 
 class VTKFILTERSMODELING_EXPORT vtkImprintFilter : public vtkPolyDataAlgorithm
@@ -348,4 +349,5 @@ private:
   void operator=(const vtkImprintFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkLinearCellExtrusionFilter.cxx b/Filters/Modeling/vtkLinearCellExtrusionFilter.cxx
index 4cc64b28b5a7fe2b55dd6954a4f1305f5877471e..c64ab04a87d79dfa9422f82e4daea5cadc54c3bf 100644
--- a/Filters/Modeling/vtkLinearCellExtrusionFilter.cxx
+++ b/Filters/Modeling/vtkLinearCellExtrusionFilter.cxx
@@ -27,6 +27,7 @@
 #include <array>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLinearCellExtrusionFilter);
 
 //------------------------------------------------------------------------------
@@ -237,3 +238,4 @@ int vtkLinearCellExtrusionFilter::FillOutputPortInformation(
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkUnstructuredGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkLinearCellExtrusionFilter.h b/Filters/Modeling/vtkLinearCellExtrusionFilter.h
index 8fdf45c74d78490cb46419ddb4c5f0c00e260052..d28e36f323a422428f44632d4f168d0da3c80be7 100644
--- a/Filters/Modeling/vtkLinearCellExtrusionFilter.h
+++ b/Filters/Modeling/vtkLinearCellExtrusionFilter.h
@@ -38,6 +38,7 @@
 #include "vtkPolyDataAlgorithm.h"
 #include "vtkSmartPointer.h" // For smart pointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSMODELING_EXPORT vtkLinearCellExtrusionFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkLinearCellExtrusionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkLinearExtrusionFilter.cxx b/Filters/Modeling/vtkLinearExtrusionFilter.cxx
index 975fdf2213e79b84d5250bf5f18a87cf2e81acaf..0dd0913c463d62d9428bf9a89b8de99fae3167ad 100644
--- a/Filters/Modeling/vtkLinearExtrusionFilter.cxx
+++ b/Filters/Modeling/vtkLinearExtrusionFilter.cxx
@@ -25,6 +25,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLinearExtrusionFilter);
 
 //------------------------------------------------------------------------------
@@ -404,3 +405,4 @@ void vtkLinearExtrusionFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Capping: " << (this->Capping ? "On\n" : "Off\n");
   os << indent << "Scale Factor: " << this->ScaleFactor << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkLinearExtrusionFilter.h b/Filters/Modeling/vtkLinearExtrusionFilter.h
index a0d0119cd857f571331140e919bf249cdc44dbbd..cf51c0672bc8389ea575392ee058dd8bfb7aa531 100644
--- a/Filters/Modeling/vtkLinearExtrusionFilter.h
+++ b/Filters/Modeling/vtkLinearExtrusionFilter.h
@@ -55,6 +55,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 
 #define VTK_VECTOR_EXTRUSION 1
@@ -140,4 +141,5 @@ private:
   void operator=(const vtkLinearExtrusionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkLinearSubdivisionFilter.cxx b/Filters/Modeling/vtkLinearSubdivisionFilter.cxx
index ad24f906235d54a99ccec9af53843a3bc5780a50..75a2b63dbb38336a861c479fbaf80dfaff778bbb 100644
--- a/Filters/Modeling/vtkLinearSubdivisionFilter.cxx
+++ b/Filters/Modeling/vtkLinearSubdivisionFilter.cxx
@@ -21,6 +21,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLinearSubdivisionFilter);
 
 void vtkLinearSubdivisionFilter::PrintSelf(ostream& os, vtkIndent indent)
@@ -96,3 +97,4 @@ int vtkLinearSubdivisionFilter::GenerateSubdivisionPoints(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkLinearSubdivisionFilter.h b/Filters/Modeling/vtkLinearSubdivisionFilter.h
index 0f10d9a21a71b97446172eb742ac2b3bac79a027..da0ca77ec6d9b3fec32086a5856439869dccd128 100644
--- a/Filters/Modeling/vtkLinearSubdivisionFilter.h
+++ b/Filters/Modeling/vtkLinearSubdivisionFilter.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkInterpolatingSubdivisionFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIntArray;
 class vtkPointData;
 class vtkPoints;
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkLinearSubdivisionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkLoopSubdivisionFilter.cxx b/Filters/Modeling/vtkLoopSubdivisionFilter.cxx
index 5c9ea5e21a68e86208d1195e301fe11348a0782f..6272f12144bd368599b102bc62b18419d83234ee 100644
--- a/Filters/Modeling/vtkLoopSubdivisionFilter.cxx
+++ b/Filters/Modeling/vtkLoopSubdivisionFilter.cxx
@@ -28,6 +28,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLoopSubdivisionFilter);
 
 void vtkLoopSubdivisionFilter::PrintSelf(ostream& os, vtkIndent indent)
@@ -327,3 +328,4 @@ int vtkLoopSubdivisionFilter::RequestUpdateExtent(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkLoopSubdivisionFilter.h b/Filters/Modeling/vtkLoopSubdivisionFilter.h
index 569121c78b940c089b1bf8b5e005e13b768d9e7c..31743d8fc7aee7ee05f303d0e1974fc826ec6b62 100644
--- a/Filters/Modeling/vtkLoopSubdivisionFilter.h
+++ b/Filters/Modeling/vtkLoopSubdivisionFilter.h
@@ -49,6 +49,7 @@
 #include "vtkApproximatingSubdivisionFilter.h"
 #include "vtkFiltersModelingModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkIntArray;
 class vtkPoints;
@@ -83,4 +84,5 @@ private:
   void operator=(const vtkLoopSubdivisionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkOutlineFilter.cxx b/Filters/Modeling/vtkOutlineFilter.cxx
index b20964027b2a34beefc8583660eef2ac45b2a32c..74878099648e9a52c92f87c5c60addce8a729b86 100644
--- a/Filters/Modeling/vtkOutlineFilter.cxx
+++ b/Filters/Modeling/vtkOutlineFilter.cxx
@@ -25,6 +25,7 @@
 
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOutlineFilter::vtkIndexSet : public std::set<unsigned int>
 {
 };
@@ -322,3 +323,4 @@ void vtkOutlineFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent
      << "Composite indices: " << (!this->Indices->empty() ? "(Specified)\n" : "(Not specified)\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkOutlineFilter.h b/Filters/Modeling/vtkOutlineFilter.h
index 9be9f9c4cf12198839cc4d27565f3531fef93709..587b577806b0b392a0382d047b63a912a8883b97 100644
--- a/Filters/Modeling/vtkOutlineFilter.h
+++ b/Filters/Modeling/vtkOutlineFilter.h
@@ -38,6 +38,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSMODELING_EXPORT vtkOutlineFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -130,4 +131,5 @@ private:
   void operator=(const vtkOutlineFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkPolyDataPointSampler.cxx b/Filters/Modeling/vtkPolyDataPointSampler.cxx
index f08d83333a9dd711896c96fce93a94f4ee11778b..079cfb9f0a0b0795e9e85b18614add92a563c356 100644
--- a/Filters/Modeling/vtkPolyDataPointSampler.cxx
+++ b/Filters/Modeling/vtkPolyDataPointSampler.cxx
@@ -27,6 +27,7 @@
 #include "vtkPolyData.h"
 #include "vtkTriangle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataPointSampler);
 
 namespace
@@ -643,3 +644,4 @@ void vtkPolyDataPointSampler::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Interpolate Point Data: " << (this->GenerateVertices ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkPolyDataPointSampler.h b/Filters/Modeling/vtkPolyDataPointSampler.h
index b3ac757fa9a3e5c947a3a772edaf0457eb0eee34..558b3ade0654536b0ac82222fa5e7fa95639ca5d 100644
--- a/Filters/Modeling/vtkPolyDataPointSampler.h
+++ b/Filters/Modeling/vtkPolyDataPointSampler.h
@@ -79,6 +79,7 @@
 #include "vtkNew.h"                   // for data members
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSMODELING_EXPORT vtkPolyDataPointSampler : public vtkPolyDataAlgorithm
 {
 public:
@@ -203,4 +204,5 @@ private:
   void operator=(const vtkPolyDataPointSampler&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkProjectedTexture.cxx b/Filters/Modeling/vtkProjectedTexture.cxx
index af9834b341a73bc9d675d5dcb2cd07fd5836de74..05061149402dc7d9480f8deeacd97b29c85bad68 100644
--- a/Filters/Modeling/vtkProjectedTexture.cxx
+++ b/Filters/Modeling/vtkProjectedTexture.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProjectedTexture);
 
 // Description:
@@ -270,3 +271,4 @@ void vtkProjectedTexture::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "MirrorSeparation: " << this->MirrorSeparation << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkProjectedTexture.h b/Filters/Modeling/vtkProjectedTexture.h
index 46fd0263193b3bbf4fb4ce351d39f41acc1cb56c..fec6d8c5f14e8af1ae72cd606020baef2703dce0 100644
--- a/Filters/Modeling/vtkProjectedTexture.h
+++ b/Filters/Modeling/vtkProjectedTexture.h
@@ -38,6 +38,7 @@
 #define VTK_PROJECTED_TEXTURE_USE_PINHOLE 0
 #define VTK_PROJECTED_TEXTURE_USE_TWO_MIRRORS 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSMODELING_EXPORT vtkProjectedTexture : public vtkDataSetAlgorithm
 {
 public:
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkProjectedTexture&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkQuadRotationalExtrusionFilter.cxx b/Filters/Modeling/vtkQuadRotationalExtrusionFilter.cxx
index bdcda820706db58a8a02e8a39f1f6f8ae2be6097..a5951879080bf8950274c8717f36660803d09d1f 100644
--- a/Filters/Modeling/vtkQuadRotationalExtrusionFilter.cxx
+++ b/Filters/Modeling/vtkQuadRotationalExtrusionFilter.cxx
@@ -28,6 +28,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadRotationalExtrusionFilter);
 
 //------------------------------------------------------------------------------
@@ -531,3 +532,4 @@ void vtkQuadRotationalExtrusionFilter::PrintSelf(ostream& os, vtkIndent indent)
     os << indent.GetNextIndent() << "Block #" << it->first << " -> " << it->second << "\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkQuadRotationalExtrusionFilter.h b/Filters/Modeling/vtkQuadRotationalExtrusionFilter.h
index 653e315e17a84c4754ee45a1cddce7cbbb73b8b2..f8b8b627f6839c7c0ad29526172802e1aed9cc4d 100644
--- a/Filters/Modeling/vtkQuadRotationalExtrusionFilter.h
+++ b/Filters/Modeling/vtkQuadRotationalExtrusionFilter.h
@@ -66,6 +66,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkMultiBlockDataSetAlgorithm.h"
 #include <map> // STL vector need for per block angles
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkPointData;
 
@@ -173,4 +174,5 @@ private:
   void operator=(const vtkQuadRotationalExtrusionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkRibbonFilter.cxx b/Filters/Modeling/vtkRibbonFilter.cxx
index b1e1b2be8569053fa073ee889dfda3fa7927aefe..66c9353b003ad29f291cbb72c3894e2d4d75945a 100644
--- a/Filters/Modeling/vtkRibbonFilter.cxx
+++ b/Filters/Modeling/vtkRibbonFilter.cxx
@@ -26,6 +26,7 @@
 #include "vtkPolyData.h"
 #include "vtkPolyLine.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRibbonFilter);
 
 // Construct ribbon so that width is 0.1, the width does
@@ -522,3 +523,4 @@ void vtkRibbonFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Generate TCoords: " << this->GetGenerateTCoordsAsString() << endl;
   os << indent << "Texture Length: " << this->TextureLength << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkRibbonFilter.h b/Filters/Modeling/vtkRibbonFilter.h
index 372d352c20e5af386cf0fea4407bfd776173192a..e536b18bb802fc520ff0785f859b4b8764409637 100644
--- a/Filters/Modeling/vtkRibbonFilter.h
+++ b/Filters/Modeling/vtkRibbonFilter.h
@@ -44,6 +44,7 @@
 #define VTK_TCOORDS_FROM_LENGTH 2
 #define VTK_TCOORDS_FROM_SCALARS 3
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkCellData;
 class vtkDataArray;
@@ -179,4 +180,5 @@ private:
   void operator=(const vtkRibbonFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkRotationalExtrusionFilter.cxx b/Filters/Modeling/vtkRotationalExtrusionFilter.cxx
index ba6b5b0b0595da2b404e3b75a9e23feaa13ad62e..a5fd0bfafecb9f354b0e1e1006db7239d6ad208b 100644
--- a/Filters/Modeling/vtkRotationalExtrusionFilter.cxx
+++ b/Filters/Modeling/vtkRotationalExtrusionFilter.cxx
@@ -25,6 +25,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRotationalExtrusionFilter);
 
 //------------------------------------------------------------------------------
@@ -356,3 +357,4 @@ void vtkRotationalExtrusionFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Rotation axis: (" << this->RotationAxis[0] << ", " << this->RotationAxis[1]
      << ", " << this->RotationAxis[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkRotationalExtrusionFilter.h b/Filters/Modeling/vtkRotationalExtrusionFilter.h
index 22b50454ffab100dae9edf915b19c68d8d8d819c..670d2458d4bcb4785929f53cd1bf4e7a4e3a8857 100644
--- a/Filters/Modeling/vtkRotationalExtrusionFilter.h
+++ b/Filters/Modeling/vtkRotationalExtrusionFilter.h
@@ -62,6 +62,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSMODELING_EXPORT vtkRotationalExtrusionFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -142,4 +143,5 @@ private:
   void operator=(const vtkRotationalExtrusionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkRuledSurfaceFilter.cxx b/Filters/Modeling/vtkRuledSurfaceFilter.cxx
index 840a458c91c3a26932b1c71b73a8ece263d5e489..6d42c3b9351a2ca1f4ef822783c32f033682b2b4 100644
--- a/Filters/Modeling/vtkRuledSurfaceFilter.cxx
+++ b/Filters/Modeling/vtkRuledSurfaceFilter.cxx
@@ -23,6 +23,7 @@
 #include "vtkPolyData.h"
 #include "vtkPolyLine.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRuledSurfaceFilter);
 
 //------------------------------------------------------------------------------
@@ -557,3 +558,4 @@ void vtkRuledSurfaceFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Orient Loops: " << (this->OrientLoops ? "On\n" : "Off\n");
   os << indent << "Pass Lines: " << (this->PassLines ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkRuledSurfaceFilter.h b/Filters/Modeling/vtkRuledSurfaceFilter.h
index dd3d30ca552980d248bb63dd602a7a5e5044d70c..c2c937588935d325d45a6fcca97e30693f9fe33a 100644
--- a/Filters/Modeling/vtkRuledSurfaceFilter.h
+++ b/Filters/Modeling/vtkRuledSurfaceFilter.h
@@ -57,6 +57,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkPoints;
 class vtkPolyData;
@@ -196,4 +197,5 @@ private:
   void operator=(const vtkRuledSurfaceFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkSectorSource.cxx b/Filters/Modeling/vtkSectorSource.cxx
index b2f23ed010a02252b4bfe1cca4c9e34b3b578bf7..b38225a2ab8b6262db9c4ee2f517c541b0407315 100644
--- a/Filters/Modeling/vtkSectorSource.cxx
+++ b/Filters/Modeling/vtkSectorSource.cxx
@@ -26,6 +26,7 @@
 #include "vtkSmartPointer.h"
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSectorSource);
 
 vtkSectorSource::vtkSectorSource()
@@ -121,3 +122,4 @@ void vtkSectorSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CircumferentialResolution: " << this->CircumferentialResolution << "\n";
   os << indent << "RadialResolution: " << this->RadialResolution << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkSectorSource.h b/Filters/Modeling/vtkSectorSource.h
index 93bab3313fd78af4de82a2d2523f79d832f8535f..1c9b3550d8b1a6dd941711ce753fd0514de01f75 100644
--- a/Filters/Modeling/vtkSectorSource.h
+++ b/Filters/Modeling/vtkSectorSource.h
@@ -30,6 +30,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSMODELING_EXPORT vtkSectorSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkSectorSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkSelectEnclosedPoints.cxx b/Filters/Modeling/vtkSelectEnclosedPoints.cxx
index c3749793e6f9907202ede411081b30925ad2d27c..ccb975e26b421cfa1be682352edfc321607986ab 100644
--- a/Filters/Modeling/vtkSelectEnclosedPoints.cxx
+++ b/Filters/Modeling/vtkSelectEnclosedPoints.cxx
@@ -35,6 +35,7 @@
 #include "vtkStaticCellLocator.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSelectEnclosedPoints);
 
 //------------------------------------------------------------------------------
@@ -508,3 +509,4 @@ void vtkSelectEnclosedPoints::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Tolerance: " << this->Tolerance << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkSelectEnclosedPoints.h b/Filters/Modeling/vtkSelectEnclosedPoints.h
index e74cd13096d6bcc36b3496a455d4bcf41fe163f3..437f4748dde6754f64dee685d75a9fa1921ef347 100644
--- a/Filters/Modeling/vtkSelectEnclosedPoints.h
+++ b/Filters/Modeling/vtkSelectEnclosedPoints.h
@@ -53,6 +53,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkIntersectionCounter.h"   // to count intersections along ray
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 class vtkAbstractCellLocator;
 class vtkStaticCellLocator;
@@ -191,4 +192,5 @@ private:
   void operator=(const vtkSelectEnclosedPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkSelectPolyData.cxx b/Filters/Modeling/vtkSelectPolyData.cxx
index d5047126f597e096aab57ae176955066f45a717c..3972749635cb156e299c64fcb79abf51756a0d06 100644
--- a/Filters/Modeling/vtkSelectPolyData.cxx
+++ b/Filters/Modeling/vtkSelectPolyData.cxx
@@ -27,6 +27,7 @@
 #include "vtkPolyData.h"
 #include "vtkTriangleFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSelectPolyData);
 
 vtkCxxSetObjectMacro(vtkSelectPolyData, Loop, vtkPoints);
@@ -914,3 +915,4 @@ void vtkSelectPolyData::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Loop not defined\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkSelectPolyData.h b/Filters/Modeling/vtkSelectPolyData.h
index f4ab18bae1d41dd48dc7bb6e73f736773ad64fc8..b92c12637529762667184052da367c5086c5b44c 100644
--- a/Filters/Modeling/vtkSelectPolyData.h
+++ b/Filters/Modeling/vtkSelectPolyData.h
@@ -99,6 +99,7 @@
 #define VTK_GREEDY_EDGE_SEARCH 0
 #define VTK_DIJKSTRA_EDGE_SEARCH 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCharArray;
 class vtkPoints;
 class vtkIdList;
@@ -312,4 +313,5 @@ inline const char* vtkSelectPolyData::GetEdgeSearchModeAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkSpherePuzzle.cxx b/Filters/Modeling/vtkSpherePuzzle.cxx
index a53493fd44c48ec1b7a1f47f09718d0e65c1fdfd..1551f8672f3eed143e293ff3e08fbca5f2ca1e07 100644
--- a/Filters/Modeling/vtkSpherePuzzle.cxx
+++ b/Filters/Modeling/vtkSpherePuzzle.cxx
@@ -30,6 +30,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSpherePuzzle);
 
 //------------------------------------------------------------------------------
@@ -462,3 +463,4 @@ void vtkSpherePuzzle::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkSpherePuzzle.h b/Filters/Modeling/vtkSpherePuzzle.h
index 2665bede689bbcf841beb61d8b5252e9e18aa34a..18f926128ef29ec3888b7f1c47bab031f568f3d5 100644
--- a/Filters/Modeling/vtkSpherePuzzle.h
+++ b/Filters/Modeling/vtkSpherePuzzle.h
@@ -27,6 +27,7 @@
 
 #define VTK_MAX_SPHERE_RESOLUTION 1024
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransform;
 
 class VTKFILTERSMODELING_EXPORT vtkSpherePuzzle : public vtkPolyDataAlgorithm
@@ -102,4 +103,5 @@ private:
   void operator=(const vtkSpherePuzzle&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkSpherePuzzleArrows.cxx b/Filters/Modeling/vtkSpherePuzzleArrows.cxx
index 7bb45e717c399293313093b9406ec18bc497bbe4..824891af0a207bcbfa0ae2dcae3afd180ac413f1 100644
--- a/Filters/Modeling/vtkSpherePuzzleArrows.cxx
+++ b/Filters/Modeling/vtkSpherePuzzleArrows.cxx
@@ -24,6 +24,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSpherePuzzleArrows);
 
 //------------------------------------------------------------------------------
@@ -213,3 +214,4 @@ void vtkSpherePuzzleArrows::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkSpherePuzzleArrows.h b/Filters/Modeling/vtkSpherePuzzleArrows.h
index 9f90c2f1e456999606241de84c4e08e0ea8e8a6f..8e886b814ba031aa0f609c4096999c6b655abad4 100644
--- a/Filters/Modeling/vtkSpherePuzzleArrows.h
+++ b/Filters/Modeling/vtkSpherePuzzleArrows.h
@@ -25,6 +25,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkPoints;
 class vtkSpherePuzzle;
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkSpherePuzzleArrows&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkSubdivideTetra.cxx b/Filters/Modeling/vtkSubdivideTetra.cxx
index d6470b0c390a5973860750f5563ccc9ff8abae56..00ea4880fe9e84b7dec2596bac458e6162f719c9 100644
--- a/Filters/Modeling/vtkSubdivideTetra.cxx
+++ b/Filters/Modeling/vtkSubdivideTetra.cxx
@@ -23,6 +23,7 @@
 #include "vtkPointData.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSubdivideTetra);
 
 //------------------------------------------------------------------------------
@@ -240,3 +241,4 @@ void vtkSubdivideTetra::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkSubdivideTetra.h b/Filters/Modeling/vtkSubdivideTetra.h
index 94a893e73cdf79eeb1ea99ccf9b0bbc57586d349..f65384b7f92fa357b60ad65ae137764dcc6ae278 100644
--- a/Filters/Modeling/vtkSubdivideTetra.h
+++ b/Filters/Modeling/vtkSubdivideTetra.h
@@ -25,6 +25,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSMODELING_EXPORT vtkSubdivideTetra : public vtkUnstructuredGridAlgorithm
 {
 public:
@@ -43,4 +44,5 @@ private:
   void operator=(const vtkSubdivideTetra&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkTrimmedExtrusionFilter.cxx b/Filters/Modeling/vtkTrimmedExtrusionFilter.cxx
index adb760af60fd2dec34a5f16f01d87d8d68a449d5..c01edf4c72ae0d3275127195d73f3b062250f4de 100644
--- a/Filters/Modeling/vtkTrimmedExtrusionFilter.cxx
+++ b/Filters/Modeling/vtkTrimmedExtrusionFilter.cxx
@@ -33,6 +33,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTrimmedExtrusionFilter);
 vtkCxxSetObjectMacro(vtkTrimmedExtrusionFilter, Locator, vtkAbstractCellLocator);
 
@@ -681,3 +682,4 @@ void vtkTrimmedExtrusionFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Locator: " << this->Locator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkTrimmedExtrusionFilter.h b/Filters/Modeling/vtkTrimmedExtrusionFilter.h
index 6692943846bbcfd34a522ab8cd44bd5f846d34df..35f59658a9fc5d96b438b2cbcc68018bf557b91a 100644
--- a/Filters/Modeling/vtkTrimmedExtrusionFilter.h
+++ b/Filters/Modeling/vtkTrimmedExtrusionFilter.h
@@ -67,6 +67,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractCellLocator;
 
 class VTKFILTERSMODELING_EXPORT vtkTrimmedExtrusionFilter : public vtkPolyDataAlgorithm
@@ -214,4 +215,5 @@ private:
   void operator=(const vtkTrimmedExtrusionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Modeling/vtkVolumeOfRevolutionFilter.cxx b/Filters/Modeling/vtkVolumeOfRevolutionFilter.cxx
index 95cfb661bf895ab14e5b45fc0937d44ea4831170..e79b924fa37c5d4ba96db03f8121563405ed2e73 100644
--- a/Filters/Modeling/vtkVolumeOfRevolutionFilter.cxx
+++ b/Filters/Modeling/vtkVolumeOfRevolutionFilter.cxx
@@ -32,6 +32,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVolumeOfRevolutionFilter);
 
 namespace
@@ -508,3 +509,4 @@ void vtkVolumeOfRevolutionFilter::PrintSelf(ostream& os, vtkIndent indent)
      << "," << this->AxisDirection[2] << ")\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Modeling/vtkVolumeOfRevolutionFilter.h b/Filters/Modeling/vtkVolumeOfRevolutionFilter.h
index 080abd44d7afb3f56a3eacc20ece37de77df521b..acb5a8d677de59984b004e8e069557e41d1b3768 100644
--- a/Filters/Modeling/vtkVolumeOfRevolutionFilter.h
+++ b/Filters/Modeling/vtkVolumeOfRevolutionFilter.h
@@ -37,6 +37,7 @@
 #include "vtkFiltersModelingModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSMODELING_EXPORT vtkVolumeOfRevolutionFilter : public vtkUnstructuredGridAlgorithm
 {
 public:
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkVolumeOfRevolutionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/OpenTURNS/vtkOTDensityMap.cxx b/Filters/OpenTURNS/vtkOTDensityMap.cxx
index fec22b7f7cdbdfa0af20b38058565288fec36b2b..f02f134845fe34ff79f98b5b6c521847cc2bcc5a 100644
--- a/Filters/OpenTURNS/vtkOTDensityMap.cxx
+++ b/Filters/OpenTURNS/vtkOTDensityMap.cxx
@@ -38,11 +38,12 @@
 #include <sstream>
 #include <vector>
 
+using namespace OT;
+
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyMacro(vtkOTDensityMap, DENSITY, Double);
 vtkStandardNewMacro(vtkOTDensityMap);
 
-using namespace OT;
-
 class vtkOTDensityMap::OTDistributionCache
 {
 public:
@@ -536,3 +537,4 @@ vtkMTimeType vtkOTDensityMap::GetMTime()
 {
   return vtkMath::Max(this->Superclass::GetMTime(), this->ContourValues->GetMTime());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/OpenTURNS/vtkOTDensityMap.h b/Filters/OpenTURNS/vtkOTDensityMap.h
index 4ddb8043a5f182ba88ac99c5cf865fd724886bdb..cd182b985d8c9b6b01d77f6e06d7645f8cc77baf 100644
--- a/Filters/OpenTURNS/vtkOTDensityMap.h
+++ b/Filters/OpenTURNS/vtkOTDensityMap.h
@@ -32,6 +32,7 @@
 
 #include <map> // For map
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkInformationDoubleKey;
 class vtkPolyData;
@@ -174,4 +175,5 @@ private:
   void operator=(const vtkOTDensityMap&) = delete;
   vtkOTDensityMap(const vtkOTDensityMap&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/OpenTURNS/vtkOTFilter.cxx b/Filters/OpenTURNS/vtkOTFilter.cxx
index 95eb9ecec90457d514d52fbbdb733c52d5a2246a..befcaead238e6f3b9c34980a6304fcff0e069aa6 100644
--- a/Filters/OpenTURNS/vtkOTFilter.cxx
+++ b/Filters/OpenTURNS/vtkOTFilter.cxx
@@ -27,6 +27,7 @@
 using namespace OT;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkOTFilter::vtkOTFilter()
 {
   this->SetInputArrayToProcess(
@@ -78,3 +79,4 @@ void vtkOTFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/OpenTURNS/vtkOTFilter.h b/Filters/OpenTURNS/vtkOTFilter.h
index 1fdde8512b15209a1cd488178bef211903d80ee3..e47840345a9780545b385c986de0f08b4973986d 100644
--- a/Filters/OpenTURNS/vtkOTFilter.h
+++ b/Filters/OpenTURNS/vtkOTFilter.h
@@ -34,6 +34,7 @@ namespace OT
 class Sample;
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSOPENTURNS_EXPORT vtkOTFilter : public vtkTableAlgorithm
 {
 public:
@@ -69,4 +70,5 @@ private:
   vtkOTFilter(const vtkOTFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/OpenTURNS/vtkOTKernelSmoothing.cxx b/Filters/OpenTURNS/vtkOTKernelSmoothing.cxx
index 0147c164bc473306dddce6b31b97d51725fce1d5..8ffab39b36a773f95f9313f736c90d56c858bd40 100644
--- a/Filters/OpenTURNS/vtkOTKernelSmoothing.cxx
+++ b/Filters/OpenTURNS/vtkOTKernelSmoothing.cxx
@@ -19,10 +19,11 @@
 #include "vtkOTIncludes.h"
 #include "vtkOTUtilities.h"
 
-vtkStandardNewMacro(vtkOTKernelSmoothing);
-
 using namespace OT;
 
+VTK_ABI_NAMESPACE_BEGIN
+vtkStandardNewMacro(vtkOTKernelSmoothing);
+
 //------------------------------------------------------------------------------
 vtkOTKernelSmoothing::vtkOTKernelSmoothing()
 {
@@ -89,3 +90,4 @@ void vtkOTKernelSmoothing::ComputePDF(
   Sample gridY = dist.getImplementation()->computePDF(range[0], range[1], this->PointNumber, gridX);
   this->AddToOutput(&gridY, pdfName);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/OpenTURNS/vtkOTKernelSmoothing.h b/Filters/OpenTURNS/vtkOTKernelSmoothing.h
index 0693bf570a446626037de3321491b48340ec9c53..33d2c8efe8862ffcfd250d50d1770ad9765fb697 100644
--- a/Filters/OpenTURNS/vtkOTKernelSmoothing.h
+++ b/Filters/OpenTURNS/vtkOTKernelSmoothing.h
@@ -30,6 +30,7 @@ namespace OT
 class KernelSmoothing;
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSOPENTURNS_EXPORT vtkOTKernelSmoothing : public vtkOTFilter
 {
 public:
@@ -102,4 +103,5 @@ private:
   vtkOTKernelSmoothing(const vtkOTKernelSmoothing&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/OpenTURNS/vtkOTScatterPlotMatrix.cxx b/Filters/OpenTURNS/vtkOTScatterPlotMatrix.cxx
index 6030441278bae5e1ddf83038d0c9c247886bc516..52e9c18594c67c7bc1a3ebbe9d1e28f694002d61 100644
--- a/Filters/OpenTURNS/vtkOTScatterPlotMatrix.cxx
+++ b/Filters/OpenTURNS/vtkOTScatterPlotMatrix.cxx
@@ -38,6 +38,7 @@
 #include <vector>
 
 // Static density values for now
+VTK_ABI_NAMESPACE_BEGIN
 static const int nDensityValues = 3;
 static const double densityValues[3] = { 0.1, 0.5, 0.9 };
 
@@ -249,3 +250,4 @@ void vtkOTScatterPlotMatrix::SetTransferFunction(vtkScalarsToColors* stc)
     this->Modified();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/OpenTURNS/vtkOTScatterPlotMatrix.h b/Filters/OpenTURNS/vtkOTScatterPlotMatrix.h
index d1cfad257bff93eaa6f17657d151aeeb009af893..d446769efd5c4e3daa9399cdb7b1943d6cedfc3a 100644
--- a/Filters/OpenTURNS/vtkOTScatterPlotMatrix.h
+++ b/Filters/OpenTURNS/vtkOTScatterPlotMatrix.h
@@ -32,6 +32,7 @@
 #include "vtkScatterPlotMatrix.h"
 #include "vtkSmartPointer.h" // For SmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOTDensityMap;
 class vtkScalarsToColors;
 
@@ -95,4 +96,5 @@ private:
   vtkSmartPointer<vtkScalarsToColors> TransferFunction;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOTScatterPlotMatrix_h
diff --git a/Filters/OpenTURNS/vtkOTUtilities.cxx b/Filters/OpenTURNS/vtkOTUtilities.cxx
index 4a744ec7ead5d9f21af3d9b9e01e3f3638569455..e51b3d7bffe56a15039c8657745444bcadf84d8a 100644
--- a/Filters/OpenTURNS/vtkOTUtilities.cxx
+++ b/Filters/OpenTURNS/vtkOTUtilities.cxx
@@ -23,6 +23,7 @@
 using namespace OT;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 Sample* vtkOTUtilities::SingleDimArraysToSample(vtkDataArrayCollection* arrays)
 {
   if (arrays == nullptr)
@@ -108,3 +109,4 @@ vtkDataArray* vtkOTUtilities::SampleToArray(Sample* ns)
   }
   return arr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/OpenTURNS/vtkOTUtilities.h b/Filters/OpenTURNS/vtkOTUtilities.h
index 2e17024b3f4179b3b2df1d5b26b97da33b3e5c97..c5fbed5f71ec676cdeec6f4c3f6edc567a73659f 100644
--- a/Filters/OpenTURNS/vtkOTUtilities.h
+++ b/Filters/OpenTURNS/vtkOTUtilities.h
@@ -21,11 +21,15 @@
 #ifndef vtkOTUtilities_h
 #define vtkOTUtilities_h
 
+#include "vtkABINamespace.h"
+
 namespace OT
 {
 class Sample;
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkDataArray;
 class vtkDataArrayCollection;
 class vtkPoints;
@@ -62,5 +66,6 @@ public:
   static vtkDataArray* SampleToArray(OT::Sample* ns);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkOTUtilities.h
diff --git a/Filters/Parallel/vtkAdaptiveTemporalInterpolator.cxx b/Filters/Parallel/vtkAdaptiveTemporalInterpolator.cxx
index eb6d9b57b0a49141ef6926b9968123e1bc6a54eb..a43e53ef9d36d0a2ae415dc3429bfb324069eba0 100644
--- a/Filters/Parallel/vtkAdaptiveTemporalInterpolator.cxx
+++ b/Filters/Parallel/vtkAdaptiveTemporalInterpolator.cxx
@@ -31,6 +31,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAdaptiveTemporalInterpolator);
 
 //------------------------------------------------------------------------------
@@ -397,3 +398,4 @@ vtkPointSet* vtkAdaptiveTemporalInterpolator::ResampleDataObject(
 
   return resampled;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkAdaptiveTemporalInterpolator.h b/Filters/Parallel/vtkAdaptiveTemporalInterpolator.h
index e467b87a1fdb92096f80010935cd0ca61cb1ee05..c006d604ada5832e130225a409b13806f314fc4f 100644
--- a/Filters/Parallel/vtkAdaptiveTemporalInterpolator.h
+++ b/Filters/Parallel/vtkAdaptiveTemporalInterpolator.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkTemporalInterpolator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkPointSet;
 
@@ -74,4 +75,5 @@ private:
   ResamplingHelperImpl* ResampleImpl;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkAggregateDataSetFilter.cxx b/Filters/Parallel/vtkAggregateDataSetFilter.cxx
index 59506d03c4a3fa6e514c7c61eaa3b19f78972dff..fbd224a095b291634546ae45123779692bd179a0 100644
--- a/Filters/Parallel/vtkAggregateDataSetFilter.cxx
+++ b/Filters/Parallel/vtkAggregateDataSetFilter.cxx
@@ -27,6 +27,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkAggregateDataSetFilter);
 
 //------------------------------------------------------------------------------
@@ -204,3 +205,4 @@ void vtkAggregateDataSetFilter::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "NumberOfTargetProcesses: " << this->NumberOfTargetProcesses << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkAggregateDataSetFilter.h b/Filters/Parallel/vtkAggregateDataSetFilter.h
index 15d019f69891e20a88185ea235a83dcfd179be84..539f770312a5e409b3ef9a38fe2056d2e633d028 100644
--- a/Filters/Parallel/vtkAggregateDataSetFilter.h
+++ b/Filters/Parallel/vtkAggregateDataSetFilter.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkMultiProcessController;
 
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkAggregateDataSetFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkAlignImageDataSetFilter.cxx b/Filters/Parallel/vtkAlignImageDataSetFilter.cxx
index 47fc1d3da3df2b7063ead3dd18650c26b8a7afb4..d4d491a964b95ee4887fecf64ab2ec1340c0cf29 100644
--- a/Filters/Parallel/vtkAlignImageDataSetFilter.cxx
+++ b/Filters/Parallel/vtkAlignImageDataSetFilter.cxx
@@ -89,6 +89,7 @@ bool ComputeGlobalOrigin(vtkVector3d& origin, const std::vector<vtkImageData*>&
 
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAlignImageDataSetFilter);
 vtkCxxSetObjectMacro(vtkAlignImageDataSetFilter, Controller, vtkMultiProcessController);
 //-----------------------------------------------------------------------------
@@ -205,3 +206,4 @@ void vtkAlignImageDataSetFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "MinimumExtent: " << this->MinimumExtent[0] << ", " << this->MinimumExtent[1]
      << ", " << this->MinimumExtent[2] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkAlignImageDataSetFilter.h b/Filters/Parallel/vtkAlignImageDataSetFilter.h
index a2759088129aa317efc014d134b43b1830b707e5..96986d66a59ebc0eeeb976bc77f23fc1a3bde439 100644
--- a/Filters/Parallel/vtkAlignImageDataSetFilter.h
+++ b/Filters/Parallel/vtkAlignImageDataSetFilter.h
@@ -33,6 +33,7 @@
 #include "vtkFiltersParallelModule.h" // for export macros
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkAlignImageDataSetFilter : public vtkPassInputTypeAlgorithm
@@ -71,5 +72,6 @@ private:
   vtkMultiProcessController* Controller;
   int MinimumExtent[3];
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
diff --git a/Filters/Parallel/vtkAngularPeriodicFilter.cxx b/Filters/Parallel/vtkAngularPeriodicFilter.cxx
index f0501cf372d986851061e311f5a9b88f06fb5903..f59d462692ff0e8035b07d8d6b66af7b8b668e64 100644
--- a/Filters/Parallel/vtkAngularPeriodicFilter.cxx
+++ b/Filters/Parallel/vtkAngularPeriodicFilter.cxx
@@ -35,6 +35,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAngularPeriodicFilter);
 
 //------------------------------------------------------------------------------
@@ -415,3 +416,4 @@ void vtkAngularPeriodicFilter::GeneratePieceName(vtkCompositeDataSet* input,
   ss << "_period" << outputId;
   output->GetMetaData(outputId)->Set(vtkCompositeDataSet::NAME(), ss.str().c_str());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkAngularPeriodicFilter.h b/Filters/Parallel/vtkAngularPeriodicFilter.h
index cb7aebb44423ce576fc33ea81c9c7faf8722157f..2e1dae8c1ca2ee07fffe693d446459dfc64287bb 100644
--- a/Filters/Parallel/vtkAngularPeriodicFilter.h
+++ b/Filters/Parallel/vtkAngularPeriodicFilter.h
@@ -41,6 +41,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkPeriodicFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSetAttributes;
 class vtkMultiPieceDataSet;
 class vtkPointSet;
@@ -180,4 +181,5 @@ private:
   double Center[3]; // Center of rotation
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkBlockDistribution.h b/Filters/Parallel/vtkBlockDistribution.h
index e67f4a8d7f01b01fa568a8088ab6866c05b0efb9..d4b3714f530539bd56b126049deb2bdeee069013 100644
--- a/Filters/Parallel/vtkBlockDistribution.h
+++ b/Filters/Parallel/vtkBlockDistribution.h
@@ -28,6 +28,9 @@
 #ifndef vtkBlockDistribution_h
 #define vtkBlockDistribution_h
 
+#include "vtkABINamespace.h"
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBlockDistribution
 {
 public:
@@ -148,5 +151,6 @@ inline vtkIdType vtkBlockDistribution::GetGlobalIndex(vtkIdType localIndex, vtkI
   return this->GetFirstGlobalIndexOnProcessor(rank) + localIndex;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkBlockDistribution.h
diff --git a/Filters/Parallel/vtkCollectGraph.cxx b/Filters/Parallel/vtkCollectGraph.cxx
index 4a155b990ba4739115f21bec8d781fa78f15e9a1..1867a24756ff2c97cef7dbd936108638af65087e 100644
--- a/Filters/Parallel/vtkCollectGraph.cxx
+++ b/Filters/Parallel/vtkCollectGraph.cxx
@@ -41,6 +41,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCollectGraph);
 
 vtkCxxSetObjectMacro(vtkCollectGraph, Controller, vtkMultiProcessController);
@@ -388,3 +389,4 @@ void vtkCollectGraph::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "SocketController: (" << this->SocketController << ")\n";
   os << indent << "OutputType: " << this->OutputType << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkCollectGraph.h b/Filters/Parallel/vtkCollectGraph.h
index 61e3be948ee44f09bd10c002ea4726d6026f097e..d1aefffd41d12b83a4235a9d5e0b67346c07ec65 100644
--- a/Filters/Parallel/vtkCollectGraph.h
+++ b/Filters/Parallel/vtkCollectGraph.h
@@ -30,6 +30,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkGraphAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class vtkSocketController;
 
@@ -108,4 +109,5 @@ private:
   void operator=(const vtkCollectGraph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkCollectPolyData.cxx b/Filters/Parallel/vtkCollectPolyData.cxx
index 7837892b55d31deb311fb461ab6d7026f16f2af5..8f61fbf63c2232ced33b140899d09717aafab663 100644
--- a/Filters/Parallel/vtkCollectPolyData.cxx
+++ b/Filters/Parallel/vtkCollectPolyData.cxx
@@ -25,6 +25,7 @@
 #include "vtkSocketController.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCollectPolyData);
 
 vtkCxxSetObjectMacro(vtkCollectPolyData, Controller, vtkMultiProcessController);
@@ -173,3 +174,4 @@ void vtkCollectPolyData::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Controller: (" << this->Controller << ")\n";
   os << indent << "SocketController: (" << this->SocketController << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkCollectPolyData.h b/Filters/Parallel/vtkCollectPolyData.h
index 5dc209aa9fcc514da6fb51783bc18b8dabd78d57..86ecd226a4ba9611fd14b13dc0768d2c40fde747 100644
--- a/Filters/Parallel/vtkCollectPolyData.h
+++ b/Filters/Parallel/vtkCollectPolyData.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class vtkSocketController;
 
@@ -82,4 +83,5 @@ private:
   void operator=(const vtkCollectPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkCollectTable.cxx b/Filters/Parallel/vtkCollectTable.cxx
index 898a70c30b75b676bbcf307afcac9a3ad946b828..f5d18890ea00a86de0f28b3e47b23652d23e9359 100644
--- a/Filters/Parallel/vtkCollectTable.cxx
+++ b/Filters/Parallel/vtkCollectTable.cxx
@@ -27,6 +27,7 @@
 #include "vtkTable.h"
 #include "vtkVariant.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCollectTable);
 
 vtkCxxSetObjectMacro(vtkCollectTable, Controller, vtkMultiProcessController);
@@ -164,3 +165,4 @@ void vtkCollectTable::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Controller: (" << this->Controller << ")\n";
   os << indent << "SocketController: (" << this->SocketController << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkCollectTable.h b/Filters/Parallel/vtkCollectTable.h
index 034e4fcf55c7ff65c3ddf158c3e73936f9c7343c..1f46dc380eb3a98782dfe7f07cc6fd1e13678bd2 100644
--- a/Filters/Parallel/vtkCollectTable.h
+++ b/Filters/Parallel/vtkCollectTable.h
@@ -30,6 +30,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class vtkSocketController;
 
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkCollectTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkCutMaterial.cxx b/Filters/Parallel/vtkCutMaterial.cxx
index 055f33003160203f24ebc7979132cd33b404c42d..f6d353e2bf408dfc22cda121445a60c53793679a 100644
--- a/Filters/Parallel/vtkCutMaterial.cxx
+++ b/Filters/Parallel/vtkCutMaterial.cxx
@@ -27,6 +27,7 @@
 #include "vtkThreshold.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCutMaterial);
 
 // Instantiate object with no input and no defined output.
@@ -235,3 +236,4 @@ void vtkCutMaterial::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Normal: " << this->Normal[0] << ", " << this->Normal[1] << ", "
      << this->Normal[2] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkCutMaterial.h b/Filters/Parallel/vtkCutMaterial.h
index d60d5a8589a5c891d9685d308e4e34731e49cb9f..f3adb7ead4fadaf951733fd5e973155d44cf56ee 100644
--- a/Filters/Parallel/vtkCutMaterial.h
+++ b/Filters/Parallel/vtkCutMaterial.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlane;
 
 class VTKFILTERSPARALLEL_EXPORT vtkCutMaterial : public vtkPolyDataAlgorithm
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkCutMaterial&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkDistributedDataFilter.cxx b/Filters/Parallel/vtkDistributedDataFilter.cxx
index d55e9d83eabb617fbea819ab965aa3cf99cdd097..4685dd667a9630c65cd60c3b247e31f9c770d9f3 100644
--- a/Filters/Parallel/vtkDistributedDataFilter.cxx
+++ b/Filters/Parallel/vtkDistributedDataFilter.cxx
@@ -31,6 +31,7 @@
 #include "vtkUnstructuredGrid.h"
 
 // Needed to let vtkPDistributedDataFilter be instantiated when available
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkDistributedDataFilter);
 
 //------------------------------------------------------------------------------
@@ -343,3 +344,4 @@ void vtkDistributedDataFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkDistributedDataFilter.h b/Filters/Parallel/vtkDistributedDataFilter.h
index 0c5ef934923513e0c3be6b6536b52024f5df9b88..a88a76377b2bcdd3e9e1498fa38d2b97a7391709 100644
--- a/Filters/Parallel/vtkDistributedDataFilter.h
+++ b/Filters/Parallel/vtkDistributedDataFilter.h
@@ -40,6 +40,7 @@
 
 #include <vector> // for vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBSPCuts;
 class vtkMultiProcessController;
 class vtkPKdTree;
@@ -261,4 +262,5 @@ private:
   vtkDistributedDataFilter(const vtkDistributedDataFilter&) = delete;
   void operator=(const vtkDistributedDataFilter&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkDuplicatePolyData.cxx b/Filters/Parallel/vtkDuplicatePolyData.cxx
index f776c306c9e767242a0a9d01ca7df97672e2cadd..f6e46fcb37aedce145e6bdecfac904f8e0300288 100644
--- a/Filters/Parallel/vtkDuplicatePolyData.cxx
+++ b/Filters/Parallel/vtkDuplicatePolyData.cxx
@@ -25,6 +25,7 @@
 #include "vtkSocketController.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDuplicatePolyData);
 
 vtkCxxSetObjectMacro(vtkDuplicatePolyData, Controller, vtkMultiProcessController);
@@ -336,3 +337,4 @@ void vtkDuplicatePolyData::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "MemorySize: " << this->MemorySize << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkDuplicatePolyData.h b/Filters/Parallel/vtkDuplicatePolyData.h
index ed06dc843e44337a0bc14907567489222cc6ad2b..8646185fa560716f6dcc20e213a8108d48b84c1e 100644
--- a/Filters/Parallel/vtkDuplicatePolyData.h
+++ b/Filters/Parallel/vtkDuplicatePolyData.h
@@ -27,6 +27,7 @@
 
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSocketController;
 class vtkMultiProcessController;
 
@@ -109,4 +110,5 @@ private:
   void operator=(const vtkDuplicatePolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkExtractCTHPart.cxx b/Filters/Parallel/vtkExtractCTHPart.cxx
index a21141d873162299ca36d7922e05007c812595bd..d2b8e3562320f047ff245270deb21247a5eb1105 100644
--- a/Filters/Parallel/vtkExtractCTHPart.cxx
+++ b/Filters/Parallel/vtkExtractCTHPart.cxx
@@ -55,6 +55,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractCTHPart);
 vtkCxxSetObjectMacro(vtkExtractCTHPart, ClipPlane, vtkPlane);
 vtkCxxSetObjectMacro(vtkExtractCTHPart, Controller, vtkMultiProcessController);
@@ -1353,3 +1354,4 @@ void vtkExtractCTHPart::PrintSelf(ostream& os, vtkIndent indent)
     os << "No Controller." << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkExtractCTHPart.h b/Filters/Parallel/vtkExtractCTHPart.h
index 7895c15efd3e6086b62ef6798bdf6a1cff9e9527..06487ff50f853e353742bdffa85ae165e8811a61 100644
--- a/Filters/Parallel/vtkExtractCTHPart.h
+++ b/Filters/Parallel/vtkExtractCTHPart.h
@@ -44,6 +44,7 @@
 #include "vtkMultiBlockDataSetAlgorithm.h"
 #include "vtkSmartPointer.h" // for using smartpointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAppendPolyData;
 class vtkContourFilter;
 class vtkDataArray;
@@ -256,4 +257,5 @@ private:
   friend class ScaledProgress;
   vtkExtractCTHPartInternal* Internals;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkExtractPolyDataPiece.cxx b/Filters/Parallel/vtkExtractPolyDataPiece.cxx
index e275747372422e3cd3de6bd11fb3b2d2ca2d2e7a..fab31b86ceab8d58cbf76f252355c2ec5ee558bb 100644
--- a/Filters/Parallel/vtkExtractPolyDataPiece.cxx
+++ b/Filters/Parallel/vtkExtractPolyDataPiece.cxx
@@ -28,6 +28,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractPolyDataPiece);
 
 //=============================================================================
@@ -321,3 +322,4 @@ void vtkExtractPolyDataPiece::AddGhostLevel(vtkPolyData* input, vtkIntArray* cel
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkExtractPolyDataPiece.h b/Filters/Parallel/vtkExtractPolyDataPiece.h
index 0a4ec90e41e8c8b7b8ba61882580845ae9c8dc7a..624e1e04e10f28120622578d8afa7bc2663e98d9 100644
--- a/Filters/Parallel/vtkExtractPolyDataPiece.h
+++ b/Filters/Parallel/vtkExtractPolyDataPiece.h
@@ -24,6 +24,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkIntArray;
 
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkExtractPolyDataPiece&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkExtractUnstructuredGridPiece.cxx b/Filters/Parallel/vtkExtractUnstructuredGridPiece.cxx
index 50636391a8c4f60c3acffec556db356c401eda98..aa3db630af9c61fda82f36073aa5971ca86f185a 100644
--- a/Filters/Parallel/vtkExtractUnstructuredGridPiece.cxx
+++ b/Filters/Parallel/vtkExtractUnstructuredGridPiece.cxx
@@ -30,6 +30,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -450,3 +451,4 @@ void vtkExtractUnstructuredGridPiece::AddGhostLevel(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkExtractUnstructuredGridPiece.h b/Filters/Parallel/vtkExtractUnstructuredGridPiece.h
index 2cda065a4de3a8694f6d133f87213629a2026ad6..bf5fb587f9c6ddf6765ff72a7ce4db79f6f5a005 100644
--- a/Filters/Parallel/vtkExtractUnstructuredGridPiece.h
+++ b/Filters/Parallel/vtkExtractUnstructuredGridPiece.h
@@ -24,6 +24,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkIntArray;
 
@@ -69,4 +70,5 @@ private:
   void operator=(const vtkExtractUnstructuredGridPiece&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkExtractUserDefinedPiece.cxx b/Filters/Parallel/vtkExtractUserDefinedPiece.cxx
index ed113f7152eb73774071d8cf6b6148de03c3e446..bb1a1d45eec144f1fead297e2a3cf2f40043984a 100644
--- a/Filters/Parallel/vtkExtractUserDefinedPiece.cxx
+++ b/Filters/Parallel/vtkExtractUserDefinedPiece.cxx
@@ -32,6 +32,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractUserDefinedPiece);
 
 vtkExtractUserDefinedPiece::vtkExtractUserDefinedPiece()
@@ -259,3 +260,4 @@ void vtkExtractUserDefinedPiece::ComputeCellTagsWithFunction(
 
   cellPtIds->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkExtractUserDefinedPiece.h b/Filters/Parallel/vtkExtractUserDefinedPiece.h
index 193d91114678b7e7189abdad043d2fe0d4fd7efb..6082dc48147cc13cc6cc023ae4c383a6e99145b6 100644
--- a/Filters/Parallel/vtkExtractUserDefinedPiece.h
+++ b/Filters/Parallel/vtkExtractUserDefinedPiece.h
@@ -39,6 +39,7 @@
 #include "vtkExtractUnstructuredGridPiece.h"
 #include "vtkFiltersParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLEL_EXPORT vtkExtractUserDefinedPiece : public vtkExtractUnstructuredGridPiece
 {
 public:
@@ -84,4 +85,5 @@ private:
 
   UserDefFunc InPiece;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkHyperTreeGridGhostCellsGenerator.cxx b/Filters/Parallel/vtkHyperTreeGridGhostCellsGenerator.cxx
index 794cc3059c80984c2bc1606261886abf02feb216..7fb3a7572c1e8a9a039afaa628e214fa2aabb011 100644
--- a/Filters/Parallel/vtkHyperTreeGridGhostCellsGenerator.cxx
+++ b/Filters/Parallel/vtkHyperTreeGridGhostCellsGenerator.cxx
@@ -34,6 +34,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridGhostCellsGenerator);
 
 struct vtkHyperTreeGridGhostCellsGenerator::vtkInternals
@@ -658,3 +659,4 @@ void vtkHyperTreeGridGhostCellsGenerator::CopyInputTreeToOutput(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkHyperTreeGridGhostCellsGenerator.h b/Filters/Parallel/vtkHyperTreeGridGhostCellsGenerator.h
index 74d51a0c459cdacffe9f40780a4d3f606cc038b5..12769aba48aef427eb7fbd4cdbbb1f5d328e5a50 100644
--- a/Filters/Parallel/vtkHyperTreeGridGhostCellsGenerator.h
+++ b/Filters/Parallel/vtkHyperTreeGridGhostCellsGenerator.h
@@ -38,6 +38,7 @@
 
 #include <vector> // For vtkHypertreeGridGhostCellsGenerator::ExtractInterface
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkCellData;
 class vtkHyperTreeGrid;
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkHyperTreeGridGhostCellsGenerator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkHyperTreeGridGhostCellsGenerator */
diff --git a/Filters/Parallel/vtkHyperTreeGridPProbeFilter.cxx b/Filters/Parallel/vtkHyperTreeGridPProbeFilter.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..8ae0ca5dfd208fd827841aacbd33eb8f51af4b02
--- /dev/null
+++ b/Filters/Parallel/vtkHyperTreeGridPProbeFilter.cxx
@@ -0,0 +1,490 @@
+/*=========================================================================
+
+  Program:   Visualization Toolkit
+  Module:    vtkHyperTreeGridPProbeFilter.cxx
+
+  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
+  All rights reserved.
+  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
+
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notice for more information.
+
+=========================================================================*/
+#include "vtkHyperTreeGridPProbeFilter.h"
+
+#include "vtkAbstractArray.h"
+#include "vtkCellData.h"
+#include "vtkDataArray.h"
+#include "vtkDataSet.h"
+#include "vtkExecutive.h"
+#include "vtkFieldData.h"
+#include "vtkHyperTreeGrid.h"
+#include "vtkHyperTreeGridGeometricLocator.h"
+#include "vtkHyperTreeGridLocator.h"
+#include "vtkIdList.h"
+#include "vtkInformation.h"
+#include "vtkInformationVector.h"
+#include "vtkMath.h"
+#include "vtkMultiProcessController.h"
+#include "vtkObjectFactory.h"
+#include "vtkPointData.h"
+#include "vtkSMPTools.h"
+#include "vtkStreamingDemandDrivenPipeline.h"
+
+#include <numeric>
+#include <vector>
+
+VTK_ABI_NAMESPACE_BEGIN
+//------------------------------------------------------------------------------
+vtkStandardNewMacro(vtkHyperTreeGridPProbeFilter);
+
+//------------------------------------------------------------------------------
+vtkCxxSetObjectMacro(vtkHyperTreeGridPProbeFilter, Controller, vtkMultiProcessController);
+
+//------------------------------------------------------------------------------
+vtkCxxSetSmartPointerMacro(vtkHyperTreeGridPProbeFilter, Locator, vtkHyperTreeGridLocator);
+
+//------------------------------------------------------------------------------
+vtkHyperTreeGridPProbeFilter::vtkHyperTreeGridPProbeFilter()
+  : Controller(nullptr)
+  , Locator(vtkSmartPointer<vtkHyperTreeGridGeometricLocator>::New())
+{
+  this->SetController(vtkMultiProcessController::GetGlobalController());
+  this->SetNumberOfInputPorts(2);
+}
+
+//------------------------------------------------------------------------------
+vtkHyperTreeGridPProbeFilter::~vtkHyperTreeGridPProbeFilter()
+{
+  this->SetController(nullptr);
+}
+
+//------------------------------------------------------------------------------
+void vtkHyperTreeGridPProbeFilter::PrintSelf(ostream& os, vtkIndent indent)
+{
+  this->Superclass::PrintSelf(os, indent);
+  if (this->Locator)
+  {
+    os << indent << "Locator: ";
+    this->Locator->PrintSelf(os, indent.GetNextIndent());
+  }
+  else
+  {
+    os << indent << "Locator: none\n";
+  }
+  os << indent << "PassCellArrays: " << (this->PassCellArrays ? "On\n" : "Off\n");
+  os << indent << "PassPointArrays: " << (this->PassPointArrays ? "On\n" : "Off\n");
+  os << indent << "PassFieldArrays: " << (this->PassFieldArrays ? "On\n" : "Off\n");
+}
+
+//------------------------------------------------------------------------------
+vtkHyperTreeGridLocator* vtkHyperTreeGridPProbeFilter::GetLocator()
+{
+  return this->Locator;
+}
+
+//------------------------------------------------------------------------------
+int vtkHyperTreeGridPProbeFilter::FillInputPortInformation(int port, vtkInformation* info)
+{
+  if (port == 0)
+  {
+    info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkDataSet");
+  }
+  if (port == 1)
+  {
+    info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkHyperTreeGrid");
+  }
+  return 1;
+}
+
+//------------------------------------------------------------------------------
+void vtkHyperTreeGridPProbeFilter::SetSourceConnection(vtkAlgorithmOutput* algOutput)
+{
+  this->SetInputConnection(1, algOutput);
+}
+
+//------------------------------------------------------------------------------
+void vtkHyperTreeGridPProbeFilter::SetSourceData(vtkHyperTreeGrid* input)
+{
+  this->SetInputData(1, input);
+}
+
+//------------------------------------------------------------------------------
+vtkHyperTreeGrid* vtkHyperTreeGridPProbeFilter::GetSource()
+{
+  if (this->GetNumberOfInputConnections(1) < 1)
+  {
+    return nullptr;
+  }
+
+  return vtkHyperTreeGrid::SafeDownCast(this->GetExecutive()->GetInputData(1, 0));
+}
+
+//------------------------------------------------------------------------------
+int vtkHyperTreeGridPProbeFilter::RequestInformation(vtkInformation* vtkNotUsed(request),
+  vtkInformationVector** inputVector, vtkInformationVector* outputVector)
+{
+  vtkInformation* inInfo = inputVector[0]->GetInformationObject(0);
+  vtkInformation* sourceInfo = inputVector[1]->GetInformationObject(0);
+  vtkInformation* outInfo = outputVector->GetInformationObject(0);
+
+  outInfo->CopyEntry(sourceInfo, vtkStreamingDemandDrivenPipeline::TIME_STEPS());
+  outInfo->CopyEntry(sourceInfo, vtkStreamingDemandDrivenPipeline::TIME_RANGE());
+
+  outInfo->Set(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(),
+    inInfo->Get(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT()), 6);
+  return 1;
+}
+
+//------------------------------------------------------------------------------
+int vtkHyperTreeGridPProbeFilter::RequestData(vtkInformation* vtkNotUsed(request),
+  vtkInformationVector** inputVector, vtkInformationVector* outputVector)
+{
+  this->UpdateProgress(0.0);
+
+  // get the info objects
+  vtkInformation* inInfo = inputVector[0]->GetInformationObject(0);
+  vtkInformation* sourceInfo = inputVector[1]->GetInformationObject(0);
+  vtkInformation* outInfo = outputVector->GetInformationObject(0);
+
+  // get the input and output
+  vtkDataSet* input = vtkDataSet::SafeDownCast(inInfo->Get(vtkDataObject::DATA_OBJECT()));
+  vtkHyperTreeGrid* source =
+    vtkHyperTreeGrid::SafeDownCast(sourceInfo->Get(vtkDataObject::DATA_OBJECT()));
+  vtkDataSet* output = vtkDataSet::SafeDownCast(outInfo->Get(vtkDataObject::DATA_OBJECT()));
+
+  if (!input || !source || !output)
+  {
+    vtkErrorMacro("Could not get either the input, source or output");
+    return 0;
+  }
+
+  // setup output
+  if (!(this->Initialize(input, source, output)))
+  {
+    vtkErrorMacro("Could not initialize output arrays");
+    return 0;
+  }
+
+  this->UpdateProgress(0.1);
+
+  vtkNew<vtkIdList> localPointIds;
+  localPointIds->Initialize();
+  // run probing on each source individually
+  if (!(this->DoProbing(input, source, output, localPointIds)))
+  {
+    vtkErrorMacro("Could not perform serial probing correctly");
+    return 0;
+  }
+
+  this->UpdateProgress(0.7);
+
+  // gather the results to the master process
+  if (!(this->Reduce(source, output, localPointIds)))
+  {
+    vtkErrorMacro("Failed to communicate results to master process");
+    return 0;
+  }
+
+  this->UpdateProgress(1.0);
+  return 1;
+}
+
+//------------------------------------------------------------------------------
+int vtkHyperTreeGridPProbeFilter::RequestUpdateExtent(vtkInformation* vtkNotUsed(request),
+  vtkInformationVector** inputVector, vtkInformationVector* vtkNotUsed(outputVector))
+{
+  vtkInformation* inInfo = inputVector[0]->GetInformationObject(0);
+  vtkInformation* sourceInfo = inputVector[1]->GetInformationObject(0);
+
+  inInfo->Set(vtkStreamingDemandDrivenPipeline::UPDATE_PIECE_NUMBER(), 0);
+  inInfo->Set(vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_PIECES(), 1);
+  inInfo->Set(vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_GHOST_LEVELS(), 0);
+
+  sourceInfo->Set(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT(),
+    sourceInfo->Get(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT()), 6);
+  return 1;
+}
+
+//------------------------------------------------------------------------------
+class vtkHyperTreeGridPProbeFilter::ProbingWorklet
+{
+public:
+  vtkSmartPointer<vtkHyperTreeGridLocator> Locator;
+  vtkSmartPointer<vtkDataSet> Probe;
+  vtkSmartPointer<vtkIdList> ThreadGlobPointIds;
+  vtkSmartPointer<vtkIdList> ThreadGlobCellIds;
+  struct LocalData
+  {
+    std::vector<vtkIdType> pointIds;
+    std::vector<vtkIdType> cellIds;
+  };
+  vtkSMPThreadLocal<LocalData> ThreadLocal;
+
+  ProbingWorklet(vtkSmartPointer<vtkDataSet> probe,
+    vtkSmartPointer<vtkHyperTreeGridLocator> locator, vtkSmartPointer<vtkIdList> pointIds,
+    vtkSmartPointer<vtkIdList> cellIds)
+  {
+    this->Probe = probe;
+    this->Locator = locator;
+    this->ThreadGlobPointIds = pointIds;
+    this->ThreadGlobCellIds = cellIds;
+  }
+
+  void Initialize()
+  {
+    this->ThreadLocal.Local().pointIds = std::vector<vtkIdType>();
+    this->ThreadLocal.Local().cellIds = std::vector<vtkIdType>();
+  }
+
+  void operator()(vtkIdType begin, vtkIdType end)
+  {
+    std::vector<double> pt(3, 0.0);
+    for (vtkIdType iP = begin; iP < end; iP++)
+    {
+      this->Probe->GetPoint(iP, pt.data());
+      vtkIdType id = this->Locator->Search(pt.data());
+      if (!(id < 0))
+      {
+        this->ThreadLocal.Local().pointIds.emplace_back(iP);
+        this->ThreadLocal.Local().cellIds.emplace_back(id);
+      }
+    }
+  }
+
+  void Reduce()
+  {
+    vtkIdType nPointsFound = 0;
+    for (auto it = this->ThreadLocal.begin(); it != this->ThreadLocal.end(); it++)
+    {
+      nPointsFound += it->pointIds.size();
+    }
+    this->ThreadGlobPointIds->SetNumberOfIds(nPointsFound);
+    this->ThreadGlobCellIds->SetNumberOfIds(nPointsFound);
+    nPointsFound = 0;
+
+    auto mergeThreadResults = [&](LocalData& loc) {
+      std::copy(
+        loc.pointIds.begin(), loc.pointIds.end(), this->ThreadGlobPointIds->begin() + nPointsFound);
+      std::copy(
+        loc.cellIds.begin(), loc.cellIds.end(), this->ThreadGlobCellIds->begin() + nPointsFound);
+      nPointsFound += loc.pointIds.size();
+      loc.pointIds.resize(0);
+      loc.cellIds.resize(0);
+    };
+    std::for_each(this->ThreadLocal.begin(), this->ThreadLocal.end(), mergeThreadResults);
+  }
+};
+
+//------------------------------------------------------------------------------
+bool vtkHyperTreeGridPProbeFilter::DoProbing(
+  vtkDataSet* probe, vtkHyperTreeGrid* source, vtkDataSet* output, vtkIdList* localPointIds)
+{
+  // locate all present points of probe
+  unsigned int nPoints = probe->GetNumberOfPoints();
+  vtkNew<vtkIdList> locCellIds;
+  locCellIds->Initialize();
+  ProbingWorklet worker(probe, this->Locator, localPointIds, locCellIds);
+  vtkSMPTools::For(0, nPoints, worker);
+
+  // copy values from source
+  unsigned int numSourceCellArrays = source->GetCellData()->GetNumberOfArrays();
+  for (unsigned int iA = 0; iA < numSourceCellArrays; iA++)
+  {
+    vtkDataArray* sourceArray = source->GetCellData()->GetArray(iA);
+    if (!(output->GetPointData()->HasArray(sourceArray->GetName())))
+    {
+      vtkErrorMacro("Array " << sourceArray->GetName() << " missing in output");
+      return false;
+    }
+    vtkDataArray* outputArray = output->GetPointData()->GetArray(sourceArray->GetName());
+    outputArray->InsertTuplesStartingAt(0, locCellIds, sourceArray);
+  }
+  return true;
+}
+
+//------------------------------------------------------------------------------
+bool vtkHyperTreeGridPProbeFilter::Initialize(
+  vtkDataSet* input, vtkHyperTreeGrid* source, vtkDataSet* output)
+{
+  output->Initialize();
+
+  output->CopyStructure(input);
+
+  if (!(this->PassAttributeData(input, output)))
+  {
+    vtkErrorMacro("Failed to pass attribute data from inpu to output");
+    return false;
+  }
+
+  unsigned int numSourceCellArrays = source->GetCellData()->GetNumberOfArrays();
+  for (unsigned int iA = 0; iA < numSourceCellArrays; iA++)
+  {
+    vtkDataArray* da = source->GetCellData()->GetArray(iA);
+    if (!(output->GetPointData()->HasArray(da->GetName())))
+    {
+      auto localInstance = vtk::TakeSmartPointer(da->NewInstance());
+      localInstance->SetName(da->GetName());
+      localInstance->SetNumberOfComponents(da->GetNumberOfComponents());
+      output->GetPointData()->AddArray(localInstance);
+      localInstance->Initialize();
+    }
+  }
+
+  this->Locator->SetHTG(source);
+  return true;
+}
+
+//------------------------------------------------------------------------------
+bool vtkHyperTreeGridPProbeFilter::Reduce(
+  vtkHyperTreeGrid* source, vtkDataSet* output, vtkIdList* localPointIds)
+{
+  int procId = 0;
+  int numProcs = 1;
+  if (this->Controller)
+  {
+    procId = this->Controller->GetLocalProcessId();
+    numProcs = this->Controller->GetNumberOfProcesses();
+  }
+
+  vtkIdType numPointsFound = localPointIds->GetNumberOfIds();
+  if (procId != 0)
+  {
+    this->Controller->Send(&numPointsFound, 1, 0, HYPERTREEGRID_PROBE_COMMUNICATION_TAG);
+    if (numPointsFound > 0)
+    {
+      this->Controller->Send(output, 0, HYPERTREEGRID_PROBE_COMMUNICATION_TAG);
+      this->Controller->Send(
+        localPointIds->GetPointer(0), numPointsFound, 0, HYPERTREEGRID_PROBE_COMMUNICATION_TAG);
+    }
+    output->ReleaseData();
+    localPointIds->Initialize();
+  }
+  else
+  {
+    auto dealWithRemote = [](vtkIdList* remotePointIds, vtkDataSet* remoteOutput,
+                            vtkHyperTreeGrid* htgSource, vtkDataSet* totOutput) {
+      if (remotePointIds->GetNumberOfIds() > 0)
+      {
+        vtkNew<vtkIdList> iotaIds;
+        iotaIds->SetNumberOfIds(remotePointIds->GetNumberOfIds());
+        std::iota(iotaIds->begin(), iotaIds->end(), 0);
+        unsigned int numArrays = htgSource->GetCellData()->GetNumberOfArrays();
+        for (unsigned int iA = 0; iA < numArrays; iA++)
+        {
+          vtkDataArray* remoteArray = remoteOutput->GetPointData()->GetArray(
+            htgSource->GetCellData()->GetArray(iA)->GetName());
+          vtkDataArray* totArray =
+            totOutput->GetPointData()->GetArray(htgSource->GetCellData()->GetArray(iA)->GetName());
+          totArray->InsertTuples(remotePointIds, iotaIds, remoteArray);
+        }
+      }
+    };
+    vtkIdType numRemotePoints = 0;
+    vtkSmartPointer<vtkDataSet> remoteOutput = vtk::TakeSmartPointer(output->NewInstance());
+    vtkNew<vtkIdList> remotePointIds;
+    // deal with master process
+    remoteOutput->CopyStructure(output);
+    unsigned int numArrays = source->GetCellData()->GetNumberOfArrays();
+    for (unsigned int iA = 0; iA < numArrays; iA++)
+    {
+      vtkDataArray* da =
+        output->GetPointData()->GetArray(source->GetCellData()->GetArray(iA)->GetName());
+      auto localInstance = vtk::TakeSmartPointer(da->NewInstance());
+      localInstance->DeepCopy(da);
+      remoteOutput->GetPointData()->AddArray(localInstance);
+      da->SetNumberOfTuples(output->GetNumberOfPoints());
+      da->Fill(vtkMath::Nan());
+    }
+    dealWithRemote(localPointIds, remoteOutput, source, output);
+    remoteOutput->Initialize();
+
+    // deal with other processes
+    if (numProcs > 1)
+    {
+      for (int iProc = 1; iProc < numProcs; iProc++)
+      {
+        this->Controller->Receive(
+          &numRemotePoints, 1, iProc, HYPERTREEGRID_PROBE_COMMUNICATION_TAG);
+        remotePointIds->SetNumberOfIds(numRemotePoints);
+        if (numRemotePoints > 0)
+        {
+          this->Controller->Receive(remoteOutput, iProc, HYPERTREEGRID_PROBE_COMMUNICATION_TAG);
+          remotePointIds->Initialize();
+          remotePointIds->SetNumberOfIds(numRemotePoints);
+          this->Controller->Receive(remotePointIds->GetPointer(0), numRemotePoints, iProc,
+            HYPERTREEGRID_PROBE_COMMUNICATION_TAG);
+          dealWithRemote(remotePointIds, remoteOutput, source, output);
+          remoteOutput->Initialize();
+        }
+      }
+    }
+  }
+  return true;
+}
+
+//------------------------------------------------------------------------------
+// Straight up copy from vtkProbeFilter
+bool vtkHyperTreeGridPProbeFilter::PassAttributeData(vtkDataSet* input, vtkDataSet* output)
+{
+  // copy point data arrays
+  if (this->PassPointArrays)
+  {
+    int numPtArrays = input->GetPointData()->GetNumberOfArrays();
+    for (int i = 0; i < numPtArrays; ++i)
+    {
+      vtkDataArray* da = input->GetPointData()->GetArray(i);
+      if (!output->GetPointData()->HasArray(da->GetName()))
+      {
+        output->GetPointData()->AddArray(da);
+      }
+    }
+
+    // Set active attributes in the output to the active attributes in the input
+    for (int i = 0; i < vtkDataSetAttributes::NUM_ATTRIBUTES; ++i)
+    {
+      vtkAbstractArray* da = input->GetPointData()->GetAttribute(i);
+      if (da && da->GetName() && !output->GetPointData()->GetAttribute(i))
+      {
+        output->GetPointData()->SetAttribute(da, i);
+      }
+    }
+  }
+
+  // copy cell data arrays
+  if (this->PassCellArrays)
+  {
+    int numCellArrays = input->GetCellData()->GetNumberOfArrays();
+    for (int i = 0; i < numCellArrays; ++i)
+    {
+      vtkDataArray* da = input->GetCellData()->GetArray(i);
+      if (!output->GetCellData()->HasArray(da->GetName()))
+      {
+        output->GetCellData()->AddArray(da);
+      }
+    }
+
+    // Set active attributes in the output to the active attributes in the input
+    for (int i = 0; i < vtkDataSetAttributes::NUM_ATTRIBUTES; ++i)
+    {
+      vtkAbstractArray* da = input->GetCellData()->GetAttribute(i);
+      if (da && da->GetName() && !output->GetCellData()->GetAttribute(i))
+      {
+        output->GetCellData()->SetAttribute(da, i);
+      }
+    }
+  }
+
+  if (this->PassFieldArrays)
+  {
+    // nothing to do, vtkDemandDrivenPipeline takes care of that.
+  }
+  else
+  {
+    output->GetFieldData()->Initialize();
+  }
+  return true;
+}
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkIntegrateAttributes.cxx b/Filters/Parallel/vtkIntegrateAttributes.cxx
index 2978833a87fa4d4d5aba5b7f32978299f8d56872..c6d1036c376decc63de0cdf888f7009a156ea7a6 100644
--- a/Filters/Parallel/vtkIntegrateAttributes.cxx
+++ b/Filters/Parallel/vtkIntegrateAttributes.cxx
@@ -35,6 +35,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIntegrateAttributes);
 
 vtkCxxSetObjectMacro(vtkIntegrateAttributes, Controller, vtkMultiProcessController);
@@ -1156,3 +1157,4 @@ void vtkIntegrateAttributes::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "IntegrationDimension: " << this->IntegrationDimension << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkIntegrateAttributes.h b/Filters/Parallel/vtkIntegrateAttributes.h
index 2dbd71b7868ed8855a45b5f44dfe64b931696783..25931eaa868af3a5ed70cae4125889cb372f5f8d 100644
--- a/Filters/Parallel/vtkIntegrateAttributes.h
+++ b/Filters/Parallel/vtkIntegrateAttributes.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkIdList;
 class vtkInformation;
@@ -151,4 +152,5 @@ public:
   };
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPCellDataToPointData.cxx b/Filters/Parallel/vtkPCellDataToPointData.cxx
index 5794d0002bb3da14b81f1550550f4c7cc24873c8..2e3cc2e4596b84bdd86f1b6e37e938c77932466d 100644
--- a/Filters/Parallel/vtkPCellDataToPointData.cxx
+++ b/Filters/Parallel/vtkPCellDataToPointData.cxx
@@ -18,4 +18,8 @@
 #include "vtkPCellDataToPointData.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
+
 vtkStandardNewMacro(vtkPCellDataToPointData);
+
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPCellDataToPointData.h b/Filters/Parallel/vtkPCellDataToPointData.h
index e382a55a0c804416b1ae1e06c5f4f298ab61bdd1..0bb162f8cc0d4381ec8706506e15835c49395dda 100644
--- a/Filters/Parallel/vtkPCellDataToPointData.h
+++ b/Filters/Parallel/vtkPCellDataToPointData.h
@@ -27,6 +27,7 @@
 #include "vtkDeprecation.h"           // For `VTK_DEPRECATED_IN_9_3_0`
 #include "vtkFiltersParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTK_DEPRECATED_IN_9_3_0(
   "Please use vtkCellDataToPointData instead") VTKFILTERSPARALLEL_EXPORT vtkPCellDataToPointData
   : public vtkCellDataToPointData
@@ -45,5 +46,6 @@ private:
   void operator=(const vtkPCellDataToPointData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkPCellDataToPointData.h
diff --git a/Filters/Parallel/vtkPConvertToMultiBlockDataSet.cxx b/Filters/Parallel/vtkPConvertToMultiBlockDataSet.cxx
index 3e623ed69220a365c5aca1efa70c25e14550d100..825478a64fec2e991f1ba7be0cce07cd9387af63 100644
--- a/Filters/Parallel/vtkPConvertToMultiBlockDataSet.cxx
+++ b/Filters/Parallel/vtkPConvertToMultiBlockDataSet.cxx
@@ -22,6 +22,7 @@
 #include "vtkPartitionedDataSetCollection.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkPConvertToMultiBlockDataSet);
 vtkCxxSetObjectMacro(vtkPConvertToMultiBlockDataSet, Controller, vtkMultiProcessController);
 
@@ -98,3 +99,4 @@ void vtkPConvertToMultiBlockDataSet::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPConvertToMultiBlockDataSet.h b/Filters/Parallel/vtkPConvertToMultiBlockDataSet.h
index f180d047309ca7b591c8e3828be710cea7da0e9b..b6580bd785f860f45f6b62f6fb1a5900cf674bc2 100644
--- a/Filters/Parallel/vtkPConvertToMultiBlockDataSet.h
+++ b/Filters/Parallel/vtkPConvertToMultiBlockDataSet.h
@@ -34,6 +34,7 @@
 #include "vtkConvertToMultiBlockDataSet.h"
 #include "vtkFiltersParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class VTKFILTERSPARALLEL_EXPORT vtkPConvertToMultiBlockDataSet
   : public vtkConvertToMultiBlockDataSet
@@ -64,4 +65,5 @@ private:
   vtkMultiProcessController* Controller;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPExtractDataArraysOverTime.cxx b/Filters/Parallel/vtkPExtractDataArraysOverTime.cxx
index 82b4b79c2024e0b2fe7f3cdf98e631c5f6645f85..b6e1479cd288f0259896b6122a6536c398fbea17 100644
--- a/Filters/Parallel/vtkPExtractDataArraysOverTime.cxx
+++ b/Filters/Parallel/vtkPExtractDataArraysOverTime.cxx
@@ -28,6 +28,7 @@
 #include <sstream>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 vtkSmartPointer<vtkTable> vtkMergeTable(vtkTable* dest, vtkTable* src)
@@ -214,3 +215,4 @@ void vtkPExtractDataArraysOverTime::ReorganizeData(vtkMultiBlockDataSet* dataset
     dataset->ShallowCopy(mb);
   } // end rank 0
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPExtractDataArraysOverTime.h b/Filters/Parallel/vtkPExtractDataArraysOverTime.h
index 18ae2fcd3afa37e6683077b384574171f176e91c..34e2bc7e4f3277b2d20a92d3ee5500b7ec675ca6 100644
--- a/Filters/Parallel/vtkPExtractDataArraysOverTime.h
+++ b/Filters/Parallel/vtkPExtractDataArraysOverTime.h
@@ -37,6 +37,7 @@
 #include "vtkExtractDataArraysOverTime.h"
 #include "vtkFiltersParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkPExtractDataArraysOverTime : public vtkExtractDataArraysOverTime
@@ -69,4 +70,5 @@ private:
   void ReorganizeData(vtkMultiBlockDataSet* dataset);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPExtractExodusGlobalTemporalVariables.cxx b/Filters/Parallel/vtkPExtractExodusGlobalTemporalVariables.cxx
index 4f1a29dddd722562168dc88f30d6f4dbadfd3b22..21bab3fa0665abeeea0dd13c2fb17fcf8a3e5513 100644
--- a/Filters/Parallel/vtkPExtractExodusGlobalTemporalVariables.cxx
+++ b/Filters/Parallel/vtkPExtractExodusGlobalTemporalVariables.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPExtractExodusGlobalTemporalVariables);
 vtkCxxSetObjectMacro(
   vtkPExtractExodusGlobalTemporalVariables, Controller, vtkMultiProcessController);
@@ -89,3 +90,4 @@ void vtkPExtractExodusGlobalTemporalVariables::PrintSelf(ostream& os, vtkIndent
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Controller: " << this->Controller << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPExtractExodusGlobalTemporalVariables.h b/Filters/Parallel/vtkPExtractExodusGlobalTemporalVariables.h
index 7e9b67cd7a763eedc730755a89b91097f98b41fb..e83118a5bec7c3279858fce94d2534f87ae36501 100644
--- a/Filters/Parallel/vtkPExtractExodusGlobalTemporalVariables.h
+++ b/Filters/Parallel/vtkPExtractExodusGlobalTemporalVariables.h
@@ -32,6 +32,7 @@
 #include "vtkExtractExodusGlobalTemporalVariables.h"
 #include "vtkFiltersParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkPExtractExodusGlobalTemporalVariables
@@ -65,4 +66,5 @@ private:
   vtkMultiProcessController* Controller;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPExtractSelectedArraysOverTime.cxx b/Filters/Parallel/vtkPExtractSelectedArraysOverTime.cxx
index 2aefdfd0551e8d7d656762739dc0b0529089bc98..a192268ba09fba0f9190d76fffa0e34970c627db 100644
--- a/Filters/Parallel/vtkPExtractSelectedArraysOverTime.cxx
+++ b/Filters/Parallel/vtkPExtractSelectedArraysOverTime.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPExtractDataArraysOverTime.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPExtractSelectedArraysOverTime);
 //------------------------------------------------------------------------------
 vtkPExtractSelectedArraysOverTime::vtkPExtractSelectedArraysOverTime()
@@ -56,3 +57,4 @@ void vtkPExtractSelectedArraysOverTime::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Controller: " << this->GetController() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPExtractSelectedArraysOverTime.h b/Filters/Parallel/vtkPExtractSelectedArraysOverTime.h
index 782353bf4b505031a96c4d50f4443aacb0640e3f..ae27515b7f281b12b0918dae37a2f18d14620eab 100644
--- a/Filters/Parallel/vtkPExtractSelectedArraysOverTime.h
+++ b/Filters/Parallel/vtkPExtractSelectedArraysOverTime.h
@@ -31,6 +31,7 @@
 #include "vtkExtractSelectedArraysOverTime.h"
 #include "vtkFiltersParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class VTKFILTERSPARALLEL_EXPORT vtkPExtractSelectedArraysOverTime
   : public vtkExtractSelectedArraysOverTime
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkPExtractSelectedArraysOverTime&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPHyperTreeGridProbeFilter.cxx b/Filters/Parallel/vtkPHyperTreeGridProbeFilter.cxx
index b5b6e95099f2fb011867b088967cb14b26853557..1dce1a4ddda2785aca31df4d72a9c7b8cbe49d1a 100644
--- a/Filters/Parallel/vtkPHyperTreeGridProbeFilter.cxx
+++ b/Filters/Parallel/vtkPHyperTreeGridProbeFilter.cxx
@@ -36,6 +36,7 @@
 #include <numeric>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkPHyperTreeGridProbeFilter);
 
@@ -148,3 +149,4 @@ bool vtkPHyperTreeGridProbeFilter::Reduce(
   }
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPHyperTreeGridProbeFilter.h b/Filters/Parallel/vtkPHyperTreeGridProbeFilter.h
index 5eceafc6c46283d4d37898fc5da85524320a36f7..062759a2c690e5a43cbd5e23e16381fdd30cc101 100644
--- a/Filters/Parallel/vtkPHyperTreeGridProbeFilter.h
+++ b/Filters/Parallel/vtkPHyperTreeGridProbeFilter.h
@@ -34,6 +34,7 @@
 #include "vtkHyperTreeGridProbeFilter.h"
 #include "vtkSmartPointer.h" //For Locator member
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class vtkIdList;
 class vtkDataSet;
@@ -93,4 +94,5 @@ private:
 
 }; // vtkPHyperTreeGridProbeFilter
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPHyperTreeGridProbeFilter_h
diff --git a/Filters/Parallel/vtkPKdTree.cxx b/Filters/Parallel/vtkPKdTree.cxx
index 5afcc5b316259a4a44a285a527bdcf12f2e412ca..74cbee8be7d5c1f560abfa8ac15f5d272e0ded7d 100644
--- a/Filters/Parallel/vtkPKdTree.cxx
+++ b/Filters/Parallel/vtkPKdTree.cxx
@@ -39,6 +39,7 @@
 #include <cassert>
 #include <queue>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 class TimeLog // Similar to vtkTimerLogScope, but can be disabled at runtime.
@@ -3785,3 +3786,4 @@ void vtkPKdTree::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "NextPtArray: " << this->NextPtArray << endl;
   os << indent << "SelectBuffer (size): " << this->SelectBuffer.size() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPKdTree.h b/Filters/Parallel/vtkPKdTree.h
index a0267456f0ca4df6d7f8fff714d23165747d5ad3..bd15e4a2bbef79fda5ce9e4e3f3d8f465f702f89 100644
--- a/Filters/Parallel/vtkPKdTree.h
+++ b/Filters/Parallel/vtkPKdTree.h
@@ -48,6 +48,7 @@
 #include <string> // Instead of using char*
 #include <vector> // For automatic array memory management
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class vtkCommunicator;
 class vtkSubGroup;
@@ -477,4 +478,5 @@ private:
   void operator=(const vtkPKdTree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPLinearExtrusionFilter.cxx b/Filters/Parallel/vtkPLinearExtrusionFilter.cxx
index 913953b0c93a28e48dba1e83016b9c09ed60a9b7..c48cb00f5d34cfc377055beb4b2e5317b6af482f 100644
--- a/Filters/Parallel/vtkPLinearExtrusionFilter.cxx
+++ b/Filters/Parallel/vtkPLinearExtrusionFilter.cxx
@@ -20,6 +20,7 @@
 #include "vtkPolyData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPLinearExtrusionFilter);
 
 //------------------------------------------------------------------------------
@@ -76,3 +77,4 @@ void vtkPLinearExtrusionFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "PieceInvariant: " << this->PieceInvariant << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPLinearExtrusionFilter.h b/Filters/Parallel/vtkPLinearExtrusionFilter.h
index 707307f0fc32656d717353df18f93ecadadba815..d76dc5d4ec50dc7ba6314af42689be31b2f396ae 100644
--- a/Filters/Parallel/vtkPLinearExtrusionFilter.h
+++ b/Filters/Parallel/vtkPLinearExtrusionFilter.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkLinearExtrusionFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLEL_EXPORT vtkPLinearExtrusionFilter : public vtkLinearExtrusionFilter
 {
 public:
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkPLinearExtrusionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPMaskPoints.cxx b/Filters/Parallel/vtkPMaskPoints.cxx
index 7372fe6fda0a5092dd77502106f4d29ae7faae60..5e9f4dda1a48b9f1f1f8199690ef50a94162b4bc 100644
--- a/Filters/Parallel/vtkPMaskPoints.cxx
+++ b/Filters/Parallel/vtkPMaskPoints.cxx
@@ -21,6 +21,7 @@
 #include "vtkSmartPointer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPMaskPoints);
 
 vtkCxxSetObjectMacro(vtkPMaskPoints, Controller, vtkMultiProcessController);
@@ -122,3 +123,4 @@ void vtkPMaskPoints::InternalResetController()
   this->Controller = this->OriginalController;
   this->OriginalController = nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPMaskPoints.h b/Filters/Parallel/vtkPMaskPoints.h
index 9cc15de86158b5f726ab10137a485ed50f4dcdb2..d1b52b73d795d9d14c5d6d28480ec2825d6a4817 100644
--- a/Filters/Parallel/vtkPMaskPoints.h
+++ b/Filters/Parallel/vtkPMaskPoints.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkMaskPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkPMaskPoints : public vtkMaskPoints
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkPMaskPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPMergeArrays.cxx b/Filters/Parallel/vtkPMergeArrays.cxx
index defa84de3922d6c0f4d200b53df75dc4f0a0d156..c3f3da9fad3cf8f5f1b35331a8ec3ea1797d20bf 100644
--- a/Filters/Parallel/vtkPMergeArrays.cxx
+++ b/Filters/Parallel/vtkPMergeArrays.cxx
@@ -17,6 +17,7 @@
 #include "vtkMultiProcessController.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPMergeArrays);
 
 //------------------------------------------------------------------------------
@@ -63,3 +64,4 @@ int vtkPMergeArrays::MergeDataObjectFields(vtkDataObject* input, int idx, vtkDat
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPMergeArrays.h b/Filters/Parallel/vtkPMergeArrays.h
index 9f40c001b83073e522f63f769c98cfd4ac5b0508..15fec87443c339a008d6a3571314357832f1b464 100644
--- a/Filters/Parallel/vtkPMergeArrays.h
+++ b/Filters/Parallel/vtkPMergeArrays.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkMergeArrays.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLEL_EXPORT vtkPMergeArrays : public vtkMergeArrays
 {
 public:
@@ -48,4 +49,5 @@ private:
   void operator=(const vtkPMergeArrays&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPOutlineCornerFilter.cxx b/Filters/Parallel/vtkPOutlineCornerFilter.cxx
index 1bae0a11083446db9a1ccd59eedd5e9334e634f8..45fc6abbcda2a5cee3a8aea87e082a0bc29377e8 100644
--- a/Filters/Parallel/vtkPOutlineCornerFilter.cxx
+++ b/Filters/Parallel/vtkPOutlineCornerFilter.cxx
@@ -39,6 +39,7 @@
 #include "vtkUniformGrid.h"
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPOutlineCornerFilter);
 vtkCxxSetObjectMacro(vtkPOutlineCornerFilter, Controller, vtkMultiProcessController);
 
@@ -96,3 +97,4 @@ void vtkPOutlineCornerFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CornerFactor: " << this->CornerFactor << "\n";
   os << indent << "Controller: " << this->Controller << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPOutlineCornerFilter.h b/Filters/Parallel/vtkPOutlineCornerFilter.h
index 896361471498980dbef92656d77d6b4e599141d7..84af2724b66465f78a913eb76b9f93fb8d8696c6 100644
--- a/Filters/Parallel/vtkPOutlineCornerFilter.h
+++ b/Filters/Parallel/vtkPOutlineCornerFilter.h
@@ -27,6 +27,7 @@
 
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOutlineCornerSource;
 class vtkMultiProcessController;
 class vtkAppendPolyData;
@@ -82,4 +83,5 @@ private:
   vtkPOutlineFilterInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPOutlineFilter.cxx b/Filters/Parallel/vtkPOutlineFilter.cxx
index 9c1006efa8398a5fb7698a0cc1f16fe90f6c2828..d9df3999d13b934dcc1bb6af4236b0ce48e17ab9 100644
--- a/Filters/Parallel/vtkPOutlineFilter.cxx
+++ b/Filters/Parallel/vtkPOutlineFilter.cxx
@@ -26,6 +26,7 @@
 #include "vtkPolyData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPOutlineFilter);
 vtkCxxSetObjectMacro(vtkPOutlineFilter, Controller, vtkMultiProcessController);
 
@@ -70,3 +71,4 @@ void vtkPOutlineFilter::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Controller: " << this->Controller << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPOutlineFilter.h b/Filters/Parallel/vtkPOutlineFilter.h
index 99076b9075460ac9f25c3b2f2d7a52f1e2b07243..99f59b902130879e791bae56da534f7b1d497fd7 100644
--- a/Filters/Parallel/vtkPOutlineFilter.h
+++ b/Filters/Parallel/vtkPOutlineFilter.h
@@ -26,6 +26,7 @@
 
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOutlineSource;
 class vtkMultiProcessController;
 
@@ -57,4 +58,5 @@ private:
   vtkPOutlineFilter(const vtkPOutlineFilter&) = delete;
   void operator=(const vtkPOutlineFilter&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPOutlineFilterInternals.cxx b/Filters/Parallel/vtkPOutlineFilterInternals.cxx
index 11ad71951c432521730b54e4e12eaecb00579de0..506d72a5f7817e8f3bd2364f735de7cce7101b75 100644
--- a/Filters/Parallel/vtkPOutlineFilterInternals.cxx
+++ b/Filters/Parallel/vtkPOutlineFilterInternals.cxx
@@ -32,6 +32,7 @@
 #include "vtkUniformGrid.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class AddBoundsListOperator : public vtkCommunicator::Operation
 {
   // Description:
@@ -329,3 +330,4 @@ vtkSmartPointer<vtkPolyData> vtkPOutlineFilterInternals::GenerateOutlineGeometry
   }
   return output;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPOutlineFilterInternals.h b/Filters/Parallel/vtkPOutlineFilterInternals.h
index 9a98c3cd849bdc969c3d96424fc6ac1d5672f8e9..35c32fd77a6f07c5ba9d970db6ee71c4bd41e9f5 100644
--- a/Filters/Parallel/vtkPOutlineFilterInternals.h
+++ b/Filters/Parallel/vtkPOutlineFilterInternals.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include <vector>                     // needed for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBoundingBox;
 class vtkDataObject;
 class vtkDataObjectTree;
@@ -95,5 +96,6 @@ private:
   double CornerFactor = 0.2;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkPOutlineFilterInternals.h
diff --git a/Filters/Parallel/vtkPPolyDataNormals.cxx b/Filters/Parallel/vtkPPolyDataNormals.cxx
index 3d0badf09e748deb2ad2afa29cdb80e0eab5b230..c61e0e0151f79ac08642eb57ec5af080d156cf28 100644
--- a/Filters/Parallel/vtkPPolyDataNormals.cxx
+++ b/Filters/Parallel/vtkPPolyDataNormals.cxx
@@ -20,6 +20,7 @@
 #include "vtkPolyData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPPolyDataNormals);
 
 //------------------------------------------------------------------------------
@@ -74,3 +75,4 @@ void vtkPPolyDataNormals::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "PieceInvariant: " << this->PieceInvariant << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPPolyDataNormals.h b/Filters/Parallel/vtkPPolyDataNormals.h
index f6149b7d9ffb0b23abfaa0dc54322951247a1f59..6e4f50d506b110a58dc095077b6d440561443139 100644
--- a/Filters/Parallel/vtkPPolyDataNormals.h
+++ b/Filters/Parallel/vtkPPolyDataNormals.h
@@ -24,6 +24,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkPolyDataNormals.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLEL_EXPORT vtkPPolyDataNormals : public vtkPolyDataNormals
 {
 public:
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkPPolyDataNormals&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPProbeFilter.cxx b/Filters/Parallel/vtkPProbeFilter.cxx
index 8d5259bdfe50e45d6cb265eb834c30a5316a2ed6..7bb938994c4e5a17950c3ac2e4bd20ad2538468a 100644
--- a/Filters/Parallel/vtkPProbeFilter.cxx
+++ b/Filters/Parallel/vtkPProbeFilter.cxx
@@ -26,6 +26,7 @@
 #include "vtkPolyData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPProbeFilter);
 
 vtkCxxSetObjectMacro(vtkPProbeFilter, Controller, vtkMultiProcessController);
@@ -133,8 +134,10 @@ int vtkPProbeFilter::RequestData(
   return 1;
 }
 
+VTK_ABI_NAMESPACE_END
 #include "vtkInformationIntegerVectorKey.h"
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 int vtkPProbeFilter::RequestUpdateExtent(
   vtkInformation*, vtkInformationVector** inputVector, vtkInformationVector* outputVector)
 {
@@ -186,3 +189,4 @@ void vtkPProbeFilter::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Controller " << this->Controller << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPProbeFilter.h b/Filters/Parallel/vtkPProbeFilter.h
index 4018c19602514f62d7a15a9cab5acc42c4123408..0e7cdf4a41384ba8c5b40ebbe3857d09d4c953e9 100644
--- a/Filters/Parallel/vtkPProbeFilter.h
+++ b/Filters/Parallel/vtkPProbeFilter.h
@@ -27,6 +27,7 @@
 #include "vtkCompositeDataProbeFilter.h"
 #include "vtkFiltersParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkPProbeFilter : public vtkCompositeDataProbeFilter
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkPProbeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPProjectSphereFilter.cxx b/Filters/Parallel/vtkPProjectSphereFilter.cxx
index 55c9fc76980e4d4c5dc8844d5408771fa9ea4cbf..fe238b0f9812d150cfcfb7fb6ab1297c22b747f6 100644
--- a/Filters/Parallel/vtkPProjectSphereFilter.cxx
+++ b/Filters/Parallel/vtkPProjectSphereFilter.cxx
@@ -21,6 +21,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPProjectSphereFilter);
 
 //------------------------------------------------------------------------------
@@ -69,3 +70,4 @@ double vtkPProjectSphereFilter::GetZTranslation(vtkPointSet* input)
 
   return globalMax;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPProjectSphereFilter.h b/Filters/Parallel/vtkPProjectSphereFilter.h
index 71480fdb3b18a0398e258086ddcb64cbd0a3a4fc..5ffbcd2208c681dc20752f6b9e0670be369ec0fc 100644
--- a/Filters/Parallel/vtkPProjectSphereFilter.h
+++ b/Filters/Parallel/vtkPProjectSphereFilter.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkProjectSphereFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLEL_EXPORT vtkPProjectSphereFilter : public vtkProjectSphereFilter
 {
 public:
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkPProjectSphereFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPProjectSphereFilter_h
diff --git a/Filters/Parallel/vtkPReflectionFilter.cxx b/Filters/Parallel/vtkPReflectionFilter.cxx
index 02ff6f1adbf412342a678b52ab247df84841cf94..b4d2e2e475df4701e2ad838d47bf5948003f5d9c 100644
--- a/Filters/Parallel/vtkPReflectionFilter.cxx
+++ b/Filters/Parallel/vtkPReflectionFilter.cxx
@@ -18,6 +18,7 @@
 #include "vtkMultiProcessController.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPReflectionFilter);
 vtkCxxSetObjectMacro(vtkPReflectionFilter, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -59,3 +60,4 @@ void vtkPReflectionFilter::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Controller: " << this->Controller << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPReflectionFilter.h b/Filters/Parallel/vtkPReflectionFilter.h
index 1c6f3deb367997fcc2fbfce93c2969c18524dd9c..3e29ea353de273fc7f06041b8657041bbbfb042d 100644
--- a/Filters/Parallel/vtkPReflectionFilter.h
+++ b/Filters/Parallel/vtkPReflectionFilter.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkReflectionFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkPReflectionFilter : public vtkReflectionFilter
@@ -59,4 +60,5 @@ private:
   void operator=(const vtkPReflectionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPResampleFilter.cxx b/Filters/Parallel/vtkPResampleFilter.cxx
index be82101b7fac372a4dda61e4a28740c76ac7adb6..5fcbed481427b2106f64c54d9c35d6a21363ab94 100644
--- a/Filters/Parallel/vtkPResampleFilter.cxx
+++ b/Filters/Parallel/vtkPResampleFilter.cxx
@@ -30,6 +30,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPResampleFilter);
 
 vtkCxxSetObjectMacro(vtkPResampleFilter, Controller, vtkMultiProcessController);
@@ -190,3 +191,4 @@ void vtkPResampleFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "SamplingDimension " << this->SamplingDimension[0] << " x "
      << this->SamplingDimension[1] << " x " << this->SamplingDimension[2] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPResampleFilter.h b/Filters/Parallel/vtkPResampleFilter.h
index c6134256dbd213c069473444de6f5af49208d750..8b1c031600cb369d11de99dc4a575a99819701be 100644
--- a/Filters/Parallel/vtkPResampleFilter.h
+++ b/Filters/Parallel/vtkPResampleFilter.h
@@ -24,6 +24,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkPResampleFilter : public vtkImageAlgorithm
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkPResampleFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPSphereSource.cxx b/Filters/Parallel/vtkPSphereSource.cxx
index 4c9cef5dec9498c41f5d5c8ca1dfa0b395c6f0a9..65fc450985f89d335349b68402ae33587213757c 100644
--- a/Filters/Parallel/vtkPSphereSource.cxx
+++ b/Filters/Parallel/vtkPSphereSource.cxx
@@ -28,6 +28,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPSphereSource);
 
 //------------------------------------------------------------------------------
@@ -275,3 +276,4 @@ void vtkPSphereSource::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPSphereSource.h b/Filters/Parallel/vtkPSphereSource.h
index 57602f0d010c74537674f18ee63261936f5917f1..98a1c9c0eaf6b4da162f889656629d42a4568b71 100644
--- a/Filters/Parallel/vtkPSphereSource.h
+++ b/Filters/Parallel/vtkPSphereSource.h
@@ -23,6 +23,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkSphereSource.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLEL_EXPORT vtkPSphereSource : public vtkSphereSource
 {
 public:
@@ -53,4 +54,5 @@ private:
   void operator=(const vtkPSphereSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPTextureMapToSphere.cxx b/Filters/Parallel/vtkPTextureMapToSphere.cxx
index 3b8750f59ba7cc47d7b7847a5f2df6634c67c2df..ed9f0c5671188bfb76f3e2c9af7ef774494b2721 100644
--- a/Filters/Parallel/vtkPTextureMapToSphere.cxx
+++ b/Filters/Parallel/vtkPTextureMapToSphere.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkTextureMapToSphere.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPTextureMapToSphere);
 vtkCxxSetObjectMacro(vtkPTextureMapToSphere, Controller, vtkMultiProcessController);
 
@@ -84,3 +85,4 @@ void vtkPTextureMapToSphere::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Controller: (none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPTextureMapToSphere.h b/Filters/Parallel/vtkPTextureMapToSphere.h
index 27f3fb9d32846bba28100e4834cfe09a9df90beb..d1371ea88a605a12060ba69558b7655a4bc63e9d 100644
--- a/Filters/Parallel/vtkPTextureMapToSphere.h
+++ b/Filters/Parallel/vtkPTextureMapToSphere.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkTextureMapToSphere.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkMultiProcessController;
 
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkPTextureMapToSphere&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPYoungsMaterialInterface.cxx b/Filters/Parallel/vtkPYoungsMaterialInterface.cxx
index 4581135f296500351db3a1df5153bd4e7ef48cc9..09c2179dac3a5a03c34f26e50985e395a82ea230 100644
--- a/Filters/Parallel/vtkPYoungsMaterialInterface.cxx
+++ b/Filters/Parallel/vtkPYoungsMaterialInterface.cxx
@@ -25,6 +25,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkMultiProcessController.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPYoungsMaterialInterface);
 vtkCxxSetObjectMacro(vtkPYoungsMaterialInterface, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -96,3 +97,4 @@ void vtkPYoungsMaterialInterface::Aggregate(int nmat, int* inputsPerMaterial)
   }
   delete[] tmp;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPYoungsMaterialInterface.h b/Filters/Parallel/vtkPYoungsMaterialInterface.h
index 09636015fbba2976a91065e16f44f85fb36c8173..ec45ef5a0211003d945c65013b092b8b2992b4ae 100644
--- a/Filters/Parallel/vtkPYoungsMaterialInterface.h
+++ b/Filters/Parallel/vtkPYoungsMaterialInterface.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkYoungsMaterialInterface.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkPYoungsMaterialInterface : public vtkYoungsMaterialInterface
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkPYoungsMaterialInterface&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTK_PYOUNGS_MATERIAL_INTERFACE_H */
diff --git a/Filters/Parallel/vtkPartitionBalancer.cxx b/Filters/Parallel/vtkPartitionBalancer.cxx
index 6f4372e705e5499196c5b9a986c172fec5b1ee2f..fd885f003dbe3329590290d3c0a780ca204aa5b9 100644
--- a/Filters/Parallel/vtkPartitionBalancer.cxx
+++ b/Filters/Parallel/vtkPartitionBalancer.cxx
@@ -30,6 +30,7 @@
 #include <numeric>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPartitionBalancer);
 vtkCxxSetObjectMacro(vtkPartitionBalancer, Controller, vtkMultiProcessController);
 
@@ -138,3 +139,4 @@ void vtkPartitionBalancer::PrintSelf(ostream& os, vtkIndent indent)
       break;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPartitionBalancer.h b/Filters/Parallel/vtkPartitionBalancer.h
index 0351a12db36291cc76463a3b765114b5ddca5817..6ecb91087c79cf54b3a3495b9c9a251ddde8f01a 100644
--- a/Filters/Parallel/vtkPartitionBalancer.h
+++ b/Filters/Parallel/vtkPartitionBalancer.h
@@ -65,6 +65,7 @@
 #include "vtkFiltersParallelModule.h" // for export macros
 #include "vtkPartitionedDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkPartitionBalancer : public vtkPartitionedDataSetAlgorithm
@@ -148,4 +149,5 @@ private:
   void operator=(const vtkPartitionBalancer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPeriodicFilter.cxx b/Filters/Parallel/vtkPeriodicFilter.cxx
index ad9594b49bb7af92d92f055d9c04823da91532ac..75fd8c4932ace93dcecbc2d4c104c818a5e11242 100644
--- a/Filters/Parallel/vtkPeriodicFilter.cxx
+++ b/Filters/Parallel/vtkPeriodicFilter.cxx
@@ -23,6 +23,7 @@
 #include "vtkMultiProcessController.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkPeriodicFilter::vtkPeriodicFilter()
 {
   this->IterationMode = VTK_ITERATION_MODE_MAX;
@@ -171,3 +172,4 @@ int vtkPeriodicFilter::RequestData(vtkInformation* vtkNotUsed(request),
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPeriodicFilter.h b/Filters/Parallel/vtkPeriodicFilter.h
index ad08e2b7d7d094c7a23a0fa59a3f6f44769a4e85..53867cd0fab50d17263ccdb0348609d15fe2a771 100644
--- a/Filters/Parallel/vtkPeriodicFilter.h
+++ b/Filters/Parallel/vtkPeriodicFilter.h
@@ -41,6 +41,7 @@
 #include <set>    // For block selection
 #include <vector> // For pieces number
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataIterator;
 class vtkCompositeDataSet;
 class vtkDataObjectTreeIterator;
@@ -130,4 +131,5 @@ private:
   std::set<vtkIdType> Indices; // Selected indices
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPieceRequestFilter.cxx b/Filters/Parallel/vtkPieceRequestFilter.cxx
index 3308785164c795061b83ec057bc00bc66d4b95dc..257422fe55cd3b8a2afdb4160b46a4e7a8dbebdd 100644
--- a/Filters/Parallel/vtkPieceRequestFilter.cxx
+++ b/Filters/Parallel/vtkPieceRequestFilter.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPieceRequestFilter);
 
 //------------------------------------------------------------------------------
@@ -152,3 +153,4 @@ void vtkPieceRequestFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "NumberOfPieces: " << this->NumberOfPieces << endl;
   os << indent << "Piece: " << this->Piece << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPieceRequestFilter.h b/Filters/Parallel/vtkPieceRequestFilter.h
index c1e2f8ccb3f8b023957192023188deba8fd935f0..b1f099b5c3ecf16b839ebeac26ab1f0fcd51213b 100644
--- a/Filters/Parallel/vtkPieceRequestFilter.h
+++ b/Filters/Parallel/vtkPieceRequestFilter.h
@@ -26,6 +26,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkFiltersParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 
 class VTKFILTERSPARALLEL_EXPORT vtkPieceRequestFilter : public vtkAlgorithm
@@ -95,4 +96,5 @@ private:
   void operator=(const vtkPieceRequestFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPieceScalars.cxx b/Filters/Parallel/vtkPieceScalars.cxx
index daf88604f35ea571ee2cb27d3206eee373cfe3c2..b004bcb273bd5edca122ff288a964e2e59acd388 100644
--- a/Filters/Parallel/vtkPieceScalars.cxx
+++ b/Filters/Parallel/vtkPieceScalars.cxx
@@ -25,6 +25,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPieceScalars);
 
 //------------------------------------------------------------------------------
@@ -137,3 +138,4 @@ void vtkPieceScalars::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "ScalarMode: PointData\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPieceScalars.h b/Filters/Parallel/vtkPieceScalars.h
index 34e4213bffa39be6fcf2e2242a1ad3679aa47e77..c58bb1ecfc29e6305d19210b1d793b1e8f767035 100644
--- a/Filters/Parallel/vtkPieceScalars.h
+++ b/Filters/Parallel/vtkPieceScalars.h
@@ -31,6 +31,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 class vtkIntArray;
 
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkPieceScalars&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkPipelineSize.cxx b/Filters/Parallel/vtkPipelineSize.cxx
index 000b82a85655c711dc783c8f9b5e0340b80b3bfa..370a6a98e8f54d454bf8ad9946ca6879876408b9 100644
--- a/Filters/Parallel/vtkPipelineSize.cxx
+++ b/Filters/Parallel/vtkPipelineSize.cxx
@@ -29,6 +29,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtksys/FStream.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPipelineSize);
 
 // Returns size in kibibytes (1024 bytes)
@@ -360,3 +361,4 @@ void vtkPipelineSize::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkPipelineSize.h b/Filters/Parallel/vtkPipelineSize.h
index 7c47506c7209e0f37fde933190e278dc46a26cc9..af6e8c9fbd250c87618863f279a51e26b2d7bbd9 100644
--- a/Filters/Parallel/vtkPipelineSize.h
+++ b/Filters/Parallel/vtkPipelineSize.h
@@ -22,6 +22,7 @@
 
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkObject.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithm;
 
 class VTKFILTERSPARALLEL_EXPORT vtkPipelineSize : public vtkObject
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkPipelineSize&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkProcessIdScalars.cxx b/Filters/Parallel/vtkProcessIdScalars.cxx
index dea3a388802455ca06c61459b07781e6bd295267..29f49174ea923fc59f836ab6b16d22d52808fe04 100644
--- a/Filters/Parallel/vtkProcessIdScalars.cxx
+++ b/Filters/Parallel/vtkProcessIdScalars.cxx
@@ -26,6 +26,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProcessIdScalars);
 
 vtkCxxSetObjectMacro(vtkProcessIdScalars, Controller, vtkMultiProcessController);
@@ -163,3 +164,4 @@ void vtkProcessIdScalars::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkProcessIdScalars.h b/Filters/Parallel/vtkProcessIdScalars.h
index 462627274988f4725c174184f3b8c909f9e0f9c5..8f4fa60142c2d88743dcc1c7f04553c60a2df27f 100644
--- a/Filters/Parallel/vtkProcessIdScalars.h
+++ b/Filters/Parallel/vtkProcessIdScalars.h
@@ -31,6 +31,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 class vtkIntArray;
 class vtkMultiProcessController;
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkProcessIdScalars&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkRectilinearGridOutlineFilter.cxx b/Filters/Parallel/vtkRectilinearGridOutlineFilter.cxx
index 796300bf0894bb5fc9c425ca1196dd9be9df9735..7309738654ab24505f3371dd31a3a882fec6052f 100644
--- a/Filters/Parallel/vtkRectilinearGridOutlineFilter.cxx
+++ b/Filters/Parallel/vtkRectilinearGridOutlineFilter.cxx
@@ -22,6 +22,7 @@
 #include "vtkRectilinearGrid.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearGridOutlineFilter);
 
 int vtkRectilinearGridOutlineFilter::RequestData(vtkInformation* vtkNotUsed(request),
@@ -252,3 +253,4 @@ void vtkRectilinearGridOutlineFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkRectilinearGridOutlineFilter.h b/Filters/Parallel/vtkRectilinearGridOutlineFilter.h
index 0c47d6df337922ddec11b661a51d9fd89fb47945..53c3a11a117e2a7309634e8bdb9e6f941f3753c3 100644
--- a/Filters/Parallel/vtkRectilinearGridOutlineFilter.h
+++ b/Filters/Parallel/vtkRectilinearGridOutlineFilter.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLEL_EXPORT vtkRectilinearGridOutlineFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -46,4 +47,5 @@ private:
   void operator=(const vtkRectilinearGridOutlineFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkRemoveGhosts.cxx b/Filters/Parallel/vtkRemoveGhosts.cxx
index ec5ef6801019c7518c523ad93c92c8cedfe5a392..555d9a26f1f9e0cf093da17314b6f0191286edc6 100644
--- a/Filters/Parallel/vtkRemoveGhosts.cxx
+++ b/Filters/Parallel/vtkRemoveGhosts.cxx
@@ -27,6 +27,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRemoveGhosts);
 
 //------------------------------------------------------------------------------
@@ -106,3 +107,4 @@ int vtkRemoveGhosts::FillInputPortInformation(int vtkNotUsed(port), vtkInformati
   info->Append(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkUnstructuredGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkRemoveGhosts.h b/Filters/Parallel/vtkRemoveGhosts.h
index 2abe8d26d6748d3a877f60f81784f502d0b78ced..373f59c48ac25eed7ba4ec761fb46fcca4edd943 100644
--- a/Filters/Parallel/vtkRemoveGhosts.h
+++ b/Filters/Parallel/vtkRemoveGhosts.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkUnsignedCharArray;
 
@@ -54,4 +55,5 @@ private:
   void operator=(const vtkRemoveGhosts&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif //_vtkRemoveGhosts_h
diff --git a/Filters/Parallel/vtkTransmitPolyDataPiece.cxx b/Filters/Parallel/vtkTransmitPolyDataPiece.cxx
index b3f050706f7146e77633b2892e09d4d0cb2d1fc8..6f86a1eca73f2571f2967cb9dbdf4cf88ed926ec 100644
--- a/Filters/Parallel/vtkTransmitPolyDataPiece.cxx
+++ b/Filters/Parallel/vtkTransmitPolyDataPiece.cxx
@@ -24,6 +24,7 @@
 #include "vtkPolyData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransmitPolyDataPiece);
 
 vtkCxxSetObjectMacro(vtkTransmitPolyDataPiece, Controller, vtkMultiProcessController);
@@ -147,3 +148,4 @@ void vtkTransmitPolyDataPiece::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Controller: (" << this->Controller << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkTransmitPolyDataPiece.h b/Filters/Parallel/vtkTransmitPolyDataPiece.h
index 977584232f3f8b314879c1039bcad202dd17007c..6d7c8fbf017faa3ac83243364082913d4d6219e7 100644
--- a/Filters/Parallel/vtkTransmitPolyDataPiece.h
+++ b/Filters/Parallel/vtkTransmitPolyDataPiece.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkTransmitPolyDataPiece : public vtkPolyDataAlgorithm
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkTransmitPolyDataPiece&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkTransmitRectilinearGridPiece.cxx b/Filters/Parallel/vtkTransmitRectilinearGridPiece.cxx
index c3af92aaca9b416df87337fd02720f4e969a241c..e447e8ebc7f8c8bd58df5cc5ea3e815fb9030fd2 100644
--- a/Filters/Parallel/vtkTransmitRectilinearGridPiece.cxx
+++ b/Filters/Parallel/vtkTransmitRectilinearGridPiece.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransmitRectilinearGridPiece);
 
 //------------------------------------------------------------------------------
@@ -29,3 +30,4 @@ void vtkTransmitRectilinearGridPiece::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkTransmitRectilinearGridPiece.h b/Filters/Parallel/vtkTransmitRectilinearGridPiece.h
index e9376e3b993cf5b3e40b3f2741a6096fd5bf9ee7..4c6ebf8734b8d23fa5304739086cce0995a2a11f 100644
--- a/Filters/Parallel/vtkTransmitRectilinearGridPiece.h
+++ b/Filters/Parallel/vtkTransmitRectilinearGridPiece.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkTransmitStructuredDataPiece.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkTransmitRectilinearGridPiece
@@ -51,4 +52,5 @@ private:
   void operator=(const vtkTransmitRectilinearGridPiece&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkTransmitStructuredDataPiece.cxx b/Filters/Parallel/vtkTransmitStructuredDataPiece.cxx
index 2a04e234bd1ccaf2b2ea28e91f9e7056ae8c1cd1..36897efc83ab524ec69eba9869cb91faefd5b466 100644
--- a/Filters/Parallel/vtkTransmitStructuredDataPiece.cxx
+++ b/Filters/Parallel/vtkTransmitStructuredDataPiece.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransmitStructuredDataPiece);
 
 vtkCxxSetObjectMacro(vtkTransmitStructuredDataPiece, Controller, vtkMultiProcessController);
@@ -199,3 +200,4 @@ void vtkTransmitStructuredDataPiece::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Controller: (" << this->Controller << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkTransmitStructuredDataPiece.h b/Filters/Parallel/vtkTransmitStructuredDataPiece.h
index af3d5c36324137e15a600450e6cb085db2f77f59..3dd0d39eb8c91c5930c21878d72a2fd5629228c7 100644
--- a/Filters/Parallel/vtkTransmitStructuredDataPiece.h
+++ b/Filters/Parallel/vtkTransmitStructuredDataPiece.h
@@ -29,6 +29,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkTransmitStructuredDataPiece : public vtkDataSetAlgorithm
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkTransmitStructuredDataPiece&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkTransmitStructuredGridPiece.cxx b/Filters/Parallel/vtkTransmitStructuredGridPiece.cxx
index c94ace7d75197f125138a5d8bfeb3ffb1a7ab2ac..bf2fb2e6c6a0ea15a40d03f6f4ed88320e6a7a42 100644
--- a/Filters/Parallel/vtkTransmitStructuredGridPiece.cxx
+++ b/Filters/Parallel/vtkTransmitStructuredGridPiece.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransmitStructuredGridPiece);
 
 //------------------------------------------------------------------------------
@@ -29,3 +30,4 @@ void vtkTransmitStructuredGridPiece::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkTransmitStructuredGridPiece.h b/Filters/Parallel/vtkTransmitStructuredGridPiece.h
index 137f3eb797256b1da96f6f008f89ccdfdcab00d0..a5b14d12f9d95407824c80092abda953292565aa 100644
--- a/Filters/Parallel/vtkTransmitStructuredGridPiece.h
+++ b/Filters/Parallel/vtkTransmitStructuredGridPiece.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkTransmitStructuredDataPiece.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkTransmitStructuredGridPiece
@@ -51,4 +52,5 @@ private:
   void operator=(const vtkTransmitStructuredGridPiece&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Parallel/vtkTransmitUnstructuredGridPiece.cxx b/Filters/Parallel/vtkTransmitUnstructuredGridPiece.cxx
index ecfc9df06d0eac4625af51eb285971aa2eb8ce90..63815e44420ecca20f202a077d7d5ee91d44fbb9 100644
--- a/Filters/Parallel/vtkTransmitUnstructuredGridPiece.cxx
+++ b/Filters/Parallel/vtkTransmitUnstructuredGridPiece.cxx
@@ -24,6 +24,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransmitUnstructuredGridPiece);
 
 vtkCxxSetObjectMacro(vtkTransmitUnstructuredGridPiece, Controller, vtkMultiProcessController);
@@ -174,3 +175,4 @@ void vtkTransmitUnstructuredGridPiece::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Controller: (" << this->Controller << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Parallel/vtkTransmitUnstructuredGridPiece.h b/Filters/Parallel/vtkTransmitUnstructuredGridPiece.h
index 99195e9b406797c45977fbd78ee79c5011e7f1c1..13d347c4efc635fd6f9263d68ead3d890b40ad40 100644
--- a/Filters/Parallel/vtkTransmitUnstructuredGridPiece.h
+++ b/Filters/Parallel/vtkTransmitUnstructuredGridPiece.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersParallelModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLEL_EXPORT vtkTransmitUnstructuredGridPiece
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkTransmitUnstructuredGridPiece&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelDIY2/vtkAdaptiveResampleToImage.cxx b/Filters/ParallelDIY2/vtkAdaptiveResampleToImage.cxx
index eb11d794dc2c0b1861d757ab30dcbec76f2b90a2..578cf26bececf003caba0d329a46259e5c51a4a7 100644
--- a/Filters/ParallelDIY2/vtkAdaptiveResampleToImage.cxx
+++ b/Filters/ParallelDIY2/vtkAdaptiveResampleToImage.cxx
@@ -46,6 +46,7 @@
 
 namespace impl
 {
+VTK_ABI_NAMESPACE_BEGIN
 vtkUnsignedCharArray* get_mask_array(vtkDataSetAttributes* dsa)
 {
   return vtkUnsignedCharArray::SafeDownCast(dsa->GetArray(vtkDataSetAttributes::GhostArrayName()));
@@ -161,8 +162,10 @@ bool merge(vtkImageData* target, std::vector<vtkSmartPointer<vtkImageData>>& sou
   }
   return true;
 }
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAdaptiveResampleToImage);
 vtkCxxSetObjectMacro(vtkAdaptiveResampleToImage, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -315,3 +318,4 @@ void vtkAdaptiveResampleToImage::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "SamplingDimensions: " << this->SamplingDimensions[0] << ", "
      << this->SamplingDimensions[1] << ", " << this->SamplingDimensions[2] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelDIY2/vtkAdaptiveResampleToImage.h b/Filters/ParallelDIY2/vtkAdaptiveResampleToImage.h
index 311d23b8652977ec61ab1578a9ebd2f9c1e3d633..b35abf239efc52d23a54a12ed4d260816f78cac2 100644
--- a/Filters/ParallelDIY2/vtkAdaptiveResampleToImage.h
+++ b/Filters/ParallelDIY2/vtkAdaptiveResampleToImage.h
@@ -50,6 +50,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersParallelDIY2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLELDIY2_EXPORT vtkAdaptiveResampleToImage : public vtkDataObjectAlgorithm
@@ -104,4 +105,5 @@ private:
   int SamplingDimensions[3];
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelDIY2/vtkDIYAggregateDataSetFilter.cxx b/Filters/ParallelDIY2/vtkDIYAggregateDataSetFilter.cxx
index 67b4fec1a156ee69fd26f6435b4de62091544703..54c19839b41d23a6deccffa65a9962bed294455f 100644
--- a/Filters/ParallelDIY2/vtkDIYAggregateDataSetFilter.cxx
+++ b/Filters/ParallelDIY2/vtkDIYAggregateDataSetFilter.cxx
@@ -56,6 +56,7 @@
 #include VTK_DIY2(diy/decomposition.hpp)
 // clang-format on
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDIYAggregateDataSetFilter);
 
 namespace
@@ -691,3 +692,4 @@ void vtkDIYAggregateDataSetFilter::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "OutputInitialized: " << this->OutputInitialized << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelDIY2/vtkDIYAggregateDataSetFilter.h b/Filters/ParallelDIY2/vtkDIYAggregateDataSetFilter.h
index 3358ef1910587a9f35e0d48d8d50217bffed3cfb..bba9695ab29d694c9a6a481631f40c15d528e14a 100644
--- a/Filters/ParallelDIY2/vtkDIYAggregateDataSetFilter.h
+++ b/Filters/ParallelDIY2/vtkDIYAggregateDataSetFilter.h
@@ -29,6 +29,7 @@
 #include <string> // For passing computed data between methods
 #include <vector> // For passing computed data between methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 class vtkIdList;
 
@@ -114,4 +115,5 @@ private:
   bool OutputInitialized;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelDIY2/vtkDIYKdTreeUtilities.cxx b/Filters/ParallelDIY2/vtkDIYKdTreeUtilities.cxx
index 1610e5ea6577e0e3527c90b48b3141c724532fec..11950962ffb3cc84d91fe355aa794921e122619c 100644
--- a/Filters/ParallelDIY2/vtkDIYKdTreeUtilities.cxx
+++ b/Filters/ParallelDIY2/vtkDIYKdTreeUtilities.cxx
@@ -50,6 +50,7 @@
 #include VTK_DIY2(diy/algorithms.hpp)
 // clang-format on
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 struct PointTT
@@ -590,3 +591,4 @@ void vtkDIYKdTreeUtilities::ResizeCuts(std::vector<vtkBoundingBox>& cuts, int si
   cuts.swap(new_cuts);
   assert(static_cast<int>(cuts.size()) == size);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelDIY2/vtkDIYKdTreeUtilities.h b/Filters/ParallelDIY2/vtkDIYKdTreeUtilities.h
index a7e26d42f50a51e559ce31fbed5ecdbfd17ede65..ea551ebe0f6bad42a0fc4d06a31c20bf60722139 100644
--- a/Filters/ParallelDIY2/vtkDIYKdTreeUtilities.h
+++ b/Filters/ParallelDIY2/vtkDIYKdTreeUtilities.h
@@ -33,6 +33,7 @@
 #include <memory> // for std::shared_ptr
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 class vtkDataSet;
 class vtkIntArray;
@@ -158,4 +159,5 @@ private:
   void operator=(const vtkDIYKdTreeUtilities&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelDIY2/vtkExtractSubsetWithSeed.cxx b/Filters/ParallelDIY2/vtkExtractSubsetWithSeed.cxx
index 7b3e036394e597453ba90ee3ace3c19c2c78f624..0cf76435a161e548210e07be75fb131f9a59a8ca 100644
--- a/Filters/ParallelDIY2/vtkExtractSubsetWithSeed.cxx
+++ b/Filters/ParallelDIY2/vtkExtractSubsetWithSeed.cxx
@@ -57,6 +57,7 @@
 #include <functional>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T, int Size>
 bool operator<(const vtkVector<T, Size>& lhs, const vtkVector<T, Size>& rhs)
 {
@@ -785,3 +786,4 @@ int vtkExtractSubsetWithSeed::RequestInformation(
   info->Remove(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT());
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelDIY2/vtkExtractSubsetWithSeed.h b/Filters/ParallelDIY2/vtkExtractSubsetWithSeed.h
index 2e3418a79e6f752e39337503169c6862e81e76b8..b02306fbf29c65a3e766d1f289a98076eb0c44e7 100644
--- a/Filters/ParallelDIY2/vtkExtractSubsetWithSeed.h
+++ b/Filters/ParallelDIY2/vtkExtractSubsetWithSeed.h
@@ -36,6 +36,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersParallelDIY2Module.h" // for export macros
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLELDIY2_EXPORT vtkExtractSubsetWithSeed : public vtkDataObjectAlgorithm
@@ -106,4 +107,5 @@ private:
   vtkMultiProcessController* Controller = nullptr;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelDIY2/vtkGenerateGlobalIds.cxx b/Filters/ParallelDIY2/vtkGenerateGlobalIds.cxx
index 8d5fa3c512d63a58122af34a7796577feac33350..fff4a1a7f7fec21009dadbc8a6e3a35920ff18ba 100644
--- a/Filters/ParallelDIY2/vtkGenerateGlobalIds.cxx
+++ b/Filters/ParallelDIY2/vtkGenerateGlobalIds.cxx
@@ -58,6 +58,7 @@
 
 namespace impl
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 static vtkBoundingBox AllReduceBounds(
   diy::mpi::communicator& comm, std::vector<vtkSmartPointer<vtkPoints>> points)
@@ -231,6 +232,7 @@ static bool GenerateIds(vtkDataObject* dobj, vtkGenerateGlobalIds* self, bool ce
   self->UpdateProgress(1.0);
   return true;
 }
+VTK_ABI_NAMESPACE_END
 }
 
 namespace
@@ -702,6 +704,8 @@ struct Serialization<::CellTT>
 };
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 vtkStandardNewMacro(vtkGenerateGlobalIds);
 vtkCxxSetObjectMacro(vtkGenerateGlobalIds, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -761,3 +765,4 @@ void vtkGenerateGlobalIds::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Controller: " << this->Controller << endl;
   os << indent << "Tolerance: " << this->Tolerance << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelDIY2/vtkGenerateGlobalIds.h b/Filters/ParallelDIY2/vtkGenerateGlobalIds.h
index 6ed3921de56662c65e99466c13b2495f099f2240..7f22b7166a30fc9c7abab3abd9682851dc690318 100644
--- a/Filters/ParallelDIY2/vtkGenerateGlobalIds.h
+++ b/Filters/ParallelDIY2/vtkGenerateGlobalIds.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersParallelDIY2Module.h" // for export macros
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLELDIY2_EXPORT vtkGenerateGlobalIds : public vtkPassInputTypeAlgorithm
@@ -71,4 +72,5 @@ private:
   double Tolerance;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelDIY2/vtkGhostCellsGenerator.cxx b/Filters/ParallelDIY2/vtkGhostCellsGenerator.cxx
index 81ce58c976f98f7e95157903db52f8cb239ab5f2..9c2ae36e7315a1d278417a0121e6c9139d28a331 100644
--- a/Filters/ParallelDIY2/vtkGhostCellsGenerator.cxx
+++ b/Filters/ParallelDIY2/vtkGhostCellsGenerator.cxx
@@ -40,6 +40,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGhostCellsGenerator);
 vtkCxxSetObjectMacro(vtkGhostCellsGenerator, Controller, vtkMultiProcessController);
 
@@ -225,3 +226,4 @@ void vtkGhostCellsGenerator::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Controller: " << this->Controller << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelDIY2/vtkGhostCellsGenerator.h b/Filters/ParallelDIY2/vtkGhostCellsGenerator.h
index 96c75cc51c5d30f148a81463e8fc905ab6a61fa5..da220c8a0b2528d9654c58bfdb75b59ccb6f08d8 100644
--- a/Filters/ParallelDIY2/vtkGhostCellsGenerator.h
+++ b/Filters/ParallelDIY2/vtkGhostCellsGenerator.h
@@ -79,6 +79,7 @@
 #include "vtkFiltersParallelDIY2Module.h" // for export macros
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLELDIY2_EXPORT vtkGhostCellsGenerator : public vtkPassInputTypeAlgorithm
@@ -150,4 +151,5 @@ private:
   void operator=(const vtkGhostCellsGenerator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelDIY2/vtkOverlappingCellsDetector.cxx b/Filters/ParallelDIY2/vtkOverlappingCellsDetector.cxx
index 50fdbb5a505396218ef54366886f49b3ee35f7ec..94bbcfd1021ba0d02c955576a3066cc74646bac1 100644
--- a/Filters/ParallelDIY2/vtkOverlappingCellsDetector.cxx
+++ b/Filters/ParallelDIY2/vtkOverlappingCellsDetector.cxx
@@ -64,6 +64,7 @@
 #include VTK_DIY2(diy/assigner.hpp)
 // clang-format on
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 constexpr char SPHERE_RADIUS_ARRAY_NAME[21] = "SphereRadius";
@@ -835,3 +836,4 @@ void vtkOverlappingCellsDetector::PrintSelf(ostream& os, vtkIndent indent)
      << std::endl;
   os << indent << "Tolerance: " << this->Tolerance << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelDIY2/vtkOverlappingCellsDetector.h b/Filters/ParallelDIY2/vtkOverlappingCellsDetector.h
index a374026dddcea7eb3c4b1eb6900313fc2e1a5669..4cae8d26776eb6d2ddef9933eec097c261da9e79 100644
--- a/Filters/ParallelDIY2/vtkOverlappingCellsDetector.h
+++ b/Filters/ParallelDIY2/vtkOverlappingCellsDetector.h
@@ -56,6 +56,7 @@
 #include <unordered_map> // For DetectOverlappingCells
 #include <vector>        // For DetectOverlappingCells
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkMultiProcessController;
 class vtkPointSet;
@@ -161,4 +162,5 @@ private:
   void operator=(const vtkOverlappingCellsDetector&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelDIY2/vtkPResampleToImage.cxx b/Filters/ParallelDIY2/vtkPResampleToImage.cxx
index 66442950495e03d6cdb2f34799841177224c2ff8..e70f7cf7a63849e73cd9b58283ea76d70e7693a6 100644
--- a/Filters/ParallelDIY2/vtkPResampleToImage.cxx
+++ b/Filters/ParallelDIY2/vtkPResampleToImage.cxx
@@ -49,9 +49,11 @@
 #include <algorithm>
 #include <iterator>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPResampleToImage);
 
 vtkCxxSetObjectMacro(vtkPResampleToImage, Controller, vtkMultiProcessController);
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -426,6 +428,7 @@ void Redistribute(
 
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkPResampleToImage::vtkPResampleToImage()
   : Controller(nullptr)
@@ -532,6 +535,7 @@ int vtkPResampleToImage::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
 
 //------------------------------------------------------------------------------
 namespace diy
diff --git a/Filters/ParallelDIY2/vtkPResampleToImage.h b/Filters/ParallelDIY2/vtkPResampleToImage.h
index 648fd47fde307d4ad555aa8e8b9394b9a8395fdc..220367f4e0432ba245652be254574372eb8a4f2b 100644
--- a/Filters/ParallelDIY2/vtkPResampleToImage.h
+++ b/Filters/ParallelDIY2/vtkPResampleToImage.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersParallelDIY2Module.h" // For export macro
 #include "vtkResampleToImage.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkImageData;
 class vtkMultiProcessController;
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkPResampleToImage&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelDIY2/vtkPResampleWithDataSet.cxx b/Filters/ParallelDIY2/vtkPResampleWithDataSet.cxx
index 7c6f6884c2001acada38b7c1525d7af2ff1fa98d..a1e18137911055cfa20a46d0ccad79c835248c90 100644
--- a/Filters/ParallelDIY2/vtkPResampleWithDataSet.cxx
+++ b/Filters/ParallelDIY2/vtkPResampleWithDataSet.cxx
@@ -71,6 +71,7 @@
 //    Remove arrays from a block that are not valid for all its points.
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPResampleWithDataSet);
 
 vtkCxxSetObjectMacro(vtkPResampleWithDataSet, Controller, vtkMultiProcessController);
@@ -121,6 +122,7 @@ int vtkPResampleWithDataSet::RequestUpdateExtent(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -1096,6 +1098,7 @@ void ReceiveResampledPoints(
 
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 int vtkPResampleWithDataSet::RequestData(
   vtkInformation* request, vtkInformationVector** inputVector, vtkInformationVector* outputVector)
@@ -1199,6 +1202,8 @@ int vtkPResampleWithDataSet::RequestData(
   return 1;
 }
 
+VTK_ABI_NAMESPACE_END
+
 //------------------------------------------------------------------------------
 namespace diy
 {
diff --git a/Filters/ParallelDIY2/vtkPResampleWithDataSet.h b/Filters/ParallelDIY2/vtkPResampleWithDataSet.h
index d7476c051c96bb3572cfd23b6214c4c7d10a361f..3c1bf31ae4916ed0a41933dbc5d62be814802387 100644
--- a/Filters/ParallelDIY2/vtkPResampleWithDataSet.h
+++ b/Filters/ParallelDIY2/vtkPResampleWithDataSet.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersParallelDIY2Module.h" // For export macro
 #include "vtkResampleWithDataSet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLELDIY2_EXPORT vtkPResampleWithDataSet : public vtkResampleWithDataSet
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkPResampleWithDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPResampleWithDataSet_h
diff --git a/Filters/ParallelDIY2/vtkProbeLineFilter.cxx b/Filters/ParallelDIY2/vtkProbeLineFilter.cxx
index e05756d97e8529b06f2c50c62511ceec2e35907a..0eeb657e749d9dce0873a123cc15bc86efa895c1 100644
--- a/Filters/ParallelDIY2/vtkProbeLineFilter.cxx
+++ b/Filters/ParallelDIY2/vtkProbeLineFilter.cxx
@@ -205,6 +205,7 @@ HitCellInfo GetInOutCell(const vtkVector3d& p1, const vtkVector3d& p2, vtkIdType
 }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 // Allows to merge remote polylines from all processes into a single one.
 // Handle various things such as merging points, creating segment centers when
@@ -1370,3 +1371,4 @@ void vtkProbeLineFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ComputeTolerance: " << this->ComputeTolerance << endl;
   os << indent << "Tolerance: " << this->Tolerance << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelDIY2/vtkProbeLineFilter.h b/Filters/ParallelDIY2/vtkProbeLineFilter.h
index f6c1c21481894974e2e7211548d57be84214ab16..e7165db76e05d343e5ba346ccadc8f9d3456d0c6 100644
--- a/Filters/ParallelDIY2/vtkProbeLineFilter.h
+++ b/Filters/ParallelDIY2/vtkProbeLineFilter.h
@@ -52,6 +52,7 @@
 
 #include <memory> // for unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkHyperTreeGrid;
 class vtkIdList;
@@ -257,4 +258,5 @@ private:
   std::unique_ptr<vtkInternals> Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelDIY2/vtkRedistributeDataSetFilter.cxx b/Filters/ParallelDIY2/vtkRedistributeDataSetFilter.cxx
index ac039be7e9ed6ff6afcb326eb294d51898755015..fc876acf4d606dbe39a26ca9145580455669ca25 100644
--- a/Filters/ParallelDIY2/vtkRedistributeDataSetFilter.cxx
+++ b/Filters/ParallelDIY2/vtkRedistributeDataSetFilter.cxx
@@ -64,6 +64,7 @@ constexpr double BOUNDING_BOX_INFLATION_RATIO = 0.01;
 
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 vtkBoundingBox GetBounds(vtkDataObject* dobj, diy::mpi::communicator& comm)
 {
   auto lbounds = vtkDIYUtilities::GetLocalBounds(dobj);
@@ -240,8 +241,10 @@ void SetPartitionCount(vtkPartitionedDataSet* pdc, unsigned int target)
   pdc->SetNumberOfPartitions(target);
 }
 
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRedistributeDataSetFilter);
 vtkCxxSetObjectMacro(vtkRedistributeDataSetFilter, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -1136,3 +1139,4 @@ void vtkRedistributeDataSetFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EnableDebugging: " << this->EnableDebugging << endl;
   os << indent << "LoadBalanceAcrossAllBlocks: " << this->LoadBalanceAcrossAllBlocks << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelDIY2/vtkRedistributeDataSetFilter.h b/Filters/ParallelDIY2/vtkRedistributeDataSetFilter.h
index 4886209a40cbd4ddb2644af81dc0584a183b4c56..c1ca478bc42380b91ae6087f1316c7bc9178f3d5 100644
--- a/Filters/ParallelDIY2/vtkRedistributeDataSetFilter.h
+++ b/Filters/ParallelDIY2/vtkRedistributeDataSetFilter.h
@@ -82,6 +82,7 @@
 #include VTK_DIY2(diy/assigner.hpp)
 // clang-format on
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class vtkBoundingBox;
 class vtkPartitionedDataSet;
@@ -348,4 +349,5 @@ private:
   bool LoadBalanceAcrossAllBlocks;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelFlowPaths/vtkPLagrangianParticleTracker.cxx b/Filters/ParallelFlowPaths/vtkPLagrangianParticleTracker.cxx
index a8aae6fb8e91e7a43c63fb5a10e2c36a8288ac65..4d34a1937ce01e0b2274dda5138e4558a54b5cd0 100644
--- a/Filters/ParallelFlowPaths/vtkPLagrangianParticleTracker.cxx
+++ b/Filters/ParallelFlowPaths/vtkPLagrangianParticleTracker.cxx
@@ -42,6 +42,7 @@
 #define LAGRANGIAN_PARTICLE_CONTROL_TAG 625
 
 // Class used to serialize and stream a particle
+VTK_ABI_NAMESPACE_BEGIN
 class MessageStream
 {
 public:
@@ -1179,3 +1180,4 @@ void vtkPLagrangianParticleTracker::DeleteParticle(vtkLagrangianParticle* partic
     this->OutOfDomainParticleMap[particle->GetId()] = particle;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelFlowPaths/vtkPLagrangianParticleTracker.h b/Filters/ParallelFlowPaths/vtkPLagrangianParticleTracker.h
index 81e5c1106d5f69e4e689248a561cc13fa66fb569..1f73825e410dd6fc54e3c15eb07f8c118d3e290a 100644
--- a/Filters/ParallelFlowPaths/vtkPLagrangianParticleTracker.h
+++ b/Filters/ParallelFlowPaths/vtkPLagrangianParticleTracker.h
@@ -43,6 +43,7 @@
 
 #include <map> // for std::map
 
+VTK_ABI_NAMESPACE_BEGIN
 class ParticleFeedManager;
 class ParticleIdManager;
 class ParticleStreamManager;
@@ -137,4 +138,5 @@ private:
   vtkPLagrangianParticleTracker(const vtkPLagrangianParticleTracker&) = delete;
   void operator=(const vtkPLagrangianParticleTracker&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelFlowPaths/vtkPParticlePathFilter.cxx b/Filters/ParallelFlowPaths/vtkPParticlePathFilter.cxx
index ae85f1cdf744206f51f95b11dcae80f38c87c394..21b60694553273529c41e0f8a7945272601d79a1 100644
--- a/Filters/ParallelFlowPaths/vtkPParticlePathFilter.cxx
+++ b/Filters/ParallelFlowPaths/vtkPParticlePathFilter.cxx
@@ -27,6 +27,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPParticlePathFilter);
 
 vtkPParticlePathFilter::vtkPParticlePathFilter()
@@ -162,3 +163,4 @@ int vtkPParticlePathFilter::RequestInformation(
 
   return this->Superclass::RequestInformation(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelFlowPaths/vtkPParticlePathFilter.h b/Filters/ParallelFlowPaths/vtkPParticlePathFilter.h
index 83601a1729ef37e1cb9edfbd4d64919e37df13df..5a52b8e0c62ed8501fc04a50899d523982115037 100644
--- a/Filters/ParallelFlowPaths/vtkPParticlePathFilter.h
+++ b/Filters/ParallelFlowPaths/vtkPParticlePathFilter.h
@@ -30,6 +30,7 @@
 #include "vtkParticlePathFilter.h" //for utility
 
 #include "vtkFiltersParallelFlowPathsModule.h" // For export macro
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLELFLOWPATHS_EXPORT vtkPParticlePathFilter : public vtkPParticleTracerBase
 {
 public:
@@ -64,4 +65,5 @@ private:
   vtkPParticlePathFilter(const vtkPParticlePathFilter&) = delete;
   void operator=(const vtkPParticlePathFilter&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelFlowPaths/vtkPParticleTracer.cxx b/Filters/ParallelFlowPaths/vtkPParticleTracer.cxx
index 973ac04d0ed34d8f4d171c5861b14639ab1e88b7..0b5b465da29deecb47afdd6d78f50eafb0436ad1 100644
--- a/Filters/ParallelFlowPaths/vtkPParticleTracer.cxx
+++ b/Filters/ParallelFlowPaths/vtkPParticleTracer.cxx
@@ -15,6 +15,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkPParticleTracer.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPParticleTracer);
 
 vtkPParticleTracer::vtkPParticleTracer()
@@ -32,3 +33,4 @@ void vtkPParticleTracer::PrintSelf(ostream& os, vtkIndent indent)
 {
   Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelFlowPaths/vtkPParticleTracer.h b/Filters/ParallelFlowPaths/vtkPParticleTracer.h
index 401afb844f33573fad6124963d7e9c8fff46862a..cfc36d64019b0429e03deba96cc54ea60ea5f22f 100644
--- a/Filters/ParallelFlowPaths/vtkPParticleTracer.h
+++ b/Filters/ParallelFlowPaths/vtkPParticleTracer.h
@@ -31,6 +31,7 @@
 
 #include "vtkFiltersParallelFlowPathsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLELFLOWPATHS_EXPORT vtkPParticleTracer : public vtkPParticleTracerBase
 {
 public:
@@ -49,4 +50,5 @@ private:
   void operator=(const vtkPParticleTracer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelFlowPaths/vtkPParticleTracerBase.cxx b/Filters/ParallelFlowPaths/vtkPParticleTracerBase.cxx
index 97d30981f6add3044d00a7d1e3b0c4209fa52c19..bf57782f2b0d79df2ab98602b0b8c1d3a381033d 100644
--- a/Filters/ParallelFlowPaths/vtkPParticleTracerBase.cxx
+++ b/Filters/ParallelFlowPaths/vtkPParticleTracerBase.cxx
@@ -36,6 +36,7 @@
 using namespace vtkParticleTracerBaseNamespace;
 using IDStates = vtkTemporalInterpolatedVelocityField::IDStates;
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkPParticleTracerBase::vtkPParticleTracerBase()
 {
@@ -536,3 +537,4 @@ bool vtkPParticleTracerBase::IsPointDataValid(vtkDataObject* input)
 //------------------------------------------------------------------------------
 vtkCxxSetObjectMacro(vtkPParticleTracerBase, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelFlowPaths/vtkPParticleTracerBase.h b/Filters/ParallelFlowPaths/vtkPParticleTracerBase.h
index 03026afc3ee892c7e227046892988634f6187632..981a3d5fc021cb52241ad37e0fd2dd7b1e05cc67 100644
--- a/Filters/ParallelFlowPaths/vtkPParticleTracerBase.h
+++ b/Filters/ParallelFlowPaths/vtkPParticleTracerBase.h
@@ -34,6 +34,7 @@
 
 #include "vtkFiltersParallelFlowPathsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLELFLOWPATHS_EXPORT vtkPParticleTracerBase : public vtkParticleTracerBase
 {
 public:
@@ -119,4 +120,5 @@ private:
   vtkPParticleTracerBase(const vtkPParticleTracerBase&) = delete;
   void operator=(const vtkPParticleTracerBase&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelFlowPaths/vtkPStreaklineFilter.cxx b/Filters/ParallelFlowPaths/vtkPStreaklineFilter.cxx
index 4e6ce07554435633be6b412328d0db5683eae488..48ac956a6b9048b2a476e8a0f6594abd491493cc 100644
--- a/Filters/ParallelFlowPaths/vtkPStreaklineFilter.cxx
+++ b/Filters/ParallelFlowPaths/vtkPStreaklineFilter.cxx
@@ -31,6 +31,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPStreaklineFilter);
 
 vtkPStreaklineFilter::vtkPStreaklineFilter()
@@ -86,3 +87,4 @@ void vtkPStreaklineFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelFlowPaths/vtkPStreaklineFilter.h b/Filters/ParallelFlowPaths/vtkPStreaklineFilter.h
index e3376b7b82dd3c9b8c1b3bcade51214911f87c79..bc7cf8079564ee4ad088e417b3aef762c7ca6c9d 100644
--- a/Filters/ParallelFlowPaths/vtkPStreaklineFilter.h
+++ b/Filters/ParallelFlowPaths/vtkPStreaklineFilter.h
@@ -31,6 +31,7 @@
 #include "vtkSmartPointer.h"     // For protected ivars.
 #include "vtkStreaklineFilter.h" //for utility
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLELFLOWPATHS_EXPORT vtkPStreaklineFilter : public vtkPParticleTracerBase
 {
 public:
@@ -50,4 +51,5 @@ protected:
   StreaklineFilterInternal It;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelFlowPaths/vtkPStreamTracer.cxx b/Filters/ParallelFlowPaths/vtkPStreamTracer.cxx
index ab088174a341039ed0947d68ee8de61dab63aaac..fe6af2f3fb027321ad6dc41536c902640b44b89e 100644
--- a/Filters/ParallelFlowPaths/vtkPStreamTracer.cxx
+++ b/Filters/ParallelFlowPaths/vtkPStreamTracer.cxx
@@ -125,6 +125,7 @@
 #define AssertNe(a, b)
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 inline int CNext(int i, int n)
@@ -1898,3 +1899,4 @@ void vtkPStreamTracer::Prepend(vtkPolyData* pathPoly, vtkPolyData* headPoly)
   AssertEq(newNumPoints, nPoints + 1);
   AssertEq(newNumPoints, pathPoly->GetNumberOfPoints());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelFlowPaths/vtkPStreamTracer.h b/Filters/ParallelFlowPaths/vtkPStreamTracer.h
index 385003f99e7ef78ad4d67abfd87254a2873ffc00..050fc485d530947fc12259912ef76790a47e40e7 100644
--- a/Filters/ParallelFlowPaths/vtkPStreamTracer.h
+++ b/Filters/ParallelFlowPaths/vtkPStreamTracer.h
@@ -31,6 +31,7 @@
 #include "vtkSmartPointer.h" // This is a leaf node. No need to use PIMPL to avoid compile time penalty.
 #include "vtkStreamTracer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractInterpolatedVelocityField;
 class vtkMultiProcessController;
 
@@ -38,8 +39,10 @@ class PStreamTracerPoint;
 class vtkOverlappingAMR;
 class AbstractPStreamTracerUtils;
 
+VTK_ABI_NAMESPACE_END
 #include "vtkFiltersParallelFlowPathsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLELFLOWPATHS_EXPORT vtkPStreamTracer : public vtkStreamTracer
 {
 public:
@@ -95,4 +98,5 @@ private:
   friend class AbstractPStreamTracerUtils;
   vtkSmartPointer<AbstractPStreamTracerUtils> Utils;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelGeometry/vtkPConnectivityFilter.cxx b/Filters/ParallelGeometry/vtkPConnectivityFilter.cxx
index 15325a76d273da55a06f69780252bb2bdaf63c30..2d0035e518759c045ad040d08214c4511613a362 100644
--- a/Filters/ParallelGeometry/vtkPConnectivityFilter.cxx
+++ b/Filters/ParallelGeometry/vtkPConnectivityFilter.cxx
@@ -48,6 +48,7 @@
 
 #include "vtkDoubleArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -897,3 +898,4 @@ void vtkPConnectivityFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelGeometry/vtkPConnectivityFilter.h b/Filters/ParallelGeometry/vtkPConnectivityFilter.h
index 37a89522ad636e680efb53362be39833d487ef3a..773888149c2dc1f9fa3cda0222b9ff27b0584e4b 100644
--- a/Filters/ParallelGeometry/vtkPConnectivityFilter.h
+++ b/Filters/ParallelGeometry/vtkPConnectivityFilter.h
@@ -139,6 +139,7 @@
 #include "vtkConnectivityFilter.h"
 #include "vtkFiltersParallelGeometryModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLELGEOMETRY_EXPORT vtkPConnectivityFilter : public vtkConnectivityFilter
 {
 public:
@@ -158,4 +159,5 @@ private:
   void operator=(const vtkPConnectivityFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelGeometry/vtkPDistributedDataFilter.cxx b/Filters/ParallelGeometry/vtkPDistributedDataFilter.cxx
index 50492ba2881d79574fefddf78fcadfeb20c214d1..821b6f2b8fa78bde20d5f274a2ce43d0fe711ebf 100644
--- a/Filters/ParallelGeometry/vtkPDistributedDataFilter.cxx
+++ b/Filters/ParallelGeometry/vtkPDistributedDataFilter.cxx
@@ -57,16 +57,19 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPDistributedDataFilter);
 
 #define TEMP_ELEMENT_ID_NAME "___D3___GlobalCellIds"
 #define TEMP_INSIDE_BOX_FLAG "___D3___WHERE"
 #define TEMP_NODE_ID_NAME "___D3___GlobalNodeIds"
 
+VTK_ABI_NAMESPACE_END
 #include <algorithm>
 #include <map>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 class TimeLog // Similar to vtkTimerLogScope, but can be disabled at runtime.
@@ -814,29 +817,34 @@ struct vtkPDistributedDataFilterProcInfo
   int procId;
   vtkIdType has;
 };
-extern "C"
+
+VTK_ABI_NAMESPACE_END
+
+namespace
 {
-  int vtkPDistributedDataFilterSortSize(const void* s1, const void* s2)
-  {
-    vtkPDistributedDataFilterProcInfo *a, *b;
+int vtkPDistributedDataFilterSortSize(const void* s1, const void* s2)
+{
+  vtkPDistributedDataFilterProcInfo *a, *b;
 
-    a = (struct vtkPDistributedDataFilterProcInfo*)s1;
-    b = (struct vtkPDistributedDataFilterProcInfo*)s2;
+  a = (struct vtkPDistributedDataFilterProcInfo*)s1;
+  b = (struct vtkPDistributedDataFilterProcInfo*)s2;
 
-    if (a->has < b->has)
-    {
-      return 1;
-    }
-    else if (a->has == b->has)
-    {
-      return 0;
-    }
-    else
-    {
-      return -1;
-    }
+  if (a->has < b->has)
+  {
+    return 1;
+  }
+  else if (a->has == b->has)
+  {
+    return 0;
+  }
+  else
+  {
+    return -1;
   }
 }
+}
+
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 vtkDataSet* vtkPDistributedDataFilter::TestFixTooFewInputFiles(
@@ -4345,3 +4353,4 @@ void vtkPDistributedDataFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Timing: " << this->Timing << endl;
   os << indent << "UseMinimalMemory: " << this->UseMinimalMemory << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelGeometry/vtkPDistributedDataFilter.h b/Filters/ParallelGeometry/vtkPDistributedDataFilter.h
index f3a285fe1bb5c048ff6e98463e53ce35b373dd49..42413cd90d44568743e1a02536572124bcb14063 100644
--- a/Filters/ParallelGeometry/vtkPDistributedDataFilter.h
+++ b/Filters/ParallelGeometry/vtkPDistributedDataFilter.h
@@ -92,6 +92,7 @@
 #include "vtkDistributedDataFilter.h"
 #include "vtkFiltersParallelGeometryModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBSPCuts;
 class vtkDataArray;
 class vtkFloatArray;
@@ -388,4 +389,5 @@ private:
   vtkPDistributedDataFilter(const vtkPDistributedDataFilter&) = delete;
   void operator=(const vtkPDistributedDataFilter&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelGeometry/vtkPStructuredGridConnectivity.cxx b/Filters/ParallelGeometry/vtkPStructuredGridConnectivity.cxx
index 48f6b5819bde0ada39972fd7d7d02449fa02c4f6..ebd037aa85b7b20f249ddf5c18f9d2d87b18f28c 100644
--- a/Filters/ParallelGeometry/vtkPStructuredGridConnectivity.cxx
+++ b/Filters/ParallelGeometry/vtkPStructuredGridConnectivity.cxx
@@ -23,6 +23,7 @@
 #include <fstream>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPStructuredGridConnectivity);
 vtkCxxSetObjectMacro(vtkPStructuredGridConnectivity, Controller, vtkMultiProcessController);
 
@@ -1394,3 +1395,4 @@ void vtkPStructuredGridConnectivity::DeserializeGridExtentForProcess(
     this->RegisterRemoteGrid(gridID, ext, processId);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelGeometry/vtkPStructuredGridConnectivity.h b/Filters/ParallelGeometry/vtkPStructuredGridConnectivity.h
index e8c3a0d9ccebfeef1951b89be73b6f90dbfa2a95..ed8ba81cff2bc929b37ca54c75edbbba26b0b97f 100644
--- a/Filters/ParallelGeometry/vtkPStructuredGridConnectivity.h
+++ b/Filters/ParallelGeometry/vtkPStructuredGridConnectivity.h
@@ -40,6 +40,7 @@
 #include <vector> // For STL vector
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class vtkMPIController;
 class vtkMultiProcessStream;
@@ -541,4 +542,5 @@ inline int vtkPStructuredGridConnectivity::GetGridRank(const int gridID)
     (gridID >= 0 && gridID < static_cast<int>(this->NumberOfGrids)));
   return (this->GridRanks[gridID]);
 }
+VTK_ABI_NAMESPACE_END
 #endif /* vtkPStructuredGridConnectivity_h */
diff --git a/Filters/ParallelImaging/vtkExtractPiece.cxx b/Filters/ParallelImaging/vtkExtractPiece.cxx
index ba5704afe4176ceaa5018e8da2593424dd64fb94..3e3ec66f002e1adb0b148b7eb3b3a69ceb828f03 100644
--- a/Filters/ParallelImaging/vtkExtractPiece.cxx
+++ b/Filters/ParallelImaging/vtkExtractPiece.cxx
@@ -32,6 +32,7 @@
 #include "vtkStructuredGrid.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractPiece);
 
 //=============================================================================
@@ -261,3 +262,4 @@ void vtkExtractPiece::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelImaging/vtkExtractPiece.h b/Filters/ParallelImaging/vtkExtractPiece.h
index e0d7a24b6cd282f6f7475654805dad83a9c069b2..aba4fd477b7efc8dd560f37aa3a2f8c7a5f7d3cb 100644
--- a/Filters/ParallelImaging/vtkExtractPiece.h
+++ b/Filters/ParallelImaging/vtkExtractPiece.h
@@ -28,6 +28,7 @@
 #include "vtkCompositeDataSetAlgorithm.h"
 #include "vtkFiltersParallelImagingModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkPolyData;
 class vtkRectilinearGrid;
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkExtractPiece&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelImaging/vtkMemoryLimitImageDataStreamer.cxx b/Filters/ParallelImaging/vtkMemoryLimitImageDataStreamer.cxx
index 7c9e36bc160ec279aa65236aac5b19fecf64dfc5..7fffb4e0bc11d4409d45246ef2ac64096eb2c97d 100644
--- a/Filters/ParallelImaging/vtkMemoryLimitImageDataStreamer.cxx
+++ b/Filters/ParallelImaging/vtkMemoryLimitImageDataStreamer.cxx
@@ -25,6 +25,7 @@
 #include "vtkPipelineSize.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMemoryLimitImageDataStreamer);
 
 //------------------------------------------------------------------------------
@@ -132,3 +133,4 @@ vtkTypeBool vtkMemoryLimitImageDataStreamer ::ProcessRequest(
   }
   return this->Superclass::ProcessRequest(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelImaging/vtkMemoryLimitImageDataStreamer.h b/Filters/ParallelImaging/vtkMemoryLimitImageDataStreamer.h
index 2c94f387816181f8fcfe5835814cccf2983dc50e..f00326030cc28e9188decd6863e99a66e6a7ab4e 100644
--- a/Filters/ParallelImaging/vtkMemoryLimitImageDataStreamer.h
+++ b/Filters/ParallelImaging/vtkMemoryLimitImageDataStreamer.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersParallelImagingModule.h" // For export macro
 #include "vtkImageDataStreamer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLELIMAGING_EXPORT vtkMemoryLimitImageDataStreamer : public vtkImageDataStreamer
 {
 public:
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkMemoryLimitImageDataStreamer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelImaging/vtkPComputeHistogram2DOutliers.cxx b/Filters/ParallelImaging/vtkPComputeHistogram2DOutliers.cxx
index e9cac7e9a8d5dbcbd334d965f8bb4e5138c05b76..748a42033e0f77b85df979e08a47d1402084c425 100644
--- a/Filters/ParallelImaging/vtkPComputeHistogram2DOutliers.cxx
+++ b/Filters/ParallelImaging/vtkPComputeHistogram2DOutliers.cxx
@@ -38,6 +38,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkSmartPointer.h"
 #include "vtkTable.h"
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPComputeHistogram2DOutliers);
 vtkCxxSetObjectMacro(vtkPComputeHistogram2DOutliers, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -130,3 +131,4 @@ int vtkPComputeHistogram2DOutliers::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelImaging/vtkPComputeHistogram2DOutliers.h b/Filters/ParallelImaging/vtkPComputeHistogram2DOutliers.h
index dd894196d4f3f351a4e53014d309149d5d2ddeca..76de59df47880731928975222276a28a580c3a49 100644
--- a/Filters/ParallelImaging/vtkPComputeHistogram2DOutliers.h
+++ b/Filters/ParallelImaging/vtkPComputeHistogram2DOutliers.h
@@ -46,6 +46,7 @@
 #include "vtkComputeHistogram2DOutliers.h"
 #include "vtkFiltersParallelImagingModule.h" // For export macro
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 //------------------------------------------------------------------------------
 class VTKFILTERSPARALLELIMAGING_EXPORT vtkPComputeHistogram2DOutliers
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkPComputeHistogram2DOutliers&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelImaging/vtkPExtractHistogram2D.cxx b/Filters/ParallelImaging/vtkPExtractHistogram2D.cxx
index 867fde9e710d292236aaf9e2525c36a519bbb238..1be2875b8e42f090288c2b7f7ec40d35c528ca14 100644
--- a/Filters/ParallelImaging/vtkPExtractHistogram2D.cxx
+++ b/Filters/ParallelImaging/vtkPExtractHistogram2D.cxx
@@ -30,6 +30,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkPointData.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPExtractHistogram2D);
 vtkCxxSetObjectMacro(vtkPExtractHistogram2D, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -157,3 +158,4 @@ int vtkPExtractHistogram2D::ComputeBinExtents(
   r[3] = allRange[3];
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelImaging/vtkPExtractHistogram2D.h b/Filters/ParallelImaging/vtkPExtractHistogram2D.h
index 32b63bbabf0ec63cc1e99424c32e714670cce4c2..8348ee65e1198e34cdef63269507a9cb3453a335 100644
--- a/Filters/ParallelImaging/vtkPExtractHistogram2D.h
+++ b/Filters/ParallelImaging/vtkPExtractHistogram2D.h
@@ -42,6 +42,7 @@
 #include "vtkExtractHistogram2D.h"
 #include "vtkFiltersParallelImagingModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSetAttributes;
 class vtkMultiBlockDataSet;
 class vtkMultiProcessController;
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkPExtractHistogram2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelImaging/vtkPPairwiseExtractHistogram2D.cxx b/Filters/ParallelImaging/vtkPPairwiseExtractHistogram2D.cxx
index 6633dc5854f0a48b8445a751a1b434fe9be58055..61b024e5f45a0691752bdd77af18d3970d5df5fd 100644
--- a/Filters/ParallelImaging/vtkPPairwiseExtractHistogram2D.cxx
+++ b/Filters/ParallelImaging/vtkPPairwiseExtractHistogram2D.cxx
@@ -40,6 +40,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPPairwiseExtractHistogram2D);
 vtkCxxSetObjectMacro(vtkPPairwiseExtractHistogram2D, Controller, vtkMultiProcessController);
 
@@ -66,3 +67,4 @@ vtkExtractHistogram2D* vtkPPairwiseExtractHistogram2D::NewHistogramFilter()
   ph->SetController(this->Controller);
   return ph;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelImaging/vtkPPairwiseExtractHistogram2D.h b/Filters/ParallelImaging/vtkPPairwiseExtractHistogram2D.h
index 147a64ea2a9a815318fca0775f1a44b83629b2e8..3f1b77fc4abd2a9b605dd3cc2f24fff2af8b200d 100644
--- a/Filters/ParallelImaging/vtkPPairwiseExtractHistogram2D.h
+++ b/Filters/ParallelImaging/vtkPPairwiseExtractHistogram2D.h
@@ -47,6 +47,7 @@
 #include "vtkFiltersParallelImagingModule.h" // For export macro
 #include "vtkPairwiseExtractHistogram2D.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtractHistogram2D;
 class vtkMultiProcessController;
 
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkPPairwiseExtractHistogram2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelImaging/vtkTransmitImageDataPiece.cxx b/Filters/ParallelImaging/vtkTransmitImageDataPiece.cxx
index f0c2282a01c627c30d93c629d81fd123351594a0..385a12b16dcfad0540ea2d4370c6ba2def94dc34 100644
--- a/Filters/ParallelImaging/vtkTransmitImageDataPiece.cxx
+++ b/Filters/ParallelImaging/vtkTransmitImageDataPiece.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransmitImageDataPiece);
 
 //------------------------------------------------------------------------------
@@ -29,3 +30,4 @@ void vtkTransmitImageDataPiece::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelImaging/vtkTransmitImageDataPiece.h b/Filters/ParallelImaging/vtkTransmitImageDataPiece.h
index 909a1714fb46f4377cb2061b95569885ae6d7863..bb201ed158c2bc2dd0045e5fd60d12cd007d2038 100644
--- a/Filters/ParallelImaging/vtkTransmitImageDataPiece.h
+++ b/Filters/ParallelImaging/vtkTransmitImageDataPiece.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersParallelImagingModule.h" // For export macro
 #include "vtkTransmitStructuredDataPiece.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLELIMAGING_EXPORT vtkTransmitImageDataPiece
@@ -51,4 +52,5 @@ private:
   void operator=(const vtkTransmitImageDataPiece&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelMPI/vtkDistributedPointCloudFilter.cxx b/Filters/ParallelMPI/vtkDistributedPointCloudFilter.cxx
index 7da4c8dc78040ad4898ff697b8321fa9ad108f92..cd25c346182d0f3852c10be09f7b46e373e505a0 100644
--- a/Filters/ParallelMPI/vtkDistributedPointCloudFilter.cxx
+++ b/Filters/ParallelMPI/vtkDistributedPointCloudFilter.cxx
@@ -33,6 +33,7 @@
 #include <algorithm>
 
 // Histogram precision to divide space in two
+VTK_ABI_NAMESPACE_BEGIN
 static const int HISTOGRAM_SIZE = 1024;
 
 vtkStandardNewMacro(vtkDistributedPointCloudFilter);
@@ -610,3 +611,4 @@ void vtkDistributedPointCloudFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelMPI/vtkDistributedPointCloudFilter.h b/Filters/ParallelMPI/vtkDistributedPointCloudFilter.h
index 0eedbed30ded945a871501fd8678f5ac93d5e4db..492dc0336dddc97d14870277fd7a7ba25e9d4c42 100644
--- a/Filters/ParallelMPI/vtkDistributedPointCloudFilter.h
+++ b/Filters/ParallelMPI/vtkDistributedPointCloudFilter.h
@@ -37,6 +37,7 @@
 
 #include <vector> // for vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMPIController;
 class vtkMultiProcessController;
 
@@ -94,4 +95,5 @@ private:
   vtkMultiProcessController* Controller;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelMPI/vtkPExtractGrid.cxx b/Filters/ParallelMPI/vtkPExtractGrid.cxx
index 52bac6ce761d67091f323a3a749c5e2f0b181552..498da0a4cabe56902e6f38f7f5ab059b536cf259 100644
--- a/Filters/ParallelMPI/vtkPExtractGrid.cxx
+++ b/Filters/ParallelMPI/vtkPExtractGrid.cxx
@@ -66,6 +66,7 @@
 #define DEBUG_OUT(out)
 #endif // DEBUG
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPExtractGrid);
 vtkCxxSetObjectMacro(vtkPExtractGrid, Controller, vtkMPIController);
 
@@ -260,3 +261,4 @@ int vtkPExtractGrid::RequestUpdateExtent(
   DEBUG_OUT("########### RequestUpdateExtent\n");
   return this->Superclass::RequestUpdateExtent(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelMPI/vtkPExtractGrid.h b/Filters/ParallelMPI/vtkPExtractGrid.h
index 89ee373dae10effbade8e5ce6f7e1e176c764562..2e096294b92fb05ef9cbad519a0286ea5c16dacf 100644
--- a/Filters/ParallelMPI/vtkPExtractGrid.h
+++ b/Filters/ParallelMPI/vtkPExtractGrid.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersParallelMPIModule.h" // For export macro
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMPIController;
 
 class VTKFILTERSPARALLELMPI_EXPORT vtkPExtractGrid : public vtkExtractGrid
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkPExtractGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelMPI/vtkPExtractRectilinearGrid.cxx b/Filters/ParallelMPI/vtkPExtractRectilinearGrid.cxx
index 8bed04d6865ada4ea9722514281bf4aab22757b5..610d1027129a3d4b09936f4168e37f8ec635824f 100644
--- a/Filters/ParallelMPI/vtkPExtractRectilinearGrid.cxx
+++ b/Filters/ParallelMPI/vtkPExtractRectilinearGrid.cxx
@@ -65,6 +65,7 @@
 #define DEBUG_OUT(out)
 #endif // DEBUG
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPExtractRectilinearGrid);
 vtkCxxSetObjectMacro(vtkPExtractRectilinearGrid, Controller, vtkMPIController);
 
@@ -262,3 +263,4 @@ int vtkPExtractRectilinearGrid::RequestUpdateExtent(
 
   return this->Superclass::RequestUpdateExtent(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelMPI/vtkPExtractRectilinearGrid.h b/Filters/ParallelMPI/vtkPExtractRectilinearGrid.h
index 96a887ac2fbe3cb62240bcc285dcf525371b1807..d3cc0c373a1c8f1cf2e6d0bd67c76697689d82a1 100644
--- a/Filters/ParallelMPI/vtkPExtractRectilinearGrid.h
+++ b/Filters/ParallelMPI/vtkPExtractRectilinearGrid.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersParallelMPIModule.h" // For export macro
 
 // Forward Declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 class vtkMPIController;
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkPExtractRectilinearGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* VTKPEXTRACTRECTILINEARGRID_H_ */
diff --git a/Filters/ParallelMPI/vtkPExtractVOI.cxx b/Filters/ParallelMPI/vtkPExtractVOI.cxx
index ff3a486c4b3d02cd1c85030c8758773b300ba1cd..36b81cb25e97a7aedab97482cf9a945049c3c9c3 100644
--- a/Filters/ParallelMPI/vtkPExtractVOI.cxx
+++ b/Filters/ParallelMPI/vtkPExtractVOI.cxx
@@ -65,6 +65,7 @@
 #define DEBUG_OUT(out)
 #endif // DEBUG
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPExtractVOI);
 vtkCxxSetObjectMacro(vtkPExtractVOI, Controller, vtkMPIController);
 
@@ -257,3 +258,4 @@ int vtkPExtractVOI::RequestUpdateExtent(
   DEBUG_OUT("########### RequestUpdateExtent\n");
   return this->Superclass::RequestUpdateExtent(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelMPI/vtkPExtractVOI.h b/Filters/ParallelMPI/vtkPExtractVOI.h
index b2bad24344c98912234602e2d93a7fbcdea50164..f1f6dde7ddf3abd0ef13bc491d5312fc2f36712e 100644
--- a/Filters/ParallelMPI/vtkPExtractVOI.h
+++ b/Filters/ParallelMPI/vtkPExtractVOI.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersParallelMPIModule.h" // For export macro
 
 // Forward Declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 class vtkMPIController;
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkPExtractVOI&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelMPI/vtkStructuredImplicitConnectivity.cxx b/Filters/ParallelMPI/vtkStructuredImplicitConnectivity.cxx
index 0f452978bde2ebfbf7cc01a42fa29c6fda992ee8..ccdd6a49647dfa68432d63078235ee45a7e03815 100644
--- a/Filters/ParallelMPI/vtkStructuredImplicitConnectivity.cxx
+++ b/Filters/ParallelMPI/vtkStructuredImplicitConnectivity.cxx
@@ -56,6 +56,7 @@ namespace vtk
 {
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Given two intervals A=[a1,a2] and B[b1,b2] the IntervalsConnect struct
 // enumerates the cases where interval A connects to Interval B.
@@ -829,12 +830,14 @@ void CommunicationManager::Exchange(vtkMPIController* comm)
   this->Requests.clear();
 }
 
+VTK_ABI_NAMESPACE_END
 } // END namespace detail
 } // END namespace vtk
 //==============================================================================
 // END INTERNAL DATASTRUCTURE DEFINITIONS
 //==============================================================================
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredImplicitConnectivity);
 vtkCxxSetObjectMacro(vtkStructuredImplicitConnectivity, Controller, vtkMPIController);
 
@@ -1521,3 +1524,4 @@ void vtkStructuredImplicitConnectivity::ExchangeData()
   // Barrier synchronization
   this->Controller->Barrier();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelMPI/vtkStructuredImplicitConnectivity.h b/Filters/ParallelMPI/vtkStructuredImplicitConnectivity.h
index 2a5a2b1e19f32d60f1abc5585ce615a34cfbe0a0..4116ba40100b348d68d254081716a27b0e72a6f7 100644
--- a/Filters/ParallelMPI/vtkStructuredImplicitConnectivity.h
+++ b/Filters/ParallelMPI/vtkStructuredImplicitConnectivity.h
@@ -43,6 +43,7 @@
 #include "vtkObject.h"
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkImageData;
 class vtkMPIController;
@@ -51,19 +52,23 @@ class vtkPointData;
 class vtkPoints;
 class vtkRectilinearGrid;
 class vtkStructuredGrid;
+VTK_ABI_NAMESPACE_END
 
 namespace vtk
 {
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 class CommunicationManager;
 struct DomainMetaData;
 struct StructuredGrid;
 
+VTK_ABI_NAMESPACE_END
 } // END namespace detail
 } // END namespace vtk
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLELMPI_EXPORT vtkStructuredImplicitConnectivity : public vtkObject
 {
 public:
@@ -217,4 +222,5 @@ private:
   vtkStructuredImplicitConnectivity(const vtkStructuredImplicitConnectivity&) = delete;
   void operator=(const vtkStructuredImplicitConnectivity&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelStatistics/vtkPAutoCorrelativeStatistics.cxx b/Filters/ParallelStatistics/vtkPAutoCorrelativeStatistics.cxx
index a6c5b2a57a6ccacca9f6e6cb30d7ea983dfd7244..1e11f22260bbf82dd93d19b6e2845cc7f7d58362 100644
--- a/Filters/ParallelStatistics/vtkPAutoCorrelativeStatistics.cxx
+++ b/Filters/ParallelStatistics/vtkPAutoCorrelativeStatistics.cxx
@@ -23,6 +23,7 @@
 #include "vtkTable.h"
 #include "vtkVariant.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPAutoCorrelativeStatistics);
 vtkCxxSetObjectMacro(vtkPAutoCorrelativeStatistics, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -173,3 +174,4 @@ void vtkPAutoCorrelativeStatistics::Test(
 
   this->Superclass::Test(inData, inMeta, outMeta);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelStatistics/vtkPAutoCorrelativeStatistics.h b/Filters/ParallelStatistics/vtkPAutoCorrelativeStatistics.h
index 8d843babd54e2981a35ce7801f3991e2c767badd..1ce658a3d26bc65a4f37fe6456ccc775e735433f 100644
--- a/Filters/ParallelStatistics/vtkPAutoCorrelativeStatistics.h
+++ b/Filters/ParallelStatistics/vtkPAutoCorrelativeStatistics.h
@@ -30,6 +30,7 @@
 #include "vtkAutoCorrelativeStatistics.h"
 #include "vtkFiltersParallelStatisticsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkMultiProcessController;
 
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkPAutoCorrelativeStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelStatistics/vtkPBivariateLinearTableThreshold.cxx b/Filters/ParallelStatistics/vtkPBivariateLinearTableThreshold.cxx
index 3c533c92f5375d37ff95ce7506b036557dbf6f14..40200cf56bdc8dd41ac7c08dfe49052dc3127068 100644
--- a/Filters/ParallelStatistics/vtkPBivariateLinearTableThreshold.cxx
+++ b/Filters/ParallelStatistics/vtkPBivariateLinearTableThreshold.cxx
@@ -31,6 +31,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPBivariateLinearTableThreshold);
 vtkCxxSetObjectMacro(vtkPBivariateLinearTableThreshold, Controller, vtkMultiProcessController);
 
@@ -116,3 +117,4 @@ int vtkPBivariateLinearTableThreshold::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelStatistics/vtkPBivariateLinearTableThreshold.h b/Filters/ParallelStatistics/vtkPBivariateLinearTableThreshold.h
index 69b4122556a7f58fd51bc7cc154954d29a3e1b90..de60a1becfbc4c4cbd40d2465986e495d48dd8b6 100644
--- a/Filters/ParallelStatistics/vtkPBivariateLinearTableThreshold.h
+++ b/Filters/ParallelStatistics/vtkPBivariateLinearTableThreshold.h
@@ -33,6 +33,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkBivariateLinearTableThreshold.h"
 #include "vtkFiltersParallelStatisticsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 class vtkMultiProcessController;
 
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkPBivariateLinearTableThreshold&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelStatistics/vtkPComputeQuantiles.cxx b/Filters/ParallelStatistics/vtkPComputeQuantiles.cxx
index 1946448cca368f537bc8f281505f0542ff7fea21..490cb05130b72eca9df591ce3a85364e988f3403 100644
--- a/Filters/ParallelStatistics/vtkPComputeQuantiles.cxx
+++ b/Filters/ParallelStatistics/vtkPComputeQuantiles.cxx
@@ -25,6 +25,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkPOrderStatistics.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPComputeQuantiles);
 vtkCxxSetObjectMacro(vtkPComputeQuantiles, Controller, vtkMultiProcessController);
 
@@ -48,3 +49,4 @@ vtkOrderStatistics* vtkPComputeQuantiles::CreateOrderStatisticsFilter()
   filter->SetController(this->Controller);
   return filter;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelStatistics/vtkPComputeQuantiles.h b/Filters/ParallelStatistics/vtkPComputeQuantiles.h
index cf4a777c7b4ac9c3916ac10961498dd2277bb867..115dff201cca9eba0b2cb970577b02d89ea8e7aa 100644
--- a/Filters/ParallelStatistics/vtkPComputeQuantiles.h
+++ b/Filters/ParallelStatistics/vtkPComputeQuantiles.h
@@ -33,6 +33,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkComputeQuantiles.h"
 #include "vtkFiltersParallelStatisticsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOrderStatistics;
 class vtkMultiProcessController;
 
@@ -63,5 +64,6 @@ private:
   vtkPComputeQuantiles(const vtkPComputeQuantiles&) = delete;
   void operator=(const vtkPComputeQuantiles&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
diff --git a/Filters/ParallelStatistics/vtkPComputeQuartiles.cxx b/Filters/ParallelStatistics/vtkPComputeQuartiles.cxx
index cabe3fb9385ecf77061de2a316e814153cda2fad..c9dd82b73a6a371fb7cc206a32a46f329453a1bf 100644
--- a/Filters/ParallelStatistics/vtkPComputeQuartiles.cxx
+++ b/Filters/ParallelStatistics/vtkPComputeQuartiles.cxx
@@ -25,6 +25,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkPOrderStatistics.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPComputeQuartiles);
 vtkCxxSetObjectMacro(vtkPComputeQuartiles, Controller, vtkMultiProcessController);
 
@@ -48,3 +49,4 @@ vtkOrderStatistics* vtkPComputeQuartiles::CreateOrderStatisticsFilter()
   filter->SetController(this->Controller);
   return filter;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelStatistics/vtkPComputeQuartiles.h b/Filters/ParallelStatistics/vtkPComputeQuartiles.h
index c4b149aed8d928359af895072327a61169bb4e60..5d3cfa7ebf60206e565fb47ca4406a1920b8a6fa 100644
--- a/Filters/ParallelStatistics/vtkPComputeQuartiles.h
+++ b/Filters/ParallelStatistics/vtkPComputeQuartiles.h
@@ -33,6 +33,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkComputeQuartiles.h"
 #include "vtkFiltersParallelStatisticsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOrderStatistics;
 class vtkMultiProcessController;
 
@@ -63,5 +64,6 @@ private:
   vtkPComputeQuartiles(const vtkPComputeQuartiles&) = delete;
   void operator=(const vtkPComputeQuartiles&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
diff --git a/Filters/ParallelStatistics/vtkPContingencyStatistics.cxx b/Filters/ParallelStatistics/vtkPContingencyStatistics.cxx
index 029bd1893c24531d35d043e500a48235afafad17..d3e32f29a01e59d95fb03855ea0365ef51b289ef 100644
--- a/Filters/ParallelStatistics/vtkPContingencyStatistics.cxx
+++ b/Filters/ParallelStatistics/vtkPContingencyStatistics.cxx
@@ -42,6 +42,7 @@
 #include "vtkTimerLog.h"
 #endif // DEBUG_PARALLEL_CONTINGENCY_STATISTICS
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPContingencyStatistics);
 vtkCxxSetObjectMacro(vtkPContingencyStatistics, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -509,3 +510,4 @@ bool vtkPContingencyStatistics::Broadcast(vtkIdType xySizeTotal, vtkStdString& x
 
   return false;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelStatistics/vtkPContingencyStatistics.h b/Filters/ParallelStatistics/vtkPContingencyStatistics.h
index 5c37e2319b542926f2b598f9e4b9508979b86676..95f640812fd846fd909bec9b00caefbb27899d14 100644
--- a/Filters/ParallelStatistics/vtkPContingencyStatistics.h
+++ b/Filters/ParallelStatistics/vtkPContingencyStatistics.h
@@ -45,6 +45,7 @@
 
 #include <vector> // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkMultiProcessController;
 
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkPContingencyStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelStatistics/vtkPCorrelativeStatistics.cxx b/Filters/ParallelStatistics/vtkPCorrelativeStatistics.cxx
index c05f37b33a2f484a503ba840d68faf2c4340b4ac..ca2d966091d6107fa488c6de0e2865d6c0236cec 100644
--- a/Filters/ParallelStatistics/vtkPCorrelativeStatistics.cxx
+++ b/Filters/ParallelStatistics/vtkPCorrelativeStatistics.cxx
@@ -29,6 +29,7 @@
 #include "vtkTable.h"
 #include "vtkVariant.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPCorrelativeStatistics);
 vtkCxxSetObjectMacro(vtkPCorrelativeStatistics, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -179,3 +180,4 @@ void vtkPCorrelativeStatistics::Test(
 
   this->Superclass::Test(inData, inMeta, outMeta);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelStatistics/vtkPCorrelativeStatistics.h b/Filters/ParallelStatistics/vtkPCorrelativeStatistics.h
index 055bc02db8fb4f62fd17e0aad33aece856ebb1f3..56bb4036bb9e787b8892142f65f64d012f40d6f8 100644
--- a/Filters/ParallelStatistics/vtkPCorrelativeStatistics.h
+++ b/Filters/ParallelStatistics/vtkPCorrelativeStatistics.h
@@ -35,6 +35,7 @@
 #include "vtkCorrelativeStatistics.h"
 #include "vtkFiltersParallelStatisticsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkMultiProcessController;
 
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkPCorrelativeStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelStatistics/vtkPDescriptiveStatistics.cxx b/Filters/ParallelStatistics/vtkPDescriptiveStatistics.cxx
index 2d36f4730407cef563d48528630f95f7d45f628b..96b1b0bd013672b4bc7ec7f8287182862add1bdb 100644
--- a/Filters/ParallelStatistics/vtkPDescriptiveStatistics.cxx
+++ b/Filters/ParallelStatistics/vtkPDescriptiveStatistics.cxx
@@ -30,6 +30,7 @@
 #include "vtkTable.h"
 #include "vtkVariant.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPDescriptiveStatistics);
 vtkCxxSetObjectMacro(vtkPDescriptiveStatistics, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -187,3 +188,4 @@ void vtkPDescriptiveStatistics::Learn(
   }
   delete[] n_g;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelStatistics/vtkPDescriptiveStatistics.h b/Filters/ParallelStatistics/vtkPDescriptiveStatistics.h
index 89df22b6712bd242cfd0b4c22ce559f13b996fab..20295cd70904eb78c4fba35c498b1c4631a556ee 100644
--- a/Filters/ParallelStatistics/vtkPDescriptiveStatistics.h
+++ b/Filters/ParallelStatistics/vtkPDescriptiveStatistics.h
@@ -42,6 +42,7 @@
 #include "vtkDescriptiveStatistics.h"
 #include "vtkFiltersParallelStatisticsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkMultiProcessController;
 
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkPDescriptiveStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelStatistics/vtkPKMeansStatistics.cxx b/Filters/ParallelStatistics/vtkPKMeansStatistics.cxx
index 02c083981f68949f4866a75d2d172160eb1bfb8f..795854c7a809ef2033de4e41549e664832323372 100644
--- a/Filters/ParallelStatistics/vtkPKMeansStatistics.cxx
+++ b/Filters/ParallelStatistics/vtkPKMeansStatistics.cxx
@@ -30,6 +30,7 @@
 #include "vtkTable.h"
 #include "vtkVariantArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPKMeansStatistics);
 vtkCxxSetObjectMacro(vtkPKMeansStatistics, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -244,3 +245,4 @@ void vtkPKMeansStatistics::CreateInitialClusterCenters(vtkIdType numToAllocate,
 
   this->DistanceFunctor->DeallocateElementArray(localElements);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelStatistics/vtkPKMeansStatistics.h b/Filters/ParallelStatistics/vtkPKMeansStatistics.h
index 822e446c36c69c7916709626edea34e15cf7bfaa..aef959d9c14b8ba1214e03da5308ee9a20b7f57b 100644
--- a/Filters/ParallelStatistics/vtkPKMeansStatistics.h
+++ b/Filters/ParallelStatistics/vtkPKMeansStatistics.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersParallelStatisticsModule.h" // For export macro
 #include "vtkKMeansStatistics.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class vtkCommunicator;
 
@@ -85,4 +86,5 @@ private:
   void operator=(const vtkPKMeansStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelStatistics/vtkPMultiCorrelativeStatistics.cxx b/Filters/ParallelStatistics/vtkPMultiCorrelativeStatistics.cxx
index b7eeb5fa781ad8ed4971eaf7f92f75791ffabf61..80c9d97b832ffcd8d355ae9d74b009ddef3a2917 100644
--- a/Filters/ParallelStatistics/vtkPMultiCorrelativeStatistics.cxx
+++ b/Filters/ParallelStatistics/vtkPMultiCorrelativeStatistics.cxx
@@ -34,6 +34,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPMultiCorrelativeStatistics);
 vtkCxxSetObjectMacro(vtkPMultiCorrelativeStatistics, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -221,3 +222,4 @@ vtkOrderStatistics* vtkPMultiCorrelativeStatistics::CreateOrderStatisticsInstanc
 {
   return vtkPOrderStatistics::New();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelStatistics/vtkPMultiCorrelativeStatistics.h b/Filters/ParallelStatistics/vtkPMultiCorrelativeStatistics.h
index 875b134ad5d3da7988f9a6fa8f56640d9f3dbbde..93322345da845e7e0144415b43f0eb7f84df7cbd 100644
--- a/Filters/ParallelStatistics/vtkPMultiCorrelativeStatistics.h
+++ b/Filters/ParallelStatistics/vtkPMultiCorrelativeStatistics.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersParallelStatisticsModule.h" // For export macro
 #include "vtkMultiCorrelativeStatistics.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLELSTATISTICS_EXPORT vtkPMultiCorrelativeStatistics
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkPMultiCorrelativeStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelStatistics/vtkPOrderStatistics.cxx b/Filters/ParallelStatistics/vtkPOrderStatistics.cxx
index 558b5b3684c9df55eb181f210c9d5b5665101999..c7cd5bb1be5e166db2deda95ea319c4e1fc38f5e 100644
--- a/Filters/ParallelStatistics/vtkPOrderStatistics.cxx
+++ b/Filters/ParallelStatistics/vtkPOrderStatistics.cxx
@@ -36,6 +36,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPOrderStatistics);
 vtkCxxSetObjectMacro(vtkPOrderStatistics, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -495,3 +496,4 @@ bool vtkPOrderStatistics::Broadcast(std::map<vtkStdString, vtkIdType>& histogram
 
   return false;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelStatistics/vtkPOrderStatistics.h b/Filters/ParallelStatistics/vtkPOrderStatistics.h
index 49c305e106f183b082c244048b2faec75218bb29..bf5473a837cc9d3a535dd903351d2cedec67b7ad 100644
--- a/Filters/ParallelStatistics/vtkPOrderStatistics.h
+++ b/Filters/ParallelStatistics/vtkPOrderStatistics.h
@@ -45,6 +45,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <map> // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 class vtkMultiBlockDataSet;
 class vtkMultiProcessController;
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkPOrderStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelStatistics/vtkPPCAStatistics.cxx b/Filters/ParallelStatistics/vtkPPCAStatistics.cxx
index 57873aab9e2c3ea1ca3e6017d378b67cef249463..bae15dd8e954898b2139af985e12001630c4dd24 100644
--- a/Filters/ParallelStatistics/vtkPPCAStatistics.cxx
+++ b/Filters/ParallelStatistics/vtkPPCAStatistics.cxx
@@ -32,6 +32,7 @@
 #include "vtkPOrderStatistics.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPPCAStatistics);
 vtkCxxSetObjectMacro(vtkPPCAStatistics, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -96,3 +97,4 @@ vtkOrderStatistics* vtkPPCAStatistics::CreateOrderStatisticsInstance()
 {
   return vtkPOrderStatistics::New();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelStatistics/vtkPPCAStatistics.h b/Filters/ParallelStatistics/vtkPPCAStatistics.h
index c84fdea0c755c311a47fb03110f0bc4cb11d7e0a..6b3a891287c2e5a801c95d787bf7a176af3a18ad 100644
--- a/Filters/ParallelStatistics/vtkPPCAStatistics.h
+++ b/Filters/ParallelStatistics/vtkPPCAStatistics.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersParallelStatisticsModule.h" // For export macro
 #include "vtkPCAStatistics.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKFILTERSPARALLELSTATISTICS_EXPORT vtkPPCAStatistics : public vtkPCAStatistics
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkPPCAStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ParallelVerdict/vtkPCellSizeFilter.cxx b/Filters/ParallelVerdict/vtkPCellSizeFilter.cxx
index 11db0aa28a9c6ce804823fa007b7810fa55ccc9b..16b1dd46727a8c687c841a4ab55d7336a27b6e0b 100644
--- a/Filters/ParallelVerdict/vtkPCellSizeFilter.cxx
+++ b/Filters/ParallelVerdict/vtkPCellSizeFilter.cxx
@@ -18,6 +18,7 @@
 #include "vtkMultiProcessController.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPCellSizeFilter);
 
 //------------------------------------------------------------------------------
@@ -46,3 +47,4 @@ void vtkPCellSizeFilter::ComputeGlobalSum(double sum[4])
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ParallelVerdict/vtkPCellSizeFilter.h b/Filters/ParallelVerdict/vtkPCellSizeFilter.h
index dc3f3f47a94b85362a57f63e0222b9d802f0ec02..f81e7da59aac95705c840c23d303b1a746c62a24 100644
--- a/Filters/ParallelVerdict/vtkPCellSizeFilter.h
+++ b/Filters/ParallelVerdict/vtkPCellSizeFilter.h
@@ -41,6 +41,7 @@
 #include "vtkCellSizeFilter.h"
 #include "vtkFiltersParallelVerdictModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPARALLELVERDICT_EXPORT vtkPCellSizeFilter : public vtkCellSizeFilter
 {
 public:
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkPCellSizeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkBoundedPointSource.cxx b/Filters/Points/vtkBoundedPointSource.cxx
index 9f3e53b1944ea5460120fd81b1f92f992040fc15..872fc66fab49a21afd463fdbefa7e9da874260b7 100644
--- a/Filters/Points/vtkBoundedPointSource.cxx
+++ b/Filters/Points/vtkBoundedPointSource.cxx
@@ -24,6 +24,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoundedPointSource);
 
 //------------------------------------------------------------------------------
@@ -143,3 +144,4 @@ void vtkBoundedPointSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Produce Random Scalars: " << (this->ProduceRandomScalars ? "On\n" : "Off\n");
   os << indent << "Scalar Range (" << this->ScalarRange[0] << "," << this->ScalarRange[1] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkBoundedPointSource.h b/Filters/Points/vtkBoundedPointSource.h
index 23ddbf120342761a115a7ee345b5179c5e6505a7..dff11e3a9ebcfb8ba0870dd42399e12ab2f420f2 100644
--- a/Filters/Points/vtkBoundedPointSource.h
+++ b/Filters/Points/vtkBoundedPointSource.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPOINTS_EXPORT vtkBoundedPointSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkBoundedPointSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkConnectedPointsFilter.cxx b/Filters/Points/vtkConnectedPointsFilter.cxx
index 3a97d303cf3f3439b9f6bf9c557294244f4fa8af..61381ae1275f3a13cdb8f004074117f69fb3a12b 100644
--- a/Filters/Points/vtkConnectedPointsFilter.cxx
+++ b/Filters/Points/vtkConnectedPointsFilter.cxx
@@ -27,6 +27,7 @@
 #include "vtkPolyData.h"
 #include "vtkStaticPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkConnectedPointsFilter);
 vtkCxxSetObjectMacro(vtkConnectedPointsFilter, Locator, vtkAbstractPointLocator);
 
@@ -504,3 +505,4 @@ void vtkConnectedPointsFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Locator: " << this->Locator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkConnectedPointsFilter.h b/Filters/Points/vtkConnectedPointsFilter.h
index 0e1891045f04685aacdf8471c0fbef4572018205..2d659060c4a018d858e60bd4de0b352d33289c31 100644
--- a/Filters/Points/vtkConnectedPointsFilter.h
+++ b/Filters/Points/vtkConnectedPointsFilter.h
@@ -61,6 +61,7 @@
 #define VTK_EXTRACT_ALL_REGIONS 5
 #define VTK_EXTRACT_CLOSEST_POINT_REGION 6
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 class vtkDataArray;
 class vtkFloatArray;
@@ -289,4 +290,5 @@ inline const char* vtkConnectedPointsFilter::GetExtractionModeAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkConvertToPointCloud.cxx b/Filters/Points/vtkConvertToPointCloud.cxx
index caba9b54dd0dcf65c015957a68c3416b6a0088d7..bd954316a22c8da935c086daf6f593f476b35bde 100644
--- a/Filters/Points/vtkConvertToPointCloud.cxx
+++ b/Filters/Points/vtkConvertToPointCloud.cxx
@@ -19,6 +19,7 @@
 
 #include <numeric>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkConvertToPointCloud);
 
 //------------------------------------------------------------------------------
@@ -101,3 +102,4 @@ void vtkConvertToPointCloud::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Cell Generation Mode: " << this->CellGenerationMode << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkConvertToPointCloud.h b/Filters/Points/vtkConvertToPointCloud.h
index e778de8a84cd58df7030007bc5b25773c8a4e1ac..e775bb35e27ea783a0e01543a4b5c3eb8a7c4777 100644
--- a/Filters/Points/vtkConvertToPointCloud.h
+++ b/Filters/Points/vtkConvertToPointCloud.h
@@ -28,6 +28,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPOINTS_EXPORT vtkConvertToPointCloud : public vtkPolyDataAlgorithm
 {
 public:
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkConvertToPointCloud&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkDensifyPointCloudFilter.cxx b/Filters/Points/vtkDensifyPointCloudFilter.cxx
index 4cabecdb9263c2cdfcb079f382f239cce854cd03..6746fbdb2ce5d647f40d3ed5d73e39e00e5efef9 100644
--- a/Filters/Points/vtkDensifyPointCloudFilter.cxx
+++ b/Filters/Points/vtkDensifyPointCloudFilter.cxx
@@ -28,6 +28,7 @@
 #include "vtkSMPTools.h"
 #include "vtkStaticPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDensifyPointCloudFilter);
 
 //------------------------------------------------------------------------------
@@ -378,3 +379,4 @@ void vtkDensifyPointCloudFilter::PrintSelf(ostream& os, vtkIndent indent)
      << "Interpolate Attribute Data: " << (this->InterpolateAttributeData ? "On\n" : "Off\n");
   os << indent << "Maximum Number Of Points: " << this->MaximumNumberOfPoints << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkDensifyPointCloudFilter.h b/Filters/Points/vtkDensifyPointCloudFilter.h
index 4043b4d22b3b4983c5e463fec858d4637dc19a58..d4e1353691330dc17d775178215495eaa0410bdd 100644
--- a/Filters/Points/vtkDensifyPointCloudFilter.h
+++ b/Filters/Points/vtkDensifyPointCloudFilter.h
@@ -51,6 +51,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPOINTS_EXPORT vtkDensifyPointCloudFilter : public vtkPolyDataAlgorithm
 {
 public:
@@ -176,4 +177,5 @@ private:
   void operator=(const vtkDensifyPointCloudFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkEllipsoidalGaussianKernel.cxx b/Filters/Points/vtkEllipsoidalGaussianKernel.cxx
index c32b3be0adea2d7a12cc8d075ccabe0478682a26..268d93d57e288c8673cbef564ef1ad0a8b169128 100644
--- a/Filters/Points/vtkEllipsoidalGaussianKernel.cxx
+++ b/Filters/Points/vtkEllipsoidalGaussianKernel.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEllipsoidalGaussianKernel);
 
 //------------------------------------------------------------------------------
@@ -212,3 +213,4 @@ void vtkEllipsoidalGaussianKernel::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Sharpness: " << this->GetSharpness() << endl;
   os << indent << "Eccentricity: " << this->GetEccentricity() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkEllipsoidalGaussianKernel.h b/Filters/Points/vtkEllipsoidalGaussianKernel.h
index cfcfc7aaacc31e1372f4dfaf51d2dbe284216925..a115d83d1ac6f24d5f3cbbd9066dacc4f13561e6 100644
--- a/Filters/Points/vtkEllipsoidalGaussianKernel.h
+++ b/Filters/Points/vtkEllipsoidalGaussianKernel.h
@@ -51,6 +51,7 @@
 #include "vtkGeneralizedKernel.h"
 #include "vtkStdString.h" // For vtkStdString ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDataArray;
 class vtkDoubleArray;
@@ -192,4 +193,5 @@ private:
   void operator=(const vtkEllipsoidalGaussianKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkEuclideanClusterExtraction.cxx b/Filters/Points/vtkEuclideanClusterExtraction.cxx
index 4d9e12aa21b474665b79f44ff1dd235c13da490d..452b1164d2f7e204dc95fe166395321b4de4ab47 100644
--- a/Filters/Points/vtkEuclideanClusterExtraction.cxx
+++ b/Filters/Points/vtkEuclideanClusterExtraction.cxx
@@ -27,6 +27,7 @@
 #include "vtkPoints.h"
 #include "vtkStaticPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEuclideanClusterExtraction);
 vtkCxxSetObjectMacro(vtkEuclideanClusterExtraction, Locator, vtkAbstractPointLocator);
 
@@ -448,3 +449,4 @@ void vtkEuclideanClusterExtraction::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Locator: " << this->Locator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkEuclideanClusterExtraction.h b/Filters/Points/vtkEuclideanClusterExtraction.h
index 948b43254ff9ad5e9fa24e5f0816e5c9a5ade1fd..38c1cf39ab3b72f56a6a98972d072672ae8e6af7 100644
--- a/Filters/Points/vtkEuclideanClusterExtraction.h
+++ b/Filters/Points/vtkEuclideanClusterExtraction.h
@@ -60,6 +60,7 @@
 #define VTK_EXTRACT_ALL_CLUSTERS 4
 #define VTK_EXTRACT_CLOSEST_POINT_CLUSTER 5
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkFloatArray;
 class vtkIdList;
@@ -264,4 +265,5 @@ inline const char* vtkEuclideanClusterExtraction::GetExtractionModeAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkExtractEnclosedPoints.cxx b/Filters/Points/vtkExtractEnclosedPoints.cxx
index bed79b3717d68d94f874d21bb09fb2bddbc42aeb..22a80bd6e32d36a12463749bdfa550074433af57 100644
--- a/Filters/Points/vtkExtractEnclosedPoints.cxx
+++ b/Filters/Points/vtkExtractEnclosedPoints.cxx
@@ -41,6 +41,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractEnclosedPoints);
 
 //------------------------------------------------------------------------------
@@ -277,3 +278,4 @@ void vtkExtractEnclosedPoints::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Tolerance: " << this->Tolerance << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkExtractEnclosedPoints.h b/Filters/Points/vtkExtractEnclosedPoints.h
index e4ae1d62b61ead651899e08cbe82da95c0ef5c61..329ed0fc1f7eb1d091acddaa7fb1f2e95694cfc1 100644
--- a/Filters/Points/vtkExtractEnclosedPoints.h
+++ b/Filters/Points/vtkExtractEnclosedPoints.h
@@ -56,6 +56,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPointCloudFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPOINTS_EXPORT vtkExtractEnclosedPoints : public vtkPointCloudFilter
 {
 public:
@@ -126,4 +127,5 @@ private:
   void operator=(const vtkExtractEnclosedPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkExtractHierarchicalBins.cxx b/Filters/Points/vtkExtractHierarchicalBins.cxx
index 0ab39e7b10db428155ba41c521da33e5ada4db69..35d806894eb1cd1554c424c93dd7744da2220653 100644
--- a/Filters/Points/vtkExtractHierarchicalBins.cxx
+++ b/Filters/Points/vtkExtractHierarchicalBins.cxx
@@ -21,6 +21,7 @@
 #include "vtkPointSet.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractHierarchicalBins);
 vtkCxxSetObjectMacro(vtkExtractHierarchicalBins, BinningFilter, vtkHierarchicalBinningFilter);
 
@@ -112,3 +113,4 @@ void vtkExtractHierarchicalBins::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Bin: " << this->Bin << "\n";
   os << indent << "Binning Filter: " << static_cast<void*>(this->BinningFilter) << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkExtractHierarchicalBins.h b/Filters/Points/vtkExtractHierarchicalBins.h
index 1404bbcba71702b17713dbfdfd1dcce447f814e8..d589a818e3939e59dd414fdc85725603b54ba3b0 100644
--- a/Filters/Points/vtkExtractHierarchicalBins.h
+++ b/Filters/Points/vtkExtractHierarchicalBins.h
@@ -43,6 +43,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPointCloudFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHierarchicalBinningFilter;
 class vtkPointSet;
 
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkExtractHierarchicalBins&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkExtractPointCloudPiece.cxx b/Filters/Points/vtkExtractPointCloudPiece.cxx
index 747b883148e0e3e37ae059ee36c2cd3c3da66e95..a71e97a7797dba552a93cabd6f6d8a567217f931 100644
--- a/Filters/Points/vtkExtractPointCloudPiece.cxx
+++ b/Filters/Points/vtkExtractPointCloudPiece.cxx
@@ -24,6 +24,7 @@
 #include "vtkDoubleArray.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractPointCloudPiece);
 
 //------------------------------------------------------------------------------
@@ -130,3 +131,4 @@ void vtkExtractPointCloudPiece::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "ModuloOrdering: " << this->ModuloOrdering << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkExtractPointCloudPiece.h b/Filters/Points/vtkExtractPointCloudPiece.h
index 8b4ab0063cc4da4b4fcb12940d6c57cc1492779d..9cc7dfd15233a477b8846450cdd37fc81fac4adc 100644
--- a/Filters/Points/vtkExtractPointCloudPiece.h
+++ b/Filters/Points/vtkExtractPointCloudPiece.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkIntArray;
 
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkExtractPointCloudPiece&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkExtractPoints.cxx b/Filters/Points/vtkExtractPoints.cxx
index e11e341cb7d59be204c36849d97b5c3d6a134beb..bbce79a2dc1102060db026fe0ab8dd7c99b51356 100644
--- a/Filters/Points/vtkExtractPoints.cxx
+++ b/Filters/Points/vtkExtractPoints.cxx
@@ -20,6 +20,7 @@
 #include "vtkPoints.h"
 #include "vtkSMPTools.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractPoints);
 vtkCxxSetObjectMacro(vtkExtractPoints, ImplicitFunction, vtkImplicitFunction);
 
@@ -137,3 +138,4 @@ void vtkExtractPoints::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Implicit Function: " << static_cast<void*>(this->ImplicitFunction) << "\n";
   os << indent << "Extract Inside: " << (this->ExtractInside ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkExtractPoints.h b/Filters/Points/vtkExtractPoints.h
index 4136b3eeb9ebbde5cbee2a981ebb8364f33da1a8..9646a8a7bfc5c8946c96ab91383bea041acc9eb2 100644
--- a/Filters/Points/vtkExtractPoints.h
+++ b/Filters/Points/vtkExtractPoints.h
@@ -59,6 +59,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPointCloudFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
 class vtkPointSet;
 
@@ -115,4 +116,5 @@ private:
   void operator=(const vtkExtractPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkExtractSurface.cxx b/Filters/Points/vtkExtractSurface.cxx
index 15ba09d85e6e8736ba7d563017bdec6dd2f44d94..1586468ec741b4b9499f9d138c3ebc66a0c4f7ee 100644
--- a/Filters/Points/vtkExtractSurface.cxx
+++ b/Filters/Points/vtkExtractSurface.cxx
@@ -32,6 +32,7 @@
 #include <cfloat>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractSurface);
 
 //------------------------------------------------------------------------------
@@ -1424,3 +1425,4 @@ void vtkExtractSurface::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Compute Normals: " << (this->ComputeNormals ? "On\n" : "Off\n");
   os << indent << "Compute Gradients: " << (this->ComputeGradients ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkExtractSurface.h b/Filters/Points/vtkExtractSurface.h
index 1dd7e5d7878b3a415a9e5529f677fdedaa18dc65..e4ee0271077a78e0a76db3c0b280d7df6322d907 100644
--- a/Filters/Points/vtkExtractSurface.h
+++ b/Filters/Points/vtkExtractSurface.h
@@ -105,6 +105,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKFILTERSPOINTS_EXPORT vtkExtractSurface : public vtkPolyDataAlgorithm
@@ -185,4 +186,5 @@ private:
   void operator=(const vtkExtractSurface&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkFitImplicitFunction.cxx b/Filters/Points/vtkFitImplicitFunction.cxx
index 837795078a0fd412fa6b309de14702a722e1d025..cb62d865f2f40eb08a05a059ee0533f6e270630f 100644
--- a/Filters/Points/vtkFitImplicitFunction.cxx
+++ b/Filters/Points/vtkFitImplicitFunction.cxx
@@ -20,6 +20,7 @@
 #include "vtkPoints.h"
 #include "vtkSMPTools.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFitImplicitFunction);
 vtkCxxSetObjectMacro(vtkFitImplicitFunction, ImplicitFunction, vtkImplicitFunction);
 
@@ -139,3 +140,4 @@ void vtkFitImplicitFunction::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Implicit Function: " << static_cast<void*>(this->ImplicitFunction) << "\n";
   os << indent << "Threshold: " << this->Threshold << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkFitImplicitFunction.h b/Filters/Points/vtkFitImplicitFunction.h
index d9e245b3eb97719c3171e345e623ca324887e138..255a1c9285a09393dd7a439ded9f78b817c1e6c1 100644
--- a/Filters/Points/vtkFitImplicitFunction.h
+++ b/Filters/Points/vtkFitImplicitFunction.h
@@ -55,6 +55,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPointCloudFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
 class vtkPointSet;
 
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkFitImplicitFunction&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkGaussianKernel.cxx b/Filters/Points/vtkGaussianKernel.cxx
index 0ddd4eb2fad20b616befc0c4f3dbd74068389087..2cc7ca9143c0079dd85286ffa8b7e8e0ef3df7ba 100644
--- a/Filters/Points/vtkGaussianKernel.cxx
+++ b/Filters/Points/vtkGaussianKernel.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGaussianKernel);
 
 //------------------------------------------------------------------------------
@@ -95,3 +96,4 @@ void vtkGaussianKernel::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Sharpness: " << this->GetSharpness() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkGaussianKernel.h b/Filters/Points/vtkGaussianKernel.h
index 81c81c7ab00adde31ac45d37c13a850e9d525d67..425f83c95f53a3ac8d2fd028d873026d5b31819e 100644
--- a/Filters/Points/vtkGaussianKernel.h
+++ b/Filters/Points/vtkGaussianKernel.h
@@ -40,6 +40,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkGeneralizedKernel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDoubleArray;
 
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkGaussianKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkGeneralizedKernel.cxx b/Filters/Points/vtkGeneralizedKernel.cxx
index 38c1937b2d3716e9db21fe4b6553ec2d03c58120..7ba49aede16a08f95ae192a99baaa11f862663dc 100644
--- a/Filters/Points/vtkGeneralizedKernel.cxx
+++ b/Filters/Points/vtkGeneralizedKernel.cxx
@@ -22,6 +22,7 @@
 #include "vtkPointData.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkGeneralizedKernel::vtkGeneralizedKernel()
 {
   this->KernelFootprint = vtkGeneralizedKernel::RADIUS;
@@ -58,3 +59,4 @@ void vtkGeneralizedKernel::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Number of Points: " << this->GetNumberOfPoints() << "\n";
   os << indent << "Normalize Weights: " << (this->GetNormalizeWeights() ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkGeneralizedKernel.h b/Filters/Points/vtkGeneralizedKernel.h
index ca50a15d9fbca0072842eda1eb3daa3ed0f81cef..0d593d043c3e4c6fb2bef026b987879f6f18e6f5 100644
--- a/Filters/Points/vtkGeneralizedKernel.h
+++ b/Filters/Points/vtkGeneralizedKernel.h
@@ -66,6 +66,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkInterpolationKernel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPOINTS_EXPORT vtkGeneralizedKernel : public vtkInterpolationKernel
 {
 public:
@@ -190,4 +191,5 @@ private:
   void operator=(const vtkGeneralizedKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkHierarchicalBinningFilter.cxx b/Filters/Points/vtkHierarchicalBinningFilter.cxx
index 76369b88d2b1fc946f094cfcf8a97273ecdb354e..1c5fde62f1ac06041d00a4f83ca4688ef9c001f5 100644
--- a/Filters/Points/vtkHierarchicalBinningFilter.cxx
+++ b/Filters/Points/vtkHierarchicalBinningFilter.cxx
@@ -27,6 +27,7 @@
 #include "vtkPoints.h"
 #include "vtkSMPTools.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHierarchicalBinningFilter);
 
 namespace
@@ -898,3 +899,4 @@ void vtkHierarchicalBinningFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Divisions: (" << this->Divisions[0] << "," << this->Divisions[1] << ","
      << this->Divisions[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkHierarchicalBinningFilter.h b/Filters/Points/vtkHierarchicalBinningFilter.h
index 7e254662b3ec2e41cca785470ff412ea90d1c756..0e02b5ab4c5972e62ff256bb2814912cc51410d6 100644
--- a/Filters/Points/vtkHierarchicalBinningFilter.h
+++ b/Filters/Points/vtkHierarchicalBinningFilter.h
@@ -75,6 +75,7 @@
 
 #define VTK_MAX_LEVEL 12
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkBinTree;
 
 class VTKFILTERSPOINTS_EXPORT vtkHierarchicalBinningFilter : public vtkPolyDataAlgorithm
@@ -209,4 +210,5 @@ private:
   void operator=(const vtkHierarchicalBinningFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkInterpolationKernel.cxx b/Filters/Points/vtkInterpolationKernel.cxx
index d30dc9c9cedbfaee727258cb64feb61d0bb05652..fddaf2e2943beb4a4a3382dcfce9924ad7eada31 100644
--- a/Filters/Points/vtkInterpolationKernel.cxx
+++ b/Filters/Points/vtkInterpolationKernel.cxx
@@ -18,6 +18,7 @@
 #include "vtkPointData.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkInterpolationKernel::vtkInterpolationKernel()
 {
   this->RequiresInitialization = true;
@@ -118,3 +119,4 @@ void vtkInterpolationKernel::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "PointData: (None)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkInterpolationKernel.h b/Filters/Points/vtkInterpolationKernel.h
index 3e621318cab64442c7c737448880e8005413c62d..a1cc7eaa978dbd46afb63471cf5eb7078f085d34 100644
--- a/Filters/Points/vtkInterpolationKernel.h
+++ b/Filters/Points/vtkInterpolationKernel.h
@@ -54,6 +54,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 class vtkIdList;
 class vtkDoubleArray;
@@ -134,4 +135,5 @@ private:
   void operator=(const vtkInterpolationKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkLinearKernel.cxx b/Filters/Points/vtkLinearKernel.cxx
index 1ab41d316153c02529108fdbd56f0bbfe980ab9c..0249b1b6f5a7cf38b1cd431ac1af2da7a5fd7706 100644
--- a/Filters/Points/vtkLinearKernel.cxx
+++ b/Filters/Points/vtkLinearKernel.cxx
@@ -18,6 +18,7 @@
 #include "vtkIdList.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLinearKernel);
 
 //------------------------------------------------------------------------------
@@ -70,3 +71,4 @@ void vtkLinearKernel::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkLinearKernel.h b/Filters/Points/vtkLinearKernel.h
index f336060798321614a4552281413415751c855aff..dde4d1160c8af72f2a33fe86f285a3803dca2fd7 100644
--- a/Filters/Points/vtkLinearKernel.h
+++ b/Filters/Points/vtkLinearKernel.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkGeneralizedKernel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDoubleArray;
 
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkLinearKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkMaskPointsFilter.cxx b/Filters/Points/vtkMaskPointsFilter.cxx
index 702ba0214943f728b68230487ce5aba650d5e6fe..39eb9d448dddc3fe25ccee53ae5306d18ae477ad 100644
--- a/Filters/Points/vtkMaskPointsFilter.cxx
+++ b/Filters/Points/vtkMaskPointsFilter.cxx
@@ -25,6 +25,7 @@
 #include "vtkSMPTools.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMaskPointsFilter);
 
 //------------------------------------------------------------------------------
@@ -261,3 +262,4 @@ void vtkMaskPointsFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Empty Value: " << this->EmptyValue << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkMaskPointsFilter.h b/Filters/Points/vtkMaskPointsFilter.h
index 437f0519ad30de62c754e2d3ccfe45ccfa372b60..568b05a912b7004b1b7c2a7d8e50323d6301153c 100644
--- a/Filters/Points/vtkMaskPointsFilter.h
+++ b/Filters/Points/vtkMaskPointsFilter.h
@@ -53,6 +53,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPointCloudFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkPointSet;
 
@@ -115,4 +116,5 @@ private:
   void operator=(const vtkMaskPointsFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkPCACurvatureEstimation.cxx b/Filters/Points/vtkPCACurvatureEstimation.cxx
index b43d283b711e12178a75fe88beec3b5e0f96d03d..defde6b3b7d542671dece80f941f509f357eb224 100644
--- a/Filters/Points/vtkPCACurvatureEstimation.cxx
+++ b/Filters/Points/vtkPCACurvatureEstimation.cxx
@@ -27,6 +27,7 @@
 #include "vtkSMPTools.h"
 #include "vtkStaticPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPCACurvatureEstimation);
 vtkCxxSetObjectMacro(vtkPCACurvatureEstimation, Locator, vtkAbstractPointLocator);
 
@@ -239,3 +240,4 @@ void vtkPCACurvatureEstimation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Sample Size: " << this->SampleSize << "\n";
   os << indent << "Locator: " << this->Locator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkPCACurvatureEstimation.h b/Filters/Points/vtkPCACurvatureEstimation.h
index 6243378e4577a8b3e64fa1aa798c841eb2db5803..ab4f32905b60d4bc03fbef7288e97abb81b59179 100644
--- a/Filters/Points/vtkPCACurvatureEstimation.h
+++ b/Filters/Points/vtkPCACurvatureEstimation.h
@@ -54,6 +54,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 
 class VTKFILTERSPOINTS_EXPORT vtkPCACurvatureEstimation : public vtkPolyDataAlgorithm
@@ -106,4 +107,5 @@ private:
   void operator=(const vtkPCACurvatureEstimation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkPCANormalEstimation.cxx b/Filters/Points/vtkPCANormalEstimation.cxx
index bc659d2585bc44db49b8e13fc55277406cfeaa0e..11d8ca0dbb09596c74ac0ab54b5a2129a952339e 100644
--- a/Filters/Points/vtkPCANormalEstimation.cxx
+++ b/Filters/Points/vtkPCANormalEstimation.cxx
@@ -28,6 +28,7 @@
 #include "vtkSMPTools.h"
 #include "vtkStaticPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPCANormalEstimation);
 vtkCxxSetObjectMacro(vtkPCANormalEstimation, Locator, vtkAbstractPointLocator);
 
@@ -355,3 +356,4 @@ void vtkPCANormalEstimation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Flip Normals: " << (this->FlipNormals ? "On\n" : "Off\n");
   os << indent << "Locator: " << this->Locator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkPCANormalEstimation.h b/Filters/Points/vtkPCANormalEstimation.h
index 3dc0b2d9f58fe54986f3bc6b351a9171cc3dc9c9..c8e53a01613f881ec0b4d94b7553d9a046647a38 100644
--- a/Filters/Points/vtkPCANormalEstimation.h
+++ b/Filters/Points/vtkPCANormalEstimation.h
@@ -58,6 +58,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 class vtkIdList;
 
@@ -169,4 +170,5 @@ private:
   void operator=(const vtkPCANormalEstimation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkPointCloudFilter.cxx b/Filters/Points/vtkPointCloudFilter.cxx
index 26261a20fc9bc92b093b265b56ec09df247c2898..2728187bb6ffa3b4c5edf9edabec4ba59d7514fe 100644
--- a/Filters/Points/vtkPointCloudFilter.cxx
+++ b/Filters/Points/vtkPointCloudFilter.cxx
@@ -33,6 +33,7 @@
 
 //------------------------------------------------------------------------------
 // Helper classes to support efficient computing, and threaded execution.
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -310,3 +311,4 @@ void vtkPointCloudFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Generate Vertices: " << (this->GenerateVertices ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkPointCloudFilter.h b/Filters/Points/vtkPointCloudFilter.h
index 3932c627e7bfedc0e6755ec446d9176ebb6b628e..9e1278ebf9a214ae9789b06138d1fb810f2906ad 100644
--- a/Filters/Points/vtkPointCloudFilter.h
+++ b/Filters/Points/vtkPointCloudFilter.h
@@ -60,6 +60,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPointSet;
 class vtkPolyData;
 
@@ -143,4 +144,5 @@ private:
   void operator=(const vtkPointCloudFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkPointDensityFilter.cxx b/Filters/Points/vtkPointDensityFilter.cxx
index dfd0d026b3730c520317ca5fac39816dca90c240..4868c2fcd837a42599622dcdb755480d86c9887c 100644
--- a/Filters/Points/vtkPointDensityFilter.cxx
+++ b/Filters/Points/vtkPointDensityFilter.cxx
@@ -32,6 +32,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointDensityFilter);
 vtkCxxSetObjectMacro(vtkPointDensityFilter, Locator, vtkAbstractPointLocator);
 
@@ -681,3 +682,4 @@ void vtkPointDensityFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Locator: " << this->Locator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkPointDensityFilter.h b/Filters/Points/vtkPointDensityFilter.h
index 6332f8ae90d034319e0a9bfb027b19568eff8a04..171883854cc3fb7e28c898dfbe5708bb924d9959 100644
--- a/Filters/Points/vtkPointDensityFilter.h
+++ b/Filters/Points/vtkPointDensityFilter.h
@@ -86,6 +86,7 @@
 #define VTK_DENSITY_FORM_VOLUME_NORM 0
 #define VTK_DENSITY_FORM_NPTS 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 
 class VTKFILTERSPOINTS_EXPORT vtkPointDensityFilter : public vtkImageAlgorithm
@@ -262,4 +263,5 @@ private:
   void operator=(const vtkPointDensityFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkPointInterpolator.cxx b/Filters/Points/vtkPointInterpolator.cxx
index 16b39a0b4b937e4a821eaba76cd7176d5c18ba73..2bbd5cac14a97fd5085b556335b45ef35b65f530 100644
--- a/Filters/Points/vtkPointInterpolator.cxx
+++ b/Filters/Points/vtkPointInterpolator.cxx
@@ -39,6 +39,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointInterpolator);
 vtkCxxSetObjectMacro(vtkPointInterpolator, Locator, vtkAbstractPointLocator);
 vtkCxxSetObjectMacro(vtkPointInterpolator, Kernel, vtkInterpolationKernel);
@@ -518,3 +519,4 @@ void vtkPointInterpolator::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Pass Cell Arrays: " << (this->PassCellArrays ? "On" : " Off") << "\n";
   os << indent << "Pass Field Arrays: " << (this->PassFieldArrays ? "On" : " Off") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkPointInterpolator.h b/Filters/Points/vtkPointInterpolator.h
index a758e56b810fa09aa07a3acecb95119a8800fa1f..d61ded9c91788592d5b2de33283b373b8a2bf924 100644
--- a/Filters/Points/vtkPointInterpolator.h
+++ b/Filters/Points/vtkPointInterpolator.h
@@ -70,6 +70,7 @@
 #include "vtkStdString.h"           // For vtkStdString ivars
 #include <vector>                   //For STL vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 class vtkIdList;
 class vtkDoubleArray;
@@ -311,4 +312,5 @@ private:
   void operator=(const vtkPointInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkPointInterpolator2D.cxx b/Filters/Points/vtkPointInterpolator2D.cxx
index 170b4e9b060f7d37287ecd83edb125bd2946119c..b0542c95f4c74822f7b8ca8d6f3b7f5c40952d9b 100644
--- a/Filters/Points/vtkPointInterpolator2D.cxx
+++ b/Filters/Points/vtkPointInterpolator2D.cxx
@@ -37,6 +37,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkVoronoiKernel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointInterpolator2D);
 
 //------------------------------------------------------------------------------
@@ -299,3 +300,4 @@ void vtkPointInterpolator2D::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Interpolate Z: " << (this->InterpolateZ ? "On" : " Off") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkPointInterpolator2D.h b/Filters/Points/vtkPointInterpolator2D.h
index efb55c1e60750307e2626d8659ee5e82c9daf766..35f6248cafe304d846ac0b60e835409b806069bc 100644
--- a/Filters/Points/vtkPointInterpolator2D.h
+++ b/Filters/Points/vtkPointInterpolator2D.h
@@ -64,6 +64,7 @@
 #include "vtkPointInterpolator.h"
 #include "vtkStdString.h" // For vtkStdString ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPOINTS_EXPORT vtkPointInterpolator2D : public vtkPointInterpolator
 {
 public:
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkPointInterpolator2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkPointOccupancyFilter.cxx b/Filters/Points/vtkPointOccupancyFilter.cxx
index 053fdd8e44c1919a67ea9ee7dc81d85a748e03ff..20e2ee94636b9d8ce9120e4bcc37eae64c4cdf6c 100644
--- a/Filters/Points/vtkPointOccupancyFilter.cxx
+++ b/Filters/Points/vtkPointOccupancyFilter.cxx
@@ -27,6 +27,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointOccupancyFilter);
 
 //------------------------------------------------------------------------------
@@ -342,3 +343,4 @@ void vtkPointOccupancyFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Empty Value: " << this->EmptyValue << "\n";
   os << indent << "Occupied Value: " << this->OccupiedValue << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkPointOccupancyFilter.h b/Filters/Points/vtkPointOccupancyFilter.h
index b56ff028088ce1b8c48d190995f77f281bdae159..910bdb3506c91307ed1e3d9828e93ca5c1eefe95 100644
--- a/Filters/Points/vtkPointOccupancyFilter.h
+++ b/Filters/Points/vtkPointOccupancyFilter.h
@@ -45,6 +45,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPOINTS_EXPORT vtkPointOccupancyFilter : public vtkImageAlgorithm
 {
 public:
@@ -112,4 +113,5 @@ private:
   void operator=(const vtkPointOccupancyFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkPointSmoothingFilter.cxx b/Filters/Points/vtkPointSmoothingFilter.cxx
index aeccae8f20f2a22b170230838240beb2dcf51874..24723fe847dd4548cb0ade5c4376d803b59ad677 100644
--- a/Filters/Points/vtkPointSmoothingFilter.cxx
+++ b/Filters/Points/vtkPointSmoothingFilter.cxx
@@ -37,6 +37,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkStaticPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointSmoothingFilter);
 
 vtkCxxSetObjectMacro(vtkPointSmoothingFilter, FrameFieldArray, vtkDataArray);
@@ -1399,3 +1400,4 @@ void vtkPointSmoothingFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Motion Constraint: " << this->MotionConstraint << "\n";
   os << indent << "Plane: " << this->Plane << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkPointSmoothingFilter.h b/Filters/Points/vtkPointSmoothingFilter.h
index e0feae7748909457f0763e08ceb18db2b7238e2c..f28dc4344affb94ed2175d7627bb07a1c295cb04 100644
--- a/Filters/Points/vtkPointSmoothingFilter.h
+++ b/Filters/Points/vtkPointSmoothingFilter.h
@@ -98,6 +98,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 class vtkDataArray;
 class vtkPlane;
@@ -383,4 +384,5 @@ private:
   void operator=(const vtkPointSmoothingFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkPoissonDiskSampler.cxx b/Filters/Points/vtkPoissonDiskSampler.cxx
index 83beef94ca8912639d07eba7d9f0f0c4475b35e4..9d6f3961b48e78b5ae623bd70b39c46fc9182ced 100644
--- a/Filters/Points/vtkPoissonDiskSampler.cxx
+++ b/Filters/Points/vtkPoissonDiskSampler.cxx
@@ -34,6 +34,7 @@
 #include <unordered_set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPoissonDiskSampler);
 vtkCxxSetObjectMacro(vtkPoissonDiskSampler, Locator, vtkAbstractPointLocator);
 
@@ -189,3 +190,4 @@ void vtkPoissonDiskSampler::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkPoissonDiskSampler.h b/Filters/Points/vtkPoissonDiskSampler.h
index a1ce1bb86a025ef4978ca8633b55d41207be2f12..45c95a670086f80ac673f54d6c675d77b64a88c9 100644
--- a/Filters/Points/vtkPoissonDiskSampler.h
+++ b/Filters/Points/vtkPoissonDiskSampler.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 class vtkIdList;
 
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkPoissonDiskSampler&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkProbabilisticVoronoiKernel.cxx b/Filters/Points/vtkProbabilisticVoronoiKernel.cxx
index 5280c68f36884ee1e65cf37a4eae87c18b122995..41526bc81eb69ce6af8477411b328d719245631c 100644
--- a/Filters/Points/vtkProbabilisticVoronoiKernel.cxx
+++ b/Filters/Points/vtkProbabilisticVoronoiKernel.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProbabilisticVoronoiKernel);
 
 //------------------------------------------------------------------------------
@@ -87,3 +88,4 @@ void vtkProbabilisticVoronoiKernel::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkProbabilisticVoronoiKernel.h b/Filters/Points/vtkProbabilisticVoronoiKernel.h
index c1294d77ff16d6b34eb4c6b53ba63546da46d83a..608898e2ad05809bc8d8d2a9618ad9cc5b8395fc 100644
--- a/Filters/Points/vtkProbabilisticVoronoiKernel.h
+++ b/Filters/Points/vtkProbabilisticVoronoiKernel.h
@@ -39,6 +39,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkGeneralizedKernel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDoubleArray;
 
@@ -83,4 +84,5 @@ private:
   void operator=(const vtkProbabilisticVoronoiKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkProjectPointsToPlane.cxx b/Filters/Points/vtkProjectPointsToPlane.cxx
index 98b34918053a6f274f793563d919b559173065d1..a9aa68633f469623cab336be0904db4c3cecac5a 100644
--- a/Filters/Points/vtkProjectPointsToPlane.cxx
+++ b/Filters/Points/vtkProjectPointsToPlane.cxx
@@ -28,6 +28,7 @@
 #include "vtkPoints.h"
 #include "vtkSMPTools.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProjectPointsToPlane);
 
 // Projection algorithms
@@ -299,3 +300,4 @@ void vtkProjectPointsToPlane::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkProjectPointsToPlane.h b/Filters/Points/vtkProjectPointsToPlane.h
index 40aa9d8643af7203d4fd47c605790ef699e1deb8..3a2420fbeafe887d8b3fd7063247ab758826077c 100644
--- a/Filters/Points/vtkProjectPointsToPlane.h
+++ b/Filters/Points/vtkProjectPointsToPlane.h
@@ -41,6 +41,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPointSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPOINTS_EXPORT vtkProjectPointsToPlane : public vtkPointSetAlgorithm
 {
 public:
@@ -130,4 +131,5 @@ private:
   void operator=(const vtkProjectPointsToPlane&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkRadiusOutlierRemoval.cxx b/Filters/Points/vtkRadiusOutlierRemoval.cxx
index 9411f275f92639350f1204f507c370268934d7e7..74cf2d537c1e48c90c6fbf473d237547ff1bf1bc 100644
--- a/Filters/Points/vtkRadiusOutlierRemoval.cxx
+++ b/Filters/Points/vtkRadiusOutlierRemoval.cxx
@@ -23,6 +23,7 @@
 #include "vtkSMPTools.h"
 #include "vtkStaticPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRadiusOutlierRemoval);
 vtkCxxSetObjectMacro(vtkRadiusOutlierRemoval, Locator, vtkAbstractPointLocator);
 
@@ -149,3 +150,4 @@ void vtkRadiusOutlierRemoval::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Number of Neighbors: " << this->NumberOfNeighbors << "\n";
   os << indent << "Locator: " << this->Locator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkRadiusOutlierRemoval.h b/Filters/Points/vtkRadiusOutlierRemoval.h
index 582fb3f30bd273cf9ea4c0a2e1186430663fadbf..4ddba9590aa0386ac17e41c2b1be4c69e22f72ab 100644
--- a/Filters/Points/vtkRadiusOutlierRemoval.h
+++ b/Filters/Points/vtkRadiusOutlierRemoval.h
@@ -52,6 +52,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPointCloudFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 class vtkPointSet;
 
@@ -112,4 +113,5 @@ private:
   void operator=(const vtkRadiusOutlierRemoval&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkSPHCubicKernel.cxx b/Filters/Points/vtkSPHCubicKernel.cxx
index b59c83b7120247e9a8d8250bc5d8f6aeb8039611..7387d26cfce8efd483b2a8856baa1c3e748e0f23 100644
--- a/Filters/Points/vtkSPHCubicKernel.cxx
+++ b/Filters/Points/vtkSPHCubicKernel.cxx
@@ -17,6 +17,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSPHCubicKernel);
 
 //------------------------------------------------------------------------------
@@ -68,3 +69,4 @@ void vtkSPHCubicKernel::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkSPHCubicKernel.h b/Filters/Points/vtkSPHCubicKernel.h
index 55604a4d61bedc8ca46c53cd5f97f0ef53d432fa..0aba72e4dbc046bab5054a4923db61941b9385ee 100644
--- a/Filters/Points/vtkSPHCubicKernel.h
+++ b/Filters/Points/vtkSPHCubicKernel.h
@@ -41,6 +41,7 @@
 #include "vtkSPHKernel.h"
 #include <algorithm> // For std::min()
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDoubleArray;
 
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkSPHCubicKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkSPHInterpolator.cxx b/Filters/Points/vtkSPHInterpolator.cxx
index 17ed494960621fcd1bdc5b0eaab3e029b8daba40..6fc04750bcf4b7dde56fba3af714f57a82332b9c 100644
--- a/Filters/Points/vtkSPHInterpolator.cxx
+++ b/Filters/Points/vtkSPHInterpolator.cxx
@@ -40,6 +40,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSPHInterpolator);
 vtkCxxSetObjectMacro(vtkSPHInterpolator, Locator, vtkAbstractPointLocator);
 vtkCxxSetObjectMacro(vtkSPHInterpolator, Kernel, vtkSPHKernel);
@@ -575,3 +576,4 @@ void vtkSPHInterpolator::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Shepard Normalization: " << (this->ShepardNormalization ? "On" : " Off") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkSPHInterpolator.h b/Filters/Points/vtkSPHInterpolator.h
index de12cab2b99f02717bd331f13fdb3abe3c49e065..c360b2331d4c5775556b77a0c50163420277701b 100644
--- a/Filters/Points/vtkSPHInterpolator.h
+++ b/Filters/Points/vtkSPHInterpolator.h
@@ -82,6 +82,7 @@
 #include "vtkStdString.h"           // For vtkStdString ivars
 #include <vector>                   //For STL vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 class vtkIdList;
 class vtkDoubleArray;
@@ -438,4 +439,5 @@ private:
   void operator=(const vtkSPHInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkSPHKernel.cxx b/Filters/Points/vtkSPHKernel.cxx
index c9ba7b3d9bff0c4dc9517cbd139592a46f9bc818..93b4a1f1fad5eeb3a6ec20979e383962f796625f 100644
--- a/Filters/Points/vtkSPHKernel.cxx
+++ b/Filters/Points/vtkSPHKernel.cxx
@@ -22,6 +22,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkSPHKernel, CutoffArray, vtkDataArray);
 vtkCxxSetObjectMacro(vtkSPHKernel, DensityArray, vtkDataArray);
 vtkCxxSetObjectMacro(vtkSPHKernel, MassArray, vtkDataArray);
@@ -168,3 +169,4 @@ void vtkSPHKernel::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Density Array: " << this->DensityArray << "\n";
   os << indent << "Mass Array: " << this->MassArray << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkSPHKernel.h b/Filters/Points/vtkSPHKernel.h
index 365f738fa2599e18338237067b5b4f39dbbbdaba..47a2fdeeee3b462ce9e89e5869ca895f70531e56 100644
--- a/Filters/Points/vtkSPHKernel.h
+++ b/Filters/Points/vtkSPHKernel.h
@@ -58,6 +58,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkInterpolationKernel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDoubleArray;
 class vtkDataArray;
@@ -207,4 +208,5 @@ private:
   void operator=(const vtkSPHKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkSPHQuarticKernel.cxx b/Filters/Points/vtkSPHQuarticKernel.cxx
index d908afc5bae69a2457336308a34cccd32d33ac8f..46d6621044cef189e028317235a28eb8badc8cef 100644
--- a/Filters/Points/vtkSPHQuarticKernel.cxx
+++ b/Filters/Points/vtkSPHQuarticKernel.cxx
@@ -17,6 +17,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSPHQuarticKernel);
 
 //------------------------------------------------------------------------------
@@ -69,3 +70,4 @@ void vtkSPHQuarticKernel::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkSPHQuarticKernel.h b/Filters/Points/vtkSPHQuarticKernel.h
index 8ab875ebc6b8596015bbcc3df4d96ff23511f83a..0d9d2190bf8c2748d20d8694f34fa94a338a952c 100644
--- a/Filters/Points/vtkSPHQuarticKernel.h
+++ b/Filters/Points/vtkSPHQuarticKernel.h
@@ -41,6 +41,7 @@
 #include "vtkSPHKernel.h"
 #include <algorithm> // For std::min()
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDoubleArray;
 
@@ -99,4 +100,5 @@ private:
   void operator=(const vtkSPHQuarticKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkSPHQuinticKernel.cxx b/Filters/Points/vtkSPHQuinticKernel.cxx
index 778b405e103540cf7048dc5995509ecca1dfe491..2837e0f357b0de6c65af6347480f58d268c97ff1 100644
--- a/Filters/Points/vtkSPHQuinticKernel.cxx
+++ b/Filters/Points/vtkSPHQuinticKernel.cxx
@@ -17,6 +17,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSPHQuinticKernel);
 
 //------------------------------------------------------------------------------
@@ -56,3 +57,4 @@ void vtkSPHQuinticKernel::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkSPHQuinticKernel.h b/Filters/Points/vtkSPHQuinticKernel.h
index 0bb72c5bb993e7085135ad2efa9c5a3834b2d393..e3e1cf66623dd652ac327d217eabb1c1860c84e0 100644
--- a/Filters/Points/vtkSPHQuinticKernel.h
+++ b/Filters/Points/vtkSPHQuinticKernel.h
@@ -41,6 +41,7 @@
 #include "vtkSPHKernel.h"
 #include <algorithm> // For std::min()
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDoubleArray;
 
@@ -100,4 +101,5 @@ private:
   void operator=(const vtkSPHQuinticKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkShepardKernel.cxx b/Filters/Points/vtkShepardKernel.cxx
index 446b23577335e6281848a4cf3d4072a8b3e4c4c0..3b8968041b23a213432e9deb478ec993904c499b 100644
--- a/Filters/Points/vtkShepardKernel.cxx
+++ b/Filters/Points/vtkShepardKernel.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkShepardKernel);
 
 //------------------------------------------------------------------------------
@@ -90,3 +91,4 @@ void vtkShepardKernel::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Power Parameter: " << this->GetPowerParameter() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkShepardKernel.h b/Filters/Points/vtkShepardKernel.h
index 4a97f226e1d8c8c9eedaaa9c3ab452fcb1dc0687..a584cab9bfcef4603b1b8ded99834012d06175b7 100644
--- a/Filters/Points/vtkShepardKernel.h
+++ b/Filters/Points/vtkShepardKernel.h
@@ -38,6 +38,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkGeneralizedKernel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDoubleArray;
 
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkShepardKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkSignedDistance.cxx b/Filters/Points/vtkSignedDistance.cxx
index 873ab1cb131430f0fe844e5dcf1c6418a5a2a041..e7f64ff64be786f757e6d0c630e5ec4dc6bc4f7a 100644
--- a/Filters/Points/vtkSignedDistance.cxx
+++ b/Filters/Points/vtkSignedDistance.cxx
@@ -29,6 +29,7 @@
 #include "vtkStaticPointLocator.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSignedDistance);
 vtkCxxSetObjectMacro(vtkSignedDistance, Locator, vtkAbstractPointLocator);
 
@@ -447,3 +448,4 @@ void vtkSignedDistance::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Locator: " << this->Locator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkSignedDistance.h b/Filters/Points/vtkSignedDistance.h
index 078a223462ea520ab8379be0d7edd7c188d95ba7..8d0ebdef96ba18967d6b37340f50d2e4a98c260f 100644
--- a/Filters/Points/vtkSignedDistance.h
+++ b/Filters/Points/vtkSignedDistance.h
@@ -72,6 +72,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkAbstractPointLocator;
 
@@ -174,4 +175,5 @@ private:
   void operator=(const vtkSignedDistance&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkStatisticalOutlierRemoval.cxx b/Filters/Points/vtkStatisticalOutlierRemoval.cxx
index 8b9bccff850cede4c8de18a838ec55e5bed35f0f..350aaf22c85ad83202347a791ee3a42d4a6fade5 100644
--- a/Filters/Points/vtkStatisticalOutlierRemoval.cxx
+++ b/Filters/Points/vtkStatisticalOutlierRemoval.cxx
@@ -24,6 +24,7 @@
 #include "vtkSMPTools.h"
 #include "vtkStaticPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStatisticalOutlierRemoval);
 vtkCxxSetObjectMacro(vtkStatisticalOutlierRemoval, Locator, vtkAbstractPointLocator);
 
@@ -349,3 +350,4 @@ void vtkStatisticalOutlierRemoval::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Computed Mean: " << this->ComputedMean << "\n";
   os << indent << "Computed Standard Deviation: " << this->ComputedStandardDeviation << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkStatisticalOutlierRemoval.h b/Filters/Points/vtkStatisticalOutlierRemoval.h
index 98835adf380e0a04c9a9eb87070e33db92831be2..893e53de172f839eef18ba475c60780d46542896 100644
--- a/Filters/Points/vtkStatisticalOutlierRemoval.h
+++ b/Filters/Points/vtkStatisticalOutlierRemoval.h
@@ -53,6 +53,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPointCloudFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 class vtkPointSet;
 
@@ -139,4 +140,5 @@ private:
   void operator=(const vtkStatisticalOutlierRemoval&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkUnsignedDistance.cxx b/Filters/Points/vtkUnsignedDistance.cxx
index 7f28f337e38a9c515cb92ba1966dd86fb44fec35..f80a59ad03a57fd6b601ecda7ebe541b038e7ba5 100644
--- a/Filters/Points/vtkUnsignedDistance.cxx
+++ b/Filters/Points/vtkUnsignedDistance.cxx
@@ -29,6 +29,7 @@
 #include "vtkStaticPointLocator.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnsignedDistance);
 vtkCxxSetObjectMacro(vtkUnsignedDistance, Locator, vtkAbstractPointLocator);
 
@@ -532,3 +533,4 @@ void vtkUnsignedDistance::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Locator: " << this->Locator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkUnsignedDistance.h b/Filters/Points/vtkUnsignedDistance.h
index 367e320f3ee61a8175638d5c6e6cecd5d5dceb6c..cbafac735ff448a2df50072f07b19e14bd69d18b 100644
--- a/Filters/Points/vtkUnsignedDistance.h
+++ b/Filters/Points/vtkUnsignedDistance.h
@@ -69,6 +69,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkAbstractPointLocator;
 
@@ -228,4 +229,5 @@ private:
   void operator=(const vtkUnsignedDistance&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkVoronoiKernel.cxx b/Filters/Points/vtkVoronoiKernel.cxx
index de5a8d600424a293a26b3aad241e6f5597664bc4..bb3d5f4c7b9cf054c2eef01cc1201ba8c0e8edc9 100644
--- a/Filters/Points/vtkVoronoiKernel.cxx
+++ b/Filters/Points/vtkVoronoiKernel.cxx
@@ -18,6 +18,7 @@
 #include "vtkIdList.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVoronoiKernel);
 
 //------------------------------------------------------------------------------
@@ -50,3 +51,4 @@ void vtkVoronoiKernel::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkVoronoiKernel.h b/Filters/Points/vtkVoronoiKernel.h
index a1457d917ea3906cd08155b2ea488beea37030ae..67169b7d442dce6caa2d79dfa0b074b5f9f7071d 100644
--- a/Filters/Points/vtkVoronoiKernel.h
+++ b/Filters/Points/vtkVoronoiKernel.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkInterpolationKernel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDoubleArray;
 
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkVoronoiKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkVoxelGrid.cxx b/Filters/Points/vtkVoxelGrid.cxx
index 833fde2812d0651725a833b817880904181c23d3..2575b10060834988170f6740a5e76f8828cea052 100644
--- a/Filters/Points/vtkVoxelGrid.cxx
+++ b/Filters/Points/vtkVoxelGrid.cxx
@@ -30,6 +30,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVoxelGrid);
 vtkCxxSetObjectMacro(vtkVoxelGrid, Kernel, vtkInterpolationKernel);
 
@@ -285,3 +286,4 @@ void vtkVoxelGrid::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Number of Points Per Bin: " << this->NumberOfPointsPerBin << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkVoxelGrid.h b/Filters/Points/vtkVoxelGrid.h
index f5d224db403a85e10824e91a7098f1f2acdc7e65..e6042ef043b2de2523362974763dab68ac0ef098 100644
--- a/Filters/Points/vtkVoxelGrid.h
+++ b/Filters/Points/vtkVoxelGrid.h
@@ -50,6 +50,7 @@
 #include "vtkFiltersPointsModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStaticPointLocator;
 class vtkInterpolationKernel;
 
@@ -155,4 +156,5 @@ private:
   void operator=(const vtkVoxelGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Points/vtkWendlandQuinticKernel.cxx b/Filters/Points/vtkWendlandQuinticKernel.cxx
index fe203b43246227f7cb197366daceb9056bd4cf4e..7665e26e942965daaac4e774f45e3ede21752473 100644
--- a/Filters/Points/vtkWendlandQuinticKernel.cxx
+++ b/Filters/Points/vtkWendlandQuinticKernel.cxx
@@ -17,6 +17,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWendlandQuinticKernel);
 
 //------------------------------------------------------------------------------
@@ -56,3 +57,4 @@ void vtkWendlandQuinticKernel::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Points/vtkWendlandQuinticKernel.h b/Filters/Points/vtkWendlandQuinticKernel.h
index 3901eb3de500797e4651bd2cf597e316e7e040bc..a28330bfa9694c79f2fc267bf5daeef0036267d5 100644
--- a/Filters/Points/vtkWendlandQuinticKernel.h
+++ b/Filters/Points/vtkWendlandQuinticKernel.h
@@ -41,6 +41,7 @@
 #include "vtkSPHKernel.h"
 #include <algorithm> // For std::min()
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDoubleArray;
 
@@ -110,4 +111,5 @@ private:
   void operator=(const vtkWendlandQuinticKernel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Programmable/vtkProgrammableAttributeDataFilter.cxx b/Filters/Programmable/vtkProgrammableAttributeDataFilter.cxx
index 9e26e1fa3ebb715c99b9b1e2cdc35b670914a295..8c1e747c01af7304d0c09295123150dd6a912f77 100644
--- a/Filters/Programmable/vtkProgrammableAttributeDataFilter.cxx
+++ b/Filters/Programmable/vtkProgrammableAttributeDataFilter.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProgrammableAttributeDataFilter);
 
 vtkProgrammableAttributeDataFilter::vtkProgrammableAttributeDataFilter()
@@ -145,3 +146,4 @@ void vtkProgrammableAttributeDataFilter ::ReportReferences(vtkGarbageCollector*
   this->Superclass::ReportReferences(collector);
   vtkGarbageCollectorReport(collector, this->InputList, "InputList");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Programmable/vtkProgrammableAttributeDataFilter.h b/Filters/Programmable/vtkProgrammableAttributeDataFilter.h
index 222ee609c8892f833c42e6fdf8b03a3b69543a56..c13e4add07879e0b9c8dea95ffc4d3e4a1b6eb55 100644
--- a/Filters/Programmable/vtkProgrammableAttributeDataFilter.h
+++ b/Filters/Programmable/vtkProgrammableAttributeDataFilter.h
@@ -80,6 +80,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersProgrammableModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSetCollection;
 
 class VTKFILTERSPROGRAMMABLE_EXPORT vtkProgrammableAttributeDataFilter : public vtkDataSetAlgorithm
@@ -150,4 +151,5 @@ private:
   void operator=(const vtkProgrammableAttributeDataFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Programmable/vtkProgrammableFilter.cxx b/Filters/Programmable/vtkProgrammableFilter.cxx
index eeeb12c31ad2b1f1f6c2259144aa0963030a7ab2..c0a71aa03571e16cc7e90a32c197d5f71f5653c8 100644
--- a/Filters/Programmable/vtkProgrammableFilter.cxx
+++ b/Filters/Programmable/vtkProgrammableFilter.cxx
@@ -29,10 +29,13 @@
 #include "vtkTable.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProgrammableFilter);
+VTK_ABI_NAMESPACE_END
 
 namespace details
 {
+VTK_ABI_NAMESPACE_BEGIN
 // CopyStructure is not defined at vtkDataObject level.
 // Use template to downcast and forward call.
 template <class DataType>
@@ -73,7 +76,10 @@ void initializeOutput(vtkDataObject* objInput, vtkDataObject* objOutput, bool co
     }
   }
 }
-};
+VTK_ABI_NAMESPACE_END
+}
+
+VTK_ABI_NAMESPACE_BEGIN
 
 // Construct programmable filter with empty execute method.
 vtkProgrammableFilter::vtkProgrammableFilter()
@@ -251,3 +257,4 @@ void vtkProgrammableFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "CopyArrays: " << this->CopyArrays << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Programmable/vtkProgrammableFilter.h b/Filters/Programmable/vtkProgrammableFilter.h
index b7b86745e3b771078adcd93abe0e0f4f8d68b440..ecd0265ae7e6289d3a6dd6a7608236babe48fba7 100644
--- a/Filters/Programmable/vtkProgrammableFilter.h
+++ b/Filters/Programmable/vtkProgrammableFilter.h
@@ -43,6 +43,7 @@
 #include "vtkFiltersProgrammableModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSPROGRAMMABLE_EXPORT vtkProgrammableFilter : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -118,4 +119,5 @@ private:
   void operator=(const vtkProgrammableFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Programmable/vtkProgrammableGlyphFilter.cxx b/Filters/Programmable/vtkProgrammableGlyphFilter.cxx
index 7f8028a02563bb22c6f6751c2be6d74e3c493c44..9787aba5d198ccd03320291aab4f76a8853f9a2d 100644
--- a/Filters/Programmable/vtkProgrammableGlyphFilter.cxx
+++ b/Filters/Programmable/vtkProgrammableGlyphFilter.cxx
@@ -28,6 +28,7 @@
 #include "vtkPolyData.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProgrammableGlyphFilter);
 
 // Construct object with scaling on, scaling mode is by scalar value,
@@ -357,3 +358,4 @@ void vtkProgrammableGlyphFilter::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "No Glyph Method\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Programmable/vtkProgrammableGlyphFilter.h b/Filters/Programmable/vtkProgrammableGlyphFilter.h
index abc498e4cc225c09961a30e62d2f32e3a38cbb47..20f9338988f1fba36033c5c51df307823dd552ea 100644
--- a/Filters/Programmable/vtkProgrammableGlyphFilter.h
+++ b/Filters/Programmable/vtkProgrammableGlyphFilter.h
@@ -67,6 +67,7 @@
 #include "vtkFiltersProgrammableModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPointData;
 
 class VTKFILTERSPROGRAMMABLE_EXPORT vtkProgrammableGlyphFilter : public vtkPolyDataAlgorithm
@@ -176,4 +177,5 @@ private:
   void operator=(const vtkProgrammableGlyphFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Python/vtkPythonAlgorithm.cxx b/Filters/Python/vtkPythonAlgorithm.cxx
index 850c18b9d2a4f00b86aa22ad2f137f55f6fe5997..2d0ea341d5140f3d771e466141aa4f1677a31aa8 100644
--- a/Filters/Python/vtkPythonAlgorithm.cxx
+++ b/Filters/Python/vtkPythonAlgorithm.cxx
@@ -20,6 +20,7 @@
 #include "vtkPythonUtil.h"
 #include "vtkSmartPyObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPythonAlgorithm);
 
 void vtkPythonAlgorithm::PrintSelf(ostream& os, vtkIndent indent)
@@ -239,3 +240,4 @@ int vtkPythonAlgorithm::FillOutputPortInformation(int port, vtkInformation* info
 
   return CheckResult(mname, result);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Python/vtkPythonAlgorithm.h b/Filters/Python/vtkPythonAlgorithm.h
index eae27a1fd432a0ebac5a890f63915e7cbc106b67..0e88f710de03e481b392afc709a25637cef0e5d6 100644
--- a/Filters/Python/vtkPythonAlgorithm.h
+++ b/Filters/Python/vtkPythonAlgorithm.h
@@ -47,6 +47,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkFiltersPythonModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSmartPyObject;
 
 class VTKFILTERSPYTHON_EXPORT vtkPythonAlgorithm : public vtkAlgorithm
@@ -95,5 +96,6 @@ private:
   PyObject* Object;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 #endif
diff --git a/Filters/ReebGraph/vtkReebGraphSimplificationFilter.cxx b/Filters/ReebGraph/vtkReebGraphSimplificationFilter.cxx
index 68a0151d6b8477db1cf876c4800627c92f8ee3c7..27c118c566cf9ff2ca5b60452809dc3fb47d532c 100644
--- a/Filters/ReebGraph/vtkReebGraphSimplificationFilter.cxx
+++ b/Filters/ReebGraph/vtkReebGraphSimplificationFilter.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkReebGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkReebGraphSimplificationFilter);
 
 //------------------------------------------------------------------------------
@@ -91,3 +92,4 @@ int vtkReebGraphSimplificationFilter::RequestData(vtkInformation* vtkNotUsed(req
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ReebGraph/vtkReebGraphSimplificationFilter.h b/Filters/ReebGraph/vtkReebGraphSimplificationFilter.h
index 3b37ab9d30b47e998b29e3cc5856c05e73a75c8f..7cf00a847af61c089228fc5b215019d311e171d0 100644
--- a/Filters/ReebGraph/vtkReebGraphSimplificationFilter.h
+++ b/Filters/ReebGraph/vtkReebGraphSimplificationFilter.h
@@ -26,6 +26,7 @@
 #include "vtkDirectedGraphAlgorithm.h"
 #include "vtkFiltersReebGraphModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkReebGraph;
 class vtkReebGraphSimplificationMetric;
 
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkReebGraphSimplificationFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ReebGraph/vtkReebGraphSurfaceSkeletonFilter.cxx b/Filters/ReebGraph/vtkReebGraphSurfaceSkeletonFilter.cxx
index 3574a62ef1a951bab6cc1d2d80b7ab6e7787de25..99982121a4f723ff510af37659bb3a1c083796e9 100644
--- a/Filters/ReebGraph/vtkReebGraphSurfaceSkeletonFilter.cxx
+++ b/Filters/ReebGraph/vtkReebGraphSurfaceSkeletonFilter.cxx
@@ -28,6 +28,7 @@
 #include "vtkTriangle.h"
 #include "vtkVariantArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkReebGraphSurfaceSkeletonFilter);
 
 //------------------------------------------------------------------------------
@@ -368,3 +369,4 @@ int vtkReebGraphSurfaceSkeletonFilter::RequestData(vtkInformation* vtkNotUsed(re
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ReebGraph/vtkReebGraphSurfaceSkeletonFilter.h b/Filters/ReebGraph/vtkReebGraphSurfaceSkeletonFilter.h
index 0fbcf9dc773a727a544f0bbfa9d0c5cab421a582..01ff0b1ec857ea4525c107001ef0134e158a6316 100644
--- a/Filters/ReebGraph/vtkReebGraphSurfaceSkeletonFilter.h
+++ b/Filters/ReebGraph/vtkReebGraphSurfaceSkeletonFilter.h
@@ -46,6 +46,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersReebGraphModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkReebGraph;
 class vtkTable;
 
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkReebGraphSurfaceSkeletonFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ReebGraph/vtkReebGraphToJoinSplitTreeFilter.cxx b/Filters/ReebGraph/vtkReebGraphToJoinSplitTreeFilter.cxx
index e30a21e5731eab775dbb456d738c1fbcb624b635..f166832ee017c33358e2f3f165fb8d6b9a4273c9 100644
--- a/Filters/ReebGraph/vtkReebGraphToJoinSplitTreeFilter.cxx
+++ b/Filters/ReebGraph/vtkReebGraphToJoinSplitTreeFilter.cxx
@@ -28,6 +28,7 @@
 #include <algorithm>
 #include <boost/pending/disjoint_sets.hpp>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 //------------------------------------------------------------------------------
@@ -430,3 +431,4 @@ int vtkReebGraphToJoinSplitTreeFilter::RequestData(vtkInformation* vtkNotUsed(re
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ReebGraph/vtkReebGraphToJoinSplitTreeFilter.h b/Filters/ReebGraph/vtkReebGraphToJoinSplitTreeFilter.h
index 84e1808c644f4a9aa86105d0620285df7158299d..e0bc60f99fbc440f7f4a5fa7910c34e732b8437a 100644
--- a/Filters/ReebGraph/vtkReebGraphToJoinSplitTreeFilter.h
+++ b/Filters/ReebGraph/vtkReebGraphToJoinSplitTreeFilter.h
@@ -38,6 +38,7 @@
 #include "vtkDirectedGraphAlgorithm.h"
 #include "vtkFiltersReebGraphModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkReebGraph;
 
 class VTKFILTERSREEBGRAPH_EXPORT vtkReebGraphToJoinSplitTreeFilter
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkReebGraphToJoinSplitTreeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ReebGraph/vtkReebGraphVolumeSkeletonFilter.cxx b/Filters/ReebGraph/vtkReebGraphVolumeSkeletonFilter.cxx
index fcb8cca537cd721db6736f3c5c0f8fe285e869d6..18918f27d7ad40e3926e7a8a14c05b74c56555c6 100644
--- a/Filters/ReebGraph/vtkReebGraphVolumeSkeletonFilter.cxx
+++ b/Filters/ReebGraph/vtkReebGraphVolumeSkeletonFilter.cxx
@@ -30,6 +30,7 @@
 #include "vtkUnstructuredGrid.h"
 #include "vtkVariantArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkReebGraphVolumeSkeletonFilter);
 
 //------------------------------------------------------------------------------
@@ -364,3 +365,4 @@ int vtkReebGraphVolumeSkeletonFilter::RequestData(vtkInformation* vtkNotUsed(req
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ReebGraph/vtkReebGraphVolumeSkeletonFilter.h b/Filters/ReebGraph/vtkReebGraphVolumeSkeletonFilter.h
index 417081649df469d4693ccda3b0cbdee21755d415..99d4841ad2ddc9684da384f9907cc071ed8e7810 100644
--- a/Filters/ReebGraph/vtkReebGraphVolumeSkeletonFilter.h
+++ b/Filters/ReebGraph/vtkReebGraphVolumeSkeletonFilter.h
@@ -47,6 +47,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersReebGraphModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkReebGraph;
 class vtkTable;
 
@@ -104,4 +105,5 @@ private:
   void operator=(const vtkReebGraphVolumeSkeletonFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/ReebGraph/vtkUnstructuredGridToReebGraphFilter.cxx b/Filters/ReebGraph/vtkUnstructuredGridToReebGraphFilter.cxx
index 37b42abd503bed3c417a72dc718e86bed555a8f0..d5ef2646c879c428014179173d03abd781c590f3 100644
--- a/Filters/ReebGraph/vtkUnstructuredGridToReebGraphFilter.cxx
+++ b/Filters/ReebGraph/vtkUnstructuredGridToReebGraphFilter.cxx
@@ -22,6 +22,7 @@
 #include "vtkReebGraph.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnstructuredGridToReebGraphFilter);
 
 //------------------------------------------------------------------------------
@@ -93,3 +94,4 @@ int vtkUnstructuredGridToReebGraphFilter::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/ReebGraph/vtkUnstructuredGridToReebGraphFilter.h b/Filters/ReebGraph/vtkUnstructuredGridToReebGraphFilter.h
index 8d95b2be90b6f8c113067b2ec7d6bc46a65371e1..d345834e728cbd07495a930b29fe59d37a0d9e98 100644
--- a/Filters/ReebGraph/vtkUnstructuredGridToReebGraphFilter.h
+++ b/Filters/ReebGraph/vtkUnstructuredGridToReebGraphFilter.h
@@ -29,6 +29,7 @@
 #include "vtkDirectedGraphAlgorithm.h"
 #include "vtkFiltersReebGraphModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkReebGraph;
 
 class VTKFILTERSREEBGRAPH_EXPORT vtkUnstructuredGridToReebGraphFilter
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkUnstructuredGridToReebGraphFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/SMP/vtkSMPContourGrid.cxx b/Filters/SMP/vtkSMPContourGrid.cxx
index 84a47dff3e4547d1c8ad3547de0de4fcbe83a1e9..b522e6617c5dd5e947f064f45b449f4422757c08 100644
--- a/Filters/SMP/vtkSMPContourGrid.cxx
+++ b/Filters/SMP/vtkSMPContourGrid.cxx
@@ -42,6 +42,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSMPContourGrid);
 
 //------------------------------------------------------------------------------
@@ -664,3 +665,4 @@ void vtkSMPContourGrid::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Merge Pieces: " << (this->MergePieces ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/SMP/vtkSMPContourGrid.h b/Filters/SMP/vtkSMPContourGrid.h
index ac5540288cc222680f529bc8392e560b9b28f3b7..959ffffeb653913f910cd02e7af98b0aa8c45b26 100644
--- a/Filters/SMP/vtkSMPContourGrid.h
+++ b/Filters/SMP/vtkSMPContourGrid.h
@@ -26,6 +26,7 @@
 #include "vtkContourGrid.h"
 #include "vtkFiltersSMPModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSMP_EXPORT vtkSMPContourGrid : public vtkContourGrid
 {
 public:
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkSMPContourGrid&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/SMP/vtkSMPMergePoints.cxx b/Filters/SMP/vtkSMPMergePoints.cxx
index 40d1963e5e11260c3da0befab55137afaf527a52..a2ccba67b6292e9417f65ad1739d59fc1b11cb3e 100644
--- a/Filters/SMP/vtkSMPMergePoints.cxx
+++ b/Filters/SMP/vtkSMPMergePoints.cxx
@@ -21,6 +21,7 @@
 #include "vtkPoints.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSMPMergePoints);
 
 //------------------------------------------------------------------------------
@@ -165,3 +166,4 @@ void vtkSMPMergePoints::FixSizeOfPointArray()
 {
   this->Points->SetNumberOfPoints(this->AtomicInsertionId);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/SMP/vtkSMPMergePoints.h b/Filters/SMP/vtkSMPMergePoints.h
index 02dff3d0a8fe7f41028a8c9f849fc40584b01389..3eb9bc38025814f5fc747de972e6d218d19219a7 100644
--- a/Filters/SMP/vtkSMPMergePoints.h
+++ b/Filters/SMP/vtkSMPMergePoints.h
@@ -40,6 +40,7 @@
 
 #include <atomic> // for std::atomic
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPointData;
 
 class VTKFILTERSSMP_EXPORT vtkSMPMergePoints : public vtkMergePoints
@@ -112,4 +113,5 @@ private:
   void operator=(const vtkSMPMergePoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSMPMergePoints_h
diff --git a/Filters/SMP/vtkSMPMergePolyDataHelper.cxx b/Filters/SMP/vtkSMPMergePolyDataHelper.cxx
index e3a038386846418cec2997ce261d25f6609d29ab..b82d5260be72e3fe9761752d313bd3f543250c35 100644
--- a/Filters/SMP/vtkSMPMergePolyDataHelper.cxx
+++ b/Filters/SMP/vtkSMPMergePolyDataHelper.cxx
@@ -27,6 +27,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -509,3 +510,4 @@ vtkPolyData* vtkSMPMergePolyDataHelper::MergePolyData(std::vector<InputData>& in
 
   return outPolyData;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/SMP/vtkSMPMergePolyDataHelper.h b/Filters/SMP/vtkSMPMergePolyDataHelper.h
index 9db520f054286776ba443e22825d62e5518640bb..f8dc1a8953aa41d55b919f930cb829cdce32e7df 100644
--- a/Filters/SMP/vtkSMPMergePolyDataHelper.h
+++ b/Filters/SMP/vtkSMPMergePolyDataHelper.h
@@ -28,6 +28,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkSMPMergePoints;
 class vtkIdList;
@@ -90,5 +91,6 @@ private:
   void operator=(const vtkSMPMergePolyDataHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkSMPMergePolyDataHelper.h
diff --git a/Filters/Selection/vtkCellDistanceSelector.cxx b/Filters/Selection/vtkCellDistanceSelector.cxx
index f637d1dbfc270a83b1757859101c095efbeb5850..fe24ed1cc94979cc258196344618d8f22d11d877 100644
--- a/Filters/Selection/vtkCellDistanceSelector.cxx
+++ b/Filters/Selection/vtkCellDistanceSelector.cxx
@@ -36,6 +36,7 @@
 #include <map>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellDistanceSelector);
 
 //------------------------------------------------------------------------------
@@ -371,3 +372,4 @@ int vtkCellDistanceSelector::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Selection/vtkCellDistanceSelector.h b/Filters/Selection/vtkCellDistanceSelector.h
index 7d82dd1c3334dce003b762fde8c786489b94c484..6b911ca478a0eff1ca32b7628cd4bd9db59e502a 100644
--- a/Filters/Selection/vtkCellDistanceSelector.h
+++ b/Filters/Selection/vtkCellDistanceSelector.h
@@ -38,6 +38,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkSelectionAlgorithm.h"
 #include "vtkSmartPointer.h" // For smart pointers
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkSelection;
 class vtkAlgorithmOutput;
@@ -148,4 +149,5 @@ private:
   void operator=(const vtkCellDistanceSelector&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkCellDistanceSelector_h */
diff --git a/Filters/Selection/vtkKdTreeSelector.cxx b/Filters/Selection/vtkKdTreeSelector.cxx
index 89fe8ee362b856c2eba6831a2d0f65d9c0342532..cf7e6399fb46b99fe6bbf7c20b9a0a3aa499f4b5 100644
--- a/Filters/Selection/vtkKdTreeSelector.cxx
+++ b/Filters/Selection/vtkKdTreeSelector.cxx
@@ -31,6 +31,7 @@
 #include "vtkSelectionNode.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkKdTreeSelector);
 
 vtkKdTreeSelector::vtkKdTreeSelector()
@@ -292,3 +293,4 @@ int vtkKdTreeSelector::FillInputPortInformation(int vtkNotUsed(port), vtkInforma
   info->Set(vtkAlgorithm::INPUT_IS_OPTIONAL(), 1);
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Selection/vtkKdTreeSelector.h b/Filters/Selection/vtkKdTreeSelector.h
index 10441c98cf13a6505820edc2e1ee40877b941ee5..784feba29a2acac0b50a63f0a7ca6b10c0e30756 100644
--- a/Filters/Selection/vtkKdTreeSelector.h
+++ b/Filters/Selection/vtkKdTreeSelector.h
@@ -34,6 +34,7 @@
 #include "vtkFiltersSelectionModule.h" // For export macro
 #include "vtkSelectionAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkKdTree;
 
 class VTKFILTERSSELECTION_EXPORT vtkKdTreeSelector : public vtkSelectionAlgorithm
@@ -133,4 +134,5 @@ private:
   void operator=(const vtkKdTreeSelector&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Selection/vtkLinearSelector.cxx b/Filters/Selection/vtkLinearSelector.cxx
index 895ffcf3d8ae31ed6727134cd57947842d4a1d2e..9703f31e1506b580bf715646e7eb97182eda8c40 100644
--- a/Filters/Selection/vtkLinearSelector.cxx
+++ b/Filters/Selection/vtkLinearSelector.cxx
@@ -19,6 +19,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLinearSelector);
 vtkCxxSetObjectMacro(vtkLinearSelector, Points, vtkPoints);
 
@@ -234,3 +235,4 @@ void vtkLinearSelector::SeekIntersectingCells(vtkDataSet* input, vtkIdTypeArray*
   delete[] startPoints;
   delete[] endPoints;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Selection/vtkLinearSelector.h b/Filters/Selection/vtkLinearSelector.h
index 6f01f7047c1e72275b7e2fe40b9aa405c386f715..6d7958e5fa9df970e9bd8cb8c40d7b390976b7ff 100644
--- a/Filters/Selection/vtkLinearSelector.h
+++ b/Filters/Selection/vtkLinearSelector.h
@@ -33,6 +33,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersSelectionModule.h" // For export macro
 #include "vtkSelectionAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithmOutput;
 class vtkDataSet;
 class vtkDoubleArray;
@@ -150,4 +151,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLinearSelector_h
diff --git a/Filters/Sources/vtkArcSource.cxx b/Filters/Sources/vtkArcSource.cxx
index 815cde081adfcfafe68cf59aa5b46837b4875ec7..c589a596a33f3a85b89b24d780d1798aa221595e 100644
--- a/Filters/Sources/vtkArcSource.cxx
+++ b/Filters/Sources/vtkArcSource.cxx
@@ -27,6 +27,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkArcSource);
 
 //------------------------------------------------------------------------------
@@ -246,3 +247,4 @@ void vtkArcSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkArcSource.h b/Filters/Sources/vtkArcSource.h
index 108ecfc77297e622c17f7c16787ae13dad2bfd4b..1e3053a36051b2f517c0a108562d8676ffd60c53 100644
--- a/Filters/Sources/vtkArcSource.h
+++ b/Filters/Sources/vtkArcSource.h
@@ -42,6 +42,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkArcSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -174,4 +175,5 @@ private:
   void operator=(const vtkArcSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkArrowSource.cxx b/Filters/Sources/vtkArrowSource.cxx
index 6a85e4713107f27b19b1c726a9dae571a5cbbebe..fdf183ffe82b364497da823d3cacafd48436c9af 100644
--- a/Filters/Sources/vtkArrowSource.cxx
+++ b/Filters/Sources/vtkArrowSource.cxx
@@ -25,6 +25,7 @@
 #include "vtkTransform.h"
 #include "vtkTransformFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkArrowSource);
 
 //------------------------------------------------------------------------------
@@ -182,3 +183,4 @@ void vtkArrowSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Invert: " << this->Invert << "\n";
   os << indent << "Arrow Origin: " << this->GetArrowOriginAsString() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkArrowSource.h b/Filters/Sources/vtkArrowSource.h
index 39f1e24971630b6f7042de19b6f691e43592cee9..93a866cfdbd246e3f4aa68834f139015a1f71141 100644
--- a/Filters/Sources/vtkArrowSource.h
+++ b/Filters/Sources/vtkArrowSource.h
@@ -31,6 +31,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkArrowSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -128,4 +129,5 @@ private:
   void operator=(const vtkArrowSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkButtonSource.cxx b/Filters/Sources/vtkButtonSource.cxx
index 3b6ae50e2aae402132113b55d92d73e828a6ff06..604fb97af0cdacfab2993c651e2a4bbfdd9cf72b 100644
--- a/Filters/Sources/vtkButtonSource.cxx
+++ b/Filters/Sources/vtkButtonSource.cxx
@@ -15,6 +15,7 @@
 #include "vtkButtonSource.h"
 
 // Construct
+VTK_ABI_NAMESPACE_BEGIN
 vtkButtonSource::vtkButtonSource()
 {
   this->Center[0] = this->Center[1] = this->Center[2] = 0.0;
@@ -53,3 +54,4 @@ void vtkButtonSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Two Sided: " << (this->TwoSided ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkButtonSource.h b/Filters/Sources/vtkButtonSource.h
index b2c86813714d8b3d7f3e4e10e9347d015b6a880a..157745262896d263433c51fb44fde60e79ceadd9 100644
--- a/Filters/Sources/vtkButtonSource.h
+++ b/Filters/Sources/vtkButtonSource.h
@@ -50,6 +50,7 @@
 #define VTK_TEXTURE_STYLE_FIT_IMAGE 0
 #define VTK_TEXTURE_STYLE_PROPORTIONAL 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkButtonSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -120,4 +121,5 @@ private:
   void operator=(const vtkButtonSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkCapsuleSource.cxx b/Filters/Sources/vtkCapsuleSource.cxx
index 0e3685df7437ac6ae72fa526340a7ba4cce7fce1..ee4e6c5ba5a2da2951623e67b0a9db7440cf8222 100644
--- a/Filters/Sources/vtkCapsuleSource.cxx
+++ b/Filters/Sources/vtkCapsuleSource.cxx
@@ -48,6 +48,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCapsuleSource);
 
 //------------------------------------------------------------------------------
@@ -364,3 +365,4 @@ int vtkCapsuleSource::RequestInformation(vtkInformation* vtkNotUsed(request),
     this->Center[2] + this->Radius);
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkCapsuleSource.h b/Filters/Sources/vtkCapsuleSource.h
index 712391b738d562450a8b97768be57a8d1b627a48..f78d49df3cdc9e46ef033b64c3b8857e96fe487e 100644
--- a/Filters/Sources/vtkCapsuleSource.h
+++ b/Filters/Sources/vtkCapsuleSource.h
@@ -54,6 +54,7 @@
 
 #include "vtkSphereSource.h" // For VTK_MAX_SPHERE_RESOLUTION
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkCapsuleSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkCapsuleSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkCellTypeSource.cxx b/Filters/Sources/vtkCellTypeSource.cxx
index 921a3fa456d35793b0350fa1b940f723fa9d2b01..5de722f22640f5754f095b716f7dacbbeb302d80 100644
--- a/Filters/Sources/vtkCellTypeSource.cxx
+++ b/Filters/Sources/vtkCellTypeSource.cxx
@@ -47,6 +47,7 @@
 using EdgeToPointMap = std::map<std::pair<vtkIdType, vtkIdType>, vtkIdType>;
 using TriangleFaceToPointMap = std::map<std::tuple<vtkIdType, vtkIdType, vtkIdType>, vtkIdType>;
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellTypeSource);
 
 namespace
@@ -2615,3 +2616,4 @@ void vtkCellTypeSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "OutputPrecision: " << this->OutputPrecision << "\n";
   os << indent << "PolynomialFieldOrder: " << this->PolynomialFieldOrder << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkCellTypeSource.h b/Filters/Sources/vtkCellTypeSource.h
index 8ed59356ccc438cbb625ca27ce547a2dea7a0c40..d3ba41dd2b11878f0c1c5a66f65c97f0a0c29c31 100644
--- a/Filters/Sources/vtkCellTypeSource.h
+++ b/Filters/Sources/vtkCellTypeSource.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMergePoints;
 
 class VTKFILTERSSOURCES_EXPORT vtkCellTypeSource : public vtkUnstructuredGridAlgorithm
@@ -184,4 +185,5 @@ private:
   void operator=(const vtkCellTypeSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkConeSource.cxx b/Filters/Sources/vtkConeSource.cxx
index 87d319b12abea66980bd78a1cf1557396d2af142..64dbb83f5b03d2ecb17ad5271d06ab7b839c72bc 100644
--- a/Filters/Sources/vtkConeSource.cxx
+++ b/Filters/Sources/vtkConeSource.cxx
@@ -27,6 +27,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkConeSource);
 
 //------------------------------------------------------------------------------
@@ -345,3 +346,4 @@ void vtkConeSource::PrintSelf(ostream& os, vtkIndent indent)
      << this->Direction[2] << ")\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkConeSource.h b/Filters/Sources/vtkConeSource.h
index 4496b60ba4321849889a0ca636ec649306c5c560..f920bbeeb72ff062728bb6779d0f711a337546a2 100644
--- a/Filters/Sources/vtkConeSource.h
+++ b/Filters/Sources/vtkConeSource.h
@@ -35,6 +35,7 @@
 
 #include "vtkCell.h" // Needed for VTK_CELL_SIZE
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkConeSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -144,4 +145,5 @@ private:
   void operator=(const vtkConeSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkCubeSource.cxx b/Filters/Sources/vtkCubeSource.cxx
index 4da2ae4728c01348633b6609ab73997fb7e5860e..92edf865337cf0c080329099af9032c59cf928bf 100644
--- a/Filters/Sources/vtkCubeSource.cxx
+++ b/Filters/Sources/vtkCubeSource.cxx
@@ -26,6 +26,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCubeSource);
 
 //------------------------------------------------------------------------------
@@ -240,3 +241,4 @@ void vtkCubeSource::PrintSelf(ostream& os, vtkIndent indent)
      << this->Center[2] << ")\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkCubeSource.h b/Filters/Sources/vtkCubeSource.h
index f11f55ae3936a0b10970eb2b0aab085d46afd15b..3418ab85966032766c9e040bafaf866cad2d8809 100644
--- a/Filters/Sources/vtkCubeSource.h
+++ b/Filters/Sources/vtkCubeSource.h
@@ -27,6 +27,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkCubeSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkCubeSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkCylinderSource.cxx b/Filters/Sources/vtkCylinderSource.cxx
index e554fe7f00f7890ee6e87e583d9fea5d00f1d29d..222131b79a550a896f71d7ce2fd2717013cd8351 100644
--- a/Filters/Sources/vtkCylinderSource.cxx
+++ b/Filters/Sources/vtkCylinderSource.cxx
@@ -27,6 +27,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCylinderSource);
 
 //------------------------------------------------------------------------------
@@ -224,3 +225,4 @@ void vtkCylinderSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Capping: " << (this->Capping ? "On\n" : "Off\n");
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkCylinderSource.h b/Filters/Sources/vtkCylinderSource.h
index 7b5ecb1d776253250dcb17b1a07de5a963a4bc48..b5705ceecff9f2b3ec4e117a0292ec3881bfb652 100644
--- a/Filters/Sources/vtkCylinderSource.h
+++ b/Filters/Sources/vtkCylinderSource.h
@@ -36,6 +36,7 @@
 
 #include "vtkCell.h" // Needed for VTK_CELL_SIZE
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkCylinderSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkCylinderSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkDiagonalMatrixSource.cxx b/Filters/Sources/vtkDiagonalMatrixSource.cxx
index 530e2e241bbec291a59c154deeb28134910f163c..8edc3ae7304104c9699204805fa739bc5867ba37 100644
--- a/Filters/Sources/vtkDiagonalMatrixSource.cxx
+++ b/Filters/Sources/vtkDiagonalMatrixSource.cxx
@@ -30,6 +30,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDiagonalMatrixSource);
 
 //------------------------------------------------------------------------------
@@ -163,3 +164,4 @@ vtkArray* vtkDiagonalMatrixSource::GenerateSparseArray()
 
   return array;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkDiagonalMatrixSource.h b/Filters/Sources/vtkDiagonalMatrixSource.h
index b3b18abba4eef1701d222406c0fdf75666aa0ce6..3c6befdefb2229e9cd04adb4f07dcfce6bf703e8 100644
--- a/Filters/Sources/vtkDiagonalMatrixSource.h
+++ b/Filters/Sources/vtkDiagonalMatrixSource.h
@@ -34,6 +34,7 @@
 #include "vtkArrayDataAlgorithm.h"
 #include "vtkFiltersSourcesModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArray;
 
 class VTKFILTERSSOURCES_EXPORT vtkDiagonalMatrixSource : public vtkArrayDataAlgorithm
@@ -125,4 +126,5 @@ private:
   char* ColumnLabel;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkDiskSource.cxx b/Filters/Sources/vtkDiskSource.cxx
index 2632d698129f0378a051dd421661e8bc1051c947..3f13af77d447babe0496866fd98cfe1314ab6558 100644
--- a/Filters/Sources/vtkDiskSource.cxx
+++ b/Filters/Sources/vtkDiskSource.cxx
@@ -24,6 +24,7 @@
 #include "vtkPolyData.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDiskSource);
 
 //------------------------------------------------------------------------------
@@ -173,3 +174,4 @@ void vtkDiskSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CircumferentialResolution: " << this->CircumferentialResolution << "\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkDiskSource.h b/Filters/Sources/vtkDiskSource.h
index dc4254a5f4e1e684831ce50046c3a355d89491f1..233a9e059575f981e3ff5bdd865828645c59fa9f 100644
--- a/Filters/Sources/vtkDiskSource.h
+++ b/Filters/Sources/vtkDiskSource.h
@@ -33,6 +33,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransform;
 
 class VTKFILTERSSOURCES_EXPORT vtkDiskSource : public vtkPolyDataAlgorithm
@@ -125,4 +126,5 @@ private:
   void operator=(const vtkDiskSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkEllipseArcSource.cxx b/Filters/Sources/vtkEllipseArcSource.cxx
index 85cb35fad45faf0c5b4353cbcf44458c614a3234..92b6fc01f4a7dbb4b103709c2baba8750253c97e 100644
--- a/Filters/Sources/vtkEllipseArcSource.cxx
+++ b/Filters/Sources/vtkEllipseArcSource.cxx
@@ -23,6 +23,7 @@
 #include "vtkPolyData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEllipseArcSource);
 
 //------------------------------------------------------------------------------
@@ -228,3 +229,4 @@ void vtkEllipseArcSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkEllipseArcSource.h b/Filters/Sources/vtkEllipseArcSource.h
index 5c0520389f60b7d4ccc74cdbd2123b33f2966a73..245dd6a5e17221c90bcb514c848dff51b292e134 100644
--- a/Filters/Sources/vtkEllipseArcSource.h
+++ b/Filters/Sources/vtkEllipseArcSource.h
@@ -33,6 +33,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkEllipseArcSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -148,4 +149,5 @@ private:
   void operator=(const vtkEllipseArcSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkEllipticalButtonSource.cxx b/Filters/Sources/vtkEllipticalButtonSource.cxx
index 948f6a637dac872d01341d1b8af23be3bccb8b1d..b8219dd3bb3f4c8665bf64d5bc08404917f41768 100644
--- a/Filters/Sources/vtkEllipticalButtonSource.cxx
+++ b/Filters/Sources/vtkEllipticalButtonSource.cxx
@@ -25,6 +25,7 @@
 #include "vtkPolyData.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEllipticalButtonSource);
 
 //------------------------------------------------------------------------------
@@ -445,3 +446,4 @@ void vtkEllipticalButtonSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkEllipticalButtonSource.h b/Filters/Sources/vtkEllipticalButtonSource.h
index 74101ce4a9449812e0ee93e0e83e2bd1bbfbb65b..4f0644ca6701c6edef3afe720427a8ffd9d09fba 100644
--- a/Filters/Sources/vtkEllipticalButtonSource.h
+++ b/Filters/Sources/vtkEllipticalButtonSource.h
@@ -43,6 +43,7 @@
 #include "vtkButtonSource.h"
 #include "vtkFiltersSourcesModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkFloatArray;
 class vtkPoints;
@@ -167,4 +168,5 @@ private:
   void operator=(const vtkEllipticalButtonSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkFrustumSource.cxx b/Filters/Sources/vtkFrustumSource.cxx
index cb2cb7aa0d3fd514d03304815bbf16a64b7c59df..31d1d1267aa00b9ce5ada42d8fb1567041041b77 100644
--- a/Filters/Sources/vtkFrustumSource.cxx
+++ b/Filters/Sources/vtkFrustumSource.cxx
@@ -22,6 +22,7 @@
 #include "vtkPlanes.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFrustumSource);
 vtkCxxSetObjectMacro(vtkFrustumSource, Planes, vtkPlanes);
 
@@ -427,3 +428,4 @@ void vtkFrustumSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "LinesLength:" << this->LinesLength << endl;
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkFrustumSource.h b/Filters/Sources/vtkFrustumSource.h
index bfc9831b7b32ec6f00452880eb2d275097306a51..d556731a059dd3da06fb8bc6db98a08b1d1404cc 100644
--- a/Filters/Sources/vtkFrustumSource.h
+++ b/Filters/Sources/vtkFrustumSource.h
@@ -34,6 +34,7 @@
 
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlanes;
 
 class VTKFILTERSSOURCES_EXPORT vtkFrustumSource : public vtkPolyDataAlgorithm
@@ -118,4 +119,5 @@ private:
   void operator=(const vtkFrustumSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkGlyphSource2D.cxx b/Filters/Sources/vtkGlyphSource2D.cxx
index 377d48b34fe236f0991e783c7edf12f60554eea2..a2c60b342e822e41d3a6e9230326fd5ae924edca 100644
--- a/Filters/Sources/vtkGlyphSource2D.cxx
+++ b/Filters/Sources/vtkGlyphSource2D.cxx
@@ -24,6 +24,7 @@
 #include "vtkPolyData.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGlyphSource2D);
 
 //------------------------------------------------------------------------------
@@ -620,3 +621,4 @@ void vtkGlyphSource2D::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkGlyphSource2D.h b/Filters/Sources/vtkGlyphSource2D.h
index 8d9f02f82b5620cdbd5c84f0f191aba7c8935a52..51880359a225abcd613645c4d67d32fff7d0de67 100644
--- a/Filters/Sources/vtkGlyphSource2D.h
+++ b/Filters/Sources/vtkGlyphSource2D.h
@@ -49,6 +49,7 @@
 
 #define VTK_MAX_CIRCLE_RESOLUTION 1024
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkUnsignedCharArray;
 class vtkCellArray;
@@ -232,4 +233,5 @@ private:
   void operator=(const vtkGlyphSource2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkGraphToPolyData.cxx b/Filters/Sources/vtkGraphToPolyData.cxx
index 7b6f66cfcdbc498624578b05700321e06e349a94..928de3d9f4aa237d0048cf1acf4daa6dba847de3 100644
--- a/Filters/Sources/vtkGraphToPolyData.cxx
+++ b/Filters/Sources/vtkGraphToPolyData.cxx
@@ -41,6 +41,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphToPolyData);
 
 vtkGraphToPolyData::vtkGraphToPolyData()
@@ -215,3 +216,4 @@ void vtkGraphToPolyData::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EdgeGlyphOutput: " << (this->EdgeGlyphOutput ? "on" : "off") << endl;
   os << indent << "EdgeGlyphPosition: " << this->EdgeGlyphPosition << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkGraphToPolyData.h b/Filters/Sources/vtkGraphToPolyData.h
index b428ee3706bae27a69484a5b2c8205fd97c5e6c8..d19a4269fdf159acbacfbf902789f1621842bf11 100644
--- a/Filters/Sources/vtkGraphToPolyData.h
+++ b/Filters/Sources/vtkGraphToPolyData.h
@@ -38,6 +38,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkGraphToPolyData : public vtkPolyDataAlgorithm
 {
 public:
@@ -95,4 +96,5 @@ private:
   void operator=(const vtkGraphToPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkHandleSource.cxx b/Filters/Sources/vtkHandleSource.cxx
index 0df975729162f04a7ad7d229cd91e70c4c134b32..b8d45198eee5e3d6b75df79019719542c15cda6a 100644
--- a/Filters/Sources/vtkHandleSource.cxx
+++ b/Filters/Sources/vtkHandleSource.cxx
@@ -15,6 +15,7 @@
 #include "vtkHandleSource.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkHandleSource::vtkHandleSource()
 {
   this->SetNumberOfInputPorts(0);
@@ -59,3 +60,4 @@ void vtkHandleSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Size: " << this->GetSize() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkHandleSource.h b/Filters/Sources/vtkHandleSource.h
index 65a06c253990f2e34d3aca4831e7d5c6cb9340c6..68f507492bed770de8e487514ffb5e946b613975 100644
--- a/Filters/Sources/vtkHandleSource.h
+++ b/Filters/Sources/vtkHandleSource.h
@@ -30,6 +30,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkHandleSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -105,4 +106,5 @@ protected:
   double Size = 0.5;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkHyperTreeGridPreConfiguredSource.cxx b/Filters/Sources/vtkHyperTreeGridPreConfiguredSource.cxx
index e7edcdda98f23b3b4f5c4c9e458a470fc14dc138..f030dbc48681890aa739adc2e93beccb4186a95a 100644
--- a/Filters/Sources/vtkHyperTreeGridPreConfiguredSource.cxx
+++ b/Filters/Sources/vtkHyperTreeGridPreConfiguredSource.cxx
@@ -30,6 +30,7 @@
 #include <array>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridPreConfiguredSource);
 
 vtkHyperTreeGridPreConfiguredSource::vtkHyperTreeGridPreConfiguredSource()
@@ -392,3 +393,4 @@ int vtkHyperTreeGridPreConfiguredSource::GenerateCustom(vtkHyperTreeGrid* htg)
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkHyperTreeGridPreConfiguredSource.h b/Filters/Sources/vtkHyperTreeGridPreConfiguredSource.h
index 405d96c27ec2bdfc809a82b83b20632352422799..dfe155774a9e2aebb8c55a028cb1e34a6ab27d1e 100644
--- a/Filters/Sources/vtkHyperTreeGridPreConfiguredSource.h
+++ b/Filters/Sources/vtkHyperTreeGridPreConfiguredSource.h
@@ -26,6 +26,7 @@
 #ifndef vtkHyperTreeGridPreConfiguredSource_h
 #define vtkHyperTreeGridPreConfiguredSource_h
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridNonOrientedCursor;
 class vtkDoubleArray;
@@ -192,5 +193,6 @@ protected:
   ///@}
 
 }; // vtkHyperTreeGridPreConfiguredSource
+VTK_ABI_NAMESPACE_END
 
 #endif // vtkHyperTreeGridPreConfiguredSource_h
diff --git a/Filters/Sources/vtkHyperTreeGridSource.cxx b/Filters/Sources/vtkHyperTreeGridSource.cxx
index 6cbade6429c2c170773151c7db673ac893b9f8e6..97d9e6e2ab74ea4b1b22bf6b76017ac014ed31ef 100644
--- a/Filters/Sources/vtkHyperTreeGridSource.cxx
+++ b/Filters/Sources/vtkHyperTreeGridSource.cxx
@@ -33,6 +33,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHyperTreeGridSource);
 vtkCxxSetObjectMacro(vtkHyperTreeGridSource, DescriptorBits, vtkBitArray);
 vtkCxxSetObjectMacro(vtkHyperTreeGridSource, MaskBits, vtkBitArray);
@@ -1535,3 +1536,4 @@ vtkBitArray* vtkHyperTreeGridSource::ConvertMaskStringToBitArray(const std::stri
 {
   return ConvertDescriptorStringToBitArray(str);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkHyperTreeGridSource.h b/Filters/Sources/vtkHyperTreeGridSource.h
index e29639e293eab7124dfd77c219b6afb1fdf9ecab..f5ad111ef1fd5af038f911d94453ed06b762a660 100644
--- a/Filters/Sources/vtkHyperTreeGridSource.h
+++ b/Filters/Sources/vtkHyperTreeGridSource.h
@@ -52,6 +52,7 @@
 #include <string> // STL Header
 #include <vector> // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkDataArray;
 class vtkHyperTreeGridNonOrientedCursor;
@@ -334,4 +335,5 @@ private:
   void operator=(const vtkHyperTreeGridSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkLineSource.cxx b/Filters/Sources/vtkLineSource.cxx
index 0626117e0455ed84cfbdf454421a832fb734cc53..d50b2d7b53edc89e8f7a71963072dac88342c204 100644
--- a/Filters/Sources/vtkLineSource.cxx
+++ b/Filters/Sources/vtkLineSource.cxx
@@ -28,6 +28,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLineSource);
 vtkCxxSetObjectMacro(vtkLineSource, Points, vtkPoints);
 
@@ -317,3 +318,4 @@ void vtkLineSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkLineSource.h b/Filters/Sources/vtkLineSource.h
index 1f328671d94be09f2ede6a7669bfe7e44f20532a..319d7ec41defac88fa23b901d8dcd805e4b8baa0 100644
--- a/Filters/Sources/vtkLineSource.h
+++ b/Filters/Sources/vtkLineSource.h
@@ -55,6 +55,7 @@
 #include "vtkPolyDataAlgorithm.h"
 
 #include <vector> //  for std::vector
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 
 class VTKFILTERSSOURCES_EXPORT vtkLineSource : public vtkPolyDataAlgorithm
@@ -162,4 +163,5 @@ private:
   void operator=(const vtkLineSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkOutlineCornerFilter.cxx b/Filters/Sources/vtkOutlineCornerFilter.cxx
index 0df0a0ab8d70261f2a17c7fdc107de5209b6155c..d4d13a80892532db65c860d520d694f02ac7f9fb 100644
--- a/Filters/Sources/vtkOutlineCornerFilter.cxx
+++ b/Filters/Sources/vtkOutlineCornerFilter.cxx
@@ -21,6 +21,7 @@
 #include "vtkOutlineCornerSource.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOutlineCornerFilter);
 
 vtkOutlineCornerFilter::vtkOutlineCornerFilter()
@@ -74,3 +75,4 @@ void vtkOutlineCornerFilter::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "CornerFactor: " << this->CornerFactor << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkOutlineCornerFilter.h b/Filters/Sources/vtkOutlineCornerFilter.h
index 1c851441ddcb75b28af18f86883a330a3a2e7a6f..dca380540c7647f9b881cd635faa4c0ec0268072 100644
--- a/Filters/Sources/vtkOutlineCornerFilter.h
+++ b/Filters/Sources/vtkOutlineCornerFilter.h
@@ -26,6 +26,7 @@
 
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOutlineCornerSource;
 
 class VTKFILTERSSOURCES_EXPORT vtkOutlineCornerFilter : public vtkPolyDataAlgorithm
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkOutlineCornerFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkOutlineCornerSource.cxx b/Filters/Sources/vtkOutlineCornerSource.cxx
index 7a2dca69767dbbfd7c85f088750c63a8c6347c84..f66f75247b7aa9209f0301a9c3e6ba471e8022b6 100644
--- a/Filters/Sources/vtkOutlineCornerSource.cxx
+++ b/Filters/Sources/vtkOutlineCornerSource.cxx
@@ -21,6 +21,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOutlineCornerSource);
 
 //------------------------------------------------------------------------------
@@ -131,3 +132,4 @@ void vtkOutlineCornerSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CornerFactor: " << this->CornerFactor << "\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkOutlineCornerSource.h b/Filters/Sources/vtkOutlineCornerSource.h
index 559bdff416480ea44d52a387713fcde114337301..ae4c3987c53d49714b2a778a70b8678bdc7eabf8 100644
--- a/Filters/Sources/vtkOutlineCornerSource.h
+++ b/Filters/Sources/vtkOutlineCornerSource.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkOutlineSource.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkOutlineCornerSource : public vtkOutlineSource
 {
 public:
@@ -59,4 +60,5 @@ private:
   void operator=(const vtkOutlineCornerSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkOutlineSource.cxx b/Filters/Sources/vtkOutlineSource.cxx
index 770190e2c74353d9290dabe469d8f403d0e811f1..27f9eeb049c3e9ee66f81dd60fc994e60caf9e3f 100644
--- a/Filters/Sources/vtkOutlineSource.cxx
+++ b/Filters/Sources/vtkOutlineSource.cxx
@@ -21,6 +21,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOutlineSource);
 
 //------------------------------------------------------------------------------
@@ -289,3 +290,4 @@ void vtkOutlineSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkOutlineSource.h b/Filters/Sources/vtkOutlineSource.h
index 8ade70ef6264530a50ad324e7ac132077a1238fc..1ce784e085f3fd71532e9d704ca9ec7aa898610c 100644
--- a/Filters/Sources/vtkOutlineSource.h
+++ b/Filters/Sources/vtkOutlineSource.h
@@ -33,6 +33,7 @@
 #define VTK_BOX_TYPE_AXIS_ALIGNED 0
 #define VTK_BOX_TYPE_ORIENTED 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkOutlineSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkOutlineSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkParametricFunctionSource.cxx b/Filters/Sources/vtkParametricFunctionSource.cxx
index 3f0efba317a792a27a95dc7238c4881126a4d5eb..ee16a2af184dc6034d4d85c261067c0d70238852 100644
--- a/Filters/Sources/vtkParametricFunctionSource.cxx
+++ b/Filters/Sources/vtkParametricFunctionSource.cxx
@@ -30,6 +30,7 @@
 #include <cmath>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParametricFunctionSource);
 vtkCxxSetObjectMacro(vtkParametricFunctionSource, ParametricFunction, vtkParametricFunction);
 
@@ -635,3 +636,4 @@ void vtkParametricFunctionSource::PrintSelf(ostream& os, vtkIndent indent)
      << "\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkParametricFunctionSource.h b/Filters/Sources/vtkParametricFunctionSource.h
index 1b0dcdbce0261dbde20c8f018d7f1d0aec1bf28d..3c2fe54b1922edb1c163de8f83c9ff7c85418110 100644
--- a/Filters/Sources/vtkParametricFunctionSource.h
+++ b/Filters/Sources/vtkParametricFunctionSource.h
@@ -50,6 +50,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkParametricFunction;
 
@@ -251,4 +252,5 @@ private:
   void operator=(const vtkParametricFunctionSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkPartitionedDataSetCollectionSource.cxx b/Filters/Sources/vtkPartitionedDataSetCollectionSource.cxx
index 4ddb58f934c3a05cfe9c6f37c228ff20bc9da8c1..47990e2db020a72d82f5626f203580fd5c5609fb 100644
--- a/Filters/Sources/vtkPartitionedDataSetCollectionSource.cxx
+++ b/Filters/Sources/vtkPartitionedDataSetCollectionSource.cxx
@@ -50,6 +50,7 @@
 #include <vector>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 std::vector<int> GenerateAssignments(int numRanks, int& count)
@@ -221,3 +222,4 @@ void vtkPartitionedDataSetCollectionSource::PrintSelf(ostream& os, vtkIndent ind
   this->Superclass::PrintSelf(os, indent);
   os << indent << "NumberOfShapes: " << this->NumberOfShapes << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkPartitionedDataSetCollectionSource.h b/Filters/Sources/vtkPartitionedDataSetCollectionSource.h
index 22efe5783968e00dc934629c06d35e98fe635957..9364a83caa1fc0191c64f172e4a0f914791ffa37 100644
--- a/Filters/Sources/vtkPartitionedDataSetCollectionSource.h
+++ b/Filters/Sources/vtkPartitionedDataSetCollectionSource.h
@@ -30,6 +30,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPartitionedDataSetCollectionAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkPartitionedDataSetCollectionSource
   : public vtkPartitionedDataSetCollectionAlgorithm
 {
@@ -61,4 +62,5 @@ private:
   int NumberOfShapes;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkPartitionedDataSetSource.cxx b/Filters/Sources/vtkPartitionedDataSetSource.cxx
index 88e1341747b119babd1e0b5f76deaa591e2b5e03..9c5cb99c7beb4520fc4423d288757a76ec393cc5 100644
--- a/Filters/Sources/vtkPartitionedDataSetSource.cxx
+++ b/Filters/Sources/vtkPartitionedDataSetSource.cxx
@@ -33,6 +33,7 @@
 #include <typeinfo>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -287,3 +288,4 @@ int vtkPartitionedDataSetSource::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkPartitionedDataSetSource.h b/Filters/Sources/vtkPartitionedDataSetSource.h
index a7dca3374a9de5406d1bfdc6a83e927366fa5f02..986d839ac2c883a4dad59c517657761771cbcbb8 100644
--- a/Filters/Sources/vtkPartitionedDataSetSource.h
+++ b/Filters/Sources/vtkPartitionedDataSetSource.h
@@ -40,6 +40,7 @@
 
 #include <map> // For std::map
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkParametricFunction;
 class vtkPartitionedDataSet;
 
@@ -107,4 +108,5 @@ private:
   vtkParametricFunction* ParametricFunction = nullptr;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkPlaneSource.cxx b/Filters/Sources/vtkPlaneSource.cxx
index fd3212355351e6e4fb1c519f9f61e027886c99f1..e3f3b64ff3bc0673fb22806c6ff526f7728f9166 100644
--- a/Filters/Sources/vtkPlaneSource.cxx
+++ b/Filters/Sources/vtkPlaneSource.cxx
@@ -25,6 +25,7 @@
 #include "vtkPolyData.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlaneSource);
 
 constexpr double EPSILON = 1.0E-6;
@@ -471,3 +472,4 @@ void vtkPlaneSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkPlaneSource.h b/Filters/Sources/vtkPlaneSource.h
index 4cd67cf0912739991d4f4f2faf12d5fa1405a132..949d7add3c23dc66110be7f6140e177c674d7402 100644
--- a/Filters/Sources/vtkPlaneSource.h
+++ b/Filters/Sources/vtkPlaneSource.h
@@ -51,6 +51,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkPlaneSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -195,4 +196,5 @@ private:
   void operator=(const vtkPlaneSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkPlatonicSolidSource.cxx b/Filters/Sources/vtkPlatonicSolidSource.cxx
index 66138dc92c6be6b67a9183b53a982677629c2e88..243b6a86687400f332f0a35176868a1391321d07 100644
--- a/Filters/Sources/vtkPlatonicSolidSource.cxx
+++ b/Filters/Sources/vtkPlatonicSolidSource.cxx
@@ -22,7 +22,9 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlatonicSolidSource);
+VTK_ABI_NAMESPACE_END
 
 // Wrapping this in namespaces because the short names (a, b, c, etc) are
 // throwing warnings on MSVC when inlined methods in vtkGenericDataArray are
@@ -166,6 +168,7 @@ constexpr vtkIdType IcosaVerts[] = {
 } // end namespace detail
 } // end anon namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkPlatonicSolidSource::vtkPlatonicSolidSource()
 {
   this->SolidType = VTK_SOLID_TETRAHEDRON;
@@ -318,3 +321,4 @@ void vtkPlatonicSolidSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkPlatonicSolidSource.h b/Filters/Sources/vtkPlatonicSolidSource.h
index db75e41c9da445e71102bdc02b5e023e43276655..ac949b44963026cdf8e36acf035c05f4bb0f8488 100644
--- a/Filters/Sources/vtkPlatonicSolidSource.h
+++ b/Filters/Sources/vtkPlatonicSolidSource.h
@@ -35,6 +35,7 @@
 #define VTK_SOLID_ICOSAHEDRON 3
 #define VTK_SOLID_DODECAHEDRON 4
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkPlatonicSolidSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkPlatonicSolidSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkPointHandleSource.cxx b/Filters/Sources/vtkPointHandleSource.cxx
index b4285c871b0b2572767cd5468b263b9ad5663db7..65ec240e09ded8ec8788a32dcae06feaf9be04ae 100644
--- a/Filters/Sources/vtkPointHandleSource.cxx
+++ b/Filters/Sources/vtkPointHandleSource.cxx
@@ -18,6 +18,7 @@
 #include "vtkSphereSource.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointHandleSource);
 
 //------------------------------------------------------------------------------
@@ -127,3 +128,4 @@ void vtkPointHandleSource::PrintSelf(ostream& os, vtkIndent indent)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkPointHandleSource.h b/Filters/Sources/vtkPointHandleSource.h
index 12abc9f43ebd723b1ca5ef8eac67492761e941a1..c7ce8afdc40ae84d5f34bd597eb8e5b0246253a0 100644
--- a/Filters/Sources/vtkPointHandleSource.h
+++ b/Filters/Sources/vtkPointHandleSource.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkHandleSource.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkConeSource;
 class vtkSphereSource;
 
@@ -81,4 +82,5 @@ protected:
   vtkNew<vtkConeSource> PositionCone;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkPointSource.cxx b/Filters/Sources/vtkPointSource.cxx
index 73aeea0c40e757cc1c820a5707784e1202776fc6..a1c52131badb15762dc2a09e6d1862905250d7eb 100644
--- a/Filters/Sources/vtkPointSource.cxx
+++ b/Filters/Sources/vtkPointSource.cxx
@@ -26,6 +26,7 @@
 #include <cfloat>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointSource);
 
 //------------------------------------------------------------------------------
@@ -190,3 +191,4 @@ void vtkPointSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Lambda: " << this->Lambda << "\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkPointSource.h b/Filters/Sources/vtkPointSource.h
index ad4408a95e90cc92458998c81a7aad3825d28a66..5346e4a292acf365e2042fcf9b682934bf29208d 100644
--- a/Filters/Sources/vtkPointSource.h
+++ b/Filters/Sources/vtkPointSource.h
@@ -47,6 +47,7 @@
 #define VTK_POINT_UNIFORM 1
 #define VTK_POINT_EXPONENTIAL 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRandomSequence;
 
 class VTKFILTERSSOURCES_EXPORT vtkPointSource : public vtkPolyDataAlgorithm
@@ -155,4 +156,5 @@ private:
   void operator=(const vtkPointSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkPolyLineSource.cxx b/Filters/Sources/vtkPolyLineSource.cxx
index d48dc143a51621cdcd6a42bed68ebdd5f202fdb2..7c2b933819575cc79837ca868640f05c659ed35d 100644
--- a/Filters/Sources/vtkPolyLineSource.cxx
+++ b/Filters/Sources/vtkPolyLineSource.cxx
@@ -22,6 +22,7 @@
 #include "vtkSmartPointer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyLineSource);
 
 //------------------------------------------------------------------------------
@@ -71,3 +72,4 @@ void vtkPolyLineSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Closed: " << this->Closed << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkPolyLineSource.h b/Filters/Sources/vtkPolyLineSource.h
index dc4a5fd39dae68e3de17f517e1242d00f0ca7eb4..3bb1838cb80c0b8e5fdfe453b80edddd19b0a813 100644
--- a/Filters/Sources/vtkPolyLineSource.h
+++ b/Filters/Sources/vtkPolyLineSource.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyPointSource.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 
 class VTKFILTERSSOURCES_EXPORT vtkPolyLineSource : public vtkPolyPointSource
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkPolyLineSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkPolyPointSource.cxx b/Filters/Sources/vtkPolyPointSource.cxx
index 2277898b1ec2f611e604f81584866ef5f31992d8..da9b2ef1ec4bab026f38333f968e023fbf9dc4cd 100644
--- a/Filters/Sources/vtkPolyPointSource.cxx
+++ b/Filters/Sources/vtkPolyPointSource.cxx
@@ -22,6 +22,7 @@
 #include "vtkSmartPointer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyPointSource);
 
 vtkCxxSetObjectMacro(vtkPolyPointSource, Points, vtkPoints);
@@ -154,3 +155,4 @@ void vtkPolyPointSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Points: " << this->Points << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkPolyPointSource.h b/Filters/Sources/vtkPolyPointSource.h
index b1c7619f84eb3a45e07e97930e209122779641b7..f9c282ba15b776f1718e41da576218def3008758 100644
--- a/Filters/Sources/vtkPolyPointSource.h
+++ b/Filters/Sources/vtkPolyPointSource.h
@@ -26,6 +26,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 
 class VTKFILTERSSOURCES_EXPORT vtkPolyPointSource : public vtkPolyDataAlgorithm
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkPolyPointSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkProgrammableDataObjectSource.cxx b/Filters/Sources/vtkProgrammableDataObjectSource.cxx
index 7e1ea81ea93d5b5223a8b00242191f8a9cf7726e..3044034a407aaeea0978d868296e668fb421a8b1 100644
--- a/Filters/Sources/vtkProgrammableDataObjectSource.cxx
+++ b/Filters/Sources/vtkProgrammableDataObjectSource.cxx
@@ -19,6 +19,7 @@
 #include "vtkInformationVector.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProgrammableDataObjectSource);
 
 // Construct programmable filter with empty execute method.
@@ -101,3 +102,4 @@ void vtkProgrammableDataObjectSource::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "An ExecuteMethod has NOT been defined\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkProgrammableDataObjectSource.h b/Filters/Sources/vtkProgrammableDataObjectSource.h
index 7ca99d4a649581aad455e52cc3fce38b93741141..c36a87c0b83abd1e0dcf835dc014e5e9ad253acb 100644
--- a/Filters/Sources/vtkProgrammableDataObjectSource.h
+++ b/Filters/Sources/vtkProgrammableDataObjectSource.h
@@ -39,6 +39,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersSourcesModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkProgrammableDataObjectSource : public vtkDataObjectAlgorithm
 {
 public:
@@ -83,4 +84,5 @@ private:
   void operator=(const vtkProgrammableDataObjectSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkProgrammableSource.cxx b/Filters/Sources/vtkProgrammableSource.cxx
index 7252a39a1534d28c11ef3b5d39a5297e18d517cd..5f39bea2d7d0c8f00296f09ac725b468b0b2a37e 100644
--- a/Filters/Sources/vtkProgrammableSource.cxx
+++ b/Filters/Sources/vtkProgrammableSource.cxx
@@ -28,6 +28,7 @@
 #include "vtkTable.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProgrammableSource);
 
 void vtkProgrammableSource::PrintSelf(ostream& os, vtkIndent indent)
@@ -434,3 +435,4 @@ int vtkProgrammableSource::RequestInformation(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkProgrammableSource.h b/Filters/Sources/vtkProgrammableSource.h
index 3400d4b515bc066c7481a0781d1bad5a154bee4c..42dd5c555f520f2e450a3bada64cfdf33dfabfab 100644
--- a/Filters/Sources/vtkProgrammableSource.h
+++ b/Filters/Sources/vtkProgrammableSource.h
@@ -41,6 +41,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkFiltersSourcesModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 class vtkMolecule;
 class vtkPolyData;
@@ -122,4 +123,5 @@ private:
   void operator=(const vtkProgrammableSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkRandomHyperTreeGridSource.cxx b/Filters/Sources/vtkRandomHyperTreeGridSource.cxx
index 3a31d896999866df00141399895689cd51263fe9..f56267377bd962f471b6afe1d8b6aa58b9001bf3 100644
--- a/Filters/Sources/vtkRandomHyperTreeGridSource.cxx
+++ b/Filters/Sources/vtkRandomHyperTreeGridSource.cxx
@@ -28,6 +28,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRandomHyperTreeGridSource);
 
 //------------------------------------------------------------------------------
@@ -211,3 +212,4 @@ bool vtkRandomHyperTreeGridSource::ShouldRefine(vtkIdType level)
   this->RNG->Next();
   return level < this->MaxDepth && this->RNG->GetValue() < this->SplitFraction;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkRandomHyperTreeGridSource.h b/Filters/Sources/vtkRandomHyperTreeGridSource.h
index 08046905ebf1caead87e4e2dd2408187e2fea195..32c19fc09defc8d7b8cda3c5e5e5dc11527736ba 100644
--- a/Filters/Sources/vtkRandomHyperTreeGridSource.h
+++ b/Filters/Sources/vtkRandomHyperTreeGridSource.h
@@ -25,6 +25,7 @@
 
 #include <vtkNew.h> // For vtkNew
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkExtentTranslator;
 class vtkHyperTreeGridNonOrientedCursor;
@@ -115,4 +116,5 @@ private:
   vtkDoubleArray* Levels;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkRandomHyperTreeGridSource_h
diff --git a/Filters/Sources/vtkRectangularButtonSource.cxx b/Filters/Sources/vtkRectangularButtonSource.cxx
index fd49c9d3b51c8e08c5b7c0f81d50c9d5e3c2c26d..dc985649a2448d46334f6c763f7f846b38e8ab43 100644
--- a/Filters/Sources/vtkRectangularButtonSource.cxx
+++ b/Filters/Sources/vtkRectangularButtonSource.cxx
@@ -25,6 +25,7 @@
 #include "vtkPolyData.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectangularButtonSource);
 
 //------------------------------------------------------------------------------
@@ -294,3 +295,4 @@ void vtkRectangularButtonSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "TextureHeightRatio: " << this->TextureHeightRatio << "\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkRectangularButtonSource.h b/Filters/Sources/vtkRectangularButtonSource.h
index e1bcabe8098c501577f7d5db80a8f3e54e9d0b7f..81e2777bf86aa178ab00b9634bc9719b27c41388 100644
--- a/Filters/Sources/vtkRectangularButtonSource.h
+++ b/Filters/Sources/vtkRectangularButtonSource.h
@@ -47,6 +47,7 @@
 #include "vtkButtonSource.h"
 #include "vtkFiltersSourcesModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkFloatArray;
 class vtkPoints;
@@ -153,4 +154,5 @@ private:
   void operator=(const vtkRectangularButtonSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkRegularPolygonSource.cxx b/Filters/Sources/vtkRegularPolygonSource.cxx
index 7477db433898b3bdcc8a411babd658e67e899d9f..4c6c396a59d8fb7d4786a10d2f9daf36d9f6c3e5 100644
--- a/Filters/Sources/vtkRegularPolygonSource.cxx
+++ b/Filters/Sources/vtkRegularPolygonSource.cxx
@@ -25,6 +25,7 @@
 #include "vtkPolyData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRegularPolygonSource);
 
 vtkRegularPolygonSource::vtkRegularPolygonSource()
@@ -185,3 +186,4 @@ void vtkRegularPolygonSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkRegularPolygonSource.h b/Filters/Sources/vtkRegularPolygonSource.h
index 1b5e7a88daa3ae4cd101a58fb86d6bbb9ea3396c..c5e51344886ab4f8654405ef58e0af6ceea6b4d7 100644
--- a/Filters/Sources/vtkRegularPolygonSource.h
+++ b/Filters/Sources/vtkRegularPolygonSource.h
@@ -30,6 +30,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkRegularPolygonSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -125,4 +126,5 @@ private:
   void operator=(const vtkRegularPolygonSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkSelectionSource.cxx b/Filters/Sources/vtkSelectionSource.cxx
index 7f1fc34a234fca026a5a26bb7af2232ffc972274..f4c7cb6f4f2a4834bd9fedceb67aacf535324d40 100644
--- a/Filters/Sources/vtkSelectionSource.cxx
+++ b/Filters/Sources/vtkSelectionSource.cxx
@@ -29,6 +29,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkSelectionSource::NodeInformation
 {
   using IDSetType = std::set<vtkIdType>;
@@ -1112,3 +1113,4 @@ int vtkSelectionSource::RequestData(vtkInformation* vtkNotUsed(request),
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkSelectionSource.h b/Filters/Sources/vtkSelectionSource.h
index c5a5db84eb381a5c2340da0c0ebc8afa2d087161..3ebcee42d669f6f9144bae588f40b5b0bed8eaf1 100644
--- a/Filters/Sources/vtkSelectionSource.h
+++ b/Filters/Sources/vtkSelectionSource.h
@@ -49,6 +49,7 @@
 #include <memory> // for std::shared_ptr
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkSelectionSource : public vtkSelectionAlgorithm
 {
 public:
@@ -453,4 +454,5 @@ private:
   void operator=(const vtkSelectionSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkSphereSource.cxx b/Filters/Sources/vtkSphereSource.cxx
index bc3fba473d0252ab38b3736b3e236dc52d7d5f4b..c9119b18a3eb4f8077cd207c82eca7909a38f9a4 100644
--- a/Filters/Sources/vtkSphereSource.cxx
+++ b/Filters/Sources/vtkSphereSource.cxx
@@ -27,6 +27,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSphereSource);
 
 //------------------------------------------------------------------------------
@@ -344,3 +345,4 @@ int vtkSphereSource::RequestInformation(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkSphereSource.h b/Filters/Sources/vtkSphereSource.h
index fe900280084a72882283b7ddff298c4a4f4c7de3..9cc17c33ea1c21ea0a27d3168b43c915aeb5e609 100644
--- a/Filters/Sources/vtkSphereSource.h
+++ b/Filters/Sources/vtkSphereSource.h
@@ -36,6 +36,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkSphereSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -178,4 +179,5 @@ private:
   void operator=(const vtkSphereSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkSuperquadricSource.cxx b/Filters/Sources/vtkSuperquadricSource.cxx
index 5bca467ded676a094548a55e61969aa814d2a3e0..4f965d312a28e8d64367d58eba012c56622c098e 100644
--- a/Filters/Sources/vtkSuperquadricSource.cxx
+++ b/Filters/Sources/vtkSuperquadricSource.cxx
@@ -31,6 +31,7 @@
 #include "vtkPolyData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSuperquadricSource);
 
 static void evalSuperquadric(double theta, double phi, double dtheta, double dphi, double rtheta,
@@ -508,3 +509,4 @@ static void evalSuperquadric(double theta, double phi, // parametric coords
   nrm[1] = 1.0 / dims[1] * cf2 * cf(theta + dtheta, 2.0 - rtheta);
   nrm[2] = 1.0 / dims[2] * sf(phi + dphi, 2.0 - rphi);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkSuperquadricSource.h b/Filters/Sources/vtkSuperquadricSource.h
index d248f2d6a675767a48b329658999f94c2a20c57d..64d13229c6c8223a959da5c1883efaecb675b05c 100644
--- a/Filters/Sources/vtkSuperquadricSource.h
+++ b/Filters/Sources/vtkSuperquadricSource.h
@@ -58,6 +58,7 @@
 #define VTK_MIN_SUPERQUADRIC_THICKNESS 1e-4
 #define VTK_MIN_SUPERQUADRIC_ROUNDNESS 1e-24
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkSuperquadricSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -196,4 +197,5 @@ private:
   void operator=(const vtkSuperquadricSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkTessellatedBoxSource.cxx b/Filters/Sources/vtkTessellatedBoxSource.cxx
index 97705e9c2d1cc9c78dde39a22e6e6166c51978da..f9bc8b4b7cacbcb63e8ed8c2ddeb357b99bef49c 100644
--- a/Filters/Sources/vtkTessellatedBoxSource.cxx
+++ b/Filters/Sources/vtkTessellatedBoxSource.cxx
@@ -21,6 +21,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTessellatedBoxSource);
 
 //------------------------------------------------------------------------------
@@ -674,3 +675,4 @@ void vtkTessellatedBoxSource::PrintSelf(ostream& os, vtkIndent indent)
   os << endl;
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkTessellatedBoxSource.h b/Filters/Sources/vtkTessellatedBoxSource.h
index b0b70446c956e05b032fec29e0a320ac9e44b1d7..bf0eb1346c27ce9a47fe4c50bf27e439e0a6154e 100644
--- a/Filters/Sources/vtkTessellatedBoxSource.h
+++ b/Filters/Sources/vtkTessellatedBoxSource.h
@@ -38,6 +38,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkTessellatedBoxSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -159,4 +160,5 @@ private:
   void operator=(const vtkTessellatedBoxSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkTextSource.cxx b/Filters/Sources/vtkTextSource.cxx
index f7c117b980106fb0446ef72bdaeaa36b0607b94d..2ecb6d4c213b7edb97e01dfae0e277dfe8ee2dd7 100644
--- a/Filters/Sources/vtkTextSource.cxx
+++ b/Filters/Sources/vtkTextSource.cxx
@@ -23,6 +23,7 @@
 #include "vtkPolyData.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTextSource);
 
 #define vtkfont_width 9
@@ -458,3 +459,4 @@ void vtkTextSource::PrintSelf(ostream& os, vtkIndent indent)
      << this->BackgroundColor[1] << ", " << this->BackgroundColor[2] << ")\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkTextSource.h b/Filters/Sources/vtkTextSource.h
index 8644c7335fac7a576e3df3127dae0f1915e9cd29..1dd8ec8469382f1cdf23c73fbe713b7ecd1ce3cc 100644
--- a/Filters/Sources/vtkTextSource.h
+++ b/Filters/Sources/vtkTextSource.h
@@ -39,6 +39,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkTextSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -109,4 +110,5 @@ private:
   void operator=(const vtkTextSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkTexturedSphereSource.cxx b/Filters/Sources/vtkTexturedSphereSource.cxx
index 07863399685f309c409eccf04afffbaf1e58586b..2f4180ff5bde7cd4f4e574f4e4b8e751115bad35 100644
--- a/Filters/Sources/vtkTexturedSphereSource.cxx
+++ b/Filters/Sources/vtkTexturedSphereSource.cxx
@@ -24,6 +24,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTexturedSphereSource);
 
 // Construct sphere with radius=0.5 and default resolution 8 in both Phi
@@ -169,3 +170,4 @@ void vtkTexturedSphereSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Radius: " << this->Radius << "\n";
   os << indent << "Output Points Precision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkTexturedSphereSource.h b/Filters/Sources/vtkTexturedSphereSource.h
index 0402ff38645b23e826aec676d99aa4cf1a3c3851..58fb92b6eb30c313daa5b843776b71806e31a82e 100644
--- a/Filters/Sources/vtkTexturedSphereSource.h
+++ b/Filters/Sources/vtkTexturedSphereSource.h
@@ -29,6 +29,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkTexturedSphereSource : public vtkPolyDataAlgorithm
 {
 public:
@@ -108,4 +109,5 @@ private:
   void operator=(const vtkTexturedSphereSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Sources/vtkUniformHyperTreeGridSource.cxx b/Filters/Sources/vtkUniformHyperTreeGridSource.cxx
index 7ac06576ebf54e54daa48abdefffd4bf72c847cd..fc525eb4eb20c5363534373781e20de3d65d44a8 100644
--- a/Filters/Sources/vtkUniformHyperTreeGridSource.cxx
+++ b/Filters/Sources/vtkUniformHyperTreeGridSource.cxx
@@ -21,6 +21,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkObjectFactory.h"
 #include "vtkUniformHyperTreeGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUniformHyperTreeGridSource);
 
 //------------------------------------------------------------------------------
@@ -197,3 +198,4 @@ int vtkUniformHyperTreeGridSource::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Sources/vtkUniformHyperTreeGridSource.h b/Filters/Sources/vtkUniformHyperTreeGridSource.h
index 5132ad42360e9b05d14832ede94ae28842094daa..4b913a7b267679dc03c413cddf8d733f4b2c55d7 100644
--- a/Filters/Sources/vtkUniformHyperTreeGridSource.h
+++ b/Filters/Sources/vtkUniformHyperTreeGridSource.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersSourcesModule.h" // For export macro
 #include "vtkHyperTreeGridSource.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSOURCES_EXPORT vtkUniformHyperTreeGridSource : public vtkHyperTreeGridSource
 {
 public:
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkUniformHyperTreeGridSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkAutoCorrelativeStatistics.cxx b/Filters/Statistics/vtkAutoCorrelativeStatistics.cxx
index e675f9f58757871e678879e7cc424203e70a669d..0600b6da87eac7c503fbd4e192636f804177dd84 100644
--- a/Filters/Statistics/vtkAutoCorrelativeStatistics.cxx
+++ b/Filters/Statistics/vtkAutoCorrelativeStatistics.cxx
@@ -33,6 +33,7 @@
 #include <set>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAutoCorrelativeStatistics);
 
 //------------------------------------------------------------------------------
@@ -637,3 +638,4 @@ void vtkAutoCorrelativeStatistics::SelectAssessFunctor(
 
   // If arrived here it means that the variable of interest was not found in the parameter table
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkAutoCorrelativeStatistics.h b/Filters/Statistics/vtkAutoCorrelativeStatistics.h
index 640ffcfac4cc445e23df5bb090abeb93352ccf53..37cab1b64eb038d68809380e0357a6c5cb53bff2 100644
--- a/Filters/Statistics/vtkAutoCorrelativeStatistics.h
+++ b/Filters/Statistics/vtkAutoCorrelativeStatistics.h
@@ -43,6 +43,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkStatisticsAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkStringArray;
 class vtkTable;
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkAutoCorrelativeStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkBivariateLinearTableThreshold.cxx b/Filters/Statistics/vtkBivariateLinearTableThreshold.cxx
index 3114b2069b6b407cd4c01d844bee6b600f928e15..b67452a579dc14d656a844c3afa40fcaa922b131 100644
--- a/Filters/Statistics/vtkBivariateLinearTableThreshold.cxx
+++ b/Filters/Statistics/vtkBivariateLinearTableThreshold.cxx
@@ -30,6 +30,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBivariateLinearTableThreshold);
 
 class vtkBivariateLinearTableThreshold::Internals
@@ -377,3 +378,4 @@ int vtkBivariateLinearTableThreshold::ThresholdBetween(double x, double y)
 {
   return (this->ThresholdAbove(x, y) && this->ThresholdBelow(x, y));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkBivariateLinearTableThreshold.h b/Filters/Statistics/vtkBivariateLinearTableThreshold.h
index fba9bf6c17bd7ecbbaf699694f7a9db9171f8d4e..d9b6f406ee381c081fe24ebf7f2c91f5c81107cc 100644
--- a/Filters/Statistics/vtkBivariateLinearTableThreshold.h
+++ b/Filters/Statistics/vtkBivariateLinearTableThreshold.h
@@ -44,6 +44,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkSmartPointer.h"            //Required for smart pointer internal ivars
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArrayCollection;
 class vtkDoubleArray;
 class vtkIdTypeArray;
@@ -248,4 +249,5 @@ private:
   void operator=(const vtkBivariateLinearTableThreshold&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkComputeQuantiles.cxx b/Filters/Statistics/vtkComputeQuantiles.cxx
index 9513c2e0b80300ca8ccf55b38f53c36cf95e9e7a..0b902cff66180bd0ef8fad87d8affe1299eeac6f 100644
--- a/Filters/Statistics/vtkComputeQuantiles.cxx
+++ b/Filters/Statistics/vtkComputeQuantiles.cxx
@@ -33,6 +33,7 @@
 #include <sstream>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkComputeQuantiles);
 //------------------------------------------------------------------------------
 vtkComputeQuantiles::vtkComputeQuantiles()
@@ -235,3 +236,4 @@ vtkOrderStatistics* vtkComputeQuantiles::CreateOrderStatisticsFilter()
 {
   return vtkOrderStatistics::New();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkComputeQuantiles.h b/Filters/Statistics/vtkComputeQuantiles.h
index 76fc29246b72f70d9efcfc620fcae7b50c47b69a..3245846450c0afd6d0faf2667c9ada99fab555b9 100644
--- a/Filters/Statistics/vtkComputeQuantiles.h
+++ b/Filters/Statistics/vtkComputeQuantiles.h
@@ -38,6 +38,7 @@
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkDoubleArray;
 class vtkFieldData;
@@ -84,4 +85,5 @@ private:
   vtkFieldData* GetInputFieldData(vtkDataObject* input);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkComputeQuartiles.cxx b/Filters/Statistics/vtkComputeQuartiles.cxx
index aa96987ff39b3b1865a4c9e5e0623c752cb025c8..3437ed3a7b0fbfeb05f9b00084a3f3c8fab4b42b 100644
--- a/Filters/Statistics/vtkComputeQuartiles.cxx
+++ b/Filters/Statistics/vtkComputeQuartiles.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkComputeQuartiles);
 //------------------------------------------------------------------------------
 vtkComputeQuartiles::vtkComputeQuartiles()
@@ -34,3 +35,4 @@ void vtkComputeQuartiles::PrintSelf(std::ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkComputeQuartiles.h b/Filters/Statistics/vtkComputeQuartiles.h
index 3fbef1d2b0ba71eb55192a9d9090215a33c31c39..8516257e19668efd308a7086656d4054513d4cc3 100644
--- a/Filters/Statistics/vtkComputeQuartiles.h
+++ b/Filters/Statistics/vtkComputeQuartiles.h
@@ -40,6 +40,7 @@
 #include "vtkComputeQuantiles.h"
 #include "vtkFiltersStatisticsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSTATISTICS_EXPORT vtkComputeQuartiles : public vtkComputeQuantiles
 {
 public:
@@ -56,4 +57,5 @@ private:
   vtkComputeQuartiles(const vtkComputeQuartiles&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkContingencyStatistics.cxx b/Filters/Statistics/vtkContingencyStatistics.cxx
index a30c28a5a61b7f372605cec1df28401752a5495e..c091aafedd73d7a82870c4b12189137965679f31 100644
--- a/Filters/Statistics/vtkContingencyStatistics.cxx
+++ b/Filters/Statistics/vtkContingencyStatistics.cxx
@@ -42,6 +42,7 @@ typedef std::map<std::string, vtkIdType> StringCounts;
 typedef std::map<vtkIdType, double> Entropies;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <typename TypeSpec, typename vtkType>
 class BivariateContingenciesAndInformationFunctor : public vtkStatisticsAlgorithm::AssessFunctor
 {
@@ -1727,3 +1728,4 @@ void vtkContingencyStatistics::SelectAssessFunctor(vtkTable* outData, vtkMultiBl
       "Incorrect CDF for column pair:" << varNameX << "," << varNameY << "). Ignoring it.");
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkContingencyStatistics.h b/Filters/Statistics/vtkContingencyStatistics.h
index 6fc8a5ff11868fcfd53b851a70f0e22504564e2f..569ad408fe587ebfe244986fa0ba7650c50606b9 100644
--- a/Filters/Statistics/vtkContingencyStatistics.h
+++ b/Filters/Statistics/vtkContingencyStatistics.h
@@ -46,6 +46,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkStatisticsAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkStringArray;
 class vtkTable;
@@ -115,4 +116,5 @@ private:
   void operator=(const vtkContingencyStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkCorrelativeStatistics.cxx b/Filters/Statistics/vtkCorrelativeStatistics.cxx
index d0cf1a1b0b1fc2a09ae44f8c17cc3ea3361e886d..4a6b21518db4071e80023fc5073e38fe22354c7d 100644
--- a/Filters/Statistics/vtkCorrelativeStatistics.cxx
+++ b/Filters/Statistics/vtkCorrelativeStatistics.cxx
@@ -37,6 +37,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkCorrelativeStatistics);
 
 //------------------------------------------------------------------------------
@@ -910,3 +911,4 @@ void vtkCorrelativeStatistics::SelectAssessFunctor(
   // If arrived here, it means that the pair of variables of interest was not found in the parameter
   // table
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkCorrelativeStatistics.h b/Filters/Statistics/vtkCorrelativeStatistics.h
index 8f44bd92974707bba45ca546a0e2c71061f2058b..f1780bb645b18e3bf90c1fc11362ad80488f0f6e 100644
--- a/Filters/Statistics/vtkCorrelativeStatistics.h
+++ b/Filters/Statistics/vtkCorrelativeStatistics.h
@@ -47,6 +47,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkStatisticsAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkStringArray;
 class vtkTable;
@@ -109,4 +110,5 @@ private:
   void operator=(const vtkCorrelativeStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkDescriptiveStatistics.cxx b/Filters/Statistics/vtkDescriptiveStatistics.cxx
index 78f9310041401bd4ecda51709a438f1bea23b287..09f06ae8b3924418c3b6436fa9e1531970adea66 100644
--- a/Filters/Statistics/vtkDescriptiveStatistics.cxx
+++ b/Filters/Statistics/vtkDescriptiveStatistics.cxx
@@ -44,6 +44,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkDescriptiveStatistics);
 
 //------------------------------------------------------------------------------
@@ -933,3 +934,4 @@ void vtkDescriptiveStatistics::SelectAssessFunctor(
 
   // If arrived here it means that the variable of interest was not found in the parameter table
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkDescriptiveStatistics.h b/Filters/Statistics/vtkDescriptiveStatistics.h
index f01baa23280501aa1e0c4e1a24c2f157eb036917..f77cc9f516ba4332e7ff90504d7bb49ad20bd391 100644
--- a/Filters/Statistics/vtkDescriptiveStatistics.h
+++ b/Filters/Statistics/vtkDescriptiveStatistics.h
@@ -106,6 +106,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkStatisticsAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkStringArray;
 class vtkTable;
@@ -272,4 +273,5 @@ private:
   void operator=(const vtkDescriptiveStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkExtractFunctionalBagPlot.cxx b/Filters/Statistics/vtkExtractFunctionalBagPlot.cxx
index 2adb0af11b3a2649eb82916c4573b655d26f03e8..59d229a9bbeac45fa5f2ade40c3a561f2c505b17 100644
--- a/Filters/Statistics/vtkExtractFunctionalBagPlot.cxx
+++ b/Filters/Statistics/vtkExtractFunctionalBagPlot.cxx
@@ -29,6 +29,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractFunctionalBagPlot);
 
 //------------------------------------------------------------------------------
@@ -232,3 +233,4 @@ int vtkExtractFunctionalBagPlot::RequestData(vtkInformation* /*request*/,
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkExtractFunctionalBagPlot.h b/Filters/Statistics/vtkExtractFunctionalBagPlot.h
index d9416d0c764d4d8d8734dc4af18b37ce60a444d0..4bc56ea562fa95a735d590feba4a2475df9976d0 100644
--- a/Filters/Statistics/vtkExtractFunctionalBagPlot.h
+++ b/Filters/Statistics/vtkExtractFunctionalBagPlot.h
@@ -33,6 +33,7 @@
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSSTATISTICS_EXPORT vtkExtractFunctionalBagPlot : public vtkTableAlgorithm
 {
 public:
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkExtractFunctionalBagPlot&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkExtractFunctionalBagPlot_h
diff --git a/Filters/Statistics/vtkExtractHistogram.cxx b/Filters/Statistics/vtkExtractHistogram.cxx
index f5a241db9d77daf2beac74047f06d4a0e20dbabf..2d4b038cc7e6e375d6184d2d75c288633cb89693 100644
--- a/Filters/Statistics/vtkExtractHistogram.cxx
+++ b/Filters/Statistics/vtkExtractHistogram.cxx
@@ -47,6 +47,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtractHistogramInternal
 {
 public:
@@ -854,3 +855,4 @@ int vtkExtractHistogram::RequestData(vtkInformation* /*request*/,
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkExtractHistogram.h b/Filters/Statistics/vtkExtractHistogram.h
index dd6301465d653eb7fb925b2a30132041b9d12454..e99969ec24cffd7616fdab4d06c36b88bdd2b6c5 100644
--- a/Filters/Statistics/vtkExtractHistogram.h
+++ b/Filters/Statistics/vtkExtractHistogram.h
@@ -32,6 +32,7 @@
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkFieldData;
 class vtkIntArray;
@@ -218,4 +219,5 @@ private:
   vtkFieldData* GetInputFieldData(vtkDataObject* input);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkHighestDensityRegionsStatistics.cxx b/Filters/Statistics/vtkHighestDensityRegionsStatistics.cxx
index d55f642347ddd787841cfef8ecc9b5e436eab0ae..dfb224616db4c1f768b21db8cc991fe968238030 100644
--- a/Filters/Statistics/vtkHighestDensityRegionsStatistics.cxx
+++ b/Filters/Statistics/vtkHighestDensityRegionsStatistics.cxx
@@ -29,6 +29,7 @@
 #include <set>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHighestDensityRegionsStatistics);
 
 //------------------------------------------------------------------------------
@@ -247,3 +248,4 @@ double vtkHighestDensityRegionsStatistics::ComputeSmoothGaussianKernel(
 
   return (exp(-d * 0.5)) / (2.0 * vtkMath::Pi() * this->Determinant);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkHighestDensityRegionsStatistics.h b/Filters/Statistics/vtkHighestDensityRegionsStatistics.h
index 17dabfe34d3a4f5dc16269cea81d6f86214b0fbb..4ea134624e570af6e9c65ff8598929c97c1257a0 100644
--- a/Filters/Statistics/vtkHighestDensityRegionsStatistics.h
+++ b/Filters/Statistics/vtkHighestDensityRegionsStatistics.h
@@ -42,6 +42,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkStatisticsAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkVariant;
 
@@ -148,4 +149,5 @@ private:
   void operator=(const vtkHighestDensityRegionsStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkKMeansAssessFunctor.h b/Filters/Statistics/vtkKMeansAssessFunctor.h
index 88c431d51f0073d3186a2b2d8dfe33a1fca91bfa..4dff5de1b2389f51129cfc4690965571bb74ca5d 100644
--- a/Filters/Statistics/vtkKMeansAssessFunctor.h
+++ b/Filters/Statistics/vtkKMeansAssessFunctor.h
@@ -1,6 +1,7 @@
 #ifndef vtkKMeansAssessFunctor_h
 #define vtkKMeansAssessFunctor_h
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkKMeansAssessFunctor : public vtkStatisticsAlgorithm::AssessFunctor
 {
   vtkDoubleArray* Distances;
@@ -16,5 +17,6 @@ public:
   int GetNumberOfRuns() { return NumRuns; }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkKMeansAssessFunctor_h
 // VTK-HeaderTest-Exclude: vtkKMeansAssessFunctor.h
diff --git a/Filters/Statistics/vtkKMeansDistanceFunctor.cxx b/Filters/Statistics/vtkKMeansDistanceFunctor.cxx
index 5313f8fdec58472f4dbace906700831c1c4d4b0e..9b2e50f83b33e405f8b2e47f59007105215c8f2d 100644
--- a/Filters/Statistics/vtkKMeansDistanceFunctor.cxx
+++ b/Filters/Statistics/vtkKMeansDistanceFunctor.cxx
@@ -7,6 +7,7 @@
 #include "vtkTable.h"
 #include "vtkVariantArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkKMeansDistanceFunctor);
 
 //------------------------------------------------------------------------------
@@ -198,3 +199,4 @@ int vtkKMeansDistanceFunctor::GetDataType()
 {
   return VTK_DOUBLE;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkKMeansDistanceFunctor.h b/Filters/Statistics/vtkKMeansDistanceFunctor.h
index b26372cd2a69e77c15394d40bc913e1436ff8c9b..8cafd8be328a1a0122223387ad87e8e05639256a 100644
--- a/Filters/Statistics/vtkKMeansDistanceFunctor.h
+++ b/Filters/Statistics/vtkKMeansDistanceFunctor.h
@@ -16,6 +16,7 @@
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVariantArray;
 class vtkAbstractArray;
 class vtkTable;
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkKMeansDistanceFunctor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkKMeansDistanceFunctor_h
diff --git a/Filters/Statistics/vtkKMeansDistanceFunctorCalculator.cxx b/Filters/Statistics/vtkKMeansDistanceFunctorCalculator.cxx
index 3a6cf20474c3056560fc536de5f3b8bf2ffc8a39..6a1b54685bb735b6b3bd65c96b71ce23fb4a251e 100644
--- a/Filters/Statistics/vtkKMeansDistanceFunctorCalculator.cxx
+++ b/Filters/Statistics/vtkKMeansDistanceFunctorCalculator.cxx
@@ -10,6 +10,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkKMeansDistanceFunctorCalculator);
 vtkCxxSetObjectMacro(vtkKMeansDistanceFunctorCalculator, FunctionParser, vtkFunctionParser);
 
@@ -94,3 +95,4 @@ void vtkKMeansDistanceFunctorCalculator::operator()(
   cout << " ]) = " << distance << "\n";
   */
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkKMeansDistanceFunctorCalculator.h b/Filters/Statistics/vtkKMeansDistanceFunctorCalculator.h
index 78d7fc771efb21f1b1fc0ecff6fe89d7610bc99d..0fca2d77fe88a1202b04ae4849bbb5d144acfe4c 100644
--- a/Filters/Statistics/vtkKMeansDistanceFunctorCalculator.h
+++ b/Filters/Statistics/vtkKMeansDistanceFunctorCalculator.h
@@ -24,6 +24,7 @@
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkKMeansDistanceFunctor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFunctionParser;
 class vtkDoubleArray;
 
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkKMeansDistanceFunctorCalculator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkKMeansDistanceFunctorCalculator_h
diff --git a/Filters/Statistics/vtkKMeansStatistics.cxx b/Filters/Statistics/vtkKMeansStatistics.cxx
index 22ff2e8ceda0ffaae48bb071511e78635afa6bc4..a88ab45e609f0adefcfa662b1c217ea00f014d9b 100644
--- a/Filters/Statistics/vtkKMeansStatistics.cxx
+++ b/Filters/Statistics/vtkKMeansStatistics.cxx
@@ -21,6 +21,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkKMeansStatistics);
 vtkCxxSetObjectMacro(vtkKMeansStatistics, DistanceFunctor, vtkKMeansDistanceFunctor);
 
@@ -894,3 +895,4 @@ void vtkKMeansAssessFunctor::operator()(vtkDoubleArray* result, vtkIdType row)
     result->SetValue(resIndex++, this->ClusterMemberIDs->GetValue(row * this->NumRuns + runID));
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkKMeansStatistics.h b/Filters/Statistics/vtkKMeansStatistics.h
index 5175a47a8c42927e35dabc092fdc86343cd79cb7..01a7e3f7a88ffc211e2339f5cb113f6e3c2dac0f 100644
--- a/Filters/Statistics/vtkKMeansStatistics.h
+++ b/Filters/Statistics/vtkKMeansStatistics.h
@@ -100,6 +100,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkStatisticsAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 class vtkIntArray;
 class vtkDoubleArray;
@@ -286,4 +287,5 @@ private:
   void operator=(const vtkKMeansStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkLengthDistribution.cxx b/Filters/Statistics/vtkLengthDistribution.cxx
index a8abc17e5acc82ee89d16b2956b5672759da0fbf..e1e991187b662fbeb2517e71e855f0aa8e32d380 100644
--- a/Filters/Statistics/vtkLengthDistribution.cxx
+++ b/Filters/Statistics/vtkLengthDistribution.cxx
@@ -27,6 +27,7 @@
 
 #include <array>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLengthDistribution);
 
 void vtkLengthDistribution::PrintSelf(ostream& os, vtkIndent indent)
@@ -126,3 +127,4 @@ int vtkLengthDistribution::RequestData(
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkLengthDistribution.h b/Filters/Statistics/vtkLengthDistribution.h
index 2e353114f09480452c3930e153d906ed0b6b0beb..3919472f7fdef1ac96a813f7768cb9e8de827ff2 100644
--- a/Filters/Statistics/vtkLengthDistribution.h
+++ b/Filters/Statistics/vtkLengthDistribution.h
@@ -38,6 +38,7 @@
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkDataArray;
 
@@ -93,5 +94,6 @@ private:
   vtkLengthDistribution(const vtkLengthDistribution&) = delete;
   void operator=(const vtkLengthDistribution&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif // vtkLengthDistribution_h
diff --git a/Filters/Statistics/vtkMultiCorrelativeStatistics.cxx b/Filters/Statistics/vtkMultiCorrelativeStatistics.cxx
index 436519e6965e6ad9a469c1d7a81be353c7096ff2..5845da182c9a42030f9e4cdae5c77e3de1a9c389 100644
--- a/Filters/Statistics/vtkMultiCorrelativeStatistics.cxx
+++ b/Filters/Statistics/vtkMultiCorrelativeStatistics.cxx
@@ -29,6 +29,7 @@
 #define VTK_MULTICORRELATIVE_AVERAGECOL "Mean"
 #define VTK_MULTICORRELATIVE_COLUMNAMES "Column"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMultiCorrelativeStatistics);
 
 namespace
@@ -977,3 +978,4 @@ void vtkMultiCorrelativeStatistics::SelectAssessFunctor(vtkTable* inData, vtkDat
   }
   dfunc = mcfunc;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkMultiCorrelativeStatistics.h b/Filters/Statistics/vtkMultiCorrelativeStatistics.h
index 87b8e7a95de0d34dfec978d836ddcd0cd05bbfff..50486258b06f1a60f34c34d9dcda0a449a8f71cf 100644
--- a/Filters/Statistics/vtkMultiCorrelativeStatistics.h
+++ b/Filters/Statistics/vtkMultiCorrelativeStatistics.h
@@ -81,6 +81,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkStatisticsAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkMultiBlockDataSet;
 class vtkOrderStatistics;
@@ -180,4 +181,5 @@ private:
   void operator=(const vtkMultiCorrelativeStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkMultiCorrelativeStatisticsAssessFunctor.h b/Filters/Statistics/vtkMultiCorrelativeStatisticsAssessFunctor.h
index bc33d883b770bf10ea7ad43777388baae3af1f12..d4f6b864f37183c1d455b7c870590fed908e846d 100644
--- a/Filters/Statistics/vtkMultiCorrelativeStatisticsAssessFunctor.h
+++ b/Filters/Statistics/vtkMultiCorrelativeStatisticsAssessFunctor.h
@@ -5,6 +5,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkTable;
 
@@ -37,5 +38,6 @@ public:
   std::vector<double> EmptyTuple; // Used to quickly initialize Tuple for each datum
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkMultiCorrelativeStatisticsAssessFunctor_h
 // VTK-HeaderTest-Exclude: vtkMultiCorrelativeStatisticsAssessFunctor.h
diff --git a/Filters/Statistics/vtkOrderStatistics.cxx b/Filters/Statistics/vtkOrderStatistics.cxx
index ffa4f0378c6a8e601f046f3ce2b5496b2dcdcec9..5de130ebe7eaa5dfc0e91b6c24dd6a7ff1f1a4a5 100644
--- a/Filters/Statistics/vtkOrderStatistics.cxx
+++ b/Filters/Statistics/vtkOrderStatistics.cxx
@@ -79,6 +79,7 @@ struct GhostsCounter
 };
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOrderStatistics);
 
 //------------------------------------------------------------------------------
@@ -1054,3 +1055,4 @@ void vtkOrderStatistics::SelectAssessFunctor(
       << quantiles->GetClassName() << ". Ignoring it.");
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkOrderStatistics.h b/Filters/Statistics/vtkOrderStatistics.h
index 0967c514fd294f5d34e1a0aa5144e09ed6ef1e88..c3c0c481727cccdb26c04f7865aef509f078eb12 100644
--- a/Filters/Statistics/vtkOrderStatistics.h
+++ b/Filters/Statistics/vtkOrderStatistics.h
@@ -46,6 +46,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkStatisticsAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkStringArray;
 class vtkTable;
@@ -181,4 +182,5 @@ private:
   void operator=(const vtkOrderStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkPCAStatistics.cxx b/Filters/Statistics/vtkPCAStatistics.cxx
index fa8f2ab2a72b26a331c5ec879d3bd7c2b57a13e6..89e71e40c4fe73b9f058914f8c03a81e062b514f 100644
--- a/Filters/Statistics/vtkPCAStatistics.cxx
+++ b/Filters/Statistics/vtkPCAStatistics.cxx
@@ -26,6 +26,7 @@
 #define VTK_PCA_NORMCOLUMN "PCA Cov Norm"
 #define VTK_PCA_COMPCOLUMN "PCA"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkPCAStatistics);
 
 const char* vtkPCAStatistics::NormalizationSchemeEnumNames[NUM_NORMALIZATION_SCHEMES + 1] = {
@@ -1022,3 +1023,4 @@ void vtkPCAStatistics::SelectAssessFunctor(vtkTable* inData, vtkDataObject* inMe
 
   dfunc = pcafunc;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkPCAStatistics.h b/Filters/Statistics/vtkPCAStatistics.h
index 3c31e41e2e7b74d35bb09d0a71ac6c678c2f7aeb..baf811bcae1c6b3b88c40620019fd6dcc19fb88b 100644
--- a/Filters/Statistics/vtkPCAStatistics.h
+++ b/Filters/Statistics/vtkPCAStatistics.h
@@ -56,6 +56,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkMultiCorrelativeStatistics.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkIdTypeArray;
 
@@ -291,4 +292,5 @@ private:
   void operator=(const vtkPCAStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPCAStatistics_h
diff --git a/Filters/Statistics/vtkStatisticsAlgorithm.cxx b/Filters/Statistics/vtkStatisticsAlgorithm.cxx
index 0092570a4efb2a1804da0afc63f1ad0a05393576..08a919db40723b4b66eb314ea89d3598981eff7c 100644
--- a/Filters/Statistics/vtkStatisticsAlgorithm.cxx
+++ b/Filters/Statistics/vtkStatisticsAlgorithm.cxx
@@ -36,6 +36,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkStatisticsAlgorithm, AssessNames, vtkStringArray);
 
 //------------------------------------------------------------------------------
@@ -396,3 +397,4 @@ void vtkStatisticsAlgorithm::Assess(
     delete dfunc;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkStatisticsAlgorithm.h b/Filters/Statistics/vtkStatisticsAlgorithm.h
index 6b9f3afb56badd6edfa8a43324c5ecf765eb336e..2af712d470238577c7cdf63039e811f1273e61e8 100644
--- a/Filters/Statistics/vtkStatisticsAlgorithm.h
+++ b/Filters/Statistics/vtkStatisticsAlgorithm.h
@@ -59,6 +59,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObjectCollection;
 class vtkMultiBlockDataSet;
 class vtkStdString;
@@ -340,4 +341,5 @@ private:
   void operator=(const vtkStatisticsAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkStatisticsAlgorithmPrivate.h b/Filters/Statistics/vtkStatisticsAlgorithmPrivate.h
index e5e2289f675ae7cb8b320d45cc94ee85fa2d6ff1..fc4b044425cdf3d1f7d37c7b59e54cebfeeac806 100644
--- a/Filters/Statistics/vtkStatisticsAlgorithmPrivate.h
+++ b/Filters/Statistics/vtkStatisticsAlgorithmPrivate.h
@@ -38,6 +38,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <set> // used to iterate over internal organs
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStatisticsAlgorithmPrivate
 {
 public:
@@ -179,6 +180,7 @@ public:
   std::set<vtkStdString> Buffer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkStatisticsAlgorithmPrivate_h
 
 // VTK-HeaderTest-Exclude: vtkStatisticsAlgorithmPrivate.h
diff --git a/Filters/Statistics/vtkStrahlerMetric.cxx b/Filters/Statistics/vtkStrahlerMetric.cxx
index c38402907059db15189aa5c359bb1011a9d54ef1..b4899d0732195dabc4c34aec346c7d04ff9d2c9c 100644
--- a/Filters/Statistics/vtkStrahlerMetric.cxx
+++ b/Filters/Statistics/vtkStrahlerMetric.cxx
@@ -31,6 +31,7 @@ the U.S. Government retains certain rights in this software.
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStrahlerMetric);
 
 vtkStrahlerMetric::vtkStrahlerMetric()
@@ -142,3 +143,4 @@ void vtkStrahlerMetric::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "MetricArrayName: " << (this->MetricArrayName ? this->MetricArrayName : "(none)")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkStrahlerMetric.h b/Filters/Statistics/vtkStrahlerMetric.h
index a39c2c20b5b372ad3186fc4f781384a95b8931ae..a8e68fc0afd8e419cb96ad97819371d9e2c970e5 100644
--- a/Filters/Statistics/vtkStrahlerMetric.h
+++ b/Filters/Statistics/vtkStrahlerMetric.h
@@ -47,6 +47,7 @@
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 
 class VTKFILTERSSTATISTICS_EXPORT vtkStrahlerMetric : public vtkTreeAlgorithm
@@ -100,4 +101,5 @@ private:
   void operator=(const vtkStrahlerMetric&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Statistics/vtkStreamingStatistics.cxx b/Filters/Statistics/vtkStreamingStatistics.cxx
index 99b9fd40a36be7cbd6f7c3265eb87123810bb5d5..162c08e58159c702b065d2ab8196c4257289263a 100644
--- a/Filters/Statistics/vtkStreamingStatistics.cxx
+++ b/Filters/Statistics/vtkStreamingStatistics.cxx
@@ -27,6 +27,7 @@
 #include "vtkStatisticsAlgorithm.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStreamingStatistics);
 
 vtkCxxSetObjectMacro(vtkStreamingStatistics, StatisticsAlgorithm, vtkStatisticsAlgorithm);
@@ -165,3 +166,4 @@ void vtkStreamingStatistics::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "InternalModel: " << this->InternalModel << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Statistics/vtkStreamingStatistics.h b/Filters/Statistics/vtkStreamingStatistics.h
index 38c1f66bf8c4aba441fbcd3b54f68e55006c80fc..2d36eb98b5bf7549789f8ed0169b72a1a33dc7d2 100644
--- a/Filters/Statistics/vtkStreamingStatistics.h
+++ b/Filters/Statistics/vtkStreamingStatistics.h
@@ -37,6 +37,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkFiltersStatisticsModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObjectCollection;
 class vtkMultiBlockDataSet;
 class vtkStatisticsAlgorithm;
@@ -91,4 +92,5 @@ private:
   vtkMultiBlockDataSet* InternalModel;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Texture/vtkImplicitTextureCoords.cxx b/Filters/Texture/vtkImplicitTextureCoords.cxx
index e2e8d96be50f4b9d80edaf95b56bdbddf5283f69..50e4e120098f236365d130e61917e63c36b48e39 100644
--- a/Filters/Texture/vtkImplicitTextureCoords.cxx
+++ b/Filters/Texture/vtkImplicitTextureCoords.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitTextureCoords);
 vtkCxxSetObjectMacro(vtkImplicitTextureCoords, SFunction, vtkImplicitFunction);
 vtkCxxSetObjectMacro(vtkImplicitTextureCoords, RFunction, vtkImplicitFunction);
@@ -223,3 +224,4 @@ void vtkImplicitTextureCoords::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "R Function defined\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Texture/vtkImplicitTextureCoords.h b/Filters/Texture/vtkImplicitTextureCoords.h
index dae5dd4072c2851b4a96d46e407de847cf7c69b8..eb1dccbeb111e3877e0c395b3f640a2a3cae3489 100644
--- a/Filters/Texture/vtkImplicitTextureCoords.h
+++ b/Filters/Texture/vtkImplicitTextureCoords.h
@@ -52,6 +52,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersTextureModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
 
 class VTKFILTERSTEXTURE_EXPORT vtkImplicitTextureCoords : public vtkDataSetAlgorithm
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkImplicitTextureCoords&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Texture/vtkScalarsToTextureFilter.cxx b/Filters/Texture/vtkScalarsToTextureFilter.cxx
index caa7f6358a77acb6b3f9cdacc43091b2eac26be5..c6c8328532f558c22d5593f9b7935e184ac9e050 100644
--- a/Filters/Texture/vtkScalarsToTextureFilter.cxx
+++ b/Filters/Texture/vtkScalarsToTextureFilter.cxx
@@ -27,6 +27,7 @@
 #include "vtkTextureMapToPlane.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkScalarsToTextureFilter);
 
 //------------------------------------------------------------------------------
@@ -186,3 +187,4 @@ void vtkScalarsToTextureFilter::SetTransferFunction(vtkScalarsToColors* stc)
     this->Modified();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Texture/vtkScalarsToTextureFilter.h b/Filters/Texture/vtkScalarsToTextureFilter.h
index 9d447561a18760b62c7b6c1c0d3b4819f77de3fb..3f76a6972c41c79f0a9e70bbc9557a145f717bc2 100644
--- a/Filters/Texture/vtkScalarsToTextureFilter.h
+++ b/Filters/Texture/vtkScalarsToTextureFilter.h
@@ -32,6 +32,7 @@
 #include "vtkPolyDataAlgorithm.h"
 #include "vtkSmartPointer.h" // For smart pointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkPolyData;
 class vtkScalarsToColors;
@@ -91,4 +92,5 @@ private:
   int TextureDimensions[2];
   bool UseTransferFunction = true;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Texture/vtkTextureMapToCylinder.cxx b/Filters/Texture/vtkTextureMapToCylinder.cxx
index 97007869ae8eb1e10f941f61d1fe2ab9abff5ffd..637e6fb6d55a080775944c74b76252df3c2a4d62 100644
--- a/Filters/Texture/vtkTextureMapToCylinder.cxx
+++ b/Filters/Texture/vtkTextureMapToCylinder.cxx
@@ -26,6 +26,7 @@
 #include "vtkPointData.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTextureMapToCylinder);
 
 // Create object with cylinder axis parallel to z-axis (points (0,0,-0.5)
@@ -191,3 +192,4 @@ void vtkTextureMapToCylinder::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Point2: (" << this->Point2[0] << ", " << this->Point2[1] << ", "
      << this->Point2[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Texture/vtkTextureMapToCylinder.h b/Filters/Texture/vtkTextureMapToCylinder.h
index f273243947c0a5687560f74e458591890e2159ee..236c4c231cf47c0bf62171e143ff9cdbb555c62a 100644
--- a/Filters/Texture/vtkTextureMapToCylinder.h
+++ b/Filters/Texture/vtkTextureMapToCylinder.h
@@ -49,6 +49,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersTextureModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSTEXTURE_EXPORT vtkTextureMapToCylinder : public vtkDataSetAlgorithm
 {
 public:
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkTextureMapToCylinder&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Texture/vtkTextureMapToPlane.cxx b/Filters/Texture/vtkTextureMapToPlane.cxx
index f4080cdcde728b50d49b7e88ac6c208dce73082f..f55416f680c3269604b9ffcc2f35e7ef54eefdcd 100644
--- a/Filters/Texture/vtkTextureMapToPlane.cxx
+++ b/Filters/Texture/vtkTextureMapToPlane.cxx
@@ -23,6 +23,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTextureMapToPlane);
 
 // Construct with s,t range=(0,1) and automatic plane generation turned on.
@@ -324,3 +325,4 @@ void vtkTextureMapToPlane::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Normal: (" << this->Normal[0] << ", " << this->Normal[1] << ", "
      << this->Normal[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Texture/vtkTextureMapToPlane.h b/Filters/Texture/vtkTextureMapToPlane.h
index 0ffffe2f42b73aa76cc39668dbecc1e8b1ea74db..c759ca9cb01b7d7bfd1bb11e44270e3ade60a6a0 100644
--- a/Filters/Texture/vtkTextureMapToPlane.h
+++ b/Filters/Texture/vtkTextureMapToPlane.h
@@ -43,6 +43,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersTextureModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSTEXTURE_EXPORT vtkTextureMapToPlane : public vtkDataSetAlgorithm
 {
 public:
@@ -134,4 +135,5 @@ private:
   void operator=(const vtkTextureMapToPlane&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Texture/vtkTextureMapToSphere.cxx b/Filters/Texture/vtkTextureMapToSphere.cxx
index 8e7bf82ed87baba52a0f663a0e70764d84546971..2305bdc6727b622d70bf6c8998970f8e4ff88fec 100644
--- a/Filters/Texture/vtkTextureMapToSphere.cxx
+++ b/Filters/Texture/vtkTextureMapToSphere.cxx
@@ -23,6 +23,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTextureMapToSphere);
 
 // Create object with Center (0,0,0) and the PreventSeam ivar is set to true. The
@@ -209,3 +210,4 @@ void vtkTextureMapToSphere::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Center: (" << this->Center[0] << ", " << this->Center[1] << ", "
      << this->Center[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Texture/vtkTextureMapToSphere.h b/Filters/Texture/vtkTextureMapToSphere.h
index 33efb5bcba7ac637b9284ff098d76d29c2090dda..aa1928670b18008f9ee6bca0784ee6a28732764a 100644
--- a/Filters/Texture/vtkTextureMapToSphere.h
+++ b/Filters/Texture/vtkTextureMapToSphere.h
@@ -47,6 +47,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersTextureModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKFILTERSTEXTURE_EXPORT vtkTextureMapToSphere : public vtkDataSetAlgorithm
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkTextureMapToSphere&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Texture/vtkThresholdTextureCoords.cxx b/Filters/Texture/vtkThresholdTextureCoords.cxx
index 69f18da6b812249635e82370950e44696b417dd6..2f5eadfbce8406956185357650a6fe2a39881743 100644
--- a/Filters/Texture/vtkThresholdTextureCoords.cxx
+++ b/Filters/Texture/vtkThresholdTextureCoords.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkThresholdTextureCoords);
 
 // Construct with lower threshold=0, upper threshold=1, threshold
@@ -161,3 +162,4 @@ void vtkThresholdTextureCoords::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "In Texture Coordinate: (" << this->InTextureCoord[0] << ", "
      << this->InTextureCoord[1] << ", " << this->InTextureCoord[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Texture/vtkThresholdTextureCoords.h b/Filters/Texture/vtkThresholdTextureCoords.h
index 0d77707b6f693902b2426ed75ffe17ddc714402a..b7a372fb7c87fcd46c388997ff7c9961b4902707 100644
--- a/Filters/Texture/vtkThresholdTextureCoords.h
+++ b/Filters/Texture/vtkThresholdTextureCoords.h
@@ -41,6 +41,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersTextureModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSTEXTURE_EXPORT vtkThresholdTextureCoords : public vtkDataSetAlgorithm
 {
 public:
@@ -125,4 +126,5 @@ private:
   void operator=(const vtkThresholdTextureCoords&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Texture/vtkTransformTextureCoords.cxx b/Filters/Texture/vtkTransformTextureCoords.cxx
index b1d55fde7f90cad63d3fa271acbacddb00516e3a..b8568e5ad7b7cb67e20c6e449780c2c98d26ffba 100644
--- a/Filters/Texture/vtkTransformTextureCoords.cxx
+++ b/Filters/Texture/vtkTransformTextureCoords.cxx
@@ -22,6 +22,7 @@
 #include "vtkPointData.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransformTextureCoords);
 
 // Create instance with Origin (0.5,0.5,0.5); Position (0,0,0); and Scale
@@ -179,3 +180,4 @@ void vtkTransformTextureCoords::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "FlipS: " << (this->FlipS ? "On\n" : "Off\n");
   os << indent << "FlipT: " << (this->FlipT ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Texture/vtkTransformTextureCoords.h b/Filters/Texture/vtkTransformTextureCoords.h
index 29c7e8e8d74cce3a4ef228cfdda6eb8ee22fca06..5059ad894145ccc5b98484d6b0ee9da4ee5f56fa 100644
--- a/Filters/Texture/vtkTransformTextureCoords.h
+++ b/Filters/Texture/vtkTransformTextureCoords.h
@@ -38,6 +38,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersTextureModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSTEXTURE_EXPORT vtkTransformTextureCoords : public vtkDataSetAlgorithm
 {
 public:
@@ -135,4 +136,5 @@ private:
   void operator=(const vtkTransformTextureCoords&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Texture/vtkTriangularTCoords.cxx b/Filters/Texture/vtkTriangularTCoords.cxx
index c08d297b08eb810662f40bdc268be10e8d1ab7f7..0022d7f45cde8ef9170d64f503ce91c7b0085032 100644
--- a/Filters/Texture/vtkTriangularTCoords.cxx
+++ b/Filters/Texture/vtkTriangularTCoords.cxx
@@ -24,6 +24,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTriangularTCoords);
 
 int vtkTriangularTCoords::RequestData(vtkInformation* vtkNotUsed(request),
@@ -197,3 +198,4 @@ void vtkTriangularTCoords::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Texture/vtkTriangularTCoords.h b/Filters/Texture/vtkTriangularTCoords.h
index f82897db1c00c5723df6f24b099c63f98ef481c2..a3f41051cda817c845d4e0ef7598c025138ab355 100644
--- a/Filters/Texture/vtkTriangularTCoords.h
+++ b/Filters/Texture/vtkTriangularTCoords.h
@@ -35,6 +35,7 @@
 #include "vtkFiltersTextureModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSTEXTURE_EXPORT vtkTriangularTCoords : public vtkPolyDataAlgorithm
 {
 public:
@@ -54,4 +55,5 @@ private:
   void operator=(const vtkTriangularTCoords&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Topology/vtkFiberSurface.cxx b/Filters/Topology/vtkFiberSurface.cxx
index 2f46f0c40cff3cebf9763ed73122ddb268e4c3c4..787ab1d87ce221edf2fc3356122dec209e482736 100644
--- a/Filters/Topology/vtkFiberSurface.cxx
+++ b/Filters/Topology/vtkFiberSurface.cxx
@@ -53,6 +53,7 @@
 // could be used to quickly locate the index number in the marching tetrahedron case
 // table. This array can also be used in the clipping case look-up table
 // clipTriangleVertices.
+VTK_ABI_NAMESPACE_BEGIN
 static const char ternaryShift[4] = { 1, 3, 9, 27 };
 
 //------------------------------------------------------------------------------
@@ -1072,3 +1073,4 @@ int vtkFiberSurface::RequestData(vtkInformation* vtkNotUsed(request),
   output->SetPolys(newPolys);
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Topology/vtkFiberSurface.h b/Filters/Topology/vtkFiberSurface.h
index 95c413da260c43a86119bb137352d718d2b1f917..5bfb73bf320c95717da80ed4bf34335c7024b455 100644
--- a/Filters/Topology/vtkFiberSurface.h
+++ b/Filters/Topology/vtkFiberSurface.h
@@ -319,6 +319,7 @@
 #include "vtkFiltersTopologyModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKFILTERSTOPOLOGY_EXPORT vtkFiberSurface : public vtkPolyDataAlgorithm
 {
 public:
@@ -397,4 +398,5 @@ private:
   vtkFiberSurface(const vtkFiberSurface&) = delete;
   void operator=(const vtkFiberSurface&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Verdict/vtkCellQuality.cxx b/Filters/Verdict/vtkCellQuality.cxx
index 5e4a90c07d9e849147999727782ffc48aeb2c684..d511a16a77c0d4c404f455da2911f7a0208d4744 100644
--- a/Filters/Verdict/vtkCellQuality.cxx
+++ b/Filters/Verdict/vtkCellQuality.cxx
@@ -32,6 +32,7 @@
 #include "vtkTriangle.h"
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellQuality);
 
 //----------------------------------------------------------------------------
@@ -476,3 +477,4 @@ double vtkCellQuality::PolygonArea(vtkCell* cell)
   }
   return quality;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Verdict/vtkCellQuality.h b/Filters/Verdict/vtkCellQuality.h
index c7aac5903622ea8e8c0e270d1fbffbc5a7c9a78c..51743c4560ac70ec5ede5f61745c9d70305c0d01 100644
--- a/Filters/Verdict/vtkCellQuality.h
+++ b/Filters/Verdict/vtkCellQuality.h
@@ -39,6 +39,7 @@
 #include "vtkFiltersVerdictModule.h" // For export macro
 #include "vtkMeshQuality.h"          // For QualityMeasureType
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkCellQualityFunctor;
 class vtkDataArray;
@@ -337,4 +338,5 @@ private:
   void operator=(const vtkCellQuality&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCellQuality_h
diff --git a/Filters/Verdict/vtkCellSizeFilter.cxx b/Filters/Verdict/vtkCellSizeFilter.cxx
index 249ba25eda4a900a905d4e9a9a4eb1fdddee42b8..23bc6851d3aea53a17d00deeea28eaffb66a2c6e 100644
--- a/Filters/Verdict/vtkCellSizeFilter.cxx
+++ b/Filters/Verdict/vtkCellSizeFilter.cxx
@@ -36,6 +36,7 @@
 #include "vtkTriangle.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellSizeFilter);
 
 //------------------------------------------------------------------------------
@@ -799,3 +800,4 @@ void vtkCellSizeFilter::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "ComputeSum: " << this->ComputeSum << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Verdict/vtkCellSizeFilter.h b/Filters/Verdict/vtkCellSizeFilter.h
index 615b943f42ebe58b53e044cab019f6f02e630464..a07c60aa455954b1065a8ff52a166e9c1277ce97 100644
--- a/Filters/Verdict/vtkCellSizeFilter.h
+++ b/Filters/Verdict/vtkCellSizeFilter.h
@@ -41,6 +41,7 @@
 #include "vtkFiltersVerdictModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkDoubleArray;
 class vtkIdList;
@@ -179,4 +180,5 @@ private:
   char* VolumeArrayName;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Filters/Verdict/vtkMatrixMathFilter.cxx b/Filters/Verdict/vtkMatrixMathFilter.cxx
index 996a352ed8f801b34ecfa0ecaea2f4d207fe9bf9..bb828315bd85995b6dd54c9d89222caa27ab6696 100644
--- a/Filters/Verdict/vtkMatrixMathFilter.cxx
+++ b/Filters/Verdict/vtkMatrixMathFilter.cxx
@@ -24,6 +24,7 @@
 #include "vtkPointData.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMatrixMathFilter);
 
 vtkMatrixMathFilter::~vtkMatrixMathFilter() = default;
@@ -250,3 +251,4 @@ int vtkMatrixMathFilter::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Verdict/vtkMatrixMathFilter.h b/Filters/Verdict/vtkMatrixMathFilter.h
index 3d59323944a420480d3e1943ed18a9d767bd2478..556f643e09218071ce1c0279988c947bb4eedd7f 100644
--- a/Filters/Verdict/vtkMatrixMathFilter.h
+++ b/Filters/Verdict/vtkMatrixMathFilter.h
@@ -31,6 +31,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkFiltersVerdictModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkDataArray;
 
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkMatrixMathFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkMatrixMathFilter_h
diff --git a/Filters/Verdict/vtkMeshQuality.cxx b/Filters/Verdict/vtkMeshQuality.cxx
index 1f254eb5db98c0e13b7e77c527fd9463335abcd8..595c31ced5fc8a9f186e754c5464550a9a2b919f 100644
--- a/Filters/Verdict/vtkMeshQuality.cxx
+++ b/Filters/Verdict/vtkMeshQuality.cxx
@@ -47,6 +47,7 @@
 #include <limits>
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMeshQuality);
 
 //----------------------------------------------------------------------------
@@ -2678,3 +2679,4 @@ double vtkMeshQuality::HexNodalJacobianRatio(vtkCell* cell)
 
   return verdict::hex_nodal_jacobian_ratio(8, pc);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Filters/Verdict/vtkMeshQuality.h b/Filters/Verdict/vtkMeshQuality.h
index bff5a779bd35ba4314737090291ef5d7713df219..9fb98faa6f591a4b074a0e49655414149cac7a75 100644
--- a/Filters/Verdict/vtkMeshQuality.h
+++ b/Filters/Verdict/vtkMeshQuality.h
@@ -75,6 +75,7 @@
 #include "vtkDeprecation.h"          // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkFiltersVerdictModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkDataArray;
 class vtkDoubleArray;
@@ -1455,4 +1456,5 @@ private:
   void operator=(const vtkMeshQuality&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkMeshQuality_h
diff --git a/GUISupport/MFC/vtkMFCWindow.cxx b/GUISupport/MFC/vtkMFCWindow.cxx
index 55edba55db41ba3c4d27cc6f32c7e4773522b754..5dbbafdafeed121ef53b52de9ba34a25d6c4d7bc 100644
--- a/GUISupport/MFC/vtkMFCWindow.cxx
+++ b/GUISupport/MFC/vtkMFCWindow.cxx
@@ -39,9 +39,12 @@
 #ifdef _DEBUG
 #define new DEBUG_NEW
 #undef THIS_FILE
+VTK_ABI_NAMESPACE_BEGIN
 static char THIS_FILE[] = __FILE__;
+VTK_ABI_NAMESPACE_END
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 BEGIN_MESSAGE_MAP(vtkMFCWindow, CWnd)
 ON_WM_SIZE()
 ON_WM_PAINT()
@@ -330,3 +333,4 @@ void vtkMFCWindow::OnTimer(UINT_PTR nIDEvent)
   static_cast<vtkWin32RenderWindowInteractor*>(this->GetInteractor())
     ->OnTimer(this->GetSafeHwnd(), (UINT)nIDEvent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/MFC/vtkMFCWindow.h b/GUISupport/MFC/vtkMFCWindow.h
index 85b8ec0b534b50c12f23ec8702920e23e5de1d56..bdfcba3ec4d204de28185c44e08c4be26b6ea858 100644
--- a/GUISupport/MFC/vtkMFCWindow.h
+++ b/GUISupport/MFC/vtkMFCWindow.h
@@ -19,6 +19,7 @@
 #include "afxwin.h"
 #include "vtkGUISupportMFCModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWin32OpenGLRenderWindow;
 class vtkRenderWindowInteractor;
 
@@ -76,6 +77,7 @@ protected:
   DECLARE_MESSAGE_MAP()
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkMFCWindow.h
diff --git a/GUISupport/Qt/QFilterTreeProxyModel.cxx b/GUISupport/Qt/QFilterTreeProxyModel.cxx
index 0a8f04a05d1ced2b24894c67e8e885a63206a94b..d232130a07717460f146226b6ea53b594c289728 100644
--- a/GUISupport/Qt/QFilterTreeProxyModel.cxx
+++ b/GUISupport/Qt/QFilterTreeProxyModel.cxx
@@ -20,6 +20,7 @@
 
 #include "QFilterTreeProxyModel.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 QFilterTreeProxyModel::QFilterTreeProxyModel(QObject* p)
   : QSortFilterProxyModel(p)
 {
@@ -72,3 +73,4 @@ bool QFilterTreeProxyModel::lessThan(const QModelIndex& left, const QModelIndex&
 
   return QString::localeAwareCompare(leftString, rightString) < 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/QFilterTreeProxyModel.h b/GUISupport/Qt/QFilterTreeProxyModel.h
index b54e2ff4bb5d6a3d6b444b29058f44c961a9025d..f887bab6fc36ce0b4129559f2c11d47cdd22a29a 100644
--- a/GUISupport/Qt/QFilterTreeProxyModel.h
+++ b/GUISupport/Qt/QFilterTreeProxyModel.h
@@ -37,6 +37,7 @@
 #include <QSortFilterProxyModel>
 
 class QModelIndex;
+VTK_ABI_NAMESPACE_BEGIN
 
 class VTKGUISUPPORTQT_EXPORT QFilterTreeProxyModel : public QSortFilterProxyModel
 {
@@ -58,4 +59,5 @@ private:
   int TreeLevel;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/QVTKApplication.cxx b/GUISupport/Qt/QVTKApplication.cxx
index f15b79e7d37e77a91e5701aa3a72625c474af987..6b430d0b2dad584e1cac66cfd5256fc400f70f84 100644
--- a/GUISupport/Qt/QVTKApplication.cxx
+++ b/GUISupport/Qt/QVTKApplication.cxx
@@ -21,6 +21,7 @@
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 QVTKApplication::QVTKApplication(int& Argc, char** Argv)
   : QApplication(Argc, Argv)
 {
@@ -62,3 +63,4 @@ void QVTKApplication::setDevice(vtkTDxDevice* device)
 #endif
 }
 #endif
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/QVTKApplication.h b/GUISupport/Qt/QVTKApplication.h
index 0326bb78bd2a868dfdd2443d613e879051163280..ff9d473e404446529dd1f23c372ee5db19c8b9f4 100644
--- a/GUISupport/Qt/QVTKApplication.h
+++ b/GUISupport/Qt/QVTKApplication.h
@@ -37,12 +37,15 @@
 #include <QApplication>
 
 #ifdef VTK_USE_TDX
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTDxDevice;
 #if defined(Q_WS_X11) || defined(Q_OS_LINUX)
 class vtkTDxQtUnixDevices;
 #endif
+VTK_ABI_NAMESPACE_END
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKGUISUPPORTQT_EXPORT QVTKApplication : public QApplication
 {
   Q_OBJECT
@@ -82,4 +85,5 @@ protected:
 #endif
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/QVTKInteractor.cxx b/GUISupport/Qt/QVTKInteractor.cxx
index 1d0b4c36c994fe5b0b217d3c9e24530b41417aad..144848e248fbddf7d985e9b10cc565ae303d3461 100644
--- a/GUISupport/Qt/QVTKInteractor.cxx
+++ b/GUISupport/Qt/QVTKInteractor.cxx
@@ -56,6 +56,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkRenderWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 QVTKInteractorInternal::QVTKInteractorInternal(QVTKInteractor* p)
   : Parent(p)
 {
@@ -266,3 +267,4 @@ int QVTKInteractor::InternalDestroyTimer(int platformTimerId)
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/QVTKInteractor.h b/GUISupport/Qt/QVTKInteractor.h
index 9b24d44910838a714f04007289c2b54e14ea448c..6a072e9f4ff38219b969a0bfee58aff87e80f625 100644
--- a/GUISupport/Qt/QVTKInteractor.h
+++ b/GUISupport/Qt/QVTKInteractor.h
@@ -34,6 +34,7 @@
 #include <vtkRenderWindowInteractor.h>
 
 #include "vtkTDxConfigure.h" // defines VTK_USE_TDX
+VTK_ABI_NAMESPACE_BEGIN
 #if defined(VTK_USE_TDX) && defined(Q_OS_WIN)
 class vtkTDxWinDevice;
 #endif
@@ -134,4 +135,5 @@ private:
   void operator=(const QVTKInteractor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/QVTKInteractorAdapter.cxx b/GUISupport/Qt/QVTKInteractorAdapter.cxx
index e8d66ce53733e1a72d47af74112b2a8588f93785..2242fe8cd55156846a9f25bb018496636785b667 100644
--- a/GUISupport/Qt/QVTKInteractorAdapter.cxx
+++ b/GUISupport/Qt/QVTKInteractorAdapter.cxx
@@ -44,6 +44,7 @@
 #include "vtkCommand.h"
 
 // function to get VTK keysyms from ascii characters
+VTK_ABI_NAMESPACE_BEGIN
 static const char* ascii_to_key_sym(int);
 // function to get VTK keysyms from Qt keys
 static const char* qt_key_to_key_sym(Qt::Key, Qt::KeyboardModifiers modifiers);
@@ -753,3 +754,4 @@ const char* qt_key_to_key_sym(Qt::Key i, Qt::KeyboardModifiers modifiers)
   }
   return ret;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/QVTKInteractorAdapter.h b/GUISupport/Qt/QVTKInteractorAdapter.h
index 427395c5918e0da9749371625830a22fc463f8c8..1f786878e77db0d90c73569b1fd50d2aa9879ae0 100644
--- a/GUISupport/Qt/QVTKInteractorAdapter.h
+++ b/GUISupport/Qt/QVTKInteractorAdapter.h
@@ -40,9 +40,11 @@
 #include "vtkGUISupportQtModule.h" // For export macro
 #include <QtCore/QObject>
 
-class vtkRenderWindowInteractor;
 class QEvent;
 
+VTK_ABI_NAMESPACE_BEGIN
+class vtkRenderWindowInteractor;
+
 // .NAME QVTKInteractorAdapter - A QEvent translator.
 // .SECTION Description
 // QVTKInteractorAdapter translates QEvents and send them to a
@@ -75,4 +77,5 @@ protected:
   static const double DevicePixelRatioTolerance;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/QVTKInteractorInternal.h b/GUISupport/Qt/QVTKInteractorInternal.h
index 266423c0d18a792609d852a04f2c4abf515d0da2..03aac88a1d753fb781c6feaa0316400eea4a9894 100644
--- a/GUISupport/Qt/QVTKInteractorInternal.h
+++ b/GUISupport/Qt/QVTKInteractorInternal.h
@@ -35,10 +35,13 @@
 #include <QtCore/QObject>
 
 #include <map>
-class QVTKInteractor;
+
 class QSignalMapper;
 class QTimer;
 
+VTK_ABI_NAMESPACE_BEGIN
+class QVTKInteractor;
+
 // internal class, do not use
 class QVTKInteractorInternal : public QObject
 {
@@ -56,4 +59,5 @@ public:
   QVTKInteractor* Parent;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/QVTKOpenGLNativeWidget.cxx b/GUISupport/Qt/QVTKOpenGLNativeWidget.cxx
index 19b2121130340bb3a0677ceb472fe4a63ced0324..90ffbaf2f1fc606e0a44b079f61c00b733dd57b9 100644
--- a/GUISupport/Qt/QVTKOpenGLNativeWidget.cxx
+++ b/GUISupport/Qt/QVTKOpenGLNativeWidget.cxx
@@ -34,6 +34,7 @@
 #include "vtkOpenGLState.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 QVTKOpenGLNativeWidget::QVTKOpenGLNativeWidget(QWidget* parentWdg, Qt::WindowFlags f)
   : QVTKOpenGLNativeWidget(
       vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New().GetPointer(), parentWdg, f)
@@ -293,3 +294,4 @@ bool QVTKOpenGLNativeWidget::event(QEvent* evt)
   }
   return this->Superclass::event(evt);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/QVTKOpenGLNativeWidget.h b/GUISupport/Qt/QVTKOpenGLNativeWidget.h
index 309848e2641992b1939634c6d7e7931f413490ab..b0c0bab32fb6e56dc0b3e952f66f6c8f9ef0d7bf 100644
--- a/GUISupport/Qt/QVTKOpenGLNativeWidget.h
+++ b/GUISupport/Qt/QVTKOpenGLNativeWidget.h
@@ -111,6 +111,7 @@
 #include "vtkNew.h"                // needed for vtkNew
 #include "vtkSmartPointer.h"       // needed for vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class QVTKInteractor;
 class QVTKInteractorAdapter;
 class QVTKRenderWindowAdapter;
@@ -228,4 +229,5 @@ private:
   QCursor DefaultCursor;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/QVTKOpenGLStereoWidget.cxx b/GUISupport/Qt/QVTKOpenGLStereoWidget.cxx
index c8e5a2072cb301c044ce50f8f694f010cb669c5e..ac4bb1d51c70ace2cfa94d10c7ec39ef963bfd31 100644
--- a/GUISupport/Qt/QVTKOpenGLStereoWidget.cxx
+++ b/GUISupport/Qt/QVTKOpenGLStereoWidget.cxx
@@ -28,6 +28,7 @@
 #include <QtDebug>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 QVTKOpenGLStereoWidget::QVTKOpenGLStereoWidget(QWidget* parent, Qt::WindowFlags f)
   : QVTKOpenGLStereoWidget(vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New(), nullptr, parent, f)
 {
@@ -115,3 +116,4 @@ void QVTKOpenGLStereoWidget::paintEvent(QPaintEvent* evt)
   // internal widget overcomes that issue.
   this->VTKOpenGLWindow->update();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/QVTKOpenGLStereoWidget.h b/GUISupport/Qt/QVTKOpenGLStereoWidget.h
index 6875be2ffae978b8389c8aa075d44cb7c2b168f5..24ccdc067a6d09aceea4efa0fd05756f8d105c2e 100644
--- a/GUISupport/Qt/QVTKOpenGLStereoWidget.h
+++ b/GUISupport/Qt/QVTKOpenGLStereoWidget.h
@@ -25,6 +25,7 @@
 class QSurfaceFormat;
 class QOpenGLContext;
 
+VTK_ABI_NAMESPACE_BEGIN
 // class QVTKInteractor;
 class QVTKInteractorAdapter;
 class QVTKOpenGLWindow;
@@ -194,4 +195,5 @@ private:
   QPointer<QVTKOpenGLWindow> VTKOpenGLWindow;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/QVTKOpenGLWindow.cxx b/GUISupport/Qt/QVTKOpenGLWindow.cxx
index 9d14b1dff46eacc0581c971438afa676e9a41f99..38ba0d1c79a97f4dfc899173e688ede6e42f5527 100644
--- a/GUISupport/Qt/QVTKOpenGLWindow.cxx
+++ b/GUISupport/Qt/QVTKOpenGLWindow.cxx
@@ -34,6 +34,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkOpenGLState.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 QVTKOpenGLWindow::QVTKOpenGLWindow(QOpenGLWindow::UpdateBehavior ub, QWindow* p)
   : QVTKOpenGLWindow(vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New(), nullptr, ub, p)
 {
@@ -308,3 +309,4 @@ bool QVTKOpenGLWindow::event(QEvent* evt)
 
   return this->Superclass::event(evt);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/QVTKOpenGLWindow.h b/GUISupport/Qt/QVTKOpenGLWindow.h
index d4a3e3b99931ab6816a39e60bf1aa8408c59ab1f..8211ba92a21a137fe6414eb33ff479691c821e6f 100644
--- a/GUISupport/Qt/QVTKOpenGLWindow.h
+++ b/GUISupport/Qt/QVTKOpenGLWindow.h
@@ -57,6 +57,7 @@
 #include "vtkNew.h"                // needed for vtkNew
 #include "vtkSmartPointer.h"       // needed for vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class QVTKInteractor;
 class QVTKInteractorAdapter;
 class QVTKRenderWindowAdapter;
@@ -193,4 +194,5 @@ private:
   QCursor DefaultCursor;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/QVTKRenderWindowAdapter.cxx b/GUISupport/Qt/QVTKRenderWindowAdapter.cxx
index 6fa8eed3164fed9b61a570728387bab4bab850b5..b6295a8729d1e7dc1bf351ed42ee083fda1cbb00 100644
--- a/GUISupport/Qt/QVTKRenderWindowAdapter.cxx
+++ b/GUISupport/Qt/QVTKRenderWindowAdapter.cxx
@@ -52,6 +52,7 @@
       QOpenGLDebugMessage::createApplicationMessage(QString(str.str().c_str())));                  \
   }
 
+VTK_ABI_NAMESPACE_BEGIN
 class QVTKRenderWindowAdapter::QVTKInternals
 {
   void renderWindowEventHandler(vtkObject*, unsigned long eventid, void* callData);
@@ -619,3 +620,4 @@ QSurfaceFormat QVTKRenderWindowAdapter::defaultFormat(bool stereo_capable)
                      // multisamples independently
   return fmt;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/QVTKRenderWindowAdapter.h b/GUISupport/Qt/QVTKRenderWindowAdapter.h
index 8d1e4bfa55f32dc874b3c3c00208aff66ac6e946..6793dd22462f83ebf57d69d7b336b3669bf635e2 100644
--- a/GUISupport/Qt/QVTKRenderWindowAdapter.h
+++ b/GUISupport/Qt/QVTKRenderWindowAdapter.h
@@ -44,6 +44,8 @@ class QOpenGLContext;
 class QSurfaceFormat;
 class QWidget;
 class QWindow;
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericOpenGLRenderWindow;
 class vtkObject;
 
@@ -193,4 +195,5 @@ private:
   QCursor DefaultCursor;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/QVTKTableModelAdapter.cxx b/GUISupport/Qt/QVTKTableModelAdapter.cxx
index f1c55d8d7e78e19eec66a453be839b635a5d1f88..c897068641b2f1d672f983f3b29b895419c5e897 100644
--- a/GUISupport/Qt/QVTKTableModelAdapter.cxx
+++ b/GUISupport/Qt/QVTKTableModelAdapter.cxx
@@ -10,6 +10,7 @@
 #include <vtkUnsignedLongLongArray.h>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 QVTKTableModelAdapter::QVTKTableModelAdapter(QObject* parent)
   : QObject(parent)
 {
@@ -419,3 +420,4 @@ vtkTable* QVTKTableModelAdapter::GetTable() const
 {
   return this->Table;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/QVTKTableModelAdapter.h b/GUISupport/Qt/QVTKTableModelAdapter.h
index c375006c487db3334df525eeb591358a5c8e4840..621136f86d47e787e21750d18a11afa92d31c9ca 100644
--- a/GUISupport/Qt/QVTKTableModelAdapter.h
+++ b/GUISupport/Qt/QVTKTableModelAdapter.h
@@ -41,6 +41,7 @@
 #include "vtkNew.h"   // For vtkNew
 #include "vtkTable.h" // For vtkTable
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKGUISUPPORTQT_EXPORT QVTKTableModelAdapter : public QObject
 {
   Q_OBJECT
@@ -121,4 +122,5 @@ protected Q_SLOTS:
     const QModelIndex& parent, int start, int end, const QModelIndex& destination, int column);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/Testing/Cxx/TestQtCommon.cxx b/GUISupport/Qt/Testing/Cxx/TestQtCommon.cxx
index 8b841513da30cf7a08388bfc281e715deda48d41..e57dd72b1eedcade36e0a8cfb0a3a4f5a1160e16 100644
--- a/GUISupport/Qt/Testing/Cxx/TestQtCommon.cxx
+++ b/GUISupport/Qt/Testing/Cxx/TestQtCommon.cxx
@@ -2,6 +2,7 @@
 
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 Type select_widget(int argc, char* argv[])
 {
@@ -227,4 +228,5 @@ QImage grab_framebuffer(std::shared_ptr<QObject> widgetOrWindow)
 
   return QImage();
 }
+VTK_ABI_NAMESPACE_END
 }
diff --git a/GUISupport/Qt/Testing/Cxx/TestQtCommon.h b/GUISupport/Qt/Testing/Cxx/TestQtCommon.h
index dc76a0652967a2a1312a69d971f97695ab73ef01..9167d0a3488fb2f7b44fc28674d2ccb169e992fe 100644
--- a/GUISupport/Qt/Testing/Cxx/TestQtCommon.h
+++ b/GUISupport/Qt/Testing/Cxx/TestQtCommon.h
@@ -14,6 +14,7 @@
 
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 enum class Type
 {
   USE_QVTKRENDERWIDGET = 0,
@@ -34,4 +35,5 @@ void process_events_and_wait(int msec);
 void show(std::shared_ptr<QObject> widgetOrWindow, const QSize& size);
 QImage grab_framebuffer(std::shared_ptr<QObject> widgetOrWindow);
 
+VTK_ABI_NAMESPACE_END
 }
diff --git a/GUISupport/Qt/vtkEventQtSlotConnect.cxx b/GUISupport/Qt/vtkEventQtSlotConnect.cxx
index 0e4156a1f3bda162050cfba64960d8636e6063d3..d7dcf04f64868e0e1449c1810a474ec052acce34 100644
--- a/GUISupport/Qt/vtkEventQtSlotConnect.cxx
+++ b/GUISupport/Qt/vtkEventQtSlotConnect.cxx
@@ -34,6 +34,7 @@
 #include <qobject.h>
 
 // hold all the connections
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQtConnections : public std::vector<vtkQtConnection*>
 {
 };
@@ -147,3 +148,4 @@ int vtkEventQtSlotConnect::GetNumberOfConnections() const
 {
   return static_cast<int>(this->Connections->size());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/vtkEventQtSlotConnect.h b/GUISupport/Qt/vtkEventQtSlotConnect.h
index 795e6d41b8bb6ab84ac458c15d818e2c3ed9ded9..c2e5e6966cc9e6f31996bf5e34753dcbb2d1f7e2 100644
--- a/GUISupport/Qt/vtkEventQtSlotConnect.h
+++ b/GUISupport/Qt/vtkEventQtSlotConnect.h
@@ -50,6 +50,8 @@
 #include <QtCore/QObject> // for version info
 
 class QObject;
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQtConnections;
 class vtkQtConnection;
 
@@ -103,4 +105,5 @@ private:
   void operator=(const vtkEventQtSlotConnect&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/vtkQWidgetRepresentation.cxx b/GUISupport/Qt/vtkQWidgetRepresentation.cxx
index 3e4e60e5747f546c5b17f4d4d699f44bd7890bbb..08eaf40bd57551c5962c66096513e308f60e7f09 100644
--- a/GUISupport/Qt/vtkQWidgetRepresentation.cxx
+++ b/GUISupport/Qt/vtkQWidgetRepresentation.cxx
@@ -32,6 +32,7 @@
 
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQWidgetRepresentation);
 
 //------------------------------------------------------------------------------
@@ -243,3 +244,4 @@ void vtkQWidgetRepresentation::RegisterPickers()
   }
   pm->AddPicker(this->Picker, this);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/vtkQWidgetRepresentation.h b/GUISupport/Qt/vtkQWidgetRepresentation.h
index 68cbb428d6de454e103170c80a210175d20a5389..fee1bb4fbfc5d10cc5ed3847d8400756348e422c 100644
--- a/GUISupport/Qt/vtkQWidgetRepresentation.h
+++ b/GUISupport/Qt/vtkQWidgetRepresentation.h
@@ -30,6 +30,8 @@
 #include "vtkWidgetRepresentation.h"
 
 class QWidget;
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkCellPicker;
 class vtkOpenGLTexture;
@@ -156,4 +158,5 @@ private:
   void operator=(const vtkQWidgetRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/vtkQWidgetTexture.cxx b/GUISupport/Qt/vtkQWidgetTexture.cxx
index 8cde5fcf0b314f8d4f70b9c12c805afdecf4e145..cc088b62af9919c924b07784186487f7fc7655d9 100644
--- a/GUISupport/Qt/vtkQWidgetTexture.cxx
+++ b/GUISupport/Qt/vtkQWidgetTexture.cxx
@@ -27,6 +27,7 @@
 #include <QWidget>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQWidgetTexture);
 
 //------------------------------------------------------------------------------
@@ -182,3 +183,4 @@ void vtkQWidgetTexture::Activate()
   // do normal activate
   this->Superclass::Activate();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/vtkQWidgetTexture.h b/GUISupport/Qt/vtkQWidgetTexture.h
index bc0295b546233d468415bca074b21558c44111de..a0fcc5243f9283dbbf737ba551cf09bc648ac8c7 100644
--- a/GUISupport/Qt/vtkQWidgetTexture.h
+++ b/GUISupport/Qt/vtkQWidgetTexture.h
@@ -23,6 +23,8 @@
 class QGraphicsScene;
 class QWidget;
 
+VTK_ABI_NAMESPACE_BEGIN
+
 /**
  * @class vtkQWidgetTexture
  * @brief Allows a QWidget to be used as a texture in VTK with OpenGL
@@ -83,4 +85,5 @@ private:
   void operator=(const vtkQWidgetTexture&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/vtkQWidgetWidget.cxx b/GUISupport/Qt/vtkQWidgetWidget.cxx
index 3fe7b8955ec92f0d2128e909ccebc78c8bb6fbc5..7cf4307e7ab1aa056a8b5307ee75736160fc4b00 100644
--- a/GUISupport/Qt/vtkQWidgetWidget.cxx
+++ b/GUISupport/Qt/vtkQWidgetWidget.cxx
@@ -35,6 +35,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQWidgetWidget);
 
 //------------------------------------------------------------------------------
@@ -351,3 +352,4 @@ void vtkQWidgetWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/vtkQWidgetWidget.h b/GUISupport/Qt/vtkQWidgetWidget.h
index 396827e608c09fa27076910d3ac3c0f5a4c40ac0..eacf1ee0f346920e6f4af31b6115c12e9b262419 100644
--- a/GUISupport/Qt/vtkQWidgetWidget.h
+++ b/GUISupport/Qt/vtkQWidgetWidget.h
@@ -30,6 +30,8 @@
 #include <QPointF>                 // for ivar
 
 class QWidget;
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQWidgetRepresentation;
 
 class VTKGUISUPPORTQT_EXPORT vtkQWidgetWidget : public vtkAbstractWidget
@@ -109,4 +111,5 @@ private:
   void operator=(const vtkQWidgetWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/GUISupport/Qt/vtkQtAbstractModelAdapter.cxx b/GUISupport/Qt/vtkQtAbstractModelAdapter.cxx
index f77fb8592f65f092dcb8139f9a3456201faa2156..047e301cfd9d8fdbef55bf230bc52dde6e7b9307 100644
--- a/GUISupport/Qt/vtkQtAbstractModelAdapter.cxx
+++ b/GUISupport/Qt/vtkQtAbstractModelAdapter.cxx
@@ -21,6 +21,7 @@
 #include "vtkQtAbstractModelAdapter.h"
 #include "vtkObject.h" // For vtkGenericWarningMacro
 
+VTK_ABI_NAMESPACE_BEGIN
 int vtkQtAbstractModelAdapter::ModelColumnToFieldDataColumn(int col) const
 {
   int result = -1;
@@ -38,3 +39,4 @@ int vtkQtAbstractModelAdapter::ModelColumnToFieldDataColumn(int col) const
   };
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/vtkQtAbstractModelAdapter.h b/GUISupport/Qt/vtkQtAbstractModelAdapter.h
index d8f483a945b05d60547578c00a78abf9f0e81e15..1a98a218f314301a5629a2926d2dc6abd350b21d 100644
--- a/GUISupport/Qt/vtkQtAbstractModelAdapter.h
+++ b/GUISupport/Qt/vtkQtAbstractModelAdapter.h
@@ -39,6 +39,7 @@
 #include <QAbstractItemModel>
 #include <QItemSelection> // Needed for selection methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 class vtkSelection;
 
@@ -157,5 +158,6 @@ protected:
   int DataEndColumn;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkQtAbstractModelAdapter.h
diff --git a/GUISupport/Qt/vtkQtAnnotationLayersModelAdapter.cxx b/GUISupport/Qt/vtkQtAnnotationLayersModelAdapter.cxx
index 35c3123449c9963dd59d2caab1de2be29b81c430..10765b343dcf858b9c1b177cf357cd90a020eab4 100644
--- a/GUISupport/Qt/vtkQtAnnotationLayersModelAdapter.cxx
+++ b/GUISupport/Qt/vtkQtAnnotationLayersModelAdapter.cxx
@@ -37,6 +37,7 @@
 #include <QPixmap>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkQtAnnotationLayersModelAdapter::vtkQtAnnotationLayersModelAdapter(QObject* p)
   : vtkQtAbstractModelAdapter(p)
 {
@@ -472,3 +473,4 @@ QMimeData *vtkQtAnnotationLayersModelAdapter::mimeData(const QModelIndexList &in
   return mimeData;
 }
 */
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/vtkQtAnnotationLayersModelAdapter.h b/GUISupport/Qt/vtkQtAnnotationLayersModelAdapter.h
index d734d6b94d2dc5ec93485af96eb1acfcca8e20ab..3bf8e33e0041c31f79b0c053e2f2fbdfc1c86674 100644
--- a/GUISupport/Qt/vtkQtAnnotationLayersModelAdapter.h
+++ b/GUISupport/Qt/vtkQtAnnotationLayersModelAdapter.h
@@ -35,6 +35,7 @@
 #include "vtkGUISupportQtModule.h" // For export macro
 #include "vtkQtAbstractModelAdapter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAnnotationLayers;
 class vtkSelection;
 
@@ -104,5 +105,6 @@ private:
   void operator=(const vtkQtAnnotationLayersModelAdapter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkQtAnnotationLayersModelAdapter.h
diff --git a/GUISupport/Qt/vtkQtConnection.cxx b/GUISupport/Qt/vtkQtConnection.cxx
index 64e1e0b19e2ede1674056052facc83a4d77711b6..226a80631f77e7736319fe6d2d11267dac5917f5 100644
--- a/GUISupport/Qt/vtkQtConnection.cxx
+++ b/GUISupport/Qt/vtkQtConnection.cxx
@@ -32,6 +32,7 @@
 #include <qobject.h>
 
 // constructor
+VTK_ABI_NAMESPACE_BEGIN
 vtkQtConnection::vtkQtConnection(vtkEventQtSlotConnect* owner)
   : Owner(owner)
 {
@@ -137,3 +138,4 @@ void vtkQtConnection::PrintSelf(ostream& os, vtkIndent indent)
        << this->QtObject->metaObject()->className() << "::" << this->QtSlot.toUtf8().data() << "\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/vtkQtConnection.h b/GUISupport/Qt/vtkQtConnection.h
index e95a58f9c4a16d372c670006cfc2cb59db170614..50b40d1a9e64b5bd31084eb73704202d73a4a5b4 100644
--- a/GUISupport/Qt/vtkQtConnection.h
+++ b/GUISupport/Qt/vtkQtConnection.h
@@ -33,6 +33,7 @@
 #include "vtkCommand.h" // for event defines
 #include <QObject>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkObject;
 class vtkCallbackCommand;
 class vtkEventQtSlotConnect;
@@ -91,5 +92,6 @@ private:
   void operator=(const vtkQtConnection&);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkQtConnection.h
diff --git a/GUISupport/Qt/vtkQtDebugLeaksModel.cxx b/GUISupport/Qt/vtkQtDebugLeaksModel.cxx
index e2dd6c76282182f20f270d76390a06c0a2cc9027..2c0aa3ef0689de8e18085e33015fddace3dfbe96 100644
--- a/GUISupport/Qt/vtkQtDebugLeaksModel.cxx
+++ b/GUISupport/Qt/vtkQtDebugLeaksModel.cxx
@@ -23,6 +23,10 @@
 #include <QTimer>
 
 //------------------------------------------------------------------------------
+Q_DECLARE_METATYPE(vtkObjectBase*);
+
+//------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQtDebugLeaksModel::qObserver : public vtkDebugLeaksObserver
 {
 public:
@@ -227,9 +231,6 @@ Qt::ItemFlags vtkQtDebugLeaksModel::flags(const QModelIndex& modelIndex) const
   return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
 }
 
-//------------------------------------------------------------------------------
-Q_DECLARE_METATYPE(vtkObjectBase*);
-
 //------------------------------------------------------------------------------
 ReferenceCountModel::ReferenceCountModel(QObject* p)
   : QStandardItemModel(0, 2, p)
@@ -295,3 +296,4 @@ Qt::ItemFlags ReferenceCountModel::flags(const QModelIndex& modelIndex) const
   Q_UNUSED(modelIndex);
   return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/vtkQtDebugLeaksModel.h b/GUISupport/Qt/vtkQtDebugLeaksModel.h
index 8c6a76e927181f69cec66246a7a90ab104f09395..854f5223ef5a6fbb3f25f43e02649ca7f895f556 100644
--- a/GUISupport/Qt/vtkQtDebugLeaksModel.h
+++ b/GUISupport/Qt/vtkQtDebugLeaksModel.h
@@ -28,6 +28,7 @@
 #include "vtkGUISupportQtModule.h" // For export macro
 #include <QStandardItemModel>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkObjectBase;
 
 class VTKGUISUPPORTQT_EXPORT vtkQtDebugLeaksModel : public QStandardItemModel
@@ -91,5 +92,6 @@ protected Q_SLOTS:
   void updateReferenceCounts();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkQtDebugLeaksModel.h
diff --git a/GUISupport/Qt/vtkQtDebugLeaksView.cxx b/GUISupport/Qt/vtkQtDebugLeaksView.cxx
index 5f8ba12e29f6c0d460da75a6a1c8bf553e41c214..8109aac4e8101decd9887b931014c5ab6b91a3f3 100644
--- a/GUISupport/Qt/vtkQtDebugLeaksView.cxx
+++ b/GUISupport/Qt/vtkQtDebugLeaksView.cxx
@@ -30,6 +30,10 @@
 #include <QVBoxLayout>
 
 //------------------------------------------------------------------------------
+Q_DECLARE_METATYPE(vtkObjectBase*);
+
+//------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQtDebugLeaksView::qInternal
 {
 public:
@@ -210,9 +214,6 @@ void vtkQtDebugLeaksView::setFilterText(const QString& text)
   this->Internal->FilterLineEdit->setText(text);
 }
 
-//------------------------------------------------------------------------------
-Q_DECLARE_METATYPE(vtkObjectBase*);
-
 //------------------------------------------------------------------------------
 void vtkQtDebugLeaksView::onRowDoubleClicked(const QModelIndex& index)
 {
@@ -247,3 +248,4 @@ void vtkQtDebugLeaksView::onClassNameDoubleClicked(const QString& className)
 {
   Q_UNUSED(className);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/vtkQtDebugLeaksView.h b/GUISupport/Qt/vtkQtDebugLeaksView.h
index 269373e6302fe9b3e7e10f5f0a305d42610fb6d3..71b7b110a16c7ea32be1efaa69046685dc442751 100644
--- a/GUISupport/Qt/vtkQtDebugLeaksView.h
+++ b/GUISupport/Qt/vtkQtDebugLeaksView.h
@@ -30,6 +30,8 @@
 #include <QWidget>
 
 class QModelIndex;
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkObjectBase;
 class vtkQtDebugLeaksModel;
 
@@ -82,5 +84,6 @@ private:
   Q_DISABLE_COPY(vtkQtDebugLeaksView);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkQtDebugLeaksView.h
diff --git a/GUISupport/Qt/vtkQtTableModelAdapter.cxx b/GUISupport/Qt/vtkQtTableModelAdapter.cxx
index b58b0d68e654649c0899c9e177c40ef82a9d72b0..889f0acc6f030a314f78048a720c0590676289c8 100644
--- a/GUISupport/Qt/vtkQtTableModelAdapter.cxx
+++ b/GUISupport/Qt/vtkQtTableModelAdapter.cxx
@@ -46,6 +46,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQtTableModelAdapter::vtkInternal
 {
 public:
@@ -870,3 +871,4 @@ void vtkQtTableModelAdapter::SetIconSize(int w, int h)
   this->IconSize[0] = w;
   this->IconSize[1] = h;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/vtkQtTableModelAdapter.h b/GUISupport/Qt/vtkQtTableModelAdapter.h
index 9f43bd95c6028f3c5751aab2ac1bd2e3d0faf8ff..020a7dd38ccab934101a25c2145a4e95c1a7d604 100644
--- a/GUISupport/Qt/vtkQtTableModelAdapter.h
+++ b/GUISupport/Qt/vtkQtTableModelAdapter.h
@@ -36,12 +36,13 @@
 #include "vtkQtAbstractModelAdapter.h"
 #include <QImage> // Needed for icon support
 
+class QMimeData;
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSelection;
 class vtkTable;
 class vtkVariant;
 
-class QMimeData;
-
 class VTKGUISUPPORTQT_EXPORT vtkQtTableModelAdapter : public vtkQtAbstractModelAdapter
 {
   Q_OBJECT
@@ -152,5 +153,6 @@ private:
   void operator=(const vtkQtTableModelAdapter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkQtTableModelAdapter.h
diff --git a/GUISupport/Qt/vtkQtTreeModelAdapter.cxx b/GUISupport/Qt/vtkQtTreeModelAdapter.cxx
index 06e01e734edc269e52cb2f11f4c35bfb36d8b388..ac5dcfce13309258e8a6645674fde7f1a4cfd000 100644
--- a/GUISupport/Qt/vtkQtTreeModelAdapter.cxx
+++ b/GUISupport/Qt/vtkQtTreeModelAdapter.cxx
@@ -47,6 +47,7 @@
 #include <set>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkQtTreeModelAdapter::vtkQtTreeModelAdapter(QObject* p, vtkTree* t)
   : vtkQtAbstractModelAdapter(p)
 {
@@ -572,3 +573,4 @@ Qt::DropActions vtkQtTreeModelAdapter::supportedDragActions() const
 {
   return Qt::CopyAction;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/vtkQtTreeModelAdapter.h b/GUISupport/Qt/vtkQtTreeModelAdapter.h
index ea4b0b4ef295439b42796bad6aafa7f56cfbdf1b..4e3adabcff6e5f31ddb6f30158f9dbb24a6292b9 100644
--- a/GUISupport/Qt/vtkQtTreeModelAdapter.h
+++ b/GUISupport/Qt/vtkQtTreeModelAdapter.h
@@ -39,12 +39,13 @@
 #include <QHash>     // Needed for the decoration map
 #include <QVector>   // Needed for the index map
 
+class QMimeData;
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSelection;
 class vtkTree;
 class vtkAdjacentVertexIterator;
 
-class QMimeData;
-
 class VTKGUISUPPORTQT_EXPORT vtkQtTreeModelAdapter : public vtkQtAbstractModelAdapter
 {
   Q_OBJECT
@@ -125,5 +126,6 @@ private:
   void operator=(const vtkQtTreeModelAdapter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkQtTreeModelAdapter.h
diff --git a/GUISupport/Qt/vtkTDxQtUnixDevices.cxx b/GUISupport/Qt/vtkTDxQtUnixDevices.cxx
index 96bc4810b5658452217d2163eff47d3355299e8c..4aef6440613fb4208facd9e1e5eb87571f5bea41 100644
--- a/GUISupport/Qt/vtkTDxQtUnixDevices.cxx
+++ b/GUISupport/Qt/vtkTDxQtUnixDevices.cxx
@@ -20,6 +20,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <X11/Xlib.h> // Needed for X types used in the public interface
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLessThanWindowId
 {
 public:
@@ -110,3 +111,4 @@ void vtkTDxQtUnixDevices::ProcessEvent(vtkTDxUnixDeviceXEvent* e)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/Qt/vtkTDxQtUnixDevices.h b/GUISupport/Qt/vtkTDxQtUnixDevices.h
index 7d33a7b440323c664d552d8e940ef8a8b0f3054d..cd95a02b7d3dbb07da721e00385560d3e6cb7985 100644
--- a/GUISupport/Qt/vtkTDxQtUnixDevices.h
+++ b/GUISupport/Qt/vtkTDxQtUnixDevices.h
@@ -31,6 +31,7 @@
 #include "vtkTDxUnixDevice.h"      // required for vtkTDxUnixDeviceXEvent
 #include <QObject>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTDxQtUnixDevicesPrivate;
 
 class VTKGUISUPPORTQT_EXPORT vtkTDxQtUnixDevices : public QObject
@@ -63,5 +64,6 @@ private:
   void operator=(const vtkTDxQtUnixDevices&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkTDxQtUnixDevices.h
diff --git a/GUISupport/QtQuick/QQuickVTKInteractiveWidget.cxx b/GUISupport/QtQuick/QQuickVTKInteractiveWidget.cxx
index 1e436d431396496c19296695f921443ae54c8c85..e69849ce5ba97cf3d17f4c1b0c6c451163f73cea 100644
--- a/GUISupport/QtQuick/QQuickVTKInteractiveWidget.cxx
+++ b/GUISupport/QtQuick/QQuickVTKInteractiveWidget.cxx
@@ -22,6 +22,7 @@
 #include "vtkWidgetRepresentation.h"
 
 //-------------------------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 QQuickVTKInteractiveWidget::QQuickVTKInteractiveWidget(QObject* parent)
   : Superclass(parent)
 {
@@ -71,3 +72,4 @@ void QQuickVTKInteractiveWidget::sync(vtkRenderer* ren)
   this->m_widget->SetEnabled(this->m_enabled);
   this->m_widget->SetProcessEvents(this->m_enabled);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/QtQuick/QQuickVTKInteractiveWidget.h b/GUISupport/QtQuick/QQuickVTKInteractiveWidget.h
index 879097858e020294b75241f25e621bd64d65485e..1a5ab5b6997636c1a9841cc7685de255e91951f6 100644
--- a/GUISupport/QtQuick/QQuickVTKInteractiveWidget.h
+++ b/GUISupport/QtQuick/QQuickVTKInteractiveWidget.h
@@ -32,6 +32,7 @@
 #include "vtkGUISupportQtQuickModule.h" // for export macro
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractWidget;
 class vtkRenderer;
 
@@ -80,4 +81,5 @@ private:
   void operator=(const QQuickVTKInteractiveWidget) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // QQuickVTKInteractiveWidget_h
diff --git a/GUISupport/QtQuick/QQuickVTKInteractorAdapter.cxx b/GUISupport/QtQuick/QQuickVTKInteractorAdapter.cxx
index a2c736437052f9582741a5d4cd9a0111f27002d4..538879880d94b1cec561cc67b7d42d37e61b9a77 100644
--- a/GUISupport/QtQuick/QQuickVTKInteractorAdapter.cxx
+++ b/GUISupport/QtQuick/QQuickVTKInteractorAdapter.cxx
@@ -23,6 +23,7 @@
 #include "vtkRenderWindowInteractor.h"
 
 //-------------------------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 QQuickVTKInteractorAdapter::QQuickVTKInteractorAdapter(QObject* parent)
   : Superclass(parent)
 {
@@ -134,3 +135,4 @@ void QQuickVTKInteractorAdapter::ProcessEvents(vtkRenderWindowInteractor* intera
     m_queuedEvents.clear();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/QtQuick/QQuickVTKInteractorAdapter.h b/GUISupport/QtQuick/QQuickVTKInteractorAdapter.h
index a21126a677eb6311a8a28b61187c19ce3eace129..a726b321c4a848c9b007d34f305697e9a662c1a8 100644
--- a/GUISupport/QtQuick/QQuickVTKInteractorAdapter.h
+++ b/GUISupport/QtQuick/QQuickVTKInteractorAdapter.h
@@ -23,7 +23,7 @@
 #include <QList>    // for QList
 #include <QPointer> // for QPointer
 
-// Forward declarations
+// Qt Forward declarations
 class QEnterEvent;
 class QEvent;
 class QFocusEvent;
@@ -33,6 +33,9 @@ class QMouseEvent;
 class QQuickItem;
 class QQuickWindow;
 class QWheelEvent;
+
+VTK_ABI_NAMESPACE_BEGIN
+// VTK Forward declarations
 class vtkRenderWindowInteractor;
 class vtkRenderer;
 
@@ -89,4 +92,5 @@ private:
   Q_DISABLE_COPY(QQuickVTKInteractorAdapter)
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // QQuickVTKInteractorAdapter_h
diff --git a/GUISupport/QtQuick/QQuickVTKRenderItem.cxx b/GUISupport/QtQuick/QQuickVTKRenderItem.cxx
index 62760dadd25282b5be009c91ce30e65814969b93..bd4fbbfe550efee0f07edac4731fe16b0dbf9069 100644
--- a/GUISupport/QtQuick/QQuickVTKRenderItem.cxx
+++ b/GUISupport/QtQuick/QQuickVTKRenderItem.cxx
@@ -24,6 +24,7 @@
 #include <QQuickWindow>
 
 //-------------------------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 QQuickVTKRenderItem::QQuickVTKRenderItem(QQuickItem* parent)
   : Superclass(parent)
 {
@@ -324,3 +325,4 @@ void QQuickVTKRenderItem::removeWidgetByName(QString name)
 
   this->removeWidget(w);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/QtQuick/QQuickVTKRenderItem.h b/GUISupport/QtQuick/QQuickVTKRenderItem.h
index 247501c121c5c02fb4c568b1c68aad0018ebd153..bf70e068bd5f3a98d3e5e947c69276ae6b96170d 100644
--- a/GUISupport/QtQuick/QQuickVTKRenderItem.h
+++ b/GUISupport/QtQuick/QQuickVTKRenderItem.h
@@ -140,10 +140,13 @@
 
 #include "vtkGUISupportQtQuickModule.h" // for export macro
 
-// Forward declarations
+// Qt Forward declarations
 class QHoverEvent;
 class QKeyEvent;
 class QMouseEvent;
+
+VTK_ABI_NAMESPACE_BEGIN
+// VTK Forward declarations
 class QQuickVTKInteractiveWidget;
 class vtkImageData;
 
@@ -260,4 +263,5 @@ private:
   void operator=(const QQuickVTKRenderItem) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // QQuickVTKRenderItem_h
diff --git a/GUISupport/QtQuick/QQuickVTKRenderWindow.cxx b/GUISupport/QtQuick/QQuickVTKRenderWindow.cxx
index 188fadf2d7d758704593f9fc44b3fd593a1d98e5..7b06afeb7ed211112f455eb621f4e15795eea36d 100644
--- a/GUISupport/QtQuick/QQuickVTKRenderWindow.cxx
+++ b/GUISupport/QtQuick/QQuickVTKRenderWindow.cxx
@@ -32,6 +32,7 @@
 #include <QSurfaceFormat>
 
 //-------------------------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 QQuickVTKRenderWindow::QQuickVTKRenderWindow(QQuickItem* parent)
   : Superclass(parent)
 {
@@ -403,3 +404,4 @@ Use QQuickVTKRenderWindow::setupGraphicsBackend() to set the right backend.)***"
   }
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/QtQuick/QQuickVTKRenderWindow.h b/GUISupport/QtQuick/QQuickVTKRenderWindow.h
index 3f15ded9e506f92152221e13829a64a55979989d..51a0526fdf6c618609996ee5a3f34a94b658fdad 100644
--- a/GUISupport/QtQuick/QQuickVTKRenderWindow.h
+++ b/GUISupport/QtQuick/QQuickVTKRenderWindow.h
@@ -126,11 +126,15 @@
 
 #include "vtkGUISupportQtQuickModule.h" // for export macro
 
-// Forward declarations
+// Qt Forward declarations
 class QEvent;
-class QQuickVTKInteractorAdapter;
 class QQuickWindow;
 class QWheelEvent;
+
+VTK_ABI_NAMESPACE_BEGIN
+
+// VTK Forward declarations
+class QQuickVTKInteractorAdapter;
 class vtkGenericOpenGLRenderWindow;
 class vtkImageData;
 class vtkRenderWindow;
@@ -292,4 +296,5 @@ private:
   void operator=(const QQuickVTKRenderWindow) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // QQuickVTKRenderWindow_h
diff --git a/GUISupport/QtQuick/qml/QQmlVTKPlugin.cxx b/GUISupport/QtQuick/qml/QQmlVTKPlugin.cxx
index ad1576552369fce1a897ba939c5172c3731d03bb..044696c3106c62c9f60a9e4a4ee18a78fdfd9b23 100644
--- a/GUISupport/QtQuick/qml/QQmlVTKPlugin.cxx
+++ b/GUISupport/QtQuick/qml/QQmlVTKPlugin.cxx
@@ -24,6 +24,7 @@
 #include <QQmlEngine>
 
 //-------------------------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void QQmlVTKPlugin::registerTypes(const char* uri)
 {
   Q_ASSERT(QString::compare(uri, "VTK") == 0);
@@ -48,3 +49,4 @@ void QQmlVTKPlugin::initializeEngine(QQmlEngine* engine, const char* uri)
 
 //-------------------------------------------------------------------------------------------------
 void QQmlVTKPlugin::cleanup() {}
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/QtQuick/qml/QQmlVTKPlugin.h b/GUISupport/QtQuick/qml/QQmlVTKPlugin.h
index ef19b15924b49ae164fc38dd36979090374f4295..4672a9ee273ff9d6614bcd04af9518804f964558 100644
--- a/GUISupport/QtQuick/qml/QQmlVTKPlugin.h
+++ b/GUISupport/QtQuick/qml/QQmlVTKPlugin.h
@@ -15,6 +15,8 @@
 #ifndef QQmlVTKPlugin_h
 #define QQmlVTKPlugin_h
 
+#include "vtkABINamespace.h"
+
 // Qt includes
 #include <QQmlExtensionPlugin>
 
@@ -57,6 +59,7 @@
  * The VTK QML module follows the version number of the VTK source tree. For example, if compiled
  * against VTK 9.0.x, the VTK module version will be 9.0
  */
+VTK_ABI_NAMESPACE_BEGIN
 class QQmlVTKPlugin : public QQmlExtensionPlugin
 {
   Q_OBJECT
@@ -99,4 +102,5 @@ private:
   Q_DISABLE_COPY(QQmlVTKPlugin);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // QQmlVTKPlugin_h
diff --git a/GUISupport/QtSQL/vtkQtSQLDatabase.cxx b/GUISupport/QtSQL/vtkQtSQLDatabase.cxx
index 33bd523f66403e500a0a022208f0bbe15f443f9a..8602025b4a2f229aa8a9c5ad3ce8e535a6654e02 100644
--- a/GUISupport/QtSQL/vtkQtSQLDatabase.cxx
+++ b/GUISupport/QtSQL/vtkQtSQLDatabase.cxx
@@ -32,6 +32,7 @@
 #include <sstream>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQtSQLDatabase);
 
 int vtkQtSQLDatabase::id = 0;
@@ -322,3 +323,4 @@ vtkStdString vtkQtSQLDatabase::GetURL()
   url += this->GetDatabaseName();
   return url;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/QtSQL/vtkQtSQLDatabase.h b/GUISupport/QtSQL/vtkQtSQLDatabase.h
index 91dcf526c1a4fca6102f994e6ec3111e0362e6f1..82aeceff0fec5e2fce41658fef791b2898839ac4 100644
--- a/GUISupport/QtSQL/vtkQtSQLDatabase.h
+++ b/GUISupport/QtSQL/vtkQtSQLDatabase.h
@@ -33,6 +33,7 @@
 
 #include <QtSql/QSqlDatabase> // For the database member
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLQuery;
 class vtkStringArray;
 
@@ -203,5 +204,6 @@ private:
   void operator=(const vtkQtSQLDatabase&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkQtSQLDatabase_h
 // VTK-HeaderTest-Exclude: vtkQtSQLDatabase.h
diff --git a/GUISupport/QtSQL/vtkQtSQLQuery.cxx b/GUISupport/QtSQL/vtkQtSQLQuery.cxx
index 756fae92b07948b2c5deed5bea97a6865b6f1c05..16dc23386b93cea9bce30eea32b898c51862d944 100644
--- a/GUISupport/QtSQL/vtkQtSQLQuery.cxx
+++ b/GUISupport/QtSQL/vtkQtSQLQuery.cxx
@@ -35,6 +35,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQtSQLQueryInternals
 {
 public:
@@ -224,3 +225,4 @@ vtkVariant vtkQtSQLQuery::DataValue(vtkIdType c)
       return vtkVariant(v.toString().toUtf8().data());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/QtSQL/vtkQtSQLQuery.h b/GUISupport/QtSQL/vtkQtSQLQuery.h
index 27c3c2bcf15e11457c5c5b7fba36340431f15b12..578aadf4f622e6bba25710ce8d4718618e982024 100644
--- a/GUISupport/QtSQL/vtkQtSQLQuery.h
+++ b/GUISupport/QtSQL/vtkQtSQLQuery.h
@@ -31,6 +31,7 @@
 #include "vtkGUISupportQtSQLModule.h" // For export macro
 #include "vtkSQLQuery.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVariant;
 class vtkQtSQLQueryInternals;
 
@@ -100,4 +101,5 @@ private:
   void operator=(const vtkQtSQLQuery&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkQtSQLQuery_h
diff --git a/GUISupport/QtSQL/vtkQtTimePointUtility.cxx b/GUISupport/QtSQL/vtkQtTimePointUtility.cxx
index a6d2030db2a100cd2aefcb70fcc6bfb87ec2f2c6..4cdfc4934179cdd5ed84375ab1b1bf99b3aae150 100644
--- a/GUISupport/QtSQL/vtkQtTimePointUtility.cxx
+++ b/GUISupport/QtSQL/vtkQtTimePointUtility.cxx
@@ -22,6 +22,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkQtTimePointUtility::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
@@ -58,3 +59,4 @@ vtkTypeUInt64 vtkQtTimePointUtility::QTimeToTimePoint(QTime time)
     +time.hour() * 3600000 + time.minute() * 60000 + time.second() * 1000 + time.msec();
   return timePoint;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/GUISupport/QtSQL/vtkQtTimePointUtility.h b/GUISupport/QtSQL/vtkQtTimePointUtility.h
index 1390a7a794611727eacfdef646659a4c1a0980ad..e75c0f2efdc0099d29744d2e0c663633a35e2f54 100644
--- a/GUISupport/QtSQL/vtkQtTimePointUtility.h
+++ b/GUISupport/QtSQL/vtkQtTimePointUtility.h
@@ -32,6 +32,7 @@
 #include "vtkObject.h"
 #include <QDateTime> // Needed for method return types
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKGUISUPPORTQTSQL_EXPORT vtkQtTimePointUtility : public vtkObject
 {
 public:
@@ -52,4 +53,5 @@ private:
   void operator=(const vtkQtTimePointUtility&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Geovis/Core/vtkCompassWidget.cxx b/Geovis/Core/vtkCompassWidget.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..f4d7baa314b6f2b0091a1c728e55af066ed58fd8
--- /dev/null
+++ b/Geovis/Core/vtkCompassWidget.cxx
@@ -0,0 +1,371 @@
+/*=========================================================================
+
+  Program:   Visualization Toolkit
+  Module:    vtkCompassWidget.cxx
+
+  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
+  All rights reserved.
+  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
+
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notice for more information.
+
+=========================================================================*/
+
+/*-------------------------------------------------------------------------
+  Copyright 2008 Sandia Corporation.
+  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
+  the U.S. Government retains certain rights in this software.
+-------------------------------------------------------------------------*/
+
+#include "vtkCompassWidget.h"
+#include "vtkCallbackCommand.h"
+#include "vtkCommand.h"
+#include "vtkCompassRepresentation.h"
+#include "vtkEvent.h"
+#include "vtkObjectFactory.h"
+#include "vtkRenderWindowInteractor.h"
+#include "vtkRenderer.h"
+#include "vtkTimerLog.h"
+#include "vtkWidgetCallbackMapper.h"
+#include "vtkWidgetEvent.h"
+#include "vtkWidgetEventTranslator.h"
+
+VTK_ABI_NAMESPACE_BEGIN
+vtkStandardNewMacro(vtkCompassWidget);
+
+//------------------------------------------------------------
+vtkCompassWidget::vtkCompassWidget()
+{
+  // Set the initial state
+  this->WidgetState = vtkCompassWidget::Start;
+  this->TimerDuration = 50;
+
+  // Okay, define the events
+  this->CallbackMapper->SetCallbackMethod(
+    vtkCommand::LeftButtonPressEvent, vtkWidgetEvent::Select, this, vtkCompassWidget::SelectAction);
+  this->CallbackMapper->SetCallbackMethod(
+    vtkCommand::MouseMoveEvent, vtkWidgetEvent::Move, this, vtkCompassWidget::MoveAction);
+  this->CallbackMapper->SetCallbackMethod(vtkCommand::LeftButtonReleaseEvent,
+    vtkWidgetEvent::EndSelect, this, vtkCompassWidget::EndSelectAction);
+  this->CallbackMapper->SetCallbackMethod(
+    vtkCommand::TimerEvent, vtkWidgetEvent::TimedOut, this, vtkCompassWidget::TimerAction);
+}
+
+//------------------------------------------------------------------------------
+void vtkCompassWidget::CreateDefaultRepresentation()
+{
+  if (!this->WidgetRep)
+  {
+    this->WidgetRep = vtkCompassRepresentation::New();
+  }
+}
+
+//-----------------------------------------------------------------
+double vtkCompassWidget::GetHeading()
+{
+  this->CreateDefaultRepresentation();
+  vtkCompassRepresentation* slider = vtkCompassRepresentation::SafeDownCast(this->WidgetRep);
+  return slider->GetHeading();
+}
+
+//-----------------------------------------------------------------
+void vtkCompassWidget::SetHeading(double value)
+{
+  this->CreateDefaultRepresentation();
+  vtkCompassRepresentation* slider = vtkCompassRepresentation::SafeDownCast(this->WidgetRep);
+  slider->SetHeading(value);
+}
+
+//-----------------------------------------------------------------
+double vtkCompassWidget::GetTilt()
+{
+  this->CreateDefaultRepresentation();
+  vtkCompassRepresentation* slider = vtkCompassRepresentation::SafeDownCast(this->WidgetRep);
+  return slider->GetTilt();
+}
+
+//-----------------------------------------------------------------
+void vtkCompassWidget::SetTilt(double value)
+{
+  this->CreateDefaultRepresentation();
+  vtkCompassRepresentation* slider = vtkCompassRepresentation::SafeDownCast(this->WidgetRep);
+  slider->SetTilt(value);
+}
+
+//-----------------------------------------------------------------
+double vtkCompassWidget::GetDistance()
+{
+  this->CreateDefaultRepresentation();
+  vtkCompassRepresentation* slider = vtkCompassRepresentation::SafeDownCast(this->WidgetRep);
+  return slider->GetDistance();
+}
+
+//-----------------------------------------------------------------
+void vtkCompassWidget::SetDistance(double value)
+{
+  this->CreateDefaultRepresentation();
+  vtkCompassRepresentation* slider = vtkCompassRepresentation::SafeDownCast(this->WidgetRep);
+  slider->SetDistance(value);
+}
+
+//-------------------------------------------------------------
+void vtkCompassWidget::SelectAction(vtkAbstractWidget* w)
+{
+  vtkCompassWidget* self = reinterpret_cast<vtkCompassWidget*>(w);
+
+  double eventPos[2];
+  eventPos[0] = self->Interactor->GetEventPosition()[0];
+  eventPos[1] = self->Interactor->GetEventPosition()[1];
+
+  // Okay, make sure that the pick is in the current renderer
+  if (!self->CurrentRenderer ||
+    !self->CurrentRenderer->IsInViewport(
+      static_cast<int>(eventPos[0]), static_cast<int>(eventPos[1])))
+  {
+    return;
+  }
+
+  // See if the widget has been selected. StartWidgetInteraction records the
+  // starting point of the motion.
+  self->CreateDefaultRepresentation();
+  self->WidgetRep->StartWidgetInteraction(eventPos);
+  int interactionState = self->WidgetRep->GetInteractionState();
+
+  if (interactionState == vtkCompassRepresentation::TiltDown)
+  {
+    self->SetTilt(self->GetTilt() - 15);
+    self->InvokeEvent(vtkCommand::InteractionEvent, nullptr);
+    self->EventCallbackCommand->SetAbortFlag(1);
+    return;
+  }
+  if (interactionState == vtkCompassRepresentation::TiltUp)
+  {
+    self->SetTilt(self->GetTilt() + 15);
+    self->InvokeEvent(vtkCommand::InteractionEvent, nullptr);
+    self->EventCallbackCommand->SetAbortFlag(1);
+    return;
+  }
+
+  if (interactionState == vtkCompassRepresentation::TiltAdjusting)
+  {
+    self->GrabFocus(self->EventCallbackCommand);
+    self->WidgetState = vtkCompassWidget::TiltAdjusting;
+    // Start off the timer
+    self->TimerId = self->Interactor->CreateRepeatingTimer(self->TimerDuration);
+    self->StartTime = vtkTimerLog::GetUniversalTime();
+    // Highlight as necessary
+    self->WidgetRep->Highlight(1);
+    // start the interaction
+    self->StartInteraction();
+    self->InvokeEvent(vtkCommand::StartInteractionEvent, nullptr);
+    self->EventCallbackCommand->SetAbortFlag(1);
+    self->Render();
+    return;
+  }
+
+  if (interactionState == vtkCompassRepresentation::DistanceIn)
+  {
+    self->SetDistance(self->GetDistance() * 0.8);
+    self->InvokeEvent(vtkCommand::InteractionEvent, nullptr);
+    self->EventCallbackCommand->SetAbortFlag(1);
+    return;
+  }
+  if (interactionState == vtkCompassRepresentation::DistanceOut)
+  {
+    self->SetDistance(self->GetDistance() * 1.2);
+    self->InvokeEvent(vtkCommand::InteractionEvent, nullptr);
+    self->EventCallbackCommand->SetAbortFlag(1);
+    return;
+  }
+
+  if (interactionState == vtkCompassRepresentation::DistanceAdjusting)
+  {
+    self->GrabFocus(self->EventCallbackCommand);
+    self->WidgetState = vtkCompassWidget::DistanceAdjusting;
+    // Start off the timer
+    self->TimerId = self->Interactor->CreateRepeatingTimer(self->TimerDuration);
+    self->StartTime = vtkTimerLog::GetUniversalTime();
+    // Highlight as necessary
+    self->WidgetRep->Highlight(1);
+    // start the interaction
+    self->StartInteraction();
+    self->InvokeEvent(vtkCommand::StartInteractionEvent, nullptr);
+    self->EventCallbackCommand->SetAbortFlag(1);
+    self->Render();
+    return;
+  }
+
+  if (interactionState != vtkCompassRepresentation::Adjusting)
+  {
+    return;
+  }
+
+  // We are definitely selected
+  self->GrabFocus(self->EventCallbackCommand);
+  self->EventCallbackCommand->SetAbortFlag(1);
+  if (interactionState == vtkCompassRepresentation::Adjusting)
+  {
+    self->WidgetState = vtkCompassWidget::Adjusting;
+    // Highlight as necessary
+    self->WidgetRep->Highlight(1);
+    // start the interaction
+    self->StartInteraction();
+    self->InvokeEvent(vtkCommand::StartInteractionEvent, nullptr);
+    self->EventCallbackCommand->SetAbortFlag(1);
+    self->Render();
+    return;
+  }
+}
+
+//---------------------------------------------------------------
+void vtkCompassWidget::MoveAction(vtkAbstractWidget* w)
+{
+  vtkCompassWidget* self = reinterpret_cast<vtkCompassWidget*>(w);
+
+  // do we need to change highlight state?
+  self->CreateDefaultRepresentation();
+  int interactionState = self->WidgetRep->ComputeInteractionState(
+    self->Interactor->GetEventPosition()[0], self->Interactor->GetEventPosition()[1]);
+
+  // if we are outside and in the start state then return
+  if (interactionState == vtkCompassRepresentation::Outside &&
+    self->WidgetState == vtkCompassWidget::Start)
+  {
+    return;
+  }
+
+  // if we are not outside and in the highlighting state then return
+  if (interactionState != vtkCompassRepresentation::Outside &&
+    self->WidgetState == vtkCompassWidget::Highlighting)
+  {
+    return;
+  }
+
+  // if we are not outside and in the Start state highlight
+  if (interactionState != vtkCompassRepresentation::Outside &&
+    self->WidgetState == vtkCompassWidget::Start)
+  {
+    self->WidgetRep->Highlight(1);
+    self->WidgetState = vtkCompassWidget::Highlighting;
+    self->Render();
+    return;
+  }
+
+  // if we are outside but in the highlight state then stop highlighting
+  if (self->WidgetState == vtkCompassWidget::Highlighting &&
+    interactionState == vtkCompassRepresentation::Outside)
+  {
+    self->WidgetRep->Highlight(0);
+    self->WidgetState = vtkCompassWidget::Start;
+    self->Render();
+    return;
+  }
+
+  vtkCompassRepresentation* rep = vtkCompassRepresentation::SafeDownCast(self->WidgetRep);
+
+  // Definitely moving the slider, get the updated position
+  double eventPos[2];
+  eventPos[0] = self->Interactor->GetEventPosition()[0];
+  eventPos[1] = self->Interactor->GetEventPosition()[1];
+  if (self->WidgetState == vtkCompassWidget::TiltAdjusting)
+  {
+    rep->TiltWidgetInteraction(eventPos);
+  }
+  if (self->WidgetState == vtkCompassWidget::DistanceAdjusting)
+  {
+    rep->DistanceWidgetInteraction(eventPos);
+  }
+  if (self->WidgetState == vtkCompassWidget::Adjusting)
+  {
+    self->WidgetRep->WidgetInteraction(eventPos);
+  }
+  self->InvokeEvent(vtkCommand::InteractionEvent, nullptr);
+
+  // Interact, if desired
+  self->EventCallbackCommand->SetAbortFlag(1);
+}
+
+//-----------------------------------------------------------------
+void vtkCompassWidget::EndSelectAction(vtkAbstractWidget* w)
+{
+  vtkCompassWidget* self = reinterpret_cast<vtkCompassWidget*>(w);
+
+  if (self->WidgetState != vtkCompassWidget::Adjusting &&
+    self->WidgetState != vtkCompassWidget::TiltAdjusting &&
+    self->WidgetState != vtkCompassWidget::DistanceAdjusting)
+  {
+    return;
+  }
+
+  if (self->WidgetState == vtkCompassWidget::TiltAdjusting)
+  {
+    // stop the timer
+    self->Interactor->DestroyTimer(self->TimerId);
+    vtkCompassRepresentation* rep = vtkCompassRepresentation::SafeDownCast(self->WidgetRep);
+    rep->EndTilt();
+  }
+
+  if (self->WidgetState == vtkCompassWidget::DistanceAdjusting)
+  {
+    // stop the timer
+    self->Interactor->DestroyTimer(self->TimerId);
+    vtkCompassRepresentation* rep = vtkCompassRepresentation::SafeDownCast(self->WidgetRep);
+    rep->EndDistance();
+  }
+
+  int interactionState = self->WidgetRep->ComputeInteractionState(
+    self->Interactor->GetEventPosition()[0], self->Interactor->GetEventPosition()[1]);
+  if (interactionState == vtkCompassRepresentation::Outside)
+  {
+    self->WidgetRep->Highlight(0);
+    self->WidgetState = vtkCompassWidget::Start;
+  }
+  else
+  {
+    self->WidgetState = vtkCompassWidget::Highlighting;
+  }
+
+  // The state returns to unselected
+  self->ReleaseFocus();
+
+  // Complete interaction
+  self->EventCallbackCommand->SetAbortFlag(1);
+  self->EndInteraction();
+  self->InvokeEvent(vtkCommand::EndInteractionEvent, nullptr);
+  self->Render();
+}
+
+void vtkCompassWidget::TimerAction(vtkAbstractWidget* w)
+{
+  vtkCompassWidget* self = reinterpret_cast<vtkCompassWidget*>(w);
+  int timerId = *(reinterpret_cast<int*>(self->CallData));
+
+  // If this is the timer event we are waiting for...
+  if (timerId == self->TimerId)
+  {
+    vtkCompassRepresentation* rep = vtkCompassRepresentation::SafeDownCast(self->WidgetRep);
+    if (self->WidgetState == vtkCompassWidget::TiltAdjusting)
+    {
+      double tElapsed = vtkTimerLog::GetUniversalTime() - self->StartTime;
+      rep->UpdateTilt(tElapsed);
+    }
+    if (self->WidgetState == vtkCompassWidget::DistanceAdjusting)
+    {
+      double tElapsed = vtkTimerLog::GetUniversalTime() - self->StartTime;
+      rep->UpdateDistance(tElapsed);
+    }
+    self->StartTime = vtkTimerLog::GetUniversalTime();
+    self->InvokeEvent(vtkCommand::InteractionEvent, nullptr);
+    self->EventCallbackCommand->SetAbortFlag(1); // no one else gets this timer
+  }
+}
+
+//-----------------------------------------------------------------
+void vtkCompassWidget::PrintSelf(ostream& os, vtkIndent indent)
+{
+  // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
+  this->Superclass::PrintSelf(os, indent);
+}
+VTK_ABI_NAMESPACE_END
diff --git a/Geovis/Core/vtkGeoProjection.cxx b/Geovis/Core/vtkGeoProjection.cxx
index 0a0d06eba19637651a73b14b3e3e63d75ea5878e..fb1fe9f55aaa3399bb68c46d42eacef046a116a4 100644
--- a/Geovis/Core/vtkGeoProjection.cxx
+++ b/Geovis/Core/vtkGeoProjection.cxx
@@ -29,6 +29,7 @@
 
 #include "vtk_libproj.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGeoProjection);
 
 static int vtkGeoProjectionNumProj = -1;
@@ -305,3 +306,4 @@ void vtkGeoProjection::ClearOptionalParameters()
   this->Internals->OptionalParameters.clear();
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Geovis/Core/vtkGeoProjection.h b/Geovis/Core/vtkGeoProjection.h
index 5039ff738d0950eea1bbab4c510f2e1128ee9b0a..3211ce9d6d18088bc236ed21fb6ba7a7b26a3f9e 100644
--- a/Geovis/Core/vtkGeoProjection.h
+++ b/Geovis/Core/vtkGeoProjection.h
@@ -36,6 +36,8 @@ struct PJconsts;
 typedef struct PJconsts PJ;
 typedef PJ* projPJ;
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKGEOVISCORE_EXPORT vtkGeoProjection : public vtkObject
 {
 public:
@@ -173,4 +175,5 @@ private:
   vtkInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkGeoProjection_h
diff --git a/Geovis/Core/vtkGeoTransform.cxx b/Geovis/Core/vtkGeoTransform.cxx
index ba9d505f07820b7e1de6cdc5325cdda6420ad9e9..7ecb370490edb925a42e06d032172564f3841771 100644
--- a/Geovis/Core/vtkGeoTransform.cxx
+++ b/Geovis/Core/vtkGeoTransform.cxx
@@ -29,6 +29,7 @@
 #include "vtk_libproj.h"
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGeoTransform);
 vtkCxxSetObjectMacro(vtkGeoTransform, SourceProjection, vtkGeoProjection);
 vtkCxxSetObjectMacro(vtkGeoTransform, DestinationProjection, vtkGeoProjection);
@@ -288,3 +289,4 @@ int vtkGeoTransform::ComputeUTMZone(double lon, double lat)
   }
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Geovis/Core/vtkGeoTransform.h b/Geovis/Core/vtkGeoTransform.h
index 487a6e2237ff4ea54121b0318981cd9505ead8a8..aec0701588b3a4f58134e8b9889fefaab0d2eabc 100644
--- a/Geovis/Core/vtkGeoTransform.h
+++ b/Geovis/Core/vtkGeoTransform.h
@@ -31,6 +31,7 @@
 #include "vtkAbstractTransform.h"
 #include "vtkGeovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGeoProjection;
 
 class VTKGEOVISCORE_EXPORT vtkGeoTransform : public vtkAbstractTransform
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkGeoTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkGeoTransform_h
diff --git a/Geovis/GDAL/vtkGDALRasterConverter.cxx b/Geovis/GDAL/vtkGDALRasterConverter.cxx
index 7f0dc432a0d826c9ae83b27000aa26939956ee0a..ef0841493ed4502ca04b2070679969f17ff79f50 100644
--- a/Geovis/GDAL/vtkGDALRasterConverter.cxx
+++ b/Geovis/GDAL/vtkGDALRasterConverter.cxx
@@ -42,6 +42,7 @@
 // applied when converting between formats.
 #define INVERT_ROWS 0
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGDALRasterConverter);
 
 //------------------------------------------------------------------------------
@@ -636,3 +637,4 @@ bool vtkGDALRasterConverter::FindDataRange(
 
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Geovis/GDAL/vtkGDALRasterConverter.h b/Geovis/GDAL/vtkGDALRasterConverter.h
index 107e22ca2e01618f5fd03e40fa905a117efe4d3b..74c3a071f795d7a3445d8e5938434d84c513babd 100644
--- a/Geovis/GDAL/vtkGDALRasterConverter.h
+++ b/Geovis/GDAL/vtkGDALRasterConverter.h
@@ -28,8 +28,11 @@
 #include "vtkGeovisGDALModule.h" // For export macro
 #include "vtkObject.h"
 
-// Forward declarations
+// GDAL Forward declarations
 class GDALDataset;
+
+VTK_ABI_NAMESPACE_BEGIN
+// VTK Forward declarations
 class vtkImageData;
 class vtkUniformGrid;
 
@@ -124,4 +127,5 @@ private:
   void operator=(const vtkGDALRasterConverter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkGDALRasterConverter_h
diff --git a/Geovis/GDAL/vtkGDALRasterReprojection.cxx b/Geovis/GDAL/vtkGDALRasterReprojection.cxx
index 783e97807a71d4724494384f8351e80e6a0171d2..3959a23817a82f478e8e71ffc44d1c94b4432699 100644
--- a/Geovis/GDAL/vtkGDALRasterReprojection.cxx
+++ b/Geovis/GDAL/vtkGDALRasterReprojection.cxx
@@ -23,6 +23,7 @@
 #include <gdalwarper.h>
 #include <ogr_spatialref.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGDALRasterReprojection);
 //------------------------------------------------------------------------------
 vtkGDALRasterReprojection::vtkGDALRasterReprojection()
@@ -159,3 +160,4 @@ bool vtkGDALRasterReprojection::Reproject(GDALDataset* input, GDALDataset* outpu
 
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Geovis/GDAL/vtkGDALRasterReprojection.h b/Geovis/GDAL/vtkGDALRasterReprojection.h
index 7400a8728aff4138163fd68f624d5f4e9881238e..223a1a7f9fed6343d7021e6f8c0eb8a9f64e86aa 100644
--- a/Geovis/GDAL/vtkGDALRasterReprojection.h
+++ b/Geovis/GDAL/vtkGDALRasterReprojection.h
@@ -26,6 +26,8 @@
 
 class GDALDataset;
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKGEOVISGDAL_EXPORT vtkGDALRasterReprojection : public vtkObject
 {
 public:
@@ -87,4 +89,5 @@ private:
   void operator=(const vtkGDALRasterReprojection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkGDALRasterReprojection_h
diff --git a/Geovis/GDAL/vtkRasterReprojectionFilter.cxx b/Geovis/GDAL/vtkRasterReprojectionFilter.cxx
index 907c17ae530e2e6bf34e631057854dc66e1ae18d..b99faa1d40e9ba1e4ac5b2dc707003cf4ae84a2e 100644
--- a/Geovis/GDAL/vtkRasterReprojectionFilter.cxx
+++ b/Geovis/GDAL/vtkRasterReprojectionFilter.cxx
@@ -37,6 +37,7 @@
 // STL includes
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRasterReprojectionFilter);
 
 //------------------------------------------------------------------------------
@@ -367,3 +368,4 @@ int vtkRasterReprojectionFilter::FillOutputPortInformation(int port, vtkInformat
     return VTK_ERROR;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Geovis/GDAL/vtkRasterReprojectionFilter.h b/Geovis/GDAL/vtkRasterReprojectionFilter.h
index cb78ffa490045cec74c587e177f2987bc35991ca..a8813b2fe40414a3f30c2769a36b2dbd52796b75 100644
--- a/Geovis/GDAL/vtkRasterReprojectionFilter.h
+++ b/Geovis/GDAL/vtkRasterReprojectionFilter.h
@@ -26,6 +26,7 @@
 #include "vtkGeovisGDALModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKGEOVISGDAL_EXPORT vtkRasterReprojectionFilter : public vtkImageAlgorithm
 {
 public:
@@ -132,4 +133,5 @@ private:
   void operator=(const vtkRasterReprojectionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkRasterReprojectionFilter_h
diff --git a/IO/ADIOS2/Core/vtkADIOS2CoreArraySelection.cxx b/IO/ADIOS2/Core/vtkADIOS2CoreArraySelection.cxx
index 1777552177c0c764a384d27725d7294b5050971f..dfb8e6dce83b083f135fa2dbfa39c0675a2f1442 100644
--- a/IO/ADIOS2/Core/vtkADIOS2CoreArraySelection.cxx
+++ b/IO/ADIOS2/Core/vtkADIOS2CoreArraySelection.cxx
@@ -17,6 +17,7 @@
 #include <iostream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkADIOS2ArraySelection::AddArray(const char* name, bool status)
 {
   (*this)[name] = status;
@@ -74,3 +75,4 @@ int vtkADIOS2ArraySelection::GetNumberOfArrays()
 {
   return static_cast<int>(this->size());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ADIOS2/Core/vtkADIOS2CoreArraySelection.h b/IO/ADIOS2/Core/vtkADIOS2CoreArraySelection.h
index 0a9d1f995787cfad52df673833dc4f568207069e..0b635cd3b949a4890d598e1b2df353890fd0bee9 100644
--- a/IO/ADIOS2/Core/vtkADIOS2CoreArraySelection.h
+++ b/IO/ADIOS2/Core/vtkADIOS2CoreArraySelection.h
@@ -36,6 +36,7 @@
 #pragma warning(push)           // save
 #pragma warning(disable : 4251) // needs to have dll-interface to be used by clients of class
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOADIOS2_EXPORT vtkADIOS2ArraySelection : public std::map<std::string, bool>
 {
 public:
@@ -76,5 +77,6 @@ public:
 #pragma warning(pop) // restore
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif //# vtkADIOS2CoreArraySelection_h
 // VTK-HeaderTest-Exclude: vtkADIOS2CoreArraySelection.h
diff --git a/IO/ADIOS2/Core/vtkADIOS2CoreTypeTraits.h b/IO/ADIOS2/Core/vtkADIOS2CoreTypeTraits.h
index 8f8dfbeaa3560a3fb5997f29539187cd43391e8b..ef2425f0ecd6176135dce4508ccfcc93cdc8c368 100644
--- a/IO/ADIOS2/Core/vtkADIOS2CoreTypeTraits.h
+++ b/IO/ADIOS2/Core/vtkADIOS2CoreTypeTraits.h
@@ -23,6 +23,7 @@
 
 #include "vtkIOADIOS2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 struct NativeToVTKType
 {
@@ -95,5 +96,6 @@ struct NativeToVTKType<uint64_t>
   static constexpr int VTKType = VTK_TYPE_UINT64;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkADIOS2CoreTypeTraits.h
diff --git a/IO/ADIOS2/VTX/VTXSchemaManager.cxx b/IO/ADIOS2/VTX/VTXSchemaManager.cxx
index 215678078b1b4da7d9ffa02afd25fa95b2f8f906..afafa7a720bbac6210b07a21a65d81bf14795c87 100644
--- a/IO/ADIOS2/VTX/VTXSchemaManager.cxx
+++ b/IO/ADIOS2/VTX/VTXSchemaManager.cxx
@@ -32,6 +32,7 @@
 
 namespace vtx
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // PUBLIC
 void VTXSchemaManager::Update(
@@ -160,4 +161,5 @@ bool VTXSchemaManager::InitReaderXMLVTK()
   return success;
 }
 
-} // end var namespace
+VTK_ABI_NAMESPACE_END
+} // end vtx namespace
diff --git a/IO/ADIOS2/VTX/VTXSchemaManager.h b/IO/ADIOS2/VTX/VTXSchemaManager.h
index 2f5cd150aa5106c84f01a20c9850ffd42c42ed46..f27cd48e21c8477f8659ebe37b1df1075fccea95 100644
--- a/IO/ADIOS2/VTX/VTXSchemaManager.h
+++ b/IO/ADIOS2/VTX/VTXSchemaManager.h
@@ -35,6 +35,7 @@
 
 namespace vtx
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 class VTXSchemaManager
 {
@@ -92,6 +93,7 @@ private:
   bool InitReaderXMLVTK();
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace adios2vtk
 
 #endif /* VTK_IO_ADIOS2_VTX_VTXSchemaManager_h */
diff --git a/IO/ADIOS2/VTX/common/VTXDataArray.cxx b/IO/ADIOS2/VTX/common/VTXDataArray.cxx
index 5d15c0c479c530b4afb2a5edfc672395623e1170..9d0faacdaa5694bb4d9834891ca6b126eb7b72c3 100644
--- a/IO/ADIOS2/VTX/common/VTXDataArray.cxx
+++ b/IO/ADIOS2/VTX/common/VTXDataArray.cxx
@@ -30,6 +30,7 @@ namespace vtx
 {
 namespace types
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 bool DataArray::IsScalar() const noexcept
 {
@@ -111,5 +112,6 @@ void DataArray::ConvertTo3DVTK(const std::vector<double>& fillValues)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace types
 } // end namespace vtx
diff --git a/IO/ADIOS2/VTX/common/VTXDataArray.h b/IO/ADIOS2/VTX/common/VTXDataArray.h
index d7a36916b1c35fa71c865502de8bb631d0d5e1d4..ed45698d7a3d5bd05a5996fc1d9c5c42f1bfb0d6 100644
--- a/IO/ADIOS2/VTX/common/VTXDataArray.h
+++ b/IO/ADIOS2/VTX/common/VTXDataArray.h
@@ -35,6 +35,7 @@ namespace vtx
 {
 namespace types
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 class DataArray
 {
@@ -88,6 +89,7 @@ public:
   void ConvertTo3DVTK(const std::vector<double>& fillValues = std::vector<double>());
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace types
 } // end namespace vtx
 
diff --git a/IO/ADIOS2/VTX/common/VTXHelper.cxx b/IO/ADIOS2/VTX/common/VTXHelper.cxx
index 0a4b8e4683302777e340c5f31608c7248257221a..82108d2de7b444d149b2b982c37ca00e293bc60e 100644
--- a/IO/ADIOS2/VTX/common/VTXHelper.cxx
+++ b/IO/ADIOS2/VTX/common/VTXHelper.cxx
@@ -38,6 +38,7 @@ namespace vtx
 {
 namespace helper
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 MPI_Comm MPIGetComm()
 {
@@ -357,5 +358,6 @@ bool EndsWith(const std::string& input, const std::string& ends) noexcept
   return false;
 }
 
+VTK_ABI_NAMESPACE_END
 } // end helper namespace
 } // end adios2vtk namespace
diff --git a/IO/ADIOS2/VTX/common/VTXHelper.h b/IO/ADIOS2/VTX/common/VTXHelper.h
index 6d5dd82a7aedfc7b269a06be6305d1f907417b1e..a7ba9961cb19f295898406388dcb32a1d276267a 100644
--- a/IO/ADIOS2/VTX/common/VTXHelper.h
+++ b/IO/ADIOS2/VTX/common/VTXHelper.h
@@ -45,6 +45,7 @@ namespace vtx
 {
 namespace helper
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 /** Get current MPI global communicator from VTK */
 MPI_Comm MPIGetComm();
@@ -218,6 +219,7 @@ std::string GetEngineType(const std::string& fileName) noexcept;
  */
 bool EndsWith(const std::string& input, const std::string& ends) noexcept;
 
+VTK_ABI_NAMESPACE_END
 } // end namespace helper
 } // end namespace vtx
 
diff --git a/IO/ADIOS2/VTX/common/VTXHelper.inl b/IO/ADIOS2/VTX/common/VTXHelper.inl
index d19bb9cd4a0fb923b34af264a77903572ee008e3..40b2d45d0383fdc16c2c9094fcd29a34e9ed63f8 100644
--- a/IO/ADIOS2/VTX/common/VTXHelper.inl
+++ b/IO/ADIOS2/VTX/common/VTXHelper.inl
@@ -31,6 +31,7 @@ namespace vtx
 {
 namespace helper
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template<class T>
 std::vector<T> StringToVector(const std::string& input) noexcept
@@ -75,6 +76,7 @@ void Print(const std::vector<T>& input, const std::string& name)
   std::cout << oss.str() << "\n";
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace helper
 } // end namespace vtx
 
diff --git a/IO/ADIOS2/VTX/common/VTXHelper.txx b/IO/ADIOS2/VTX/common/VTXHelper.txx
index a9a81cb59a75ed5aba6a7df4e06bab055c3ae58b..c3c87192cae0b16d9bbdf8711d12f9613b82eb3d 100644
--- a/IO/ADIOS2/VTX/common/VTXHelper.txx
+++ b/IO/ADIOS2/VTX/common/VTXHelper.txx
@@ -38,6 +38,7 @@ namespace vtx
 {
 namespace helper
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // TODO: extend other types
 template <>
@@ -88,6 +89,7 @@ vtkSmartPointer<vtkDataArray> NewDataArray<double>()
   return vtkSmartPointer<vtkDoubleArray>::New();
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace helper
 } // end namespace vtx
 
diff --git a/IO/ADIOS2/VTX/common/VTXTypes.h b/IO/ADIOS2/VTX/common/VTXTypes.h
index aa60e675cdbe8e99f153062d11c24d5c9a50e1b8..a249798b8de9b17cea4f4c81aece886037c0b14a 100644
--- a/IO/ADIOS2/VTX/common/VTXTypes.h
+++ b/IO/ADIOS2/VTX/common/VTXTypes.h
@@ -34,6 +34,7 @@ namespace vtx
 {
 namespace types
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 /** key: variable name, value: DataArray */
 using DataSet = std::map<std::string, DataArray>;
@@ -61,6 +62,7 @@ using Piece = std::map<DataSetType, DataSet>;
   MACRO(float)                                                                                     \
   MACRO(double)
 
+VTK_ABI_NAMESPACE_END
 } // end namespace types
 } // end namespace vtx
 
diff --git a/IO/ADIOS2/VTX/schema/VTXSchema.cxx b/IO/ADIOS2/VTX/schema/VTXSchema.cxx
index 823b87856374bca90158722106ad70f8933311ab..cb9b5f27434993897759df292009e27c23bfb038 100644
--- a/IO/ADIOS2/VTX/schema/VTXSchema.cxx
+++ b/IO/ADIOS2/VTX/schema/VTXSchema.cxx
@@ -27,6 +27,7 @@
 
 namespace vtx
 {
+VTK_ABI_NAMESPACE_BEGIN
 // PUBLIC
 VTXSchema::VTXSchema(
   const std::string& type, const std::string& schema, adios2::IO& io, adios2::Engine& engine)
@@ -107,4 +108,5 @@ void VTXSchema::GetDataArray(
 VTK_IO_ADIOS2_VTX_ARRAY_TYPE(declare_type)
 #undef declare_type
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtx
diff --git a/IO/ADIOS2/VTX/schema/VTXSchema.h b/IO/ADIOS2/VTX/schema/VTXSchema.h
index 8dd77432d226211d75b10079d3109936eaa3a3fe..894d123434e0b0ed0843109a1776724b4f0ed927 100644
--- a/IO/ADIOS2/VTX/schema/VTXSchema.h
+++ b/IO/ADIOS2/VTX/schema/VTXSchema.h
@@ -36,6 +36,7 @@
 
 namespace vtx
 {
+VTK_ABI_NAMESPACE_BEGIN
 /**
  * Abstract common class to supported ADIOS2 schemas
  */
@@ -126,6 +127,7 @@ private:
     types::DataArray& dataArray);
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtx
 
 #endif /* VTK_IO_ADIOS2_VTX_SCHEMA_VTXSchema_h */
diff --git a/IO/ADIOS2/VTX/schema/VTXSchema.txx b/IO/ADIOS2/VTX/schema/VTXSchema.txx
index 1490e6fe183923bc8106a9f8138c2f5005905f84..5340fe5370fb6a0403bf4db91f4e1c1330c0ae61 100644
--- a/IO/ADIOS2/VTX/schema/VTXSchema.txx
+++ b/IO/ADIOS2/VTX/schema/VTXSchema.txx
@@ -31,6 +31,7 @@
 
 namespace vtx
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <class T>
 void VTXSchema::GetDataArrayCommon(
@@ -167,6 +168,7 @@ void VTXSchema::GetTimesCommon(const std::string& variableName)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace vtx
 
 #endif /* VTK_IO_ADIOS2_SCHEMA_VTXSchema_tcc */
diff --git a/IO/ADIOS2/VTX/schema/vtk/VTXvtkBase.cxx b/IO/ADIOS2/VTX/schema/vtk/VTXvtkBase.cxx
index a3311e9ca8017f489ae6d0e63f35d386c2549ccd..ab9882d11e0746f1c5074ca8e35f35a84aec71c6 100644
--- a/IO/ADIOS2/VTX/schema/vtk/VTXvtkBase.cxx
+++ b/IO/ADIOS2/VTX/schema/vtk/VTXvtkBase.cxx
@@ -28,6 +28,7 @@ namespace vtx
 {
 namespace schema
 {
+VTK_ABI_NAMESPACE_BEGIN
 const std::set<std::string> VTXvtkBase::TIMENames = { "TIME", "CYCLE" };
 const std::set<std::string> VTXvtkBase::SpecialNames = { "TIME", "CYCLE", "connectivity", "types",
   "vertices" };
@@ -96,5 +97,6 @@ std::string VTXvtkBase::DataSetType(const types::DataSetType type) const noexcep
   return VTXvtkBase::DataSetTypes.at(type);
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace schema
 } // end namespace adios2vtk
diff --git a/IO/ADIOS2/VTX/schema/vtk/VTXvtkBase.h b/IO/ADIOS2/VTX/schema/vtk/VTXvtkBase.h
index d046dd63d1165a55d5a8c1bf196b3649bc61c209..c7cb3409ca4dd664b5e0cfc0e291ef0d0b36f222 100644
--- a/IO/ADIOS2/VTX/schema/vtk/VTXvtkBase.h
+++ b/IO/ADIOS2/VTX/schema/vtk/VTXvtkBase.h
@@ -38,6 +38,7 @@ namespace vtx
 {
 namespace schema
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 class VTXvtkBase : public VTXSchema
 {
@@ -66,6 +67,7 @@ protected:
   std::string DataSetType(const types::DataSetType type) const noexcept;
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace schema
 } // end namespace vtx
 
diff --git a/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTI.cxx b/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTI.cxx
index 62e63213b438f4aa88a6cf73ea5e31b5800e4e33..c734bc6f7496ffef43fc3a431e80f6a3d05e34af 100644
--- a/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTI.cxx
+++ b/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTI.cxx
@@ -41,6 +41,7 @@ namespace vtx
 {
 namespace schema
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 VTXvtkVTI::VTXvtkVTI(const std::string& schema, adios2::IO& io, adios2::Engine& engine)
   : VTXvtkBase("vti", schema, io, engine)
@@ -257,5 +258,6 @@ adios2::Box<adios2::Dims> VTXvtkVTI::GetSelection(const types::DataSetType type)
 VTK_IO_ADIOS2_VTX_ARRAY_TYPE(declare_type)
 #undef declare_type
 
+VTK_ABI_NAMESPACE_END
 } // end namespace schema
 } // end namespace vtx
diff --git a/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTI.h b/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTI.h
index fcb97e647f67e29786de1a4ad8e345a3ae04b65a..c38da3c703460d5fc08df1e0de5ae412724ade7a 100644
--- a/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTI.h
+++ b/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTI.h
@@ -37,6 +37,7 @@ namespace vtx
 {
 namespace schema
 {
+VTK_ABI_NAMESPACE_BEGIN
 class VTXvtkVTI : public VTXvtkBase
 {
 public:
@@ -68,6 +69,7 @@ private:
     adios2::Variable<T> variable, const types::DataArray& dataArray, const size_t step);
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace schema
 } // end namespace vtx
 
diff --git a/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTI.txx b/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTI.txx
index 8016c4d1556c8c1bb7ee85c946274e079fc4b4ae..1e23f438491b3c8e62ade6b8ac766816040c74bf 100644
--- a/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTI.txx
+++ b/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTI.txx
@@ -31,6 +31,7 @@ namespace vtx
 {
 namespace schema
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <class T>
 void VTXvtkVTI::SetDimensionsCommon(
@@ -49,6 +50,7 @@ void VTXvtkVTI::SetDimensionsCommon(
   }
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace schema
 } // end namespace vtx
 
diff --git a/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTU.cxx b/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTU.cxx
index 577a6a719a67fca1bccdd147fdc7564a5637cae9..fb7d0dc22c9064cd9a7eac8a6ecce650c5062bef 100644
--- a/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTU.cxx
+++ b/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTU.cxx
@@ -40,6 +40,7 @@ namespace vtx
 {
 namespace schema
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 VTXvtkVTU::VTXvtkVTU(const std::string& schema, adios2::IO& io, adios2::Engine& engine)
   : VTXvtkBase("vtu", schema, io, engine)
@@ -261,5 +262,6 @@ void VTXvtkVTU::Init()
 VTK_IO_ADIOS2_VTX_ARRAY_TYPE(declare_type)
 #undef declare_type
 
+VTK_ABI_NAMESPACE_END
 } // end namespace schema
 } // end namespace vtx
diff --git a/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTU.h b/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTU.h
index 81524d6bcbcb5c98c2feec82d2a4acc7f3e4cd4a..f818772d6d54b81911c2513bd614d0fd1a18eb97 100644
--- a/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTU.h
+++ b/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTU.h
@@ -37,6 +37,7 @@ namespace vtx
 {
 namespace schema
 {
+VTK_ABI_NAMESPACE_BEGIN
 class VTXvtkVTU : public VTXvtkBase
 {
 public:
@@ -66,6 +67,7 @@ private:
     adios2::Variable<T> variable, types::DataArray& dataArray, const size_t step);
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace schema
 } // end namespace vtx
 
diff --git a/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTU.txx b/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTU.txx
index 21282b72b9ad6af735877e52dccfeed221d36499..fbe651fee7c9e385255eaa6953c090a5503c52db 100644
--- a/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTU.txx
+++ b/IO/ADIOS2/VTX/schema/vtk/VTXvtkVTU.txx
@@ -31,6 +31,7 @@ namespace vtx
 {
 namespace schema
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <class T>
 void VTXvtkVTU::SetBlocksCommon(
@@ -59,6 +60,7 @@ void VTXvtkVTU::SetBlocksCommon(
   }
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace schema
 } // end namespace vtx
 
diff --git a/IO/ADIOS2/vtkADIOS2CoreImageReader.cxx b/IO/ADIOS2/vtkADIOS2CoreImageReader.cxx
index d5cf6c4e28f5cfafe6ac340c3b8b286fec8cb1f7..5d58905a881a9ab7314ec589af4328a791b0765f 100644
--- a/IO/ADIOS2/vtkADIOS2CoreImageReader.cxx
+++ b/IO/ADIOS2/vtkADIOS2CoreImageReader.cxx
@@ -71,12 +71,14 @@
 // Helper functions
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 bool StringEndsWith(const std::string& a, const std::string& b)
 {
   return a.size() >= b.size() && a.compare(a.size() - b.size(), b.size(), b) == 0;
 }
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkADIOS2CoreImageReader);
+VTK_ABI_NAMESPACE_END
 namespace
 {
 inline std::vector<int> parseDimensions(const std::string& dimsStr)
@@ -91,6 +93,7 @@ inline std::vector<int> parseDimensions(const std::string& dimsStr)
   return dims;
 }
 }
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 struct vtkADIOS2CoreImageReader::vtkADIOS2CoreImageReaderImpl
@@ -1040,3 +1043,4 @@ void vtkADIOS2CoreImageReader::GatherTimeStepsFromADIOSTimeArray()
     vtkErrorMacro("Fail to gather time steps from time array " << this->TimeStepArray << ex.what());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ADIOS2/vtkADIOS2CoreImageReader.h b/IO/ADIOS2/vtkADIOS2CoreImageReader.h
index 5c19149746c26a6f1b4be54bfcc47da83721d67b..221aa905f6641b2ae35c94b672c850084d2a5f6f 100644
--- a/IO/ADIOS2/vtkADIOS2CoreImageReader.h
+++ b/IO/ADIOS2/vtkADIOS2CoreImageReader.h
@@ -41,6 +41,7 @@
 
 #include "vtkIOADIOS2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkDataArray;
 class vtkDataObject;
@@ -271,4 +272,5 @@ private:
   vtkADIOS2CoreImageReader(const vtkADIOS2CoreImageReader&) = delete;
   void operator=(const vtkADIOS2CoreImageReader&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ADIOS2/vtkADIOS2VTXReader.cxx b/IO/ADIOS2/vtkADIOS2VTXReader.cxx
index e92d5d77e9c6263f9d34d96ff16795e2026a2d04..734136080e72527b962f4e1ccc8440cfea69ec22 100644
--- a/IO/ADIOS2/vtkADIOS2VTXReader.cxx
+++ b/IO/ADIOS2/vtkADIOS2VTXReader.cxx
@@ -32,6 +32,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkADIOS2VTXReader);
 
 vtkADIOS2VTXReader::vtkADIOS2VTXReader()
@@ -94,3 +95,4 @@ void vtkADIOS2VTXReader::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "File Name: " << (this->FileName ? this->FileName : "(none)") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ADIOS2/vtkADIOS2VTXReader.h b/IO/ADIOS2/vtkADIOS2VTXReader.h
index 7fd4024e7b867e68a7cc41ed434aae4fc995fbdb..855326d11a16fbbd120826002688eb63d10e7b9d 100644
--- a/IO/ADIOS2/vtkADIOS2VTXReader.h
+++ b/IO/ADIOS2/vtkADIOS2VTXReader.h
@@ -34,9 +34,13 @@
 // forward declaring to keep it private
 namespace vtx
 {
+VTK_ABI_NAMESPACE_BEGIN
 class VTXSchemaManager;
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkIndent;
 class vtkInformation;
 class vtkInformationvector;
@@ -70,4 +74,5 @@ private:
   std::unique_ptr<vtx::VTXSchemaManager> SchemaManager;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkADIOS2VTXReader_h */
diff --git a/IO/AMR/vtkAMRBaseParticlesReader.cxx b/IO/AMR/vtkAMRBaseParticlesReader.cxx
index 4da31e12027b483dd8ae8ae38528fa33c82b6162..2ef2fe62d3f7985aa8702cc8fd6bba8d51375bd7 100644
--- a/IO/AMR/vtkAMRBaseParticlesReader.cxx
+++ b/IO/AMR/vtkAMRBaseParticlesReader.cxx
@@ -24,6 +24,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkAMRBaseParticlesReader, Controller, vtkMultiProcessController);
 
 vtkAMRBaseParticlesReader::vtkAMRBaseParticlesReader()
@@ -257,3 +258,4 @@ int vtkAMRBaseParticlesReader::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMRBaseParticlesReader.h b/IO/AMR/vtkAMRBaseParticlesReader.h
index e3adefac6ca3d98b08fb374c220c185a4abcc9dd..a0a18ad82f20bc3dd14b9102c1f2019f62630087 100644
--- a/IO/AMR/vtkAMRBaseParticlesReader.h
+++ b/IO/AMR/vtkAMRBaseParticlesReader.h
@@ -24,6 +24,7 @@
 #include "vtkIOAMRModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 class vtkIndent;
@@ -229,4 +230,5 @@ private:
   void operator=(const vtkAMRBaseParticlesReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMRBaseParticlesReader_h */
diff --git a/IO/AMR/vtkAMRBaseReader.cxx b/IO/AMR/vtkAMRBaseReader.cxx
index d7fbe5e64b78ba154d7c7f7be2606dc0c6f2e9a7..1df69aabc05b56509f07fe3b615951cddf8df6c0 100644
--- a/IO/AMR/vtkAMRBaseReader.cxx
+++ b/IO/AMR/vtkAMRBaseReader.cxx
@@ -35,6 +35,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkAMRBaseReader, Controller, vtkMultiProcessController);
 
 vtkAMRBaseReader::vtkAMRBaseReader()
@@ -635,3 +636,4 @@ int vtkAMRBaseReader::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMRBaseReader.h b/IO/AMR/vtkAMRBaseReader.h
index 1ebbb6e3670d28e16f5151ed41fa3747936177a0..85a08b8018dfc6af2bfede48c9a1b5eb94d5d79f 100644
--- a/IO/AMR/vtkAMRBaseReader.h
+++ b/IO/AMR/vtkAMRBaseReader.h
@@ -27,6 +27,7 @@
 #include <vector>  // STL vector header
 
 // Forward Declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOverlappingAMR;
 class vtkMultiProcessController;
 class vtkDataArraySelection;
@@ -298,4 +299,5 @@ private:
   void operator=(const vtkAMRBaseReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMRBaseReader_h */
diff --git a/IO/AMR/vtkAMRDataSetCache.cxx b/IO/AMR/vtkAMRDataSetCache.cxx
index fa97bb517228439b5ab8c93f7e61a88ba2b77c29..3faf047f7f5418b7007b40fe98d3d95c3066622e 100644
--- a/IO/AMR/vtkAMRDataSetCache.cxx
+++ b/IO/AMR/vtkAMRDataSetCache.cxx
@@ -22,6 +22,7 @@
 #include "vtkUniformGrid.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMRDataSetCache);
 
 vtkAMRDataSetCache::vtkAMRDataSetCache() = default;
@@ -215,3 +216,4 @@ bool vtkAMRDataSetCache::HasAMRBlock(int compositeIdx)
   vtkTimerLog::MarkEndEvent("AMRCache::CheckIfBlockExists");
   return false;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMRDataSetCache.h b/IO/AMR/vtkAMRDataSetCache.h
index f9a03337b8520760a4f0812aa54dbe576b6b4633..56bf475b79aadeef6de6571aaf571d202836789e 100644
--- a/IO/AMR/vtkAMRDataSetCache.h
+++ b/IO/AMR/vtkAMRDataSetCache.h
@@ -29,6 +29,7 @@
 #include "vtkObject.h"
 #include <map> // For STL map used as the data-structure for the cache.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUniformGrid;
 class vtkDataArray;
 
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkAMRDataSetCache&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMRDataSetCache_h */
diff --git a/IO/AMR/vtkAMREnzoParticlesReader.cxx b/IO/AMR/vtkAMREnzoParticlesReader.cxx
index f7a08544189696f1575dbe1f3c6ec24dd35cf725..0bfdfec6082f2f8b0e1e30cd202a410cdfe673a6 100644
--- a/IO/AMR/vtkAMREnzoParticlesReader.cxx
+++ b/IO/AMR/vtkAMREnzoParticlesReader.cxx
@@ -39,6 +39,7 @@
 // Description:
 // Finds the block index (blockIndx) within the HDF5 file associated with
 // the given file index.
+VTK_ABI_NAMESPACE_BEGIN
 static bool FindBlockIndex(hid_t fileIndx, const int blockIdx, hid_t& rootIndx)
 {
   // retrieve the contents of the root directory to look for a group
@@ -399,3 +400,4 @@ vtkPolyData* vtkAMREnzoParticlesReader::ReadParticles(const int blkidx)
   vtkPolyData* particles = this->GetParticles(pfile.c_str(), blkidx);
   return (particles);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMREnzoParticlesReader.h b/IO/AMR/vtkAMREnzoParticlesReader.h
index fbb993ae5193f62cabc2ab53ad906a1fcd8ca7ba..6b9e857381baffb0a88473d02cb17f53ddccb550 100644
--- a/IO/AMR/vtkAMREnzoParticlesReader.h
+++ b/IO/AMR/vtkAMREnzoParticlesReader.h
@@ -29,6 +29,7 @@
 #include "vtkAMRBaseParticlesReader.h"
 #include "vtkIOAMRModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkDataArray;
 class vtkIntArray;
@@ -99,4 +100,5 @@ private:
   void operator=(const vtkAMREnzoParticlesReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMREnzoParticlesReader_h */
diff --git a/IO/AMR/vtkAMREnzoReader.cxx b/IO/AMR/vtkAMREnzoReader.cxx
index 35ff7cb4b2a0e869ede5dcee1c100bc63ec67eee..bab74cdd0b8762d1ea3e4ef1c597206ce160c2fa 100644
--- a/IO/AMR/vtkAMREnzoReader.cxx
+++ b/IO/AMR/vtkAMREnzoReader.cxx
@@ -47,11 +47,14 @@
 
 #include "vtkAMREnzoReaderInternal.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMREnzoReader);
 
+VTK_ABI_NAMESPACE_END
 #include "vtkAMRInformation.h"
 #include <limits>
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkAMREnzoReader::ComputeStats(
   vtkEnzoReaderInternal* internal, std::vector<int>& numBlocks, double min[3])
 {
@@ -458,3 +461,4 @@ void vtkAMREnzoReader::SetUpDataArraySelections()
     this->CellDataArraySelection->AddArray(this->Internal->BlockAttributeNames[i].c_str());
   } // END for all attributes
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMREnzoReader.h b/IO/AMR/vtkAMREnzoReader.h
index aa0806473e5e22c0284b5daa48ebd3018e4d69f7..8698f81b67552dcc3e6e1482a20476d0edf74d33 100644
--- a/IO/AMR/vtkAMREnzoReader.h
+++ b/IO/AMR/vtkAMREnzoReader.h
@@ -29,6 +29,7 @@
 #include <map>    // For STL map
 #include <string> // For std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOverlappingAMR;
 class vtkEnzoReaderInternal;
 
@@ -153,4 +154,5 @@ private:
   std::map<int, double> conversionFactors;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMREnzoReader_h */
diff --git a/IO/AMR/vtkAMREnzoReaderInternal.cxx b/IO/AMR/vtkAMREnzoReaderInternal.cxx
index bf93b274df483da1065f8f7c49e78bb15f529459..64c1413e99166fd44231c7fdfe65eb3a67868117 100644
--- a/IO/AMR/vtkAMREnzoReaderInternal.cxx
+++ b/IO/AMR/vtkAMREnzoReaderInternal.cxx
@@ -38,6 +38,7 @@
 //                       Functions for Parsing File Names
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 static std::string GetEnzoMajorFileName(const std::string& path)
 {
   return vtksys::SystemTools::GetFilenameName(path);
@@ -1120,3 +1121,4 @@ void vtkEnzoReaderInternal::ReadMetaData()
   // verify the initial set of attribute names
   this->CheckAttributeNames();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMREnzoReaderInternal.h b/IO/AMR/vtkAMREnzoReaderInternal.h
index b52112974cdeb9ddb0c9af0c2e43ddf843b4721c..2919533d18cf532f89611d81c66073fab8b70f56 100644
--- a/IO/AMR/vtkAMREnzoReaderInternal.h
+++ b/IO/AMR/vtkAMREnzoReaderInternal.h
@@ -25,12 +25,15 @@
 #ifndef vtkAMREnzoReaderInternal_h
 #define vtkAMREnzoReaderInternal_h
 
+#include "vtkABINamespace.h"
+
 #include "vtksys/SystemTools.hxx"
 
 #include <cassert> // for assert()
 #include <string>  // for STL string
 #include <vector>  // for STL vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkDataSet;
 
@@ -153,5 +156,6 @@ public:
 //                     Class  vtkEnzoReaderInternal ( end )
 // ----------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMREnzoReaderInternal_h */
 // VTK-HeaderTest-Exclude: vtkAMREnzoReaderInternal.h
diff --git a/IO/AMR/vtkAMRFlashParticlesReader.cxx b/IO/AMR/vtkAMRFlashParticlesReader.cxx
index 8cc8839b187b8df5b81dc454445efb8bb8f51971..bc61e08a5a0486424cc7062f0c42f02d8b1fe514 100644
--- a/IO/AMR/vtkAMRFlashParticlesReader.cxx
+++ b/IO/AMR/vtkAMRFlashParticlesReader.cxx
@@ -35,6 +35,7 @@
 // Helper function that reads the particle coordinates
 // NOTE: it is assumed that H5DOpen has been called on the
 // internal file index this->FileIndex.
+VTK_ABI_NAMESPACE_BEGIN
 static void GetParticleCoordinates(hid_t& dataIdx, std::vector<double>& xcoords,
   std::vector<double>& ycoords, std::vector<double>& zcoords, vtkFlashReaderInternal* iReader,
   int NumParticles)
@@ -335,3 +336,4 @@ void vtkAMRFlashParticlesReader::SetupParticleDataSelections()
 
   this->InitializeParticleDataSelections();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMRFlashParticlesReader.h b/IO/AMR/vtkAMRFlashParticlesReader.h
index a8436c98b24e03fbacb8321f8f52b8a89c12350d..2b296d2bb66869b51494cd854b997269ed371aad 100644
--- a/IO/AMR/vtkAMRFlashParticlesReader.h
+++ b/IO/AMR/vtkAMRFlashParticlesReader.h
@@ -24,6 +24,7 @@
 #include "vtkAMRBaseParticlesReader.h"
 #include "vtkIOAMRModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIndent;
 class vtkPolyData;
 class vtkPointData;
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkAMRFlashParticlesReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMRFlashParticlesReader_h */
diff --git a/IO/AMR/vtkAMRFlashReader.cxx b/IO/AMR/vtkAMRFlashReader.cxx
index 88fef86d1c7fccb57ed067fd8ecca7a899b9a697..230ae1f2354a727fde237e8424468c3276635666 100644
--- a/IO/AMR/vtkAMRFlashReader.cxx
+++ b/IO/AMR/vtkAMRFlashReader.cxx
@@ -41,6 +41,7 @@
 
 #include "vtkAMRFlashReaderInternal.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMRFlashReader);
 
 //------------------------------------------------------------------------------
@@ -269,3 +270,4 @@ void vtkAMRFlashReader::SetUpDataArraySelections()
     this->CellDataArraySelection->AddArray(this->Internal->AttributeNames[i].c_str());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMRFlashReader.h b/IO/AMR/vtkAMRFlashReader.h
index d74eda8aa30a0d14df30fd9830c18b1f44150ff7..d46dbab4da4a1898ee756edeb33043c08410d9a0 100644
--- a/IO/AMR/vtkAMRFlashReader.h
+++ b/IO/AMR/vtkAMRFlashReader.h
@@ -24,6 +24,7 @@
 #include "vtkAMRBaseReader.h"
 #include "vtkIOAMRModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOverlappingAMR;
 class vtkFlashReaderInternal;
 
@@ -101,4 +102,5 @@ private:
   vtkFlashReaderInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMRFlashReader_h */
diff --git a/IO/AMR/vtkAMRFlashReaderInternal.cxx b/IO/AMR/vtkAMRFlashReaderInternal.cxx
index 03da7329a732f2f07cba86abeb2e02b9c9f91817..88f2d9bdc78316e3469d2e2f78d9a79d8dd42f33 100644
--- a/IO/AMR/vtkAMRFlashReaderInternal.cxx
+++ b/IO/AMR/vtkAMRFlashReaderInternal.cxx
@@ -17,6 +17,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkFlashReaderInternal::GetBlockAttribute(
   const char* attribute, int blockIdx, vtkDataSet* pDataSet)
 {
@@ -1469,3 +1470,4 @@ void vtkFlashReaderInternal::ReadParticleAttributesFLASH3()
   H5Sclose(pointSpaceId);
   H5Dclose(pointId);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMRFlashReaderInternal.h b/IO/AMR/vtkAMRFlashReaderInternal.h
index e412f8f55fe3fe9b71e62cfc7aad1a08bcf8f49e..e9ed9a5a4655dc4f5b7f1fd7274c2a6def37b9e6 100644
--- a/IO/AMR/vtkAMRFlashReaderInternal.h
+++ b/IO/AMR/vtkAMRFlashReaderInternal.h
@@ -50,6 +50,7 @@
 #define FLASH_READER_FLASH3_FFV8 8
 #define FLASH_READER_FLASH3_FFV9 9
 
+VTK_ABI_NAMESPACE_BEGIN
 typedef struct tagFlashReaderIntegerScalar
 {
   char Name[20]; // name  of the integer scalar
@@ -198,5 +199,6 @@ public:
 // ----------------------------------------------------------------------------
 //                     Class  vtkFlashReaderInternal ( end )
 // ----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMRFlashReaderInternal_h */
 // VTK-HeaderTest-Exclude: vtkAMRFlashReaderInternal.h
diff --git a/IO/AMR/vtkAMRVelodyneReader.cxx b/IO/AMR/vtkAMRVelodyneReader.cxx
index a3417b2cc20961b491b0548eebe8061173ce0931..1a818b55d8771330a927f2f9e9582d1b784857d5 100644
--- a/IO/AMR/vtkAMRVelodyneReader.cxx
+++ b/IO/AMR/vtkAMRVelodyneReader.cxx
@@ -34,6 +34,7 @@
 #include "vtk_hdf5.h"
 
 #include "vtkAMRVelodyneReaderInternal.h"
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMRVelodyneReader);
 
 //-------------------------------------------------------------------
@@ -352,3 +353,4 @@ vtkOverlappingAMR* vtkAMRVelodyneReader::GetOutput()
   amr->GenerateParentChildInformation();
   return amr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMRVelodyneReader.h b/IO/AMR/vtkAMRVelodyneReader.h
index fa1d115a40a882cf795087ecc2ded7e0b1062538..e7de7fe00ae798cef25506b2fcd3264894028a92 100644
--- a/IO/AMR/vtkAMRVelodyneReader.h
+++ b/IO/AMR/vtkAMRVelodyneReader.h
@@ -28,6 +28,7 @@
 #include <unordered_map>    // for std::unordered_map
 #include <vector>           // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 class vtkOverlappingAMR;
@@ -110,4 +111,5 @@ private:
   std::unordered_map<std::string, bool> LoadedHash;
   unsigned int currentIndex;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/AMR/vtkAMRVelodyneReaderInternal.cxx b/IO/AMR/vtkAMRVelodyneReaderInternal.cxx
index 70f0048a771199584469d0c462fec95cca3f7908..c9d1de3afb270577572652a7288e8f5338dd140d 100644
--- a/IO/AMR/vtkAMRVelodyneReaderInternal.cxx
+++ b/IO/AMR/vtkAMRVelodyneReaderInternal.cxx
@@ -12,6 +12,7 @@
 #define amrNode 1
 #define amrLeaf 2
 #define amrFullLeaf 3
+VTK_ABI_NAMESPACE_BEGIN
 vtkAMRVelodyneReaderInternal::vtkAMRVelodyneReaderInternal()
 {
   this->Init();
@@ -1038,3 +1039,4 @@ vtkDataArray* vtkAMRVelodyneReaderInternal::GetTypeAndArray(const int type, hid_
   }
   return dataArray;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMRVelodyneReaderInternal.h b/IO/AMR/vtkAMRVelodyneReaderInternal.h
index cb6f55c917a333d614a055d009b3a4fa3dd2c481..ef80b52c182bdf155e886e6026775f1a845dc79f 100644
--- a/IO/AMR/vtkAMRVelodyneReaderInternal.h
+++ b/IO/AMR/vtkAMRVelodyneReaderInternal.h
@@ -32,6 +32,7 @@
 #include <unordered_map>
 #include <vector>
 
+#include "vtkABINamespace.h"
 #include "vtkByteSwap.h"
 #include "vtkCellData.h"
 #include "vtkDataArray.h"
@@ -48,6 +49,7 @@
 //================================================================================
 //                          INTERNAL VELODYNE READER
 //================================================================================
+VTK_ABI_NAMESPACE_BEGIN
 
 class vtkAMRVelodyneReaderInternal
 {
@@ -98,5 +100,6 @@ private:
   std::unordered_map<std::string, int> typeMap;
   std::unordered_map<std::string, int> arrayMap;
 };
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkAMRVelodyneReaderInternal.h
diff --git a/IO/AMR/vtkAMReXGridReader.cxx b/IO/AMR/vtkAMReXGridReader.cxx
index c804768272464505fe6fcf1c047cd3a62f4dfd81..d4d6b0fec5e345030c0893ac34716e865f516753 100644
--- a/IO/AMR/vtkAMReXGridReader.cxx
+++ b/IO/AMR/vtkAMReXGridReader.cxx
@@ -41,6 +41,7 @@
 #include <iomanip>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMReXGridReader);
 //------------------------------------------------------------------------------
 vtkAMReXGridReader::vtkAMReXGridReader()
@@ -373,3 +374,4 @@ void vtkAMReXGridReader::SetUpDataArraySelections()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMReXGridReader.h b/IO/AMR/vtkAMReXGridReader.h
index 639060bb1f0840968f7d7eb0fe6cfb52320cf5b9..ba21e0bfce76c533ae0a16f51d44028a692a393d 100644
--- a/IO/AMR/vtkAMReXGridReader.h
+++ b/IO/AMR/vtkAMReXGridReader.h
@@ -29,6 +29,7 @@
 #include <string> // for std::string.
 #include <vector> // for std::vector.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOverlappingAMR;
 class vtkAMReXGridReaderInternal;
 
@@ -115,4 +116,5 @@ private:
   vtkAMReXGridReaderInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/AMR/vtkAMReXGridReaderInternal.cxx b/IO/AMR/vtkAMReXGridReaderInternal.cxx
index ae4a5a31ad48f4387f2b096cba86d515f4c3de49..6922a44799a30ac964e5b27c6c97990103a9775c 100644
--- a/IO/AMR/vtkAMReXGridReaderInternal.cxx
+++ b/IO/AMR/vtkAMReXGridReaderInternal.cxx
@@ -27,6 +27,7 @@
 #include <vector>
 #include <vtksys/FStream.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 std::string ReadFile(const std::string& filename)
@@ -1488,3 +1489,4 @@ void vtkAMReXGridReaderInternal::PermuteOrder(
       pout[outord[i]] = pin[inord[i]];
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMReXGridReaderInternal.h b/IO/AMR/vtkAMReXGridReaderInternal.h
index fb56b1b02a8eeaa4c62b66302c064ed54538f30c..5ddfd8e6920a77cca014481d76ef1af4e5cfb1d5 100644
--- a/IO/AMR/vtkAMReXGridReaderInternal.h
+++ b/IO/AMR/vtkAMReXGridReaderInternal.h
@@ -30,6 +30,7 @@
 #include "vtkDataSet.h"
 #include "vtkSOADataArrayTemplate.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIndent;
 
 //==============================================================================
@@ -313,5 +314,6 @@ void vtkAMReXGridReaderInternal::CreateVTKAttributeArray(vtkAOSDataArrayTemplate
 // ----------------------------------------------------------------------------
 //                     Class  vtkAMReXGridReaderInternal ( end )
 // ----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
 #endif /* vtkAMReXGridReaderInternal_h */
 // VTK-HeaderTest-Exclude: vtkAMReXGridReaderInternal.h
diff --git a/IO/AMR/vtkAMReXParticlesReader.cxx b/IO/AMR/vtkAMReXParticlesReader.cxx
index f293e9514f435286032d8e6146bcc76d4f749794..4e1660a5e39763326708a02d7fe7650bb6e7bf83 100644
--- a/IO/AMR/vtkAMReXParticlesReader.cxx
+++ b/IO/AMR/vtkAMReXParticlesReader.cxx
@@ -42,6 +42,7 @@
 
 using vtksystools = vtksys::SystemTools;
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // returns empty string on failure.
@@ -832,3 +833,4 @@ bool vtkAMReXParticlesReader::ReadLevel(
 
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/AMR/vtkAMReXParticlesReader.h b/IO/AMR/vtkAMReXParticlesReader.h
index 68f6229cd2f2cb8a95ac31bb64d801b2244d3f08..0ed2fe0c8aa4112aed66e06f9576cb7618fcd7b8 100644
--- a/IO/AMR/vtkAMReXParticlesReader.h
+++ b/IO/AMR/vtkAMReXParticlesReader.h
@@ -42,6 +42,7 @@
 
 #include <string> // for std::string.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkMultiPieceDataSet;
 class vtkMultiProcessController;
@@ -129,4 +130,5 @@ private:
   friend class AMReXParticleHeader;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Asynchronous/vtkThreadedImageWriter.cxx b/IO/Asynchronous/vtkThreadedImageWriter.cxx
index bea4eab2ef814fee318ec86dcae63735e5c3256f..cabaccfaa63f8910d1f036f61086487d877213bd 100644
--- a/IO/Asynchronous/vtkThreadedImageWriter.cxx
+++ b/IO/Asynchronous/vtkThreadedImageWriter.cxx
@@ -122,6 +122,7 @@ void EncodeAndWrite(const vtkSmartPointer<vtkImageData>& image, const std::strin
 }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //****************************************************************************
 class vtkThreadedImageWriter::vtkInternals
 {
@@ -226,3 +227,4 @@ void vtkThreadedImageWriter::Finalize()
 {
   this->Internals->TerminateAllWorkers();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Asynchronous/vtkThreadedImageWriter.h b/IO/Asynchronous/vtkThreadedImageWriter.h
index da637e281fe738e80217fa595cc1fb790af1169e..1fc240f51aa560b749754c361595c9b123f72a1d 100644
--- a/IO/Asynchronous/vtkThreadedImageWriter.h
+++ b/IO/Asynchronous/vtkThreadedImageWriter.h
@@ -29,6 +29,7 @@
 #include "vtkIOAsynchronousModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKIOASYNCHRONOUS_EXPORT vtkThreadedImageWriter : public vtkObject
@@ -81,4 +82,5 @@ private:
   vtkTypeUInt32 MaxThreads;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/CGNS/cgio_helpers.cxx b/IO/CGNS/cgio_helpers.cxx
index 8543aa8284a11527e67b7cca1740fb4d0f6e375a..51486c37e55f66b986ee59a7646e335470a3dbb7 100644
--- a/IO/CGNS/cgio_helpers.cxx
+++ b/IO/CGNS/cgio_helpers.cxx
@@ -18,6 +18,7 @@
 
 namespace CGNSRead
 {
+VTK_ABI_NAMESPACE_BEGIN
 //----------------------------------------------------------------------------
 int readNodeStringData(int cgioNum, double nodeId, std::string& data)
 {
@@ -791,4 +792,5 @@ void releaseIds(int cgioNum, const std::vector<double>& ids)
     cgio_release_id(cgioNum, *iter);
   }
 }
+VTK_ABI_NAMESPACE_END
 }
diff --git a/IO/CGNS/cgio_helpers.h b/IO/CGNS/cgio_helpers.h
index 9a948d8ff0de68010e14ff25ca5d2e3f9e7ee25d..554831b2321028a77a135714420ec51f864ed9ad 100644
--- a/IO/CGNS/cgio_helpers.h
+++ b/IO/CGNS/cgio_helpers.h
@@ -37,6 +37,7 @@
 
 namespace CGNSRead
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 template <typename T>
@@ -171,5 +172,6 @@ int readZoneInfo(int cgioNum, double zoneId, CGNSRead::ZoneInformation& zoneInfo
  * release all ids in the vector.
  */
 void releaseIds(int cgioNum, const std::vector<double>& ids);
+VTK_ABI_NAMESPACE_END
 }
 #endif // cgio_helpers_h
diff --git a/IO/CGNS/vtkCGNSCache.h b/IO/CGNS/vtkCGNSCache.h
index 892b843bd71d38a542d981c512b03127a6851085..f5fb70f01ffefcb02acdab6b07aa84110612f978 100644
--- a/IO/CGNS/vtkCGNSCache.h
+++ b/IO/CGNS/vtkCGNSCache.h
@@ -35,6 +35,7 @@
 
 namespace CGNSRead
 {
+VTK_ABI_NAMESPACE_BEGIN
 // No priority and no size limit right now
 
 template <typename CacheDataType>
@@ -115,6 +116,7 @@ void vtkCGNSCache<CacheDataType>::ClearCache()
 {
   this->CacheData.clear();
 }
+VTK_ABI_NAMESPACE_END
 }
 #endif // vtkCGNSCache_h
 // VTK-HeaderTest-Exclude: vtkCGNSCache.h
diff --git a/IO/CGNS/vtkCGNSFileSeriesReader.cxx b/IO/CGNS/vtkCGNSFileSeriesReader.cxx
index d19303cf0bd0f331ebeecf5aecad3d280a54cd80..aac41c9bcdea5facf7d7525453354a907b24f435 100644
--- a/IO/CGNS/vtkCGNSFileSeriesReader.cxx
+++ b/IO/CGNS/vtkCGNSFileSeriesReader.cxx
@@ -60,6 +60,7 @@ private:
   void operator=(const SCOPED_SET&) = delete;
 };
 }
+VTK_ABI_NAMESPACE_BEGIN
 
 vtkStandardNewMacro(vtkCGNSFileSeriesReader);
 vtkCxxSetObjectMacro(vtkCGNSFileSeriesReader, Controller, vtkMultiProcessController);
@@ -214,9 +215,11 @@ int vtkCGNSFileSeriesReader::ProcessRequest(
   this->FileSeriesHelper->FillTimeInformation(outInfo);
   return 1;
 }
+VTK_ABI_NAMESPACE_END
 
 namespace vtkCGNSFileSeriesReaderNS
 {
+VTK_ABI_NAMESPACE_BEGIN
 static bool SetFileNameCallback(vtkAlgorithm* reader, const std::string& fname)
 {
   if (vtkCGNSReader* cgnsReader = vtkCGNSReader::SafeDownCast(reader))
@@ -226,8 +229,10 @@ static bool SetFileNameCallback(vtkAlgorithm* reader, const std::string& fname)
   }
   return false;
 };
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //----------------------------------------------------------------------------
 bool vtkCGNSFileSeriesReader::UpdateActiveFileSet(vtkInformation* outInfo)
 {
@@ -285,6 +290,7 @@ void vtkCGNSFileSeriesReader::ChooseActiveFile(int index)
 // data structure, we ignore this warning.
 #pragma warning(disable : 4503)
 #endif
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -449,6 +455,7 @@ private:
 };
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //----------------------------------------------------------------------------
 int vtkCGNSFileSeriesReader::RequestData(
   vtkInformation* request, vtkInformationVector** inputVector, vtkInformationVector* outputVector)
@@ -496,3 +503,4 @@ int vtkCGNSFileSeriesReader::RequestData(
   output->ShallowCopy(hierarchy.Get());
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/CGNS/vtkCGNSFileSeriesReader.h b/IO/CGNS/vtkCGNSFileSeriesReader.h
index 3307fefa59800865326dd370b57ccdd464fb0abc..a88f9665fefa3cbe418decbd2594868295051722 100644
--- a/IO/CGNS/vtkCGNSFileSeriesReader.h
+++ b/IO/CGNS/vtkCGNSFileSeriesReader.h
@@ -42,6 +42,7 @@
 #include <string> // for std::string
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCGNSReader;
 class vtkCGNSSubsetInclusionLattice;
 class vtkFileSeriesHelper;
@@ -144,4 +145,5 @@ private:
   std::vector<std::string> ActiveFiles;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/CGNS/vtkCGNSReader.cxx b/IO/CGNS/vtkCGNSReader.cxx
index 133c78676ba8b53c059495484287ccdc6f619b05..939465e2c876845d741cf7fb91ded1bc37d9a424 100644
--- a/IO/CGNS/vtkCGNSReader.cxx
+++ b/IO/CGNS/vtkCGNSReader.cxx
@@ -73,6 +73,7 @@
 
 #include "cgio_helpers.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyMacro(vtkCGNSReader, FAMILY, String);
 vtkStandardNewMacro(vtkCGNSReader);
 
@@ -5222,3 +5223,4 @@ void vtkCGNSReader::SetCacheConnectivity(bool enable)
 #ifdef _WINDOWS
 #pragma warning(pop)
 #endif
+VTK_ABI_NAMESPACE_END
diff --git a/IO/CGNS/vtkCGNSReader.h b/IO/CGNS/vtkCGNSReader.h
index 888be094b3fe00bf412ce689d61d4f9f36eeb548..7f67e3e330d334942e800466bc26e87b164a70a7 100644
--- a/IO/CGNS/vtkCGNSReader.h
+++ b/IO/CGNS/vtkCGNSReader.h
@@ -35,15 +35,18 @@
 
 #include <string> // for std::string
 
-class vtkDataArraySelection;
-class vtkInformationStringKey;
-
 namespace CGNSRead
 {
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCGNSMetaData;
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+class vtkDataArraySelection;
+class vtkInformationStringKey;
 class vtkMultiProcessController;
+
 class VTKIOCGNSREADER_EXPORT vtkCGNSReader : public vtkMultiBlockDataSetAlgorithm
 {
 public:
@@ -338,4 +341,5 @@ private:
   friend class vtkPrivate;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCGNSReader_h
diff --git a/IO/CGNS/vtkCGNSReaderInternal.cxx b/IO/CGNS/vtkCGNSReaderInternal.cxx
index 52b77989f3367082b9ced74d00993511985ad8db..0441ae99e95862fa1ccf3f13a12c0e6432df2c0b 100644
--- a/IO/CGNS/vtkCGNSReaderInternal.cxx
+++ b/IO/CGNS/vtkCGNSReaderInternal.cxx
@@ -24,6 +24,7 @@
 
 namespace CGNSRead
 {
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 int setUpRind(const int cgioNum, const double rindId, int* rind)
 {
@@ -1373,4 +1374,5 @@ bool ReadPatch(vtkCGNSReader* reader, const BaseInformation&, const ZoneInformat
   return true;
 }
 
+VTK_ABI_NAMESPACE_END
 } // end of namespace
diff --git a/IO/CGNS/vtkCGNSReaderInternal.h b/IO/CGNS/vtkCGNSReaderInternal.h
index 79d601b0d68169284ac82723c656091aff37e756..7876a497ff8f0b540a8ec2a84a2138ea44e55778 100644
--- a/IO/CGNS/vtkCGNSReaderInternal.h
+++ b/IO/CGNS/vtkCGNSReaderInternal.h
@@ -47,9 +47,9 @@
 
 namespace CGNSRead
 {
-
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 struct is_double
 {
@@ -73,10 +73,12 @@ struct is_float<float>
 {
   static const bool value = true;
 };
+VTK_ABI_NAMESPACE_END
 }
 
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 constexpr const char* cgns_type_name() noexcept
 {
@@ -106,8 +108,10 @@ constexpr const char* cgns_type_name<vtkTypeInt64>() noexcept
 {
   return "I8";
 }
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 typedef char char_33[33];
 
 //------------------------------------------------------------------------------
@@ -546,6 +550,7 @@ int get_XYZ_mesh(const int cgioNum, const std::vector<double>& gridChildId,
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
 }
 
 #endif // vtkCGNSReaderInternal_h
diff --git a/IO/CGNS/vtkFileSeriesHelper.cxx b/IO/CGNS/vtkFileSeriesHelper.cxx
index 8473d874dab038d80921f417efcaec6f50f03823..a35ad83245fc0de2f8486c7177ebb55df4cfb82f 100644
--- a/IO/CGNS/vtkFileSeriesHelper.cxx
+++ b/IO/CGNS/vtkFileSeriesHelper.cxx
@@ -35,6 +35,7 @@
 //============================================================================
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkFileSeriesHelper::vtkTimeInformation::vtkTimeInformation()
   : TimeRange(0, 0)
   , TimeRangeValid(false)
@@ -544,3 +545,4 @@ void vtkFileSeriesHelper::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Controller: " << this->Controller << endl;
   os << indent << "IgnoreReaderTime: " << this->IgnoreReaderTime << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/CGNS/vtkFileSeriesHelper.h b/IO/CGNS/vtkFileSeriesHelper.h
index 17bfdd83925b864ad7eccd82f1c60636df426434..ba64600d3abf6d13df252a6d9f4700c573aa48bb 100644
--- a/IO/CGNS/vtkFileSeriesHelper.h
+++ b/IO/CGNS/vtkFileSeriesHelper.h
@@ -35,6 +35,7 @@
 #include <utility>                 // for std::pair
 #include <vector>                  // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithm;
 class vtkMultiProcessController;
 class vtkInformation;
@@ -213,4 +214,5 @@ private:
   vtkTimeStamp UpdateInformationTime;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/CONVERGECFD/vtkCONVERGECFDReader.cxx b/IO/CONVERGECFD/vtkCONVERGECFDReader.cxx
index 6b83c26c26a0f9b020bee5b6a342938dbea98147..3dcd6d344e0af0026a36bce71942d11b717a46a4 100644
--- a/IO/CONVERGECFD/vtkCONVERGECFDReader.cxx
+++ b/IO/CONVERGECFD/vtkCONVERGECFDReader.cxx
@@ -45,6 +45,7 @@
 
 #include "vtkHDF5ScopedHandle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCONVERGECFDReader);
 
 namespace
@@ -1401,3 +1402,4 @@ int vtkCONVERGECFDReader::CanReadFile(const char* fname)
   // Everything succeeded
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/CONVERGECFD/vtkCONVERGECFDReader.h b/IO/CONVERGECFD/vtkCONVERGECFDReader.h
index 0de892849e9a3623720673b8ff7901898926819a..0e4a7a8e03de4de30a0954f9ec59a33ae22b9b23 100644
--- a/IO/CONVERGECFD/vtkCONVERGECFDReader.h
+++ b/IO/CONVERGECFD/vtkCONVERGECFDReader.h
@@ -53,6 +53,7 @@
 #include <string> // for std::string
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 
 class VTKIOCONVERGECFD_EXPORT vtkCONVERGECFDReader : public vtkPartitionedDataSetCollectionAlgorithm
@@ -123,4 +124,5 @@ private:
   void operator=(const vtkCONVERGECFDReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCONVERGECFDReader_h
diff --git a/IO/CatalystConduit/vtkConduitArrayUtilities.cxx b/IO/CatalystConduit/vtkConduitArrayUtilities.cxx
index ce00566f01b9ca7ef79d4ffb309574109eafb685..39f5561483d0871799b773e2c1281c21361ebd9f 100644
--- a/IO/CatalystConduit/vtkConduitArrayUtilities.cxx
+++ b/IO/CatalystConduit/vtkConduitArrayUtilities.cxx
@@ -37,6 +37,7 @@
 
 namespace internals
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 using AOSArrays = vtkTypeList::Unique<
   vtkTypeList::Create<vtkAOSDataArrayTemplate<vtkTypeInt8>, vtkAOSDataArrayTemplate<vtkTypeInt16>,
@@ -201,8 +202,11 @@ conduit_cpp::DataType::Id GetTypeId(conduit_cpp::DataType::Id type, bool force_s
   }
 }
 
+VTK_ABI_NAMESPACE_END
 } // internals
 
+VTK_ABI_NAMESPACE_BEGIN
+
 vtkStandardNewMacro(vtkConduitArrayUtilities);
 //----------------------------------------------------------------------------
 vtkConduitArrayUtilities::vtkConduitArrayUtilities() = default;
@@ -459,8 +463,11 @@ vtkSmartPointer<vtkCellArray> vtkConduitArrayUtilities::MCArrayToVTKCellArray(
   return cellArray;
 }
 
+VTK_ABI_NAMESPACE_END
+
 namespace
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 struct O2MRelationToVTKCellArrayWorker
 {
@@ -495,7 +502,11 @@ struct O2MRelationToVTKCellArrayWorker
     }
   }
 };
+VTK_ABI_NAMESPACE_END
 }
+
+VTK_ABI_NAMESPACE_BEGIN
+
 //----------------------------------------------------------------------------
 vtkSmartPointer<vtkCellArray> vtkConduitArrayUtilities::O2MRelationToVTKCellArray(
   const conduit_node* c_o2mrelation, const std::string& leafname)
@@ -542,3 +553,4 @@ void vtkConduitArrayUtilities::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/CatalystConduit/vtkConduitArrayUtilities.h b/IO/CatalystConduit/vtkConduitArrayUtilities.h
index 8a7273f152ffc005c0bffd68d39fade9302dcb08..c33c3c4d479cd741ab6e4c99bc7da5142efc064c 100644
--- a/IO/CatalystConduit/vtkConduitArrayUtilities.h
+++ b/IO/CatalystConduit/vtkConduitArrayUtilities.h
@@ -36,6 +36,7 @@
 
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkDataArray;
 
@@ -92,5 +93,6 @@ private:
   vtkConduitArrayUtilities(const vtkConduitArrayUtilities&) = delete;
   void operator=(const vtkConduitArrayUtilities&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
diff --git a/IO/CatalystConduit/vtkConduitSource.cxx b/IO/CatalystConduit/vtkConduitSource.cxx
index 580e5cc3eee523f51d52e78164a415839631cbaf..b3d1112e68af15caac14f2009201a500865fdc93 100644
--- a/IO/CatalystConduit/vtkConduitSource.cxx
+++ b/IO/CatalystConduit/vtkConduitSource.cxx
@@ -50,6 +50,7 @@
 
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //----------------------------------------------------------------------------
 int GetAssociation(const std::string& assoc)
@@ -555,8 +556,11 @@ bool AddFieldData(vtkDataObject* output, const conduit_cpp::Node& stateFields)
   return true;
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace detail
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkConduitSource::vtkInternals
 {
 public:
@@ -797,3 +801,4 @@ void vtkConduitSource::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/CatalystConduit/vtkConduitSource.h b/IO/CatalystConduit/vtkConduitSource.h
index 1c4b9cffae8d5b42c50c50e2fc8d3dcb7a2e8da0..5f98a37650ceff7220dd85bdaac14634feccc38f 100644
--- a/IO/CatalystConduit/vtkConduitSource.h
+++ b/IO/CatalystConduit/vtkConduitSource.h
@@ -38,6 +38,7 @@
 
 #include <memory> // for std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCATALYSTCONDUIT_EXPORT vtkConduitSource : public vtkDataObjectAlgorithm
 {
 public:
@@ -110,5 +111,6 @@ private:
   bool UseMultiMeshProtocol;
   bool OutputMultiBlock;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
diff --git a/IO/CatalystConduit/vtkDataObjectToConduit.cxx b/IO/CatalystConduit/vtkDataObjectToConduit.cxx
index 3121c93211f5bdc2f14d18efbfd59800e50853cf..4756c4ada5f3f5315ab20f0300f23a94705a1c5e 100644
--- a/IO/CatalystConduit/vtkDataObjectToConduit.cxx
+++ b/IO/CatalystConduit/vtkDataObjectToConduit.cxx
@@ -485,6 +485,7 @@ bool FillConduitNodeFromDataSet(vtkDataSet* data_set, conduit_cpp::Node& conduit
 
 namespace vtkDataObjectToConduit
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //----------------------------------------------------------------------------
 bool FillConduitNode(vtkDataObject* data_object, conduit_cpp::Node& conduit_node)
@@ -499,4 +500,5 @@ bool FillConduitNode(vtkDataObject* data_object, conduit_cpp::Node& conduit_node
   return FillConduitNodeFromDataSet(data_set, conduit_node);
 }
 
+VTK_ABI_NAMESPACE_END
 } // vtkDataObjectToConduit namespace
diff --git a/IO/CatalystConduit/vtkDataObjectToConduit.h b/IO/CatalystConduit/vtkDataObjectToConduit.h
index 275e7b4fe56ac68268a19f2fe4a9eee8d897ff10..3c85ab91a6b41b4c70cdec2115b66b064f7a40c8 100644
--- a/IO/CatalystConduit/vtkDataObjectToConduit.h
+++ b/IO/CatalystConduit/vtkDataObjectToConduit.h
@@ -28,10 +28,13 @@ namespace conduit_cpp
 class Node;
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
+VTK_ABI_NAMESPACE_END
 
 namespace vtkDataObjectToConduit
 {
+VTK_ABI_NAMESPACE_BEGIN
 /**
  * Fill the given conduit node with the data from the data object.
  * The final structure is a valid blueprint mesh.
@@ -40,7 +43,8 @@ namespace vtkDataObjectToConduit
  */
 VTKIOCATALYSTCONDUIT_EXPORT bool FillConduitNode(
   vtkDataObject* data_object, conduit_cpp::Node& conduit_node);
-};
+VTK_ABI_NAMESPACE_END
+}
 
 #endif
 // VTK-HeaderTest-Exclude: vtkDataObjectToConduit.h
diff --git a/IO/Cesium3DTiles/TreeInformation.cxx b/IO/Cesium3DTiles/TreeInformation.cxx
index 6275758744359e716526d90d00bbf22d9e84e46b..de04166516dc3dbab4a6da154f09ee186e4939e2 100644
--- a/IO/Cesium3DTiles/TreeInformation.cxx
+++ b/IO/Cesium3DTiles/TreeInformation.cxx
@@ -53,11 +53,11 @@
 #include <vtksys/FStream.hxx>
 
 using namespace nlohmann;
-
 using RegionType = std::array<int, 6>;
 
 namespace
 {
+VTK_ABI_NAMESPACE_BEGIN
 constexpr double MIN_ERROR = 20;
 
 //------------------------------------------------------------------------------
@@ -293,8 +293,11 @@ struct InitializeWorker
 std::array<std::string, 3> BuildingsContentTypeExtension = { ".b3dm", ".glb" };
 std::array<std::string, 3> PointsContentTypeExtension = { ".pnts", ".glb" };
 
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //------------------------------------------------------------------------------
 TreeInformation::TreeInformation(vtkIncrementalOctreeNode* root, int numberOfNodes,
   const std::vector<vtkSmartPointer<vtkCompositeDataSet>>* buildings,
@@ -1323,3 +1326,4 @@ std::array<double, 6> TreeInformation::ExpandBounds(double* first, double* secon
     std::min(first[2], second[2]), std::max(first[3], second[3]), std::min(first[4], second[4]),
     std::max(first[5], second[5]) };
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Cesium3DTiles/TreeInformation.h b/IO/Cesium3DTiles/TreeInformation.h
index c0b34c31a8ff76d6e81307786ffb3cf9dc26b9f5..151325b306fe3e85b561a3184dcb2ac919a171eb 100644
--- a/IO/Cesium3DTiles/TreeInformation.h
+++ b/IO/Cesium3DTiles/TreeInformation.h
@@ -31,6 +31,7 @@
 #include <array>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkCompositeDataSet;
 class vtkIdList;
@@ -181,5 +182,6 @@ private:
   nlohmann::json RootJson;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: TreeInformation.h
diff --git a/IO/Cesium3DTiles/vtkCesium3DTilesWriter.cxx b/IO/Cesium3DTiles/vtkCesium3DTilesWriter.cxx
index 87c0b287a7f33ca785ed651bcb7d3cb12fcd6ba0..e4172559085778aaf001dfccbe5fbb4a2f3d65e3 100644
--- a/IO/Cesium3DTiles/vtkCesium3DTilesWriter.cxx
+++ b/IO/Cesium3DTiles/vtkCesium3DTilesWriter.cxx
@@ -49,6 +49,7 @@
 
 using namespace vtksys;
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCesium3DTilesWriter);
 
 namespace
@@ -336,3 +337,4 @@ void vtkCesium3DTilesWriter::WriteData()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Cesium3DTiles/vtkCesium3DTilesWriter.h b/IO/Cesium3DTiles/vtkCesium3DTilesWriter.h
index 10689d1d381ac803ac0acecf01cd80cf7b201e0d..22062126953dbec225f6ae86f8acb035d8956fde 100644
--- a/IO/Cesium3DTiles/vtkCesium3DTilesWriter.h
+++ b/IO/Cesium3DTiles/vtkCesium3DTilesWriter.h
@@ -29,6 +29,7 @@
 #include "vtkIOCesium3DTilesModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCESIUM3DTILES_EXPORT vtkCesium3DTilesWriter : public vtkWriter
 {
 public:
@@ -171,4 +172,5 @@ private:
   void operator=(const vtkCesium3DTilesWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCesium3DTilesWriter_h
diff --git a/IO/Cesium3DTiles/vtkCesiumPointCloudWriter.cxx b/IO/Cesium3DTiles/vtkCesiumPointCloudWriter.cxx
index d43dcdb1445f734dfcc6d17dc272b2e38e6243f3..1c978ea78c5dd123040ea85e959003a7ca3e55ca 100644
--- a/IO/Cesium3DTiles/vtkCesiumPointCloudWriter.cxx
+++ b/IO/Cesium3DTiles/vtkCesiumPointCloudWriter.cxx
@@ -124,6 +124,7 @@ struct SaveRgbArray
 
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCesiumPointCloudWriter);
 
 vtkCesiumPointCloudWriter::vtkCesiumPointCloudWriter()
@@ -284,3 +285,4 @@ int vtkCesiumPointCloudWriter::FillInputPortInformation(int, vtkInformation* inf
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPointSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Cesium3DTiles/vtkCesiumPointCloudWriter.h b/IO/Cesium3DTiles/vtkCesiumPointCloudWriter.h
index f71fa74642e041232c7f6f30f4f78bbdf728d270..1e15f4ba5720799c8124dc69f22ba33605ab4907 100644
--- a/IO/Cesium3DTiles/vtkCesiumPointCloudWriter.h
+++ b/IO/Cesium3DTiles/vtkCesiumPointCloudWriter.h
@@ -25,6 +25,8 @@
 #include "vtkIdList.h"
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKIOCESIUM3DTILES_EXPORT vtkCesiumPointCloudWriter : public vtkWriter
 {
 public:
@@ -63,5 +65,6 @@ private:
   void operator=(const vtkCesiumPointCloudWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkCesiumPointCloudWriter.h
diff --git a/IO/Chemistry/vtkCMLMoleculeReader.cxx b/IO/Chemistry/vtkCMLMoleculeReader.cxx
index 61c86567f6ec41cd6078e76a5cf1b1005fb208ad..673f60aae9dccbc4acb8b22341257d80033aa6e5 100644
--- a/IO/Chemistry/vtkCMLMoleculeReader.cxx
+++ b/IO/Chemistry/vtkCMLMoleculeReader.cxx
@@ -31,6 +31,7 @@
 #include <vector>
 
 // Subclass of vtkXMLParser -- definitions at end of file
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCMLParser : public vtkXMLParser
 {
 public:
@@ -329,3 +330,4 @@ void vtkCMLParser::NewBond(const char** attr)
 
   this->Target->AppendBond(atomId1, atomId2, order);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Chemistry/vtkCMLMoleculeReader.h b/IO/Chemistry/vtkCMLMoleculeReader.h
index f11fad600cc0dd5677ae6957041c6017f91e4edc..3eedb5a28dd3d83a4d7cf904270b51a794291741 100644
--- a/IO/Chemistry/vtkCMLMoleculeReader.h
+++ b/IO/Chemistry/vtkCMLMoleculeReader.h
@@ -25,6 +25,7 @@
 #include "vtkIOChemistryModule.h" // For export macro
 #include "vtkMoleculeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMolecule;
 
 class VTKIOCHEMISTRY_EXPORT vtkCMLMoleculeReader : public vtkMoleculeAlgorithm
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkCMLMoleculeReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Chemistry/vtkGaussianCubeReader.cxx b/IO/Chemistry/vtkGaussianCubeReader.cxx
index 9893ddcb60067ba8db7f39e222c68e4eb9b1bbab..ad501b223381602338a33a16bfaa1da5c73d7275 100644
--- a/IO/Chemistry/vtkGaussianCubeReader.cxx
+++ b/IO/Chemistry/vtkGaussianCubeReader.cxx
@@ -34,6 +34,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGaussianCubeReader);
 
 //------------------------------------------------------------------------------
@@ -392,3 +393,4 @@ int vtkGaussianCubeReader::FillOutputPortInformation(int port, vtkInformation* i
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkImageData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Chemistry/vtkGaussianCubeReader.h b/IO/Chemistry/vtkGaussianCubeReader.h
index 3fe7b361bdf0040ebc18debf78192f30e6a344d8..aca80565b85728f7f746e4ad322d9e423bf6d81a 100644
--- a/IO/Chemistry/vtkGaussianCubeReader.h
+++ b/IO/Chemistry/vtkGaussianCubeReader.h
@@ -30,6 +30,7 @@
 #include "vtkIOChemistryModule.h" // For export macro
 #include "vtkMoleculeReaderBase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkTransform;
 
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkGaussianCubeReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Chemistry/vtkGaussianCubeReader2.cxx b/IO/Chemistry/vtkGaussianCubeReader2.cxx
index d9b23995952ca738f165d0a3204b5ed3edaa9e8c..52d3749c4ef75680696d4f805528ef4b10a396bd 100644
--- a/IO/Chemistry/vtkGaussianCubeReader2.cxx
+++ b/IO/Chemistry/vtkGaussianCubeReader2.cxx
@@ -36,6 +36,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGaussianCubeReader2);
 
 //------------------------------------------------------------------------------
@@ -322,3 +323,4 @@ void vtkGaussianCubeReader2::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Chemistry/vtkGaussianCubeReader2.h b/IO/Chemistry/vtkGaussianCubeReader2.h
index ea329dc795236196f42a10e414bf2c71782054f0..18cdfacc3a1dbb94a914bace0c6b73e32fde268e 100644
--- a/IO/Chemistry/vtkGaussianCubeReader2.h
+++ b/IO/Chemistry/vtkGaussianCubeReader2.h
@@ -28,6 +28,7 @@
 #include "vtkIOChemistryModule.h" // For export macro
 #include "vtkMoleculeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMolecule;
 class vtkImageData;
 
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkGaussianCubeReader2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Chemistry/vtkMoleculeReaderBase.cxx b/IO/Chemistry/vtkMoleculeReaderBase.cxx
index 6dad1e2898a08775780befedbc98ae7b36555a29..2c0f085b4f9666c73a50a7e93e319d4f7f971205 100644
--- a/IO/Chemistry/vtkMoleculeReaderBase.cxx
+++ b/IO/Chemistry/vtkMoleculeReaderBase.cxx
@@ -32,6 +32,7 @@
 
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkMoleculeReaderBase::vtkMoleculeReaderBase()
 {
   this->FileName = nullptr;
@@ -426,3 +427,4 @@ void vtkMoleculeReaderBase::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "HBScale: " << this->HBScale << endl;
   os << indent << "BScale: " << this->BScale << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Chemistry/vtkMoleculeReaderBase.h b/IO/Chemistry/vtkMoleculeReaderBase.h
index b7290e59f3949b74503011744548c26ed4f1a930..963efe098ddfa2c3413599eb20fa85c819f6ea60 100644
--- a/IO/Chemistry/vtkMoleculeReaderBase.h
+++ b/IO/Chemistry/vtkMoleculeReaderBase.h
@@ -30,6 +30,7 @@
 #include "vtkIOChemistryModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkFloatArray;
 class vtkDataArray;
@@ -142,4 +143,5 @@ private:
   void operator=(const vtkMoleculeReaderBase&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Chemistry/vtkPDBReader.cxx b/IO/Chemistry/vtkPDBReader.cxx
index 4e5dec25cd63c5639639302029d4d6384ba03d17..03c7c5758256a50341e6ebfb652b6f70633959ff 100644
--- a/IO/Chemistry/vtkPDBReader.cxx
+++ b/IO/Chemistry/vtkPDBReader.cxx
@@ -24,6 +24,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 inline void StdStringToUpper(std::string& s)
 {
   std::transform(s.begin(), s.end(), s.begin(), ::toupper);
@@ -198,3 +199,4 @@ void vtkPDBReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Chemistry/vtkPDBReader.h b/IO/Chemistry/vtkPDBReader.h
index 986680dacf3bb20dfcb74d5537a3b26e7375846d..32081cdac7cde5ea1a4da0e6dcdbcaf477bcae4c 100644
--- a/IO/Chemistry/vtkPDBReader.h
+++ b/IO/Chemistry/vtkPDBReader.h
@@ -29,6 +29,7 @@
 #include "vtkIOChemistryModule.h" // For export macro
 #include "vtkMoleculeReaderBase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCHEMISTRY_EXPORT vtkPDBReader : public vtkMoleculeReaderBase
 {
 public:
@@ -48,4 +49,5 @@ private:
   void operator=(const vtkPDBReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Chemistry/vtkVASPAnimationReader.cxx b/IO/Chemistry/vtkVASPAnimationReader.cxx
index a66152f65c47a921c2ea7b3e1f22ddb44fb6e887..5a95e9ee0358fb78fffea1c65459e79bcc41b002 100644
--- a/IO/Chemistry/vtkVASPAnimationReader.cxx
+++ b/IO/Chemistry/vtkVASPAnimationReader.cxx
@@ -54,6 +54,7 @@ bool parse(const std::string& str, T& result)
 
 } // end anon namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVASPAnimationReader);
 
 //------------------------------------------------------------------------------
@@ -366,3 +367,4 @@ bool vtkVASPAnimationReader::ReadMolecule(std::istream& in, vtkMolecule* molecul
 
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Chemistry/vtkVASPAnimationReader.h b/IO/Chemistry/vtkVASPAnimationReader.h
index 85fe7a889fdd8991fa2fc98f8ca6dc1156a3efa7..c04e9fb1b890650ea22045806595f225dd43e029 100644
--- a/IO/Chemistry/vtkVASPAnimationReader.h
+++ b/IO/Chemistry/vtkVASPAnimationReader.h
@@ -33,6 +33,8 @@ namespace vtksys
 class RegularExpression;
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKIOCHEMISTRY_EXPORT vtkVASPAnimationReader : public vtkMoleculeAlgorithm
 {
 public:
@@ -87,4 +89,5 @@ private:
   void operator=(const vtkVASPAnimationReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkVASPAnimationReader_h
diff --git a/IO/Chemistry/vtkVASPTessellationReader.cxx b/IO/Chemistry/vtkVASPTessellationReader.cxx
index b3c09b501f3521bedbb99b7aebafb844531796db..b8e84d0a793baf2aaec61a07449b9822af548c44 100644
--- a/IO/Chemistry/vtkVASPTessellationReader.cxx
+++ b/IO/Chemistry/vtkVASPTessellationReader.cxx
@@ -45,7 +45,9 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVASPTessellationReader);
+VTK_ABI_NAMESPACE_END
 
 typedef vtksys::RegularExpression RegEx;
 typedef vtkStreamingDemandDrivenPipeline vtkSDDP;
@@ -117,6 +119,8 @@ bool parseVariableLists(
 
 } // end anon namespace
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //------------------------------------------------------------------------------
 void vtkVASPTessellationReader::PrintSelf(std::ostream& os, vtkIndent indent)
 {
@@ -622,3 +626,4 @@ bool vtkVASPTessellationReader::ReadTimeStep(
 
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Chemistry/vtkVASPTessellationReader.h b/IO/Chemistry/vtkVASPTessellationReader.h
index 1356deab54eddaaf3a4079607c31e6b6255d562c..b2404796ebe22d3076993b270e47224784a6fb10 100644
--- a/IO/Chemistry/vtkVASPTessellationReader.h
+++ b/IO/Chemistry/vtkVASPTessellationReader.h
@@ -32,6 +32,8 @@ namespace vtksys
 class RegularExpression;
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkUnstructuredGrid;
 
 class VTKIOCHEMISTRY_EXPORT vtkVASPTessellationReader : public vtkMoleculeAlgorithm
@@ -90,4 +92,5 @@ private:
   void operator=(const vtkVASPTessellationReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkVASPTessellationReader_h
diff --git a/IO/Chemistry/vtkXYZMolReader.cxx b/IO/Chemistry/vtkXYZMolReader.cxx
index 830f85311877ec85229d712e2cc3964f4143ecba..4aefea6d984a5402569fd5eb1b90fa85c53cc49d 100644
--- a/IO/Chemistry/vtkXYZMolReader.cxx
+++ b/IO/Chemistry/vtkXYZMolReader.cxx
@@ -26,6 +26,7 @@
 #include <vtksys/SystemTools.hxx>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXYZMolReader);
 
 //------------------------------------------------------------------------------
@@ -354,3 +355,4 @@ void vtkXYZMolReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "TimeStep: " << this->TimeStep << endl;
   os << indent << "MaxTimeStep: " << this->MaxTimeStep;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Chemistry/vtkXYZMolReader.h b/IO/Chemistry/vtkXYZMolReader.h
index 55aea45b3d954a96b66751de49ca86a344fdad5e..1637702b9381d2211b7da45a5986e1c7197a573c 100644
--- a/IO/Chemistry/vtkXYZMolReader.h
+++ b/IO/Chemistry/vtkXYZMolReader.h
@@ -29,6 +29,7 @@
 #include "vtkIOChemistryModule.h" // For export macro
 #include "vtkMoleculeReaderBase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCHEMISTRY_EXPORT vtkXYZMolReader : public vtkMoleculeReaderBase
 {
 public:
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkXYZMolReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Chemistry/vtkXYZMolReader2.cxx b/IO/Chemistry/vtkXYZMolReader2.cxx
index 5b3e722a9274551e5191da34138ed8dab95cd393..6892ed25baca91b801ced6a74108315bc3a5fc87 100644
--- a/IO/Chemistry/vtkXYZMolReader2.cxx
+++ b/IO/Chemistry/vtkXYZMolReader2.cxx
@@ -28,6 +28,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXYZMolReader2);
 
 //------------------------------------------------------------------------------
@@ -218,3 +219,4 @@ void vtkXYZMolReader2::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "FileName: " << this->FileName << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Chemistry/vtkXYZMolReader2.h b/IO/Chemistry/vtkXYZMolReader2.h
index 776e0abfc0af08c1700dfa9e2aa54f3ea6ae966d..87fa13e03f3407ab58aee1c808d25548cef50779 100644
--- a/IO/Chemistry/vtkXYZMolReader2.h
+++ b/IO/Chemistry/vtkXYZMolReader2.h
@@ -32,6 +32,7 @@
 #include <istream> // for std::istream
 #include <vector>  // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMolecule;
 
 class VTKIOCHEMISTRY_EXPORT vtkXYZMolReader2 : public vtkMoleculeAlgorithm
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkXYZMolReader2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/CityGML/vtkCityGMLReader.cxx b/IO/CityGML/vtkCityGMLReader.cxx
index ff895ede42ab382bad775c1b56b44278638ec851..53595cbc56b692b3ccf5db91aadbdd1c97f06373 100644
--- a/IO/CityGML/vtkCityGMLReader.cxx
+++ b/IO/CityGML/vtkCityGMLReader.cxx
@@ -52,6 +52,7 @@
 #include <unordered_map>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCityGMLReader::Implementation
 {
 public:
@@ -1138,3 +1139,4 @@ void vtkCityGMLReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/CityGML/vtkCityGMLReader.h b/IO/CityGML/vtkCityGMLReader.h
index 9d329d72eea8eabeaaa30da988beb9fe944fc734..34c74e3235d27029dd9ea2e64a9d3e00e23d9ee9 100644
--- a/IO/CityGML/vtkCityGMLReader.h
+++ b/IO/CityGML/vtkCityGMLReader.h
@@ -51,6 +51,7 @@
  * brid:Bridge, run:Tunel, tran:Railway, tran:Road, bldg:Building,
  * gen:GenericCityObject, luse:LandUse. These nodes also have a gml_id field array.
 */
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCITYGML_EXPORT vtkCityGMLReader : public vtkMultiBlockDataSetAlgorithm
 {
 public:
@@ -131,4 +132,5 @@ private:
   Implementation* Impl;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkASCIITextCodec.cxx b/IO/Core/vtkASCIITextCodec.cxx
index f58376d7f89a154843365faa903727aabe776c8e..6a9d910884adc2ac7b712c59a8313b09ba481a9c 100644
--- a/IO/Core/vtkASCIITextCodec.cxx
+++ b/IO/Core/vtkASCIITextCodec.cxx
@@ -25,6 +25,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <stdexcept>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkASCIITextCodec);
 
 const char* vtkASCIITextCodec::Name()
@@ -64,3 +65,4 @@ void vtkASCIITextCodec::PrintSelf(ostream& os, vtkIndent indent)
   indent = indent.GetNextIndent();
   this->Superclass::PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkASCIITextCodec.h b/IO/Core/vtkASCIITextCodec.h
index 2a19697c4f4325bcf11668239d70826f73633acf..7298797b551fec6257e139ba3120a964a864298d 100644
--- a/IO/Core/vtkASCIITextCodec.h
+++ b/IO/Core/vtkASCIITextCodec.h
@@ -40,6 +40,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkTextCodec.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkASCIITextCodec : public vtkTextCodec
 {
 public:
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkASCIITextCodec&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkAbstractParticleWriter.cxx b/IO/Core/vtkAbstractParticleWriter.cxx
index caba4efee63b658361b472a816a2fbd1d4cfc08d..8af7a7f8abfdf2c72ca132c41c35f44884aae3ae 100644
--- a/IO/Core/vtkAbstractParticleWriter.cxx
+++ b/IO/Core/vtkAbstractParticleWriter.cxx
@@ -16,6 +16,7 @@
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 // Construct with no start and end write methods or arguments.
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractParticleWriter::vtkAbstractParticleWriter()
 {
   this->TimeStep = 0;
@@ -48,3 +49,4 @@ void vtkAbstractParticleWriter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CollectiveIO: " << this->CollectiveIO << endl;
   os << indent << "FileName: " << (this->FileName ? this->FileName : "NONE") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkAbstractParticleWriter.h b/IO/Core/vtkAbstractParticleWriter.h
index af1671b2f358f1d2bd22fe200abc7c74933531b8..3d72b38c673d9ef9de2afbf259a112c32a86ef8f 100644
--- a/IO/Core/vtkAbstractParticleWriter.h
+++ b/IO/Core/vtkAbstractParticleWriter.h
@@ -34,6 +34,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkAbstractParticleWriter : public vtkWriter
 {
 public:
@@ -99,4 +100,5 @@ private:
   void operator=(const vtkAbstractParticleWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkAbstractPolyDataReader.cxx b/IO/Core/vtkAbstractPolyDataReader.cxx
index 154d0a0b85fa12db19e2c60b7996fa1899b5d265..5e1da6f11380dbd4cf698970f730b96aed8e0886 100644
--- a/IO/Core/vtkAbstractPolyDataReader.cxx
+++ b/IO/Core/vtkAbstractPolyDataReader.cxx
@@ -16,6 +16,7 @@
 // vtkOBJReader vtkPLYReader vtkSTLReader
 #include "vtkAbstractPolyDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractPolyDataReader::vtkAbstractPolyDataReader()
 {
   this->FileName = nullptr;
@@ -32,3 +33,4 @@ void vtkAbstractPolyDataReader::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "FileName: " << (this->FileName ? this->FileName : "NONE") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkAbstractPolyDataReader.h b/IO/Core/vtkAbstractPolyDataReader.h
index 0544af84a04ea6b41d32a6c37f6e272fb28fd3fc..d7f0d98d34afbad96c31f2d5a5f151de832a001d 100644
--- a/IO/Core/vtkAbstractPolyDataReader.h
+++ b/IO/Core/vtkAbstractPolyDataReader.h
@@ -33,6 +33,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkAbstractPolyDataReader : public vtkPolyDataAlgorithm
 {
 public:
@@ -58,4 +59,5 @@ private:
   void operator=(const vtkAbstractPolyDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkArrayDataReader.cxx b/IO/Core/vtkArrayDataReader.cxx
index 12a49a96ae5a31296b940db3d3124c349ef76eb9..5a0139cbf59a88a70aca21e186d8ccdf0c39774d 100644
--- a/IO/Core/vtkArrayDataReader.cxx
+++ b/IO/Core/vtkArrayDataReader.cxx
@@ -30,6 +30,7 @@
 #include <sstream>
 #include <stdexcept>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkArrayDataReader);
 
 vtkArrayDataReader::vtkArrayDataReader()
@@ -142,3 +143,4 @@ vtkArrayData* vtkArrayDataReader::Read(istream& stream)
 
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkArrayDataReader.h b/IO/Core/vtkArrayDataReader.h
index f29a995ab147c0490f1fd753492ad0584a4ec7f2..8ef6836051b4c1ad7360ad6518fdaa8e1bb627c2 100644
--- a/IO/Core/vtkArrayDataReader.h
+++ b/IO/Core/vtkArrayDataReader.h
@@ -40,6 +40,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkStdString.h"    // for vtkStdString
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArrayData;
 
 class VTKIOCORE_EXPORT vtkArrayDataReader : public vtkArrayDataAlgorithm
@@ -102,4 +103,5 @@ private:
   void operator=(const vtkArrayDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkArrayDataWriter.cxx b/IO/Core/vtkArrayDataWriter.cxx
index ded78f4c7cf62e61502571f06bddf0e1ea6b4b93..2c085d4b7fc257430f0165f89dffda9edeefe9e3 100644
--- a/IO/Core/vtkArrayDataWriter.cxx
+++ b/IO/Core/vtkArrayDataWriter.cxx
@@ -25,6 +25,7 @@
 #include <sstream>
 #include <stdexcept>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkArrayDataWriter);
 
 vtkArrayDataWriter::vtkArrayDataWriter()
@@ -140,3 +141,4 @@ vtkStdString vtkArrayDataWriter::Write(vtkArrayData* array_data, bool WriteBinar
   vtkArrayDataWriter::Write(array_data, oss, WriteBinary);
   return oss.str();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkArrayDataWriter.h b/IO/Core/vtkArrayDataWriter.h
index 5bdc9b850513725f1b3a617e2185ab42c26d8e70..32edf229d4a299104e83f4667a652cbfa10cb5be 100644
--- a/IO/Core/vtkArrayDataWriter.h
+++ b/IO/Core/vtkArrayDataWriter.h
@@ -55,6 +55,7 @@
 #include "vtkStdString.h"    // For string API
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArrayData;
 
 class VTKIOCORE_EXPORT vtkArrayDataWriter : public vtkWriter
@@ -147,4 +148,5 @@ private:
   void operator=(const vtkArrayDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkArrayReader.cxx b/IO/Core/vtkArrayReader.cxx
index 9deedb64ea442c670227bab5cef2620618a808ec..930d2253e8965fa100569e7f63d696f219a7be9d 100644
--- a/IO/Core/vtkArrayReader.cxx
+++ b/IO/Core/vtkArrayReader.cxx
@@ -32,6 +32,7 @@
 #include <stdexcept>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkArrayReader);
 
 namespace
@@ -537,3 +538,4 @@ vtkArray* vtkArrayReader::Read(istream& stream)
 
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkArrayReader.h b/IO/Core/vtkArrayReader.h
index 801fb20135fdcb7f16a32c423f95c69aa90ab2a7..633264f17a66bd2b037b58cb23449a98285e1a07 100644
--- a/IO/Core/vtkArrayReader.h
+++ b/IO/Core/vtkArrayReader.h
@@ -43,6 +43,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkStdString.h"    // For vtkStdString
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArray;
 
 class VTKIOCORE_EXPORT vtkArrayReader : public vtkArrayDataAlgorithm
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkArrayReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkArrayWriter.cxx b/IO/Core/vtkArrayWriter.cxx
index 7138057ee1156b2375d62e9e95f8b007f560db36..f519d31a6815e03439222b8887b82936f4ce3d88 100644
--- a/IO/Core/vtkArrayWriter.cxx
+++ b/IO/Core/vtkArrayWriter.cxx
@@ -29,6 +29,7 @@
 #include <sstream>
 #include <stdexcept>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -400,3 +401,4 @@ vtkStdString vtkArrayWriter::Write(vtkArray* array, bool WriteBinary)
   vtkArrayWriter::Write(array, oss, WriteBinary);
   return oss.str();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkArrayWriter.h b/IO/Core/vtkArrayWriter.h
index 21462068108998d7bbfce3337abc6668eee2c467..31224c9636d87cdadbc04406468e0b44f6708098 100644
--- a/IO/Core/vtkArrayWriter.h
+++ b/IO/Core/vtkArrayWriter.h
@@ -56,6 +56,7 @@
 #include "vtkStdString.h"    // For string API
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArray;
 
 class VTKIOCORE_EXPORT vtkArrayWriter : public vtkWriter
@@ -148,4 +149,5 @@ private:
   void operator=(const vtkArrayWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkBase64InputStream.cxx b/IO/Core/vtkBase64InputStream.cxx
index 3ce168a4985b15e0a4f4462bd506129e63ea05ab..af4d8859dfa88e961d151ba7266019429a434b84 100644
--- a/IO/Core/vtkBase64InputStream.cxx
+++ b/IO/Core/vtkBase64InputStream.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBase64InputStream);
 
 //------------------------------------------------------------------------------
@@ -164,3 +165,4 @@ size_t vtkBase64InputStream::Read(void* data_in, size_t length)
 
   return (out - data);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkBase64InputStream.h b/IO/Core/vtkBase64InputStream.h
index 748c4520d7537d195172aedef02f33345e3fbefd..937290acb51f9637ea2febfec3e86cbdcd801bd1 100644
--- a/IO/Core/vtkBase64InputStream.h
+++ b/IO/Core/vtkBase64InputStream.h
@@ -26,6 +26,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkInputStream.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkBase64InputStream : public vtkInputStream
 {
 public:
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkBase64InputStream&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkBase64OutputStream.cxx b/IO/Core/vtkBase64OutputStream.cxx
index b28d82779ea24e564a455c16aeda23f51c04f586..e0e2fbf71e14692514e1506ab232ce9862d12685 100644
--- a/IO/Core/vtkBase64OutputStream.cxx
+++ b/IO/Core/vtkBase64OutputStream.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBase64OutputStream);
 
 //------------------------------------------------------------------------------
@@ -139,3 +140,4 @@ int vtkBase64OutputStream::Write(void const* data, size_t length)
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkBase64OutputStream.h b/IO/Core/vtkBase64OutputStream.h
index 3fe2b9fbb0542b0ac08662bc44d6891967f3be36..10a9ede54799f1d0078f13de04a4e23bc82b5192 100644
--- a/IO/Core/vtkBase64OutputStream.h
+++ b/IO/Core/vtkBase64OutputStream.h
@@ -26,6 +26,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkOutputStream.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkBase64OutputStream : public vtkOutputStream
 {
 public:
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkBase64OutputStream&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkBase64Utilities.cxx b/IO/Core/vtkBase64Utilities.cxx
index f27d5f07bd185ca2300e06f315395ecc92fcfb72..9668abe83acc63946cf695f03f9750cdb5e17d1c 100644
--- a/IO/Core/vtkBase64Utilities.cxx
+++ b/IO/Core/vtkBase64Utilities.cxx
@@ -17,6 +17,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBase64Utilities);
 
 //------------------------------------------------------------------------------
@@ -243,3 +244,4 @@ size_t vtkBase64Utilities::DecodeSafely(
 
   return outIdx;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkBase64Utilities.h b/IO/Core/vtkBase64Utilities.h
index 1761f4f8ec37e9058e770d885eeb960af936e862..48f11e7c55fc82ed32c709161e427c1661a591cb 100644
--- a/IO/Core/vtkBase64Utilities.h
+++ b/IO/Core/vtkBase64Utilities.h
@@ -25,6 +25,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkBase64Utilities : public vtkObject
 {
 public:
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkBase64Utilities&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkDataCompressor.cxx b/IO/Core/vtkDataCompressor.cxx
index 6277381b2d1c487ab53d83a583cb572524746392..24c4b783b8e688463fcf85d83bf2d10b3a312f67 100644
--- a/IO/Core/vtkDataCompressor.cxx
+++ b/IO/Core/vtkDataCompressor.cxx
@@ -16,6 +16,7 @@
 #include "vtkUnsignedCharArray.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkDataCompressor::vtkDataCompressor() = default;
 
 //------------------------------------------------------------------------------
@@ -97,3 +98,4 @@ vtkUnsignedCharArray* vtkDataCompressor::Uncompress(
 
   return outputArray;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkDataCompressor.h b/IO/Core/vtkDataCompressor.h
index c8172ba6caef54e69fa9c292697ff5cfe097a5c7..a8e10d77c79f28067328f98fa4afd8759e42ce6c 100644
--- a/IO/Core/vtkDataCompressor.h
+++ b/IO/Core/vtkDataCompressor.h
@@ -40,6 +40,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 
 class VTKIOCORE_EXPORT vtkDataCompressor : public vtkObject
@@ -117,4 +118,5 @@ private:
   void operator=(const vtkDataCompressor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkDelimitedTextWriter.cxx b/IO/Core/vtkDelimitedTextWriter.cxx
index be076e03b37fefc71fe4d9755895ec9f977ec071..a20b86521adc56522e9cce0c4a5a83129d801a6d 100644
--- a/IO/Core/vtkDelimitedTextWriter.cxx
+++ b/IO/Core/vtkDelimitedTextWriter.cxx
@@ -34,6 +34,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDelimitedTextWriter);
 //------------------------------------------------------------------------------
 vtkDelimitedTextWriter::vtkDelimitedTextWriter()
@@ -281,3 +282,4 @@ void vtkDelimitedTextWriter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "FileName: " << (this->FileName ? this->FileName : "none") << endl;
   os << indent << "WriteToOutputString: " << this->WriteToOutputString << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkDelimitedTextWriter.h b/IO/Core/vtkDelimitedTextWriter.h
index f5a3f539016fb7431ad87c8341aee913bb802ebd..7844a54d78d6971e6d44e7ac1d1bc3ceb4257ee2 100644
--- a/IO/Core/vtkDelimitedTextWriter.h
+++ b/IO/Core/vtkDelimitedTextWriter.h
@@ -30,6 +30,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStdString;
 class vtkTable;
 
@@ -123,4 +124,5 @@ private:
   void operator=(const vtkDelimitedTextWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkGlobFileNames.cxx b/IO/Core/vtkGlobFileNames.cxx
index 925958d6b5a58b93ac87a5fc9706baed038fe6b3..f2e41c9928cf1e8399ba70661e720b663112e567 100644
--- a/IO/Core/vtkGlobFileNames.cxx
+++ b/IO/Core/vtkGlobFileNames.cxx
@@ -25,6 +25,7 @@
 #include <vtksys/SystemTools.hxx>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkGlobFileNames* vtkGlobFileNames::New()
 {
   VTK_STANDARD_NEW_BODY(vtkGlobFileNames);
@@ -145,3 +146,4 @@ int vtkGlobFileNames::GetNumberOfFileNames()
 {
   return this->FileNames->GetNumberOfValues();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkGlobFileNames.h b/IO/Core/vtkGlobFileNames.h
index a9f8a1bcc4fcebfcedc4213758ebd7fb5314a8d2..7f08f792cc4ac15297735643a3b1a1a89fd67d52 100644
--- a/IO/Core/vtkGlobFileNames.h
+++ b/IO/Core/vtkGlobFileNames.h
@@ -39,6 +39,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 
 class VTKIOCORE_EXPORT vtkGlobFileNames : public vtkObject
@@ -135,4 +136,5 @@ private:
   void operator=(const vtkGlobFileNames&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkInputStream.cxx b/IO/Core/vtkInputStream.cxx
index 1ce64abb56493526534a27c39e548073a8ff15d6..7d508e1433094c4331a81ed932924acedc048d38 100644
--- a/IO/Core/vtkInputStream.cxx
+++ b/IO/Core/vtkInputStream.cxx
@@ -15,6 +15,7 @@
 #include "vtkInputStream.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInputStream);
 
 //------------------------------------------------------------------------------
@@ -69,3 +70,4 @@ size_t vtkInputStream::ReadStream(char* data, size_t length)
   this->Stream->read(data, length);
   return this->Stream->gcount();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkInputStream.h b/IO/Core/vtkInputStream.h
index a70bcd00d9cdf9d68c17edfc82075eb2d84d721d..3c4f077969d38b4b8ab0e75d8a708898abc097cb 100644
--- a/IO/Core/vtkInputStream.h
+++ b/IO/Core/vtkInputStream.h
@@ -30,6 +30,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkInputStream : public vtkObject
 {
 public:
@@ -88,4 +89,5 @@ private:
   void operator=(const vtkInputStream&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkJavaScriptDataWriter.cxx b/IO/Core/vtkJavaScriptDataWriter.cxx
index 366cb337f020fd7d05617c802bac17b1baee780b..d595528b0c3b4fc2b6430e8c211b21276349b512 100644
--- a/IO/Core/vtkJavaScriptDataWriter.cxx
+++ b/IO/Core/vtkJavaScriptDataWriter.cxx
@@ -36,6 +36,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkJavaScriptDataWriter);
 //------------------------------------------------------------------------------
 vtkJavaScriptDataWriter::vtkJavaScriptDataWriter()
@@ -211,3 +212,4 @@ void vtkJavaScriptDataWriter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "FileName: " << (this->FileName ? this->FileName : "none") << endl;
   os << indent << "IncludeFieldNames: " << (this->IncludeFieldNames ? "true" : "false") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkJavaScriptDataWriter.h b/IO/Core/vtkJavaScriptDataWriter.h
index c200e032e763c4df78ddc9b8e48601be937f4ef9..894f0234ab9fb9d5018221e66236417240eb0da0 100644
--- a/IO/Core/vtkJavaScriptDataWriter.h
+++ b/IO/Core/vtkJavaScriptDataWriter.h
@@ -30,6 +30,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTable;
 
 class VTKIOCORE_EXPORT vtkJavaScriptDataWriter : public vtkWriter
@@ -108,4 +109,5 @@ private:
   ostream* OutputFile;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkLZ4DataCompressor.cxx b/IO/Core/vtkLZ4DataCompressor.cxx
index 976303968cfcbb207a38e7140cff011c66959f2a..5a3d7c3f34a9def3d5be562ddbcdd390c0867718 100644
--- a/IO/Core/vtkLZ4DataCompressor.cxx
+++ b/IO/Core/vtkLZ4DataCompressor.cxx
@@ -16,6 +16,7 @@
 #include "vtkObjectFactory.h"
 #include "vtk_lz4.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLZ4DataCompressor);
 
 //------------------------------------------------------------------------------
@@ -106,3 +107,4 @@ size_t vtkLZ4DataCompressor::GetMaximumCompressionSpace(size_t size)
 {
   return LZ4_COMPRESSBOUND(size);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkLZ4DataCompressor.h b/IO/Core/vtkLZ4DataCompressor.h
index 4a0de92f4932aa3e7ce63c7058733a52f62ad81e..d13aa8f79979837e64b600929e261fe2adb0e94f 100644
--- a/IO/Core/vtkLZ4DataCompressor.h
+++ b/IO/Core/vtkLZ4DataCompressor.h
@@ -26,6 +26,7 @@
 #include "vtkDataCompressor.h"
 #include "vtkIOCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkLZ4DataCompressor : public vtkDataCompressor
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkLZ4DataCompressor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkLZMADataCompressor.cxx b/IO/Core/vtkLZMADataCompressor.cxx
index 2f4ba41cf30f321f1bfcc8727b9c7f7a2622b8ae..0c2dbddf1575a1af682eae868d88aa0b33db746c 100644
--- a/IO/Core/vtkLZMADataCompressor.cxx
+++ b/IO/Core/vtkLZMADataCompressor.cxx
@@ -16,6 +16,7 @@
 #include "vtkObjectFactory.h"
 #include "vtk_lzma.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLZMADataCompressor);
 
 //------------------------------------------------------------------------------
@@ -149,3 +150,4 @@ size_t vtkLZMADataCompressor::GetMaximumCompressionSpace(size_t size)
 {
   return static_cast<size_t>(size + (size >> 2) + 128);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkLZMADataCompressor.h b/IO/Core/vtkLZMADataCompressor.h
index 8230fea4fe9abe9b941a388df4106ab0005dd2ad..ca747cd1f4837115e18a59f0ab4c2cabee041a21 100644
--- a/IO/Core/vtkLZMADataCompressor.h
+++ b/IO/Core/vtkLZMADataCompressor.h
@@ -32,6 +32,7 @@
 #include "vtkDataCompressor.h"
 #include "vtkIOCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkLZMADataCompressor : public vtkDataCompressor
 {
 public:
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkLZMADataCompressor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkNumberToString.cxx b/IO/Core/vtkNumberToString.cxx
index b3f70b4fee625059c78e53d8c11a248099e49717..20dad560d9c9f366269036d48bb52844d4bc8d01 100644
--- a/IO/Core/vtkNumberToString.cxx
+++ b/IO/Core/vtkNumberToString.cxx
@@ -21,6 +21,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 template <typename TagT>
@@ -48,3 +49,4 @@ ostream& operator<<(ostream& stream, const vtkNumberToString::TagFloat& tag)
 {
   return ToString(stream, tag);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkNumberToString.h b/IO/Core/vtkNumberToString.h
index 49aaa34e4551989ea54ccde4b31546c0abfb04e1..d09b95094ead6dca9857fafece21efc6fbb812c1 100644
--- a/IO/Core/vtkNumberToString.h
+++ b/IO/Core/vtkNumberToString.h
@@ -38,6 +38,7 @@
 #include <ostream>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkNumberToString
 {
 public:
@@ -71,5 +72,6 @@ public:
 VTKIOCORE_EXPORT ostream& operator<<(ostream& stream, const vtkNumberToString::TagDouble& tag);
 VTKIOCORE_EXPORT ostream& operator<<(ostream& stream, const vtkNumberToString::TagFloat& tag);
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkNumberToString.h
diff --git a/IO/Core/vtkOutputStream.cxx b/IO/Core/vtkOutputStream.cxx
index 9fa4f36590fe52f06e3154b4b0246f7a14f8f8e2..b67bb4a3fecd693bc263fba9cadcfc3d036ca992 100644
--- a/IO/Core/vtkOutputStream.cxx
+++ b/IO/Core/vtkOutputStream.cxx
@@ -15,6 +15,7 @@
 #include "vtkOutputStream.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOutputStream);
 
 //------------------------------------------------------------------------------
@@ -64,3 +65,4 @@ int vtkOutputStream::WriteStream(const char* data, size_t length)
 {
   return (this->Stream->write(data, length) ? 1 : 0);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkOutputStream.h b/IO/Core/vtkOutputStream.h
index a990d1a2ad85dc5be214b762594e7de5f7c54b2d..e774fdda7ed41323bebd9e64e77f0a470d16ab34 100644
--- a/IO/Core/vtkOutputStream.h
+++ b/IO/Core/vtkOutputStream.h
@@ -30,6 +30,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkOutputStream : public vtkObject
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkOutputStream&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkSortFileNames.cxx b/IO/Core/vtkSortFileNames.cxx
index 14a29a59d6a22a3a8d3b33cf8736643ce861ea64..6fe83fe7193a865852fc9017d3d623855e8ddf44 100644
--- a/IO/Core/vtkSortFileNames.cxx
+++ b/IO/Core/vtkSortFileNames.cxx
@@ -27,6 +27,7 @@
 
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSortFileNames);
 
 // a container for holding string arrays
@@ -568,3 +569,4 @@ void vtkSortFileNames::Update()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkSortFileNames.h b/IO/Core/vtkSortFileNames.h
index e9da7ddcf1084d0380c15a019850a7dda069d6ec..4d0c0128e332e3fc7820b873f0b2f80bb264f577 100644
--- a/IO/Core/vtkSortFileNames.h
+++ b/IO/Core/vtkSortFileNames.h
@@ -34,6 +34,7 @@
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 
 // this is a helper class defined in the .cxx file
@@ -165,4 +166,5 @@ private:
   void operator=(const vtkSortFileNames&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkTextCodec.cxx b/IO/Core/vtkTextCodec.cxx
index d4addbf17c4ca773484585f99c168a61d28f34da..deeb5d62f8ee5f476610d1a240f48bc241c7eafc 100644
--- a/IO/Core/vtkTextCodec.cxx
+++ b/IO/Core/vtkTextCodec.cxx
@@ -21,6 +21,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkTextCodec.h"
 #include <vtk_utf8.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // iterator to throw away input.
@@ -119,3 +120,4 @@ void vtkTextCodec::PrintSelf(ostream& os, vtkIndent indent)
   indent = indent.GetNextIndent();
   this->Superclass::PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkTextCodec.h b/IO/Core/vtkTextCodec.h
index f9bea0b47d966e79b2e2a5d199e2bf839cdb463c..9a5b429256973d1372ff281b8548dd89aaf8d9d2 100644
--- a/IO/Core/vtkTextCodec.h
+++ b/IO/Core/vtkTextCodec.h
@@ -40,6 +40,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkTextCodec : public vtkObject
 {
 public:
@@ -113,4 +114,5 @@ private:
   void operator=(const vtkTextCodec&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkTextCodecFactory.cxx b/IO/Core/vtkTextCodecFactory.cxx
index 15094a0cba736ef42de0a08fbd9e9ab8d965337e..8bb2b043f150ae001a7e7a2d55fadc19f3820d63 100644
--- a/IO/Core/vtkTextCodecFactory.cxx
+++ b/IO/Core/vtkTextCodecFactory.cxx
@@ -30,6 +30,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTextCodecFactory);
 
 class vtkTextCodecFactory::CallbackVector : public std::vector<vtkTextCodecFactory::CreateFunction>
@@ -191,3 +192,4 @@ void vtkTextCodecFactory::Initialize()
 vtkTextCodecFactory::vtkTextCodecFactory() = default;
 
 vtkTextCodecFactory::~vtkTextCodecFactory() = default;
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkTextCodecFactory.h b/IO/Core/vtkTextCodecFactory.h
index b6bad4c12fbc161a804e01bad6bc8ac1725db689..368c1e685d0cd5c75fe24f2972a3994599747ddd 100644
--- a/IO/Core/vtkTextCodecFactory.h
+++ b/IO/Core/vtkTextCodecFactory.h
@@ -42,6 +42,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTextCodec;
 
 class VTKIOCORE_EXPORT vtkTextCodecFactory : public vtkObject
@@ -104,4 +105,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTextCodecFactory_h
diff --git a/IO/Core/vtkUTF16TextCodec.cxx b/IO/Core/vtkUTF16TextCodec.cxx
index a17e61c24b5218d622ea89194d5ad8b82636b4c6..bc94a5947fe57dd6a5c2e23efa2f871a48e316d3 100644
--- a/IO/Core/vtkUTF16TextCodec.cxx
+++ b/IO/Core/vtkUTF16TextCodec.cxx
@@ -25,6 +25,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <stdexcept>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUTF16TextCodec);
 
 namespace
@@ -183,3 +184,4 @@ void vtkUTF16TextCodec::PrintSelf(ostream& os, vtkIndent indent)
   indent = indent.GetNextIndent();
   this->Superclass::PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkUTF16TextCodec.h b/IO/Core/vtkUTF16TextCodec.h
index cc445364e9614c9d93b6247e98b0fd54228eddb0..2aba052bc57bd20bb1725f241a7241165a401332 100644
--- a/IO/Core/vtkUTF16TextCodec.h
+++ b/IO/Core/vtkUTF16TextCodec.h
@@ -40,6 +40,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkTextCodec.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkUTF16TextCodec : public vtkTextCodec
 {
 public:
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkUTF16TextCodec&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkUTF8TextCodec.cxx b/IO/Core/vtkUTF8TextCodec.cxx
index 6664682b288e3b5bc6bca0b0ec16bc06e9aaf50a..0ca744faf4a6ee8ea323a5285516615e831bbff0 100644
--- a/IO/Core/vtkUTF8TextCodec.cxx
+++ b/IO/Core/vtkUTF8TextCodec.cxx
@@ -25,6 +25,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <vtk_utf8.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUTF8TextCodec);
 
 void vtkUTF8TextCodec::ToUnicode(istream& InputStream, vtkTextCodec::OutputIterator& Output)
@@ -87,3 +88,4 @@ void vtkUTF8TextCodec::PrintSelf(ostream& os, vtkIndent indent)
   indent = indent.GetNextIndent();
   this->Superclass::PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkUTF8TextCodec.h b/IO/Core/vtkUTF8TextCodec.h
index 69a26f6667f60641e0cefbec82a84eb8af34415e..d33bf04c39b51a0c24320bb56ae4d0f4aea95752 100644
--- a/IO/Core/vtkUTF8TextCodec.h
+++ b/IO/Core/vtkUTF8TextCodec.h
@@ -40,6 +40,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkIOCoreModule.h" // For export macro
 #include "vtkTextCodec.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkUTF8TextCodec : public vtkTextCodec
 {
 public:
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkUTF8TextCodec&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkUpdateCellsV8toV9.h b/IO/Core/vtkUpdateCellsV8toV9.h
index 2562d677ddb1bee5477cac168bc5a45796fe5fdd..ade01db58e8a859cd8b7535d9eacef86043b972e 100644
--- a/IO/Core/vtkUpdateCellsV8toV9.h
+++ b/IO/Core/vtkUpdateCellsV8toV9.h
@@ -30,6 +30,7 @@
 #include "vtkNew.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 inline void vtkUpdateCellsV8toV9(vtkUnstructuredGrid* output)
 {
   vtkNew<vtkIdList> oldpts, newpts;
@@ -87,5 +88,6 @@ inline bool vtkNeedsNewFileVersionV8toV9(vtkUnsignedCharArray* distinctCellTypes
   return false;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkUpdateCellsV8toV9_h
 // VTK-HeaderTest-Exclude: vtkUpdateCellsV8toV9.h
diff --git a/IO/Core/vtkWriter.cxx b/IO/Core/vtkWriter.cxx
index a0da3f4a54b79af38e0116e7b906e90ca0386cb4..4c76b8cf6adbd66886c3451ddc5ed780cb976dd8 100644
--- a/IO/Core/vtkWriter.cxx
+++ b/IO/Core/vtkWriter.cxx
@@ -24,6 +24,7 @@
 #include <sstream>
 
 // Construct with no start and end write methods or arguments.
+VTK_ABI_NAMESPACE_BEGIN
 vtkWriter::vtkWriter()
 {
   this->SetNumberOfInputPorts(1);
@@ -184,3 +185,4 @@ void vtkWriter::EncodeWriteString(ostream* out, const char* name, bool doublePer
     cc++;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkWriter.h b/IO/Core/vtkWriter.h
index d16bf22df17ec3f4608149048baa76617aa653f7..3eca5b0e6179dd2667789ae2ba96bf1214be33dc 100644
--- a/IO/Core/vtkWriter.h
+++ b/IO/Core/vtkWriter.h
@@ -34,6 +34,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkIOCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 
 #define VTK_ASCII 1
@@ -97,4 +98,5 @@ private:
   void operator=(const vtkWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Core/vtkZLibDataCompressor.cxx b/IO/Core/vtkZLibDataCompressor.cxx
index f78fc497e21902c1f740c16f423af8a1a68058d4..f7018a6e2af9c6cf951028e1e26f1fd407a50a6d 100644
--- a/IO/Core/vtkZLibDataCompressor.cxx
+++ b/IO/Core/vtkZLibDataCompressor.cxx
@@ -16,6 +16,7 @@
 #include "vtkObjectFactory.h"
 #include "vtk_zlib.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkZLibDataCompressor);
 
 //------------------------------------------------------------------------------
@@ -110,3 +111,4 @@ size_t vtkZLibDataCompressor::GetMaximumCompressionSpace(size_t size)
   // ZLib specifies that destination buffer must be 0.1% larger + 12 bytes.
   return size + (size + 999) / 1000 + 12;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Core/vtkZLibDataCompressor.h b/IO/Core/vtkZLibDataCompressor.h
index 39c0951747d3ba2a0f11a246126db612967834e1..5cd35ac6aebf9da4f30e7f485f1cf6b55090ecb3 100644
--- a/IO/Core/vtkZLibDataCompressor.h
+++ b/IO/Core/vtkZLibDataCompressor.h
@@ -26,6 +26,7 @@
 #include "vtkDataCompressor.h"
 #include "vtkIOCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOCORE_EXPORT vtkZLibDataCompressor : public vtkDataCompressor
 {
 public:
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkZLibDataCompressor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/EnSight/vtkEnSight6BinaryReader.cxx b/IO/EnSight/vtkEnSight6BinaryReader.cxx
index 768ab236519d2ed1fd42cda46b099199dcc5e745..d0e363d54320df5e73abe4ccd4ca73c9d992b603 100644
--- a/IO/EnSight/vtkEnSight6BinaryReader.cxx
+++ b/IO/EnSight/vtkEnSight6BinaryReader.cxx
@@ -50,6 +50,7 @@
 #define VTK_STAT_FUNC stat64
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEnSight6BinaryReader);
 
 //------------------------------------------------------------------------------
@@ -2850,3 +2851,4 @@ void vtkEnSight6BinaryReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/EnSight/vtkEnSight6BinaryReader.h b/IO/EnSight/vtkEnSight6BinaryReader.h
index 55d6369c73db79ae7cc1858f3a7d3ad679150bae..427a013bdcbf7aea5209b674244649af50b07775 100644
--- a/IO/EnSight/vtkEnSight6BinaryReader.h
+++ b/IO/EnSight/vtkEnSight6BinaryReader.h
@@ -41,6 +41,7 @@
 #include "vtkEnSightReader.h"
 #include "vtkIOEnSightModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkIdTypeArray;
 class vtkPoints;
@@ -193,4 +194,5 @@ private:
   void operator=(const vtkEnSight6BinaryReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/EnSight/vtkEnSight6Reader.cxx b/IO/EnSight/vtkEnSight6Reader.cxx
index 1542d42204916b394d452ee4b69bef8e157d1a29..368efd9d469cd89351274a6356ed41e287065401 100644
--- a/IO/EnSight/vtkEnSight6Reader.cxx
+++ b/IO/EnSight/vtkEnSight6Reader.cxx
@@ -33,6 +33,7 @@
 #include <cctype>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEnSight6Reader);
 
 //------------------------------------------------------------------------------
@@ -2194,3 +2195,4 @@ void vtkEnSight6Reader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/EnSight/vtkEnSight6Reader.h b/IO/EnSight/vtkEnSight6Reader.h
index 9302f048d17a8ed5a2220e89815fff21595c524b..b829c0dcee8847997b3f5a1ab72bfaf5ed85a5c5 100644
--- a/IO/EnSight/vtkEnSight6Reader.h
+++ b/IO/EnSight/vtkEnSight6Reader.h
@@ -41,6 +41,7 @@
 #include "vtkEnSightReader.h"
 #include "vtkIOEnSightModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class vtkIdTypeArray;
 class vtkPoints;
@@ -148,4 +149,5 @@ private:
   void operator=(const vtkEnSight6Reader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/EnSight/vtkEnSightGoldBinaryReader.cxx b/IO/EnSight/vtkEnSightGoldBinaryReader.cxx
index 9ec5d9445759b094a633ffd478fdf02253141c06..5a3933decab5c3f538efe1779c420267c963a117 100644
--- a/IO/EnSight/vtkEnSightGoldBinaryReader.cxx
+++ b/IO/EnSight/vtkEnSightGoldBinaryReader.cxx
@@ -55,6 +55,7 @@
 #define VTK_STAT_FUNC stat64
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEnSightGoldBinaryReader::vtkUtilities
 {
   static int GetDestinationComponent(int srcComponent, int numComponents)
@@ -3624,3 +3625,4 @@ void vtkEnSightGoldBinaryReader::AddFileIndexToCache(const char* fileName)
   }
   this->GoldIFile->seekg(0l, ios::beg);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/EnSight/vtkEnSightGoldBinaryReader.h b/IO/EnSight/vtkEnSightGoldBinaryReader.h
index dd88876ad9708b9c823d529026c58218fa250c9d..aa9768efe3d06faf1d3ab890ff779dfaa7975cc1 100644
--- a/IO/EnSight/vtkEnSightGoldBinaryReader.h
+++ b/IO/EnSight/vtkEnSightGoldBinaryReader.h
@@ -43,6 +43,7 @@
 #include "vtkEnSightReader.h"
 #include "vtkIOEnSightModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 
 class VTKIOENSIGHT_EXPORT vtkEnSightGoldBinaryReader : public vtkEnSightReader
@@ -279,4 +280,5 @@ private:
   friend class vtkUtilities;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/EnSight/vtkEnSightGoldReader.cxx b/IO/EnSight/vtkEnSightGoldReader.cxx
index f60c0ae6228bd3c66f795ae2c0a2c8610d17bf5f..45d7fdd2d79cc9a29bf2e4d2add9bac31c4f6c6f 100644
--- a/IO/EnSight/vtkEnSightGoldReader.cxx
+++ b/IO/EnSight/vtkEnSightGoldReader.cxx
@@ -37,6 +37,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEnSightGoldReader);
 
 class vtkEnSightGoldReader::FileOffsetMapInternal
@@ -2694,3 +2695,4 @@ void vtkEnSightGoldReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/EnSight/vtkEnSightGoldReader.h b/IO/EnSight/vtkEnSightGoldReader.h
index 42653f01f28148bbdbb02dca9e664a5b39620ef0..95aaf558eaa8613b2ba3f067012bfd708c82965b 100644
--- a/IO/EnSight/vtkEnSightGoldReader.h
+++ b/IO/EnSight/vtkEnSightGoldReader.h
@@ -43,6 +43,7 @@
 #include "vtkEnSightReader.h"
 #include "vtkIOEnSightModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 
 class VTKIOENSIGHT_EXPORT vtkEnSightGoldReader : public vtkEnSightReader
@@ -182,4 +183,5 @@ private:
   friend class UndefPartialHelper;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/EnSight/vtkEnSightMasterServerReader.cxx b/IO/EnSight/vtkEnSightMasterServerReader.cxx
index 64369d479ab6a9fc7bc428c7e0354819c82418b2..9fc94469d1393f2b085dbffa9dd0fddb048f1e2f 100644
--- a/IO/EnSight/vtkEnSightMasterServerReader.cxx
+++ b/IO/EnSight/vtkEnSightMasterServerReader.cxx
@@ -23,6 +23,7 @@
 #include <string>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEnSightMasterServerReader);
 
 static int vtkEnSightMasterServerReaderStartsWith(const char* str1, const char* str2)
@@ -208,3 +209,4 @@ void vtkEnSightMasterServerReader::PrintSelf(ostream& os, vtkIndent indent)
      << endl;
   os << indent << "Maximum number of pieces: " << this->MaxNumberOfPieces << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/EnSight/vtkEnSightMasterServerReader.h b/IO/EnSight/vtkEnSightMasterServerReader.h
index 31fa714b061f3245f3589e0c5e650a2f4bed43b9..4bfec42c2becbf7342fe3760ac8add4f68d7c673 100644
--- a/IO/EnSight/vtkEnSightMasterServerReader.h
+++ b/IO/EnSight/vtkEnSightMasterServerReader.h
@@ -23,6 +23,7 @@
 #include "vtkGenericEnSightReader.h"
 #include "vtkIOEnSightModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCollection;
 
 class VTKIOENSIGHT_EXPORT vtkEnSightMasterServerReader : public vtkGenericEnSightReader
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkEnSightMasterServerReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/EnSight/vtkEnSightReader.cxx b/IO/EnSight/vtkEnSightReader.cxx
index 50d6e09578a3399c04394bba111aafef5052390c..74edcb5e313309af4fb0e081b3d2b60f11c5b0df 100644
--- a/IO/EnSight/vtkEnSightReader.cxx
+++ b/IO/EnSight/vtkEnSightReader.cxx
@@ -36,6 +36,7 @@
 
 //------------------------------------------------------------------------------
 typedef std::vector<vtkSmartPointer<vtkIdList>> vtkEnSightReaderCellIdsTypeBase;
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEnSightReaderCellIdsType : public vtkEnSightReaderCellIdsTypeBase
 {
 };
@@ -2168,3 +2169,4 @@ void vtkEnSightReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "UseTimeSets: " << this->UseTimeSets << endl;
   os << indent << "UseFileSets: " << this->UseFileSets << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/EnSight/vtkEnSightReader.h b/IO/EnSight/vtkEnSightReader.h
index b359450f7a838067f4507c3b8116b2509f956589..3d00307bee465f250dce6e389f73704546e8f726 100644
--- a/IO/EnSight/vtkEnSightReader.h
+++ b/IO/EnSight/vtkEnSightReader.h
@@ -23,6 +23,7 @@
 #include "vtkGenericEnSightReader.h"
 #include "vtkIOEnSightModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkDataSetCollection;
 class vtkEnSightReaderCellIdsType;
@@ -349,4 +350,5 @@ private:
   void operator=(const vtkEnSightReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/EnSight/vtkGenericEnSightReader.cxx b/IO/EnSight/vtkGenericEnSightReader.cxx
index 098217c31fff31543850738ef080e1ac37dae633..abaee8ea2e93993d7fc05fdf7ca37e8e8cb12abe 100644
--- a/IO/EnSight/vtkGenericEnSightReader.cxx
+++ b/IO/EnSight/vtkGenericEnSightReader.cxx
@@ -36,6 +36,7 @@
 #include <map>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericEnSightReader);
 
 vtkCxxSetObjectMacro(vtkGenericEnSightReader, TimeSets, vtkDataArrayCollection);
@@ -1618,3 +1619,4 @@ int vtkGenericEnSightReader::FillOutputPortInformation(int vtkNotUsed(port), vtk
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkMultiBlockDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/EnSight/vtkGenericEnSightReader.h b/IO/EnSight/vtkGenericEnSightReader.h
index e80502fd59c6e01bac4ab2302d14fceb19c747cf..884eb03210e00759eb0e3a6f5a1e25f1fe7d2f4e 100644
--- a/IO/EnSight/vtkGenericEnSightReader.h
+++ b/IO/EnSight/vtkGenericEnSightReader.h
@@ -26,6 +26,7 @@
 #include "vtkIOEnSightModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkDataArrayCollection;
 class vtkDataArraySelection;
@@ -464,4 +465,5 @@ private:
   void operator=(const vtkGenericEnSightReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Exodus/vtkCPExodusIIElementBlock.cxx b/IO/Exodus/vtkCPExodusIIElementBlock.cxx
index 036424feaa2008572440426757a1882f4441f8d5..1701281d41bb457f5bcb05737308b97d7db80686 100644
--- a/IO/Exodus/vtkCPExodusIIElementBlock.cxx
+++ b/IO/Exodus/vtkCPExodusIIElementBlock.cxx
@@ -25,6 +25,7 @@
 #include <algorithm>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCPExodusIIElementBlock);
 vtkStandardNewMacro(vtkCPExodusIIElementBlockImpl);
 
@@ -218,3 +219,4 @@ vtkCPExodusIIElementBlockImpl::~vtkCPExodusIIElementBlockImpl()
 {
   delete[] this->Elements;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Exodus/vtkCPExodusIIElementBlock.h b/IO/Exodus/vtkCPExodusIIElementBlock.h
index ada36a60b0f115cc9d721e9265029a62f73ac22a..bd3746cc2f8b3a2cbd4f6e12f959ba551d632240 100644
--- a/IO/Exodus/vtkCPExodusIIElementBlock.h
+++ b/IO/Exodus/vtkCPExodusIIElementBlock.h
@@ -34,6 +34,7 @@
 
 #include <string> // For std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericCell;
 
 class VTKIOEXODUS_EXPORT vtkCPExodusIIElementBlockImpl : public vtkObject
@@ -106,4 +107,5 @@ private:
 vtkMakeExportedMappedUnstructuredGrid(
   vtkCPExodusIIElementBlock, vtkCPExodusIIElementBlockImpl, VTKIOEXODUS_EXPORT);
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCPExodusIIElementBlock_h
diff --git a/IO/Exodus/vtkCPExodusIIElementBlockCellIterator.cxx b/IO/Exodus/vtkCPExodusIIElementBlockCellIterator.cxx
index 2595c7804adc1aa756107b8f7d3adc42da4adcbc..421f0361fd796949aca05db2be978f16abae6ccb 100644
--- a/IO/Exodus/vtkCPExodusIIElementBlockCellIterator.cxx
+++ b/IO/Exodus/vtkCPExodusIIElementBlockCellIterator.cxx
@@ -22,6 +22,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCPExodusIIElementBlockCellIterator);
 
 //------------------------------------------------------------------------------
@@ -109,3 +110,4 @@ void vtkCPExodusIIElementBlockCellIterator::SetStorage(vtkCPExodusIIElementBlock
   }
   this->CellId = 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Exodus/vtkCPExodusIIElementBlockCellIterator.h b/IO/Exodus/vtkCPExodusIIElementBlockCellIterator.h
index 747801f746a619cd60f2f8e7c57690899a1c4323..0d8dd6a205cc31e9f8268789ec3574062b2140da 100644
--- a/IO/Exodus/vtkCPExodusIIElementBlockCellIterator.h
+++ b/IO/Exodus/vtkCPExodusIIElementBlockCellIterator.h
@@ -26,6 +26,7 @@
 
 #include "vtkSmartPointer.h" // For smart pointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCPExodusIIElementBlock;
 class vtkCPExodusIIElementBlockPrivate;
 
@@ -63,4 +64,5 @@ private:
   vtkIdType CellId;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCPExodusIIElementBlockCellIterator_h
diff --git a/IO/Exodus/vtkCPExodusIIInSituReader.cxx b/IO/Exodus/vtkCPExodusIIInSituReader.cxx
index 9b6ebf39172a0aca4be507d694ecd1e741de1b75..df66e0c9d3cbfdb3ba09727fa3e6800c922cddea 100644
--- a/IO/Exodus/vtkCPExodusIIInSituReader.cxx
+++ b/IO/Exodus/vtkCPExodusIIInSituReader.cxx
@@ -30,6 +30,7 @@
 
 #include "vtk_exodusII.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCPExodusIIInSituReader);
 
 //------------------------------------------------------------------------------
@@ -422,3 +423,4 @@ void vtkCPExodusIIInSituReader::ExClose()
   ex_close(this->FileId);
   this->FileId = -1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Exodus/vtkCPExodusIIInSituReader.h b/IO/Exodus/vtkCPExodusIIInSituReader.h
index d1a4854d64ef9d730d7050a6aac50508dc63b2b1..93a4e8a2aff13c1f44ff2e2396e72e3eda8c9035 100644
--- a/IO/Exodus/vtkCPExodusIIInSituReader.h
+++ b/IO/Exodus/vtkCPExodusIIInSituReader.h
@@ -34,6 +34,7 @@
 #include <string>   // For std::string
 #include <vector>   // For std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArrayCollection;
 class vtkPointData;
 class vtkPoints;
@@ -115,4 +116,5 @@ private:
   int CurrentTimeStep;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCPExodusIIInSituReader_h
diff --git a/IO/Exodus/vtkCPExodusIINodalCoordinatesTemplate.h b/IO/Exodus/vtkCPExodusIINodalCoordinatesTemplate.h
index 2c173b6605b32f2a0ff7bc865f75f626abe0ae6e..39b43bf1437c4324a0bc510df5e069da73bffdf6 100644
--- a/IO/Exodus/vtkCPExodusIINodalCoordinatesTemplate.h
+++ b/IO/Exodus/vtkCPExodusIINodalCoordinatesTemplate.h
@@ -32,6 +32,7 @@
 
 #include "vtkObjectFactory.h" // for vtkStandardNewMacro
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class Scalar>
 class vtkCPExodusIINodalCoordinatesTemplate : public vtkMappedDataArray<Scalar>
 {
@@ -125,6 +126,7 @@ private:
   double* TempDoubleArray;
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkCPExodusIINodalCoordinatesTemplate.txx"
 
 #endif // vtkCPExodusIINodalCoordinatesTemplate_h
diff --git a/IO/Exodus/vtkCPExodusIINodalCoordinatesTemplate.txx b/IO/Exodus/vtkCPExodusIINodalCoordinatesTemplate.txx
index 2552a147e79e6e8d169ecb1bd8712ece2358b66d..a911f81b6653d6463acb1bb7ccbcbf827c5ce546 100644
--- a/IO/Exodus/vtkCPExodusIINodalCoordinatesTemplate.txx
+++ b/IO/Exodus/vtkCPExodusIINodalCoordinatesTemplate.txx
@@ -22,6 +22,7 @@
 
 //------------------------------------------------------------------------------
 // Can't use vtkStandardNewMacro with a template.
+VTK_ABI_NAMESPACE_BEGIN
 template <class Scalar>
 vtkCPExodusIINodalCoordinatesTemplate<Scalar>* vtkCPExodusIINodalCoordinatesTemplate<Scalar>::New()
 {
@@ -543,3 +544,4 @@ vtkIdType vtkCPExodusIINodalCoordinatesTemplate<Scalar>::Lookup(const Scalar& va
   }
   return -1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Exodus/vtkCPExodusIIResultsArrayTemplate.h b/IO/Exodus/vtkCPExodusIIResultsArrayTemplate.h
index 56e75714a3a0666522fbcee75512f329e888b995..838a6b774cceb483499cab705a6b9fcb65c6565b 100644
--- a/IO/Exodus/vtkCPExodusIIResultsArrayTemplate.h
+++ b/IO/Exodus/vtkCPExodusIIResultsArrayTemplate.h
@@ -31,6 +31,7 @@
 
 #include "vtkObjectFactory.h" // for vtkStandardNewMacro
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class Scalar>
 class vtkCPExodusIIResultsArrayTemplate : public vtkMappedDataArray<Scalar>
 {
@@ -133,6 +134,7 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkCPExodusIIResultsArrayTemplate.txx"
 
 #endif // vtkCPExodusIIResultsArrayTemplate_h
diff --git a/IO/Exodus/vtkCPExodusIIResultsArrayTemplate.txx b/IO/Exodus/vtkCPExodusIIResultsArrayTemplate.txx
index 23da7da13884460648aebefe246a873450b5659d..9a9c7f812d3a04b7d1dc1b07b7a5b655b257a0b8 100644
--- a/IO/Exodus/vtkCPExodusIIResultsArrayTemplate.txx
+++ b/IO/Exodus/vtkCPExodusIIResultsArrayTemplate.txx
@@ -22,6 +22,7 @@
 
 //------------------------------------------------------------------------------
 // Can't use vtkStandardNewMacro on a templated class.
+VTK_ABI_NAMESPACE_BEGIN
 template <class Scalar>
 vtkCPExodusIIResultsArrayTemplate<Scalar>* vtkCPExodusIIResultsArrayTemplate<Scalar>::New()
 {
@@ -550,3 +551,4 @@ vtkIdType vtkCPExodusIIResultsArrayTemplate<Scalar>::Lookup(const Scalar& val, v
   }
   return -1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Exodus/vtkExodusIICache.cxx b/IO/Exodus/vtkExodusIICache.cxx
index 8c9fdac67e5e782ce1806c3092db349670f621cb..c56d55328a562b1391fc0bc05a3fcd92661b912d 100644
--- a/IO/Exodus/vtkExodusIICache.cxx
+++ b/IO/Exodus/vtkExodusIICache.cxx
@@ -16,6 +16,7 @@
   " [" << (cval) << ", " << ((cval) ? (cval)->GetActualMemorySize() / 1024. : 0.) << "]"
 
 #if 0
+VTK_ABI_NAMESPACE_BEGIN
 static void printCache( vtkExodusIICacheSet& cache, vtkExodusIICacheLRU& lru )
 {
   cout << "Cache\n";
@@ -31,9 +32,11 @@ static void printCache( vtkExodusIICacheSet& cache, vtkExodusIICacheLRU& lru )
     cout << VTK_EXO_PRT_KEY( (*lit)->first ) << "\n";
   }
 }
+VTK_ABI_NAMESPACE_END
 #endif // 0
 
 // ============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkExodusIICacheEntry::vtkExodusIICacheEntry()
 {
   this->Value = nullptr;
@@ -289,3 +292,4 @@ void vtkExodusIICache::RecomputeSize()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Exodus/vtkExodusIICache.h b/IO/Exodus/vtkExodusIICache.h
index 658c85a639dee0c86bd4ce205474317b14446ead..4e3325e17adc4dff75f12030204d3205d7b99618 100644
--- a/IO/Exodus/vtkExodusIICache.h
+++ b/IO/Exodus/vtkExodusIICache.h
@@ -29,6 +29,7 @@
 #include <list> // use for LRU ordering
 #include <map>  // used for cache storage
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOEXODUS_EXPORT vtkExodusIICacheKey
 {
 public:
@@ -199,4 +200,5 @@ private:
   vtkExodusIICache(const vtkExodusIICache&) = delete;
   void operator=(const vtkExodusIICache&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif // vtkExodusIICache_h
diff --git a/IO/Exodus/vtkExodusIIReader.cxx b/IO/Exodus/vtkExodusIIReader.cxx
index 0381612ecc475098aa2581465f79896028a35ff7..87d73f54b4dac5dfbb185e534b21978e9f62c826 100644
--- a/IO/Exodus/vtkExodusIIReader.cxx
+++ b/IO/Exodus/vtkExodusIIReader.cxx
@@ -86,6 +86,7 @@
   } while (false)
 
 // ------------------------------------------------------------------- CONSTANTS
+VTK_ABI_NAMESPACE_BEGIN
 static int obj_types[] = { EX_EDGE_BLOCK, EX_FACE_BLOCK, EX_ELEM_BLOCK, EX_NODE_SET, EX_EDGE_SET,
   EX_FACE_SET, EX_SIDE_SET, EX_ELEM_SET, EX_NODE_MAP, EX_EDGE_MAP, EX_FACE_MAP, EX_ELEM_MAP,
   EX_NODAL };
@@ -139,10 +140,12 @@ extern "C"
 }
 
 // --------------------------------------------------- PRIVATE CLASS DECLARATION
+VTK_ABI_NAMESPACE_END
 #include "vtkExodusIIReaderPrivate.h"
 #include "vtkExodusIIReaderVariableCheck.h"
 
 // --------------------------------------------------- PRIVATE CLASS Implementations
+VTK_ABI_NAMESPACE_BEGIN
 vtkExodusIIReaderPrivate::BlockSetInfoType::BlockSetInfoType(
   const vtkExodusIIReaderPrivate::BlockSetInfoType& block)
   : vtkExodusIIReaderPrivate::ObjectInfoType(block)
@@ -6762,3 +6765,4 @@ void vtkExodusIIReader::ResetCache()
 {
   this->Metadata->ResetCache();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Exodus/vtkExodusIIReader.h b/IO/Exodus/vtkExodusIIReader.h
index 6d3e8b5bcf3eaf59f21a2048c34a1692e59cbc55..050d5fcc5a52d26bd62f7ea372baa33d73f604eb 100644
--- a/IO/Exodus/vtkExodusIIReader.h
+++ b/IO/Exodus/vtkExodusIIReader.h
@@ -40,6 +40,7 @@
 #include "vtkIOExodusModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkDataSet;
 class vtkExodusIICache;
@@ -920,4 +921,5 @@ private:
   bool UseLegacyBlockNames;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Exodus/vtkExodusIIReaderParser.cxx b/IO/Exodus/vtkExodusIIReaderParser.cxx
index d944e7501ffe5f18dce9e845a26e7ae92e0185c2..8c105110012cef0b25e53337c13461a46d4a5246 100644
--- a/IO/Exodus/vtkExodusIIReaderParser.cxx
+++ b/IO/Exodus/vtkExodusIIReaderParser.cxx
@@ -23,6 +23,7 @@
 #include <cassert>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExodusIIReaderParser);
 //------------------------------------------------------------------------------
 vtkExodusIIReaderParser::vtkExodusIIReaderParser()
@@ -430,3 +431,4 @@ void vtkExodusIIReaderParser::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "SIL: " << this->SIL << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Exodus/vtkExodusIIReaderParser.h b/IO/Exodus/vtkExodusIIReaderParser.h
index fd743b23783f024bfe9a59176ca695089136d3af..b90b4cbb4de4abd383fac95317e75aa660a680e7 100644
--- a/IO/Exodus/vtkExodusIIReaderParser.h
+++ b/IO/Exodus/vtkExodusIIReaderParser.h
@@ -32,6 +32,7 @@
 #include <string> // for std::string
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMutableDirectedGraph;
 class vtkStringArray;
 class vtkUnsignedCharArray;
@@ -172,4 +173,5 @@ private:
   void operator=(const vtkExodusIIReaderParser&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Exodus/vtkExodusIIReaderPrivate.h b/IO/Exodus/vtkExodusIIReaderPrivate.h
index 32e6fa55b25a514870669008a45e1eb493bb532e..f57eef68b3474d07f4317d2d14be58617b0073da 100644
--- a/IO/Exodus/vtkExodusIIReaderPrivate.h
+++ b/IO/Exodus/vtkExodusIIReaderPrivate.h
@@ -15,6 +15,7 @@
 
 #include "vtkIOExodusModule.h" // For export macro
 #include "vtk_exodusII.h"      // for exodus APIs
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkExodusIIReaderParser;
 class vtkIdTypeArray;
@@ -862,4 +863,5 @@ private:
   void operator=(const vtkExodusIIReaderPrivate&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkExodusIIReaderPrivate_h
diff --git a/IO/Exodus/vtkExodusIIReaderVariableCheck.cxx b/IO/Exodus/vtkExodusIIReaderVariableCheck.cxx
index 7cd2a59762c421b3b270b0bb7bd4092bb25d71e5..5db57718b58c01fb2a61333f0b379d97cd6b8183 100644
--- a/IO/Exodus/vtkExodusIIReaderVariableCheck.cxx
+++ b/IO/Exodus/vtkExodusIIReaderVariableCheck.cxx
@@ -13,6 +13,7 @@
 
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 bool vtkExodusIIReaderVariableCheck::Start(std::string name, const int* truth, int numTruth)
 {
   this->SeqTruth.clear();
@@ -461,3 +462,4 @@ bool vtkExodusIIReaderIntPointCheck::AddIntegrationPoint(std::string iptName)
   }
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Exodus/vtkExodusIIReaderVariableCheck.h b/IO/Exodus/vtkExodusIIReaderVariableCheck.h
index 3ebd62ca22b056fdc531c9933a0789afa7fd0ef6..b537bf53906be54b161a626159dd13220e5e7af8 100644
--- a/IO/Exodus/vtkExodusIIReaderVariableCheck.h
+++ b/IO/Exodus/vtkExodusIIReaderVariableCheck.h
@@ -14,6 +14,7 @@
  * are related to each other (and should thus be glommed into a single
  * VTK array).
  */
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExodusIIReaderVariableCheck
 {
 public:
@@ -120,5 +121,6 @@ protected:
   bool StillAdding;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkExodusIIReaderVariableCheck_h
 // VTK-HeaderTest-Exclude: vtkExodusIIReaderVariableCheck.h
diff --git a/IO/Exodus/vtkExodusIIWriter.cxx b/IO/Exodus/vtkExodusIIWriter.cxx
index 7e75a1c4b3030d248e8621256635767a81d5b4a9..c2d6776fa670d384149e4d944d3e60bbfc496939 100644
--- a/IO/Exodus/vtkExodusIIWriter.cxx
+++ b/IO/Exodus/vtkExodusIIWriter.cxx
@@ -50,6 +50,7 @@
 #include <map>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkExodusIIWriter);
 vtkCxxSetObjectMacro(vtkExodusIIWriter, ModelMetadata, vtkModelMetadata);
 
@@ -3293,3 +3294,4 @@ vtkIntArray* vtkExodusIIWriter::GetBlockIdArray(const char* name, vtkUnstructure
   }
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Exodus/vtkExodusIIWriter.h b/IO/Exodus/vtkExodusIIWriter.h
index 4c23919b1f9a71a5ff027e9a7ffe8852ad41d6fb..16f24533340104e4f1ac41c2eb80396a4d009c47 100644
--- a/IO/Exodus/vtkExodusIIWriter.h
+++ b/IO/Exodus/vtkExodusIIWriter.h
@@ -76,6 +76,7 @@
 #include <string> // STL Header
 #include <vector> // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkModelMetadata;
 class vtkDoubleArray;
 class vtkIntArray;
@@ -369,4 +370,5 @@ private:
   void operator=(const vtkExodusIIWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Exodus/vtkModelMetadata.cxx b/IO/Exodus/vtkModelMetadata.cxx
index 6712547a5d635332d96d18f9fea72fcbf4406875..77fe00591938d19cce2084aec40e93eda9c12426 100644
--- a/IO/Exodus/vtkModelMetadata.cxx
+++ b/IO/Exodus/vtkModelMetadata.cxx
@@ -33,12 +33,15 @@
 #include "vtkStringArray.h"
 #include <ctime>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkModelMetadata);
 
+VTK_ABI_NAMESPACE_END
 #include <algorithm>
 #include <map>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkModelMetadataSTLCloak
 {
 public:
@@ -1303,3 +1306,4 @@ void vtkModelMetadata::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "AllVariablesDefinedInAllBlocks: " << this->AllVariablesDefinedInAllBlocks
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Exodus/vtkModelMetadata.h b/IO/Exodus/vtkModelMetadata.h
index 8592d138bbd011f4e9182c55e9877ada6e34f56c..af6d17a83b4bfbaf3e925dfcc2fbf2dc09dd4f74 100644
--- a/IO/Exodus/vtkModelMetadata.h
+++ b/IO/Exodus/vtkModelMetadata.h
@@ -77,6 +77,7 @@
 #include "vtkObject.h"
 #include "vtkSmartPointer.h" // for vtkSmartPointer
 #include "vtkStringArray.h"  // for vtkStringArray
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkCharArray;
 class vtkIdTypeArray;
@@ -827,4 +828,5 @@ private:
   vtkModelMetadata(const vtkModelMetadata&) = delete;
   void operator=(const vtkModelMetadata&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkExporter.cxx b/IO/Export/vtkExporter.cxx
index ed7a36c1e14da77e7cd3a10ca583421bfba7ef99..dc1f8841d6f6f3d18e92325c2b758b6a994a7c8e 100644
--- a/IO/Export/vtkExporter.cxx
+++ b/IO/Export/vtkExporter.cxx
@@ -17,6 +17,7 @@
 #include "vtkRenderWindow.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkExporter, RenderWindow, vtkRenderWindow);
 vtkCxxSetObjectMacro(vtkExporter, ActiveRenderer, vtkRenderer);
 
@@ -188,3 +189,4 @@ vtkMTimeType vtkExporter::GetMTime()
   }
   return mTime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkExporter.h b/IO/Export/vtkExporter.h
index 0a3652acd7653684ea88445f04d621221b5ecdc0..0f94857c82598bb2dffa797541240873e8b4bc59 100644
--- a/IO/Export/vtkExporter.h
+++ b/IO/Export/vtkExporter.h
@@ -41,6 +41,7 @@
 
 #include "vtkIOExportModule.h" // For export macro
 #include "vtkObject.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindow;
 class vtkRenderer;
 
@@ -140,4 +141,5 @@ private:
   void operator=(const vtkExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkGLTFExporter.cxx b/IO/Export/vtkGLTFExporter.cxx
index af618f24bbe6eaa060a16ba9bbd3f50b5b0a693f..96bd3c64b5265ddcdf896f620b63c84af84123ba 100644
--- a/IO/Export/vtkGLTFExporter.cxx
+++ b/IO/Export/vtkGLTFExporter.cxx
@@ -49,6 +49,7 @@
 #include "vtksys/FStream.hxx"
 #include "vtksys/SystemTools.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGLTFExporter);
 
 vtkGLTFExporter::vtkGLTFExporter()
@@ -680,3 +681,4 @@ void vtkGLTFExporter::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "FileName: (null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkGLTFExporter.h b/IO/Export/vtkGLTFExporter.h
index 8cbabe00023bf1c42cd560a92a07853b48c03de2..bd1f64fa01fc8ce41637aa340489b1e18ed62182 100644
--- a/IO/Export/vtkGLTFExporter.h
+++ b/IO/Export/vtkGLTFExporter.h
@@ -40,6 +40,7 @@
 
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOEXPORT_EXPORT vtkGLTFExporter : public vtkExporter
 {
 public:
@@ -120,4 +121,5 @@ private:
   void operator=(const vtkGLTFExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkIVExporter.cxx b/IO/Export/vtkIVExporter.cxx
index d86b2434a31af91962f6be7f0c77538775f79b8d..2bcca99c119946f1faddd0e22ead6c4ed7ac7cd0 100644
--- a/IO/Export/vtkIVExporter.cxx
+++ b/IO/Export/vtkIVExporter.cxx
@@ -35,6 +35,7 @@
 #include "vtkUnsignedCharArray.h"
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIVExporter);
 
 vtkIVExporter::vtkIVExporter()
@@ -710,3 +711,4 @@ void vtkIVExporter::PrintSelf(ostream& os, vtkIndent ind)
     os << ind << "FileName: (null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkIVExporter.h b/IO/Export/vtkIVExporter.h
index 150865946de66d8fffeda9e103b6fcfc49b1a202..17f0a7d8b5af3e482ed09e93bccf36c4cb2acf8a 100644
--- a/IO/Export/vtkIVExporter.h
+++ b/IO/Export/vtkIVExporter.h
@@ -29,6 +29,7 @@
 #include "vtkExporter.h"
 #include "vtkIOExportModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLight;
 class vtkActor;
 class vtkPoints;
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkIVExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkJSONDataSetWriter.cxx b/IO/Export/vtkJSONDataSetWriter.cxx
index e52f3201a107fc36cb007f360ae222080b294dd2..431f963d7e18f203320265ce4a48899e4f64ef3e 100644
--- a/IO/Export/vtkJSONDataSetWriter.cxx
+++ b/IO/Export/vtkJSONDataSetWriter.cxx
@@ -41,6 +41,7 @@
 #include <string>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkJSONDataSetWriter);
 vtkCxxSetObjectMacro(vtkJSONDataSetWriter, Archiver, vtkArchiver);
 
@@ -506,3 +507,4 @@ std::string vtkJSONDataSetWriter::GetValidString(const char* name)
 
   return ss.str();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkJSONDataSetWriter.h b/IO/Export/vtkJSONDataSetWriter.h
index 550238f16650cdca0947d8d105b8896c010f1561..2f901f8f2faa7a6ebc9d96242a0a3ca546c31067 100644
--- a/IO/Export/vtkJSONDataSetWriter.h
+++ b/IO/Export/vtkJSONDataSetWriter.h
@@ -44,6 +44,7 @@
 
 #include <string> // std::string used as parameters in a few methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkDataArray;
 class vtkDataSetAttributes;
@@ -152,4 +153,5 @@ private:
   void operator=(const vtkJSONDataSetWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkJSONRenderWindowExporter.cxx b/IO/Export/vtkJSONRenderWindowExporter.cxx
index 9a3777e38c6672308cbf5864ca4f01014b7479cb..3e316d797ddb435df56b896c2dc7ecf65d880570 100644
--- a/IO/Export/vtkJSONRenderWindowExporter.cxx
+++ b/IO/Export/vtkJSONRenderWindowExporter.cxx
@@ -28,6 +28,7 @@
 #include <memory>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // When exporting a VTK render window, we must also write the datasets
@@ -202,3 +203,4 @@ void vtkJSONRenderWindowExporter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkJSONRenderWindowExporter.h b/IO/Export/vtkJSONRenderWindowExporter.h
index 0589b4a21cf3a093bce509e54528a9ef55a12aed..20e264caa3b530a0ed9ea06d1010f99a3e93e308 100644
--- a/IO/Export/vtkJSONRenderWindowExporter.h
+++ b/IO/Export/vtkJSONRenderWindowExporter.h
@@ -39,6 +39,7 @@
 #include "vtkNew.h"             // For vtkNew
 #include "vtkViewNodeFactory.h" // For vtkViewNodeFactory
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArchiver;
 class vtkVtkJSSceneGraphSerializer;
 class vtkVtkJSViewNodeFactory;
@@ -96,4 +97,5 @@ private:
   bool CompactOutput;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkJSONSceneExporter.cxx b/IO/Export/vtkJSONSceneExporter.cxx
index 9aff1fc7b720fc1f4935071c7c4cea170fc27aa7..5a9868fea6f1e8df42bfa02af5063cf07dfbc2d4 100644
--- a/IO/Export/vtkJSONSceneExporter.cxx
+++ b/IO/Export/vtkJSONSceneExporter.cxx
@@ -55,6 +55,7 @@
 #include <sstream>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkJSONSceneExporter);
 
 //------------------------------------------------------------------------------
@@ -1050,3 +1051,4 @@ void vtkJSONSceneExporter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkJSONSceneExporter.h b/IO/Export/vtkJSONSceneExporter.h
index f1cc22d64e47092fc5407830658c318cc413dacb..e5800756bbd9ffd3cd236e8a3481db79c9826452 100644
--- a/IO/Export/vtkJSONSceneExporter.h
+++ b/IO/Export/vtkJSONSceneExporter.h
@@ -33,6 +33,7 @@
 #include <string> // For string parameter
 #include <vector> // For member variables
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkColorTransferFunction;
 class vtkDataObject;
@@ -198,4 +199,5 @@ private:
   void operator=(const vtkJSONSceneExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkOBJExporter.cxx b/IO/Export/vtkOBJExporter.cxx
index 6ebeae06cf8dd49deea0add94756cea3d1ed5419..618c83b6f5f5eeacc4d86b9b8a63dc2a526a68cc 100644
--- a/IO/Export/vtkOBJExporter.cxx
+++ b/IO/Export/vtkOBJExporter.cxx
@@ -41,6 +41,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOBJExporter);
 
 vtkOBJExporter::vtkOBJExporter()
@@ -466,3 +467,4 @@ void vtkOBJExporter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "MTLFileComment: " << (this->MTLFileComment ? this->MTLFileComment : "(null)")
      << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkOBJExporter.h b/IO/Export/vtkOBJExporter.h
index 0e57cb00fbd0e75227603e06c3420cf9963faa3f..4aad2e358fb2b7f9e5dadc4e7fb41a44485e8489 100644
--- a/IO/Export/vtkOBJExporter.h
+++ b/IO/Export/vtkOBJExporter.h
@@ -34,6 +34,7 @@
 #include <map>                 // For map
 #include <vector>              // For string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkTexture;
 
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkOBJExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkOOGLExporter.cxx b/IO/Export/vtkOOGLExporter.cxx
index 05bb953858b54ac21efc3f1ec71ab3660f2df761..53318415c09e3df6a11c171cfb534e455e09b775 100644
--- a/IO/Export/vtkOOGLExporter.cxx
+++ b/IO/Export/vtkOOGLExporter.cxx
@@ -35,6 +35,7 @@
 #include "vtkUnsignedCharArray.h"
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOOGLExporter);
 
 vtkOOGLExporter::vtkOOGLExporter()
@@ -595,3 +596,4 @@ void vtkOOGLExporter::PrintSelf(ostream& os, vtkIndent ind)
     os << ind << "FileName: (null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkOOGLExporter.h b/IO/Export/vtkOOGLExporter.h
index 077e947db4ec59992ba92144355acf4055895e18..3f1daf6d160867bea3e97d37bf9aad754c08605c 100644
--- a/IO/Export/vtkOOGLExporter.h
+++ b/IO/Export/vtkOOGLExporter.h
@@ -30,6 +30,7 @@
 #include "vtkExporter.h"
 #include "vtkIOExportModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLight;
 class vtkActor;
 
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkOOGLExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkPOVExporter.cxx b/IO/Export/vtkPOVExporter.cxx
index e5a926684fb58684bd9b4e9aef4fab6cdca758b9..7b2ae3346027080e33d850d526fc0c643e891dd6 100644
--- a/IO/Export/vtkPOVExporter.cxx
+++ b/IO/Export/vtkPOVExporter.cxx
@@ -88,6 +88,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPOVExporter);
 
 // Can't use printf("%d", a_vtkIdType) because vtkIdType is not always int.
@@ -650,3 +651,4 @@ void vtkPOVExporter::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "FileName: (null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkPOVExporter.h b/IO/Export/vtkPOVExporter.h
index ec0a642ffc1eff62e9163474b60d1771bf8da1e6..717c409b7e130680778c5326204480f9d68ee427 100644
--- a/IO/Export/vtkPOVExporter.h
+++ b/IO/Export/vtkPOVExporter.h
@@ -79,6 +79,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "vtkExporter.h"
 #include "vtkIOExportModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkActor;
 class vtkCamera;
@@ -127,4 +128,5 @@ private:
   vtkPOVInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkRIBExporter.cxx b/IO/Export/vtkRIBExporter.cxx
index dfd1c0e25054b27ec0c5c25143bd7e50f2fcf0e2..e4a6d3b7683958100d95c46264582a8a38bf830b 100644
--- a/IO/Export/vtkRIBExporter.cxx
+++ b/IO/Export/vtkRIBExporter.cxx
@@ -44,6 +44,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRIBExporter);
 
 typedef double RtColor[3];
@@ -1367,3 +1368,4 @@ void vtkRIBExporter::ModifyArrayName(char* newname, const char* name)
   }
   newname[cc] = 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkRIBExporter.h b/IO/Export/vtkRIBExporter.h
index 76922b5e27005082c33e8603519d9dcd49b6b8a9..1d0ba373bf6d297b5474837f7f49d447fa448295 100644
--- a/IO/Export/vtkRIBExporter.h
+++ b/IO/Export/vtkRIBExporter.h
@@ -45,6 +45,7 @@
 #include "vtkExporter.h"
 #include "vtkIOExportModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkCamera;
 class vtkLight;
@@ -180,4 +181,5 @@ private:
   void operator=(const vtkRIBExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkRIBLight.cxx b/IO/Export/vtkRIBLight.cxx
index b30b0aaf170100cdccfadf6c143fa2ea76e571e3..a580ed9fb8cfa8ecc32bb75ce2df3e2918e92271 100644
--- a/IO/Export/vtkRIBLight.cxx
+++ b/IO/Export/vtkRIBLight.cxx
@@ -15,6 +15,7 @@
 #include "vtkRIBLight.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRIBLight);
 
 vtkRIBLight::vtkRIBLight()
@@ -48,3 +49,4 @@ void vtkRIBLight::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Shadows: " << (this->Shadows ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkRIBLight.h b/IO/Export/vtkRIBLight.h
index 2f613292184e4c0203053e05de64a1b83d6cd123..18db315d4c21dae4bb47b38e0a6c09bd61f23593 100644
--- a/IO/Export/vtkRIBLight.h
+++ b/IO/Export/vtkRIBLight.h
@@ -30,6 +30,7 @@
 #include "vtkIOExportModule.h" // For export macro
 #include "vtkLight.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRIBRenderer;
 
 class VTKIOEXPORT_EXPORT vtkRIBLight : public vtkLight
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkRIBLight&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkRIBProperty.cxx b/IO/Export/vtkRIBProperty.cxx
index 1a240e84a930ae9abe1a12336bcea8e0c3a79d12..f54908895e7559242f7690d278d4fcbf623ee23e 100644
--- a/IO/Export/vtkRIBProperty.cxx
+++ b/IO/Export/vtkRIBProperty.cxx
@@ -15,6 +15,7 @@
 #include "vtkRIBProperty.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRIBProperty);
 
 vtkRIBProperty::vtkRIBProperty()
@@ -249,3 +250,4 @@ void vtkRIBProperty::PrintSelf(ostream& os, vtkIndent indent)
      << "SurfaceShaderUsesDefaultParameters: " << this->GetSurfaceShaderUsesDefaultParameters()
      << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkRIBProperty.h b/IO/Export/vtkRIBProperty.h
index 99b82824026fef10337c37c6eed0f935c8b3680d..6d5322bf45a52d9cec18a5f321351566fde1bb8c 100644
--- a/IO/Export/vtkRIBProperty.h
+++ b/IO/Export/vtkRIBProperty.h
@@ -31,6 +31,7 @@
 #include "vtkIOExportModule.h" // For export macro
 #include "vtkProperty.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRIBRenderer;
 
 class VTKIOEXPORT_EXPORT vtkRIBProperty : public vtkProperty
@@ -138,4 +139,5 @@ private:
   void operator=(const vtkRIBProperty&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkSVGContextDevice2D.cxx b/IO/Export/vtkSVGContextDevice2D.cxx
index 8c4724c0a281fbf905929562a1b2f0bf10a0a96e..485a3b782a6a24c29f64f3df7e9c1b0a8ba7955d 100644
--- a/IO/Export/vtkSVGContextDevice2D.cxx
+++ b/IO/Export/vtkSVGContextDevice2D.cxx
@@ -54,6 +54,7 @@
 #include <sstream>
 #include <utility>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -2699,3 +2700,4 @@ vtkImageData* vtkSVGContextDevice2D::PreparePointSprite(vtkImageData* in)
 
   return in;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkSVGContextDevice2D.h b/IO/Export/vtkSVGContextDevice2D.h
index 9448e36cc5a170d4bbd6c690e13413ac4ea58bf7..b7a91bfa1b43ea82640ab393e253853387d65364 100644
--- a/IO/Export/vtkSVGContextDevice2D.h
+++ b/IO/Export/vtkSVGContextDevice2D.h
@@ -45,6 +45,7 @@
 
 #include <array> // For std::array!
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkColor3ub;
 class vtkColor4ub;
 class vtkPath;
@@ -265,4 +266,5 @@ private:
   void operator=(const vtkSVGContextDevice2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSVGContextDevice2D_h
diff --git a/IO/Export/vtkSVGExporter.cxx b/IO/Export/vtkSVGExporter.cxx
index 8985b210eca3f7dbcde2b4c8aa28dab88a35c8fc..b5ea36089824cc71e682a3397a7c0021a0aff6c9 100644
--- a/IO/Export/vtkSVGExporter.cxx
+++ b/IO/Export/vtkSVGExporter.cxx
@@ -38,6 +38,7 @@
 #include <sstream>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -343,3 +344,4 @@ void vtkSVGExporter::RenderContextActor(vtkContextActor* actor, vtkRenderer* ren
   actor->RenderOverlay(ren);
   actor->SetForceDevice(oldForceDevice);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkSVGExporter.h b/IO/Export/vtkSVGExporter.h
index 2e9c3d63159b0a3cc1e013d655a1a0a278ac7eed..e1c539dcba976156e5b54f12429e7ed3313d86d0 100644
--- a/IO/Export/vtkSVGExporter.h
+++ b/IO/Export/vtkSVGExporter.h
@@ -48,6 +48,7 @@
 #include "vtkExporter.h"
 #include "vtkIOExportModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContextActor;
 class vtkRenderer;
 class vtkSVGContextDevice2D;
@@ -154,4 +155,5 @@ private:
   void operator=(const vtkSVGExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSVGExporter_h
diff --git a/IO/Export/vtkSingleVTPExporter.cxx b/IO/Export/vtkSingleVTPExporter.cxx
index 04acbc90bf9fea31f06868a8c0fef86f25884d99..ed95b87dabb02b53237a02a0aeedc6bde1b8d056 100644
--- a/IO/Export/vtkSingleVTPExporter.cxx
+++ b/IO/Export/vtkSingleVTPExporter.cxx
@@ -42,6 +42,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkXMLPolyDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSingleVTPExporter);
 
 vtkSingleVTPExporter::vtkSingleVTPExporter()
@@ -895,3 +896,4 @@ void vtkSingleVTPExporter::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "FilePrefix: (null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkSingleVTPExporter.h b/IO/Export/vtkSingleVTPExporter.h
index d266b047ca45439063958997c4bf153603521a0a..e7da6f3059fef1e6e5fa53807ce6d3ffc0306c77 100644
--- a/IO/Export/vtkSingleVTPExporter.h
+++ b/IO/Export/vtkSingleVTPExporter.h
@@ -34,6 +34,7 @@
 #include "vtkIOExportModule.h" // For export macro
 #include <vector>              // for method args
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyData;
 class vtkTexture;
@@ -93,4 +94,5 @@ private:
   void operator=(const vtkSingleVTPExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkVRMLExporter.cxx b/IO/Export/vtkVRMLExporter.cxx
index ff9c1492d6d46627c1e4a51f2a9317521ddf1665..fb377205dc054a1d174262dec37bb2cf6f29ddef 100644
--- a/IO/Export/vtkVRMLExporter.cxx
+++ b/IO/Export/vtkVRMLExporter.cxx
@@ -40,6 +40,7 @@
 
 #include <limits>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // For C format strings
@@ -754,3 +755,4 @@ void vtkVRMLExporter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Speed: " << this->Speed << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkVRMLExporter.h b/IO/Export/vtkVRMLExporter.h
index 6a24e59a5797071ea281907663835fece687e52c..f2c9391fc0fdc3e3e73799aca391805155cb9664 100644
--- a/IO/Export/vtkVRMLExporter.h
+++ b/IO/Export/vtkVRMLExporter.h
@@ -30,6 +30,7 @@
 #include "vtkExporter.h"
 #include "vtkIOExportModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLight;
 class vtkActor;
 class vtkPoints;
@@ -88,4 +89,5 @@ private:
   void operator=(const vtkVRMLExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkX3D.cxx b/IO/Export/vtkX3D.cxx
index 74d75eef2d3a645de01c3a65aba64fb062cb521b..33605fe33af9f49b0817e525f51cedf20dbd98c8 100644
--- a/IO/Export/vtkX3D.cxx
+++ b/IO/Export/vtkX3D.cxx
@@ -17,6 +17,7 @@
 #define X3DATTRIBUTENUM 348
 #define X3DELEMENTNUM 171
 
+VTK_ABI_NAMESPACE_BEGIN
 const char* x3dElementString[X3DELEMENTNUM] = {
   "Shape",
   "Appearance",
@@ -539,3 +540,4 @@ const char* x3dAttributeString[X3DATTRIBUTENUM] = {
   "programs",
   "matrix",
 };
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkX3D.h b/IO/Export/vtkX3D.h
index f79513d4190ae7657e3787c38537a3fa76ef8de8..0fc257dbf02e87b26a31ad13c6893046aa3d2dec 100644
--- a/IO/Export/vtkX3D.h
+++ b/IO/Export/vtkX3D.h
@@ -15,11 +15,17 @@
 #ifndef vtkX3D_h
 #define vtkX3D_h
 
+#include "vtkABINamespace.h"
+
+VTK_ABI_NAMESPACE_BEGIN
 extern const char* x3dElementString[];
 extern const char* x3dAttributeString[];
+VTK_ABI_NAMESPACE_END
 
 namespace vtkX3D
 {
+VTK_ABI_NAMESPACE_BEGIN
+
 enum X3DTypes
 {
   SFVEC3F,
@@ -544,7 +550,9 @@ enum X3DAttribute
   zDimension = 326,
   zSpacing = 327
 };
-};
+
+VTK_ABI_NAMESPACE_END
+} // namespace vtkX3D
 
 #endif
 
diff --git a/IO/Export/vtkX3DExporter.cxx b/IO/Export/vtkX3DExporter.cxx
index a61cb4e0399bfec11c86c5f5681b289f098d1319..2178645fd4915e5a37ae27fceb666f7c0cbd9fdf 100644
--- a/IO/Export/vtkX3DExporter.cxx
+++ b/IO/Export/vtkX3DExporter.cxx
@@ -53,6 +53,7 @@
 using namespace vtkX3D;
 
 // forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 static bool vtkX3DExporterWriterUsingCellColors(vtkMapper* mapper);
 static bool vtkX3DExporterWriterRenderFaceSet(int cellType, int representation, vtkPoints* points,
   vtkIdType cellOffset, vtkCellArray* cells, vtkUnsignedCharArray* colors, bool cell_colors,
@@ -1220,3 +1221,4 @@ char* vtkX3DExporter::RegisterAndGetOutputString()
 
   return tmp;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkX3DExporter.h b/IO/Export/vtkX3DExporter.h
index f4f507ee6b8addf285ee3f98e1053f995ff0d398..db494a96a878c93d2b954d15bb8f97a38bc1e849 100644
--- a/IO/Export/vtkX3DExporter.h
+++ b/IO/Export/vtkX3DExporter.h
@@ -30,6 +30,7 @@
 #include "vtkExporter.h"
 #include "vtkIOExportModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkActor2D;
 class vtkDataArray;
@@ -150,4 +151,5 @@ private:
   void operator=(const vtkX3DExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkX3DExporterFIWriter.cxx b/IO/Export/vtkX3DExporterFIWriter.cxx
index dcf5f42b6445ddbd54a5f3e198a8102649dc4a61..8d0a46059c3c211f6092b654e6b21ae8e647a1dc 100644
--- a/IO/Export/vtkX3DExporterFIWriter.cxx
+++ b/IO/Export/vtkX3DExporterFIWriter.cxx
@@ -32,6 +32,7 @@
 using namespace vtkX3D;
 
 /*======================================================================== */
+VTK_ABI_NAMESPACE_BEGIN
 struct NodeInfo
 {
   NodeInfo(int _nodeId)
@@ -240,9 +241,11 @@ void vtkX3DExporterFIByteWriter::PutBits(const std::string& bitstring)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #include "vtkX3DExporterFIWriterHelper.h"
 
 /* ------------------------------------------------------------------------- */
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkX3DExporterFIWriter);
 //------------------------------------------------------------------------------
 vtkX3DExporterFIWriter::~vtkX3DExporterFIWriter()
@@ -697,3 +700,4 @@ void vtkX3DExporterFIWriter::SetField(int attributeID, const char* value, bool v
 
 //------------------------------------------------------------------------------
 void vtkX3DExporterFIWriter::Flush() {}
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkX3DExporterFIWriter.h b/IO/Export/vtkX3DExporterFIWriter.h
index 737921d606cb2f748c47e6b359678bab42028a5f..afd07863f9c3bfa3db48441abadf1f358dbc6cd9 100644
--- a/IO/Export/vtkX3DExporterFIWriter.h
+++ b/IO/Export/vtkX3DExporterFIWriter.h
@@ -23,6 +23,7 @@
 #include "vtkIOExportModule.h" // For export macro
 #include "vtkX3DExporterWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkX3DExporterFIByteWriter;
 class vtkX3DExporterFINodeInfoStack;
 class vtkZLibDataCompressor;
@@ -102,4 +103,5 @@ private:
   void operator=(const vtkX3DExporterFIWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkX3DExporterFIWriterHelper.h b/IO/Export/vtkX3DExporterFIWriterHelper.h
index 0d2dc4e8ef49aa1b3b3fcce4ca7ea5b8b8c160a8..0a9eec39baad6afbe6efb84fedfb1d4cd14c42ce 100644
--- a/IO/Export/vtkX3DExporterFIWriterHelper.h
+++ b/IO/Export/vtkX3DExporterFIWriterHelper.h
@@ -30,6 +30,7 @@
 #ifndef max
 #define max(a, b) (((a) > (b)) ? (a) : (b))
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class vtkX3DExporterFIWriterHelper
 {
 public:
@@ -396,5 +397,6 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkX3DExporterFIWriterHelper.h
diff --git a/IO/Export/vtkX3DExporterWriter.cxx b/IO/Export/vtkX3DExporterWriter.cxx
index 82a104b006840215a69cf50ba912d6b8df3205d5..c09be3020fbdc03c9a6f95cad910dadada68db50 100644
--- a/IO/Export/vtkX3DExporterWriter.cxx
+++ b/IO/Export/vtkX3DExporterWriter.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkX3DExporterWriter::vtkX3DExporterWriter()
 {
   this->WriteToOutputString = 0;
@@ -54,3 +55,4 @@ char* vtkX3DExporterWriter::RegisterAndGetOutputString()
 
   return tmp;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkX3DExporterWriter.h b/IO/Export/vtkX3DExporterWriter.h
index 5087adeada57a9804cc5387b5a1fa1cc2175d0c0..bef62f924a4baf4a39627623c3ac012fffa0306e 100644
--- a/IO/Export/vtkX3DExporterWriter.h
+++ b/IO/Export/vtkX3DExporterWriter.h
@@ -28,6 +28,7 @@
 #include "vtkObject.h"
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkUnsignedCharArray;
 class vtkCellArray;
@@ -199,4 +200,5 @@ private:
   vtkX3DExporterWriter(const vtkX3DExporterWriter&) = delete;
   void operator=(const vtkX3DExporterWriter&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Export/vtkX3DExporterXMLWriter.cxx b/IO/Export/vtkX3DExporterXMLWriter.cxx
index c36bc72f9ddff1b5c6b36b9bc40414e830286305..ac9f469f2871462bd998d93fe21b053430d8f5f0 100644
--- a/IO/Export/vtkX3DExporterXMLWriter.cxx
+++ b/IO/Export/vtkX3DExporterXMLWriter.cxx
@@ -33,6 +33,7 @@
 
 using namespace vtkX3D;
 
+VTK_ABI_NAMESPACE_BEGIN
 struct XMLInfo
 {
 
@@ -356,3 +357,4 @@ void vtkX3DExporterXMLWriter::SubDepth()
 {
   this->ActTab.erase(0, 2);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Export/vtkX3DExporterXMLWriter.h b/IO/Export/vtkX3DExporterXMLWriter.h
index 6fed226cdb1b95de710cf5a8259b22fb7ab7b632..f6b1916778bcaa84430b925f676ddac9605273ac 100644
--- a/IO/Export/vtkX3DExporterXMLWriter.h
+++ b/IO/Export/vtkX3DExporterXMLWriter.h
@@ -26,6 +26,7 @@
 #include "vtkX3DExporterWriter.h"
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkX3DExporterXMLNodeInfoStack;
 
 class VTKIOEXPORT_EXPORT vtkX3DExporterXMLWriter : public vtkX3DExporterWriter
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkX3DExporterXMLWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ExportGL2PS/vtkGL2PSExporter.cxx b/IO/ExportGL2PS/vtkGL2PSExporter.cxx
index c06bcf002fd0691d6230dcb58c5d09d3f461ba1c..94563998f5f5a9c2d45ccc4b2d9083a2dfe98c1e 100644
--- a/IO/ExportGL2PS/vtkGL2PSExporter.cxx
+++ b/IO/ExportGL2PS/vtkGL2PSExporter.cxx
@@ -23,6 +23,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractObjectFactoryNewMacro(vtkGL2PSExporter);
 vtkCxxSetObjectMacro(vtkGL2PSExporter, RasterExclusions, vtkPropCollection);
 
@@ -190,3 +191,4 @@ void vtkGL2PSExporter::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "RasterExclusions: (null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ExportGL2PS/vtkGL2PSExporter.h b/IO/ExportGL2PS/vtkGL2PSExporter.h
index ae35bb37eef10a6e4dddc8819d92993ba6f3dede..e43fbebf0ae83c2646eae86a384dcf86839aa5af 100644
--- a/IO/ExportGL2PS/vtkGL2PSExporter.h
+++ b/IO/ExportGL2PS/vtkGL2PSExporter.h
@@ -82,6 +82,7 @@
 
 #include "vtkNew.h" // For vtkNew
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPropCollection;
 
 class VTKIOEXPORTGL2PS_EXPORT vtkGL2PSExporter : public vtkExporter
@@ -413,4 +414,5 @@ inline const char* vtkGL2PSExporter::GetFileFormatAsString(void)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ExportGL2PS/vtkOpenGLGL2PSExporter.cxx b/IO/ExportGL2PS/vtkOpenGLGL2PSExporter.cxx
index af28e48dce446391f71467965a6b1617e5edbaa1..57730cd8181fa34343654b82d7265ae95922eda3 100644
--- a/IO/ExportGL2PS/vtkOpenGLGL2PSExporter.cxx
+++ b/IO/ExportGL2PS/vtkOpenGLGL2PSExporter.cxx
@@ -31,6 +31,7 @@
 #include <sstream>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLGL2PSExporter);
 
 //------------------------------------------------------------------------------
@@ -194,3 +195,4 @@ bool vtkOpenGLGL2PSExporter::CaptureVectorProps()
 
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ExportGL2PS/vtkOpenGLGL2PSExporter.h b/IO/ExportGL2PS/vtkOpenGLGL2PSExporter.h
index 0e53ecfc2026c3d46526d9642343db4accbbb89b..525c73efcdf4a6fc3ee9a59595480da1557877ef 100644
--- a/IO/ExportGL2PS/vtkOpenGLGL2PSExporter.h
+++ b/IO/ExportGL2PS/vtkOpenGLGL2PSExporter.h
@@ -27,6 +27,7 @@
 #include "vtkGL2PSExporter.h"
 #include "vtkIOExportGL2PSModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKIOEXPORTGL2PS_EXPORT vtkOpenGLGL2PSExporter : public vtkGL2PSExporter
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkOpenGLGL2PSExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLGL2PSExporter_h
diff --git a/IO/ExportPDF/vtkPDFContextDevice2D.cxx b/IO/ExportPDF/vtkPDFContextDevice2D.cxx
index 0bd190ba728f91d014e5e37c9ceaf27709f12efb..31cf15d9f080c6b4984e0944bfdf507585228c79 100644
--- a/IO/ExportPDF/vtkPDFContextDevice2D.cxx
+++ b/IO/ExportPDF/vtkPDFContextDevice2D.cxx
@@ -55,6 +55,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -2384,3 +2385,4 @@ void vtkPDFContextDevice2D::HPDFTransformToMatrix3(
   mat3[7] = 0.;
   mat3[8] = 1.;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ExportPDF/vtkPDFContextDevice2D.h b/IO/ExportPDF/vtkPDFContextDevice2D.h
index ebeb4715b6c14505755cddf1f98bad24b0b520eb..e187e3a7dae0ec07221ded457acefaabb6116f42 100644
--- a/IO/ExportPDF/vtkPDFContextDevice2D.h
+++ b/IO/ExportPDF/vtkPDFContextDevice2D.h
@@ -29,6 +29,7 @@
 #include "vtkIOExportPDFModule.h" // For export macro
 #include "vtkNew.h"               // For vtkNew!
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkColor3ub;
 class vtkPath;
 class vtkRenderer;
@@ -170,4 +171,5 @@ private:
   void operator=(const vtkPDFContextDevice2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPDFContextDevice2D_h
diff --git a/IO/ExportPDF/vtkPDFExporter.cxx b/IO/ExportPDF/vtkPDFExporter.cxx
index e65481968f0c9926b890047d673b864e37d73bca..945bbeb7ac25c13255ceb2a05bf85a1df81518b4 100644
--- a/IO/ExportPDF/vtkPDFExporter.cxx
+++ b/IO/ExportPDF/vtkPDFExporter.cxx
@@ -33,6 +33,7 @@
 #include <sstream>
 #include <stdexcept>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -187,3 +188,4 @@ void vtkPDFExporter::RenderContextActor(vtkContextActor* actor, vtkRenderer* ren
 
   actor->SetForceDevice(oldForceDevice);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ExportPDF/vtkPDFExporter.h b/IO/ExportPDF/vtkPDFExporter.h
index 8e9dc577f4092baad79fa9a5838f108437d47226..a733d2efa90ab10ae459199771078d8e1220ccfb 100644
--- a/IO/ExportPDF/vtkPDFExporter.h
+++ b/IO/ExportPDF/vtkPDFExporter.h
@@ -28,6 +28,7 @@
 #include "vtkExporter.h"
 #include "vtkIOExportPDFModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContextActor;
 class vtkRenderer;
 
@@ -70,4 +71,5 @@ private:
   Details* Impl;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPDFExporter_h
diff --git a/IO/FFMPEG/vtkFFMPEGVideoSource.cxx b/IO/FFMPEG/vtkFFMPEGVideoSource.cxx
index a45f1ecb252168f928c88f34dbd5088e28d9e787..23ab1d1221dff0a3aa7de01d554ecff2ace328e1 100644
--- a/IO/FFMPEG/vtkFFMPEGVideoSource.cxx
+++ b/IO/FFMPEG/vtkFFMPEGVideoSource.cxx
@@ -65,6 +65,7 @@ extern "C"
 //
 /////////////////////////////////////////////////////////////////////////
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFFMPEGVideoSourceInternal
 {
 public:
@@ -954,3 +955,4 @@ void vtkFFMPEGVideoSource::SetOutputFormat(int format)
 
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/FFMPEG/vtkFFMPEGVideoSource.h b/IO/FFMPEG/vtkFFMPEGVideoSource.h
index cf3200bfc6e751f2fa4906b488ffbdc501775978..e28130564e13d12c46ac7bb1bec7bf141147b637 100644
--- a/IO/FFMPEG/vtkFFMPEGVideoSource.h
+++ b/IO/FFMPEG/vtkFFMPEGVideoSource.h
@@ -35,6 +35,7 @@
 #include <functional>         // for audio callback
 #include <mutex>              // for std::mutex
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFFMPEGVideoSourceInternal;
 class vtkFFMPEGVideoSource;
 
@@ -223,4 +224,5 @@ private:
   void operator=(const vtkFFMPEGVideoSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/FFMPEG/vtkFFMPEGWriter.cxx b/IO/FFMPEG/vtkFFMPEGWriter.cxx
index 8158f97bca2ecef3b5f93b8ec176b48e7972e05d..b4574abf02fb6dd6bf246517f65286f70a5211f0 100644
--- a/IO/FFMPEG/vtkFFMPEGWriter.cxx
+++ b/IO/FFMPEG/vtkFFMPEGWriter.cxx
@@ -39,6 +39,8 @@ extern "C"
 }
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //------------------------------------------------------------------------------
 class vtkFFMPEGWriterInternal
 {
@@ -786,3 +788,4 @@ void vtkFFMPEGWriter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "BitRate: " << this->BitRate << endl;
   os << indent << "BitRateTolerance: " << this->BitRateTolerance << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/FFMPEG/vtkFFMPEGWriter.h b/IO/FFMPEG/vtkFFMPEGWriter.h
index 25ab080ff46027265d3a9dca5d38576cfb37e44f..0b6d2c4293baa7ff7bd0b150e320d7f9ff5436a1 100644
--- a/IO/FFMPEG/vtkFFMPEGWriter.h
+++ b/IO/FFMPEG/vtkFFMPEGWriter.h
@@ -35,6 +35,7 @@
 #include "vtkGenericMovieWriter.h"
 #include "vtkIOFFMPEGModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFFMPEGWriterInternal;
 
 class VTKIOFFMPEG_EXPORT vtkFFMPEGWriter : public vtkGenericMovieWriter
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkFFMPEGWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Fides/vtkFidesReader.cxx b/IO/Fides/vtkFidesReader.cxx
index fda3734f47812a63eba5f07f938b7b7e6c17a675..5c0f26db4df1efb8ab75613c285246121eca824a 100644
--- a/IO/Fides/vtkFidesReader.cxx
+++ b/IO/Fides/vtkFidesReader.cxx
@@ -39,6 +39,7 @@
 #include <numeric>
 #include <utility>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyMacro(vtkFidesReader, NUMBER_OF_BLOCKS, Integer);
 
 vtkStandardNewMacro(vtkFidesReader);
@@ -626,3 +627,4 @@ int vtkFidesReader::FillOutputPortInformation(int vtkNotUsed(port), vtkInformati
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkPartitionedDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Fides/vtkFidesReader.h b/IO/Fides/vtkFidesReader.h
index 4fc8ee4265dadbff12a2046ceff66fe414d96ea1..c36f565263d632223ab879bf339bb621677a0887 100644
--- a/IO/Fides/vtkFidesReader.h
+++ b/IO/Fides/vtkFidesReader.h
@@ -39,6 +39,7 @@
 #include <memory>             // for std::unique_ptr
 #include <string>             // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkInformationIntegerKey;
 
@@ -183,4 +184,5 @@ private:
   void operator=(const vtkFidesReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/GDAL/vtkGDAL.cxx b/IO/GDAL/vtkGDAL.cxx
index 52061318c8a7adc74e232b2e13d610b6f1350df8..6b0875984e84e220350068d7f9b0e01c20f3a80a 100644
--- a/IO/GDAL/vtkGDAL.cxx
+++ b/IO/GDAL/vtkGDAL.cxx
@@ -17,6 +17,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkInformationKey.h"
 #include "vtkInformationStringKey.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkGDAL::vtkGDAL() = default;
 
 vtkGDAL::~vtkGDAL() = default;
@@ -28,3 +29,4 @@ void vtkGDAL::PrintSelf(ostream& os, vtkIndent indent)
 
 vtkInformationKeyMacro(vtkGDAL, MAP_PROJECTION, String);
 vtkInformationKeyRestrictedMacro(vtkGDAL, FLIP_AXIS, IntegerVector, 3);
+VTK_ABI_NAMESPACE_END
diff --git a/IO/GDAL/vtkGDAL.h b/IO/GDAL/vtkGDAL.h
index 28440567bd2878ca4c3a7696eae5f92c62f2b8e7..70b5f4cd4983b7b13998f663fe8dfb0ffc1a82f0 100644
--- a/IO/GDAL/vtkGDAL.h
+++ b/IO/GDAL/vtkGDAL.h
@@ -24,6 +24,7 @@
 #include "vtkObject.h"
 #include <vtkIOGDALModule.h> // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationStringKey;
 class vtkInformationIntegerVectorKey;
 
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkGDAL&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkGDAL_h
diff --git a/IO/GDAL/vtkGDALRasterReader.cxx b/IO/GDAL/vtkGDALRasterReader.cxx
index 32567e60e7f0e3b657b86b8086ba3724f7b3daf4..2c5c07354a6d9cb411aedf7835f68cdb2334856d 100644
--- a/IO/GDAL/vtkGDALRasterReader.cxx
+++ b/IO/GDAL/vtkGDALRasterReader.cxx
@@ -51,6 +51,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGDALRasterReader);
 
 //------------------------------------------------------------------------------
@@ -1140,3 +1141,4 @@ void vtkGDALRasterReader::EnableAllCellArrays()
 {
   this->Impl->CellArraySelection->EnableAllArrays();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/GDAL/vtkGDALRasterReader.h b/IO/GDAL/vtkGDALRasterReader.h
index 0b98530317a89f362b55bd1b18f1ca930b1c751f..8ede270608edc3e903d17f30fb3e5c8dbe346285 100644
--- a/IO/GDAL/vtkGDALRasterReader.h
+++ b/IO/GDAL/vtkGDALRasterReader.h
@@ -41,6 +41,7 @@
 #include <string> // string is required
 #include <vector> // vector is required
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOGDAL_EXPORT vtkGDALRasterReader : public vtkImageReader2
 {
 public:
@@ -168,4 +169,5 @@ private:
   void operator=(const vtkGDALRasterReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkGDALRasterReader_h
diff --git a/IO/GDAL/vtkGDALVectorReader.cxx b/IO/GDAL/vtkGDALVectorReader.cxx
index 83c79537037301b6681c471cac50d6698efeedb8..dca5ee1ebdc6b6b79e335ac29a42ec02e2151dd3 100644
--- a/IO/GDAL/vtkGDALVectorReader.cxx
+++ b/IO/GDAL/vtkGDALVectorReader.cxx
@@ -35,6 +35,7 @@
 // C++ includes
 #include <vector> // Requires STL vector
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGDALVectorReader);
 
 int vtkGDALVectorReader::OGRRegistered = 0;
@@ -685,3 +686,4 @@ int vtkGDALVectorReader::InitializeInternal()
 
   return VTK_OK;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/GDAL/vtkGDALVectorReader.h b/IO/GDAL/vtkGDALVectorReader.h
index 15ba7f4ce63afa5494ba5a172ed9d23339956de5..55f47be6f20def543538914e7a05e8b05d95d6c6 100644
--- a/IO/GDAL/vtkGDALVectorReader.h
+++ b/IO/GDAL/vtkGDALVectorReader.h
@@ -36,6 +36,7 @@
 #include <map>    // STL required.
 #include <string> // for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOGDAL_EXPORT vtkGDALVectorReader : public vtkMultiBlockDataSetAlgorithm
 {
 public:
@@ -159,4 +160,5 @@ private:
   void operator=(const vtkGDALVectorReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkGDALVectorReader_h
diff --git a/IO/GeoJSON/vtkGeoJSONFeature.cxx b/IO/GeoJSON/vtkGeoJSONFeature.cxx
index 6e0b0b4b81adb9818a4009d45e1f2069ae370b0d..93d83c9d30ffa000da26abf568e5126fc806b039 100644
--- a/IO/GeoJSON/vtkGeoJSONFeature.cxx
+++ b/IO/GeoJSON/vtkGeoJSONFeature.cxx
@@ -34,6 +34,7 @@
 #include <sstream>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGeoJSONFeature);
 
 namespace
@@ -625,3 +626,4 @@ void vtkGeoJSONFeature::PrintSelf(ostream& os, vtkIndent indent)
 
   writer->write(this->featureRoot, &os);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/GeoJSON/vtkGeoJSONFeature.h b/IO/GeoJSON/vtkGeoJSONFeature.h
index 110a274b865580133fd1d485dd162b918aa7b63f..c06792299ed44d09ffcaee537a76407d4a22f170 100644
--- a/IO/GeoJSON/vtkGeoJSONFeature.h
+++ b/IO/GeoJSON/vtkGeoJSONFeature.h
@@ -28,6 +28,7 @@
 #include "vtkIOGeoJSONModule.h" // For export macro
 #include "vtk_jsoncpp.h"        // For json parser
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 // Currently implemented geoJSON compatible Geometries
@@ -137,4 +138,5 @@ private:
   void operator=(const vtkGeoJSONFeature&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkGeoJSONFeature_h
diff --git a/IO/GeoJSON/vtkGeoJSONReader.cxx b/IO/GeoJSON/vtkGeoJSONReader.cxx
index 3b04bb862e89858512ea16df798116b50badb3bc..254e83ab84f1edbefa4375ea14962437b28ba0f6 100644
--- a/IO/GeoJSON/vtkGeoJSONReader.cxx
+++ b/IO/GeoJSON/vtkGeoJSONReader.cxx
@@ -38,6 +38,7 @@
 #include <iostream>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGeoJSONReader);
 
 //------------------------------------------------------------------------------
@@ -473,3 +474,4 @@ void vtkGeoJSONReader::PrintSelf(ostream& os, vtkIndent indent)
   os << "vtkGeoJSONReader" << std::endl;
   os << "Filename: " << this->FileName << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/GeoJSON/vtkGeoJSONReader.h b/IO/GeoJSON/vtkGeoJSONReader.h
index cf0a9b32c9c659c75fa335bd585d4c76411d535c..1a3790f6ebe8dd2984514a8a6797f13e01b58cfe 100644
--- a/IO/GeoJSON/vtkGeoJSONReader.h
+++ b/IO/GeoJSON/vtkGeoJSONReader.h
@@ -27,6 +27,7 @@
 #include "vtkIOGeoJSONModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKIOGEOJSON_EXPORT vtkGeoJSONReader : public vtkPolyDataAlgorithm
@@ -126,4 +127,5 @@ private:
   void operator=(const vtkGeoJSONReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkGeoJSONReader_h
diff --git a/IO/GeoJSON/vtkGeoJSONWriter.cxx b/IO/GeoJSON/vtkGeoJSONWriter.cxx
index e23aee87c4bf3dd8b883138917816ee8b5ad4478..03ec8ba3ce63d26e7193477f56f05e2858dad7fa 100644
--- a/IO/GeoJSON/vtkGeoJSONWriter.cxx
+++ b/IO/GeoJSON/vtkGeoJSONWriter.cxx
@@ -26,6 +26,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGeoJSONWriter);
 
 #define VTK_GJWRITER_MAXPOINTS 32000
@@ -528,3 +529,4 @@ vtkStdString vtkGeoJSONWriter::GetOutputStdString()
 
 //------------------------------------------------------------------------------
 vtkCxxSetObjectMacro(vtkGeoJSONWriter, LookupTable, vtkLookupTable);
+VTK_ABI_NAMESPACE_END
diff --git a/IO/GeoJSON/vtkGeoJSONWriter.h b/IO/GeoJSON/vtkGeoJSONWriter.h
index 49da8a92d85d367af3b3bc226f7441eebfc7513a..5305d14fb47686e01686bc861c4916f4532d81d6 100644
--- a/IO/GeoJSON/vtkGeoJSONWriter.h
+++ b/IO/GeoJSON/vtkGeoJSONWriter.h
@@ -26,6 +26,7 @@
 #include "vtkIOGeoJSONModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLookupTable;
 
 class VTKIOGEOJSON_EXPORT vtkGeoJSONWriter : public vtkWriter
@@ -131,4 +132,5 @@ private:
   void operator=(const vtkGeoJSONWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkGeoJSONWriter_h
diff --git a/IO/Geometry/vtkAVSucdReader.cxx b/IO/Geometry/vtkAVSucdReader.cxx
index a054b3c1c60ef26489c1bd755765fb30804dce94..c9036be5b252d8f93917f23c0580441bf223007c 100644
--- a/IO/Geometry/vtkAVSucdReader.cxx
+++ b/IO/Geometry/vtkAVSucdReader.cxx
@@ -40,6 +40,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAVSucdReader);
 
 // Internal Classes/Structures
@@ -1183,3 +1184,4 @@ int vtkAVSucdReader::ReadFloatBlock(int n, float* block)
     return count;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkAVSucdReader.h b/IO/Geometry/vtkAVSucdReader.h
index 0e4328c5e13e65e4e6ba2b7e48b5ad6857e48106..f74cfde8263e5cc4640ffe7ee6fed2e4b2c9d429 100644
--- a/IO/Geometry/vtkAVSucdReader.h
+++ b/IO/Geometry/vtkAVSucdReader.h
@@ -39,6 +39,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIntArray;
 class vtkFloatArray;
 class vtkIdTypeArray;
@@ -226,4 +227,5 @@ private:
   void operator=(const vtkAVSucdReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkBYUReader.cxx b/IO/Geometry/vtkBYUReader.cxx
index 64476c77dd5a6c3b3d1bad31034a64ce5d99b3cb..decf1c196d2b42a736d146b7218eef53132dbe18 100644
--- a/IO/Geometry/vtkBYUReader.cxx
+++ b/IO/Geometry/vtkBYUReader.cxx
@@ -26,6 +26,7 @@
 #include "vtkPolyData.h"
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBYUReader);
 
 vtkBYUReader::vtkBYUReader()
@@ -431,3 +432,4 @@ void vtkBYUReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent
      << "Texture File Name: " << (this->TextureFileName ? this->TextureFileName : "(none)") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkBYUReader.h b/IO/Geometry/vtkBYUReader.h
index b87489654d8a652943042b0b0a21086ab4ef7cf7..a9c04d0cc97d2de35dc19bc3c83251ecd093037c 100644
--- a/IO/Geometry/vtkBYUReader.h
+++ b/IO/Geometry/vtkBYUReader.h
@@ -28,6 +28,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOGEOMETRY_EXPORT vtkBYUReader : public vtkPolyDataAlgorithm
 {
 public:
@@ -148,4 +149,5 @@ private:
   void operator=(const vtkBYUReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkBYUWriter.cxx b/IO/Geometry/vtkBYUWriter.cxx
index 5f08a986f09697bcfef756f1934d9a8df664fb0f..2022f81e8c0a6acba4898e4bf1ee912435c1eb08 100644
--- a/IO/Geometry/vtkBYUWriter.cxx
+++ b/IO/Geometry/vtkBYUWriter.cxx
@@ -30,6 +30,7 @@
 
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBYUWriter);
 
 // Create object so that it writes displacement, scalar, and texture files
@@ -429,3 +430,4 @@ int vtkBYUWriter::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPolyData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkBYUWriter.h b/IO/Geometry/vtkBYUWriter.h
index 07dcb5e3ddab5e242dfbc6aada9984491e7fcf02..26fc0f804a4ea2ee39e8d3fd4edd588716fb350b 100644
--- a/IO/Geometry/vtkBYUWriter.h
+++ b/IO/Geometry/vtkBYUWriter.h
@@ -32,6 +32,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKIOGEOMETRY_EXPORT vtkBYUWriter : public vtkWriter
@@ -135,4 +136,5 @@ private:
   void operator=(const vtkBYUWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkCGMWriter.cxx b/IO/Geometry/vtkCGMWriter.cxx
index bc04d416da4c2608bdc08891bda5d9a7ed8be511..6adfb10f1b4dd4ae9d5fa653cdf7df02d282d204 100644
--- a/IO/Geometry/vtkCGMWriter.cxx
+++ b/IO/Geometry/vtkCGMWriter.cxx
@@ -24,6 +24,7 @@
 #include "vtkPolyData.h"
 #include "vtkViewport.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCGMWriter);
 
 vtkCxxSetObjectMacro(vtkCGMWriter, Viewport, vtkViewport);
@@ -4571,3 +4572,4 @@ static int cgmImageEndCgm(cgmImagePtr im)
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkCGMWriter.h b/IO/Geometry/vtkCGMWriter.h
index a8517dba6d8eb6d2927d004cc8a37081a379726f..643abae6de9ca9c1b8ba673152cfd6ad9c63ed02 100644
--- a/IO/Geometry/vtkCGMWriter.h
+++ b/IO/Geometry/vtkCGMWriter.h
@@ -41,6 +41,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkPolyDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkViewport;
 
 #define VTK_COLOR_MODE_DEFAULT 0
@@ -136,4 +137,5 @@ private:
   void operator=(const vtkCGMWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkChacoReader.cxx b/IO/Geometry/vtkChacoReader.cxx
index fd976d2ce5e5d1dd2c55c6e36538d6719091a9ca..166a9dd41708d607394c9da4083e5eed8216661e 100644
--- a/IO/Geometry/vtkChacoReader.cxx
+++ b/IO/Geometry/vtkChacoReader.cxx
@@ -35,6 +35,7 @@
 #include <cstdio>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkChacoReader);
 
 //------------------------------------------------------------------------------
@@ -1482,3 +1483,4 @@ void vtkChacoReader::FlushLine(FILE* infile)
     c = getc(infile);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkChacoReader.h b/IO/Geometry/vtkChacoReader.h
index 46e3d052f63dd349a844c1e07625b3661becc1e1..b17ed20992d5ee4bb8f0d9cd64aeb4b331e2b38d 100644
--- a/IO/Geometry/vtkChacoReader.h
+++ b/IO/Geometry/vtkChacoReader.h
@@ -36,6 +36,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOGEOMETRY_EXPORT vtkChacoReader : public vtkUnstructuredGridAlgorithm
 {
 public:
@@ -247,4 +248,5 @@ private:
   void ClearWeightArrayNames();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkFLUENTReader.cxx b/IO/Geometry/vtkFLUENTReader.cxx
index 9cd99fdaf66f2a08e5ee0308a583702450122ae2..cf585f7faea8b456e0a70f0bdf3640e4da2864c4 100644
--- a/IO/Geometry/vtkFLUENTReader.cxx
+++ b/IO/Geometry/vtkFLUENTReader.cxx
@@ -60,6 +60,7 @@
 #include <cctype>
 #include <sys/stat.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFLUENTReader);
 
 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
@@ -4201,3 +4202,4 @@ void vtkFLUENTReader::GetSpeciesVariableNames()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkFLUENTReader.h b/IO/Geometry/vtkFLUENTReader.h
index 397a4b72a42a84792cae3470917013887292b9c2..39891ef7baedabcf0dd3b0ee9e6e50d7b03d0d5f 100644
--- a/IO/Geometry/vtkFLUENTReader.h
+++ b/IO/Geometry/vtkFLUENTReader.h
@@ -38,6 +38,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkPoints;
 class vtkTriangle;
@@ -252,4 +253,5 @@ private:
   vtkFLUENTReader(const vtkFLUENTReader&) = delete;
   void operator=(const vtkFLUENTReader&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkFacetWriter.cxx b/IO/Geometry/vtkFacetWriter.cxx
index 86843a58c9a2e2f9aba50d450a7806138ccc2774..958cdde09982c36bd32f101560e4b3689fd31bde 100644
--- a/IO/Geometry/vtkFacetWriter.cxx
+++ b/IO/Geometry/vtkFacetWriter.cxx
@@ -35,6 +35,7 @@
 #include <sys/stat.h>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFacetWriter);
 
 //------------------------------------------------------------------------------
@@ -314,3 +315,4 @@ void vtkFacetWriter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "File Name: " << (this->FileName ? this->FileName : "(none)") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkFacetWriter.h b/IO/Geometry/vtkFacetWriter.h
index 1f357866d4f4684c908656d387e7869ec8fdb57c..ed7b28398380cb3f77b2cd437731bcc827a7b770 100644
--- a/IO/Geometry/vtkFacetWriter.h
+++ b/IO/Geometry/vtkFacetWriter.h
@@ -42,6 +42,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 
 class VTKIOGEOMETRY_EXPORT vtkFacetWriter : public vtkPolyDataAlgorithm
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkFacetWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkGAMBITReader.cxx b/IO/Geometry/vtkGAMBITReader.cxx
index d6e8c37306bd403053a1b40cbcf0eefeb02fac71..f5cf7b65d4a856a5c7e17c8d38fb62dbc923983a 100644
--- a/IO/Geometry/vtkGAMBITReader.cxx
+++ b/IO/Geometry/vtkGAMBITReader.cxx
@@ -31,6 +31,7 @@
 #include "vtksys/Encoding.hxx"
 #include "vtksys/FStream.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGAMBITReader);
 
 //------------------------------------------------------------------------------
@@ -492,3 +493,4 @@ void vtkGAMBITReader::ReadXYZCoords(vtkDoubleArray* coords)
     vtkErrorMacro("Error reading ENDOFSECTION tag at end of coordinates section");
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkGAMBITReader.h b/IO/Geometry/vtkGAMBITReader.h
index 593d7ed885299dad38fba55e64e6b229ca8ad1c2..2995687ba0290cbebfd6a4bed5fae84d5e6df5dc 100644
--- a/IO/Geometry/vtkGAMBITReader.h
+++ b/IO/Geometry/vtkGAMBITReader.h
@@ -35,6 +35,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class VTKIOGEOMETRY_EXPORT vtkGAMBITReader : public vtkUnstructuredGridAlgorithm
 {
@@ -120,4 +121,5 @@ private:
   void operator=(const vtkGAMBITReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkGLTFDocumentLoader.cxx b/IO/Geometry/vtkGLTFDocumentLoader.cxx
index 3a4d73a11a6caed85974591e438366230ee7ca76..c992d785a198e97df8af85cb1c645677f3c923ba 100644
--- a/IO/Geometry/vtkGLTFDocumentLoader.cxx
+++ b/IO/Geometry/vtkGLTFDocumentLoader.cxx
@@ -63,6 +63,7 @@
 #define GL_NEAREST 0x2600
 #define GL_LINEAR 0x2601
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 //------------------------------------------------------------------------------
@@ -1539,3 +1540,4 @@ void vtkGLTFDocumentLoader::ComputeJointMatrices(const Model& model, const Skin&
     jointMats.emplace_back(jointMat);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkGLTFDocumentLoader.h b/IO/Geometry/vtkGLTFDocumentLoader.h
index 880ca68467e5d39358c1849b5b42dc916083d69e..56718e16918a0090483e4b2ce19676361eadb7d9 100644
--- a/IO/Geometry/vtkGLTFDocumentLoader.h
+++ b/IO/Geometry/vtkGLTFDocumentLoader.h
@@ -46,6 +46,7 @@
 #include <string> // For std::string
 #include <vector> // For std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkDataArray;
 class vtkFloatArray;
@@ -652,4 +653,5 @@ private:
   std::vector<std::string> UsedExtensions;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkGLTFDocumentLoaderInternals.cxx b/IO/Geometry/vtkGLTFDocumentLoaderInternals.cxx
index c841cd6a70415150a1c625ba1ee41734763fe76b..10a4d5a0f18c1ccccb347403b211323489f80a24 100644
--- a/IO/Geometry/vtkGLTFDocumentLoaderInternals.cxx
+++ b/IO/Geometry/vtkGLTFDocumentLoaderInternals.cxx
@@ -26,6 +26,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 bool vtkGLTFDocumentLoaderInternals::LoadBuffer(
   const nlohmann::json& root, std::vector<char>& buffer, const std::string& glTFFileName)
 {
@@ -1709,3 +1710,4 @@ vtkGLTFDocumentLoaderInternals::MaterialAlphaModeStringToEnum(std::string alphaM
   }
   return vtkGLTFDocumentLoader::Material::AlphaModeType::OPAQUE;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkGLTFDocumentLoaderInternals.h b/IO/Geometry/vtkGLTFDocumentLoaderInternals.h
index 7e42c8889503fff015bb23cf2644f9d0ea6cc9ac..d8d8e3fa31d28892c9e055a63528422d9d913c6f 100644
--- a/IO/Geometry/vtkGLTFDocumentLoaderInternals.h
+++ b/IO/Geometry/vtkGLTFDocumentLoaderInternals.h
@@ -30,6 +30,7 @@
 #include <string> // For string
 #include <vector> // For vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGLTFDocumentLoaderInternals
 {
 public:
@@ -206,6 +207,7 @@ private:
     const nlohmann::json& root, vtkGLTFDocumentLoader::Extensions::KHRLightsPunctual::Light& light);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkGLTFDocumentLoaderInternals.h
diff --git a/IO/Geometry/vtkGLTFReader.cxx b/IO/Geometry/vtkGLTFReader.cxx
index b230402b131a5aeed0f400e21b7f681e6ffe186c..c113f3f2df32add64f5ec2fd36fe6444fff016ca 100644
--- a/IO/Geometry/vtkGLTFReader.cxx
+++ b/IO/Geometry/vtkGLTFReader.cxx
@@ -37,6 +37,7 @@
 #include <array>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 //------------------------------------------------------------------------------
@@ -1092,3 +1093,4 @@ void vtkGLTFReader::SetApplyDeformationsToGeometry(bool flag)
   }
   this->ApplyDeformationsToGeometry = flag;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkGLTFReader.h b/IO/Geometry/vtkGLTFReader.h
index 7da29a411a359013c26aca001337b76411ca24d8..b3e83194004f6ba8200979badaecb6340830603f 100644
--- a/IO/Geometry/vtkGLTFReader.h
+++ b/IO/Geometry/vtkGLTFReader.h
@@ -66,6 +66,7 @@
 #include <string> // For std::string
 #include <vector> // For std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkFieldData;
 class vtkGLTFDocumentLoader;
@@ -236,4 +237,5 @@ private:
   void operator=(const vtkGLTFReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkGLTFUtils.cxx b/IO/Geometry/vtkGLTFUtils.cxx
index ec2056e7078490463e8249e34e4d81deeec98b03..12d02f12802b806c13d53bc6c245d255b2f9add8 100644
--- a/IO/Geometry/vtkGLTFUtils.cxx
+++ b/IO/Geometry/vtkGLTFUtils.cxx
@@ -24,8 +24,11 @@
 #include <iostream>
 
 #define MIN_GLTF_VERSION "2.0"
+namespace vtkGLTFUtils
+{
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::GetBoolValue(const nlohmann::json& root, const std::string& key, bool& value)
+VTK_ABI_NAMESPACE_BEGIN
+bool GetBoolValue(const nlohmann::json& root, const std::string& key, bool& value)
 {
   auto it = root.find(key);
   if (it == root.end() || !it.value().is_boolean())
@@ -37,7 +40,7 @@ bool vtkGLTFUtils::GetBoolValue(const nlohmann::json& root, const std::string& k
 }
 
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::GetIntValue(const nlohmann::json& root, const std::string& key, int& value)
+bool GetIntValue(const nlohmann::json& root, const std::string& key, int& value)
 {
   auto it = root.find(key);
   if (it == root.end() || !it.value().is_number_integer())
@@ -49,8 +52,7 @@ bool vtkGLTFUtils::GetIntValue(const nlohmann::json& root, const std::string& ke
 }
 
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::GetUIntValue(
-  const nlohmann::json& root, const std::string& key, unsigned int& value)
+bool GetUIntValue(const nlohmann::json& root, const std::string& key, unsigned int& value)
 {
   auto it = root.find(key);
   if (it == root.end() || !it.value().is_number_unsigned())
@@ -62,7 +64,7 @@ bool vtkGLTFUtils::GetUIntValue(
 }
 
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::GetDoubleValue(const nlohmann::json& root, const std::string& key, double& value)
+bool GetDoubleValue(const nlohmann::json& root, const std::string& key, double& value)
 {
   auto it = root.find(key);
   if (it == root.end() || !it.value().is_number())
@@ -74,8 +76,7 @@ bool vtkGLTFUtils::GetDoubleValue(const nlohmann::json& root, const std::string&
 }
 
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::GetIntArray(
-  const nlohmann::json& root, const std::string& key, std::vector<int>& value)
+bool GetIntArray(const nlohmann::json& root, const std::string& key, std::vector<int>& value)
 {
   auto it = root.find(key);
   if (it == root.end() || !it.value().is_array())
@@ -101,7 +102,7 @@ bool vtkGLTFUtils::GetIntArray(
 }
 
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::GetUIntArray(
+bool GetUIntArray(
   const nlohmann::json& root, const std::string& key, std::vector<unsigned int>& value)
 {
   auto it = root.find(key);
@@ -128,8 +129,7 @@ bool vtkGLTFUtils::GetUIntArray(
 }
 
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::GetFloatArray(
-  const nlohmann::json& root, const std::string& key, std::vector<float>& value)
+bool GetFloatArray(const nlohmann::json& root, const std::string& key, std::vector<float>& value)
 {
   auto it = root.find(key);
   if (it == root.end() || !it.value().is_array())
@@ -155,8 +155,7 @@ bool vtkGLTFUtils::GetFloatArray(
 }
 
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::GetDoubleArray(
-  const nlohmann::json& root, const std::string& key, std::vector<double>& value)
+bool GetDoubleArray(const nlohmann::json& root, const std::string& key, std::vector<double>& value)
 {
   auto it = root.find(key);
   if (it == root.end() || !it.value().is_array())
@@ -182,8 +181,7 @@ bool vtkGLTFUtils::GetDoubleArray(
 }
 
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::GetStringValue(
-  const nlohmann::json& root, const std::string& key, std::string& value)
+bool GetStringValue(const nlohmann::json& root, const std::string& key, std::string& value)
 {
   auto it = root.find(key);
   if (it == root.end() || !it.value().is_string())
@@ -195,7 +193,7 @@ bool vtkGLTFUtils::GetStringValue(
 }
 
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::CheckVersion(const nlohmann::json& glTFAsset)
+bool CheckVersion(const nlohmann::json& glTFAsset)
 {
   auto assetMinVersionIt = glTFAsset.find("minVersion");
   auto assetVersionIt = glTFAsset.find("version");
@@ -222,8 +220,7 @@ bool vtkGLTFUtils::CheckVersion(const nlohmann::json& glTFAsset)
 }
 
 //------------------------------------------------------------------------------
-std::string vtkGLTFUtils::GetResourceFullPath(
-  const std::string& resourcePath, const std::string& glTFFilePath)
+std::string GetResourceFullPath(const std::string& resourcePath, const std::string& glTFFilePath)
 {
   // Check for relative path
   if (!vtksys::SystemTools::FileIsFullPath(resourcePath.c_str()))
@@ -236,7 +233,7 @@ std::string vtkGLTFUtils::GetResourceFullPath(
 }
 
 //------------------------------------------------------------------------------
-std::string vtkGLTFUtils::GetDataUriMimeType(const std::string& uri)
+std::string GetDataUriMimeType(const std::string& uri)
 {
   vtksys::RegularExpression regex("^data:.*;");
   if (regex.find(uri))
@@ -250,7 +247,7 @@ std::string vtkGLTFUtils::GetDataUriMimeType(const std::string& uri)
 }
 
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::GetBinaryBufferFromUri(const std::string& uri, const std::string& glTFFilePath,
+bool GetBinaryBufferFromUri(const std::string& uri, const std::string& glTFFilePath,
   std::vector<char>& buffer, size_t bufferSize)
 {
   // Check for data-uri
@@ -293,8 +290,8 @@ bool vtkGLTFUtils::GetBinaryBufferFromUri(const std::string& uri, const std::str
 }
 
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::ExtractGLBFileInformation(const std::string& fileName, std::string& magic,
-  uint32_t& version, uint32_t& fileLength, std::vector<vtkGLTFUtils::ChunkInfoType>& chunkInfo)
+bool ExtractGLBFileInformation(const std::string& fileName, std::string& magic, uint32_t& version,
+  uint32_t& fileLength, std::vector<vtkGLTFUtils::ChunkInfoType>& chunkInfo)
 {
   vtksys::ifstream fin;
   fin.open(fileName.c_str(), std::ios::binary | std::ios::in);
@@ -338,7 +335,7 @@ bool vtkGLTFUtils::ExtractGLBFileInformation(const std::string& fileName, std::s
 }
 
 //------------------------------------------------------------------------------
-bool vtkGLTFUtils::ValidateGLBFile(const std::string& magic, uint32_t version, uint32_t fileLength,
+bool ValidateGLBFile(const std::string& magic, uint32_t version, uint32_t fileLength,
   std::vector<vtkGLTFUtils::ChunkInfoType> chunkInfo)
 {
   // Check header
@@ -368,3 +365,5 @@ bool vtkGLTFUtils::ValidateGLBFile(const std::string& magic, uint32_t version, u
   // Check for inconsistent chunk sizes
   return fileLength == lengthSum;
 }
+VTK_ABI_NAMESPACE_END
+}
diff --git a/IO/Geometry/vtkGLTFUtils.h b/IO/Geometry/vtkGLTFUtils.h
index d4724af0f16c1a6dcf6e526297070f66f03a8eee..dee94c88e2eefa45c804978293a4a0abfb946078 100644
--- a/IO/Geometry/vtkGLTFUtils.h
+++ b/IO/Geometry/vtkGLTFUtils.h
@@ -26,6 +26,8 @@
 #ifndef vtkGLTFUtils_h
 #define vtkGLTFUtils_h
 
+#include "vtkABINamespace.h"
+
 #include <vtk_nlohmannjson.h>
 #include VTK_NLOHMANN_JSON(json.hpp)
 
@@ -34,6 +36,7 @@
 
 namespace vtkGLTFUtils
 {
+VTK_ABI_NAMESPACE_BEGIN
 using ChunkInfoType = std::pair<std::string, uint32_t>;
 // Binary glTF constants
 const uint32_t GLBWordSize = 4;
@@ -122,6 +125,7 @@ bool GetBinaryBufferFromUri(const std::string& uri, const std::string& glTFFileN
  * Extract MIME-Type from data-uri
  */
 std::string GetDataUriMimeType(const std::string& uri);
+VTK_ABI_NAMESPACE_END
 }
 
 #endif
diff --git a/IO/Geometry/vtkGLTFWriter.cxx b/IO/Geometry/vtkGLTFWriter.cxx
index eeb640607b8d161609d6783d1924b485043eb51b..4e61acd697cd577f051d77812efe81f6d04c6ce9 100644
--- a/IO/Geometry/vtkGLTFWriter.cxx
+++ b/IO/Geometry/vtkGLTFWriter.cxx
@@ -62,6 +62,7 @@
 
 namespace
 {
+VTK_ABI_NAMESPACE_BEGIN
 struct FileHeader
 {
   uint32_t Magic = 0x46546C67; // glTF
@@ -85,8 +86,10 @@ struct ChunkHeader
   uint32_t Type;
 };
 
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGLTFWriter);
 
 vtkGLTFWriter::vtkGLTFWriter()
@@ -883,3 +886,4 @@ int vtkGLTFWriter::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkMultiBlockDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkGLTFWriter.h b/IO/Geometry/vtkGLTFWriter.h
index 917b412bdbcf04023b57c1a4136c63b3dae33280..43357c394e8295ac8a1a041476a6bba94d502d9a 100644
--- a/IO/Geometry/vtkGLTFWriter.h
+++ b/IO/Geometry/vtkGLTFWriter.h
@@ -44,6 +44,7 @@
 
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 class VTKIOGEOMETRY_EXPORT vtkGLTFWriter : public vtkWriter
 {
@@ -167,4 +168,5 @@ private:
   void operator=(const vtkGLTFWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkGLTFWriterUtils.cxx b/IO/Geometry/vtkGLTFWriterUtils.cxx
index 68173e5a062ce964d96add47efe02ba5d87f1e15..ae3f992a744cbd23c042a3b725d8e57beee6d7de 100644
--- a/IO/Geometry/vtkGLTFWriterUtils.cxx
+++ b/IO/Geometry/vtkGLTFWriterUtils.cxx
@@ -26,6 +26,7 @@
 #include <sstream>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkGLTFWriterUtils::WriteValues(vtkDataArray* ca, ostream& myFile)
 {
   myFile.write(reinterpret_cast<char*>(ca->GetVoidPointer(0)),
@@ -124,3 +125,4 @@ void vtkGLTFWriterUtils::WriteCellBufferAndView(vtkCellArray* ca, const char* fi
   WriteBufferAndView(ia, fileName, inlineData, buffers, bufferViews);
   ia->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkGLTFWriterUtils.h b/IO/Geometry/vtkGLTFWriterUtils.h
index db47ea537fc190a83da43cb3589d3e5df042b9e3..fb3c553eb421878706a919066e96c1c771c5d464 100644
--- a/IO/Geometry/vtkGLTFWriterUtils.h
+++ b/IO/Geometry/vtkGLTFWriterUtils.h
@@ -33,6 +33,7 @@
 #include VTK_NLOHMANN_JSON(json.hpp)
 #include <ostream>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBase64OutputStream;
 class vtkCellArray;
 class vtkDataArray;
@@ -70,6 +71,7 @@ public:
 #define ARRAY_BUFFER 34962
 #define ELEMENT_ARRAY_BUFFER 34963
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkGLTFWriterUtils.h
diff --git a/IO/Geometry/vtkHoudiniPolyDataWriter.cxx b/IO/Geometry/vtkHoudiniPolyDataWriter.cxx
index 002b50771acf5530fe4655f9cfe56f409c45b474..fbba4e061fe22df82a92153db944473220561ab4 100644
--- a/IO/Geometry/vtkHoudiniPolyDataWriter.cxx
+++ b/IO/Geometry/vtkHoudiniPolyDataWriter.cxx
@@ -42,6 +42,7 @@
 #include "vtkUnsignedShortArray.h"
 #include "vtksys/FStream.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHoudiniPolyDataWriter);
 
 namespace
@@ -580,3 +581,4 @@ void vtkHoudiniPolyDataWriter::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "FileName: " << (this->FileName ? this->FileName : "(none)") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkHoudiniPolyDataWriter.h b/IO/Geometry/vtkHoudiniPolyDataWriter.h
index 480b2eb689e239c938334fa7cbeefe22470f1586..dc39e5a73496205040d1f00db2c68c6fa90cff87 100644
--- a/IO/Geometry/vtkHoudiniPolyDataWriter.h
+++ b/IO/Geometry/vtkHoudiniPolyDataWriter.h
@@ -28,6 +28,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKIOGEOMETRY_EXPORT vtkHoudiniPolyDataWriter : public vtkWriter
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkHoudiniPolyDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkIVWriter.cxx b/IO/Geometry/vtkIVWriter.cxx
index ec1ed61374a0a1bd355ad1b256f6521fb7f7d29d..ce9a0f9cae6b053ce4aa6cf675101a799b3e9037 100644
--- a/IO/Geometry/vtkIVWriter.cxx
+++ b/IO/Geometry/vtkIVWriter.cxx
@@ -22,6 +22,7 @@
 #include "vtkPolyData.h"
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIVWriter);
 
 //------------------------------------------------------------------------------
@@ -241,3 +242,4 @@ int vtkIVWriter::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPolyData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkIVWriter.h b/IO/Geometry/vtkIVWriter.h
index f006809ce92cdc3e21849be1cbf67eb153a4948d..f093da29380eb44fb35c27fc10362423c47e0fa8 100644
--- a/IO/Geometry/vtkIVWriter.h
+++ b/IO/Geometry/vtkIVWriter.h
@@ -29,6 +29,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKIOGEOMETRY_EXPORT vtkIVWriter : public vtkWriter
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkIVWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkMCubesReader.cxx b/IO/Geometry/vtkMCubesReader.cxx
index db5387c859ea9b94741f74410f1b5b4e040bb406..63e02a5b90413d9d74582b31f1995a0057a2341b 100644
--- a/IO/Geometry/vtkMCubesReader.cxx
+++ b/IO/Geometry/vtkMCubesReader.cxx
@@ -30,6 +30,7 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMCubesReader);
 
 // Construct object with FlipNormals turned off and Normals set to true.
@@ -442,3 +443,4 @@ vtkMTimeType vtkMCubesReader::GetMTime()
   }
   return mTime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkMCubesReader.h b/IO/Geometry/vtkMCubesReader.h
index 2076ccc2b94ae539492678aa69a4d2be62fa2de6..b69979f9b9730e151f0fa4ac3f837c402551253a 100644
--- a/IO/Geometry/vtkMCubesReader.h
+++ b/IO/Geometry/vtkMCubesReader.h
@@ -59,6 +59,7 @@
 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIncrementalPointLocator;
 
 class VTKIOGEOMETRY_EXPORT vtkMCubesReader : public vtkPolyDataAlgorithm
@@ -185,4 +186,5 @@ private:
   void operator=(const vtkMCubesReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkMCubesWriter.cxx b/IO/Geometry/vtkMCubesWriter.cxx
index 8caab405ff8da303d9b4e42a85f082f73399bd11..bdc0b0fe27e888477671eb93900c00401da02948 100644
--- a/IO/Geometry/vtkMCubesWriter.cxx
+++ b/IO/Geometry/vtkMCubesWriter.cxx
@@ -22,6 +22,7 @@
 #include "vtkPolyData.h"
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMCubesWriter);
 
 // Create object.
@@ -174,3 +175,4 @@ int vtkMCubesWriter::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPolyData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkMCubesWriter.h b/IO/Geometry/vtkMCubesWriter.h
index b96fe4f581dc1b5d24058c98a6498e8138531311..94aa7f18e1964e298c2270e8159e38264e49758c 100644
--- a/IO/Geometry/vtkMCubesWriter.h
+++ b/IO/Geometry/vtkMCubesWriter.h
@@ -37,6 +37,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkDataArray;
 class vtkPoints;
@@ -93,4 +94,5 @@ private:
   void operator=(const vtkMCubesWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkMFIXReader.cxx b/IO/Geometry/vtkMFIXReader.cxx
index 134ce7e83ed26bd40b11f811f3f316ffe0a6865c..77dabe8b8325ae7c0110c2a9cebf777477822d6d 100644
--- a/IO/Geometry/vtkMFIXReader.cxx
+++ b/IO/Geometry/vtkMFIXReader.cxx
@@ -39,6 +39,7 @@
 #include "vtksys/FStream.hxx"
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMFIXReader);
 
 //------------------------------------------------------------------------------
@@ -2364,3 +2365,4 @@ void vtkMFIXReader::GetAllTimes(vtkInformationVector* outputVector)
   tfile.close();
   delete[] steps;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkMFIXReader.h b/IO/Geometry/vtkMFIXReader.h
index 4a0ece617190fb85d5ed890d85df6579508c3789..72bb6a31a8e42dd8122206837cda0979c6019a08 100644
--- a/IO/Geometry/vtkMFIXReader.h
+++ b/IO/Geometry/vtkMFIXReader.h
@@ -38,6 +38,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkDoubleArray;
 class vtkStringArray;
@@ -288,4 +289,5 @@ private:
   void GetAllTimes(vtkInformationVector* outputVector);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkOBJReader.cxx b/IO/Geometry/vtkOBJReader.cxx
index cbcba840ecdecb6147465df2b5ad93c4896bb8bc..7f494a481c69a65011c12a84e07c9bfc1225493e 100644
--- a/IO/Geometry/vtkOBJReader.cxx
+++ b/IO/Geometry/vtkOBJReader.cxx
@@ -29,6 +29,7 @@
 #include "vtkCellData.h"
 #include "vtkStringArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOBJReader);
 
 //------------------------------------------------------------------------------
@@ -1070,3 +1071,4 @@ void vtkOBJReader::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Comment: " << (this->Comment ? this->Comment : "(none)") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkOBJReader.h b/IO/Geometry/vtkOBJReader.h
index a4a6c2d9961193e40d8e30504a553a25edabc1a9..96b3ac22ae79a3bfebc06bae0682bbd8f78bd732 100644
--- a/IO/Geometry/vtkOBJReader.h
+++ b/IO/Geometry/vtkOBJReader.h
@@ -28,6 +28,7 @@
 #include "vtkAbstractPolyDataReader.h"
 #include "vtkIOGeometryModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOGEOMETRY_EXPORT vtkOBJReader : public vtkAbstractPolyDataReader
 {
 public:
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkOBJReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkOBJWriter.cxx b/IO/Geometry/vtkOBJWriter.cxx
index 84be6894de7eaea10136967b00e538a1c416d54c..1d2fb3bddda22e5a6a099f2b83b106549136f5ee 100644
--- a/IO/Geometry/vtkOBJWriter.cxx
+++ b/IO/Geometry/vtkOBJWriter.cxx
@@ -32,6 +32,7 @@
 
 #include <utility>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 //------------------------------------------------------------------------------
@@ -425,3 +426,4 @@ int vtkOBJWriter::FillInputPortInformation(int port, vtkInformation* info)
   }
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkOBJWriter.h b/IO/Geometry/vtkOBJWriter.h
index 59b6299bf383f8813eb26c32ba62981d23e8e8be..1e07630687bd8aa298406e50aba20fc63120053a 100644
--- a/IO/Geometry/vtkOBJWriter.h
+++ b/IO/Geometry/vtkOBJWriter.h
@@ -33,6 +33,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkImageData;
 class vtkPolyData;
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkOBJWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkOpenFOAMReader.cxx b/IO/Geometry/vtkOpenFOAMReader.cxx
index 3ae16fdd3e02481bc565ca18c96ceb34fcdb6870..e6ae30151c4e8ac872a4a38be0deceb0122c13ef 100644
--- a/IO/Geometry/vtkOpenFOAMReader.cxx
+++ b/IO/Geometry/vtkOpenFOAMReader.cxx
@@ -226,14 +226,17 @@
 #include <vector>
 
 #if VTK_FOAMFILE_OMIT_CRCCHECK
+VTK_ABI_NAMESPACE_BEGIN
 uLong ZEXPORT crc32(uLong, const Bytef*, uInt)
 {
   return 0;
 }
+VTK_ABI_NAMESPACE_END
 #endif
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenFOAMReader);
 
 #if VTK_FOAMFILE_FINITE_AREA
@@ -11650,3 +11653,4 @@ void vtkOpenFOAMReader::UpdateProgress(double amount)
     (static_cast<double>(this->Parent->CurrentReaderIndex) + amount) /
     static_cast<double>(this->Parent->NumberOfReaders));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkOpenFOAMReader.h b/IO/Geometry/vtkOpenFOAMReader.h
index 679c6bf065a8ef95411df7b89cf521442dd52ddd..bdab46113cab8977b40cc437fae00272861caf41 100644
--- a/IO/Geometry/vtkOpenFOAMReader.h
+++ b/IO/Geometry/vtkOpenFOAMReader.h
@@ -50,6 +50,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCollection;
 class vtkCharArray;
 class vtkDataArraySelection;
@@ -462,4 +463,5 @@ private:
   void PrintTimes(std::ostream& os, vtkIndent indent = vtkIndent(), bool full = false) const;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkPTSReader.cxx b/IO/Geometry/vtkPTSReader.cxx
index 5f935406e87c133e05a96d616cf581ab17aa05d5..f331e6bed34bb9b16de436a9e4017d77244886da 100644
--- a/IO/Geometry/vtkPTSReader.cxx
+++ b/IO/Geometry/vtkPTSReader.cxx
@@ -28,6 +28,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtksys/FStream.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPTSReader);
 
 //------------------------------------------------------------------------------
@@ -400,3 +401,4 @@ int vtkPTSReader::RequestData(vtkInformation* vtkNotUsed(request),
   this->UpdateProgress(1.0);
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkPTSReader.h b/IO/Geometry/vtkPTSReader.h
index 6c22066d7e2fa4116d3ba2edc87f0ce8b18f7157..e3256f5f223ff8a6022595187b899eaa78044a92 100644
--- a/IO/Geometry/vtkPTSReader.h
+++ b/IO/Geometry/vtkPTSReader.h
@@ -28,6 +28,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOGEOMETRY_EXPORT vtkPTSReader : public vtkPolyDataAlgorithm
 {
 public:
@@ -134,4 +135,5 @@ private:
   void operator=(const vtkPTSReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkParticleReader.cxx b/IO/Geometry/vtkParticleReader.cxx
index 8f8a949e96d78825e2515909b76eb1f71f13daae..bd08b61c415d96880e25799c60d8e0cc37232408 100644
--- a/IO/Geometry/vtkParticleReader.cxx
+++ b/IO/Geometry/vtkParticleReader.cxx
@@ -36,6 +36,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParticleReader);
 
 namespace
@@ -993,3 +994,4 @@ void vtkParticleReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Alliquot: " << (unsigned int)this->Alliquot << "\n";
   os << indent << "Count: " << (unsigned int)this->Count << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkParticleReader.h b/IO/Geometry/vtkParticleReader.h
index ca4629b40549fc5afe4bfc0bcd0bf25de007d5f7..0efd7a1a02bca71136d8a2e9a2dd59bb7d6d69d0 100644
--- a/IO/Geometry/vtkParticleReader.h
+++ b/IO/Geometry/vtkParticleReader.h
@@ -40,6 +40,7 @@
 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOGEOMETRY_EXPORT vtkParticleReader : public vtkPolyDataAlgorithm
 {
 public:
@@ -219,4 +220,5 @@ private:
   void operator=(const vtkParticleReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkProStarReader.cxx b/IO/Geometry/vtkProStarReader.cxx
index 3fa7a2b620f404e810979aeee13dd3b0269df4b5..6f48fe09405aed11648100726813c4abe5c3446c 100644
--- a/IO/Geometry/vtkProStarReader.cxx
+++ b/IO/Geometry/vtkProStarReader.cxx
@@ -35,6 +35,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProStarReader);
 
 // Internal Classes/Structures
@@ -446,3 +447,4 @@ bool vtkProStarReader::ReadCelFile(vtkUnstructuredGrid* output, const idMapping&
   fclose(in);
   return errorCount == 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkProStarReader.h b/IO/Geometry/vtkProStarReader.h
index 7d2351e44b12f2b75d893fc55f16f9dd1842e2f3..77737a1c503b46c4edd1cb262f248e55aa26140d 100644
--- a/IO/Geometry/vtkProStarReader.h
+++ b/IO/Geometry/vtkProStarReader.h
@@ -30,6 +30,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOGEOMETRY_EXPORT vtkProStarReader : public vtkUnstructuredGridAlgorithm
 {
 public:
@@ -118,4 +119,5 @@ private:
   vtkProStarReader(const vtkProStarReader&) = delete;
   void operator=(const vtkProStarReader&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkSTLReader.cxx b/IO/Geometry/vtkSTLReader.cxx
index 733f8edbaa580a11d1432715541ba669bff21452..b2878bb636df2f220131fd25245d22ddf7ead572 100644
--- a/IO/Geometry/vtkSTLReader.cxx
+++ b/IO/Geometry/vtkSTLReader.cxx
@@ -36,6 +36,7 @@
 #include <string>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSTLReader);
 
 #define VTK_ASCII 0
@@ -706,3 +707,4 @@ void vtkSTLReader::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkSTLReader.h b/IO/Geometry/vtkSTLReader.h
index 59482ee9f67dbac9c5c15ced718e917c57660de5..85889db0f5a9ef5d417baf37f0a7dcf03f24d079 100644
--- a/IO/Geometry/vtkSTLReader.h
+++ b/IO/Geometry/vtkSTLReader.h
@@ -38,6 +38,7 @@
 #include "vtkAbstractPolyDataReader.h"
 #include "vtkIOGeometryModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkFloatArray;
 class vtkIncrementalPointLocator;
@@ -137,4 +138,5 @@ private:
   void operator=(const vtkSTLReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkSTLWriter.cxx b/IO/Geometry/vtkSTLWriter.cxx
index 21931af1bfe0b5e62d5dbd41040c9249a2607319..33b036ae5327f19347aadb7b4de8659d90cf0afd 100644
--- a/IO/Geometry/vtkSTLWriter.cxx
+++ b/IO/Geometry/vtkSTLWriter.cxx
@@ -34,6 +34,7 @@
 #include <io.h> /* unlink */
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // For C format strings
@@ -509,3 +510,4 @@ int vtkSTLWriter::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPolyData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkSTLWriter.h b/IO/Geometry/vtkSTLWriter.h
index ea2cf8f0d2b31c801ac4a7d0cac73fbe21ef2e81..e0a07e6023513198d4ec7907b346ec158d8cdac6 100644
--- a/IO/Geometry/vtkSTLWriter.h
+++ b/IO/Geometry/vtkSTLWriter.h
@@ -33,6 +33,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkPoints;
 class vtkPolyData;
@@ -112,4 +113,5 @@ private:
   void operator=(const vtkSTLWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkTecplotReader.cxx b/IO/Geometry/vtkTecplotReader.cxx
index 99e355a44550b6e90e9e14c7c8594996e050a51a..016cdec41686d0b8aacd3e0e7049226f55625214 100644
--- a/IO/Geometry/vtkTecplotReader.cxx
+++ b/IO/Geometry/vtkTecplotReader.cxx
@@ -52,6 +52,7 @@
 
 #include <cctype> // for isspace(), isalnum()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTecplotReader);
 
 // ============================================================================
@@ -2193,3 +2194,4 @@ void vtkTecplotReader::ReadFile(vtkMultiBlockDataSet* multZone)
 
   this->Internal->Completed = 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkTecplotReader.h b/IO/Geometry/vtkTecplotReader.h
index 9b98772e61279de896d54627361d47c0b433bfeb..c38af53138ebb0c44ab15da48b0a84f813eb62df 100644
--- a/IO/Geometry/vtkTecplotReader.h
+++ b/IO/Geometry/vtkTecplotReader.h
@@ -82,6 +82,7 @@
 #include <string> // STL Header; Required for string
 #include <vector> // STL Header; Required for vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkCellData;
 class vtkPointData;
@@ -319,4 +320,5 @@ private:
   void operator=(const vtkTecplotReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Geometry/vtkWindBladeReader.cxx b/IO/Geometry/vtkWindBladeReader.cxx
index c7765972d8686103a993ab4d3cc901827e15cb94..49483373723eec5687c7a333b376bc1c13661858 100644
--- a/IO/Geometry/vtkWindBladeReader.cxx
+++ b/IO/Geometry/vtkWindBladeReader.cxx
@@ -45,6 +45,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <string>
 
 // vtkStandardNewMacro(vtkWindBladeReader);
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkWindBladeReader);
 
 float vtkWindBladeReader::DRY_AIR_CONSTANT = 287.04;
@@ -2109,3 +2110,4 @@ int vtkWindBladeReader::FillOutputPortInformation(int port, vtkInformation* info
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Geometry/vtkWindBladeReader.h b/IO/Geometry/vtkWindBladeReader.h
index 2f45165870785c3c2ee57467c7a2dfaeaece27da..e7d2124fc2a439cd5527c6b874619ab3d8909c93 100644
--- a/IO/Geometry/vtkWindBladeReader.h
+++ b/IO/Geometry/vtkWindBladeReader.h
@@ -33,6 +33,7 @@
 #include "vtkIOGeometryModule.h" // For export macro
 #include "vtkStructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkCallbackCommand;
 class vtkStringArray;
@@ -255,4 +256,5 @@ private:
   vtkWindBladeReader(const vtkWindBladeReader&) = delete;
   void operator=(const vtkWindBladeReader&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/H5Rage/H5RageAdaptor.cxx b/IO/H5Rage/H5RageAdaptor.cxx
index 8baa21ea2575acd08427ac10a203b6e66881b999..c23928649ffbe2da0c17060e71a3ad1f0a77cce1 100644
--- a/IO/H5Rage/H5RageAdaptor.cxx
+++ b/IO/H5Rage/H5RageAdaptor.cxx
@@ -36,11 +36,16 @@
 #include <vtk_hdf5.h>
 
 #if defined(_WIN32) && !defined(__CYGWIN__)
+VTK_ABI_NAMESPACE_BEGIN
 const static char* Slash = "\\";
+VTK_ABI_NAMESPACE_END
 #else
+VTK_ABI_NAMESPACE_BEGIN
 const static char* Slash = "/";
+VTK_ABI_NAMESPACE_END
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // mpi tag
@@ -871,3 +876,4 @@ void H5RageAdaptor::ConvertHDFData(int ndims, int* dimensions, T* hdfData)
   }
   delete[] convertedData;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/H5Rage/H5RageAdaptor.h b/IO/H5Rage/H5RageAdaptor.h
index 06617f05d126f959856a485fcf71f7fcd697284b..e474925495b038f474a7ceafc651cd00e7fe32c4 100644
--- a/IO/H5Rage/H5RageAdaptor.h
+++ b/IO/H5Rage/H5RageAdaptor.h
@@ -22,6 +22,7 @@
 #include <string>  // for std::string
 #include <vector>  // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkImageData;
 class vtkMultiProcessController;
@@ -86,6 +87,7 @@ protected:
   std::vector<std::string> VariableName;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: H5RageAdaptor.h
diff --git a/IO/H5Rage/vtkH5RageReader.cxx b/IO/H5Rage/vtkH5RageReader.cxx
index bbc6d3783dd5d63e3ffd5be3500eb542025958f6..c2787750511b1fbd24d3a4f47ed7ce4f66fd6f43 100644
--- a/IO/H5Rage/vtkH5RageReader.cxx
+++ b/IO/H5Rage/vtkH5RageReader.cxx
@@ -31,6 +31,7 @@
 
 #include "H5RageAdaptor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkH5RageReader);
 vtkCxxSetObjectMacro(vtkH5RageReader, Controller, vtkMultiProcessController);
 
@@ -340,3 +341,4 @@ void vtkH5RageReader::PrintSelf(ostream& os, vtkIndent indent)
 
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/H5Rage/vtkH5RageReader.h b/IO/H5Rage/vtkH5RageReader.h
index 7ed16feda1f27a9e0e8c9867ee2857a4e77d7848..6b5f52951b9a3cab0508ff053ae6cd586034b6a3 100644
--- a/IO/H5Rage/vtkH5RageReader.h
+++ b/IO/H5Rage/vtkH5RageReader.h
@@ -26,6 +26,7 @@
 #include "vtkIOH5RageModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkDataArraySelection;
 class vtkMultiProcessController;
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkH5RageReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/H5part/vtkH5PartReader.cxx b/IO/H5part/vtkH5PartReader.cxx
index 7705ed26b5b24351a165bb5efc685e385507a8ea..393b16ec0d309f08fa3c2d23f11eec2131e15287 100644
--- a/IO/H5part/vtkH5PartReader.cxx
+++ b/IO/H5part/vtkH5PartReader.cxx
@@ -83,6 +83,7 @@
 
   \return  \c an hdf5 handle to the native type of the data
 */
+VTK_ABI_NAMESPACE_BEGIN
 static hid_t H5PartGetNativeDatasetType(H5PartFile* f, const char* name)
 {
   hid_t dataset, datatype, datatypen;
@@ -842,3 +843,4 @@ void vtkH5PartReader::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "NumberOfSteps: " << this->NumberOfTimeSteps << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/H5part/vtkH5PartReader.h b/IO/H5part/vtkH5PartReader.h
index ce51b643d211a1dd7f7f305b6a4534dc94bb048b..5fbc667e4bd7f4ddbeb4036f413ec07cc5f30bd0 100644
--- a/IO/H5part/vtkH5PartReader.h
+++ b/IO/H5part/vtkH5PartReader.h
@@ -47,8 +47,10 @@
 #include <string> // for string
 #include <vector> // for vector
 
-class vtkDataArraySelection;
 struct H5PartFile;
+
+VTK_ABI_NAMESPACE_BEGIN
+class vtkDataArraySelection;
 class VTKIOH5PART_EXPORT vtkH5PartReader : public vtkPolyDataAlgorithm
 {
 public:
@@ -213,4 +215,5 @@ private:
   void operator=(const vtkH5PartReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/HDF/vtkHDF5ScopedHandle.h b/IO/HDF/vtkHDF5ScopedHandle.h
index be35c42e32f6faaced35387c5fafe1f68c17fb34..33bbddfd7c325e7d394e3306ca56d6ada0a6aa34 100644
--- a/IO/HDF/vtkHDF5ScopedHandle.h
+++ b/IO/HDF/vtkHDF5ScopedHandle.h
@@ -3,6 +3,7 @@
 
 namespace vtkHDF
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 /**
  * RAII class for automatically closing H5 handles.
@@ -48,6 +49,7 @@ DefineScopedHandle(S);
 // Defines ScopedH5THandle closed with H5Tclose
 DefineScopedHandle(T);
 
+VTK_ABI_NAMESPACE_END
 }
 
 #endif
diff --git a/IO/HDF/vtkHDFReader.cxx b/IO/HDF/vtkHDFReader.cxx
index dcd7fc55aa59103fe57dbd5d1751c922604895bf..d068d12087af9b2cb7eb05432e694a56fd648671 100644
--- a/IO/HDF/vtkHDFReader.cxx
+++ b/IO/HDF/vtkHDFReader.cxx
@@ -46,6 +46,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHDFReader);
 
 namespace
@@ -589,3 +590,4 @@ int vtkHDFReader::RequestData(vtkInformation* vtkNotUsed(request),
   }
   return ok && this->AddFieldArrays(output);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/HDF/vtkHDFReader.h b/IO/HDF/vtkHDFReader.h
index 02af92bae0fa6b196ad36bc570f2df705a839903..9363528ab853ffbaf0889c366cc8293757f6bcf4 100644
--- a/IO/HDF/vtkHDFReader.h
+++ b/IO/HDF/vtkHDFReader.h
@@ -25,6 +25,7 @@
 #include "vtkIOHDFModule.h" // For export macro
 #include <vector>           // For storing list of values
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkCallbackCommand;
 class vtkCommand;
@@ -206,4 +207,5 @@ protected:
   Implementation* Impl;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/HDF/vtkHDFReaderImplementation.cxx b/IO/HDF/vtkHDFReaderImplementation.cxx
index 01a25aa0ccf97743e22afa26bbcb4ccaea240b8c..6cf3f244d38a77bc6e37dd891c3f9386149fc12d 100644
--- a/IO/HDF/vtkHDFReaderImplementation.cxx
+++ b/IO/HDF/vtkHDFReaderImplementation.cxx
@@ -48,6 +48,7 @@
 #include <array>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 herr_t AddName(hid_t group, const char* name, const H5L_info_t*, void* op_data)
@@ -1331,3 +1332,4 @@ template bool vtkHDFReader::Implementation::GetAttribute<int>(
   const char* attributeName, size_t dim, int* value);
 template bool vtkHDFReader::Implementation::GetAttribute<double>(
   const char* attributeName, size_t dim, double* value);
+VTK_ABI_NAMESPACE_END
diff --git a/IO/HDF/vtkHDFReaderImplementation.h b/IO/HDF/vtkHDFReaderImplementation.h
index c8459b0f2c7330343b5923fddfbff491e7d6bc79..bfb1ef4ad542f841c0a3d4e4524c576ea2748a59 100644
--- a/IO/HDF/vtkHDFReaderImplementation.h
+++ b/IO/HDF/vtkHDFReaderImplementation.h
@@ -28,6 +28,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkDataArray;
 class vtkStringArray;
@@ -231,5 +232,6 @@ extern template bool vtkHDFReader::Implementation::GetAttribute<int>(
 extern template bool vtkHDFReader::Implementation::GetAttribute<double>(
   const char* attributeName, size_t dim, double* value);
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkHDFReaderImplementation.h
diff --git a/IO/HDF/vtkHDFReaderVersion.h b/IO/HDF/vtkHDFReaderVersion.h
index b959696eb39040d114a8293bee8d4e91ac0e51d1..28527463ca9fef4baf0cdd4740ec31a9cb1d2845 100644
--- a/IO/HDF/vtkHDFReaderVersion.h
+++ b/IO/HDF/vtkHDFReaderVersion.h
@@ -20,8 +20,10 @@
 #ifndef vtkHDFReaderVersion_h
 #define vtkHDFReaderVersion_h
 
+VTK_ABI_NAMESPACE_BEGIN
 const int vtkHDFReaderMajorVersion = 1;
 const int vtkHDFReaderMinorVersion = 0;
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHDFReaderVersion_h
 // VTK-HeaderTest-Exclude: vtkHDFReaderVersion.h
diff --git a/IO/IOSS/vtkIOSSFilesScanner.cxx b/IO/IOSS/vtkIOSSFilesScanner.cxx
index d89a80b5870fb7e94421d7937d326881e655169c..f11566346fc28ebe876fc1519dadc5f27ceb5db5 100644
--- a/IO/IOSS/vtkIOSSFilesScanner.cxx
+++ b/IO/IOSS/vtkIOSSFilesScanner.cxx
@@ -34,6 +34,7 @@ void rtrim(std::string& s)
 }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIOSSFilesScanner);
 //----------------------------------------------------------------------------
 vtkIOSSFilesScanner::vtkIOSSFilesScanner() = default;
@@ -284,3 +285,4 @@ void vtkIOSSFilesScanner::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/IOSS/vtkIOSSFilesScanner.h b/IO/IOSS/vtkIOSSFilesScanner.h
index 773bb2a3148cf1b460d21f52ed172597ee512083..8da37d2ebdd8897e6b88a46513ed963e0c77b5a0 100644
--- a/IO/IOSS/vtkIOSSFilesScanner.h
+++ b/IO/IOSS/vtkIOSSFilesScanner.h
@@ -31,6 +31,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIOSS_EXPORT vtkIOSSFilesScanner : public vtkObject
 {
 public:
@@ -74,5 +75,6 @@ private:
   void operator=(const vtkIOSSFilesScanner&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkIOSSFilesScanner.h
diff --git a/IO/IOSS/vtkIOSSModel.cxx b/IO/IOSS/vtkIOSSModel.cxx
index a681ba4bc8dd6dbdfa2503e34b80e7f5f8683086..456333700803b615936bbcfd437ddb3a4c9e2950 100644
--- a/IO/IOSS/vtkIOSSModel.cxx
+++ b/IO/IOSS/vtkIOSSModel.cxx
@@ -346,6 +346,7 @@ protected:
 
 } // end namespace {}
 
+VTK_ABI_NAMESPACE_BEGIN
 /**
  * Builds an Ioss::NodeBlock. Since an exodus file has a single common node
  * block, we need to build one based on all points from all blocks.
@@ -970,3 +971,4 @@ std::string vtkIOSSModel::MD5() const
   md5Hash[32] = '\0';
   return std::string(md5Hash);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/IOSS/vtkIOSSModel.h b/IO/IOSS/vtkIOSSModel.h
index f95ca57fbdfb8e125f035206598af6365c59a8b5..69372bdcf3dc5d81a517ce40c763faf9996bb4c0 100644
--- a/IO/IOSS/vtkIOSSModel.h
+++ b/IO/IOSS/vtkIOSSModel.h
@@ -33,6 +33,7 @@
 #include VTK_IOSS(Ioss_Region.h)
 // clang-format on
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIOSSWriter;
 class vtkPartitionedDataSetCollection;
 
@@ -62,6 +63,7 @@ private:
   class vtkInternals;
   std::unique_ptr<vtkInternals> Internals;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
 // VTK-HeaderTest-Exclude: vtkIOSSModel.h
diff --git a/IO/IOSS/vtkIOSSReader.cxx b/IO/IOSS/vtkIOSSReader.cxx
index 4de2dfed5a34c87c644bd3afd176df9ef780438a..4d5e5b0cc45d7032122ed739e243d031a8be0eb4 100644
--- a/IO/IOSS/vtkIOSSReader.cxx
+++ b/IO/IOSS/vtkIOSSReader.cxx
@@ -87,6 +87,7 @@
 #include <string>
 #include <utility>
 
+VTK_ABI_NAMESPACE_BEGIN
 struct DatabaseParitionInfo
 {
   int ProcessCount = 0;
@@ -3070,3 +3071,4 @@ void vtkIOSSReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "NodeSetFieldSelection: " << endl;
   this->GetNodeSetFieldSelection()->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/IOSS/vtkIOSSReader.h b/IO/IOSS/vtkIOSSReader.h
index 98fb4900b519fe5b065ad7162bcd28a3c1425d68..9f289349c9e2a32545fe5a100905da692b900463 100644
--- a/IO/IOSS/vtkIOSSReader.h
+++ b/IO/IOSS/vtkIOSSReader.h
@@ -177,6 +177,7 @@
 
 #include <map> // for std::map
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkDataAssembly;
 class vtkMultiProcessController;
@@ -631,4 +632,5 @@ private:
   static vtkInformationIntegerKey* ENTITY_TYPE();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/IOSS/vtkIOSSUtilities.cxx b/IO/IOSS/vtkIOSSUtilities.cxx
index b658e3c50c5518ed897df3f2ba59e42503c92382..173bad93edbcdf63a3f4f81d9e5e2bf81a510b04 100644
--- a/IO/IOSS/vtkIOSSUtilities.cxx
+++ b/IO/IOSS/vtkIOSSUtilities.cxx
@@ -43,6 +43,7 @@
 
 namespace vtkIOSSUtilities
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //----------------------------------------------------------------------------
 class Cache::CacheInternals
@@ -1043,4 +1044,5 @@ void GetEntityAndFieldNames<Ioss::SideSet>(const Ioss::Region* region,
   }
 }
 
+VTK_ABI_NAMESPACE_END
 } // end of namespace.
diff --git a/IO/IOSS/vtkIOSSUtilities.h b/IO/IOSS/vtkIOSSUtilities.h
index bec4612cd624bac5f90f0878ba4a6e3bc4818a5c..8fb7b44b5b487f7b69d91f1011f2d7b5ec2992ad 100644
--- a/IO/IOSS/vtkIOSSUtilities.h
+++ b/IO/IOSS/vtkIOSSUtilities.h
@@ -53,11 +53,14 @@
 #include <cassert>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkDataSet;
+VTK_ABI_NAMESPACE_END
 
 namespace vtkIOSSUtilities
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 enum DatabaseFormatType
 {
@@ -290,7 +293,9 @@ DatabaseFormatType GetFormat(const Ioss::GroupingEntity* entity);
  */
 std::vector<Ioss::StructuredBlock*> GetMatchingStructuredBlocks(
   Ioss::Region* region, const std::string& blockname);
-};
+
+VTK_ABI_NAMESPACE_END
+}
 
 #endif
 // VTK-HeaderTest-Exclude: vtkIOSSUtilities.h
diff --git a/IO/IOSS/vtkIOSSWriter.cxx b/IO/IOSS/vtkIOSSWriter.cxx
index c810f5a8614ef837df4c208922e35e4115fd551e..78d010e12b096f868ae2bca6b69d14dd0224a104 100644
--- a/IO/IOSS/vtkIOSSWriter.cxx
+++ b/IO/IOSS/vtkIOSSWriter.cxx
@@ -56,6 +56,7 @@
 #include VTK_FMT(fmt/core.h)
 // clang-format on
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIOSSWriter::vtkInternals
 {
   Ioss::Init::Initializer io;
@@ -280,3 +281,4 @@ void vtkIOSSWriter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "DisplacementMagnitude: " << this->DisplacementMagnitude << endl;
   os << indent << "MaximumTimeStepsPerFile: " << this->MaximumTimeStepsPerFile << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/IOSS/vtkIOSSWriter.h b/IO/IOSS/vtkIOSSWriter.h
index 6dd7123fe1816789153084188718245c1189f31f..152515ba6f3998a5f4f61a857ef30e0399d95c3a 100644
--- a/IO/IOSS/vtkIOSSWriter.h
+++ b/IO/IOSS/vtkIOSSWriter.h
@@ -30,6 +30,7 @@
 
 #include <memory> // for std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKIOIOSS_EXPORT vtkIOSSWriter : public vtkDataObjectAlgorithm
@@ -141,5 +142,6 @@ private:
   double DisplacementMagnitude;
   int MaximumTimeStepsPerFile;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
diff --git a/IO/Image/vtkBMPReader.cxx b/IO/Image/vtkBMPReader.cxx
index 3b9554f32a5ed031af86650da1a624cffbe59e29..04419162a47f0e2d7c17494fedbf41d3cfb1bfba 100644
--- a/IO/Image/vtkBMPReader.cxx
+++ b/IO/Image/vtkBMPReader.cxx
@@ -21,6 +21,7 @@
 #include "vtkPointData.h"
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBMPReader);
 
 vtkBMPReader::vtkBMPReader()
@@ -611,3 +612,4 @@ int vtkBMPReader::CanReadFile(const char* fname)
   fclose(fp);
   return !errorOccurred;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkBMPReader.h b/IO/Image/vtkBMPReader.h
index 13f66c231cf0f822c44d4250b8b193507b65834c..75b870d769219c52b0e1085debf7cf59b0c7e105 100644
--- a/IO/Image/vtkBMPReader.h
+++ b/IO/Image/vtkBMPReader.h
@@ -43,6 +43,7 @@
 
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageReader.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLookupTable;
 
 class VTKIOIMAGE_EXPORT vtkBMPReader : public vtkImageReader
@@ -114,4 +115,5 @@ private:
   vtkBMPReader(const vtkBMPReader&) = delete;
   void operator=(const vtkBMPReader&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkBMPWriter.cxx b/IO/Image/vtkBMPWriter.cxx
index 9e05000e70176b97f0b3077418fa7cf2049a1c1b..86a0fd855e55abc87b2bbe7b48017f8631c57b97 100644
--- a/IO/Image/vtkBMPWriter.cxx
+++ b/IO/Image/vtkBMPWriter.cxx
@@ -21,6 +21,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBMPWriter);
 
 vtkCxxSetObjectMacro(vtkBMPWriter, Result, vtkUnsignedCharArray);
@@ -211,3 +212,4 @@ void vtkBMPWriter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Result: " << this->Result << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkBMPWriter.h b/IO/Image/vtkBMPWriter.h
index 33040a43448dbfbe2bd2ae9e72e12ac05ac9b806..e095ebb4316abc1e9d1268fe2bc8e35bb4f08304 100644
--- a/IO/Image/vtkBMPWriter.h
+++ b/IO/Image/vtkBMPWriter.h
@@ -29,6 +29,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 
 class VTKIOIMAGE_EXPORT vtkBMPWriter : public vtkImageWriter
@@ -71,4 +72,5 @@ private:
   vtkUnsignedCharArray* Result;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkDEMReader.cxx b/IO/Image/vtkDEMReader.cxx
index afaca2a88eaf21c510a7b353a0ca1cc00e3c450f..694277f224110152880325ef5e1baeb9a33305ce 100644
--- a/IO/Image/vtkDEMReader.cxx
+++ b/IO/Image/vtkDEMReader.cxx
@@ -23,6 +23,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDEMReader);
 
 #define VTK_SW 0
@@ -637,3 +638,4 @@ void vtkDEMReader::PrintSelf(ostream& os, vtkIndent indent)
        << this->ProfileDimension[1] << "\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkDEMReader.h b/IO/Image/vtkDEMReader.h
index 610ba07cef5fc1bff0aa4465276b732f61913743..271bb7365438a6f88612e791a8a4757aec9419c9 100644
--- a/IO/Image/vtkDEMReader.h
+++ b/IO/Image/vtkDEMReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkDEMReader : public vtkImageAlgorithm
 {
 public:
@@ -219,4 +220,5 @@ private:
   void operator=(const vtkDEMReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkDICOMImageReader.cxx b/IO/Image/vtkDICOMImageReader.cxx
index 06d09c775066da4dd75c4d865ef3899b16a8179d..412e9d4f7ddb30bb795369d92332b9939ef71642 100644
--- a/IO/Image/vtkDICOMImageReader.cxx
+++ b/IO/Image/vtkDICOMImageReader.cxx
@@ -30,6 +30,7 @@
 #include "DICOMAppHelper.h"
 #include "DICOMParser.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDICOMImageReader);
 
 class vtkDICOMImageReaderVector : public std::vector<std::string>
@@ -574,3 +575,4 @@ const char* vtkDICOMImageReader::GetDICOMFileName(int index)
   }
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkDICOMImageReader.h b/IO/Image/vtkDICOMImageReader.h
index 08049242ebce93cc69b5108d7e4b9a30fbcb80f9..ef075088cff6bc64fa8be2d1e9ce9a5dd58a812d 100644
--- a/IO/Image/vtkDICOMImageReader.h
+++ b/IO/Image/vtkDICOMImageReader.h
@@ -40,6 +40,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageReader2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDICOMImageReaderVector;
 class DICOMParser;
 class DICOMAppHelper;
@@ -242,4 +243,5 @@ private:
   void operator=(const vtkDICOMImageReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkGESignaReader.cxx b/IO/Image/vtkGESignaReader.cxx
index 37c4680b9f5527bd0d6185daa225b3497d435e21..affa2642aa05f53efc6c32a4feaeb24fc5f3ceca 100644
--- a/IO/Image/vtkGESignaReader.cxx
+++ b/IO/Image/vtkGESignaReader.cxx
@@ -25,6 +25,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGESignaReader);
 
 int vtkGESignaReader::CanReadFile(const char* fname)
@@ -737,3 +738,4 @@ void vtkGESignaReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkGESignaReader.h b/IO/Image/vtkGESignaReader.h
index be611efaad62d3f9700485f075480dbfd4375d05..0797fb88a40bf5ea5823b33cdb9ff42cba9e4a45 100644
--- a/IO/Image/vtkGESignaReader.h
+++ b/IO/Image/vtkGESignaReader.h
@@ -35,6 +35,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkMedicalImageReader2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkGESignaReader : public vtkMedicalImageReader2
 {
 public:
@@ -68,4 +69,5 @@ private:
   vtkGESignaReader(const vtkGESignaReader&) = delete;
   void operator=(const vtkGESignaReader&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkHDRReader.cxx b/IO/Image/vtkHDRReader.cxx
index fd0665a3e5fe347eb9474b5b8389e1f74fcb754b..e0d59175300201e53e36855b7b330a817045f116 100644
--- a/IO/Image/vtkHDRReader.cxx
+++ b/IO/Image/vtkHDRReader.cxx
@@ -26,6 +26,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHDRReader);
 
 #define HDR_DATA_SIZE 3
@@ -657,3 +658,4 @@ void vtkHDRReader::XYZ2RGB(const float convertMatrix[3][3], float& r, float& g,
   g = convertMatrix[1][0] * x + convertMatrix[1][1] * y + convertMatrix[1][2] * z;
   b = convertMatrix[2][0] * x + convertMatrix[2][1] * y + convertMatrix[2][2] * z;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkHDRReader.h b/IO/Image/vtkHDRReader.h
index e4110426c8e23d22af190c34c694efdb0d424478..7394446706887fac5252457aea78dccf34f02de4 100644
--- a/IO/Image/vtkHDRReader.h
+++ b/IO/Image/vtkHDRReader.h
@@ -28,6 +28,7 @@
 #include <string> // for std::string
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkHDRReader : public vtkImageReader
 {
 public:
@@ -163,4 +164,5 @@ private:
   vtkHDRReader(const vtkHDRReader&) = delete;
   void operator=(const vtkHDRReader&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkImageExport.cxx b/IO/Image/vtkImageExport.cxx
index 7e98880f9752ca34a91eabdf125862237bd1fac4..b9dc44e747254a468f45ebcb17fc98f1bb7acf5e 100644
--- a/IO/Image/vtkImageExport.cxx
+++ b/IO/Image/vtkImageExport.cxx
@@ -25,6 +25,7 @@
 #include <cctype>
 #include <cstring>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageExport);
 
 //------------------------------------------------------------------------------
@@ -660,3 +661,4 @@ void vtkImageExport::GetDataDirection(double* ptr)
   this->GetInputAlgorithm()->UpdateInformation();
   this->GetInputInformation()->Get(vtkDataObject::DIRECTION(), ptr);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkImageExport.h b/IO/Image/vtkImageExport.h
index 44f0ef8b1a9dd472b01920893ebd7ca6fb785161..f986ef69722562499567a422a3895eb5e113dec2 100644
--- a/IO/Image/vtkImageExport.h
+++ b/IO/Image/vtkImageExport.h
@@ -35,6 +35,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkImageExport : public vtkImageAlgorithm
 {
 public:
@@ -229,4 +230,5 @@ private:
   vtkInformation* GetInputInformation();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkImageImport.cxx b/IO/Image/vtkImageImport.cxx
index 95907c70aa81783caa9c26658cf9db82a1d48ec7..4deb553c949a4c49974e3df59fab9745e78c23ff 100644
--- a/IO/Image/vtkImageImport.cxx
+++ b/IO/Image/vtkImageImport.cxx
@@ -27,6 +27,7 @@
 #include <cctype>
 #include <exception>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageImport);
 
 #define tryCatchMacro(invocation, messagePrepend)                                                  \
@@ -501,3 +502,4 @@ void vtkImageImport::LegacyCheckWholeExtent()
                   "SetImportVoidPointer.  Both should be called even if the extents are\n"
                   "the same.");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkImageImport.h b/IO/Image/vtkImageImport.h
index 423fff83b70992eaffd612407680b960ff1a6bdc..698bb45334f4060504ff9eb9ca0f07439f8ba0da 100644
--- a/IO/Image/vtkImageImport.h
+++ b/IO/Image/vtkImageImport.h
@@ -35,6 +35,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkImageImport : public vtkImageAlgorithm
 {
 public:
@@ -374,4 +375,5 @@ private:
   void operator=(const vtkImageImport&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkImageImportExecutive.cxx b/IO/Image/vtkImageImportExecutive.cxx
index 1ff5f3c6c2c8bd3a16bf992c599a8879b9abb242..a5e5560c4fe6e8e771110ab44f6c72573d16b1a4 100644
--- a/IO/Image/vtkImageImportExecutive.cxx
+++ b/IO/Image/vtkImageImportExecutive.cxx
@@ -24,6 +24,7 @@
 #include "vtkInformation.h"
 #include "vtkInformationVector.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageImportExecutive);
 
 //------------------------------------------------------------------------------
@@ -45,3 +46,4 @@ vtkTypeBool vtkImageImportExecutive::ProcessRequest(
 
   return this->Superclass::ProcessRequest(request, inInfoVec, outInfoVec);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkImageImportExecutive.h b/IO/Image/vtkImageImportExecutive.h
index f5814d6c0bb70337db48514f245701aac5b1e5cb..35c3bcba6990ebb0bfb1214fda2ac3e39259e743 100644
--- a/IO/Image/vtkImageImportExecutive.h
+++ b/IO/Image/vtkImageImportExecutive.h
@@ -24,6 +24,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkImageImportExecutive : public vtkStreamingDemandDrivenPipeline
 {
 public:
@@ -46,4 +47,5 @@ private:
   void operator=(const vtkImageImportExecutive&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkImageReader.cxx b/IO/Image/vtkImageReader.cxx
index 9ad1355b03e34d5fa7b676f4c342fe463935c6f7..cc989530cc24166c685178148036502efe48dd1a 100644
--- a/IO/Image/vtkImageReader.cxx
+++ b/IO/Image/vtkImageReader.cxx
@@ -26,6 +26,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkImageReader);
 
 vtkCxxSetObjectMacro(vtkImageReader, Transform, vtkTransform);
@@ -660,3 +661,4 @@ void vtkImageReader::ComputeInverseTransformedIncrements(vtkIdType inIncr[3], vt
                   << outIncr[2]);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkImageReader.h b/IO/Image/vtkImageReader.h
index 5f8aa7b50c8beaaf32a1caf97c9b30e21eef8096..8cdd62216325e386437ec9e7b2996b940d9f65ec 100644
--- a/IO/Image/vtkImageReader.h
+++ b/IO/Image/vtkImageReader.h
@@ -30,6 +30,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageReader2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransform;
 
 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
@@ -126,4 +127,5 @@ private:
   void operator=(const vtkImageReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkImageReader2.cxx b/IO/Image/vtkImageReader2.cxx
index 7959f106b86010f1d78d21c2adc064930d4efa79..7888581f935f1659bb67b62462eb62d8ab27c1cc 100644
--- a/IO/Image/vtkImageReader2.cxx
+++ b/IO/Image/vtkImageReader2.cxx
@@ -30,6 +30,7 @@
 #include "vtksys/FStream.hxx"
 #include "vtksys/SystemTools.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageReader2);
 
 //------------------------------------------------------------------------------
@@ -817,3 +818,4 @@ void vtkImageReader2::SetDataScalarType(int type)
   // Set the default output scalar type
   vtkImageData::SetScalarType(this->DataScalarType, this->GetOutputInformation(0));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkImageReader2.h b/IO/Image/vtkImageReader2.h
index 872f29eda11eea714e8fce738ed0a26053476ee5..111eeb8fb34a3ce599bda7764ef68c2e06cb243a 100644
--- a/IO/Image/vtkImageReader2.h
+++ b/IO/Image/vtkImageReader2.h
@@ -44,6 +44,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 
 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
@@ -340,4 +341,5 @@ private:
   void operator=(const vtkImageReader2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkImageReader2Collection.cxx b/IO/Image/vtkImageReader2Collection.cxx
index a7650b56d0a774f738b2ded204f533a1f4850b23..009aab589b0e931610c6024d6d2c1529256dd29d 100644
--- a/IO/Image/vtkImageReader2Collection.cxx
+++ b/IO/Image/vtkImageReader2Collection.cxx
@@ -17,6 +17,7 @@
 #include "vtkImageReader2.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageReader2Collection);
 
 void vtkImageReader2Collection::AddItem(vtkImageReader2* f)
@@ -39,3 +40,4 @@ void vtkImageReader2Collection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkImageReader2Collection.h b/IO/Image/vtkImageReader2Collection.h
index 3b76a64083327eb8ef65c4cd2c346a6cb4adad0b..583e956d21db7cee504837c784c8bf177cecce16 100644
--- a/IO/Image/vtkImageReader2Collection.h
+++ b/IO/Image/vtkImageReader2Collection.h
@@ -28,6 +28,7 @@
 #include "vtkCollection.h"
 #include "vtkIOImageModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageReader2;
 
 class VTKIOIMAGE_EXPORT vtkImageReader2Collection : public vtkCollection
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkImageReader2Collection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkImageReader2Factory.cxx b/IO/Image/vtkImageReader2Factory.cxx
index 39e0ea2c679d2aaecb028183071d5d8153fff3fc..511f845d5ac81bca623160acf67dd9eeeae7b2f8 100644
--- a/IO/Image/vtkImageReader2Factory.cxx
+++ b/IO/Image/vtkImageReader2Factory.cxx
@@ -37,6 +37,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageReader2Factory);
 
 //----------------------------------------------------------------------------
@@ -213,3 +214,4 @@ void vtkImageReader2Factory::GetRegisteredReaders(vtkImageReader2Collection* col
     collection->AddItem(ret);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkImageReader2Factory.h b/IO/Image/vtkImageReader2Factory.h
index 174c8be770a9b002249c7048d2a3df8cde3e6adb..17f4b9a150215e7a3fb5ba5079cae2afc354c847 100644
--- a/IO/Image/vtkImageReader2Factory.h
+++ b/IO/Image/vtkImageReader2Factory.h
@@ -38,6 +38,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageReader2;
 class vtkImageReader2Collection;
 class vtkImageReader2FactoryCleanup;
@@ -99,4 +100,5 @@ private:
   friend class vtkImageReader2FactoryCleanup;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkImageWriter.cxx b/IO/Image/vtkImageWriter.cxx
index 32176cb3d54355668eb82cc5a451414d62f475c7..9d5c88055c1e7e480f7ecef28d103357de6e0105 100644
--- a/IO/Image/vtkImageWriter.cxx
+++ b/IO/Image/vtkImageWriter.cxx
@@ -28,6 +28,7 @@
 #include <vtksys/FStream.hxx>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageWriter);
 
 //------------------------------------------------------------------------------
@@ -512,3 +513,4 @@ void vtkImageWriter::DeleteFiles()
   }
   this->FilesDeleted = 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkImageWriter.h b/IO/Image/vtkImageWriter.h
index 1d0d9698ad76dcfc272a54f46a119bf15e952389..26967c2ef0fdd5b29f9b8ce3764abdaad237e227 100644
--- a/IO/Image/vtkImageWriter.h
+++ b/IO/Image/vtkImageWriter.h
@@ -29,6 +29,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkImageWriter : public vtkImageAlgorithm
 {
 public:
@@ -129,4 +130,5 @@ private:
   void operator=(const vtkImageWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkJPEGReader.cxx b/IO/Image/vtkJPEGReader.cxx
index 90e08881606b540557043c775b968df3846f1985..8a0242e81e62a1fd807b3f25d9b2b9875cc23496 100644
--- a/IO/Image/vtkJPEGReader.cxx
+++ b/IO/Image/vtkJPEGReader.cxx
@@ -25,11 +25,15 @@
 extern "C"
 {
 #include "vtk_jpeg.h"
-#include <csetjmp>
+#include <setjmp.h>
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 vtkStandardNewMacro(vtkJPEGReader);
 
+VTK_ABI_NAMESPACE_END
+
 #if defined(_MSC_VER)
 #if defined(_WIN64)
 #pragma warning(disable : 4324) // structure was padded at end...
@@ -46,8 +50,10 @@ struct vtk_jpeg_error_mgr
   FILE* fp;
 };
 
+namespace
+{
 // this is called on jpeg error conditions
-extern "C" void vtk_jpeg_error_exit(j_common_ptr cinfo)
+void vtk_jpeg_error_exit(j_common_ptr cinfo)
 {
   /* cinfo->err really points to a my_error_mgr struct, so coerce pointer */
   vtk_jpeg_error_mgr* err = reinterpret_cast<vtk_jpeg_error_mgr*>(cinfo->err);
@@ -56,7 +62,7 @@ extern "C" void vtk_jpeg_error_exit(j_common_ptr cinfo)
   longjmp(err->setjmp_buffer, 1);
 }
 
-extern "C" void vtk_jpeg_output_message(j_common_ptr cinfo)
+void vtk_jpeg_output_message(j_common_ptr cinfo)
 {
   char buffer[JMSG_LENGTH_MAX];
 
@@ -67,15 +73,15 @@ extern "C" void vtk_jpeg_output_message(j_common_ptr cinfo)
   cinfo->err->num_warnings++;
 }
 
-extern "C" void jpg_null(j_decompress_ptr vtkNotUsed(cinfo)) {}
+void jpg_null(j_decompress_ptr vtkNotUsed(cinfo)) {}
 
-extern "C" boolean fill_input_buffer(j_decompress_ptr vtkNotUsed(cinfo))
+boolean fill_input_buffer(j_decompress_ptr vtkNotUsed(cinfo))
 {
   vtkGenericWarningMacro(<< "libjpeg error: unexpected end of JPEG data!");
   return FALSE;
 }
 
-extern "C" void skip_input_data(j_decompress_ptr cinfo, long num_bytes)
+void skip_input_data(j_decompress_ptr cinfo, long num_bytes)
 {
   struct jpeg_source_mgr* src = (struct jpeg_source_mgr*)cinfo->src;
 
@@ -88,9 +94,9 @@ extern "C" void skip_input_data(j_decompress_ptr cinfo, long num_bytes)
 
 // Read JPEG image from a memory buffer
 #if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED)
-extern "C" void jMemSrc(j_decompress_ptr cinfo, const void* buffer, long nbytes)
+void jMemSrc(j_decompress_ptr cinfo, const void* buffer, long nbytes)
 #else
-extern "C" void jpeg_mem_src(j_decompress_ptr cinfo, const void* buffer, long nbytes)
+void jpeg_mem_src(j_decompress_ptr cinfo, const void* buffer, long nbytes)
 #endif
 {
   cinfo->src = (struct jpeg_source_mgr*)(*cinfo->mem->alloc_small)(
@@ -104,6 +110,7 @@ extern "C" void jpeg_mem_src(j_decompress_ptr cinfo, const void* buffer, long nb
   cinfo->src->bytes_in_buffer = nbytes;
   cinfo->src->next_input_byte = (const JOCTET*)buffer;
 }
+}
 
 #ifdef _MSC_VER
 // Let us get rid of this funny warning on /W4:
@@ -112,6 +119,8 @@ extern "C" void jpeg_mem_src(j_decompress_ptr cinfo, const void* buffer, long nb
 #pragma warning(disable : 4611)
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
+
 void vtkJPEGReader::ExecuteInformation()
 {
   // certain variables must be stored here for longjmp
@@ -466,3 +475,4 @@ void vtkJPEGReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkJPEGReader.h b/IO/Image/vtkJPEGReader.h
index aa7dca1ed4be5b0f7f0ace50cbef4a80b56a0739..adf95a8f2c3bd886bedefd4dca01b51133bd2752 100644
--- a/IO/Image/vtkJPEGReader.h
+++ b/IO/Image/vtkJPEGReader.h
@@ -31,6 +31,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageReader2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkJPEGReader : public vtkImageReader2
 {
 public:
@@ -69,4 +70,5 @@ private:
   vtkJPEGReader(const vtkJPEGReader&) = delete;
   void operator=(const vtkJPEGReader&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkJPEGWriter.cxx b/IO/Image/vtkJPEGWriter.cxx
index 5386ea93df1ddf8ae418606927f715ef38afce84..ffcd293df2f43197359cb0b339bdb8c8b6b8d77d 100644
--- a/IO/Image/vtkJPEGWriter.cxx
+++ b/IO/Image/vtkJPEGWriter.cxx
@@ -27,6 +27,7 @@ extern "C"
 #include "vtk_jpeg.h"
 #include <csetjmp>
 }
+VTK_ABI_NAMESPACE_BEGIN
 
 vtkStandardNewMacro(vtkJPEGWriter);
 
@@ -124,6 +125,7 @@ void vtkJPEGWriter::Write()
   delete[] this->InternalFileName;
   this->InternalFileName = nullptr;
 }
+VTK_ABI_NAMESPACE_END
 
 // these three routines are for writing into memory
 extern "C"
@@ -191,6 +193,8 @@ extern "C"
 #endif
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
+
 struct VTK_JPEG_ERROR_MANAGER
 {
   struct jpeg_error_mgr pub;
@@ -198,18 +202,20 @@ struct VTK_JPEG_ERROR_MANAGER
 };
 
 typedef struct VTK_JPEG_ERROR_MANAGER* VTK_JPEG_ERROR_PTR;
+VTK_ABI_NAMESPACE_END
 
-extern "C"
+namespace
 {
-  /* The JPEG library does not expect the error function to return.
-     Therefore we must use this ugly longjmp call.  */
-  void VTK_JPEG_ERROR_EXIT(j_common_ptr cinfo)
-  {
-    VTK_JPEG_ERROR_PTR jpegErr = reinterpret_cast<VTK_JPEG_ERROR_PTR>(cinfo->err);
-    longjmp(jpegErr->setjmp_buffer, 1);
-  }
+/* The JPEG library does not expect the error function to return.
+   Therefore we must use this ugly longjmp call.  */
+void VTK_JPEG_ERROR_EXIT(j_common_ptr cinfo)
+{
+  VTK_JPEG_ERROR_PTR jpegErr = reinterpret_cast<VTK_JPEG_ERROR_PTR>(cinfo->err);
+  longjmp(jpegErr->setjmp_buffer, 1);
+}
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 // we disable this warning because even though this is a C++ file, between
 // the setjmp and resulting longjmp there should not be any C++ constructors
 // or destructors.
@@ -360,3 +366,4 @@ void vtkJPEGWriter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Progressive: " << (this->Progressive ? "On" : "Off") << "\n";
   os << indent << "Result: " << this->Result << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkJPEGWriter.h b/IO/Image/vtkJPEGWriter.h
index 5bfb0231c9420d5f962f1f8dd1118d65ef821359..118ad3e59d859e8429266eff9208f23d6125a486 100644
--- a/IO/Image/vtkJPEGWriter.h
+++ b/IO/Image/vtkJPEGWriter.h
@@ -30,6 +30,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 class vtkImageData;
 
@@ -97,4 +98,5 @@ private:
   void operator=(const vtkJPEGWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkJSONImageWriter.cxx b/IO/Image/vtkJSONImageWriter.cxx
index 1f65d56f5fea827f55e8ce6fcfedf8c5aacb21af..87d565d1ab69a53e1d18b86979e3d7874810609e 100644
--- a/IO/Image/vtkJSONImageWriter.cxx
+++ b/IO/Image/vtkJSONImageWriter.cxx
@@ -29,6 +29,7 @@
 #include <vtksys/FStream.hxx>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkJSONImageWriter);
 
 //------------------------------------------------------------------------------
@@ -159,3 +160,4 @@ void vtkJSONImageWriter::Write()
   this->Modified();
   this->UpdateWholeExtent();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkJSONImageWriter.h b/IO/Image/vtkJSONImageWriter.h
index 0d76629ecc8486af8d787db9b5af84a898c7550a..aed3242e2196ddb95905806d3ea0b850f5db5378 100644
--- a/IO/Image/vtkJSONImageWriter.h
+++ b/IO/Image/vtkJSONImageWriter.h
@@ -26,6 +26,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkJSONImageWriter : public vtkImageAlgorithm
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkJSONImageWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkMRCReader.cxx b/IO/Image/vtkMRCReader.cxx
index 4fd7757668ec80e2f0727b3ac436d15921d78776..b88bea3ab20ebefdc675b1b845d6d706a963d7de 100644
--- a/IO/Image/vtkMRCReader.cxx
+++ b/IO/Image/vtkMRCReader.cxx
@@ -37,6 +37,7 @@
 
 //#define VTK_DEBUG_MRC_HEADER
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 //
@@ -403,3 +404,4 @@ void vtkMRCReader::ExecuteDataWithInformation(
       vtkErrorMacro("Unknown data type");
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkMRCReader.h b/IO/Image/vtkMRCReader.h
index 287d74d557c8c1c00a77da31e2c33bc4a8fed55b..d969c6ce29cd539bc6b614a05281ee702e7ec9d1 100644
--- a/IO/Image/vtkMRCReader.h
+++ b/IO/Image/vtkMRCReader.h
@@ -27,6 +27,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 
@@ -60,4 +61,5 @@ private:
   vtkInternal* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkMedicalImageProperties.cxx b/IO/Image/vtkMedicalImageProperties.cxx
index 5263c5e916d9103f96eed6ec487395d07ca5b62d..5f597cb78f09a1f68cd89f19449d926f83a712b0 100644
--- a/IO/Image/vtkMedicalImageProperties.cxx
+++ b/IO/Image/vtkMedicalImageProperties.cxx
@@ -25,6 +25,7 @@
 #include <ctime>  // for strftime
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMedicalImageProperties);
 
 static const char* vtkMedicalImagePropertiesOrientationString[] = { "AXIAL", "CORONAL", "SAGITTAL",
@@ -1066,3 +1067,4 @@ void vtkMedicalImageProperties::PrintSelf(ostream& os, vtkIndent indent)
 
   this->Internals->Print(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkMedicalImageProperties.h b/IO/Image/vtkMedicalImageProperties.h
index cf5684383c0867bb2b0a3baca0d04cc42e563ce0..812f4bdf95f336347f42f1b594a2927e0c322421 100644
--- a/IO/Image/vtkMedicalImageProperties.h
+++ b/IO/Image/vtkMedicalImageProperties.h
@@ -30,6 +30,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMedicalImagePropertiesInternals;
 
 class VTKIOIMAGE_EXPORT vtkMedicalImageProperties : public vtkObject
@@ -527,4 +528,5 @@ private:
   void operator=(const vtkMedicalImageProperties&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkMedicalImageReader2.cxx b/IO/Image/vtkMedicalImageReader2.cxx
index dac2a71cdc891c95a85a23f2a706453e76c83bfe..e720b042f0f251eb7d6162243dfd47539eaab255 100644
--- a/IO/Image/vtkMedicalImageReader2.cxx
+++ b/IO/Image/vtkMedicalImageReader2.cxx
@@ -18,6 +18,7 @@
 #include "vtkMedicalImageProperties.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMedicalImageReader2);
 
 //------------------------------------------------------------------------------
@@ -184,3 +185,4 @@ void vtkMedicalImageReader2::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "MedicalImageProperties: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkMedicalImageReader2.h b/IO/Image/vtkMedicalImageReader2.h
index e4206ed2abba8a3893bbf02cdb266731a256011c..bbf427c11b179b5b50786c5149154214098e16fc 100644
--- a/IO/Image/vtkMedicalImageReader2.h
+++ b/IO/Image/vtkMedicalImageReader2.h
@@ -29,6 +29,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageReader2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMedicalImageProperties;
 
 class VTKIOIMAGE_EXPORT vtkMedicalImageReader2 : public vtkImageReader2
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkMedicalImageReader2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkMetaImageReader.cxx b/IO/Image/vtkMetaImageReader.cxx
index 9f3b39243818b0a7d37a816b1eda88f85dd1f359..cbe220af453c613debe254b46e3298bd27babece 100644
--- a/IO/Image/vtkMetaImageReader.cxx
+++ b/IO/Image/vtkMetaImageReader.cxx
@@ -40,6 +40,7 @@
 #include <sys/stat.h>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMetaImageReader);
 
 //------------------------------------------------------------------------------
@@ -380,3 +381,4 @@ void vtkMetaImageReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "DistanceUnits: " << this->DistanceUnits << endl;
   os << indent << "AnatomicalOrientation: " << this->AnatomicalOrientation << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkMetaImageReader.h b/IO/Image/vtkMetaImageReader.h
index 704685c33489ae5c0894323013c720e8725e9164..75de9fbf93e49e7126caadc400ede1a180a44e6e 100644
--- a/IO/Image/vtkMetaImageReader.h
+++ b/IO/Image/vtkMetaImageReader.h
@@ -68,6 +68,8 @@ namespace vtkmetaio
 class MetaImage;
 } // forward declaration
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKIOIMAGE_EXPORT vtkMetaImageReader : public vtkImageReader2
 {
 public:
@@ -198,4 +200,5 @@ private:
   char AnatomicalOrientation[255];
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkMetaImageWriter.cxx b/IO/Image/vtkMetaImageWriter.cxx
index 8bc1fa0a97cecef01e86601e991b99144ff18196..39557f7fc33b7cc13a88ed0425b8941bc0b5d8d2 100644
--- a/IO/Image/vtkMetaImageWriter.cxx
+++ b/IO/Image/vtkMetaImageWriter.cxx
@@ -40,6 +40,7 @@
 #include <sys/stat.h>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMetaImageWriter);
 
 //------------------------------------------------------------------------------
@@ -200,3 +201,4 @@ void vtkMetaImageWriter::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "MHDFileName: " << (this->MHDFileName ? this->MHDFileName : "(none)") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkMetaImageWriter.h b/IO/Image/vtkMetaImageWriter.h
index 2e82b048053ff609a3dc2e3db251e10a8d1d5b90..1fcaca4ea1da702a03e86702157ebbce7672891f 100644
--- a/IO/Image/vtkMetaImageWriter.h
+++ b/IO/Image/vtkMetaImageWriter.h
@@ -70,6 +70,7 @@ namespace vtkmetaio
 class MetaImage;
 } // forward declaration
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkMetaImageWriter : public vtkImageWriter
 {
 public:
@@ -120,4 +121,5 @@ private:
   vtkmetaio::MetaImage* MetaImagePtr;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkNIFTIImageHeader.cxx b/IO/Image/vtkNIFTIImageHeader.cxx
index abaf4e3964e586de3ffa1635f649f0cb9c4111e5..d6c8206f889e688545c54f247f71a3717e710ac7 100644
--- a/IO/Image/vtkNIFTIImageHeader.cxx
+++ b/IO/Image/vtkNIFTIImageHeader.cxx
@@ -23,6 +23,7 @@ See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
 #include <cmath>
 #include <cstring>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkNIFTIImageHeader);
 
 //------------------------------------------------------------------------------
@@ -453,3 +454,4 @@ void vtkNIFTIImageHeader::SetAuxFile(const char* val)
 {
   this->SetStringValue(this->AuxFile, val, 24);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkNIFTIImageHeader.h b/IO/Image/vtkNIFTIImageHeader.h
index a949165c65c39e3b7d4d9c71349907ce6e4d1623..eeb1cb78d4a8e7764ea737e343643c99ffcf3277 100644
--- a/IO/Image/vtkNIFTIImageHeader.h
+++ b/IO/Image/vtkNIFTIImageHeader.h
@@ -42,6 +42,7 @@
 struct nifti_1_header;
 struct nifti_2_header;
 
+VTK_ABI_NAMESPACE_BEGIN
 //----------------------------------------------------------------------------
 class VTKIOIMAGE_EXPORT vtkNIFTIImageHeader : public vtkObject
 {
@@ -446,4 +447,5 @@ private:
   void operator=(const vtkNIFTIImageHeader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkNIFTIImageHeader_h
diff --git a/IO/Image/vtkNIFTIImageReader.cxx b/IO/Image/vtkNIFTIImageReader.cxx
index 63fd1d2fdf4f69656434dc67833194d471e30532..ff251a6286a87d02d64f5073f17f28ea6f89a85a 100644
--- a/IO/Image/vtkNIFTIImageReader.cxx
+++ b/IO/Image/vtkNIFTIImageReader.cxx
@@ -44,6 +44,7 @@
 #include <cstring>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkNIFTIImageReader);
 
 //------------------------------------------------------------------------------
@@ -1344,3 +1345,4 @@ int vtkNIFTIImageReader::RequestData(vtkInformation* request,
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkNIFTIImageReader.h b/IO/Image/vtkNIFTIImageReader.h
index 3b84a035840480f69f0674bdabbe0a2006c39f7f..fa528755c0be9e80c79761e5d9a44b8e4c230a7a 100644
--- a/IO/Image/vtkNIFTIImageReader.h
+++ b/IO/Image/vtkNIFTIImageReader.h
@@ -38,11 +38,15 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageReader2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkNIFTIImageHeader;
 class vtkMatrix4x4;
+VTK_ABI_NAMESPACE_END
 
 struct nifti_1_header;
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //----------------------------------------------------------------------------
 class VTKIOIMAGE_EXPORT vtkNIFTIImageReader : public vtkImageReader2
 {
@@ -258,4 +262,5 @@ private:
   void operator=(const vtkNIFTIImageReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkNIFTIImageReader_h
diff --git a/IO/Image/vtkNIFTIImageWriter.cxx b/IO/Image/vtkNIFTIImageWriter.cxx
index 5afa9cf7926d20797435bc4d50a867fc9504ee9a..0c8f7f4a4f417e34eb511248384198f6a358b9af 100644
--- a/IO/Image/vtkNIFTIImageWriter.cxx
+++ b/IO/Image/vtkNIFTIImageWriter.cxx
@@ -42,6 +42,7 @@
 #include <cstdio>
 #include <cstring>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkNIFTIImageWriter);
 vtkCxxSetObjectMacro(vtkNIFTIImageWriter, QFormMatrix, vtkMatrix4x4);
 vtkCxxSetObjectMacro(vtkNIFTIImageWriter, SFormMatrix, vtkMatrix4x4);
@@ -935,3 +936,4 @@ int vtkNIFTIImageWriter::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkNIFTIImageWriter.h b/IO/Image/vtkNIFTIImageWriter.h
index bd76a966787bdb7c0a094ae2b9260e87b6268f10..ecf727f8e17167dfa74ffe2459b70da7ddca1177 100644
--- a/IO/Image/vtkNIFTIImageWriter.h
+++ b/IO/Image/vtkNIFTIImageWriter.h
@@ -36,6 +36,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkNIFTIImageHeader;
 
@@ -234,4 +235,5 @@ private:
   void operator=(const vtkNIFTIImageWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkNIFTIImageWriter_h
diff --git a/IO/Image/vtkNrrdReader.cxx b/IO/Image/vtkNrrdReader.cxx
index 47ac47df184c5fe70e0f72ad73e815359443e645..d8047362720c3fdb4426ca96a918e8cce2220626 100644
--- a/IO/Image/vtkNrrdReader.cxx
+++ b/IO/Image/vtkNrrdReader.cxx
@@ -56,6 +56,7 @@
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
 //=============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 static std::string trim(std::string s)
 {
   size_t start = 0;
@@ -934,3 +935,4 @@ int vtkNrrdReader::ReadDataGZip(vtkImageData* output)
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkNrrdReader.h b/IO/Image/vtkNrrdReader.h
index e1ef3a4b74601fcf3a9833f8cf3b14c2ca9873b7..3d6f0a124b065acf882698e3118a4a0a8803a103 100644
--- a/IO/Image/vtkNrrdReader.h
+++ b/IO/Image/vtkNrrdReader.h
@@ -39,6 +39,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCharArray;
 
 class VTKIOIMAGE_EXPORT vtkNrrdReader : public vtkImageReader
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkNrrdReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkNrrdReader_h
diff --git a/IO/Image/vtkOMETIFFReader.cxx b/IO/Image/vtkOMETIFFReader.cxx
index 65c38784542b4577bd2cf36912c002ba0af23813..19ee787ea05f3e8c689ec4044e76cd9cad074d51 100644
--- a/IO/Image/vtkOMETIFFReader.cxx
+++ b/IO/Image/vtkOMETIFFReader.cxx
@@ -40,6 +40,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOMETIFFReader::vtkOMEInternals
 {
 public:
@@ -448,3 +449,4 @@ void vtkOMETIFFReader::ExecuteDataWithInformation(vtkDataObject* dobj, vtkInform
   omeinternals.ExtractFromCache(output, time_step);
   output->SetSpacing(this->DataSpacing);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkOMETIFFReader.h b/IO/Image/vtkOMETIFFReader.h
index 0b4c745e43c97480446be02c6e38f7d85e8c55e6..bf1b9372a8cfbea7829371adb16ec9e0d7ba1741 100644
--- a/IO/Image/vtkOMETIFFReader.h
+++ b/IO/Image/vtkOMETIFFReader.h
@@ -42,6 +42,7 @@
 
 #include "vtkTIFFReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkOMETIFFReader : public vtkTIFFReader
 {
 public:
@@ -72,4 +73,5 @@ private:
   vtkOMEInternals* OMEInternals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkPNGReader.cxx b/IO/Image/vtkPNGReader.cxx
index 0847d94bbd6112cb36e9b9a74e3100d4cce0cecf..7a17cf1744328f977f9e17c1460654e38c871758 100644
--- a/IO/Image/vtkPNGReader.cxx
+++ b/IO/Image/vtkPNGReader.cxx
@@ -25,6 +25,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPNGReader);
 
 #ifdef _MSC_VER
@@ -625,3 +626,4 @@ size_t vtkPNGReader::GetNumberOfTextChunks()
 {
   return this->Internals->TextKeyValue.size();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkPNGReader.h b/IO/Image/vtkPNGReader.h
index 6fecf8a00f5e0946825bab0528de153c9180b6f3..b3ce900dd3c31fba82c5f93976b67afc340e1513 100644
--- a/IO/Image/vtkPNGReader.h
+++ b/IO/Image/vtkPNGReader.h
@@ -29,6 +29,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageReader2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkPNGReader : public vtkImageReader2
 {
 public:
@@ -104,4 +105,5 @@ private:
   vtkInternals* Internals;
   bool ReadSpacingFromFile;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkPNGWriter.cxx b/IO/Image/vtkPNGWriter.cxx
index 80509d8e0546e18511cb7ffb947dedfbe3416151..9d88b93ed84dac49d9e9c36153646422b634adc1 100644
--- a/IO/Image/vtkPNGWriter.cxx
+++ b/IO/Image/vtkPNGWriter.cxx
@@ -26,6 +26,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPNGWriter::vtkInternals
 {
 public:
@@ -398,3 +399,4 @@ void vtkPNGWriter::ClearText()
     this->Modified();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkPNGWriter.h b/IO/Image/vtkPNGWriter.h
index 1e45084d7bd05652b82d51b17fe8f6c82277e234..2565482da083fff37a0c790e882a17fcc40c0528 100644
--- a/IO/Image/vtkPNGWriter.h
+++ b/IO/Image/vtkPNGWriter.h
@@ -29,6 +29,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkUnsignedCharArray;
 
@@ -120,4 +121,5 @@ private:
   void operator=(const vtkPNGWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkPNMReader.cxx b/IO/Image/vtkPNMReader.cxx
index 26105266de8f7227c866e9df53bd8c1a6061ccd6..fdaa6d987ef834203adf6b4a321260c72eee9890 100644
--- a/IO/Image/vtkPNMReader.cxx
+++ b/IO/Image/vtkPNMReader.cxx
@@ -19,6 +19,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPNMReader);
 
 static char vtkPNMReaderGetChar(FILE* fp)
@@ -222,3 +223,4 @@ void vtkPNMReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkPNMReader.h b/IO/Image/vtkPNMReader.h
index f48071cce27a84588c3c46e834e6c731c4c3f2d4..8113c18b7b21d7152a3519b1464610baf9d34f48 100644
--- a/IO/Image/vtkPNMReader.h
+++ b/IO/Image/vtkPNMReader.h
@@ -38,6 +38,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkPNMReader : public vtkImageReader
 {
 public:
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkPNMReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkPNMWriter.cxx b/IO/Image/vtkPNMWriter.cxx
index 5684f7d0edb92b1296d7c4582eeb4f1541acf7df..cf4f5a0dde94e13e95b73f54f89808b06f0632c0 100644
--- a/IO/Image/vtkPNMWriter.cxx
+++ b/IO/Image/vtkPNMWriter.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPNMWriter);
 
 void vtkPNMWriter::WriteFileHeader(ostream* file, vtkImageData* cache, int wExt[6])
@@ -109,3 +110,4 @@ void vtkPNMWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkPNMWriter.h b/IO/Image/vtkPNMWriter.h
index da2ff56325bd3332613eeeb28ec4271da7ef78c6..aa311f9ac7dc054ee71d6936463106a0771531a4 100644
--- a/IO/Image/vtkPNMWriter.h
+++ b/IO/Image/vtkPNMWriter.h
@@ -26,6 +26,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkPNMWriter : public vtkImageWriter
 {
 public:
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkPNMWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkPostScriptWriter.cxx b/IO/Image/vtkPostScriptWriter.cxx
index c45a79732dd561d7aaa1ba93ed6df14f4475a3d8..0fd9f76eafaa47e43706c39f20f93793cafb05d4 100644
--- a/IO/Image/vtkPostScriptWriter.cxx
+++ b/IO/Image/vtkPostScriptWriter.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPostScriptWriter);
 
 #define VTK_MARGIN 0.95
@@ -194,3 +195,4 @@ void vtkPostScriptWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkPostScriptWriter.h b/IO/Image/vtkPostScriptWriter.h
index 36b1ec0f4a9ba2594fa59d9fe3060264a2c41c7a..bc0ff2c7cf6a84bf8fa11ee22d1c00f7dc4f532e 100644
--- a/IO/Image/vtkPostScriptWriter.h
+++ b/IO/Image/vtkPostScriptWriter.h
@@ -28,6 +28,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkPostScriptWriter : public vtkImageWriter
 {
 public:
@@ -48,4 +49,5 @@ private:
   void operator=(const vtkPostScriptWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkSEPReader.cxx b/IO/Image/vtkSEPReader.cxx
index 2b15bc249ea5b143334a5da5c7e8d9ffe70c5bcd..b668a7c762f8bdb0689af52d83f283150365b4d3 100644
--- a/IO/Image/vtkSEPReader.cxx
+++ b/IO/Image/vtkSEPReader.cxx
@@ -38,6 +38,7 @@
 
 namespace details
 {
+VTK_ABI_NAMESPACE_BEGIN
 static constexpr std::size_t DataFormatSize[] = { 4, 4, 8 };
 
 inline void SwapByteOrder4(char* data)
@@ -82,8 +83,11 @@ bool DimensionIsInRange(int dim)
 {
   return dim >= 0 && dim < SEP_READER_MAX_DIMENSION;
 }
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 std::ostream& operator<<(std::ostream& os, details::EndiannessType& type)
 {
   switch (type)
@@ -573,3 +577,4 @@ bool vtkSEPReader::CanReadFile(const char* filename)
   std::string extension = vtksys::SystemTools::GetFilenameLastExtension(filename);
   return extension == ".H";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkSEPReader.h b/IO/Image/vtkSEPReader.h
index 83d127a41e457e95240bdb335c26a54d36cd1c3a..a7d8aad151054f1c16f4782df09e4157b1688e17 100644
--- a/IO/Image/vtkSEPReader.h
+++ b/IO/Image/vtkSEPReader.h
@@ -30,6 +30,7 @@
 
 namespace details
 {
+VTK_ABI_NAMESPACE_BEGIN
 enum class EndiannessType : std::uint8_t
 {
   SEP_LITTLE_ENDIAN = 0,
@@ -37,8 +38,10 @@ enum class EndiannessType : std::uint8_t
 };
 
 static constexpr int SEP_READER_MAX_DIMENSION = 32u;
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 
 class VTKIOIMAGE_EXPORT vtkSEPReader : public vtkImageAlgorithm
@@ -163,4 +166,5 @@ private:
   void operator=(const vtkSEPReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSEPReader_h
diff --git a/IO/Image/vtkSLCReader.cxx b/IO/Image/vtkSLCReader.cxx
index bfe5712dbdd63d0d1151c173373b21a4ab600ffa..187c83e96c085ef1b5e0d342bcfc474be06c89cd 100644
--- a/IO/Image/vtkSLCReader.cxx
+++ b/IO/Image/vtkSLCReader.cxx
@@ -23,6 +23,7 @@
 
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSLCReader);
 
 // Constructor for a vtkSLCReader.
@@ -464,3 +465,4 @@ void vtkSLCReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Error: " << this->Error << "\n";
   os << indent << "File Name: " << (this->FileName ? this->FileName : "(none)") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkSLCReader.h b/IO/Image/vtkSLCReader.h
index ea54da31c61226a8260679713c3558d88625f10b..07ec38fc8496a6ff3105d584bac1cf4c3fa2424e 100644
--- a/IO/Image/vtkSLCReader.h
+++ b/IO/Image/vtkSLCReader.h
@@ -28,6 +28,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageReader2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkSLCReader : public vtkImageReader2
 {
 public:
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkSLCReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkTGAReader.cxx b/IO/Image/vtkTGAReader.cxx
index 4890d41e4a501ef0eadff31cd99a45efd2652a38..f0d34487f049d140a6e84d3478586cb98bbcaed0 100644
--- a/IO/Image/vtkTGAReader.cxx
+++ b/IO/Image/vtkTGAReader.cxx
@@ -22,6 +22,7 @@
 
 #include <vtksys/FStream.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTGAReader);
 
 namespace
@@ -200,3 +201,4 @@ void vtkTGAReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkTGAReader.h b/IO/Image/vtkTGAReader.h
index 4e025026aaa90743bd2f679454fb7f3eef303ca7..fde7d8e47bcbf3fa5272dbcccae4373dd5aefbc9 100644
--- a/IO/Image/vtkTGAReader.h
+++ b/IO/Image/vtkTGAReader.h
@@ -29,6 +29,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageReader2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkTGAReader : public vtkImageReader2
 {
 public:
@@ -64,4 +65,5 @@ private:
   vtkTGAReader(const vtkTGAReader&) = delete;
   void operator=(const vtkTGAReader&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkTIFFReader.cxx b/IO/Image/vtkTIFFReader.cxx
index 6205d05b0ee4bfbd66811ea29212cb0c75e03d9e..264d188f68faa3e7c284ecfa839462a9141a2169 100644
--- a/IO/Image/vtkTIFFReader.cxx
+++ b/IO/Image/vtkTIFFReader.cxx
@@ -26,6 +26,7 @@
 #include <cassert>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 struct FlipTrue
@@ -1386,3 +1387,4 @@ void vtkTIFFReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "SpacingSpecifiedFlag: " << this->SpacingSpecifiedFlag << endl;
   os << indent << "IgnoreColorMap: " << this->IgnoreColorMap << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkTIFFReader.h b/IO/Image/vtkTIFFReader.h
index 6175df01663f954a1f2a5ae05e8b00727c8ef54c..07458be693a84de4d2af606d94f44cf93dc4a9ce 100644
--- a/IO/Image/vtkTIFFReader.h
+++ b/IO/Image/vtkTIFFReader.h
@@ -28,6 +28,7 @@
 
 #include "vtkImageReader2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkTIFFReader : public vtkImageReader2
 {
 public:
@@ -196,4 +197,5 @@ private:
   bool IgnoreColorMap;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkTIFFReaderInternal.h b/IO/Image/vtkTIFFReaderInternal.h
index 219809f2165f36b40258fa230859b27b0f9d3629..44426fe1f184e818465b7b3c1257a109b71a9df9 100644
--- a/IO/Image/vtkTIFFReaderInternal.h
+++ b/IO/Image/vtkTIFFReaderInternal.h
@@ -25,6 +25,7 @@ extern "C"
 {
 #include "vtk_tiff.h"
 }
+VTK_ABI_NAMESPACE_BEGIN
 
 class vtkTIFFReader::vtkTIFFReaderInternal
 {
@@ -67,5 +68,6 @@ private:
   void operator=(const vtkTIFFReaderInternal&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkTIFFReaderInternal.h
diff --git a/IO/Image/vtkTIFFWriter.cxx b/IO/Image/vtkTIFFWriter.cxx
index 12ee25e66147289ffbfe4daf000a07cfb60c057d..0ad8021dcce50532fb78591678bad8df89c8d339 100644
--- a/IO/Image/vtkTIFFWriter.cxx
+++ b/IO/Image/vtkTIFFWriter.cxx
@@ -26,6 +26,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTIFFWriter);
 
 //------------------------------------------------------------------------------
@@ -466,3 +467,4 @@ void vtkTIFFWriter::PrintSelf(ostream& os, vtkIndent indent)
     os << "No Compression\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkTIFFWriter.h b/IO/Image/vtkTIFFWriter.h
index 8be2c57c678907c94eca4632e1dda6ee7130d4b4..95e6f747559d15943a106c517a43b1b9512cf7e1 100644
--- a/IO/Image/vtkTIFFWriter.h
+++ b/IO/Image/vtkTIFFWriter.h
@@ -30,6 +30,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkTIFFWriter : public vtkImageWriter
 {
 public:
@@ -89,4 +90,5 @@ private:
   void WriteVolume(T* buffer);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkVolume16Reader.cxx b/IO/Image/vtkVolume16Reader.cxx
index 9b5d220028765953c4fe2eecbe6637908c80cd2d..aa7d4528f3b7a9bf2eb0f59cd612c360e7bbb9dd 100644
--- a/IO/Image/vtkVolume16Reader.cxx
+++ b/IO/Image/vtkVolume16Reader.cxx
@@ -26,6 +26,7 @@
 #include "vtkUnsignedShortArray.h"
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVolume16Reader);
 
 vtkCxxSetObjectMacro(vtkVolume16Reader, Transform, vtkTransform);
@@ -627,3 +628,4 @@ void vtkVolume16Reader::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Transform: (None)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkVolume16Reader.h b/IO/Image/vtkVolume16Reader.h
index 5fad8e34e0281448f83e635a43631e1fa6cfb3b4..5739c47c01aa8c2665a891fa4d4df8821ee707b8 100644
--- a/IO/Image/vtkVolume16Reader.h
+++ b/IO/Image/vtkVolume16Reader.h
@@ -51,6 +51,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkVolumeReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransform;
 class vtkUnsignedCharArray;
 class vtkUnsignedShortArray;
@@ -170,4 +171,5 @@ private:
   void operator=(const vtkVolume16Reader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Image/vtkVolumeReader.cxx b/IO/Image/vtkVolumeReader.cxx
index 77f1048d5dbcc1ca4b11d0e166005fe955ff0de6..9fa1c77bc8962158c3d5b0acefd2d5ce3573bb36 100644
--- a/IO/Image/vtkVolumeReader.cxx
+++ b/IO/Image/vtkVolumeReader.cxx
@@ -16,6 +16,7 @@
 
 // Construct object with nullptr file prefix; file pattern "%s.%d"; image range
 // set to (1,1);
+VTK_ABI_NAMESPACE_BEGIN
 vtkVolumeReader::vtkVolumeReader()
 {
   this->FilePrefix = nullptr;
@@ -45,3 +46,4 @@ void vtkVolumeReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "FilePattern: " << (this->FilePattern ? this->FilePattern : "(none)") << "\n";
   os << indent << "Image Range: (" << this->ImageRange[0] << ", " << this->ImageRange[1] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Image/vtkVolumeReader.h b/IO/Image/vtkVolumeReader.h
index 99d9919888d76663e8bb65a08f8e79ee0c109273..e27f05047c462f42346f49e4234616efd6487a4f 100644
--- a/IO/Image/vtkVolumeReader.h
+++ b/IO/Image/vtkVolumeReader.h
@@ -48,6 +48,7 @@
 #include "vtkIOImageModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOIMAGE_EXPORT vtkVolumeReader : public vtkImageAlgorithm
 {
 public:
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkVolumeReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Import/vtk3DS.h b/IO/Import/vtk3DS.h
index 0b651a3d90d1ec105cce58b219f8dd966397563d..44e62663d7d6c276ba02ecd471c1d73242b957ef 100644
--- a/IO/Import/vtk3DS.h
+++ b/IO/Import/vtk3DS.h
@@ -16,8 +16,11 @@
 #ifndef vtk3DS_h
 #define vtk3DS_h
 
+#include "vtkABINamespace.h"
+
 #include <ctype.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLight;
 class vtkCamera;
 class vtkProperty;
@@ -184,5 +187,6 @@ struct vtk3DSColour_t_24
 };
 using vtk3DSColour_24 = struct vtk3DSColour_t_24;
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtk3DS.h
diff --git a/IO/Import/vtk3DSImporter.cxx b/IO/Import/vtk3DSImporter.cxx
index adb1714ebb776f07d87876ffed23337be523a172..cd4a8a7bbac64f1bb4d19e57fd46c4d0e783923c 100644
--- a/IO/Import/vtk3DSImporter.cxx
+++ b/IO/Import/vtk3DSImporter.cxx
@@ -30,7 +30,9 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtk3DSImporter);
+VTK_ABI_NAMESPACE_END
 
 // Silence warning like
 // "dereferencing type-punned pointer will break strict-aliasing rules"
@@ -111,6 +113,8 @@ static float read_float(vtk3DSImporter* importer);
 static void read_point(vtk3DSImporter* importer, vtk3DSVector v);
 static char* read_string(vtk3DSImporter* importer);
 
+VTK_ABI_NAMESPACE_BEGIN
+
 vtk3DSImporter::vtk3DSImporter()
 {
   this->OmniList = nullptr;
@@ -367,6 +371,110 @@ void vtk3DSImporter::ImportProperties(vtkRenderer* vtkNotUsed(renderer))
   }
 }
 
+vtk3DSImporter::~vtk3DSImporter()
+{
+  vtk3DSOmniLight* omniLight;
+  vtk3DSSpotLight* spotLight;
+
+  // walk the light list and delete vtk objects
+  for (omniLight = this->OmniList; omniLight != (vtk3DSOmniLight*)nullptr;
+       omniLight = (vtk3DSOmniLight*)omniLight->next)
+  {
+    omniLight->aLight->Delete();
+  }
+  VTK_LIST_KILL(this->OmniList);
+
+  // walk the spot light list and delete vtk objects
+  for (spotLight = this->SpotLightList; spotLight != (vtk3DSSpotLight*)nullptr;
+       spotLight = (vtk3DSSpotLight*)spotLight->next)
+  {
+    spotLight->aLight->Delete();
+  }
+  VTK_LIST_KILL(this->SpotLightList);
+
+  vtk3DSCamera* camera;
+  // walk the camera list and delete vtk objects
+  for (camera = this->CameraList; camera != (vtk3DSCamera*)nullptr;
+       camera = (vtk3DSCamera*)camera->next)
+  {
+    camera->aCamera->Delete();
+  }
+  VTK_LIST_KILL(this->CameraList);
+
+  // walk the mesh list and delete malloced datra and vtk objects
+  vtk3DSMesh* mesh;
+  for (mesh = this->MeshList; mesh != (vtk3DSMesh*)nullptr; mesh = (vtk3DSMesh*)mesh->next)
+  {
+    if (mesh->anActor != nullptr)
+    {
+      mesh->anActor->Delete();
+    }
+    if (mesh->aMapper != nullptr)
+    {
+      mesh->aMapper->Delete();
+    }
+    if (mesh->aNormals != nullptr)
+    {
+      mesh->aNormals->Delete();
+    }
+    if (mesh->aStripper != nullptr)
+    {
+      mesh->aStripper->Delete();
+    }
+    if (mesh->aPoints != nullptr)
+    {
+      mesh->aPoints->Delete();
+    }
+    if (mesh->aCellArray != nullptr)
+    {
+      mesh->aCellArray->Delete();
+    }
+    if (mesh->aPolyData != nullptr)
+    {
+      mesh->aPolyData->Delete();
+    }
+    if (mesh->vertex)
+    {
+      free(mesh->vertex);
+    }
+    if (mesh->face)
+    {
+      free(mesh->face);
+    }
+    if (mesh->mtl)
+    {
+      free(mesh->mtl);
+    }
+  }
+
+  // then delete the list structure
+
+  VTK_LIST_KILL(this->MeshList);
+  VTK_LIST_KILL(this->MaterialList);
+
+  // objects allocated in Material Property List
+  vtk3DSMatProp* m;
+  // just walk the list of material properties, deleting vtk properties
+  for (m = this->MatPropList; m != (vtk3DSMatProp*)nullptr; m = (vtk3DSMatProp*)m->next)
+  {
+    m->aProperty->Delete();
+  }
+
+  // then delete the list structure
+  VTK_LIST_KILL(this->MatPropList);
+
+  delete[] this->FileName;
+}
+
+void vtk3DSImporter::PrintSelf(ostream& os, vtkIndent indent)
+{
+  this->Superclass::PrintSelf(os, indent);
+  os << indent << "File Name: " << (this->FileName ? this->FileName : "(none)") << "\n";
+
+  os << indent << "Compute Normals: " << (this->ComputeNormals ? "On\n" : "Off\n");
+}
+VTK_ABI_NAMESPACE_END
+
 /* Insert a new node into the list */
 static void list_insert(vtk3DSList** root, vtk3DSList* new_node)
 {
@@ -1224,106 +1332,3 @@ static void cleanup_name(char* name)
 
   free(tmp);
 }
-
-vtk3DSImporter::~vtk3DSImporter()
-{
-  vtk3DSOmniLight* omniLight;
-  vtk3DSSpotLight* spotLight;
-
-  // walk the light list and delete vtk objects
-  for (omniLight = this->OmniList; omniLight != (vtk3DSOmniLight*)nullptr;
-       omniLight = (vtk3DSOmniLight*)omniLight->next)
-  {
-    omniLight->aLight->Delete();
-  }
-  VTK_LIST_KILL(this->OmniList);
-
-  // walk the spot light list and delete vtk objects
-  for (spotLight = this->SpotLightList; spotLight != (vtk3DSSpotLight*)nullptr;
-       spotLight = (vtk3DSSpotLight*)spotLight->next)
-  {
-    spotLight->aLight->Delete();
-  }
-  VTK_LIST_KILL(this->SpotLightList);
-
-  vtk3DSCamera* camera;
-  // walk the camera list and delete vtk objects
-  for (camera = this->CameraList; camera != (vtk3DSCamera*)nullptr;
-       camera = (vtk3DSCamera*)camera->next)
-  {
-    camera->aCamera->Delete();
-  }
-  VTK_LIST_KILL(this->CameraList);
-
-  // walk the mesh list and delete malloced datra and vtk objects
-  vtk3DSMesh* mesh;
-  for (mesh = this->MeshList; mesh != (vtk3DSMesh*)nullptr; mesh = (vtk3DSMesh*)mesh->next)
-  {
-    if (mesh->anActor != nullptr)
-    {
-      mesh->anActor->Delete();
-    }
-    if (mesh->aMapper != nullptr)
-    {
-      mesh->aMapper->Delete();
-    }
-    if (mesh->aNormals != nullptr)
-    {
-      mesh->aNormals->Delete();
-    }
-    if (mesh->aStripper != nullptr)
-    {
-      mesh->aStripper->Delete();
-    }
-    if (mesh->aPoints != nullptr)
-    {
-      mesh->aPoints->Delete();
-    }
-    if (mesh->aCellArray != nullptr)
-    {
-      mesh->aCellArray->Delete();
-    }
-    if (mesh->aPolyData != nullptr)
-    {
-      mesh->aPolyData->Delete();
-    }
-    if (mesh->vertex)
-    {
-      free(mesh->vertex);
-    }
-    if (mesh->face)
-    {
-      free(mesh->face);
-    }
-    if (mesh->mtl)
-    {
-      free(mesh->mtl);
-    }
-  }
-
-  // then delete the list structure
-
-  VTK_LIST_KILL(this->MeshList);
-  VTK_LIST_KILL(this->MaterialList);
-
-  // objects allocated in Material Property List
-  vtk3DSMatProp* m;
-  // just walk the list of material properties, deleting vtk properties
-  for (m = this->MatPropList; m != (vtk3DSMatProp*)nullptr; m = (vtk3DSMatProp*)m->next)
-  {
-    m->aProperty->Delete();
-  }
-
-  // then delete the list structure
-  VTK_LIST_KILL(this->MatPropList);
-
-  delete[] this->FileName;
-}
-
-void vtk3DSImporter::PrintSelf(ostream& os, vtkIndent indent)
-{
-  this->Superclass::PrintSelf(os, indent);
-  os << indent << "File Name: " << (this->FileName ? this->FileName : "(none)") << "\n";
-
-  os << indent << "Compute Normals: " << (this->ComputeNormals ? "On\n" : "Off\n");
-}
diff --git a/IO/Import/vtk3DSImporter.h b/IO/Import/vtk3DSImporter.h
index 57e320dac3de6c58ba93f7803ad16ef206d2c5cd..3825575a8d5f9c5e316ffe3e44218dcb2a8e1919 100644
--- a/IO/Import/vtk3DSImporter.h
+++ b/IO/Import/vtk3DSImporter.h
@@ -29,6 +29,7 @@
 #include "vtkIOImportModule.h" // For export macro
 #include "vtkImporter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKIOIMPORT_EXPORT vtk3DSImporter : public vtkImporter
@@ -96,4 +97,5 @@ private:
   void operator=(const vtk3DSImporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Import/vtkGLTFImporter.cxx b/IO/Import/vtkGLTFImporter.cxx
index 6f795d77464f1ee18acbeed2af69c35dea71c3cb..c73e8ff9845e3d9df887b185c7e24d0e5eb9bb5d 100644
--- a/IO/Import/vtkGLTFImporter.cxx
+++ b/IO/Import/vtkGLTFImporter.cxx
@@ -45,6 +45,7 @@
 #include <array>
 #include <stack>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGLTFImporter);
 
 namespace
@@ -852,3 +853,4 @@ vtkSmartPointer<vtkCamera> vtkGLTFImporter::GetCamera(unsigned int id)
   }
   return it->second;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Import/vtkGLTFImporter.h b/IO/Import/vtkGLTFImporter.h
index fdcba8257fdab6fbd44b7c656af5594867c6c9f2..1c27cb688c0e1691627ceee17ba548907e9a1940 100644
--- a/IO/Import/vtkGLTFImporter.h
+++ b/IO/Import/vtkGLTFImporter.h
@@ -65,6 +65,7 @@
 #include <map>    // For map
 #include <vector> // For vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkCamera;
 class vtkGLTFDocumentLoader;
@@ -172,4 +173,5 @@ private:
   void operator=(const vtkGLTFImporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Import/vtkImporter.cxx b/IO/Import/vtkImporter.cxx
index 13f5f8637725a285bd5a04ca863e8535287e5276..cc71b01b742aa91b7b59be6e7caa9dca6f8b0685 100644
--- a/IO/Import/vtkImporter.cxx
+++ b/IO/Import/vtkImporter.cxx
@@ -23,6 +23,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkImporter, RenderWindow, vtkRenderWindow);
 
 vtkImporter::vtkImporter()
@@ -223,3 +224,4 @@ void vtkImporter::UpdateTimeStep(double vtkNotUsed(timeStep))
 {
   this->Update();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Import/vtkImporter.h b/IO/Import/vtkImporter.h
index 45a615743ea58cb327386ca9e0582e401358076e..9af884886400c761c8f11cc8e8d3790aa485ca56 100644
--- a/IO/Import/vtkImporter.h
+++ b/IO/Import/vtkImporter.h
@@ -50,6 +50,7 @@
 
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkDataSet;
 class vtkDoubleArray;
@@ -175,4 +176,5 @@ private:
   void operator=(const vtkImporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Import/vtkOBJImporter.cxx b/IO/Import/vtkOBJImporter.cxx
index 5e087d76a2cb817872e2f4809d8a29ab14f2b806..4229c948f928d6046195305e01dd223414f4097f 100644
--- a/IO/Import/vtkOBJImporter.cxx
+++ b/IO/Import/vtkOBJImporter.cxx
@@ -37,6 +37,7 @@
 #include <set>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOBJImporter);
 vtkStandardNewMacro(vtkOBJPolyDataProcessor);
 
@@ -1128,3 +1129,4 @@ vtkPolyData* vtkOBJPolyDataProcessor::GetOutput(int idx)
     return nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Import/vtkOBJImporter.h b/IO/Import/vtkOBJImporter.h
index 728a611be7100dd94cb3c2f51ee83e5fd43f7147..4a8c2aa4c11e209682e527d016080bdabf676ed8 100644
--- a/IO/Import/vtkOBJImporter.h
+++ b/IO/Import/vtkOBJImporter.h
@@ -28,6 +28,7 @@
 #include "vtkSmartPointer.h" // for ivars
 #include <string>            // for string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindow;
 class vtkRenderer;
 class vtkPolydata;
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkOBJImporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Import/vtkOBJImporterInternals.cxx b/IO/Import/vtkOBJImporterInternals.cxx
index 612c3a76022a017f45116cb0ab895f56a703036b..647979c1fb14619dedab968e8e85453b35079c1c 100644
--- a/IO/Import/vtkOBJImporterInternals.cxx
+++ b/IO/Import/vtkOBJImporterInternals.cxx
@@ -36,6 +36,7 @@
 #pragma warning(disable : 4800)
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 int localVerbosity = 0;
@@ -246,7 +247,9 @@ bool tokenGetTexture(size_t& t, std::vector<Token>& tokens, vtkOBJImportedMateri
 }
 
 // NOLINTNEXTLINE(bugprone-suspicious-include)
+VTK_ABI_NAMESPACE_END
 #include "mtlsyntax.cxx"
+VTK_ABI_NAMESPACE_BEGIN
 std::vector<vtkOBJImportedMaterial*> vtkOBJPolyDataProcessor::ParseOBJandMTL(
   std::string Filename, int& result_code)
 {
@@ -552,3 +555,4 @@ vtkOBJImportedMaterial::vtkOBJImportedMaterial()
   this->name = "x";
   obj_set_material_defaults(this);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Import/vtkOBJImporterInternals.h b/IO/Import/vtkOBJImporterInternals.h
index 108cc3a1d7e0dbc43a2c2d79aac4a5a2a809834e..f34651c27ac68198f0bf507f3ccaca26081027cd 100644
--- a/IO/Import/vtkOBJImporterInternals.h
+++ b/IO/Import/vtkOBJImporterInternals.h
@@ -19,6 +19,7 @@
 #include <string> // for std::string
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 
 struct VTKIOIMPORT_EXPORT vtkOBJImportedMaterial
@@ -155,4 +156,5 @@ VTKIOIMPORT_EXPORT
 void bindTexturedPolydataToRenderWindow(
   vtkRenderWindow* renderWindow, vtkRenderer* renderer, vtkOBJPolyDataProcessor* reader);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Import/vtkVRML.h b/IO/Import/vtkVRML.h
index a4f63cd223e40c9f7631e64792f925913b614483..12c2baef0c60566cb7f0ff6b2d7de404748ad6ba 100644
--- a/IO/Import/vtkVRML.h
+++ b/IO/Import/vtkVRML.h
@@ -39,6 +39,7 @@
 #include <new>
 
 // Use a user-managed heap to remove memory leaks
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkVRMLAllocator
 {
   static void Initialize()
@@ -664,5 +665,6 @@ PROTO WorldInfo [ \n\
 ] { }",
   "" };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkVRML.h
diff --git a/IO/Import/vtkVRMLImporter.cxx b/IO/Import/vtkVRMLImporter.cxx
index 6b62d567efc4b7bcffa602af9e79abea052dae49..ac5625afeb5850cc62cd59acb24aaf39a346e98f 100644
--- a/IO/Import/vtkVRMLImporter.cxx
+++ b/IO/Import/vtkVRMLImporter.cxx
@@ -62,6 +62,7 @@
 #include "vtkVRMLImporter_Yacc.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVRMLImporterInternal
 {
 public:
@@ -1414,3 +1415,4 @@ std::string vtkVRMLImporter::GetOutputsDescription()
   }
   return ss.str();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Import/vtkVRMLImporter.h b/IO/Import/vtkVRMLImporter.h
index afd97cdb159a6e7f0e844353a384b75bd0ac57ab..742a334cce929f22acd797cbd04b09424a8440a9 100644
--- a/IO/Import/vtkVRMLImporter.h
+++ b/IO/Import/vtkVRMLImporter.h
@@ -57,6 +57,7 @@
 #include "vtkIOImportModule.h" // For export macro
 #include "vtkImporter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkAlgorithm;
 class vtkProperty;
@@ -173,4 +174,5 @@ private:
   void operator=(const vtkVRMLImporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Import/vtkVRMLImporter_Yacc.h b/IO/Import/vtkVRMLImporter_Yacc.h
index 756a546fb9c683221f086245c952dfa6ca0cd377..7f59f343c2885c45e9f8f84016e419955873d6fc 100644
--- a/IO/Import/vtkVRMLImporter_Yacc.h
+++ b/IO/Import/vtkVRMLImporter_Yacc.h
@@ -37,6 +37,7 @@
 //
 
 // used to hold the VRML DEF names and assoc vtkObjects
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVRMLUseStruct {
 public:
   vtkVRMLUseStruct( char *n, vtkObject *o) { defName = n; defObject = o; }
@@ -604,6 +605,7 @@ const VrmlNodeType* vtkVRMLYaccData::find(const char *_name)
 
 #define YYDEBUG 1
 
+VTK_ABI_NAMESPACE_END
 #include <stdlib.h>
 
 
@@ -887,6 +889,7 @@ static const short yycheck[] = {    66,
 // file was imported; in the real world, I think alloca was very
 // rarely called here.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVRMLYaccData::FakeAlloca
 {
 public:
@@ -1694,6 +1697,8 @@ void vtkVRMLYaccData::expect(int type)
   expectToken = type;
 }
 
+VTK_ABI_NAMESPACE_END
+
 // End of Auto-generated Parser Code
 // Begin of Auto-generated Lexer Code
 
@@ -4083,7 +4088,9 @@ static const short int yy_rule_linenum[49] =
 #ifdef __cplusplus
 //extern "C"
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 int vtkVRMLYaccData::yywrap() { BEGIN INITIAL; return 1; }
+VTK_ABI_NAMESPACE_END
 
 /* Normal state:  parsing nodes.  The initial start state is used */
 /* only to recognize the VRML header. */
@@ -4187,6 +4194,7 @@ YY_MALLOC_DECL
 #endif
 
 
+VTK_ABI_NAMESPACE_BEGIN
 int vtkVRMLYaccData::yylex ( vtkVRMLImporter* self )
 {
   yy_state_type yy_current_state;
@@ -5187,5 +5195,6 @@ void vtkVRMLYaccData::defyyInput(char *buf, int &result, int max_size,
 }
 
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkVRMLImporter_Yacc.h
diff --git a/IO/Infovis/vtkBiomTableReader.cxx b/IO/Infovis/vtkBiomTableReader.cxx
index 5c68a08a704812fd9d41e9f1b3f515d6eb37b264..2882e635a97a71b66670c6b501e5ea41a88f5119 100644
--- a/IO/Infovis/vtkBiomTableReader.cxx
+++ b/IO/Infovis/vtkBiomTableReader.cxx
@@ -32,6 +32,7 @@
 #include <algorithm>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBiomTableReader);
 
 #ifdef read
@@ -635,3 +636,4 @@ void vtkBiomTableReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkBiomTableReader.h b/IO/Infovis/vtkBiomTableReader.h
index bb1b6c59859433778633c5c5e32616be0edc41ee..d61a3d14042c98dfae02241439690e4a2abc3c07 100644
--- a/IO/Infovis/vtkBiomTableReader.h
+++ b/IO/Infovis/vtkBiomTableReader.h
@@ -28,6 +28,7 @@
 #include "vtkIOInfovisModule.h" // For export macro
 #include "vtkTableReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTable;
 class vtkVariant;
 
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkBiomTableReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Infovis/vtkChacoGraphReader.cxx b/IO/Infovis/vtkChacoGraphReader.cxx
index 4520134064fd80ac7b3dc9dcb28cb355b3659919..d5a947d3d700d6c6a5a1986dedf7b4f4df56c3cf 100644
--- a/IO/Infovis/vtkChacoGraphReader.cxx
+++ b/IO/Infovis/vtkChacoGraphReader.cxx
@@ -61,6 +61,7 @@
 // myself.
 // This function is also defined in Infovis/vtkDelimitedTextReader.cxx,
 // so it would be nice to put this in a common file.
+VTK_ABI_NAMESPACE_BEGIN
 static int my_getline(std::istream& stream, std::string& output, char delim = '\n');
 
 vtkStandardNewMacro(vtkChacoGraphReader);
@@ -223,3 +224,4 @@ static int my_getline(std::istream& in, std::string& out, char delimiter)
 
   return numCharactersRead;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkChacoGraphReader.h b/IO/Infovis/vtkChacoGraphReader.h
index cbeae161ede1de58633aaf9a0b9881286c3f4953..8cb65af8efaf27779c50330a865b231212065306 100644
--- a/IO/Infovis/vtkChacoGraphReader.h
+++ b/IO/Infovis/vtkChacoGraphReader.h
@@ -51,6 +51,7 @@
 #include "vtkIOInfovisModule.h" // For export macro
 #include "vtkUndirectedGraphAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOINFOVIS_EXPORT vtkChacoGraphReader : public vtkUndirectedGraphAlgorithm
 {
 public:
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkChacoGraphReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkChacoGraphReader_h
diff --git a/IO/Infovis/vtkDIMACSGraphReader.cxx b/IO/Infovis/vtkDIMACSGraphReader.cxx
index db4033d58d9dfd7a5554628ec77924fbba85c150..f7eac81f390d1a644fabc9efcfb2ca2c1b085c41 100644
--- a/IO/Infovis/vtkDIMACSGraphReader.cxx
+++ b/IO/Infovis/vtkDIMACSGraphReader.cxx
@@ -39,6 +39,7 @@ using std::istringstream;
 
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 typedef enum problemTypes
 {
   GENERIC,
@@ -539,3 +540,4 @@ int vtkDIMACSGraphReader::RequestDataObject(
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkDIMACSGraphReader.h b/IO/Infovis/vtkDIMACSGraphReader.h
index 86a1123768367c83a102ad3e2de5c4c642ad8eb4..f398fe3607e545a1c9e4ee73b6c1d9aefef4bf9e 100644
--- a/IO/Infovis/vtkDIMACSGraphReader.h
+++ b/IO/Infovis/vtkDIMACSGraphReader.h
@@ -60,6 +60,7 @@
 #include "vtkIOInfovisModule.h" // For export macro
 #include "vtkStdString.h"       // For string API
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOINFOVIS_EXPORT vtkDIMACSGraphReader : public vtkGraphAlgorithm
 {
 
@@ -127,4 +128,5 @@ private:
   void operator=(const vtkDIMACSGraphReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkDIMACSGraphReader_h
diff --git a/IO/Infovis/vtkDIMACSGraphWriter.cxx b/IO/Infovis/vtkDIMACSGraphWriter.cxx
index 7d7409d0e4fb949a1173fe6501924bf5bb455b29..a88db9cdbfb64bae60d5fe3b2e8ac410fc6d9751 100644
--- a/IO/Infovis/vtkDIMACSGraphWriter.cxx
+++ b/IO/Infovis/vtkDIMACSGraphWriter.cxx
@@ -30,6 +30,7 @@
 
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDIMACSGraphWriter);
 
 void vtkDIMACSGraphWriter::WriteData()
@@ -114,3 +115,4 @@ void vtkDIMACSGraphWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkDIMACSGraphWriter.h b/IO/Infovis/vtkDIMACSGraphWriter.h
index a4b66c80d7af8faa3b4767b23f761284c545da61..a3ad7f52265d6871b4297b9f78a4f5fa5b34ed86 100644
--- a/IO/Infovis/vtkDIMACSGraphWriter.h
+++ b/IO/Infovis/vtkDIMACSGraphWriter.h
@@ -50,6 +50,7 @@
 #include "vtkDataWriter.h"
 #include "vtkIOInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 
 class VTKIOINFOVIS_EXPORT vtkDIMACSGraphWriter : public vtkDataWriter
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkDIMACSGraphWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Infovis/vtkDelimitedTextReader.cxx b/IO/Infovis/vtkDelimitedTextReader.cxx
index 67d93c4e5f8c55b1c883f0d1bd7660041b7e4c18..b70642406a36fca2183f3bcfe4bfc06fb1d57b82 100644
--- a/IO/Infovis/vtkDelimitedTextReader.cxx
+++ b/IO/Infovis/vtkDelimitedTextReader.cxx
@@ -54,6 +54,7 @@
 /// Output iterator object that parses a stream of Unicode characters into records and
 /// fields, inserting them into a vtkTable.
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -631,3 +632,4 @@ int vtkDelimitedTextReader::ReadData(vtkTable* const output_table)
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkDelimitedTextReader.h b/IO/Infovis/vtkDelimitedTextReader.h
index 9a8c7f9661d7147ee32b9208b12df0f070321713..366305d5466c449f545855d2905ab58b09b2414e 100644
--- a/IO/Infovis/vtkDelimitedTextReader.h
+++ b/IO/Infovis/vtkDelimitedTextReader.h
@@ -67,6 +67,7 @@
 #include "vtkStdString.h"       // Needed for vtkStdString
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOINFOVIS_EXPORT vtkDelimitedTextReader : public vtkTableAlgorithm
 {
 public:
@@ -364,4 +365,5 @@ private:
   void operator=(const vtkDelimitedTextReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Infovis/vtkFixedWidthTextReader.cxx b/IO/Infovis/vtkFixedWidthTextReader.cxx
index 6750dfaee3cc6f35993de83b098d398cee9210ac..b2a84e8d4bdc51c7f6b53cbc42eab45d817ed551 100644
--- a/IO/Infovis/vtkFixedWidthTextReader.cxx
+++ b/IO/Infovis/vtkFixedWidthTextReader.cxx
@@ -35,6 +35,7 @@
 
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFixedWidthTextReader);
 vtkCxxSetObjectMacro(vtkFixedWidthTextReader, TableErrorObserver, vtkCommand);
 
@@ -287,3 +288,4 @@ static int my_getline(istream& in, std::string& out, char delimiter)
 
   return numCharactersRead;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkFixedWidthTextReader.h b/IO/Infovis/vtkFixedWidthTextReader.h
index 27dd7507028b0e7bcd304af3bc4e5dc934372861..1d9fab6f34c62c37c5cc7c233e051d7c1805be35 100644
--- a/IO/Infovis/vtkFixedWidthTextReader.h
+++ b/IO/Infovis/vtkFixedWidthTextReader.h
@@ -47,6 +47,7 @@
 #include "vtkIOInfovisModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCommand;
 class vtkTable;
 
@@ -115,4 +116,5 @@ private:
   vtkCommand* TableErrorObserver;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Infovis/vtkISIReader.cxx b/IO/Infovis/vtkISIReader.cxx
index b0960c81dd566f1dcda80902bf93d3621de7a667..86e11bd9de0138c11aaf23773d3ac34faf6d5d07 100644
--- a/IO/Infovis/vtkISIReader.cxx
+++ b/IO/Infovis/vtkISIReader.cxx
@@ -29,6 +29,7 @@
 #include <map>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkISIReader);
 
 // Not all platforms support std::getline(istream&, std::string) so
@@ -211,3 +212,4 @@ static istream& my_getline(istream& input, std::string& output, char delimiter)
 
   return input;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkISIReader.h b/IO/Infovis/vtkISIReader.h
index 4390f9a296d884487a9bbeb674170ac244de01af..90844e4c16803e62f5f86ed28d3bb8df6d0203a0 100644
--- a/IO/Infovis/vtkISIReader.h
+++ b/IO/Infovis/vtkISIReader.h
@@ -39,6 +39,7 @@
 #include "vtkIOInfovisModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTable;
 
 class VTKIOINFOVIS_EXPORT vtkISIReader : public vtkTableAlgorithm
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkISIReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Infovis/vtkMultiNewickTreeReader.cxx b/IO/Infovis/vtkMultiNewickTreeReader.cxx
index 91bf1cf2704918bbead5aa068868f27cd791d677..d951e284e82f3c0a1cc331f1d232167d430c4107 100644
--- a/IO/Infovis/vtkMultiNewickTreeReader.cxx
+++ b/IO/Infovis/vtkMultiNewickTreeReader.cxx
@@ -30,6 +30,7 @@
 #include <fstream>
 #include <iostream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMultiNewickTreeReader);
 
 #ifdef read
@@ -153,3 +154,4 @@ void vtkMultiNewickTreeReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkMultiNewickTreeReader.h b/IO/Infovis/vtkMultiNewickTreeReader.h
index 7d5dc2612412d3523602c81f03c0bd5800b66146..e5facfc5ece72ab3698c4fbbb6b2e4704fc36bac 100644
--- a/IO/Infovis/vtkMultiNewickTreeReader.h
+++ b/IO/Infovis/vtkMultiNewickTreeReader.h
@@ -31,6 +31,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiPieceDataSet;
 class vtkNewickTreeReader;
 class VTKIOINFOVIS_EXPORT vtkMultiNewickTreeReader : public vtkDataReader
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkMultiNewickTreeReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Infovis/vtkNewickTreeReader.cxx b/IO/Infovis/vtkNewickTreeReader.cxx
index b3225322bb8c24929d3b246874da8e508707e0b8..b61f4c977ee2438b0850eeaa772778b33cc367d6 100644
--- a/IO/Infovis/vtkNewickTreeReader.cxx
+++ b/IO/Infovis/vtkNewickTreeReader.cxx
@@ -33,6 +33,7 @@
 #include <fstream>
 #include <iostream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkNewickTreeReader);
 
 #ifdef read
@@ -510,3 +511,4 @@ void vtkNewickTreeReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "InputString: " << (this->InputString ? this->InputString : "(none)") << endl;
   os << indent << "ReadFromInputString: " << (this->ReadFromInputString ? "on" : "off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkNewickTreeReader.h b/IO/Infovis/vtkNewickTreeReader.h
index 776a0b0cec468706323d08aec866015ec8bff958..a8239fc110eec279b07cd9a05376186824f21f39 100644
--- a/IO/Infovis/vtkNewickTreeReader.h
+++ b/IO/Infovis/vtkNewickTreeReader.h
@@ -34,6 +34,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkMutableDirectedGraph;
 class vtkStringArray;
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkNewickTreeReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Infovis/vtkNewickTreeWriter.cxx b/IO/Infovis/vtkNewickTreeWriter.cxx
index 5bcedac40f0a64c50e1b448a4c56bc5e21fc69f6..f42c556eecf024f0c4e82c67b5d74942d250ffb0 100644
--- a/IO/Infovis/vtkNewickTreeWriter.cxx
+++ b/IO/Infovis/vtkNewickTreeWriter.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkNewickTreeWriter);
 
 //------------------------------------------------------------------------------
@@ -127,3 +128,4 @@ void vtkNewickTreeWriter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EdgeWeightArrayName: " << this->EdgeWeightArrayName << endl;
   os << indent << "NodeNameArrayName: " << this->NodeNameArrayName << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkNewickTreeWriter.h b/IO/Infovis/vtkNewickTreeWriter.h
index 420e476f0ecbcaaf4331f0a2f3803fa560edff63..7fcba25b7be240b4ab35236094c4c0c44a19cb9b 100644
--- a/IO/Infovis/vtkNewickTreeWriter.h
+++ b/IO/Infovis/vtkNewickTreeWriter.h
@@ -27,6 +27,7 @@
 #include "vtkIOInfovisModule.h" // For export macro
 #include "vtkStdString.h"       // For get/set ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTree;
 
 class VTKIOINFOVIS_EXPORT vtkNewickTreeWriter : public vtkDataWriter
@@ -93,4 +94,5 @@ private:
   void operator=(const vtkNewickTreeWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Infovis/vtkPhyloXMLTreeReader.cxx b/IO/Infovis/vtkPhyloXMLTreeReader.cxx
index 61b34e503bfa99ce8a2476ab8d124ff86d9f937f..1afce901312469ba492b8298470ef83274ef453a 100644
--- a/IO/Infovis/vtkPhyloXMLTreeReader.cxx
+++ b/IO/Infovis/vtkPhyloXMLTreeReader.cxx
@@ -41,6 +41,7 @@
 #include "vtkXMLDataElement.h"
 #include "vtkXMLDataParser.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPhyloXMLTreeReader);
 
 //------------------------------------------------------------------------------
@@ -768,3 +769,4 @@ void vtkPhyloXMLTreeReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkPhyloXMLTreeReader.h b/IO/Infovis/vtkPhyloXMLTreeReader.h
index b3a40923b78169acb0e9c115f80c68119f1eaa20..b85fa835bd1e3c2a3af5a243bd5746db35327336 100644
--- a/IO/Infovis/vtkPhyloXMLTreeReader.h
+++ b/IO/Infovis/vtkPhyloXMLTreeReader.h
@@ -39,6 +39,7 @@
 #include "vtkSmartPointer.h"    // For SP ivar
 #include "vtkXMLReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkMutableDirectedGraph;
 class vtkTree;
@@ -166,4 +167,5 @@ private:
   void operator=(const vtkPhyloXMLTreeReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Infovis/vtkPhyloXMLTreeWriter.cxx b/IO/Infovis/vtkPhyloXMLTreeWriter.cxx
index d08ba51899e665b71524c72434be5d472d057aa3..3977a193e320d2954927cdf989b73644043b222f 100644
--- a/IO/Infovis/vtkPhyloXMLTreeWriter.cxx
+++ b/IO/Infovis/vtkPhyloXMLTreeWriter.cxx
@@ -26,6 +26,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkXMLDataElement.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPhyloXMLTreeWriter);
 
 //------------------------------------------------------------------------------
@@ -530,3 +531,4 @@ void vtkPhyloXMLTreeWriter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EdgeWeightArrayName: " << this->EdgeWeightArrayName << endl;
   os << indent << "NodeNameArrayName: " << this->NodeNameArrayName << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkPhyloXMLTreeWriter.h b/IO/Infovis/vtkPhyloXMLTreeWriter.h
index c20d24c6453dfd6abf9764796bfff720ac88f231..6f513ef4d22c71153006eb533454041aa92f4bd5 100644
--- a/IO/Infovis/vtkPhyloXMLTreeWriter.h
+++ b/IO/Infovis/vtkPhyloXMLTreeWriter.h
@@ -28,6 +28,7 @@
 #include "vtkStdString.h"       // For get/set ivars
 #include "vtkXMLWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 class vtkTree;
 class vtkXMLDataElement;
@@ -160,4 +161,5 @@ private:
   void operator=(const vtkPhyloXMLTreeWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Infovis/vtkRISReader.cxx b/IO/Infovis/vtkRISReader.cxx
index b6dc5d91e365fdb4f644b7b6bc23c9b2215aea12..f9757819f3f24929d7bfce3b9a15157541d9f932 100644
--- a/IO/Infovis/vtkRISReader.cxx
+++ b/IO/Infovis/vtkRISReader.cxx
@@ -29,6 +29,7 @@
 #include <map>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRISReader);
 
 // Not all platforms support std::getline(istream&, std::string) so
@@ -288,3 +289,4 @@ static istream& my_getline(istream& input, std::string& output, char delimiter)
 
   return input;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkRISReader.h b/IO/Infovis/vtkRISReader.h
index bb0a5aa5db904ce584b3640a5065690fdb06a2e7..82962e7d487c4bb1b73c31925b61eb59a480a476 100644
--- a/IO/Infovis/vtkRISReader.h
+++ b/IO/Infovis/vtkRISReader.h
@@ -41,6 +41,7 @@
 #include "vtkIOInfovisModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTable;
 
 class VTKIOINFOVIS_EXPORT vtkRISReader : public vtkTableAlgorithm
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkRISReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Infovis/vtkTemporalDelimitedTextReader.cxx b/IO/Infovis/vtkTemporalDelimitedTextReader.cxx
index cd9f15f59b2b8077893d7a787bfbb1def3e70c88..bafa21d6eb21e70956e550d7e234ca50f40efaa2 100644
--- a/IO/Infovis/vtkTemporalDelimitedTextReader.cxx
+++ b/IO/Infovis/vtkTemporalDelimitedTextReader.cxx
@@ -26,6 +26,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTemporalDelimitedTextReader);
 
 //------------------------------------------------------------------------------
@@ -285,3 +286,4 @@ void vtkTemporalDelimitedTextReader::PrintSelf(ostream& os, vtkIndent indent)
   os << "TimeColumnId: " << this->TimeColumnId << endl;
   os << "RemoveTimeStepColumn: " << this->RemoveTimeStepColumn << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkTemporalDelimitedTextReader.h b/IO/Infovis/vtkTemporalDelimitedTextReader.h
index 5b50ec0f0610b85735e5ca0a5c00efff9c8ce2b8..e60ac91f2638684614b11bffc6156d28ee418be4 100644
--- a/IO/Infovis/vtkTemporalDelimitedTextReader.h
+++ b/IO/Infovis/vtkTemporalDelimitedTextReader.h
@@ -46,6 +46,7 @@
 #include <map>    // To store the TimeMap
 #include <vector> // To store the TimeMap
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOINFOVIS_EXPORT vtkTemporalDelimitedTextReader : public vtkDelimitedTextReader
 {
 public:
@@ -143,4 +144,5 @@ private:
   void operator=(const vtkTemporalDelimitedTextReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Infovis/vtkTulipReader.cxx b/IO/Infovis/vtkTulipReader.cxx
index 2b77b4a667a5e44a9cf03665f998f5de79e3da2b..3679a2b6820ca270bd0b21dc5a4304aaa119e75e 100644
--- a/IO/Infovis/vtkTulipReader.cxx
+++ b/IO/Infovis/vtkTulipReader.cxx
@@ -52,6 +52,7 @@
 // myself.
 // This function is also defined in Infovis/vtkDelimitedTextReader.cxx,
 // so it would be nice to put this in a common file.
+VTK_ABI_NAMESPACE_BEGIN
 static int my_getline(std::istream& stream, std::string& output, char delim = '\n');
 
 vtkStandardNewMacro(vtkTulipReader);
@@ -630,3 +631,4 @@ static int my_getline(std::istream& in, std::string& out, char delimiter)
 
   return numCharactersRead;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkTulipReader.h b/IO/Infovis/vtkTulipReader.h
index ee5ae3abe3f62c8ebbec6f6a750819b57dd09949..7fa3834bffb74003846af316e6560b9a7ac81fa7 100644
--- a/IO/Infovis/vtkTulipReader.h
+++ b/IO/Infovis/vtkTulipReader.h
@@ -68,6 +68,7 @@
 #include "vtkIOInfovisModule.h" // For export macro
 #include "vtkUndirectedGraphAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOINFOVIS_EXPORT vtkTulipReader : public vtkUndirectedGraphAlgorithm
 {
 public:
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkTulipReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTulipReader_h
diff --git a/IO/Infovis/vtkXGMLReader.cxx b/IO/Infovis/vtkXGMLReader.cxx
index dd551790ca40a83e8bb6e31d581d5ea0d67ab3a9..248df0c86227e4fc2cc0a3427d3713c77aff4c1f 100644
--- a/IO/Infovis/vtkXGMLReader.cxx
+++ b/IO/Infovis/vtkXGMLReader.cxx
@@ -41,6 +41,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <sstream>
 
 // Copied from vtkTulipReader.cxx ..
+VTK_ABI_NAMESPACE_BEGIN
 static int my_getline(std::istream& stream, std::string& output, char delim = '\n');
 
 vtkStandardNewMacro(vtkXGMLReader);
@@ -495,3 +496,4 @@ static int my_getline(std::istream& in, std::string& out, char delimiter)
 
   return numCharactersRead;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkXGMLReader.h b/IO/Infovis/vtkXGMLReader.h
index 631617774ecffd7704c4257100b135b79a3a9eb8..15707ba3ad7fcc283769e6cc110d5760ba511fd6 100644
--- a/IO/Infovis/vtkXGMLReader.h
+++ b/IO/Infovis/vtkXGMLReader.h
@@ -37,6 +37,7 @@
 #include "vtkIOInfovisModule.h" // For export macro
 #include "vtkUndirectedGraphAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOINFOVIS_EXPORT vtkXGMLReader : public vtkUndirectedGraphAlgorithm
 {
 public:
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkXGMLReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkXGMLReader_h
diff --git a/IO/Infovis/vtkXMLTreeReader.cxx b/IO/Infovis/vtkXMLTreeReader.cxx
index 64abca37e96aa90e76212b1d8e0b47b6b2f61e81..12663a8e2845bf801a603f97bdfb77a9e81731a5 100644
--- a/IO/Infovis/vtkXMLTreeReader.cxx
+++ b/IO/Infovis/vtkXMLTreeReader.cxx
@@ -34,6 +34,7 @@
 #include VTKLIBXML2_HEADER(parser.h)
 #include VTKLIBXML2_HEADER(tree.h)
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLTreeReader);
 
 const char* vtkXMLTreeReader::TagNameField = ".tagname";
@@ -299,3 +300,4 @@ int vtkXMLTreeReader::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Infovis/vtkXMLTreeReader.h b/IO/Infovis/vtkXMLTreeReader.h
index 1065c4ebe21153f7bb4ee930d06dde35c9a14aab..d817580b3346fd744d61cd1bb28c4a098687a943 100644
--- a/IO/Infovis/vtkXMLTreeReader.h
+++ b/IO/Infovis/vtkXMLTreeReader.h
@@ -91,6 +91,7 @@
 #include "vtkIOInfovisModule.h" // For export macro
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOINFOVIS_EXPORT vtkXMLTreeReader : public vtkTreeAlgorithm
 {
 public:
@@ -199,4 +200,5 @@ private:
   void operator=(const vtkXMLTreeReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/LAS/vtkLASReader.cxx b/IO/LAS/vtkLASReader.cxx
index afee8c1f78b324cb074d376e0c4a8d0b4a9a16a8..19bb2e9ed8eec5f3a4f1f11fe030581fa5ce0fd5 100644
--- a/IO/LAS/vtkLASReader.cxx
+++ b/IO/LAS/vtkLASReader.cxx
@@ -33,6 +33,7 @@
 #include <iostream>
 #include <valarray>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLASReader);
 
 //------------------------------------------------------------------------------
@@ -173,3 +174,4 @@ void vtkLASReader::PrintSelf(ostream& os, vtkIndent indent)
   os << "vtkLASReader" << std::endl;
   os << "Filename: " << this->FileName << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/LAS/vtkLASReader.h b/IO/LAS/vtkLASReader.h
index f186e5fe7a3481b22edb98e987a79786c8a10515..dfb8e4003cb35297306086522d0e67f4edceb2cb 100644
--- a/IO/LAS/vtkLASReader.h
+++ b/IO/LAS/vtkLASReader.h
@@ -41,6 +41,8 @@ class Header;
 class Reader;
 };
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKIOLAS_EXPORT vtkLASReader : public vtkPolyDataAlgorithm
 {
 public:
@@ -74,4 +76,5 @@ protected:
   char* FileName;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLASReader_h
diff --git a/IO/LSDyna/LSDynaFamily.cxx b/IO/LSDyna/LSDynaFamily.cxx
index 43a141f3d16a487deb979a1cc112ffd778820ffc..01af0f87c0d5aa222ed6ee26943f7ae63ec05285 100644
--- a/IO/LSDyna/LSDynaFamily.cxx
+++ b/IO/LSDyna/LSDynaFamily.cxx
@@ -30,6 +30,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // Decide which of 3 stat varieties to use: stat, stat64, __stat64
@@ -799,3 +800,4 @@ void LSDynaFamily::OpenFileHandles()
     this->FileHandlesClosed = false;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/LSDyna/LSDynaFamily.h b/IO/LSDyna/LSDynaFamily.h
index 5492ee22fc082e37e44a2a19a14149f29909d61f..ce28a2cacc4c27fddfc058012871605bc1ee9adf 100644
--- a/IO/LSDyna/LSDynaFamily.h
+++ b/IO/LSDyna/LSDynaFamily.h
@@ -67,6 +67,7 @@ typedef FILE* vtkLSDynaFile_t;
 #include <errno.h>
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class LSDynaFamily
 {
 public:
@@ -325,4 +326,5 @@ inline T* LSDynaFamily::GetBufferAs()
   return reinterpret_cast<T*>(this->Chunk);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // __LSDynaFamily_h
diff --git a/IO/LSDyna/LSDynaMetaData.cxx b/IO/LSDyna/LSDynaMetaData.cxx
index 5a50ed3eb0d75db219a3cc175799b0f9878f8d85..60b30875c1c9ded9446e4cfb67dc29c5e17b9a01 100644
--- a/IO/LSDyna/LSDynaMetaData.cxx
+++ b/IO/LSDyna/LSDynaMetaData.cxx
@@ -15,6 +15,7 @@
 #include "LSDynaMetaData.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 LSDynaMetaData::LSDynaMetaData()
 {
   this->FileIsValid = 0;
@@ -127,3 +128,4 @@ void LSDynaMetaData::Reset()
   this->RigidSurfaceSegmentSizes.clear();
   this->TimeValues.clear();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/LSDyna/LSDynaMetaData.h b/IO/LSDyna/LSDynaMetaData.h
index d1bf48aa265adddae618750a4a20a5ab054b17e1..54901b685f3a1a240aace0c2eda29390bbfe2014 100644
--- a/IO/LSDyna/LSDynaMetaData.h
+++ b/IO/LSDyna/LSDynaMetaData.h
@@ -34,6 +34,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class LSDynaMetaData
 {
 public:
@@ -129,4 +130,5 @@ public:
   vtkIdType SPHStateOffset;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // __LSDynaMetaData_h
diff --git a/IO/LSDyna/vtkLSDynaPart.cxx b/IO/LSDyna/vtkLSDynaPart.cxx
index 6de90901e7b16f7f9e0ba21a2f4458167517fe98..a9e7041ef473192cfb5297edd7962ad1cf286343 100644
--- a/IO/LSDyna/vtkLSDynaPart.cxx
+++ b/IO/LSDyna/vtkLSDynaPart.cxx
@@ -32,6 +32,7 @@
 #include <map>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -973,3 +974,4 @@ void vtkLSDynaPart::BuildUniquePoints()
     this->GlobalPointsUsed = new vtkLSDynaPart::SparsePointsUsed(&pointUsage, min, max);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/LSDyna/vtkLSDynaPart.h b/IO/LSDyna/vtkLSDynaPart.h
index 476154d8cff65ed8470c40953137c84c7666521b..d1af251a5b878444921c249ff8008794f37701db 100644
--- a/IO/LSDyna/vtkLSDynaPart.h
+++ b/IO/LSDyna/vtkLSDynaPart.h
@@ -20,6 +20,7 @@
 #include "vtkObject.h"
 #include "vtkStdString.h" //needed for string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGrid;
 class vtkPoints;
 
@@ -183,4 +184,5 @@ private:
   void operator=(const vtkLSDynaPart&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLSDynaPart_h
diff --git a/IO/LSDyna/vtkLSDynaPartCollection.cxx b/IO/LSDyna/vtkLSDynaPartCollection.cxx
index 15acdaa26e17a533f11928281dec3c6ce3575dd3..d7c94a952da8ad852efe104566e9b8f127372d34 100644
--- a/IO/LSDyna/vtkLSDynaPartCollection.cxx
+++ b/IO/LSDyna/vtkLSDynaPartCollection.cxx
@@ -34,6 +34,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLSDynaPartCollection::LSDynaPartStorage
 {
 protected:
@@ -943,3 +944,4 @@ void vtkLSDynaPartCollection::FillPointProperty(const vtkIdType& numTuples,
   }
   p->Fam.SkipWords(numPointsToSkipEnd * numComps);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/LSDyna/vtkLSDynaPartCollection.h b/IO/LSDyna/vtkLSDynaPartCollection.h
index 78fcb7e950aaa7b323da563bcf36556f46c50045..e11b1ee875ff391ad0e0049678c5780e2ffd021a 100644
--- a/IO/LSDyna/vtkLSDynaPartCollection.h
+++ b/IO/LSDyna/vtkLSDynaPartCollection.h
@@ -19,6 +19,7 @@
 #include "vtkIOLSDynaModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkUnstructuredGrid;
 class vtkPoints;
@@ -157,4 +158,5 @@ private:
   LSDynaPartStorage* Storage;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLSDynaPartCollection_h
diff --git a/IO/LSDyna/vtkLSDynaReader.cxx b/IO/LSDyna/vtkLSDynaReader.cxx
index 73932eb760e920d69616b5a6ca75d4f706d6c7cd..29e2c37dd9fee658695726b2e056dd207510c0c0 100644
--- a/IO/LSDyna/vtkLSDynaReader.cxx
+++ b/IO/LSDyna/vtkLSDynaReader.cxx
@@ -73,6 +73,7 @@
 #include "vtkUnstructuredGrid.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLSDynaReader);
 
 // Names of vtkDataArrays provided with grid:
@@ -3773,3 +3774,4 @@ int vtkLSDynaReader::ComputeDeflectionAndUpdateGeometry(vtkUnstructuredGrid* ug)
   }
   return EXIT_SUCCESS;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/LSDyna/vtkLSDynaReader.h b/IO/LSDyna/vtkLSDynaReader.h
index b77ae5619cfaaaff679c6a440a369d52d6efaaa9..8779ca24ea05ca84ad113e309982991d58ec0dd9 100644
--- a/IO/LSDyna/vtkLSDynaReader.h
+++ b/IO/LSDyna/vtkLSDynaReader.h
@@ -156,6 +156,7 @@
 #include "vtkMultiBlockDataSetAlgorithm.h"
 #include <string> // for method signature
 
+VTK_ABI_NAMESPACE_BEGIN
 class LSDynaMetaData;
 class vtkLSDynaPartCollection;
 class vtkPoints;
@@ -1071,4 +1072,5 @@ inline int vtkLSDynaReader::GetPartArrayStatus(const char* partName)
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLSDynaReader_h
diff --git a/IO/LSDyna/vtkLSDynaSummaryParser.cxx b/IO/LSDyna/vtkLSDynaSummaryParser.cxx
index 72792ef2d1101bf26185d5f1efc563fc3cbcfc64..bbfebdb11eb62795eb50a453f06e051f7975b957 100644
--- a/IO/LSDyna/vtkLSDynaSummaryParser.cxx
+++ b/IO/LSDyna/vtkLSDynaSummaryParser.cxx
@@ -19,6 +19,7 @@
 
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLSDynaSummaryParser);
 
 namespace
@@ -222,3 +223,4 @@ void vtkLSDynaSummaryParser::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "InDyna: " << this->InDyna << endl;
   os << indent << "InName: " << this->InName << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/LSDyna/vtkLSDynaSummaryParser.h b/IO/LSDyna/vtkLSDynaSummaryParser.h
index 94d80fe57ef94bc28708736824162368c53ed93c..f5c2716edef5a6d632d0e52a3bc0744b77e7f6c8 100644
--- a/IO/LSDyna/vtkLSDynaSummaryParser.h
+++ b/IO/LSDyna/vtkLSDynaSummaryParser.h
@@ -27,6 +27,7 @@
 #include "vtkStdString.h"      //needed for vtkStdString
 #include "vtkXMLParser.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class LSDynaMetaData;
 class VTKIOLSDYNA_EXPORT vtkLSDynaSummaryParser : public vtkXMLParser
 {
@@ -59,4 +60,5 @@ private:
   void operator=(const vtkLSDynaSummaryParser&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLSDynaReader_h
diff --git a/IO/Legacy/vtkCompositeDataReader.cxx b/IO/Legacy/vtkCompositeDataReader.cxx
index f881f54777f0dce7d9078fac65373a0cd192d7dd..6529fcfd90d70dc4eb7cc2f401b676a1e26a0dac 100644
--- a/IO/Legacy/vtkCompositeDataReader.cxx
+++ b/IO/Legacy/vtkCompositeDataReader.cxx
@@ -40,6 +40,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeDataReader);
 //------------------------------------------------------------------------------
 vtkCompositeDataReader::vtkCompositeDataReader() = default;
@@ -779,3 +780,4 @@ void vtkCompositeDataReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkCompositeDataReader.h b/IO/Legacy/vtkCompositeDataReader.h
index 9cdc4fb78ba6492d83a13e1d6e4e0ebc46c3aadf..66e370e5c055c1a58c4baad804b5681ab1a02a7c 100644
--- a/IO/Legacy/vtkCompositeDataReader.h
+++ b/IO/Legacy/vtkCompositeDataReader.h
@@ -28,6 +28,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkHierarchicalBoxDataSet;
 class vtkMultiBlockDataSet;
@@ -85,4 +86,5 @@ private:
   void operator=(const vtkCompositeDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkCompositeDataWriter.cxx b/IO/Legacy/vtkCompositeDataWriter.cxx
index c4ea6f5305b148a05d22f09b059c65be6aeb1fa5..3dff72860117b19717997cb2a4b11d2002a26f66 100644
--- a/IO/Legacy/vtkCompositeDataWriter.cxx
+++ b/IO/Legacy/vtkCompositeDataWriter.cxx
@@ -37,6 +37,7 @@
 #include <io.h> /* unlink */
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeDataWriter);
 //------------------------------------------------------------------------------
 vtkCompositeDataWriter::vtkCompositeDataWriter() = default;
@@ -385,3 +386,4 @@ void vtkCompositeDataWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkCompositeDataWriter.h b/IO/Legacy/vtkCompositeDataWriter.h
index e753ca592514a657f3b15d27a3df0e977f896afc..522a3e46bf7e3ff9df0a4f3e76011692d1bce803 100644
--- a/IO/Legacy/vtkCompositeDataWriter.h
+++ b/IO/Legacy/vtkCompositeDataWriter.h
@@ -31,6 +31,7 @@
 #include "vtkDataWriter.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkHierarchicalBoxDataSet;
 class vtkMultiBlockDataSet;
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkCompositeDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkDataObjectReader.cxx b/IO/Legacy/vtkDataObjectReader.cxx
index 572290b42faed563c02eab3418f363f48aa96a13..3b8e37c610551d818cdcd459723c8e0c703f5b5b 100644
--- a/IO/Legacy/vtkDataObjectReader.cxx
+++ b/IO/Legacy/vtkDataObjectReader.cxx
@@ -21,6 +21,7 @@
 #include "vtkInformationVector.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataObjectReader);
 
 vtkDataObjectReader::vtkDataObjectReader() = default;
@@ -101,3 +102,4 @@ void vtkDataObjectReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkDataObjectReader.h b/IO/Legacy/vtkDataObjectReader.h
index 4f7274ffdaf2acd06224da9626d11b57c357e12a..4f7d60be5e334a3b4a13693e0b71bb13f2a33212 100644
--- a/IO/Legacy/vtkDataObjectReader.h
+++ b/IO/Legacy/vtkDataObjectReader.h
@@ -34,6 +34,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 
 class VTKIOLEGACY_EXPORT vtkDataObjectReader : public vtkDataReader
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkDataObjectReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkDataObjectWriter.cxx b/IO/Legacy/vtkDataObjectWriter.cxx
index 45b63e1dc0eeba722e56d89e2a1a26a288c65401..acc5129d57bca0f8cccaa7b73353efecf4773d52 100644
--- a/IO/Legacy/vtkDataObjectWriter.cxx
+++ b/IO/Legacy/vtkDataObjectWriter.cxx
@@ -18,6 +18,7 @@
 #include "vtkInformation.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataObjectWriter);
 
 vtkDataObjectWriter::vtkDataObjectWriter()
@@ -95,3 +96,4 @@ int vtkDataObjectWriter::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkDataObject");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkDataObjectWriter.h b/IO/Legacy/vtkDataObjectWriter.h
index 78a33c39d14b51fd15c3368db3bfaf1125175d33..c243d59b44ea04e3adb08fee3fcf8d74b8ba5ed9 100644
--- a/IO/Legacy/vtkDataObjectWriter.h
+++ b/IO/Legacy/vtkDataObjectWriter.h
@@ -35,6 +35,7 @@
 #include "vtkStdString.h"      // For string used in api
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOLEGACY_EXPORT vtkDataObjectWriter : public vtkWriter
 {
 public:
@@ -83,4 +84,5 @@ private:
   void operator=(const vtkDataObjectWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkDataReader.cxx b/IO/Legacy/vtkDataReader.cxx
index 2d543cf4111f3dc788148e9818d19b57963ad949..0b5b35122eae7ecab244860871700b37ef8b4617 100644
--- a/IO/Legacy/vtkDataReader.cxx
+++ b/IO/Legacy/vtkDataReader.cxx
@@ -71,6 +71,7 @@
 // myself.
 // This function is also defined in Infovis/vtkDelimitedTextReader.cxx,
 // so it would be nice to put this in a common file.
+VTK_ABI_NAMESPACE_BEGIN
 static int my_getline(istream& in, std::string& output, char delim = '\n');
 
 vtkStandardNewMacro(vtkDataReader);
@@ -3902,3 +3903,4 @@ void vtkDataReader::SetScalarLut(const char* lut)
     } while (--n);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkDataReader.h b/IO/Legacy/vtkDataReader.h
index e074632307eeaf7ad5fb515fe1d286dd09517b90..02d5ab8ac0203ee43070b1f5dad8ce533bb4003e 100644
--- a/IO/Legacy/vtkDataReader.h
+++ b/IO/Legacy/vtkDataReader.h
@@ -40,6 +40,7 @@
 #define VTK_ASCII 1
 #define VTK_BINARY 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkCharArray;
 class vtkCellArray;
@@ -620,4 +621,5 @@ private:
   void ConvertGhostLevelsToGhostType(FieldType fieldType, vtkAbstractArray* data) const;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkDataSetReader.cxx b/IO/Legacy/vtkDataSetReader.cxx
index 226249548f39dadd2803563c16e6a0de6313f828..d84b2ce0961b66807cec4e28ef65e9e1a7997e94 100644
--- a/IO/Legacy/vtkDataSetReader.cxx
+++ b/IO/Legacy/vtkDataSetReader.cxx
@@ -29,6 +29,7 @@
 #include "vtkUnstructuredGrid.h"
 #include "vtkUnstructuredGridReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataSetReader);
 
 vtkDataSetReader::vtkDataSetReader() = default;
@@ -419,3 +420,4 @@ int vtkDataSetReader::FillOutputPortInformation(int, vtkInformation* info)
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkDataSetReader.h b/IO/Legacy/vtkDataSetReader.h
index 8a08b40967d8e9c783aa05de503bc87fce240c02..4615cc4b68b428b199c3a72ebc243f1def7f4b68 100644
--- a/IO/Legacy/vtkDataSetReader.h
+++ b/IO/Legacy/vtkDataSetReader.h
@@ -37,6 +37,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkPolyData;
 class vtkRectilinearGrid;
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkDataSetReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkDataSetWriter.cxx b/IO/Legacy/vtkDataSetWriter.cxx
index b8bc314df4d52a2f53931f9f41d8ec083b834e20..bd9fb5f2f989274ad04e4f3e2eb86bc011ab20f9 100644
--- a/IO/Legacy/vtkDataSetWriter.cxx
+++ b/IO/Legacy/vtkDataSetWriter.cxx
@@ -30,6 +30,7 @@
 #include "vtkUnstructuredGrid.h"
 #include "vtkUnstructuredGridWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataSetWriter);
 
 void vtkDataSetWriter::WriteData()
@@ -128,3 +129,4 @@ void vtkDataSetWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkDataSetWriter.h b/IO/Legacy/vtkDataSetWriter.h
index 14a99c8b5617ff8109caa435fe07813e84a650c0..b65bb7d5fb69b8ce056a6ba5bb475a704f4a3537 100644
--- a/IO/Legacy/vtkDataSetWriter.h
+++ b/IO/Legacy/vtkDataSetWriter.h
@@ -27,6 +27,7 @@
 #include "vtkDataWriter.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOLEGACY_EXPORT vtkDataSetWriter : public vtkDataWriter
 {
 public:
@@ -55,4 +56,5 @@ private:
   void operator=(const vtkDataSetWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkDataWriter.cxx b/IO/Legacy/vtkDataWriter.cxx
index 728061b108acc145cec1a5b07f1560613069cc2d..3b00852f79a60700083e8e09e82a7a122da1cd87 100644
--- a/IO/Legacy/vtkDataWriter.cxx
+++ b/IO/Legacy/vtkDataWriter.cxx
@@ -70,6 +70,7 @@
 #include <cstdio>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataWriter);
 
 //------------------------------------------------------------------------------
@@ -2462,3 +2463,4 @@ int vtkDataWriter::WriteDataSetData(ostream* fp, vtkDataSet* ds)
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkDataWriter.h b/IO/Legacy/vtkDataWriter.h
index afe2dc5f81beb7b35496ea3835fcdba42e2f2f78..86d8b4e2d447e82db3b5f5196cb68748edf873e5 100644
--- a/IO/Legacy/vtkDataWriter.h
+++ b/IO/Legacy/vtkDataWriter.h
@@ -34,6 +34,7 @@
 
 #include <locale> // For locale settings
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkDataArray;
 class vtkDataSet;
@@ -382,4 +383,5 @@ private:
   void operator=(const vtkDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkGenericDataObjectReader.cxx b/IO/Legacy/vtkGenericDataObjectReader.cxx
index 8a96bc33228a2bdb425b51e139b0190a0e30abdc..4e2e0b893b5a517fa834824f269427f9fe531fb5 100644
--- a/IO/Legacy/vtkGenericDataObjectReader.cxx
+++ b/IO/Legacy/vtkGenericDataObjectReader.cxx
@@ -47,6 +47,7 @@
 #include "vtkUnstructuredGrid.h"
 #include "vtkUnstructuredGridReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericDataObjectReader);
 
 template <typename ReaderT, typename DataT>
@@ -539,3 +540,4 @@ int vtkGenericDataObjectReader::FillOutputPortInformation(int, vtkInformation* i
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkDataObject");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkGenericDataObjectReader.h b/IO/Legacy/vtkGenericDataObjectReader.h
index e0c122e9a5f11c4d2d76e35cd7d9fa2f22e1c3bd..7321171c7640a3de10150a498a08b777f73bb4be 100644
--- a/IO/Legacy/vtkGenericDataObjectReader.h
+++ b/IO/Legacy/vtkGenericDataObjectReader.h
@@ -38,6 +38,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 class vtkGraph;
 class vtkMolecule;
@@ -117,4 +118,5 @@ private:
   vtkSetStringMacro(Header);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkGenericDataObjectWriter.cxx b/IO/Legacy/vtkGenericDataObjectWriter.cxx
index 7851bc273caf77b773fb83291b642a72ae037d7a..d4c886bd61fce306789cc916df728fc23b4379dc 100644
--- a/IO/Legacy/vtkGenericDataObjectWriter.cxx
+++ b/IO/Legacy/vtkGenericDataObjectWriter.cxx
@@ -38,6 +38,7 @@
 #include "vtkUnstructuredGrid.h"
 #include "vtkUnstructuredGridWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericDataObjectWriter);
 
 template <typename WriterT>
@@ -177,3 +178,4 @@ void vtkGenericDataObjectWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkGenericDataObjectWriter.h b/IO/Legacy/vtkGenericDataObjectWriter.h
index 29a583be5e008ab85a25025b508bd8ecef87fd3e..805a71a399fec117452d761e70fb60da63660b0e 100644
--- a/IO/Legacy/vtkGenericDataObjectWriter.h
+++ b/IO/Legacy/vtkGenericDataObjectWriter.h
@@ -26,6 +26,7 @@
 #include "vtkDataWriter.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOLEGACY_EXPORT vtkGenericDataObjectWriter : public vtkDataWriter
 {
 public:
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkGenericDataObjectWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkGraphReader.cxx b/IO/Legacy/vtkGraphReader.cxx
index a29265606ebb547daf83dbb3231e29e787949eb4..0d9ce5bca1656d087d26f43127719fcb324e1e92 100644
--- a/IO/Legacy/vtkGraphReader.cxx
+++ b/IO/Legacy/vtkGraphReader.cxx
@@ -28,6 +28,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphReader);
 
 #ifdef read
@@ -432,3 +433,4 @@ void vtkGraphReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkGraphReader.h b/IO/Legacy/vtkGraphReader.h
index 7fca9d8bb5e1f3e6e89619b032d3ed303fee4431..71ea9d17a72740719b58a668e45a6c8da8cdc11d 100644
--- a/IO/Legacy/vtkGraphReader.h
+++ b/IO/Legacy/vtkGraphReader.h
@@ -34,6 +34,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 
 class VTKIOLEGACY_EXPORT vtkGraphReader : public vtkDataReader
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkGraphReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkGraphWriter.cxx b/IO/Legacy/vtkGraphWriter.cxx
index b5abf4eef24bbf1be09db8b1d5bd9b6d4bb02e94..3823175ecf1325ab808d2197e49362110ddf2ccd 100644
--- a/IO/Legacy/vtkGraphWriter.cxx
+++ b/IO/Legacy/vtkGraphWriter.cxx
@@ -29,6 +29,7 @@
 #include <io.h> /* unlink */
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphWriter);
 
 void vtkGraphWriter::WriteData()
@@ -156,3 +157,4 @@ void vtkGraphWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkGraphWriter.h b/IO/Legacy/vtkGraphWriter.h
index 09feedd50c8434025716e79a96f0146383df8480..b9e1416a87880f696c291a59ebc88a3a900b326a 100644
--- a/IO/Legacy/vtkGraphWriter.h
+++ b/IO/Legacy/vtkGraphWriter.h
@@ -28,6 +28,7 @@
 #include "vtkDataWriter.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 class vtkMolecule;
 
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkGraphWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkLegacyReaderVersion.h b/IO/Legacy/vtkLegacyReaderVersion.h
index 5723e6f3b2973ad8c71269a5fb1faf0474803c00..61c90444b25a8d22fbb608b4304814c22d25f42e 100644
--- a/IO/Legacy/vtkLegacyReaderVersion.h
+++ b/IO/Legacy/vtkLegacyReaderVersion.h
@@ -20,8 +20,10 @@
 #ifndef vtkLegacyReaderVersion_h
 #define vtkLegacyReaderVersion_h
 
+VTK_ABI_NAMESPACE_BEGIN
 const int vtkLegacyReaderMajorVersion = 5;
 const int vtkLegacyReaderMinorVersion = 1;
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLegacyReaderVersion_h
 // VTK-HeaderTest-Exclude: vtkLegacyReaderVersion.h
diff --git a/IO/Legacy/vtkPixelExtentIO.cxx b/IO/Legacy/vtkPixelExtentIO.cxx
index 726a44d4495f3b393a0e7577e02899d69109fe60..12e0d1435593fa20efa06c549481c70e50beb43b 100644
--- a/IO/Legacy/vtkPixelExtentIO.cxx
+++ b/IO/Legacy/vtkPixelExtentIO.cxx
@@ -28,6 +28,7 @@
 using std::deque;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkUnstructuredGrid& operator<<(vtkUnstructuredGrid& data, const vtkPixelExtent& ext)
 {
   // initialize empty dataset
@@ -182,3 +183,4 @@ void vtkPixelExtentIO::Write(int commRank, const char* fileName, const vtkPixelE
 
   data->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkPixelExtentIO.h b/IO/Legacy/vtkPixelExtentIO.h
index c89af11bdf3cb187f41337a7b9513ef9e4d3ce00..fdeb44c48848cb7a77d8272105cc67d0b168b93e 100644
--- a/IO/Legacy/vtkPixelExtentIO.h
+++ b/IO/Legacy/vtkPixelExtentIO.h
@@ -27,6 +27,7 @@
 #include "vtkPixelExtent.h"    // for pixel extent
 #include <deque>               // for std::deque
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGrid;
 
 class VTKIOLEGACY_EXPORT vtkPixelExtentIO
@@ -69,5 +70,6 @@ public:
 VTKIOLEGACY_EXPORT
 vtkUnstructuredGrid& operator<<(vtkUnstructuredGrid& data, const vtkPixelExtent& ext);
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkPixelExtentIO.h
diff --git a/IO/Legacy/vtkPolyDataReader.cxx b/IO/Legacy/vtkPolyDataReader.cxx
index 3601dfa170de669a0fe5eefbdfa2bafb954b961a..a3bc90658a1397916d32a2dcd25d034d6be032b0 100644
--- a/IO/Legacy/vtkPolyDataReader.cxx
+++ b/IO/Legacy/vtkPolyDataReader.cxx
@@ -24,6 +24,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataReader);
 
 //------------------------------------------------------------------------------
@@ -305,3 +306,4 @@ void vtkPolyDataReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkPolyDataReader.h b/IO/Legacy/vtkPolyDataReader.h
index eca99f676730b4df1f39d0c9d8bd8ebde4019241..02a3d1685dca84edebc1e0fd0ce34d4cb8641119 100644
--- a/IO/Legacy/vtkPolyDataReader.h
+++ b/IO/Legacy/vtkPolyDataReader.h
@@ -34,6 +34,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKIOLEGACY_EXPORT vtkPolyDataReader : public vtkDataReader
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkPolyDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkPolyDataWriter.cxx b/IO/Legacy/vtkPolyDataWriter.cxx
index 035ec6c523bc9c417dd9beb153cf65d1a5dbba7c..7acef20f73341a492cdfab7a4fd56aa48b074f87 100644
--- a/IO/Legacy/vtkPolyDataWriter.cxx
+++ b/IO/Legacy/vtkPolyDataWriter.cxx
@@ -24,6 +24,7 @@
 #include <io.h> /* unlink */
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataWriter);
 
 void vtkPolyDataWriter::WriteData()
@@ -144,3 +145,4 @@ void vtkPolyDataWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkPolyDataWriter.h b/IO/Legacy/vtkPolyDataWriter.h
index fd5e2bc5d80a45901b5de359ae85dec7537f301c..893fadcbe046f9530ac6ccf60216015e975098de 100644
--- a/IO/Legacy/vtkPolyDataWriter.h
+++ b/IO/Legacy/vtkPolyDataWriter.h
@@ -28,6 +28,7 @@
 #include "vtkDataWriter.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKIOLEGACY_EXPORT vtkPolyDataWriter : public vtkDataWriter
@@ -58,4 +59,5 @@ private:
   void operator=(const vtkPolyDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkRectilinearGridReader.cxx b/IO/Legacy/vtkRectilinearGridReader.cxx
index 6dfe3ea2f3bc7c42fad3fd9672d2a972da37ba53..5cc0b90b7606f68e214f2291cb31b8f72ca9c8fd 100644
--- a/IO/Legacy/vtkRectilinearGridReader.cxx
+++ b/IO/Legacy/vtkRectilinearGridReader.cxx
@@ -23,6 +23,7 @@
 #include "vtkRectilinearGrid.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearGridReader);
 
 vtkRectilinearGridReader::vtkRectilinearGridReader() = default;
@@ -384,3 +385,4 @@ void vtkRectilinearGridReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkRectilinearGridReader.h b/IO/Legacy/vtkRectilinearGridReader.h
index 3a4c81e3ed6aa197242c82736504b6401dd89a51..cc6e325e1afbe0ef173af0146bef8b81a5f5f6c0 100644
--- a/IO/Legacy/vtkRectilinearGridReader.h
+++ b/IO/Legacy/vtkRectilinearGridReader.h
@@ -34,6 +34,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRectilinearGrid;
 
 class VTKIOLEGACY_EXPORT vtkRectilinearGridReader : public vtkDataReader
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkRectilinearGridReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkRectilinearGridWriter.cxx b/IO/Legacy/vtkRectilinearGridWriter.cxx
index f6e684874652f74d560a290a60dfe4ec70467544..fb71f619a9877404280fabf73dd4f7821d621c59 100644
--- a/IO/Legacy/vtkRectilinearGridWriter.cxx
+++ b/IO/Legacy/vtkRectilinearGridWriter.cxx
@@ -24,6 +24,7 @@
 #include <io.h> /* unlink */
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearGridWriter);
 
 void vtkRectilinearGridWriter::WriteData()
@@ -131,3 +132,4 @@ void vtkRectilinearGridWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkRectilinearGridWriter.h b/IO/Legacy/vtkRectilinearGridWriter.h
index f401a47ffb805d41ed6c4b875e165095274a437d..b93c2222c6e69de2b9f6e85b40336cea916ae021 100644
--- a/IO/Legacy/vtkRectilinearGridWriter.h
+++ b/IO/Legacy/vtkRectilinearGridWriter.h
@@ -29,6 +29,7 @@
 #include "vtkDataWriter.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRectilinearGrid;
 
 class VTKIOLEGACY_EXPORT vtkRectilinearGridWriter : public vtkDataWriter
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkRectilinearGridWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkSimplePointsReader.cxx b/IO/Legacy/vtkSimplePointsReader.cxx
index 39f36b35342fa443c52d73c5fc4ed733edc9e58e..7ba4a36ba9e1fe54cd7bdab2b70b8bfa3351771d 100644
--- a/IO/Legacy/vtkSimplePointsReader.cxx
+++ b/IO/Legacy/vtkSimplePointsReader.cxx
@@ -21,6 +21,7 @@
 #include "vtkSmartPointer.h"
 #include "vtksys/FStream.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSimplePointsReader);
 
 //------------------------------------------------------------------------------
@@ -83,3 +84,4 @@ int vtkSimplePointsReader::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkSimplePointsReader.h b/IO/Legacy/vtkSimplePointsReader.h
index a021c9b3113613c95d1167f65f81c12bf5a81f43..291330b14df5f46e3679cbd6274d4113da4f182f 100644
--- a/IO/Legacy/vtkSimplePointsReader.h
+++ b/IO/Legacy/vtkSimplePointsReader.h
@@ -30,6 +30,7 @@
 #include "vtkIOLegacyModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOLEGACY_EXPORT vtkSimplePointsReader : public vtkPolyDataAlgorithm
 {
 public:
@@ -58,4 +59,5 @@ private:
   void operator=(const vtkSimplePointsReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkSimplePointsWriter.cxx b/IO/Legacy/vtkSimplePointsWriter.cxx
index aa54795bab386631f5ef59d6f3f825989f3541f5..90205e2041e3e721eef7316ffd723ac8a4125ac8 100644
--- a/IO/Legacy/vtkSimplePointsWriter.cxx
+++ b/IO/Legacy/vtkSimplePointsWriter.cxx
@@ -27,6 +27,7 @@
 
 #include <iomanip>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSimplePointsWriter);
 
 vtkSimplePointsWriter::vtkSimplePointsWriter()
@@ -79,3 +80,4 @@ void vtkSimplePointsWriter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "DecimalPrecision: " << this->DecimalPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkSimplePointsWriter.h b/IO/Legacy/vtkSimplePointsWriter.h
index 4d0398787333543fa37253bc07cd132f6368b70a..08b2d9b4298dbf4e96a4875e0c9a9d2d2b7b0b57 100644
--- a/IO/Legacy/vtkSimplePointsWriter.h
+++ b/IO/Legacy/vtkSimplePointsWriter.h
@@ -28,6 +28,7 @@
 #include "vtkDataSetWriter.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOLEGACY_EXPORT vtkSimplePointsWriter : public vtkDataSetWriter
 {
 public:
@@ -51,4 +52,5 @@ private:
   void operator=(const vtkSimplePointsWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkStructuredGridReader.cxx b/IO/Legacy/vtkStructuredGridReader.cxx
index 459bfcda730fe0bbf509521d33a3d77978a59888..17eda684e5825cdccb3a6d3a52fbd3af4d682dde 100644
--- a/IO/Legacy/vtkStructuredGridReader.cxx
+++ b/IO/Legacy/vtkStructuredGridReader.cxx
@@ -25,6 +25,7 @@
 #include "vtkStructuredGrid.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredGridReader);
 
 vtkStructuredGridReader::vtkStructuredGridReader() = default;
@@ -387,3 +388,4 @@ void vtkStructuredGridReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkStructuredGridReader.h b/IO/Legacy/vtkStructuredGridReader.h
index 96cd3452c0e3b348b3aac0181128f277a84878ea..967b1521a22b7356375fca1fa61b39555fccd24c 100644
--- a/IO/Legacy/vtkStructuredGridReader.h
+++ b/IO/Legacy/vtkStructuredGridReader.h
@@ -34,6 +34,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStructuredGrid;
 
 class VTKIOLEGACY_EXPORT vtkStructuredGridReader : public vtkDataReader
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkStructuredGridReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkStructuredGridWriter.cxx b/IO/Legacy/vtkStructuredGridWriter.cxx
index 017abf3d8511419594c5dadface7ecca1d18d001..b76d9fb3adedc151c24aa5d40163afe9feb65602 100644
--- a/IO/Legacy/vtkStructuredGridWriter.cxx
+++ b/IO/Legacy/vtkStructuredGridWriter.cxx
@@ -25,6 +25,7 @@
 #include <io.h> /* unlink */
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredGridWriter);
 
 void vtkStructuredGridWriter::WriteData()
@@ -118,3 +119,4 @@ void vtkStructuredGridWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkStructuredGridWriter.h b/IO/Legacy/vtkStructuredGridWriter.h
index 6774e61432a7864aa6ecca45e1bbefbd48ae6b82..b2fde5bb1583b48373338b2c7ddfa880f8cdcdd0 100644
--- a/IO/Legacy/vtkStructuredGridWriter.h
+++ b/IO/Legacy/vtkStructuredGridWriter.h
@@ -29,6 +29,7 @@
 #include "vtkDataWriter.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStructuredGrid;
 
 class VTKIOLEGACY_EXPORT vtkStructuredGridWriter : public vtkDataWriter
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkStructuredGridWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkStructuredPointsReader.cxx b/IO/Legacy/vtkStructuredPointsReader.cxx
index 18374a25da5beb097c973a52edc01112d345062f..20064e4ce21789bc80ab85732b966e2d9fc474e1 100644
--- a/IO/Legacy/vtkStructuredPointsReader.cxx
+++ b/IO/Legacy/vtkStructuredPointsReader.cxx
@@ -24,6 +24,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkStructuredPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredPointsReader);
 
 vtkStructuredPointsReader::vtkStructuredPointsReader() = default;
@@ -524,3 +525,4 @@ void vtkStructuredPointsReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkStructuredPointsReader.h b/IO/Legacy/vtkStructuredPointsReader.h
index 71ccca90ea118246df7a46291548b51a0ef05fce..1387e30fd226e8459cf84dc5266c758640aff08a 100644
--- a/IO/Legacy/vtkStructuredPointsReader.h
+++ b/IO/Legacy/vtkStructuredPointsReader.h
@@ -34,6 +34,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStructuredPoints;
 
 class VTKIOLEGACY_EXPORT vtkStructuredPointsReader : public vtkDataReader
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkStructuredPointsReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkStructuredPointsWriter.cxx b/IO/Legacy/vtkStructuredPointsWriter.cxx
index 26cc21ba5ac1111bb7b2c6d0b5f3886367947514..0b0965ce459b591e9ce9ad7c4a3ee09b2d8a4273 100644
--- a/IO/Legacy/vtkStructuredPointsWriter.cxx
+++ b/IO/Legacy/vtkStructuredPointsWriter.cxx
@@ -24,6 +24,7 @@
 #include <io.h> /* unlink */
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredPointsWriter);
 
 void vtkStructuredPointsWriter::WriteData()
@@ -130,3 +131,4 @@ void vtkStructuredPointsWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkStructuredPointsWriter.h b/IO/Legacy/vtkStructuredPointsWriter.h
index 363f7887381ab31ee69d28ac1b2557ff2bf58dfe..f89eca2dd6d317556a8819569804e8fd6fcb2e7e 100644
--- a/IO/Legacy/vtkStructuredPointsWriter.h
+++ b/IO/Legacy/vtkStructuredPointsWriter.h
@@ -28,6 +28,7 @@
 #include "vtkDataWriter.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKIOLEGACY_EXPORT vtkStructuredPointsWriter : public vtkDataWriter
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkStructuredPointsWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkTableReader.cxx b/IO/Legacy/vtkTableReader.cxx
index 3e4e947cb9411e8af9b3795e6297d7d84d2d9eab..abc94f0f032162b8bc127741be7578e5b1bb0db2 100644
--- a/IO/Legacy/vtkTableReader.cxx
+++ b/IO/Legacy/vtkTableReader.cxx
@@ -23,6 +23,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTableReader);
 
 #ifdef read
@@ -147,3 +148,4 @@ void vtkTableReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkTableReader.h b/IO/Legacy/vtkTableReader.h
index 4ec046f21446ece1a6f91a04d6fb5e9b0964b6f8..40ae8d4ce4c8477eeb64b218fc9927425a48ac17 100644
--- a/IO/Legacy/vtkTableReader.h
+++ b/IO/Legacy/vtkTableReader.h
@@ -34,6 +34,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTable;
 
 class VTKIOLEGACY_EXPORT vtkTableReader : public vtkDataReader
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkTableReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkTableWriter.cxx b/IO/Legacy/vtkTableWriter.cxx
index 6d982f2f680d12a5218ca2a37ea8aa3ab447630d..2ace49a98685d56e45abd6f8b1bec17fb94c51a9 100644
--- a/IO/Legacy/vtkTableWriter.cxx
+++ b/IO/Legacy/vtkTableWriter.cxx
@@ -26,6 +26,7 @@
 #include <io.h> /* unlink */
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTableWriter);
 
 void vtkTableWriter::WriteData()
@@ -74,3 +75,4 @@ void vtkTableWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkTableWriter.h b/IO/Legacy/vtkTableWriter.h
index 68f7087c3a11e4fb85456b67a9bcd535bf973038..050c6de152c0cbc8589945652058036a3fafbb4a 100644
--- a/IO/Legacy/vtkTableWriter.h
+++ b/IO/Legacy/vtkTableWriter.h
@@ -27,6 +27,7 @@
 
 #include "vtkDataWriter.h"
 #include "vtkIOLegacyModule.h" // For export macro
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTable;
 
 class VTKIOLEGACY_EXPORT vtkTableWriter : public vtkDataWriter
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkTableWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkTreeReader.cxx b/IO/Legacy/vtkTreeReader.cxx
index 7caaac5cfd42a37b7e734dd3cdd3b9d57a5c7526..be876d64100dd7d28c367ddf4230ef094fd413ae 100644
--- a/IO/Legacy/vtkTreeReader.cxx
+++ b/IO/Legacy/vtkTreeReader.cxx
@@ -25,6 +25,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeReader);
 
 #ifdef read
@@ -221,3 +222,4 @@ void vtkTreeReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkTreeReader.h b/IO/Legacy/vtkTreeReader.h
index 96a7c4e93f131fe662321e0a03f08e3e392f2b00..0837e81a89848698d3cc72e9b0398b52f5711644 100644
--- a/IO/Legacy/vtkTreeReader.h
+++ b/IO/Legacy/vtkTreeReader.h
@@ -34,6 +34,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTree;
 
 class VTKIOLEGACY_EXPORT vtkTreeReader : public vtkDataReader
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkTreeReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkTreeWriter.cxx b/IO/Legacy/vtkTreeWriter.cxx
index a34203a180ca790eed49108bc99ac1f8f55f1d21..d5843d0b6384487c01cb18c0b1e2c2deb198bcaa 100644
--- a/IO/Legacy/vtkTreeWriter.cxx
+++ b/IO/Legacy/vtkTreeWriter.cxx
@@ -26,6 +26,7 @@
 #include <io.h> /* unlink */
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeWriter);
 
 void vtkTreeWriter::WriteEdges(ostream& Stream, vtkTree* Tree)
@@ -129,3 +130,4 @@ void vtkTreeWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkTreeWriter.h b/IO/Legacy/vtkTreeWriter.h
index 6b4e890005261e750c21959efd52ebf376e9fa4a..25960941022ec35a360ac3612637686a7ca3f551 100644
--- a/IO/Legacy/vtkTreeWriter.h
+++ b/IO/Legacy/vtkTreeWriter.h
@@ -28,6 +28,7 @@
 #include "vtkDataWriter.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTree;
 
 class VTKIOLEGACY_EXPORT vtkTreeWriter : public vtkDataWriter
@@ -60,4 +61,5 @@ private:
   void WriteEdges(ostream& Stream, vtkTree* Tree);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkUnstructuredGridReader.cxx b/IO/Legacy/vtkUnstructuredGridReader.cxx
index eb45c9171fabc770e5ccc61eba3445cda062421f..4c4d98ea544a37301022ef29ad2f7e06a7dad88a 100644
--- a/IO/Legacy/vtkUnstructuredGridReader.cxx
+++ b/IO/Legacy/vtkUnstructuredGridReader.cxx
@@ -26,6 +26,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnstructuredGridReader);
 
 #ifdef read
@@ -379,3 +380,4 @@ void vtkUnstructuredGridReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkUnstructuredGridReader.h b/IO/Legacy/vtkUnstructuredGridReader.h
index f8a11a06b0f8cb238f91d1064f229eb75a8ed291..902bf72f5a198c373fca27117f5332d4a46eb8e8 100644
--- a/IO/Legacy/vtkUnstructuredGridReader.h
+++ b/IO/Legacy/vtkUnstructuredGridReader.h
@@ -34,6 +34,7 @@
 #include "vtkDataReader.h"
 #include "vtkIOLegacyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGrid;
 
 class VTKIOLEGACY_EXPORT vtkUnstructuredGridReader : public vtkDataReader
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkUnstructuredGridReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Legacy/vtkUnstructuredGridWriter.cxx b/IO/Legacy/vtkUnstructuredGridWriter.cxx
index 1ee98db850743893d338117d1ec19d5fbeb2eac1..8d21274bdc9460cd93c053f3dd720627111dcf9b 100644
--- a/IO/Legacy/vtkUnstructuredGridWriter.cxx
+++ b/IO/Legacy/vtkUnstructuredGridWriter.cxx
@@ -33,6 +33,7 @@
 #include <io.h> /* unlink */
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnstructuredGridWriter);
 
 void vtkUnstructuredGridWriter::WriteData()
@@ -202,3 +203,4 @@ void vtkUnstructuredGridWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Legacy/vtkUnstructuredGridWriter.h b/IO/Legacy/vtkUnstructuredGridWriter.h
index 8a22986a3bd01cb3e916ac26a9a7db874b4f217d..dab9542f467e356b97a0567ae9ad3587d0d6d78c 100644
--- a/IO/Legacy/vtkUnstructuredGridWriter.h
+++ b/IO/Legacy/vtkUnstructuredGridWriter.h
@@ -27,6 +27,7 @@
 
 #include "vtkDataWriter.h"
 #include "vtkIOLegacyModule.h" // For export macro
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGridBase;
 
 class VTKIOLEGACY_EXPORT vtkUnstructuredGridWriter : public vtkDataWriter
@@ -59,4 +60,5 @@ private:
   void operator=(const vtkUnstructuredGridWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MINC/vtkMINCImageAttributes.cxx b/IO/MINC/vtkMINCImageAttributes.cxx
index a5e982df9b2328b371826d4fdbab245601ea9e73..43d72d1b9438d6174cc53754880875a527786ece 100644
--- a/IO/MINC/vtkMINCImageAttributes.cxx
+++ b/IO/MINC/vtkMINCImageAttributes.cxx
@@ -73,6 +73,7 @@ POSSIBILITY OF SUCH DAMAGES.
 
 //------------------------------------------------------------------------------
 // A container for mapping attribute names to arrays
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMINCImageAttributeMap
 {
 public:
@@ -1471,3 +1472,4 @@ void vtkMINCImageAttributes::ShallowCopy(vtkMINCImageAttributes* source)
     this->StringStore->Reset();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MINC/vtkMINCImageAttributes.h b/IO/MINC/vtkMINCImageAttributes.h
index c3ef62d55b40daaf4cda1d4743cb3860f83ffc68..82aa6603e9ff56e166511a127603b4bbca22206d 100644
--- a/IO/MINC/vtkMINCImageAttributes.h
+++ b/IO/MINC/vtkMINCImageAttributes.h
@@ -71,6 +71,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include "vtkIOMINCModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkStringArray;
 class vtkIdTypeArray;
@@ -317,4 +318,5 @@ private:
   void operator=(const vtkMINCImageAttributes&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkMINCImageAttributes_h */
diff --git a/IO/MINC/vtkMINCImageReader.cxx b/IO/MINC/vtkMINCImageReader.cxx
index f7da9fe3e541b37fe84cbdc84817ce25d776e6dc..a2a201f7a8814a845140e62bf0c6edea6d6f592a 100644
--- a/IO/MINC/vtkMINCImageReader.cxx
+++ b/IO/MINC/vtkMINCImageReader.cxx
@@ -81,6 +81,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #define VTK_MINC_MAX_DIMS 8
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMINCImageReader);
 
 //------------------------------------------------------------------------------
@@ -1360,3 +1361,4 @@ void vtkMINCImageReader::ExecuteDataWithInformation(vtkDataObject* output, vtkIn
 
   this->CloseNetCDFFile(ncid);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MINC/vtkMINCImageReader.h b/IO/MINC/vtkMINCImageReader.h
index c471f3da1d0ab302424a8fb41beac6b50f60b86e..1ff06f2819ebbc7921638dda98dcfa2a5e3a2648 100644
--- a/IO/MINC/vtkMINCImageReader.h
+++ b/IO/MINC/vtkMINCImageReader.h
@@ -74,6 +74,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include "vtkIOMINCModule.h" // For export macro
 #include "vtkImageReader2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 class vtkIdTypeArray;
 class vtkDoubleArray;
@@ -209,4 +210,5 @@ private:
   void operator=(const vtkMINCImageReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MINC/vtkMINCImageWriter.cxx b/IO/MINC/vtkMINCImageWriter.cxx
index f5284578fefb484552fe255b12c94f5385730dbf..6a0d4ee481cb7a2511cf892170560354dbc33a30 100644
--- a/IO/MINC/vtkMINCImageWriter.cxx
+++ b/IO/MINC/vtkMINCImageWriter.cxx
@@ -90,6 +90,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #define VTK_MINC_MAX_DIMS 8
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMINCImageWriter);
 
 vtkCxxSetObjectMacro(vtkMINCImageWriter, DirectionCosines, vtkMatrix4x4);
@@ -2106,3 +2107,4 @@ int vtkMINCImageWriter::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MINC/vtkMINCImageWriter.h b/IO/MINC/vtkMINCImageWriter.h
index 195ab1fb1fcf789dd102c8931eed9a36b70fd080..c1ce2baaf770ed69fc37e0e42b225681064b691f 100644
--- a/IO/MINC/vtkMINCImageWriter.h
+++ b/IO/MINC/vtkMINCImageWriter.h
@@ -71,6 +71,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include "vtkIOMINCModule.h" // For export macro
 #include "vtkImageWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 class vtkIdTypeArray;
 class vtkDoubleArray;
@@ -227,4 +228,5 @@ private:
   void operator=(const vtkMINCImageWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MINC/vtkMNIObjectReader.cxx b/IO/MINC/vtkMNIObjectReader.cxx
index 7be78113bbbf1571068d3e15abc5c282d9dfce31..8fe63a28a709a62129a845cd3f877925a7603ed3 100644
--- a/IO/MINC/vtkMNIObjectReader.cxx
+++ b/IO/MINC/vtkMNIObjectReader.cxx
@@ -78,6 +78,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMNIObjectReader);
 
 #define VTK_MNIOBJ_LINE_LENGTH 256
@@ -851,3 +852,4 @@ int vtkMNIObjectReader::RequestData(vtkInformation* vtkNotUsed(request),
   // read the file
   return this->ReadFile(output);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MINC/vtkMNIObjectReader.h b/IO/MINC/vtkMNIObjectReader.h
index f6adc7f8f2b3ae1aab8ced574d8f695668e87c15..2aa5563f9dae0940bb2affc0e409dc24296e4c7e 100644
--- a/IO/MINC/vtkMNIObjectReader.h
+++ b/IO/MINC/vtkMNIObjectReader.h
@@ -68,6 +68,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include "vtkIOMINCModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProperty;
 class vtkPolyData;
 class vtkFloatArray;
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkMNIObjectReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MINC/vtkMNIObjectWriter.cxx b/IO/MINC/vtkMNIObjectWriter.cxx
index 496abfcba7573d1c44151ccfd70bb69758827777..1f93df6e2723fcadc440be273ab5b3048a2d808a 100644
--- a/IO/MINC/vtkMNIObjectWriter.cxx
+++ b/IO/MINC/vtkMNIObjectWriter.cxx
@@ -77,6 +77,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMNIObjectWriter);
 
 vtkCxxSetObjectMacro(vtkMNIObjectWriter, Property, vtkProperty);
@@ -1053,3 +1054,4 @@ void vtkMNIObjectWriter::CloseFile(ostream* fp)
 
   delete fp;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MINC/vtkMNIObjectWriter.h b/IO/MINC/vtkMNIObjectWriter.h
index bce17610851933e16c9a7da126ebe79c6980a8c9..00d6cf8a561dcbb0d110887acbb08c63b0e3b9f6 100644
--- a/IO/MINC/vtkMNIObjectWriter.h
+++ b/IO/MINC/vtkMNIObjectWriter.h
@@ -68,6 +68,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include "vtkIOMINCModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMapper;
 class vtkProperty;
 class vtkLookupTable;
@@ -189,4 +190,5 @@ private:
   void operator=(const vtkMNIObjectWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MINC/vtkMNITagPointReader.cxx b/IO/MINC/vtkMNITagPointReader.cxx
index 5e4f0aa7249e59681686cc5cf446e39659c28056..03a5ec8115346cdddb0eb73c2636af292d75f356 100644
--- a/IO/MINC/vtkMNITagPointReader.cxx
+++ b/IO/MINC/vtkMNITagPointReader.cxx
@@ -70,6 +70,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include <vtksys/SystemTools.hxx>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMNITagPointReader);
 
 //------------------------------------------------------------------------------
@@ -717,3 +718,4 @@ int vtkMNITagPointReader::RequestData(vtkInformation* vtkNotUsed(request),
   // read the file
   return this->ReadFile(output1, output2);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MINC/vtkMNITagPointReader.h b/IO/MINC/vtkMNITagPointReader.h
index b2ac545b7f05a141bcaf50f2df57544ec8a297de..b9f06eb196578c7ce4137912d53bad9850b52548 100644
--- a/IO/MINC/vtkMNITagPointReader.h
+++ b/IO/MINC/vtkMNITagPointReader.h
@@ -68,6 +68,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include "vtkIOMINCModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkPoints;
 class vtkStringArray;
@@ -186,4 +187,5 @@ private:
   void operator=(const vtkMNITagPointReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MINC/vtkMNITagPointWriter.cxx b/IO/MINC/vtkMNITagPointWriter.cxx
index 1c81514ceb9d38c5000ead478e61ec15b6f73996..bff5b82e18286721137e1a0324173d440f75ad46 100644
--- a/IO/MINC/vtkMNITagPointWriter.cxx
+++ b/IO/MINC/vtkMNITagPointWriter.cxx
@@ -73,6 +73,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMNITagPointWriter);
 
 vtkCxxSetObjectMacro(vtkMNITagPointWriter, LabelText, vtkStringArray);
@@ -547,3 +548,4 @@ void vtkMNITagPointWriter::CloseFile(ostream* fp)
 
   delete fp;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MINC/vtkMNITagPointWriter.h b/IO/MINC/vtkMNITagPointWriter.h
index 158c5f07635c643ba9a7b5afbc264855b0e768ec..f31c67c9379730b86439c459f45665f96d759ed0 100644
--- a/IO/MINC/vtkMNITagPointWriter.h
+++ b/IO/MINC/vtkMNITagPointWriter.h
@@ -68,6 +68,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include "vtkIOMINCModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkPointSet;
 class vtkStringArray;
@@ -195,4 +196,5 @@ private:
   void operator=(const vtkMNITagPointWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MINC/vtkMNITransformReader.cxx b/IO/MINC/vtkMNITransformReader.cxx
index ed68e291265fdf5a241144cc70530d31acabc17b..3ba6a5e1821a5e2a78bb9c31a72054a5d947bfb4 100644
--- a/IO/MINC/vtkMNITransformReader.cxx
+++ b/IO/MINC/vtkMNITransformReader.cxx
@@ -72,6 +72,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include <vtksys/SystemTools.hxx>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMNITransformReader);
 
 //------------------------------------------------------------------------------
@@ -996,3 +997,4 @@ const char* vtkMNITransformReader::GetComments()
 
   return this->Comments;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MINC/vtkMNITransformReader.h b/IO/MINC/vtkMNITransformReader.h
index e5964e5516a929b7cc48f9c22eb21ca42a12d5b1..a6c8d9596f1835614e475abbecff1533af122995 100644
--- a/IO/MINC/vtkMNITransformReader.h
+++ b/IO/MINC/vtkMNITransformReader.h
@@ -67,6 +67,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include "vtkAlgorithm.h"
 #include "vtkIOMINCModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractTransform;
 class vtkDoubleArray;
 class vtkCollection;
@@ -160,4 +161,5 @@ private:
   void operator=(const vtkMNITransformReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MINC/vtkMNITransformWriter.cxx b/IO/MINC/vtkMNITransformWriter.cxx
index 50816cb8d9223e20e40c9f7c8253eadf2f7f8b32..915c99f0c9a5203a7f0dd27dbdc147bb4899766a 100644
--- a/IO/MINC/vtkMNITransformWriter.cxx
+++ b/IO/MINC/vtkMNITransformWriter.cxx
@@ -77,6 +77,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include <vtksys/SystemTools.hxx>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMNITransformWriter);
 
 //------------------------------------------------------------------------------
@@ -576,3 +577,4 @@ void vtkMNITransformWriter::AddTransform(vtkAbstractTransform* transform)
     this->Modified();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MINC/vtkMNITransformWriter.h b/IO/MINC/vtkMNITransformWriter.h
index a58fef75580f104c777c0c27988fbf6fbad469d5..4b7cd6ac2bc74894055b799fa5fa77dd97cdcf61 100644
--- a/IO/MINC/vtkMNITransformWriter.h
+++ b/IO/MINC/vtkMNITransformWriter.h
@@ -67,6 +67,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include "vtkAlgorithm.h"
 #include "vtkIOMINCModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractTransform;
 class vtkHomogeneousTransform;
 class vtkThinPlateSplineTransform;
@@ -157,4 +158,5 @@ private:
   void operator=(const vtkMNITransformWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MPIImage/vtkMPIImageReader.cxx b/IO/MPIImage/vtkMPIImageReader.cxx
index ffa097d263a419d7336bf6040a878a0f6a2479f3..d47b0ea4e8b92ddb014c74c6151b4ef60b3e45f8 100644
--- a/IO/MPIImage/vtkMPIImageReader.cxx
+++ b/IO/MPIImage/vtkMPIImageReader.cxx
@@ -75,6 +75,7 @@
 #endif // VTK_USE_MPI_IO
 
 //=============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMPIImageReader);
 
 vtkCxxSetObjectMacro(vtkMPIImageReader, Controller, vtkMultiProcessController);
@@ -519,3 +520,4 @@ void vtkMPIImageReader::ExecuteDataWithInformation(vtkDataObject* output, vtkInf
   this->Superclass::ExecuteDataWithInformation(output, outInfo);
 #endif // VTK_USE_MPI_IO
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MPIImage/vtkMPIImageReader.h b/IO/MPIImage/vtkMPIImageReader.h
index 6465481fb43e43f6b79fef04be4748c178ed3301..42bec73dbbd3f3e6305e7c7666d8eaa752a2487c 100644
--- a/IO/MPIImage/vtkMPIImageReader.h
+++ b/IO/MPIImage/vtkMPIImageReader.h
@@ -51,6 +51,7 @@
 #include "vtkIOMPIImageModule.h" // For export macro
 #include "vtkImageReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMPIOpaqueFileHandle;
 class vtkMultiProcessController;
 
@@ -132,4 +133,5 @@ private:
   void operator=(const vtkMPIImageReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkMPIImageReader_h
diff --git a/IO/MPIImage/vtkPNrrdReader.cxx b/IO/MPIImage/vtkPNrrdReader.cxx
index 6488d90ee153bd53d53b872beb9c253f3d106c7f..6cb8ffe09cdc50f416875793ef6e1e6fbd380129 100644
--- a/IO/MPIImage/vtkPNrrdReader.cxx
+++ b/IO/MPIImage/vtkPNrrdReader.cxx
@@ -90,6 +90,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPNrrdReader);
 vtkCxxSetObjectMacro(vtkPNrrdReader, Controller, vtkMultiProcessController);
 vtkCxxSetObjectMacro(vtkPNrrdReader, GroupedController, vtkMultiProcessController);
@@ -561,3 +562,4 @@ int vtkPNrrdReader::ReadHeader(vtkCharArray* headerBuffer)
 {
   return this->Superclass::ReadHeader(headerBuffer);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MPIImage/vtkPNrrdReader.h b/IO/MPIImage/vtkPNrrdReader.h
index 928f9d0fb09ea22d58b921e83667c6bc0e4c1b23..e55d9ef448bad685b6cf407165fda366e1655e3e 100644
--- a/IO/MPIImage/vtkPNrrdReader.h
+++ b/IO/MPIImage/vtkPNrrdReader.h
@@ -43,6 +43,7 @@
 #include "vtkIOMPIImageModule.h" // For export macro
 #include "vtkNrrdReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCharArray;
 class vtkMultiProcessController;
 class vtkMPIOpaqueFileHandle;
@@ -128,4 +129,5 @@ private:
   void operator=(const vtkPNrrdReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPNrrdReader_h
diff --git a/IO/MPIParallel/vtkMPIMultiBlockPLOT3DReader.cxx b/IO/MPIParallel/vtkMPIMultiBlockPLOT3DReader.cxx
index 4af94ca1f9a4aa56a4f028e165bc4a29fa97a23c..1df4053fecbe06e47f10e0fe7ce121be1eca0fa2 100644
--- a/IO/MPIParallel/vtkMPIMultiBlockPLOT3DReader.cxx
+++ b/IO/MPIParallel/vtkMPIMultiBlockPLOT3DReader.cxx
@@ -35,6 +35,7 @@
     static MPI_Datatype type() { return mpitype; }                                                 \
   };
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 template <class T>
@@ -324,3 +325,4 @@ void vtkMPIMultiBlockPLOT3DReader::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "UseMPIIO: " << this->UseMPIIO << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MPIParallel/vtkMPIMultiBlockPLOT3DReader.h b/IO/MPIParallel/vtkMPIMultiBlockPLOT3DReader.h
index 59e0a43a02ce328c561629d0ac98ae12ed9a21f2..915b3bfa47ed57fdc7f6545e268cde385d011429 100644
--- a/IO/MPIParallel/vtkMPIMultiBlockPLOT3DReader.h
+++ b/IO/MPIParallel/vtkMPIMultiBlockPLOT3DReader.h
@@ -28,6 +28,7 @@
 #include "vtkIOMPIParallelModule.h" // For export macro
 #include "vtkMultiBlockPLOT3DReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOMPIPARALLEL_EXPORT vtkMPIMultiBlockPLOT3DReader : public vtkMultiBlockPLOT3DReader
 {
 public:
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkMPIMultiBlockPLOT3DReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MPIParallel/vtkPWindBladeReader.cxx b/IO/MPIParallel/vtkPWindBladeReader.cxx
index ea70ee277eb3aafb9499816f9f26aa93fd48ddc3..1c69d969f946709013c702fe200f8e83e5c110f0 100644
--- a/IO/MPIParallel/vtkPWindBladeReader.cxx
+++ b/IO/MPIParallel/vtkPWindBladeReader.cxx
@@ -30,6 +30,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPWindBladeReader);
 
 // This macro can be wrapped around MPI function calls to easily report errors.
@@ -584,3 +585,4 @@ void vtkPWindBladeReader::LoadBladeData(int timeStep)
 
   this->ReadBladeData(inStr);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MPIParallel/vtkPWindBladeReader.h b/IO/MPIParallel/vtkPWindBladeReader.h
index 833e15f4d7f4cda5f4059e3278192bee140ef864..9a64c9a2b882dcc987c083fdb9c7d687f91c5624 100644
--- a/IO/MPIParallel/vtkPWindBladeReader.h
+++ b/IO/MPIParallel/vtkPWindBladeReader.h
@@ -34,6 +34,7 @@
 #include "vtkIOMPIParallelModule.h" // For export macro
 #include "vtkWindBladeReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class PWindBladeReaderInternal;
 
 class VTKIOMPIPARALLEL_EXPORT vtkPWindBladeReader : public vtkWindBladeReader
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkPWindBladeReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MotionFX/vtkMotionFXCFGGrammar.h b/IO/MotionFX/vtkMotionFXCFGGrammar.h
index dba137386bbe036b66bb102f4cb314ff1a9ce7d6..0603fc7d9da74270f6df8667acea99667a171b23 100644
--- a/IO/MotionFX/vtkMotionFXCFGGrammar.h
+++ b/IO/MotionFX/vtkMotionFXCFGGrammar.h
@@ -34,6 +34,7 @@ using namespace tao::pegtl;
 // lets define some common rules here.
 namespace Common
 {
+VTK_ABI_NAMESPACE_BEGIN
 struct Sign : sor<one<'+'>, one<'-'>>
 {
 };
@@ -52,6 +53,7 @@ struct Number
 struct Delimiter : sor<seq<star<space>, one<','>, star<space>>, plus<space>>
 {
 };
+VTK_ABI_NAMESPACE_END
 } // namespace Common
 
 //-----------------------------------------------------------------------------
@@ -59,6 +61,7 @@ struct Delimiter : sor<seq<star<space>, one<','>, star<space>>, plus<space>>
 // format.
 namespace LegacyPositionFile
 {
+VTK_ABI_NAMESPACE_BEGIN
 using namespace Common;
 
 // format: time CoMx CoMy CoMz Fx Fy Fz
@@ -71,12 +74,14 @@ struct Row
 struct Grammar : star<Row>
 {
 };
+VTK_ABI_NAMESPACE_END
 } // namespace LegacyPositionFile
 
 //-----------------------------------------------------------------------------
 // rules for parsing a position file in orientations formation.
 namespace OrientationsPositionFile
 {
+VTK_ABI_NAMESPACE_BEGIN
 using namespace Common;
 
 // format: time CoMx CoMy CoMz cosX cosY cosZ Orientation (radians)
@@ -89,12 +94,14 @@ struct Row
 struct Grammar : star<Row>
 {
 };
+VTK_ABI_NAMESPACE_END
 } // namespace OrientationsPositionFile
 
 //-----------------------------------------------------------------------------
 // rules for parsing a universal transform file
 namespace UniversalTransformRow
 {
+VTK_ABI_NAMESPACE_BEGIN
 using namespace Common;
 
 // format: time
@@ -113,12 +120,14 @@ struct Row
 struct Grammar : star<Row>
 {
 };
+VTK_ABI_NAMESPACE_END
 } // namespace UniversalTransformRow
 
 //-----------------------------------------------------------------------------
 // rules to parse CFG file.
 namespace CFG
 {
+VTK_ABI_NAMESPACE_BEGIN
 using namespace Common;
 
 // Rule that matches a Comment. Consume everything on the line following a ';'
@@ -171,8 +180,8 @@ struct Grammar : star<Lines>
 {
 };
 
+VTK_ABI_NAMESPACE_END
 } // namespace CFG
-
 } // namespace MotionFX
 
 #endif
diff --git a/IO/MotionFX/vtkMotionFXCFGReader.cxx b/IO/MotionFX/vtkMotionFXCFGReader.cxx
index 338aa736e6fe486652a95896e783c70b0fb42462..98e4e1529b1dc49c517ee9f617758e958dde2048 100644
--- a/IO/MotionFX/vtkMotionFXCFGReader.cxx
+++ b/IO/MotionFX/vtkMotionFXCFGReader.cxx
@@ -50,6 +50,7 @@
 //=============================================================================
 namespace impl
 {
+VTK_ABI_NAMESPACE_BEGIN
 struct Motion;
 
 using MapOfVectorOfMotions =
@@ -935,6 +936,7 @@ std::shared_ptr<const Motion> CreateMotion(const MapType& params)
 
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
 }
 
 //=============================================================================
@@ -947,6 +949,7 @@ using namespace tao::pegtl;
 // OrientationsPositionFile::Grammar
 namespace PositionFile
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename Rule>
 struct action : nothing<Rule>
 {
@@ -1001,12 +1004,14 @@ struct action<MotionFX::OrientationsPositionFile::Row>
     active_numbers.clear();
   }
 };
+VTK_ABI_NAMESPACE_END
 } // namespace PositionFile
 
 //-----------------------------------------------------------------------------
 // actions when parsing UniversalTransformRow::Grammar
 namespace UniversalTransformFile
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename Rule>
 struct action : nothing<Rule>
 {
@@ -1041,12 +1046,14 @@ struct action<MotionFX::UniversalTransformRow::Row>
     active_numbers.clear();
   }
 };
+VTK_ABI_NAMESPACE_END
 } // namespace UniversalTransformSpace
 
 //-----------------------------------------------------------------------------
 // actions when parsing CFG::Grammar
 namespace CFG
 {
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 // When parsing CFG, we need to accumulate values and keep track of them.
 // Value and ActiveState help us do that.
@@ -1187,12 +1194,14 @@ struct action<MotionFX::CFG::Grammar>
   }
 };
 
+VTK_ABI_NAMESPACE_END
 } // namespace CFG
 
 } // namespace Actions
 
 namespace impl
 {
+VTK_ABI_NAMESPACE_BEGIN
 bool PositionFileMotion::read_position_file(const std::string& rootDir) const
 {
   // read positionFile.
@@ -1239,8 +1248,10 @@ bool UniversalTransformMotion::read_universaltransform_file(const std::string& r
   }
   return false;
 }
+VTK_ABI_NAMESPACE_END
 } // impl
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMotionFXCFGReader::vtkInternals
 {
 public:
@@ -1511,3 +1522,4 @@ void vtkMotionFXCFGReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "FileName: " << this->FileName << endl;
   os << indent << "TimeResolution: " << this->TimeResolution << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MotionFX/vtkMotionFXCFGReader.h b/IO/MotionFX/vtkMotionFXCFGReader.h
index 9af994882c33b76c2cee62f45cdfa1948b5104f9..b9169c20d17c76b20c7d0ecb30169706782473fd 100644
--- a/IO/MotionFX/vtkMotionFXCFGReader.h
+++ b/IO/MotionFX/vtkMotionFXCFGReader.h
@@ -36,6 +36,7 @@
  * The reader uses PEGTL (https://github.com/taocpp/PEGTL)
  * to define and parse the grammar for the CFG file.
  */
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOMOTIONFX_EXPORT vtkMotionFXCFGReader : public vtkMultiBlockDataSetAlgorithm
 {
 public:
@@ -87,4 +88,5 @@ private:
   vtkInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Movie/vtkAVIWriter.cxx b/IO/Movie/vtkAVIWriter.cxx
index cd3a6d59587598a6a8b97077baec75a25ca737ff..5f5ce7cb70b32fdcb9d3b9062a53ecabc0e92919 100644
--- a/IO/Movie/vtkAVIWriter.cxx
+++ b/IO/Movie/vtkAVIWriter.cxx
@@ -32,6 +32,7 @@
 #pragma warning(pop)
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAVIWriterInternal
 {
 public:
@@ -293,3 +294,4 @@ void vtkAVIWriter::PrintSelf(ostream& os, vtkIndent indent)
      << "CompressorFourCC: " << (this->CompressorFourCC ? this->CompressorFourCC : "(None)")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Movie/vtkAVIWriter.h b/IO/Movie/vtkAVIWriter.h
index 1df1997a05a1cd30fe01e905b6b9728ae0b9301c..7c811c7d7d6daa750a3e905b1b94ef64ae9c6cec 100644
--- a/IO/Movie/vtkAVIWriter.h
+++ b/IO/Movie/vtkAVIWriter.h
@@ -29,6 +29,7 @@
 #include "vtkGenericMovieWriter.h"
 #include "vtkIOMovieModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAVIWriterInternal;
 
 class VTKIOMOVIE_EXPORT vtkAVIWriter : public vtkGenericMovieWriter
@@ -117,4 +118,5 @@ private:
   void operator=(const vtkAVIWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Movie/vtkGenericMovieWriter.cxx b/IO/Movie/vtkGenericMovieWriter.cxx
index 7c30a21c457e61809f7463fe24f27100d1ff0059..11e51471b388690cc82d1bf5b6c6ecb3a3f0efd5 100644
--- a/IO/Movie/vtkGenericMovieWriter.cxx
+++ b/IO/Movie/vtkGenericMovieWriter.cxx
@@ -18,6 +18,7 @@
 #include "vtkImageData.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkGenericMovieWriter::vtkGenericMovieWriter()
 {
   this->FileName = nullptr;
@@ -73,3 +74,4 @@ const char* vtkGenericMovieWriter::GetStringFromErrorCode(unsigned long error)
     return "Unknown Error";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Movie/vtkGenericMovieWriter.h b/IO/Movie/vtkGenericMovieWriter.h
index c9e6afa2ab80ae2cdb1bf2f1c35f0514390cd13d..45fff78c8b8926e16178d70b292ea8a1d9f0d595 100644
--- a/IO/Movie/vtkGenericMovieWriter.h
+++ b/IO/Movie/vtkGenericMovieWriter.h
@@ -31,6 +31,7 @@
 #include "vtkIOMovieModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKIOMOVIE_EXPORT vtkGenericMovieWriter : public vtkImageAlgorithm
@@ -91,4 +92,5 @@ private:
   void operator=(const vtkGenericMovieWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Movie/vtkMP4Writer.cxx b/IO/Movie/vtkMP4Writer.cxx
index 964aa8640d119798ee449023e4fe0493b885029d..7c358f98b7364868a9a179c21bbe03553c88c289 100644
--- a/IO/Movie/vtkMP4Writer.cxx
+++ b/IO/Movie/vtkMP4Writer.cxx
@@ -28,6 +28,7 @@
 #include <mferror.h>
 #include <mfreadwrite.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMP4Writer::vtkMP4WriterInternals
 {
 public:
@@ -398,3 +399,4 @@ void vtkMP4Writer::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Rate: " << this->Rate << endl;
   os << indent << "BitRate: " << this->BitRate << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Movie/vtkMP4Writer.h b/IO/Movie/vtkMP4Writer.h
index b66faddb9eda50ae2da1014e09792c2ccd5784fa..2a764637f4744957c353adfad5f42f5668ca9d6e 100644
--- a/IO/Movie/vtkMP4Writer.h
+++ b/IO/Movie/vtkMP4Writer.h
@@ -31,6 +31,7 @@
 #include "vtkGenericMovieWriter.h"
 #include "vtkIOMovieModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOMOVIE_EXPORT vtkMP4Writer : public vtkGenericMovieWriter
 {
 public:
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkMP4Writer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MySQL/vtkIOMySQL_AutoInit.cxx b/IO/MySQL/vtkIOMySQL_AutoInit.cxx
index 371eee62a6babdd5c847f59572a4e343ce2a7bee..0737d8652d41fce4f4fe31a0c78a660e7572b55b 100644
--- a/IO/MySQL/vtkIOMySQL_AutoInit.cxx
+++ b/IO/MySQL/vtkIOMySQL_AutoInit.cxx
@@ -20,6 +20,7 @@
 #include <string>
 
 // Registration of MySQL dynamically with the vtkSQLDatabase factory method.
+VTK_ABI_NAMESPACE_BEGIN
 vtkSQLDatabase* MySQLCreateFunction(const char* URL)
 {
   std::string urlstr(URL ? URL : "");
@@ -44,3 +45,4 @@ VTKIOMYSQL_EXPORT void vtkIOMySQL_AutoInit_Construct()
     vtkSQLDatabase::RegisterCreateFromURLCallback(MySQLCreateFunction);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MySQL/vtkMySQLDatabase.cxx b/IO/MySQL/vtkMySQLDatabase.cxx
index cb203877699d7673e00cec4fc7a93289fdc34cab..5bfeb58bb21e653074c31f699db17634b94a09b6 100644
--- a/IO/MySQL/vtkMySQLDatabase.cxx
+++ b/IO/MySQL/vtkMySQLDatabase.cxx
@@ -33,6 +33,7 @@
 
 #define VTK_MYSQL_DEFAULT_PORT 3306
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMySQLDatabase);
 
 //------------------------------------------------------------------------------
@@ -633,3 +634,4 @@ bool vtkMySQLDatabase::DropDatabase(const char* dbName)
   }
   return status;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MySQL/vtkMySQLDatabase.h b/IO/MySQL/vtkMySQLDatabase.h
index ff405d50fa3586554dfcaa10c43e5134a5a3147f..3a06c197f6312fcbfeedcaafa0a73cdf068e047b 100644
--- a/IO/MySQL/vtkMySQLDatabase.h
+++ b/IO/MySQL/vtkMySQLDatabase.h
@@ -39,6 +39,7 @@
 #include "vtkIOMySQLModule.h" // For export macro
 #include "vtkSQLDatabase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLQuery;
 class vtkMySQLQuery;
 class vtkStringArray;
@@ -243,4 +244,5 @@ private:
   void operator=(const vtkMySQLDatabase&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkMySQLDatabase_h
diff --git a/IO/MySQL/vtkMySQLDatabasePrivate.h b/IO/MySQL/vtkMySQLDatabasePrivate.h
index ce360bab0f942ff8916043a35e24b034b7acbaf8..9bafb60064f924e45af340a1a88b6399d95e7b25 100644
--- a/IO/MySQL/vtkMySQLDatabasePrivate.h
+++ b/IO/MySQL/vtkMySQLDatabasePrivate.h
@@ -8,6 +8,7 @@
 #include "vtkIOMySQLModule.h" // For export macro
 #include <mysql.h>            // needed for MYSQL typedefs
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOMYSQL_EXPORT vtkMySQLDatabasePrivate
 {
 public:
@@ -21,5 +22,6 @@ public:
   MYSQL* Connection;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkMySQLDatabasePrivate_h
 // VTK-HeaderTest-Exclude: vtkMySQLDatabasePrivate.h
diff --git a/IO/MySQL/vtkMySQLQuery.cxx b/IO/MySQL/vtkMySQLQuery.cxx
index 18f3bf0af7624b77dc52eedf4c29ccb532328895..b2edb1fb3be7d3545db2a7f489d5ed54497fa4dc 100644
--- a/IO/MySQL/vtkMySQLQuery.cxx
+++ b/IO/MySQL/vtkMySQLQuery.cxx
@@ -66,6 +66,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMySQLBoundParameter
 {
 public:
@@ -1117,3 +1118,4 @@ bool vtkMySQLQuery::ClearParameterBindings()
   this->Internals->FreeBoundParameters();
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MySQL/vtkMySQLQuery.h b/IO/MySQL/vtkMySQLQuery.h
index 5291fb1c0da9254a77dfc40ee795ec56c2463067..b3f84c7c7ec882735e1cf4ac4dc646f46a95427e 100644
--- a/IO/MySQL/vtkMySQLQuery.h
+++ b/IO/MySQL/vtkMySQLQuery.h
@@ -39,6 +39,7 @@
 #include "vtkIOMySQLModule.h" // For export macro
 #include "vtkSQLQuery.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMySQLDatabase;
 class vtkVariant;
 class vtkVariantArray;
@@ -180,4 +181,5 @@ private:
   char* LastErrorText;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkMySQLQuery_h
diff --git a/IO/MySQL/vtkMySQLToTableReader.cxx b/IO/MySQL/vtkMySQLToTableReader.cxx
index d9ef5548393fe02eec2eb36dcabc7f626dec0a20..d92637fff0a405c579b69f2e8a654d6d77988ac9 100644
--- a/IO/MySQL/vtkMySQLToTableReader.cxx
+++ b/IO/MySQL/vtkMySQLToTableReader.cxx
@@ -27,6 +27,7 @@
 #include "vtkMySQLToTableReader.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMySQLToTableReader);
 
 //------------------------------------------------------------------------------
@@ -156,3 +157,4 @@ void vtkMySQLToTableReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MySQL/vtkMySQLToTableReader.h b/IO/MySQL/vtkMySQLToTableReader.h
index 7a82e49ecc61ae81d782c598e8b37eec64dbf6a6..46d6b8c19f039883941320a64a6b675472b78ffb 100644
--- a/IO/MySQL/vtkMySQLToTableReader.h
+++ b/IO/MySQL/vtkMySQLToTableReader.h
@@ -26,6 +26,7 @@
 #include "vtkDatabaseToTableReader.h"
 #include "vtkIOMySQLModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMySQLDatabase;
 
 class VTKIOMYSQL_EXPORT vtkMySQLToTableReader : public vtkDatabaseToTableReader
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkMySQLToTableReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/MySQL/vtkTableToMySQLWriter.cxx b/IO/MySQL/vtkTableToMySQLWriter.cxx
index cb78c4def204dd1bd2d74a0dcb1004c539979743..3b34e1acc022ae08087020d4b92b241109823c70 100644
--- a/IO/MySQL/vtkTableToMySQLWriter.cxx
+++ b/IO/MySQL/vtkTableToMySQLWriter.cxx
@@ -24,6 +24,7 @@
 #include "vtkTableToMySQLWriter.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTableToMySQLWriter);
 
 //------------------------------------------------------------------------------
@@ -163,3 +164,4 @@ void vtkTableToMySQLWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/MySQL/vtkTableToMySQLWriter.h b/IO/MySQL/vtkTableToMySQLWriter.h
index 015709f7f145bbe4ae959f06820b15a948db2729..cb759fa39783d6815d3f5a24e90d59c55df4c6cc 100644
--- a/IO/MySQL/vtkTableToMySQLWriter.h
+++ b/IO/MySQL/vtkTableToMySQLWriter.h
@@ -26,6 +26,7 @@
 #include "vtkIOMySQLModule.h" // For export macro
 #include "vtkTableToDatabaseWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMySQLDatabase;
 
 class VTKIOMYSQL_EXPORT vtkTableToMySQLWriter : public vtkTableToDatabaseWriter
@@ -55,4 +56,5 @@ private:
   void operator=(const vtkTableToMySQLWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/NetCDF/vtkMPASReader.cxx b/IO/NetCDF/vtkMPASReader.cxx
index a0429d60a66a506b6c1075de3d83a6a54c89efeb..557ed23068b4f9649cc2ffd0a136f56b14e9ccfa 100644
--- a/IO/NetCDF/vtkMPASReader.cxx
+++ b/IO/NetCDF/vtkMPASReader.cxx
@@ -120,6 +120,7 @@ PURPOSE.  See the above copyright notice for more information.
     }                                                                                              \
   } while (false)
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -3049,3 +3050,4 @@ int vtkMPASReader::GetNumberOfPointVars()
 {
   return static_cast<int>(this->Internals->pointVars.size());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/NetCDF/vtkMPASReader.h b/IO/NetCDF/vtkMPASReader.h
index 7c237c1d9d478526c786ff83ff27a11384d68601..e9c00e879ed6c222b5e50a32a598e487490a6957 100644
--- a/IO/NetCDF/vtkMPASReader.h
+++ b/IO/NetCDF/vtkMPASReader.h
@@ -82,6 +82,7 @@ version available from Los Alamos National Laboratory.
 
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkDataArraySelection;
 class vtkDoubleArray;
@@ -351,4 +352,5 @@ private:
   Internal* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/NetCDF/vtkNetCDFCAMReader.cxx b/IO/NetCDF/vtkNetCDFCAMReader.cxx
index 563a7d06e13c5975c203d5638f692513df7c4728..10454e6dd1cabbdbd4668e54e01aec937fe7e053 100644
--- a/IO/NetCDF/vtkNetCDFCAMReader.cxx
+++ b/IO/NetCDF/vtkNetCDFCAMReader.cxx
@@ -37,6 +37,7 @@
 #include <vector>
 #include <vtk_netcdf.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // determine if this is a cell that wraps from 360 to 0 (i.e. if it's
@@ -1277,3 +1278,4 @@ void vtkNetCDFCAMReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "PointsFile: " << this->Internals->nc_points << endl;
   os << indent << "ConnectivityFile: " << this->Internals->nc_connectivity << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/NetCDF/vtkNetCDFCAMReader.h b/IO/NetCDF/vtkNetCDFCAMReader.h
index 8a08abc40cbcc55e8369f6d147dc68f83919d785..3015ab33c0138da4e58d41e0f82e912b8f2115f3 100644
--- a/IO/NetCDF/vtkNetCDFCAMReader.h
+++ b/IO/NetCDF/vtkNetCDFCAMReader.h
@@ -31,6 +31,7 @@
 #include "vtkIONetCDFModule.h" // For export macro
 #include "vtkUnstructuredGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkDataArraySelection;
 
@@ -178,4 +179,5 @@ private:
   Internal* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/NetCDF/vtkNetCDFCFReader.cxx b/IO/NetCDF/vtkNetCDFCFReader.cxx
index 5c13f424bc74b377ec39d1e07100eff2f9233923..c56a61a90a6cdd8d57baa9d19c02ed210eea6cae 100644
--- a/IO/NetCDF/vtkNetCDFCFReader.cxx
+++ b/IO/NetCDF/vtkNetCDFCFReader.cxx
@@ -76,6 +76,7 @@
 //=============================================================================
 // Convenience function for getting the text attribute on a variable.  Returns
 // true if the attribute exists, false otherwise.
+VTK_ABI_NAMESPACE_BEGIN
 static bool ReadTextAttribute(int ncFD, int varId, const char* name, std::string& result)
 {
   size_t length;
@@ -2070,3 +2071,4 @@ bool vtkNetCDFCFReader::DimensionsAreForPointData(vtkIntArray* dimensions)
       return true;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/NetCDF/vtkNetCDFCFReader.h b/IO/NetCDF/vtkNetCDFCFReader.h
index 8f835e52d4c59b2da0cdf46d806ded99b54124f2..daadd2e51f4b339fd96fb34b4cc96d933fd2f8df 100644
--- a/IO/NetCDF/vtkNetCDFCFReader.h
+++ b/IO/NetCDF/vtkNetCDFCFReader.h
@@ -38,6 +38,7 @@
 
 #include "vtkStdString.h" // Used for ivars.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkPoints;
 class vtkRectilinearGrid;
@@ -307,4 +308,5 @@ private:
   void operator=(const vtkNetCDFCFReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkNetCDFCFReader_h
diff --git a/IO/NetCDF/vtkNetCDFCFWriter.cxx b/IO/NetCDF/vtkNetCDFCFWriter.cxx
index 84255b5a295467ae1aeb823176dfb0278518cbfa..7356b22d1b4cdfb23002e1a6b01b508b3174be4a 100644
--- a/IO/NetCDF/vtkNetCDFCFWriter.cxx
+++ b/IO/NetCDF/vtkNetCDFCFWriter.cxx
@@ -34,6 +34,7 @@
 #include "vtk_libproj.h"
 #include "vtk_netcdf.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 std::array<std::string, 3> COORD_NAME = { { "x", "y", "z" } };
@@ -770,3 +771,4 @@ void vtkNetCDFCFWriter::AddGridMappingAttribute(const char* name, double value)
   }
   this->Impl->DoubleAttributes[name] = value;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/NetCDF/vtkNetCDFCFWriter.h b/IO/NetCDF/vtkNetCDFCFWriter.h
index 1a565b933e769b4ece7ca5cea851557ae5f8f589..4b867a3d01f16aa375af5c64d87e76dc002cd840 100644
--- a/IO/NetCDF/vtkNetCDFCFWriter.h
+++ b/IO/NetCDF/vtkNetCDFCFWriter.h
@@ -19,6 +19,7 @@
 #include "vtkIONetCDFModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDataSet;
 class vtkImageData;
@@ -129,4 +130,5 @@ private:
   void operator=(const vtkNetCDFCFWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/NetCDF/vtkNetCDFPOPReader.cxx b/IO/NetCDF/vtkNetCDFPOPReader.cxx
index 708c6dff2c6ef0619fe82b5d6f4e13d9e8a60b10..ad6b5c2f796961ca1ca96acc24cf6b729167f3b4 100644
--- a/IO/NetCDF/vtkNetCDFPOPReader.cxx
+++ b/IO/NetCDF/vtkNetCDFPOPReader.cxx
@@ -29,6 +29,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkNetCDFPOPReader);
 
 //============================================================================
@@ -358,3 +359,4 @@ void vtkNetCDFPOPReader::SetVariableArrayStatus(const char* name, int status)
     this->Modified();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/NetCDF/vtkNetCDFPOPReader.h b/IO/NetCDF/vtkNetCDFPOPReader.h
index 2a9f1f342d6764d3806f3612c1bd2710806f9d19..8ee5298c5a9d077c18bdad00b707ea6f768225d6 100644
--- a/IO/NetCDF/vtkNetCDFPOPReader.h
+++ b/IO/NetCDF/vtkNetCDFPOPReader.h
@@ -34,6 +34,7 @@
 #include "vtkIONetCDFModule.h" // For export macro
 #include "vtkRectilinearGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkCallbackCommand;
 class vtkNetCDFPOPReaderInternal;
@@ -108,4 +109,5 @@ private:
 
   vtkNetCDFPOPReaderInternal* Internals;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/NetCDF/vtkNetCDFReader.cxx b/IO/NetCDF/vtkNetCDFReader.cxx
index 9b20bd6b7922439634a76ed71c27beeb1d2cc5f3..48e3142d6dca35431e2da6b11263d7cff7724058 100644
--- a/IO/NetCDF/vtkNetCDFReader.cxx
+++ b/IO/NetCDF/vtkNetCDFReader.cxx
@@ -75,6 +75,7 @@
 
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkNetCDFReaderPrivate
 {
 public:
@@ -956,3 +957,4 @@ std::string vtkNetCDFReader::QueryArrayUnits(const char* name)
 {
   return this->Private->ArrayUnits[name];
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/NetCDF/vtkNetCDFReader.h b/IO/NetCDF/vtkNetCDFReader.h
index c6f67db755ba7007671d7649af6219258ae1b5aa..63e2eaf5211ed54c49dfe7d4b4e02e804ff4b7f1 100644
--- a/IO/NetCDF/vtkNetCDFReader.h
+++ b/IO/NetCDF/vtkNetCDFReader.h
@@ -40,6 +40,7 @@
 #include "vtkSmartPointer.h" // For ivars
 #include <string>            //For std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkDataSet;
 class vtkDoubleArray;
@@ -266,4 +267,5 @@ private:
   vtkNetCDFReaderPrivate* Private;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkNetCDFReader_h
diff --git a/IO/NetCDF/vtkSLACParticleReader.cxx b/IO/NetCDF/vtkSLACParticleReader.cxx
index 324cc4f2a25585143142a0ca1db859fcad9674a1..096a729d1a20e4451a08932439de2af0cd9af42e 100644
--- a/IO/NetCDF/vtkSLACParticleReader.cxx
+++ b/IO/NetCDF/vtkSLACParticleReader.cxx
@@ -73,6 +73,7 @@
 #define nc_get_vars_vtkIdType nc_get_vars_longlong
 #endif
 #else  // NC_INT64
+VTK_ABI_NAMESPACE_BEGIN
 static int nc_get_vars_vtkIdType(int ncid, int varid, const size_t start[], const size_t count[],
   const ptrdiff_t stride[], vtkIdType* ip)
 {
@@ -101,6 +102,7 @@ static int nc_get_vars_vtkIdType(int ncid, int varid, const size_t start[], cons
 
   return NC_NOERR;
 }
+VTK_ABI_NAMESPACE_END
 #endif // NC_INT64
 #else  // VTK_USE_64_BIT_IDS
 #define nc_get_vars_vtkIdType nc_get_vars_int
@@ -128,6 +130,7 @@ static int nc_get_vars_vtkIdType(int ncid, int varid, const size_t start[], cons
 // This class automatically closes a netCDF file descriptor when it goes out
 // of scope.  This allows us to exit on error without having to close the
 // file at every instance.
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSLACParticleReaderAutoCloseNetCDF
 {
 public:
@@ -353,3 +356,4 @@ int vtkSLACParticleReader::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/NetCDF/vtkSLACParticleReader.h b/IO/NetCDF/vtkSLACParticleReader.h
index e47ab0541c94e3a01fa8a3875ab58e6c52825669..f7a0e6139e9bda64ca4afe2ac8409bdf29c59e5e 100644
--- a/IO/NetCDF/vtkSLACParticleReader.h
+++ b/IO/NetCDF/vtkSLACParticleReader.h
@@ -41,6 +41,7 @@
 #include "vtkIONetCDFModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkIdTypeArray;
 class vtkInformationIntegerKey;
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkSLACParticleReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSLACParticleReader_h
diff --git a/IO/NetCDF/vtkSLACReader.cxx b/IO/NetCDF/vtkSLACReader.cxx
index 58d1aac2fb9e5c519d78bc601ae66a02cf6c7095..06ea0422ab4a1eb1f4a1c11b383fcfadb21881c4 100644
--- a/IO/NetCDF/vtkSLACReader.cxx
+++ b/IO/NetCDF/vtkSLACReader.cxx
@@ -93,6 +93,7 @@
 //#define nc_get_var_vtkIdType nc_get_var_longlong
 //#define nc_get_vars_vtkIdType nc_get_vars_longlong
 //#else // NC_INT64
+VTK_ABI_NAMESPACE_BEGIN
 static int nc_get_var_vtkIdType(int ncid, int varid, vtkIdType* ip)
 {
   // Step 1, figure out how many entries in the given variable.
@@ -151,6 +152,7 @@ static int nc_get_vars_vtkIdType(int ncid, int varid, const size_t start[], cons
 
   return NC_NOERR;
 }
+VTK_ABI_NAMESPACE_END
 //#endif // NC_INT64
 #else // VTK_USE_64_BIT_IDS
 #define nc_get_var_vtkIdType nc_get_var_int
@@ -160,6 +162,7 @@ static int nc_get_vars_vtkIdType(int ncid, int varid, const size_t start[], cons
 //------------------------------------------------------------------------------
 // This convenience function gets a scalar variable as a double, doing the
 // appropriate checks.
+VTK_ABI_NAMESPACE_BEGIN
 static int nc_get_scalar_double(int ncid, const char* name, double* dp)
 {
   int varid;
@@ -1776,3 +1779,4 @@ int vtkSLACReader::RestoreMeshCache(vtkMultiBlockDataSet* surfaceOutput,
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/NetCDF/vtkSLACReader.h b/IO/NetCDF/vtkSLACReader.h
index fa046ac5766a43741912efd1ef933b84d13a47c2..9100d022af728b664ac7ee422df86784d26fcf4e 100644
--- a/IO/NetCDF/vtkSLACReader.h
+++ b/IO/NetCDF/vtkSLACReader.h
@@ -40,6 +40,7 @@
 
 #include "vtkSmartPointer.h" // For internal method.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkDoubleArray;
 class vtkIdTypeArray;
@@ -444,4 +445,5 @@ private:
   void operator=(const vtkSLACReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSLACReader_h
diff --git a/IO/OCCT/vtkOCCTReader.cxx b/IO/OCCT/vtkOCCTReader.cxx
index 1183dce53ac30d3c56739c7631dd71700b13f21a..021183a172a5867a1bcff5645b64d44f49e8bbe2 100644
--- a/IO/OCCT/vtkOCCTReader.cxx
+++ b/IO/OCCT/vtkOCCTReader.cxx
@@ -76,6 +76,8 @@ All rights reserved.
 #include <unordered_map>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkOCCTReader::vtkInternals
 {
 public:
@@ -524,3 +526,4 @@ void vtkOCCTReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ReadWire: " << (this->ReadWire ? "true" : "false") << "\n";
   os << indent << "FileFormat: " << (this->FileFormat == Format::STEP ? "STEP" : "IGES") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/OCCT/vtkOCCTReader.h b/IO/OCCT/vtkOCCTReader.h
index f2f9c03e609db77c32cc9fea6af04f5e92c5e9aa..44b20e7ad33c1c8d18e3833ab9e7cd15cb031973 100644
--- a/IO/OCCT/vtkOCCTReader.h
+++ b/IO/OCCT/vtkOCCTReader.h
@@ -46,6 +46,8 @@ All rights reserved.
 
 #include <memory> // For std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkInformationDoubleVectorKey;
 
 class VTKIOOCCT_EXPORT vtkOCCTReader : public vtkMultiBlockDataSetAlgorithm
@@ -140,4 +142,5 @@ private:
   char* FileName = nullptr;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ODBC/vtkIOODBC_AutoInit.cxx b/IO/ODBC/vtkIOODBC_AutoInit.cxx
index 92709fd4ce23beedbd70f5ce0e74f62d6b87291c..7989fe9608058e4dff634d7fb84e330881e9503d 100644
--- a/IO/ODBC/vtkIOODBC_AutoInit.cxx
+++ b/IO/ODBC/vtkIOODBC_AutoInit.cxx
@@ -20,6 +20,7 @@
 #include <string>
 
 // Registration of ODBC dynamically with the vtkSQLDatabase factory method.
+VTK_ABI_NAMESPACE_BEGIN
 vtkSQLDatabase* ODBCCreateFunction(const char* URL)
 {
   std::string urlstr(URL ? URL : "");
@@ -44,3 +45,4 @@ VTKIOODBC_EXPORT void vtkIOODBC_AutoInit_Construct()
     vtkSQLDatabase::RegisterCreateFromURLCallback(ODBCCreateFunction);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ODBC/vtkODBCDatabase.cxx b/IO/ODBC/vtkODBCDatabase.cxx
index f9a16d4d08d5a8ec41471552d6909d37f245b883..854a4b3f710f116746f6923ccbd0b34777e4af84 100644
--- a/IO/ODBC/vtkODBCDatabase.cxx
+++ b/IO/ODBC/vtkODBCDatabase.cxx
@@ -48,6 +48,7 @@
 #include <sqlext.h>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkODBCDatabase);
 
 //------------------------------------------------------------------------------
@@ -890,3 +891,4 @@ bool vtkODBCDatabase::DropDatabase(const char* dbName)
   query->Delete();
   return status;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ODBC/vtkODBCDatabase.h b/IO/ODBC/vtkODBCDatabase.h
index e064e05fa5c566f1458d575b8d655641bc5b9960..2d53914642dea4cfd73fed46fd3d40716a593b74 100644
--- a/IO/ODBC/vtkODBCDatabase.h
+++ b/IO/ODBC/vtkODBCDatabase.h
@@ -75,6 +75,7 @@
 #include "vtkIOODBCModule.h" // For export macro
 #include "vtkSQLDatabase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLQuery;
 class vtkODBCQuery;
 class vtkStringArray;
@@ -227,4 +228,5 @@ private:
   void operator=(const vtkODBCDatabase&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkODBCDatabase_h
diff --git a/IO/ODBC/vtkODBCInternals.h b/IO/ODBC/vtkODBCInternals.h
index 890981b24c318bdfdb92ea2fcad65680ccce78fc..477a1ad8604cb1d2fda3c19dce64a12f869803e9 100644
--- a/IO/ODBC/vtkODBCInternals.h
+++ b/IO/ODBC/vtkODBCInternals.h
@@ -33,6 +33,7 @@
 
 #include <sql.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkODBCInternals
 {
   friend class vtkODBCDatabase;
@@ -50,5 +51,6 @@ private:
   SQLHANDLE Connection;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkODBCInternals.h
diff --git a/IO/ODBC/vtkODBCQuery.cxx b/IO/ODBC/vtkODBCQuery.cxx
index db850abd1fbff2b22801185504794680a1c60ca6..7fb4b86962d4b6a7d3663b09d110ca02b907c59c 100644
--- a/IO/ODBC/vtkODBCQuery.cxx
+++ b/IO/ODBC/vtkODBCQuery.cxx
@@ -44,6 +44,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkODBCQuery);
 
 static std::string GetErrorMessage(SQLSMALLINT handleType, SQLHANDLE handle, int* code = nullptr);
@@ -1715,3 +1716,4 @@ bool vtkODBCQuery::ClearParameterBindings()
   this->Internals->ClearBoundParameters();
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ODBC/vtkODBCQuery.h b/IO/ODBC/vtkODBCQuery.h
index bf6aca50727039fbe25a2a87fb1ec27ae897735e..2f0c5ad71041ead1b181fced9def0ef355ce98af 100644
--- a/IO/ODBC/vtkODBCQuery.h
+++ b/IO/ODBC/vtkODBCQuery.h
@@ -39,6 +39,7 @@
 #include "vtkIOODBCModule.h" // For export macro
 #include "vtkSQLQuery.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkODBCDatabase;
 class vtkVariant;
 class vtkVariantArray;
@@ -197,4 +198,5 @@ private:
   char* LastErrorText;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkODBCQuery_h
diff --git a/IO/OMF/core/OMFElement.cxx b/IO/OMF/core/OMFElement.cxx
index 0f5f03d3de93e36f02553bdab76978ba0b9dd9ee..4386c9400532c7bb020552a1ac0250b5796cd492 100644
--- a/IO/OMF/core/OMFElement.cxx
+++ b/IO/OMF/core/OMFElement.cxx
@@ -131,6 +131,7 @@ bool setFieldDataArray(vtkAbstractArray* array, vtkPartitionedDataSet* output,
 }
 
 } // end anon namespace
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 ProjectElement::ProjectElement(const std::string& uid, double globalOrigin[3])
@@ -616,4 +617,5 @@ void VolumeElement::ProcessGeometry(
   output->SetPartition(0, sgrid);
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace omf
diff --git a/IO/OMF/core/OMFElement.h b/IO/OMF/core/OMFElement.h
index 065616ee0ff801a378a01b74c10274649591b527..aa4cad1cb3f824bcdea6aef06fecabb5c77e574e 100644
--- a/IO/OMF/core/OMFElement.h
+++ b/IO/OMF/core/OMFElement.h
@@ -23,12 +23,15 @@
 #include <memory>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPartitionedDataSet;
 class vtkPartitionedDataSetCollection;
 class vtkTexture;
+VTK_ABI_NAMESPACE_END
 
 namespace omf
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 struct OMFFile;
 
@@ -110,6 +113,7 @@ protected:
   size_t Dimensions[3];
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace omf
 
 #endif // OMFElement_h
diff --git a/IO/OMF/core/OMFFile.cxx b/IO/OMF/core/OMFFile.cxx
index d4f71036cefa9d8f904307f031bcb6d73422b734..f2b74199fd2ccfcc3812496668da1da4844353f4 100644
--- a/IO/OMF/core/OMFFile.cxx
+++ b/IO/OMF/core/OMFFile.cxx
@@ -32,9 +32,9 @@
 
 namespace omf
 {
-
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // OMF doesn't appear to store any information about size of decompressed data
 // so the approach here is to decompress into the correct vtk array type and
@@ -118,8 +118,10 @@ std::string convertToUIDString(const char* buffer)
   return vtksys::SystemTools::LowerCase(uid);
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace detail
 
+VTK_ABI_NAMESPACE_BEGIN
 struct OMFFile::FileImpl
 {
   std::string FileName;
@@ -390,4 +392,5 @@ std::vector<std::string> OMFFile::ReadStringArrayFromStream(const std::string& u
   return retVal;
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace omf
diff --git a/IO/OMF/core/OMFFile.h b/IO/OMF/core/OMFFile.h
index 34d5721d37250b0d35989b1b9a45cdebbe1303c6..15fd6f37ae3c5394a470d5f39dbd48c1465f9a42 100644
--- a/IO/OMF/core/OMFFile.h
+++ b/IO/OMF/core/OMFFile.h
@@ -24,11 +24,14 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkImageData;
+VTK_ABI_NAMESPACE_END
 
 namespace omf
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 struct OMFFile
 {
@@ -56,5 +59,6 @@ private:
   std::unique_ptr<FileImpl> Impl;
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace omf
 #endif
diff --git a/IO/OMF/core/OMFHelpers.cxx b/IO/OMF/core/OMFHelpers.cxx
index fd2962a2d7bd82889c79330a3b41d6ab877bb2f1..5e132b0ac7b37033bfe3921012c16159c2bbb216 100644
--- a/IO/OMF/core/OMFHelpers.cxx
+++ b/IO/OMF/core/OMFHelpers.cxx
@@ -24,6 +24,7 @@ namespace omf
 {
 namespace helper
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 void PrintMemberNames(const Json::Value& root)
@@ -211,5 +212,6 @@ bool GetDoubleArray(const Json::Value& root, std::vector<double>& value)
   return true;
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace helper
 } // end namespace omf
diff --git a/IO/OMF/core/OMFHelpers.h b/IO/OMF/core/OMFHelpers.h
index 7aac0f8d6af662fea046ee92433c1a4827bffaf0..10b13e97cd5fd6e5ef6843f9a47406671e96468c 100644
--- a/IO/OMF/core/OMFHelpers.h
+++ b/IO/OMF/core/OMFHelpers.h
@@ -16,6 +16,8 @@
 #ifndef OMFHelpers_h
 #define OMFHelpers_h
 
+#include "vtkABINamespace.h"
+
 #include "vtk_jsoncpp_fwd.h" // For Json fwd declaration
 
 #include <string>
@@ -25,6 +27,7 @@ namespace omf
 {
 namespace helper
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 /**
  * print names of members of root. Just used for debugging
@@ -81,6 +84,7 @@ bool GetFloatArray(const Json::Value& root, std::vector<float>& value);
  */
 bool GetDoubleArray(const Json::Value& root, std::vector<double>& value);
 
+VTK_ABI_NAMESPACE_END
 } // end namespace helper
 } // end namespace omf
 
diff --git a/IO/OMF/core/OMFProject.cxx b/IO/OMF/core/OMFProject.cxx
index 2ec9a8a74db463b10846e6370be01ef518d7ebfd..b3248c35e2e0140e00184986a6036d7a17a21e34 100644
--- a/IO/OMF/core/OMFProject.cxx
+++ b/IO/OMF/core/OMFProject.cxx
@@ -62,6 +62,7 @@ ElementTypes getElementTypeFromSubtype(const Json::Value& json)
 }
 
 } // end anon namespace
+VTK_ABI_NAMESPACE_BEGIN
 
 struct OMFProject::ProjectImpl
 {
@@ -283,4 +284,5 @@ bool OMFProject::ProcessJSON(vtkPartitionedDataSetCollection* output,
   return true;
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace omf
diff --git a/IO/OMF/core/OMFProject.h b/IO/OMF/core/OMFProject.h
index 4f16e4f3782a63cebb0a1087186185bc501f29b5..97621afdd4c603fb4634e12649372be9ded9b2f0 100644
--- a/IO/OMF/core/OMFProject.h
+++ b/IO/OMF/core/OMFProject.h
@@ -17,13 +17,18 @@
 #ifndef OMFProject_h
 #define OMFProject_h
 
+#include "vtkABINamespace.h"
+
 #include <memory> // for std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkPartitionedDataSetCollection;
+VTK_ABI_NAMESPACE_END
 
 namespace omf
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 class OMFProject
 {
@@ -50,6 +55,7 @@ private:
   std::unique_ptr<ProjectImpl> Impl;
 };
 
+VTK_ABI_NAMESPACE_END
 } // end namespace omf
 
 #endif
diff --git a/IO/OMF/vtkOMFReader.cxx b/IO/OMF/vtkOMFReader.cxx
index 7a229eca522666e50e34c24cb042f18455ebe940..8294444578f69fbcc7191843e2e61a1fa07414ff 100644
--- a/IO/OMF/vtkOMFReader.cxx
+++ b/IO/OMF/vtkOMFReader.cxx
@@ -27,6 +27,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOMFReader);
 
 struct vtkOMFReader::ReaderImpl
@@ -162,3 +163,4 @@ void vtkOMFReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/OMF/vtkOMFReader.h b/IO/OMF/vtkOMFReader.h
index 1c9418d404fc2e2de1bb4210adf55feb5d38d901..77e529215df221c6f566c80c6a5e9add42a4f31b 100644
--- a/IO/OMF/vtkOMFReader.h
+++ b/IO/OMF/vtkOMFReader.h
@@ -19,6 +19,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkIOOMFModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkStringArray;
 
@@ -112,4 +113,5 @@ private:
   ReaderImpl* Impl;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/OggTheora/vtkOggTheoraWriter.cxx b/IO/OggTheora/vtkOggTheoraWriter.cxx
index 8d30ff441728683f9c6fd7ef764e852cbbecbf3b..58d83891c6d11d2c5b41ca19c1b941db6d5eab6a 100644
--- a/IO/OggTheora/vtkOggTheoraWriter.cxx
+++ b/IO/OggTheora/vtkOggTheoraWriter.cxx
@@ -25,6 +25,7 @@
 #include <ctime>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOggTheoraWriterInternal
 {
 public:
@@ -589,3 +590,4 @@ void vtkOggTheoraWriter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Rate: " << this->Rate << endl;
   os << indent << "Subsampling: " << this->Subsampling << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/OggTheora/vtkOggTheoraWriter.h b/IO/OggTheora/vtkOggTheoraWriter.h
index e29b62ae738f0e791f5dd047888f48a08b19e27f..c2509210f239e478654c3fe6105bc9310615b517 100644
--- a/IO/OggTheora/vtkOggTheoraWriter.h
+++ b/IO/OggTheora/vtkOggTheoraWriter.h
@@ -32,6 +32,7 @@
 #include "vtkGenericMovieWriter.h"
 #include "vtkIOOggTheoraModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOggTheoraWriterInternal;
 
 class VTKIOOGGTHEORA_EXPORT vtkOggTheoraWriter : public vtkGenericMovieWriter
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkOggTheoraWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/OpenVDB/vtkOpenVDBReader.cxx b/IO/OpenVDB/vtkOpenVDBReader.cxx
index 5b4b8d377975a0abc8201607da48a07f2dc1b42f..216bdcc5617b5832cc30a17432f1392854545f45 100644
--- a/IO/OpenVDB/vtkOpenVDBReader.cxx
+++ b/IO/OpenVDB/vtkOpenVDBReader.cxx
@@ -24,6 +24,7 @@
 #include <openvdb/openvdb.h>
 #include <openvdb/points/PointCount.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenVDBReader);
 
 //------------------------------------------------------------------------
@@ -1246,3 +1247,4 @@ void vtkOpenVDBReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "MergePointSets: " << this->MergePointSets << endl;
   this->GridSelection->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/OpenVDB/vtkOpenVDBReader.h b/IO/OpenVDB/vtkOpenVDBReader.h
index 790aebdaa09c6badbdb83736cb1243e2209ca080..0f504076c3efcfd33d73162292a49cb92b3d845a 100644
--- a/IO/OpenVDB/vtkOpenVDBReader.h
+++ b/IO/OpenVDB/vtkOpenVDBReader.h
@@ -32,6 +32,7 @@
 #include "vtkPartitionedDataSetCollectionAlgorithm.h"
 #include "vtkSmartPointer.h" // needed for smart pointers
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenVDBReaderInternals;
 
 class VTKIOOPENVDB_EXPORT vtkOpenVDBReader : public vtkPartitionedDataSetCollectionAlgorithm
@@ -176,4 +177,5 @@ private:
   std::unique_ptr<vtkOpenVDBReaderInternals> Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/OpenVDB/vtkOpenVDBWriter.cxx b/IO/OpenVDB/vtkOpenVDBWriter.cxx
index 80bef68789bd2bb870a394d25ea5a7754ca4c6aa..74f6858bc99dfa7aa069ba458f4787d29b447c30 100644
--- a/IO/OpenVDB/vtkOpenVDBWriter.cxx
+++ b/IO/OpenVDB/vtkOpenVDBWriter.cxx
@@ -43,6 +43,7 @@
 #include <openvdb/openvdb.h>
 #include <openvdb/points/PointConversion.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 std::string GetVDBGridName(const char* arrayName, int component, int numberOfComponents)
@@ -958,3 +959,4 @@ void vtkOpenVDBWriter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EnableColoring: " << this->EnableColoring << endl;
   os << indent << "EnableAlpha: " << this->EnableAlpha << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/OpenVDB/vtkOpenVDBWriter.h b/IO/OpenVDB/vtkOpenVDBWriter.h
index 014cdeb4f3d79647878d2e9221d83e01fda85ba8..2658ee6a63cb36a63c8e0189702a0ad27d7cd7cb 100644
--- a/IO/OpenVDB/vtkOpenVDBWriter.h
+++ b/IO/OpenVDB/vtkOpenVDBWriter.h
@@ -25,6 +25,7 @@
 #include "vtkSmartPointer.h"    // For protected ivars
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSetAttributes;
 class vtkImageData;
 class vtkMultiProcessController;
@@ -148,4 +149,5 @@ private:
   friend class vtkOpenVDBWriterInternals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/PDAL/vtkPDALReader.cxx b/IO/PDAL/vtkPDALReader.cxx
index fc40e867b6c3b8c1825bf8c86b858bf52ba99bcb..334f3004023e3fc56ebb9aa988b9316156393096 100644
--- a/IO/PDAL/vtkPDALReader.cxx
+++ b/IO/PDAL/vtkPDALReader.cxx
@@ -52,6 +52,7 @@
 #include <pdal/PointView.hpp>
 #include <pdal/StageFactory.hpp>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPDALReader);
 
 //------------------------------------------------------------------------------
@@ -400,3 +401,4 @@ void vtkPDALReader::PrintSelf(ostream& os, vtkIndent indent)
   os << "vtkPDALReader" << std::endl;
   os << "Filename: " << this->FileName << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PDAL/vtkPDALReader.h b/IO/PDAL/vtkPDALReader.h
index fc17008ab271b98c9441f86c399a8e8287c4c633..d6ab72ca00cdd9eaa11bb5e21c6e6f74d4e498e5 100644
--- a/IO/PDAL/vtkPDALReader.h
+++ b/IO/PDAL/vtkPDALReader.h
@@ -38,6 +38,8 @@ namespace pdal
 class Stage;
 };
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKIOPDAL_EXPORT vtkPDALReader : public vtkPolyDataAlgorithm
 {
 public:
@@ -71,4 +73,5 @@ protected:
   char* FileName;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPDALReader_h
diff --git a/IO/PIO/BHTree.cxx b/IO/PIO/BHTree.cxx
index cd846bd9b82b7c9f68b462574902507a3c1e3e67..cfbe19d71d0d6bd6a6878c64617fc17e664cc9eb 100644
--- a/IO/PIO/BHTree.cxx
+++ b/IO/PIO/BHTree.cxx
@@ -55,6 +55,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 //
 /////////////////////////////////////////////////////////////////////////
 
+VTK_ABI_NAMESPACE_BEGIN
 BHLeaf::BHLeaf()
 {
   for (int dim = 0; dim < MAX_DIM; dim++)
@@ -316,3 +317,4 @@ int BHTree::getChildIndex(BHNode* node, double* loc)
   }
   return index;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PIO/BHTree.h b/IO/PIO/BHTree.h
index 05939c1a4bdbb1ac8fa4a21a3f78e2b8101d1833..476132e6c4cfb1b2bfdc37d12db3fada445dfb99 100644
--- a/IO/PIO/BHTree.h
+++ b/IO/PIO/BHTree.h
@@ -61,8 +61,11 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #ifndef BHTree_h
 #define BHTree_h
 
+#include "vtkABINamespace.h"
+
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 const int MAX_DIM = 3;
 const int MAX_CHILD = 8;
 
@@ -141,4 +144,5 @@ private:
   std::vector<BHNode*> bhNode;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/PIO/PIOAdaptor.cxx b/IO/PIO/PIOAdaptor.cxx
index 9b5a1937e26a56bad09ae01de5335a3fcdd88c1a..2dff05f7c882add782b71b0f5002bc886c5eab5d 100644
--- a/IO/PIO/PIOAdaptor.cxx
+++ b/IO/PIO/PIOAdaptor.cxx
@@ -35,11 +35,16 @@
 #include <vtksys/FStream.hxx>
 
 #ifdef _WIN32
+VTK_ABI_NAMESPACE_BEGIN
 const static char* Slash = "\\/";
+VTK_ABI_NAMESPACE_END
 #else
+VTK_ABI_NAMESPACE_BEGIN
 const static char* Slash = "/";
+VTK_ABI_NAMESPACE_END
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 bool sort_desc(const std::pair<int, int>& a, const std::pair<int, int>& b)
@@ -2337,3 +2342,4 @@ void PIOAdaptor::add_amr_UG_scalar(vtkMultiBlockDataSet* grid, vtkStdString varN
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PIO/PIOAdaptor.h b/IO/PIO/PIOAdaptor.h
index dbccd11498287d9fd07a7bba31f3a50691fea93a..42f43987610f89361e7a5241551129b251143992 100644
--- a/IO/PIO/PIOAdaptor.h
+++ b/IO/PIO/PIOAdaptor.h
@@ -23,6 +23,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 // class to hold information about chunk/material variables
@@ -173,4 +174,5 @@ protected:
   AdaptorImpl* Impl;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/PIO/PIOData.cxx b/IO/PIO/PIOData.cxx
index 9d10493a1678e86eaee7a2912e480927eb75622b..de425f6f556a1600fb149f1c8c6504f1a1c0a593 100644
--- a/IO/PIO/PIOData.cxx
+++ b/IO/PIO/PIOData.cxx
@@ -3,6 +3,7 @@
 #include <iostream>
 #include <vtksys/FStream.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 PIO_DATA::PIO_DATA(const char* piofile, const std::list<std::string>* fields_to_read,
   bool _defer_read_data, const std::set<const char*, Cstring_less>* rdata,
   const std::set<const char*, Cstring_less>* cdata)
@@ -995,3 +996,4 @@ bool PIO_DATA::reconstruct_chunk_field(
   }
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PIO/PIOData.h b/IO/PIO/PIOData.h
index 98137f44c1ca30aec961e264ed4165b57176314f..8eddfb5b9270d7b09f240b40b24d9bfea8efe7b9 100644
--- a/IO/PIO/PIOData.h
+++ b/IO/PIO/PIOData.h
@@ -1,6 +1,8 @@
 #if !defined(_PIODATA_H)
 #define _PIODATA_H
 
+#include "vtkABINamespace.h"
+
 #include <fstream>
 #include <iostream>
 #include <list>
@@ -11,6 +13,7 @@
 #include <string>
 #include <valarray>
 
+VTK_ABI_NAMESPACE_BEGIN
 struct Cstring_less
 {
   bool operator()(const char* p, const char* q) const { return strcmp(p, q) < 0; };
@@ -242,4 +245,5 @@ enum
 // Prototypes
 bool GetPIOfileTime(const char*, double&);
 bool IsPIOfile(const char*);
+VTK_ABI_NAMESPACE_END
 #endif //! defined(_PIODATA_H)
diff --git a/IO/PIO/vtkPIOReader.cxx b/IO/PIO/vtkPIOReader.cxx
index b49204ec602bb85b71c314b2b82e80c91d0f60e9..7227176ea2f726640d01a6af7ec7c5cf4f7a9d35 100644
--- a/IO/PIO/vtkPIOReader.cxx
+++ b/IO/PIO/vtkPIOReader.cxx
@@ -36,6 +36,7 @@
 #include <iostream>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPIOReader);
 vtkCxxSetObjectMacro(vtkPIOReader, Controller, vtkMultiProcessController);
 
@@ -395,3 +396,4 @@ void vtkPIOReader::PrintSelf(ostream& os, vtkIndent indent)
 
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PIO/vtkPIOReader.h b/IO/PIO/vtkPIOReader.h
index a55bf2b452f2a31add345f6e99c3e10c1f4f8b98..2b2259275eea89dfc09be3c964c6acba5b2ca4e9 100644
--- a/IO/PIO/vtkPIOReader.h
+++ b/IO/PIO/vtkPIOReader.h
@@ -30,6 +30,7 @@
 #include "vtkMultiBlockDataSetAlgorithm.h"
 #include "vtkStdString.h" // for vtkStdString
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkDataArraySelection;
 class vtkFloatArray;
@@ -180,4 +181,5 @@ private:
   void operator=(const vtkPIOReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/PLY/vtkPLY.cxx b/IO/PLY/vtkPLY.cxx
index e40b1b7fe1b55fa70604022482316c7320a0957e..8b0d911fab64d82163b77e4bab4f5186be82edf9 100644
--- a/IO/PLY/vtkPLY.cxx
+++ b/IO/PLY/vtkPLY.cxx
@@ -64,6 +64,7 @@ WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 /* memory allocation */
 #define myalloc(mem_size) vtkPLY::my_alloc((mem_size), __LINE__, __FILE__)
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 const int LINE_LENGTH = 4096;
@@ -2775,3 +2776,4 @@ void* vtkPLY::my_alloc(size_t size, int lnum, const char* fname)
 
   return (ptr);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PLY/vtkPLY.h b/IO/PLY/vtkPLY.h
index fb4b943a5ac74e20543cd4be2da13d4bedde259c..2794dd973d0c82cc3438f44bce2c6104c3be4323 100644
--- a/IO/PLY/vtkPLY.h
+++ b/IO/PLY/vtkPLY.h
@@ -101,6 +101,7 @@ WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 #define PLY_SCALAR 0
 #define PLY_LIST 1
 
+VTK_ABI_NAMESPACE_BEGIN
 typedef struct PlyProperty
 { /* description of a property */
 
@@ -231,6 +232,7 @@ public:
   static int get_prop_type(const char*);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkPLY.h
diff --git a/IO/PLY/vtkPLYReader.cxx b/IO/PLY/vtkPLYReader.cxx
index 883fdd0c39e8b4e8dac1c678bd6402e785d914ba..09b67f2b5642f61740c1c3063c87079c844c7be8 100644
--- a/IO/PLY/vtkPLYReader.cxx
+++ b/IO/PLY/vtkPLYReader.cxx
@@ -40,6 +40,7 @@
 #include <cstddef>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPLYReader);
 
 namespace
@@ -652,3 +653,4 @@ void vtkPLYReader::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << this->Comments->GetValue(i) << "\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PLY/vtkPLYReader.h b/IO/PLY/vtkPLYReader.h
index 52f76d05388b81f037a1c9e10257370e6d6dc8f5..c2db7f9fd43db296e0a3f87cf796d4e828ab0006 100644
--- a/IO/PLY/vtkPLYReader.h
+++ b/IO/PLY/vtkPLYReader.h
@@ -44,6 +44,7 @@
 #include "vtkAbstractPolyDataReader.h"
 #include "vtkIOPLYModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 
 class VTKIOPLY_EXPORT vtkPLYReader : public vtkAbstractPolyDataReader
@@ -116,4 +117,5 @@ private:
   bool DuplicatePointsForFaceTexture;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/PLY/vtkPLYWriter.cxx b/IO/PLY/vtkPLYWriter.cxx
index 86dc9e4e46fff77655abe0719249979c367ee386..ff2731d0a0bee5ec97c1a53e24a1516af96c679a 100644
--- a/IO/PLY/vtkPLYWriter.cxx
+++ b/IO/PLY/vtkPLYWriter.cxx
@@ -29,6 +29,7 @@
 
 #include <cstddef>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPLYWriter);
 
 vtkCxxSetObjectMacro(vtkPLYWriter, LookupTable, vtkScalarsToColors);
@@ -513,3 +514,4 @@ int vtkPLYWriter::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPolyData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PLY/vtkPLYWriter.h b/IO/PLY/vtkPLYWriter.h
index edb7370765eda48742568464895e2287a58d7c18..8ce85e0c3771909fb2b995c9dbb1828fbeb4e089 100644
--- a/IO/PLY/vtkPLYWriter.h
+++ b/IO/PLY/vtkPLYWriter.h
@@ -44,6 +44,7 @@
 
 #include <string> // For string parameter
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSetAttributes;
 class vtkPolyData;
 class vtkScalarsToColors;
@@ -267,4 +268,5 @@ private:
   void operator=(const vtkPLYWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Parallel/vtkEnSightWriter.cxx b/IO/Parallel/vtkEnSightWriter.cxx
index d824888a78324b05bc8640b490872bc44ec8c49a..7143f56dae43a766bf1e91f95358e24c1ca3af48 100644
--- a/IO/Parallel/vtkEnSightWriter.cxx
+++ b/IO/Parallel/vtkEnSightWriter.cxx
@@ -78,6 +78,7 @@
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEnSightWriter);
 
 //------------------------------------------------------------------------------
@@ -1135,3 +1136,4 @@ void vtkEnSightWriter::ComputeNames()
 
   delete[] buf;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Parallel/vtkEnSightWriter.h b/IO/Parallel/vtkEnSightWriter.h
index ab6d7d14e2e9a4e1664819dc893ffccfbcdba4da..b582a1142c65805a5f7af2067f86c4888f102f44 100644
--- a/IO/Parallel/vtkEnSightWriter.h
+++ b/IO/Parallel/vtkEnSightWriter.h
@@ -36,6 +36,7 @@
 #include "vtkIOParallelModule.h" // For export macro
 #include "vtkWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGrid;
 
 class VTKIOPARALLEL_EXPORT vtkEnSightWriter : public vtkWriter
@@ -184,4 +185,5 @@ protected:
   void operator=(const vtkEnSightWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Parallel/vtkMultiBlockPLOT3DReader.cxx b/IO/Parallel/vtkMultiBlockPLOT3DReader.cxx
index 47c38ad68bc92ce14a676a317c11c03f6533b375..a150cf13e936e6bea57a1d38f630236a808aa096 100644
--- a/IO/Parallel/vtkMultiBlockPLOT3DReader.cxx
+++ b/IO/Parallel/vtkMultiBlockPLOT3DReader.cxx
@@ -46,9 +46,11 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkMultiBlockPLOT3DReader);
 vtkInformationKeyMacro(vtkMultiBlockPLOT3DReader, INTERMEDIATE_RESULT, Integer);
 vtkCxxSetObjectMacro(vtkMultiBlockPLOT3DReader, Controller, vtkMultiProcessController);
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -81,6 +83,7 @@ public:
 
 namespace Functors
 {
+VTK_ABI_NAMESPACE_BEGIN
 class ComputeFunctor
 {
 public:
@@ -1231,8 +1234,11 @@ public:
       { "Density", "Momentum", "Points", "Velocity" }, "StrainRate", 3);
   }
 };
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 template <class DataType>
 class vtkPLOT3DArrayReader
 {
@@ -3634,3 +3640,4 @@ void vtkMultiBlockPLOT3DReader::PrintSelf(ostream& os, vtkIndent indent)
      << "PreserveIntermediateFunctions: " << (this->PreserveIntermediateFunctions ? "on" : "off")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Parallel/vtkMultiBlockPLOT3DReader.h b/IO/Parallel/vtkMultiBlockPLOT3DReader.h
index 75aa49d4154a106703f9e26673934fdc948d705e..ffbae98865a7e12a13d5df6f9733a6bf70fc0ab6 100644
--- a/IO/Parallel/vtkMultiBlockPLOT3DReader.h
+++ b/IO/Parallel/vtkMultiBlockPLOT3DReader.h
@@ -91,6 +91,7 @@
 #include "vtkParallelReader.h"
 #include <vector> // For holding function-names
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkDataSetAttributes;
 class vtkIntArray;
@@ -100,9 +101,11 @@ class vtkStructuredGrid;
 class vtkUnsignedCharArray;
 struct vtkMultiBlockPLOT3DReaderInternals;
 class vtkMultiBlockDataSet;
+VTK_ABI_NAMESPACE_END
 
 namespace Functors
 {
+VTK_ABI_NAMESPACE_BEGIN
 class ComputeFunctor;
 class ComputeTemperatureFunctor;
 class ComputePressureFunctor;
@@ -119,8 +122,11 @@ class ComputeVorticityMagnitudeFunctor;
 class ComputePressureGradientFunctor;
 class ComputeVorticityFunctor;
 class ComputeStrainRateFunctor;
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKIOPARALLEL_EXPORT vtkMultiBlockPLOT3DReader : public vtkParallelReader
 {
   friend class Functors::ComputeFunctor;
@@ -525,4 +531,5 @@ private:
   void RemoveIntermediateFunctions(vtkDataSetAttributes* dsa);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Parallel/vtkMultiBlockPLOT3DReaderInternals.cxx b/IO/Parallel/vtkMultiBlockPLOT3DReaderInternals.cxx
index 446715101c075d9808b9f019eb85a6487db07fc4..6124b838ddaa56e3e7ce7cd55067ad1f01de7356 100644
--- a/IO/Parallel/vtkMultiBlockPLOT3DReaderInternals.cxx
+++ b/IO/Parallel/vtkMultiBlockPLOT3DReaderInternals.cxx
@@ -18,6 +18,7 @@
 #include "vtkMultiProcessController.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 int vtkMultiBlockPLOT3DReaderInternals::ReadInts(FILE* fp, int n, int* val)
 {
   int retVal = static_cast<int>(fread(val, sizeof(int), n, fp));
@@ -548,3 +549,4 @@ vtkTypeUInt64 vtkMultiBlockPLOT3DReaderRecord::GetLengthWithSeparators(
     vtkMultiBlockPLOT3DReaderRecord::SubRecordSeparatorWidth +
     length;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Parallel/vtkMultiBlockPLOT3DReaderInternals.h b/IO/Parallel/vtkMultiBlockPLOT3DReaderInternals.h
index 1f47d0a073e4102fdb298d459b69a45732b091be..a694571ab6063971fbd58e446fc97a59b29b8106 100644
--- a/IO/Parallel/vtkMultiBlockPLOT3DReaderInternals.h
+++ b/IO/Parallel/vtkMultiBlockPLOT3DReaderInternals.h
@@ -24,6 +24,7 @@
 #include <exception>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 #ifdef _WIN64
@@ -100,6 +101,7 @@ struct vtkMultiBlockPLOT3DReaderInternals
     postskip = nPtsInPlane * (wextent[5] - extent[5]);
   }
 };
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -108,6 +110,7 @@ class Plot3DException : public std::exception
 };
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 // Description:
 // vtkMultiBlockPLOT3DReaderRecord represents a data record in the file. For
 // binary Plot3D files with record separators (i.e. leading and trailing length
@@ -197,5 +200,6 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkMultiBlockPLOT3DReaderInternals.h
diff --git a/IO/Parallel/vtkPChacoReader.cxx b/IO/Parallel/vtkPChacoReader.cxx
index 9388689a38d75bffb500aa9a54b8869e0bb7385e..c8a85355b644aa303528f8c28c5a678ea98aefa6 100644
--- a/IO/Parallel/vtkPChacoReader.cxx
+++ b/IO/Parallel/vtkPChacoReader.cxx
@@ -36,6 +36,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPChacoReader);
 
 //------------------------------------------------------------------------------
@@ -543,3 +544,4 @@ void vtkPChacoReader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "NumProcesses: " << this->NumProcesses << endl;
   os << indent << "Controller: " << this->Controller << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Parallel/vtkPChacoReader.h b/IO/Parallel/vtkPChacoReader.h
index 2ddea4d310a63c5d6fb33f51fa8f828726eb58fd..791788078b7b3d37027a27a734324f1a57e199fa 100644
--- a/IO/Parallel/vtkPChacoReader.h
+++ b/IO/Parallel/vtkPChacoReader.h
@@ -33,6 +33,7 @@
 #include "vtkChacoReader.h"
 #include "vtkIOParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTimerLog;
 class vtkMultiProcessController;
 
@@ -76,4 +77,5 @@ private:
   vtkMultiProcessController* Controller;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Parallel/vtkPDataSetReader.cxx b/IO/Parallel/vtkPDataSetReader.cxx
index 66d9d99817424e3c6aa342a3c048562bc8c1c689..1815c6feb88c2904b17b3b6f8afb7c859780852b 100644
--- a/IO/Parallel/vtkPDataSetReader.cxx
+++ b/IO/Parallel/vtkPDataSetReader.cxx
@@ -39,6 +39,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPDataSetReader);
 
 //------------------------------------------------------------------------------
@@ -1253,3 +1254,4 @@ void vtkPDataSetReader::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "DataType: " << this->DataType << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Parallel/vtkPDataSetReader.h b/IO/Parallel/vtkPDataSetReader.h
index b865b419d4484d5d63a9d843236fd380cdf3e80d..200a30cad1a13cdead718284760bf829727b9bff 100644
--- a/IO/Parallel/vtkPDataSetReader.h
+++ b/IO/Parallel/vtkPDataSetReader.h
@@ -26,6 +26,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkIOParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKIOPARALLEL_EXPORT vtkPDataSetReader : public vtkDataSetAlgorithm
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkPDataSetReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Parallel/vtkPDataSetWriter.cxx b/IO/Parallel/vtkPDataSetWriter.cxx
index 3ac0ca993ef15d077ec0c909270fb298e247e574..1caa437c1ffdb79239373985b57f8a9a6e38218c 100644
--- a/IO/Parallel/vtkPDataSetWriter.cxx
+++ b/IO/Parallel/vtkPDataSetWriter.cxx
@@ -27,6 +27,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPDataSetWriter);
 
 vtkCxxSetObjectMacro(vtkPDataSetWriter, Controller, vtkMultiProcessController);
@@ -575,3 +576,4 @@ void vtkPDataSetWriter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "FilePattern: " << this->FilePattern << endl;
   os << indent << "UseRelativeFileNames: " << this->UseRelativeFileNames << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Parallel/vtkPDataSetWriter.h b/IO/Parallel/vtkPDataSetWriter.h
index 766a3992e27e4885948f92d1f9562c68d843ae86..a5c251f9bf89d7eab8ae52ea5fa9005f8490555f 100644
--- a/IO/Parallel/vtkPDataSetWriter.h
+++ b/IO/Parallel/vtkPDataSetWriter.h
@@ -29,6 +29,7 @@
 #include <map>    // for keeping track of extents
 #include <vector> // for keeping track of extents
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkRectilinearGrid;
 class vtkStructuredGrid;
@@ -141,4 +142,5 @@ private:
   void operator=(const vtkPDataSetWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Parallel/vtkPImageWriter.cxx b/IO/Parallel/vtkPImageWriter.cxx
index 2bbed5e1fd5f43373c99ae51ee9802efdbf98423..615e253d27aae874f45a6e2b866cfba6002c796b 100644
--- a/IO/Parallel/vtkPImageWriter.cxx
+++ b/IO/Parallel/vtkPImageWriter.cxx
@@ -37,6 +37,7 @@
     }                                                                                              \
   } while (false)
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPImageWriter);
 
 //------------------------------------------------------------------------------
@@ -208,3 +209,4 @@ void vtkPImageWriter::RecursiveWrite(
   // if we opened the file here, then we need to close it up
   vtkPIWCloseFile;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Parallel/vtkPImageWriter.h b/IO/Parallel/vtkPImageWriter.h
index d231dfd6a3b70547331c8bf200aac0f3c262a44c..714005a6ad3c472504ca44283b851095d84746ff 100644
--- a/IO/Parallel/vtkPImageWriter.h
+++ b/IO/Parallel/vtkPImageWriter.h
@@ -28,6 +28,7 @@
 
 #include "vtkIOParallelModule.h" // For export macro
 #include "vtkImageWriter.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPipelineSize;
 
 class VTKIOPARALLEL_EXPORT vtkPImageWriter : public vtkImageWriter
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkPImageWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Parallel/vtkPOpenFOAMReader.cxx b/IO/Parallel/vtkPOpenFOAMReader.cxx
index 2c50ec67064e452b53b9aa7b9b8b65ed53954fa5..9e776cdc8319cca5f15885ffeb5b4fc25a139af0 100644
--- a/IO/Parallel/vtkPOpenFOAMReader.cxx
+++ b/IO/Parallel/vtkPOpenFOAMReader.cxx
@@ -83,6 +83,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPOpenFOAMReader);
 vtkCxxSetObjectMacro(vtkPOpenFOAMReader, Controller, vtkMultiProcessController);
 
@@ -867,3 +868,4 @@ void vtkPOpenFOAMReader::AllGather(vtkDataArraySelection* s)
   }
   delete[] allContents;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Parallel/vtkPOpenFOAMReader.h b/IO/Parallel/vtkPOpenFOAMReader.h
index 5824bb128902be057a5581e79d71c4c1b66ec89c..81bc02338dbcd82cfed6bc6f979936420c2171a7 100644
--- a/IO/Parallel/vtkPOpenFOAMReader.h
+++ b/IO/Parallel/vtkPOpenFOAMReader.h
@@ -33,6 +33,7 @@
 #include "vtkIOParallelModule.h" // For export macro
 #include "vtkOpenFOAMReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkMultiProcessController;
 
@@ -89,4 +90,5 @@ private:
   void AllGather(vtkDataArraySelection*);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Parallel/vtkPlot3DMetaReader.cxx b/IO/Parallel/vtkPlot3DMetaReader.cxx
index 65f1fad401829934e21d3e5abbe51d8d82eca9b4..1321090f9c40113aae8cae3be134ca8179df9b00 100644
--- a/IO/Parallel/vtkPlot3DMetaReader.cxx
+++ b/IO/Parallel/vtkPlot3DMetaReader.cxx
@@ -33,6 +33,7 @@
 
 #define CALL_MEMBER_FN(object, ptrToMember) ((object).*(ptrToMember))
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlot3DMetaReader);
 
 typedef void (vtkPlot3DMetaReader::*Plot3DFunction)(Json::Value* val);
@@ -485,3 +486,4 @@ void vtkPlot3DMetaReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Parallel/vtkPlot3DMetaReader.h b/IO/Parallel/vtkPlot3DMetaReader.h
index 9fd0ccbd4d8f00c0369b517476fa4f048cce10a4..7eae01d35f403ad95692d34a983f0e519f761d4c 100644
--- a/IO/Parallel/vtkPlot3DMetaReader.h
+++ b/IO/Parallel/vtkPlot3DMetaReader.h
@@ -91,6 +91,7 @@
 
 #include "vtk_jsoncpp_fwd.h" // For forward declarations
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkPlot3DMetaReaderInternals;
 
 class vtkMultiBlockPLOT3DReader;
@@ -143,4 +144,5 @@ private:
   vtkPlot3DMetaReaderInternals* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelExodus/vtkPExodusIIReader.cxx b/IO/ParallelExodus/vtkPExodusIIReader.cxx
index b7ad54b531f13ce35d8c1293009199ad0098e784..9d55475ed3a8d23e81b7c46181bce68c303e6888 100644
--- a/IO/ParallelExodus/vtkPExodusIIReader.cxx
+++ b/IO/ParallelExodus/vtkPExodusIIReader.cxx
@@ -52,6 +52,7 @@
 #undef DBG_PEXOIIRDR
 #define vtkPExodusIIReaderMAXPATHLEN 2048
 
+VTK_ABI_NAMESPACE_BEGIN
 static const int objTypes[] = { vtkExodusIIReader::EDGE_BLOCK, vtkExodusIIReader::FACE_BLOCK,
   vtkExodusIIReader::ELEM_BLOCK, vtkExodusIIReader::NODE_SET, vtkExodusIIReader::EDGE_SET,
   vtkExodusIIReader::FACE_SET, vtkExodusIIReader::SIDE_SET, vtkExodusIIReader::ELEM_SET,
@@ -1468,3 +1469,4 @@ void vtkPExodusIIReader::Broadcast(vtkMultiProcessController* ctrl)
     ctrl->Broadcast(&this->NumberOfFiles, 1, 0);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelExodus/vtkPExodusIIReader.h b/IO/ParallelExodus/vtkPExodusIIReader.h
index 7fcb6d54e2a27653cdde3483a86a3f2bc8f1dfa2..40be1c232668e56aca03bbca430c5c9cf8760dd9 100644
--- a/IO/ParallelExodus/vtkPExodusIIReader.h
+++ b/IO/ParallelExodus/vtkPExodusIIReader.h
@@ -44,6 +44,7 @@
 
 #include <vector> // Required for vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTimerLog;
 class vtkMultiProcessController;
 
@@ -190,4 +191,5 @@ private:
   void operator=(const vtkPExodusIIReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelExodus/vtkPExodusIIWriter.cxx b/IO/ParallelExodus/vtkPExodusIIWriter.cxx
index f2fb234b4c108637676d6092d8be233672c87e90..050e408dcc1354e67ac962651e95492511abd768 100644
--- a/IO/ParallelExodus/vtkPExodusIIWriter.cxx
+++ b/IO/ParallelExodus/vtkPExodusIIWriter.cxx
@@ -45,6 +45,7 @@
 #include <cctype>
 #include <ctime>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPExodusIIWriter);
 
 //------------------------------------------------------------------------------
@@ -163,3 +164,4 @@ unsigned int vtkPExodusIIWriter::GetMaxNameLength()
   c->AllReduce(&maxName, &globalMaxName, 1, vtkCommunicator::MAX_OP);
   return maxName;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelExodus/vtkPExodusIIWriter.h b/IO/ParallelExodus/vtkPExodusIIWriter.h
index 529b66856fb5c01f3a7691bcd73852f1226b30d7..63e130d12c3a3b69c71eca50655d88adfa717c08 100644
--- a/IO/ParallelExodus/vtkPExodusIIWriter.h
+++ b/IO/ParallelExodus/vtkPExodusIIWriter.h
@@ -76,6 +76,7 @@
 #include <string> // STL Header
 #include <vector> // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkModelMetadata;
 class vtkDoubleArray;
 class vtkIntArray;
@@ -109,4 +110,5 @@ private:
   void operator=(const vtkPExodusIIWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelLSDyna/vtkPLSDynaReader.cxx b/IO/ParallelLSDyna/vtkPLSDynaReader.cxx
index 453e70c585b88e801296418f89db47d19753fd97..bdb56ddeaab58a537c846f55c51144bfa05c3a0a 100644
--- a/IO/ParallelLSDyna/vtkPLSDynaReader.cxx
+++ b/IO/ParallelLSDyna/vtkPLSDynaReader.cxx
@@ -37,6 +37,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPLSDynaReader);
 
 struct vtkPLSDynaReader::vtkPLSDynaReaderInternal
@@ -227,3 +228,4 @@ void vtkPLSDynaReader::GetPartRanges(vtkIdType* mins, vtkIdType* maxs)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelLSDyna/vtkPLSDynaReader.h b/IO/ParallelLSDyna/vtkPLSDynaReader.h
index ce6c04caf7a69e3ded90b93df7b983c4f45b299c..e2ae06fb29dbed99bcac66271b34b757d3d06c81 100644
--- a/IO/ParallelLSDyna/vtkPLSDynaReader.h
+++ b/IO/ParallelLSDyna/vtkPLSDynaReader.h
@@ -127,6 +127,7 @@
 #include "vtkIOParallelLSDynaModule.h" // For export macro
 #include "vtkLSDynaReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class VTKIOPARALLELLSDYNA_EXPORT vtkPLSDynaReader : public vtkLSDynaReader
 {
@@ -169,4 +170,5 @@ private:
   vtkPLSDynaReaderInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPLSDynaReader_h
diff --git a/IO/ParallelNetCDF/vtkPNetCDFPOPReader.cxx b/IO/ParallelNetCDF/vtkPNetCDFPOPReader.cxx
index 3b92b665160f9dad24ae825844a47d9169760690..fcab7a89432a5b5d70d37c9080cbd29cdd498ac4 100644
--- a/IO/ParallelNetCDF/vtkPNetCDFPOPReader.cxx
+++ b/IO/ParallelNetCDF/vtkPNetCDFPOPReader.cxx
@@ -38,6 +38,7 @@ PURPOSE.  See the above copyright notice for more information.
 #error MPI_Comm is #define'd somewhere!  That's BAD!  (Try checking netcdf.h.)
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPNetCDFPOPReader);
 
 //============================================================================
@@ -746,3 +747,4 @@ void vtkPNetCDFPOPReader::SetController(vtkMPIController* controller)
     this->SetReaderRanks(nullptr);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelNetCDF/vtkPNetCDFPOPReader.h b/IO/ParallelNetCDF/vtkPNetCDFPOPReader.h
index 9e11bb90d7b52d7b7ae4122ce2459d692aa1e342..524e61ddbd45da3b2b2b8786e7a240a13a808419 100644
--- a/IO/ParallelNetCDF/vtkPNetCDFPOPReader.h
+++ b/IO/ParallelNetCDF/vtkPNetCDFPOPReader.h
@@ -34,6 +34,7 @@
 #include "vtkIOParallelNetCDFModule.h" // For export macro
 #include "vtkRectilinearGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 class vtkCallbackCommand;
 class vtkMPIController;
@@ -124,4 +125,5 @@ private:
 
   vtkPNetCDFPOPReaderInternal* Internals;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelNetCDF/vtkPSLACReader.cxx b/IO/ParallelNetCDF/vtkPSLACReader.cxx
index 6a5efa9a3bd0603ff0cdceb45b14dc560c4c2d4c..1ccbfdabe1a2e64b533d770079fe23cdf3945a77 100644
--- a/IO/ParallelNetCDF/vtkPSLACReader.cxx
+++ b/IO/ParallelNetCDF/vtkPSLACReader.cxx
@@ -83,6 +83,7 @@
 //// This may or may not work with the netCDF 4 library reading in netCDF 3 files.
 //#define nc_get_vars_vtkIdType nc_get_vars_longlong
 //#else // NC_INT64
+VTK_ABI_NAMESPACE_BEGIN
 static int nc_get_vars_vtkIdType(int ncid, int varid, const size_t start[], const size_t count[],
   const ptrdiff_t stride[], vtkIdType* ip)
 {
@@ -111,12 +112,14 @@ static int nc_get_vars_vtkIdType(int ncid, int varid, const size_t start[], cons
 
   return NC_NOERR;
 }
+VTK_ABI_NAMESPACE_END
 //#endif // NC_INT64
 #else // VTK_USE_64_BIT_IDS
 #define nc_get_vars_vtkIdType nc_get_vars_int
 #endif // VTK_USE_64BIT_IDS
 
 //=============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 static int NetCDFTypeToVTKType(nc_type type)
 {
   switch (type)
@@ -210,7 +213,7 @@ static void SynchronizeBlocks(vtkMultiBlockDataSet* blocks, vtkMultiProcessContr
 //=============================================================================
 // Structures used by ReadMidpointCoordinates to store and transfer midpoint
 // information.
-namespace vtkPSLACReaderTypes
+namespace
 {
 struct EdgeEndpointsHash
 {
@@ -318,7 +321,6 @@ static void GatherMidpoints(vtkMultiProcessController* controller,
     &topologyLengths.at(0), &topologyOffsets.at(0), process);
 }
 };
-using namespace vtkPSLACReaderTypes;
 
 //------------------------------------------------------------------------------
 // Simple hash function for vtkIdType.
@@ -1163,3 +1165,4 @@ int vtkPSLACReader::MeshUpToDate()
   this->Controller->AllReduce(&localflag, &globalflag, 1, vtkCommunicator::LOGICAL_AND_OP);
   return globalflag;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelNetCDF/vtkPSLACReader.h b/IO/ParallelNetCDF/vtkPSLACReader.h
index 2ac725a02d6df047d6d020111d85e7e9020e6599..52511b25afba11ee78825348aba42e6b04751a18 100644
--- a/IO/ParallelNetCDF/vtkPSLACReader.h
+++ b/IO/ParallelNetCDF/vtkPSLACReader.h
@@ -38,6 +38,7 @@
 #include "vtkIOParallelNetCDFModule.h" // For export macro
 #include "vtkSLACReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKIOPARALLELNETCDF_EXPORT vtkPSLACReader : public vtkSLACReader
@@ -143,4 +144,5 @@ private:
   void operator=(const vtkPSLACReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPSLACReader_h
diff --git a/IO/ParallelXML/vtkXMLCompositeDataSetWriterHelper.cxx b/IO/ParallelXML/vtkXMLCompositeDataSetWriterHelper.cxx
index 6f69d0c2324345243e05759d2f9d98a04d9d5d6f..279c1032e84645674a23785ba2d4d3e0994a3b3c 100644
--- a/IO/ParallelXML/vtkXMLCompositeDataSetWriterHelper.cxx
+++ b/IO/ParallelXML/vtkXMLCompositeDataSetWriterHelper.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkXMLDataObjectWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLCompositeDataSetWriterHelper);
 vtkCxxSetObjectMacro(vtkXMLCompositeDataSetWriterHelper, Writer, vtkXMLWriterBase);
 //----------------------------------------------------------------------------
@@ -103,3 +104,4 @@ void vtkXMLCompositeDataSetWriterHelper::PrintSelf(ostream& os, vtkIndent indent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLCompositeDataSetWriterHelper.h b/IO/ParallelXML/vtkXMLCompositeDataSetWriterHelper.h
index efe02c1f5cefdac6832f971d589b28f0d67d0784..7618c317e20878631c74697b484b76de618ba876 100644
--- a/IO/ParallelXML/vtkXMLCompositeDataSetWriterHelper.h
+++ b/IO/ParallelXML/vtkXMLCompositeDataSetWriterHelper.h
@@ -33,6 +33,7 @@
 #include <map>    // for std::map
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXMLWriterBase;
 class vtkDataObject;
 
@@ -86,4 +87,5 @@ private:
   vtkXMLWriterBase* Writer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLDataWriterHelper.cxx b/IO/ParallelXML/vtkXMLDataWriterHelper.cxx
index c2c12e3c1d348509073d846b6b6e532292db7c02..3196a1de1eeba958bacfccc08b8f10e946ad3f23 100644
--- a/IO/ParallelXML/vtkXMLDataWriterHelper.cxx
+++ b/IO/ParallelXML/vtkXMLDataWriterHelper.cxx
@@ -23,6 +23,7 @@
 #include "vtkXMLDataElement.h"
 #include "vtkXMLWriter2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLDataWriterHelper);
 vtkCxxSetObjectMacro(vtkXMLDataWriterHelper, Writer, vtkXMLWriter2);
 //----------------------------------------------------------------------------
@@ -117,3 +118,4 @@ void vtkXMLDataWriterHelper::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLDataWriterHelper.h b/IO/ParallelXML/vtkXMLDataWriterHelper.h
index 5cdd37b4c93a528c3110798e8d94eac6fa6455f3..187127d112f43534d398f896498d81c0dd3fd5d1 100644
--- a/IO/ParallelXML/vtkXMLDataWriterHelper.h
+++ b/IO/ParallelXML/vtkXMLDataWriterHelper.h
@@ -30,6 +30,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkXMLDataElement;
 class vtkXMLWriter2;
@@ -107,4 +108,5 @@ private:
   int DataSetVersion[2];
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPDataObjectWriter.cxx b/IO/ParallelXML/vtkXMLPDataObjectWriter.cxx
index 5694755e93018943c06aba17d6a836f343c1c360..767e5c12d168b09bceab6946bfd4bdfc61b8db3b 100644
--- a/IO/ParallelXML/vtkXMLPDataObjectWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPDataObjectWriter.cxx
@@ -25,6 +25,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkXMLPDataObjectWriter, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
 vtkXMLPDataObjectWriter::vtkXMLPDataObjectWriter()
@@ -380,3 +381,4 @@ void vtkXMLPDataObjectWriter::SetupPieceFileNameExtension()
 {
   delete[] this->PieceFileNameExtension;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPDataObjectWriter.h b/IO/ParallelXML/vtkXMLPDataObjectWriter.h
index 872273a332101a491f7b9d9b442d7f73a198d5da..0f43866b27fbc6438345f10c29f4cc3a9c686ebf 100644
--- a/IO/ParallelXML/vtkXMLPDataObjectWriter.h
+++ b/IO/ParallelXML/vtkXMLPDataObjectWriter.h
@@ -31,6 +31,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkMultiProcessController;
 
@@ -231,4 +232,5 @@ private:
   bool ContinuingExecution;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPDataSetWriter.cxx b/IO/ParallelXML/vtkXMLPDataSetWriter.cxx
index 0492170f73af703395ce526c8532a3a7eba0e930..485f6d8eff6c09fe1bc6d3953649d0832cb9b90c 100644
--- a/IO/ParallelXML/vtkXMLPDataSetWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPDataSetWriter.cxx
@@ -29,6 +29,7 @@
 #include "vtkXMLPStructuredGridWriter.h"
 #include "vtkXMLPUnstructuredGridWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPDataSetWriter);
 
 //------------------------------------------------------------------------------
@@ -153,3 +154,4 @@ int vtkXMLPDataSetWriter::FillInputPortInformation(int vtkNotUsed(port), vtkInfo
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPDataSetWriter.h b/IO/ParallelXML/vtkXMLPDataSetWriter.h
index 73e1742f937e825f7e16090c62d80e886f27c388..2150b07a97a3c73abebe0d757d74a510f9576131 100644
--- a/IO/ParallelXML/vtkXMLPDataSetWriter.h
+++ b/IO/ParallelXML/vtkXMLPDataSetWriter.h
@@ -32,6 +32,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLPDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOPARALLELXML_EXPORT vtkXMLPDataSetWriter : public vtkXMLPDataWriter
 {
 public:
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkXMLPDataSetWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPDataWriter.cxx b/IO/ParallelXML/vtkXMLPDataWriter.cxx
index 45b222c3a276dae03bd715eec197923796d30a85..aa5786034e7f205fd01b23a50f14fe9d28e0cc5f 100644
--- a/IO/ParallelXML/vtkXMLPDataWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPDataWriter.cxx
@@ -26,6 +26,7 @@
 #include <vtksys/SystemTools.hxx>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkXMLPDataWriter::vtkXMLPDataWriter() = default;
 
 //------------------------------------------------------------------------------
@@ -156,3 +157,4 @@ void vtkXMLPDataWriter::SetupPieceFileNameExtension()
   strcpy(this->PieceFileNameExtension + 1, ext);
   writer->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPDataWriter.h b/IO/ParallelXML/vtkXMLPDataWriter.h
index fd96bd7969a10cefd132535dce51cd45544a73f7..162fbc5f221feef1fda31d6511cc39ee1baecf90 100644
--- a/IO/ParallelXML/vtkXMLPDataWriter.h
+++ b/IO/ParallelXML/vtkXMLPDataWriter.h
@@ -28,6 +28,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLPDataObjectWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkMultiProcessController;
 
@@ -61,4 +62,5 @@ private:
   void SetupPieceFileNameExtension() override;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPHierarchicalBoxDataWriter.cxx b/IO/ParallelXML/vtkXMLPHierarchicalBoxDataWriter.cxx
index fbb0ec4dbf9ffa99272ace05d4454e1111c9918c..b841c5e0f2479842de693e670836413f876930f3 100644
--- a/IO/ParallelXML/vtkXMLPHierarchicalBoxDataWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPHierarchicalBoxDataWriter.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPHierarchicalBoxDataWriter);
 
 //------------------------------------------------------------------------------
@@ -30,3 +31,4 @@ void vtkXMLPHierarchicalBoxDataWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPHierarchicalBoxDataWriter.h b/IO/ParallelXML/vtkXMLPHierarchicalBoxDataWriter.h
index 86375878009277af1cf86cfc4436ff7666a32706..2dd693bf6560ed08cfab240db451efb1542132c7 100644
--- a/IO/ParallelXML/vtkXMLPHierarchicalBoxDataWriter.h
+++ b/IO/ParallelXML/vtkXMLPHierarchicalBoxDataWriter.h
@@ -27,6 +27,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLPUniformGridAMRWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOPARALLELXML_EXPORT vtkXMLPHierarchicalBoxDataWriter : public vtkXMLPUniformGridAMRWriter
 {
 public:
@@ -43,4 +44,5 @@ private:
   void operator=(const vtkXMLPHierarchicalBoxDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPHyperTreeGridWriter.cxx b/IO/ParallelXML/vtkXMLPHyperTreeGridWriter.cxx
index 77fa33f4c58875b68b858905b55a732654294b0e..048f894ed5adf5b92ab3b39527c2546b71480d9d 100644
--- a/IO/ParallelXML/vtkXMLPHyperTreeGridWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPHyperTreeGridWriter.cxx
@@ -26,6 +26,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPHyperTreeGridWriter);
 
 //------------------------------------------------------------------------------
@@ -156,3 +157,4 @@ int vtkXMLPHyperTreeGridWriter::FillInputPortInformation(int, vtkInformation* in
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkHyperTreeGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPHyperTreeGridWriter.h b/IO/ParallelXML/vtkXMLPHyperTreeGridWriter.h
index 03e098545f9476801eea40e383fa9a4b6dbccf4e..642282c2003a18a27035dd1fc6588ddadbc9e4e7 100644
--- a/IO/ParallelXML/vtkXMLPHyperTreeGridWriter.h
+++ b/IO/ParallelXML/vtkXMLPHyperTreeGridWriter.h
@@ -32,6 +32,7 @@
 
 #include "vtkXMLPDataObjectWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkMultiProcessController;
 class vtkHyperTreeGrid;
@@ -106,4 +107,5 @@ private:
   void SetupPieceFileNameExtension() override;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPImageDataWriter.cxx b/IO/ParallelXML/vtkXMLPImageDataWriter.cxx
index c3b9d9825263718627b5bb2052138348f37a1db1..58a51620de25bc877abca26c11594a708bf2c592 100644
--- a/IO/ParallelXML/vtkXMLPImageDataWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPImageDataWriter.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkXMLImageDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPImageDataWriter);
 
 //------------------------------------------------------------------------------
@@ -86,3 +87,4 @@ int vtkXMLPImageDataWriter::FillInputPortInformation(int vtkNotUsed(port), vtkIn
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkImageData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPImageDataWriter.h b/IO/ParallelXML/vtkXMLPImageDataWriter.h
index be9c1ee996382bc074eb59b593e7d520bec4ad62..772a7f2c12f9de04c8434d6f9558bd3a5d6bf7f9 100644
--- a/IO/ParallelXML/vtkXMLPImageDataWriter.h
+++ b/IO/ParallelXML/vtkXMLPImageDataWriter.h
@@ -32,6 +32,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLPStructuredDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKIOPARALLELXML_EXPORT vtkXMLPImageDataWriter : public vtkXMLPStructuredDataWriter
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkXMLPImageDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPMultiBlockDataWriter.cxx b/IO/ParallelXML/vtkXMLPMultiBlockDataWriter.cxx
index 68ed30de08c902b5fd26a0401c0aeb2db7b4d68f..fde6300e8711ac8f4c873af7f5922b9cce0501f1 100644
--- a/IO/ParallelXML/vtkXMLPMultiBlockDataWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPMultiBlockDataWriter.cxx
@@ -28,6 +28,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPMultiBlockDataWriter);
 
 vtkCxxSetObjectMacro(vtkXMLPMultiBlockDataWriter, Controller, vtkMultiProcessController);
@@ -350,3 +351,4 @@ void vtkXMLPMultiBlockDataWriter::RemoveWrittenFiles(const char* SubDirectory)
     this->Superclass::RemoveWrittenFiles(SubDirectory);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPMultiBlockDataWriter.h b/IO/ParallelXML/vtkXMLPMultiBlockDataWriter.h
index 2c5b0fbde9cc769102b221ae3a2095021aaa2155..8b878a461a53e98d1bbead1b8677b8899ba22c51 100644
--- a/IO/ParallelXML/vtkXMLPMultiBlockDataWriter.h
+++ b/IO/ParallelXML/vtkXMLPMultiBlockDataWriter.h
@@ -29,6 +29,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLMultiBlockDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkMultiProcessController;
 
@@ -149,4 +150,5 @@ private:
   vtkInternal* XMLPMultiBlockDataWriterInternal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPPolyDataWriter.cxx b/IO/ParallelXML/vtkXMLPPolyDataWriter.cxx
index 3364b79ecbe8d4e3f80170df5bd186d93f83df8f..20d702e55cb4ef30a8786ff78922242f247c8681 100644
--- a/IO/ParallelXML/vtkXMLPPolyDataWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPPolyDataWriter.cxx
@@ -19,6 +19,7 @@
 #include "vtkPolyData.h"
 #include "vtkXMLPolyDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPPolyDataWriter);
 
 //------------------------------------------------------------------------------
@@ -66,3 +67,4 @@ int vtkXMLPPolyDataWriter::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPolyData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPPolyDataWriter.h b/IO/ParallelXML/vtkXMLPPolyDataWriter.h
index 8b4b2295e92952ec08c3f5cc7e737035daf55520..5154a497d0cd7e98ffec080665b960929a7198d3 100644
--- a/IO/ParallelXML/vtkXMLPPolyDataWriter.h
+++ b/IO/ParallelXML/vtkXMLPPolyDataWriter.h
@@ -32,6 +32,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLPUnstructuredDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKIOPARALLELXML_EXPORT vtkXMLPPolyDataWriter : public vtkXMLPUnstructuredDataWriter
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkXMLPPolyDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPRectilinearGridWriter.cxx b/IO/ParallelXML/vtkXMLPRectilinearGridWriter.cxx
index ea0329de255056e9898c009dbbd68972309b70da..7cc976d86aa1c86d32ad0351963a36c2c9e9aa0f 100644
--- a/IO/ParallelXML/vtkXMLPRectilinearGridWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPRectilinearGridWriter.cxx
@@ -20,6 +20,7 @@
 #include "vtkRectilinearGrid.h"
 #include "vtkXMLRectilinearGridWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPRectilinearGridWriter);
 
 //------------------------------------------------------------------------------
@@ -81,3 +82,4 @@ int vtkXMLPRectilinearGridWriter::FillInputPortInformation(
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkRectilinearGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPRectilinearGridWriter.h b/IO/ParallelXML/vtkXMLPRectilinearGridWriter.h
index c8064ba29f9a84902f184764b8d28cb458fd323c..cb116753134ed14ca47db4593784c5de3e399eb1 100644
--- a/IO/ParallelXML/vtkXMLPRectilinearGridWriter.h
+++ b/IO/ParallelXML/vtkXMLPRectilinearGridWriter.h
@@ -33,6 +33,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLPStructuredDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRectilinearGrid;
 
 class VTKIOPARALLELXML_EXPORT vtkXMLPRectilinearGridWriter : public vtkXMLPStructuredDataWriter
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkXMLPRectilinearGridWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPStructuredDataWriter.cxx b/IO/ParallelXML/vtkXMLPStructuredDataWriter.cxx
index e61aa922ec376f75da52b3aee61670ee67f2fd1d..85269a002f117b66724defff8ac09187dae0daa2 100644
--- a/IO/ParallelXML/vtkXMLPStructuredDataWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPStructuredDataWriter.cxx
@@ -24,6 +24,7 @@
 #include "vtkXMLStructuredDataWriter.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkXMLPStructuredDataWriter::vtkXMLPStructuredDataWriter() = default;
 
 //------------------------------------------------------------------------------
@@ -174,3 +175,4 @@ int vtkXMLPStructuredDataWriter::WritePiece(int index)
   }
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPStructuredDataWriter.h b/IO/ParallelXML/vtkXMLPStructuredDataWriter.h
index d22935b601056a06db10a99fee653064da174345..aebafc430d047d01484923e50c4b968815b7c246 100644
--- a/IO/ParallelXML/vtkXMLPStructuredDataWriter.h
+++ b/IO/ParallelXML/vtkXMLPStructuredDataWriter.h
@@ -29,6 +29,7 @@
 #include <map>    // for keeping track of extents
 #include <vector> // for keeping track of extents
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXMLStructuredDataWriter;
 
 class VTKIOPARALLELXML_EXPORT vtkXMLPStructuredDataWriter : public vtkXMLPDataWriter
@@ -59,4 +60,5 @@ private:
   ExtentsType Extents;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPStructuredGridWriter.cxx b/IO/ParallelXML/vtkXMLPStructuredGridWriter.cxx
index 7ff4565992cc0a823cd8198c9632e26f547376c1..782cd6af44c12078f8ac322d6d87a1011b70f815 100644
--- a/IO/ParallelXML/vtkXMLPStructuredGridWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPStructuredGridWriter.cxx
@@ -20,6 +20,7 @@
 #include "vtkStructuredGrid.h"
 #include "vtkXMLStructuredGridWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPStructuredGridWriter);
 
 //------------------------------------------------------------------------------
@@ -79,3 +80,4 @@ int vtkXMLPStructuredGridWriter::FillInputPortInformation(int, vtkInformation* i
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkStructuredGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPStructuredGridWriter.h b/IO/ParallelXML/vtkXMLPStructuredGridWriter.h
index c8b3c8e6d34b737c56cb765a1a8a6d63a3078c60..d8d9e40f350b1b75debc89a1b2d5a693b5c99724 100644
--- a/IO/ParallelXML/vtkXMLPStructuredGridWriter.h
+++ b/IO/ParallelXML/vtkXMLPStructuredGridWriter.h
@@ -33,6 +33,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLPStructuredDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStructuredGrid;
 
 class VTKIOPARALLELXML_EXPORT vtkXMLPStructuredGridWriter : public vtkXMLPStructuredDataWriter
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkXMLPStructuredGridWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPTableWriter.cxx b/IO/ParallelXML/vtkXMLPTableWriter.cxx
index 24aec29c9b835854a13d37c8dcda639da15f3802..f55c2a8436973dd18b6fd71a819068c96d24cac3 100644
--- a/IO/ParallelXML/vtkXMLPTableWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPTableWriter.cxx
@@ -27,6 +27,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPTableWriter);
 
 //------------------------------------------------------------------------------
@@ -193,3 +194,4 @@ int vtkXMLPTableWriter::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkTable");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPTableWriter.h b/IO/ParallelXML/vtkXMLPTableWriter.h
index 64ec4680b34cad8dfd72c20ff9e2736069b658ae..d06f9e4843c7bbfa22d69e0b91ff5196b5c1a9d7 100644
--- a/IO/ParallelXML/vtkXMLPTableWriter.h
+++ b/IO/ParallelXML/vtkXMLPTableWriter.h
@@ -33,6 +33,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLPDataObjectWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkMultiProcessController;
 class vtkTable;
@@ -112,4 +113,5 @@ private:
   void SetupPieceFileNameExtension() override;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPUniformGridAMRWriter.cxx b/IO/ParallelXML/vtkXMLPUniformGridAMRWriter.cxx
index 4dbff5575a5b20c69646b78c3d6dcf14552511f3..7c82179d3ec05acc8bafe16cf66969b13a43c579 100644
--- a/IO/ParallelXML/vtkXMLPUniformGridAMRWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPUniformGridAMRWriter.cxx
@@ -19,6 +19,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPUniformGridAMRWriter);
 
 vtkCxxSetObjectMacro(vtkXMLPUniformGridAMRWriter, Controller, vtkMultiProcessController);
@@ -120,3 +121,4 @@ void vtkXMLPUniformGridAMRWriter::FillDataTypes(vtkCompositeDataSet* cdInput)
     this->Controller->Gather(myDataTypes, nullptr, numLeafNodes, 0);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPUniformGridAMRWriter.h b/IO/ParallelXML/vtkXMLPUniformGridAMRWriter.h
index 3f124dfa9197c89224aac8dbbd6fffed2a18ccb8..ab4f773f0ae8f2f430ff3626d0961af95481a7db 100644
--- a/IO/ParallelXML/vtkXMLPUniformGridAMRWriter.h
+++ b/IO/ParallelXML/vtkXMLPUniformGridAMRWriter.h
@@ -32,6 +32,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLUniformGridAMRWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKIOPARALLELXML_EXPORT vtkXMLPUniformGridAMRWriter : public vtkXMLUniformGridAMRWriter
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkXMLPUniformGridAMRWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPUnstructuredDataWriter.cxx b/IO/ParallelXML/vtkXMLPUnstructuredDataWriter.cxx
index 0979aa33f1ac38693e401815cd4c22dcf7bd0163..940563d9556f5422e2866e37266fd72ab414d8f9 100644
--- a/IO/ParallelXML/vtkXMLPUnstructuredDataWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPUnstructuredDataWriter.cxx
@@ -22,6 +22,7 @@
 #include "vtkXMLUnstructuredDataWriter.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkXMLPUnstructuredDataWriter::vtkXMLPUnstructuredDataWriter() = default;
 
 //------------------------------------------------------------------------------
@@ -61,3 +62,4 @@ void vtkXMLPUnstructuredDataWriter::WritePData(vtkIndent indent)
   vtkPointSet* input = this->GetInputAsPointSet();
   this->WritePPoints(input->GetPoints(), indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPUnstructuredDataWriter.h b/IO/ParallelXML/vtkXMLPUnstructuredDataWriter.h
index 11c662a7177fef2cd0baafede37e418b70558928..ed7e8ed37ccf338510b4a106f390c5bf28d0bf02 100644
--- a/IO/ParallelXML/vtkXMLPUnstructuredDataWriter.h
+++ b/IO/ParallelXML/vtkXMLPUnstructuredDataWriter.h
@@ -27,6 +27,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLPDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPointSet;
 class vtkXMLUnstructuredDataWriter;
 
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkXMLPUnstructuredDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPUnstructuredGridWriter.cxx b/IO/ParallelXML/vtkXMLPUnstructuredGridWriter.cxx
index 56faefa28e2669d4a15dd82d73485207c54e6d68..ecca78ccd056e5ef090b9c1847bc635aca943361 100644
--- a/IO/ParallelXML/vtkXMLPUnstructuredGridWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPUnstructuredGridWriter.cxx
@@ -19,6 +19,7 @@
 #include "vtkUnstructuredGrid.h"
 #include "vtkXMLUnstructuredGridWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPUnstructuredGridWriter);
 
 //------------------------------------------------------------------------------
@@ -66,3 +67,4 @@ int vtkXMLPUnstructuredGridWriter::FillInputPortInformation(int, vtkInformation*
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkUnstructuredGridBase");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPUnstructuredGridWriter.h b/IO/ParallelXML/vtkXMLPUnstructuredGridWriter.h
index f534e2baf942687eef5e19888c474a5347e11219..47ba0fdb6169b18a4652f19d9f2d481fb2d8107e 100644
--- a/IO/ParallelXML/vtkXMLPUnstructuredGridWriter.h
+++ b/IO/ParallelXML/vtkXMLPUnstructuredGridWriter.h
@@ -33,6 +33,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLPUnstructuredDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGridBase;
 
 class VTKIOPARALLELXML_EXPORT vtkXMLPUnstructuredGridWriter : public vtkXMLPUnstructuredDataWriter
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkXMLPUnstructuredGridWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPartitionedDataSetCollectionWriter.cxx b/IO/ParallelXML/vtkXMLPartitionedDataSetCollectionWriter.cxx
index 9b0726b5f5fab71a7824de7932c9e62ca22b97aa..8f806c9a7c179e50f2846bfae0879e4330ba0f2c 100644
--- a/IO/ParallelXML/vtkXMLPartitionedDataSetCollectionWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPartitionedDataSetCollectionWriter.cxx
@@ -36,6 +36,7 @@
 #include <memory>
 #include <numeric>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPartitionedDataSetCollectionWriter);
 //------------------------------------------------------------------------------
 vtkXMLPartitionedDataSetCollectionWriter::vtkXMLPartitionedDataSetCollectionWriter() = default;
@@ -254,3 +255,4 @@ void vtkXMLPartitionedDataSetCollectionWriter::PrintSelf(ostream& os, vtkIndent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPartitionedDataSetCollectionWriter.h b/IO/ParallelXML/vtkXMLPartitionedDataSetCollectionWriter.h
index 1413eaa1be491baf748273bb5cb8a26564a2bf29..783e46f044bc4dcf6af53e8f17f166a151b9ae1d 100644
--- a/IO/ParallelXML/vtkXMLPartitionedDataSetCollectionWriter.h
+++ b/IO/ParallelXML/vtkXMLPartitionedDataSetCollectionWriter.h
@@ -28,6 +28,7 @@
 #include "vtkIOParallelXMLModule.h" // For export macro
 #include "vtkXMLWriter2.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPartitionedDataSetCollection;
 
 class VTKIOPARALLELXML_EXPORT vtkXMLPartitionedDataSetCollectionWriter : public vtkXMLWriter2
@@ -74,4 +75,5 @@ private:
     const std::vector<std::vector<std::string>>& allFilenames);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLPartitionedDataSetWriter.cxx b/IO/ParallelXML/vtkXMLPartitionedDataSetWriter.cxx
index 581d9cb93696415841743c9051d286ef8d728100..8bb5438d917b6d216d9f0a152e2b77a46ea01337 100644
--- a/IO/ParallelXML/vtkXMLPartitionedDataSetWriter.cxx
+++ b/IO/ParallelXML/vtkXMLPartitionedDataSetWriter.cxx
@@ -32,6 +32,7 @@
 #include <map>
 #include <memory>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPartitionedDataSetWriter);
 //----------------------------------------------------------------------------
 vtkXMLPartitionedDataSetWriter::vtkXMLPartitionedDataSetWriter() = default;
@@ -196,3 +197,4 @@ void vtkXMLPartitionedDataSetWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLPartitionedDataSetWriter.h b/IO/ParallelXML/vtkXMLPartitionedDataSetWriter.h
index f7114105557a04a734dd87fac4c307e35fe0f797..e3054ba58688a8519a0784b45cf514b334b463aa 100644
--- a/IO/ParallelXML/vtkXMLPartitionedDataSetWriter.h
+++ b/IO/ParallelXML/vtkXMLPartitionedDataSetWriter.h
@@ -31,6 +31,7 @@
 #include <string> // for std::string
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPartitionedDataSet;
 
 class VTKIOPARALLELXML_EXPORT vtkXMLPartitionedDataSetWriter : public vtkXMLWriter2
@@ -75,4 +76,5 @@ private:
   bool WriteSummaryXML(vtkPartitionedDataSet* input, const std::vector<std::string>& allFilenames);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXML/vtkXMLWriter2.cxx b/IO/ParallelXML/vtkXMLWriter2.cxx
index 5f46ffd907df233a80f034d631cbac8a8676261a..ad8d1548171975e0a013a4bb996d5eeb683e4845 100644
--- a/IO/ParallelXML/vtkXMLWriter2.cxx
+++ b/IO/ParallelXML/vtkXMLWriter2.cxx
@@ -27,6 +27,7 @@
 #include <cassert>
 #include <numeric>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkXMLWriter2, Controller, vtkMultiProcessController);
 //----------------------------------------------------------------------------
 vtkXMLWriter2::vtkXMLWriter2()
@@ -221,3 +222,4 @@ void vtkXMLWriter2::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Controller: " << this->Controller << endl;
   os << indent << "NumberOfGhostLevels: " << this->NumberOfGhostLevels << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXML/vtkXMLWriter2.h b/IO/ParallelXML/vtkXMLWriter2.h
index 85530ce1ab37b9363f95a4ffbf7b75875f04d33a..1dfb33440b59274482e4a5a8e7f9987e277393d6 100644
--- a/IO/ParallelXML/vtkXMLWriter2.h
+++ b/IO/ParallelXML/vtkXMLWriter2.h
@@ -43,6 +43,7 @@
 #include <utility> // for std::pair
 #include <vector>  // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKIOPARALLELXML_EXPORT vtkXMLWriter2 : public vtkXMLWriterBase
@@ -161,4 +162,5 @@ private:
   std::vector<std::pair<std::string, bool>> Artifacts;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/ParallelXdmf3/vtkPXdmf3Writer.cxx b/IO/ParallelXdmf3/vtkPXdmf3Writer.cxx
index 4acb5a4942be59ee40a69bcc558015985430d0c8..f38d61d04d0f747f711686aad7828591c8280694 100644
--- a/IO/ParallelXdmf3/vtkPXdmf3Writer.cxx
+++ b/IO/ParallelXdmf3/vtkPXdmf3Writer.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPXdmf3Writer);
 
 //------------------------------------------------------------------------------
@@ -75,3 +76,4 @@ int vtkPXdmf3Writer::GlobalContinueExecuting(int localContinue)
   }
   return globalContinue;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/ParallelXdmf3/vtkPXdmf3Writer.h b/IO/ParallelXdmf3/vtkPXdmf3Writer.h
index ac711fe660a8b86e82956805c52e5e8ab2c118fb..d2981a1d8f731515699fa531376746a93f4fa0fc 100644
--- a/IO/ParallelXdmf3/vtkPXdmf3Writer.h
+++ b/IO/ParallelXdmf3/vtkPXdmf3Writer.h
@@ -43,6 +43,7 @@
 #include "vtkIOParallelXdmf3Module.h" // For export macro
 #include "vtkXdmf3Writer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOPARALLELXDMF3_EXPORT vtkPXdmf3Writer : public vtkXdmf3Writer
 {
 public:
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkPXdmf3Writer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkPXdmf3Writer_h */
diff --git a/IO/PostgreSQL/vtkIOPostgreSQL_AutoInit.cxx b/IO/PostgreSQL/vtkIOPostgreSQL_AutoInit.cxx
index 9dbd6c78f255bc0444db142412ca78ab98b6efb9..254684b22c0916468778088bcaf1dd3da8f96309 100644
--- a/IO/PostgreSQL/vtkIOPostgreSQL_AutoInit.cxx
+++ b/IO/PostgreSQL/vtkIOPostgreSQL_AutoInit.cxx
@@ -20,6 +20,7 @@
 #include <string>
 
 // Registration of PostgreSQL dynamically with the vtkSQLDatabase factory method.
+VTK_ABI_NAMESPACE_BEGIN
 vtkSQLDatabase* PostgreSQLCreateFunction(const char* URL)
 {
   std::string urlstr(URL ? URL : "");
@@ -50,3 +51,4 @@ VTKIOPOSTGRESQL_EXPORT void vtkIOPostgreSQL_AutoInit_Construct()
     vtkSQLDatabase::RegisterCreateFromURLCallback(PostgreSQLCreateFunction);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PostgreSQL/vtkPostgreSQLDatabase.cxx b/IO/PostgreSQL/vtkPostgreSQLDatabase.cxx
index b972d674d7d192fe82d553b525ac74eb16646136..8d1b91b07e30aee8934af5e450ada1ff90a7c0cb 100644
--- a/IO/PostgreSQL/vtkPostgreSQLDatabase.cxx
+++ b/IO/PostgreSQL/vtkPostgreSQLDatabase.cxx
@@ -37,6 +37,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPostgreSQLDatabase);
 
 //------------------------------------------------------------------------------
@@ -761,3 +762,4 @@ void vtkPostgreSQLDatabase::UpdateDataTypeMap()
   }   // done with "query is successful"
   typeQuery->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PostgreSQL/vtkPostgreSQLDatabase.h b/IO/PostgreSQL/vtkPostgreSQLDatabase.h
index f4042d05048a0139f18f305c3be0b02b43c53a33..09df21a6f6c237499623def17be77b3903956e0b 100644
--- a/IO/PostgreSQL/vtkPostgreSQLDatabase.h
+++ b/IO/PostgreSQL/vtkPostgreSQLDatabase.h
@@ -49,6 +49,7 @@
 #include "vtkIOPostgreSQLModule.h" // For export macro
 #include "vtkSQLDatabase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPostgreSQLQuery;
 class vtkStringArray;
 class vtkPostgreSQLDatabasePrivate;
@@ -307,4 +308,5 @@ inline void vtkPostgreSQLDatabase::SetServerPort(int _arg)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPostgreSQLDatabase_h
diff --git a/IO/PostgreSQL/vtkPostgreSQLDatabasePrivate.h b/IO/PostgreSQL/vtkPostgreSQLDatabasePrivate.h
index a3a1559e2c5c698dbe4344af6d1cf62791b2757e..dd14d6befc051ca3d8167fd8478a3bdf7e81ea79 100644
--- a/IO/PostgreSQL/vtkPostgreSQLDatabasePrivate.h
+++ b/IO/PostgreSQL/vtkPostgreSQLDatabasePrivate.h
@@ -42,6 +42,7 @@
 #include <libpq-fe.h>
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPostgreSQLDatabasePrivate
 {
 public:
@@ -77,5 +78,6 @@ public:
   std::map<Oid, int> DataTypeMap;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPostgreSQLDatabasePrivate_h
 // VTK-HeaderTest-Exclude: vtkPostgreSQLDatabasePrivate.h
diff --git a/IO/PostgreSQL/vtkPostgreSQLQuery.cxx b/IO/PostgreSQL/vtkPostgreSQLQuery.cxx
index f852e8c3db544cb9a0633a76a023a927c68f2539..3d70aa30e0ce5f13d7f5dcbab1bfe5ead03dd23e 100644
--- a/IO/PostgreSQL/vtkPostgreSQLQuery.cxx
+++ b/IO/PostgreSQL/vtkPostgreSQLQuery.cxx
@@ -37,6 +37,7 @@
 
 #define DECLARE_CONVERTER(TargetType) vtkVariant ConvertStringTo##TargetType(bool, const char*);
 
+VTK_ABI_NAMESPACE_BEGIN
 DECLARE_CONVERTER(Boolean);
 DECLARE_CONVERTER(SignedChar);
 DECLARE_CONVERTER(UnsignedChar);
@@ -1030,3 +1031,4 @@ int vtkPostgreSQLQuery::GetNumberOfRows()
     return PQntuples(this->QueryInternals->QueryResults);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PostgreSQL/vtkPostgreSQLQuery.h b/IO/PostgreSQL/vtkPostgreSQLQuery.h
index 6c9ae0b34c97f17246169e0a2d46189546d3f1f6..fe306950973367111d39d95a38c5897bcab93035 100644
--- a/IO/PostgreSQL/vtkPostgreSQLQuery.h
+++ b/IO/PostgreSQL/vtkPostgreSQLQuery.h
@@ -42,6 +42,7 @@
 #include "vtkIOPostgreSQLModule.h" // For export macro
 #include "vtkSQLQuery.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPostgreSQLDatabase;
 class vtkVariant;
 class vtkVariantArray;
@@ -140,4 +141,5 @@ private:
   void operator=(const vtkPostgreSQLQuery&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPostgreSQLQuery_h
diff --git a/IO/PostgreSQL/vtkPostgreSQLToTableReader.cxx b/IO/PostgreSQL/vtkPostgreSQLToTableReader.cxx
index 29f0e35dfad0d923976de7aca4599c404464ed24..f0ff40b8ae309ea5ef57bff1194333443b1245f2 100644
--- a/IO/PostgreSQL/vtkPostgreSQLToTableReader.cxx
+++ b/IO/PostgreSQL/vtkPostgreSQLToTableReader.cxx
@@ -27,6 +27,7 @@
 #include "vtkPostgreSQLToTableReader.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPostgreSQLToTableReader);
 
 //------------------------------------------------------------------------------
@@ -158,3 +159,4 @@ void vtkPostgreSQLToTableReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PostgreSQL/vtkPostgreSQLToTableReader.h b/IO/PostgreSQL/vtkPostgreSQLToTableReader.h
index 0cc22fae7d32f4a5c866181989c29301161ec663..7cae20fd264e12baf73305f58a2d47eee75f707b 100644
--- a/IO/PostgreSQL/vtkPostgreSQLToTableReader.h
+++ b/IO/PostgreSQL/vtkPostgreSQLToTableReader.h
@@ -26,6 +26,7 @@
 #include "vtkDatabaseToTableReader.h"
 #include "vtkIOPostgreSQLModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPostgreSQLDatabase;
 
 class VTKIOPOSTGRESQL_EXPORT vtkPostgreSQLToTableReader : public vtkDatabaseToTableReader
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkPostgreSQLToTableReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/PostgreSQL/vtkTableToPostgreSQLWriter.cxx b/IO/PostgreSQL/vtkTableToPostgreSQLWriter.cxx
index 664b1ddd4ecd19f795470e004cb28ada10446e82..db858cf3f4f8fe2c1948c002c65db53c2ddf24e9 100644
--- a/IO/PostgreSQL/vtkTableToPostgreSQLWriter.cxx
+++ b/IO/PostgreSQL/vtkTableToPostgreSQLWriter.cxx
@@ -24,6 +24,7 @@
 #include "vtkTableToPostgreSQLWriter.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTableToPostgreSQLWriter);
 
 //------------------------------------------------------------------------------
@@ -164,3 +165,4 @@ void vtkTableToPostgreSQLWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/PostgreSQL/vtkTableToPostgreSQLWriter.h b/IO/PostgreSQL/vtkTableToPostgreSQLWriter.h
index 93101a0078b5b0f4d3293b21967b4ede7d79eced..027273bde1ee884b44715b39ea8aa1d24787fbda 100644
--- a/IO/PostgreSQL/vtkTableToPostgreSQLWriter.h
+++ b/IO/PostgreSQL/vtkTableToPostgreSQLWriter.h
@@ -26,6 +26,7 @@
 #include "vtkIOPostgreSQLModule.h" // For export macro
 #include "vtkTableToDatabaseWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPostgreSQLDatabase;
 
 class VTKIOPOSTGRESQL_EXPORT vtkTableToPostgreSQLWriter : public vtkTableToDatabaseWriter
@@ -55,4 +56,5 @@ private:
   void operator=(const vtkTableToPostgreSQLWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/SQL/vtkDatabaseToTableReader.cxx b/IO/SQL/vtkDatabaseToTableReader.cxx
index 68f4490e2ab62d980600de9a63913835982b4fec..6ca033de1fa58ebe175bbeb657fb56e8f9f97b71 100644
--- a/IO/SQL/vtkDatabaseToTableReader.cxx
+++ b/IO/SQL/vtkDatabaseToTableReader.cxx
@@ -29,6 +29,7 @@
 #include "vtkDatabaseToTableReader.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkDatabaseToTableReader::vtkDatabaseToTableReader()
 {
   this->Database = nullptr;
@@ -101,3 +102,4 @@ void vtkDatabaseToTableReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkDatabaseToTableReader.h b/IO/SQL/vtkDatabaseToTableReader.h
index 663d3f7d1835adbf26006d08d52daadd532bd4c8..69e5f8f24a09455a6e3af44a7844c851a7510528 100644
--- a/IO/SQL/vtkDatabaseToTableReader.h
+++ b/IO/SQL/vtkDatabaseToTableReader.h
@@ -27,6 +27,7 @@
 #include "vtkTableAlgorithm.h"
 #include <string> // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLDatabase;
 class vtkStringArray;
 
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkDatabaseToTableReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/SQL/vtkRowQuery.cxx b/IO/SQL/vtkRowQuery.cxx
index 9830b32a3e3d99ea3684a7b4282b5f4bdf440a8e..39efcba97c11983c554d1fb07d0cd53f6d107002 100644
--- a/IO/SQL/vtkRowQuery.cxx
+++ b/IO/SQL/vtkRowQuery.cxx
@@ -25,6 +25,7 @@
 
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkRowQuery::vtkRowQuery()
 {
   this->CaseSensitiveFieldNames = false;
@@ -87,3 +88,4 @@ bool vtkRowQuery::NextRow(vtkVariantArray* rowArray)
   }
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkRowQuery.h b/IO/SQL/vtkRowQuery.h
index 413296a69add8d3b1d4d6f037fb4604c0b022941..4c7550dfeffecd8c8eb65e339abc9618434de4f6 100644
--- a/IO/SQL/vtkRowQuery.h
+++ b/IO/SQL/vtkRowQuery.h
@@ -56,6 +56,7 @@
 #include "vtkIOSQLModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVariant;
 class vtkVariantArray;
 
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkRowQuery&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkRowQuery_h
diff --git a/IO/SQL/vtkRowQueryToTable.cxx b/IO/SQL/vtkRowQueryToTable.cxx
index 7bcf9618f1219c15a646afd0f8b6781ac3b3858a..40082d1469942d73a2173a4db31c40facc998dbf 100644
--- a/IO/SQL/vtkRowQueryToTable.cxx
+++ b/IO/SQL/vtkRowQueryToTable.cxx
@@ -31,6 +31,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRowQueryToTable);
 
 vtkRowQueryToTable::vtkRowQueryToTable()
@@ -159,3 +160,4 @@ int vtkRowQueryToTable::RequestData(vtkInformation*, vtkInformationVector** vtkN
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkRowQueryToTable.h b/IO/SQL/vtkRowQueryToTable.h
index 0c7cc9964d989240c7c211b11589948cfbc334f1..74faebb5666d56e7cca62546c7c04373bd0ed001 100644
--- a/IO/SQL/vtkRowQueryToTable.h
+++ b/IO/SQL/vtkRowQueryToTable.h
@@ -41,6 +41,7 @@
 #include "vtkIOSQLModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRowQuery;
 
 class VTKIOSQL_EXPORT vtkRowQueryToTable : public vtkTableAlgorithm
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkRowQueryToTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/SQL/vtkSQLDatabase.cxx b/IO/SQL/vtkSQLDatabase.cxx
index b2037a929ee90d8c5296093d4e0cd4ce9b81ad62..a9515626f21330b7d7c6611e1077f5b2ed591e79 100644
--- a/IO/SQL/vtkSQLDatabase.cxx
+++ b/IO/SQL/vtkSQLDatabase.cxx
@@ -33,6 +33,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <sstream>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLDatabase::vtkCallbackVector : public std::vector<vtkSQLDatabase::CreateFunction>
 {
 public:
@@ -648,3 +649,4 @@ bool vtkSQLDatabase::EffectSchema(vtkSQLDatabaseSchema* schema, bool dropIfExist
   query->Delete();
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkSQLDatabase.h b/IO/SQL/vtkSQLDatabase.h
index b0fa17c3768210df8599d32d3cb51891368fbbc7..99051b11b8d8d59e250ce436d98179e0330bcd2c 100644
--- a/IO/SQL/vtkSQLDatabase.h
+++ b/IO/SQL/vtkSQLDatabase.h
@@ -58,6 +58,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include "vtkStdString.h" // Because at least one method returns a vtkStdString
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationObjectBaseKey;
 class vtkSQLDatabaseSchema;
 class vtkSQLQuery;
@@ -265,4 +266,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSQLDatabase_h
diff --git a/IO/SQL/vtkSQLDatabaseGraphSource.cxx b/IO/SQL/vtkSQLDatabaseGraphSource.cxx
index 3271d762d124b2a6f1098d2e7efd36eca0f3bd37..48617f5a75223a4432500aa3debdc0f40c560e7c 100644
--- a/IO/SQL/vtkSQLDatabaseGraphSource.cxx
+++ b/IO/SQL/vtkSQLDatabaseGraphSource.cxx
@@ -35,6 +35,7 @@
 #include "vtkUndirectedGraph.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLDatabaseGraphSource::implementation
 {
 public:
@@ -399,3 +400,4 @@ int vtkSQLDatabaseGraphSource::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkSQLDatabaseGraphSource.h b/IO/SQL/vtkSQLDatabaseGraphSource.h
index e7b097d3df935052e9f24a8f65b8d8c834c4bf39..8b5d388dd33644f09783fe8a49483d55314facf9 100644
--- a/IO/SQL/vtkSQLDatabaseGraphSource.h
+++ b/IO/SQL/vtkSQLDatabaseGraphSource.h
@@ -34,6 +34,7 @@
 #include "vtkIOSQLModule.h" // For export macro
 #include "vtkStdString.h"   // for vtkStdString
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEventForwarderCommand;
 
 class VTKIOSQL_EXPORT vtkSQLDatabaseGraphSource : public vtkGraphAlgorithm
@@ -114,4 +115,5 @@ private:
   bool Directed;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/SQL/vtkSQLDatabaseSchema.cxx b/IO/SQL/vtkSQLDatabaseSchema.cxx
index 985d1ec4cb7428d93953cedcd2ae234f28072ee5..5a19f27c70167831f0daacd849f516c761e10e5e 100644
--- a/IO/SQL/vtkSQLDatabaseSchema.cxx
+++ b/IO/SQL/vtkSQLDatabaseSchema.cxx
@@ -27,6 +27,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSQLDatabaseSchema);
 
 //------------------------------------------------------------------------------
@@ -835,3 +836,4 @@ int vtkSQLDatabaseSchema::GetNumberOfOptionsInTable(int tblHandle)
 
   return static_cast<int>(this->Internals->Tables[tblHandle].Options.size());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkSQLDatabaseSchema.h b/IO/SQL/vtkSQLDatabaseSchema.h
index f055670bdc668bbc01a51adabe58cb4ae9254e69..4d5360c4dcd3b19e7a9efda4a81970bebd41deda 100644
--- a/IO/SQL/vtkSQLDatabaseSchema.h
+++ b/IO/SQL/vtkSQLDatabaseSchema.h
@@ -56,6 +56,7 @@ PURPOSE.  See the above copyright notice for more information.
 #define VTK_SQL_POSTGRESQL "vtkPostgreSQLDatabase"
 #define VTK_SQL_SQLITE "vtkSQLiteDatabase"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLDatabaseSchemaInternals;
 
 class VTKIOSQL_EXPORT vtkSQLDatabaseSchema : public vtkObject
@@ -427,4 +428,5 @@ private:
   void operator=(const vtkSQLDatabaseSchema&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSQLDatabaseSchema_h
diff --git a/IO/SQL/vtkSQLDatabaseTableSource.cxx b/IO/SQL/vtkSQLDatabaseTableSource.cxx
index a3b91930a09542b59b9b3a3eff2b31c2173dce19..0acc1bccd13653676f27d56615a7662725644819 100644
--- a/IO/SQL/vtkSQLDatabaseTableSource.cxx
+++ b/IO/SQL/vtkSQLDatabaseTableSource.cxx
@@ -32,6 +32,7 @@
 #include "vtkTable.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLDatabaseTableSource::implementation
 {
 public:
@@ -276,3 +277,4 @@ int vtkSQLDatabaseTableSource::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkSQLDatabaseTableSource.h b/IO/SQL/vtkSQLDatabaseTableSource.h
index 6af5f72fb21666f1240eca6ecccf812ec05201c6..0dda440fd848ba1a315976716c574efbb37f9658 100644
--- a/IO/SQL/vtkSQLDatabaseTableSource.h
+++ b/IO/SQL/vtkSQLDatabaseTableSource.h
@@ -34,6 +34,7 @@
 #include "vtkStdString.h"   // for vtkStdString
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEventForwarderCommand;
 
 class VTKIOSQL_EXPORT vtkSQLDatabaseTableSource : public vtkTableAlgorithm
@@ -93,4 +94,5 @@ private:
   implementation* const Implementation;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/SQL/vtkSQLGraphReader.cxx b/IO/SQL/vtkSQLGraphReader.cxx
index 41cf251d5fa2b4499c3f02386191dced77c4aebf..61acbda4e1c5f9be2cbbcbba50413ca87deb0350 100644
--- a/IO/SQL/vtkSQLGraphReader.cxx
+++ b/IO/SQL/vtkSQLGraphReader.cxx
@@ -33,6 +33,7 @@
 #include "vtkTableToGraph.h"
 #include "vtkUndirectedGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSQLGraphReader);
 
 vtkSQLGraphReader::vtkSQLGraphReader()
@@ -224,3 +225,4 @@ int vtkSQLGraphReader::RequestDataObject(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkSQLGraphReader.h b/IO/SQL/vtkSQLGraphReader.h
index 22593f0c0e1195b55bdd4dbffb6a46a11c76928a..6adfb343d41a578e4a9d4b1399eedf5a736a89b9 100644
--- a/IO/SQL/vtkSQLGraphReader.h
+++ b/IO/SQL/vtkSQLGraphReader.h
@@ -59,6 +59,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkIOSQLModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLQuery;
 
 class VTKIOSQL_EXPORT vtkSQLGraphReader : public vtkGraphAlgorithm
@@ -178,4 +179,5 @@ private:
   void operator=(const vtkSQLGraphReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/SQL/vtkSQLQuery.cxx b/IO/SQL/vtkSQLQuery.cxx
index a8f89dc1357af1b34931355ab202c3118455f684..ed22f8b904f6a17b9e5d8a0248673c8de1bc0632 100644
--- a/IO/SQL/vtkSQLQuery.cxx
+++ b/IO/SQL/vtkSQLQuery.cxx
@@ -25,6 +25,7 @@
 
 #include "vtksys/SystemTools.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkSQLQuery::vtkSQLQuery()
 {
   this->Query = nullptr;
@@ -270,3 +271,4 @@ const char* vtkSQLQuery::GetQuery()
                 << (this->Query ? this->Query : "(null)"));
   return this->Query;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkSQLQuery.h b/IO/SQL/vtkSQLQuery.h
index 2183162b3153fb7f954df0ef62f4a92db0819b19..c38d2a978bf68cb1a844c8da1d410a3d893aa890 100644
--- a/IO/SQL/vtkSQLQuery.h
+++ b/IO/SQL/vtkSQLQuery.h
@@ -61,6 +61,7 @@
 #include "vtkRowQuery.h"
 #include "vtkStdString.h" // for EscapeString()
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLDatabase;
 class vtkVariant;
 class vtkVariantArray;
@@ -225,4 +226,5 @@ private:
   void operator=(const vtkSQLQuery&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSQLQuery_h
diff --git a/IO/SQL/vtkSQLiteDatabase.cxx b/IO/SQL/vtkSQLiteDatabase.cxx
index 524ef9e5b4f20308857ec83548c0665b5b765d22..0718d61a854915f9cdc5621c1d73f7a2740cbef1 100644
--- a/IO/SQL/vtkSQLiteDatabase.cxx
+++ b/IO/SQL/vtkSQLiteDatabase.cxx
@@ -33,6 +33,7 @@
 
 #include "vtk_sqlite.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSQLiteDatabase);
 
 //------------------------------------------------------------------------------
@@ -477,3 +478,4 @@ const char* vtkSQLiteDatabase::GetLastErrorText()
 {
   return sqlite3_errmsg(this->Internal->SQLiteInstance);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkSQLiteDatabase.h b/IO/SQL/vtkSQLiteDatabase.h
index 8930e9767a9811eb3dd8c3942612cf98544560e5..4e552ecde4f2a77abad0bf2f6ce6bbbf381a4f80 100644
--- a/IO/SQL/vtkSQLiteDatabase.h
+++ b/IO/SQL/vtkSQLiteDatabase.h
@@ -49,6 +49,7 @@
 #include "vtkIOSQLModule.h" // For export macro
 #include "vtkSQLDatabase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLQuery;
 class vtkSQLiteQuery;
 class vtkStringArray;
@@ -186,4 +187,5 @@ private:
   void operator=(const vtkSQLiteDatabase&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSQLiteDatabase_h
diff --git a/IO/SQL/vtkSQLiteDatabaseInternals.h b/IO/SQL/vtkSQLiteDatabaseInternals.h
index fb20b2d005ea07b76df44e807aa387291f636e8b..d19714b0ee4e802a9e1c50294cf064b593be0e43 100644
--- a/IO/SQL/vtkSQLiteDatabaseInternals.h
+++ b/IO/SQL/vtkSQLiteDatabaseInternals.h
@@ -18,11 +18,13 @@
 
 #include "vtk_sqlite.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLiteDatabaseInternals
 {
 public:
   sqlite3* SQLiteInstance;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkSQLiteDatabaseInternals.h
diff --git a/IO/SQL/vtkSQLiteQuery.cxx b/IO/SQL/vtkSQLiteQuery.cxx
index 75e57c8334b2ecbf5a67fc8b7dd63fc3281da0d8..df456e7b33d1a87b27907661d9109faa9c074372 100644
--- a/IO/SQL/vtkSQLiteQuery.cxx
+++ b/IO/SQL/vtkSQLiteQuery.cxx
@@ -37,6 +37,7 @@
 #define COMMIT_TRANSACTION "COMMIT"
 #define ROLLBACK_TRANSACTION "ROLLBACK"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLiteQuery::Priv
 {
 public:
@@ -808,3 +809,4 @@ bool vtkSQLiteQuery::BindParameter(int index, vtkVariant value)
 {
   return this->Superclass::BindParameter(index, value);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkSQLiteQuery.h b/IO/SQL/vtkSQLiteQuery.h
index 10e74c82af0830faec50ac5ceea5103eefbd81f9..31588e5990e3b43836db50a8334ed3520a520046 100644
--- a/IO/SQL/vtkSQLiteQuery.h
+++ b/IO/SQL/vtkSQLiteQuery.h
@@ -47,6 +47,7 @@
 #include "vtkIOSQLModule.h" // For export macro
 #include "vtkSQLQuery.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLiteDatabase;
 class vtkVariant;
 class vtkVariantArray;
@@ -194,4 +195,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSQLiteQuery_h
diff --git a/IO/SQL/vtkSQLiteToTableReader.cxx b/IO/SQL/vtkSQLiteToTableReader.cxx
index 21f0c829533225c1962e66162c74753daf1a7a4a..9fa5c7d7c5cc4b94b13447cb0fde86aa2771d416 100644
--- a/IO/SQL/vtkSQLiteToTableReader.cxx
+++ b/IO/SQL/vtkSQLiteToTableReader.cxx
@@ -27,6 +27,7 @@
 #include "vtkSQLiteToTableReader.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSQLiteToTableReader);
 
 //------------------------------------------------------------------------------
@@ -145,3 +146,4 @@ void vtkSQLiteToTableReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkSQLiteToTableReader.h b/IO/SQL/vtkSQLiteToTableReader.h
index 49931f1f21938f763f840f2dd7e926c859853bca..473bf438a1612f3b9301326e824d6367776b473d 100644
--- a/IO/SQL/vtkSQLiteToTableReader.h
+++ b/IO/SQL/vtkSQLiteToTableReader.h
@@ -26,6 +26,7 @@
 #include "vtkDatabaseToTableReader.h"
 #include "vtkIOSQLModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLiteDatabase;
 
 class VTKIOSQL_EXPORT vtkSQLiteToTableReader : public vtkDatabaseToTableReader
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkSQLiteToTableReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/SQL/vtkTableToDatabaseWriter.cxx b/IO/SQL/vtkTableToDatabaseWriter.cxx
index 8aeae316fa5ace7b659aab15e135029a1380eec4..9c2e2f02e89cd0585f0754ce2907eeb5049b464e 100644
--- a/IO/SQL/vtkTableToDatabaseWriter.cxx
+++ b/IO/SQL/vtkTableToDatabaseWriter.cxx
@@ -29,6 +29,7 @@
 #include "vtkTableToDatabaseWriter.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkTableToDatabaseWriter::vtkTableToDatabaseWriter()
 {
   this->Database = nullptr;
@@ -119,3 +120,4 @@ void vtkTableToDatabaseWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkTableToDatabaseWriter.h b/IO/SQL/vtkTableToDatabaseWriter.h
index 5b83315742df6a59e5add5066e892533719ebf7f..77c106fd63f3f7cf9bbcfa5c09efe1341c0033af 100644
--- a/IO/SQL/vtkTableToDatabaseWriter.h
+++ b/IO/SQL/vtkTableToDatabaseWriter.h
@@ -27,6 +27,7 @@
 #include "vtkWriter.h"
 #include <string> // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLDatabase;
 class vtkStringArray;
 class vtkTable;
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkTableToDatabaseWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/SQL/vtkTableToSQLiteWriter.cxx b/IO/SQL/vtkTableToSQLiteWriter.cxx
index 85133a571108dd1f4a64d46dc681fc6eac81319b..6510deccb68b824862aaefcc5af08ed44ea8c596 100644
--- a/IO/SQL/vtkTableToSQLiteWriter.cxx
+++ b/IO/SQL/vtkTableToSQLiteWriter.cxx
@@ -24,6 +24,7 @@
 #include "vtkTableToSQLiteWriter.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTableToSQLiteWriter);
 
 //------------------------------------------------------------------------------
@@ -164,3 +165,4 @@ void vtkTableToSQLiteWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SQL/vtkTableToSQLiteWriter.h b/IO/SQL/vtkTableToSQLiteWriter.h
index 82d38a50e10a227d0e20cc0c85ee57c743f5707b..906d3aef7846071dcb63686684be5f8b0ededd7f 100644
--- a/IO/SQL/vtkTableToSQLiteWriter.h
+++ b/IO/SQL/vtkTableToSQLiteWriter.h
@@ -26,6 +26,7 @@
 #include "vtkIOSQLModule.h" // For export macro
 #include "vtkTableToDatabaseWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLiteDatabase;
 
 class VTKIOSQL_EXPORT vtkTableToSQLiteWriter : public vtkTableToDatabaseWriter
@@ -55,4 +56,5 @@ private:
   void operator=(const vtkTableToSQLiteWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/SegY/vtkSegYBinaryHeaderBytesPositions.h b/IO/SegY/vtkSegYBinaryHeaderBytesPositions.h
index 2b99055458231b29250f098f610990c6c2f9a038..f45a25617edc5b6827f3874d3a5b5e4f1765f3e9 100644
--- a/IO/SegY/vtkSegYBinaryHeaderBytesPositions.h
+++ b/IO/SegY/vtkSegYBinaryHeaderBytesPositions.h
@@ -16,6 +16,7 @@
 #ifndef vtkSegYBinaryHeaderBytesPositions_h
 #define vtkSegYBinaryHeaderBytesPositions_h
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSegYBinaryHeaderBytesPositions
 {
 public:
@@ -62,5 +63,6 @@ private:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSegYBinaryHeaderBytesPositions_h
 // VTK-HeaderTest-Exclude: vtkSegYBinaryHeaderBytesPositions.h
diff --git a/IO/SegY/vtkSegYIOUtils.cxx b/IO/SegY/vtkSegYIOUtils.cxx
index 9c4fb341c9fe787a27de0f2d6c02af0bc6c3afde..ef6fa0ffeccd0f70d6cd30b6af54a1c9cde95d27 100644
--- a/IO/SegY/vtkSegYIOUtils.cxx
+++ b/IO/SegY/vtkSegYIOUtils.cxx
@@ -21,6 +21,7 @@
 #include <sys/types.h>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkSegYIOUtils::vtkSegYIOUtils()
 {
   this->IsBigEndian = checkIfBigEndian();
@@ -170,3 +171,4 @@ std::streamoff vtkSegYIOUtils::getFileSize(std::istream& in)
   in.seekg(0, std::istream::end);
   return in.tellg();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SegY/vtkSegYIOUtils.h b/IO/SegY/vtkSegYIOUtils.h
index 1e53f989decfd7ce8551d02f786c15ea12e5cdc2..480c577d82e5100c86ed84b70f313d5426cda4d5 100644
--- a/IO/SegY/vtkSegYIOUtils.h
+++ b/IO/SegY/vtkSegYIOUtils.h
@@ -16,8 +16,11 @@
 #ifndef vtkSegYIOUtils_h
 #define vtkSegYIOUtils_h
 
+#include "vtkABINamespace.h"
+
 #include <fstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSegYIOUtils
 {
 public:
@@ -46,5 +49,6 @@ private:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSegYIOUtils_h
 // VTK-HeaderTest-Exclude: vtkSegYIOUtils.h
diff --git a/IO/SegY/vtkSegYReader.cxx b/IO/SegY/vtkSegYReader.cxx
index 3ed65dd13af47e95b4e2dbbd0e612670326cae26..969a2a6f32cd727243d6c0910272ed3d0b4c66a7 100644
--- a/IO/SegY/vtkSegYReader.cxx
+++ b/IO/SegY/vtkSegYReader.cxx
@@ -28,6 +28,7 @@
 #include <iostream>
 #include <iterator>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSegYReader);
 
 //------------------------------------------------------------------------------
@@ -211,3 +212,4 @@ int vtkSegYReader::RequestDataObject(vtkInformation*,
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SegY/vtkSegYReader.h b/IO/SegY/vtkSegYReader.h
index 4d92baff178edff782a58cf5d0db067efef95d10..de89b06c4c412e523f67cf04c835c685bdc5a9fc 100644
--- a/IO/SegY/vtkSegYReader.h
+++ b/IO/SegY/vtkSegYReader.h
@@ -21,6 +21,7 @@
 #include <vtkIOSegYModule.h> // For export macro
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkSegYReaderInternal;
 
@@ -166,4 +167,5 @@ private:
   void operator=(const vtkSegYReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSegYReader_h
diff --git a/IO/SegY/vtkSegYReaderInternal.cxx b/IO/SegY/vtkSegYReaderInternal.cxx
index 4506dba2f2187a2e10539e3bd6c49d751ee443c4..0537d911ac473691734f0f737244f5b8585f7214 100644
--- a/IO/SegY/vtkSegYReaderInternal.cxx
+++ b/IO/SegY/vtkSegYReaderInternal.cxx
@@ -33,6 +33,7 @@
 #include <map>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 const int FIRST_TRACE_START_POS = 3600; // this->Traces start after 3200 + 400 file header
@@ -378,3 +379,4 @@ void vtkSegYReaderInternal::ExportData(
   grid->SetPoints(points);
   grid->GetPointData()->SetScalars(scalars);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SegY/vtkSegYReaderInternal.h b/IO/SegY/vtkSegYReaderInternal.h
index 3532a422c216a0c066cccd6588b3d23e607bbff7..4aed68aad6446fae37212e68fcd621b5e7f91cbd 100644
--- a/IO/SegY/vtkSegYReaderInternal.h
+++ b/IO/SegY/vtkSegYReaderInternal.h
@@ -16,12 +16,15 @@
 #ifndef vtkSegYReaderInternal_h
 #define vtkSegYReaderInternal_h
 
+#include "vtkABINamespace.h"
+
 #include <fstream>
 #include <string>
 #include <vector>
 #include <vtksys/FStream.hxx>
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStructuredGrid;
 class vtkImageData;
 class vtkSegYTraceReader;
@@ -64,5 +67,6 @@ private:
   int SampleCountPerTrace;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSegYReaderInternal_h
 // VTK-HeaderTest-Exclude: vtkSegYReaderInternal.h
diff --git a/IO/SegY/vtkSegYTraceHeaderBytesPositions.h b/IO/SegY/vtkSegYTraceHeaderBytesPositions.h
index 121a7c7552a0262383f52bd2410eaf6ecbf6b761..d8c77b2b6de0f0c0e797f74559b63ee3875d03ee 100644
--- a/IO/SegY/vtkSegYTraceHeaderBytesPositions.h
+++ b/IO/SegY/vtkSegYTraceHeaderBytesPositions.h
@@ -16,6 +16,7 @@
 #ifndef vtkSegYTraceHeaderBytesPositions_h
 #define vtkSegYTraceHeaderBytesPositions_h
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSegYTraceHeaderBytesPositions
 {
 public:
@@ -45,5 +46,6 @@ private:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSegYTraceHeaderBytesPositions_h
 // VTK-HeaderTest-Exclude: vtkSegYTraceHeaderBytesPositions.h
diff --git a/IO/SegY/vtkSegYTraceReader.cxx b/IO/SegY/vtkSegYTraceReader.cxx
index 82bc3eaaf5d6109b6d98e842258d810b9068aec8..355fcd7f3527f15e031360cc773beacd00588bb8 100644
--- a/IO/SegY/vtkSegYTraceReader.cxx
+++ b/IO/SegY/vtkSegYTraceReader.cxx
@@ -19,6 +19,7 @@
 #include <iostream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkSegYTraceReader::vtkSegYTraceReader()
 {
   this->XCoordinate = 72;
@@ -175,3 +176,4 @@ int vtkSegYTraceReader::GetTraceSize(int numSamples, int formatCode)
   std::cerr << "Unsupported data format code : " << formatCode << std::endl;
   return -1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/SegY/vtkSegYTraceReader.h b/IO/SegY/vtkSegYTraceReader.h
index 1ec763b77115dd292afd63ff538ae1a74b6aa36b..aa4586eb5ff92450a434f672ee77b66ca9fb0b7c 100644
--- a/IO/SegY/vtkSegYTraceReader.h
+++ b/IO/SegY/vtkSegYTraceReader.h
@@ -16,6 +16,8 @@
 #ifndef vtkSegYTraceReader_h
 #define vtkSegYTraceReader_h
 
+#include "vtkABINamespace.h"
+
 #include <fstream>
 #include <vector>
 
@@ -24,6 +26,7 @@
 /*
  * Single Seg-Y trace
  */
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSegYTrace
 {
 public:
@@ -59,5 +62,6 @@ public:
   int GetTraceSize(int numSamples, int formatCode);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSegYTraceReader_h
 // VTK-HeaderTest-Exclude: vtkSegYTraceReader.h
diff --git a/IO/TRUCHAS/vtkTRUCHASReader.cxx b/IO/TRUCHAS/vtkTRUCHASReader.cxx
index 332d1d6b7ed47d590de8bea86fa22d4e48e5d66d..b3c6fa2a64724b164c6e6915bdb31d2559ce9d07 100644
--- a/IO/TRUCHAS/vtkTRUCHASReader.cxx
+++ b/IO/TRUCHAS/vtkTRUCHASReader.cxx
@@ -34,6 +34,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTRUCHASReader::Internal
 {
 public:
@@ -1360,3 +1361,4 @@ const char* vtkTRUCHASReader::GetCellArrayName(int index)
 {
   return this->CellArrayChoices->GetArrayName(index);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/TRUCHAS/vtkTRUCHASReader.h b/IO/TRUCHAS/vtkTRUCHASReader.h
index bb73fe394ad466cf69edfbfd04bb356c1b6715c5..21fe4052eb98ff4462cc0bcf2f47423cc787d949 100644
--- a/IO/TRUCHAS/vtkTRUCHASReader.h
+++ b/IO/TRUCHAS/vtkTRUCHASReader.h
@@ -26,6 +26,7 @@
 #include "vtkIOTRUCHASModule.h" // For export macro
 #include "vtkMultiBlockDataSetAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 
 class VTKIOTRUCHAS_EXPORT vtkTRUCHASReader : public vtkMultiBlockDataSetAlgorithm
@@ -130,4 +131,5 @@ private:
   void operator=(const vtkTRUCHASReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/TecplotTable/vtkTecplotTableReader.cxx b/IO/TecplotTable/vtkTecplotTableReader.cxx
index 6908d410658880460e2a78b637c492b66b743147..9a73b7e5788a16021e7393ee188e974e4a0f9965 100644
--- a/IO/TecplotTable/vtkTecplotTableReader.cxx
+++ b/IO/TecplotTable/vtkTecplotTableReader.cxx
@@ -51,6 +51,7 @@
 /// fields, inserting them into a vtkTable. Based on the iterator from
 /// vtkIOInfoVis::DelimitedTextReader but tailored to Tecplot table files
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -483,3 +484,4 @@ int vtkTecplotTableReader::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/TecplotTable/vtkTecplotTableReader.h b/IO/TecplotTable/vtkTecplotTableReader.h
index 472a355027632de4d7735a68a56779fdcb464f0e..14815a7b5d439d06699facd2a085f964c53df7ac 100644
--- a/IO/TecplotTable/vtkTecplotTableReader.h
+++ b/IO/TecplotTable/vtkTecplotTableReader.h
@@ -37,6 +37,7 @@
 #include "vtkStdString.h"            // Needed for vtkStdString
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOTECPLOTTABLE_EXPORT vtkTecplotTableReader : public vtkTableAlgorithm
 {
 public:
@@ -141,4 +142,5 @@ private:
   void operator=(const vtkTecplotTableReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/VPIC/vtkVPICReader.cxx b/IO/VPIC/vtkVPICReader.cxx
index 04d35ffb2a7489ec1f1bef69a3bcb69f8c7b4f66..de8e28a496e50cd5fac04eff61158a15d82677bb 100644
--- a/IO/VPIC/vtkVPICReader.cxx
+++ b/IO/VPIC/vtkVPICReader.cxx
@@ -33,6 +33,7 @@
 #include "vtkvpic/VPICDataSet.h"
 #include "vtkvpic/VPICView.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVPICReader);
 vtkCxxSetObjectMacro(vtkVPICReader, MPIController, vtkMultiProcessController);
 
@@ -648,3 +649,4 @@ void vtkVPICReader::PrintSelf(ostream& os, vtkIndent indent)
 
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/VPIC/vtkVPICReader.h b/IO/VPIC/vtkVPICReader.h
index 8c17d5142c5fb87bcdbaf5578785e2b97046b465..00664de5b2e0b3612ee216dbbafd0ddc43855abe 100644
--- a/IO/VPIC/vtkVPICReader.h
+++ b/IO/VPIC/vtkVPICReader.h
@@ -32,6 +32,10 @@
 #include "vtkIOVPICModule.h" // For export macro
 #include "vtkImageAlgorithm.h"
 
+class VPICDataSet;
+class GridExchange;
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkDataArraySelection;
 class vtkFloatArray;
@@ -39,9 +43,6 @@ class vtkStdString;
 class vtkMultiProcessController;
 class vtkInformation;
 
-class VPICDataSet;
-class GridExchange;
-
 class VTKIOVPIC_EXPORT vtkVPICReader : public vtkImageAlgorithm
 {
 public:
@@ -174,4 +175,5 @@ private:
   void operator=(const vtkVPICReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/VeraOut/vtkVeraOutReader.cxx b/IO/VeraOut/vtkVeraOutReader.cxx
index 6a300429ffa582c87948314a807c3434aafa22c5..3225a657df58110b9343d5c7c0e97daa2cc8f8a9 100644
--- a/IO/VeraOut/vtkVeraOutReader.cxx
+++ b/IO/VeraOut/vtkVeraOutReader.cxx
@@ -52,6 +52,8 @@
 #define VERA_MAX_DIMENSION 6
 #define DATASET_NAME_MAX_SIZE 1024
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //*****************************************************************************
 class vtkVeraOutReader::Internals
 {
@@ -966,3 +968,4 @@ vtkMTimeType vtkVeraOutReader::GetMTime()
 
   return mTime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/VeraOut/vtkVeraOutReader.h b/IO/VeraOut/vtkVeraOutReader.h
index 31bb8d81b023345f80d08fdb3c38f6e954f58a9a..3bf8dd867f772df259a9b4703454668a2b1c89f3 100644
--- a/IO/VeraOut/vtkVeraOutReader.h
+++ b/IO/VeraOut/vtkVeraOutReader.h
@@ -23,6 +23,7 @@
 // vtkCommonExecutionModel
 #include "vtkRectilinearGridAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArraySelection;
 
 class VTKIOVERAOUT_EXPORT vtkVeraOutReader : public vtkRectilinearGridAlgorithm
@@ -71,4 +72,5 @@ private:
   Internals* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Video/vtkVideoSource.cxx b/IO/Video/vtkVideoSource.cxx
index 385088641caded3f968de3c2daf7018d37a9ab7d..f8b7647acc633a8516306e00f916f755d1e0f0c1 100644
--- a/IO/Video/vtkVideoSource.cxx
+++ b/IO/Video/vtkVideoSource.cxx
@@ -66,6 +66,7 @@
 // Finally, when Execute() is reading from the FrameBuffer it must do
 // so from within a mutex lock.  Otherwise tearing artifacts might result.
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVideoSource);
 
 #if defined(_MSC_VER)
@@ -1195,3 +1196,4 @@ int vtkVideoSource::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Video/vtkVideoSource.h b/IO/Video/vtkVideoSource.h
index c77548e5921e79b7a346de99996770a3e41aa34e..14c00086b590b6eb9158205f9ee112576f6d9f07 100644
--- a/IO/Video/vtkVideoSource.h
+++ b/IO/Video/vtkVideoSource.h
@@ -37,6 +37,7 @@
 
 #include <mutex> // for std::mutex
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTimerLog;
 class vtkMultiThreader;
 class vtkScalarsToColors;
@@ -376,4 +377,5 @@ private:
   void operator=(const vtkVideoSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Video/vtkWin32VideoSource.cxx b/IO/Video/vtkWin32VideoSource.cxx
index b10489fdd8344b7303609531e47d534383610c51..acc38d36d93fcd07e462795f844125e658c7e25e 100644
--- a/IO/Video/vtkWin32VideoSource.cxx
+++ b/IO/Video/vtkWin32VideoSource.cxx
@@ -33,6 +33,7 @@
 #pragma warning(pop)
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWin32VideoSourceInternal
 {
 public:
@@ -1162,3 +1163,4 @@ void vtkWin32VideoSource::DoVFWFormatSetup()
   }
   this->DoVFWFormatCheck();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Video/vtkWin32VideoSource.h b/IO/Video/vtkWin32VideoSource.h
index 2a549c9e3155432839d5e28ee12d023c4d738e49..77e746b6d8f2929958f3b37aacf4aa676421273b 100644
--- a/IO/Video/vtkWin32VideoSource.h
+++ b/IO/Video/vtkWin32VideoSource.h
@@ -34,6 +34,7 @@
 #include "vtkIOVideoModule.h" // For export macro
 #include "vtkVideoSource.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWin32VideoSourceInternal;
 
 class VTKIOVIDEO_EXPORT vtkWin32VideoSource : public vtkVideoSource
@@ -141,4 +142,5 @@ private:
   void operator=(const vtkWin32VideoSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkRTXMLPolyDataReader.cxx b/IO/XML/vtkRTXMLPolyDataReader.cxx
index b98946d9950cda256869984ce741b1288bc7b1fd..bd0dce23964d9ef2083d6623a871123ab6445364 100644
--- a/IO/XML/vtkRTXMLPolyDataReader.cxx
+++ b/IO/XML/vtkRTXMLPolyDataReader.cxx
@@ -18,6 +18,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRTXMLPolyDataReader);
 
 class vtkRTXMLPolyDataReaderInternals
@@ -210,3 +211,4 @@ void vtkRTXMLPolyDataReader::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "DataLocation: " << (this->DataLocation ? this->DataLocation : "(none)") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkRTXMLPolyDataReader.h b/IO/XML/vtkRTXMLPolyDataReader.h
index ed26c6cf493f5b89edf4e4bb90bacb181a94d1fb..dcfb4db054c834df577f2da6199868360fd7f502 100644
--- a/IO/XML/vtkRTXMLPolyDataReader.h
+++ b/IO/XML/vtkRTXMLPolyDataReader.h
@@ -26,6 +26,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLPolyDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRTXMLPolyDataReaderInternals;
 
 class VTKIOXML_EXPORT vtkRTXMLPolyDataReader : public vtkXMLPolyDataReader
@@ -97,4 +98,5 @@ private:
   void operator=(const vtkRTXMLPolyDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLCompositeDataReader.cxx b/IO/XML/vtkXMLCompositeDataReader.cxx
index 849068252dd79ab05fddd3152f0f6619bffd7664..de71a351157610fe889c8956b4384ffb760bcc32 100644
--- a/IO/XML/vtkXMLCompositeDataReader.cxx
+++ b/IO/XML/vtkXMLCompositeDataReader.cxx
@@ -46,6 +46,7 @@
 #include <set>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkXMLCompositeDataReaderEntry
 {
   const char* extension;
@@ -567,3 +568,4 @@ const vtkXMLCompositeDataReaderEntry vtkXMLCompositeDataReaderInternals::ReaderL
   { "vts", "vtkXMLStructuredGridReader" }, { "vtt", "vtkXMLTableReader" },
   { "htg", "vtkXMLHyperTreeGridReader" }, { nullptr, nullptr }
 };
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLCompositeDataReader.h b/IO/XML/vtkXMLCompositeDataReader.h
index 1c36ba916bdf83b2f17d2153f350ba6618c4d8c4..446f09ea69822149f11ae98aacbbcecfef36faae 100644
--- a/IO/XML/vtkXMLCompositeDataReader.h
+++ b/IO/XML/vtkXMLCompositeDataReader.h
@@ -32,14 +32,17 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataSet;
 class vtkInformationIntegerKey;
 class vtkInformationIntegerVectorKey;
 struct vtkXMLCompositeDataReaderInternals;
 
+VTK_ABI_NAMESPACE_END
 #include <set>    // for std::set
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOXML_EXPORT vtkXMLCompositeDataReader : public vtkXMLReader
 {
 public:
@@ -171,4 +174,5 @@ private:
   vtkXMLCompositeDataReaderInternals* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLCompositeDataWriter.cxx b/IO/XML/vtkXMLCompositeDataWriter.cxx
index 34e3b49c02a59e9053be08e1b661933016c0fad5..b57ae6d8c15d53f8541e947aa395c18b02f5a708 100644
--- a/IO/XML/vtkXMLCompositeDataWriter.cxx
+++ b/IO/XML/vtkXMLCompositeDataWriter.cxx
@@ -47,6 +47,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXMLCompositeDataWriterInternals
 {
   // These are used to by GetDefaultFileExtension(). This helps us avoid
@@ -613,3 +614,4 @@ void vtkXMLCompositeDataWriter::RemoveWrittenFiles(const char* SubDirectory)
   this->DeleteAFile();
   this->InputInformation = nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLCompositeDataWriter.h b/IO/XML/vtkXMLCompositeDataWriter.h
index ead4500a26888650f50a0cccb6f3f6a454af9380..daa68c0da79be0e648554df3cec684891a7bab76 100644
--- a/IO/XML/vtkXMLCompositeDataWriter.h
+++ b/IO/XML/vtkXMLCompositeDataWriter.h
@@ -30,6 +30,7 @@
 #include "vtkStdString.h"   // needed for vtkStdString.
 #include "vtkXMLWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkCompositeDataSet;
 class vtkXMLDataElement;
@@ -203,4 +204,5 @@ private:
   void operator=(const vtkXMLCompositeDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLDataObjectWriter.cxx b/IO/XML/vtkXMLDataObjectWriter.cxx
index a164ae71970d33076b4474a93b54c6bf02a8509f..d87807862253220e93e0dcbab13c9b6a5da6a981 100644
--- a/IO/XML/vtkXMLDataObjectWriter.cxx
+++ b/IO/XML/vtkXMLDataObjectWriter.cxx
@@ -33,6 +33,7 @@
 #include "vtkXMLTableWriter.h"
 #include "vtkXMLUnstructuredGridWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLDataObjectWriter);
 
 //------------------------------------------------------------------------------
@@ -166,3 +167,4 @@ int vtkXMLDataObjectWriter::FillInputPortInformation(int vtkNotUsed(port), vtkIn
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkDataObject");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLDataObjectWriter.h b/IO/XML/vtkXMLDataObjectWriter.h
index 52d0804306aa5c1449766944da0ee173bd7385fd..5d1c1d274c475738e1fb9cf5015ad02d98998e49 100644
--- a/IO/XML/vtkXMLDataObjectWriter.h
+++ b/IO/XML/vtkXMLDataObjectWriter.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 
 class VTKIOXML_EXPORT vtkXMLDataObjectWriter : public vtkXMLWriter
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkXMLDataObjectWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLDataReader.cxx b/IO/XML/vtkXMLDataReader.cxx
index 5713f8a0e1b804c670cc0db6c8edba4a0e47b2c6..b8790c79829f34965f29ff450afd2cb5acb1a1cd 100644
--- a/IO/XML/vtkXMLDataReader.cxx
+++ b/IO/XML/vtkXMLDataReader.cxx
@@ -31,6 +31,7 @@
 #include <cassert>
 #include <map> // needed for std::map
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXMLDataReader::MapStringToInt : public std::map<std::string, int>
 {
 };
@@ -675,3 +676,4 @@ int vtkXMLDataReader::CellDataNeedToReadTimeStep(vtkXMLDataElement* eNested)
   // all other cases we don't need to read:
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLDataReader.h b/IO/XML/vtkXMLDataReader.h
index 227443ceec2716d0cc882870267942bd75b4b0a4..83bcd65abee4ba91f6919d57dc602dff115ffa26 100644
--- a/IO/XML/vtkXMLDataReader.h
+++ b/IO/XML/vtkXMLDataReader.h
@@ -32,6 +32,7 @@
 
 #include <memory> // for std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOXML_EXPORT vtkXMLDataReader : public vtkXMLReader
 {
 public:
@@ -128,4 +129,5 @@ private:
     FieldType type, vtkAbstractArray* data, vtkIdType startIndex, vtkIdType numValues) override;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLDataSetWriter.cxx b/IO/XML/vtkXMLDataSetWriter.cxx
index 42275f28fecfb7c13951254096622f4e7c8acabf..fe3eef4a20251fd4f650ef9ed581eada50d99d26 100644
--- a/IO/XML/vtkXMLDataSetWriter.cxx
+++ b/IO/XML/vtkXMLDataSetWriter.cxx
@@ -31,6 +31,7 @@
 #include "vtkXMLStructuredGridWriter.h"
 #include "vtkXMLUnstructuredGridWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLDataSetWriter);
 
 //------------------------------------------------------------------------------
@@ -51,3 +52,4 @@ int vtkXMLDataSetWriter::FillInputPortInformation(int vtkNotUsed(port), vtkInfor
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLDataSetWriter.h b/IO/XML/vtkXMLDataSetWriter.h
index 258fa10e747d5022cc93fd0ccbf29e5448926bf2..53b254f4fc74225fa022894815638c04c7402a9e 100644
--- a/IO/XML/vtkXMLDataSetWriter.h
+++ b/IO/XML/vtkXMLDataSetWriter.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLDataObjectWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 
 class VTKIOXML_EXPORT vtkXMLDataSetWriter : public vtkXMLDataObjectWriter
@@ -53,4 +54,5 @@ private:
   void operator=(const vtkXMLDataSetWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLFileReadTester.cxx b/IO/XML/vtkXMLFileReadTester.cxx
index 2ae857d4fb47f1ef786301802f19e264e26446b2..b508b8f11bc91df27fd1af4876ec1556c00bf54c 100644
--- a/IO/XML/vtkXMLFileReadTester.cxx
+++ b/IO/XML/vtkXMLFileReadTester.cxx
@@ -16,6 +16,7 @@
 #include "vtkObjectFactory.h"
 #include "vtksys/FStream.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLFileReadTester);
 
 //------------------------------------------------------------------------------
@@ -87,3 +88,4 @@ int vtkXMLFileReadTester::ParsingComplete()
 {
   return this->Done ? 1 : 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLFileReadTester.h b/IO/XML/vtkXMLFileReadTester.h
index 5cb71f2c3b8193ac4327cbcc05f7a4f9295b80ba..c829ba6c720d7f913bf46140e59746c10aace56c 100644
--- a/IO/XML/vtkXMLFileReadTester.h
+++ b/IO/XML/vtkXMLFileReadTester.h
@@ -27,6 +27,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLParser.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOXML_EXPORT vtkXMLFileReadTester : public vtkXMLParser
 {
 public:
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkXMLFileReadTester&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLGenericDataObjectReader.cxx b/IO/XML/vtkXMLGenericDataObjectReader.cxx
index 19b28ea746fe29115a073a22bb6dc8c3d5518de9..c3e093c1c56873f4659407148446ce4acae4c344 100644
--- a/IO/XML/vtkXMLGenericDataObjectReader.cxx
+++ b/IO/XML/vtkXMLGenericDataObjectReader.cxx
@@ -45,6 +45,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLGenericDataObjectReader);
 
 //------------------------------------------------------------------------------
@@ -444,3 +445,4 @@ vtkIdType vtkXMLGenericDataObjectReader::GetNumberOfCells()
   }
   return numCells;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLGenericDataObjectReader.h b/IO/XML/vtkXMLGenericDataObjectReader.h
index 66e52dd6bfa7db25bd0b1212bce352937a37c3bf..d88ed5298a5d680cbb74929a0ce90f63dac2c86e 100644
--- a/IO/XML/vtkXMLGenericDataObjectReader.h
+++ b/IO/XML/vtkXMLGenericDataObjectReader.h
@@ -30,6 +30,7 @@
 #include "vtkSmartPointer.h" // for API
 #include "vtkXMLDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHierarchicalBoxDataSet;
 class vtkMultiBlockDataSet;
 class vtkImageData;
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkXMLGenericDataObjectReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLHierarchicalBoxDataFileConverter.cxx b/IO/XML/vtkXMLHierarchicalBoxDataFileConverter.cxx
index 7adeee7c5b67d9a8ff6ed7f45bd449b6b73127cc..2dbd64c81fbcb2ca34b4579411b5b503d908fe12 100644
--- a/IO/XML/vtkXMLHierarchicalBoxDataFileConverter.cxx
+++ b/IO/XML/vtkXMLHierarchicalBoxDataFileConverter.cxx
@@ -34,6 +34,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLHierarchicalBoxDataFileConverter);
 //------------------------------------------------------------------------------
 vtkXMLHierarchicalBoxDataFileConverter::vtkXMLHierarchicalBoxDataFileConverter()
@@ -299,3 +300,4 @@ void vtkXMLHierarchicalBoxDataFileConverter::PrintSelf(ostream& os, vtkIndent in
   os << indent << "OutputFileName: " << (this->OutputFileName ? this->OutputFileName : "(none)")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLHierarchicalBoxDataFileConverter.h b/IO/XML/vtkXMLHierarchicalBoxDataFileConverter.h
index a1127b84dd5e0f197ecd376fc5b1f0e799aa4115..cfd338c7c9a4b11f755e805bddeccab6c036f57d 100644
--- a/IO/XML/vtkXMLHierarchicalBoxDataFileConverter.h
+++ b/IO/XML/vtkXMLHierarchicalBoxDataFileConverter.h
@@ -28,6 +28,7 @@
 #include "vtkIOXMLModule.h" // needed for export macro.
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXMLDataElement;
 
 class VTKIOXML_EXPORT vtkXMLHierarchicalBoxDataFileConverter : public vtkObject
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkXMLHierarchicalBoxDataFileConverter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLHierarchicalBoxDataReader.cxx b/IO/XML/vtkXMLHierarchicalBoxDataReader.cxx
index 52710cf2e7a548474c333b1cb8cc38334c57b885..69faeddf6904b267c306b4c0157bcc8c7768ba2e 100644
--- a/IO/XML/vtkXMLHierarchicalBoxDataReader.cxx
+++ b/IO/XML/vtkXMLHierarchicalBoxDataReader.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLHierarchicalBoxDataReader);
 
 //------------------------------------------------------------------------------
@@ -29,3 +30,4 @@ void vtkXMLHierarchicalBoxDataReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLHierarchicalBoxDataReader.h b/IO/XML/vtkXMLHierarchicalBoxDataReader.h
index 37eec5270f68a6ee46793c752eec954e8b53a6eb..247b07f01a78721ad0c9dba0e67580f98f861d48 100644
--- a/IO/XML/vtkXMLHierarchicalBoxDataReader.h
+++ b/IO/XML/vtkXMLHierarchicalBoxDataReader.h
@@ -32,6 +32,7 @@
 
 #include "vtkXMLUniformGridAMRReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOXML_EXPORT vtkXMLHierarchicalBoxDataReader : public vtkXMLUniformGridAMRReader
 {
 public:
@@ -48,4 +49,5 @@ private:
   void operator=(const vtkXMLHierarchicalBoxDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLHierarchicalBoxDataWriter.cxx b/IO/XML/vtkXMLHierarchicalBoxDataWriter.cxx
index 8a9db71fa85d6d0c4a1f4c886895fa0bbb222712..77527e54ec57aad175acf7de93c184badb1b5038 100644
--- a/IO/XML/vtkXMLHierarchicalBoxDataWriter.cxx
+++ b/IO/XML/vtkXMLHierarchicalBoxDataWriter.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLHierarchicalBoxDataWriter);
 //------------------------------------------------------------------------------
 vtkXMLHierarchicalBoxDataWriter::vtkXMLHierarchicalBoxDataWriter() = default;
@@ -28,3 +29,4 @@ void vtkXMLHierarchicalBoxDataWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLHierarchicalBoxDataWriter.h b/IO/XML/vtkXMLHierarchicalBoxDataWriter.h
index 2dac822bf3643acbc1959e045e3c91b99c2f57ce..f609d915f6765f87d38e0f2d50689ad4bf889498 100644
--- a/IO/XML/vtkXMLHierarchicalBoxDataWriter.h
+++ b/IO/XML/vtkXMLHierarchicalBoxDataWriter.h
@@ -27,6 +27,7 @@
 
 #include "vtkXMLUniformGridAMRWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOXML_EXPORT vtkXMLHierarchicalBoxDataWriter : public vtkXMLUniformGridAMRWriter
 {
 public:
@@ -48,4 +49,5 @@ private:
   void operator=(const vtkXMLHierarchicalBoxDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLHierarchicalDataReader.cxx b/IO/XML/vtkXMLHierarchicalDataReader.cxx
index 48305e3928569849d0ae7d0fdf26ac489760528a..18ab8751ef2b976d194103002846f500c1e82d1d 100644
--- a/IO/XML/vtkXMLHierarchicalDataReader.cxx
+++ b/IO/XML/vtkXMLHierarchicalDataReader.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLHierarchicalDataReader);
 //------------------------------------------------------------------------------
 vtkXMLHierarchicalDataReader::vtkXMLHierarchicalDataReader() = default;
@@ -28,3 +29,4 @@ void vtkXMLHierarchicalDataReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLHierarchicalDataReader.h b/IO/XML/vtkXMLHierarchicalDataReader.h
index 2e6ebb5aedc043baa69dd6d83b27a1200a164267..76e1972ff0c1507571a41dcd2b57b55d67782ac1 100644
--- a/IO/XML/vtkXMLHierarchicalDataReader.h
+++ b/IO/XML/vtkXMLHierarchicalDataReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLMultiGroupDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHierarchicalDataSet;
 
 class VTKIOXML_EXPORT vtkXMLHierarchicalDataReader : public vtkXMLMultiGroupDataReader
@@ -53,4 +54,5 @@ private:
   void operator=(const vtkXMLHierarchicalDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLHyperTreeGridReader.cxx b/IO/XML/vtkXMLHyperTreeGridReader.cxx
index 760772ad807be366371f298cd0741cae80c68f73..b88a5ad4da0a568cd4a44e9fca1eb05abd55952e 100644
--- a/IO/XML/vtkXMLHyperTreeGridReader.cxx
+++ b/IO/XML/vtkXMLHyperTreeGridReader.cxx
@@ -36,6 +36,7 @@
 #include <limits>
 #include <numeric>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLHyperTreeGridReader);
 
 //------------------------------------------------------------------------------
@@ -1052,3 +1053,4 @@ void vtkXMLHyperTreeGridReader::ReadTrees_2(vtkXMLDataElement* element)
     inputOffset += treeSize;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLHyperTreeGridReader.h b/IO/XML/vtkXMLHyperTreeGridReader.h
index ff762be02d7b5b8644cb333b00de5a5b493a35f6..963d12062befa061fe6c9785f62280e5b30d6575 100644
--- a/IO/XML/vtkXMLHyperTreeGridReader.h
+++ b/IO/XML/vtkXMLHyperTreeGridReader.h
@@ -47,6 +47,7 @@
 #include <limits.h> // Use internal
 #include <map>      // Use internal
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkHyperTree;
 class vtkHyperTreeGrid;
@@ -219,4 +220,5 @@ private:
   void operator=(const vtkXMLHyperTreeGridReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLHyperTreeGridWriter.cxx b/IO/XML/vtkXMLHyperTreeGridWriter.cxx
index e81b74108c2f0e96218457848f224bf02bc4bb8b..62b2ba515be2fce8474ffc168e918085fe02dafe 100644
--- a/IO/XML/vtkXMLHyperTreeGridWriter.cxx
+++ b/IO/XML/vtkXMLHyperTreeGridWriter.cxx
@@ -36,6 +36,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLHyperTreeGridWriter);
 
 //------------------------------------------------------------------------------
@@ -1005,3 +1006,4 @@ void vtkXMLHyperTreeGridWriter::HyperTreeGridMetaDataForVersion2::Initialize()
   this->DepthPerTree = nullptr;
   this->BreadthFirstIdMap = nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLHyperTreeGridWriter.h b/IO/XML/vtkXMLHyperTreeGridWriter.h
index 20595ec861a054ca9c6550e964fb1889077ade4b..9e57bdc89c80444cd70e1609f1cdda34651a1511 100644
--- a/IO/XML/vtkXMLHyperTreeGridWriter.h
+++ b/IO/XML/vtkXMLHyperTreeGridWriter.h
@@ -69,6 +69,7 @@
 
 #include <vector> // std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class OffsetsManagerGroup;
 class OffsetsManagerArray;
 class vtkBitArray;
@@ -193,4 +194,5 @@ private:
   void operator=(const vtkXMLHyperTreeGridWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLImageDataReader.cxx b/IO/XML/vtkXMLImageDataReader.cxx
index 5ef1ff4efac16327bc35bb459aff8062c24e0014..36e367b80f35928d7133497710614d653bee1bc4 100644
--- a/IO/XML/vtkXMLImageDataReader.cxx
+++ b/IO/XML/vtkXMLImageDataReader.cxx
@@ -23,6 +23,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkXMLDataElement.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLImageDataReader);
 
 //------------------------------------------------------------------------------
@@ -139,3 +140,4 @@ int vtkXMLImageDataReader::FillOutputPortInformation(int, vtkInformation* info)
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkImageData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLImageDataReader.h b/IO/XML/vtkXMLImageDataReader.h
index 1435b7c5b6207aedc9fe848f52a77b12d7e9d39d..882fe426732729223c40c05dac5a74b146617ca5 100644
--- a/IO/XML/vtkXMLImageDataReader.h
+++ b/IO/XML/vtkXMLImageDataReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLStructuredDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKIOXML_EXPORT vtkXMLImageDataReader : public vtkXMLStructuredDataReader
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkXMLImageDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLImageDataWriter.cxx b/IO/XML/vtkXMLImageDataWriter.cxx
index 108f1d84ea48127964d4a864c2efc4e794c95b08..411e49f67f028af0f8196bf43a97c1ca48c068af 100644
--- a/IO/XML/vtkXMLImageDataWriter.cxx
+++ b/IO/XML/vtkXMLImageDataWriter.cxx
@@ -18,6 +18,7 @@
 #include "vtkMatrix3x3.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLImageDataWriter);
 
 //------------------------------------------------------------------------------
@@ -72,3 +73,4 @@ int vtkXMLImageDataWriter::FillInputPortInformation(int vtkNotUsed(port), vtkInf
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkImageData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLImageDataWriter.h b/IO/XML/vtkXMLImageDataWriter.h
index 63028378101026afeeecfa83b09edbb0c889d493..cf78fcad1b10d6c254b93cf87c8263e274c8b107 100644
--- a/IO/XML/vtkXMLImageDataWriter.h
+++ b/IO/XML/vtkXMLImageDataWriter.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLStructuredDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKIOXML_EXPORT vtkXMLImageDataWriter : public vtkXMLStructuredDataWriter
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkXMLImageDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLMultiBlockDataReader.cxx b/IO/XML/vtkXMLMultiBlockDataReader.cxx
index ceada9891f076bca155470aa37c8c36350e33543..a516c325edf591c66a9cc1e84df5a6a3ceb61fe4 100644
--- a/IO/XML/vtkXMLMultiBlockDataReader.cxx
+++ b/IO/XML/vtkXMLMultiBlockDataReader.cxx
@@ -26,6 +26,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkXMLDataElement.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLMultiBlockDataReader);
 //------------------------------------------------------------------------------
 vtkXMLMultiBlockDataReader::vtkXMLMultiBlockDataReader() = default;
@@ -391,3 +392,4 @@ int vtkXMLMultiBlockDataReader::RequestInformation(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLMultiBlockDataReader.h b/IO/XML/vtkXMLMultiBlockDataReader.h
index bb5059973064ba059485af986979439de21a51c9..f43cb04c0acf3e4e88ba509412177ef5981cc5d4 100644
--- a/IO/XML/vtkXMLMultiBlockDataReader.h
+++ b/IO/XML/vtkXMLMultiBlockDataReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLCompositeDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 
 class VTKIOXML_EXPORT vtkXMLMultiBlockDataReader : public vtkXMLCompositeDataReader
@@ -71,4 +72,5 @@ private:
   bool DistributePiecesInMultiPieces;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLMultiBlockDataWriter.cxx b/IO/XML/vtkXMLMultiBlockDataWriter.cxx
index b9bbc13f54e4c71b128d20f81546ec88bbbab482..5c28fb6024c7e3bb7d820eadc29046233ad34f9e 100644
--- a/IO/XML/vtkXMLMultiBlockDataWriter.cxx
+++ b/IO/XML/vtkXMLMultiBlockDataWriter.cxx
@@ -21,6 +21,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkXMLDataElement.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLMultiBlockDataWriter);
 //------------------------------------------------------------------------------
 vtkXMLMultiBlockDataWriter::vtkXMLMultiBlockDataWriter() = default;
@@ -130,3 +131,4 @@ void vtkXMLMultiBlockDataWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLMultiBlockDataWriter.h b/IO/XML/vtkXMLMultiBlockDataWriter.h
index 3d24493e32428c76de5a303c5de36787589e177c..3e7885d11a787c0dd4d35fbe6bed2d3786ddcc91 100644
--- a/IO/XML/vtkXMLMultiBlockDataWriter.h
+++ b/IO/XML/vtkXMLMultiBlockDataWriter.h
@@ -26,6 +26,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLCompositeDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOXML_EXPORT vtkXMLMultiBlockDataWriter : public vtkXMLCompositeDataWriter
 {
 public:
@@ -54,4 +55,5 @@ private:
   void operator=(const vtkXMLMultiBlockDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLMultiGroupDataReader.cxx b/IO/XML/vtkXMLMultiGroupDataReader.cxx
index d09a0cf1614abf763f910f49c68428faccc6c474..70f070b1ada2e905a46774a8ead3f2064cd5f238 100644
--- a/IO/XML/vtkXMLMultiGroupDataReader.cxx
+++ b/IO/XML/vtkXMLMultiGroupDataReader.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLMultiGroupDataReader);
 //------------------------------------------------------------------------------
 vtkXMLMultiGroupDataReader::vtkXMLMultiGroupDataReader() = default;
@@ -28,3 +29,4 @@ void vtkXMLMultiGroupDataReader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLMultiGroupDataReader.h b/IO/XML/vtkXMLMultiGroupDataReader.h
index b525028655be0ff99fb849c126cf1984ce7517dd..955c085787ce48aa4606c485da160dbfae5939eb 100644
--- a/IO/XML/vtkXMLMultiGroupDataReader.h
+++ b/IO/XML/vtkXMLMultiGroupDataReader.h
@@ -26,6 +26,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLMultiBlockDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOXML_EXPORT vtkXMLMultiGroupDataReader : public vtkXMLMultiBlockDataReader
 {
 public:
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkXMLMultiGroupDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLOffsetsManager.h b/IO/XML/vtkXMLOffsetsManager.h
index bb7b84716f452f5ca1f09f04467bb5b2c0490f7f..7ee3f45b3d3d1882839d079ba96a6265e8d7a689 100644
--- a/IO/XML/vtkXMLOffsetsManager.h
+++ b/IO/XML/vtkXMLOffsetsManager.h
@@ -51,6 +51,7 @@
 #include <vector>
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class OffsetsManager
 {
 public:
@@ -185,5 +186,6 @@ private:
   std::vector<OffsetsManagerGroup> Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkXMLOffsetsManager.h
diff --git a/IO/XML/vtkXMLPDataObjectReader.cxx b/IO/XML/vtkXMLPDataObjectReader.cxx
index 71e15ef78625b96c77d0a005ec3d154526139758..842b50cf87f98f1d3687a02bb417a6569af876de 100644
--- a/IO/XML/vtkXMLPDataObjectReader.cxx
+++ b/IO/XML/vtkXMLPDataObjectReader.cxx
@@ -21,6 +21,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkXMLPDataObjectReader::vtkXMLPDataObjectReader()
 {
   this->NumberOfPieces = 0;
@@ -191,3 +192,4 @@ int vtkXMLPDataObjectReader::ReadPiece(vtkXMLDataElement* ePiece, int index)
   this->Piece = index;
   return this->ReadPiece(ePiece);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPDataObjectReader.h b/IO/XML/vtkXMLPDataObjectReader.h
index 0d8e99c624f92405c88ccd99afcbf6af09b58a55..8b7e505b1a341a80790bb657d2f4dd2df2b4211a 100644
--- a/IO/XML/vtkXMLPDataObjectReader.h
+++ b/IO/XML/vtkXMLPDataObjectReader.h
@@ -26,6 +26,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOXML_EXPORT vtkXMLPDataObjectReader : public vtkXMLReader
 {
 public:
@@ -122,4 +123,5 @@ private:
   void operator=(const vtkXMLPDataObjectReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPDataReader.cxx b/IO/XML/vtkXMLPDataReader.cxx
index 43a89f56546c59145a63f684a3fab6e9c350150d..f83863847d5aa98653a8a9a436ff481d4fcd7a3d 100644
--- a/IO/XML/vtkXMLPDataReader.cxx
+++ b/IO/XML/vtkXMLPDataReader.cxx
@@ -30,6 +30,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkXMLPDataReader::vtkXMLPDataReader()
 {
   this->GhostLevel = 0;
@@ -423,3 +424,4 @@ void vtkXMLPDataReader::PieceProgressCallback()
     this->PieceReaders[this->Piece]->SetAbortExecute(1);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPDataReader.h b/IO/XML/vtkXMLPDataReader.h
index 214d6e6124f18a7eda0a9c8b197ac5278d9966e9..6a79acc4395fc43700adba3f35b3a763d1ff9541 100644
--- a/IO/XML/vtkXMLPDataReader.h
+++ b/IO/XML/vtkXMLPDataReader.h
@@ -30,6 +30,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLPDataObjectReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkDataSet;
 class vtkXMLDataReader;
@@ -141,4 +142,5 @@ private:
   void operator=(const vtkXMLPDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPHyperTreeGridReader.cxx b/IO/XML/vtkXMLPHyperTreeGridReader.cxx
index c43e07f7cf0f8537e5ea091c652b7282134337b9..340b43761149d3564cbe7755fd58fb18be666f0f 100644
--- a/IO/XML/vtkXMLPHyperTreeGridReader.cxx
+++ b/IO/XML/vtkXMLPHyperTreeGridReader.cxx
@@ -31,6 +31,7 @@
 #include <cassert>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPHyperTreeGridReader);
 
 //------------------------------------------------------------------------------
@@ -622,3 +623,4 @@ void vtkXMLPHyperTreeGridReader::RecursivelyProcessTree(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPHyperTreeGridReader.h b/IO/XML/vtkXMLPHyperTreeGridReader.h
index d99a774fb8ad650000636a18c5a594d36ae8823e..b90632f752d1a000a7a7b9be9e52fa30341efd0e 100644
--- a/IO/XML/vtkXMLPHyperTreeGridReader.h
+++ b/IO/XML/vtkXMLPHyperTreeGridReader.h
@@ -31,6 +31,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLPDataObjectReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTreeCursor;
 class vtkHyperTreeGrid;
 class vtkHyperTreeGridNonOrientedCursor;
@@ -188,4 +189,5 @@ private:
   void operator=(const vtkXMLPHyperTreeGridReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPImageDataReader.cxx b/IO/XML/vtkXMLPImageDataReader.cxx
index 0eeb8494349051d49bd52c61475ba970db484dca..7bc9470319a24f6640e33f02726d641196c92473 100644
--- a/IO/XML/vtkXMLPImageDataReader.cxx
+++ b/IO/XML/vtkXMLPImageDataReader.cxx
@@ -23,6 +23,7 @@
 #include "vtkXMLDataElement.h"
 #include "vtkXMLImageDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPImageDataReader);
 
 //------------------------------------------------------------------------------
@@ -146,3 +147,4 @@ int vtkXMLPImageDataReader::FillOutputPortInformation(int, vtkInformation* info)
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkImageData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPImageDataReader.h b/IO/XML/vtkXMLPImageDataReader.h
index f50d304ad00c4ea0551473f3ef5c8010a9fb72e0..cec5b35136d00f1ae5f4d88b09ef97b9143f9ddd 100644
--- a/IO/XML/vtkXMLPImageDataReader.h
+++ b/IO/XML/vtkXMLPImageDataReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLPStructuredDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKIOXML_EXPORT vtkXMLPImageDataReader : public vtkXMLPStructuredDataReader
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkXMLPImageDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPPolyDataReader.cxx b/IO/XML/vtkXMLPPolyDataReader.cxx
index 0956994c6d6e50ad95ea38b1ece14749fdb79e22..e7bb0c942a2933da2dec277c9732e85a0bb50024 100644
--- a/IO/XML/vtkXMLPPolyDataReader.cxx
+++ b/IO/XML/vtkXMLPPolyDataReader.cxx
@@ -24,6 +24,7 @@
 #include "vtkXMLDataElement.h"
 #include "vtkXMLPolyDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPPolyDataReader);
 
 //------------------------------------------------------------------------------
@@ -263,3 +264,4 @@ int vtkXMLPPolyDataReader::FillOutputPortInformation(int, vtkInformation* info)
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkPolyData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPPolyDataReader.h b/IO/XML/vtkXMLPPolyDataReader.h
index 5148e26d1efa0f19e6e72a2a6df8a644802732b9..54422a48c8fafe6370c9810abd1866179cea8cb1 100644
--- a/IO/XML/vtkXMLPPolyDataReader.h
+++ b/IO/XML/vtkXMLPPolyDataReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLPUnstructuredDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkPolyData;
 
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkXMLPPolyDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPRectilinearGridReader.cxx b/IO/XML/vtkXMLPRectilinearGridReader.cxx
index 2cc51080b3071368fc04974080f42fc00db8290d..e91c863d1668f3286b852d23b3a0f68b9a286838 100644
--- a/IO/XML/vtkXMLPRectilinearGridReader.cxx
+++ b/IO/XML/vtkXMLPRectilinearGridReader.cxx
@@ -22,6 +22,7 @@
 #include "vtkXMLDataElement.h"
 #include "vtkXMLRectilinearGridReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPRectilinearGridReader);
 
 //------------------------------------------------------------------------------
@@ -221,3 +222,4 @@ int vtkXMLPRectilinearGridReader::FillOutputPortInformation(int, vtkInformation*
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkRectilinearGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPRectilinearGridReader.h b/IO/XML/vtkXMLPRectilinearGridReader.h
index b7c34162777b27c5f58221d9a98f135927f900b9..c3c82054a0522d2934ba074b367b9018e023d0da 100644
--- a/IO/XML/vtkXMLPRectilinearGridReader.h
+++ b/IO/XML/vtkXMLPRectilinearGridReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLPStructuredDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRectilinearGrid;
 
 class VTKIOXML_EXPORT vtkXMLPRectilinearGridReader : public vtkXMLPStructuredDataReader
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkXMLPRectilinearGridReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPStructuredDataReader.cxx b/IO/XML/vtkXMLPStructuredDataReader.cxx
index 56fb9027e529a26f0f03ef8b304bb7ec7235195e..e05d5667b6580a1a56b3a9d5d55f846603177ca7 100644
--- a/IO/XML/vtkXMLPStructuredDataReader.cxx
+++ b/IO/XML/vtkXMLPStructuredDataReader.cxx
@@ -26,6 +26,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkXMLPStructuredDataReader::vtkXMLPStructuredDataReader()
 {
   this->ExtentSplitter = vtkExtentSplitter::New();
@@ -432,3 +433,4 @@ int vtkXMLPStructuredDataReader::ComputePieceSubExtents()
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPStructuredDataReader.h b/IO/XML/vtkXMLPStructuredDataReader.h
index 646ab688552b1ef9a3a227ede4a2e29bdab21965..0766c552d9860546d4b2120cf50ad5b6bec4b5f5 100644
--- a/IO/XML/vtkXMLPStructuredDataReader.h
+++ b/IO/XML/vtkXMLPStructuredDataReader.h
@@ -30,6 +30,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLPDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkExtentSplitter;
 class vtkXMLStructuredDataReader;
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkXMLPStructuredDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPStructuredGridReader.cxx b/IO/XML/vtkXMLPStructuredGridReader.cxx
index 7d4e2c5a2d8e48d7be89258090250f395c4f26de..ae2d625869be2b214d2bddbb3b621eef220c50b5 100644
--- a/IO/XML/vtkXMLPStructuredGridReader.cxx
+++ b/IO/XML/vtkXMLPStructuredGridReader.cxx
@@ -22,6 +22,7 @@
 #include "vtkXMLDataElement.h"
 #include "vtkXMLStructuredGridReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPStructuredGridReader);
 
 //------------------------------------------------------------------------------
@@ -175,3 +176,4 @@ int vtkXMLPStructuredGridReader::FillOutputPortInformation(int, vtkInformation*
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkStructuredGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPStructuredGridReader.h b/IO/XML/vtkXMLPStructuredGridReader.h
index 853b949676b242dc60f51bd6c87b926fae4e338f..1965fd7a3c2612805350d1f573f6210909563205 100644
--- a/IO/XML/vtkXMLPStructuredGridReader.h
+++ b/IO/XML/vtkXMLPStructuredGridReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLPStructuredDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStructuredGrid;
 
 class VTKIOXML_EXPORT vtkXMLPStructuredGridReader : public vtkXMLPStructuredDataReader
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkXMLPStructuredGridReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPTableReader.cxx b/IO/XML/vtkXMLPTableReader.cxx
index f943538f14368e4ea358ca010d2543b2891afb4a..69b21c0aceeb9f94eb0f788e5cc2370795c2199f 100644
--- a/IO/XML/vtkXMLPTableReader.cxx
+++ b/IO/XML/vtkXMLPTableReader.cxx
@@ -30,6 +30,7 @@
 #include <cassert>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPTableReader);
 
 //------------------------------------------------------------------------------
@@ -600,3 +601,4 @@ void vtkXMLPTableReader::SetColumnArrayStatus(const char* name, int status)
     this->ColumnSelection->DisableArray(name);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPTableReader.h b/IO/XML/vtkXMLPTableReader.h
index f76e8e0ae13d56d724946af37c4bf5ff2e56c081..9b122def24a5998aa510a23b192f88d09cf8b014 100644
--- a/IO/XML/vtkXMLPTableReader.h
+++ b/IO/XML/vtkXMLPTableReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLPDataObjectReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTable;
 class vtkXMLTableReader;
 
@@ -234,4 +235,5 @@ private:
   void operator=(const vtkXMLPTableReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPUnstructuredDataReader.cxx b/IO/XML/vtkXMLPUnstructuredDataReader.cxx
index 4963a6d2c052fce522448ca07758e3125a537537..663bc1e6aed403537a38ec83413671c084b88b4b 100644
--- a/IO/XML/vtkXMLPUnstructuredDataReader.cxx
+++ b/IO/XML/vtkXMLPUnstructuredDataReader.cxx
@@ -26,6 +26,7 @@
 #include "vtkXMLUnstructuredDataReader.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkXMLPUnstructuredDataReader::vtkXMLPUnstructuredDataReader()
 {
   this->TotalNumberOfPoints = 0;
@@ -392,3 +393,4 @@ int vtkXMLPUnstructuredDataReader::RequestInformation(
   outInfo->Set(CAN_HANDLE_PIECE_REQUEST(), 1);
   return this->Superclass::RequestInformation(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPUnstructuredDataReader.h b/IO/XML/vtkXMLPUnstructuredDataReader.h
index cade342dad460dd73be62b427648177e09bc958e..98ada9bd6769c6aba8e4a5f3c0e94a51fc0f6c7b 100644
--- a/IO/XML/vtkXMLPUnstructuredDataReader.h
+++ b/IO/XML/vtkXMLPUnstructuredDataReader.h
@@ -29,6 +29,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLPDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkPointSet;
 class vtkCellArray;
@@ -100,4 +101,5 @@ private:
   void operator=(const vtkXMLPUnstructuredDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPUnstructuredGridReader.cxx b/IO/XML/vtkXMLPUnstructuredGridReader.cxx
index f0aebdf9ff160045282438e3bc39283fbed2b00d..90206124443c5f815659a2272629601bae457a99 100644
--- a/IO/XML/vtkXMLPUnstructuredGridReader.cxx
+++ b/IO/XML/vtkXMLPUnstructuredGridReader.cxx
@@ -26,6 +26,7 @@
 #include "vtkXMLDataElement.h"
 #include "vtkXMLUnstructuredGridReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPUnstructuredGridReader);
 
 //------------------------------------------------------------------------------
@@ -231,3 +232,4 @@ void vtkXMLPUnstructuredGridReader::SqueezeOutputArrays(vtkDataObject* output)
     outputFaceLocations->Squeeze();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPUnstructuredGridReader.h b/IO/XML/vtkXMLPUnstructuredGridReader.h
index c941e892bdb4e0e83952aacd60a4fb3b9c69fbbb..f7b18060bb4e4082320a46703c8b526fa0d9a6eb 100644
--- a/IO/XML/vtkXMLPUnstructuredGridReader.h
+++ b/IO/XML/vtkXMLPUnstructuredGridReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLPUnstructuredDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkUnstructuredGrid;
 
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkXMLPUnstructuredGridReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPartitionedDataSetCollectionReader.cxx b/IO/XML/vtkXMLPartitionedDataSetCollectionReader.cxx
index 0b5693ccbf2dab3f37871954cac9daf4fb63bc8d..6db098dceea472bccae87ca978c3dd86be333655 100644
--- a/IO/XML/vtkXMLPartitionedDataSetCollectionReader.cxx
+++ b/IO/XML/vtkXMLPartitionedDataSetCollectionReader.cxx
@@ -29,6 +29,7 @@
 
 #include <cctype> // for std::isspace
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 vtkSmartPointer<vtkDataAssembly> ReadDataAssembly(
@@ -168,3 +169,4 @@ void vtkXMLPartitionedDataSetCollectionReader::ReadComposite(vtkXMLDataElement*
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPartitionedDataSetCollectionReader.h b/IO/XML/vtkXMLPartitionedDataSetCollectionReader.h
index 9024907c35c03d36a2c235f3a70bd17b061466a7..9f452f7bfdaf8707dbc562ce30b67adf5b3320fb 100644
--- a/IO/XML/vtkXMLPartitionedDataSetCollectionReader.h
+++ b/IO/XML/vtkXMLPartitionedDataSetCollectionReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLCompositeDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 
 class VTKIOXML_EXPORT vtkXMLPartitionedDataSetCollectionReader : public vtkXMLCompositeDataReader
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkXMLPartitionedDataSetCollectionReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPartitionedDataSetReader.cxx b/IO/XML/vtkXMLPartitionedDataSetReader.cxx
index f447b13d105cabc8db2e267c2f31a20adf1e22fc..ccfa63120180fe75b38f133b9e060fb95b7060ab 100644
--- a/IO/XML/vtkXMLPartitionedDataSetReader.cxx
+++ b/IO/XML/vtkXMLPartitionedDataSetReader.cxx
@@ -24,6 +24,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkXMLDataElement.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPartitionedDataSetReader);
 
 //------------------------------------------------------------------------------
@@ -96,3 +97,4 @@ void vtkXMLPartitionedDataSetReader::ReadComposite(vtkXMLDataElement* element,
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPartitionedDataSetReader.h b/IO/XML/vtkXMLPartitionedDataSetReader.h
index 89ce43f527fe9dd212a6fde58527e1d82e052a0f..5d1ae4510358b59b51e4e3f7897ae730595c8b64 100644
--- a/IO/XML/vtkXMLPartitionedDataSetReader.h
+++ b/IO/XML/vtkXMLPartitionedDataSetReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLCompositeDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiBlockDataSet;
 
 class VTKIOXML_EXPORT vtkXMLPartitionedDataSetReader : public vtkXMLCompositeDataReader
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkXMLPartitionedDataSetReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPolyDataReader.cxx b/IO/XML/vtkXMLPolyDataReader.cxx
index a3e144206642d63b32ea18ebd5506038a39c806e..4f35ecdf342848af719e5358ca9d9f9f5206f49a 100644
--- a/IO/XML/vtkXMLPolyDataReader.cxx
+++ b/IO/XML/vtkXMLPolyDataReader.cxx
@@ -24,6 +24,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPolyDataReader);
 
 //------------------------------------------------------------------------------
@@ -477,3 +478,4 @@ int vtkXMLPolyDataReader::FillOutputPortInformation(int, vtkInformation* info)
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkPolyData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPolyDataReader.h b/IO/XML/vtkXMLPolyDataReader.h
index c0c433f0693a22affca222d3a6f7cf98a9079b37..c36c8610a26428358f45f228e2db1ec19d4558e5 100644
--- a/IO/XML/vtkXMLPolyDataReader.h
+++ b/IO/XML/vtkXMLPolyDataReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLUnstructuredDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKIOXML_EXPORT vtkXMLPolyDataReader : public vtkXMLUnstructuredDataReader
@@ -118,4 +119,5 @@ private:
   void operator=(const vtkXMLPolyDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLPolyDataWriter.cxx b/IO/XML/vtkXMLPolyDataWriter.cxx
index bdb09bf921192ce4d8af6f877aceab4f4f84f6ba..766ccad0928fcd7e29662628b32093e7aa84ec21 100644
--- a/IO/XML/vtkXMLPolyDataWriter.cxx
+++ b/IO/XML/vtkXMLPolyDataWriter.cxx
@@ -28,6 +28,7 @@
 #include "vtkXMLOffsetsManager.h"
 #undef vtkXMLOffsetsManager_DoNotInclude
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLPolyDataWriter);
 
 //------------------------------------------------------------------------------
@@ -391,3 +392,4 @@ int vtkXMLPolyDataWriter::FillInputPortInformation(int, vtkInformation* info)
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPolyData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLPolyDataWriter.h b/IO/XML/vtkXMLPolyDataWriter.h
index 2a7357fe8e4153acddc84d81c57886ae77c7540b..be028ac1040fe886e4e25d41db6794c22354b6dd 100644
--- a/IO/XML/vtkXMLPolyDataWriter.h
+++ b/IO/XML/vtkXMLPolyDataWriter.h
@@ -33,6 +33,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLUnstructuredDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 
 class VTKIOXML_EXPORT vtkXMLPolyDataWriter : public vtkXMLUnstructuredDataWriter
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkXMLPolyDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLReader.cxx b/IO/XML/vtkXMLReader.cxx
index 8a9c8d0371a87b1c7caed413980389cde57b3ba9..725a7c29f809008b9701c851a21835f84a47220c 100644
--- a/IO/XML/vtkXMLReader.cxx
+++ b/IO/XML/vtkXMLReader.cxx
@@ -59,6 +59,7 @@
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkXMLReader, ReaderErrorObserver, vtkCommand);
 vtkCxxSetObjectMacro(vtkXMLReader, ParserErrorObserver, vtkCommand);
 
@@ -2051,3 +2052,4 @@ vtkInformation* vtkXMLReader::GetCurrentOutputInformation()
 {
   return this->CurrentOutputInformation;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLReader.h b/IO/XML/vtkXMLReader.h
index 3695283b1212b965854c5825a1bc9903b4498cd6..31f425dbb96e260a8943955807847928ab0c56c5 100644
--- a/IO/XML/vtkXMLReader.h
+++ b/IO/XML/vtkXMLReader.h
@@ -30,6 +30,7 @@
 
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkCallbackCommand;
 class vtkCommand;
@@ -451,4 +452,5 @@ private:
   vtkCommand* ParserErrorObserver;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLReaderVersion.h b/IO/XML/vtkXMLReaderVersion.h
index 6a47326f7e7d294d9b32307afe735ff72bee87fe..18633d625e0c55db3599c760d3f1feae3575c128 100644
--- a/IO/XML/vtkXMLReaderVersion.h
+++ b/IO/XML/vtkXMLReaderVersion.h
@@ -20,8 +20,10 @@
 #ifndef vtkXMLReaderVersion_h
 #define vtkXMLReaderVersion_h
 
+VTK_ABI_NAMESPACE_BEGIN
 const int vtkXMLReaderMajorVersion = 2;
 const int vtkXMLReaderMinorVersion = 2;
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkXMLReaderVersion_h
 // VTK-HeaderTest-Exclude: vtkXMLReaderVersion.h
diff --git a/IO/XML/vtkXMLRectilinearGridReader.cxx b/IO/XML/vtkXMLRectilinearGridReader.cxx
index 3a84550b40aeeacd97401cfe70c3be6810da7232..33ae782c0a69e129bc005f576f1d676f5ca91bac 100644
--- a/IO/XML/vtkXMLRectilinearGridReader.cxx
+++ b/IO/XML/vtkXMLRectilinearGridReader.cxx
@@ -22,6 +22,7 @@
 #include "vtkXMLDataElement.h"
 #include "vtkXMLDataParser.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLRectilinearGridReader);
 
 //------------------------------------------------------------------------------
@@ -255,3 +256,4 @@ int vtkXMLRectilinearGridReader::FillOutputPortInformation(int, vtkInformation*
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkRectilinearGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLRectilinearGridReader.h b/IO/XML/vtkXMLRectilinearGridReader.h
index ead85f0614271aef426ff643de30164ad15695e4..9463ca0c26626ef4bac6d6fe6b9e90c8fec8d0b5 100644
--- a/IO/XML/vtkXMLRectilinearGridReader.h
+++ b/IO/XML/vtkXMLRectilinearGridReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLStructuredDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRectilinearGrid;
 
 class VTKIOXML_EXPORT vtkXMLRectilinearGridReader : public vtkXMLStructuredDataReader
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkXMLRectilinearGridReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLRectilinearGridWriter.cxx b/IO/XML/vtkXMLRectilinearGridWriter.cxx
index 6146f11e0b6e6a2006a647a871fff1ca82ee72b4..50bb5c3999b68be2cc4345ec5de0ca230570c27e 100644
--- a/IO/XML/vtkXMLRectilinearGridWriter.cxx
+++ b/IO/XML/vtkXMLRectilinearGridWriter.cxx
@@ -25,6 +25,7 @@
 #include "vtkXMLOffsetsManager.h"
 #undef vtkXMLOffsetsManager_DoNotInclude
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLRectilinearGridWriter);
 
 //------------------------------------------------------------------------------
@@ -190,3 +191,4 @@ int vtkXMLRectilinearGridWriter::FillInputPortInformation(int, vtkInformation* i
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkRectilinearGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLRectilinearGridWriter.h b/IO/XML/vtkXMLRectilinearGridWriter.h
index 93e25d1eb9a90af64fd44beb1959aa0d3aaec4c1..b38bbf83414b105a6f10f693d8052703c45f36a4 100644
--- a/IO/XML/vtkXMLRectilinearGridWriter.h
+++ b/IO/XML/vtkXMLRectilinearGridWriter.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLStructuredDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRectilinearGrid;
 
 class VTKIOXML_EXPORT vtkXMLRectilinearGridWriter : public vtkXMLStructuredDataWriter
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkXMLRectilinearGridWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLStructuredDataReader.cxx b/IO/XML/vtkXMLStructuredDataReader.cxx
index 49b304fcf2d7d54f6ce9c829e6459b6029cf47ff..6505e3deba3219d807085662e647986d67a47d1c 100644
--- a/IO/XML/vtkXMLStructuredDataReader.cxx
+++ b/IO/XML/vtkXMLStructuredDataReader.cxx
@@ -23,6 +23,7 @@
 #include "vtkXMLDataParser.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkXMLStructuredDataReader::vtkXMLStructuredDataReader()
 {
   this->PieceExtents = nullptr;
@@ -550,3 +551,4 @@ int vtkXMLStructuredDataReader::ReadSubExtent(int* inExtent, int* inDimensions,
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLStructuredDataReader.h b/IO/XML/vtkXMLStructuredDataReader.h
index 1b4fa85007e0e1d35ec773e9a54435ae2d7f2a4e..1332177fb57b5c93c8879544603d44c897b23100 100644
--- a/IO/XML/vtkXMLStructuredDataReader.h
+++ b/IO/XML/vtkXMLStructuredDataReader.h
@@ -30,6 +30,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOXML_EXPORT vtkXMLStructuredDataReader : public vtkXMLDataReader
 {
 public:
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkXMLStructuredDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLStructuredDataWriter.cxx b/IO/XML/vtkXMLStructuredDataWriter.cxx
index 7ba89b249c8b92088ce4b0d20dbbc36d4e1d0f2e..5cc1bd337210177b5fe1a251cc3d5bcf50eec490 100644
--- a/IO/XML/vtkXMLStructuredDataWriter.cxx
+++ b/IO/XML/vtkXMLStructuredDataWriter.cxx
@@ -32,6 +32,7 @@
 #undef vtkXMLOffsetsManager_DoNotInclude
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkXMLStructuredDataWriter::vtkXMLStructuredDataWriter()
 {
   this->WritePiece = -1;
@@ -632,3 +633,4 @@ void vtkXMLStructuredDataWriter::CalculatePieceFractions(float* fractions)
     fractions[i + 1] = fractions[i + 1] / fractions[this->NumberOfPieces];
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLStructuredDataWriter.h b/IO/XML/vtkXMLStructuredDataWriter.h
index f1bab224fae70016e69b7ab33bce634b583c00bb..a89387e07bb7f3ec3a20d51ed001c8b477627c14 100644
--- a/IO/XML/vtkXMLStructuredDataWriter.h
+++ b/IO/XML/vtkXMLStructuredDataWriter.h
@@ -26,6 +26,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkInformation;
 class vtkInformationVector;
@@ -131,4 +132,5 @@ private:
   void operator=(const vtkXMLStructuredDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLStructuredGridReader.cxx b/IO/XML/vtkXMLStructuredGridReader.cxx
index 7c436e892bf92296fcfad6d9ca0071a40304c10f..5001a3fbb318a1220bc30632f9ef7177c012c1b4 100644
--- a/IO/XML/vtkXMLStructuredGridReader.cxx
+++ b/IO/XML/vtkXMLStructuredGridReader.cxx
@@ -21,6 +21,7 @@
 #include "vtkXMLDataElement.h"
 #include "vtkXMLDataParser.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLStructuredGridReader);
 
 //------------------------------------------------------------------------------
@@ -210,3 +211,4 @@ int vtkXMLStructuredGridReader::FillOutputPortInformation(int, vtkInformation* i
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLStructuredGridReader.h b/IO/XML/vtkXMLStructuredGridReader.h
index 100b058e34273ba4ca00f8c021347d158669a53b..42d818d741a86b899d84440a97dc599f259af776 100644
--- a/IO/XML/vtkXMLStructuredGridReader.h
+++ b/IO/XML/vtkXMLStructuredGridReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLStructuredDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStructuredGrid;
 
 class VTKIOXML_EXPORT vtkXMLStructuredGridReader : public vtkXMLStructuredDataReader
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkXMLStructuredGridReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLStructuredGridWriter.cxx b/IO/XML/vtkXMLStructuredGridWriter.cxx
index 86f44b7a0d8548b09d741d54d5e4ded6df498e27..53cac976f668d07aba027b23e92b31c58b111308 100644
--- a/IO/XML/vtkXMLStructuredGridWriter.cxx
+++ b/IO/XML/vtkXMLStructuredGridWriter.cxx
@@ -24,6 +24,7 @@
 #include "vtkXMLOffsetsManager.h"
 #undef vtkXMLOffsetsManager_DoNotInclude
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLStructuredGridWriter);
 
 //------------------------------------------------------------------------------
@@ -171,3 +172,4 @@ int vtkXMLStructuredGridWriter::FillInputPortInformation(int, vtkInformation* in
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkStructuredGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLStructuredGridWriter.h b/IO/XML/vtkXMLStructuredGridWriter.h
index ce0a01bdec4a97ace006bef218bca72abaf7a223..313e2f79aad7cd0d911ef1f815f690d3cdbbcae8 100644
--- a/IO/XML/vtkXMLStructuredGridWriter.h
+++ b/IO/XML/vtkXMLStructuredGridWriter.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLStructuredDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStructuredGrid;
 
 class VTKIOXML_EXPORT vtkXMLStructuredGridWriter : public vtkXMLStructuredDataWriter
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkXMLStructuredGridWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLTableReader.cxx b/IO/XML/vtkXMLTableReader.cxx
index 2bcba9e199f8b6631bcc2ead27d703b67baea7f9..68b67bab24c3f286272264332810cc9e7b7b734f 100644
--- a/IO/XML/vtkXMLTableReader.cxx
+++ b/IO/XML/vtkXMLTableReader.cxx
@@ -23,6 +23,7 @@
 #include "vtkTable.h"
 #include "vtkXMLDataElement.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLTableReader);
 
 //------------------------------------------------------------------------------
@@ -598,3 +599,4 @@ int vtkXMLTableReader::FillOutputPortInformation(int, vtkInformation* info)
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkTable");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLTableReader.h b/IO/XML/vtkXMLTableReader.h
index dc10180f787de92c13ff3e9a73d7bb2036666c8c..f48fcd73d7e8b6cbaf303cee3f0c0a87677e316e 100644
--- a/IO/XML/vtkXMLTableReader.h
+++ b/IO/XML/vtkXMLTableReader.h
@@ -29,6 +29,7 @@
 
 #include <map> // needed for std::map
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkIdTypeArray;
 class vtkUnsignedCharArray;
@@ -204,4 +205,5 @@ private:
   void operator=(const vtkXMLTableReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLTableWriter.cxx b/IO/XML/vtkXMLTableWriter.cxx
index fdb82318de13c1e0d21df245c2ac53268b660060..00d52c20c587dfb1f99a2b4bf1056736134aab7a 100644
--- a/IO/XML/vtkXMLTableWriter.cxx
+++ b/IO/XML/vtkXMLTableWriter.cxx
@@ -27,6 +27,7 @@
 #undef vtkXMLOffsetsManager_DoNotInclude
 #include "vtkXMLTableWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLTableWriter);
 
 //------------------------------------------------------------------------------
@@ -655,3 +656,4 @@ void vtkXMLTableWriter::SetInputUpdateExtent(int piece, int numPieces)
   inInfo->Set(vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_PIECES(), numPieces);
   inInfo->Set(vtkStreamingDemandDrivenPipeline::UPDATE_PIECE_NUMBER(), piece);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLTableWriter.h b/IO/XML/vtkXMLTableWriter.h
index aeaa79c08a89fce5b2f84b8aff83834e0d350496..e4a13c8d15ab5c3eeadaf1d775a0f4a44d1617ff 100644
--- a/IO/XML/vtkXMLTableWriter.h
+++ b/IO/XML/vtkXMLTableWriter.h
@@ -26,6 +26,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTable;
 
 class VTKIOXML_EXPORT vtkXMLTableWriter : public vtkXMLWriter
@@ -126,4 +127,5 @@ private:
   void operator=(const vtkXMLTableWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLUniformGridAMRReader.cxx b/IO/XML/vtkXMLUniformGridAMRReader.cxx
index 6e20219ef53a9aebc495a1deffdcdd178007b01a..f672e7d11c7790ad7b0b93bb3b9d0e712a071b9f 100644
--- a/IO/XML/vtkXMLUniformGridAMRReader.cxx
+++ b/IO/XML/vtkXMLUniformGridAMRReader.cxx
@@ -32,6 +32,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // Data type used to store a 3-tuple of doubles.
@@ -484,3 +485,4 @@ vtkDataSet* vtkXMLUniformGridAMRReader::ReadDataset(
   }
   return ds;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLUniformGridAMRReader.h b/IO/XML/vtkXMLUniformGridAMRReader.h
index 2718b0ae4be54515878dabc15e5a104f6809ecac..27a1e161785c4cf97803f2ffb7cfe112dd6f8dbf 100644
--- a/IO/XML/vtkXMLUniformGridAMRReader.h
+++ b/IO/XML/vtkXMLUniformGridAMRReader.h
@@ -35,6 +35,7 @@
 #include "vtkSmartPointer.h" // needed for vtkSmartPointer.
 #include "vtkXMLCompositeDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOverlappingAMR;
 class vtkUniformGridAMR;
 
@@ -127,4 +128,5 @@ private:
   vtkSetStringMacro(OutputDataType);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLUniformGridAMRWriter.cxx b/IO/XML/vtkXMLUniformGridAMRWriter.cxx
index e3c6b8fc3fbdf973cbfb362a8c2c5e59bfc9ddd7..f39e975abaa6aa0471ae5b94c796710e2a56ed17 100644
--- a/IO/XML/vtkXMLUniformGridAMRWriter.cxx
+++ b/IO/XML/vtkXMLUniformGridAMRWriter.cxx
@@ -25,6 +25,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLUniformGridAMRWriter);
 //------------------------------------------------------------------------------
 vtkXMLUniformGridAMRWriter::vtkXMLUniformGridAMRWriter() = default;
@@ -156,3 +157,4 @@ void vtkXMLUniformGridAMRWriter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLUniformGridAMRWriter.h b/IO/XML/vtkXMLUniformGridAMRWriter.h
index 9f0c4308bce32a1af24152b722d9e0009c1b5525..b17d6bc34450879703c6d975d534bd1d1988163f 100644
--- a/IO/XML/vtkXMLUniformGridAMRWriter.h
+++ b/IO/XML/vtkXMLUniformGridAMRWriter.h
@@ -27,6 +27,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLCompositeDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOXML_EXPORT vtkXMLUniformGridAMRWriter : public vtkXMLCompositeDataWriter
 {
 public:
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkXMLUniformGridAMRWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLUnstructuredDataReader.cxx b/IO/XML/vtkXMLUnstructuredDataReader.cxx
index 31593437b08ef18b97d1a964f6d8a8df99e078e4..9a75083a5dff5d00afe23482dde14afc1bd09aa5 100644
--- a/IO/XML/vtkXMLUnstructuredDataReader.cxx
+++ b/IO/XML/vtkXMLUnstructuredDataReader.cxx
@@ -34,6 +34,7 @@
 #include <tuple>
 #include <utility>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // Ensures that array1 and array2 are of the same type. Returns a pair with
@@ -1240,3 +1241,4 @@ int vtkXMLUnstructuredDataReader::CellsNeedToReadTimeStep(
   // all other cases we don't need to read:
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLUnstructuredDataReader.h b/IO/XML/vtkXMLUnstructuredDataReader.h
index 6cfeb74bdfe7851fba6f5d098b5a1a60581cb4e2..156a787ba86caeee3791de322d5c75ca9bc325f6 100644
--- a/IO/XML/vtkXMLUnstructuredDataReader.h
+++ b/IO/XML/vtkXMLUnstructuredDataReader.h
@@ -29,6 +29,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkIdTypeArray;
 class vtkPointSet;
@@ -142,4 +143,5 @@ private:
   void operator=(const vtkXMLUnstructuredDataReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLUnstructuredDataWriter.cxx b/IO/XML/vtkXMLUnstructuredDataWriter.cxx
index de17a86b9c8c85c38d2ee093716349d88877b787..75c6df0474685acb0f4f4cdde3fe433afaa0d2b6 100644
--- a/IO/XML/vtkXMLUnstructuredDataWriter.cxx
+++ b/IO/XML/vtkXMLUnstructuredDataWriter.cxx
@@ -42,6 +42,7 @@
 #include <utility>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkXMLUnstructuredDataWriter::vtkXMLUnstructuredDataWriter()
 {
   this->NumberOfPieces = 1;
@@ -1140,3 +1141,4 @@ void vtkXMLUnstructuredDataWriter::SetInputUpdateExtent(int piece, int numPieces
   inInfo->Set(vtkStreamingDemandDrivenPipeline::UPDATE_PIECE_NUMBER(), piece);
   inInfo->Set(vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_GHOST_LEVELS(), ghostLevel);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLUnstructuredDataWriter.h b/IO/XML/vtkXMLUnstructuredDataWriter.h
index 28b473d07693736d3ff482c09d37b9d89771f188..519c43fb707c0c8a78517569b3a0558be2247ab8 100644
--- a/IO/XML/vtkXMLUnstructuredDataWriter.h
+++ b/IO/XML/vtkXMLUnstructuredDataWriter.h
@@ -28,6 +28,7 @@
 
 #include <vtkSmartPointer.h> // for vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPointSet;
 class vtkCellArray;
 class vtkCellIterator;
@@ -174,4 +175,5 @@ private:
   void operator=(const vtkXMLUnstructuredDataWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLUnstructuredGridReader.cxx b/IO/XML/vtkXMLUnstructuredGridReader.cxx
index fe4ad0e07f032661fa17405ff286a85b7ef1c229..f926b4d4a74d5008b5a946f5cbe74571b1dc515d 100644
--- a/IO/XML/vtkXMLUnstructuredGridReader.cxx
+++ b/IO/XML/vtkXMLUnstructuredGridReader.cxx
@@ -27,6 +27,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLUnstructuredGridReader);
 
 //------------------------------------------------------------------------------
@@ -371,3 +372,4 @@ int vtkXMLUnstructuredGridReader::FillOutputPortInformation(int, vtkInformation*
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkUnstructuredGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLUnstructuredGridReader.h b/IO/XML/vtkXMLUnstructuredGridReader.h
index 8c00dead431a4fdca97d535f0c808005d0e161a9..e4e0864f90b0a8ef7fe8c9fa83ebe1a547b8fead 100644
--- a/IO/XML/vtkXMLUnstructuredGridReader.h
+++ b/IO/XML/vtkXMLUnstructuredGridReader.h
@@ -32,6 +32,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLUnstructuredDataReader.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGrid;
 class vtkIdTypeArray;
 
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkXMLUnstructuredGridReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLUnstructuredGridWriter.cxx b/IO/XML/vtkXMLUnstructuredGridWriter.cxx
index cc96bc2247b4c3d888bc27f2741ea5c21b40d298..4434adc1269a5268f803159ef5c6f5dfcb54a4e3 100644
--- a/IO/XML/vtkXMLUnstructuredGridWriter.cxx
+++ b/IO/XML/vtkXMLUnstructuredGridWriter.cxx
@@ -29,6 +29,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLUnstructuredGridWriter);
 
 //------------------------------------------------------------------------------
@@ -287,3 +288,4 @@ int vtkXMLUnstructuredGridWriter::FillInputPortInformation(
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkUnstructuredGridBase");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLUnstructuredGridWriter.h b/IO/XML/vtkXMLUnstructuredGridWriter.h
index e4704a30185a193c9d83656350dba98fd0799548..0b3babaf3691ccfb253bb54eeeb8dc01df6bcf99 100644
--- a/IO/XML/vtkXMLUnstructuredGridWriter.h
+++ b/IO/XML/vtkXMLUnstructuredGridWriter.h
@@ -33,6 +33,7 @@
 #include "vtkIOXMLModule.h" // For export macro
 #include "vtkXMLUnstructuredDataWriter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGridBase;
 
 class VTKIOXML_EXPORT vtkXMLUnstructuredGridWriter : public vtkXMLUnstructuredDataWriter
@@ -83,4 +84,5 @@ private:
   void operator=(const vtkXMLUnstructuredGridWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLWriter.cxx b/IO/XML/vtkXMLWriter.cxx
index d2f5f8af5e903213c27a63bbfb9b130ee1706374..0edcc6064a7a286b57e493fa5a15ff968c6c5fa2 100644
--- a/IO/XML/vtkXMLWriter.cxx
+++ b/IO/XML/vtkXMLWriter.cxx
@@ -76,6 +76,8 @@
 #include <cctype> // for isalnum
 #include <locale> // C++ locale
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //*****************************************************************************
 // Friend class to enable access for template functions to the protected
 // writer methods.
@@ -3145,3 +3147,5 @@ void vtkXMLWriter::WriteNextTime(double time)
     os.seekp(returnPos);
   }
 }
+
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLWriter.h b/IO/XML/vtkXMLWriter.h
index cdc5882957b64588b9aafd3822c79e645dc4e4f8..fec0b952744c184657abd663c0b536db7b5042ca 100644
--- a/IO/XML/vtkXMLWriter.h
+++ b/IO/XML/vtkXMLWriter.h
@@ -35,6 +35,7 @@
 
 #include <sstream> // For ostringstream ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkArrayIterator;
 
@@ -302,4 +303,5 @@ private:
   void operator=(const vtkXMLWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLWriterBase.cxx b/IO/XML/vtkXMLWriterBase.cxx
index 1e790f2e88687c11fcdb8f2dddabbd3a361a1100..376cb01d3ff01d590f20c1842422212d5b84833c 100644
--- a/IO/XML/vtkXMLWriterBase.cxx
+++ b/IO/XML/vtkXMLWriterBase.cxx
@@ -21,6 +21,7 @@
 #include "vtkXMLReaderVersion.h"
 #include "vtkZLibDataCompressor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkXMLWriterBase, Compressor, vtkDataCompressor);
 //----------------------------------------------------------------------------
 vtkXMLWriterBase::vtkXMLWriterBase()
@@ -271,3 +272,4 @@ void vtkXMLWriterBase::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EncodeAppendedData: " << this->EncodeAppendedData << "\n";
   os << indent << "BlockSize: " << this->BlockSize << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XML/vtkXMLWriterBase.h b/IO/XML/vtkXMLWriterBase.h
index b167adac773372193074b8706e5315f8c047f30b..58d991dc1b64997f63aa63a28c6e733300926b1f 100644
--- a/IO/XML/vtkXMLWriterBase.h
+++ b/IO/XML/vtkXMLWriterBase.h
@@ -33,6 +33,7 @@
 
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataCompressor;
 
 class VTKIOXML_EXPORT vtkXMLWriterBase : public vtkAlgorithm
@@ -275,4 +276,5 @@ private:
   void operator=(const vtkXMLWriterBase&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XML/vtkXMLWriterF.h b/IO/XML/vtkXMLWriterF.h
index f4e67f542800093fdbe0a6c4e33067558efc52fd..7d08bbfa2045118aa67df46db0dad199a88c7501 100644
--- a/IO/XML/vtkXMLWriterF.h
+++ b/IO/XML/vtkXMLWriterF.h
@@ -37,6 +37,7 @@
 /* Define a static-storage default-zero-initialized table to store
    writer objects for the fortran program.  */
 #define VTK_XMLWRITERF_MAX 256
+VTK_ABI_NAMESPACE_BEGIN
 static vtkXMLWriterC* vtkXMLWriterF_Table[VTK_XMLWRITERF_MAX + 1];
 
 /* Fortran compilers expect certain symbol names for their calls to C
@@ -447,5 +448,6 @@ void VTK_FORTRAN_NAME(vtkxmlwriterf_stop, VTKXMLWRITERF_STOP)(const int* self)
     fprintf(stderr, "vtkXMLWriterF_Stop called with invalid id %d.\n", *self);
   }
 }
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkXMLWriterF.h
diff --git a/IO/XMLParser/vtkXMLDataHeaderPrivate.h b/IO/XMLParser/vtkXMLDataHeaderPrivate.h
index cab00f7cb61c75fbd6b28bb001cf219d47dd4f72..82dd589ef00eb0ef52625629cffca3bcb58f8173 100644
--- a/IO/XMLParser/vtkXMLDataHeaderPrivate.h
+++ b/IO/XMLParser/vtkXMLDataHeaderPrivate.h
@@ -26,6 +26,7 @@
 // Abstract interface using type vtkTypeUInt64 to access an array
 // of either vtkTypeUInt32 or vtkTypeUInt64.  Shared by vtkXMLWriter
 // and vtkXMLDataParser to write/read binary data headers.
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXMLDataHeader
 {
 public:
@@ -74,5 +75,6 @@ vtkXMLDataHeader* vtkXMLDataHeader::New(int width, size_t count)
   return nullptr;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkXMLDataHeaderPrivate.h
diff --git a/IO/XMLParser/vtkXMLDataParser.cxx b/IO/XMLParser/vtkXMLDataParser.cxx
index c26335227c6b8cf22504a15cecbdf535b4806487..cce1014fc9cd723ad11792e24e85a04f92c7f1e8 100644
--- a/IO/XMLParser/vtkXMLDataParser.cxx
+++ b/IO/XMLParser/vtkXMLDataParser.cxx
@@ -35,6 +35,7 @@
 
 #include "vtkXMLUtilities.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLDataParser);
 vtkCxxSetObjectMacro(vtkXMLDataParser, Compressor, vtkDataCompressor);
 
@@ -1339,3 +1340,4 @@ void vtkXMLDataParser::UpdateProgress(float progress)
   double dProgress = progress;
   this->InvokeEvent(vtkCommand::ProgressEvent, &dProgress);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XMLParser/vtkXMLDataParser.h b/IO/XMLParser/vtkXMLDataParser.h
index 4873d61ffed8e2781c124b97051de89cd06585f3..1bcc87c3877189306f9e8c5583474ce853f03d60 100644
--- a/IO/XMLParser/vtkXMLDataParser.h
+++ b/IO/XMLParser/vtkXMLDataParser.h
@@ -33,6 +33,7 @@
 #include "vtkXMLDataElement.h"    //For inline definition.
 #include "vtkXMLParser.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInputStream;
 class vtkDataCompressor;
 
@@ -266,4 +267,5 @@ inline void vtkXMLDataParser::CharacterDataHandler(const char* data, int length)
   this->OpenElements[eid]->AddCharacterData(data, length);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XMLParser/vtkXMLParser.cxx b/IO/XMLParser/vtkXMLParser.cxx
index bf1394daddb63b54528322fc51e46fa995c83524..b2a0652a6b9cd4427fc9313a019d836997d80983 100644
--- a/IO/XMLParser/vtkXMLParser.cxx
+++ b/IO/XMLParser/vtkXMLParser.cxx
@@ -21,6 +21,7 @@
 
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLParser);
 
 //------------------------------------------------------------------------------
@@ -425,3 +426,4 @@ void vtkXMLParserEndElement(void* parser, const char* name)
   // just casts the user data to a vtkXMLParser and calls EndElement.
   static_cast<vtkXMLParser*>(parser)->EndElement(name);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XMLParser/vtkXMLParser.h b/IO/XMLParser/vtkXMLParser.h
index 6d0efa3fa70eb790e2cf365598796d6101adea67..76d236c7d83f1f6ab7e2f3319c934d7068cbbf51 100644
--- a/IO/XMLParser/vtkXMLParser.h
+++ b/IO/XMLParser/vtkXMLParser.h
@@ -29,6 +29,7 @@
 #include "vtkIOXMLParserModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 extern "C"
 {
   void vtkXMLParserStartElement(void*, const char*, const char**);
@@ -220,4 +221,5 @@ inline void vtkXMLParserCharacterDataHandler(void* parser, const char* data, int
   static_cast<vtkXMLParser*>(parser)->CharacterDataHandler(data, length);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/XMLParser/vtkXMLUtilities.cxx b/IO/XMLParser/vtkXMLUtilities.cxx
index 5f96d1002012e885b1565f6c6542cab19da66b1b..6e630aa6c29838959a6550b1627b027b6cd8eb6b 100644
--- a/IO/XMLParser/vtkXMLUtilities.cxx
+++ b/IO/XMLParser/vtkXMLUtilities.cxx
@@ -31,6 +31,7 @@
 
 typedef std::vector<vtkXMLDataElement*> vtkXMLUtilitiesDataElementContainer;
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXMLUtilities);
 
 void vtkXMLUtilities::PrintSelf(ostream& os, vtkIndent indent)
@@ -703,3 +704,4 @@ int vtkXMLUtilities::UnFactorElementsInternal(vtkXMLDataElement* tree, vtkXMLDat
 
   return res ? 1 : 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/XMLParser/vtkXMLUtilities.h b/IO/XMLParser/vtkXMLUtilities.h
index 4e78d6685828afae1440656fb0e8f00313955466..11aba514e9af6c5f71f7f91e873b65c956e11a38 100644
--- a/IO/XMLParser/vtkXMLUtilities.h
+++ b/IO/XMLParser/vtkXMLUtilities.h
@@ -27,6 +27,7 @@
 #include "vtkIOXMLParserModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXMLDataElement;
 
 class VTKIOXMLPARSER_EXPORT vtkXMLUtilities : public vtkObject
@@ -142,4 +143,5 @@ private:
   void operator=(const vtkXMLUtilities&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Xdmf2/vtkSILBuilder.cxx b/IO/Xdmf2/vtkSILBuilder.cxx
index 3125da1ee832e87b1e7d7b1922e6779defb1d7c1..e52eea0d0e944ef5b43c4ed67d44b2c3bb88d1c8 100644
--- a/IO/Xdmf2/vtkSILBuilder.cxx
+++ b/IO/Xdmf2/vtkSILBuilder.cxx
@@ -21,6 +21,7 @@
 #include "vtkStringArray.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSILBuilder);
 vtkCxxSetObjectMacro(vtkSILBuilder, SIL, vtkMutableDirectedGraph);
 //------------------------------------------------------------------------------
@@ -83,3 +84,4 @@ void vtkSILBuilder::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf2/vtkSILBuilder.h b/IO/Xdmf2/vtkSILBuilder.h
index 5df8280ac2cb23edf273b7dac7b7b1c235a44091..5a783fd8a3449315c584a9a003bea832eb51adaf 100644
--- a/IO/Xdmf2/vtkSILBuilder.h
+++ b/IO/Xdmf2/vtkSILBuilder.h
@@ -30,6 +30,7 @@
 #include "vtkIOXdmf2Module.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 class vtkStringArray;
 class vtkMutableDirectedGraph;
@@ -85,4 +86,5 @@ private:
   void operator=(const vtkSILBuilder&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Xdmf2/vtkXdmfDataArray.cxx b/IO/Xdmf2/vtkXdmfDataArray.cxx
index 8add20a381456e9dabd32809bb5f1a883d29390b..3fc98501e97ada7e6c5c9c9fa10f45b6be9da026 100644
--- a/IO/Xdmf2/vtkXdmfDataArray.cxx
+++ b/IO/Xdmf2/vtkXdmfDataArray.cxx
@@ -41,6 +41,7 @@
 using namespace xdmf2;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXdmfDataArray);
 
 //------------------------------------------------------------------------------
@@ -463,3 +464,4 @@ void vtkXdmfDataArray::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf2/vtkXdmfDataArray.h b/IO/Xdmf2/vtkXdmfDataArray.h
index 96cf72ea4c2b22470b628033609f9cde60763d75..b784c41a8a0800357ccf8d1faee60263dc81b23f 100644
--- a/IO/Xdmf2/vtkXdmfDataArray.h
+++ b/IO/Xdmf2/vtkXdmfDataArray.h
@@ -26,12 +26,14 @@
 #include "vtkIOXdmf2Module.h" // For export macro
 #include "vtkObject.h"
 
-class vtkDataArray;
 namespace xdmf2
 {
 class XdmfArray;
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+class vtkDataArray;
+
 class VTKIOXDMF2_EXPORT vtkXdmfDataArray : public vtkObject
 {
 public:
@@ -66,4 +68,5 @@ private:
   void operator=(const vtkXdmfDataArray&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkXdmfDataArray_h */
diff --git a/IO/Xdmf2/vtkXdmfHeavyData.cxx b/IO/Xdmf2/vtkXdmfHeavyData.cxx
index 250d8e38ed20b8d661bbee659a11681fd53b3685..6910b1365005e2c5fc249017af714bb060a88d52 100644
--- a/IO/Xdmf2/vtkXdmfHeavyData.cxx
+++ b/IO/Xdmf2/vtkXdmfHeavyData.cxx
@@ -61,6 +61,7 @@ typedef XdmfInt32 vtkXdmfIdType;
 
 using namespace xdmf2;
 
+VTK_ABI_NAMESPACE_BEGIN
 static void vtkScaleExtents(int in_exts[6], int out_exts[6], int stride[3])
 {
   out_exts[0] = in_exts[0] / stride[0];
@@ -1736,3 +1737,4 @@ vtkDataSet* vtkXdmfHeavyData::ExtractEdges(XdmfSet* xmfSet, vtkDataSet* dataSet)
 
   return output;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf2/vtkXdmfHeavyData.h b/IO/Xdmf2/vtkXdmfHeavyData.h
index ab035aa8a9117f73a3dbcc317a97e7433890a123..5a5fa6cc49651f60ce64ed78ba7a7a024ab8ce32 100644
--- a/IO/Xdmf2/vtkXdmfHeavyData.h
+++ b/IO/Xdmf2/vtkXdmfHeavyData.h
@@ -20,6 +20,7 @@
 #include VTKXDMF2_HEADER(XdmfGrid.h) //won't compile without it
 #include "vtkIOXdmf2Module.h"        // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithm;
 class vtkDataArray;
 class vtkDataObject;
@@ -155,6 +156,7 @@ private:
   vtkDataSet* ExtractEdges(xdmf2::XdmfSet* xmfSet, vtkDataSet* dataSet);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkXdmfHeavyData.h
diff --git a/IO/Xdmf2/vtkXdmfReader.cxx b/IO/Xdmf2/vtkXdmfReader.cxx
index 2f29b9d5c3e7f4e0708bbcd2d1dc8a2cba9979eb..76d5414b7880d74e1ce89e69f75b2826c998202f 100644
--- a/IO/Xdmf2/vtkXdmfReader.cxx
+++ b/IO/Xdmf2/vtkXdmfReader.cxx
@@ -29,6 +29,7 @@
 #include "vtkXMLParser.h"
 #include "vtksys/FStream.hxx"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkXdmfReader, InputArray, vtkCharArray);
 
 //============================================================================
@@ -736,3 +737,4 @@ vtkXdmfReader::XdmfReaderCachedData& vtkXdmfReader::GetDataSetCache()
 {
   return this->DataSetCache;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf2/vtkXdmfReader.h b/IO/Xdmf2/vtkXdmfReader.h
index df19c737bc9c0169371a5825d33324669967f6b3..f1d692584075f69f81dcadc23a63ce9c03451854 100644
--- a/IO/Xdmf2/vtkXdmfReader.h
+++ b/IO/Xdmf2/vtkXdmfReader.h
@@ -39,6 +39,7 @@
 #include <map>                // for caching
 #include <string>             // needed for string API
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXdmfArraySelection;
 class vtkXdmfDocument;
 class vtkGraph;
@@ -312,4 +313,5 @@ private:
   void operator=(const vtkXdmfReader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Xdmf2/vtkXdmfReaderInternal.cxx b/IO/Xdmf2/vtkXdmfReaderInternal.cxx
index 48590a0ee0acbb3cc24c35329b528f99a3efbce4..47bf0bb57541e44a50e7057228957cd18b956c0d 100644
--- a/IO/Xdmf2/vtkXdmfReaderInternal.cxx
+++ b/IO/Xdmf2/vtkXdmfReaderInternal.cxx
@@ -26,14 +26,15 @@
 // hence only the top-level grids are made accessible.
 #define MAX_COLLECTABLE_NUMBER_OF_GRIDS 1000
 
+using namespace xdmf2;
+
+VTK_ABI_NAMESPACE_BEGIN
 template <class T>
 T vtkMAX(T a, T b)
 {
   return (a > b ? a : b);
 }
 
-using namespace xdmf2;
-
 //------------------------------------------------------------------------------
 vtkXdmfDocument::vtkXdmfDocument()
 {
@@ -816,3 +817,4 @@ bool vtkXdmfDomain::UpdateGridAttributeInSIL(XdmfAttribute* xmfAttribute, vtkIdT
 
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf2/vtkXdmfReaderInternal.h b/IO/Xdmf2/vtkXdmfReaderInternal.h
index a9e8753f587d3d576e49dfde43e7fe29808a1cb6..dbda104ce79e04af3f85d27bc3100b03cd5fae26 100644
--- a/IO/Xdmf2/vtkXdmfReaderInternal.h
+++ b/IO/Xdmf2/vtkXdmfReaderInternal.h
@@ -60,6 +60,7 @@
 #include <vector>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXdmfDomain;
 class VTKIOXDMF2_EXPORT vtkXdmfDocument
 {
@@ -341,5 +342,6 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkXdmfReaderInternal.h
diff --git a/IO/Xdmf2/vtkXdmfWriter.cxx b/IO/Xdmf2/vtkXdmfWriter.cxx
index 0a32dce37fd88d3cd6760c413f0e756ee02a4370..2087e8783674f6df8c92547e7518ff352fd7e67a 100644
--- a/IO/Xdmf2/vtkXdmfWriter.cxx
+++ b/IO/Xdmf2/vtkXdmfWriter.cxx
@@ -74,6 +74,8 @@ using namespace xdmf2;
 
 struct _xmlNode;
 typedef _xmlNode* XdmfXmlNode;
+
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkXW2NodeHelp
 {
   xdmf2::XdmfDOM* DOM;
@@ -1354,3 +1356,4 @@ void vtkXdmfWriter::ConvertVToXArray(vtkDataArray* vda, XdmfArray* xda, vtkIdTyp
       vda->GetNumberOfTuples() * vda->GetNumberOfComponents() * vda->GetElementComponentSize());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf2/vtkXdmfWriter.h b/IO/Xdmf2/vtkXdmfWriter.h
index f369dfe256cf3c1a4ce9a67f2d5acd37119f8c9d..c733ae702741a3da65f0d51e278a89602c6b30b7 100644
--- a/IO/Xdmf2/vtkXdmfWriter.h
+++ b/IO/Xdmf2/vtkXdmfWriter.h
@@ -33,6 +33,17 @@
 #include <string> // Needed for private members
 #include <vector> //
 
+namespace xdmf2
+{
+class XdmfArray;
+class XdmfDOM;
+class XdmfElement;
+class XdmfGrid;
+class XdmfGeometry;
+class XdmfTopology;
+}
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExecutive;
 
 class vtkCompositeDataSet;
@@ -44,16 +55,6 @@ class vtkInformation;
 class vtkInformationVector;
 class vtkXdmfWriterDomainMemoryHandler;
 
-namespace xdmf2
-{
-class XdmfArray;
-class XdmfDOM;
-class XdmfElement;
-class XdmfGrid;
-class XdmfGeometry;
-class XdmfTopology;
-}
-
 class VTKIOXDMF2_EXPORT vtkXdmfWriter : public vtkDataObjectAlgorithm
 {
 public:
@@ -214,4 +215,5 @@ private:
   void operator=(const vtkXdmfWriter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkXdmfWriter_h */
diff --git a/IO/Xdmf3/vtkXdmf3ArrayKeeper.cxx b/IO/Xdmf3/vtkXdmf3ArrayKeeper.cxx
index f0c2addd0dc92f8b12c21e7b5ef752182dc382b8..b510c69d42a1102ca54e88e2faf26b2e508149f2 100644
--- a/IO/Xdmf3/vtkXdmf3ArrayKeeper.cxx
+++ b/IO/Xdmf3/vtkXdmf3ArrayKeeper.cxx
@@ -22,6 +22,7 @@
 // clang-format on
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkXdmf3ArrayKeeper::vtkXdmf3ArrayKeeper()
 {
   generation = 0;
@@ -65,3 +66,4 @@ void vtkXdmf3ArrayKeeper::Release(bool force)
   }
   // cerr << "released " << cnt << "/" << total << " arrays" << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf3/vtkXdmf3ArrayKeeper.h b/IO/Xdmf3/vtkXdmf3ArrayKeeper.h
index 79a7ad042af2a9da23732bd4d9f5492298da7dc7..9d5b110153c2bdf96e18c9611fa9482f3b5c6624 100644
--- a/IO/Xdmf3/vtkXdmf3ArrayKeeper.h
+++ b/IO/Xdmf3/vtkXdmf3ArrayKeeper.h
@@ -34,6 +34,8 @@
 
 class XdmfArray;
 
+VTK_ABI_NAMESPACE_BEGIN
+
 #ifdef _MSC_VER
 #pragma warning(push)           // save
 #pragma warning(disable : 4251) // needs to have dll-interface to be used by clients of class
@@ -76,5 +78,6 @@ private:
 #pragma warning(pop) // restore
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkXdmf3ArrayKeeper_h
 // VTK-HeaderTest-Exclude: vtkXdmf3ArrayKeeper.h
diff --git a/IO/Xdmf3/vtkXdmf3ArraySelection.cxx b/IO/Xdmf3/vtkXdmf3ArraySelection.cxx
index 63d607a077b8a3fff214f3ab0a3092486ddb89da..b950c99eea465607f8ac44cb886d3c9bf8ee6ddb 100644
--- a/IO/Xdmf3/vtkXdmf3ArraySelection.cxx
+++ b/IO/Xdmf3/vtkXdmf3ArraySelection.cxx
@@ -17,6 +17,7 @@
 #include "vtkXdmf3ArraySelection.h"
 
 //==============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 void vtkXdmf3ArraySelection::Merge(const vtkXdmf3ArraySelection& other)
 {
   vtkXdmf3ArraySelection::const_iterator iter = other.begin();
@@ -84,3 +85,4 @@ int vtkXdmf3ArraySelection::GetNumberOfArrays()
 {
   return static_cast<int>(this->size());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf3/vtkXdmf3ArraySelection.h b/IO/Xdmf3/vtkXdmf3ArraySelection.h
index f0c49cbaa53a5235e0796b8b8d9177f086313cc3..9013643c5d33aac258bb6925973bca112b265d52 100644
--- a/IO/Xdmf3/vtkXdmf3ArraySelection.h
+++ b/IO/Xdmf3/vtkXdmf3ArraySelection.h
@@ -37,6 +37,7 @@
 #pragma warning(push)           // save
 #pragma warning(disable : 4251) // needs to have dll-interface to be used by clients of class
 #endif
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIOXDMF3_EXPORT vtkXdmf3ArraySelection : public std::map<std::string, bool>
 {
 public:
@@ -82,5 +83,6 @@ public:
 #pragma warning(pop) // restore
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif //# vtkXdmf3ArraySelection_h
 // VTK-HeaderTest-Exclude: vtkXdmf3ArraySelection.h
diff --git a/IO/Xdmf3/vtkXdmf3DataSet.cxx b/IO/Xdmf3/vtkXdmf3DataSet.cxx
index 775077acbf0891daf07def75f772edddc3b2ae97..7dd353161c34f80ce4b9649247a733bf641c5caf 100644
--- a/IO/Xdmf3/vtkXdmf3DataSet.cxx
+++ b/IO/Xdmf3/vtkXdmf3DataSet.cxx
@@ -64,6 +64,7 @@
 #include <array>
 
 //==============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 bool vtkXdmf3DataSet_ReadIfNeeded(XdmfArray* array, bool dbg = false)
 {
   if (!array->isInitialized())
@@ -2803,3 +2804,4 @@ void vtkXdmf3DataSet::ParseFiniteElementFunction(vtkDataObject* dObject,
   new_array->Delete();
   array->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf3/vtkXdmf3DataSet.h b/IO/Xdmf3/vtkXdmf3DataSet.h
index 8ee8e51d2e529fbfd9f675beb821caff92ed1e17..9f61f446fa76ae9c6a654d2501394d61bcebba7e 100644
--- a/IO/Xdmf3/vtkXdmf3DataSet.h
+++ b/IO/Xdmf3/vtkXdmf3DataSet.h
@@ -36,29 +36,31 @@
 
 #include <string> //Needed only for XdmfArray::getName :(
 
-class vtkXdmf3ArraySelection;
-class vtkXdmf3ArrayKeeper;
 class XdmfArray;
 class XdmfAttribute;
-class vtkDataArray;
 class XdmfGrid;
-class vtkDataObject;
 class XdmfSet;
-class vtkDataSet;
 class XdmfTopologyType;
 class XdmfRegularGrid;
-class vtkImageData;
 class XdmfRectilinearGrid;
-class vtkRectilinearGrid;
 class XdmfCurvilinearGrid;
-class vtkStructuredGrid;
 class XdmfUnstructuredGrid;
+class XdmfGraph;
+class XdmfDomain;
+
+VTK_ABI_NAMESPACE_BEGIN
+class vtkXdmf3ArraySelection;
+class vtkXdmf3ArrayKeeper;
+class vtkDataArray;
+class vtkDataObject;
+class vtkDataSet;
+class vtkImageData;
+class vtkRectilinearGrid;
+class vtkStructuredGrid;
 class vtkUnstructuredGrid;
 class vtkPointSet;
-class XdmfGraph;
 class vtkMutableDirectedGraph;
 class vtkDirectedGraph;
-class XdmfDomain;
 
 class VTKIOXDMF3_EXPORT vtkXdmf3DataSet
 {
@@ -249,5 +251,6 @@ public:
     vtkXdmf3ArrayKeeper* keeper = nullptr);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkXdmf3DataSet.h
diff --git a/IO/Xdmf3/vtkXdmf3HeavyDataHandler.cxx b/IO/Xdmf3/vtkXdmf3HeavyDataHandler.cxx
index 4a2370702154ca3f37c189e09b7b5e161dce2956..ea42b773370fc0aca4dedbbdf864ba0b3c22fb04 100644
--- a/IO/Xdmf3/vtkXdmf3HeavyDataHandler.cxx
+++ b/IO/Xdmf3/vtkXdmf3HeavyDataHandler.cxx
@@ -48,6 +48,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 shared_ptr<vtkXdmf3HeavyDataHandler> vtkXdmf3HeavyDataHandler::New(vtkXdmf3ArraySelection* fs,
   vtkXdmf3ArraySelection* cs, vtkXdmf3ArraySelection* ps, vtkXdmf3ArraySelection* gc,
   vtkXdmf3ArraySelection* sc, unsigned int processor, unsigned int nprocessors, bool dt, double t,
@@ -554,3 +555,4 @@ vtkDataObject* vtkXdmf3HeavyDataHandler::ExtractSet(unsigned int setnum, shared_
   }
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf3/vtkXdmf3HeavyDataHandler.h b/IO/Xdmf3/vtkXdmf3HeavyDataHandler.h
index 35b63f6ce33e61704154a58d19d055eb997f70ca..df96216f05265956413ed884a3772731f0afda34 100644
--- a/IO/Xdmf3/vtkXdmf3HeavyDataHandler.h
+++ b/IO/Xdmf3/vtkXdmf3HeavyDataHandler.h
@@ -50,6 +50,7 @@
 #include VTKXDMF3_HEADER(XdmfUnstructuredGrid.hpp)
 #include VTKXDMF3_HEADER(XdmfDomain.hpp)
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 class vtkDataSet;
 class vtkImageData;
@@ -123,5 +124,6 @@ protected:
   bool AsTime;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkXdmf3HeavyDataHandler_h
 // VTK-HeaderTest-Exclude: vtkXdmf3HeavyDataHandler.h
diff --git a/IO/Xdmf3/vtkXdmf3LightDataHandler.cxx b/IO/Xdmf3/vtkXdmf3LightDataHandler.cxx
index 44595aa68b41db58d099004843c182d35c0da28e..82beffb589d07cfc71fc9f106ae28241b7ff0151 100644
--- a/IO/Xdmf3/vtkXdmf3LightDataHandler.cxx
+++ b/IO/Xdmf3/vtkXdmf3LightDataHandler.cxx
@@ -43,6 +43,7 @@
 #include <iostream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 shared_ptr<vtkXdmf3LightDataHandler> vtkXdmf3LightDataHandler::New(vtkXdmf3SILBuilder* sb,
   vtkXdmf3ArraySelection* f, vtkXdmf3ArraySelection* ce, vtkXdmf3ArraySelection* pn,
   vtkXdmf3ArraySelection* gc, vtkXdmf3ArraySelection* sc, unsigned int processor,
@@ -490,3 +491,4 @@ bool vtkXdmf3LightDataHandler::ShouldRead(unsigned int piece, unsigned int npiec
   }
 #endif
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf3/vtkXdmf3LightDataHandler.h b/IO/Xdmf3/vtkXdmf3LightDataHandler.h
index 53093b5dd369255ebef66f6b94edfbf2e38b6a9c..9319f7660b69883562f3ca4d96897ff0f089157d 100644
--- a/IO/Xdmf3/vtkXdmf3LightDataHandler.h
+++ b/IO/Xdmf3/vtkXdmf3LightDataHandler.h
@@ -38,12 +38,14 @@
 
 #include <set>
 
-class vtkXdmf3SILBuilder;
-class vtkXdmf3ArraySelection;
 class XdmfItem;
 class XdmfGraph;
 class XdmfGrid;
 
+VTK_ABI_NAMESPACE_BEGIN
+class vtkXdmf3SILBuilder;
+class vtkXdmf3ArraySelection;
+
 class VTKIOXDMF3_EXPORT vtkXdmf3LightDataHandler
 {
 public:
@@ -131,5 +133,6 @@ private:
   std::set<double> times; // relying on implicit sort from set<double>
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkXdmf3LightDataHandler_h
 // VTK-HeaderTest-Exclude: vtkXdmf3LightDataHandler.h
diff --git a/IO/Xdmf3/vtkXdmf3Reader.cxx b/IO/Xdmf3/vtkXdmf3Reader.cxx
index 65a19dce216c7ee06439fcf938f88ce73e90b77b..dc0f225eb61548bd1e33238562ebdf05dd7bda4c 100644
--- a/IO/Xdmf3/vtkXdmf3Reader.cxx
+++ b/IO/Xdmf3/vtkXdmf3Reader.cxx
@@ -58,6 +58,7 @@
 // TODO: make domains entirely optional and selectable
 
 //=============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXdmf3Reader::Internals
 {
   // Private implementation details for vtkXdmf3Reader
@@ -958,3 +959,4 @@ int vtkXdmf3Reader::GetSILUpdateStamp()
 {
   return this->Internal->GetSIL()->GetMTime();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf3/vtkXdmf3Reader.h b/IO/Xdmf3/vtkXdmf3Reader.h
index 98569ad52b569ecd5121fdf460f63936f1d33112..fec4a7fa3f6227ffe87dfefadf88e72c5475ecb0 100644
--- a/IO/Xdmf3/vtkXdmf3Reader.h
+++ b/IO/Xdmf3/vtkXdmf3Reader.h
@@ -33,6 +33,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkIOXdmf3Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXdmf3ArraySelection;
 class vtkGraph;
 
@@ -206,4 +207,5 @@ private:
   Internals* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/IO/Xdmf3/vtkXdmf3SILBuilder.cxx b/IO/Xdmf3/vtkXdmf3SILBuilder.cxx
index 2dfda839b87aa12abbba9f831e336613e1b816e0..e40f1cfa0e3cee65520c6f2c90bd6380442ac481 100644
--- a/IO/Xdmf3/vtkXdmf3SILBuilder.cxx
+++ b/IO/Xdmf3/vtkXdmf3SILBuilder.cxx
@@ -27,6 +27,7 @@
 #define MAX_COLLECTABLE_NUMBER_OF_GRIDS 1000
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkXdmf3SILBuilder::vtkXdmf3SILBuilder()
 {
   this->SIL = nullptr;
@@ -139,3 +140,4 @@ bool vtkXdmf3SILBuilder::IsMaxedOut()
 {
   return (this->VertexCount >= MAX_COLLECTABLE_NUMBER_OF_GRIDS);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf3/vtkXdmf3SILBuilder.h b/IO/Xdmf3/vtkXdmf3SILBuilder.h
index 86021bba80167bb1ec5d72859e2ab1eefad6f245..5e785ea6e99362e72678a3b8782974c855334a6a 100644
--- a/IO/Xdmf3/vtkXdmf3SILBuilder.h
+++ b/IO/Xdmf3/vtkXdmf3SILBuilder.h
@@ -32,6 +32,7 @@
 #include "vtkIOXdmf3Module.h" // For export macro
 #include "vtkType.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMutableDirectedGraph;
 class vtkStringArray;
 class vtkUnsignedCharArray;
@@ -77,5 +78,6 @@ public:
   vtkXdmf3SILBuilder(const vtkXdmf3SILBuilder&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkXdmf3SILBuilder_h
 // VTK-HeaderTest-Exclude: vtkXdmf3SILBuilder.h
diff --git a/IO/Xdmf3/vtkXdmf3Writer.cxx b/IO/Xdmf3/vtkXdmf3Writer.cxx
index 277948005389344d2ce374f355b38d80bcda31a3..30023418b7e6fdb403737083175fe5ad096af7a4 100644
--- a/IO/Xdmf3/vtkXdmf3Writer.cxx
+++ b/IO/Xdmf3/vtkXdmf3Writer.cxx
@@ -41,6 +41,7 @@
 #include <stack>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkXdmf3Writer);
 
 //=============================================================================
@@ -507,3 +508,4 @@ int vtkXdmf3Writer::CheckParameters()
 {
   return this->CheckParametersInternal(1, 0);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/IO/Xdmf3/vtkXdmf3Writer.h b/IO/Xdmf3/vtkXdmf3Writer.h
index de7cf31bd299792f20165f6a8a1ec8a1e6674570..f330ae7d66096cc1e7d0aae559a018300b8227a0 100644
--- a/IO/Xdmf3/vtkXdmf3Writer.h
+++ b/IO/Xdmf3/vtkXdmf3Writer.h
@@ -30,6 +30,7 @@
 
 #include "vtkDataObjectAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 
 class VTKIOXDMF3_EXPORT vtkXdmf3Writer : public vtkDataObjectAlgorithm
@@ -125,4 +126,5 @@ private:
   Internals* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkXdmf3Writer_h */
diff --git a/Imaging/Color/vtkImageHSIToRGB.cxx b/Imaging/Color/vtkImageHSIToRGB.cxx
index 6ce54958423143a41918890bd2fff7db9a91df17..aec5311d8aab901de4ddeb0e50bb8d2ba8730b9c 100644
--- a/Imaging/Color/vtkImageHSIToRGB.cxx
+++ b/Imaging/Color/vtkImageHSIToRGB.cxx
@@ -20,6 +20,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageHSIToRGB);
 
 //------------------------------------------------------------------------------
@@ -181,3 +182,4 @@ void vtkImageHSIToRGB::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Maximum: " << this->Maximum << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Color/vtkImageHSIToRGB.h b/Imaging/Color/vtkImageHSIToRGB.h
index d00cbb45391005ea2292d7aeab190f5b93e310ad..413dac37437638a99adff75606cc7199cda7043d 100644
--- a/Imaging/Color/vtkImageHSIToRGB.h
+++ b/Imaging/Color/vtkImageHSIToRGB.h
@@ -30,6 +30,7 @@
 #include "vtkImagingColorModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCOLOR_EXPORT vtkImageHSIToRGB : public vtkThreadedImageAlgorithm
 {
 public:
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkImageHSIToRGB&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Color/vtkImageHSVToRGB.cxx b/Imaging/Color/vtkImageHSVToRGB.cxx
index 0b3da3a762e09ff457c0a8196028f05b6aab7857..7eda3e259b692854aecf38e27e395eabfa109436 100644
--- a/Imaging/Color/vtkImageHSVToRGB.cxx
+++ b/Imaging/Color/vtkImageHSVToRGB.cxx
@@ -19,6 +19,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageHSVToRGB);
 
 //------------------------------------------------------------------------------
@@ -139,3 +140,4 @@ void vtkImageHSVToRGB::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Maximum: " << this->Maximum << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Color/vtkImageHSVToRGB.h b/Imaging/Color/vtkImageHSVToRGB.h
index a49247b0bd752b640b715d61417ed12cac061633..e943c491a2c54b5798b8602e948f89c3e0433782 100644
--- a/Imaging/Color/vtkImageHSVToRGB.h
+++ b/Imaging/Color/vtkImageHSVToRGB.h
@@ -30,6 +30,7 @@
 #include "vtkImagingColorModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCOLOR_EXPORT vtkImageHSVToRGB : public vtkThreadedImageAlgorithm
 {
 public:
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkImageHSVToRGB&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Color/vtkImageLuminance.cxx b/Imaging/Color/vtkImageLuminance.cxx
index 2a186dd33f26eb7ea2b0490e1fa9b16dbc74e347..c41cbab1154a908952370b9e88097f48444a1694 100644
--- a/Imaging/Color/vtkImageLuminance.cxx
+++ b/Imaging/Color/vtkImageLuminance.cxx
@@ -23,6 +23,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageLuminance);
 
 //------------------------------------------------------------------------------
@@ -113,3 +114,4 @@ void vtkImageLuminance::ThreadedExecute(
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Color/vtkImageLuminance.h b/Imaging/Color/vtkImageLuminance.h
index 2c151ac28cbabffdcd7a97b7e81d86b883f04326..97f9a17b92bbf822afaedd15506b1d15e9bfb627 100644
--- a/Imaging/Color/vtkImageLuminance.h
+++ b/Imaging/Color/vtkImageLuminance.h
@@ -25,6 +25,7 @@
 #include "vtkImagingColorModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCOLOR_EXPORT vtkImageLuminance : public vtkThreadedImageAlgorithm
 {
 public:
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkImageLuminance&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Color/vtkImageMapToRGBA.cxx b/Imaging/Color/vtkImageMapToRGBA.cxx
index e61b1e11f3f167b140abc2d76d9aea6155b8ef07..ac58508a0807c699e9438ea7aea7af35a447323e 100644
--- a/Imaging/Color/vtkImageMapToRGBA.cxx
+++ b/Imaging/Color/vtkImageMapToRGBA.cxx
@@ -15,9 +15,11 @@
 #include "vtkImageMapToRGBA.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageMapToRGBA);
 
 void vtkImageMapToRGBA::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Color/vtkImageMapToRGBA.h b/Imaging/Color/vtkImageMapToRGBA.h
index ced1d43c22add1c026c32b20f8f5c6b49927b44a..81d714fd727a01503edd1f502ed45b72070e3e85 100644
--- a/Imaging/Color/vtkImageMapToRGBA.h
+++ b/Imaging/Color/vtkImageMapToRGBA.h
@@ -29,6 +29,7 @@
 #include "vtkImageMapToColors.h"
 #include "vtkImagingColorModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCOLOR_EXPORT vtkImageMapToRGBA : public vtkImageMapToColors
 {
 public:
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkImageMapToRGBA&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Color/vtkImageMapToWindowLevelColors.cxx b/Imaging/Color/vtkImageMapToWindowLevelColors.cxx
index 3302877e0cadedefc1773ec0a86f31210079d460..b2893943a9d0469c5bd5ef3bd65b5249cf22dd8f 100644
--- a/Imaging/Color/vtkImageMapToWindowLevelColors.cxx
+++ b/Imaging/Color/vtkImageMapToWindowLevelColors.cxx
@@ -24,6 +24,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageMapToWindowLevelColors);
 
 // Constructor sets default values
@@ -417,3 +418,4 @@ void vtkImageMapToWindowLevelColors::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Window: " << this->Window << endl;
   os << indent << "Level: " << this->Level << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Color/vtkImageMapToWindowLevelColors.h b/Imaging/Color/vtkImageMapToWindowLevelColors.h
index 1b5a267fa0c867a7050ad3828c24445acb8e09bb..477854bbe06da31fd1f2ac9b314e359519291ef0 100644
--- a/Imaging/Color/vtkImageMapToWindowLevelColors.h
+++ b/Imaging/Color/vtkImageMapToWindowLevelColors.h
@@ -45,6 +45,7 @@
 #include "vtkImageMapToColors.h"
 #include "vtkImagingColorModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCOLOR_EXPORT vtkImageMapToWindowLevelColors : public vtkImageMapToColors
 {
 public:
@@ -91,4 +92,5 @@ private:
   void operator=(const vtkImageMapToWindowLevelColors&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Color/vtkImageQuantizeRGBToIndex.cxx b/Imaging/Color/vtkImageQuantizeRGBToIndex.cxx
index 9bd34d11cb3505bccdea539ae93a7657fb2ce7aa..02d5bfdf5883275acf7e467d99cf958ef110874a 100644
--- a/Imaging/Color/vtkImageQuantizeRGBToIndex.cxx
+++ b/Imaging/Color/vtkImageQuantizeRGBToIndex.cxx
@@ -28,6 +28,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageQuantizeRGBToIndex);
 
 class vtkColorQuantizeNode
@@ -735,3 +736,4 @@ void vtkImageQuantizeRGBToIndex::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Execute Time (in build tree stage): " << this->BuildTreeExecuteTime << endl;
   os << indent << "Execute Time (in lookup index stage): " << this->LookupIndexExecuteTime << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Color/vtkImageQuantizeRGBToIndex.h b/Imaging/Color/vtkImageQuantizeRGBToIndex.h
index 85934a83c0b093d871abf7550c8ae94495a3a936..95261659c265ca9f0d5693ac5499fbebf9c93797 100644
--- a/Imaging/Color/vtkImageQuantizeRGBToIndex.h
+++ b/Imaging/Color/vtkImageQuantizeRGBToIndex.h
@@ -46,6 +46,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingColorModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLookupTable;
 
 class VTKIMAGINGCOLOR_EXPORT vtkImageQuantizeRGBToIndex : public vtkImageAlgorithm
@@ -123,4 +124,5 @@ private:
   void operator=(const vtkImageQuantizeRGBToIndex&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Color/vtkImageRGBToHSI.cxx b/Imaging/Color/vtkImageRGBToHSI.cxx
index 963a8c745990c9af7b098173ac36128b3ca870e4..3b2893e0ea1cde0371f7e406f705f18a6f17c712 100644
--- a/Imaging/Color/vtkImageRGBToHSI.cxx
+++ b/Imaging/Color/vtkImageRGBToHSI.cxx
@@ -21,6 +21,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageRGBToHSI);
 
 //------------------------------------------------------------------------------
@@ -161,3 +162,4 @@ void vtkImageRGBToHSI::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Maximum: " << this->Maximum << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Color/vtkImageRGBToHSI.h b/Imaging/Color/vtkImageRGBToHSI.h
index c96e12a7c2527d17920ba4eb7bdd8ed668d7506e..784548be5561af36721fd0f40a5fab297f1d5c28 100644
--- a/Imaging/Color/vtkImageRGBToHSI.h
+++ b/Imaging/Color/vtkImageRGBToHSI.h
@@ -27,6 +27,7 @@
 #include "vtkImagingColorModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCOLOR_EXPORT vtkImageRGBToHSI : public vtkThreadedImageAlgorithm
 {
 public:
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkImageRGBToHSI&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Color/vtkImageRGBToHSV.cxx b/Imaging/Color/vtkImageRGBToHSV.cxx
index 45d62bc4288a5f37a310131a5b9cfe4d8681f511..3d654a0978894cbb880d5df8c6e5636f849bbf46 100644
--- a/Imaging/Color/vtkImageRGBToHSV.cxx
+++ b/Imaging/Color/vtkImageRGBToHSV.cxx
@@ -19,6 +19,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageRGBToHSV);
 
 //------------------------------------------------------------------------------
@@ -139,3 +140,4 @@ void vtkImageRGBToHSV::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Maximum: " << this->Maximum << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Color/vtkImageRGBToHSV.h b/Imaging/Color/vtkImageRGBToHSV.h
index f77bda03dfc8a6976ac3cd9fbccad5b1f38871aa..f34a6a8dde1a8b52cf1dfcd6f1331cd88b160c2b 100644
--- a/Imaging/Color/vtkImageRGBToHSV.h
+++ b/Imaging/Color/vtkImageRGBToHSV.h
@@ -27,6 +27,7 @@
 #include "vtkImagingColorModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCOLOR_EXPORT vtkImageRGBToHSV : public vtkThreadedImageAlgorithm
 {
 public:
@@ -53,4 +54,5 @@ private:
   void operator=(const vtkImageRGBToHSV&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Color/vtkImageRGBToYIQ.cxx b/Imaging/Color/vtkImageRGBToYIQ.cxx
index dc886133c42333ddd4c6b8dbe9fea6f096040f8b..f4c4edc4616679699bda64b1103d8466f70f6e7b 100644
--- a/Imaging/Color/vtkImageRGBToYIQ.cxx
+++ b/Imaging/Color/vtkImageRGBToYIQ.cxx
@@ -19,6 +19,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageRGBToYIQ);
 
 //------------------------------------------------------------------------------
@@ -150,3 +151,4 @@ void vtkImageRGBToYIQ::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Maximum: " << this->Maximum << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Color/vtkImageRGBToYIQ.h b/Imaging/Color/vtkImageRGBToYIQ.h
index 46d6a2499ae4b96501c3383ba9c93aa4c77599e2..e48347a8cadb22f501f3cf1d7b80abb4e2564f12 100644
--- a/Imaging/Color/vtkImageRGBToYIQ.h
+++ b/Imaging/Color/vtkImageRGBToYIQ.h
@@ -27,6 +27,7 @@
 #include "vtkImagingColorModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCOLOR_EXPORT vtkImageRGBToYIQ : public vtkThreadedImageAlgorithm
 {
 public:
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkImageRGBToYIQ&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Color/vtkImageYIQToRGB.cxx b/Imaging/Color/vtkImageYIQToRGB.cxx
index 77326b62f593d748d13d6dc54bed59263b6ebbd0..08027fbc4eaa0ec9e824e7349a15a6e2a6674a55 100644
--- a/Imaging/Color/vtkImageYIQToRGB.cxx
+++ b/Imaging/Color/vtkImageYIQToRGB.cxx
@@ -19,6 +19,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageYIQToRGB);
 
 //------------------------------------------------------------------------------
@@ -147,3 +148,4 @@ void vtkImageYIQToRGB::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Maximum: " << this->Maximum << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Color/vtkImageYIQToRGB.h b/Imaging/Color/vtkImageYIQToRGB.h
index 251267bd956e4298bf8aae25c845214b17f18a34..df993d785567fec8faa730b1e9df1265b8f6a268 100644
--- a/Imaging/Color/vtkImageYIQToRGB.h
+++ b/Imaging/Color/vtkImageYIQToRGB.h
@@ -27,6 +27,7 @@
 #include "vtkImagingColorModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCOLOR_EXPORT vtkImageYIQToRGB : public vtkThreadedImageAlgorithm
 {
 public:
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkImageYIQToRGB&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkAbstractImageInterpolator.cxx b/Imaging/Core/vtkAbstractImageInterpolator.cxx
index 8d9440438b14bbf1ce812566817accdcbef5a808..35de14785c671f3ad3f0cdabf820231af8d06cfb 100644
--- a/Imaging/Core/vtkAbstractImageInterpolator.cxx
+++ b/Imaging/Core/vtkAbstractImageInterpolator.cxx
@@ -30,6 +30,7 @@
 
 //------------------------------------------------------------------------------
 // default do-nothing interpolation functions
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -958,3 +959,4 @@ void vtkAbstractImageInterpolator::FreePrecomputedWeights(vtkInterpolationWeight
 
   weights = nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkAbstractImageInterpolator.h b/Imaging/Core/vtkAbstractImageInterpolator.h
index 371126f0c66cbf46cc74deea06742aa55942ed33..ef8402f4eb033a7f5012744d01a14996cca961b4 100644
--- a/Imaging/Core/vtkAbstractImageInterpolator.h
+++ b/Imaging/Core/vtkAbstractImageInterpolator.h
@@ -40,6 +40,7 @@ enum vtkImageBorderMode : int
   VTK_IMAGE_BORDER_MIRROR = 2,
 };
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 class vtkImageData;
 class vtkDataArray;
@@ -369,4 +370,5 @@ inline void vtkAbstractImageInterpolator::InterpolateRow(
   this->RowInterpolationFuncFloat(weights, xIdx, yIdx, zIdx, value, n);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkExtractVOI.cxx b/Imaging/Core/vtkExtractVOI.cxx
index bbe031ad2b87f6ba2f2fd858e7f0ae114ef93c5c..4a4255af27d9070400a84847508bf3a88d3760b5 100644
--- a/Imaging/Core/vtkExtractVOI.cxx
+++ b/Imaging/Core/vtkExtractVOI.cxx
@@ -24,6 +24,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkStructuredData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractVOI);
 
 // Construct object to extract all of the input data.
@@ -311,3 +312,4 @@ void vtkExtractVOI::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Include Boundary: " << (this->IncludeBoundary ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkExtractVOI.h b/Imaging/Core/vtkExtractVOI.h
index 64aff2830e8a0f13d37570ca019e35f5560b0f82..5d26a146edbb0f8cd1e084202c156b0541d76252 100644
--- a/Imaging/Core/vtkExtractVOI.h
+++ b/Imaging/Core/vtkExtractVOI.h
@@ -43,6 +43,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 
 // Forward Declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtractStructuredGridHelper;
 
 class VTKIMAGINGCORE_EXPORT vtkExtractVOI : public vtkImageAlgorithm
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkExtractVOI&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkGenericImageInterpolator.cxx b/Imaging/Core/vtkGenericImageInterpolator.cxx
index ff63f4dc623ced3c04365358c348ffcebb717e56..5c09297bb3f43daf4e63d1ef30fece83a52d2e93 100644
--- a/Imaging/Core/vtkGenericImageInterpolator.cxx
+++ b/Imaging/Core/vtkGenericImageInterpolator.cxx
@@ -30,6 +30,7 @@
 #undef VTK_USE_UINT64
 #define VTK_USE_UINT64 0
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericImageInterpolator);
 
 //------------------------------------------------------------------------------
@@ -978,3 +979,4 @@ void vtkGenericImageInterpolator::Update()
   this->GetRowInterpolationFunc(&this->RowInterpolationFuncDouble);
   this->GetRowInterpolationFunc(&this->RowInterpolationFuncFloat);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkGenericImageInterpolator.h b/Imaging/Core/vtkGenericImageInterpolator.h
index 0ab6289876019b46d10eb84f6bdcbd8bde896962..a3eef8cb17b2b38a3056d9756627751076dc8e96 100644
--- a/Imaging/Core/vtkGenericImageInterpolator.h
+++ b/Imaging/Core/vtkGenericImageInterpolator.h
@@ -31,6 +31,7 @@
 #include "vtkImageInterpolator.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkGenericImageInterpolator : public vtkImageInterpolator
 {
 public:
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkGenericImageInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageAppendComponents.cxx b/Imaging/Core/vtkImageAppendComponents.cxx
index 97f809970f18bf08cad489d64dac507345cb0ab9..346e38326f5e9bc05eada1b244926c180d12def6 100644
--- a/Imaging/Core/vtkImageAppendComponents.cxx
+++ b/Imaging/Core/vtkImageAppendComponents.cxx
@@ -23,6 +23,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageAppendComponents);
 
 //------------------------------------------------------------------------------
@@ -175,3 +176,4 @@ void vtkImageAppendComponents::ThreadedRequestData(vtkInformation* vtkNotUsed(re
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageAppendComponents.h b/Imaging/Core/vtkImageAppendComponents.h
index 8890f79909c88f870cc42d32b6eb8b8401e43bb9..17e7a65dfb8e9dc4ac80d8af62deff60febf26f1 100644
--- a/Imaging/Core/vtkImageAppendComponents.h
+++ b/Imaging/Core/vtkImageAppendComponents.h
@@ -29,6 +29,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageAppendComponents : public vtkThreadedImageAlgorithm
 {
 public:
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkImageAppendComponents&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageBSplineCoefficients.cxx b/Imaging/Core/vtkImageBSplineCoefficients.cxx
index a460823ae84444962959a3f858a1faa4435001b8..61e6766a85da6c67d6b33bc22e41eac7f3fe96c7 100644
--- a/Imaging/Core/vtkImageBSplineCoefficients.cxx
+++ b/Imaging/Core/vtkImageBSplineCoefficients.cxx
@@ -27,6 +27,7 @@
 
 #include <cstddef>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageBSplineCoefficients);
 
 //------------------------------------------------------------------------------
@@ -527,3 +528,4 @@ double vtkImageBSplineCoefficients::Evaluate(double x, double y, double z)
 
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageBSplineCoefficients.h b/Imaging/Core/vtkImageBSplineCoefficients.h
index 4ae0cbe0763c4612d07e64a87d44877201aa6e40..f9ae409c7ec73ca81ba6829798c091912bfaae1c 100644
--- a/Imaging/Core/vtkImageBSplineCoefficients.h
+++ b/Imaging/Core/vtkImageBSplineCoefficients.h
@@ -49,6 +49,7 @@
 #include "vtkImagingCoreModule.h"        // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageBSplineCoefficients : public vtkThreadedImageAlgorithm
 {
 public:
@@ -156,4 +157,5 @@ private:
   void operator=(const vtkImageBSplineCoefficients&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageBSplineInternals.cxx b/Imaging/Core/vtkImageBSplineInternals.cxx
index 7f1e51d63a00c674eb704a87de7adf2f41c1b173..671ca76bcdcaab040e997e668f7578cd218239f4 100644
--- a/Imaging/Core/vtkImageBSplineInternals.cxx
+++ b/Imaging/Core/vtkImageBSplineInternals.cxx
@@ -43,6 +43,7 @@
 #include <cstddef>
 
 /*--------------------------------------------------------------------------*/
+VTK_ABI_NAMESPACE_BEGIN
 void vtkImageBSplineInternals::ConvertToInterpolationCoefficients(
   double c[],                /* input samples --> output coefficients */
   long DataLength,           /* number of samples or coefficients */
@@ -849,3 +850,4 @@ int vtkImageBSplineInternals::InterpolatedValue(const float* coeffs, float* valu
   return vtkImageBSplineInterpolatedValue(
     coeffs, value, width, height, slices, depth, x, y, z, degree, border);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageBSplineInternals.h b/Imaging/Core/vtkImageBSplineInternals.h
index 662bdd161ea60ea06b7048d960ea0dd5cfc94891..35414f7fe3cdd362769051b2983984e703b1fc73 100644
--- a/Imaging/Core/vtkImageBSplineInternals.h
+++ b/Imaging/Core/vtkImageBSplineInternals.h
@@ -40,6 +40,7 @@
 #include "vtkImagingCoreModule.h"         // For export macro
 #include "vtkSystemIncludes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageBSplineInternals
 {
 public:
@@ -90,5 +91,6 @@ private:
   void operator=(const vtkImageBSplineInternals&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkImageBSplineInternals.h
diff --git a/Imaging/Core/vtkImageBSplineInterpolator.cxx b/Imaging/Core/vtkImageBSplineInterpolator.cxx
index f7700845226f630a19625638a44ccc259cad21a1..0fa38e0ed7105966853c95654d9643ed3ae61a0b 100644
--- a/Imaging/Core/vtkImageBSplineInterpolator.cxx
+++ b/Imaging/Core/vtkImageBSplineInterpolator.cxx
@@ -40,6 +40,7 @@
 #define VTK_BSPLINE_KERNEL_TABLE_DIVISIONS 256
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageBSplineInterpolator);
 
 //------------------------------------------------------------------------------
@@ -851,3 +852,4 @@ void vtkImageBSplineInterpolator::FreeKernelLookupTable()
   delete[] kernel;
 #endif
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageBSplineInterpolator.h b/Imaging/Core/vtkImageBSplineInterpolator.h
index bca81d2d8d6563ac673ab45e29576d87d0187661..98c237dd1a196622c4dcc009d7504ca201fd54ff 100644
--- a/Imaging/Core/vtkImageBSplineInterpolator.h
+++ b/Imaging/Core/vtkImageBSplineInterpolator.h
@@ -42,6 +42,7 @@
 
 #define VTK_IMAGE_BSPLINE_DEGREE_MAX 9
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 struct vtkInterpolationInfo;
 
@@ -152,4 +153,5 @@ private:
   void operator=(const vtkImageBSplineInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageBlend.cxx b/Imaging/Core/vtkImageBlend.cxx
index ecac5e70fc0498504335f07b048c7e9bd28ed612..a3687910426c50c44642c5b84fc8e5a5961ea990 100644
--- a/Imaging/Core/vtkImageBlend.cxx
+++ b/Imaging/Core/vtkImageBlend.cxx
@@ -25,6 +25,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageBlend);
 
 //------------------------------------------------------------------------------
@@ -1116,3 +1117,4 @@ int vtkImageBlend::FillInputPortInformation(int port, vtkInformation* info)
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageBlend.h b/Imaging/Core/vtkImageBlend.h
index f0017de63a5dbe4b9f37ed60a574b97cff9299ae..3e24d4468ffab7ed2255aff66410e953ec418b4f 100644
--- a/Imaging/Core/vtkImageBlend.h
+++ b/Imaging/Core/vtkImageBlend.h
@@ -79,6 +79,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageStencilData;
 
 #define VTK_IMAGE_BLEND_MODE_NORMAL 0
@@ -227,4 +228,5 @@ inline const char* vtkImageBlend::GetBlendModeAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageCacheFilter.cxx b/Imaging/Core/vtkImageCacheFilter.cxx
index f361aa732c33a2464b8b7274958b4878d5be4089..ad92c95429e2064ae2e05bc9e9fcee097c8f53c5 100644
--- a/Imaging/Core/vtkImageCacheFilter.cxx
+++ b/Imaging/Core/vtkImageCacheFilter.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageCacheFilter);
 
 //------------------------------------------------------------------------------
@@ -77,3 +78,4 @@ void vtkImageCacheFilter::ExecuteData(vtkDataObject*)
 {
   // do nothing just override superclass to prevent warning
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageCacheFilter.h b/Imaging/Core/vtkImageCacheFilter.h
index d945a806db594ecf5f7b352ea438108b6c0f8a78..1749e87a2a37ec171c595256ac86395ba0cf5e86 100644
--- a/Imaging/Core/vtkImageCacheFilter.h
+++ b/Imaging/Core/vtkImageCacheFilter.h
@@ -29,6 +29,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExecutive;
 
 class VTKIMAGINGCORE_EXPORT vtkImageCacheFilter : public vtkImageAlgorithm
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkImageCacheFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageCast.cxx b/Imaging/Core/vtkImageCast.cxx
index a0f351afa4ebe5c833b2a5a99a47441f953aade6..886cdec00143cc182ddeff1000d8686c5478780a 100644
--- a/Imaging/Core/vtkImageCast.cxx
+++ b/Imaging/Core/vtkImageCast.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageCast);
 
 //------------------------------------------------------------------------------
@@ -150,3 +151,4 @@ void vtkImageCast::PrintSelf(ostream& os, vtkIndent indent)
     os << "Off\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageCast.h b/Imaging/Core/vtkImageCast.h
index c9535b4081cb08221736da659b06ab09304b391a..63cea5082f56bf3af6bfeb71880b3c52b9178487 100644
--- a/Imaging/Core/vtkImageCast.h
+++ b/Imaging/Core/vtkImageCast.h
@@ -36,6 +36,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageCast : public vtkThreadedImageAlgorithm
 {
 public:
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkImageCast&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageChangeInformation.cxx b/Imaging/Core/vtkImageChangeInformation.cxx
index 68a56be029a9179d5314f405b73418e7747e58e8..b1253724f9a2002ec70ee46f59390677c6d71fa2 100644
--- a/Imaging/Core/vtkImageChangeInformation.cxx
+++ b/Imaging/Core/vtkImageChangeInformation.cxx
@@ -21,6 +21,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageChangeInformation);
 
 //------------------------------------------------------------------------------
@@ -242,3 +243,4 @@ int vtkImageChangeInformation::FillInputPortInformation(int port, vtkInformation
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageChangeInformation.h b/Imaging/Core/vtkImageChangeInformation.h
index 59e5d7635c0c99ff0cd1ac83ecd84a4a013acb80..4540e3bfca37126ca13d2960165523084bb2b817 100644
--- a/Imaging/Core/vtkImageChangeInformation.h
+++ b/Imaging/Core/vtkImageChangeInformation.h
@@ -27,6 +27,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKIMAGINGCORE_EXPORT vtkImageChangeInformation : public vtkImageAlgorithm
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkImageChangeInformation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageClip.cxx b/Imaging/Core/vtkImageClip.cxx
index 6a3957ade5089d79b4679799a6fca9ff88f6ae2f..fa33af88a1058682d348433756cb410d2ae38c08 100644
--- a/Imaging/Core/vtkImageClip.cxx
+++ b/Imaging/Core/vtkImageClip.cxx
@@ -23,6 +23,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageClip);
 
 //------------------------------------------------------------------------------
@@ -196,3 +197,4 @@ int vtkImageClip::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageClip.h b/Imaging/Core/vtkImageClip.h
index 3049951e4b7abe785f058e266d12e230e884837b..58d6c6c732866f4c766b82db165ce39df3560b38 100644
--- a/Imaging/Core/vtkImageClip.h
+++ b/Imaging/Core/vtkImageClip.h
@@ -34,6 +34,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageClip : public vtkImageAlgorithm
 {
 public:
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkImageClip&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageConstantPad.cxx b/Imaging/Core/vtkImageConstantPad.cxx
index 74160869b199aca5017497fb640b3a18853885b5..8a00e816cc73c9bdfe023f249536d77d1a9d5384 100644
--- a/Imaging/Core/vtkImageConstantPad.cxx
+++ b/Imaging/Core/vtkImageConstantPad.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageConstantPad);
 
 //------------------------------------------------------------------------------
@@ -175,3 +176,4 @@ void vtkImageConstantPad::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Constant: " << this->Constant << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageConstantPad.h b/Imaging/Core/vtkImageConstantPad.h
index af40e2c346f87d92f1299c7a94fd282020c8ab91..c42f7217686631f4d9b27132925e22b23fcb2109 100644
--- a/Imaging/Core/vtkImageConstantPad.h
+++ b/Imaging/Core/vtkImageConstantPad.h
@@ -30,6 +30,7 @@
 #include "vtkImagePadFilter.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageConstantPad : public vtkImagePadFilter
 {
 public:
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkImageConstantPad&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageDataStreamer.cxx b/Imaging/Core/vtkImageDataStreamer.cxx
index be5b2ea738d7f15d35285723983f5cbf32df6ccf..2981cf7b86f93f7a0b9b7894726e2200508bd6ec 100644
--- a/Imaging/Core/vtkImageDataStreamer.cxx
+++ b/Imaging/Core/vtkImageDataStreamer.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageDataStreamer);
 vtkCxxSetObjectMacro(vtkImageDataStreamer, ExtentTranslator, vtkExtentTranslator);
 
@@ -135,3 +136,4 @@ vtkTypeBool vtkImageDataStreamer::ProcessRequest(
   }
   return this->Superclass::ProcessRequest(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageDataStreamer.h b/Imaging/Core/vtkImageDataStreamer.h
index 69ff69651d3f04cc6d8a8b7a67f5283774aab305..296de54dd60e3578f4fb6ed7021e69fb16a50fe2 100644
--- a/Imaging/Core/vtkImageDataStreamer.h
+++ b/Imaging/Core/vtkImageDataStreamer.h
@@ -27,6 +27,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtentTranslator;
 
 class VTKIMAGINGCORE_EXPORT vtkImageDataStreamer : public vtkImageAlgorithm
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkImageDataStreamer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageDecomposeFilter.cxx b/Imaging/Core/vtkImageDecomposeFilter.cxx
index 539b32c15758aa5977cd291d1dd1ad9aa89d7707..f180dbab40327056bcc5257c889edf3857d31ea9 100644
--- a/Imaging/Core/vtkImageDecomposeFilter.cxx
+++ b/Imaging/Core/vtkImageDecomposeFilter.cxx
@@ -18,6 +18,7 @@
 
 //------------------------------------------------------------------------------
 // Construct an instance of vtkImageDecomposeFilter filter.
+VTK_ABI_NAMESPACE_BEGIN
 vtkImageDecomposeFilter::vtkImageDecomposeFilter()
 {
   this->Dimensionality = 3;
@@ -107,3 +108,4 @@ void vtkImageDecomposeFilter::PermuteExtent(
       break;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageDecomposeFilter.h b/Imaging/Core/vtkImageDecomposeFilter.h
index 4406a152c551acf16e79ba08cff763a76bfeee9a..65a22fef8618b12e10f7677608fbd1fd387067c1 100644
--- a/Imaging/Core/vtkImageDecomposeFilter.h
+++ b/Imaging/Core/vtkImageDecomposeFilter.h
@@ -29,6 +29,7 @@
 #include "vtkImageIterateFilter.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageDecomposeFilter : public vtkImageIterateFilter
 {
 public:
@@ -69,4 +70,5 @@ private:
   void operator=(const vtkImageDecomposeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageDifference.cxx b/Imaging/Core/vtkImageDifference.cxx
index 284c4996ae4072fba3c90702824888939e1d6ce0..580b09fbf0f37c0b629e3b0488f0708209f7c1a1 100644
--- a/Imaging/Core/vtkImageDifference.cxx
+++ b/Imaging/Core/vtkImageDifference.cxx
@@ -24,6 +24,7 @@
 #include <iostream>
 #include <numeric>
 
+VTK_ABI_NAMESPACE_BEGIN
 constexpr int MAX_NCOMPS = 4;
 using max_ncomps_array_t = std::array<int, MAX_NCOMPS>;
 
@@ -567,3 +568,4 @@ void vtkImageDifference::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "AllowShift: " << this->AllowShift << "\n";
   os << indent << "Averaging: " << this->Averaging << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageDifference.h b/Imaging/Core/vtkImageDifference.h
index c013b62cb496564b2bc7f136cde56887cb4aa283..f875ee3629137308eba27d8868004511debbc110 100644
--- a/Imaging/Core/vtkImageDifference.h
+++ b/Imaging/Core/vtkImageDifference.h
@@ -33,6 +33,7 @@
 #include "vtkSmartPointer.h"      // For smart pointer
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageDifferenceThreadData;
 class vtkImageDifferenceSMPThreadLocal;
 
@@ -149,4 +150,5 @@ private:
   friend class vtkImageDifferenceSMPFunctor;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageExtractComponents.cxx b/Imaging/Core/vtkImageExtractComponents.cxx
index b9bf42ed810e58f752f0c47fabaa74d418742fef..4934f84c28d251c22829994f4cc2f2265d2605d2 100644
--- a/Imaging/Core/vtkImageExtractComponents.cxx
+++ b/Imaging/Core/vtkImageExtractComponents.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageExtractComponents);
 
 //------------------------------------------------------------------------------
@@ -251,3 +252,4 @@ void vtkImageExtractComponents::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Components: ( " << this->Components[0] << ", " << this->Components[1] << ", "
      << this->Components[2] << " )\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageExtractComponents.h b/Imaging/Core/vtkImageExtractComponents.h
index d15d5827927a6e0409d7c865c1ab95be7e269ff6..ac067fa396d9e0c2bb00f7887e600434857396dc 100644
--- a/Imaging/Core/vtkImageExtractComponents.h
+++ b/Imaging/Core/vtkImageExtractComponents.h
@@ -29,6 +29,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageExtractComponents : public vtkThreadedImageAlgorithm
 {
 public:
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkImageExtractComponents&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageFlip.cxx b/Imaging/Core/vtkImageFlip.cxx
index df98b6ef2e102e0d26d483d4b56fb03b186b8915..0f8e0a7e210503bf9feffd32d4d344999e988766 100644
--- a/Imaging/Core/vtkImageFlip.cxx
+++ b/Imaging/Core/vtkImageFlip.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageFlip);
 
 //------------------------------------------------------------------------------
@@ -110,3 +111,4 @@ void vtkImageFlip::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "FlipAboutOrigin: " << (this->FlipAboutOrigin ? "On\n" : "Off\n");
   os << indent << "PreserveImageExtent: " << (this->PreserveImageExtent ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageFlip.h b/Imaging/Core/vtkImageFlip.h
index d7fd9a6e38a4c6ccea612e9a55f8f5cbc02071ff..ed3912e60ef2c66bba43a110d010a4066db0c882 100644
--- a/Imaging/Core/vtkImageFlip.h
+++ b/Imaging/Core/vtkImageFlip.h
@@ -26,6 +26,7 @@
 #include "vtkImageReslice.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageFlip : public vtkImageReslice
 {
 public:
@@ -98,4 +99,5 @@ private:
   void operator=(const vtkImageFlip&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageInterpolator.cxx b/Imaging/Core/vtkImageInterpolator.cxx
index 0cf4b3243f92352bad9694e232bd4a6cf70a2a15..0d60419dd4669f1063310a7636e7edfd3bbbfc82 100644
--- a/Imaging/Core/vtkImageInterpolator.cxx
+++ b/Imaging/Core/vtkImageInterpolator.cxx
@@ -28,6 +28,7 @@
 #undef VTK_USE_UINT64
 #define VTK_USE_UINT64 0
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageInterpolator);
 
 //------------------------------------------------------------------------------
@@ -1063,3 +1064,4 @@ void vtkImageInterpolator::FreePrecomputedWeights(vtkInterpolationWeights*& weig
 {
   this->Superclass::FreePrecomputedWeights(weights);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageInterpolator.h b/Imaging/Core/vtkImageInterpolator.h
index 4e4436c83d6a508fdf0ea0bfef9e1e6083aa218a..1b9cf7ab30f4690714f8e884eadc6909d5a8cbae 100644
--- a/Imaging/Core/vtkImageInterpolator.h
+++ b/Imaging/Core/vtkImageInterpolator.h
@@ -31,6 +31,7 @@
 #include "vtkAbstractImageInterpolator.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageInterpolator : public vtkAbstractImageInterpolator
 {
 public:
@@ -127,4 +128,5 @@ private:
   void operator=(const vtkImageInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageInterpolatorInternals.h b/Imaging/Core/vtkImageInterpolatorInternals.h
index 480e4c5f3d09d4c4a314c12444cb9ab9976ef198..96e3d1c3b9ac36ef1fcd04d9327b39181eece83f 100644
--- a/Imaging/Core/vtkImageInterpolatorInternals.h
+++ b/Imaging/Core/vtkImageInterpolatorInternals.h
@@ -25,6 +25,7 @@
 #include "vtkMath.h"
 
 // The interpolator info struct
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkInterpolationInfo
 {
   const void* Pointer;
@@ -228,5 +229,6 @@ inline int vtkInterpolationMath::Mirror(int a, int b, int c)
 #endif
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkImageInterpolatorInternals.h
diff --git a/Imaging/Core/vtkImageIterateFilter.cxx b/Imaging/Core/vtkImageIterateFilter.cxx
index d246d1b062711248a35ed89ba4890a144d1793c7..efde9afd69308b0b86595bc150d47bf0807c4785 100644
--- a/Imaging/Core/vtkImageIterateFilter.cxx
+++ b/Imaging/Core/vtkImageIterateFilter.cxx
@@ -22,6 +22,7 @@
 #include "vtkTrivialProducer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkImageIterateFilter::vtkImageIterateFilter()
 {
   // for filters that execute multiple times
@@ -254,3 +255,4 @@ void vtkImageIterateFilter::SetNumberOfIterations(int num)
   this->NumberOfIterations = num;
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageIterateFilter.h b/Imaging/Core/vtkImageIterateFilter.h
index c007a83dd73e7ddadca03841fdd09786adbf6881..b69bac121594172c7f3d216699d88bd6466452bb 100644
--- a/Imaging/Core/vtkImageIterateFilter.h
+++ b/Imaging/Core/vtkImageIterateFilter.h
@@ -30,6 +30,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageIterateFilter : public vtkThreadedImageAlgorithm
 {
 public:
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkImageIterateFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageMagnify.cxx b/Imaging/Core/vtkImageMagnify.cxx
index 3156c36d25afdbab55abbbfa44b52a9aedf78c78..148cec875de22c5c243ad6289802dcd1be7a30fd 100644
--- a/Imaging/Core/vtkImageMagnify.cxx
+++ b/Imaging/Core/vtkImageMagnify.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageMagnify);
 
 //------------------------------------------------------------------------------
@@ -318,3 +319,4 @@ void vtkImageMagnify::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Interpolate: " << (this->Interpolate ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageMagnify.h b/Imaging/Core/vtkImageMagnify.h
index 0258eabfc001b897c75d5fb87b7a926f12ca97fd..d8c7770c7ce7275f94a290a86c69af423d6ddd31 100644
--- a/Imaging/Core/vtkImageMagnify.h
+++ b/Imaging/Core/vtkImageMagnify.h
@@ -29,6 +29,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageMagnify : public vtkThreadedImageAlgorithm
 {
 public:
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkImageMagnify&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageMapToColors.cxx b/Imaging/Core/vtkImageMapToColors.cxx
index 8e0b6112ef0217859b1bfcff3679409446f93dd8..329468f65dc53b30d9021c3f0f02d5d0c6a75730 100644
--- a/Imaging/Core/vtkImageMapToColors.cxx
+++ b/Imaging/Core/vtkImageMapToColors.cxx
@@ -24,6 +24,7 @@
 #include "vtkScalarsToColors.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageMapToColors);
 vtkCxxSetObjectMacro(vtkImageMapToColors, LookupTable, vtkScalarsToColors);
 
@@ -328,3 +329,4 @@ void vtkImageMapToColors::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageMapToColors.h b/Imaging/Core/vtkImageMapToColors.h
index f6fca3159c0135c2f1585049a1531427228e9c53..db0b6f70682f08695bf36e0b4c5d36a374d40d0c 100644
--- a/Imaging/Core/vtkImageMapToColors.h
+++ b/Imaging/Core/vtkImageMapToColors.h
@@ -32,6 +32,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScalarsToColors;
 
 class VTKIMAGINGCORE_EXPORT vtkImageMapToColors : public vtkThreadedImageAlgorithm
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkImageMapToColors&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageMask.cxx b/Imaging/Core/vtkImageMask.cxx
index 08d7c4187ec8a16b38f478a667c20dba57a1ad2d..1f78e955b69a15c7bc895a53605eacf32ca83bdf 100644
--- a/Imaging/Core/vtkImageMask.cxx
+++ b/Imaging/Core/vtkImageMask.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageMask);
 
 //------------------------------------------------------------------------------
@@ -311,3 +312,4 @@ void vtkImageMask::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "NotMask: " << (this->NotMask ? "On\n" : "Off\n");
   os << indent << "MaskAlpha: " << this->MaskAlpha << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageMask.h b/Imaging/Core/vtkImageMask.h
index f60c15e7182398e303e7e63429ea2ba7c316c6f8..d2a25440072a420a502dadf5fb21b7372eb91da1 100644
--- a/Imaging/Core/vtkImageMask.h
+++ b/Imaging/Core/vtkImageMask.h
@@ -33,6 +33,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageMask : public vtkThreadedImageAlgorithm
 {
 public:
@@ -122,4 +123,5 @@ private:
   void operator=(const vtkImageMask&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageMirrorPad.cxx b/Imaging/Core/vtkImageMirrorPad.cxx
index 2415052e79f114ccbc901f345e1bb20811b6a09e..81a57a7416bcb2b0cdd86973103a1ba7caa9f866 100644
--- a/Imaging/Core/vtkImageMirrorPad.cxx
+++ b/Imaging/Core/vtkImageMirrorPad.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageMirrorPad);
 
 //------------------------------------------------------------------------------
@@ -235,3 +236,4 @@ void vtkImageMirrorPad::ThreadedRequestData(vtkInformation* vtkNotUsed(request),
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageMirrorPad.h b/Imaging/Core/vtkImageMirrorPad.h
index 024a5763d1631bbb73b47b1630fc85da2db4b765..2dc0a71bc01b4fa69ccb0247ffc583840830e59d 100644
--- a/Imaging/Core/vtkImageMirrorPad.h
+++ b/Imaging/Core/vtkImageMirrorPad.h
@@ -26,6 +26,7 @@
 #include "vtkImagePadFilter.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageMirrorPad : public vtkImagePadFilter
 {
 public:
@@ -47,4 +48,5 @@ private:
   void operator=(const vtkImageMirrorPad&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImagePadFilter.cxx b/Imaging/Core/vtkImagePadFilter.cxx
index c441c500d773f0b9f3fcc076979fa48552110238..ccd2ecd66f7d0eb470e4d970530fc28ac425a0ef 100644
--- a/Imaging/Core/vtkImagePadFilter.cxx
+++ b/Imaging/Core/vtkImagePadFilter.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImagePadFilter);
 
 //------------------------------------------------------------------------------
@@ -175,3 +176,4 @@ void vtkImagePadFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "OutputNumberOfScalarComponents: " << this->OutputNumberOfScalarComponents
      << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImagePadFilter.h b/Imaging/Core/vtkImagePadFilter.h
index 2d71c08f354e7f4a5c95ad1a0ecf354d2491395b..7ce1b7df765c942692b102fe9813e9c020c690cf 100644
--- a/Imaging/Core/vtkImagePadFilter.h
+++ b/Imaging/Core/vtkImagePadFilter.h
@@ -28,6 +28,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImagePadFilter : public vtkThreadedImageAlgorithm
 {
 public:
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkImagePadFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImagePermute.cxx b/Imaging/Core/vtkImagePermute.cxx
index 46410d02a0d7a6c622cab1c6b80c0a3d5af892db..0b5c8ee70fe0cebeebc50f5b5822a4338650be3e 100644
--- a/Imaging/Core/vtkImagePermute.cxx
+++ b/Imaging/Core/vtkImagePermute.cxx
@@ -15,6 +15,7 @@
 #include "vtkImagePermute.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImagePermute);
 
 vtkImagePermute::vtkImagePermute()
@@ -42,3 +43,4 @@ void vtkImagePermute::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "FilteredAxes: ( " << this->FilteredAxes[0] << ", " << this->FilteredAxes[1]
      << ", " << this->FilteredAxes[2] << " )\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImagePermute.h b/Imaging/Core/vtkImagePermute.h
index 839a020ec3fe24143825cf7bd6a3939b1a51368d..43db0b58d8dcc1886eb28ae8349a7a2cb330803c 100644
--- a/Imaging/Core/vtkImagePermute.h
+++ b/Imaging/Core/vtkImagePermute.h
@@ -29,6 +29,7 @@
 #include "vtkImageReslice.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImagePermute : public vtkImageReslice
 {
 public:
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkImagePermute&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImagePointDataIterator.cxx b/Imaging/Core/vtkImagePointDataIterator.cxx
index 4dcb30c14b69dfdb308ea310a9973a12349b95ca..75691242ca0e2bc3ffd217f3378063a205264b8f 100644
--- a/Imaging/Core/vtkImagePointDataIterator.cxx
+++ b/Imaging/Core/vtkImagePointDataIterator.cxx
@@ -22,6 +22,7 @@
 #include <algorithm>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageStencilIteratorFriendship
 {
 public:
@@ -438,3 +439,4 @@ void vtkImagePointDataIterator::ReportProgress()
   }
   this->Count++;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImagePointDataIterator.h b/Imaging/Core/vtkImagePointDataIterator.h
index 6ce2f3f96d9ac45acaad982fb7ebec805a69cb4d..22d7f345f287726231369c7d020229acef3c0d05 100644
--- a/Imaging/Core/vtkImagePointDataIterator.h
+++ b/Imaging/Core/vtkImagePointDataIterator.h
@@ -34,6 +34,7 @@
 #include "vtkImagingCoreModule.h" // for export macro
 #include "vtkSystemIncludes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkImageData;
 class vtkImageStencilData;
@@ -174,5 +175,6 @@ protected:
   int ThreadId;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkImagePointDataIterator.h
diff --git a/Imaging/Core/vtkImagePointIterator.cxx b/Imaging/Core/vtkImagePointIterator.cxx
index 14609c9a60e898d1dde7d108273abab1b9b2eec2..467ff5f12a9cf064a479725ad3cfae62495d91d1 100644
--- a/Imaging/Core/vtkImagePointIterator.cxx
+++ b/Imaging/Core/vtkImagePointIterator.cxx
@@ -17,6 +17,7 @@
 #include "vtkImageData.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkImagePointIterator::vtkImagePointIterator()
 {
   this->Origin[0] = 0.0;
@@ -49,3 +50,4 @@ void vtkImagePointIterator::Initialize(vtkImageData* image, const int extent[6],
   image->GetSpacing(this->Spacing);
   this->UpdatePosition();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImagePointIterator.h b/Imaging/Core/vtkImagePointIterator.h
index 1ebb9d85889cdb3f5d5353d462d41c11f985289a..7ba5b76366e7482c1d1b56fa459684b7252f5d15 100644
--- a/Imaging/Core/vtkImagePointIterator.h
+++ b/Imaging/Core/vtkImagePointIterator.h
@@ -33,6 +33,7 @@
 
 #include "vtkImagePointDataIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImagePointIterator : public vtkImagePointDataIterator
 {
 public:
@@ -144,5 +145,6 @@ protected:
   double Position[3];
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkImagePointIterator.h
diff --git a/Imaging/Core/vtkImageProbeFilter.cxx b/Imaging/Core/vtkImageProbeFilter.cxx
index e9116e4f50f07ff7bc13d11e0fac91f647c27f4f..37dac7c66f935258019cfb7e80fa21f934c86ce9 100644
--- a/Imaging/Core/vtkImageProbeFilter.cxx
+++ b/Imaging/Core/vtkImageProbeFilter.cxx
@@ -30,6 +30,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageProbeFilter);
 
 vtkCxxSetObjectMacro(vtkImageProbeFilter, Interpolator, vtkAbstractImageInterpolator);
@@ -398,3 +399,4 @@ void vtkImageProbeFilter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Source: " << source << "\n";
   os << indent << "Interpolator: " << interpolator << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageProbeFilter.h b/Imaging/Core/vtkImageProbeFilter.h
index 415a8515eb28f0153c3db55a135bb5236719f796..71020962e5cca8a8b72843ab7048881ad90948e7 100644
--- a/Imaging/Core/vtkImageProbeFilter.h
+++ b/Imaging/Core/vtkImageProbeFilter.h
@@ -39,6 +39,7 @@
 #include "vtkDataSetAlgorithm.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractImageInterpolator;
 class vtkUnsignedCharArray;
 class vtkImageData;
@@ -123,4 +124,5 @@ private:
     vtkIdType endId, ProbePointsThreadLocal* threadLocal);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageResample.cxx b/Imaging/Core/vtkImageResample.cxx
index e2e311f6192151fdad7fe713e898bc5f08327d99..61570e49407c6953564b53e6b85773bc3092f85e 100644
--- a/Imaging/Core/vtkImageResample.cxx
+++ b/Imaging/Core/vtkImageResample.cxx
@@ -23,6 +23,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageResample);
 
 //------------------------------------------------------------------------------
@@ -210,3 +211,4 @@ void vtkImageResample::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Dimensionality: " << this->Dimensionality << "\n";
   os << indent << "Interpolate: " << (this->GetInterpolate() ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageResample.h b/Imaging/Core/vtkImageResample.h
index 6444284b1fd7a93f0781457be3f9c8af5f06739f..f762a07397c87f07ebe6709c8af6a2c480883842 100644
--- a/Imaging/Core/vtkImageResample.h
+++ b/Imaging/Core/vtkImageResample.h
@@ -28,6 +28,7 @@
 #include "vtkImageReslice.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageResample : public vtkImageReslice
 {
 public:
@@ -93,4 +94,5 @@ private:
   void operator=(const vtkImageResample&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageResize.cxx b/Imaging/Core/vtkImageResize.cxx
index d78456a9cfae622ec69358baead6f968232d299e..2c7ac37a6856a6f51582e465a60cae2826a5fa8b 100644
--- a/Imaging/Core/vtkImageResize.cxx
+++ b/Imaging/Core/vtkImageResize.cxx
@@ -34,6 +34,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageResize);
 vtkCxxSetObjectMacro(vtkImageResize, Interpolator, vtkAbstractImageInterpolator);
 
@@ -964,3 +965,4 @@ vtkMTimeType vtkImageResize::GetMTime()
 
   return mTime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageResize.h b/Imaging/Core/vtkImageResize.h
index 2f834aa1193292732cee17c25f84a2b79070c778..a5f20abee4b5049895342298776da826dadb5d6a 100644
--- a/Imaging/Core/vtkImageResize.h
+++ b/Imaging/Core/vtkImageResize.h
@@ -34,6 +34,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractImageInterpolator;
 
 class VTKIMAGINGCORE_EXPORT vtkImageResize : public vtkThreadedImageAlgorithm
@@ -185,4 +186,5 @@ private:
   void operator=(const vtkImageResize&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageReslice.cxx b/Imaging/Core/vtkImageReslice.cxx
index 982cb09fbda9da8d314d251243c73f81bd8ed9a7..ed19973171b923604cafed4b011784b36fb13ee2 100644
--- a/Imaging/Core/vtkImageReslice.cxx
+++ b/Imaging/Core/vtkImageReslice.cxx
@@ -42,6 +42,7 @@
 #include <cmath>
 #include <cstdint>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageReslice);
 vtkCxxSetObjectMacro(vtkImageReslice, InformationInput, vtkImageData);
 vtkCxxSetObjectMacro(vtkImageReslice, ResliceAxes, vtkMatrix4x4);
@@ -3082,3 +3083,4 @@ void vtkImageReslice::ThreadedRequestData(vtkInformation* vtkNotUsed(request),
       outExt, threadId, newmat, newtrans);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageReslice.h b/Imaging/Core/vtkImageReslice.h
index 2627d651803905a85dd97916483c7e9eadad4b58..2ebe0092d5c931d2a488ca7e52fe2be71a0bad4b 100644
--- a/Imaging/Core/vtkImageReslice.h
+++ b/Imaging/Core/vtkImageReslice.h
@@ -60,6 +60,7 @@
 #define VTK_RESLICE_LINEAR VTK_LINEAR_INTERPOLATION
 #define VTK_RESLICE_CUBIC VTK_CUBIC_INTERPOLATION
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkAbstractTransform;
 class vtkMatrix4x4;
@@ -589,4 +590,5 @@ private:
   void operator=(const vtkImageReslice&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageResliceToColors.cxx b/Imaging/Core/vtkImageResliceToColors.cxx
index 879cc6aa4a5ede9522ec50e0caf38dc26b6a39f3..8ef4f5c48e31457251873076468b253b7d3fa7dd 100644
--- a/Imaging/Core/vtkImageResliceToColors.cxx
+++ b/Imaging/Core/vtkImageResliceToColors.cxx
@@ -34,6 +34,7 @@
 #include <climits>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageResliceToColors);
 vtkCxxSetObjectMacro(vtkImageResliceToColors, LookupTable, vtkScalarsToColors);
 
@@ -172,3 +173,4 @@ void vtkImageResliceToColors::ConvertScalars(void* inPtr, void* outPtr, int inpu
       inputComponents, this->OutputFormat);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageResliceToColors.h b/Imaging/Core/vtkImageResliceToColors.h
index 39e783b63ce415d5d387d579e57f5d184b1b4c2e..989103f3adbaaf76d25411db75994136c5898edd 100644
--- a/Imaging/Core/vtkImageResliceToColors.h
+++ b/Imaging/Core/vtkImageResliceToColors.h
@@ -34,6 +34,7 @@
 #include "vtkImageReslice.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScalarsToColors;
 
 class VTKIMAGINGCORE_EXPORT vtkImageResliceToColors : public vtkImageReslice
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkImageResliceToColors&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageShiftScale.cxx b/Imaging/Core/vtkImageShiftScale.cxx
index c8646f8d992eec296c0d5a796731422d82686cf3..c99ebee840c5cff44cde5c8283aaa03789c62517 100644
--- a/Imaging/Core/vtkImageShiftScale.cxx
+++ b/Imaging/Core/vtkImageShiftScale.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageShiftScale);
 
 //------------------------------------------------------------------------------
@@ -158,3 +159,4 @@ void vtkImageShiftScale::ThreadedRequestData(vtkInformation*, vtkInformationVect
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageShiftScale.h b/Imaging/Core/vtkImageShiftScale.h
index dcca5b9261667540c0d473fc900a89a2078b3256..b88ef9d8db269a2bc5912d507ac23f1003217f9a 100644
--- a/Imaging/Core/vtkImageShiftScale.h
+++ b/Imaging/Core/vtkImageShiftScale.h
@@ -28,6 +28,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageShiftScale : public vtkThreadedImageAlgorithm
 {
 public:
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkImageShiftScale&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageShrink3D.cxx b/Imaging/Core/vtkImageShrink3D.cxx
index 79db0c41559e8987d42aaed0ab20e8bd60e3ecaa..fd2057a548d796b425bcad3e0c3c7f3786b0e8e2 100644
--- a/Imaging/Core/vtkImageShrink3D.cxx
+++ b/Imaging/Core/vtkImageShrink3D.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageShrink3D);
 
 //------------------------------------------------------------------------------
@@ -586,3 +587,4 @@ void vtkImageShrink3D::ThreadedRequestData(vtkInformation* vtkNotUsed(request),
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageShrink3D.h b/Imaging/Core/vtkImageShrink3D.h
index aaa52e5fc10a68e9d738173b970dbb990e8c10d0..e905165c2f2b68c76c7e513df9f1809edd4c7a08 100644
--- a/Imaging/Core/vtkImageShrink3D.h
+++ b/Imaging/Core/vtkImageShrink3D.h
@@ -26,6 +26,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageShrink3D : public vtkThreadedImageAlgorithm
 {
 public:
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkImageShrink3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageSincInterpolator.cxx b/Imaging/Core/vtkImageSincInterpolator.cxx
index 6b6bee536635d2e054b8241dbe4013ba37444d03..8d3bbfb58d515903a4e949266ec83492be3087cd 100644
--- a/Imaging/Core/vtkImageSincInterpolator.cxx
+++ b/Imaging/Core/vtkImageSincInterpolator.cxx
@@ -43,6 +43,7 @@
 // in order to provide sufficient precision for 16-bit images
 #define VTK_SINC_KERNEL_TABLE_DIVISIONS 256
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageSincInterpolator);
 
 //------------------------------------------------------------------------------
@@ -1418,3 +1419,4 @@ void vtkImageSincInterpolator::FreeKernelLookupTable()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageSincInterpolator.h b/Imaging/Core/vtkImageSincInterpolator.h
index 26b1ba4c2a719a30c507fe74909c3193872bf26c..1912d9bba5bfb688aa2d751130b1d27a989f7205 100644
--- a/Imaging/Core/vtkImageSincInterpolator.h
+++ b/Imaging/Core/vtkImageSincInterpolator.h
@@ -47,6 +47,7 @@
 #define VTK_BLACKMAN_NUTTALL4 10
 #define VTK_SINC_KERNEL_SIZE_MAX 32
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 struct vtkInterpolationInfo;
 
@@ -255,4 +256,5 @@ private:
   void operator=(const vtkImageSincInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageStencilAlgorithm.cxx b/Imaging/Core/vtkImageStencilAlgorithm.cxx
index aafb67c144ca2cbd6bc22be6f98579da33c04b20..1931228bdb26982293d12f6d09e797b0e188dfa6 100644
--- a/Imaging/Core/vtkImageStencilAlgorithm.cxx
+++ b/Imaging/Core/vtkImageStencilAlgorithm.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageStencilAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -137,3 +138,4 @@ vtkTypeBool vtkImageStencilAlgorithm::ProcessRequest(
 
   return this->Superclass::ProcessRequest(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageStencilAlgorithm.h b/Imaging/Core/vtkImageStencilAlgorithm.h
index c6b3e5c1f2d87e01d730abb95ae81899035ff335..53761cf29207635f0832968904e3fbb380e7bb24 100644
--- a/Imaging/Core/vtkImageStencilAlgorithm.h
+++ b/Imaging/Core/vtkImageStencilAlgorithm.h
@@ -30,6 +30,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageStencilData;
 
 class VTKIMAGINGCORE_EXPORT vtkImageStencilAlgorithm : public vtkAlgorithm
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkImageStencilAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageStencilData.cxx b/Imaging/Core/vtkImageStencilData.cxx
index 1f103dfebe90c0740d649d546d35da4cc782bf8f..d2ef356b6578e0f866cfc0f8943aa9480f980216 100644
--- a/Imaging/Core/vtkImageStencilData.cxx
+++ b/Imaging/Core/vtkImageStencilData.cxx
@@ -26,6 +26,7 @@
 #include <algorithm>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageStencilData);
 
 //------------------------------------------------------------------------------
@@ -1537,3 +1538,4 @@ void vtkImageStencilRaster::FillStencilData(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageStencilData.h b/Imaging/Core/vtkImageStencilData.h
index 12dd25bec400b6d2acb60acefa57af6e9d809c85..4b2d70590c682a2d1523cde4b11dce6d0ebd67f2 100644
--- a/Imaging/Core/vtkImageStencilData.h
+++ b/Imaging/Core/vtkImageStencilData.h
@@ -30,6 +30,7 @@
 #include "vtkDataObject.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageStencilData : public vtkDataObject
 {
 public:
@@ -306,4 +307,5 @@ private:
   void operator=(const vtkImageStencilRaster&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageStencilIterator.cxx b/Imaging/Core/vtkImageStencilIterator.cxx
index 1370f9ee1cab005f306f0c5d92ebc7f87ef25113..fae5f67278d737b72420778135b7bebaacd7dd85 100644
--- a/Imaging/Core/vtkImageStencilIterator.cxx
+++ b/Imaging/Core/vtkImageStencilIterator.cxx
@@ -17,4 +17,6 @@
 
 #include "vtkImageStencilIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInstantiateTemplateMacro(template class VTKIMAGINGCORE_EXPORT vtkImageStencilIterator);
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageStencilIterator.h b/Imaging/Core/vtkImageStencilIterator.h
index 877b25d31249708d9fb1eb3b3684733052a89758..a2fad351181fb1939e48727c52d0f0d8e341e968 100644
--- a/Imaging/Core/vtkImageStencilIterator.h
+++ b/Imaging/Core/vtkImageStencilIterator.h
@@ -28,6 +28,7 @@
 
 #include "vtkImagePointDataIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class DType>
 class VTKIMAGINGCORE_EXPORT vtkImageStencilIterator : public vtkImagePointDataIterator
 {
@@ -141,5 +142,6 @@ vtkExternTemplateMacro(extern template class VTKIMAGINGCORE_EXPORT vtkImageStenc
 #endif
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkImageStencilIterator.h
diff --git a/Imaging/Core/vtkImageStencilSource.cxx b/Imaging/Core/vtkImageStencilSource.cxx
index 0e3afa18dfa441253392c848f9398cfa67224b27..f62df600c31bab13d4eba44a9a024a30a77d5153 100644
--- a/Imaging/Core/vtkImageStencilSource.cxx
+++ b/Imaging/Core/vtkImageStencilSource.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageStencilSource);
 vtkCxxSetObjectMacro(vtkImageStencilSource, InformationInput, vtkImageData);
 
@@ -111,3 +112,4 @@ int vtkImageStencilSource::RequestInformation(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageStencilSource.h b/Imaging/Core/vtkImageStencilSource.h
index c25dd8ef7531b72f20cc72749c0464e59a6b0fdb..c87b93eca4d5548dda9ec3f4b2ecd1fe4931b970 100644
--- a/Imaging/Core/vtkImageStencilSource.h
+++ b/Imaging/Core/vtkImageStencilSource.h
@@ -35,6 +35,7 @@
 #include "vtkImageStencilAlgorithm.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageStencilData;
 class vtkImageData;
 
@@ -110,4 +111,5 @@ private:
   void operator=(const vtkImageStencilSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageThreshold.cxx b/Imaging/Core/vtkImageThreshold.cxx
index be450bcc1e3873fe11dbd883144f4f4ddf6d5e60..e4fc70d750051e26b020b9d8224c2aee4e671f0a 100644
--- a/Imaging/Core/vtkImageThreshold.cxx
+++ b/Imaging/Core/vtkImageThreshold.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageThreshold);
 
 //------------------------------------------------------------------------------
@@ -292,3 +293,4 @@ void vtkImageThreshold::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ReplaceIn: " << this->ReplaceIn << "\n";
   os << indent << "ReplaceOut: " << this->ReplaceOut << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageThreshold.h b/Imaging/Core/vtkImageThreshold.h
index 521ad6ae0719324d92e70890c88ea4f6a5edec33..23550bc015e7eb74743fadb9d8f9676ee9599c0d 100644
--- a/Imaging/Core/vtkImageThreshold.h
+++ b/Imaging/Core/vtkImageThreshold.h
@@ -27,6 +27,7 @@
 #include "vtkImagingCoreModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageThreshold : public vtkThreadedImageAlgorithm
 {
 public:
@@ -134,4 +135,5 @@ private:
   void operator=(const vtkImageThreshold&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageTranslateExtent.cxx b/Imaging/Core/vtkImageTranslateExtent.cxx
index 0bbb60e8c9edaa82974dd3104a5ea26eb2b6df9a..bdb500542656bb4e1bec5d589eac4795ead08fff 100644
--- a/Imaging/Core/vtkImageTranslateExtent.cxx
+++ b/Imaging/Core/vtkImageTranslateExtent.cxx
@@ -21,6 +21,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageTranslateExtent);
 
 //------------------------------------------------------------------------------
@@ -122,3 +123,4 @@ int vtkImageTranslateExtent::RequestUpdateExtent(vtkInformation* vtkNotUsed(requ
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageTranslateExtent.h b/Imaging/Core/vtkImageTranslateExtent.h
index 70827c4f0e2619291fcf8505ef028262f384ffc9..3958d93d08978fec723c2364e2da80bbbcf89602 100644
--- a/Imaging/Core/vtkImageTranslateExtent.h
+++ b/Imaging/Core/vtkImageTranslateExtent.h
@@ -26,6 +26,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkImageTranslateExtent : public vtkImageAlgorithm
 {
 public:
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkImageTranslateExtent&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkImageWrapPad.cxx b/Imaging/Core/vtkImageWrapPad.cxx
index f75a6f2c7c7b92e5e4f7fc74bdc9cfef7eafead6..e14f11720e24f8ffdc6aedba35f428909510943d 100644
--- a/Imaging/Core/vtkImageWrapPad.cxx
+++ b/Imaging/Core/vtkImageWrapPad.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageWrapPad);
 
 //------------------------------------------------------------------------------
@@ -242,3 +243,4 @@ void vtkImageWrapPad::ThreadedRequestData(vtkInformation* vtkNotUsed(request),
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkImageWrapPad.h b/Imaging/Core/vtkImageWrapPad.h
index 4cfde11fa582f95207d4a0afc51362612cab3b47..648e34b9ecb59940579660e07ee2ae075961e06e 100644
--- a/Imaging/Core/vtkImageWrapPad.h
+++ b/Imaging/Core/vtkImageWrapPad.h
@@ -28,6 +28,7 @@
 #include "vtkImagePadFilter.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkInformationVector;
 
@@ -52,4 +53,5 @@ private:
   void operator=(const vtkImageWrapPad&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Core/vtkRTAnalyticSource.cxx b/Imaging/Core/vtkRTAnalyticSource.cxx
index b713c7f124d90440cfed10e8e0e39ca209ef6214..4c9ffed0749259d1ac49d49f72fb1d4537b0d5c1 100644
--- a/Imaging/Core/vtkRTAnalyticSource.cxx
+++ b/Imaging/Core/vtkRTAnalyticSource.cxx
@@ -24,6 +24,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRTAnalyticSource);
 
 //------------------------------------------------------------------------------
@@ -295,3 +296,4 @@ void vtkRTAnalyticSource::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "SubsampleRate: " << this->SubsampleRate << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Core/vtkRTAnalyticSource.h b/Imaging/Core/vtkRTAnalyticSource.h
index ab43e119407fdabf4e8cf36948fbb5316bf8a47e..adbb6ba25a39ff7e5870924cef95d300841009a0 100644
--- a/Imaging/Core/vtkRTAnalyticSource.h
+++ b/Imaging/Core/vtkRTAnalyticSource.h
@@ -27,6 +27,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGCORE_EXPORT vtkRTAnalyticSource : public vtkImageAlgorithm
 {
 public:
@@ -158,4 +159,5 @@ private:
   void operator=(const vtkRTAnalyticSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Fourier/vtkImageButterworthHighPass.cxx b/Imaging/Fourier/vtkImageButterworthHighPass.cxx
index 74ef93687e91816db4becdbe367aac3b5b652f15..d411a820f51b9eff0d08b53125a9070bd2578ddb 100644
--- a/Imaging/Fourier/vtkImageButterworthHighPass.cxx
+++ b/Imaging/Fourier/vtkImageButterworthHighPass.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageButterworthHighPass);
 
 //------------------------------------------------------------------------------
@@ -225,3 +226,4 @@ void vtkImageButterworthHighPass::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CutOff: ( " << this->CutOff[0] << ", " << this->CutOff[1] << ", "
      << this->CutOff[2] << " )\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Fourier/vtkImageButterworthHighPass.h b/Imaging/Fourier/vtkImageButterworthHighPass.h
index a2a09a912e4dcc21eadf3b1214fe5f6c0e0dcd6d..088e791309d8d02d9c1b4172f890900df48a0a3c 100644
--- a/Imaging/Fourier/vtkImageButterworthHighPass.h
+++ b/Imaging/Fourier/vtkImageButterworthHighPass.h
@@ -34,6 +34,7 @@
 #include "vtkImagingFourierModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGFOURIER_EXPORT vtkImageButterworthHighPass : public vtkThreadedImageAlgorithm
 {
 public:
@@ -82,4 +83,5 @@ private:
   void operator=(const vtkImageButterworthHighPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Fourier/vtkImageButterworthLowPass.cxx b/Imaging/Fourier/vtkImageButterworthLowPass.cxx
index 8c525726f0f9bdb12e1466b1ce6891c6fd3b767d..d1d930cef90fd793bf6d010ca24e99c4b9007a7d 100644
--- a/Imaging/Fourier/vtkImageButterworthLowPass.cxx
+++ b/Imaging/Fourier/vtkImageButterworthLowPass.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageButterworthLowPass);
 
 //------------------------------------------------------------------------------
@@ -217,3 +218,4 @@ void vtkImageButterworthLowPass::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CutOff: ( " << this->CutOff[0] << ", " << this->CutOff[1] << ", "
      << this->CutOff[2] << " )\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Fourier/vtkImageButterworthLowPass.h b/Imaging/Fourier/vtkImageButterworthLowPass.h
index 737ae3dea59e9f90b908cf27dd59c422edf2615d..d1e0ff873d4a0211abef8cce9efd194169513f60 100644
--- a/Imaging/Fourier/vtkImageButterworthLowPass.h
+++ b/Imaging/Fourier/vtkImageButterworthLowPass.h
@@ -34,6 +34,7 @@
 #include "vtkImagingFourierModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGFOURIER_EXPORT vtkImageButterworthLowPass : public vtkThreadedImageAlgorithm
 {
 public:
@@ -82,4 +83,5 @@ private:
   void operator=(const vtkImageButterworthLowPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Fourier/vtkImageFFT.cxx b/Imaging/Fourier/vtkImageFFT.cxx
index 27baef84de481b28599be8d29e2cfa5f1008bd94..f2865e3aca8a0799a84c1585da492a7b599d2360 100644
--- a/Imaging/Fourier/vtkImageFFT.cxx
+++ b/Imaging/Fourier/vtkImageFFT.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageFFT);
 
 //------------------------------------------------------------------------------
@@ -219,3 +220,4 @@ void vtkImageFFT::ThreadedRequestData(vtkInformation* vtkNotUsed(request),
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Fourier/vtkImageFFT.h b/Imaging/Fourier/vtkImageFFT.h
index a954f486940045b4546a87008a7cb6eda6dfe854..ddcdf21de417a73686261850bb0b945544ee3f07 100644
--- a/Imaging/Fourier/vtkImageFFT.h
+++ b/Imaging/Fourier/vtkImageFFT.h
@@ -32,6 +32,7 @@
 #include "vtkImageFourierFilter.h"
 #include "vtkImagingFourierModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGFOURIER_EXPORT vtkImageFFT : public vtkImageFourierFilter
 {
 public:
@@ -55,4 +56,5 @@ private:
   void operator=(const vtkImageFFT&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Fourier/vtkImageFourierCenter.cxx b/Imaging/Fourier/vtkImageFourierCenter.cxx
index add3b27582923a8e2d67acf240a1f0fa3a94fa5a..b134a2c452f92ee6e293ae1464c5c4f321699182 100644
--- a/Imaging/Fourier/vtkImageFourierCenter.cxx
+++ b/Imaging/Fourier/vtkImageFourierCenter.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageFourierCenter);
 
 //------------------------------------------------------------------------------
@@ -163,3 +164,4 @@ void vtkImageFourierCenter::ThreadedRequestData(vtkInformation* vtkNotUsed(reque
     outPtr0 += outInc0;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Fourier/vtkImageFourierCenter.h b/Imaging/Fourier/vtkImageFourierCenter.h
index 20093925cfd13f42eb95ddcc0b4fad3da8af6f43..b7fbd8c80ccb737deb852d9754b68c3f64da0bcc 100644
--- a/Imaging/Fourier/vtkImageFourierCenter.h
+++ b/Imaging/Fourier/vtkImageFourierCenter.h
@@ -29,6 +29,7 @@
 #include "vtkImageDecomposeFilter.h"
 #include "vtkImagingFourierModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGFOURIER_EXPORT vtkImageFourierCenter : public vtkImageDecomposeFilter
 {
 public:
@@ -51,4 +52,5 @@ private:
   void operator=(const vtkImageFourierCenter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Fourier/vtkImageFourierFilter.cxx b/Imaging/Fourier/vtkImageFourierFilter.cxx
index 69e7ccfb406e400c16fbb018723f312f9d06a736..98920ae30e5ef423b74ced458ff6b4890d2312b4 100644
--- a/Imaging/Fourier/vtkImageFourierFilter.cxx
+++ b/Imaging/Fourier/vtkImageFourierFilter.cxx
@@ -22,6 +22,7 @@
 =========================================================================*/
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkImageFourierFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
@@ -242,3 +243,4 @@ int vtkImageFourierFilter::RequestData(
 
   return this->Superclass::RequestData(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Fourier/vtkImageFourierFilter.h b/Imaging/Fourier/vtkImageFourierFilter.h
index d9d39aa3a36d5cfdaf64e625c4391ca237b01bf5..966a4ab4edd39f04e8cbb5c6519088078d9513df 100644
--- a/Imaging/Fourier/vtkImageFourierFilter.h
+++ b/Imaging/Fourier/vtkImageFourierFilter.h
@@ -32,6 +32,7 @@
                         COMPLEX number stuff
 *******************************************************************/
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkImageComplex_t
 {
   double Real;
@@ -147,4 +148,5 @@ private:
   void operator=(const vtkImageFourierFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Fourier/vtkImageIdealHighPass.cxx b/Imaging/Fourier/vtkImageIdealHighPass.cxx
index ad5a8924c1ee88ba907fbf9dcbf4d642ca39094b..e156078e01123d48f50beba08b8eafcc9e6f41ae 100644
--- a/Imaging/Fourier/vtkImageIdealHighPass.cxx
+++ b/Imaging/Fourier/vtkImageIdealHighPass.cxx
@@ -21,6 +21,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageIdealHighPass);
 
 //------------------------------------------------------------------------------
@@ -217,3 +218,4 @@ void vtkImageIdealHighPass::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CutOff: ( " << this->CutOff[0] << ", " << this->CutOff[1] << ", "
      << this->CutOff[2] << " )\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Fourier/vtkImageIdealHighPass.h b/Imaging/Fourier/vtkImageIdealHighPass.h
index 3c7381d1d6f66040d34a25fa1b72ef77315fef99..59ecbf790bae6b11ef309e2c62871a9fc5e9b8d3 100644
--- a/Imaging/Fourier/vtkImageIdealHighPass.h
+++ b/Imaging/Fourier/vtkImageIdealHighPass.h
@@ -34,6 +34,7 @@
 #include "vtkImagingFourierModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGFOURIER_EXPORT vtkImageIdealHighPass : public vtkThreadedImageAlgorithm
 {
 public:
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkImageIdealHighPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Fourier/vtkImageIdealLowPass.cxx b/Imaging/Fourier/vtkImageIdealLowPass.cxx
index 615da3cea035c1722c322b73162adf8303cdfad1..f52d4efe0c87513594ab1fb23bddcffbd4077a36 100644
--- a/Imaging/Fourier/vtkImageIdealLowPass.cxx
+++ b/Imaging/Fourier/vtkImageIdealLowPass.cxx
@@ -21,6 +21,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageIdealLowPass);
 
 //------------------------------------------------------------------------------
@@ -215,3 +216,4 @@ void vtkImageIdealLowPass::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "CutOff: ( " << this->CutOff[0] << ", " << this->CutOff[1] << ", "
      << this->CutOff[2] << " )\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Fourier/vtkImageIdealLowPass.h b/Imaging/Fourier/vtkImageIdealLowPass.h
index 814533b5543436fc851b251fb7a260fbfb72204f..e58634927a3442ead5daf2c9989cabd147c8e38d 100644
--- a/Imaging/Fourier/vtkImageIdealLowPass.h
+++ b/Imaging/Fourier/vtkImageIdealLowPass.h
@@ -34,6 +34,7 @@
 #include "vtkImagingFourierModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGFOURIER_EXPORT vtkImageIdealLowPass : public vtkThreadedImageAlgorithm
 {
 public:
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkImageIdealLowPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Fourier/vtkImageRFFT.cxx b/Imaging/Fourier/vtkImageRFFT.cxx
index c390f56cace4e4a57bc6591e239c7628ca0a8e9c..c928f8424aaabe2d7103ab6e94d1228ff0e69310 100644
--- a/Imaging/Fourier/vtkImageRFFT.cxx
+++ b/Imaging/Fourier/vtkImageRFFT.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageRFFT);
 
 //------------------------------------------------------------------------------
@@ -218,3 +219,4 @@ void vtkImageRFFT::ThreadedRequestData(vtkInformation* vtkNotUsed(request),
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Fourier/vtkImageRFFT.h b/Imaging/Fourier/vtkImageRFFT.h
index afa7f41ee287eb37e44a88e0fcf971031126653f..5c6910bb7b0cc4a7379cbde6729b6afae13216ff 100644
--- a/Imaging/Fourier/vtkImageRFFT.h
+++ b/Imaging/Fourier/vtkImageRFFT.h
@@ -38,6 +38,7 @@
 #include "vtkImageFourierFilter.h"
 #include "vtkImagingFourierModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGFOURIER_EXPORT vtkImageRFFT : public vtkImageFourierFilter
 {
 public:
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkImageRFFT&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageAnisotropicDiffusion2D.cxx b/Imaging/General/vtkImageAnisotropicDiffusion2D.cxx
index 683fff2b1137ced4df6bdc664a75a4874a0f940d..abea731823de84845c9f5c752fb2c6a26f9790ff 100644
--- a/Imaging/General/vtkImageAnisotropicDiffusion2D.cxx
+++ b/Imaging/General/vtkImageAnisotropicDiffusion2D.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageAnisotropicDiffusion2D);
 
 //------------------------------------------------------------------------------
@@ -374,3 +375,4 @@ void vtkImageAnisotropicDiffusion2D::Iterate(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageAnisotropicDiffusion2D.h b/Imaging/General/vtkImageAnisotropicDiffusion2D.h
index 989f69b65e6d8cc4679e01c345094f3203ddea51..84fc356803d0d6f38cb0e70adfb70aa95af4151f 100644
--- a/Imaging/General/vtkImageAnisotropicDiffusion2D.h
+++ b/Imaging/General/vtkImageAnisotropicDiffusion2D.h
@@ -42,6 +42,7 @@
 
 #include "vtkImageSpatialAlgorithm.h"
 #include "vtkImagingGeneralModule.h" // For export macro
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageAnisotropicDiffusion2D : public vtkImageSpatialAlgorithm
 {
 public:
@@ -135,4 +136,5 @@ private:
   void operator=(const vtkImageAnisotropicDiffusion2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageAnisotropicDiffusion3D.cxx b/Imaging/General/vtkImageAnisotropicDiffusion3D.cxx
index f6c9846504eeb74732ed75075364e17f125a94a8..4b3b150fda417d7c286b3e8bad730c1669d2e28e 100644
--- a/Imaging/General/vtkImageAnisotropicDiffusion3D.cxx
+++ b/Imaging/General/vtkImageAnisotropicDiffusion3D.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageAnisotropicDiffusion3D);
 
 //------------------------------------------------------------------------------
@@ -576,3 +577,4 @@ void vtkImageAnisotropicDiffusion3D::Iterate(vtkImageData* inData, vtkImageData*
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageAnisotropicDiffusion3D.h b/Imaging/General/vtkImageAnisotropicDiffusion3D.h
index 5be8f0035209f33fb9d0de8237a43077f5b6ebe3..5d3f7e2f1c146ad96ebb7285d93f82ca4a6b597d 100644
--- a/Imaging/General/vtkImageAnisotropicDiffusion3D.h
+++ b/Imaging/General/vtkImageAnisotropicDiffusion3D.h
@@ -44,6 +44,7 @@
 #include "vtkImageSpatialAlgorithm.h"
 #include "vtkImagingGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageAnisotropicDiffusion3D : public vtkImageSpatialAlgorithm
 {
 public:
@@ -135,4 +136,5 @@ private:
   void operator=(const vtkImageAnisotropicDiffusion3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageCheckerboard.cxx b/Imaging/General/vtkImageCheckerboard.cxx
index 046adcfe87504081da56002929db05f9b3d8d869..73d372cf35def582352c536418c8ee1a1ab71905 100644
--- a/Imaging/General/vtkImageCheckerboard.cxx
+++ b/Imaging/General/vtkImageCheckerboard.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageCheckerboard);
 
 //------------------------------------------------------------------------------
@@ -214,3 +215,4 @@ void vtkImageCheckerboard::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "NumberOfDivisions: (" << this->NumberOfDivisions[0] << ", "
      << this->NumberOfDivisions[1] << ", " << this->NumberOfDivisions[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageCheckerboard.h b/Imaging/General/vtkImageCheckerboard.h
index 41b217933a81700ca1a6587d7a9124dd4e78805a..b41f7d5ca5c28c5686830af0f4c24fa74e53a6b0 100644
--- a/Imaging/General/vtkImageCheckerboard.h
+++ b/Imaging/General/vtkImageCheckerboard.h
@@ -29,6 +29,7 @@
 #include "vtkImagingGeneralModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageCheckerboard : public vtkThreadedImageAlgorithm
 {
 public:
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkImageCheckerboard&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageCityBlockDistance.cxx b/Imaging/General/vtkImageCityBlockDistance.cxx
index c25c9f828b3833ae4f7a4b08901b3424e6ae3916..165a1c316c80ca7859f2b9c10747408fdc5f5ed1 100644
--- a/Imaging/General/vtkImageCityBlockDistance.cxx
+++ b/Imaging/General/vtkImageCityBlockDistance.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageCityBlockDistance);
 
 //------------------------------------------------------------------------------
@@ -217,3 +218,4 @@ int vtkImageCityBlockDistance::IterativeRequestData(vtkInformation* vtkNotUsed(r
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageCityBlockDistance.h b/Imaging/General/vtkImageCityBlockDistance.h
index a9cd21868d83a494380d3269b684f16026a23a81..05d81fb00c0c38e0e18669bcb3cb34c348cc4d65 100644
--- a/Imaging/General/vtkImageCityBlockDistance.h
+++ b/Imaging/General/vtkImageCityBlockDistance.h
@@ -35,6 +35,7 @@
 #include "vtkImageDecomposeFilter.h"
 #include "vtkImagingGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageCityBlockDistance : public vtkImageDecomposeFilter
 {
 public:
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkImageCityBlockDistance&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageConvolve.cxx b/Imaging/General/vtkImageConvolve.cxx
index db5f819bb8699d14fc342406a6d7b179096bbe0e..753330ba8aa6547c6cb7b3486f6172eaa48f6d13 100644
--- a/Imaging/General/vtkImageConvolve.cxx
+++ b/Imaging/General/vtkImageConvolve.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageConvolve);
 
 //------------------------------------------------------------------------------
@@ -455,3 +456,4 @@ void vtkImageConvolve::ThreadedRequestData(vtkInformation* vtkNotUsed(request),
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageConvolve.h b/Imaging/General/vtkImageConvolve.h
index da8dc44f1317786075f908e97598b0fb25a82453..d1d820a4a6e11d91991cf6f1400223ae38d9917f 100644
--- a/Imaging/General/vtkImageConvolve.h
+++ b/Imaging/General/vtkImageConvolve.h
@@ -27,6 +27,7 @@
 #include "vtkImagingGeneralModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageConvolve : public vtkThreadedImageAlgorithm
 {
 public:
@@ -110,4 +111,5 @@ private:
   void operator=(const vtkImageConvolve&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageCorrelation.cxx b/Imaging/General/vtkImageCorrelation.cxx
index 4f6bf459340cfe7d0c447724e254d83b7af97c24..f5ea6332eb8ecfc45786f59e5a000705e36229ce 100644
--- a/Imaging/General/vtkImageCorrelation.cxx
+++ b/Imaging/General/vtkImageCorrelation.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageCorrelation);
 
 //------------------------------------------------------------------------------
@@ -238,3 +239,4 @@ void vtkImageCorrelation::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Dimensionality: " << this->Dimensionality << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageCorrelation.h b/Imaging/General/vtkImageCorrelation.h
index 72eddfbb0546cf2017d434f9989cbc9f4c98f7db..e42426e61d6b8592e114efdb5d77c343a4cfe5fc 100644
--- a/Imaging/General/vtkImageCorrelation.h
+++ b/Imaging/General/vtkImageCorrelation.h
@@ -30,6 +30,7 @@
 #include "vtkImagingGeneralModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageCorrelation : public vtkThreadedImageAlgorithm
 {
 public:
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkImageCorrelation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageEuclideanDistance.cxx b/Imaging/General/vtkImageEuclideanDistance.cxx
index 8b208192fd630199d1582906e32b37594717d5de..289b272dbff784d5b62a86f947a33ca588e748f7 100644
--- a/Imaging/General/vtkImageEuclideanDistance.cxx
+++ b/Imaging/General/vtkImageEuclideanDistance.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageEuclideanDistance);
 
 //------------------------------------------------------------------------------
@@ -736,3 +737,4 @@ void vtkImageEuclideanDistance::PrintSelf(ostream& os, vtkIndent indent)
     os << "Saito Cached\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageEuclideanDistance.h b/Imaging/General/vtkImageEuclideanDistance.h
index 307ad2524fc61eed7af2a9fd5567f8820f5950d5..2a26a2ad49df2112e248cf14ddf105cdcea7e4c0 100644
--- a/Imaging/General/vtkImageEuclideanDistance.h
+++ b/Imaging/General/vtkImageEuclideanDistance.h
@@ -51,6 +51,7 @@
 #define VTK_EDT_SAITO_CACHED 0
 #define VTK_EDT_SAITO 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageEuclideanDistance : public vtkImageDecomposeFilter
 {
 public:
@@ -124,4 +125,5 @@ private:
   void operator=(const vtkImageEuclideanDistance&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageEuclideanToPolar.cxx b/Imaging/General/vtkImageEuclideanToPolar.cxx
index 710d2a91e76ba9d7c623bff0d0329a7398cc6b0f..06c4293b299d1873a951035f1b6852a4f214c4f3 100644
--- a/Imaging/General/vtkImageEuclideanToPolar.cxx
+++ b/Imaging/General/vtkImageEuclideanToPolar.cxx
@@ -21,6 +21,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageEuclideanToPolar);
 
 //------------------------------------------------------------------------------
@@ -119,3 +120,4 @@ void vtkImageEuclideanToPolar::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Maximum Angle: " << this->ThetaMaximum << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageEuclideanToPolar.h b/Imaging/General/vtkImageEuclideanToPolar.h
index f4cc97fb092650d4efec91e37d384c52431a0027..c29b2cce65f5efadb0f3981d5e1177d76cfa0cb5 100644
--- a/Imaging/General/vtkImageEuclideanToPolar.h
+++ b/Imaging/General/vtkImageEuclideanToPolar.h
@@ -26,6 +26,7 @@
 #include "vtkImagingGeneralModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageEuclideanToPolar : public vtkThreadedImageAlgorithm
 {
 public:
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkImageEuclideanToPolar&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageGaussianSmooth.cxx b/Imaging/General/vtkImageGaussianSmooth.cxx
index f53de1abbbfebe95126e3dcba69a053b521bda58..6ee468fc04f29f3be002f36f53112572a62b354c 100644
--- a/Imaging/General/vtkImageGaussianSmooth.cxx
+++ b/Imaging/General/vtkImageGaussianSmooth.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageGaussianSmooth);
 
 //------------------------------------------------------------------------------
@@ -448,3 +449,4 @@ void vtkImageGaussianSmooth::ThreadedRequestData(vtkInformation* vtkNotUsed(requ
       break;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageGaussianSmooth.h b/Imaging/General/vtkImageGaussianSmooth.h
index 5eda7427d386cbd6ecc5b76bf45e3225a85cd138..44938246876e46c2b0d00c88f8b767892ca3e425 100644
--- a/Imaging/General/vtkImageGaussianSmooth.h
+++ b/Imaging/General/vtkImageGaussianSmooth.h
@@ -26,6 +26,7 @@
 #include "vtkImagingGeneralModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageGaussianSmooth : public vtkThreadedImageAlgorithm
 {
 public:
@@ -99,4 +100,5 @@ private:
   void operator=(const vtkImageGaussianSmooth&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageGradient.cxx b/Imaging/General/vtkImageGradient.cxx
index f34d0004f21f931124b54cce7048a4a7fbf50a1b..bca3903213cff00ac306e7c7ba56548b3c571709 100644
--- a/Imaging/General/vtkImageGradient.cxx
+++ b/Imaging/General/vtkImageGradient.cxx
@@ -25,6 +25,7 @@
 #include <cmath>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageGradient);
 
 //------------------------------------------------------------------------------
@@ -334,3 +335,4 @@ void vtkImageGradient::ThreadedRequestData(vtkInformation*, vtkInformationVector
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageGradient.h b/Imaging/General/vtkImageGradient.h
index 67f23f9e094524db317731c17db7302454ff6b1e..da8f25cc78800dd43c23a22b454838465239f27d 100644
--- a/Imaging/General/vtkImageGradient.h
+++ b/Imaging/General/vtkImageGradient.h
@@ -29,6 +29,7 @@
 #include "vtkImagingGeneralModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageGradient : public vtkThreadedImageAlgorithm
 {
 public:
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkImageGradient&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageGradientMagnitude.cxx b/Imaging/General/vtkImageGradientMagnitude.cxx
index 9da896655e5e6a67302138a1cb7cd0c4d5a69f32..9853b7c9b133669807a480c70ee5b26d5c05acf8 100644
--- a/Imaging/General/vtkImageGradientMagnitude.cxx
+++ b/Imaging/General/vtkImageGradientMagnitude.cxx
@@ -24,6 +24,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageGradientMagnitude);
 
 //------------------------------------------------------------------------------
@@ -248,3 +249,4 @@ void vtkImageGradientMagnitude::ThreadedExecute(
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageGradientMagnitude.h b/Imaging/General/vtkImageGradientMagnitude.h
index 37295a3ac944387c5fe79663f722b64fa0c91ac2..5e59f3c3b60b3a0165396a96880e88c8d789c643 100644
--- a/Imaging/General/vtkImageGradientMagnitude.h
+++ b/Imaging/General/vtkImageGradientMagnitude.h
@@ -31,6 +31,7 @@
 #include "vtkImagingGeneralModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageGradientMagnitude : public vtkThreadedImageAlgorithm
 {
 public:
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkImageGradientMagnitude&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageHybridMedian2D.cxx b/Imaging/General/vtkImageHybridMedian2D.cxx
index 75d5594b505a894c8e17afe04c6793541f781dea..bea3251bc124bd98a5f536d48a73c2255b8e9e15 100644
--- a/Imaging/General/vtkImageHybridMedian2D.cxx
+++ b/Imaging/General/vtkImageHybridMedian2D.cxx
@@ -23,6 +23,7 @@
 #include <numeric>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageHybridMedian2D);
 
 //------------------------------------------------------------------------------
@@ -282,3 +283,4 @@ void vtkImageHybridMedian2D::ThreadedRequestData(vtkInformation* vtkNotUsed(requ
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageHybridMedian2D.h b/Imaging/General/vtkImageHybridMedian2D.h
index 04ae3898e21cba7704d34f6f5728debaf4b4be08..fda1378f1526e9a6f72fa9ea90fa1677c8042094 100644
--- a/Imaging/General/vtkImageHybridMedian2D.h
+++ b/Imaging/General/vtkImageHybridMedian2D.h
@@ -30,6 +30,7 @@
 #include "vtkImageSpatialAlgorithm.h"
 #include "vtkImagingGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageHybridMedian2D : public vtkImageSpatialAlgorithm
 {
 public:
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkImageHybridMedian2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageLaplacian.cxx b/Imaging/General/vtkImageLaplacian.cxx
index 10efa6fc86ee8c705e1a3ca900502edceee8afaf..b24c5b842eee8a26b29288ef3ce7748aafa630f2 100644
--- a/Imaging/General/vtkImageLaplacian.cxx
+++ b/Imaging/General/vtkImageLaplacian.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageLaplacian);
 
 //------------------------------------------------------------------------------
@@ -209,3 +210,4 @@ void vtkImageLaplacian::ThreadedRequestData(vtkInformation* vtkNotUsed(request),
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageLaplacian.h b/Imaging/General/vtkImageLaplacian.h
index a3bb5022792766b97d17e03f613b0bd8a919a12d..c36144abe45dd24bdacad1b162d29719af8a6715 100644
--- a/Imaging/General/vtkImageLaplacian.h
+++ b/Imaging/General/vtkImageLaplacian.h
@@ -30,6 +30,7 @@
 #include "vtkImagingGeneralModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageLaplacian : public vtkThreadedImageAlgorithm
 {
 public:
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkImageLaplacian&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageMedian3D.cxx b/Imaging/General/vtkImageMedian3D.cxx
index b612c06ac1a3681bedb170eb187cc5c191ee9ebc..ba3b506884fbd6b16688f19f1f8d916711e663d1 100644
--- a/Imaging/General/vtkImageMedian3D.cxx
+++ b/Imaging/General/vtkImageMedian3D.cxx
@@ -25,6 +25,7 @@
 
 #include <algorithm> // for std::nth_element
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageMedian3D);
 
 //------------------------------------------------------------------------------
@@ -305,3 +306,4 @@ void vtkImageMedian3D::ThreadedRequestData(vtkInformation* vtkNotUsed(request),
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageMedian3D.h b/Imaging/General/vtkImageMedian3D.h
index 50621b3a73f1b7ef251a31001c9b2d5d09679e0d..49c36808dfe15f916107124f25fef7d58da96bd8 100644
--- a/Imaging/General/vtkImageMedian3D.h
+++ b/Imaging/General/vtkImageMedian3D.h
@@ -29,6 +29,7 @@
 #include "vtkImageSpatialAlgorithm.h"
 #include "vtkImagingGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageMedian3D : public vtkImageSpatialAlgorithm
 {
 public:
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkImageMedian3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageNormalize.cxx b/Imaging/General/vtkImageNormalize.cxx
index 3685fb53e0823fda65bdde5f4d6a2ae0681f6345..2b81877645f8d76a649b9a255b7219a153a90cd0 100644
--- a/Imaging/General/vtkImageNormalize.cxx
+++ b/Imaging/General/vtkImageNormalize.cxx
@@ -23,6 +23,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageNormalize);
 
 //------------------------------------------------------------------------------
@@ -127,3 +128,4 @@ void vtkImageNormalize::ThreadedExecute(
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageNormalize.h b/Imaging/General/vtkImageNormalize.h
index 2e22932ca68a984290356063fd7701dfd9e9e8a3..4272c0179caf642d63aae3e02f202f1674986ae5 100644
--- a/Imaging/General/vtkImageNormalize.h
+++ b/Imaging/General/vtkImageNormalize.h
@@ -27,6 +27,7 @@
 #include "vtkImagingGeneralModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageNormalize : public vtkThreadedImageAlgorithm
 {
 public:
@@ -47,4 +48,5 @@ private:
   void operator=(const vtkImageNormalize&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageRange3D.cxx b/Imaging/General/vtkImageRange3D.cxx
index 3e464638134d047cf1972aac01aeb53dc53e56cd..3a484a5cd945c3014b8470c0ae0f90467511511f 100644
--- a/Imaging/General/vtkImageRange3D.cxx
+++ b/Imaging/General/vtkImageRange3D.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageRange3D);
 
 //------------------------------------------------------------------------------
@@ -316,3 +317,4 @@ int vtkImageRange3D::RequestData(
   this->Ellipse->Update();
   return this->Superclass::RequestData(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageRange3D.h b/Imaging/General/vtkImageRange3D.h
index 53bd0a660d2071e217058ed72cb40457910e8fda..a55cf53aa901d08223747a44158cc0aeb213220e 100644
--- a/Imaging/General/vtkImageRange3D.h
+++ b/Imaging/General/vtkImageRange3D.h
@@ -27,6 +27,7 @@
 #include "vtkImageSpatialAlgorithm.h"
 #include "vtkImagingGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageEllipsoidSource;
 
 class VTKIMAGINGGENERAL_EXPORT vtkImageRange3D : public vtkImageSpatialAlgorithm
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkImageRange3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageSeparableConvolution.cxx b/Imaging/General/vtkImageSeparableConvolution.cxx
index fd0db5e73f7cfa5b55a58e96ae22341eaec03578..6f977341985fa30c51c3d0212bcf0dbd6d192b18 100644
--- a/Imaging/General/vtkImageSeparableConvolution.cxx
+++ b/Imaging/General/vtkImageSeparableConvolution.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageSeparableConvolution);
 vtkCxxSetObjectMacro(vtkImageSeparableConvolution, XKernel, vtkFloatArray);
 vtkCxxSetObjectMacro(vtkImageSeparableConvolution, YKernel, vtkFloatArray);
@@ -407,3 +408,4 @@ void vtkImageSeparableConvolution::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "ZKernel: (not defined)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageSeparableConvolution.h b/Imaging/General/vtkImageSeparableConvolution.h
index cd5d8be9abb52aa3440e0adb339b57266f5d2370..2c1e325792c589a9a6b1945058f41561b242cbff 100644
--- a/Imaging/General/vtkImageSeparableConvolution.h
+++ b/Imaging/General/vtkImageSeparableConvolution.h
@@ -32,6 +32,7 @@
 #include "vtkImageDecomposeFilter.h"
 #include "vtkImagingGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 
 class VTKIMAGINGGENERAL_EXPORT vtkImageSeparableConvolution : public vtkImageDecomposeFilter
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkImageSeparableConvolution&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageSlab.cxx b/Imaging/General/vtkImageSlab.cxx
index e937d22719af8ef80b7ebe09440765f0013c00f5..458a1d711907977d45986cb366d12321425d125c 100644
--- a/Imaging/General/vtkImageSlab.cxx
+++ b/Imaging/General/vtkImageSlab.cxx
@@ -33,6 +33,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageSlab);
 
 //------------------------------------------------------------------------------
@@ -558,3 +559,4 @@ const char* vtkImageSlab::GetOperationAsString()
       return "";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageSlab.h b/Imaging/General/vtkImageSlab.h
index c3f9afc917ed137209397475d3d60a213a325341..3748db7a79d1d99b3b9b96273073867784d72954 100644
--- a/Imaging/General/vtkImageSlab.h
+++ b/Imaging/General/vtkImageSlab.h
@@ -31,6 +31,7 @@
 #include "vtkImagingGeneralModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageSlab : public vtkThreadedImageAlgorithm
 {
 public:
@@ -135,4 +136,5 @@ private:
   void operator=(const vtkImageSlab&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageSlabReslice.cxx b/Imaging/General/vtkImageSlabReslice.cxx
index b712a6f439ec5b2cd70a77eec02cdbfa560b72c6..b7dfc16c616af5d53cd0590beb86450d1ac44eb4 100644
--- a/Imaging/General/vtkImageSlabReslice.cxx
+++ b/Imaging/General/vtkImageSlabReslice.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageSlabReslice);
 
 //------------------------------------------------------------------------------
@@ -73,3 +74,4 @@ void vtkImageSlabReslice::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "SlabThickness (world units): " << this->SlabThickness << endl;
   os << indent << "Max Number of slices blended: " << this->NumBlendSamplePoints << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageSlabReslice.h b/Imaging/General/vtkImageSlabReslice.h
index 47a2c516be89c8f63b277cfdc34de9da294b62da..c9c714468f090fa6b45b2c57b95c840a4fd3aa15 100644
--- a/Imaging/General/vtkImageSlabReslice.h
+++ b/Imaging/General/vtkImageSlabReslice.h
@@ -47,6 +47,7 @@
 #include "vtkImageReslice.h"
 #include "vtkImagingGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageSlabReslice : public vtkImageReslice
 {
 public:
@@ -117,4 +118,5 @@ private:
   void operator=(const vtkImageSlabReslice&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageSobel2D.cxx b/Imaging/General/vtkImageSobel2D.cxx
index 64578d3ec1f5d0e484cc58a74f932ff6bf9da6ca..3e39df8f85056c24bc28e499bd37dc4ae4e175d7 100644
--- a/Imaging/General/vtkImageSobel2D.cxx
+++ b/Imaging/General/vtkImageSobel2D.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageSobel2D);
 
 //------------------------------------------------------------------------------
@@ -210,3 +211,4 @@ void vtkImageSobel2D::ThreadedRequestData(vtkInformation* vtkNotUsed(request),
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageSobel2D.h b/Imaging/General/vtkImageSobel2D.h
index 56b3e1d3ea254cfacdc3c27a37a1663acdda0f61..2918e651ce64f11cf1817b8297a6ed3c77a84e4c 100644
--- a/Imaging/General/vtkImageSobel2D.h
+++ b/Imaging/General/vtkImageSobel2D.h
@@ -27,6 +27,7 @@
 #include "vtkImageSpatialAlgorithm.h"
 #include "vtkImagingGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageSobel2D : public vtkImageSpatialAlgorithm
 {
 public:
@@ -49,4 +50,5 @@ private:
   void operator=(const vtkImageSobel2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageSobel3D.cxx b/Imaging/General/vtkImageSobel3D.cxx
index 7620e9866f682899f05d2cad849ac116dcc71af1..1e44bf4e767a4493868f85734033a0b944566d68 100644
--- a/Imaging/General/vtkImageSobel3D.cxx
+++ b/Imaging/General/vtkImageSobel3D.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageSobel3D);
 
 //------------------------------------------------------------------------------
@@ -247,3 +248,4 @@ void vtkImageSobel3D::ThreadedRequestData(vtkInformation* vtkNotUsed(request),
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageSobel3D.h b/Imaging/General/vtkImageSobel3D.h
index bc4d5769c0baed64e3e81595e134b27efe15a12a..e765ab7f171fa80f1b43c9bb4ccb9df6c7077d03 100644
--- a/Imaging/General/vtkImageSobel3D.h
+++ b/Imaging/General/vtkImageSobel3D.h
@@ -28,6 +28,7 @@
 #include "vtkImageSpatialAlgorithm.h"
 #include "vtkImagingGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageSobel3D : public vtkImageSpatialAlgorithm
 {
 public:
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkImageSobel3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageSpatialAlgorithm.cxx b/Imaging/General/vtkImageSpatialAlgorithm.cxx
index ea409b6717992295dff3ef8c770117d7826355e9..74e31f965403537554b6c72f42e3e125b8c47699 100644
--- a/Imaging/General/vtkImageSpatialAlgorithm.cxx
+++ b/Imaging/General/vtkImageSpatialAlgorithm.cxx
@@ -24,6 +24,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageSpatialAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -156,3 +157,4 @@ void vtkImageSpatialAlgorithm::InternalRequestUpdateExtent(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageSpatialAlgorithm.h b/Imaging/General/vtkImageSpatialAlgorithm.h
index b0bfda34b03f2a3bb3959e055f7311b9c3728d54..f96156ab050ad7cc521d03ce51ad5f908ca76358 100644
--- a/Imaging/General/vtkImageSpatialAlgorithm.h
+++ b/Imaging/General/vtkImageSpatialAlgorithm.h
@@ -30,6 +30,7 @@
 #include "vtkImagingGeneralModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGGENERAL_EXPORT vtkImageSpatialAlgorithm : public vtkThreadedImageAlgorithm
 {
 public:
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkImageSpatialAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/General/vtkImageVariance3D.cxx b/Imaging/General/vtkImageVariance3D.cxx
index b9a54ccbbdf668f505664b84adc60d8f89c1544b..0a132da5c077233e3bc42159472039b176855fc3 100644
--- a/Imaging/General/vtkImageVariance3D.cxx
+++ b/Imaging/General/vtkImageVariance3D.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageVariance3D);
 
 //------------------------------------------------------------------------------
@@ -312,3 +313,4 @@ int vtkImageVariance3D::RequestData(
   this->Ellipse->Update();
   return this->Superclass::RequestData(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/General/vtkImageVariance3D.h b/Imaging/General/vtkImageVariance3D.h
index 15c883088c1e3f3ee5198a25e8be0f62a108db3b..55a297a401e5946c27d6746d7cd18472ff23523d 100644
--- a/Imaging/General/vtkImageVariance3D.h
+++ b/Imaging/General/vtkImageVariance3D.h
@@ -30,6 +30,7 @@
 #include "vtkImageSpatialAlgorithm.h"
 #include "vtkImagingGeneralModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageEllipsoidSource;
 
 class VTKIMAGINGGENERAL_EXPORT vtkImageVariance3D : public vtkImageSpatialAlgorithm
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkImageVariance3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkBooleanTexture.cxx b/Imaging/Hybrid/vtkBooleanTexture.cxx
index 8097b2a59cad8d4528a83391e70724b05d87d4d8..88198196bd3f2f52d3c2bd96915f71d4976fa9c0 100644
--- a/Imaging/Hybrid/vtkBooleanTexture.cxx
+++ b/Imaging/Hybrid/vtkBooleanTexture.cxx
@@ -22,6 +22,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBooleanTexture);
 
 vtkBooleanTexture::vtkBooleanTexture()
@@ -168,3 +169,4 @@ void vtkBooleanTexture::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "In/On: (" << this->InOn[0] << "," << this->InOn[1] << ")\n";
   os << indent << "Out/On: (" << this->OutOn[0] << "," << this->OutOn[1] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkBooleanTexture.h b/Imaging/Hybrid/vtkBooleanTexture.h
index 02df0603e1adaa89b2edaa4be774002e094e79b8..f6b7b2646a3e005ec2a47778ab418f0a1823ebef 100644
--- a/Imaging/Hybrid/vtkBooleanTexture.h
+++ b/Imaging/Hybrid/vtkBooleanTexture.h
@@ -47,6 +47,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingHybridModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGHYBRID_EXPORT vtkBooleanTexture : public vtkImageAlgorithm
 {
 public:
@@ -177,4 +178,5 @@ private:
   void operator=(const vtkBooleanTexture&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkCheckerboardSplatter.cxx b/Imaging/Hybrid/vtkCheckerboardSplatter.cxx
index 181c7cea9fd52a8a85328caec1c3998d0b0cdfb3..59a4ca4873bee522f1dee01522d67925e8acd183 100644
--- a/Imaging/Hybrid/vtkCheckerboardSplatter.cxx
+++ b/Imaging/Hybrid/vtkCheckerboardSplatter.cxx
@@ -31,6 +31,7 @@
 #include <algorithm>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCheckerboardSplatter);
 
 //------------------------------------------------------------------------------
@@ -875,3 +876,4 @@ void vtkCheckerboardSplatter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Parallel Splat Crossover: " << this->ParallelSplatCrossover << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkCheckerboardSplatter.h b/Imaging/Hybrid/vtkCheckerboardSplatter.h
index d84b9f8301e6240acd3d30ae0092c6208ec56087..c07d9997013ea1cd5630b3e837a3daf6fb49b1d3 100644
--- a/Imaging/Hybrid/vtkCheckerboardSplatter.h
+++ b/Imaging/Hybrid/vtkCheckerboardSplatter.h
@@ -102,6 +102,7 @@
 #define VTK_ACCUMULATION_MODE_MAX 1
 #define VTK_ACCUMULATION_MODE_SUM 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkCompositeDataSet;
 
@@ -339,4 +340,5 @@ private:
   void operator=(const vtkCheckerboardSplatter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkFastSplatter.cxx b/Imaging/Hybrid/vtkFastSplatter.cxx
index 4a23189a1aed167260bd0747f1832f8d06270366..773ec4342495c71db08d25f0e2fcaf6d1382329e 100644
--- a/Imaging/Hybrid/vtkFastSplatter.cxx
+++ b/Imaging/Hybrid/vtkFastSplatter.cxx
@@ -31,6 +31,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFastSplatter);
 
 //------------------------------------------------------------------------------
@@ -458,3 +459,4 @@ void vtkFastSplatter::SetSplatConnection(vtkAlgorithmOutput* input)
 {
   this->SetInputConnection(1, input);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkFastSplatter.h b/Imaging/Hybrid/vtkFastSplatter.h
index 16a8506d4bb3802928b66b99bc1cc5ede9f69839..e9fa521b4c67753195a3176cd3a3f7ac808b4895 100644
--- a/Imaging/Hybrid/vtkFastSplatter.h
+++ b/Imaging/Hybrid/vtkFastSplatter.h
@@ -48,6 +48,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingHybridModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGHYBRID_EXPORT vtkFastSplatter : public vtkImageAlgorithm
 {
 public:
@@ -273,4 +274,5 @@ void vtkFastSplatterFrozenScale(
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkFastSplatter_h
diff --git a/Imaging/Hybrid/vtkGaussianSplatter.cxx b/Imaging/Hybrid/vtkGaussianSplatter.cxx
index b29f24160aec1af7d4d7e24ffcdc5e9f443c3de3..bbc35b14394ebc954da2545ae47b7d4db85eb0bf 100644
--- a/Imaging/Hybrid/vtkGaussianSplatter.cxx
+++ b/Imaging/Hybrid/vtkGaussianSplatter.cxx
@@ -31,6 +31,7 @@
 #include <algorithm>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGaussianSplatter);
 
 //------------------------------------------------------------------------------
@@ -753,3 +754,4 @@ int vtkGaussianSplatter::FillInputPortInformation(int vtkNotUsed(port), vtkInfor
   info->Append(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkCompositeDataSet");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkGaussianSplatter.h b/Imaging/Hybrid/vtkGaussianSplatter.h
index 56a91133189bd10f879434f29006e9a3c0207c23..271110f951f97b5dd694c893de02e9ab6b9b7961 100644
--- a/Imaging/Hybrid/vtkGaussianSplatter.h
+++ b/Imaging/Hybrid/vtkGaussianSplatter.h
@@ -82,6 +82,7 @@
 #define VTK_ACCUMULATION_MODE_MAX 1
 #define VTK_ACCUMULATION_MODE_SUM 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkCompositeDataSet;
 class vtkGaussianSplatterAlgorithm;
@@ -326,4 +327,5 @@ private:
   void operator=(const vtkGaussianSplatter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkImageCursor3D.cxx b/Imaging/Hybrid/vtkImageCursor3D.cxx
index 9ea1574a7a8e4a9f8a32a87ed153704f3c0876ae..bff40e58dd4f3b67b4921449d0ea542835f100d1 100644
--- a/Imaging/Hybrid/vtkImageCursor3D.cxx
+++ b/Imaging/Hybrid/vtkImageCursor3D.cxx
@@ -19,6 +19,7 @@
 #include "vtkInformationVector.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageCursor3D);
 
 //------------------------------------------------------------------------------
@@ -126,3 +127,4 @@ int vtkImageCursor3D::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkImageCursor3D.h b/Imaging/Hybrid/vtkImageCursor3D.h
index baa5d7cd738f48379cdb63906e7ddf659ea2fc9d..08c39e03aa7b7b68b07e299b2b6c7ef39e96a414 100644
--- a/Imaging/Hybrid/vtkImageCursor3D.h
+++ b/Imaging/Hybrid/vtkImageCursor3D.h
@@ -25,6 +25,7 @@
 #include "vtkImageInPlaceFilter.h"
 #include "vtkImagingHybridModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGHYBRID_EXPORT vtkImageCursor3D : public vtkImageInPlaceFilter
 {
 public:
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkImageCursor3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkImageRectilinearWipe.cxx b/Imaging/Hybrid/vtkImageRectilinearWipe.cxx
index ba7c0e3e221910efe937f8e6da74eeff6e42fa95..fb7f6c1859f661b06cbe323a06c886ad4614c8ac 100644
--- a/Imaging/Hybrid/vtkImageRectilinearWipe.cxx
+++ b/Imaging/Hybrid/vtkImageRectilinearWipe.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageRectilinearWipe);
 
 //------------------------------------------------------------------------------
@@ -377,3 +378,4 @@ void vtkImageRectilinearWipe::PrintSelf(ostream& os, vtkIndent indent)
       break;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkImageRectilinearWipe.h b/Imaging/Hybrid/vtkImageRectilinearWipe.h
index d796483b29810b7a8631fc4e336ff60bdea5d7bf..60ec75c408df6cf4c97b86afbc90659670b94fc4 100644
--- a/Imaging/Hybrid/vtkImageRectilinearWipe.h
+++ b/Imaging/Hybrid/vtkImageRectilinearWipe.h
@@ -58,6 +58,7 @@
 #define VTK_WIPE_UPPER_LEFT 5
 #define VTK_WIPE_UPPER_RIGHT 6
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGHYBRID_EXPORT vtkImageRectilinearWipe : public vtkThreadedImageAlgorithm
 {
 public:
@@ -136,4 +137,5 @@ private:
   void operator=(const vtkImageRectilinearWipe&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkImageToPoints.cxx b/Imaging/Hybrid/vtkImageToPoints.cxx
index fc3ca2b5f909e096011d629c91fbaabfb6eb7440..ad76cef06561d1685f14323aab7c3c49de50b3e0 100644
--- a/Imaging/Hybrid/vtkImageToPoints.cxx
+++ b/Imaging/Hybrid/vtkImageToPoints.cxx
@@ -27,6 +27,7 @@
 #include <vtkSmartPointer.h>
 #include <vtkStreamingDemandDrivenPipeline.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageToPoints);
 
 //------------------------------------------------------------------------------
@@ -235,3 +236,4 @@ int vtkImageToPoints::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkImageToPoints.h b/Imaging/Hybrid/vtkImageToPoints.h
index 5303a037c5585fdd79ca4ec5a03a89c7308b6b63..cbd1f4275cb7df82efc3e77fcacb0a9ecb4ee153 100644
--- a/Imaging/Hybrid/vtkImageToPoints.h
+++ b/Imaging/Hybrid/vtkImageToPoints.h
@@ -31,6 +31,7 @@
 #include "vtkImagingHybridModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageStencilData;
 
 class VTKIMAGINGHYBRID_EXPORT vtkImageToPoints : public vtkPolyDataAlgorithm
@@ -82,4 +83,5 @@ private:
   void operator=(const vtkImageToPoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkPointLoad.cxx b/Imaging/Hybrid/vtkPointLoad.cxx
index 53ef440ccabbd99309ebf5b88d57ccbec57661bd..6abbe5353052ae4cd57886b1a93f06b70c74f7fd 100644
--- a/Imaging/Hybrid/vtkPointLoad.cxx
+++ b/Imaging/Hybrid/vtkPointLoad.cxx
@@ -23,6 +23,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointLoad);
 
 //------------------------------------------------------------------------------
@@ -261,3 +262,4 @@ void vtkPointLoad::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "  Zmin,Zmax: (" << this->ModelBounds[4] << ", " << this->ModelBounds[5] << ")\n";
   os << indent << "Poisson's Ratio: " << this->PoissonsRatio << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkPointLoad.h b/Imaging/Hybrid/vtkPointLoad.h
index 7e1cc293aa58e4103a5fdf364fd9f886d99ae9df..9a2b0a1dd5fcd412a62ba2d7e3bebc511f5eae71 100644
--- a/Imaging/Hybrid/vtkPointLoad.h
+++ b/Imaging/Hybrid/vtkPointLoad.h
@@ -33,6 +33,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingHybridModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGHYBRID_EXPORT vtkPointLoad : public vtkImageAlgorithm
 {
 public:
@@ -113,4 +114,5 @@ private:
   void operator=(const vtkPointLoad&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkSampleFunction.cxx b/Imaging/Hybrid/vtkSampleFunction.cxx
index 16d302835468194b874dfe6f4899425c9d59c3f7..e2289ec40337e1ffe47a9f17919a1fd6e58d6fd6 100644
--- a/Imaging/Hybrid/vtkSampleFunction.cxx
+++ b/Imaging/Hybrid/vtkSampleFunction.cxx
@@ -27,6 +27,7 @@
 #include "vtkSMPTools.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSampleFunction);
 vtkCxxSetObjectMacro(vtkSampleFunction, ImplicitFunction, vtkImplicitFunction);
 
@@ -527,3 +528,4 @@ void vtkSampleFunction::ReportReferences(vtkGarbageCollector* collector)
   this->Superclass::ReportReferences(collector);
   vtkGarbageCollectorReport(collector, this->ImplicitFunction, "ImplicitFunction");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkSampleFunction.h b/Imaging/Hybrid/vtkSampleFunction.h
index c8b35b4b71a404c907609d7278f6eb2d3d9f9d90..21100d2cfc0a82cdc89aa208d76d8780002c6b0a 100644
--- a/Imaging/Hybrid/vtkSampleFunction.h
+++ b/Imaging/Hybrid/vtkSampleFunction.h
@@ -33,6 +33,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingHybridModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
 class vtkDataArray;
 
@@ -181,4 +182,5 @@ private:
   void operator=(const vtkSampleFunction&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkShepardMethod.cxx b/Imaging/Hybrid/vtkShepardMethod.cxx
index 0f3cf85f1c28bb7053f365b3af1c79462fa6ef9e..f464e4a4244f1cb5b2b0d0dbef8b5b1b13d6f70b 100644
--- a/Imaging/Hybrid/vtkShepardMethod.cxx
+++ b/Imaging/Hybrid/vtkShepardMethod.cxx
@@ -24,6 +24,7 @@
 #include "vtkSMPTools.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkShepardMethod);
 
 //------------------------------------------------------------------------------
@@ -541,3 +542,4 @@ void vtkShepardMethod::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Power Parameter: " << this->PowerParameter << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkShepardMethod.h b/Imaging/Hybrid/vtkShepardMethod.h
index 4db9a38ed259f4201b2c59c40f45a447e7e8ab0b..93591a891628fd58edf9867c04ca66301f224462 100644
--- a/Imaging/Hybrid/vtkShepardMethod.h
+++ b/Imaging/Hybrid/vtkShepardMethod.h
@@ -80,6 +80,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingHybridModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGHYBRID_EXPORT vtkShepardMethod : public vtkImageAlgorithm
 {
 public:
@@ -186,4 +187,5 @@ private:
   void operator=(const vtkShepardMethod&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkSliceCubes.cxx b/Imaging/Hybrid/vtkSliceCubes.cxx
index 41bbc124d57cb22e6853612310dbeb27b85e1b99..45c95a03de21618920e3e8acc59126db81d6a1cf 100644
--- a/Imaging/Hybrid/vtkSliceCubes.cxx
+++ b/Imaging/Hybrid/vtkSliceCubes.cxx
@@ -33,6 +33,7 @@
 #include "vtkVolumeReader.h"
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSliceCubes);
 
 vtkCxxSetObjectMacro(vtkSliceCubes, Reader, vtkVolumeReader);
@@ -621,3 +622,4 @@ void vtkSliceCubes::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Limits File Name: " << (this->LimitsFileName ? this->LimitsFileName : "(none)")
      << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkSliceCubes.h b/Imaging/Hybrid/vtkSliceCubes.h
index c624bb1d4cf229726943d4fb726c5da75968d06a..3345c606583f9e695d1c6ffd092db20ca6b2975b 100644
--- a/Imaging/Hybrid/vtkSliceCubes.h
+++ b/Imaging/Hybrid/vtkSliceCubes.h
@@ -52,6 +52,7 @@
 #include "vtkImagingHybridModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVolumeReader;
 
 class VTKIMAGINGHYBRID_EXPORT vtkSliceCubes : public vtkObject
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkSliceCubes&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkSurfaceReconstructionFilter.cxx b/Imaging/Hybrid/vtkSurfaceReconstructionFilter.cxx
index 132edc8c99bee42f3f44b98774d5a21f7c939e1f..93766035cf096e61e09ecc4491dd1412c6a35606 100644
--- a/Imaging/Hybrid/vtkSurfaceReconstructionFilter.cxx
+++ b/Imaging/Hybrid/vtkSurfaceReconstructionFilter.cxx
@@ -26,6 +26,7 @@
 #include "vtkPoints.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSurfaceReconstructionFilter);
 
 vtkSurfaceReconstructionFilter::vtkSurfaceReconstructionFilter()
@@ -586,3 +587,4 @@ static void vtkSRFreeMatrix(
 }
 
 #undef VTK_NR_END
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkSurfaceReconstructionFilter.h b/Imaging/Hybrid/vtkSurfaceReconstructionFilter.h
index d14c8dd49394fcf2ade22c9fbe1d7c4dd18499ab..b9ffe0d8a88fbde5eb8edd56c192f84a0824e3dc 100644
--- a/Imaging/Hybrid/vtkSurfaceReconstructionFilter.h
+++ b/Imaging/Hybrid/vtkSurfaceReconstructionFilter.h
@@ -31,6 +31,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingHybridModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGHYBRID_EXPORT vtkSurfaceReconstructionFilter : public vtkImageAlgorithm
 {
 public:
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkSurfaceReconstructionFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkTriangularTexture.cxx b/Imaging/Hybrid/vtkTriangularTexture.cxx
index afb86e6ac33ac11c16b03f05bf823f69081b73e0..f0133e385fc396af12c6ce9215536311fbe10ca7 100644
--- a/Imaging/Hybrid/vtkTriangularTexture.cxx
+++ b/Imaging/Hybrid/vtkTriangularTexture.cxx
@@ -23,6 +23,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTriangularTexture);
 
 // Instantiate object with XSize and YSize = 64; the texture pattern =1
@@ -192,3 +193,4 @@ void vtkTriangularTexture::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Scale Factor:" << this->ScaleFactor << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkTriangularTexture.h b/Imaging/Hybrid/vtkTriangularTexture.h
index a03793e53cd266df7fa8d6d109717d7da79e2279..64f83267c6879dda647f0bea803068d3ffd80bba 100644
--- a/Imaging/Hybrid/vtkTriangularTexture.h
+++ b/Imaging/Hybrid/vtkTriangularTexture.h
@@ -34,6 +34,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingHybridModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGHYBRID_EXPORT vtkTriangularTexture : public vtkImageAlgorithm
 {
 public:
@@ -99,4 +100,5 @@ private:
   void operator=(const vtkTriangularTexture&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Hybrid/vtkVoxelModeller.cxx b/Imaging/Hybrid/vtkVoxelModeller.cxx
index be36105de828d8e29816b0d68f7d3cdcb507f8c7..1963487507759e3f524f2b8dcb6b0f22aaf31631 100644
--- a/Imaging/Hybrid/vtkVoxelModeller.cxx
+++ b/Imaging/Hybrid/vtkVoxelModeller.cxx
@@ -25,6 +25,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVoxelModeller);
 
 // Construct an instance of vtkVoxelModeller with its sample dimensions
@@ -341,3 +342,4 @@ void vtkVoxelModeller::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ForegroundValue: " << this->ForegroundValue << endl;
   os << indent << "BackgroundValue: " << this->BackgroundValue << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Hybrid/vtkVoxelModeller.h b/Imaging/Hybrid/vtkVoxelModeller.h
index e73d0033cb664aaa825a43c1ddd6ec8d5b30ac0b..d87db6e71037738abe5b188aad6e27d6c01818f3 100644
--- a/Imaging/Hybrid/vtkVoxelModeller.h
+++ b/Imaging/Hybrid/vtkVoxelModeller.h
@@ -34,6 +34,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingHybridModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGHYBRID_EXPORT vtkVoxelModeller : public vtkImageAlgorithm
 {
 public:
@@ -144,4 +145,5 @@ private:
   void operator=(const vtkVoxelModeller&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Math/vtkImageDivergence.cxx b/Imaging/Math/vtkImageDivergence.cxx
index 374d09dc4e8a01666ca741482565e6398019b2ed..808966dbf9c67b2f2dd467720b2ee80a00e01130 100644
--- a/Imaging/Math/vtkImageDivergence.cxx
+++ b/Imaging/Math/vtkImageDivergence.cxx
@@ -23,6 +23,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageDivergence);
 
 void vtkImageDivergence::PrintSelf(ostream& os, vtkIndent indent)
@@ -221,3 +222,4 @@ void vtkImageDivergence::ThreadedExecute(
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Math/vtkImageDivergence.h b/Imaging/Math/vtkImageDivergence.h
index 7f361706faeecafd0853818eaf06b7b7c7475a59..336c532c0e2477a228a3f335918bc69112c723ef 100644
--- a/Imaging/Math/vtkImageDivergence.h
+++ b/Imaging/Math/vtkImageDivergence.h
@@ -30,6 +30,7 @@
 #include "vtkImagingMathModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGMATH_EXPORT vtkImageDivergence : public vtkThreadedImageAlgorithm
 {
 public:
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkImageDivergence&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Math/vtkImageDotProduct.cxx b/Imaging/Math/vtkImageDotProduct.cxx
index 48fa34898f1870e8d5ee702dc78c01bb9bd694df..858c1ba9fbbbcfbe3e44eb656fb40ee73719ba76 100644
--- a/Imaging/Math/vtkImageDotProduct.cxx
+++ b/Imaging/Math/vtkImageDotProduct.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageDotProduct);
 
 //------------------------------------------------------------------------------
@@ -129,3 +130,4 @@ void vtkImageDotProduct::ThreadedRequestData(vtkInformation* vtkNotUsed(request)
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Math/vtkImageDotProduct.h b/Imaging/Math/vtkImageDotProduct.h
index 6e0d9c4019e9e1efd19b3b9b3ebd7276d1793d4d..71dad83ded80848f122c85efa94b46bc8ba77971 100644
--- a/Imaging/Math/vtkImageDotProduct.h
+++ b/Imaging/Math/vtkImageDotProduct.h
@@ -26,6 +26,7 @@
 #include "vtkImagingMathModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGMATH_EXPORT vtkImageDotProduct : public vtkThreadedImageAlgorithm
 {
 public:
@@ -54,4 +55,5 @@ private:
   void operator=(const vtkImageDotProduct&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Math/vtkImageLogarithmicScale.cxx b/Imaging/Math/vtkImageLogarithmicScale.cxx
index 9ac72bf87ec41d7069de8996b533f4d33f4eaaf0..63d8b2ccabe6f62ab62595619b6b1f486367e959 100644
--- a/Imaging/Math/vtkImageLogarithmicScale.cxx
+++ b/Imaging/Math/vtkImageLogarithmicScale.cxx
@@ -20,6 +20,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageLogarithmicScale);
 
 //------------------------------------------------------------------------------
@@ -101,3 +102,4 @@ void vtkImageLogarithmicScale::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Constant: " << this->Constant << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Math/vtkImageLogarithmicScale.h b/Imaging/Math/vtkImageLogarithmicScale.h
index 9b97ae1ec214be5a3b9d0512cc342c24323df7ae..a8ec4fb5c0dbf8343961bd6c6729567a50c4456f 100644
--- a/Imaging/Math/vtkImageLogarithmicScale.h
+++ b/Imaging/Math/vtkImageLogarithmicScale.h
@@ -27,6 +27,7 @@
 #include "vtkImagingMathModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGMATH_EXPORT vtkImageLogarithmicScale : public vtkThreadedImageAlgorithm
 {
 public:
@@ -55,4 +56,5 @@ private:
   void operator=(const vtkImageLogarithmicScale&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Math/vtkImageLogic.cxx b/Imaging/Math/vtkImageLogic.cxx
index 4cf634fa24397aff56ce830c2bb118035771669b..efce217b8b31a8132ca905e3d8848e6bceecc7d8 100644
--- a/Imaging/Math/vtkImageLogic.cxx
+++ b/Imaging/Math/vtkImageLogic.cxx
@@ -23,6 +23,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageLogic);
 
 //------------------------------------------------------------------------------
@@ -291,3 +292,4 @@ void vtkImageLogic::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Operation: " << this->Operation << "\n";
   os << indent << "OutputTrueValue: " << this->OutputTrueValue << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Math/vtkImageLogic.h b/Imaging/Math/vtkImageLogic.h
index 38d27426ce238d1c903830943af3e4d6c5fae533..f72dc1953df52c81640f85d6f089ffa23c15ab8e 100644
--- a/Imaging/Math/vtkImageLogic.h
+++ b/Imaging/Math/vtkImageLogic.h
@@ -36,6 +36,7 @@
 #include "vtkImagingMathModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGMATH_EXPORT vtkImageLogic : public vtkThreadedImageAlgorithm
 {
 public:
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkImageLogic&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Math/vtkImageMagnitude.cxx b/Imaging/Math/vtkImageMagnitude.cxx
index 64490a5e74111e6228167de81f80f730086a7725..c11ead427d0e9928bb727ff2ecad83828d07f509 100644
--- a/Imaging/Math/vtkImageMagnitude.cxx
+++ b/Imaging/Math/vtkImageMagnitude.cxx
@@ -25,6 +25,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageMagnitude);
 
 //------------------------------------------------------------------------------
@@ -118,3 +119,4 @@ void vtkImageMagnitude::ThreadedExecute(
       return;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Math/vtkImageMagnitude.h b/Imaging/Math/vtkImageMagnitude.h
index 326809fe624b95a74b4e18e86312025eea5f4714..b72924eec0f7871b503940837238dea07a5fc240 100644
--- a/Imaging/Math/vtkImageMagnitude.h
+++ b/Imaging/Math/vtkImageMagnitude.h
@@ -25,6 +25,7 @@
 #include "vtkImagingMathModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGMATH_EXPORT vtkImageMagnitude : public vtkThreadedImageAlgorithm
 {
 public:
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkImageMagnitude&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Math/vtkImageMaskBits.cxx b/Imaging/Math/vtkImageMaskBits.cxx
index 2435b8812f268a3daa921fd71cbebdfeb6fdd171..d5bcac690efd786eaf1255c210b8d46a7f7d587f 100644
--- a/Imaging/Math/vtkImageMaskBits.cxx
+++ b/Imaging/Math/vtkImageMaskBits.cxx
@@ -20,6 +20,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageMaskBits);
 
 vtkImageMaskBits::vtkImageMaskBits()
@@ -176,3 +177,4 @@ void vtkImageMaskBits::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Masks: (" << this->Masks[0] << ", " << this->Masks[1] << ", " << this->Masks[2]
      << ", " << this->Masks[3] << ")" << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Math/vtkImageMaskBits.h b/Imaging/Math/vtkImageMaskBits.h
index 9a6ea39160c73599c89fd124f5dc4e7b35978d81..1a203f58c0a8b890959daba329f405951a2387f8 100644
--- a/Imaging/Math/vtkImageMaskBits.h
+++ b/Imaging/Math/vtkImageMaskBits.h
@@ -28,6 +28,7 @@
 #include "vtkImagingMathModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGMATH_EXPORT vtkImageMaskBits : public vtkThreadedImageAlgorithm
 {
 public:
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkImageMaskBits&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Math/vtkImageMathematics.cxx b/Imaging/Math/vtkImageMathematics.cxx
index 65109a7ecb7ac272e2a68ae082c8fd2405bd6bb1..3eef806d093f337958826ee28e916b56873d8e7b 100644
--- a/Imaging/Math/vtkImageMathematics.cxx
+++ b/Imaging/Math/vtkImageMathematics.cxx
@@ -25,6 +25,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageMathematics);
 
 //------------------------------------------------------------------------------
@@ -564,3 +565,4 @@ void vtkImageMathematics::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ConstantC: " << this->ConstantC << "\n";
   os << indent << "DivideByZeroToC: " << (this->DivideByZeroToC ? "On" : "Off") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Math/vtkImageMathematics.h b/Imaging/Math/vtkImageMathematics.h
index 28a202bdbecbbf106e6cf1badc94622122d28f12..a01c04c18694c57f0d6102fe2d641f4d67cd0b15 100644
--- a/Imaging/Math/vtkImageMathematics.h
+++ b/Imaging/Math/vtkImageMathematics.h
@@ -51,6 +51,7 @@
 #include "vtkImagingMathModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGMATH_EXPORT vtkImageMathematics : public vtkThreadedImageAlgorithm
 {
 public:
@@ -276,4 +277,5 @@ private:
   void operator=(const vtkImageMathematics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Math/vtkImageWeightedSum.cxx b/Imaging/Math/vtkImageWeightedSum.cxx
index bdd4f95ea66e5674144127828207c236668a02b3..c64c1e040c005fee70e38da578cc5efceba9d80b 100644
--- a/Imaging/Math/vtkImageWeightedSum.cxx
+++ b/Imaging/Math/vtkImageWeightedSum.cxx
@@ -24,6 +24,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageWeightedSum);
 
 vtkCxxSetObjectMacro(vtkImageWeightedSum, Weights, vtkDoubleArray);
@@ -258,3 +259,4 @@ void vtkImageWeightedSum::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Weights: " << this->Weights << "\n";
   this->Weights->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Math/vtkImageWeightedSum.h b/Imaging/Math/vtkImageWeightedSum.h
index afced6dc47b8f59481aaadc91560eda7fa50b6d3..ca25c96c947fed77c3343926ab59c65344dd77ee 100644
--- a/Imaging/Math/vtkImageWeightedSum.h
+++ b/Imaging/Math/vtkImageWeightedSum.h
@@ -31,6 +31,7 @@
 #include "vtkImagingMathModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class VTKIMAGINGMATH_EXPORT vtkImageWeightedSum : public vtkThreadedImageAlgorithm
 {
@@ -93,4 +94,5 @@ private:
   void operator=(const vtkImageWeightedSum&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Morphological/vtkImageConnectivityFilter.cxx b/Imaging/Morphological/vtkImageConnectivityFilter.cxx
index 5b42ce0f5e7851dca11123219a62a37f4e26b792..99b4d81fea46915dfdf9e84f12e8e0768579be85 100644
--- a/Imaging/Morphological/vtkImageConnectivityFilter.cxx
+++ b/Imaging/Morphological/vtkImageConnectivityFilter.cxx
@@ -69,6 +69,7 @@
 #include <stack>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageConnectivityFilter);
 
 //------------------------------------------------------------------------------
@@ -1532,3 +1533,4 @@ void vtkImageConnectivityFilter::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "StencilConnection: " << this->GetStencilConnection() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Morphological/vtkImageConnectivityFilter.h b/Imaging/Morphological/vtkImageConnectivityFilter.h
index 3eb1f8069f97fef7e0164bc8b6bcd5245dffc8ca..316b91bcab0d00d015b6d3265ad316bc7f29f1df 100644
--- a/Imaging/Morphological/vtkImageConnectivityFilter.h
+++ b/Imaging/Morphological/vtkImageConnectivityFilter.h
@@ -96,6 +96,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingMorphologicalModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 class vtkIntArray;
 class vtkDataSet;
@@ -314,4 +315,5 @@ private:
   void operator=(const vtkImageConnectivityFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Morphological/vtkImageConnector.cxx b/Imaging/Morphological/vtkImageConnector.cxx
index 2b18b1437ec123108c4c449aca4656a97ac941f2..33384c5f473d16dd4267f9d76a96a448dcc8ef7a 100644
--- a/Imaging/Morphological/vtkImageConnector.cxx
+++ b/Imaging/Morphological/vtkImageConnector.cxx
@@ -17,6 +17,7 @@
 #include "vtkImageData.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageConnector);
 
 //------------------------------------------------------------------------------
@@ -181,3 +182,4 @@ void vtkImageConnector::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ConnectedValue: " << this->ConnectedValue << "\n";
   os << indent << "UnconnectedValue: " << this->UnconnectedValue << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Morphological/vtkImageConnector.h b/Imaging/Morphological/vtkImageConnector.h
index 4620845e68286a6db7cddfce8502463667ad9815..b2a6270673c287cdcff6a490d5b1eba0ae4735df 100644
--- a/Imaging/Morphological/vtkImageConnector.h
+++ b/Imaging/Morphological/vtkImageConnector.h
@@ -32,6 +32,7 @@
 #include "vtkImagingMorphologicalModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 //
@@ -95,4 +96,5 @@ private:
   void operator=(const vtkImageConnector&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Morphological/vtkImageContinuousDilate3D.cxx b/Imaging/Morphological/vtkImageContinuousDilate3D.cxx
index 2c9915375ca5745edc3eb3833f9bc70ddd0ed27d..67afe2fd70d6f6624fb48fc4aa184ebb5869c1f2 100644
--- a/Imaging/Morphological/vtkImageContinuousDilate3D.cxx
+++ b/Imaging/Morphological/vtkImageContinuousDilate3D.cxx
@@ -25,6 +25,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageContinuousDilate3D);
 
 //------------------------------------------------------------------------------
@@ -302,3 +303,4 @@ int vtkImageContinuousDilate3D::RequestData(
   this->Ellipse->Update();
   return this->Superclass::RequestData(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Morphological/vtkImageContinuousDilate3D.h b/Imaging/Morphological/vtkImageContinuousDilate3D.h
index 2f0ee03b3e617fc223616e60b855f12444503d4e..58f021dc2c723cec98c34dc24bafffd5fc0e3217 100644
--- a/Imaging/Morphological/vtkImageContinuousDilate3D.h
+++ b/Imaging/Morphological/vtkImageContinuousDilate3D.h
@@ -27,6 +27,7 @@
 #include "vtkImageSpatialAlgorithm.h"
 #include "vtkImagingMorphologicalModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageEllipsoidSource;
 
 class VTKIMAGINGMORPHOLOGICAL_EXPORT vtkImageContinuousDilate3D : public vtkImageSpatialAlgorithm
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkImageContinuousDilate3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Morphological/vtkImageContinuousErode3D.cxx b/Imaging/Morphological/vtkImageContinuousErode3D.cxx
index 0172f2f7b38c0fbbe66c3eeec92bf55c3f4ebe81..33f87dbb6a90eedf71bc8795ef7f4f7fa58e4338 100644
--- a/Imaging/Morphological/vtkImageContinuousErode3D.cxx
+++ b/Imaging/Morphological/vtkImageContinuousErode3D.cxx
@@ -25,6 +25,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageContinuousErode3D);
 
 //------------------------------------------------------------------------------
@@ -302,3 +303,4 @@ int vtkImageContinuousErode3D::RequestData(
   this->Ellipse->Update();
   return this->Superclass::RequestData(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Morphological/vtkImageContinuousErode3D.h b/Imaging/Morphological/vtkImageContinuousErode3D.h
index 05ad100d58665393f32c202539e6de466343fe52..1bcd0eaaede2c977a49e5fbd2710cad56b1bb1c6 100644
--- a/Imaging/Morphological/vtkImageContinuousErode3D.h
+++ b/Imaging/Morphological/vtkImageContinuousErode3D.h
@@ -27,6 +27,7 @@
 #include "vtkImageSpatialAlgorithm.h"
 #include "vtkImagingMorphologicalModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageEllipsoidSource;
 
 class VTKIMAGINGMORPHOLOGICAL_EXPORT vtkImageContinuousErode3D : public vtkImageSpatialAlgorithm
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkImageContinuousErode3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Morphological/vtkImageDilateErode3D.cxx b/Imaging/Morphological/vtkImageDilateErode3D.cxx
index a4076ece6f18868a07bd24d7782a22a04bf60bc8..1b5b527f266e58f348f2eb000b6fa3e422d19ab0 100644
--- a/Imaging/Morphological/vtkImageDilateErode3D.cxx
+++ b/Imaging/Morphological/vtkImageDilateErode3D.cxx
@@ -22,6 +22,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageDilateErode3D);
 
 //------------------------------------------------------------------------------
@@ -299,3 +300,4 @@ int vtkImageDilateErode3D::RequestData(
   this->Ellipse->Update();
   return this->Superclass::RequestData(request, inputVector, outputVector);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Morphological/vtkImageDilateErode3D.h b/Imaging/Morphological/vtkImageDilateErode3D.h
index e18c3c103a9b85d82f4c80e928ba243fcc47bab9..dc0dbe93f0c535b8b76fb667367286a19c02265e 100644
--- a/Imaging/Morphological/vtkImageDilateErode3D.h
+++ b/Imaging/Morphological/vtkImageDilateErode3D.h
@@ -29,6 +29,7 @@
 #include "vtkImageSpatialAlgorithm.h"
 #include "vtkImagingMorphologicalModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageEllipsoidSource;
 
 class VTKIMAGINGMORPHOLOGICAL_EXPORT vtkImageDilateErode3D : public vtkImageSpatialAlgorithm
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkImageDilateErode3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Morphological/vtkImageIslandRemoval2D.cxx b/Imaging/Morphological/vtkImageIslandRemoval2D.cxx
index 84b7fe9a12a041ba494f284491842ba3a834dc17..eb98babde3ba2a5a15c3798840be09316c23f701 100644
--- a/Imaging/Morphological/vtkImageIslandRemoval2D.cxx
+++ b/Imaging/Morphological/vtkImageIslandRemoval2D.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageIslandRemoval2D);
 
 //------------------------------------------------------------------------------
@@ -515,3 +516,4 @@ int vtkImageIslandRemoval2D::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Morphological/vtkImageIslandRemoval2D.h b/Imaging/Morphological/vtkImageIslandRemoval2D.h
index 729e4f3225f1e73e1c247a07146e57155e591863..ae4e7b7a43e57c59d298b07b9482a7f1c461af19 100644
--- a/Imaging/Morphological/vtkImageIslandRemoval2D.h
+++ b/Imaging/Morphological/vtkImageIslandRemoval2D.h
@@ -28,6 +28,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingMorphologicalModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkImage2DIslandPixel_t
 {
   void* inPtr;
@@ -98,4 +99,5 @@ private:
   void operator=(const vtkImageIslandRemoval2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Morphological/vtkImageNonMaximumSuppression.cxx b/Imaging/Morphological/vtkImageNonMaximumSuppression.cxx
index 6dd52d9b1135d0a27cad2c0cc59f392f460cdf3e..276e0e9174ed2122803dd47f366bf127dfb83dc6 100644
--- a/Imaging/Morphological/vtkImageNonMaximumSuppression.cxx
+++ b/Imaging/Morphological/vtkImageNonMaximumSuppression.cxx
@@ -24,6 +24,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageNonMaximumSuppression);
 
 //------------------------------------------------------------------------------
@@ -326,3 +327,4 @@ void vtkImageNonMaximumSuppression::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "HandleBoundaries: " << (this->HandleBoundaries ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Morphological/vtkImageNonMaximumSuppression.h b/Imaging/Morphological/vtkImageNonMaximumSuppression.h
index a594e84a0f62182346f71132b53bc3425a450161..29d591f2caa53c6c69c6b5f813d7834a2526e530 100644
--- a/Imaging/Morphological/vtkImageNonMaximumSuppression.h
+++ b/Imaging/Morphological/vtkImageNonMaximumSuppression.h
@@ -34,6 +34,7 @@
 #include "vtkImagingMorphologicalModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGMORPHOLOGICAL_EXPORT vtkImageNonMaximumSuppression
   : public vtkThreadedImageAlgorithm
 {
@@ -88,4 +89,5 @@ private:
   void operator=(const vtkImageNonMaximumSuppression&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Morphological/vtkImageOpenClose3D.cxx b/Imaging/Morphological/vtkImageOpenClose3D.cxx
index 0b6768088710e0be1fbde51ec8f0b3c050e64399..66920e1f2f19873df0701bbabfb39224a663c5f2 100644
--- a/Imaging/Morphological/vtkImageOpenClose3D.cxx
+++ b/Imaging/Morphological/vtkImageOpenClose3D.cxx
@@ -26,6 +26,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageOpenClose3D);
 
 //------------------------------------------------------------------------------
@@ -295,3 +296,4 @@ void vtkImageOpenClose3D::ReportReferences(vtkGarbageCollector* collector)
   vtkGarbageCollectorReport(collector, this->Filter0, "Filter0");
   vtkGarbageCollectorReport(collector, this->Filter1, "Filter1");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Morphological/vtkImageOpenClose3D.h b/Imaging/Morphological/vtkImageOpenClose3D.h
index 9c3c77e5ecdbb1e2b0f249503a2e08f525a341af..8b7d4fd1f0e3a06eec0172f39caf133dddcf27f0 100644
--- a/Imaging/Morphological/vtkImageOpenClose3D.h
+++ b/Imaging/Morphological/vtkImageOpenClose3D.h
@@ -36,6 +36,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingMorphologicalModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageDilateErode3D;
 
 class VTKIMAGINGMORPHOLOGICAL_EXPORT vtkImageOpenClose3D : public vtkImageAlgorithm
@@ -128,4 +129,5 @@ private:
   void operator=(const vtkImageOpenClose3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Morphological/vtkImageSeedConnectivity.cxx b/Imaging/Morphological/vtkImageSeedConnectivity.cxx
index 523578908de9981e102cc515b776d098e40f6396..cd774b45181f0bd24ffa6039e379fb64e5733914 100644
--- a/Imaging/Morphological/vtkImageSeedConnectivity.cxx
+++ b/Imaging/Morphological/vtkImageSeedConnectivity.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageSeedConnectivity);
 
 //------------------------------------------------------------------------------
@@ -289,3 +290,4 @@ void vtkImageSeedConnectivity::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "OutputConnectedValue: " << this->OutputConnectedValue << "\n";
   os << indent << "OutputUnconnectedValue: " << this->OutputUnconnectedValue << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Morphological/vtkImageSeedConnectivity.h b/Imaging/Morphological/vtkImageSeedConnectivity.h
index 2052cc75dd5f3345aa62731d25ce5b32579645be..8ca6b58aa7b7276f0f436b0e76d625d9039908c6 100644
--- a/Imaging/Morphological/vtkImageSeedConnectivity.h
+++ b/Imaging/Morphological/vtkImageSeedConnectivity.h
@@ -34,6 +34,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingMorphologicalModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageConnector;
 class vtkImageConnectorSeed;
 
@@ -112,4 +113,5 @@ private:
   void operator=(const vtkImageSeedConnectivity&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Morphological/vtkImageSkeleton2D.cxx b/Imaging/Morphological/vtkImageSkeleton2D.cxx
index c60e6a356c1747ac56bfca2d0bb748dbf0b8fd5f..c45513a066d08ba7691fd7af43d59ca20f7e6887 100644
--- a/Imaging/Morphological/vtkImageSkeleton2D.cxx
+++ b/Imaging/Morphological/vtkImageSkeleton2D.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageSkeleton2D);
 
 //------------------------------------------------------------------------------
@@ -387,3 +388,4 @@ void vtkImageSkeleton2D::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Prune: " << (this->Prune ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Morphological/vtkImageSkeleton2D.h b/Imaging/Morphological/vtkImageSkeleton2D.h
index 1338f9d97323b486ae99fbf301c28439f3ab098a..a623ecd2095803d165f0f64143cb3c7f65c0a576 100644
--- a/Imaging/Morphological/vtkImageSkeleton2D.h
+++ b/Imaging/Morphological/vtkImageSkeleton2D.h
@@ -33,6 +33,7 @@
 #include "vtkImageIterateFilter.h"
 #include "vtkImagingMorphologicalModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGMORPHOLOGICAL_EXPORT vtkImageSkeleton2D : public vtkImageIterateFilter
 {
 public:
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkImageSkeleton2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Morphological/vtkImageThresholdConnectivity.cxx b/Imaging/Morphological/vtkImageThresholdConnectivity.cxx
index 8aec8c3bca97eda42ef6e7a74e87522621aae899..12fcc875c079fb69453f9b0c3a34f1720bb28b22 100644
--- a/Imaging/Morphological/vtkImageThresholdConnectivity.cxx
+++ b/Imaging/Morphological/vtkImageThresholdConnectivity.cxx
@@ -29,6 +29,7 @@
 
 #include <stack>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageThresholdConnectivity);
 vtkCxxSetObjectMacro(vtkImageThresholdConnectivity, SeedPoints, vtkPoints);
 
@@ -789,3 +790,4 @@ void vtkImageThresholdConnectivity::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Stencil: " << this->GetStencil() << "\n";
   os << indent << "ActiveComponent: " << this->ActiveComponent << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Morphological/vtkImageThresholdConnectivity.h b/Imaging/Morphological/vtkImageThresholdConnectivity.h
index 61b4541afdd750c42c717aade6848a4f4e5947a3..1d4d67d40a4ea46d5963a34327c7dc5405fc4346 100644
--- a/Imaging/Morphological/vtkImageThresholdConnectivity.h
+++ b/Imaging/Morphological/vtkImageThresholdConnectivity.h
@@ -36,6 +36,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingMorphologicalModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkImageData;
 class vtkImageStencilData;
@@ -214,4 +215,5 @@ private:
   void operator=(const vtkImageThresholdConnectivity&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/OpenGL2/vtkOpenGLImageGradient.cxx b/Imaging/OpenGL2/vtkOpenGLImageGradient.cxx
index 621858b1946e9aae3cb24b616272e7a3f811b2f2..6ac252a2833e2c337c937116eeb295b3fd702d52 100644
--- a/Imaging/OpenGL2/vtkOpenGLImageGradient.cxx
+++ b/Imaging/OpenGL2/vtkOpenGLImageGradient.cxx
@@ -28,6 +28,7 @@
 
 #include <algorithm> // for std::nth_element
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLImageGradient);
 
 //------------------------------------------------------------------------------
@@ -173,3 +174,4 @@ void vtkOpenGLImageGradient::ThreadedRequestData(vtkInformation* vtkNotUsed(requ
 
     "");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/OpenGL2/vtkOpenGLImageGradient.h b/Imaging/OpenGL2/vtkOpenGLImageGradient.h
index 275e9c4f43ec8d612eb9c7480058068b964c849d..69f3ecd1a61d55dd7fd3d56090535c452a9a2805 100644
--- a/Imaging/OpenGL2/vtkOpenGLImageGradient.h
+++ b/Imaging/OpenGL2/vtkOpenGLImageGradient.h
@@ -23,6 +23,7 @@
 #include "vtkImageGradient.h"
 #include "vtkImagingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLImageAlgorithmHelper;
 class vtkRenderWindow;
 
@@ -53,4 +54,5 @@ private:
   void operator=(const vtkOpenGLImageGradient&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Sources/vtkImageCanvasSource2D.cxx b/Imaging/Sources/vtkImageCanvasSource2D.cxx
index c5135db3c94dda6f74b6400fe649cd4a64699584..e9bff7e199244aba48bbaac3238ef428b84866f5 100644
--- a/Imaging/Sources/vtkImageCanvasSource2D.cxx
+++ b/Imaging/Sources/vtkImageCanvasSource2D.cxx
@@ -30,6 +30,7 @@
 // Special classes for manipulating data
 //
 // For the fill functionality (use connector ??)
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageCanvasSource2DPixel
 { //;prevent man page generation
 public:
@@ -1539,3 +1540,4 @@ void vtkImageCanvasSource2D::InitializeCanvasVolume(vtkImageData* volume)
 
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Sources/vtkImageCanvasSource2D.h b/Imaging/Sources/vtkImageCanvasSource2D.h
index 5eae4641d3c2d881aa29b522ffc676a9ff9ecfa1..80735567c80ad9d1524d41c955c7e00057ef3209 100644
--- a/Imaging/Sources/vtkImageCanvasSource2D.h
+++ b/Imaging/Sources/vtkImageCanvasSource2D.h
@@ -27,6 +27,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingSourcesModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGSOURCES_EXPORT vtkImageCanvasSource2D : public vtkImageAlgorithm
 {
 public:
@@ -189,4 +190,5 @@ private:
   void operator=(const vtkImageCanvasSource2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Sources/vtkImageEllipsoidSource.cxx b/Imaging/Sources/vtkImageEllipsoidSource.cxx
index eb8f53b3911d52f1d1b2d7a2dd9c8e1f6bac74fe..d6ffe60ec7a6973f4299ea923f654ff41375ab70 100644
--- a/Imaging/Sources/vtkImageEllipsoidSource.cxx
+++ b/Imaging/Sources/vtkImageEllipsoidSource.cxx
@@ -20,6 +20,7 @@
 
 #include "vtkImageData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageEllipsoidSource);
 
 //------------------------------------------------------------------------------
@@ -249,3 +250,4 @@ int vtkImageEllipsoidSource::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Sources/vtkImageEllipsoidSource.h b/Imaging/Sources/vtkImageEllipsoidSource.h
index a514634e8ef05ddcddc2e4cea1bb127e4a7b2224..67b690177114dc8a6c6eea57b03b05900f139726 100644
--- a/Imaging/Sources/vtkImageEllipsoidSource.h
+++ b/Imaging/Sources/vtkImageEllipsoidSource.h
@@ -27,6 +27,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingSourcesModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGSOURCES_EXPORT vtkImageEllipsoidSource : public vtkImageAlgorithm
 {
 public:
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkImageEllipsoidSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Sources/vtkImageGaussianSource.cxx b/Imaging/Sources/vtkImageGaussianSource.cxx
index e689e5578569647288f3c4eceb444e7718b81329..ccf8a48b8fd8b7ff378755f9a6ed00bf72911d48 100644
--- a/Imaging/Sources/vtkImageGaussianSource.cxx
+++ b/Imaging/Sources/vtkImageGaussianSource.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageGaussianSource);
 
 //------------------------------------------------------------------------------
@@ -180,3 +181,4 @@ void vtkImageGaussianSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Center: ( " << this->Center[0] << ", " << this->Center[1] << ", "
      << this->Center[2] << " )\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Sources/vtkImageGaussianSource.h b/Imaging/Sources/vtkImageGaussianSource.h
index 341ce02167da15e2b9341d611d7a98bb168fe027..4b3ccee9595c04b3a5bfb8477970840296db80b8 100644
--- a/Imaging/Sources/vtkImageGaussianSource.h
+++ b/Imaging/Sources/vtkImageGaussianSource.h
@@ -26,6 +26,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingSourcesModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGSOURCES_EXPORT vtkImageGaussianSource : public vtkImageAlgorithm
 {
 public:
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkImageGaussianSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Sources/vtkImageGridSource.cxx b/Imaging/Sources/vtkImageGridSource.cxx
index 1412d0bcf482ed4e26a29ae4a26cbe6325eebb64..a6ae528e91dba0472400fc721e7d4043359e5d60 100644
--- a/Imaging/Sources/vtkImageGridSource.cxx
+++ b/Imaging/Sources/vtkImageGridSource.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageGridSource);
 
 //------------------------------------------------------------------------------
@@ -181,3 +182,4 @@ void vtkImageGridSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "DataOrigin: (" << this->DataOrigin[0] << ", " << this->DataOrigin[1] << ", "
      << this->DataOrigin[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Sources/vtkImageGridSource.h b/Imaging/Sources/vtkImageGridSource.h
index 7c706ad3b7a703837b5daca7009617d81b9d4876..e13527dca187a3fcda4705f2099df5cefab2fa49 100644
--- a/Imaging/Sources/vtkImageGridSource.h
+++ b/Imaging/Sources/vtkImageGridSource.h
@@ -26,6 +26,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingSourcesModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGSOURCES_EXPORT vtkImageGridSource : public vtkImageAlgorithm
 {
 public:
@@ -133,4 +134,5 @@ private:
   void operator=(const vtkImageGridSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Sources/vtkImageMandelbrotSource.cxx b/Imaging/Sources/vtkImageMandelbrotSource.cxx
index 6f3f266290d2a9e7f9361dae910cc9980dcd53a0..06da155c1b7b769300d3b2373f61835c622e0d98 100644
--- a/Imaging/Sources/vtkImageMandelbrotSource.cxx
+++ b/Imaging/Sources/vtkImageMandelbrotSource.cxx
@@ -22,6 +22,7 @@
 #include "vtkPointData.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageMandelbrotSource);
 
 //------------------------------------------------------------------------------
@@ -447,3 +448,4 @@ double vtkImageMandelbrotSource::EvaluateSet(double p[4])
 
   return static_cast<double>(count) + (4.0 - v0) / (v1 - v0);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Sources/vtkImageMandelbrotSource.h b/Imaging/Sources/vtkImageMandelbrotSource.h
index 995cffd7ca32668fab66dae5093e563b11d5c379..7d8fbf0d07a61b8fe7e618b08b616664b1f8d4b8 100644
--- a/Imaging/Sources/vtkImageMandelbrotSource.h
+++ b/Imaging/Sources/vtkImageMandelbrotSource.h
@@ -33,6 +33,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingSourcesModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGSOURCES_EXPORT vtkImageMandelbrotSource : public vtkImageAlgorithm
 {
 public:
@@ -171,4 +172,5 @@ private:
   void operator=(const vtkImageMandelbrotSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Sources/vtkImageNoiseSource.cxx b/Imaging/Sources/vtkImageNoiseSource.cxx
index d1d50d8dee1b2dd68c7cbfad542c65b1df55a310..34e742802a44451f7b2a2446684f66d78183a4d2 100644
--- a/Imaging/Sources/vtkImageNoiseSource.cxx
+++ b/Imaging/Sources/vtkImageNoiseSource.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageNoiseSource);
 
 //------------------------------------------------------------------------------
@@ -125,3 +126,4 @@ void vtkImageNoiseSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Minimum: " << this->Minimum << "\n";
   os << indent << "Maximum: " << this->Maximum << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Sources/vtkImageNoiseSource.h b/Imaging/Sources/vtkImageNoiseSource.h
index 30c205eaf2e37f09e26af4b33e8162e53c863fbe..5877f2649fe233f61ce23e5d993e8317a6effe50 100644
--- a/Imaging/Sources/vtkImageNoiseSource.h
+++ b/Imaging/Sources/vtkImageNoiseSource.h
@@ -30,6 +30,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingSourcesModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGSOURCES_EXPORT vtkImageNoiseSource : public vtkImageAlgorithm
 {
 public:
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkImageNoiseSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Sources/vtkImageSinusoidSource.cxx b/Imaging/Sources/vtkImageSinusoidSource.cxx
index eaae98c24f490e5ae84a83566dca1ed39f9a6923..a3640e9d90b311b9771aa885be27022e0793b540 100644
--- a/Imaging/Sources/vtkImageSinusoidSource.cxx
+++ b/Imaging/Sources/vtkImageSinusoidSource.cxx
@@ -23,6 +23,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageSinusoidSource);
 
 //------------------------------------------------------------------------------
@@ -209,3 +210,4 @@ void vtkImageSinusoidSource::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Direction: ( " << this->Direction[0] << ", " << this->Direction[1] << ", "
      << this->Direction[2] << " )\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Sources/vtkImageSinusoidSource.h b/Imaging/Sources/vtkImageSinusoidSource.h
index 74a1ecef7086fb80b89deaa72f520f5fd15dad8d..4bee28aa8f18a5629d63682f8a94119e755fa394 100644
--- a/Imaging/Sources/vtkImageSinusoidSource.h
+++ b/Imaging/Sources/vtkImageSinusoidSource.h
@@ -26,6 +26,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingSourcesModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGSOURCES_EXPORT vtkImageSinusoidSource : public vtkImageAlgorithm
 {
 public:
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkImageSinusoidSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Statistics/vtkImageAccumulate.cxx b/Imaging/Statistics/vtkImageAccumulate.cxx
index 330c74c746b43e5a9d018860b348e4af9bb2bc97..fc32e2385aef1c644a1cfc959f677bc23fdf1d58 100644
--- a/Imaging/Statistics/vtkImageAccumulate.cxx
+++ b/Imaging/Statistics/vtkImageAccumulate.cxx
@@ -25,6 +25,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageAccumulate);
 
 //------------------------------------------------------------------------------
@@ -393,3 +394,4 @@ void vtkImageAccumulate::PrintSelf(ostream& os, vtkIndent indent)
      << this->ComponentExtent[3] << " " << this->ComponentExtent[4] << ","
      << this->ComponentExtent[5] << " }\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Statistics/vtkImageAccumulate.h b/Imaging/Statistics/vtkImageAccumulate.h
index 6986196116ec59a836f3edc444e067e64eaeb667..da7de995a66dbbff6d257ab123580f5ad6b33c09 100644
--- a/Imaging/Statistics/vtkImageAccumulate.h
+++ b/Imaging/Statistics/vtkImageAccumulate.h
@@ -40,6 +40,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingStatisticsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageStencilData;
 
 class VTKIMAGINGSTATISTICS_EXPORT vtkImageAccumulate : public vtkImageAlgorithm
@@ -163,4 +164,5 @@ private:
   void operator=(const vtkImageAccumulate&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Statistics/vtkImageHistogram.cxx b/Imaging/Statistics/vtkImageHistogram.cxx
index 48c3bf5c2e0bf58efa445a9a325a2a6df6f0fe18..9eed8adf1c414fbd50b95af79df576e258a21397 100644
--- a/Imaging/Statistics/vtkImageHistogram.cxx
+++ b/Imaging/Statistics/vtkImageHistogram.cxx
@@ -35,6 +35,7 @@
 #undef VTK_USE_UINT64
 #define VTK_USE_UINT64 0
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageHistogram);
 
 //------------------------------------------------------------------------------
@@ -1004,3 +1005,4 @@ void vtkImageHistogram::ComputeImageScalarRange(vtkImageData* data, double range
       vtkErrorMacro(<< "Execute: Unknown ScalarType");
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Statistics/vtkImageHistogram.h b/Imaging/Statistics/vtkImageHistogram.h
index 7dd47c908a1bda3087102cbe41d6c7f0714054f4..473e46a9a8f3b40d4393fa548f9773651e850730 100644
--- a/Imaging/Statistics/vtkImageHistogram.h
+++ b/Imaging/Statistics/vtkImageHistogram.h
@@ -34,6 +34,7 @@
 #include "vtkImagingStatisticsModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageStencilData;
 class vtkIdTypeArray;
 class vtkImageHistogramThreadData;
@@ -238,4 +239,5 @@ private:
   friend class vtkImageHistogramFunctor;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Statistics/vtkImageHistogramStatistics.cxx b/Imaging/Statistics/vtkImageHistogramStatistics.cxx
index eecb41bad00a48a908ed8d670abf19135a843a92..578328fd59670b44653f98e445a5f158f9c659de 100644
--- a/Imaging/Statistics/vtkImageHistogramStatistics.cxx
+++ b/Imaging/Statistics/vtkImageHistogramStatistics.cxx
@@ -19,6 +19,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageHistogramStatistics);
 
 //------------------------------------------------------------------------------
@@ -161,3 +162,4 @@ int vtkImageHistogramStatistics::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Statistics/vtkImageHistogramStatistics.h b/Imaging/Statistics/vtkImageHistogramStatistics.h
index 7d7161a008cb05264877884be07dc8259830f47d..75d1b6d5ec201b0f57956505ba73c148bde1b349 100644
--- a/Imaging/Statistics/vtkImageHistogramStatistics.h
+++ b/Imaging/Statistics/vtkImageHistogramStatistics.h
@@ -35,6 +35,7 @@
 #include "vtkImageHistogram.h"
 #include "vtkImagingStatisticsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageStencilData;
 class vtkIdTypeArray;
 
@@ -134,4 +135,5 @@ private:
   void operator=(const vtkImageHistogramStatistics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Stencil/vtkImageStencil.cxx b/Imaging/Stencil/vtkImageStencil.cxx
index 2c990b31ae4eff2580dad906a03baa9818ace943..e7dbb3a7416bdd4f724e7d685beafbd3ec193e16 100644
--- a/Imaging/Stencil/vtkImageStencil.cxx
+++ b/Imaging/Stencil/vtkImageStencil.cxx
@@ -25,6 +25,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageStencil);
 
 //------------------------------------------------------------------------------
@@ -345,3 +346,4 @@ void vtkImageStencil::PrintSelf(ostream& os, vtkIndent indent)
      << this->BackgroundColor[1] << ", " << this->BackgroundColor[2] << ", "
      << this->BackgroundColor[3] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Stencil/vtkImageStencil.h b/Imaging/Stencil/vtkImageStencil.h
index 5a9a6edeb691deb8724e1de6a9487115e9bd1469..2ab1cb053a4e99b4da2b74bee081d0b260bf3073 100644
--- a/Imaging/Stencil/vtkImageStencil.h
+++ b/Imaging/Stencil/vtkImageStencil.h
@@ -26,6 +26,7 @@
 #include "vtkImagingStencilModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageStencilData;
 
 class VTKIMAGINGSTENCIL_EXPORT vtkImageStencil : public vtkThreadedImageAlgorithm
@@ -107,4 +108,5 @@ private:
   void operator=(const vtkImageStencil&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Stencil/vtkImageStencilToImage.cxx b/Imaging/Stencil/vtkImageStencilToImage.cxx
index 0078f8fb9f55399040a3e2be691890e34a91e776..0e410706aad29262ed9e614b78a52f1ddb1bd776 100644
--- a/Imaging/Stencil/vtkImageStencilToImage.cxx
+++ b/Imaging/Stencil/vtkImageStencilToImage.cxx
@@ -22,6 +22,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageStencilToImage);
 
 //------------------------------------------------------------------------------
@@ -166,3 +167,4 @@ void vtkImageStencilToImage::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "OutsideValue: " << this->OutsideValue << "\n";
   os << indent << "OutputScalarType: " << this->OutputScalarType << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Stencil/vtkImageStencilToImage.h b/Imaging/Stencil/vtkImageStencilToImage.h
index a7ca839e71bdd137096a331c1d7d06a0779507d2..c6c38dc09f58019de4798a67f5b012632e7bf863 100644
--- a/Imaging/Stencil/vtkImageStencilToImage.h
+++ b/Imaging/Stencil/vtkImageStencilToImage.h
@@ -31,6 +31,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkImagingStencilModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGSTENCIL_EXPORT vtkImageStencilToImage : public vtkImageAlgorithm
 {
 public:
@@ -91,4 +92,5 @@ private:
   void operator=(const vtkImageStencilToImage&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Stencil/vtkImageToImageStencil.cxx b/Imaging/Stencil/vtkImageToImageStencil.cxx
index 7d8b82acc8c54eab165e68c265e9744e57ed0de5..80c7517b9d6774bf88a9632ea5658a607d20fc42 100644
--- a/Imaging/Stencil/vtkImageToImageStencil.cxx
+++ b/Imaging/Stencil/vtkImageToImageStencil.cxx
@@ -25,6 +25,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageToImageStencil);
 
 //------------------------------------------------------------------------------
@@ -240,3 +241,4 @@ int vtkImageToImageStencil::RequestUpdateExtent(
   inInfo->Set(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT(), extent, 6);
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Stencil/vtkImageToImageStencil.h b/Imaging/Stencil/vtkImageToImageStencil.h
index 29918814cd02b87400b82081cc5064d7877adfff..149b40e1cd909b1940298782c88bb539a18ab4d4 100644
--- a/Imaging/Stencil/vtkImageToImageStencil.h
+++ b/Imaging/Stencil/vtkImageToImageStencil.h
@@ -29,6 +29,7 @@
 #include "vtkImageStencilAlgorithm.h"
 #include "vtkImagingStencilModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKIMAGINGSTENCIL_EXPORT vtkImageToImageStencil : public vtkImageStencilAlgorithm
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkImageToImageStencil&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Stencil/vtkImplicitFunctionToImageStencil.cxx b/Imaging/Stencil/vtkImplicitFunctionToImageStencil.cxx
index 9b4d5a4892173f6c98ad2a2574a49d34429b823a..a3da25de9aa5c740f8719f79e3e26ff837ad6362 100644
--- a/Imaging/Stencil/vtkImplicitFunctionToImageStencil.cxx
+++ b/Imaging/Stencil/vtkImplicitFunctionToImageStencil.cxx
@@ -24,6 +24,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitFunctionToImageStencil);
 vtkCxxSetObjectMacro(vtkImplicitFunctionToImageStencil, Input, vtkImplicitFunction);
 
@@ -144,3 +145,4 @@ int vtkImplicitFunctionToImageStencil::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Stencil/vtkImplicitFunctionToImageStencil.h b/Imaging/Stencil/vtkImplicitFunctionToImageStencil.h
index 2b6ed3b663f52b538f0e03d34791e5647d3265c7..763fe9c1fc8203b35cdbc26d183bd82bff366b35 100644
--- a/Imaging/Stencil/vtkImplicitFunctionToImageStencil.h
+++ b/Imaging/Stencil/vtkImplicitFunctionToImageStencil.h
@@ -29,6 +29,7 @@
 #include "vtkImageStencilSource.h"
 #include "vtkImagingStencilModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitFunction;
 
 class VTKIMAGINGSTENCIL_EXPORT vtkImplicitFunctionToImageStencil : public vtkImageStencilSource
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkImplicitFunctionToImageStencil&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Stencil/vtkLassoStencilSource.cxx b/Imaging/Stencil/vtkLassoStencilSource.cxx
index f79e146fbf7f0c1a0f087431280a6d60414519cd..476adfd598c5e543605c580e2eb8ee49735a7696 100644
--- a/Imaging/Stencil/vtkLassoStencilSource.cxx
+++ b/Imaging/Stencil/vtkLassoStencilSource.cxx
@@ -29,6 +29,7 @@
 #include <cmath>
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLassoStencilSource);
 vtkCxxSetObjectMacro(vtkLassoStencilSource, Points, vtkPoints);
 
@@ -566,3 +567,4 @@ int vtkLassoStencilSource::RequestData(
 
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Stencil/vtkLassoStencilSource.h b/Imaging/Stencil/vtkLassoStencilSource.h
index 3465e73916eb4e69f0a61aa28effc3f948d4ee18..52c46ade7faefcc20768bd6d7a296b442b35ec0f 100644
--- a/Imaging/Stencil/vtkLassoStencilSource.h
+++ b/Imaging/Stencil/vtkLassoStencilSource.h
@@ -32,6 +32,7 @@
 #include "vtkImageStencilSource.h"
 #include "vtkImagingStencilModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkSpline;
 class vtkLSSPointMap;
@@ -118,4 +119,5 @@ private:
   void operator=(const vtkLassoStencilSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Stencil/vtkPolyDataToImageStencil.cxx b/Imaging/Stencil/vtkPolyDataToImageStencil.cxx
index 578c39bd55642a394069467bf3e6177f33035e89..7b8d1d99f19ec0dd8cf3c499b5a3ab917f05bcf1 100644
--- a/Imaging/Stencil/vtkPolyDataToImageStencil.cxx
+++ b/Imaging/Stencil/vtkPolyDataToImageStencil.cxx
@@ -70,6 +70,7 @@ POSSIBILITY OF SUCH DAMAGES.
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataToImageStencil);
 
 //------------------------------------------------------------------------------
@@ -784,3 +785,4 @@ int vtkPolyDataToImageStencil::FillInputPortInformation(int, vtkInformation* inf
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPolyData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Stencil/vtkPolyDataToImageStencil.h b/Imaging/Stencil/vtkPolyDataToImageStencil.h
index 3387cdcbddcf4cb96f06bf8bc75a0207b73a9a0b..977057c6f7a16707f2d52b9d9bc868a14a0949e1 100644
--- a/Imaging/Stencil/vtkPolyDataToImageStencil.h
+++ b/Imaging/Stencil/vtkPolyDataToImageStencil.h
@@ -65,6 +65,7 @@ POSSIBILITY OF SUCH DAMAGES.
 #include "vtkImageStencilSource.h"
 #include "vtkImagingStencilModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMergePoints;
 class vtkDataSet;
 class vtkPolyData;
@@ -120,4 +121,5 @@ private:
   void operator=(const vtkPolyDataToImageStencil&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Imaging/Stencil/vtkROIStencilSource.cxx b/Imaging/Stencil/vtkROIStencilSource.cxx
index fbbef8e823779ae77188cb619648e9ca307be9ce..d556fbe4f922ca3a8572a7ff5ab42d241e6e5614 100644
--- a/Imaging/Stencil/vtkROIStencilSource.cxx
+++ b/Imaging/Stencil/vtkROIStencilSource.cxx
@@ -25,6 +25,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkROIStencilSource);
 
 //------------------------------------------------------------------------------
@@ -430,3 +431,4 @@ int vtkROIStencilSource::RequestData(
 
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Imaging/Stencil/vtkROIStencilSource.h b/Imaging/Stencil/vtkROIStencilSource.h
index 3960ce59fa46cb80db7cf46a5a0ef2fa947c2d86..b8e75dac06b2bd6b6c052d723a91cb571c71aee5 100644
--- a/Imaging/Stencil/vtkROIStencilSource.h
+++ b/Imaging/Stencil/vtkROIStencilSource.h
@@ -32,6 +32,7 @@
 #include "vtkImageStencilSource.h"
 #include "vtkImagingStencilModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKIMAGINGSTENCIL_EXPORT vtkROIStencilSource : public vtkImageStencilSource
 {
 public:
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkROIStencilSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Boost/vtkTryDowncast.h b/Infovis/Boost/vtkTryDowncast.h
index 87e679aa7de43a292e5aa4c382017a295c32ed90..689198b7cce52d70f4048047fd080c8951fff7cb 100644
--- a/Infovis/Boost/vtkTryDowncast.h
+++ b/Infovis/Boost/vtkTryDowncast.h
@@ -35,6 +35,7 @@
 
 // Description:
 // Enumerates all integer VTK types
+VTK_ABI_NAMESPACE_BEGIN
 typedef boost::mpl::vector<vtkTypeUInt8, vtkTypeInt8, vtkTypeUInt16, vtkTypeInt16, vtkTypeUInt32,
   vtkTypeInt32, vtkTypeUInt64, vtkTypeInt64, vtkIdType>
   vtkIntegerTypes;
@@ -188,5 +189,6 @@ bool vtkTryDowncast(vtkObject* source1, vtkObject* source2, vtkObject* source3,
   return succeeded;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkTryDowncast.h
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostBetweennessClustering.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostBetweennessClustering.cxx
index 482a3abe8aef4a4671f3862fab524fda71715d05..ab84bcf5161c0f55e85040877472b6e603656e21 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostBetweennessClustering.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostBetweennessClustering.cxx
@@ -99,6 +99,8 @@ void betweenness_centrality_clustering(MutableGraph& g, Done done,
 }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 vtkStandardNewMacro(vtkBoostBetweennessClustering);
 
 //------------------------------------------------------------------------------
@@ -377,3 +379,4 @@ int vtkBoostBetweennessClustering::FillOutputPortInformation(int port, vtkInform
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostBetweennessClustering.h b/Infovis/BoostGraphAlgorithms/vtkBoostBetweennessClustering.h
index 33eb9d24954868bd3d159af0b2072d7f4e423f67..6b951f6dac1205e82628e4c3664df86c8893eb1a 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostBetweennessClustering.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostBetweennessClustering.h
@@ -34,6 +34,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisBoostGraphAlgorithmsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostBetweennessClustering : public vtkGraphAlgorithm
 {
 public:
@@ -99,4 +100,5 @@ private:
   void operator=(const vtkBoostBetweennessClustering&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkBoostBetweennessClustering_h
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostBiconnectedComponents.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostBiconnectedComponents.cxx
index bc9790b7d1b2816746047b6acd00da7d5aee1a4d..d7e4c902379a694eb70e3ed963c33840e38331b0 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostBiconnectedComponents.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostBiconnectedComponents.cxx
@@ -38,6 +38,7 @@
 
 using namespace boost;
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoostBiconnectedComponents);
 
 vtkBoostBiconnectedComponents::vtkBoostBiconnectedComponents()
@@ -164,3 +165,4 @@ void vtkBoostBiconnectedComponents::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "OutputArrayName: " << (this->OutputArrayName ? this->OutputArrayName : "(none)")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostBiconnectedComponents.h b/Infovis/BoostGraphAlgorithms/vtkBoostBiconnectedComponents.h
index 427af03e13a8af0b3d8e9f0b6854f6b206d4e137..3ff578444f7154fb44202a5cef34ed239cf82585 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostBiconnectedComponents.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostBiconnectedComponents.h
@@ -48,6 +48,7 @@
 #include "vtkInfovisBoostGraphAlgorithmsModule.h" // For export macro
 #include "vtkUndirectedGraphAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostBiconnectedComponents
   : public vtkUndirectedGraphAlgorithm
 {
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkBoostBiconnectedComponents&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostBrandesCentrality.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostBrandesCentrality.cxx
index f2b6df6cec9b34a55994ee98e8470ad3d8cd1640..5b996372fe951e2334e396993125ada7ed652b53 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostBrandesCentrality.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostBrandesCentrality.cxx
@@ -41,6 +41,7 @@
 
 using namespace boost;
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoostBrandesCentrality);
 
 //------------------------------------------------------------------------------
@@ -185,3 +186,4 @@ int vtkBoostBrandesCentrality::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostBrandesCentrality.h b/Infovis/BoostGraphAlgorithms/vtkBoostBrandesCentrality.h
index 393da57867895ea4e2c8ec2022587b4365789047..17afd98100d7735ffda4089f41034505daf7dd61 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostBrandesCentrality.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostBrandesCentrality.h
@@ -40,6 +40,7 @@
 
 #include "vtkGraphAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostBrandesCentrality : public vtkGraphAlgorithm
 {
 public:
@@ -83,4 +84,5 @@ private:
   void operator=(const vtkBoostBrandesCentrality&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearch.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearch.cxx
index 58eb8d61bf70c99042dec6bc74787f971c895029..ad4ba978a64b0d2ea9422293f62b1d48d8d560a5 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearch.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearch.cxx
@@ -52,6 +52,7 @@
 
 using namespace boost;
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoostBreadthFirstSearch);
 
 // Redefine the bfs visitor, the only visitor we
@@ -361,3 +362,4 @@ int vtkBoostBreadthFirstSearch::FillOutputPortInformation(int port, vtkInformati
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearch.h b/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearch.h
index 500b68b97fb12b2df4ab470306f3429e8edebe00..5bbcc4a1da856eb0262e49dbd6d6eb98623e1ff8 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearch.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearch.h
@@ -40,6 +40,7 @@
 
 #include "vtkGraphAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSelection;
 
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostBreadthFirstSearch : public vtkGraphAlgorithm
@@ -160,4 +161,5 @@ private:
   void operator=(const vtkBoostBreadthFirstSearch&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearchTree.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearchTree.cxx
index ba8538d6e95f2b47aa7b60aa33a88516874af88d..90e5c451e2a0be07efecfe3990a8ff1082ce2837 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearchTree.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearchTree.cxx
@@ -44,6 +44,7 @@
 
 using namespace boost;
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoostBreadthFirstSearchTree);
 
 #if BOOST_VERSION >= 104800 // Boost 1.48.x
@@ -326,3 +327,4 @@ void vtkBoostBreadthFirstSearchTree::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "ReverseEdges: " << (this->ReverseEdges ? "on" : "off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearchTree.h b/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearchTree.h
index 6e58fb26c6683134f04fdae8f54b92b3ee925c07..702f5c6585f7c542cde5d1462417d977d01d16b0 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearchTree.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostBreadthFirstSearchTree.h
@@ -42,6 +42,7 @@
 
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostBreadthFirstSearchTree : public vtkTreeAlgorithm
 {
 public:
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkBoostBreadthFirstSearchTree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostConnectedComponents.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostConnectedComponents.cxx
index 93292fca65e597a449498e0fb0b51a38567e4918..22a642bc34d7bbab86cfc787689b41b38e1fa06c 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostConnectedComponents.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostConnectedComponents.cxx
@@ -36,6 +36,7 @@
 
 using namespace boost;
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoostConnectedComponents);
 
 vtkBoostConnectedComponents::vtkBoostConnectedComponents() = default;
@@ -87,3 +88,4 @@ void vtkBoostConnectedComponents::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostConnectedComponents.h b/Infovis/BoostGraphAlgorithms/vtkBoostConnectedComponents.h
index bdfb9130e2d7e5119ca2dc4299e3ad8ba41aa3ae..4e133b3693eb441178300e41ccfb683d2c9816be 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostConnectedComponents.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostConnectedComponents.h
@@ -37,6 +37,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisBoostGraphAlgorithmsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostConnectedComponents : public vtkGraphAlgorithm
 {
 public:
@@ -55,4 +56,5 @@ private:
   void operator=(const vtkBoostConnectedComponents&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostDividedEdgeBundling.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostDividedEdgeBundling.cxx
index 3f38b55ee9c641c1e1efb943927eea2ddff194d1..63fba690fb916c7574cab6430ddf1840af62f377 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostDividedEdgeBundling.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostDividedEdgeBundling.cxx
@@ -35,6 +35,7 @@
 #include <boost/graph/johnson_all_pairs_shortest.hpp>
 #include <boost/property_map/property_map.hpp>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoostDividedEdgeBundling);
 
 vtkBoostDividedEdgeBundling::vtkBoostDividedEdgeBundling() = default;
@@ -595,3 +596,4 @@ void vtkBoostDividedEdgeBundling::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostDividedEdgeBundling.h b/Infovis/BoostGraphAlgorithms/vtkBoostDividedEdgeBundling.h
index 4199573513c0415da8eefb0d1975f53147c0122f..bdca7e9553d965b3644e40fff715b325c6657420 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostDividedEdgeBundling.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostDividedEdgeBundling.h
@@ -45,6 +45,7 @@
 #include "vtkDirectedGraphAlgorithm.h"
 #include "vtkInfovisBoostGraphAlgorithmsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostDividedEdgeBundling
   : public vtkDirectedGraphAlgorithm
 {
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkBoostDividedEdgeBundling&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostExtractLargestComponent.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostExtractLargestComponent.cxx
index d7a46eb502f42a625b915471a1e6007e484d1556..6be838790b27c1564b35fcf45f290dcf95f880af 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostExtractLargestComponent.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostExtractLargestComponent.cxx
@@ -32,6 +32,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoostExtractLargestComponent);
 
 vtkBoostExtractLargestComponent::vtkBoostExtractLargestComponent()
@@ -155,3 +156,4 @@ void vtkBoostExtractLargestComponent::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "InvertSelection: " << this->InvertSelection << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostExtractLargestComponent.h b/Infovis/BoostGraphAlgorithms/vtkBoostExtractLargestComponent.h
index b849926eb325205b8c4f3075d187f82d3b1548c7..ce8c2a01d2e1180b545746e7da066f5d9b68d98d 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostExtractLargestComponent.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostExtractLargestComponent.h
@@ -29,6 +29,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisBoostGraphAlgorithmsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostExtractLargestComponent
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkBoostExtractLargestComponent&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostGraphAdapter.h b/Infovis/BoostGraphAlgorithms/vtkBoostGraphAdapter.h
index 3bb12434da01e44b972916f65114f40454d6711e..9c89ebcad68ae37e957f78647b40ae4abe53cd21 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostGraphAdapter.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostGraphAdapter.h
@@ -125,6 +125,7 @@ inline void put(vtkAbstractArray* arr, vtkIdType key, const vtkVariant& value)
 {
   arr->InsertVariantValue(key, value);
 }
+
 #if defined(_MSC_VER)
 namespace detail
 {
@@ -447,6 +448,7 @@ private:
 // VertexAndEdgeListGraphConcept
 // BidirectionalGraphConcept
 // AdjacencyGraphConcept
+VTK_ABI_NAMESPACE_BEGIN
 
 struct vtkGraph_traversal_category
   : public virtual bidirectional_graph_tag
@@ -456,6 +458,8 @@ struct vtkGraph_traversal_category
 {
 };
 
+VTK_ABI_NAMESPACE_END
+
 template <>
 struct graph_traits<vtkGraph*>
 {
@@ -1085,6 +1089,7 @@ inline std::pair<boost::graph_traits<vtkMutableUndirectedGraph*>::edge_descripto
 
 namespace boost
 {
+VTK_ABI_NAMESPACE_BEGIN
 //===========================================================================
 // An edge map for vtkGraph.
 // This is a common input needed for algorithms.
@@ -1093,6 +1098,8 @@ struct vtkGraphEdgeMap
 {
 };
 
+VTK_ABI_NAMESPACE_END
+
 template <>
 struct property_traits<vtkGraphEdgeMap>
 {
@@ -1112,6 +1119,7 @@ inline property_traits<vtkGraphEdgeMap>::reference get(
 // Helper for vtkGraph edge property maps
 // Automatically converts boost edge ids to vtkGraph edge ids.
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename PMap>
 class vtkGraphEdgePropertyMapHelper
 {
@@ -1128,6 +1136,7 @@ public:
 
   reference operator[](const key_type& key) const { return get(pmap, key.Id); }
 };
+VTK_ABI_NAMESPACE_END
 
 template <typename PMap>
 inline typename property_traits<PMap>::reference get(
@@ -1147,6 +1156,7 @@ inline void put(vtkGraphEdgePropertyMapHelper<PMap> helper, vtkEdgeType key,
 // Helper for vtkGraph vertex property maps
 // Automatically converts boost vertex ids to vtkGraph vertex ids.
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename PMap>
 class vtkGraphVertexPropertyMapHelper
 {
@@ -1163,6 +1173,7 @@ public:
 
   reference operator[](const key_type& key) const { return get(pmap, key); }
 };
+VTK_ABI_NAMESPACE_END
 
 template <typename PMap>
 inline typename property_traits<PMap>::reference get(
@@ -1182,9 +1193,11 @@ inline void put(vtkGraphVertexPropertyMapHelper<PMap> helper, vtkIdType key,
 // An index map for vtkGraph
 // This is a common input needed for algorithms
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkGraphIndexMap
 {
 };
+VTK_ABI_NAMESPACE_END
 
 template <>
 struct property_traits<vtkGraphIndexMap>
@@ -1204,6 +1217,7 @@ inline property_traits<vtkGraphIndexMap>::reference get(
 //===========================================================================
 // Helper for vtkGraph property maps
 // Automatically multiplies the property value by some value (default 1)
+VTK_ABI_NAMESPACE_BEGIN
 template <typename PMap>
 class vtkGraphPropertyMapMultiplier
 {
@@ -1220,6 +1234,7 @@ public:
   typedef typename property_traits<PMap>::key_type key_type;
   typedef typename property_traits<PMap>::category category;
 };
+VTK_ABI_NAMESPACE_END
 
 template <typename PMap>
 inline typename property_traits<PMap>::reference get(
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostKruskalMinimumSpanningTree.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostKruskalMinimumSpanningTree.cxx
index 0a6c673a90b83b8c7214857a1df5e49bdeac3e11..18cdd84abce028d1d8e9bc85461fa6e9372c59ee 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostKruskalMinimumSpanningTree.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostKruskalMinimumSpanningTree.cxx
@@ -44,6 +44,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 using namespace boost;
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoostKruskalMinimumSpanningTree);
 
 // Constructor/Destructor
@@ -176,3 +177,4 @@ void vtkBoostKruskalMinimumSpanningTree::PrintSelf(ostream& os, vtkIndent indent
 
   os << indent << "EdgeWeightMultiplier: " << this->EdgeWeightMultiplier << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostKruskalMinimumSpanningTree.h b/Infovis/BoostGraphAlgorithms/vtkBoostKruskalMinimumSpanningTree.h
index 5c1a5bb752f2c20ee41e2fe286f148c82cb06812..b01e75c2845fe9594a8a530cbe9eb6da681554b0 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostKruskalMinimumSpanningTree.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostKruskalMinimumSpanningTree.h
@@ -40,6 +40,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include "vtkSelectionAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostKruskalMinimumSpanningTree
   : public vtkSelectionAlgorithm
 {
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkBoostKruskalMinimumSpanningTree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostLogWeighting.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostLogWeighting.cxx
index a285ca77f47df818dc8755364d179749b5f936ff..610eb5b676d6d8dd29fa47d3c0a3b1c074564a6d 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostLogWeighting.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostLogWeighting.cxx
@@ -41,6 +41,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // vtkBoostLogWeighting
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoostLogWeighting);
 
 vtkBoostLogWeighting::vtkBoostLogWeighting()
@@ -143,3 +144,4 @@ int vtkBoostLogWeighting::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostLogWeighting.h b/Infovis/BoostGraphAlgorithms/vtkBoostLogWeighting.h
index 497c2d3d89a7b00b8053f9eda3f604ac6b4adcdd..737e444e125ad7c8a02e8db129d4ddd7a26ee937 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostLogWeighting.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostLogWeighting.h
@@ -37,6 +37,7 @@
 #include "vtkArrayDataAlgorithm.h"
 #include "vtkInfovisBoostGraphAlgorithmsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostLogWeighting : public vtkArrayDataAlgorithm
 {
 public:
@@ -81,4 +82,5 @@ private:
   bool EmitProgress;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostPrimMinimumSpanningTree.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostPrimMinimumSpanningTree.cxx
index cfdf8784df4252419765d7083218fffb62badc37..93ed00e1cd6ddae9917bbd4ff0a1bbe02ab537f7 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostPrimMinimumSpanningTree.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostPrimMinimumSpanningTree.cxx
@@ -43,6 +43,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 using namespace boost;
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoostPrimMinimumSpanningTree);
 
 // Constructor/Destructor
@@ -296,3 +297,4 @@ void vtkBoostPrimMinimumSpanningTree::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EdgeWeightArrayName: "
      << (this->EdgeWeightArrayName ? this->EdgeWeightArrayName : "(none)") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostPrimMinimumSpanningTree.h b/Infovis/BoostGraphAlgorithms/vtkBoostPrimMinimumSpanningTree.h
index eab08b8b78bbbcd2c71c33a8d03f2432d4cf3052..9fe10a06dab5d069e00594c39253ab722de5d65b 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostPrimMinimumSpanningTree.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostPrimMinimumSpanningTree.h
@@ -52,6 +52,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostPrimMinimumSpanningTree
   : public vtkTreeAlgorithm
 {
@@ -144,4 +145,5 @@ private:
   void operator=(const vtkBoostPrimMinimumSpanningTree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostRandomSparseArraySource.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostRandomSparseArraySource.cxx
index 16e10a887d89fa80da8095d026a027429af68c23..86b0a805cb4b89b42e76c96dd19f6111c05655af 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostRandomSparseArraySource.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostRandomSparseArraySource.cxx
@@ -31,6 +31,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoostRandomSparseArraySource);
 
 //------------------------------------------------------------------------------
@@ -117,3 +118,4 @@ int vtkBoostRandomSparseArraySource::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostRandomSparseArraySource.h b/Infovis/BoostGraphAlgorithms/vtkBoostRandomSparseArraySource.h
index 1a1024185c17b5fc0aa1606bc6650cda4b667f9c..6f9a9718d6e0dd10742cc7e0030413583249ce1d 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostRandomSparseArraySource.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostRandomSparseArraySource.h
@@ -34,6 +34,7 @@
 #include "vtkArrayExtents.h"                      // for extents
 #include "vtkInfovisBoostGraphAlgorithmsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostRandomSparseArraySource
   : public vtkArrayDataAlgorithm
 {
@@ -114,4 +115,5 @@ private:
   double MaxValue;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostSplitTableField.cxx b/Infovis/BoostGraphAlgorithms/vtkBoostSplitTableField.cxx
index 73055e164dca32f70be674c67750ba627ddba59a..a47d16c9e6852229ff889562c1211c624562f935 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostSplitTableField.cxx
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostSplitTableField.cxx
@@ -26,6 +26,7 @@
 #include <boost/algorithm/string/trim.hpp>
 #include <boost/tokenizer.hpp>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoostSplitTableField);
 
 /// Ecapsulates private implementation details of vtkBoostSplitTableField
@@ -175,3 +176,4 @@ int vtkBoostSplitTableField::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/BoostGraphAlgorithms/vtkBoostSplitTableField.h b/Infovis/BoostGraphAlgorithms/vtkBoostSplitTableField.h
index 89c63f6c2493f7e06f3bea1a8c7b6360a9d74edd..5b5c859aa02892a34410734ff36e28bdc84ebcf5 100644
--- a/Infovis/BoostGraphAlgorithms/vtkBoostSplitTableField.h
+++ b/Infovis/BoostGraphAlgorithms/vtkBoostSplitTableField.h
@@ -57,6 +57,7 @@
 #include "vtkInfovisBoostGraphAlgorithmsModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 
 class VTKINFOVISBOOSTGRAPHALGORITHMS_EXPORT vtkBoostSplitTableField : public vtkTableAlgorithm
@@ -85,4 +86,5 @@ private:
   void operator=(const vtkBoostSplitTableField&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkAddMembershipArray.cxx b/Infovis/Core/vtkAddMembershipArray.cxx
index 66659b9abbec0db3af97f4fc38e60743770b8aae..880fa4e353e8213aac97a171d6b0cd8f5e170e2b 100644
--- a/Infovis/Core/vtkAddMembershipArray.cxx
+++ b/Infovis/Core/vtkAddMembershipArray.cxx
@@ -44,6 +44,7 @@
 #include "vtkVariant.h"
 #include "vtkVariantArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAddMembershipArray);
 vtkCxxSetObjectMacro(vtkAddMembershipArray, InputValues, vtkAbstractArray);
 
@@ -276,3 +277,4 @@ void vtkAddMembershipArray::PrintSelf(ostream& os, vtkIndent indent)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkAddMembershipArray.h b/Infovis/Core/vtkAddMembershipArray.h
index c189f5200e144862dd1067bf3711609648fd68f1..de6beb5f86ab2b31dce587c1a3845c0dfe1e54a0 100644
--- a/Infovis/Core/vtkAddMembershipArray.h
+++ b/Infovis/Core/vtkAddMembershipArray.h
@@ -34,6 +34,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 
 class VTKINFOVISCORE_EXPORT vtkAddMembershipArray : public vtkPassInputTypeAlgorithm
@@ -95,4 +96,5 @@ private:
   void operator=(const vtkAddMembershipArray&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkAdjacencyMatrixToEdgeTable.cxx b/Infovis/Core/vtkAdjacencyMatrixToEdgeTable.cxx
index 1679c0c8dd1f6e93dd3dae814713dd52a278c9ea..09b3ede880594a10cec3755f25a4962775412d1d 100644
--- a/Infovis/Core/vtkAdjacencyMatrixToEdgeTable.cxx
+++ b/Infovis/Core/vtkAdjacencyMatrixToEdgeTable.cxx
@@ -37,6 +37,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAdjacencyMatrixToEdgeTable);
 
 //------------------------------------------------------------------------------
@@ -179,3 +180,4 @@ int vtkAdjacencyMatrixToEdgeTable::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkAdjacencyMatrixToEdgeTable.h b/Infovis/Core/vtkAdjacencyMatrixToEdgeTable.h
index 30713e7c610ff3687ee6aa7708afb7c510b9b8d9..e51943179ddaf54df8f9698d42ab058f81336a5c 100644
--- a/Infovis/Core/vtkAdjacencyMatrixToEdgeTable.h
+++ b/Infovis/Core/vtkAdjacencyMatrixToEdgeTable.h
@@ -36,6 +36,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkAdjacencyMatrixToEdgeTable : public vtkTableAlgorithm
 {
 public:
@@ -98,4 +99,5 @@ private:
   void operator=(const vtkAdjacencyMatrixToEdgeTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkArrayNorm.cxx b/Infovis/Core/vtkArrayNorm.cxx
index 786004697adfae433889c88c5961823e664bee0b..2986d02bb832fd2e56bc4bcb125392f41b5cb369 100644
--- a/Infovis/Core/vtkArrayNorm.cxx
+++ b/Infovis/Core/vtkArrayNorm.cxx
@@ -36,6 +36,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // vtkArrayNorm
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkArrayNorm);
 
 vtkArrayNorm::vtkArrayNorm()
@@ -164,3 +165,4 @@ int vtkArrayNorm::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkArrayNorm.h b/Infovis/Core/vtkArrayNorm.h
index fd671c2f48e64c1699c2351babd6c6d7964c0b60..010fdae66a292b9564eef5c937cb4e5b960086f1 100644
--- a/Infovis/Core/vtkArrayNorm.h
+++ b/Infovis/Core/vtkArrayNorm.h
@@ -41,6 +41,7 @@
 #include "vtkArrayRange.h"        // for vtkArrayRange
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkArrayNorm : public vtkArrayDataAlgorithm
 {
 public:
@@ -98,4 +99,5 @@ private:
   vtkArrayRange Window;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkArrayToTable.cxx b/Infovis/Core/vtkArrayToTable.cxx
index 987fde0003bfd281c39d788960fcac35d7cabdc9..a793196ba7c4d10bb18fb7eaf5ca63c0c6a72247 100644
--- a/Infovis/Core/vtkArrayToTable.cxx
+++ b/Infovis/Core/vtkArrayToTable.cxx
@@ -46,6 +46,7 @@
 #include <stdexcept>
 
 /// Convert a 1D array to a table with one column ...
+VTK_ABI_NAMESPACE_BEGIN
 template <typename ValueT, typename ColumnT>
 static bool ConvertVector(vtkArray* Array, vtkTable* Output)
 {
@@ -250,3 +251,4 @@ int vtkArrayToTable::RequestData(
 
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkArrayToTable.h b/Infovis/Core/vtkArrayToTable.h
index 311e6a1aa8f8fab5426ee21e1c27fda8e9bf71bf..56a3d2d08ccf2d5042c9ccba2837c9ddffd9fd09 100644
--- a/Infovis/Core/vtkArrayToTable.h
+++ b/Infovis/Core/vtkArrayToTable.h
@@ -34,6 +34,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkArrayToTable : public vtkTableAlgorithm
 {
 public:
@@ -54,4 +55,5 @@ private:
   void operator=(const vtkArrayToTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkCollapseGraph.cxx b/Infovis/Core/vtkCollapseGraph.cxx
index 4ea36f08fed00f9b165f56a426f8c3581531ae06..db80f982813b42fd205618579f225f7fd1b5640f 100644
--- a/Infovis/Core/vtkCollapseGraph.cxx
+++ b/Infovis/Core/vtkCollapseGraph.cxx
@@ -38,6 +38,7 @@ typedef std::vector<vtkEdgeType> EdgeListT;
 ///////////////////////////////////////////////////////////////////////////////////
 // BuildGraph
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename GraphT>
 static void BuildGraph(vtkGraph* input_graph, const std::vector<vtkIdType>& vertex_map,
   const EdgeListT& edge_list, vtkGraph* destination_graph)
@@ -204,3 +205,4 @@ int vtkCollapseGraph::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkCollapseGraph.h b/Infovis/Core/vtkCollapseGraph.h
index 80a73084c7ff8e5ba6e9e0f9b9fc754a5fd096fb..506c614bca50e8282b929f9a1483540d21db9d5c 100644
--- a/Infovis/Core/vtkCollapseGraph.h
+++ b/Infovis/Core/vtkCollapseGraph.h
@@ -46,6 +46,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkCollapseGraph : public vtkGraphAlgorithm
 {
 public:
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkCollapseGraph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkCollapseVerticesByArray.cxx b/Infovis/Core/vtkCollapseVerticesByArray.cxx
index c08925234a33af1fe3247368f4b1fe209387bac2..de97a43c691c3ef1c65dc306c8f75738bacb3323 100644
--- a/Infovis/Core/vtkCollapseVerticesByArray.cxx
+++ b/Infovis/Core/vtkCollapseVerticesByArray.cxx
@@ -36,6 +36,7 @@
 #include <string> // Using STL.
 #include <vector> // Using STL.
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCollapseVerticesByArray);
 
 //------------------------------------------------------------------------------
@@ -516,3 +517,4 @@ void vtkCollapseVerticesByArray::FindEdge(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkCollapseVerticesByArray.h b/Infovis/Core/vtkCollapseVerticesByArray.h
index 8a465d4fbcdb5dd135cbb99a8d69695b0d3b057a..6863da1a8d116fcd6d7518723733607fafc4fa09 100644
--- a/Infovis/Core/vtkCollapseVerticesByArray.h
+++ b/Infovis/Core/vtkCollapseVerticesByArray.h
@@ -33,6 +33,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCollapseVerticesByArrayInternal;
 
 class VTKINFOVISCORE_EXPORT vtkCollapseVerticesByArray : public vtkGraphAlgorithm
@@ -151,4 +152,5 @@ protected:
   vtkCollapseVerticesByArrayInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCollapseVerticesByArray_h__
diff --git a/Infovis/Core/vtkContinuousScatterplot.cxx b/Infovis/Core/vtkContinuousScatterplot.cxx
index 09a27745520e9b6da9b788d5a49acdea8051c9d4..26cc93f63a18ccdc50e92b1bdc17895fdb094310 100644
--- a/Infovis/Core/vtkContinuousScatterplot.cxx
+++ b/Infovis/Core/vtkContinuousScatterplot.cxx
@@ -38,6 +38,7 @@
 #include "vtkTriangleFilter.h"
 #include "vtkUnstructuredGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContinuousScatterplot);
 
 // Data structure to store the fragment faces.
@@ -946,3 +947,4 @@ int vtkContinuousScatterplot::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkContinuousScatterplot.h b/Infovis/Core/vtkContinuousScatterplot.h
index ab83296dbba4bf48025bbaa80313dc7f1a488422..918ee08dfe9d9e8a9c7c53f38a032730e3fe4deb 100644
--- a/Infovis/Core/vtkContinuousScatterplot.h
+++ b/Infovis/Core/vtkContinuousScatterplot.h
@@ -172,6 +172,7 @@
 #include "vtkImageAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkContinuousScatterplot : public vtkImageAlgorithm
 {
 public:
@@ -224,4 +225,5 @@ private:
   vtkContinuousScatterplot(const vtkContinuousScatterplot&) = delete;
   void operator=(const vtkContinuousScatterplot&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkDataObjectToTable.cxx b/Infovis/Core/vtkDataObjectToTable.cxx
index 624cd7be0e43eba44fe42d5cb0b05b4e7ce28ae2..8fc447a8ab4d76c5421c48d352bec6b1d55bf500 100644
--- a/Infovis/Core/vtkDataObjectToTable.cxx
+++ b/Infovis/Core/vtkDataObjectToTable.cxx
@@ -31,6 +31,7 @@
 #include "vtkPointData.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataObjectToTable);
 //------------------------------------------------------------------------------
 vtkDataObjectToTable::vtkDataObjectToTable()
@@ -129,3 +130,4 @@ void vtkDataObjectToTable::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "FieldType: " << this->FieldType << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkDataObjectToTable.h b/Infovis/Core/vtkDataObjectToTable.h
index ae79ffc967c13348c7ce55d0be38b016c4b1c3e7..f853a57cce759e9e7f57f9ec0675898ca2b7b6c1 100644
--- a/Infovis/Core/vtkDataObjectToTable.h
+++ b/Infovis/Core/vtkDataObjectToTable.h
@@ -32,6 +32,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkDataObjectToTable : public vtkTableAlgorithm
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkDataObjectToTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkDotProductSimilarity.cxx b/Infovis/Core/vtkDotProductSimilarity.cxx
index 907f601dd105e2da4895be9fb41914ff339c5bda..dae20bc8d3ec63151582c837e00957b8d504002c 100644
--- a/Infovis/Core/vtkDotProductSimilarity.cxx
+++ b/Infovis/Core/vtkDotProductSimilarity.cxx
@@ -45,6 +45,7 @@
 // The key threshold can be overridden by specifying a lower-limit on the
 // number of values stored in the container.
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename KeyT, typename ValueT>
 class threshold_multimap : public std::multimap<KeyT, ValueT, std::less<KeyT>>
 {
@@ -344,3 +345,4 @@ int vtkDotProductSimilarity::RequestData(
     return 0;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkDotProductSimilarity.h b/Infovis/Core/vtkDotProductSimilarity.h
index 2be6338f3f159fab9eeaeeb4b5bff634b37d3c2f..9aa878bc18dedcd8208554862fc06648d304a465 100644
--- a/Infovis/Core/vtkDotProductSimilarity.h
+++ b/Infovis/Core/vtkDotProductSimilarity.h
@@ -61,6 +61,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkDotProductSimilarity : public vtkTableAlgorithm
 {
 public:
@@ -171,4 +172,5 @@ private:
   int SecondFirst;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkEdgeCenters.cxx b/Infovis/Core/vtkEdgeCenters.cxx
index 782c50a60d54ab98a81a146c324820d0918f8dae..91ab92b05f0e116a4698bbc5198a3e02f41b7fb3 100644
--- a/Infovis/Core/vtkEdgeCenters.cxx
+++ b/Infovis/Core/vtkEdgeCenters.cxx
@@ -27,6 +27,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEdgeCenters);
 
 // Construct object with vertex cell generation turned off.
@@ -188,3 +189,4 @@ void vtkEdgeCenters::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Vertex Cells: " << (this->VertexCells ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkEdgeCenters.h b/Infovis/Core/vtkEdgeCenters.h
index 49259b5a095eaca63bd129b62d7e7b7fe7606372..f779fd29b8570674c4d29e1e24cd396df963a092 100644
--- a/Infovis/Core/vtkEdgeCenters.h
+++ b/Infovis/Core/vtkEdgeCenters.h
@@ -38,6 +38,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkEdgeCenters : public vtkPolyDataAlgorithm
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkEdgeCenters&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkExpandSelectedGraph.cxx b/Infovis/Core/vtkExpandSelectedGraph.cxx
index 4e5a6250a1ff8e5b3afc97f5c3719a959a187323..e2e2b7360ea5bf32b67e72c78b5cc5f87ad25201 100644
--- a/Infovis/Core/vtkExpandSelectedGraph.cxx
+++ b/Infovis/Core/vtkExpandSelectedGraph.cxx
@@ -43,6 +43,7 @@
 
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExpandSelectedGraph);
 
 vtkExpandSelectedGraph::vtkExpandSelectedGraph()
@@ -194,3 +195,4 @@ void vtkExpandSelectedGraph::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Domain: " << (this->Domain ? this->Domain : "(null)") << endl;
   os << indent << "UseDomain: " << (this->UseDomain ? "on" : "off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkExpandSelectedGraph.h b/Infovis/Core/vtkExpandSelectedGraph.h
index ab569367cea3156106097c3d86a01055a96f3885..21dad241fba0999ff3e26f667bfbdaeb064bb05f 100644
--- a/Infovis/Core/vtkExpandSelectedGraph.h
+++ b/Infovis/Core/vtkExpandSelectedGraph.h
@@ -40,6 +40,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkSelectionAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 class vtkIdTypeArray;
 
@@ -119,4 +120,5 @@ private:
   void BFSExpandSelection(vtkIdTypeArray* selection, vtkGraph* graph);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkExtractSelectedGraph.cxx b/Infovis/Core/vtkExtractSelectedGraph.cxx
index c88014f7f8b11c196db97dd5888b012c157553de..e2a3b9f3c88f51d6066b73e572728e670ff96cea 100644
--- a/Infovis/Core/vtkExtractSelectedGraph.cxx
+++ b/Infovis/Core/vtkExtractSelectedGraph.cxx
@@ -49,6 +49,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractSelectedGraph);
 //------------------------------------------------------------------------------
 vtkExtractSelectedGraph::vtkExtractSelectedGraph()
@@ -465,3 +466,4 @@ void vtkExtractSelectedGraph::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "RemoveIsolatedVertices: " << (this->RemoveIsolatedVertices ? "on" : "off")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkExtractSelectedGraph.h b/Infovis/Core/vtkExtractSelectedGraph.h
index c8810c4b53161427c832c6ec7ebd46ba45f7bd14..476900ffebdc716f3754f21ec0f917949fc5d72e 100644
--- a/Infovis/Core/vtkExtractSelectedGraph.h
+++ b/Infovis/Core/vtkExtractSelectedGraph.h
@@ -40,6 +40,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSelection;
 class vtkDataSet;
 
@@ -91,4 +92,5 @@ private:
   void operator=(const vtkExtractSelectedGraph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkExtractSelectedTree.cxx b/Infovis/Core/vtkExtractSelectedTree.cxx
index cf7cd491d5c293a4de950db66ef738e15c2cd573..519a30f2115aa019e0afe93ed1570b73d7203530 100644
--- a/Infovis/Core/vtkExtractSelectedTree.cxx
+++ b/Infovis/Core/vtkExtractSelectedTree.cxx
@@ -32,6 +32,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExtractSelectedTree);
 
 vtkExtractSelectedTree::vtkExtractSelectedTree()
@@ -230,3 +231,4 @@ int vtkExtractSelectedTree::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkExtractSelectedTree.h b/Infovis/Core/vtkExtractSelectedTree.h
index 83d41a4e98d863723de5ab19d56d2a68a6ddf269..99a1b32652334bb23366d154bb65f36ada3e7aac 100644
--- a/Infovis/Core/vtkExtractSelectedTree.h
+++ b/Infovis/Core/vtkExtractSelectedTree.h
@@ -31,6 +31,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTree;
 class vtkIdTypeArray;
 class vtkMutableDirectedGraph;
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkExtractSelectedTree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkGenerateIndexArray.cxx b/Infovis/Core/vtkGenerateIndexArray.cxx
index 2e997c9a920a663a0af3dc500972ca0e753786e9..adb8a32e406de97b14263b320faf6ce5af7d6c33 100644
--- a/Infovis/Core/vtkGenerateIndexArray.cxx
+++ b/Infovis/Core/vtkGenerateIndexArray.cxx
@@ -27,6 +27,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenerateIndexArray);
 
 vtkGenerateIndexArray::vtkGenerateIndexArray()
@@ -214,3 +215,4 @@ int vtkGenerateIndexArray::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkGenerateIndexArray.h b/Infovis/Core/vtkGenerateIndexArray.h
index 1821dd4c89f75501c33978625d89a53619d1be41..b1d0854f2776d51eea0229a8a3e2ca66055d5ec2 100644
--- a/Infovis/Core/vtkGenerateIndexArray.h
+++ b/Infovis/Core/vtkGenerateIndexArray.h
@@ -48,6 +48,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkGenerateIndexArray : public vtkDataObjectAlgorithm
 {
 public:
@@ -120,4 +121,5 @@ private:
   void operator=(const vtkGenerateIndexArray&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkGraphHierarchicalBundleEdges.cxx b/Infovis/Core/vtkGraphHierarchicalBundleEdges.cxx
index 972a551678318e46d382fc26b754f5931e64be11..156858e20ef509f5156e1d2a2dfb5437474b02ad 100644
--- a/Infovis/Core/vtkGraphHierarchicalBundleEdges.cxx
+++ b/Infovis/Core/vtkGraphHierarchicalBundleEdges.cxx
@@ -36,6 +36,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphHierarchicalBundleEdges);
 
 vtkGraphHierarchicalBundleEdges::vtkGraphHierarchicalBundleEdges()
@@ -306,3 +307,4 @@ void vtkGraphHierarchicalBundleEdges::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "BundlingStrength: " << this->BundlingStrength << endl;
   os << indent << "DirectMapping: " << this->DirectMapping << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkGraphHierarchicalBundleEdges.h b/Infovis/Core/vtkGraphHierarchicalBundleEdges.h
index 593bcccc47f47f718c7a1da59e3ea3a464f6d208..56564c30fa58b0e89ecfaff1ec4d59c1efb41fbe 100644
--- a/Infovis/Core/vtkGraphHierarchicalBundleEdges.h
+++ b/Infovis/Core/vtkGraphHierarchicalBundleEdges.h
@@ -58,6 +58,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkGraphHierarchicalBundleEdges : public vtkGraphAlgorithm
 {
 public:
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkGraphHierarchicalBundleEdges&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkGroupLeafVertices.cxx b/Infovis/Core/vtkGroupLeafVertices.cxx
index e2491dfbcc83e587f914b0754dcf865b42290455..b9866c65782286656e863876c35d7053a81bc5b7 100644
--- a/Infovis/Core/vtkGroupLeafVertices.cxx
+++ b/Infovis/Core/vtkGroupLeafVertices.cxx
@@ -39,6 +39,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGroupLeafVertices);
 
 // Forward function reference (definition at bottom :)
@@ -461,3 +462,4 @@ static int splitString(const vtkStdString& input, std::vector<vtkStdString>& res
   results.emplace_back(currentField);
   return static_cast<int>(results.size());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkGroupLeafVertices.h b/Infovis/Core/vtkGroupLeafVertices.h
index f90fcdc76424c076a1bc6c9e2cc387ed1e9e048d..e918e4d4924b15e620866d5fe222b9980cda579a 100644
--- a/Infovis/Core/vtkGroupLeafVertices.h
+++ b/Infovis/Core/vtkGroupLeafVertices.h
@@ -32,6 +32,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkGroupLeafVertices : public vtkTreeAlgorithm
 {
 public:
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkGroupLeafVertices&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkKCoreDecomposition.cxx b/Infovis/Core/vtkKCoreDecomposition.cxx
index 77fa8e576cca5892b32d7d0416e9d71c378dfab4..d59f282a853f47c51add89a584b9c09f567fd8d3 100644
--- a/Infovis/Core/vtkKCoreDecomposition.cxx
+++ b/Infovis/Core/vtkKCoreDecomposition.cxx
@@ -34,6 +34,7 @@
 
 #include <unordered_map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkKCoreDecomposition);
 
 namespace
@@ -462,3 +463,4 @@ void vtkKCoreDecomposition::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "UseOutDegreeNeighbors: " << (this->UseOutDegreeNeighbors ? "on" : "off") << endl;
   os << indent << "CheckInputGraph: " << (this->CheckInputGraph ? "on" : "off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkKCoreDecomposition.h b/Infovis/Core/vtkKCoreDecomposition.h
index 1b47471057e733e4b92244e775568fd14e809d09..a7eb7843bbf3eab8f3eba4b6ae82c3700c99f218 100644
--- a/Infovis/Core/vtkKCoreDecomposition.h
+++ b/Infovis/Core/vtkKCoreDecomposition.h
@@ -44,6 +44,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIntArray;
 
 class VTKINFOVISCORE_EXPORT vtkKCoreDecomposition : public vtkGraphAlgorithm
@@ -117,4 +118,5 @@ private:
   void operator=(const vtkKCoreDecomposition&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkMergeColumns.cxx b/Infovis/Core/vtkMergeColumns.cxx
index ae47dc9827cdfc127297a1b415fe62fe180d5ddc..983941edee3bd96a600541b9933d09d66ec9ffe2 100644
--- a/Infovis/Core/vtkMergeColumns.cxx
+++ b/Infovis/Core/vtkMergeColumns.cxx
@@ -26,6 +26,7 @@
 #include "vtkStringArray.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMergeColumns);
 
 vtkMergeColumns::vtkMergeColumns()
@@ -123,3 +124,4 @@ void vtkMergeColumns::PrintSelf(ostream& os, vtkIndent indent)
      << "MergedColumnName: " << (this->MergedColumnName ? this->MergedColumnName : "(null)")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkMergeColumns.h b/Infovis/Core/vtkMergeColumns.h
index 7e025b7eeaa079f094be054651423004fb48f9dd..30f6c90c82337c91b08767e92510b4dbef652844 100644
--- a/Infovis/Core/vtkMergeColumns.h
+++ b/Infovis/Core/vtkMergeColumns.h
@@ -45,6 +45,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkMergeColumns : public vtkTableAlgorithm
 {
 public:
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkMergeColumns&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkMergeGraphs.cxx b/Infovis/Core/vtkMergeGraphs.cxx
index 8d8820ccb1edfd1327ccea307e1c9cd1877746a2..90d6cce4811181c6b70ec689cc241113b8f567b5 100644
--- a/Infovis/Core/vtkMergeGraphs.cxx
+++ b/Infovis/Core/vtkMergeGraphs.cxx
@@ -35,6 +35,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMergeGraphs);
 //------------------------------------------------------------------------------
 vtkMergeGraphs::vtkMergeGraphs()
@@ -281,3 +282,4 @@ void vtkMergeGraphs::PrintSelf(ostream& os, vtkIndent indent)
      << (this->EdgeWindowArrayName ? this->EdgeWindowArrayName : "(none)") << endl;
   os << indent << "EdgeWindow: " << this->EdgeWindow << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkMergeGraphs.h b/Infovis/Core/vtkMergeGraphs.h
index 315588dc80d3d2707b4b8be61f6b26471185459a..4c0a3b4cead018b4b8286a55217263f86a40d514 100644
--- a/Infovis/Core/vtkMergeGraphs.h
+++ b/Infovis/Core/vtkMergeGraphs.h
@@ -50,6 +50,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkMutableGraphHelper;
 class vtkStringArray;
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkMergeGraphs&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkMergeTables.cxx b/Infovis/Core/vtkMergeTables.cxx
index 696299b9fc8c667930ee520797f7088d19a60bef..862e8e11be3b4a4911bcdb081755d26df3cd0531 100644
--- a/Infovis/Core/vtkMergeTables.cxx
+++ b/Infovis/Core/vtkMergeTables.cxx
@@ -28,6 +28,7 @@
 #include "vtkStringArray.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMergeTables);
 //------------------------------------------------------------------------------
 vtkMergeTables::vtkMergeTables()
@@ -237,3 +238,4 @@ void vtkMergeTables::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "MergeColumnsByName: " << (this->MergeColumnsByName ? "on" : "off") << endl;
   os << indent << "PrefixAllButMerged: " << (this->PrefixAllButMerged ? "on" : "off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkMergeTables.h b/Infovis/Core/vtkMergeTables.h
index 63e4daa6dcf1aea3f00736346a3b3f3c441d2bea..64f0ce7b51c0569a444f76c0717aee0bb4ef1b46 100644
--- a/Infovis/Core/vtkMergeTables.h
+++ b/Infovis/Core/vtkMergeTables.h
@@ -42,6 +42,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkMergeTables : public vtkTableAlgorithm
 {
 public:
@@ -106,4 +107,5 @@ private:
   void operator=(const vtkMergeTables&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkMutableGraphHelper.cxx b/Infovis/Core/vtkMutableGraphHelper.cxx
index 46de97d51b0c747906770f61983fab01d367953f..a0ea97bc87f375dd3f1eedd5c722d4821d5e2eef 100644
--- a/Infovis/Core/vtkMutableGraphHelper.cxx
+++ b/Infovis/Core/vtkMutableGraphHelper.cxx
@@ -24,6 +24,7 @@
 #include "vtkMutableUndirectedGraph.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkMutableGraphHelper, InternalGraph, vtkGraph);
 vtkStandardNewMacro(vtkMutableGraphHelper);
 //------------------------------------------------------------------------------
@@ -195,3 +196,4 @@ void vtkMutableGraphHelper::PrintSelf(ostream& os, vtkIndent indent)
     this->InternalGraph->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkMutableGraphHelper.h b/Infovis/Core/vtkMutableGraphHelper.h
index 6be59f44f5ab7cf5c32c7b4e0bbfbc8d97c24a97..2b62f43139269b8be0fb04008133ef37e4775a22 100644
--- a/Infovis/Core/vtkMutableGraphHelper.h
+++ b/Infovis/Core/vtkMutableGraphHelper.h
@@ -38,6 +38,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSetAttributes;
 class vtkGraph;
 class vtkGraphEdge;
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkMutableGraphHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkNetworkHierarchy.cxx b/Infovis/Core/vtkNetworkHierarchy.cxx
index d11038d41f29ca73eed642d8b552e1b6a7df63d9..99bbdaa9b781d71c367e6ff038e1d42066c05fba 100644
--- a/Infovis/Core/vtkNetworkHierarchy.cxx
+++ b/Infovis/Core/vtkNetworkHierarchy.cxx
@@ -40,6 +40,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkNetworkHierarchy);
 
 // This is just a macro wrapping for smart pointers
@@ -305,3 +306,4 @@ int vtkNetworkHierarchy::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkNetworkHierarchy.h b/Infovis/Core/vtkNetworkHierarchy.h
index 0d8e1bd15a8b67ed087f91c90454eb5df57b0b7e..9baf4e72e6ccb6d30643597567f0573cffe51055 100644
--- a/Infovis/Core/vtkNetworkHierarchy.h
+++ b/Infovis/Core/vtkNetworkHierarchy.h
@@ -34,6 +34,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStdString;
 
 class VTKINFOVISCORE_EXPORT vtkNetworkHierarchy : public vtkTreeAlgorithm
@@ -72,4 +73,5 @@ private:
   char* IPArrayName;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkPipelineGraphSource.cxx b/Infovis/Core/vtkPipelineGraphSource.cxx
index ddaa3049b694e6eeb72c53336a13405176addca4..db9f706c6287c8d0d800132afe310619e199a1c7 100644
--- a/Infovis/Core/vtkPipelineGraphSource.cxx
+++ b/Infovis/Core/vtkPipelineGraphSource.cxx
@@ -37,6 +37,7 @@
 
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPipelineGraphSource);
 
 //------------------------------------------------------------------------------
@@ -349,3 +350,4 @@ void vtkPipelineGraphSource::PipelineToDot(
 
   output << "}\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkPipelineGraphSource.h b/Infovis/Core/vtkPipelineGraphSource.h
index 77b2250d505cebb5a22c31b53e0b789514da7a08..71db1cb837d8a298fb081f6de8c7db1b18a21ff3 100644
--- a/Infovis/Core/vtkPipelineGraphSource.h
+++ b/Infovis/Core/vtkPipelineGraphSource.h
@@ -26,6 +26,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkStdString.h"         // for vtkStdString
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCollection;
 
 class VTKINFOVISCORE_EXPORT vtkPipelineGraphSource : public vtkDirectedGraphAlgorithm
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkPipelineGraphSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkPruneTreeFilter.cxx b/Infovis/Core/vtkPruneTreeFilter.cxx
index 37203b068f756bc2e4b3f510978d65474fe01428..92554006bb3c44c4836765064cc03bf6e16e956c 100644
--- a/Infovis/Core/vtkPruneTreeFilter.cxx
+++ b/Infovis/Core/vtkPruneTreeFilter.cxx
@@ -34,6 +34,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPruneTreeFilter);
 
 vtkPruneTreeFilter::vtkPruneTreeFilter()
@@ -134,3 +135,4 @@ int vtkPruneTreeFilter::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkPruneTreeFilter.h b/Infovis/Core/vtkPruneTreeFilter.h
index 13ce2e6e6b519a1b325e9b9684019d69cb24208f..438236cb82305c573bfda2726c49474e0ceb2036 100644
--- a/Infovis/Core/vtkPruneTreeFilter.h
+++ b/Infovis/Core/vtkPruneTreeFilter.h
@@ -32,6 +32,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTree;
 class vtkPVXMLElement;
 
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkPruneTreeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkRandomGraphSource.cxx b/Infovis/Core/vtkRandomGraphSource.cxx
index 964d96643550b8404cf88bbf2f7589a1d424d12f..cb1b5d030d401594afc976c84de95e348e657ab2 100644
--- a/Infovis/Core/vtkRandomGraphSource.cxx
+++ b/Infovis/Core/vtkRandomGraphSource.cxx
@@ -35,6 +35,7 @@
 #include <algorithm>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRandomGraphSource);
 
 //------------------------------------------------------------------------------
@@ -319,3 +320,4 @@ int vtkRandomGraphSource::RequestDataObject(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkRandomGraphSource.h b/Infovis/Core/vtkRandomGraphSource.h
index f55af14cde0d73782684f723744caa478147247d..c375f17d65143cb9f717e6c8320da6c3ee6251a3 100644
--- a/Infovis/Core/vtkRandomGraphSource.h
+++ b/Infovis/Core/vtkRandomGraphSource.h
@@ -35,6 +35,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 class vtkPVXMLElement;
 
@@ -205,4 +206,5 @@ private:
   void operator=(const vtkRandomGraphSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkReduceTable.cxx b/Infovis/Core/vtkReduceTable.cxx
index 4791063dbda5fd2b9f611c986ac4a25e420bb13c..dfe1a564097a874d57ff35bf985daff9e8c31768 100644
--- a/Infovis/Core/vtkReduceTable.cxx
+++ b/Infovis/Core/vtkReduceTable.cxx
@@ -24,6 +24,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkReduceTable);
 //------------------------------------------------------------------------------
 vtkReduceTable::vtkReduceTable()
@@ -309,3 +310,4 @@ void vtkReduceTable::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "NumericalReductionMethod: " << this->NumericalReductionMethod << endl;
   os << indent << "NonNumericalReductionMethod: " << this->NonNumericalReductionMethod << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkReduceTable.h b/Infovis/Core/vtkReduceTable.h
index 747059b13fa326d8b9a02578146c14f009838c0d..8cc4873c60ce13ea7fa1d135d11f76cd0559050c 100644
--- a/Infovis/Core/vtkReduceTable.h
+++ b/Infovis/Core/vtkReduceTable.h
@@ -43,6 +43,7 @@
 #include <set>    // For ivar
 #include <vector> // For ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVariant;
 
 class VTKINFOVISCORE_EXPORT vtkReduceTable : public vtkTableAlgorithm
@@ -167,4 +168,5 @@ private:
   void operator=(const vtkReduceTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkRemoveHiddenData.cxx b/Infovis/Core/vtkRemoveHiddenData.cxx
index 908da4b19c1577e18aad7bfbb06db1a31f2abc64..1c9ba821790501b8a627564c4863c7826029cdd3 100644
--- a/Infovis/Core/vtkRemoveHiddenData.cxx
+++ b/Infovis/Core/vtkRemoveHiddenData.cxx
@@ -40,6 +40,7 @@
 #include "vtkTable.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRemoveHiddenData);
 
 vtkRemoveHiddenData::vtkRemoveHiddenData()
@@ -160,3 +161,4 @@ void vtkRemoveHiddenData::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkRemoveHiddenData.h b/Infovis/Core/vtkRemoveHiddenData.h
index 4791e071c1f03cfcbd55ecfe3e483983fe80f8b6..ed190ff755a638067ebbaba22a3e4d6fba9f1013 100644
--- a/Infovis/Core/vtkRemoveHiddenData.h
+++ b/Infovis/Core/vtkRemoveHiddenData.h
@@ -39,6 +39,7 @@
 #include "vtkPassInputTypeAlgorithm.h"
 #include "vtkSmartPointer.h" // For Smartpointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkExtractSelectedGraph;
 class vtkExtractSelectedRows;
 
@@ -71,4 +72,5 @@ private:
   vtkSmartPointer<vtkExtractSelectedRows> ExtractTable;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkRemoveIsolatedVertices.cxx b/Infovis/Core/vtkRemoveIsolatedVertices.cxx
index 729c54c583c98e3a27daa5b2e9874ae865515a1b..f829688196eed533b3d56c9ef268489f136c9126 100644
--- a/Infovis/Core/vtkRemoveIsolatedVertices.cxx
+++ b/Infovis/Core/vtkRemoveIsolatedVertices.cxx
@@ -34,6 +34,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRemoveIsolatedVertices);
 //------------------------------------------------------------------------------
 vtkRemoveIsolatedVertices::vtkRemoveIsolatedVertices() = default;
@@ -120,3 +121,4 @@ void vtkRemoveIsolatedVertices::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkRemoveIsolatedVertices.h b/Infovis/Core/vtkRemoveIsolatedVertices.h
index 740377a0c3a96c3d059ff6796e10c901f5103214..80b659b3454b5d781e4c91b8a3c662c2dc696922 100644
--- a/Infovis/Core/vtkRemoveIsolatedVertices.h
+++ b/Infovis/Core/vtkRemoveIsolatedVertices.h
@@ -31,6 +31,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKINFOVISCORE_EXPORT vtkRemoveIsolatedVertices : public vtkGraphAlgorithm
@@ -51,4 +52,5 @@ private:
   void operator=(const vtkRemoveIsolatedVertices&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkSparseArrayToTable.cxx b/Infovis/Core/vtkSparseArrayToTable.cxx
index 87a39e1d6fd3628ce86331da2b506b640a542c9f..14b409f444c1d152deac5326447327579b92533c 100644
--- a/Infovis/Core/vtkSparseArrayToTable.cxx
+++ b/Infovis/Core/vtkSparseArrayToTable.cxx
@@ -34,6 +34,7 @@
 #include <sstream>
 #include <stdexcept>
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename ValueT, typename ValueColumnT>
 static bool Convert(vtkArray* Array, const char* ValueColumn, vtkTable* Table)
 {
@@ -141,3 +142,4 @@ int vtkSparseArrayToTable::RequestData(
 
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkSparseArrayToTable.h b/Infovis/Core/vtkSparseArrayToTable.h
index c4f731efbcb82097328c31bb6058e47ed7a76e38..7a18c5d3ba29392df6178fca850f7a653367d4af 100644
--- a/Infovis/Core/vtkSparseArrayToTable.h
+++ b/Infovis/Core/vtkSparseArrayToTable.h
@@ -44,6 +44,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTableAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkSparseArrayToTable : public vtkTableAlgorithm
 {
 public:
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkSparseArrayToTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkStreamGraph.cxx b/Infovis/Core/vtkStreamGraph.cxx
index 3e5a8be2d065e6d7dc75587dfe9c17772686bc6d..318dc55f688384c516276b585179eea7a7464385 100644
--- a/Infovis/Core/vtkStreamGraph.cxx
+++ b/Infovis/Core/vtkStreamGraph.cxx
@@ -35,6 +35,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStreamGraph);
 //------------------------------------------------------------------------------
 vtkStreamGraph::vtkStreamGraph()
@@ -127,3 +128,4 @@ void vtkStreamGraph::PrintSelf(ostream& os, vtkIndent indent)
      << (this->EdgeWindowArrayName ? this->EdgeWindowArrayName : "(none)") << endl;
   os << indent << "EdgeWindow: " << this->EdgeWindow << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkStreamGraph.h b/Infovis/Core/vtkStreamGraph.h
index fece96398d0a663f4f34c0e02a70aec7dcce5f65..2f97a0a7a565dec68ed5e1f6900af1921fb4915b 100644
--- a/Infovis/Core/vtkStreamGraph.h
+++ b/Infovis/Core/vtkStreamGraph.h
@@ -39,6 +39,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkMergeGraphs;
 class vtkMutableDirectedGraph;
@@ -99,4 +100,5 @@ private:
   void operator=(const vtkStreamGraph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkStringToCategory.cxx b/Infovis/Core/vtkStringToCategory.cxx
index 6a18da374bc5840ef3c5ff92554759728f360d16..576d661c4d4b25c4a0d95fa080e4764e2c8fea3d 100644
--- a/Infovis/Core/vtkStringToCategory.cxx
+++ b/Infovis/Core/vtkStringToCategory.cxx
@@ -37,6 +37,7 @@
 
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStringToCategory);
 
 vtkStringToCategory::vtkStringToCategory()
@@ -203,3 +204,4 @@ void vtkStringToCategory::PrintSelf(ostream& os, vtkIndent indent)
      << "CategoryArrayName: " << (this->CategoryArrayName ? this->CategoryArrayName : "(null)")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkStringToCategory.h b/Infovis/Core/vtkStringToCategory.h
index 823f2dfb4cecd1f7dd8c7963b4e1aab4d8b11ca7..a9b1b8539a617379930fd675cf255cc5fd0360a6 100644
--- a/Infovis/Core/vtkStringToCategory.h
+++ b/Infovis/Core/vtkStringToCategory.h
@@ -42,6 +42,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkStringToCategory : public vtkDataObjectAlgorithm
 {
 public:
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkStringToCategory&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkStringToNumeric.cxx b/Infovis/Core/vtkStringToNumeric.cxx
index 0df694fed76fecec108c4f5f10f735e1be5d380a..2f8904f39c24533e5e36c45c5216d87b6147f150 100644
--- a/Infovis/Core/vtkStringToNumeric.cxx
+++ b/Infovis/Core/vtkStringToNumeric.cxx
@@ -35,6 +35,7 @@
 #include "vtkTable.h"
 #include "vtkVariant.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStringToNumeric);
 
 vtkStringToNumeric::vtkStringToNumeric()
@@ -308,3 +309,4 @@ void vtkStringToNumeric::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "TrimWhitespacePriorToNumericConversion: "
      << (this->TrimWhitespacePriorToNumericConversion ? "on" : "off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkStringToNumeric.h b/Infovis/Core/vtkStringToNumeric.h
index fe9f5e5a503d072a8ddceb0cdd315d3f5280d17d..aa2656b867d7c8910e118db37ca7abfbae300cd7 100644
--- a/Infovis/Core/vtkStringToNumeric.h
+++ b/Infovis/Core/vtkStringToNumeric.h
@@ -32,6 +32,7 @@
 #include "vtkDataObjectAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkStringToNumeric : public vtkDataObjectAlgorithm
 {
 public:
@@ -180,4 +181,5 @@ private:
   void operator=(const vtkStringToNumeric&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkTableToArray.cxx b/Infovis/Core/vtkTableToArray.cxx
index 1ff8604adf7fc69e431c9f3fd98d1b7a48058a21..448d6302ba1e6474d70ca0a9f76af27d9aea0631 100644
--- a/Infovis/Core/vtkTableToArray.cxx
+++ b/Infovis/Core/vtkTableToArray.cxx
@@ -32,6 +32,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTableToArray::implementation
 {
 public:
@@ -176,3 +177,4 @@ int vtkTableToArray::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkTableToArray.h b/Infovis/Core/vtkTableToArray.h
index 4d1cc343e83a300dbd98a5d86cafb5c292f8a56c..d9b0f065354d5e87f43c23c8b8e5f637640bd40c 100644
--- a/Infovis/Core/vtkTableToArray.h
+++ b/Infovis/Core/vtkTableToArray.h
@@ -44,6 +44,7 @@
 #include "vtkArrayDataAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkTableToArray : public vtkArrayDataAlgorithm
 {
 public:
@@ -87,4 +88,5 @@ private:
   implementation* const Implementation;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkTableToGraph.cxx b/Infovis/Core/vtkTableToGraph.cxx
index 18779e2947d59ba34bbea99c77c2cd65083808e5..c75e277fe75a31e010285b7e7fe72d025577ef52 100644
--- a/Infovis/Core/vtkTableToGraph.cxx
+++ b/Infovis/Core/vtkTableToGraph.cxx
@@ -51,6 +51,7 @@
 
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTableToGraph);
 vtkCxxSetObjectMacro(vtkTableToGraph, LinkGraph, vtkMutableDirectedGraph);
 //------------------------------------------------------------------------------
@@ -931,3 +932,4 @@ void vtkTableToGraph::PrintSelf(ostream& os, vtkIndent indent)
     this->LinkGraph->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkTableToGraph.h b/Infovis/Core/vtkTableToGraph.h
index d89c78dd4df8ce5be177f815eaa2a7e33c94eb0c..89fed6897236d1ed3b734afd5064c9c617a441ea 100644
--- a/Infovis/Core/vtkTableToGraph.h
+++ b/Infovis/Core/vtkTableToGraph.h
@@ -69,6 +69,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkMutableDirectedGraph;
 class vtkStringArray;
@@ -164,4 +165,5 @@ private:
   void operator=(const vtkTableToGraph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkTableToSparseArray.cxx b/Infovis/Core/vtkTableToSparseArray.cxx
index 242a90fea6db93fe08bc88ce58908723bc0bacca..1fa7e52064cddfa2122d78fd9c307ab290108c17 100644
--- a/Infovis/Core/vtkTableToSparseArray.cxx
+++ b/Infovis/Core/vtkTableToSparseArray.cxx
@@ -34,6 +34,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTableToSparseArray::implementation
 {
 public:
@@ -215,3 +216,4 @@ int vtkTableToSparseArray::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkTableToSparseArray.h b/Infovis/Core/vtkTableToSparseArray.h
index 5a9fd709e8e49b1f2e76daf1d046aba53e0ecfc1..80cef93243f5f1bd98e2d4f5923891b58c6a5847 100644
--- a/Infovis/Core/vtkTableToSparseArray.h
+++ b/Infovis/Core/vtkTableToSparseArray.h
@@ -52,6 +52,7 @@
 #include "vtkArrayDataAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArrayExtents;
 
 class VTKINFOVISCORE_EXPORT vtkTableToSparseArray : public vtkArrayDataAlgorithm
@@ -102,4 +103,5 @@ private:
   implementation* const Implementation;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkTableToTreeFilter.cxx b/Infovis/Core/vtkTableToTreeFilter.cxx
index fc0206cb563300f2177527bce41da2f69b324146..cde38e5bb57d27b67f789a090b88c739b94d11fc 100644
--- a/Infovis/Core/vtkTableToTreeFilter.cxx
+++ b/Infovis/Core/vtkTableToTreeFilter.cxx
@@ -35,6 +35,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTableToTreeFilter);
 
 vtkTableToTreeFilter::vtkTableToTreeFilter() = default;
@@ -122,3 +123,4 @@ int vtkTableToTreeFilter::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkTableToTreeFilter.h b/Infovis/Core/vtkTableToTreeFilter.h
index a3e463a68c46aaa1c01f7c0fc079fdb8a6573066..e580b92eae106f6826838182ca06ce3a865aa1c0 100644
--- a/Infovis/Core/vtkTableToTreeFilter.h
+++ b/Infovis/Core/vtkTableToTreeFilter.h
@@ -35,6 +35,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkTableToTreeFilter : public vtkTreeAlgorithm
 {
 public:
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkTableToTreeFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkThresholdGraph.cxx b/Infovis/Core/vtkThresholdGraph.cxx
index 8319ce1159ccb9db02a0b17ed00fbe82cd565175..de78466b159f6f1626b9743c7923182248641ace 100644
--- a/Infovis/Core/vtkThresholdGraph.cxx
+++ b/Infovis/Core/vtkThresholdGraph.cxx
@@ -9,6 +9,7 @@
 #include "vtkSelectionNode.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkThresholdGraph);
 
 //------------------------------------------------------------------------------
@@ -159,3 +160,4 @@ int vtkThresholdGraph::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkThresholdGraph.h b/Infovis/Core/vtkThresholdGraph.h
index 4b90095fa1734c97f4bc6d6a4dc7572716a6c238..207e8f00d358f705596d7f8d0c9133108bc53f65 100644
--- a/Infovis/Core/vtkThresholdGraph.h
+++ b/Infovis/Core/vtkThresholdGraph.h
@@ -27,6 +27,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkThresholdGraph : public vtkGraphAlgorithm
 {
 public:
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkThresholdGraph&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkThresholdGraph_h
diff --git a/Infovis/Core/vtkThresholdTable.cxx b/Infovis/Core/vtkThresholdTable.cxx
index 43e5001b07daad2ef0d9b2799852e6c2fbc06ce8..2163aebaf20a203c71614f427dc10158d22571f3 100644
--- a/Infovis/Core/vtkThresholdTable.cxx
+++ b/Infovis/Core/vtkThresholdTable.cxx
@@ -29,6 +29,7 @@
 #include "vtkVariant.h"
 #include "vtkVariantArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkThresholdTable);
 
 vtkThresholdTable::vtkThresholdTable()
@@ -150,3 +151,4 @@ int vtkThresholdTable::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkThresholdTable.h b/Infovis/Core/vtkThresholdTable.h
index 7638f67455bd75b8be977ca1e5ae03ab0da842da..1b11509639a9c9ed215e879250de08983031f0d3 100644
--- a/Infovis/Core/vtkThresholdTable.h
+++ b/Infovis/Core/vtkThresholdTable.h
@@ -34,6 +34,7 @@
 #include "vtkTableAlgorithm.h"
 #include "vtkVariant.h" // For vtkVariant arguments
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkThresholdTable : public vtkTableAlgorithm
 {
 public:
@@ -127,4 +128,5 @@ private:
   void operator=(const vtkThresholdTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkTransferAttributes.cxx b/Infovis/Core/vtkTransferAttributes.cxx
index 64ff28bdcd5ceedad34f91071638ef3bcab2e177..b3a05464c912025472c36135cef3f3ff98784c96 100644
--- a/Infovis/Core/vtkTransferAttributes.cxx
+++ b/Infovis/Core/vtkTransferAttributes.cxx
@@ -41,6 +41,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <map>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 vtkVariant vtkGetValue(T* arr, vtkIdType index)
 {
@@ -324,3 +325,4 @@ void vtkTransferAttributes::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "SourceFieldType: " << this->SourceFieldType << endl;
   os << indent << "TargetFieldType: " << this->TargetFieldType << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkTransferAttributes.h b/Infovis/Core/vtkTransferAttributes.h
index cbc129d9b07c01591640d5dcf76c62d1207b19ad..d5138d3c7f12c76f9372d3122ec6a855cab837d9 100644
--- a/Infovis/Core/vtkTransferAttributes.h
+++ b/Infovis/Core/vtkTransferAttributes.h
@@ -42,6 +42,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkPassInputTypeAlgorithm.h"
 #include "vtkVariant.h" //For vtkVariant method arguments
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkTransferAttributes : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -138,4 +139,5 @@ private:
   void operator=(const vtkTransferAttributes&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkTransposeMatrix.cxx b/Infovis/Core/vtkTransposeMatrix.cxx
index b24abcf588edb9aec0d9899920949ab4d8800d9b..443eaeb7b7ac6a0a087f4201fac91e10582166d8 100644
--- a/Infovis/Core/vtkTransposeMatrix.cxx
+++ b/Infovis/Core/vtkTransposeMatrix.cxx
@@ -32,6 +32,7 @@
 ///////////////////////////////////////////////////////////////////////////////
 // vtkTransposeMatrix
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransposeMatrix);
 
 vtkTransposeMatrix::vtkTransposeMatrix() = default;
@@ -127,3 +128,4 @@ int vtkTransposeMatrix::RequestData(
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkTransposeMatrix.h b/Infovis/Core/vtkTransposeMatrix.h
index f9352700d0d6572890374f229b7457df1f6bb3d6..cc5e31ef4e79f2cce09561fa8492227d6a89f05c 100644
--- a/Infovis/Core/vtkTransposeMatrix.h
+++ b/Infovis/Core/vtkTransposeMatrix.h
@@ -33,6 +33,7 @@
 #include "vtkArrayDataAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkTransposeMatrix : public vtkArrayDataAlgorithm
 {
 public:
@@ -51,4 +52,5 @@ private:
   void operator=(const vtkTransposeMatrix&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkTreeDifferenceFilter.cxx b/Infovis/Core/vtkTreeDifferenceFilter.cxx
index ad60af86c82a6712419b1b5858f9737d2c75cc78..1e32e1158a26f0f1396254b813234d26280b3a81 100644
--- a/Infovis/Core/vtkTreeDifferenceFilter.cxx
+++ b/Infovis/Core/vtkTreeDifferenceFilter.cxx
@@ -25,6 +25,7 @@
 #include "vtkStringArray.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeDifferenceFilter);
 
 //------------------------------------------------------------------------------
@@ -313,3 +314,4 @@ void vtkTreeDifferenceFilter::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "ComparisonArrayIsVertexData: " << this->ComparisonArrayIsVertexData << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkTreeDifferenceFilter.h b/Infovis/Core/vtkTreeDifferenceFilter.h
index 5b5db0fbebc5658f3b678920240db1ad1335bb4f..50daea49e76f9aec681fa6f8ce55523cafddfea9 100644
--- a/Infovis/Core/vtkTreeDifferenceFilter.h
+++ b/Infovis/Core/vtkTreeDifferenceFilter.h
@@ -35,6 +35,7 @@
 #include "vtkSmartPointer.h" // For ivars
 #include <vector>            // For ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkTree;
 
@@ -125,4 +126,5 @@ private:
   void operator=(const vtkTreeDifferenceFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkTreeFieldAggregator.cxx b/Infovis/Core/vtkTreeFieldAggregator.cxx
index e9cd7472d393064b3f57ba40e9c5026d3854d985..3b41d806466fefadc46e07ec3d012849be13f36e 100644
--- a/Infovis/Core/vtkTreeFieldAggregator.cxx
+++ b/Infovis/Core/vtkTreeFieldAggregator.cxx
@@ -39,6 +39,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeFieldAggregator);
 
 vtkTreeFieldAggregator::vtkTreeFieldAggregator()
@@ -233,3 +234,4 @@ void vtkTreeFieldAggregator::SetDoubleValue(vtkAbstractArray* arr, vtkIdType id,
     vtkArrayDownCast<vtkStringArray>(arr)->SetValue(id, vtkVariant(value).ToString());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkTreeFieldAggregator.h b/Infovis/Core/vtkTreeFieldAggregator.h
index 7688a888f7d9fb43c922a18d91a09ca5d9187382..6199b646b9800d329ec4711f8b67baac8fa59db0 100644
--- a/Infovis/Core/vtkTreeFieldAggregator.h
+++ b/Infovis/Core/vtkTreeFieldAggregator.h
@@ -35,12 +35,13 @@
 #ifndef vtkTreeFieldAggregator_h
 #define vtkTreeFieldAggregator_h
 
-class vtkPoints;
-class vtkTree;
-
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
+class vtkPoints;
+class vtkTree;
+
 class VTKINFOVISCORE_EXPORT vtkTreeFieldAggregator : public vtkTreeAlgorithm
 {
 public:
@@ -101,4 +102,5 @@ private:
   static void SetDoubleValue(vtkAbstractArray* arr, vtkIdType id, double value);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkTreeLevelsFilter.cxx b/Infovis/Core/vtkTreeLevelsFilter.cxx
index 9313fae622a6b0f4ed32a275c8947125cb255149..e09556e1178b4f059620fb645f227e1f1d275a06 100644
--- a/Infovis/Core/vtkTreeLevelsFilter.cxx
+++ b/Infovis/Core/vtkTreeLevelsFilter.cxx
@@ -33,6 +33,7 @@
 #include "vtkGraph.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeLevelsFilter);
 
 vtkTreeLevelsFilter::vtkTreeLevelsFilter() = default;
@@ -88,3 +89,4 @@ void vtkTreeLevelsFilter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkTreeLevelsFilter.h b/Infovis/Core/vtkTreeLevelsFilter.h
index 926d9ab1f388b3fd7de21cbd376c66592473d5ed..c5cdc8e0fde5becf9aab62082d12a21c452a94ac 100644
--- a/Infovis/Core/vtkTreeLevelsFilter.h
+++ b/Infovis/Core/vtkTreeLevelsFilter.h
@@ -38,6 +38,7 @@
 #include "vtkInfovisCoreModule.h" // For export macro
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkTreeLevelsFilter : public vtkTreeAlgorithm
 {
 public:
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkTreeLevelsFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkVertexDegree.cxx b/Infovis/Core/vtkVertexDegree.cxx
index 4878c18c6a8b5454c43a57935218348de1bdd935..36a5cc1c669747d8dea464bee86d5a8760f26fab 100644
--- a/Infovis/Core/vtkVertexDegree.cxx
+++ b/Infovis/Core/vtkVertexDegree.cxx
@@ -28,6 +28,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVertexDegree);
 
 vtkVertexDegree::vtkVertexDegree()
@@ -92,3 +93,4 @@ void vtkVertexDegree::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "OutputArrayName: " << (this->OutputArrayName ? this->OutputArrayName : "(none)")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkVertexDegree.h b/Infovis/Core/vtkVertexDegree.h
index b64ea4e0c6e6d8ddced17ef2c2ed86afaed16ce8..625bd36cefcccde8eb5fe64086e81a60af0e2af8 100644
--- a/Infovis/Core/vtkVertexDegree.h
+++ b/Infovis/Core/vtkVertexDegree.h
@@ -33,6 +33,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkVertexDegree : public vtkGraphAlgorithm
 {
 public:
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkVertexDegree&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Core/vtkWordCloud.cxx b/Infovis/Core/vtkWordCloud.cxx
index 2314e86f73822feb17873fde562e3c8cf01fd03f..0758eab43cf3a6499a6c9b94505280d624229d71 100644
--- a/Infovis/Core/vtkWordCloud.cxx
+++ b/Infovis/Core/vtkWordCloud.cxx
@@ -63,6 +63,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWordCloud);
 
 namespace
@@ -868,3 +869,4 @@ void CreateBuiltInStopList(vtkWordCloud::StopWordsContainer& stopList)
 }
 
 //  LocalWords:  FontFileName
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Core/vtkWordCloud.h b/Infovis/Core/vtkWordCloud.h
index 0dab2d5e713553782a0543b986b983b6334217b1..bc599878dba52f9c5f3b63ea59a2fa2fbd009494 100644
--- a/Infovis/Core/vtkWordCloud.h
+++ b/Infovis/Core/vtkWordCloud.h
@@ -178,6 +178,7 @@
  * StopWords, SkippedWords and KeptWords.
 */
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISCORE_EXPORT vtkWordCloud : public vtkImageAlgorithm
 {
 public:
@@ -629,6 +630,7 @@ private:
     int x, y;
   };
 };
+VTK_ABI_NAMESPACE_END
 #endif
 
 //  LocalWords:  vtkNamedColors SetMaskColorName
diff --git a/Infovis/Layout/vtkArcParallelEdgeStrategy.cxx b/Infovis/Layout/vtkArcParallelEdgeStrategy.cxx
index 39206d2c449e06412574c38552187a22663e2db6..10b9653d21421dba8a3325775b71301b93e6a0e6 100644
--- a/Infovis/Layout/vtkArcParallelEdgeStrategy.cxx
+++ b/Infovis/Layout/vtkArcParallelEdgeStrategy.cxx
@@ -32,6 +32,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkArcParallelEdgeStrategy);
 
 vtkArcParallelEdgeStrategy::vtkArcParallelEdgeStrategy()
@@ -266,3 +267,4 @@ void vtkArcParallelEdgeStrategy::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "NumberOfSubdivisions: " << this->NumberOfSubdivisions << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkArcParallelEdgeStrategy.h b/Infovis/Layout/vtkArcParallelEdgeStrategy.h
index 09db828c5665c1c6c3aeb3e889f6f7cd849430c2..b49b32cb757b3f516193ebb7c2f4f1f13a1b96ca 100644
--- a/Infovis/Layout/vtkArcParallelEdgeStrategy.h
+++ b/Infovis/Layout/vtkArcParallelEdgeStrategy.h
@@ -31,6 +31,7 @@
 #include "vtkEdgeLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 
 class VTKINFOVISLAYOUT_EXPORT vtkArcParallelEdgeStrategy : public vtkEdgeLayoutStrategy
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkArcParallelEdgeStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkAreaLayout.cxx b/Infovis/Layout/vtkAreaLayout.cxx
index 3bb160b5860680bc1a74157637d6898c6f50bfe9..c3be776ccf12152eb5d828972384d01ff47b1a3c 100644
--- a/Infovis/Layout/vtkAreaLayout.cxx
+++ b/Infovis/Layout/vtkAreaLayout.cxx
@@ -36,6 +36,7 @@
 #include "vtkTreeDFSIterator.h"
 #include "vtkTreeFieldAggregator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAreaLayout);
 vtkCxxSetObjectMacro(vtkAreaLayout, LayoutStrategy, vtkAreaLayoutStrategy);
 
@@ -191,3 +192,4 @@ vtkMTimeType vtkAreaLayout::GetMTime()
   }
   return mTime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkAreaLayout.h b/Infovis/Layout/vtkAreaLayout.h
index d5f96703c6012d2f04acd07bdd89bf59ec15eb8d..6e87aca47776385d3a171dbdb8cc3cc415a92490 100644
--- a/Infovis/Layout/vtkAreaLayout.h
+++ b/Infovis/Layout/vtkAreaLayout.h
@@ -41,6 +41,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAreaLayoutStrategy;
 
 class VTKINFOVISLAYOUT_EXPORT vtkAreaLayout : public vtkTreeAlgorithm
@@ -120,4 +121,5 @@ private:
   void operator=(const vtkAreaLayout&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkAreaLayoutStrategy.cxx b/Infovis/Layout/vtkAreaLayoutStrategy.cxx
index 1d3d9f2116e19733d585bb26f2530cea0e91b8f6..fda46afd064b296ee700158e02960cf7577179f5 100644
--- a/Infovis/Layout/vtkAreaLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkAreaLayoutStrategy.cxx
@@ -22,6 +22,7 @@
 
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkAreaLayoutStrategy::vtkAreaLayoutStrategy()
 {
   this->ShrinkPercentage = 0.0;
@@ -41,3 +42,4 @@ void vtkAreaLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "ShrinkPercentage: " << this->ShrinkPercentage << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkAreaLayoutStrategy.h b/Infovis/Layout/vtkAreaLayoutStrategy.h
index 33498ad059d6cc79404ce1bae27579c0c0f83d2c..c24ed410c32ad717e3495f6794d9334f5cea6da4 100644
--- a/Infovis/Layout/vtkAreaLayoutStrategy.h
+++ b/Infovis/Layout/vtkAreaLayoutStrategy.h
@@ -41,6 +41,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTree;
 class vtkDataArray;
 
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkAreaLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkAssignCoordinates.cxx b/Infovis/Layout/vtkAssignCoordinates.cxx
index 074129438de4ea8334fa496c10940deb903de738..6b89ee4e1cd4003ecadc6189de95a551f33a8564 100644
--- a/Infovis/Layout/vtkAssignCoordinates.cxx
+++ b/Infovis/Layout/vtkAssignCoordinates.cxx
@@ -29,6 +29,7 @@
 #include "vtkPointSet.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAssignCoordinates);
 
 vtkAssignCoordinates::vtkAssignCoordinates()
@@ -196,3 +197,4 @@ void vtkAssignCoordinates::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Jitter: " << (this->Jitter ? "True" : "False") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkAssignCoordinates.h b/Infovis/Layout/vtkAssignCoordinates.h
index 5bdf74d7edf085090c8869ee454cc2454adb42d9..ffabd7f874e0d7d09779e2759dc9357fb0ac5a07 100644
--- a/Infovis/Layout/vtkAssignCoordinates.h
+++ b/Infovis/Layout/vtkAssignCoordinates.h
@@ -34,6 +34,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkPassInputTypeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkAssignCoordinates : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkAssignCoordinates&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkAssignCoordinatesLayoutStrategy.cxx b/Infovis/Layout/vtkAssignCoordinatesLayoutStrategy.cxx
index 96757126fa148e379a99fa448e86c0d233d20fde..f4002060792a692681d161d718ebee14f9ec9512 100644
--- a/Infovis/Layout/vtkAssignCoordinatesLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkAssignCoordinatesLayoutStrategy.cxx
@@ -33,6 +33,7 @@
 #include "vtkPoints.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAssignCoordinatesLayoutStrategy);
 
 vtkAssignCoordinatesLayoutStrategy::vtkAssignCoordinatesLayoutStrategy()
@@ -83,3 +84,4 @@ void vtkAssignCoordinatesLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkAssignCoordinatesLayoutStrategy.h b/Infovis/Layout/vtkAssignCoordinatesLayoutStrategy.h
index 87902fefe8957e1bca3432270e709e39e5fc7afd..328a286ced5fcc3de419a4f653c4d6019d1dcafc 100644
--- a/Infovis/Layout/vtkAssignCoordinatesLayoutStrategy.h
+++ b/Infovis/Layout/vtkAssignCoordinatesLayoutStrategy.h
@@ -32,6 +32,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkSmartPointer.h"        // For SP ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAssignCoordinates;
 
 class VTKINFOVISLAYOUT_EXPORT vtkAssignCoordinatesLayoutStrategy : public vtkGraphLayoutStrategy
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkAssignCoordinatesLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkAttributeClustering2DLayoutStrategy.cxx b/Infovis/Layout/vtkAttributeClustering2DLayoutStrategy.cxx
index 99c554004fb29df33988a65a4168f0bc2abf1c7a..5018b6945d7a408d0b99740882b81c78be931b2e 100644
--- a/Infovis/Layout/vtkAttributeClustering2DLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkAttributeClustering2DLayoutStrategy.cxx
@@ -44,6 +44,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAttributeClustering2DLayoutStrategy::Internals
 {
 public:
@@ -662,3 +663,4 @@ void vtkAttributeClustering2DLayoutStrategy::PrintSelf(ostream& os, vtkIndent in
   os << indent << "VertexAttribute: " << (this->VertexAttribute ? this->VertexAttribute : "(none)")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkAttributeClustering2DLayoutStrategy.h b/Infovis/Layout/vtkAttributeClustering2DLayoutStrategy.h
index 6d50700717f0daa5372d0c09aea2b0cbad59f2ce..d799a4b1a5bdcc64d39e24654087cee576b00e18 100644
--- a/Infovis/Layout/vtkAttributeClustering2DLayoutStrategy.h
+++ b/Infovis/Layout/vtkAttributeClustering2DLayoutStrategy.h
@@ -38,6 +38,7 @@
 
 #include "vtkSmartPointer.h" // Required for smart pointer internal ivars.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFastSplatter;
 class vtkImageData;
 class vtkIntArray;
@@ -186,4 +187,5 @@ private:
   void operator=(const vtkAttributeClustering2DLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkBoxLayoutStrategy.cxx b/Infovis/Layout/vtkBoxLayoutStrategy.cxx
index dd7f35ae6203c66c7326292edc8f3769ba415007..16a83372468d7203d37a7500c4319283b50f813b 100644
--- a/Infovis/Layout/vtkBoxLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkBoxLayoutStrategy.cxx
@@ -35,6 +35,7 @@
 #include "vtkTree.h"
 #include "vtkTreeDFSIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoxLayoutStrategy);
 
 vtkBoxLayoutStrategy::vtkBoxLayoutStrategy() = default;
@@ -134,3 +135,4 @@ void vtkBoxLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkBoxLayoutStrategy.h b/Infovis/Layout/vtkBoxLayoutStrategy.h
index 044bdfc9639f9d5dc990f3430f691b8b2a4a60f0..f9d242a5614206ab668e48db8636dd3eed9cca61 100644
--- a/Infovis/Layout/vtkBoxLayoutStrategy.h
+++ b/Infovis/Layout/vtkBoxLayoutStrategy.h
@@ -35,6 +35,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkTreeMapLayoutStrategy.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkBoxLayoutStrategy : public vtkTreeMapLayoutStrategy
 {
 public:
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkBoxLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkCirclePackFrontChainLayoutStrategy.cxx b/Infovis/Layout/vtkCirclePackFrontChainLayoutStrategy.cxx
index 1b3e74ad7bb93c8d58ef2ec96ebbeccdb1b6d20e..ef613ada604f762bb447f35a7c59485cb3882a0b 100644
--- a/Infovis/Layout/vtkCirclePackFrontChainLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkCirclePackFrontChainLayoutStrategy.cxx
@@ -34,6 +34,7 @@
 #include <list>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCirclePackFrontChainLayoutStrategy);
 
 class vtkCirclePackFrontChainLayoutStrategyImplementation
@@ -629,3 +630,4 @@ void vtkCirclePackFrontChainLayoutStrategy::PrintSelf(ostream& os, vtkIndent ind
   os << indent << "Width: " << this->Width << endl;
   os << indent << "Height: " << this->Height << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkCirclePackFrontChainLayoutStrategy.h b/Infovis/Layout/vtkCirclePackFrontChainLayoutStrategy.h
index 729996fca3b35d7eba00466f5ef412c92766b2ca..fc842ce27e09e0fc9354a9e9de8fd6be33e9925d 100644
--- a/Infovis/Layout/vtkCirclePackFrontChainLayoutStrategy.h
+++ b/Infovis/Layout/vtkCirclePackFrontChainLayoutStrategy.h
@@ -48,6 +48,7 @@
 #include "vtkCirclePackLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCirclePackFrontChainLayoutStrategyImplementation;
 
 class VTKINFOVISLAYOUT_EXPORT vtkCirclePackFrontChainLayoutStrategy
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkCirclePackFrontChainLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkCirclePackLayout.cxx b/Infovis/Layout/vtkCirclePackLayout.cxx
index 68be3c377f39392b90aa99e804e2f92f24b4faae..07c0ea4d96e29063edf5488027cb79cc9037c88f 100644
--- a/Infovis/Layout/vtkCirclePackLayout.cxx
+++ b/Infovis/Layout/vtkCirclePackLayout.cxx
@@ -35,6 +35,7 @@
 #include "vtkTree.h"
 #include "vtkTreeDFSIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCirclePackLayout);
 
 vtkCirclePackLayout::vtkCirclePackLayout()
@@ -272,3 +273,4 @@ vtkMTimeType vtkCirclePackLayout::GetMTime()
   }
   return mTime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkCirclePackLayout.h b/Infovis/Layout/vtkCirclePackLayout.h
index 46ca78dd7a1105ea88841041c1ea39749db26d7a..2dd44022746b9364ca4e82cb7f9d6b881202da39 100644
--- a/Infovis/Layout/vtkCirclePackLayout.h
+++ b/Infovis/Layout/vtkCirclePackLayout.h
@@ -48,6 +48,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCirclePackLayoutStrategy;
 class vtkDoubleArray;
 class vtkDataArray;
@@ -123,4 +124,5 @@ private:
   void prepareSizeArray(vtkDoubleArray* mySizeArray, vtkTree* tree);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkCirclePackLayoutStrategy.cxx b/Infovis/Layout/vtkCirclePackLayoutStrategy.cxx
index 4108234681cbdcb6ea73b738b5d17792f9b614bb..ddd338c61fcd95923c8f68db3ca110612a90969b 100644
--- a/Infovis/Layout/vtkCirclePackLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkCirclePackLayoutStrategy.cxx
@@ -22,6 +22,7 @@
 
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCirclePackLayoutStrategy::vtkCirclePackLayoutStrategy() = default;
 
 vtkCirclePackLayoutStrategy::~vtkCirclePackLayoutStrategy() = default;
@@ -30,3 +31,4 @@ void vtkCirclePackLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkCirclePackLayoutStrategy.h b/Infovis/Layout/vtkCirclePackLayoutStrategy.h
index 001dadec93618aa4b8fc6555e32f3f14ad29c62f..1c365f8ac5a687c5958d058e9db7b9313dc7451f 100644
--- a/Infovis/Layout/vtkCirclePackLayoutStrategy.h
+++ b/Infovis/Layout/vtkCirclePackLayoutStrategy.h
@@ -42,6 +42,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTree;
 class vtkDataArray;
 
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkCirclePackLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkCirclePackToPolyData.cxx b/Infovis/Layout/vtkCirclePackToPolyData.cxx
index 67f9563533f37577be000b8ad04fea31998bdcbd..83eaa16d455c19aa951ee39b9f6a21897b8c2176 100644
--- a/Infovis/Layout/vtkCirclePackToPolyData.cxx
+++ b/Infovis/Layout/vtkCirclePackToPolyData.cxx
@@ -37,6 +37,7 @@
 
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCirclePackToPolyData);
 
 vtkCirclePackToPolyData::vtkCirclePackToPolyData()
@@ -136,3 +137,4 @@ void vtkCirclePackToPolyData::CreateCircle(const double& x, const double& y, con
   polyData->SetPolys(cells);
   polyData->SetPoints(points);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkCirclePackToPolyData.h b/Infovis/Layout/vtkCirclePackToPolyData.h
index 7e20362a8f07757fc28dc6c5e3d1ed2f73a5a80e..055b6be0905741089f1954438c9f586bb25873ca 100644
--- a/Infovis/Layout/vtkCirclePackToPolyData.h
+++ b/Infovis/Layout/vtkCirclePackToPolyData.h
@@ -34,6 +34,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkCirclePackToPolyData : public vtkPolyDataAlgorithm
 {
 public:
@@ -79,4 +80,5 @@ private:
     const int& resolution, vtkPolyData* polyData);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkCircularLayoutStrategy.cxx b/Infovis/Layout/vtkCircularLayoutStrategy.cxx
index 792504ef320d60ba7af9a26e0088fa2f22e69c0e..ac89e40e8c3bd08ca37a96c24d26c337f615a824 100644
--- a/Infovis/Layout/vtkCircularLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkCircularLayoutStrategy.cxx
@@ -25,6 +25,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCircularLayoutStrategy);
 
 vtkCircularLayoutStrategy::vtkCircularLayoutStrategy() = default;
@@ -50,3 +51,4 @@ void vtkCircularLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkCircularLayoutStrategy.h b/Infovis/Layout/vtkCircularLayoutStrategy.h
index 4f6bd41085d0202d9a6d609ec8901f23b0edbb9f..d01df55fde4292361346517653d18925b14c97d7 100644
--- a/Infovis/Layout/vtkCircularLayoutStrategy.h
+++ b/Infovis/Layout/vtkCircularLayoutStrategy.h
@@ -31,6 +31,7 @@
 #include "vtkGraphLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkCircularLayoutStrategy : public vtkGraphLayoutStrategy
 {
 public:
@@ -53,4 +54,5 @@ private:
   void operator=(const vtkCircularLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkClustering2DLayoutStrategy.cxx b/Infovis/Layout/vtkClustering2DLayoutStrategy.cxx
index 72c9c29dcf391bbbd41368aebb049704df99eaf4..080041e1c239d95f45eded27df343101c2c4152c 100644
--- a/Infovis/Layout/vtkClustering2DLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkClustering2DLayoutStrategy.cxx
@@ -42,6 +42,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClustering2DLayoutStrategy);
 
 // Cool-down function.
@@ -614,3 +615,4 @@ void vtkClustering2DLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EdgeWeightField: " << (this->EdgeWeightField ? this->EdgeWeightField : "(none)")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkClustering2DLayoutStrategy.h b/Infovis/Layout/vtkClustering2DLayoutStrategy.h
index 769686ef4c0dce505d2f4b16acf35c3b55e40e00..caba786199c665c957704bdec4d4213e0e5d571e 100644
--- a/Infovis/Layout/vtkClustering2DLayoutStrategy.h
+++ b/Infovis/Layout/vtkClustering2DLayoutStrategy.h
@@ -38,6 +38,7 @@
 
 #include "vtkSmartPointer.h" // Required for smart pointer internal ivars.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFastSplatter;
 class vtkImageData;
 class vtkIntArray;
@@ -188,4 +189,5 @@ private:
   void operator=(const vtkClustering2DLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkCommunity2DLayoutStrategy.cxx b/Infovis/Layout/vtkCommunity2DLayoutStrategy.cxx
index f56b487035141163f6e29f5692699519f324b0af..71f66d798aa575d7fddbc1aed83c3bd58b1d350b 100644
--- a/Infovis/Layout/vtkCommunity2DLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkCommunity2DLayoutStrategy.cxx
@@ -42,6 +42,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCommunity2DLayoutStrategy);
 
 // Cool-down function.
@@ -606,3 +607,4 @@ void vtkCommunity2DLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
      << endl;
   os << indent << "CommunityStrength: " << this->CommunityStrength << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkCommunity2DLayoutStrategy.h b/Infovis/Layout/vtkCommunity2DLayoutStrategy.h
index 92dc43a3c1dbf45c2d378588915870675a1fd03b..716468e63b3ddc54d2aa9e84e1c6060456640fcd 100644
--- a/Infovis/Layout/vtkCommunity2DLayoutStrategy.h
+++ b/Infovis/Layout/vtkCommunity2DLayoutStrategy.h
@@ -40,6 +40,7 @@
 
 #include "vtkSmartPointer.h" // Required for smart pointer internal ivars.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFastSplatter;
 class vtkImageData;
 class vtkFloatArray;
@@ -209,4 +210,5 @@ private:
   void operator=(const vtkCommunity2DLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkConeLayoutStrategy.cxx b/Infovis/Layout/vtkConeLayoutStrategy.cxx
index c32e9b4bc3177863d1975e2879c1d7c6239e5e1b..6995933e6e65d06ce99c4f098723dd56d5d03ecd 100644
--- a/Infovis/Layout/vtkConeLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkConeLayoutStrategy.cxx
@@ -32,6 +32,7 @@ the U.S. Government retains certain rights in this software.
 #include "vtkSmartPointer.h"
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkConeLayoutStrategy);
 
 vtkConeLayoutStrategy::vtkConeLayoutStrategy()
@@ -283,3 +284,4 @@ void vtkConeLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Compactness: " << this->Compactness << endl;
   os << indent << "Compression: " << this->Compression << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkConeLayoutStrategy.h b/Infovis/Layout/vtkConeLayoutStrategy.h
index 4de39691565d368f3f149b645ddc95e969b3fb0a..e8e4200f9f585dccb347d69d51df9b50fa5ec422 100644
--- a/Infovis/Layout/vtkConeLayoutStrategy.h
+++ b/Infovis/Layout/vtkConeLayoutStrategy.h
@@ -49,6 +49,7 @@
 #include "vtkGraphLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 
 class VTKINFOVISLAYOUT_EXPORT vtkConeLayoutStrategy : public vtkGraphLayoutStrategy
@@ -135,4 +136,5 @@ private:
   void operator=(const vtkConeLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkConstrained2DLayoutStrategy.cxx b/Infovis/Layout/vtkConstrained2DLayoutStrategy.cxx
index 8f61d1f55ad79378791090bd6626e04cb29d824b..0e7e4d9b4ac3df23089efc5f8f79c91bae0b608f 100644
--- a/Infovis/Layout/vtkConstrained2DLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkConstrained2DLayoutStrategy.cxx
@@ -42,6 +42,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkConstrained2DLayoutStrategy);
 
 // Cool-down function.
@@ -566,3 +567,4 @@ void vtkConstrained2DLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "InputArrayName: " << (this->InputArrayName ? this->InputArrayName : "(none)")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkConstrained2DLayoutStrategy.h b/Infovis/Layout/vtkConstrained2DLayoutStrategy.h
index bf9e071d43b948f0dc26ac712e75770b41c84447..674ad0eb4ec817154caf562ac5e6e391bbcb4b6e 100644
--- a/Infovis/Layout/vtkConstrained2DLayoutStrategy.h
+++ b/Infovis/Layout/vtkConstrained2DLayoutStrategy.h
@@ -44,6 +44,7 @@
 
 #include "vtkSmartPointer.h" // Required for smart pointer internal ivars.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFastSplatter;
 class vtkImageData;
 class vtkFloatArray;
@@ -199,4 +200,5 @@ private:
   void operator=(const vtkConstrained2DLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkCosmicTreeLayoutStrategy.cxx b/Infovis/Layout/vtkCosmicTreeLayoutStrategy.cxx
index d17fa54cbe025bbfd73a9153bb63611f2862d5a7..a111e4721872c732ad66a05e2f2e3216186ef094 100644
--- a/Infovis/Layout/vtkCosmicTreeLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkCosmicTreeLayoutStrategy.cxx
@@ -22,6 +22,7 @@
 // Define to print debug showing convergence (or lack thereof) of loop to find enclosing radius, Re
 #undef VTK_COSMIC_DBG
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCosmicTreeLayoutStrategy);
 
 /// Represent a circle to be placed
@@ -564,3 +565,4 @@ vtkDoubleArray* vtkCosmicTreeLayoutStrategy::CreateScaleFactors(vtkIdType numVer
   scale->SetName("TreeScaleFactor");
   return scale;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkCosmicTreeLayoutStrategy.h b/Infovis/Layout/vtkCosmicTreeLayoutStrategy.h
index c22c6656b95e46ca50e6439a37889fe7ab177545..08d1e1bdfaaa83ce91ebd8d6ad6dc0196e88f81d 100644
--- a/Infovis/Layout/vtkCosmicTreeLayoutStrategy.h
+++ b/Infovis/Layout/vtkCosmicTreeLayoutStrategy.h
@@ -33,6 +33,7 @@
 #include "vtkGraphLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkDataArray;
 class vtkPoints;
@@ -160,4 +161,5 @@ private:
   void operator=(const vtkCosmicTreeLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCosmicTreeLayoutStrategy_h
diff --git a/Infovis/Layout/vtkEdgeLayout.cxx b/Infovis/Layout/vtkEdgeLayout.cxx
index 5ded459e3f6bf64507700b132110ffe85cc59895..00ddf4dfdd81c269048449d2db776d2c83d61073 100644
--- a/Infovis/Layout/vtkEdgeLayout.cxx
+++ b/Infovis/Layout/vtkEdgeLayout.cxx
@@ -32,6 +32,7 @@
 #include "vtkPointData.h"
 #include "vtkPoints.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEdgeLayout);
 
 //------------------------------------------------------------------------------
@@ -171,3 +172,4 @@ void vtkEdgeLayout::PrintSelf(ostream& os, vtkIndent indent)
     this->InternalGraph->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkEdgeLayout.h b/Infovis/Layout/vtkEdgeLayout.h
index a7586279842028a329fb1b22596d8c3feb09f586..4c200cb0e22937fd6dc3e70a0c8ea0717f8150f4 100644
--- a/Infovis/Layout/vtkEdgeLayout.h
+++ b/Infovis/Layout/vtkEdgeLayout.h
@@ -32,6 +32,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEdgeLayoutStrategy;
 class vtkEventForwarderCommand;
 
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkEdgeLayout&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkEdgeLayoutStrategy.cxx b/Infovis/Layout/vtkEdgeLayoutStrategy.cxx
index cd12edd8c7bb4951371438c680b0e05da486b2c3..ece943fe16fb1951d986350aeea9eeb31bd19854 100644
--- a/Infovis/Layout/vtkEdgeLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkEdgeLayoutStrategy.cxx
@@ -20,6 +20,7 @@
 
 #include "vtkGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkEdgeLayoutStrategy::SetGraph(vtkGraph* graph)
 {
   // This method is a cut and paste of vtkCxxSetObjectMacro
@@ -65,3 +66,4 @@ void vtkEdgeLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EdgeWeightArrayName: "
      << (this->EdgeWeightArrayName ? this->EdgeWeightArrayName : "(none)") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkEdgeLayoutStrategy.h b/Infovis/Layout/vtkEdgeLayoutStrategy.h
index 23c0d59a87dbdbb7c76de3e185c22ee16e401064..deb0ac517290320ef5f26f15f02bf2dd628ffa48 100644
--- a/Infovis/Layout/vtkEdgeLayoutStrategy.h
+++ b/Infovis/Layout/vtkEdgeLayoutStrategy.h
@@ -31,6 +31,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 
 class VTKINFOVISLAYOUT_EXPORT vtkEdgeLayoutStrategy : public vtkObject
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkEdgeLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkFast2DLayoutStrategy.cxx b/Infovis/Layout/vtkFast2DLayoutStrategy.cxx
index 15a7ddfcfd08806b89160d88e2f07addc20be3d9..36a9b072f17b42eaf2320616315e0bb47953276c 100644
--- a/Infovis/Layout/vtkFast2DLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkFast2DLayoutStrategy.cxx
@@ -42,6 +42,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFast2DLayoutStrategy);
 
 // Cool-down function.
@@ -566,3 +567,4 @@ void vtkFast2DLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EdgeWeightField: " << (this->EdgeWeightField ? this->EdgeWeightField : "(none)")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkFast2DLayoutStrategy.h b/Infovis/Layout/vtkFast2DLayoutStrategy.h
index 5d15bbafd33a8b7d4719891b484129d2a173655f..e10089f326385f198c7a3249d622037d4a71961d 100644
--- a/Infovis/Layout/vtkFast2DLayoutStrategy.h
+++ b/Infovis/Layout/vtkFast2DLayoutStrategy.h
@@ -38,6 +38,7 @@
 
 #include "vtkSmartPointer.h" // Required for smart pointer internal ivars.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFastSplatter;
 class vtkFloatArray;
 class vtkGraphToPolyData;
@@ -184,4 +185,5 @@ private:
   void operator=(const vtkFast2DLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkForceDirectedLayoutStrategy.cxx b/Infovis/Layout/vtkForceDirectedLayoutStrategy.cxx
index 2cb0e0c15cc34e4f5343e2c926bd566b5929e779..ed88edcbd1c5acd57d3d14459320115dbbb4dc41 100644
--- a/Infovis/Layout/vtkForceDirectedLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkForceDirectedLayoutStrategy.cxx
@@ -35,6 +35,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkForceDirectedLayoutStrategy);
 
 vtkForceDirectedLayoutStrategy::vtkForceDirectedLayoutStrategy()
@@ -333,3 +334,4 @@ void vtkForceDirectedLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "RandomInitialPoints: " << (this->RandomInitialPoints ? "On\n" : "Off\n");
   os << indent << "Three Dimensional Layout: " << (this->ThreeDimensionalLayout ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkForceDirectedLayoutStrategy.h b/Infovis/Layout/vtkForceDirectedLayoutStrategy.h
index 957e94686d6458976be83ae3091c6adbb9f84c2c..713e5a40e61173d256412dc444705e5bbb22c735 100644
--- a/Infovis/Layout/vtkForceDirectedLayoutStrategy.h
+++ b/Infovis/Layout/vtkForceDirectedLayoutStrategy.h
@@ -37,6 +37,7 @@
 #include "vtkGraphLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkForceDirectedLayoutStrategy : public vtkGraphLayoutStrategy
 {
 public:
@@ -200,4 +201,5 @@ private:
   void operator=(const vtkForceDirectedLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkGeoEdgeStrategy.cxx b/Infovis/Layout/vtkGeoEdgeStrategy.cxx
index 894c0cd6fea6d4cddb62ae189a01c2c1e8be851a..cb3aafb904fee0a5a54e82c04272bd9bbced1804 100644
--- a/Infovis/Layout/vtkGeoEdgeStrategy.cxx
+++ b/Infovis/Layout/vtkGeoEdgeStrategy.cxx
@@ -37,6 +37,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGeoEdgeStrategy);
 
 vtkGeoEdgeStrategy::vtkGeoEdgeStrategy()
@@ -185,3 +186,4 @@ void vtkGeoEdgeStrategy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ExplodeFactor: " << this->ExplodeFactor << endl;
   os << indent << "NumberOfSubdivisions: " << this->NumberOfSubdivisions << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkGeoEdgeStrategy.h b/Infovis/Layout/vtkGeoEdgeStrategy.h
index 11c51d6f51ce80ed8219abbf88affd89ee719ab7..c80a93a89d51a74f754fbecb0d31fe40336c7fcc 100644
--- a/Infovis/Layout/vtkGeoEdgeStrategy.h
+++ b/Infovis/Layout/vtkGeoEdgeStrategy.h
@@ -33,6 +33,7 @@
 #include "vtkEdgeLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkGeoEdgeStrategy : public vtkEdgeLayoutStrategy
 {
 public:
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkGeoEdgeStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkGeoMath.cxx b/Infovis/Layout/vtkGeoMath.cxx
index 2410ace9b817255410245b24e55c32a29f6ffde3..8fdb39567b9cd3a6258355f3319a88dfeb7ce4e5 100644
--- a/Infovis/Layout/vtkGeoMath.cxx
+++ b/Infovis/Layout/vtkGeoMath.cxx
@@ -23,6 +23,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGeoMath);
 
 //------------------------------------------------------------------------------
@@ -65,3 +66,4 @@ void vtkGeoMath::LongLatAltToRect(double longLatAlt[3], double rect[3])
   rect[1] = cos(theta) * cosPhi * radius;
   rect[0] = -sin(theta) * cosPhi * radius;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkGeoMath.h b/Infovis/Layout/vtkGeoMath.h
index 19d3a4c61439f723c53b548525233b9953a05460..d4afe02fd892e00b204ca2ce7096f45977987076 100644
--- a/Infovis/Layout/vtkGeoMath.h
+++ b/Infovis/Layout/vtkGeoMath.h
@@ -31,6 +31,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkGeoMath : public vtkObject
 {
 public:
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkGeoMath&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkGraphLayout.cxx b/Infovis/Layout/vtkGraphLayout.cxx
index 842051152725d1a702e93b9b58214d67273e655b..2718bc08c7998f3dcf1e88255d587a2c75f93dd8 100644
--- a/Infovis/Layout/vtkGraphLayout.cxx
+++ b/Infovis/Layout/vtkGraphLayout.cxx
@@ -35,6 +35,7 @@
 #include "vtkPoints.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphLayout);
 vtkCxxSetObjectMacro(vtkGraphLayout, Transform, vtkAbstractTransform);
 
@@ -288,3 +289,4 @@ void vtkGraphLayout::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "UseTransform: " << (this->UseTransform ? "True" : "False") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkGraphLayout.h b/Infovis/Layout/vtkGraphLayout.h
index 2b3cd05555b91c2338ef204d35409cd4e9962f6f..0049b28e3eae9ae797304e94880985da118446e0 100644
--- a/Infovis/Layout/vtkGraphLayout.h
+++ b/Infovis/Layout/vtkGraphLayout.h
@@ -37,6 +37,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractTransform;
 class vtkEventForwarderCommand;
 class vtkGraphLayoutStrategy;
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkGraphLayout&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkGraphLayoutStrategy.cxx b/Infovis/Layout/vtkGraphLayoutStrategy.cxx
index 1dd5587ae27069bf9c1a6a77455028d412f0483d..411f10dafad390973fb19969d1abf4cde73d6521 100644
--- a/Infovis/Layout/vtkGraphLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkGraphLayoutStrategy.cxx
@@ -21,6 +21,7 @@
 
 #include "vtkGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkGraphLayoutStrategy::SetGraph(vtkGraph* graph)
 {
   // This method is a cut and paste of vtkCxxSetObjectMacro
@@ -120,3 +121,4 @@ void vtkGraphLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "EdgeWeightField: " << (this->EdgeWeightField ? this->EdgeWeightField : "(none)")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkGraphLayoutStrategy.h b/Infovis/Layout/vtkGraphLayoutStrategy.h
index d7f53ca192163eb3083d202d3b7f1f51d35f6930..718a5501d6664219af74c085048e44ee482c574b 100644
--- a/Infovis/Layout/vtkGraphLayoutStrategy.h
+++ b/Infovis/Layout/vtkGraphLayoutStrategy.h
@@ -40,6 +40,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 
 class VTKINFOVISLAYOUT_EXPORT vtkGraphLayoutStrategy : public vtkObject
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkGraphLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkIncrementalForceLayout.cxx b/Infovis/Layout/vtkIncrementalForceLayout.cxx
index ca921698b795bf66397ef42928ccf6cd8a9e3788..3f90ec2cc5f5d797742c155448a3040b04080fc0 100644
--- a/Infovis/Layout/vtkIncrementalForceLayout.cxx
+++ b/Infovis/Layout/vtkIncrementalForceLayout.cxx
@@ -15,6 +15,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class Quad
 {
 public:
@@ -421,3 +422,4 @@ void vtkIncrementalForceLayout::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkIncrementalForceLayout.h b/Infovis/Layout/vtkIncrementalForceLayout.h
index 571fc12146aaf0256db4ceaefd5f01be2b929550..372ee404e4869a66dca04f038f3ea4bbe2c505e5 100644
--- a/Infovis/Layout/vtkIncrementalForceLayout.h
+++ b/Infovis/Layout/vtkIncrementalForceLayout.h
@@ -34,6 +34,7 @@
 
 #include "vtkVector.h" // For vector ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 
 class VTKINFOVISLAYOUT_EXPORT vtkIncrementalForceLayout : public vtkObject
@@ -156,4 +157,5 @@ private:
   vtkIncrementalForceLayout(const vtkIncrementalForceLayout&) = delete;
   void operator=(const vtkIncrementalForceLayout&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkKCoreLayout.cxx b/Infovis/Layout/vtkKCoreLayout.cxx
index 776f201d32ff5e35e081707017037cb3fe3cb8ce..a98d46094362ab0a9e5d24d04c0c7a1faabd3f91 100644
--- a/Infovis/Layout/vtkKCoreLayout.cxx
+++ b/Infovis/Layout/vtkKCoreLayout.cxx
@@ -45,6 +45,7 @@ using std::endl;
 
 ///////////////////////////////////////////////////////////////////////////////////
 // vtkKCoreLayout
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkKCoreLayout);
 
 // Default Constructor
@@ -356,3 +357,4 @@ int vtkKCoreLayout::RequestData(vtkInformation* vtkNotUsed(request),
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkKCoreLayout.h b/Infovis/Layout/vtkKCoreLayout.h
index f97130f723f51f16176ef729c153a454020c8916..cbeeac47a0a6505efb4d770fddcee4805f248782 100644
--- a/Infovis/Layout/vtkKCoreLayout.h
+++ b/Infovis/Layout/vtkKCoreLayout.h
@@ -56,6 +56,7 @@
 #include "vtkGraphAlgorithm.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkKCoreLayout : public vtkGraphAlgorithm
 {
 public:
@@ -181,4 +182,5 @@ private:
   void operator=(const vtkKCoreLayout&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkPassThroughEdgeStrategy.cxx b/Infovis/Layout/vtkPassThroughEdgeStrategy.cxx
index e2db2fb61202da83638669df63ea29d59920d814..ce48c746968ac30e267a3c54ded63384d5e129ac 100644
--- a/Infovis/Layout/vtkPassThroughEdgeStrategy.cxx
+++ b/Infovis/Layout/vtkPassThroughEdgeStrategy.cxx
@@ -31,6 +31,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPassThroughEdgeStrategy);
 
 vtkPassThroughEdgeStrategy::vtkPassThroughEdgeStrategy() = default;
@@ -43,3 +44,4 @@ void vtkPassThroughEdgeStrategy::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkPassThroughEdgeStrategy.h b/Infovis/Layout/vtkPassThroughEdgeStrategy.h
index 45cfd1ef5c6403067d48d54f717ae44fbd7d92a1..25fa18be70130ffe19f8a08c50c0d5f5f4c9c4d9 100644
--- a/Infovis/Layout/vtkPassThroughEdgeStrategy.h
+++ b/Infovis/Layout/vtkPassThroughEdgeStrategy.h
@@ -31,6 +31,7 @@
 #include "vtkEdgeLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkPassThroughEdgeStrategy : public vtkEdgeLayoutStrategy
 {
 public:
@@ -53,4 +54,5 @@ private:
   void operator=(const vtkPassThroughEdgeStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkPassThroughLayoutStrategy.cxx b/Infovis/Layout/vtkPassThroughLayoutStrategy.cxx
index d020658b2937707a7a571e833cf03910ec9f6763..51e02ab742e4279f75d10a72524d9f62998e8ca6 100644
--- a/Infovis/Layout/vtkPassThroughLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkPassThroughLayoutStrategy.cxx
@@ -22,6 +22,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPassThroughLayoutStrategy);
 
 //------------------------------------------------------------------------------
@@ -45,3 +46,4 @@ void vtkPassThroughLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkPassThroughLayoutStrategy.h b/Infovis/Layout/vtkPassThroughLayoutStrategy.h
index 8088504bedacb5b11a48491b12725abc91643500..863a2eea548b9ec884b33a65a7b445e0e08221e3 100644
--- a/Infovis/Layout/vtkPassThroughLayoutStrategy.h
+++ b/Infovis/Layout/vtkPassThroughLayoutStrategy.h
@@ -33,6 +33,7 @@
 #include "vtkGraphLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkPassThroughLayoutStrategy : public vtkGraphLayoutStrategy
 {
 public:
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkPassThroughLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkPerturbCoincidentVertices.cxx b/Infovis/Layout/vtkPerturbCoincidentVertices.cxx
index 9f8ce49de568eb5721cbe8e82355c73bf958ade6..4d78cc49edc0e90b04dcb7e7c5fa1e7f356d740e 100644
--- a/Infovis/Layout/vtkPerturbCoincidentVertices.cxx
+++ b/Infovis/Layout/vtkPerturbCoincidentVertices.cxx
@@ -37,6 +37,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPerturbCoincidentVertices);
 //------------------------------------------------------------------------------
 vtkPerturbCoincidentVertices::vtkPerturbCoincidentVertices()
@@ -313,3 +314,4 @@ void vtkPerturbCoincidentVertices::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "PerturbFactor: " << this->PerturbFactor << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkPerturbCoincidentVertices.h b/Infovis/Layout/vtkPerturbCoincidentVertices.h
index f103a75a6af0cee2691b19356bec7ec8e2d460c3..03fa1a62f95099041565f288f5cd26cfa6300c2e 100644
--- a/Infovis/Layout/vtkPerturbCoincidentVertices.h
+++ b/Infovis/Layout/vtkPerturbCoincidentVertices.h
@@ -35,6 +35,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkSmartPointer.h"        // for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCoincidentPoints;
 class vtkDataSet;
 
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkPerturbCoincidentVertices&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkRandomLayoutStrategy.cxx b/Infovis/Layout/vtkRandomLayoutStrategy.cxx
index f3402c757fa99f0303505cfa66220334031f0841..f1f41ae04a6706d38c6247e730c8b5a1f59c8e87 100644
--- a/Infovis/Layout/vtkRandomLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkRandomLayoutStrategy.cxx
@@ -32,6 +32,7 @@
 #include "vtkPoints.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRandomLayoutStrategy);
 
 vtkRandomLayoutStrategy::vtkRandomLayoutStrategy()
@@ -118,3 +119,4 @@ void vtkRandomLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Three Dimensional Layout: " << (this->ThreeDimensionalLayout ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkRandomLayoutStrategy.h b/Infovis/Layout/vtkRandomLayoutStrategy.h
index 6fc6cd2c8496d990297f3b0606f5d8783d7d2b51..90c14a97e462593680e17dd81efaf488724b4237 100644
--- a/Infovis/Layout/vtkRandomLayoutStrategy.h
+++ b/Infovis/Layout/vtkRandomLayoutStrategy.h
@@ -35,6 +35,7 @@
 #include "vtkGraphLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkRandomLayoutStrategy : public vtkGraphLayoutStrategy
 {
 public:
@@ -108,4 +109,5 @@ private:
   void operator=(const vtkRandomLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkSimple2DLayoutStrategy.cxx b/Infovis/Layout/vtkSimple2DLayoutStrategy.cxx
index 66bc5821f2073cd1cdb6f46ca401cc6cb647ef3c..8b44bbeeabf4c07c1a1775df2dfe47a592e1cffe 100644
--- a/Infovis/Layout/vtkSimple2DLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkSimple2DLayoutStrategy.cxx
@@ -36,6 +36,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSimple2DLayoutStrategy);
 
 // Cool-down function.
@@ -345,3 +346,4 @@ void vtkSimple2DLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Jitter: " << (this->Jitter ? "True" : "False") << endl;
   os << indent << "RestDistance: " << this->RestDistance << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkSimple2DLayoutStrategy.h b/Infovis/Layout/vtkSimple2DLayoutStrategy.h
index 06f81dc4dae46dd74f237be84fb32fe0a65791af..5c5cad31df14997c1ec063ebed8cc30aeba560a6 100644
--- a/Infovis/Layout/vtkSimple2DLayoutStrategy.h
+++ b/Infovis/Layout/vtkSimple2DLayoutStrategy.h
@@ -38,6 +38,7 @@
 #include "vtkGraphLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 
 class VTKINFOVISLAYOUT_EXPORT vtkSimple2DLayoutStrategy : public vtkGraphLayoutStrategy
@@ -185,4 +186,5 @@ private:
   void operator=(const vtkSimple2DLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkSimple3DCirclesStrategy.cxx b/Infovis/Layout/vtkSimple3DCirclesStrategy.cxx
index 263f0de71443447a89b82a5b1aa584a59fe2bac4..05438defd935fa1305c774ce7f818c4f721a9fa8 100644
--- a/Infovis/Layout/vtkSimple3DCirclesStrategy.cxx
+++ b/Infovis/Layout/vtkSimple3DCirclesStrategy.cxx
@@ -31,6 +31,7 @@
 #include <algorithm> // For min, max, swap, etc.
 #include <list>      // For internal store
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class T>
 bool IsZero(T value)
 {
@@ -663,3 +664,4 @@ void vtkSimple3DCirclesStrategy::Transform(double Local[], double Global[])
   Global[1] = this->Origin[1] + Global[1];
   Global[2] = this->Origin[2] + Global[2];
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkSimple3DCirclesStrategy.h b/Infovis/Layout/vtkSimple3DCirclesStrategy.h
index da16d123e39a061dfdba01b82afd0cc232a01ed0..48b20d37d38d6806fbfd89e21458b6152c5135e6 100644
--- a/Infovis/Layout/vtkSimple3DCirclesStrategy.h
+++ b/Infovis/Layout/vtkSimple3DCirclesStrategy.h
@@ -46,6 +46,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkVariant.h"             // For variant API
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkDirectedGraph;
 class vtkIdTypeArray;
@@ -232,4 +233,5 @@ private:
   void operator=(const vtkSimple3DCirclesStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkSliceAndDiceLayoutStrategy.cxx b/Infovis/Layout/vtkSliceAndDiceLayoutStrategy.cxx
index d882a07636a7e3c5a3fcf3767de3aec649132419..a2a8b76c21aa7ed0a60d4388282a33be318fbd77 100644
--- a/Infovis/Layout/vtkSliceAndDiceLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkSliceAndDiceLayoutStrategy.cxx
@@ -35,6 +35,7 @@
 #include "vtkTree.h"
 #include "vtkTreeDFSIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSliceAndDiceLayoutStrategy);
 
 vtkSliceAndDiceLayoutStrategy::vtkSliceAndDiceLayoutStrategy() = default;
@@ -147,3 +148,4 @@ void vtkSliceAndDiceLayoutStrategy::Layout(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkSliceAndDiceLayoutStrategy.h b/Infovis/Layout/vtkSliceAndDiceLayoutStrategy.h
index 4d6668ae63e82e7008266cb0d07c5c53e006961a..5d873adfa448b30f6d9ec61baf624f33ffe4bfbb 100644
--- a/Infovis/Layout/vtkSliceAndDiceLayoutStrategy.h
+++ b/Infovis/Layout/vtkSliceAndDiceLayoutStrategy.h
@@ -37,6 +37,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkTreeMapLayoutStrategy.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkSliceAndDiceLayoutStrategy : public vtkTreeMapLayoutStrategy
 {
 public:
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkSliceAndDiceLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkSpanTreeLayoutStrategy.cxx b/Infovis/Layout/vtkSpanTreeLayoutStrategy.cxx
index d0457d2312c08445f7007cdd815e67f699cde7f2..87a8cda315b5cc5c5162c387d919b81a8ad5bbb3 100644
--- a/Infovis/Layout/vtkSpanTreeLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkSpanTreeLayoutStrategy.cxx
@@ -41,6 +41,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSpanTreeLayoutStrategy);
 
 vtkSpanTreeLayoutStrategy::vtkSpanTreeLayoutStrategy()
@@ -332,3 +333,4 @@ void vtkSpanTreeLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "DepthFirstSpanningTree: " << (this->DepthFirstSpanningTree ? "On" : "Off")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkSpanTreeLayoutStrategy.h b/Infovis/Layout/vtkSpanTreeLayoutStrategy.h
index 4ff9f4d9eda9a581c1eb633fefa0a87e623ef258..e32dfb03bbfb7fbd6de45ecbd889872c906319ad 100644
--- a/Infovis/Layout/vtkSpanTreeLayoutStrategy.h
+++ b/Infovis/Layout/vtkSpanTreeLayoutStrategy.h
@@ -65,6 +65,7 @@
 #include "vtkGraphLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkSpanTreeLayoutStrategy : public vtkGraphLayoutStrategy
 {
 public:
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkSpanTreeLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkSplineGraphEdges.cxx b/Infovis/Layout/vtkSplineGraphEdges.cxx
index be0e26807fdaf23220e5eb77855b5cc70b25e169..0cb127b6f056e4480cb67f4c4abb82757aaf253f 100644
--- a/Infovis/Layout/vtkSplineGraphEdges.cxx
+++ b/Infovis/Layout/vtkSplineGraphEdges.cxx
@@ -27,6 +27,7 @@
 #include "vtkMath.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSplineGraphEdges);
 vtkCxxSetObjectMacro(vtkSplineGraphEdges, Spline, vtkSpline);
 
@@ -437,3 +438,4 @@ void vtkSplineGraphEdges::PrintSelf(ostream& os, vtkIndent indent)
     this->Spline->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkSplineGraphEdges.h b/Infovis/Layout/vtkSplineGraphEdges.h
index 234e4869b5ec168baf469263e94c3ad48a6b1bbc..f3944ef46e686b800f23710990c140457a7bcdf2 100644
--- a/Infovis/Layout/vtkSplineGraphEdges.h
+++ b/Infovis/Layout/vtkSplineGraphEdges.h
@@ -34,6 +34,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkSmartPointer.h"        // For ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSpline;
 
 class VTKINFOVISLAYOUT_EXPORT vtkSplineGraphEdges : public vtkGraphAlgorithm
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkSplineGraphEdges&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkSquarifyLayoutStrategy.cxx b/Infovis/Layout/vtkSquarifyLayoutStrategy.cxx
index d263cab248b96f4b1be36e9f1323a166b0544837..9606ade4b43bb0d43661327cfdd31728b6ad8fe2 100644
--- a/Infovis/Layout/vtkSquarifyLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkSquarifyLayoutStrategy.cxx
@@ -26,6 +26,7 @@
 #include "vtkPoints.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSquarifyLayoutStrategy);
 
 vtkSquarifyLayoutStrategy::vtkSquarifyLayoutStrategy() = default;
@@ -239,3 +240,4 @@ void vtkSquarifyLayoutStrategy::LayoutChildren(vtkTree* tree, vtkDataArray* coor
       tree, coordsArray, sizeArray, nchildren, parent, cur, restMinX, restMaxX, restMinY, restMaxY);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkSquarifyLayoutStrategy.h b/Infovis/Layout/vtkSquarifyLayoutStrategy.h
index 1e884af788b331d617376008508565255bc008a2..ed529122e013f35091a2738e2eba8522bc976a8b 100644
--- a/Infovis/Layout/vtkSquarifyLayoutStrategy.h
+++ b/Infovis/Layout/vtkSquarifyLayoutStrategy.h
@@ -40,6 +40,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkTreeMapLayoutStrategy.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 
 class VTKINFOVISLAYOUT_EXPORT vtkSquarifyLayoutStrategy : public vtkTreeMapLayoutStrategy
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkSquarifyLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkStackedTreeLayoutStrategy.cxx b/Infovis/Layout/vtkStackedTreeLayoutStrategy.cxx
index 6bfc2a757c7e20d76b139b21e9510a331a13b50d..714a53c3d48b321c180c5154543e4d8f9cd5c5c4 100644
--- a/Infovis/Layout/vtkStackedTreeLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkStackedTreeLayoutStrategy.cxx
@@ -39,6 +39,7 @@
 #include "vtkSmartPointer.h"
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStackedTreeLayoutStrategy);
 
 vtkStackedTreeLayoutStrategy::vtkStackedTreeLayoutStrategy()
@@ -591,3 +592,4 @@ vtkIdType vtkStackedTreeLayoutStrategy::FindVertex(
   }
   return -1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkStackedTreeLayoutStrategy.h b/Infovis/Layout/vtkStackedTreeLayoutStrategy.h
index 490ffc792e146bb81c1a95e7918c9651bb5efe38..4423c26107d405096ed75c662dda1c5bc0d57422 100644
--- a/Infovis/Layout/vtkStackedTreeLayoutStrategy.h
+++ b/Infovis/Layout/vtkStackedTreeLayoutStrategy.h
@@ -40,6 +40,7 @@
 #include "vtkAreaLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTree;
 class vtkDataArray;
 
@@ -161,4 +162,5 @@ private:
   void operator=(const vtkStackedTreeLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkTreeLayoutStrategy.cxx b/Infovis/Layout/vtkTreeLayoutStrategy.cxx
index 01270eb9a860526c286f9455fa9ac6dd531c94ba..ddbe88d0cd71cbb6b372a689a9f323b1ff5abe80 100644
--- a/Infovis/Layout/vtkTreeLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkTreeLayoutStrategy.cxx
@@ -37,6 +37,7 @@
 #include "vtkTree.h"
 #include "vtkTreeDFSIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeLayoutStrategy);
 
 vtkTreeLayoutStrategy::vtkTreeLayoutStrategy()
@@ -401,3 +402,4 @@ void vtkTreeLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
      << endl;
   os << indent << "ReverseEdges: " << this->ReverseEdges << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkTreeLayoutStrategy.h b/Infovis/Layout/vtkTreeLayoutStrategy.h
index 0c78523b02234fe80a3d5e9c3851644bcc1394c5..2bf489740d7f8bfb1cc9ed106b5774385f703281 100644
--- a/Infovis/Layout/vtkTreeLayoutStrategy.h
+++ b/Infovis/Layout/vtkTreeLayoutStrategy.h
@@ -46,6 +46,7 @@
 #include "vtkGraphLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkTreeLayoutStrategy : public vtkGraphLayoutStrategy
 {
 public:
@@ -147,4 +148,5 @@ private:
   void operator=(const vtkTreeLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkTreeMapLayout.cxx b/Infovis/Layout/vtkTreeMapLayout.cxx
index 1b92dad0b514d0c7294375fff7273550536a0e25..1b18239c145ecb366fef7c09547dddaa22353202 100644
--- a/Infovis/Layout/vtkTreeMapLayout.cxx
+++ b/Infovis/Layout/vtkTreeMapLayout.cxx
@@ -33,6 +33,7 @@
 #include "vtkTree.h"
 #include "vtkTreeMapLayoutStrategy.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeMapLayout);
 
 vtkTreeMapLayout::vtkTreeMapLayout()
@@ -211,3 +212,4 @@ vtkMTimeType vtkTreeMapLayout::GetMTime()
   }
   return mTime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkTreeMapLayout.h b/Infovis/Layout/vtkTreeMapLayout.h
index a8a84f644eb4b1b97d7a4fa1ade216d975cc6f72..30d9cd255e89a4d34b891c6e32f510cfc43abe85 100644
--- a/Infovis/Layout/vtkTreeMapLayout.h
+++ b/Infovis/Layout/vtkTreeMapLayout.h
@@ -46,6 +46,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkTreeAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTreeMapLayoutStrategy;
 
 class VTKINFOVISLAYOUT_EXPORT vtkTreeMapLayout : public vtkTreeAlgorithm
@@ -112,4 +113,5 @@ private:
   void operator=(const vtkTreeMapLayout&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkTreeMapLayoutStrategy.cxx b/Infovis/Layout/vtkTreeMapLayoutStrategy.cxx
index e314a2128f74fa7a8a1766615868926bbe7174ba..04a8c5cd85c5e76e0ae64c804f253e72e88cd47f 100644
--- a/Infovis/Layout/vtkTreeMapLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkTreeMapLayoutStrategy.cxx
@@ -24,6 +24,7 @@
 #include "vtkFloatArray.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkTreeMapLayoutStrategy::vtkTreeMapLayoutStrategy() = default;
 
 vtkTreeMapLayoutStrategy::~vtkTreeMapLayoutStrategy() = default;
@@ -93,3 +94,4 @@ vtkIdType vtkTreeMapLayoutStrategy::FindVertex(vtkTree* otree, vtkDataArray* arr
 
   return vertex;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkTreeMapLayoutStrategy.h b/Infovis/Layout/vtkTreeMapLayoutStrategy.h
index 7ddb50c531243f95cdd49ef5432f4991994a2ad8..4cbe1dbfa3ce6c358d1e312e85c65e410d2cb0e0 100644
--- a/Infovis/Layout/vtkTreeMapLayoutStrategy.h
+++ b/Infovis/Layout/vtkTreeMapLayoutStrategy.h
@@ -41,6 +41,7 @@
 #include "vtkAreaLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTree;
 class vtkDataArray;
 
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkTreeMapLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkTreeMapToPolyData.cxx b/Infovis/Layout/vtkTreeMapToPolyData.cxx
index 26f3ada2ace317c706ddc12781469ad163d9c92d..d27dd5d31f2f0e39593717e4f07c9c12a8119ce6 100644
--- a/Infovis/Layout/vtkTreeMapToPolyData.cxx
+++ b/Infovis/Layout/vtkTreeMapToPolyData.cxx
@@ -30,6 +30,7 @@
 #include "vtkPointData.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeMapToPolyData);
 
 vtkTreeMapToPolyData::vtkTreeMapToPolyData()
@@ -154,3 +155,4 @@ void vtkTreeMapToPolyData::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "LevelDeltaZ: " << this->LevelDeltaZ << endl;
   os << indent << "AddNormals: " << this->AddNormals << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkTreeMapToPolyData.h b/Infovis/Layout/vtkTreeMapToPolyData.h
index 6122ee9ac6b2d319c77480d362a70640535a3f74..7a37e232afa0dc57457b68c50711d1fb796c220c 100644
--- a/Infovis/Layout/vtkTreeMapToPolyData.h
+++ b/Infovis/Layout/vtkTreeMapToPolyData.h
@@ -33,6 +33,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkTreeMapToPolyData : public vtkPolyDataAlgorithm
 {
 public:
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkTreeMapToPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkTreeOrbitLayoutStrategy.cxx b/Infovis/Layout/vtkTreeOrbitLayoutStrategy.cxx
index aa85fc9d99302e633a57d5e43a73872fa0ed9379..46a11911804341ce0db28d9fd876f87216e7c4dd 100644
--- a/Infovis/Layout/vtkTreeOrbitLayoutStrategy.cxx
+++ b/Infovis/Layout/vtkTreeOrbitLayoutStrategy.cxx
@@ -35,6 +35,7 @@
 #include "vtkTree.h"
 #include "vtkTreeDFSIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeOrbitLayoutStrategy);
 
 vtkTreeOrbitLayoutStrategy::vtkTreeOrbitLayoutStrategy()
@@ -191,3 +192,4 @@ void vtkTreeOrbitLayoutStrategy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "LeafSpacing: " << this->LeafSpacing << endl;
   os << indent << "ChildRadiusFactor: " << this->ChildRadiusFactor << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkTreeOrbitLayoutStrategy.h b/Infovis/Layout/vtkTreeOrbitLayoutStrategy.h
index f97e7cf1ce4c31e95ec63663a7e9ec3c0ddcccc5..4f745d8231547774f4b37ff71733f97f18624c42 100644
--- a/Infovis/Layout/vtkTreeOrbitLayoutStrategy.h
+++ b/Infovis/Layout/vtkTreeOrbitLayoutStrategy.h
@@ -26,6 +26,7 @@
 #include "vtkGraphLayoutStrategy.h"
 #include "vtkInfovisLayoutModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkTree;
 
@@ -88,4 +89,5 @@ private:
   void operator=(const vtkTreeOrbitLayoutStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Infovis/Layout/vtkTreeRingToPolyData.cxx b/Infovis/Layout/vtkTreeRingToPolyData.cxx
index e8146a450718acdfd2bc0b672f3b2c93c66c8e46..6e5c28b1b55c1c852550ba11a6b8279a18bf3f10 100644
--- a/Infovis/Layout/vtkTreeRingToPolyData.cxx
+++ b/Infovis/Layout/vtkTreeRingToPolyData.cxx
@@ -38,6 +38,7 @@
 #include "vtkSmartPointer.h"
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeRingToPolyData);
 
 vtkTreeRingToPolyData::vtkTreeRingToPolyData()
@@ -200,3 +201,4 @@ void vtkTreeRingToPolyData::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "ShrinkPercentage: " << this->ShrinkPercentage << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Infovis/Layout/vtkTreeRingToPolyData.h b/Infovis/Layout/vtkTreeRingToPolyData.h
index c6af017db455e4f3e8aa61023d6e77890d6f9575..d23492bbb4aab5c1d3f774a395767b341af30498 100644
--- a/Infovis/Layout/vtkTreeRingToPolyData.h
+++ b/Infovis/Layout/vtkTreeRingToPolyData.h
@@ -35,6 +35,7 @@
 #include "vtkInfovisLayoutModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINFOVISLAYOUT_EXPORT vtkTreeRingToPolyData : public vtkPolyDataAlgorithm
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkTreeRingToPolyData&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Image/vtkImageViewer.cxx b/Interaction/Image/vtkImageViewer.cxx
index 19b73f0e7a1b20e4131e5a5f52ec65d90723e73f..bec4c2b10363e13c04ba38413cc3ac2b7f4f51e3 100644
--- a/Interaction/Image/vtkImageViewer.cxx
+++ b/Interaction/Image/vtkImageViewer.cxx
@@ -26,6 +26,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageViewer);
 
 //------------------------------------------------------------------------------
@@ -281,3 +282,4 @@ void vtkImageViewer::SetRenderWindow(vtkRenderWindow* renWin)
   vtkSetObjectBodyMacro(RenderWindow, vtkRenderWindow, renWin);
   renWin->AddRenderer(this->GetRenderer());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Image/vtkImageViewer.h b/Interaction/Image/vtkImageViewer.h
index 2a54646621eb031b1b9110fb9c633e0b45f47ed2..01c659b0cb2cce42300d6f88090dc8fec860e521 100644
--- a/Interaction/Image/vtkImageViewer.h
+++ b/Interaction/Image/vtkImageViewer.h
@@ -35,6 +35,7 @@
 #include "vtkImageMapper.h"  // For all the inline methods
 #include "vtkRenderWindow.h" // For all the inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInteractorStyleImage;
 
 class VTKINTERACTIONIMAGE_EXPORT vtkImageViewer : public vtkObject
@@ -185,4 +186,5 @@ private:
   void operator=(const vtkImageViewer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Image/vtkImageViewer2.cxx b/Interaction/Image/vtkImageViewer2.cxx
index ad4cfa5e5da70de907064e5940823517a012bee8..1922036ab9d83ca152d5f44a25d23fd50d8e15e3 100644
--- a/Interaction/Image/vtkImageViewer2.cxx
+++ b/Interaction/Image/vtkImageViewer2.cxx
@@ -28,6 +28,7 @@
 #include "vtkRenderer.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageViewer2);
 
 //------------------------------------------------------------------------------
@@ -752,3 +753,4 @@ void vtkImageViewer2::PrintSelf(ostream& os, vtkIndent indent)
     os << "None";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Image/vtkImageViewer2.h b/Interaction/Image/vtkImageViewer2.h
index 8869b5d8f868a87ae1ff1419df60a5beabbd82ed..359345ff76022fc7213cf7cf3c9302eb42ba4377 100644
--- a/Interaction/Image/vtkImageViewer2.h
+++ b/Interaction/Image/vtkImageViewer2.h
@@ -61,6 +61,7 @@
 #include "vtkInteractionImageModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithm;
 class vtkAlgorithmOutput;
 class vtkImageActor;
@@ -279,4 +280,5 @@ private:
   void operator=(const vtkImageViewer2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Image/vtkResliceImageViewer.cxx b/Interaction/Image/vtkResliceImageViewer.cxx
index fa2909fd693b1952b14495acc9ce22bdc295f643..f09d358f7e76879a854d2c75031de9d4b9c11c34 100644
--- a/Interaction/Image/vtkResliceImageViewer.cxx
+++ b/Interaction/Image/vtkResliceImageViewer.cxx
@@ -38,6 +38,7 @@
 #include "vtkScalarsToColors.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkResliceImageViewer);
 
 //------------------------------------------------------------------------------
@@ -600,3 +601,4 @@ void vtkResliceImageViewer::PrintSelf(ostream& os, vtkIndent indent)
     this->Interactor->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Image/vtkResliceImageViewer.h b/Interaction/Image/vtkResliceImageViewer.h
index 28d062c1465a096997648506d4f6ad8b65844a53..7cc768363c4f06fec084fe236475d14fd978dff0 100644
--- a/Interaction/Image/vtkResliceImageViewer.h
+++ b/Interaction/Image/vtkResliceImageViewer.h
@@ -33,6 +33,7 @@
 #include "vtkImageViewer2.h"
 #include "vtkInteractionImageModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkResliceCursorWidget;
 class vtkResliceCursor;
 class vtkScalarsToColors;
@@ -220,4 +221,5 @@ private:
   void operator=(const vtkResliceImageViewer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Image/vtkResliceImageViewerMeasurements.cxx b/Interaction/Image/vtkResliceImageViewerMeasurements.cxx
index a10c5b5859da4621774f24d28465cec2dbac2a88..3ffe1fe5561e0b04f82d5b30aad392421722b368 100644
--- a/Interaction/Image/vtkResliceImageViewerMeasurements.cxx
+++ b/Interaction/Image/vtkResliceImageViewerMeasurements.cxx
@@ -47,6 +47,7 @@
 #include "vtkSeedWidget.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkResliceImageViewerMeasurements);
 
 //------------------------------------------------------------------------------
@@ -347,3 +348,4 @@ void vtkResliceImageViewerMeasurements::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Tolerance: " << this->Tolerance << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Image/vtkResliceImageViewerMeasurements.h b/Interaction/Image/vtkResliceImageViewerMeasurements.h
index 06fed7a637eb01b8bc526ad8f88d6a39a7791d9a..9429fdb1eeedb7ac3075e3cb96cb03767a8ca54a 100644
--- a/Interaction/Image/vtkResliceImageViewerMeasurements.h
+++ b/Interaction/Image/vtkResliceImageViewerMeasurements.h
@@ -29,6 +29,7 @@
 #include "vtkInteractionImageModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkResliceImageViewer;
 class vtkAbstractWidget;
 class vtkCallbackCommand;
@@ -145,4 +146,5 @@ private:
   void operator=(const vtkResliceImageViewerMeasurements&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleDrawPolygon.cxx b/Interaction/Style/vtkInteractorStyleDrawPolygon.cxx
index 3ff1e80ea0da81a11c2d23fd855ec2f3cdb50749..0169fe305d6a6fea7ebac239c995e48a5368ce51 100644
--- a/Interaction/Style/vtkInteractorStyleDrawPolygon.cxx
+++ b/Interaction/Style/vtkInteractorStyleDrawPolygon.cxx
@@ -23,6 +23,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleDrawPolygon);
 
 //------------------------------------------------------------------------------
@@ -225,3 +226,4 @@ void vtkInteractorStyleDrawPolygon::PrintSelf(ostream& os, vtkIndent indent)
      << endl;
   os << indent << "EndPosition: " << this->EndPosition[0] << "," << this->EndPosition[1] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleDrawPolygon.h b/Interaction/Style/vtkInteractorStyleDrawPolygon.h
index 9d4ecf93c0141fc1f13b01a4f5da9ebf5c2109af..c5511060f352853a2bb6857cf6e5bcd7f0eeac2f 100644
--- a/Interaction/Style/vtkInteractorStyleDrawPolygon.h
+++ b/Interaction/Style/vtkInteractorStyleDrawPolygon.h
@@ -30,6 +30,7 @@
 #include "vtkVector.h" // For Polygon Points
 #include <vector>      // For returning Polygon Points
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 
 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleDrawPolygon : public vtkInteractorStyle
@@ -84,4 +85,5 @@ private:
   vtkInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleFlight.cxx b/Interaction/Style/vtkInteractorStyleFlight.cxx
index d50504bfcac63ecb25107f2475df5c92fb410f29..d1c11c91aa651804f29427f8a4edd1852a8cb677 100644
--- a/Interaction/Style/vtkInteractorStyleFlight.cxx
+++ b/Interaction/Style/vtkInteractorStyleFlight.cxx
@@ -23,6 +23,7 @@
 #include "vtkRenderer.h"
 #include "vtkWindows.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleFlight);
 
 class CPIDControl
@@ -812,3 +813,4 @@ void vtkInteractorStyleFlight::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "DefaultUpVector: " << this->DefaultUpVector[0] << " " << this->DefaultUpVector[1]
      << " " << this->DefaultUpVector[2] << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleFlight.h b/Interaction/Style/vtkInteractorStyleFlight.h
index a8f4b89a6b5e95f00deb9842aff83a0fb1e7b5f3..2c6b527a91386127286d1044783ea6ca84c1a743 100644
--- a/Interaction/Style/vtkInteractorStyleFlight.h
+++ b/Interaction/Style/vtkInteractorStyleFlight.h
@@ -38,6 +38,7 @@
 
 #include "vtkInteractionStyleModule.h" // For export macro
 #include "vtkInteractorStyle.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 class vtkPerspectiveTransform;
 
@@ -190,4 +191,5 @@ private:
   void operator=(const vtkInteractorStyleFlight&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleImage.cxx b/Interaction/Style/vtkInteractorStyleImage.cxx
index abb8f83e06502de1beec807d45c052afb089e7c9..ca0b9e47fb556ad5eb7ec71ed47b9a938ee7161d 100644
--- a/Interaction/Style/vtkInteractorStyleImage.cxx
+++ b/Interaction/Style/vtkInteractorStyleImage.cxx
@@ -29,6 +29,7 @@
 #include "vtkRenderWindowInteractor.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleImage);
 
 //------------------------------------------------------------------------------
@@ -730,3 +731,4 @@ void vtkInteractorStyleImage::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Z View Up Vector: (" << this->ZViewUpVector[0] << ", " << this->ZViewUpVector[1]
      << ", " << this->ZViewUpVector[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleImage.h b/Interaction/Style/vtkInteractorStyleImage.h
index 066083f28db7a55d56d5d4ab47819cc3792aacb4..1ebd47b9b616285d9f5b3d149cfc71408eefa566 100644
--- a/Interaction/Style/vtkInteractorStyleImage.h
+++ b/Interaction/Style/vtkInteractorStyleImage.h
@@ -73,6 +73,7 @@
 #define VTKIS_IMAGE3D 3
 #define VTKIS_IMAGE_SLICING 4
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageProperty;
 
 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleImage : public vtkInteractorStyleTrackballCamera
@@ -213,4 +214,5 @@ private:
   void operator=(const vtkInteractorStyleImage&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleJoystickActor.cxx b/Interaction/Style/vtkInteractorStyleJoystickActor.cxx
index 4c664f01b9ef67c29627e1ac6039645d144b3df0..5173b7ece2c69c66c3ebe0c191be60c85aaf1e91 100644
--- a/Interaction/Style/vtkInteractorStyleJoystickActor.cxx
+++ b/Interaction/Style/vtkInteractorStyleJoystickActor.cxx
@@ -25,6 +25,7 @@
 #include "vtkRenderer.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleJoystickActor);
 
 //------------------------------------------------------------------------------
@@ -583,3 +584,4 @@ void vtkInteractorStyleJoystickActor::Prop3DTransform(
   oldMatrix->Delete();
   newTransform->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleJoystickActor.h b/Interaction/Style/vtkInteractorStyleJoystickActor.h
index 0e0da1c73240b90cda129fd14b9a2cdbe1704108..9fba9e9027d91bf77939455cbc00b9b320115013 100644
--- a/Interaction/Style/vtkInteractorStyleJoystickActor.h
+++ b/Interaction/Style/vtkInteractorStyleJoystickActor.h
@@ -37,6 +37,7 @@
 #include "vtkInteractionStyleModule.h" // For export macro
 #include "vtkInteractorStyle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellPicker;
 
 // motion flags
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkInteractorStyleJoystickActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleJoystickCamera.cxx b/Interaction/Style/vtkInteractorStyleJoystickCamera.cxx
index 2abb72a81bfd04b6acb4370e16e4a9fcf6ae620a..45c0707125f55f6516953357ab46a70a4d3bc95b 100644
--- a/Interaction/Style/vtkInteractorStyleJoystickCamera.cxx
+++ b/Interaction/Style/vtkInteractorStyleJoystickCamera.cxx
@@ -21,6 +21,7 @@
 #include "vtkRenderWindowInteractor.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleJoystickCamera);
 
 //------------------------------------------------------------------------------
@@ -386,3 +387,4 @@ void vtkInteractorStyleJoystickCamera::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleJoystickCamera.h b/Interaction/Style/vtkInteractorStyleJoystickCamera.h
index 30c5a23bd0411409e02dc24f368c2eb74bc86ba3..30dee7abc27539387cba14eefaa39ab4e2805a75 100644
--- a/Interaction/Style/vtkInteractorStyleJoystickCamera.h
+++ b/Interaction/Style/vtkInteractorStyleJoystickCamera.h
@@ -39,6 +39,7 @@
 #include "vtkInteractionStyleModule.h" // For export macro
 #include "vtkInteractorStyle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleJoystickCamera : public vtkInteractorStyle
 {
 public:
@@ -82,4 +83,5 @@ private:
   void operator=(const vtkInteractorStyleJoystickCamera&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleMultiTouchCamera.cxx b/Interaction/Style/vtkInteractorStyleMultiTouchCamera.cxx
index 3fa2405b44e77943316da616061b4cc12d477e9e..5c769c8be9f6e2ca7142bec52ed678693c1a312c 100644
--- a/Interaction/Style/vtkInteractorStyleMultiTouchCamera.cxx
+++ b/Interaction/Style/vtkInteractorStyleMultiTouchCamera.cxx
@@ -24,6 +24,7 @@
 #include "vtkRenderer.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleMultiTouchCamera);
 
 //------------------------------------------------------------------------------
@@ -263,3 +264,4 @@ void vtkInteractorStyleMultiTouchCamera::PrintSelf(ostream& os, vtkIndent indent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleMultiTouchCamera.h b/Interaction/Style/vtkInteractorStyleMultiTouchCamera.h
index 6527db85d84ee2acc2eaef3fe065e01433c8cc1f..d3dea659d15780184d1fdaa454629e35b1105e51 100644
--- a/Interaction/Style/vtkInteractorStyleMultiTouchCamera.h
+++ b/Interaction/Style/vtkInteractorStyleMultiTouchCamera.h
@@ -32,6 +32,7 @@
 #include "vtkInteractorStyleTrackballCamera.h"
 #include "vtkRenderWindowInteractor.h" // for max pointers
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleMultiTouchCamera
   : public vtkInteractorStyleTrackballCamera
 {
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkInteractorStyleMultiTouchCamera&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleRubberBand2D.cxx b/Interaction/Style/vtkInteractorStyleRubberBand2D.cxx
index d98bfe73f1c1637e4981cb79b0dd06fc687e7342..19e06690925d09d5f95cc2033afc781c4c1e25e3 100644
--- a/Interaction/Style/vtkInteractorStyleRubberBand2D.cxx
+++ b/Interaction/Style/vtkInteractorStyleRubberBand2D.cxx
@@ -29,6 +29,7 @@
 #include "vtkRenderer.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleRubberBand2D);
 
 //------------------------------------------------------------------------------
@@ -364,3 +365,4 @@ void vtkInteractorStyleRubberBand2D::PrintSelf(ostream& os, vtkIndent indent)
      << endl;
   os << indent << "EndPosition: " << this->EndPosition[0] << "," << this->EndPosition[1] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleRubberBand2D.h b/Interaction/Style/vtkInteractorStyleRubberBand2D.h
index 732d997db7804a39eecbdec1bc5c26aac83e9e7d..f7072ac3695a472f261db52a630917fa1746dc67 100644
--- a/Interaction/Style/vtkInteractorStyleRubberBand2D.h
+++ b/Interaction/Style/vtkInteractorStyleRubberBand2D.h
@@ -43,6 +43,7 @@
 #include "vtkInteractionStyleModule.h" // For export macro
 #include "vtkInteractorStyle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 
 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleRubberBand2D : public vtkInteractorStyle
@@ -132,4 +133,5 @@ private:
   void operator=(const vtkInteractorStyleRubberBand2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleRubberBand3D.cxx b/Interaction/Style/vtkInteractorStyleRubberBand3D.cxx
index e0e996a9ab11ddc78de829159198de066d844479..2777e6418eab492f420118e4ea2964791d1d4ed7 100644
--- a/Interaction/Style/vtkInteractorStyleRubberBand3D.cxx
+++ b/Interaction/Style/vtkInteractorStyleRubberBand3D.cxx
@@ -29,6 +29,7 @@
 #include "vtkRenderer.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleRubberBand3D);
 
 //------------------------------------------------------------------------------
@@ -323,3 +324,4 @@ void vtkInteractorStyleRubberBand3D::PrintSelf(ostream& os, vtkIndent indent)
      << endl;
   os << indent << "EndPosition: " << this->EndPosition[0] << "," << this->EndPosition[1] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleRubberBand3D.h b/Interaction/Style/vtkInteractorStyleRubberBand3D.h
index 660ca3817fc65ba9315723db91454d6bacb88b87..239c070c6fcc3ebf4edbe5704b1d003eb075fd6c 100644
--- a/Interaction/Style/vtkInteractorStyleRubberBand3D.h
+++ b/Interaction/Style/vtkInteractorStyleRubberBand3D.h
@@ -41,6 +41,7 @@
 #include "vtkInteractionStyleModule.h" // For export macro
 #include "vtkInteractorStyleTrackballCamera.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 
 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleRubberBand3D
@@ -132,4 +133,5 @@ private:
   void operator=(const vtkInteractorStyleRubberBand3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleRubberBandPick.cxx b/Interaction/Style/vtkInteractorStyleRubberBandPick.cxx
index d26a4e038eee4650fc1655bde9c17655c0925065..25136bd98be7b408bd7fbf763bd19d82911ad6b0 100644
--- a/Interaction/Style/vtkInteractorStyleRubberBandPick.cxx
+++ b/Interaction/Style/vtkInteractorStyleRubberBandPick.cxx
@@ -23,6 +23,7 @@
 #include "vtkRenderer.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleRubberBandPick);
 
 #define VTKISRBP_ORIENT 0
@@ -364,3 +365,4 @@ void vtkInteractorStyleRubberBandPick::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleRubberBandPick.h b/Interaction/Style/vtkInteractorStyleRubberBandPick.h
index 7f9c0af08f4aa77d141ec280bca593f01b696c96..223ea41b1f650fba8bf2ab64fb2653cc9d8ea75a 100644
--- a/Interaction/Style/vtkInteractorStyleRubberBandPick.h
+++ b/Interaction/Style/vtkInteractorStyleRubberBandPick.h
@@ -36,6 +36,7 @@
 #include "vtkInteractionStyleModule.h" // For export macro
 #include "vtkInteractorStyleTrackballCamera.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 
 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleRubberBandPick
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkInteractorStyleRubberBandPick&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleRubberBandZoom.cxx b/Interaction/Style/vtkInteractorStyleRubberBandZoom.cxx
index cba2a59fc0b430b50e7c671e62b7c2d370b6ede0..cb1371c1bb76ae90f3ded329fb6daa9455e415a9 100644
--- a/Interaction/Style/vtkInteractorStyleRubberBandZoom.cxx
+++ b/Interaction/Style/vtkInteractorStyleRubberBandZoom.cxx
@@ -23,6 +23,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleRubberBandZoom);
 
 vtkInteractorStyleRubberBandZoom::vtkInteractorStyleRubberBandZoom()
@@ -335,3 +336,4 @@ void vtkInteractorStyleRubberBandZoom::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "UseDollyForPerspectiveProjection: " << this->UseDollyForPerspectiveProjection
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleRubberBandZoom.h b/Interaction/Style/vtkInteractorStyleRubberBandZoom.h
index b3bfcaa92d99e36e065f34ca98824784dc42e5cc..544aaf8c489e7dde35e4d7778d175d01d741556f 100644
--- a/Interaction/Style/vtkInteractorStyleRubberBandZoom.h
+++ b/Interaction/Style/vtkInteractorStyleRubberBandZoom.h
@@ -29,6 +29,7 @@
 #include "vtkInteractorStyle.h"
 #include "vtkRect.h" // for vtkRecti
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 
 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleRubberBandZoom : public vtkInteractorStyle
@@ -122,4 +123,5 @@ private:
   void AdjustBox(int startPosition[2], int endPosition[2]) const;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleSwitch.cxx b/Interaction/Style/vtkInteractorStyleSwitch.cxx
index 37f5990bc45081fa905426c8fbbe702e9a1ca01c..159dcdceea647146e603ed89871afb2fbdd3db7d 100644
--- a/Interaction/Style/vtkInteractorStyleSwitch.cxx
+++ b/Interaction/Style/vtkInteractorStyleSwitch.cxx
@@ -24,6 +24,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkRenderWindowInteractor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleSwitch);
 
 //------------------------------------------------------------------------------
@@ -296,3 +297,4 @@ void vtkInteractorStyleSwitch::SetCurrentRenderer(vtkRenderer* renderer)
   this->TrackballActor->SetCurrentRenderer(renderer);
   this->TrackballCamera->SetCurrentRenderer(renderer);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleSwitch.h b/Interaction/Style/vtkInteractorStyleSwitch.h
index 59281c5d660c059a7762144fc4f675e0470be66b..8fdce1ca5eaa19f39ee8b488a02f4b6e952da1f9 100644
--- a/Interaction/Style/vtkInteractorStyleSwitch.h
+++ b/Interaction/Style/vtkInteractorStyleSwitch.h
@@ -38,6 +38,7 @@
 #define VTKIS_CAMERA 0
 #define VTKIS_ACTOR 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInteractorStyleJoystickActor;
 class vtkInteractorStyleJoystickCamera;
 class vtkInteractorStyleTrackballActor;
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkInteractorStyleSwitch&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleTerrain.cxx b/Interaction/Style/vtkInteractorStyleTerrain.cxx
index 487ee28bc29a3013291b81b2f85b87cdc3bb6fa1..0939eb2d9e487ffcdf86e3be48bc94f24aeba4c4 100644
--- a/Interaction/Style/vtkInteractorStyleTerrain.cxx
+++ b/Interaction/Style/vtkInteractorStyleTerrain.cxx
@@ -27,6 +27,7 @@
 #include "vtkRenderer.h"
 #include "vtkSphereSource.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleTerrain);
 
 //------------------------------------------------------------------------------
@@ -417,3 +418,4 @@ void vtkInteractorStyleTerrain::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Latitude/Longitude Lines: " << (this->LatLongLines ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleTerrain.h b/Interaction/Style/vtkInteractorStyleTerrain.h
index 9dc09209fb5dfbf0c9973b7b9c75df28aa00c505..2b90ed93b08d31e3f16c60d2997f26a14564eba4 100644
--- a/Interaction/Style/vtkInteractorStyleTerrain.h
+++ b/Interaction/Style/vtkInteractorStyleTerrain.h
@@ -52,6 +52,7 @@
 #include "vtkInteractionStyleModule.h" // For export macro
 #include "vtkInteractorStyle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyDataMapper;
 class vtkSphereSource;
 class vtkExtractEdges;
@@ -123,4 +124,5 @@ private:
   void operator=(const vtkInteractorStyleTerrain&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleTrackball.cxx b/Interaction/Style/vtkInteractorStyleTrackball.cxx
index 841bd5eccd8b6686b4fa85ef11dccd4da14cecab..351d9b2a4e38ce5da71ca286e4deac6a97c92fde 100644
--- a/Interaction/Style/vtkInteractorStyleTrackball.cxx
+++ b/Interaction/Style/vtkInteractorStyleTrackball.cxx
@@ -19,6 +19,7 @@
 #include "vtkPropPicker.h"
 #include "vtkRenderWindowInteractor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleTrackball);
 
 //------------------------------------------------------------------------------
@@ -38,3 +39,4 @@ void vtkInteractorStyleTrackball::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleTrackball.h b/Interaction/Style/vtkInteractorStyleTrackball.h
index 1d95b9eefc17f8df3f9128cbd658016823e22ebc..88dac7324b646b0997a35726c6605c1677f7fa6a 100644
--- a/Interaction/Style/vtkInteractorStyleTrackball.h
+++ b/Interaction/Style/vtkInteractorStyleTrackball.h
@@ -31,6 +31,7 @@
 #include "vtkInteractionStyleModule.h" // For export macro
 #include "vtkInteractorStyleSwitch.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleTrackball : public vtkInteractorStyleSwitch
 {
 public:
@@ -47,4 +48,5 @@ private:
   void operator=(const vtkInteractorStyleTrackball&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleTrackballActor.cxx b/Interaction/Style/vtkInteractorStyleTrackballActor.cxx
index 7171c80f59d6a645e46f54f76e4f0cf321da61b3..5a4e310118d2dfa731e03eb7e059a11228abc1e4 100644
--- a/Interaction/Style/vtkInteractorStyleTrackballActor.cxx
+++ b/Interaction/Style/vtkInteractorStyleTrackballActor.cxx
@@ -25,6 +25,7 @@
 #include "vtkRenderer.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleTrackballActor);
 
 //------------------------------------------------------------------------------
@@ -580,3 +581,4 @@ void vtkInteractorStyleTrackballActor::Prop3DTransform(
   oldMatrix->Delete();
   newTransform->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleTrackballActor.h b/Interaction/Style/vtkInteractorStyleTrackballActor.h
index 129f98d51d3524348d99a091b8db23918388c6a3..6e85c0171b996ea86a51f7eae9af636dc083fb69 100644
--- a/Interaction/Style/vtkInteractorStyleTrackballActor.h
+++ b/Interaction/Style/vtkInteractorStyleTrackballActor.h
@@ -40,6 +40,7 @@
 #include "vtkInteractionStyleModule.h" // For export macro
 #include "vtkInteractorStyle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellPicker;
 
 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleTrackballActor : public vtkInteractorStyle
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkInteractorStyleTrackballActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleTrackballCamera.cxx b/Interaction/Style/vtkInteractorStyleTrackballCamera.cxx
index 515bbf229fb1b2342b1e4f6be1586fbcc2661013..edc2b72f870113fbda0ec8db30c9faccf606996e 100644
--- a/Interaction/Style/vtkInteractorStyleTrackballCamera.cxx
+++ b/Interaction/Style/vtkInteractorStyleTrackballCamera.cxx
@@ -23,6 +23,7 @@
 #include "vtkRenderWindowInteractor.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleTrackballCamera);
 
 //------------------------------------------------------------------------------
@@ -468,3 +469,4 @@ void vtkInteractorStyleTrackballCamera::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "MotionFactor: " << this->MotionFactor << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleTrackballCamera.h b/Interaction/Style/vtkInteractorStyleTrackballCamera.h
index a956376b18c1a1ae3c90803fe92bcba89de6e994..122fbff29a3d0a153ebe622573bcf5ffe2abca4a 100644
--- a/Interaction/Style/vtkInteractorStyleTrackballCamera.h
+++ b/Interaction/Style/vtkInteractorStyleTrackballCamera.h
@@ -38,6 +38,7 @@
 #include "vtkInteractionStyleModule.h" // For export macro
 #include "vtkInteractorStyle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleTrackballCamera : public vtkInteractorStyle
 {
 public:
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkInteractorStyleTrackballCamera&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkInteractorStyleUnicam.cxx b/Interaction/Style/vtkInteractorStyleUnicam.cxx
index 58194a55b1567789058fd7c7ddb27f7b13b5710f..a69760fc48003be3dcfe5f8ede6572037f4cc4f8 100644
--- a/Interaction/Style/vtkInteractorStyleUnicam.cxx
+++ b/Interaction/Style/vtkInteractorStyleUnicam.cxx
@@ -36,19 +36,24 @@
 #include "vtkTransform.h"
 #include "vtkWorldPointPicker.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleUnicam);
 
 // define 'TheTime()' function-- returns time in elapsed seconds
 #if defined(_WIN32)
+VTK_ABI_NAMESPACE_END
 #include "vtkWindows.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 static double TheTime()
 {
   return GetTickCount() / 1000.0;
 }
 #else
+VTK_ABI_NAMESPACE_END
 #include <sys/time.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 static double TheTime()
 {
   struct timeval ts;
@@ -678,3 +683,4 @@ void vtkInteractorStyleUnicam::MyTranslateCamera(double v[3])
     this->CurrentRenderer->ResetCameraClippingRange();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleUnicam.h b/Interaction/Style/vtkInteractorStyleUnicam.h
index 43d42c8c27ddad308786e08762e8a3a15f0a12d9..0e666455e28fcbb38bca03d17fa6de5cd56d56d2 100644
--- a/Interaction/Style/vtkInteractorStyleUnicam.h
+++ b/Interaction/Style/vtkInteractorStyleUnicam.h
@@ -82,6 +82,7 @@
 #include "vtkInteractionStyleModule.h" // For export macro
 #include "vtkInteractorStyle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 class vtkWorldPointPicker;
 
@@ -178,4 +179,5 @@ private:
   void operator=(const vtkInteractorStyleUnicam&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkInteractorStyleUnicam_h
diff --git a/Interaction/Style/vtkInteractorStyleUser.cxx b/Interaction/Style/vtkInteractorStyleUser.cxx
index 0f78bcea1033b2276d5e8935608615af072ac489..b653d33a95268c986543def8806810c7ab1daa33 100644
--- a/Interaction/Style/vtkInteractorStyleUser.cxx
+++ b/Interaction/Style/vtkInteractorStyleUser.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkRenderWindowInteractor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleUser);
 
 //------------------------------------------------------------------------------
@@ -382,3 +383,4 @@ void vtkInteractorStyleUser::OnLeave()
     this->InvokeEvent(vtkCommand::LeaveEvent, nullptr);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkInteractorStyleUser.h b/Interaction/Style/vtkInteractorStyleUser.h
index 33a869244f857108bfd6d752d34a25134ce94ce2..bd68203911b42f20058bf19468baf5e1e96f25c0 100644
--- a/Interaction/Style/vtkInteractorStyleUser.h
+++ b/Interaction/Style/vtkInteractorStyleUser.h
@@ -39,6 +39,7 @@
 // new motion flag
 #define VTKIS_USERINTERACTION 8
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONSTYLE_EXPORT vtkInteractorStyleUser : public vtkInteractorStyle
 {
 public:
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkInteractorStyleUser&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Style/vtkParallelCoordinatesInteractorStyle.cxx b/Interaction/Style/vtkParallelCoordinatesInteractorStyle.cxx
index c37bbfba58d4d93f5a3a6ae1734077f67b3b29a2..fa9cec84941024e16ede8f280e0a718abcf937f3 100644
--- a/Interaction/Style/vtkParallelCoordinatesInteractorStyle.cxx
+++ b/Interaction/Style/vtkParallelCoordinatesInteractorStyle.cxx
@@ -27,6 +27,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkRenderWindowInteractor.h"
 #include "vtkViewport.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParallelCoordinatesInteractorStyle);
 
 //------------------------------------------------------------------------------
@@ -402,3 +403,4 @@ void vtkParallelCoordinatesInteractorStyle::GetCursorLastPosition(
   pos[0] = static_cast<double>(this->CursorLastPosition[0]) / size[0];
   pos[1] = static_cast<double>(this->CursorLastPosition[1]) / size[1];
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Style/vtkParallelCoordinatesInteractorStyle.h b/Interaction/Style/vtkParallelCoordinatesInteractorStyle.h
index 5a16d74ed8a6ed7d053fbf268dbc59bfc4beca91..30fbc61c5a29afad0e574093cd21dabb4108286f 100644
--- a/Interaction/Style/vtkParallelCoordinatesInteractorStyle.h
+++ b/Interaction/Style/vtkParallelCoordinatesInteractorStyle.h
@@ -48,6 +48,7 @@
 #include "vtkInteractionStyleModule.h" // For export macro
 #include "vtkInteractorStyleTrackballCamera.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkViewport;
 
 class VTKINTERACTIONSTYLE_EXPORT vtkParallelCoordinatesInteractorStyle
@@ -135,4 +136,5 @@ private:
   void operator=(const vtkParallelCoordinatesInteractorStyle&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtk3DWidget.cxx b/Interaction/Widgets/vtk3DWidget.cxx
index 3c79afbc06ce83c541fec1cf4d48d3edfd1b22ad..1d80490ae1ddf91e0535ee10a2209464a3d327f2 100644
--- a/Interaction/Widgets/vtk3DWidget.cxx
+++ b/Interaction/Widgets/vtk3DWidget.cxx
@@ -23,6 +23,7 @@
 #include "vtkRenderer.h"
 #include "vtkTrivialProducer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtk3DWidget, Prop3D, vtkProp3D);
 
 class vtk3DWidgetConnection : public vtkAlgorithm
@@ -205,3 +206,4 @@ vtkDataSet* vtk3DWidget::GetInput()
 {
   return vtkDataSet::SafeDownCast(this->ConnectionHolder->GetInputDataObject(0, 0));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtk3DWidget.h b/Interaction/Widgets/vtk3DWidget.h
index 8738854bb513878cd95cff885ce5bf7fd2e0e6fd..0c0f0573dd0251ef7212949891a02dbbace8af62 100644
--- a/Interaction/Widgets/vtk3DWidget.h
+++ b/Interaction/Widgets/vtk3DWidget.h
@@ -59,6 +59,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkInteractorObserver.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtk3DWidgetConnection;
 class vtkAlgorithmOutput;
 class vtkDataSet;
@@ -162,4 +163,5 @@ private:
   void operator=(const vtk3DWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkAbstractPolygonalHandleRepresentation3D.cxx b/Interaction/Widgets/vtkAbstractPolygonalHandleRepresentation3D.cxx
index 2279efb0193d9381a83a80aa7e598a73e9e3de60..113269a4178f54f543b8a08bc2f61b0649e77f09 100644
--- a/Interaction/Widgets/vtkAbstractPolygonalHandleRepresentation3D.cxx
+++ b/Interaction/Widgets/vtkAbstractPolygonalHandleRepresentation3D.cxx
@@ -38,6 +38,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkAbstractPolygonalHandleRepresentation3D, Property, vtkProperty);
 vtkCxxSetObjectMacro(vtkAbstractPolygonalHandleRepresentation3D, SelectedProperty, vtkProperty);
 
@@ -792,3 +793,4 @@ void vtkAbstractPolygonalHandleRepresentation3D::PrintSelf(ostream& os, vtkInden
   // WaitingForMotion;
   // WaitCount;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkAbstractPolygonalHandleRepresentation3D.h b/Interaction/Widgets/vtkAbstractPolygonalHandleRepresentation3D.h
index e66ae38851d4ad006a8b765a2b1d97b45ae613b3..328ec04ee6cf662b4a9574e71d16510bdf149e28 100644
--- a/Interaction/Widgets/vtkAbstractPolygonalHandleRepresentation3D.h
+++ b/Interaction/Widgets/vtkAbstractPolygonalHandleRepresentation3D.h
@@ -35,6 +35,7 @@
 #include "vtkHandleRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProperty;
 class vtkPolyDataMapper;
 class vtkCellPicker;
@@ -259,4 +260,5 @@ private:
   void operator=(const vtkAbstractPolygonalHandleRepresentation3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkAbstractSplineRepresentation.cxx b/Interaction/Widgets/vtkAbstractSplineRepresentation.cxx
index c93096f74bb06058f3d4e810a4cd199fe14c789b..5df77724f8d94f7798728231e155da8102485c09 100644
--- a/Interaction/Widgets/vtkAbstractSplineRepresentation.cxx
+++ b/Interaction/Widgets/vtkAbstractSplineRepresentation.cxx
@@ -21,6 +21,7 @@
 #include "vtkRenderer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractSplineRepresentation::vtkAbstractSplineRepresentation()
 {
   // Initialize pipeline configuration
@@ -160,3 +161,4 @@ void vtkAbstractSplineRepresentation::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Resolution: " << this->Resolution << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkAbstractSplineRepresentation.h b/Interaction/Widgets/vtkAbstractSplineRepresentation.h
index b0af5f5f1b941a4cc1dbcd5104a93e651a0aec67..c1f63d35bef05512440dd0a086eaaffa191b0afd 100644
--- a/Interaction/Widgets/vtkAbstractSplineRepresentation.h
+++ b/Interaction/Widgets/vtkAbstractSplineRepresentation.h
@@ -27,6 +27,7 @@
 #include "vtkCurveRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkParametricFunctionSource;
 class vtkParametricSpline;
 class vtkPolyDataMapper;
@@ -102,4 +103,5 @@ private:
   void operator=(const vtkAbstractSplineRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkAbstractWidget.cxx b/Interaction/Widgets/vtkAbstractWidget.cxx
index 565f335fc9897fbad77363e39563cc43189a7c96..828a5a667dbd2fae26369283a0be462c2c0103d6 100644
--- a/Interaction/Widgets/vtkAbstractWidget.cxx
+++ b/Interaction/Widgets/vtkAbstractWidget.cxx
@@ -24,6 +24,7 @@
 #include "vtkWidgetRepresentation.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractWidget::vtkAbstractWidget()
 {
   // Setup event processing
@@ -344,3 +345,4 @@ void vtkAbstractWidget::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Parent: " << this->Parent << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkAbstractWidget.h b/Interaction/Widgets/vtkAbstractWidget.h
index 7adeeb919c894e73d491d7241bc70ac7b6480f84..955822d97f3631743b81883a384b2a2019427009 100644
--- a/Interaction/Widgets/vtkAbstractWidget.h
+++ b/Interaction/Widgets/vtkAbstractWidget.h
@@ -55,6 +55,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkInteractorObserver.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWidgetEventTranslator;
 class vtkWidgetCallbackMapper;
 class vtkWidgetRepresentation;
@@ -206,4 +207,5 @@ private:
   void operator=(const vtkAbstractWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkAffineRepresentation.cxx b/Interaction/Widgets/vtkAffineRepresentation.cxx
index 9cec3ee746aa1d78279494be9cd8848fd0048089..fe2ea64bc60c82489abeca5c6f27e1d336b7ec12 100644
--- a/Interaction/Widgets/vtkAffineRepresentation.cxx
+++ b/Interaction/Widgets/vtkAffineRepresentation.cxx
@@ -17,6 +17,7 @@
 #include "vtkTransform.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkAffineRepresentation::vtkAffineRepresentation()
 {
   this->InteractionState = vtkAffineRepresentation::Outside;
@@ -49,3 +50,4 @@ void vtkAffineRepresentation::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Tolerance: " << this->Tolerance << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkAffineRepresentation.h b/Interaction/Widgets/vtkAffineRepresentation.h
index ba0f5279f33ce3aa724783c57b39af31aeee2e55..e75edb963390f6a9c42a00b2592de054a0267219 100644
--- a/Interaction/Widgets/vtkAffineRepresentation.h
+++ b/Interaction/Widgets/vtkAffineRepresentation.h
@@ -43,6 +43,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransform;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkAffineRepresentation : public vtkWidgetRepresentation
@@ -125,4 +126,5 @@ private:
   void operator=(const vtkAffineRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkAffineRepresentation2D.cxx b/Interaction/Widgets/vtkAffineRepresentation2D.cxx
index 6beb102b93835a44e7110532d1a18719ce3c5894..23b5e504a93c3d8203f56210603bdc1d4d19de8f 100644
--- a/Interaction/Widgets/vtkAffineRepresentation2D.cxx
+++ b/Interaction/Widgets/vtkAffineRepresentation2D.cxx
@@ -34,6 +34,7 @@
 #include "vtkTransform.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAffineRepresentation2D);
 
 vtkCxxSetObjectMacro(vtkAffineRepresentation2D, Property, vtkProperty2D);
@@ -1115,3 +1116,4 @@ void vtkAffineRepresentation2D::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Text Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkAffineRepresentation2D.h b/Interaction/Widgets/vtkAffineRepresentation2D.h
index beec44c8c21123b747703ed11eb456933bba9be3..6a2eecf33e00f1425d4755e8f0ed880ed78f2b8d 100644
--- a/Interaction/Widgets/vtkAffineRepresentation2D.h
+++ b/Interaction/Widgets/vtkAffineRepresentation2D.h
@@ -44,6 +44,7 @@
 #include "vtkAffineRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProperty2D;
 class vtkActor2D;
 class vtkPolyDataMapper2D;
@@ -249,4 +250,5 @@ private:
   void operator=(const vtkAffineRepresentation2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkAffineWidget.cxx b/Interaction/Widgets/vtkAffineWidget.cxx
index 31cceadf47962ddd9bb6681694f6a081a2c14b06..98fd3dbab17326e47487b622c5dae96e0eb8151c 100644
--- a/Interaction/Widgets/vtkAffineWidget.cxx
+++ b/Interaction/Widgets/vtkAffineWidget.cxx
@@ -25,6 +25,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAffineWidget);
 
 //------------------------------------------------------------------------------
@@ -247,3 +248,4 @@ void vtkAffineWidget::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkAffineWidget.h b/Interaction/Widgets/vtkAffineWidget.h
index c1048b82e0efd9f236aeda158eb4afa677fb0e0f..74fc04b14597dd424b5d274604ae074cf8792f3a 100644
--- a/Interaction/Widgets/vtkAffineWidget.h
+++ b/Interaction/Widgets/vtkAffineWidget.h
@@ -62,6 +62,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAffineRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkAffineWidget : public vtkAbstractWidget
@@ -143,4 +144,5 @@ private:
   void operator=(const vtkAffineWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkAngleRepresentation.cxx b/Interaction/Widgets/vtkAngleRepresentation.cxx
index d763f257fe77dbb46312a57093d4363acb3477bf..bcf4b7228e7ce2ed8a6ca91decd7372d15d68a51 100644
--- a/Interaction/Widgets/vtkAngleRepresentation.cxx
+++ b/Interaction/Widgets/vtkAngleRepresentation.cxx
@@ -25,6 +25,7 @@
 #include "vtkTextProperty.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkAngleRepresentation, HandleRepresentation, vtkHandleRepresentation);
 
 //------------------------------------------------------------------------------
@@ -220,3 +221,4 @@ void vtkAngleRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkAngleRepresentation.h b/Interaction/Widgets/vtkAngleRepresentation.h
index c79e25d02c32d9cd76da38f96242d9de5d242721..c0a276ff06098d465ce2f00a1ecb6b1b5fbdc417 100644
--- a/Interaction/Widgets/vtkAngleRepresentation.h
+++ b/Interaction/Widgets/vtkAngleRepresentation.h
@@ -33,6 +33,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHandleRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkAngleRepresentation : public vtkWidgetRepresentation
@@ -188,4 +189,5 @@ private:
   void operator=(const vtkAngleRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkAngleRepresentation2D.cxx b/Interaction/Widgets/vtkAngleRepresentation2D.cxx
index e601ca2668c49f3dff98544b560531700424f36a..b46defd842e58ed6e16ef700317ea27af1610cab 100644
--- a/Interaction/Widgets/vtkAngleRepresentation2D.cxx
+++ b/Interaction/Widgets/vtkAngleRepresentation2D.cxx
@@ -22,6 +22,7 @@
 #include "vtkRenderer.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAngleRepresentation2D);
 
 //------------------------------------------------------------------------------
@@ -381,3 +382,4 @@ void vtkAngleRepresentation2D::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkAngleRepresentation2D.h b/Interaction/Widgets/vtkAngleRepresentation2D.h
index 412b33fdb354d771e951c4c152f06abbb034b8fd..55db2e7adb82a04a8a68e1a688e49755611057ba 100644
--- a/Interaction/Widgets/vtkAngleRepresentation2D.h
+++ b/Interaction/Widgets/vtkAngleRepresentation2D.h
@@ -34,6 +34,7 @@
 #include "vtkAngleRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLeaderActor2D;
 class vtkProperty2D;
 
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkAngleRepresentation2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkAngleRepresentation3D.cxx b/Interaction/Widgets/vtkAngleRepresentation3D.cxx
index ba37b8ca9457ae031bd31eed75a09ff7a6b14ed5..44f0a703c44a34d465982a8e908eaca8532936b7 100644
--- a/Interaction/Widgets/vtkAngleRepresentation3D.cxx
+++ b/Interaction/Widgets/vtkAngleRepresentation3D.cxx
@@ -29,6 +29,7 @@
 #include "vtkVectorText.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAngleRepresentation3D);
 
 //------------------------------------------------------------------------------
@@ -483,3 +484,4 @@ void vtkAngleRepresentation3D::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkAngleRepresentation3D.h b/Interaction/Widgets/vtkAngleRepresentation3D.h
index 8e011461278ff03b389c0bd3340bcd2319c504a2..45553adce5b4ad79d4259f9910fec6f55b58a0a3 100644
--- a/Interaction/Widgets/vtkAngleRepresentation3D.h
+++ b/Interaction/Widgets/vtkAngleRepresentation3D.h
@@ -34,6 +34,7 @@
 #include "vtkAngleRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkProperty;
 class vtkPolyDataMapper;
@@ -147,4 +148,5 @@ private:
   void operator=(const vtkAngleRepresentation3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkAngleWidget.cxx b/Interaction/Widgets/vtkAngleWidget.cxx
index 8295cd1028f929c90bb371a1da141bada3d61685..c3bd8b63a72aa3fefb3267b17d014f4fee606a20 100644
--- a/Interaction/Widgets/vtkAngleWidget.cxx
+++ b/Interaction/Widgets/vtkAngleWidget.cxx
@@ -25,6 +25,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAngleWidget);
 
 // The angle widget observes the handles.
@@ -546,3 +547,4 @@ void vtkAngleWidget::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkAngleWidget.h b/Interaction/Widgets/vtkAngleWidget.h
index ceeed51b5c17cc3583d1b25efc189d928186ed5b..306a2b24a8470f5ccd9bc761eaad74f78c491221 100644
--- a/Interaction/Widgets/vtkAngleWidget.h
+++ b/Interaction/Widgets/vtkAngleWidget.h
@@ -74,6 +74,7 @@
 #include "vtkAbstractWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAngleRepresentation;
 class vtkHandleWidget;
 class vtkAngleWidgetCallback;
@@ -204,4 +205,5 @@ private:
   void operator=(const vtkAngleWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkAxesTransformRepresentation.cxx b/Interaction/Widgets/vtkAxesTransformRepresentation.cxx
index f15adcdc52941c88c3fbc33ac223452006a426a6..2a1b17357197b3c2c8e87a22400a98f119a35806 100644
--- a/Interaction/Widgets/vtkAxesTransformRepresentation.cxx
+++ b/Interaction/Widgets/vtkAxesTransformRepresentation.cxx
@@ -38,6 +38,7 @@
 #include "vtkVectorText.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAxesTransformRepresentation);
 
 //------------------------------------------------------------------------------
@@ -344,3 +345,4 @@ void vtkAxesTransformRepresentation::PrintSelf(ostream& os, vtkIndent indent)
 
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkAxesTransformRepresentation.h b/Interaction/Widgets/vtkAxesTransformRepresentation.h
index ad5d8aeeffa5942a6ef35a9d3b99f79c936064ca..038ff0c7e5ef4160cafbf53c2d2a82464444ec4b 100644
--- a/Interaction/Widgets/vtkAxesTransformRepresentation.h
+++ b/Interaction/Widgets/vtkAxesTransformRepresentation.h
@@ -32,6 +32,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHandleRepresentation;
 class vtkPoints;
 class vtkPolyData;
@@ -225,4 +226,5 @@ private:
   void operator=(const vtkAxesTransformRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkAxesTransformWidget.cxx b/Interaction/Widgets/vtkAxesTransformWidget.cxx
index 2dc5d1c87506fa2e9530b60c09e7544e87befdb0..584f47429938fde0311267efa625a2cd1ff91a7f 100644
--- a/Interaction/Widgets/vtkAxesTransformWidget.cxx
+++ b/Interaction/Widgets/vtkAxesTransformWidget.cxx
@@ -27,6 +27,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAxesTransformWidget);
 
 //------------------------------------------------------------------------------
@@ -233,3 +234,4 @@ void vtkAxesTransformWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkAxesTransformWidget.h b/Interaction/Widgets/vtkAxesTransformWidget.h
index 6c46daa3525e4c224fa9af6499ea88ff6b43edd2..17f6b46450ab8179a41aaedd2d682852e88b8995 100644
--- a/Interaction/Widgets/vtkAxesTransformWidget.h
+++ b/Interaction/Widgets/vtkAxesTransformWidget.h
@@ -85,6 +85,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAxesTransformRepresentation;
 class vtkHandleWidget;
 
@@ -170,4 +171,5 @@ private:
   void operator=(const vtkAxesTransformWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBalloonRepresentation.cxx b/Interaction/Widgets/vtkBalloonRepresentation.cxx
index e4179e0859b658267f36f03684393dfa3b6daebd..4408df04dac9b9b50dedfd7644150e09808c0840 100644
--- a/Interaction/Widgets/vtkBalloonRepresentation.cxx
+++ b/Interaction/Widgets/vtkBalloonRepresentation.cxx
@@ -32,6 +32,7 @@
 #include "vtkTexturedActor2D.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBalloonRepresentation);
 
 vtkCxxSetObjectMacro(vtkBalloonRepresentation, TextProperty, vtkTextProperty);
@@ -544,3 +545,4 @@ void vtkBalloonRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Text Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBalloonRepresentation.h b/Interaction/Widgets/vtkBalloonRepresentation.h
index b0433d9b66509cea9092697b87d1183f36d06179..7cc6284734620504e0f732553a86133aed14a603 100644
--- a/Interaction/Widgets/vtkBalloonRepresentation.h
+++ b/Interaction/Widgets/vtkBalloonRepresentation.h
@@ -58,6 +58,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTextMapper;
 class vtkTextActor;
 class vtkTextProperty;
@@ -272,4 +273,5 @@ private:
   void operator=(const vtkBalloonRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBalloonWidget.cxx b/Interaction/Widgets/vtkBalloonWidget.cxx
index 65fae0cf15a8cd9b7c970bebb824decac6f0b3da..837893fcf139150e6c0607674740fab12c5c6b93 100644
--- a/Interaction/Widgets/vtkBalloonWidget.cxx
+++ b/Interaction/Widgets/vtkBalloonWidget.cxx
@@ -32,6 +32,7 @@
 #include <cassert>
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBalloonWidget);
 
 //-- Define the PIMPLd array of vtkProp and vtkString --
@@ -361,3 +362,4 @@ void vtkBalloonWidget::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Picker: " << this->Picker << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBalloonWidget.h b/Interaction/Widgets/vtkBalloonWidget.h
index e309f0cb77435c995af4e931dac79a018bcf44f6..efa34b3ce81d4effce9c6856366be31c51510b6d 100644
--- a/Interaction/Widgets/vtkBalloonWidget.h
+++ b/Interaction/Widgets/vtkBalloonWidget.h
@@ -74,6 +74,7 @@
 #include "vtkHoverWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBalloonRepresentation;
 class vtkProp;
 class vtkAbstractPropPicker;
@@ -204,4 +205,5 @@ private:
   void operator=(const vtkBalloonWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBezierContourLineInterpolator.cxx b/Interaction/Widgets/vtkBezierContourLineInterpolator.cxx
index 3fd70cdfb128cc8c9fde342a96a834902308b0f4..f8469fc2fe1f80d8ed3039011780b07f30844d1b 100644
--- a/Interaction/Widgets/vtkBezierContourLineInterpolator.cxx
+++ b/Interaction/Widgets/vtkBezierContourLineInterpolator.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBezierContourLineInterpolator);
 
 //------------------------------------------------------------------------------
@@ -222,3 +223,4 @@ void vtkBezierContourLineInterpolator::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Maximum Curve Error: " << this->MaximumCurveError << "\n";
   os << indent << "Maximum Curve Line Segments: " << this->MaximumCurveLineSegments << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBezierContourLineInterpolator.h b/Interaction/Widgets/vtkBezierContourLineInterpolator.h
index e9ed1232a76d0d516b83566dd8c57ec3c8402ee9..d8d65bde55651308681e0e6aa0d09b9a7e80528c 100644
--- a/Interaction/Widgets/vtkBezierContourLineInterpolator.h
+++ b/Interaction/Widgets/vtkBezierContourLineInterpolator.h
@@ -30,6 +30,7 @@
 #include "vtkContourLineInterpolator.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONWIDGETS_EXPORT vtkBezierContourLineInterpolator
   : public vtkContourLineInterpolator
 {
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkBezierContourLineInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBiDimensionalRepresentation.cxx b/Interaction/Widgets/vtkBiDimensionalRepresentation.cxx
index d90765c3d96b40064602589eb02ef5a8bac948f6..db81abc8d8a305f9a27651da439f42f577096fd2 100644
--- a/Interaction/Widgets/vtkBiDimensionalRepresentation.cxx
+++ b/Interaction/Widgets/vtkBiDimensionalRepresentation.cxx
@@ -35,6 +35,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkBiDimensionalRepresentation::vtkBiDimensionalRepresentation()
 {
   // By default, use one of these handles
@@ -345,3 +346,4 @@ void vtkBiDimensionalRepresentation::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Show Label Above Widget: " << (this->ShowLabelAboveWidget ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBiDimensionalRepresentation.h b/Interaction/Widgets/vtkBiDimensionalRepresentation.h
index aa91582d610ea3aab0075f54d3fe65d17e599005..36525524dc54b165899c89af3cdb7c2614c6f87b 100644
--- a/Interaction/Widgets/vtkBiDimensionalRepresentation.h
+++ b/Interaction/Widgets/vtkBiDimensionalRepresentation.h
@@ -46,6 +46,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHandleRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkBiDimensionalRepresentation : public vtkWidgetRepresentation
@@ -263,4 +264,5 @@ private:
   void operator=(const vtkBiDimensionalRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBiDimensionalRepresentation2D.cxx b/Interaction/Widgets/vtkBiDimensionalRepresentation2D.cxx
index 0c2925a3815e331e290ce969ab36607879e21070..e8f5ff8e600b82d23bd6592f826b32c7fe0721d5 100644
--- a/Interaction/Widgets/vtkBiDimensionalRepresentation2D.cxx
+++ b/Interaction/Widgets/vtkBiDimensionalRepresentation2D.cxx
@@ -33,6 +33,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBiDimensionalRepresentation2D);
 
 //------------------------------------------------------------------------------
@@ -856,3 +857,4 @@ void vtkBiDimensionalRepresentation2D::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Selected Line Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBiDimensionalRepresentation2D.h b/Interaction/Widgets/vtkBiDimensionalRepresentation2D.h
index 056817f322ac9ee947abd979db93aa3d016bb9cc..aad0813956da56919d644921bb96e7fe1e038ab7 100644
--- a/Interaction/Widgets/vtkBiDimensionalRepresentation2D.h
+++ b/Interaction/Widgets/vtkBiDimensionalRepresentation2D.h
@@ -44,6 +44,7 @@
 #include "vtkBiDimensionalRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHandleRepresentation;
 class vtkCellArray;
 class vtkPoints;
@@ -166,4 +167,5 @@ private:
   void operator=(const vtkBiDimensionalRepresentation2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBiDimensionalWidget.cxx b/Interaction/Widgets/vtkBiDimensionalWidget.cxx
index 0ca7816eb44ba5c40dd6b6cbc0e58d99826e4d27..8e1b8737c64b8fa2dd2bc826734d79b4661e8557 100644
--- a/Interaction/Widgets/vtkBiDimensionalWidget.cxx
+++ b/Interaction/Widgets/vtkBiDimensionalWidget.cxx
@@ -27,6 +27,7 @@
 #include "vtkWidgetCallbackMapper.h"
 #include "vtkWidgetEvent.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBiDimensionalWidget);
 
 // The bidimensional widget observes the handles.
@@ -748,3 +749,4 @@ void vtkBiDimensionalWidget::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBiDimensionalWidget.h b/Interaction/Widgets/vtkBiDimensionalWidget.h
index 3c40d65b71701500090f9a58ca5f519f05170531..8dc93e574912b8c2c9ac0bf82eee87e7420e87d9 100644
--- a/Interaction/Widgets/vtkBiDimensionalWidget.h
+++ b/Interaction/Widgets/vtkBiDimensionalWidget.h
@@ -97,6 +97,7 @@
 #include "vtkAbstractWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBiDimensionalRepresentation;
 class vtkHandleWidget;
 class vtkBiDimensionalWidgetCallback;
@@ -243,4 +244,5 @@ private:
   void operator=(const vtkBiDimensionalWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBorderRepresentation.cxx b/Interaction/Widgets/vtkBorderRepresentation.cxx
index f69dfc9148db97bc27d2553d0a4cf6c9798ca852..38612047bb5656e61dfb473689ee44ca4783b048 100644
--- a/Interaction/Widgets/vtkBorderRepresentation.cxx
+++ b/Interaction/Widgets/vtkBorderRepresentation.cxx
@@ -31,6 +31,7 @@
 #include <algorithm>
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBorderRepresentation);
 
 //------------------------------------------------------------------------------
@@ -1067,3 +1068,4 @@ void vtkBorderRepresentation::PrintSelf(ostream& os, vtkIndent indent)
       break;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBorderRepresentation.h b/Interaction/Widgets/vtkBorderRepresentation.h
index e6b359fe42967b87f0cd58bd1daf9c5264a6e726..738ed574124ba8ce8977e3015911b088d06e1aad 100644
--- a/Interaction/Widgets/vtkBorderRepresentation.h
+++ b/Interaction/Widgets/vtkBorderRepresentation.h
@@ -46,6 +46,7 @@
 
 #include "vtkNew.h" // for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkPolyData;
 class vtkTransform;
@@ -502,4 +503,5 @@ private:
   void operator=(const vtkBorderRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBorderWidget.cxx b/Interaction/Widgets/vtkBorderWidget.cxx
index b73df532bae2737b546211b5e6e8806e03cf5270..de0628f02be4511ea539946c4f95b034a825fe32 100644
--- a/Interaction/Widgets/vtkBorderWidget.cxx
+++ b/Interaction/Widgets/vtkBorderWidget.cxx
@@ -25,6 +25,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBorderWidget);
 
 //------------------------------------------------------------------------------
@@ -346,3 +347,4 @@ void vtkBorderWidget::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Selectable: " << (this->Selectable ? "On\n" : "Off\n");
   os << indent << "Resizable: " << (this->Resizable ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBorderWidget.h b/Interaction/Widgets/vtkBorderWidget.h
index d2a847303e594dd85dd52b5b3127842c253eb0bb..0ecc4f6fe286d0a410215371f2a02d3d81c076b5 100644
--- a/Interaction/Widgets/vtkBorderWidget.h
+++ b/Interaction/Widgets/vtkBorderWidget.h
@@ -77,6 +77,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBorderRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkBorderWidget : public vtkAbstractWidget
@@ -198,4 +199,5 @@ private:
   void operator=(const vtkBorderWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBoundedPlanePointPlacer.cxx b/Interaction/Widgets/vtkBoundedPlanePointPlacer.cxx
index 90bb4008edbb6b665fe11cfd11fbb4d60151688d..423409b41af3da1f0c9c8a1f0a28fff683c4bb46 100644
--- a/Interaction/Widgets/vtkBoundedPlanePointPlacer.cxx
+++ b/Interaction/Widgets/vtkBoundedPlanePointPlacer.cxx
@@ -26,6 +26,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoundedPlanePointPlacer);
 
 vtkCxxSetObjectMacro(vtkBoundedPlanePointPlacer, ObliquePlane, vtkPlane);
@@ -414,3 +415,4 @@ void vtkBoundedPlanePointPlacer::PrintSelf(ostream& os, vtkIndent indent)
     os << " (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBoundedPlanePointPlacer.h b/Interaction/Widgets/vtkBoundedPlanePointPlacer.h
index 349ff5960558e3627dabe25bd252e58a3f6e944a..82023905e767d1c50a7518e313a4907e5afce7e6 100644
--- a/Interaction/Widgets/vtkBoundedPlanePointPlacer.h
+++ b/Interaction/Widgets/vtkBoundedPlanePointPlacer.h
@@ -29,6 +29,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPointPlacer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlane;
 class vtkPlaneCollection;
 class vtkPlanes;
@@ -214,4 +215,5 @@ private:
   void operator=(const vtkBoundedPlanePointPlacer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBoxRepresentation.cxx b/Interaction/Widgets/vtkBoxRepresentation.cxx
index f70b7af016cbeec0449a56265cb990cd874e48d8..97cdce12b6a44368f64003279278c44e2697bceb 100644
--- a/Interaction/Widgets/vtkBoxRepresentation.cxx
+++ b/Interaction/Widgets/vtkBoxRepresentation.cxx
@@ -44,6 +44,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoxRepresentation);
 
 //------------------------------------------------------------------------------
@@ -1860,3 +1861,4 @@ void vtkBoxRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Outline Cursor Wires: " << (this->OutlineCursorWires ? "On\n" : "Off\n");
   os << indent << "Inside Out: " << (this->InsideOut ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBoxRepresentation.h b/Interaction/Widgets/vtkBoxRepresentation.h
index 89e18a6ecc3b30c771ac5f3448c08dd5d4a74ea1..9afa02270051fa9905195a6e50b505dd7a48e4c6 100644
--- a/Interaction/Widgets/vtkBoxRepresentation.h
+++ b/Interaction/Widgets/vtkBoxRepresentation.h
@@ -39,6 +39,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyDataMapper;
 class vtkLineSource;
@@ -417,4 +418,5 @@ private:
   void operator=(const vtkBoxRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBoxWidget.cxx b/Interaction/Widgets/vtkBoxWidget.cxx
index 3d6d2d77ae097f274bf3f9603473a15ef00e4769..2c3eea94059f0ddee1c4cb0232128e35f506b43d 100644
--- a/Interaction/Widgets/vtkBoxWidget.cxx
+++ b/Interaction/Widgets/vtkBoxWidget.cxx
@@ -35,6 +35,7 @@
 #include "vtkSphereSource.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoxWidget);
 
 vtkBoxWidget::vtkBoxWidget()
@@ -1472,3 +1473,4 @@ void vtkBoxWidget::RegisterPickers()
   pm->AddPicker(this->HandlePicker, this);
   pm->AddPicker(this->HexPicker, this);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBoxWidget.h b/Interaction/Widgets/vtkBoxWidget.h
index 9a1f9bf950353f95e8f554ecbc38b3140d8d6c5f..07d2f4445176b36f71cc4e53ff32d55d832ba635 100644
--- a/Interaction/Widgets/vtkBoxWidget.h
+++ b/Interaction/Widgets/vtkBoxWidget.h
@@ -78,6 +78,7 @@
 #include "vtk3DWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkCellPicker;
 class vtkPlanes;
@@ -354,4 +355,5 @@ private:
   void operator=(const vtkBoxWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBoxWidget2.cxx b/Interaction/Widgets/vtkBoxWidget2.cxx
index 9075db9360d54ecaf09fefbefad64f956e78208e..68af8fbb0cc6047314b3ca332dd99d9540361cdd 100644
--- a/Interaction/Widgets/vtkBoxWidget2.cxx
+++ b/Interaction/Widgets/vtkBoxWidget2.cxx
@@ -26,6 +26,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBoxWidget2);
 
 //------------------------------------------------------------------------------
@@ -567,3 +568,4 @@ void vtkBoxWidget2::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Rotation Enabled: " << (this->RotationEnabled ? "On\n" : "Off\n");
   os << indent << "Move Faces Enabled: " << (this->MoveFacesEnabled ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBoxWidget2.h b/Interaction/Widgets/vtkBoxWidget2.h
index 73170f5e3371a51798d8bd086efd59552a6016d1..cbe0df1e35a9fb7aaa81ab65269cd69a9bb12c63 100644
--- a/Interaction/Widgets/vtkBoxWidget2.h
+++ b/Interaction/Widgets/vtkBoxWidget2.h
@@ -97,6 +97,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBoxRepresentation;
 class vtkHandleWidget;
 
@@ -202,4 +203,5 @@ private:
   void operator=(const vtkBoxWidget2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkBrokenLineWidget.cxx b/Interaction/Widgets/vtkBrokenLineWidget.cxx
index 85b16491f1c8ccf3f7d5996e3df669838fa78c91..00d641b5be33d8463375e3cadc0e83d19b3f0119 100644
--- a/Interaction/Widgets/vtkBrokenLineWidget.cxx
+++ b/Interaction/Widgets/vtkBrokenLineWidget.cxx
@@ -34,6 +34,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkSphereSource.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBrokenLineWidget);
 
 vtkCxxSetObjectMacro(vtkBrokenLineWidget, HandleProperty, vtkProperty);
@@ -1361,3 +1362,4 @@ void vtkBrokenLineWidget::InitializeHandles(vtkPoints* points)
     this->Interactor->Render();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkBrokenLineWidget.h b/Interaction/Widgets/vtkBrokenLineWidget.h
index aa43ad08bb912b614bd545c9bf1b23a10681b15f..10a3cb158da754b89116a224a9346078b4dad32e 100644
--- a/Interaction/Widgets/vtkBrokenLineWidget.h
+++ b/Interaction/Widgets/vtkBrokenLineWidget.h
@@ -85,6 +85,7 @@
 #include "vtk3DWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkCellPicker;
 class vtkLineSource;
@@ -343,4 +344,5 @@ private:
   void operator=(const vtkBrokenLineWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkButtonRepresentation.cxx b/Interaction/Widgets/vtkButtonRepresentation.cxx
index 963fcde954f7505628b3b5ea9d0e819cd1bc5198..01f4a8835fe592fa1c3547a93186876b243150f1 100644
--- a/Interaction/Widgets/vtkButtonRepresentation.cxx
+++ b/Interaction/Widgets/vtkButtonRepresentation.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkButtonRepresentation::vtkButtonRepresentation()
 {
   this->NumberOfStates = 0;
@@ -113,3 +114,4 @@ void vtkButtonRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "State: " << this->State << "\n";
   os << indent << "Highlight State: " << this->HighlightState << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkButtonRepresentation.h b/Interaction/Widgets/vtkButtonRepresentation.h
index 42cc13bcb6f2a3a91919ec34c72ac962f4375bce..54ab90ca058e7fb63960ecc80ad4906c17c3c21e 100644
--- a/Interaction/Widgets/vtkButtonRepresentation.h
+++ b/Interaction/Widgets/vtkButtonRepresentation.h
@@ -42,6 +42,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONWIDGETS_EXPORT vtkButtonRepresentation : public vtkWidgetRepresentation
 {
 public:
@@ -131,4 +132,5 @@ private:
   void operator=(const vtkButtonRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkButtonWidget.cxx b/Interaction/Widgets/vtkButtonWidget.cxx
index caa89de2407c21ac885eb67dcb7fa919c0c5ea1c..f3dc2e324170018730a1e086618efe08bd8ff16a 100644
--- a/Interaction/Widgets/vtkButtonWidget.cxx
+++ b/Interaction/Widgets/vtkButtonWidget.cxx
@@ -26,6 +26,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkButtonWidget);
 
 //------------------------------------------------------------------------------
@@ -203,3 +204,4 @@ void vtkButtonWidget::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkButtonWidget.h b/Interaction/Widgets/vtkButtonWidget.h
index b284d134a5706706875c240baebafcfcdb6c73cd..cb5152114296b0af6476ce816f46db536d8e9ee6 100644
--- a/Interaction/Widgets/vtkButtonWidget.h
+++ b/Interaction/Widgets/vtkButtonWidget.h
@@ -59,6 +59,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkButtonRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkButtonWidget : public vtkAbstractWidget
@@ -136,4 +137,5 @@ private:
   void operator=(const vtkButtonWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCameraHandleSource.cxx b/Interaction/Widgets/vtkCameraHandleSource.cxx
index bc60bcfa1cbb576c9a597b68c8ab1ee0b30586dc..89bf97a54454c68d1ca856e2115d0a125aec493e 100644
--- a/Interaction/Widgets/vtkCameraHandleSource.cxx
+++ b/Interaction/Widgets/vtkCameraHandleSource.cxx
@@ -23,6 +23,7 @@
 #include "vtkTransformFilter.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCameraHandleSource);
 
 //------------------------------------------------------------------------------
@@ -231,3 +232,4 @@ void vtkCameraHandleSource::PrintSelf(ostream& os, vtkIndent indent)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCameraHandleSource.h b/Interaction/Widgets/vtkCameraHandleSource.h
index 7e5e76b09f7910d636250cec915bf3cd429a6d53..b3bebeb50569cdc15d0118774be3a396938a9753 100644
--- a/Interaction/Widgets/vtkCameraHandleSource.h
+++ b/Interaction/Widgets/vtkCameraHandleSource.h
@@ -32,6 +32,7 @@
 #include "vtkHandleSource.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkArrowSource;
 class vtkActor;
 class vtkAppendPolyData;
@@ -98,4 +99,5 @@ private:
   vtkNew<vtkSphereSource> PositionSphere;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCameraOrientationRepresentation.cxx b/Interaction/Widgets/vtkCameraOrientationRepresentation.cxx
index cfd047f069578bad98457eb49a231c117429aefc..6fd385c1cf1052ba01bdfa64f87b65e4f34d3bc6 100644
--- a/Interaction/Widgets/vtkCameraOrientationRepresentation.cxx
+++ b/Interaction/Widgets/vtkCameraOrientationRepresentation.cxx
@@ -58,6 +58,7 @@
   }
 
 //-----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCameraOrientationRepresentation);
 
 //-----------------------------------------------------------------------------
@@ -890,3 +891,4 @@ void vtkCameraOrientationRepresentation::PrintSelf(ostream& os, vtkIndent indent
   this->Transform->PrintSelf(os, indent);
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCameraOrientationRepresentation.h b/Interaction/Widgets/vtkCameraOrientationRepresentation.h
index ddeca49c7bbdc8009d4c1e12192f384c5017fc41..75b117032e992f2a2cfacd9e61d437fd4aaecce8 100644
--- a/Interaction/Widgets/vtkCameraOrientationRepresentation.h
+++ b/Interaction/Widgets/vtkCameraOrientationRepresentation.h
@@ -34,6 +34,7 @@
 #include "vtkInteractionWidgetsModule.h" // needed for export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkDiskSource;
 class vtkDoubleArray;
@@ -353,4 +354,5 @@ private:
   void operator=(const vtkCameraOrientationRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCameraOrientationWidget.cxx b/Interaction/Widgets/vtkCameraOrientationWidget.cxx
index f5b0ebdf599e6ab560b86782ca115c1c228e3208..c3fad683fce4c472dfd302568686f74b47d90056 100644
--- a/Interaction/Widgets/vtkCameraOrientationWidget.cxx
+++ b/Interaction/Widgets/vtkCameraOrientationWidget.cxx
@@ -30,6 +30,7 @@
 #include "vtkWidgetEvent.h"
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCameraOrientationWidget);
 
 //----------------------------------------------------------------------------
@@ -493,3 +494,4 @@ void vtkCameraOrientationWidget::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Animate: " << (this->Animate ? "True" : "False");
   os << indent << "AnimatorTotalFrames: " << this->AnimatorTotalFrames;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCameraOrientationWidget.h b/Interaction/Widgets/vtkCameraOrientationWidget.h
index 7e9c14a142a7e65680c3d12247b1469e0750f3e8..ebad02d4bde7458c6ad802eb02c00eec8717b583 100644
--- a/Interaction/Widgets/vtkCameraOrientationWidget.h
+++ b/Interaction/Widgets/vtkCameraOrientationWidget.h
@@ -59,6 +59,7 @@
 #include "vtkInteractionWidgetsModule.h" // needed for export macro
 #include "vtkWeakPointer.h"              // for weak pointer ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCameraInterpolator;
 class vtkCameraOrientationRepresentation;
 class vtkRenderer;
@@ -149,4 +150,5 @@ private:
   void operator=(const vtkCameraOrientationWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCameraPathRepresentation.cxx b/Interaction/Widgets/vtkCameraPathRepresentation.cxx
index 3e74da367fd4039477bee6d16d3806df640a2c84..9df5c05cef29b1e7a0ae823cf80eb87a04ba0ca4 100644
--- a/Interaction/Widgets/vtkCameraPathRepresentation.cxx
+++ b/Interaction/Widgets/vtkCameraPathRepresentation.cxx
@@ -23,6 +23,7 @@
 #include "vtkPolyDataMapper.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 constexpr double MINIMAL_SIZE_OFFSET = 0.001;
 
 //------------------------------------------------------------------------------
@@ -515,3 +516,4 @@ void vtkCameraPathRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << ")\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCameraPathRepresentation.h b/Interaction/Widgets/vtkCameraPathRepresentation.h
index cc8a28dcce4ee54587b0ba5c6ff5f76380c8eab3..8a613eac65f75844899a3a7745b531569f2d08d3 100644
--- a/Interaction/Widgets/vtkCameraPathRepresentation.h
+++ b/Interaction/Widgets/vtkCameraPathRepresentation.h
@@ -31,6 +31,7 @@
 #include "vtkAbstractSplineRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCameraHandleSource;
 class vtkCamera;
 
@@ -148,4 +149,5 @@ private:
   std::vector<vtkSmartPointer<vtkActor>> HandleActors;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCameraPathWidget.cxx b/Interaction/Widgets/vtkCameraPathWidget.cxx
index 639a3144f275d95619f160a27cbf10581d9b21e2..3128c20c40bab93185d549c47879f76e9ffedf66 100644
--- a/Interaction/Widgets/vtkCameraPathWidget.cxx
+++ b/Interaction/Widgets/vtkCameraPathWidget.cxx
@@ -27,6 +27,7 @@
 #include "vtkWidgetEventTranslator.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCameraPathWidget);
 
 //------------------------------------------------------------------------------
@@ -328,3 +329,4 @@ void vtkCameraPathWidget::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "WidgetState: " << this->WidgetState << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCameraPathWidget.h b/Interaction/Widgets/vtkCameraPathWidget.h
index 725b41b04fd9aa6976d3dea9396cb5333ab748bf..01c816fba7b35a7f7c3599334e3443e6c8187925 100644
--- a/Interaction/Widgets/vtkCameraPathWidget.h
+++ b/Interaction/Widgets/vtkCameraPathWidget.h
@@ -31,6 +31,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkNew.h"                      // for vtkNew
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCameraPathRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkCameraPathWidget : public vtkAbstractWidget
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkCameraPathWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCameraRepresentation.cxx b/Interaction/Widgets/vtkCameraRepresentation.cxx
index 6533dc3d88dafb737e70093034d63217a8adad3c..21eaf84ca05d7f1759a2e01d619ed9b20fd00dc0 100644
--- a/Interaction/Widgets/vtkCameraRepresentation.cxx
+++ b/Interaction/Widgets/vtkCameraRepresentation.cxx
@@ -29,6 +29,7 @@
 #include "vtkTransform.h"
 #include "vtkTransformPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCameraRepresentation);
 
 vtkCxxSetObjectMacro(vtkCameraRepresentation, Camera, vtkCamera);
@@ -262,3 +263,4 @@ void vtkCameraRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Camera: " << this->Camera << "\n";
   os << indent << "Number of Frames: " << this->NumberOfFrames << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCameraRepresentation.h b/Interaction/Widgets/vtkCameraRepresentation.h
index 98df13baebcbc5a995daa5fb69f0870e339c535b..ac6a11600c46d2e0ab07a1d4e2f26254a03bd8e0 100644
--- a/Interaction/Widgets/vtkCameraRepresentation.h
+++ b/Interaction/Widgets/vtkCameraRepresentation.h
@@ -33,6 +33,7 @@
 #include "vtkBorderRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkRenderWindowInteractor;
 class vtkCamera;
@@ -156,4 +157,5 @@ private:
   void operator=(const vtkCameraRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCameraWidget.cxx b/Interaction/Widgets/vtkCameraWidget.cxx
index d194a2ce9e80feb34241e1046aeb1f662121fd6d..aeb6133da0e707acb8ab082562baf162dbd1b01c 100644
--- a/Interaction/Widgets/vtkCameraWidget.cxx
+++ b/Interaction/Widgets/vtkCameraWidget.cxx
@@ -18,6 +18,7 @@
 #include "vtkCameraRepresentation.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCameraWidget);
 
 //------------------------------------------------------------------------------
@@ -65,3 +66,4 @@ void vtkCameraWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCameraWidget.h b/Interaction/Widgets/vtkCameraWidget.h
index af4bec50e75361e593b22f1f27c49a289cd58d2c..170e2e5dbc715e8c48686241c11ef45f43954521 100644
--- a/Interaction/Widgets/vtkCameraWidget.h
+++ b/Interaction/Widgets/vtkCameraWidget.h
@@ -35,6 +35,7 @@
 #include "vtkBorderWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCameraRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkCameraWidget : public vtkBorderWidget
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkCameraWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCaptionRepresentation.cxx b/Interaction/Widgets/vtkCaptionRepresentation.cxx
index 63950abcffb01596a1a7d7a2823baa2a25da0eb0..77f1c5ca8f24e9b153343950da5b90beff81563d 100644
--- a/Interaction/Widgets/vtkCaptionRepresentation.cxx
+++ b/Interaction/Widgets/vtkCaptionRepresentation.cxx
@@ -26,6 +26,7 @@
 #include "vtkTextProperty.h"
 #include "vtkTextRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCaptionRepresentation);
 
 //------------------------------------------------------------------------------
@@ -288,3 +289,4 @@ void vtkCaptionRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Anchor Representation:\n";
   this->AnchorRepresentation->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCaptionRepresentation.h b/Interaction/Widgets/vtkCaptionRepresentation.h
index 731c633dba6635bdd062ffb5464473e14c4c804f..0dd93e6cb58b14dc75d6fd341130cf9c430fe426 100644
--- a/Interaction/Widgets/vtkCaptionRepresentation.h
+++ b/Interaction/Widgets/vtkCaptionRepresentation.h
@@ -39,6 +39,7 @@
 #include "vtkBorderRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkCaptionActor2D;
 class vtkConeSource;
@@ -143,4 +144,5 @@ private:
   void operator=(const vtkCaptionRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCaptionWidget.cxx b/Interaction/Widgets/vtkCaptionWidget.cxx
index 8b5823b53bd087a4d88d4df14a0a470bfb16ad5d..0c41c73758748ec5dade1853f1411a784e14b31a 100644
--- a/Interaction/Widgets/vtkCaptionWidget.cxx
+++ b/Interaction/Widgets/vtkCaptionWidget.cxx
@@ -24,6 +24,7 @@
 #include "vtkWidgetCallbackMapper.h"
 #include "vtkWidgetEvent.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCaptionWidget);
 
 // The point widget invokes events that we watch for. Basically
@@ -181,3 +182,4 @@ void vtkCaptionWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCaptionWidget.h b/Interaction/Widgets/vtkCaptionWidget.h
index bf795816283d2f66eb7f5cbadba3c5fe0b7efa70..fa7371485948a88d559aa6241a316e030438b132 100644
--- a/Interaction/Widgets/vtkCaptionWidget.h
+++ b/Interaction/Widgets/vtkCaptionWidget.h
@@ -41,6 +41,7 @@
 #include "vtkBorderWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCaptionRepresentation;
 class vtkCaptionActor2D;
 class vtkHandleWidget;
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkCaptionWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCellCentersPointPlacer.cxx b/Interaction/Widgets/vtkCellCentersPointPlacer.cxx
index dda91f2f8e4b75c55770ebf00ba6b9559678f8d9..56fb21a9caa8337eda57d8d913294a6b491fe253 100644
--- a/Interaction/Widgets/vtkCellCentersPointPlacer.cxx
+++ b/Interaction/Widgets/vtkCellCentersPointPlacer.cxx
@@ -26,6 +26,7 @@
 #include "vtkPropCollection.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellCentersPointPlacer);
 
 //------------------------------------------------------------------------------
@@ -206,3 +207,4 @@ void vtkCellCentersPointPlacer::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Mode: " << this->Mode << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCellCentersPointPlacer.h b/Interaction/Widgets/vtkCellCentersPointPlacer.h
index 4b59f9e9ea5b1d78f59bc6b164c8f87e10fced22..4cb982436fac5e494e07b4e4516c25df50e7058c 100644
--- a/Interaction/Widgets/vtkCellCentersPointPlacer.h
+++ b/Interaction/Widgets/vtkCellCentersPointPlacer.h
@@ -41,6 +41,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPointPlacer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkPropCollection;
 class vtkProp;
@@ -148,4 +149,5 @@ private:
   void operator=(const vtkCellCentersPointPlacer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCenteredSliderRepresentation.cxx b/Interaction/Widgets/vtkCenteredSliderRepresentation.cxx
index 09b006a9f0688f6f69a1ed29256591c08ffc308f..993c59eba5a1c04d640103f512256afa5d0b3420 100644
--- a/Interaction/Widgets/vtkCenteredSliderRepresentation.cxx
+++ b/Interaction/Widgets/vtkCenteredSliderRepresentation.cxx
@@ -43,6 +43,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCenteredSliderRepresentation);
 
 //------------------------------------------------------------------------------
@@ -561,3 +562,4 @@ const char* vtkCenteredSliderRepresentation::GetTitleText()
 {
   return this->LabelActor->GetInput();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCenteredSliderRepresentation.h b/Interaction/Widgets/vtkCenteredSliderRepresentation.h
index 3627a5e921f94a49b54415eb05307c5b91162128..85d9610c8ae265c2d1befc1fb1951ef64aee9739 100644
--- a/Interaction/Widgets/vtkCenteredSliderRepresentation.h
+++ b/Interaction/Widgets/vtkCenteredSliderRepresentation.h
@@ -40,6 +40,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkSliderRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkCellArray;
 class vtkPolyData;
@@ -199,4 +200,5 @@ private:
   void operator=(const vtkCenteredSliderRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCenteredSliderWidget.cxx b/Interaction/Widgets/vtkCenteredSliderWidget.cxx
index af2f5361ee6856c337d8ba5b08ed2ddb183bc13c..d287305efd10a67ecf1f845ad49cb86a84848fb9 100644
--- a/Interaction/Widgets/vtkCenteredSliderWidget.cxx
+++ b/Interaction/Widgets/vtkCenteredSliderWidget.cxx
@@ -25,6 +25,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCenteredSliderWidget);
 
 //------------------------------------------------------------
@@ -193,3 +194,4 @@ void vtkCenteredSliderWidget::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCenteredSliderWidget.h b/Interaction/Widgets/vtkCenteredSliderWidget.h
index f1e5679316460cee0be3084273987437cca6146f..5f43aefa442ec81367b60587e4477bb188a04810 100644
--- a/Interaction/Widgets/vtkCenteredSliderWidget.h
+++ b/Interaction/Widgets/vtkCenteredSliderWidget.h
@@ -75,6 +75,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSliderRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkCenteredSliderWidget : public vtkAbstractWidget
@@ -153,4 +154,5 @@ private:
   void operator=(const vtkCenteredSliderWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCheckerboardRepresentation.cxx b/Interaction/Widgets/vtkCheckerboardRepresentation.cxx
index 240c792c111cb234b3e67429c5f2ffc74f3dac04..c429dcc49cd2d4e0b85462e496ec119ac7f138af 100644
--- a/Interaction/Widgets/vtkCheckerboardRepresentation.cxx
+++ b/Interaction/Widgets/vtkCheckerboardRepresentation.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkSliderRepresentation3D.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCheckerboardRepresentation);
 
 vtkCxxSetObjectMacro(vtkCheckerboardRepresentation, Checkerboard, vtkImageCheckerboard);
@@ -424,3 +425,4 @@ void vtkCheckerboardRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Left Representation\n";
   this->LeftRepresentation->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCheckerboardRepresentation.h b/Interaction/Widgets/vtkCheckerboardRepresentation.h
index 3f31efa7ee9c6546aef6b535f7d046cd6c11bc95..613a1b172e09e4c21550388e8f063ebb39ed32c2 100644
--- a/Interaction/Widgets/vtkCheckerboardRepresentation.h
+++ b/Interaction/Widgets/vtkCheckerboardRepresentation.h
@@ -35,6 +35,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageCheckerboard;
 class vtkImageActor;
 class vtkSliderRepresentation3D;
@@ -149,4 +150,5 @@ private:
   void operator=(const vtkCheckerboardRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCheckerboardWidget.cxx b/Interaction/Widgets/vtkCheckerboardWidget.cxx
index 95dec74bdc5f269ed72d4a8881cbcfde5f9f50a4..6052fb0ab5f9fe6ad0131684cca3f9ed8d296ea2 100644
--- a/Interaction/Widgets/vtkCheckerboardWidget.cxx
+++ b/Interaction/Widgets/vtkCheckerboardWidget.cxx
@@ -22,6 +22,7 @@
 #include "vtkSliderRepresentation3D.h"
 #include "vtkSliderWidget.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCheckerboardWidget);
 
 // The checkerboard simply observes the behavior of four vtkSliderWidgets.
@@ -270,3 +271,4 @@ void vtkCheckerboardWidget::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Left Slider: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCheckerboardWidget.h b/Interaction/Widgets/vtkCheckerboardWidget.h
index f1e4de622b1e462952b97f3f3e32b917eaa20505..76e429ece734097eaf68924655cc9007a212ba96 100644
--- a/Interaction/Widgets/vtkCheckerboardWidget.h
+++ b/Interaction/Widgets/vtkCheckerboardWidget.h
@@ -49,6 +49,7 @@
 #include "vtkAbstractWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCheckerboardRepresentation;
 class vtkSliderWidget;
 
@@ -120,4 +121,5 @@ private:
   void operator=(const vtkCheckerboardWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkClosedSurfacePointPlacer.cxx b/Interaction/Widgets/vtkClosedSurfacePointPlacer.cxx
index 6899ecf30683557f08bccdf05fe753133a625320..31c6136c152d8e1f19a4a44d710b8f7411360c8f 100644
--- a/Interaction/Widgets/vtkClosedSurfacePointPlacer.cxx
+++ b/Interaction/Widgets/vtkClosedSurfacePointPlacer.cxx
@@ -26,6 +26,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClosedSurfacePointPlacer);
 vtkCxxSetObjectMacro(vtkClosedSurfacePointPlacer, BoundingPlanes, vtkPlaneCollection);
 
@@ -358,3 +359,4 @@ void vtkClosedSurfacePointPlacer::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Minimum Distance: " << this->MinimumDistance << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkClosedSurfacePointPlacer.h b/Interaction/Widgets/vtkClosedSurfacePointPlacer.h
index 2d97500609588e14f272821b1e426089f585788d..b217db2568e5b330f5ec4f5822a479396351be1c 100644
--- a/Interaction/Widgets/vtkClosedSurfacePointPlacer.h
+++ b/Interaction/Widgets/vtkClosedSurfacePointPlacer.h
@@ -31,6 +31,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPointPlacer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlane;
 class vtkPlaneCollection;
 class vtkPlanes;
@@ -141,4 +142,5 @@ private:
   void operator=(const vtkClosedSurfacePointPlacer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCompassRepresentation.cxx b/Interaction/Widgets/vtkCompassRepresentation.cxx
index e6e44355d2b786d5aee8f39d5074d4e651cff2b8..7eae7e15139fecabb8521fbdfdbb53c9870dcf3e 100644
--- a/Interaction/Widgets/vtkCompassRepresentation.cxx
+++ b/Interaction/Widgets/vtkCompassRepresentation.cxx
@@ -46,6 +46,7 @@
 #include <algorithm>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompassRepresentation);
 
 //------------------------------------------------------------------------------
@@ -846,3 +847,4 @@ void vtkCompassRepresentation::SetRenderer(vtkRenderer* renderer)
   this->TiltRepresentation->SetRenderer(renderer);
   this->DistanceRepresentation->SetRenderer(renderer);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCompassRepresentation.h b/Interaction/Widgets/vtkCompassRepresentation.h
index 75f3c32183a90769e3c8dc65b6bab8e83282c1fc..6f92bf7661f2ba97ab71050905fd011c96b715a7 100644
--- a/Interaction/Widgets/vtkCompassRepresentation.h
+++ b/Interaction/Widgets/vtkCompassRepresentation.h
@@ -42,6 +42,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkSmartPointer.h"             // used for SmartPointers
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 class vtkPoints;
 class vtkCellArray;
@@ -292,4 +293,5 @@ private:
   void operator=(const vtkCompassRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCompassWidget.cxx b/Interaction/Widgets/vtkCompassWidget.cxx
index ecd39ef2b2042357a346b18a24c84be60cb20402..c393a19a7ec6ef8bb145d6d3a1eb77ec20e87e0b 100644
--- a/Interaction/Widgets/vtkCompassWidget.cxx
+++ b/Interaction/Widgets/vtkCompassWidget.cxx
@@ -32,6 +32,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompassWidget);
 
 //------------------------------------------------------------
@@ -386,3 +387,4 @@ void vtkCompassWidget::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCompassWidget.h b/Interaction/Widgets/vtkCompassWidget.h
index 8d1c34e93e54fc46f1f32eadc31bd0c79b5caac6..d0fe09a3ea378bbba79dbe57c62c8aaf55b7aff6 100644
--- a/Interaction/Widgets/vtkCompassWidget.h
+++ b/Interaction/Widgets/vtkCompassWidget.h
@@ -68,6 +68,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompassRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkCompassWidget : public vtkAbstractWidget
@@ -180,4 +181,5 @@ private:
   void operator=(const vtkCompassWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkConstrainedPointHandleRepresentation.cxx b/Interaction/Widgets/vtkConstrainedPointHandleRepresentation.cxx
index c1d24e0544c7d2ec01732947a7a05f2e4d1a63a2..b1504f50fe120dde669380d823cc983ee0076787 100644
--- a/Interaction/Widgets/vtkConstrainedPointHandleRepresentation.cxx
+++ b/Interaction/Widgets/vtkConstrainedPointHandleRepresentation.cxx
@@ -42,6 +42,7 @@
 #include "vtkTransform.h"
 #include "vtkTransformPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkConstrainedPointHandleRepresentation);
 
 vtkCxxSetObjectMacro(vtkConstrainedPointHandleRepresentation, ObliquePlane, vtkPlane);
@@ -734,3 +735,4 @@ void vtkConstrainedPointHandleRepresentation::PrintSelf(ostream& os, vtkIndent i
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkConstrainedPointHandleRepresentation.h b/Interaction/Widgets/vtkConstrainedPointHandleRepresentation.h
index 45ea5bc803f463cf0d95d28490ae26ecd53a71f8..9ecac4902ec1251f96a940e7cdf36fba366ae8b8 100644
--- a/Interaction/Widgets/vtkConstrainedPointHandleRepresentation.h
+++ b/Interaction/Widgets/vtkConstrainedPointHandleRepresentation.h
@@ -40,6 +40,7 @@
 #include "vtkHandleRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProperty;
 class vtkActor;
 class vtkPolyDataMapper;
@@ -298,4 +299,5 @@ private:
   void operator=(const vtkConstrainedPointHandleRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkContinuousValueWidget.cxx b/Interaction/Widgets/vtkContinuousValueWidget.cxx
index 053de37dfb9a9389e891f91f99aa1c556a543a6e..7e21dc201cb7f6858c72218ea11d6768f371f980 100644
--- a/Interaction/Widgets/vtkContinuousValueWidget.cxx
+++ b/Interaction/Widgets/vtkContinuousValueWidget.cxx
@@ -32,6 +32,7 @@
 #include "vtkWidgetEventTranslator.h"
 
 //------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkContinuousValueWidget::vtkContinuousValueWidget()
 {
   // Set the initial state
@@ -198,3 +199,4 @@ void vtkContinuousValueWidget::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkContinuousValueWidget.h b/Interaction/Widgets/vtkContinuousValueWidget.h
index ec903f9839d33f9fcd0560f75a0221fa5e01e6ca..53bd1da1acd6e17c64d969eaa225aa04c5740c25 100644
--- a/Interaction/Widgets/vtkContinuousValueWidget.h
+++ b/Interaction/Widgets/vtkContinuousValueWidget.h
@@ -68,6 +68,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContinuousValueWidgetRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkContinuousValueWidget : public vtkAbstractWidget
@@ -136,4 +137,5 @@ private:
   void operator=(const vtkContinuousValueWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkContinuousValueWidgetRepresentation.cxx b/Interaction/Widgets/vtkContinuousValueWidgetRepresentation.cxx
index 1716ae993a30459e64a1081bee91c0d7a41376bd..ae894b51b2109d1d87761e0bbce3d64403ce7be1 100644
--- a/Interaction/Widgets/vtkContinuousValueWidgetRepresentation.cxx
+++ b/Interaction/Widgets/vtkContinuousValueWidgetRepresentation.cxx
@@ -31,6 +31,7 @@
 #include "vtkWindow.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkContinuousValueWidgetRepresentation::vtkContinuousValueWidgetRepresentation()
 {
   this->Value = 0;
@@ -56,3 +57,4 @@ void vtkContinuousValueWidgetRepresentation::PrintSelf(ostream& os, vtkIndent in
 
   os << indent << "Value: " << this->GetValue() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkContinuousValueWidgetRepresentation.h b/Interaction/Widgets/vtkContinuousValueWidgetRepresentation.h
index f7998cd14f71b999a480e5fa6a37512e4bf8baca..9be9fe9df523c28bdd664db587ae603faab880ef 100644
--- a/Interaction/Widgets/vtkContinuousValueWidgetRepresentation.h
+++ b/Interaction/Widgets/vtkContinuousValueWidgetRepresentation.h
@@ -34,6 +34,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONWIDGETS_EXPORT vtkContinuousValueWidgetRepresentation
   : public vtkWidgetRepresentation
 {
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkContinuousValueWidgetRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkContourLineInterpolator.cxx b/Interaction/Widgets/vtkContourLineInterpolator.cxx
index febb4eaadecc2d439e0bc9599c22e179a6cbde26..2da4ec0b6af7caa7140054e2399620e0eb5de3b3 100644
--- a/Interaction/Widgets/vtkContourLineInterpolator.cxx
+++ b/Interaction/Widgets/vtkContourLineInterpolator.cxx
@@ -18,6 +18,7 @@
 #include "vtkIntArray.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkContourLineInterpolator::vtkContourLineInterpolator() = default;
 
 //------------------------------------------------------------------------------
@@ -81,3 +82,4 @@ void vtkContourLineInterpolator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkContourLineInterpolator.h b/Interaction/Widgets/vtkContourLineInterpolator.h
index 600e9b10075a9c4738a673fae2b75241f7880a1b..5ea2014c76018c373e2e187f8106fc8bdf2446ee 100644
--- a/Interaction/Widgets/vtkContourLineInterpolator.h
+++ b/Interaction/Widgets/vtkContourLineInterpolator.h
@@ -35,6 +35,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkContourRepresentation;
 class vtkIntArray;
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkContourLineInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkContourRepresentation.cxx b/Interaction/Widgets/vtkContourRepresentation.cxx
index 61ed7d1dbe6382dc1a8666f984cce9952f380254..2a729da147db2615068d6415025f953387e452f7 100644
--- a/Interaction/Widgets/vtkContourRepresentation.cxx
+++ b/Interaction/Widgets/vtkContourRepresentation.cxx
@@ -36,6 +36,7 @@
 #include <iterator>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkContourRepresentation, PointPlacer, vtkPointPlacer);
 vtkCxxSetObjectMacro(vtkContourRepresentation, LineInterpolator, vtkContourLineInterpolator);
 
@@ -1380,3 +1381,4 @@ void vtkContourRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Line Interpolator: " << this->LineInterpolator << "\n";
   os << indent << "Point Placer: " << this->PointPlacer << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkContourRepresentation.h b/Interaction/Widgets/vtkContourRepresentation.h
index 04c8c056ef941b63e452d100eea70ab8363c6b86..da530c82df3aa3bac2e0b9d596fa91322a74dd32 100644
--- a/Interaction/Widgets/vtkContourRepresentation.h
+++ b/Interaction/Widgets/vtkContourRepresentation.h
@@ -63,6 +63,7 @@
 #include "vtkWidgetRepresentation.h"
 #include <vector> // STL Header; Required for vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContourLineInterpolator;
 class vtkIncrementalOctreePointLocator;
 class vtkPointPlacer;
@@ -562,4 +563,5 @@ private:
   void operator=(const vtkContourRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkContourWidget.cxx b/Interaction/Widgets/vtkContourWidget.cxx
index 82aa05000822c559be67a2fcda35344b1ad33265..f8c0219d1b4d8de729bce4c33ad28fd50f253eaf 100644
--- a/Interaction/Widgets/vtkContourWidget.cxx
+++ b/Interaction/Widgets/vtkContourWidget.cxx
@@ -27,6 +27,7 @@
 #include "vtkWidgetCallbackMapper.h"
 #include "vtkWidgetEvent.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContourWidget);
 
 //------------------------------------------------------------------------------
@@ -658,3 +659,4 @@ void vtkContourWidget::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "FollowCursor: " << (this->FollowCursor ? "On" : "Off") << endl;
   os << indent << "ContinuousDraw: " << (this->ContinuousDraw ? "On" : "Off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkContourWidget.h b/Interaction/Widgets/vtkContourWidget.h
index a9048f36f6e6321d632e2123adbbe1e2f1aca57e..e91981d1930ec84d60759baf0c1a3e8027d79394 100644
--- a/Interaction/Widgets/vtkContourWidget.h
+++ b/Interaction/Widgets/vtkContourWidget.h
@@ -126,6 +126,7 @@
 #include "vtkAbstractWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContourRepresentation;
 class vtkPolyData;
 class vtkIdList;
@@ -285,4 +286,5 @@ private:
   void operator=(const vtkContourWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCoordinateFrameRepresentation.cxx b/Interaction/Widgets/vtkCoordinateFrameRepresentation.cxx
index 3806cae9e21c7268b24c10d335b7a487f8a2ec43..22fd25790c8b791957c6187eee57c55cd1983bc0 100644
--- a/Interaction/Widgets/vtkCoordinateFrameRepresentation.cxx
+++ b/Interaction/Widgets/vtkCoordinateFrameRepresentation.cxx
@@ -43,6 +43,7 @@
 #include "vtkTransform.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCoordinateFrameRepresentation);
 
 static constexpr double DefaultPickTol = 0.001;
@@ -1633,3 +1634,4 @@ void vtkCoordinateFrameRepresentation::ComputeAdaptivePickerTolerance()
   double tolerance = pickerCylinderRadius < DefaultPickTol ? pickerCylinderRadius : DefaultPickTol;
   this->CellPicker->SetTolerance(tolerance);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCoordinateFrameRepresentation.h b/Interaction/Widgets/vtkCoordinateFrameRepresentation.h
index 599850dd168e4360f935a06a5a640ac11ec8920c..6b23b79cc67540ae34f9204213af9a849f0188e3 100644
--- a/Interaction/Widgets/vtkCoordinateFrameRepresentation.h
+++ b/Interaction/Widgets/vtkCoordinateFrameRepresentation.h
@@ -37,6 +37,7 @@
 #include "vtkNew.h"                      // For vtkNew command
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkBox;
 class vtkCellPicker;
@@ -517,4 +518,5 @@ private:
   void operator=(const vtkCoordinateFrameRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCoordinateFrameWidget.cxx b/Interaction/Widgets/vtkCoordinateFrameWidget.cxx
index 076c3fa42fa8a42a3cb83b82b3fd234ad6c2e133..77bba1fd7470069b67556e11d8ca9999c538c339 100644
--- a/Interaction/Widgets/vtkCoordinateFrameWidget.cxx
+++ b/Interaction/Widgets/vtkCoordinateFrameWidget.cxx
@@ -27,6 +27,7 @@
 #include "vtkWidgetCallbackMapper.h"
 #include "vtkWidgetEvent.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCoordinateFrameWidget);
 
 // The coordinate frame widget observes its representation. The representation
@@ -443,3 +444,4 @@ void vtkCoordinateFrameWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCoordinateFrameWidget.h b/Interaction/Widgets/vtkCoordinateFrameWidget.h
index d5106d02d1df1459a2a43f3618a9772d77219746..bea8ee229597a0d9bd30b8a1c3484f353e198676 100644
--- a/Interaction/Widgets/vtkCoordinateFrameWidget.h
+++ b/Interaction/Widgets/vtkCoordinateFrameWidget.h
@@ -93,6 +93,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCoordinateFrameRepresentation;
 class vtkCoordinateFrameWidgetInteractionCallback;
 
@@ -184,4 +185,5 @@ private:
   void operator=(const vtkCoordinateFrameWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkCurveRepresentation.cxx b/Interaction/Widgets/vtkCurveRepresentation.cxx
index da7c903b24ca6254b71e947d19ef30f7f0134842..ecf1b26461063d9e89a4265947b3f7699089117c 100644
--- a/Interaction/Widgets/vtkCurveRepresentation.cxx
+++ b/Interaction/Widgets/vtkCurveRepresentation.cxx
@@ -42,6 +42,7 @@
 #include <iterator>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkCurveRepresentation::vtkCurveRepresentation()
 {
   this->LastEventPosition[0] = VTK_DOUBLE_MAX;
@@ -1022,3 +1023,4 @@ void vtkCurveRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Closed: " << (this->Closed ? "On" : "Off") << "\n";
   os << indent << "InteractionState: " << this->InteractionState << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkCurveRepresentation.h b/Interaction/Widgets/vtkCurveRepresentation.h
index bcb2005347c655f77f50193d81deb2654c9d90d7..5e7636e4b5f333ffd4aacc490b78ffd052107d79 100644
--- a/Interaction/Widgets/vtkCurveRepresentation.h
+++ b/Interaction/Widgets/vtkCurveRepresentation.h
@@ -32,6 +32,7 @@
 #include "vtkPolyDataAlgorithm.h"        // needed for vtkPolyDataAlgorithm
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkCellPicker;
 class vtkDoubleArray;
@@ -372,4 +373,5 @@ private:
   vtkCurveRepresentation(const vtkCurveRepresentation&) = delete;
   void operator=(const vtkCurveRepresentation&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkDijkstraImageContourLineInterpolator.cxx b/Interaction/Widgets/vtkDijkstraImageContourLineInterpolator.cxx
index 4992854dbc9cf5c17b07bdb7904f4b253b3446e6..463f4f781975e95f545a3c53e12e2ee843c9785b 100644
--- a/Interaction/Widgets/vtkDijkstraImageContourLineInterpolator.cxx
+++ b/Interaction/Widgets/vtkDijkstraImageContourLineInterpolator.cxx
@@ -26,6 +26,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDijkstraImageContourLineInterpolator);
 
 //------------------------------------------------------------------------------
@@ -145,3 +146,4 @@ void vtkDijkstraImageContourLineInterpolator::PrintSelf(ostream& os, vtkIndent i
   os << indent << "DijkstraImageGeodesicPath: " << this->DijkstraImageGeodesicPath << endl;
   os << indent << "CostImage: " << this->GetCostImage() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkDijkstraImageContourLineInterpolator.h b/Interaction/Widgets/vtkDijkstraImageContourLineInterpolator.h
index a067e0c9fbad02c45eb031d2a576e44f5d9b6be7..58d906bb99648dc675b5e12d880d9eb067c80414 100644
--- a/Interaction/Widgets/vtkDijkstraImageContourLineInterpolator.h
+++ b/Interaction/Widgets/vtkDijkstraImageContourLineInterpolator.h
@@ -41,6 +41,7 @@
 #include "vtkContourLineInterpolator.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDijkstraImageGeodesicPath;
 class vtkImageData;
 
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkDijkstraImageContourLineInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkDisplaySizedImplicitPlaneRepresentation.cxx b/Interaction/Widgets/vtkDisplaySizedImplicitPlaneRepresentation.cxx
index bf476c1e45e75a14232be3409d900a3926ad3ae5..d36210115abc9c2b6e3961b53f526dd14fa17433 100644
--- a/Interaction/Widgets/vtkDisplaySizedImplicitPlaneRepresentation.cxx
+++ b/Interaction/Widgets/vtkDisplaySizedImplicitPlaneRepresentation.cxx
@@ -50,6 +50,7 @@
 
 #include <cfloat> //for FLT_EPSILON
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDisplaySizedImplicitPlaneRepresentation);
 
 static constexpr double DefaultPickTol = 0.001;
@@ -1967,3 +1968,4 @@ void vtkDisplaySizedImplicitPlaneRepresentation::ComputeAdaptivePickerTolerance(
   double tolerance = pickerCylinderRadius < DefaultPickTol ? pickerCylinderRadius : DefaultPickTol;
   this->CellPicker->SetTolerance(tolerance);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkDisplaySizedImplicitPlaneRepresentation.h b/Interaction/Widgets/vtkDisplaySizedImplicitPlaneRepresentation.h
index e111bad5c1721662d9632598eeaca9743d91b0bd..f76b87c7de9e55e3d645bd80417e1a7d63b41dc2 100644
--- a/Interaction/Widgets/vtkDisplaySizedImplicitPlaneRepresentation.h
+++ b/Interaction/Widgets/vtkDisplaySizedImplicitPlaneRepresentation.h
@@ -42,6 +42,7 @@
 #include "vtkNew.h"                      // For vtkNew command
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkBox;
 class vtkCellPicker;
@@ -665,4 +666,5 @@ private:
   void operator=(const vtkDisplaySizedImplicitPlaneRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkDisplaySizedImplicitPlaneWidget.cxx b/Interaction/Widgets/vtkDisplaySizedImplicitPlaneWidget.cxx
index 96de232c4e3f3840c8905026f98994644b72c57b..bef234746882590d8a1cfaacc7289bcbbecbec98 100644
--- a/Interaction/Widgets/vtkDisplaySizedImplicitPlaneWidget.cxx
+++ b/Interaction/Widgets/vtkDisplaySizedImplicitPlaneWidget.cxx
@@ -30,6 +30,7 @@
 #include "vtkWidgetCallbackMapper.h"
 #include "vtkWidgetEvent.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDisplaySizedImplicitPlaneWidget);
 
 // The display sized implicit plane widget observes its representation. The representation
@@ -662,3 +663,4 @@ void vtkDisplaySizedImplicitPlaneWidget::PrintSelf(ostream& os, vtkIndent indent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkDisplaySizedImplicitPlaneWidget.h b/Interaction/Widgets/vtkDisplaySizedImplicitPlaneWidget.h
index 7c773a2430347d00153d8052d9090dc1d1eede67..1527e937910d65fd72305a8697c4a85c6bedb1ad 100644
--- a/Interaction/Widgets/vtkDisplaySizedImplicitPlaneWidget.h
+++ b/Interaction/Widgets/vtkDisplaySizedImplicitPlaneWidget.h
@@ -100,6 +100,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDisplaySizedImplicitPlaneRepresentation;
 class vtkDisplaySizedImplicitPlaneInteractionCallback;
 
@@ -202,4 +203,5 @@ private:
   void operator=(const vtkDisplaySizedImplicitPlaneWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkDistanceRepresentation.cxx b/Interaction/Widgets/vtkDistanceRepresentation.cxx
index 4f637c2da6c446749d6da4159ae98ade73b8a198..bb85d8fb39b443edf3ca8e61c933372fc35ff7b5 100644
--- a/Interaction/Widgets/vtkDistanceRepresentation.cxx
+++ b/Interaction/Widgets/vtkDistanceRepresentation.cxx
@@ -24,6 +24,7 @@
 #include "vtkRenderer.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkDistanceRepresentation, HandleRepresentation, vtkHandleRepresentation);
 
 //------------------------------------------------------------------------------
@@ -260,3 +261,4 @@ void vtkDistanceRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkDistanceRepresentation.h b/Interaction/Widgets/vtkDistanceRepresentation.h
index f2b0257538bcacc0bb73e228a90873d341f809e2..a63215eb9f9e273f8568a5c2f04a6ad4cdc8d462 100644
--- a/Interaction/Widgets/vtkDistanceRepresentation.h
+++ b/Interaction/Widgets/vtkDistanceRepresentation.h
@@ -30,6 +30,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHandleRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkDistanceRepresentation : public vtkWidgetRepresentation
@@ -210,4 +211,5 @@ private:
   void operator=(const vtkDistanceRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkDistanceRepresentation2D.cxx b/Interaction/Widgets/vtkDistanceRepresentation2D.cxx
index 88ca91884e8f2fba8cb62337cd4131c3f7f95bcb..da204e31a3631d7934080d2eef97da19656814b6 100644
--- a/Interaction/Widgets/vtkDistanceRepresentation2D.cxx
+++ b/Interaction/Widgets/vtkDistanceRepresentation2D.cxx
@@ -27,6 +27,7 @@
 #include "vtkTextProperty.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDistanceRepresentation2D);
 
 //------------------------------------------------------------------------------
@@ -238,3 +239,4 @@ void vtkDistanceRepresentation2D::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkDistanceRepresentation2D.h b/Interaction/Widgets/vtkDistanceRepresentation2D.h
index 95cf91ae606b16f43f8407a43d624c2ea2373934..917e1d086a17f800f9a102a512bfe55477a2a650 100644
--- a/Interaction/Widgets/vtkDistanceRepresentation2D.h
+++ b/Interaction/Widgets/vtkDistanceRepresentation2D.h
@@ -34,6 +34,7 @@
 #include "vtkDistanceRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAxisActor2D;
 class vtkProperty2D;
 
@@ -117,4 +118,5 @@ private:
   void operator=(const vtkDistanceRepresentation2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkDistanceRepresentation3D.cxx b/Interaction/Widgets/vtkDistanceRepresentation3D.cxx
index 70ca47490ec277f9803464e8818aff48011be8c5..57d33e893562038fa31e9cb10a31cf04ad9bbb89 100644
--- a/Interaction/Widgets/vtkDistanceRepresentation3D.cxx
+++ b/Interaction/Widgets/vtkDistanceRepresentation3D.cxx
@@ -38,6 +38,7 @@
 #include "vtkVectorText.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDistanceRepresentation3D);
 
 //------------------------------------------------------------------------------
@@ -478,3 +479,4 @@ void vtkDistanceRepresentation3D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "LabelActor: " << this->LabelActor << endl;
   os << indent << "GlyphActor: " << this->GlyphActor << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkDistanceRepresentation3D.h b/Interaction/Widgets/vtkDistanceRepresentation3D.h
index a34474e7d11caf409108c1b383b9be873747d874..f923ac358e418fd11fe82a5e2d6af8352c8f25e5 100644
--- a/Interaction/Widgets/vtkDistanceRepresentation3D.h
+++ b/Interaction/Widgets/vtkDistanceRepresentation3D.h
@@ -32,6 +32,7 @@
 #include "vtkDistanceRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkPolyData;
 class vtkPolyDataMapper;
@@ -224,4 +225,5 @@ private:
   void UpdateLabelPosition();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkDistanceWidget.cxx b/Interaction/Widgets/vtkDistanceWidget.cxx
index 957589fac3748a39135067c2ed6046c7400bed0a..58120dffd9acf71ed2f98e8ac9368b796a19f343 100644
--- a/Interaction/Widgets/vtkDistanceWidget.cxx
+++ b/Interaction/Widgets/vtkDistanceWidget.cxx
@@ -27,6 +27,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDistanceWidget);
 
 // The distance widget observes its two handles.
@@ -581,3 +582,4 @@ void vtkDistanceWidget::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkDistanceWidget.h b/Interaction/Widgets/vtkDistanceWidget.h
index 8fd894d43413d87239d49024ab56b75ca84cbdad..05184dd8e56e24c5f91fe94c5f9b153382997c98 100644
--- a/Interaction/Widgets/vtkDistanceWidget.h
+++ b/Interaction/Widgets/vtkDistanceWidget.h
@@ -72,6 +72,7 @@
 #include "vtkAbstractWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDistanceRepresentation;
 class vtkHandleWidget;
 class vtkDistanceWidgetCallback;
@@ -198,4 +199,5 @@ private:
   void operator=(const vtkDistanceWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkEllipsoidTensorProbeRepresentation.cxx b/Interaction/Widgets/vtkEllipsoidTensorProbeRepresentation.cxx
index 7d8f1afda7d3f667a3ed7fa95b60f167ed82becd..0a8eab1319f4652ed466abd701b296327efb24fd 100644
--- a/Interaction/Widgets/vtkEllipsoidTensorProbeRepresentation.cxx
+++ b/Interaction/Widgets/vtkEllipsoidTensorProbeRepresentation.cxx
@@ -33,6 +33,7 @@
 #include "vtkSphereSource.h"
 #include "vtkTensorGlyph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEllipsoidTensorProbeRepresentation);
 
 //------------------------------------------------------------------------------
@@ -216,3 +217,4 @@ void vtkEllipsoidTensorProbeRepresentation ::PrintSelf(ostream& os, vtkIndent in
   os << indent << "CellPicker: " << this->CellPicker << endl;
   os << indent << "PolyDataNormals: " << this->PolyDataNormals << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkEllipsoidTensorProbeRepresentation.h b/Interaction/Widgets/vtkEllipsoidTensorProbeRepresentation.h
index 23170f88dfeaa7d6abb7a9d2e417833ba5bab96e..c126b7290db6466b08af30ee1b524bb577275110 100644
--- a/Interaction/Widgets/vtkEllipsoidTensorProbeRepresentation.h
+++ b/Interaction/Widgets/vtkEllipsoidTensorProbeRepresentation.h
@@ -32,6 +32,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkTensorProbeRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellPicker;
 class vtkTensorGlyph;
 class vtkPolyDataNormals;
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkEllipsoidTensorProbeRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkEqualizerContextItem.cxx b/Interaction/Widgets/vtkEqualizerContextItem.cxx
index d0574ffdd2fca80c2e4f6c7ff8bd33aca2e0ad7d..39ac482b80fb64849b0720b05934b5c0dd1c30a4 100644
--- a/Interaction/Widgets/vtkEqualizerContextItem.cxx
+++ b/Interaction/Widgets/vtkEqualizerContextItem.cxx
@@ -34,6 +34,7 @@
 
 namespace equalizer
 {
+VTK_ABI_NAMESPACE_BEGIN
 struct EqualizerPoint
 {
   static const int radius{ 4 };
@@ -98,8 +99,10 @@ bool isNearLine(
   bool res = { onLine && t < 1.0 && t > 0.0 };
   return res;
 }
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 // using namespace equalizer;
 
 class vtkEqualizerContextItem::vtkInternal
@@ -465,3 +468,4 @@ void vtkEqualizerContextItem::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Pen = " << this->Pen << endl;
   os << indent << "Brush = " << this->Brush << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkEqualizerContextItem.h b/Interaction/Widgets/vtkEqualizerContextItem.h
index 251e919bdeb8f52651337f9db3bb7dd8860725ca..174337002e55fb8804ff39dddaea66a81177c906 100644
--- a/Interaction/Widgets/vtkEqualizerContextItem.h
+++ b/Interaction/Widgets/vtkEqualizerContextItem.h
@@ -21,6 +21,7 @@
 
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBrush;
 class vtkPen;
 class vtkContextTransform;
@@ -129,4 +130,5 @@ private:
   vtkInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkEvent.cxx b/Interaction/Widgets/vtkEvent.cxx
index f22b93e9321eabf88820ad5d2d542044e2091463..d25220e5a4ff11fa1aa469c757c7e75e08e18805 100644
--- a/Interaction/Widgets/vtkEvent.cxx
+++ b/Interaction/Widgets/vtkEvent.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkRenderWindowInteractor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEvent);
 
 vtkEvent::vtkEvent()
@@ -131,3 +132,4 @@ void vtkEvent::PrintSelf(ostream& os, vtkIndent indent)
     os << this->KeySym << "\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkEvent.h b/Interaction/Widgets/vtkEvent.h
index dbf26239042271c173fe736046cf76a2c613cd7c..230a9926927ce95a1642f12aaf5dbf5732e3f649 100644
--- a/Interaction/Widgets/vtkEvent.h
+++ b/Interaction/Widgets/vtkEvent.h
@@ -26,6 +26,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindowInteractor;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkEvent : public vtkObject
@@ -124,4 +125,5 @@ private:
   void operator=(const vtkEvent&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkFinitePlaneRepresentation.cxx b/Interaction/Widgets/vtkFinitePlaneRepresentation.cxx
index 0da3be2add5193e13f622e559e8335e7b97d593d..ed3450f017e77f074be52ed3c5dc1cde15902710 100644
--- a/Interaction/Widgets/vtkFinitePlaneRepresentation.cxx
+++ b/Interaction/Widgets/vtkFinitePlaneRepresentation.cxx
@@ -41,6 +41,7 @@
 #include "vtkTubeFilter.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFinitePlaneRepresentation);
 
 //------------------------------------------------------------------------------
@@ -1130,3 +1131,4 @@ void vtkFinitePlaneRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Tubing: " << (this->Tubing ? "On" : "Off") << "\n";
   os << indent << "Draw Plane: " << (this->DrawPlane ? "On" : "Off") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkFinitePlaneRepresentation.h b/Interaction/Widgets/vtkFinitePlaneRepresentation.h
index ce55fffec5cfacd02d76c828540919321e0661cd..6567efbeeff5b73dc234624012945ace0fc746f5 100644
--- a/Interaction/Widgets/vtkFinitePlaneRepresentation.h
+++ b/Interaction/Widgets/vtkFinitePlaneRepresentation.h
@@ -35,6 +35,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkBox;
 class vtkCellPicker;
@@ -331,4 +332,5 @@ private:
   void operator=(const vtkFinitePlaneRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkFinitePlaneWidget.cxx b/Interaction/Widgets/vtkFinitePlaneWidget.cxx
index cf378662dc874ca32e91ff7eb54056b2347c912f..60a0ecf88faf9c2557b1ab8bdf5ac02b9d95c432 100644
--- a/Interaction/Widgets/vtkFinitePlaneWidget.cxx
+++ b/Interaction/Widgets/vtkFinitePlaneWidget.cxx
@@ -25,6 +25,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFinitePlaneWidget);
 
 //------------------------------------------------------------------------------
@@ -197,3 +198,4 @@ int vtkFinitePlaneWidget::UpdateCursorShape(int state)
 
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkFinitePlaneWidget.h b/Interaction/Widgets/vtkFinitePlaneWidget.h
index cc62f12f49451ad93b9d5cf0e6f0ab45fba00c1a..f321c1d562cadc9574229bdc7872b44458591efd 100644
--- a/Interaction/Widgets/vtkFinitePlaneWidget.h
+++ b/Interaction/Widgets/vtkFinitePlaneWidget.h
@@ -73,6 +73,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFinitePlaneRepresentation;
 class vtkHandleWidget;
 
@@ -136,4 +137,5 @@ private:
   void operator=(const vtkFinitePlaneWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkFixedSizeHandleRepresentation3D.cxx b/Interaction/Widgets/vtkFixedSizeHandleRepresentation3D.cxx
index 662f504824505d0ba74f55da7d2cbd5bf6083004..f964e6a77a304136af2563e5a533b213f952759d 100644
--- a/Interaction/Widgets/vtkFixedSizeHandleRepresentation3D.cxx
+++ b/Interaction/Widgets/vtkFixedSizeHandleRepresentation3D.cxx
@@ -23,6 +23,7 @@
 #include "vtkTransform.h"
 #include "vtkTransformPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFixedSizeHandleRepresentation3D);
 
 //------------------------------------------------------------------------------
@@ -150,3 +151,4 @@ void vtkFixedSizeHandleRepresentation3D::BuildRepresentation()
     this->SetHandle(this->SphereSource->GetOutput());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkFixedSizeHandleRepresentation3D.h b/Interaction/Widgets/vtkFixedSizeHandleRepresentation3D.h
index a5363a57b63318b2b8de896e9f7cba4e76b8eada..33f975899a34d593493f4697f70a044e6e0f2db1 100644
--- a/Interaction/Widgets/vtkFixedSizeHandleRepresentation3D.h
+++ b/Interaction/Widgets/vtkFixedSizeHandleRepresentation3D.h
@@ -39,6 +39,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPolygonalHandleRepresentation3D.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSphereSource;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkFixedSizeHandleRepresentation3D
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkFixedSizeHandleRepresentation3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkFocalPlaneContourRepresentation.cxx b/Interaction/Widgets/vtkFocalPlaneContourRepresentation.cxx
index 9a5123e3559fecd3ac7cbbd2c91b0170674146fe..fc99f52c5c39988537ef6291cc1db82dba6cd5aa 100644
--- a/Interaction/Widgets/vtkFocalPlaneContourRepresentation.cxx
+++ b/Interaction/Widgets/vtkFocalPlaneContourRepresentation.cxx
@@ -33,6 +33,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkFocalPlaneContourRepresentation::vtkFocalPlaneContourRepresentation()
 {
   this->PointPlacer = vtkFocalPlanePointPlacer::New();
@@ -225,3 +226,4 @@ void vtkFocalPlaneContourRepresentation::PrintSelf(ostream& os, vtkIndent indent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkFocalPlaneContourRepresentation.h b/Interaction/Widgets/vtkFocalPlaneContourRepresentation.h
index 2f5c392bded6d2ca32af78f2461a6a1c3b16fabd..f46b2ff8973ba50fed2585d0911f3e43314a6538 100644
--- a/Interaction/Widgets/vtkFocalPlaneContourRepresentation.h
+++ b/Interaction/Widgets/vtkFocalPlaneContourRepresentation.h
@@ -36,6 +36,7 @@
 #include "vtkContourRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHandleRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkFocalPlaneContourRepresentation
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkFocalPlaneContourRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkFocalPlanePointPlacer.cxx b/Interaction/Widgets/vtkFocalPlanePointPlacer.cxx
index f3c5f81232eb38082840ecd07c68c968f9ba8695..d6d8600b1dbb31498e4df6a08db438ea31e0e915 100644
--- a/Interaction/Widgets/vtkFocalPlanePointPlacer.cxx
+++ b/Interaction/Widgets/vtkFocalPlanePointPlacer.cxx
@@ -22,6 +22,7 @@
 #include "vtkPlanes.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFocalPlanePointPlacer);
 
 //------------------------------------------------------------------------------
@@ -223,3 +224,4 @@ void vtkFocalPlanePointPlacer::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "  Zmin,Zmax: (" << this->PointBounds[4] << ", " << this->PointBounds[5] << ")\n";
   os << indent << "Offset: " << this->Offset << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkFocalPlanePointPlacer.h b/Interaction/Widgets/vtkFocalPlanePointPlacer.h
index a8846f8394d4bca4525b28e0333dc70352d610b0..bd8df50cf3b5a13c5d1ea6d7b090499be13e82af 100644
--- a/Interaction/Widgets/vtkFocalPlanePointPlacer.h
+++ b/Interaction/Widgets/vtkFocalPlanePointPlacer.h
@@ -23,6 +23,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPointPlacer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkFocalPlanePointPlacer : public vtkPointPlacer
@@ -107,4 +108,5 @@ private:
   void operator=(const vtkFocalPlanePointPlacer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkHandleRepresentation.cxx b/Interaction/Widgets/vtkHandleRepresentation.cxx
index 6f26746705894740b53952dd8904cf28c9885537..e3c1c9a9ea1963780621523a7c06fdb77f7d5dc4 100644
--- a/Interaction/Widgets/vtkHandleRepresentation.cxx
+++ b/Interaction/Widgets/vtkHandleRepresentation.cxx
@@ -23,6 +23,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkHandleRepresentation, PointPlacer, vtkPointPlacer);
 
 //------------------------------------------------------------------------------
@@ -298,3 +299,4 @@ void vtkHandleRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   // this->InteractionState is printed in superclass
   // this is commented to avoid PrintSelf errors
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkHandleRepresentation.h b/Interaction/Widgets/vtkHandleRepresentation.h
index 67ea2deba497fd9f9d78a1fa7a8a5ab0a794540f..e40abe0a3dd9a6f04da4a7fc364af6c99241758f 100644
--- a/Interaction/Widgets/vtkHandleRepresentation.h
+++ b/Interaction/Widgets/vtkHandleRepresentation.h
@@ -49,6 +49,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCoordinate;
 class vtkRenderer;
 class vtkPointPlacer;
@@ -269,4 +270,5 @@ private:
   void operator=(const vtkHandleRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkHandleWidget.cxx b/Interaction/Widgets/vtkHandleWidget.cxx
index 5e38b872c9a79bd498f6e64a7705a4a12cafd1af..c6a61c38f5a709661f9c20862aa2b586581390a7 100644
--- a/Interaction/Widgets/vtkHandleWidget.cxx
+++ b/Interaction/Widgets/vtkHandleWidget.cxx
@@ -26,6 +26,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHandleWidget);
 
 //------------------------------------------------------------------------------
@@ -515,3 +516,4 @@ void vtkHandleWidget::ProcessKeyEvents(vtkObject*, unsigned long event, void* cl
       break;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkHandleWidget.h b/Interaction/Widgets/vtkHandleWidget.h
index 29a0824a1c01f7c095d7702f9fb927aba7d4d1f2..fb24b4cb607e06d898012d411e874cdcad22025c 100644
--- a/Interaction/Widgets/vtkHandleWidget.h
+++ b/Interaction/Widgets/vtkHandleWidget.h
@@ -68,6 +68,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHandleRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkHandleWidget : public vtkAbstractWidget
@@ -211,4 +212,5 @@ private:
   void operator=(const vtkHandleWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkHoverWidget.cxx b/Interaction/Widgets/vtkHoverWidget.cxx
index e268d652cfe4f767e91c5b47f7d5e0ede58e8521..9b5201afd2bcfd534fa6afa8f6548c7b14151044 100644
--- a/Interaction/Widgets/vtkHoverWidget.cxx
+++ b/Interaction/Widgets/vtkHoverWidget.cxx
@@ -21,6 +21,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHoverWidget);
 
 //------------------------------------------------------------------------------
@@ -155,3 +156,4 @@ void vtkHoverWidget::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Timer Duration: " << this->TimerDuration << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkHoverWidget.h b/Interaction/Widgets/vtkHoverWidget.h
index c2738f6279a928e6efd0de02fa9c6e3fe19e97cd..de38507a84f27d60cdaf760459c62c8b1421a2c9 100644
--- a/Interaction/Widgets/vtkHoverWidget.h
+++ b/Interaction/Widgets/vtkHoverWidget.h
@@ -73,6 +73,7 @@
 #include "vtkAbstractWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONWIDGETS_EXPORT vtkHoverWidget : public vtkAbstractWidget
 {
 public:
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkHoverWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkImageActorPointPlacer.cxx b/Interaction/Widgets/vtkImageActorPointPlacer.cxx
index 60c710e1395d967c84c37499cc59571f4a7ab120..7c8c8095ac0bbe546fc12f76c04947ac9daee54e 100644
--- a/Interaction/Widgets/vtkImageActorPointPlacer.cxx
+++ b/Interaction/Widgets/vtkImageActorPointPlacer.cxx
@@ -20,6 +20,7 @@
 #include "vtkPlane.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageActorPointPlacer);
 
 vtkCxxSetObjectMacro(vtkImageActorPointPlacer, ImageActor, vtkImageActor);
@@ -265,3 +266,4 @@ void vtkImageActorPointPlacer::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Image Actor: " << this->ImageActor << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkImageActorPointPlacer.h b/Interaction/Widgets/vtkImageActorPointPlacer.h
index 8a395d8c8e94cb6fb5b429270a7d563fbbaa97bb..f53e72d211c5c54d8be4382efef89dd335b04957 100644
--- a/Interaction/Widgets/vtkImageActorPointPlacer.h
+++ b/Interaction/Widgets/vtkImageActorPointPlacer.h
@@ -29,6 +29,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPointPlacer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBoundedPlanePointPlacer;
 class vtkImageActor;
 class vtkRenderer;
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkImageActorPointPlacer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkImageCroppingRegionsWidget.cxx b/Interaction/Widgets/vtkImageCroppingRegionsWidget.cxx
index 33cbbfdd1f1d023f11e60ede3f29eca7329f7239..58e614d5a678437bbb4ba5b0b56400a5adc8ab99 100644
--- a/Interaction/Widgets/vtkImageCroppingRegionsWidget.cxx
+++ b/Interaction/Widgets/vtkImageCroppingRegionsWidget.cxx
@@ -28,6 +28,7 @@
 #include "vtkRenderer.h"
 #include "vtkVolumeMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageCroppingRegionsWidget);
 
 //------------------------------------------------------------------------------
@@ -1294,3 +1295,4 @@ void vtkImageCroppingRegionsWidget::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "SliceOrientation: " << this->SliceOrientation << endl;
   os << indent << "VolumeMapper: " << this->VolumeMapper << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkImageCroppingRegionsWidget.h b/Interaction/Widgets/vtkImageCroppingRegionsWidget.h
index 9de6ecd6cda161762daa7242a5aa4787a3e24dac..739f8ef91d64bea06aae75d9599df1edb9b3f6c6 100644
--- a/Interaction/Widgets/vtkImageCroppingRegionsWidget.h
+++ b/Interaction/Widgets/vtkImageCroppingRegionsWidget.h
@@ -33,6 +33,7 @@
 #include "vtk3DWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 class vtkImageData;
 class vtkLineSource;
@@ -248,4 +249,5 @@ private:
   void operator=(const vtkImageCroppingRegionsWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkImageOrthoPlanes.cxx b/Interaction/Widgets/vtkImageOrthoPlanes.cxx
index 57035cc1d88604faef3972b664dadf7280a9e8ee..c8da6d59fa80180d870a74113b6e445726587677 100644
--- a/Interaction/Widgets/vtkImageOrthoPlanes.cxx
+++ b/Interaction/Widgets/vtkImageOrthoPlanes.cxx
@@ -30,6 +30,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageOrthoPlanes);
 
 //------------------------------------------------------------------------------
@@ -787,3 +788,4 @@ void vtkImageOrthoPlanes::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Transform: " << this->Transform << "\n";
   this->Transform->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkImageOrthoPlanes.h b/Interaction/Widgets/vtkImageOrthoPlanes.h
index 54ebe3cddf90a7f2f060f1317175de9150098784..e205b2f1329c11dbff6d2e030132d0e6c4df7d69 100644
--- a/Interaction/Widgets/vtkImageOrthoPlanes.h
+++ b/Interaction/Widgets/vtkImageOrthoPlanes.h
@@ -31,6 +31,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImagePlaneWidget;
 class vtkTransform;
 class vtkMatrix4x4;
@@ -102,4 +103,5 @@ private:
   void operator=(const vtkImageOrthoPlanes&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkImagePlaneWidget.cxx b/Interaction/Widgets/vtkImagePlaneWidget.cxx
index 9a3bcdeff31fb291f85216119ab135dc2acc20a6..903ea9ed4416a44f2200e27b1faf01a36a52eb1b 100644
--- a/Interaction/Widgets/vtkImagePlaneWidget.cxx
+++ b/Interaction/Widgets/vtkImagePlaneWidget.cxx
@@ -44,6 +44,7 @@
 #include "vtkTexture.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImagePlaneWidget);
 
 vtkCxxSetObjectMacro(vtkImagePlaneWidget, PlaneProperty, vtkProperty);
@@ -3073,3 +3074,4 @@ void vtkImagePlaneWidget::Scale(double* p1, double* p2, int vtkNotUsed(X), int Y
   this->PlaneSource->SetPoint1(point1);
   this->PlaneSource->SetPoint2(point2);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkImagePlaneWidget.h b/Interaction/Widgets/vtkImagePlaneWidget.h
index 89ab67e1a37b1fc4d2431108b039c1da398c7a4c..96b86c43d75b568305739c554cc1b3a6c0d192a1 100644
--- a/Interaction/Widgets/vtkImagePlaneWidget.h
+++ b/Interaction/Widgets/vtkImagePlaneWidget.h
@@ -108,6 +108,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPolyDataSourceWidget.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkAbstractPropPicker;
 class vtkDataSetMapper;
@@ -723,4 +724,5 @@ private:
   void operator=(const vtkImagePlaneWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkImageTracerWidget.cxx b/Interaction/Widgets/vtkImageTracerWidget.cxx
index bf53ec7cc69dc1fd6267cb627850f365669e18cc..9b6760564dd55928a3b8239fb82a407c29e8dcea 100644
--- a/Interaction/Widgets/vtkImageTracerWidget.cxx
+++ b/Interaction/Widgets/vtkImageTracerWidget.cxx
@@ -38,6 +38,7 @@
 #include "vtkTransform.h"
 #include "vtkTransformPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageTracerWidget);
 
 vtkCxxSetObjectMacro(vtkImageTracerWidget, HandleProperty, vtkProperty);
@@ -1563,3 +1564,4 @@ void vtkImageTracerWidget::SizeHandles()
 {
   // TODO...
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkImageTracerWidget.h b/Interaction/Widgets/vtkImageTracerWidget.h
index 5f9b9ade7b2fe4dc83a240c3117caab759403897..e868fe9ad6a4f826dc1e83bb4b4ebfe06afcca22 100644
--- a/Interaction/Widgets/vtkImageTracerWidget.h
+++ b/Interaction/Widgets/vtkImageTracerWidget.h
@@ -57,6 +57,7 @@
 #include "vtk3DWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPropPicker;
 class vtkActor;
 class vtkCellArray;
@@ -387,4 +388,5 @@ private:
   void operator=(const vtkImageTracerWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkImplicitCylinderRepresentation.cxx b/Interaction/Widgets/vtkImplicitCylinderRepresentation.cxx
index 5192c7e96a69994a390a558dfa73d17533840079..098ae9bb6970ed291aaeb6bc9ed0770a686d015e 100644
--- a/Interaction/Widgets/vtkImplicitCylinderRepresentation.cxx
+++ b/Interaction/Widgets/vtkImplicitCylinderRepresentation.cxx
@@ -53,6 +53,7 @@
 #include <algorithm>
 #include <cfloat> //for FLT_EPSILON
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitCylinderRepresentation);
 
 //------------------------------------------------------------------------------
@@ -1546,3 +1547,4 @@ void vtkImplicitCylinderRepresentation::RegisterPickers()
   }
   pm->AddPicker(this->Picker, this);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkImplicitCylinderRepresentation.h b/Interaction/Widgets/vtkImplicitCylinderRepresentation.h
index 8c6c731e85a6d05b063e432426a93b273f2a9a0a..ed48f6c735a1feefd2c36c6976b253475e894a83 100644
--- a/Interaction/Widgets/vtkImplicitCylinderRepresentation.h
+++ b/Interaction/Widgets/vtkImplicitCylinderRepresentation.h
@@ -43,6 +43,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyDataMapper;
 class vtkCellPicker;
@@ -535,4 +536,5 @@ private:
   void operator=(const vtkImplicitCylinderRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkImplicitCylinderWidget.cxx b/Interaction/Widgets/vtkImplicitCylinderWidget.cxx
index ce73ab6d16267bdaabbc887b0eddad97d16d35d8..81a202ef95cc2e766d2ae2223f9b211cc84525a7 100644
--- a/Interaction/Widgets/vtkImplicitCylinderWidget.cxx
+++ b/Interaction/Widgets/vtkImplicitCylinderWidget.cxx
@@ -26,6 +26,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitCylinderWidget);
 
 //------------------------------------------------------------------------------
@@ -377,3 +378,4 @@ void vtkImplicitCylinderWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkImplicitCylinderWidget.h b/Interaction/Widgets/vtkImplicitCylinderWidget.h
index c23fb5205d49e286fe1e69908a6e055406a9fa0e..3ba5769152b81c5683dc0e060f4662c2d4355d15 100644
--- a/Interaction/Widgets/vtkImplicitCylinderWidget.h
+++ b/Interaction/Widgets/vtkImplicitCylinderWidget.h
@@ -92,6 +92,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitCylinderRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkImplicitCylinderWidget : public vtkAbstractWidget
@@ -167,4 +168,5 @@ private:
   void operator=(const vtkImplicitCylinderWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkImplicitImageRepresentation.cxx b/Interaction/Widgets/vtkImplicitImageRepresentation.cxx
index 79d5911332d9946ff754b1ad520a93ad9f06695a..af1bc3bb0ddf639f9845ad172981ed5067d2cf2e 100644
--- a/Interaction/Widgets/vtkImplicitImageRepresentation.cxx
+++ b/Interaction/Widgets/vtkImplicitImageRepresentation.cxx
@@ -37,6 +37,7 @@
 
 #include <iostream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitImageRepresentation);
 vtkCxxSetObjectMacro(vtkImplicitImageRepresentation, ColorMap, vtkImageMapToColors);
 
@@ -471,3 +472,4 @@ void vtkImplicitImageRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "ColorMap: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkImplicitImageRepresentation.h b/Interaction/Widgets/vtkImplicitImageRepresentation.h
index c00b293eb9a5d22caadd8a251569029d8dd7a481..2801c5a5c1ba56b14d02656763acdbef799ad0cf 100644
--- a/Interaction/Widgets/vtkImplicitImageRepresentation.h
+++ b/Interaction/Widgets/vtkImplicitImageRepresentation.h
@@ -38,6 +38,7 @@
 #include "vtkImplicitPlaneRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkImageData;
 class vtkImageMapToColors;
@@ -183,4 +184,5 @@ private:
   void operator=(const vtkImplicitImageRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkImplicitPlaneRepresentation.cxx b/Interaction/Widgets/vtkImplicitPlaneRepresentation.cxx
index 3d7fd8cc991e71e1ce8d039bb8b4e9263a94fe26..beb7eb5ac0ce58f043fc1501f1997387fe09c075 100644
--- a/Interaction/Widgets/vtkImplicitPlaneRepresentation.cxx
+++ b/Interaction/Widgets/vtkImplicitPlaneRepresentation.cxx
@@ -48,6 +48,7 @@
 
 #include <cfloat> //for FLT_EPSILON
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitPlaneRepresentation);
 
 //------------------------------------------------------------------------------
@@ -1779,3 +1780,4 @@ void vtkImplicitPlaneRepresentation::RegisterPickers()
   }
   pm->AddPicker(this->Picker, this);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkImplicitPlaneRepresentation.h b/Interaction/Widgets/vtkImplicitPlaneRepresentation.h
index 1afb7e7f05d3e7620e83ffb46b7d0f3f0736b3c1..6e620403f7fe1f99211aee8156a19af81faed746 100644
--- a/Interaction/Widgets/vtkImplicitPlaneRepresentation.h
+++ b/Interaction/Widgets/vtkImplicitPlaneRepresentation.h
@@ -42,6 +42,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkBox;
 class vtkCellPicker;
@@ -563,4 +564,5 @@ private:
   void operator=(const vtkImplicitPlaneRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkImplicitPlaneWidget.cxx b/Interaction/Widgets/vtkImplicitPlaneWidget.cxx
index 9fb246ea90a80e451359623ac23f35177109f51d..88f4f3ea2708b41e3475623587108e68a7fdd8ec 100644
--- a/Interaction/Widgets/vtkImplicitPlaneWidget.cxx
+++ b/Interaction/Widgets/vtkImplicitPlaneWidget.cxx
@@ -39,6 +39,7 @@
 #include "vtkTransform.h"
 #include "vtkTubeFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitPlaneWidget);
 
 //------------------------------------------------------------------------------
@@ -1279,3 +1280,4 @@ void vtkImplicitPlaneWidget::SizeHandles()
 
   this->EdgesTuber->SetRadius(0.25 * radius);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkImplicitPlaneWidget.h b/Interaction/Widgets/vtkImplicitPlaneWidget.h
index e9051ead7a35febe2f3ae641b41c9f5660c0cccd..0bae2dd06ba2fd345495910033ec6e7c46aa1617 100644
--- a/Interaction/Widgets/vtkImplicitPlaneWidget.h
+++ b/Interaction/Widgets/vtkImplicitPlaneWidget.h
@@ -67,6 +67,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPolyDataSourceWidget.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyDataMapper;
 class vtkCellPicker;
@@ -410,4 +411,5 @@ private:
   void operator=(const vtkImplicitPlaneWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkImplicitPlaneWidget2.cxx b/Interaction/Widgets/vtkImplicitPlaneWidget2.cxx
index fe70d79e685015866432a1c76cb054d03ff4837f..f65ceddf276fbf8a7fbe8166273ac0427cf17210 100644
--- a/Interaction/Widgets/vtkImplicitPlaneWidget2.cxx
+++ b/Interaction/Widgets/vtkImplicitPlaneWidget2.cxx
@@ -28,6 +28,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImplicitPlaneWidget2);
 
 // The implicit plane widget observes its representation. The representation
@@ -583,3 +584,4 @@ void vtkImplicitPlaneWidget2::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkImplicitPlaneWidget2.h b/Interaction/Widgets/vtkImplicitPlaneWidget2.h
index 8d0933ea7fc20e908b7fa36e670ff1f32eb99bb9..6f84e81be62455e027a471f21b8b77a964a5047b 100644
--- a/Interaction/Widgets/vtkImplicitPlaneWidget2.h
+++ b/Interaction/Widgets/vtkImplicitPlaneWidget2.h
@@ -96,6 +96,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImplicitPlaneRepresentation;
 class vtkImplicitPlaneWidget2InteractionCallback;
 
@@ -196,4 +197,5 @@ private:
   void operator=(const vtkImplicitPlaneWidget2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkLightRepresentation.cxx b/Interaction/Widgets/vtkLightRepresentation.cxx
index 69698cfe23ee47e780fca4281762285849da8e8d..c7f7bae2f7a4127689ce1bbb57f5b47bcfabe8cb 100644
--- a/Interaction/Widgets/vtkLightRepresentation.cxx
+++ b/Interaction/Widgets/vtkLightRepresentation.cxx
@@ -29,6 +29,7 @@
 #include "vtkSphereSource.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLightRepresentation);
 
 //------------------------------------------------------------------------------
@@ -433,3 +434,4 @@ void vtkLightRepresentation::ScaleConeAngle(double* pickPoint, double* lastPickP
   // Store the last scaling squared distance
   this->LastScalingDistance2 = distance2;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkLightRepresentation.h b/Interaction/Widgets/vtkLightRepresentation.h
index b95984d2d7aae849909b7c3be49d654aa40b3ee8..58fcf289078158895411e60395e7d833e1979399 100644
--- a/Interaction/Widgets/vtkLightRepresentation.h
+++ b/Interaction/Widgets/vtkLightRepresentation.h
@@ -32,6 +32,7 @@
 #include "vtkNew.h"                      // Needed for vtkNew
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkBox;
 class vtkCellPicker;
@@ -185,4 +186,5 @@ private:
   void operator=(const vtkLightRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkLightWidget.cxx b/Interaction/Widgets/vtkLightWidget.cxx
index dc5b085020fbd84f58c755b67f5aeab0c32a352e..cbc91b7451a75956083500eb2b580a0ca458a5b1 100644
--- a/Interaction/Widgets/vtkLightWidget.cxx
+++ b/Interaction/Widgets/vtkLightWidget.cxx
@@ -24,6 +24,7 @@
 #include "vtkWidgetCallbackMapper.h"
 #include "vtkWidgetEvent.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLightWidget);
 
 //------------------------------------------------------------------------------
@@ -198,3 +199,4 @@ void vtkLightWidget::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "WidgetActive: " << this->WidgetActive << endl;
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkLightWidget.h b/Interaction/Widgets/vtkLightWidget.h
index 9ac52d9179e1158595bae18fa9ecddc2b1bc5e77..8363e678dde7c170e4656e8d76a2185e26857a85 100644
--- a/Interaction/Widgets/vtkLightWidget.h
+++ b/Interaction/Widgets/vtkLightWidget.h
@@ -46,6 +46,7 @@
 #include "vtkAbstractWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHandleWidget;
 class vtkLightRepresentation;
 
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkLightWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkLineRepresentation.cxx b/Interaction/Widgets/vtkLineRepresentation.cxx
index 05ac2c1a4825e7184069f8d74f7996c5c9ec4b02..2101ab5e95de307cf28e44928e7f7ace6b63eeec 100644
--- a/Interaction/Widgets/vtkLineRepresentation.cxx
+++ b/Interaction/Widgets/vtkLineRepresentation.cxx
@@ -37,6 +37,7 @@
 #include "vtkVectorText.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLineRepresentation);
 
 vtkCxxSetObjectMacro(vtkLineRepresentation, HandleRepresentation, vtkPointHandleRepresentation3D);
@@ -1087,3 +1088,4 @@ void vtkLineRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   // this->InteractionState is printed in superclass
   // this is commented to avoid PrintSelf errors
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkLineRepresentation.h b/Interaction/Widgets/vtkLineRepresentation.h
index 63c53d2edea42b873a0ae0c46fbf81f5951a13a9..979b7fe9f0da5aa609e96c80c71dcc2ab06c3f62 100644
--- a/Interaction/Widgets/vtkLineRepresentation.h
+++ b/Interaction/Widgets/vtkLineRepresentation.h
@@ -41,6 +41,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkConeSource;
 class vtkPolyDataMapper;
@@ -394,4 +395,5 @@ private:
   void operator=(const vtkLineRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkLineWidget.cxx b/Interaction/Widgets/vtkLineWidget.cxx
index f72137c9ee7c193eeb243fa0a6e5ddf52afc4918..78470d5ecfcb195f351ce1f0f54840510b1ce4f1 100644
--- a/Interaction/Widgets/vtkLineWidget.cxx
+++ b/Interaction/Widgets/vtkLineWidget.cxx
@@ -36,6 +36,7 @@
 #include "vtkRenderer.h"
 #include "vtkSphereSource.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLineWidget);
 
 //------------------------------------------------------------------------------
@@ -1095,3 +1096,4 @@ void vtkLineWidget::GetPolyData(vtkPolyData* pd)
 {
   pd->ShallowCopy(this->LineSource->GetOutput());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkLineWidget.h b/Interaction/Widgets/vtkLineWidget.h
index de5bd74b48c28141904e566c2708e4f972b01e51..7a51a75102dea0bfbbfaef17aa751cb133a7435f 100644
--- a/Interaction/Widgets/vtkLineWidget.h
+++ b/Interaction/Widgets/vtkLineWidget.h
@@ -71,6 +71,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkLineSource.h"               // For passing calls to it
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyDataMapper;
 class vtkPoints;
@@ -290,4 +291,5 @@ private:
   void operator=(const vtkLineWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkLineWidget2.cxx b/Interaction/Widgets/vtkLineWidget2.cxx
index 26c1ba791b1d38e1dc0229f7d3ea339c702d3fc7..470a4e75432b9bcfe91519c7b5ecadfd1db807b1 100644
--- a/Interaction/Widgets/vtkLineWidget2.cxx
+++ b/Interaction/Widgets/vtkLineWidget2.cxx
@@ -27,6 +27,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLineWidget2);
 
 //------------------------------------------------------------------------------
@@ -429,3 +430,4 @@ void vtkLineWidget2::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkLineWidget2.h b/Interaction/Widgets/vtkLineWidget2.h
index a71ee360ac7818efc1824147a32d36b92cd6311f..0e570ac7a6032ffdbafcb92852c6f315e9db8252 100644
--- a/Interaction/Widgets/vtkLineWidget2.h
+++ b/Interaction/Widgets/vtkLineWidget2.h
@@ -86,6 +86,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLineRepresentation;
 class vtkHandleWidget;
 
@@ -178,4 +179,5 @@ private:
   void operator=(const vtkLineWidget2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkLinearContourLineInterpolator.cxx b/Interaction/Widgets/vtkLinearContourLineInterpolator.cxx
index ef13e291556640dc345f2e4cce41c7717737c512..99f87e63bb421be502a6d1005b5ed8dcfa89c1f3 100644
--- a/Interaction/Widgets/vtkLinearContourLineInterpolator.cxx
+++ b/Interaction/Widgets/vtkLinearContourLineInterpolator.cxx
@@ -15,6 +15,7 @@
 #include "vtkLinearContourLineInterpolator.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLinearContourLineInterpolator);
 
 //------------------------------------------------------------------------------
@@ -35,3 +36,4 @@ void vtkLinearContourLineInterpolator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkLinearContourLineInterpolator.h b/Interaction/Widgets/vtkLinearContourLineInterpolator.h
index fb32b38ed87a5a3f7cd62a79d2b3a0a3e4d18b04..0313aa9bf3db47988930b6cdd5d3ee3f301130cf 100644
--- a/Interaction/Widgets/vtkLinearContourLineInterpolator.h
+++ b/Interaction/Widgets/vtkLinearContourLineInterpolator.h
@@ -30,6 +30,7 @@
 #include "vtkContourLineInterpolator.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONWIDGETS_EXPORT vtkLinearContourLineInterpolator
   : public vtkContourLineInterpolator
 {
@@ -58,4 +59,5 @@ private:
   void operator=(const vtkLinearContourLineInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkLogoRepresentation.cxx b/Interaction/Widgets/vtkLogoRepresentation.cxx
index 815543ec4ba9dfff42fd1cf31435f3aa4b02b29b..2f63191b0c2ff150d628037a2a344bf5774136fc 100644
--- a/Interaction/Widgets/vtkLogoRepresentation.cxx
+++ b/Interaction/Widgets/vtkLogoRepresentation.cxx
@@ -29,6 +29,7 @@
 #include "vtkTexturedActor2D.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLogoRepresentation);
 
 vtkCxxSetObjectMacro(vtkLogoRepresentation, Image, vtkImageData);
@@ -235,3 +236,4 @@ void vtkLogoRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Image Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkLogoRepresentation.h b/Interaction/Widgets/vtkLogoRepresentation.h
index 579203b668477f0b9f39ad934efd421d8e650452..0d32701319ae4778dc1af4edcfca71c14532080f 100644
--- a/Interaction/Widgets/vtkLogoRepresentation.h
+++ b/Interaction/Widgets/vtkLogoRepresentation.h
@@ -32,6 +32,7 @@
 #include "vtkBorderRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkImageProperty;
 class vtkTexture;
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkLogoRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkLogoWidget.cxx b/Interaction/Widgets/vtkLogoWidget.cxx
index c2848a436754b6c3b25dc6ed827d4c222bc58fb6..39c9c646c50565a86b192c15fc02a08a2bddcf4c 100644
--- a/Interaction/Widgets/vtkLogoWidget.cxx
+++ b/Interaction/Widgets/vtkLogoWidget.cxx
@@ -17,6 +17,7 @@
 #include "vtkLogoRepresentation.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLogoWidget);
 
 //------------------------------------------------------------------------------
@@ -42,3 +43,4 @@ void vtkLogoWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkLogoWidget.h b/Interaction/Widgets/vtkLogoWidget.h
index 49ec0713c54d882e8cc98698a5d8c80173cff01c..835c9632902979bd0ae5e119ae88f468a0a72723 100644
--- a/Interaction/Widgets/vtkLogoWidget.h
+++ b/Interaction/Widgets/vtkLogoWidget.h
@@ -32,6 +32,7 @@
 #include "vtkBorderWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLogoRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkLogoWidget : public vtkBorderWidget
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkLogoWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkMagnifierRepresentation.cxx b/Interaction/Widgets/vtkMagnifierRepresentation.cxx
index ab19b308f87195adf4c03ac378ae048349e90dd9..c919a24df3bfaf959280737de5cc2d282fdba7e2 100644
--- a/Interaction/Widgets/vtkMagnifierRepresentation.cxx
+++ b/Interaction/Widgets/vtkMagnifierRepresentation.cxx
@@ -25,6 +25,7 @@
 #include "vtkRenderer.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMagnifierRepresentation);
 
 //------------------------------------------------------------------------------
@@ -315,3 +316,4 @@ void vtkMagnifierRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Border Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkMagnifierRepresentation.h b/Interaction/Widgets/vtkMagnifierRepresentation.h
index 11cd534ff6e5a1cd9fa4bed9cf6d2382c8087f59..05e487ae901e4ccca8a0ebb92f823d9591c2a84b 100644
--- a/Interaction/Widgets/vtkMagnifierRepresentation.h
+++ b/Interaction/Widgets/vtkMagnifierRepresentation.h
@@ -34,6 +34,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPropCollection;
 class vtkPoints;
 class vtkPolyData;
@@ -197,4 +198,5 @@ private:
   void operator=(const vtkMagnifierRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkMagnifierWidget.cxx b/Interaction/Widgets/vtkMagnifierWidget.cxx
index 7b0acf50f883c1738bc0198d02c85030c63dd617..3c75808d89905ba741d418404397ba8cd272c86e 100644
--- a/Interaction/Widgets/vtkMagnifierWidget.cxx
+++ b/Interaction/Widgets/vtkMagnifierWidget.cxx
@@ -25,6 +25,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMagnifierWidget);
 
 //------------------------------------------------------------------------------
@@ -143,3 +144,4 @@ void vtkMagnifierWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkMagnifierWidget.h b/Interaction/Widgets/vtkMagnifierWidget.h
index a738e3730bc037acf706e810d484900966251c97..bec176f3609e70c688a712a992b16977eb955425 100644
--- a/Interaction/Widgets/vtkMagnifierWidget.h
+++ b/Interaction/Widgets/vtkMagnifierWidget.h
@@ -46,6 +46,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMagnifierRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkMagnifierWidget : public vtkAbstractWidget
@@ -134,4 +135,5 @@ private:
   void operator=(const vtkMagnifierWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkMeasurementCubeHandleRepresentation3D.cxx b/Interaction/Widgets/vtkMeasurementCubeHandleRepresentation3D.cxx
index ba774fe4da051b0d77f57ec2e5b92506d2c5b0a3..87a944ea3c37fa3f58cac28c64f033995a12ca4c 100644
--- a/Interaction/Widgets/vtkMeasurementCubeHandleRepresentation3D.cxx
+++ b/Interaction/Widgets/vtkMeasurementCubeHandleRepresentation3D.cxx
@@ -42,6 +42,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMeasurementCubeHandleRepresentation3D);
 vtkCxxSetObjectMacro(vtkMeasurementCubeHandleRepresentation3D, Property, vtkProperty);
 vtkCxxSetObjectMacro(vtkMeasurementCubeHandleRepresentation3D, SelectedProperty, vtkProperty);
@@ -834,3 +835,4 @@ void vtkMeasurementCubeHandleRepresentation3D::PrintSelf(ostream& os, vtkIndent
   os << indent << "SideLength: " << this->SideLength << "\n";
   os << indent << "LengthUnit: " << this->LengthUnit << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkMeasurementCubeHandleRepresentation3D.h b/Interaction/Widgets/vtkMeasurementCubeHandleRepresentation3D.h
index c6e75be7cecf932f9b8d3375c10f6ee94ed7f8ff..c1cae4b3a0abec8074f257a3cc8c4fc07993f29e 100644
--- a/Interaction/Widgets/vtkMeasurementCubeHandleRepresentation3D.h
+++ b/Interaction/Widgets/vtkMeasurementCubeHandleRepresentation3D.h
@@ -26,6 +26,7 @@
 #include "vtkHandleRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProperty;
 class vtkPolyDataMapper;
 class vtkCellPicker;
@@ -306,4 +307,5 @@ private:
   void operator=(const vtkMeasurementCubeHandleRepresentation3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkOrientationMarkerWidget.cxx b/Interaction/Widgets/vtkOrientationMarkerWidget.cxx
index b9c065af5a0bdc4e5ed77bb09e9406dacf905f39..585fb071bcb9ccea9061b3929030ecfc8b036d8f 100644
--- a/Interaction/Widgets/vtkOrientationMarkerWidget.cxx
+++ b/Interaction/Widgets/vtkOrientationMarkerWidget.cxx
@@ -28,6 +28,7 @@
 #include "vtkRenderWindowInteractor.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOrientationMarkerWidget);
 
 vtkCxxSetObjectMacro(vtkOrientationMarkerWidget, OrientationMarker, vtkProp);
@@ -1153,3 +1154,4 @@ void vtkOrientationMarkerWidget::ResizeToFitSizeConstraints()
     this->UpdateOutline();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkOrientationMarkerWidget.h b/Interaction/Widgets/vtkOrientationMarkerWidget.h
index 0e5f7c4148f7fc83d71f48107e8ef04f6b78416e..2839b560a5d64ed6c7c09d1f8c6df4763fd42962 100644
--- a/Interaction/Widgets/vtkOrientationMarkerWidget.h
+++ b/Interaction/Widgets/vtkOrientationMarkerWidget.h
@@ -72,6 +72,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkInteractorObserver.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 class vtkPolyData;
 class vtkProp;
@@ -300,4 +301,5 @@ private:
   void TearDownWindowInteraction();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkOrientedGlyphContourRepresentation.cxx b/Interaction/Widgets/vtkOrientedGlyphContourRepresentation.cxx
index 5960bf68c5b70594729811fe499076c1513d0662..edc174b6a843e5f86dc3139edbcf0b1fe1c68569 100644
--- a/Interaction/Widgets/vtkOrientedGlyphContourRepresentation.cxx
+++ b/Interaction/Widgets/vtkOrientedGlyphContourRepresentation.cxx
@@ -40,6 +40,7 @@
 #include "vtkTransform.h"
 #include "vtkTransformPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOrientedGlyphContourRepresentation);
 
 //------------------------------------------------------------------------------
@@ -1052,3 +1053,4 @@ void vtkOrientedGlyphContourRepresentation::PrintSelf(ostream& os, vtkIndent ind
     os << indent << "Lines Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkOrientedGlyphContourRepresentation.h b/Interaction/Widgets/vtkOrientedGlyphContourRepresentation.h
index b3d98110f1e3c8bd9c50e1e1501881b1baeddab3..5034ca9b0c77e831ba51aac58ad3cc331d005a4c 100644
--- a/Interaction/Widgets/vtkOrientedGlyphContourRepresentation.h
+++ b/Interaction/Widgets/vtkOrientedGlyphContourRepresentation.h
@@ -31,6 +31,7 @@
 #include "vtkContourRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProperty;
 class vtkActor;
 class vtkPolyDataMapper;
@@ -219,4 +220,5 @@ private:
   void operator=(const vtkOrientedGlyphContourRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkOrientedGlyphFocalPlaneContourRepresentation.cxx b/Interaction/Widgets/vtkOrientedGlyphFocalPlaneContourRepresentation.cxx
index 130e1470789a3f45b2d2882b8a92408e9579d8e7..f88afa6b95d204180cee4eaccb2bc51131dbc466 100644
--- a/Interaction/Widgets/vtkOrientedGlyphFocalPlaneContourRepresentation.cxx
+++ b/Interaction/Widgets/vtkOrientedGlyphFocalPlaneContourRepresentation.cxx
@@ -39,6 +39,7 @@
 #include "vtkTransform.h"
 #include "vtkTransformPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOrientedGlyphFocalPlaneContourRepresentation);
 
 //------------------------------------------------------------------------------
@@ -929,3 +930,4 @@ void vtkOrientedGlyphFocalPlaneContourRepresentation::PrintSelf(ostream& os, vtk
     os << indent << "Lines Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkOrientedGlyphFocalPlaneContourRepresentation.h b/Interaction/Widgets/vtkOrientedGlyphFocalPlaneContourRepresentation.h
index 2d44c7c616efb60475eed9efd1e4853ba107be11..651b22eeea3c1aab0dbe81363a0868ab1c43c894 100644
--- a/Interaction/Widgets/vtkOrientedGlyphFocalPlaneContourRepresentation.h
+++ b/Interaction/Widgets/vtkOrientedGlyphFocalPlaneContourRepresentation.h
@@ -34,6 +34,7 @@
 #include "vtkFocalPlaneContourRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProperty2D;
 class vtkActor2D;
 class vtkPolyDataMapper2D;
@@ -203,4 +204,5 @@ private:
   void operator=(const vtkOrientedGlyphFocalPlaneContourRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkOrientedPolygonalHandleRepresentation3D.cxx b/Interaction/Widgets/vtkOrientedPolygonalHandleRepresentation3D.cxx
index 08943dc8144ad2f75b04b6f866ed44586bdc89fc..5c460dc3f883b8929dd46a95045ba9749e0518a9 100644
--- a/Interaction/Widgets/vtkOrientedPolygonalHandleRepresentation3D.cxx
+++ b/Interaction/Widgets/vtkOrientedPolygonalHandleRepresentation3D.cxx
@@ -23,6 +23,7 @@
 #include "vtkRenderer.h"
 #include "vtkTransformPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOrientedPolygonalHandleRepresentation3D);
 
 //------------------------------------------------------------------------------
@@ -64,3 +65,4 @@ void vtkOrientedPolygonalHandleRepresentation3D::PrintSelf(ostream& os, vtkInden
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkOrientedPolygonalHandleRepresentation3D.h b/Interaction/Widgets/vtkOrientedPolygonalHandleRepresentation3D.h
index 86b06b5abad20c4cc6b2e0df5e83f7b1c9684e9e..ab859e9b37457b3512492e334dfcb94750bdcf7c 100644
--- a/Interaction/Widgets/vtkOrientedPolygonalHandleRepresentation3D.h
+++ b/Interaction/Widgets/vtkOrientedPolygonalHandleRepresentation3D.h
@@ -35,6 +35,7 @@
 #include "vtkAbstractPolygonalHandleRepresentation3D.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONWIDGETS_EXPORT vtkOrientedPolygonalHandleRepresentation3D
   : public vtkAbstractPolygonalHandleRepresentation3D
 {
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkOrientedPolygonalHandleRepresentation3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkParallelopipedRepresentation.cxx b/Interaction/Widgets/vtkParallelopipedRepresentation.cxx
index 87d334589d9f47cc6fbbd8c98bb7c63687f31ceb..159bb5f5faedf53afb0d2705451e5b3935682ca2 100644
--- a/Interaction/Widgets/vtkParallelopipedRepresentation.cxx
+++ b/Interaction/Widgets/vtkParallelopipedRepresentation.cxx
@@ -43,6 +43,7 @@
 // README : Uncomment the line that reads "PrintTopology(cout) to
 //          understand what the class does. The goal of the class is succintly
 //          described in that one line.
+VTK_ABI_NAMESPACE_BEGIN
 class vtkParallelopipedTopology
 {
 public:
@@ -1621,3 +1622,4 @@ void vtkParallelopipedRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   // this->InteractionState is printed in superclass
   // this is commented to avoid PrintSelf errors
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkParallelopipedRepresentation.h b/Interaction/Widgets/vtkParallelopipedRepresentation.h
index 1172e7b7eb43e53c1e41c2bd274bb573892244d2..8f3bb6c69f911be17cab70185e0906dc881eca16 100644
--- a/Interaction/Widgets/vtkParallelopipedRepresentation.h
+++ b/Interaction/Widgets/vtkParallelopipedRepresentation.h
@@ -35,6 +35,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPlane;
 class vtkPoints;
@@ -310,4 +311,5 @@ private:
   void operator=(const vtkParallelopipedRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkParallelopipedWidget.cxx b/Interaction/Widgets/vtkParallelopipedWidget.cxx
index ecbe07626b5dce7062d1087389da2c9254541a2c..e22a348d44bd9f6439f8e6b8c3714ab2fdcf62fd 100644
--- a/Interaction/Widgets/vtkParallelopipedWidget.cxx
+++ b/Interaction/Widgets/vtkParallelopipedWidget.cxx
@@ -32,6 +32,7 @@
 #include "vtkWidgetEventTranslator.h"
 #include "vtkWidgetSet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParallelopipedWidget);
 
 //------------------------------------------------------------------------------
@@ -472,3 +473,4 @@ void vtkParallelopipedWidget::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Chair Creation: " << (this->EnableChairCreation ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkParallelopipedWidget.h b/Interaction/Widgets/vtkParallelopipedWidget.h
index aee9f97e00050c31679155df0fae73c56458c972..1449d9395f7b760387c6055bc63bf6df5d013f27 100644
--- a/Interaction/Widgets/vtkParallelopipedWidget.h
+++ b/Interaction/Widgets/vtkParallelopipedWidget.h
@@ -44,6 +44,7 @@
 #include "vtkAbstractWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkParallelopipedRepresentation;
 class vtkHandleWidget;
 class vtkWidgetSet;
@@ -153,4 +154,5 @@ private:
   void operator=(const vtkParallelopipedWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPlaneWidget.cxx b/Interaction/Widgets/vtkPlaneWidget.cxx
index 99aec6190c920ab521f8856fb68af4a22d31ac6e..574cc205987c3de2f8d6bd1a2209d5e235273add 100644
--- a/Interaction/Widgets/vtkPlaneWidget.cxx
+++ b/Interaction/Widgets/vtkPlaneWidget.cxx
@@ -39,6 +39,7 @@
 #include "vtkSphereSource.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlaneWidget);
 
 vtkCxxSetObjectMacro(vtkPlaneWidget, PlaneProperty, vtkProperty);
@@ -1683,3 +1684,4 @@ void vtkPlaneWidget::UpdatePlacement()
   this->PlaneSource->Update();
   this->PositionHandles();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPlaneWidget.h b/Interaction/Widgets/vtkPlaneWidget.h
index bad864bf0c58d5f7e0f60ae060e60ab8788f6e27..83fc2f98c44af0273add3d547b94a39fb06bf660 100644
--- a/Interaction/Widgets/vtkPlaneWidget.h
+++ b/Interaction/Widgets/vtkPlaneWidget.h
@@ -78,6 +78,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPolyDataSourceWidget.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkCellPicker;
 class vtkConeSource;
@@ -392,4 +393,5 @@ private:
   void operator=(const vtkPlaneWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPlaybackRepresentation.cxx b/Interaction/Widgets/vtkPlaybackRepresentation.cxx
index 0175abd993cf8879331f3facdc5f1c9a35d8d5dd..afe5914d59adf8956abd702f3390af69febb45ca 100644
--- a/Interaction/Widgets/vtkPlaybackRepresentation.cxx
+++ b/Interaction/Widgets/vtkPlaybackRepresentation.cxx
@@ -29,6 +29,7 @@
 #include "vtkTransform.h"
 #include "vtkTransformPolyDataFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlaybackRepresentation);
 
 vtkPlaybackRepresentation::vtkPlaybackRepresentation()
@@ -252,3 +253,4 @@ void vtkPlaybackRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPlaybackRepresentation.h b/Interaction/Widgets/vtkPlaybackRepresentation.h
index 0776c150b7b9ef5cb1787a54028fba727f007626..456466787616499a49829965234c1906d0b5f5e0 100644
--- a/Interaction/Widgets/vtkPlaybackRepresentation.h
+++ b/Interaction/Widgets/vtkPlaybackRepresentation.h
@@ -30,6 +30,7 @@
 #include "vtkBorderRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkRenderWindowInteractor;
 class vtkPoints;
@@ -113,4 +114,5 @@ private:
   void operator=(const vtkPlaybackRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPlaybackWidget.cxx b/Interaction/Widgets/vtkPlaybackWidget.cxx
index d1f7dad1ceb9c3479e0093a75247d72ed9056ffd..3e92d3719105da29f7973a2c4ffb19e697321834 100644
--- a/Interaction/Widgets/vtkPlaybackWidget.cxx
+++ b/Interaction/Widgets/vtkPlaybackWidget.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPlaybackRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPlaybackWidget);
 
 //------------------------------------------------------------------------------
@@ -74,3 +75,4 @@ void vtkPlaybackWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPlaybackWidget.h b/Interaction/Widgets/vtkPlaybackWidget.h
index 3a93d4ccfb4cd1e7639136fe6cd50576802b30b3..747a967cb446a86c076a8ba6d8a59745bdbd0a54 100644
--- a/Interaction/Widgets/vtkPlaybackWidget.h
+++ b/Interaction/Widgets/vtkPlaybackWidget.h
@@ -31,6 +31,7 @@
 #include "vtkBorderWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPlaybackRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkPlaybackWidget : public vtkBorderWidget
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkPlaybackWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPointCloudRepresentation.cxx b/Interaction/Widgets/vtkPointCloudRepresentation.cxx
index fa731484f42016118d87ff9469705d7e349c5fdc..832ac86cd4fa2b5b54447ae09e5effade30f85d8 100644
--- a/Interaction/Widgets/vtkPointCloudRepresentation.cxx
+++ b/Interaction/Widgets/vtkPointCloudRepresentation.cxx
@@ -45,6 +45,7 @@
 #include "vtkSelectionNode.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointCloudRepresentation);
 
 //------------------------------------------------------------------------------
@@ -516,3 +517,4 @@ void vtkPointCloudRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Selection Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPointCloudRepresentation.h b/Interaction/Widgets/vtkPointCloudRepresentation.h
index 8c386de35aabd736470b498927a8650fb2e45e47..8f0d58411ecc0103316f45ef60752e2d4631ddb5 100644
--- a/Interaction/Widgets/vtkPointCloudRepresentation.h
+++ b/Interaction/Widgets/vtkPointCloudRepresentation.h
@@ -31,6 +31,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyDataMapper;
 class vtkOutlineFilter;
@@ -271,4 +272,5 @@ private:
   void operator=(const vtkPointCloudRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPointCloudWidget.cxx b/Interaction/Widgets/vtkPointCloudWidget.cxx
index 664f7d82a2e434be14618054f479a75bee2ab07a..d0a84e983f343868f074236ec8ff4a7072464de8 100644
--- a/Interaction/Widgets/vtkPointCloudWidget.cxx
+++ b/Interaction/Widgets/vtkPointCloudWidget.cxx
@@ -26,6 +26,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointCloudWidget);
 
 //------------------------------------------------------------------------------
@@ -160,3 +161,4 @@ void vtkPointCloudWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPointCloudWidget.h b/Interaction/Widgets/vtkPointCloudWidget.h
index b33f0074d12e273032fb5600c42ca04d36dd4c8d..356b9a83050f8446d3d7afd5de07ed47e47880fd 100644
--- a/Interaction/Widgets/vtkPointCloudWidget.h
+++ b/Interaction/Widgets/vtkPointCloudWidget.h
@@ -48,6 +48,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPointCloudRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkPointCloudWidget : public vtkAbstractWidget
@@ -109,4 +110,5 @@ private:
   void operator=(const vtkPointCloudWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPointHandleRepresentation2D.cxx b/Interaction/Widgets/vtkPointHandleRepresentation2D.cxx
index a28967730f0e6b9438b0b70528940e00488fb00a..b47d0fd685d13455a7bfab46d7f9da7d205670b7 100644
--- a/Interaction/Widgets/vtkPointHandleRepresentation2D.cxx
+++ b/Interaction/Widgets/vtkPointHandleRepresentation2D.cxx
@@ -31,6 +31,7 @@
 #include "vtkRenderer.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointHandleRepresentation2D);
 
 vtkCxxSetObjectMacro(vtkPointHandleRepresentation2D, Property, vtkProperty2D);
@@ -403,3 +404,4 @@ void vtkPointHandleRepresentation2D::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Cursor Shape: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPointHandleRepresentation2D.h b/Interaction/Widgets/vtkPointHandleRepresentation2D.h
index 64ef6ff34fe725103de64db118a636c173af0311..d15c95881835a319184f53cdcb81217c299921cb 100644
--- a/Interaction/Widgets/vtkPointHandleRepresentation2D.h
+++ b/Interaction/Widgets/vtkPointHandleRepresentation2D.h
@@ -30,6 +30,7 @@
 #include "vtkHandleRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProperty2D;
 class vtkActor2D;
 class vtkCoordinate;
@@ -163,4 +164,5 @@ private:
   void operator=(const vtkPointHandleRepresentation2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPointHandleRepresentation3D.cxx b/Interaction/Widgets/vtkPointHandleRepresentation3D.cxx
index a8f59a56ffe8b4158eb96c5b115d55f5c99b4261..9e60195bef8342a41316fadf5e57403adda4d478 100644
--- a/Interaction/Widgets/vtkPointHandleRepresentation3D.cxx
+++ b/Interaction/Widgets/vtkPointHandleRepresentation3D.cxx
@@ -34,6 +34,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointHandleRepresentation3D);
 
 vtkCxxSetObjectMacro(vtkPointHandleRepresentation3D, Property, vtkProperty);
@@ -885,3 +886,4 @@ void vtkPointHandleRepresentation3D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Translation Mode: " << (this->TranslationMode ? "On\n" : "Off\n");
   os << indent << "SmoothMotion: " << this->SmoothMotion << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPointHandleRepresentation3D.h b/Interaction/Widgets/vtkPointHandleRepresentation3D.h
index b1ef2143ecc9be9e91c06f297607c8e4e05ebe24..a27285a5af3268a16b3429fe6db4ecb08827f0bb 100644
--- a/Interaction/Widgets/vtkPointHandleRepresentation3D.h
+++ b/Interaction/Widgets/vtkPointHandleRepresentation3D.h
@@ -31,6 +31,7 @@
 #include "vtkHandleRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCursor3D;
 class vtkProperty;
 class vtkActor;
@@ -285,4 +286,5 @@ private:
   void operator=(const vtkPointHandleRepresentation3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPointPlacer.cxx b/Interaction/Widgets/vtkPointPlacer.cxx
index 3d153f628f364ae81115449a130c419562a66022..05dd92eef1c550900f1ad86c23d9702121324036 100644
--- a/Interaction/Widgets/vtkPointPlacer.cxx
+++ b/Interaction/Widgets/vtkPointPlacer.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointPlacer);
 
 //------------------------------------------------------------------------------
@@ -97,3 +98,4 @@ int vtkPointPlacer::UpdateNodeWorldPosition(
 {
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPointPlacer.h b/Interaction/Widgets/vtkPointPlacer.h
index 92b3d3aff0a5119d35807318e05d3bb6b24b22b6..2dd18ade1e1c61ed03fe5ee185a6ba242324c4aa 100644
--- a/Interaction/Widgets/vtkPointPlacer.h
+++ b/Interaction/Widgets/vtkPointPlacer.h
@@ -44,6 +44,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkPointPlacer : public vtkObject
@@ -158,4 +159,5 @@ private:
   void operator=(const vtkPointPlacer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPointWidget.cxx b/Interaction/Widgets/vtkPointWidget.cxx
index 4985991170a70442f6f5e93561c172a93dfb6195..e06c0d9ed96c57d52de4fa236f3f6d6f83dade85 100644
--- a/Interaction/Widgets/vtkPointWidget.cxx
+++ b/Interaction/Widgets/vtkPointWidget.cxx
@@ -29,6 +29,7 @@
 #include "vtkRenderWindowInteractor.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointWidget);
 
 vtkPointWidget::vtkPointWidget()
@@ -658,3 +659,4 @@ void vtkPointWidget::GetPolyData(vtkPolyData* pd)
   this->Cursor3D->Update();
   pd->DeepCopy(this->Cursor3D->GetFocus());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPointWidget.h b/Interaction/Widgets/vtkPointWidget.h
index acc6c3c91621f338aae5d1f0e6c79317baab7ffa..81d15cad0f1897bb43bfec207eee396ccb7c174e 100644
--- a/Interaction/Widgets/vtkPointWidget.h
+++ b/Interaction/Widgets/vtkPointWidget.h
@@ -68,6 +68,7 @@
 #include "vtkCursor3D.h"                 // Needed for faster access to the Cursor3D
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyDataMapper;
 class vtkCellPicker;
@@ -268,4 +269,5 @@ private:
   void operator=(const vtkPointWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPolyDataContourLineInterpolator.cxx b/Interaction/Widgets/vtkPolyDataContourLineInterpolator.cxx
index 835d5a458974463bc3be15e2e012aaa9cc4dbbf7..187f1aaf13bfd8075531a7d9978ac2a82cba28f8 100644
--- a/Interaction/Widgets/vtkPolyDataContourLineInterpolator.cxx
+++ b/Interaction/Widgets/vtkPolyDataContourLineInterpolator.cxx
@@ -21,6 +21,7 @@
 #include "vtkPolyDataCollection.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkPolyDataContourLineInterpolator::vtkPolyDataContourLineInterpolator()
 {
   this->Polys = vtkPolyDataCollection::New();
@@ -40,3 +41,4 @@ void vtkPolyDataContourLineInterpolator::PrintSelf(ostream& os, vtkIndent indent
   os << indent << "Polys: \n";
   this->Polys->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPolyDataContourLineInterpolator.h b/Interaction/Widgets/vtkPolyDataContourLineInterpolator.h
index ff8d00ac8c2004aac87fb64054bc136ae9d00033..39652675ae58ce70f1e7c35aa05ff9f2bae26d01 100644
--- a/Interaction/Widgets/vtkPolyDataContourLineInterpolator.h
+++ b/Interaction/Widgets/vtkPolyDataContourLineInterpolator.h
@@ -28,6 +28,7 @@
 #include "vtkContourLineInterpolator.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkPolyDataCollection;
 
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkPolyDataContourLineInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPolyDataPointPlacer.cxx b/Interaction/Widgets/vtkPolyDataPointPlacer.cxx
index 5936984b2eb779375c1a1931359847359b12ba2e..e0d5c7a664273b8ba049b81e8e0a7d49ffdf7bbc 100644
--- a/Interaction/Widgets/vtkPolyDataPointPlacer.cxx
+++ b/Interaction/Widgets/vtkPolyDataPointPlacer.cxx
@@ -23,6 +23,7 @@
 #include "vtkPropPicker.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataPointPlacer);
 
 //------------------------------------------------------------------------------
@@ -180,3 +181,4 @@ void vtkPolyDataPointPlacer::PrintSelf(ostream& os, vtkIndent indent)
     this->SurfaceProps->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPolyDataPointPlacer.h b/Interaction/Widgets/vtkPolyDataPointPlacer.h
index 5681d92fa61706d946417fbd4a6e4fcd6e9238e2..facda179ce1e83ebdce3b1098c4171e0fe640b2e 100644
--- a/Interaction/Widgets/vtkPolyDataPointPlacer.h
+++ b/Interaction/Widgets/vtkPolyDataPointPlacer.h
@@ -37,6 +37,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPointPlacer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkPropCollection;
 class vtkProp;
@@ -125,4 +126,5 @@ private:
   void operator=(const vtkPolyDataPointPlacer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPolyDataSourceWidget.cxx b/Interaction/Widgets/vtkPolyDataSourceWidget.cxx
index 6b9d683fe920ae825cd9ccbd4469d4ee08f78037..32324fb31638c9bc6a4d03815809a1291e0efebf 100644
--- a/Interaction/Widgets/vtkPolyDataSourceWidget.cxx
+++ b/Interaction/Widgets/vtkPolyDataSourceWidget.cxx
@@ -20,6 +20,7 @@
 
 // child classes should call this constructor so that the vtk3DWidget()
 // constructor can set up some pertinent variables (e.g. Input and Prop3D)
+VTK_ABI_NAMESPACE_BEGIN
 vtkPolyDataSourceWidget::vtkPolyDataSourceWidget() = default;
 
 void vtkPolyDataSourceWidget::PlaceWidget()
@@ -56,3 +57,4 @@ void vtkPolyDataSourceWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPolyDataSourceWidget.h b/Interaction/Widgets/vtkPolyDataSourceWidget.h
index 40e5ba5b82be59720806632c028b9b661e7d5f41..ab051bba47c5c0842f226ba44828671ba4054132 100644
--- a/Interaction/Widgets/vtkPolyDataSourceWidget.h
+++ b/Interaction/Widgets/vtkPolyDataSourceWidget.h
@@ -40,6 +40,7 @@
 #include "vtk3DWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyDataAlgorithm;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkPolyDataSourceWidget : public vtk3DWidget
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkPolyDataSourceWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPolyLineRepresentation.cxx b/Interaction/Widgets/vtkPolyLineRepresentation.cxx
index ccb136a1e595ac1c18ef094790ec2c439be946df..122a997b2c2fc1d9671a12fd0ce6055dbed78b99 100644
--- a/Interaction/Widgets/vtkPolyLineRepresentation.cxx
+++ b/Interaction/Widgets/vtkPolyLineRepresentation.cxx
@@ -24,6 +24,7 @@
 #include "vtkVectorOperators.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyLineRepresentation);
 
 //------------------------------------------------------------------------------
@@ -399,3 +400,4 @@ void vtkPolyLineRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPolyLineRepresentation.h b/Interaction/Widgets/vtkPolyLineRepresentation.h
index 767af873cf6efd834f28790a29c5e1487d1f056b..f04e60eed67339376c7aee6fc0c834656d682494 100644
--- a/Interaction/Widgets/vtkPolyLineRepresentation.h
+++ b/Interaction/Widgets/vtkPolyLineRepresentation.h
@@ -32,6 +32,7 @@
 #include "vtkCurveRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyLineSource;
 class vtkPointHandleSource;
 
@@ -131,4 +132,5 @@ private:
   std::vector<vtkSmartPointer<vtkActor>> HandleActors;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPolyLineWidget.cxx b/Interaction/Widgets/vtkPolyLineWidget.cxx
index 503bf3e4d985371dd6e49988e2d37f6089462c69..483fcfa148faa3dc225acc0620cd9ddd05953153 100644
--- a/Interaction/Widgets/vtkPolyLineWidget.cxx
+++ b/Interaction/Widgets/vtkPolyLineWidget.cxx
@@ -26,6 +26,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyLineWidget);
 //------------------------------------------------------------------------------
 vtkPolyLineWidget::vtkPolyLineWidget()
@@ -338,3 +339,4 @@ void vtkPolyLineWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPolyLineWidget.h b/Interaction/Widgets/vtkPolyLineWidget.h
index 817ee837065c33db613db7982757b997d4a833cc..2b05c5d8792bcaae974e8bb02e9531c38e8bf02f 100644
--- a/Interaction/Widgets/vtkPolyLineWidget.h
+++ b/Interaction/Widgets/vtkPolyLineWidget.h
@@ -40,6 +40,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyLineRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkPolyLineWidget : public vtkAbstractWidget
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkPolyLineWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPolygonalHandleRepresentation3D.cxx b/Interaction/Widgets/vtkPolygonalHandleRepresentation3D.cxx
index a4f7a6c61ff436aa179dbf46410a8fbfd95f9f8d..be77cc977ee5b77e3c13a3db8bb062c9c53fec26 100644
--- a/Interaction/Widgets/vtkPolygonalHandleRepresentation3D.cxx
+++ b/Interaction/Widgets/vtkPolygonalHandleRepresentation3D.cxx
@@ -25,6 +25,7 @@
 #include "vtkRenderWindow.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolygonalHandleRepresentation3D);
 
 //------------------------------------------------------------------------------
@@ -61,3 +62,4 @@ void vtkPolygonalHandleRepresentation3D::PrintSelf(ostream& os, vtkIndent indent
 
   os << indent << "Offset: (" << this->Offset[0] << "," << this->Offset[1] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPolygonalHandleRepresentation3D.h b/Interaction/Widgets/vtkPolygonalHandleRepresentation3D.h
index 34912b102e319a87f5af80553c923b76c2ab9e9b..dea09f751cf0ad6fde8de60f46c7c7d28aaddfbb 100644
--- a/Interaction/Widgets/vtkPolygonalHandleRepresentation3D.h
+++ b/Interaction/Widgets/vtkPolygonalHandleRepresentation3D.h
@@ -31,6 +31,7 @@
 #include "vtkAbstractPolygonalHandleRepresentation3D.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONWIDGETS_EXPORT vtkPolygonalHandleRepresentation3D
   : public vtkAbstractPolygonalHandleRepresentation3D
 {
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkPolygonalHandleRepresentation3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPolygonalSurfaceContourLineInterpolator.cxx b/Interaction/Widgets/vtkPolygonalSurfaceContourLineInterpolator.cxx
index c79376557caa7eeda0e179d7371bdfbf8a2585db..24c7012192d5da67ba3b4737f22cba81aede3d9d 100644
--- a/Interaction/Widgets/vtkPolygonalSurfaceContourLineInterpolator.cxx
+++ b/Interaction/Widgets/vtkPolygonalSurfaceContourLineInterpolator.cxx
@@ -26,6 +26,7 @@
 #include "vtkPolyData.h"
 #include "vtkPolygonalSurfacePointPlacer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolygonalSurfaceContourLineInterpolator);
 
 //------------------------------------------------------------------------------
@@ -227,3 +228,4 @@ void vtkPolygonalSurfaceContourLineInterpolator::PrintSelf(ostream& os, vtkInden
 
   os << indent << "DistanceOffset: " << this->DistanceOffset << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPolygonalSurfaceContourLineInterpolator.h b/Interaction/Widgets/vtkPolygonalSurfaceContourLineInterpolator.h
index ece3964a3a4d521aba4017d0ca0301a8b3c36069..937bce65145d139d319b27e3f891e360eca2574b 100644
--- a/Interaction/Widgets/vtkPolygonalSurfaceContourLineInterpolator.h
+++ b/Interaction/Widgets/vtkPolygonalSurfaceContourLineInterpolator.h
@@ -43,6 +43,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPolyDataContourLineInterpolator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDijkstraGraphGeodesicPath;
 class vtkIdList;
 
@@ -116,4 +117,5 @@ private:
   vtkDijkstraGraphGeodesicPath* DijkstraGraphGeodesicPath;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkPolygonalSurfacePointPlacer.cxx b/Interaction/Widgets/vtkPolygonalSurfacePointPlacer.cxx
index d4804cc7461fb977f0ad332472c6a476f5f4113c..508b49e4b174c739d025e887589f6911e418e79d 100644
--- a/Interaction/Widgets/vtkPolygonalSurfacePointPlacer.cxx
+++ b/Interaction/Widgets/vtkPolygonalSurfacePointPlacer.cxx
@@ -32,6 +32,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolygonalSurfacePointPlacerInternals
 {
 
@@ -383,3 +384,4 @@ void vtkPolygonalSurfacePointPlacer::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Distance Offset: " << this->DistanceOffset << "\n";
   os << indent << "SnapToClosestPoint: " << this->SnapToClosestPoint << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkPolygonalSurfacePointPlacer.h b/Interaction/Widgets/vtkPolygonalSurfacePointPlacer.h
index bd5d4836dd602b2b45e37d953b35c55164c1a2a5..067dddff93b684303f378799cc13d5a6b49934e3 100644
--- a/Interaction/Widgets/vtkPolygonalSurfacePointPlacer.h
+++ b/Interaction/Widgets/vtkPolygonalSurfacePointPlacer.h
@@ -35,6 +35,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPolyDataPointPlacer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyDataCollection;
 class vtkCellPicker;
 class vtkPolygonalSurfacePointPlacerInternals;
@@ -179,4 +180,5 @@ private:
   void operator=(const vtkPolygonalSurfacePointPlacer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkProgressBarRepresentation.cxx b/Interaction/Widgets/vtkProgressBarRepresentation.cxx
index 9553d283e6c217c597aabea1d66c1d30dbd5afbe..64b94a2b8b9db38fc2a5137e5b59a67232d5b80e 100644
--- a/Interaction/Widgets/vtkProgressBarRepresentation.cxx
+++ b/Interaction/Widgets/vtkProgressBarRepresentation.cxx
@@ -28,6 +28,7 @@
 #include "vtkTransformPolyDataFilter.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProgressBarRepresentation);
 
 vtkProgressBarRepresentation::vtkProgressBarRepresentation()
@@ -295,3 +296,4 @@ void vtkProgressBarRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "BackgroundColor: " << this->BackgroundColor[0] << " " << this->BackgroundColor[1]
      << " " << this->BackgroundColor[2] << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkProgressBarRepresentation.h b/Interaction/Widgets/vtkProgressBarRepresentation.h
index 12e3c307a5314978c2b82268989f31301d9e3458..70bdb2458f1b4512416b8781444c075fea8060cb 100644
--- a/Interaction/Widgets/vtkProgressBarRepresentation.h
+++ b/Interaction/Widgets/vtkProgressBarRepresentation.h
@@ -28,6 +28,7 @@
 #include "vtkBorderRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 class vtkPoints;
 class vtkPolyData;
@@ -158,4 +159,5 @@ private:
   void operator=(const vtkProgressBarRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkProgressBarWidget.cxx b/Interaction/Widgets/vtkProgressBarWidget.cxx
index b217effb02ffaa0bc51ca677067c8b8a6be7cc12..e1b9dd4041304d20313fa5048d4700060214dca7 100644
--- a/Interaction/Widgets/vtkProgressBarWidget.cxx
+++ b/Interaction/Widgets/vtkProgressBarWidget.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkProgressBarRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProgressBarWidget);
 
 //------------------------------------------------------------------------------
@@ -42,3 +43,4 @@ void vtkProgressBarWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkProgressBarWidget.h b/Interaction/Widgets/vtkProgressBarWidget.h
index 4727a7c33ec537f5049e680bf908c2e9c3c46f6d..f35f514c20e86ae4fc8f0093b8c0297995cbdc4d 100644
--- a/Interaction/Widgets/vtkProgressBarWidget.h
+++ b/Interaction/Widgets/vtkProgressBarWidget.h
@@ -33,6 +33,7 @@
 #include "vtkBorderWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProgressBarRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkProgressBarWidget : public vtkBorderWidget
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkProgressBarWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkProp3DButtonRepresentation.cxx b/Interaction/Widgets/vtkProp3DButtonRepresentation.cxx
index 2272a246e92067f602809405800f80aa4a0286fb..6835f4d0d91dec34577099c54fff6f1316845db8 100644
--- a/Interaction/Widgets/vtkProp3DButtonRepresentation.cxx
+++ b/Interaction/Widgets/vtkProp3DButtonRepresentation.cxx
@@ -29,6 +29,7 @@
 #include "vtkSmartPointer.h"
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProp3DButtonRepresentation);
 
 struct vtkScaledProp
@@ -395,3 +396,4 @@ void vtkProp3DButtonRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "  (" << i << "): " << (*iter).second.Prop << "\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkProp3DButtonRepresentation.h b/Interaction/Widgets/vtkProp3DButtonRepresentation.h
index 4ba08ce7520965dd318b270cf1a0df5d1059a823..c48ca35a558c5b060f9234ab1d950014d3a5102f 100644
--- a/Interaction/Widgets/vtkProp3DButtonRepresentation.h
+++ b/Interaction/Widgets/vtkProp3DButtonRepresentation.h
@@ -43,6 +43,7 @@
 #include "vtkButtonRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPropPicker;
 class vtkProp3D;
 class vtkProp3DFollower;
@@ -144,4 +145,5 @@ private:
   void operator=(const vtkProp3DButtonRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkRectilinearWipeRepresentation.cxx b/Interaction/Widgets/vtkRectilinearWipeRepresentation.cxx
index eca0afd41f68ff0004eacc759eb166a329d7c19a..ea9b1426dfbf6ee486493f079917d0be04b0e5f3 100644
--- a/Interaction/Widgets/vtkRectilinearWipeRepresentation.cxx
+++ b/Interaction/Widgets/vtkRectilinearWipeRepresentation.cxx
@@ -30,6 +30,7 @@
 #include "vtkProperty2D.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearWipeRepresentation);
 
 vtkCxxSetObjectMacro(vtkRectilinearWipeRepresentation, RectilinearWipe, vtkImageRectilinearWipe);
@@ -488,3 +489,4 @@ void vtkRectilinearWipeRepresentation::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Tolerance: " << this->Tolerance << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkRectilinearWipeRepresentation.h b/Interaction/Widgets/vtkRectilinearWipeRepresentation.h
index bbfd3ddc7b9f4457c6e0fcf8410a303807fb17b0..a004f2a696379eed681bf048eb464406267223f2 100644
--- a/Interaction/Widgets/vtkRectilinearWipeRepresentation.h
+++ b/Interaction/Widgets/vtkRectilinearWipeRepresentation.h
@@ -43,6 +43,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageRectilinearWipe;
 class vtkImageActor;
 class vtkPoints;
@@ -184,4 +185,5 @@ private:
   void operator=(const vtkRectilinearWipeRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkRectilinearWipeWidget.cxx b/Interaction/Widgets/vtkRectilinearWipeWidget.cxx
index fe24002ea98f0dbefce6ef960b4200e69d03ddae..46b501576c9199ea2c05db8c6f770ca1b1193845 100644
--- a/Interaction/Widgets/vtkRectilinearWipeWidget.cxx
+++ b/Interaction/Widgets/vtkRectilinearWipeWidget.cxx
@@ -26,6 +26,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRectilinearWipeWidget);
 
 //------------------------------------------------------------------------------
@@ -164,3 +165,4 @@ void vtkRectilinearWipeWidget::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkRectilinearWipeWidget.h b/Interaction/Widgets/vtkRectilinearWipeWidget.h
index aefbc7e9cd94e29556351468aaf9801b9df22ca0..4b9dec18022a3141bdcdec1613b09a0d40108e73 100644
--- a/Interaction/Widgets/vtkRectilinearWipeWidget.h
+++ b/Interaction/Widgets/vtkRectilinearWipeWidget.h
@@ -81,6 +81,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRectilinearWipeRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkRectilinearWipeWidget : public vtkAbstractWidget
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkRectilinearWipeWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkResliceCursor.cxx b/Interaction/Widgets/vtkResliceCursor.cxx
index 59d6b91841e062e971199a750b515b3b89547dc1..672e76ba699998df0669b59b7a7e6cd8d33795d8 100644
--- a/Interaction/Widgets/vtkResliceCursor.cxx
+++ b/Interaction/Widgets/vtkResliceCursor.cxx
@@ -26,6 +26,7 @@
 #include <cmath>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkResliceCursor);
 vtkCxxSetObjectMacro(vtkResliceCursor, Image, vtkImageData);
 
@@ -632,3 +633,4 @@ void vtkResliceCursor::PrintSelf(ostream& os, vtkIndent indent)
   // this->PolyDataBuildTime;
   // this->CenterlineAxis[3];
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkResliceCursor.h b/Interaction/Widgets/vtkResliceCursor.h
index 6f06364c514e025dc3587edaab02a92757814ca3..8c33046a641e853a0467654d6e834bdb844fd802 100644
--- a/Interaction/Widgets/vtkResliceCursor.h
+++ b/Interaction/Widgets/vtkResliceCursor.h
@@ -35,6 +35,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkPolyData;
 class vtkPlane;
@@ -208,4 +209,5 @@ private:
   void operator=(const vtkResliceCursor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkResliceCursorActor.cxx b/Interaction/Widgets/vtkResliceCursorActor.cxx
index bac387cfb5c0531fce23dbe641d91a50acbc51fb..6df9a395f4241af916288ffb1f86d97a8453fb5a 100644
--- a/Interaction/Widgets/vtkResliceCursorActor.cxx
+++ b/Interaction/Widgets/vtkResliceCursorActor.cxx
@@ -27,6 +27,7 @@
 #include "vtkResliceCursorPolyDataAlgorithm.h"
 #include "vtkViewport.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkResliceCursorActor);
 
 //------------------------------------------------------------------------------
@@ -344,3 +345,4 @@ void vtkResliceCursorActor::PrintSelf(ostream& os, vtkIndent indent)
   // this->ThickSlabProperty[3];
   // this->CursorAlgorithm;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkResliceCursorActor.h b/Interaction/Widgets/vtkResliceCursorActor.h
index 81a81db3cdfed6d740af8c2a33a8e0f250417d4a..f36eb20b344659bfc675948800831ac989899ec7 100644
--- a/Interaction/Widgets/vtkResliceCursorActor.h
+++ b/Interaction/Widgets/vtkResliceCursorActor.h
@@ -30,6 +30,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkProp3D.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkResliceCursor;
 class vtkResliceCursorPolyDataAlgorithm;
 class vtkPolyDataMapper;
@@ -122,4 +123,5 @@ private:
   void operator=(const vtkResliceCursorActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkResliceCursorLineRepresentation.cxx b/Interaction/Widgets/vtkResliceCursorLineRepresentation.cxx
index bf980143f918174f105f7d779c2739cf30e2cac2..67ecbf185468f3b403e9f2ae2a91d2450b553a04 100644
--- a/Interaction/Widgets/vtkResliceCursorLineRepresentation.cxx
+++ b/Interaction/Widgets/vtkResliceCursorLineRepresentation.cxx
@@ -48,6 +48,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkResliceCursorLineRepresentation);
 
 //------------------------------------------------------------------------------
@@ -605,3 +606,4 @@ void vtkResliceCursorLineRepresentation::PrintSelf(ostream& os, vtkIndent indent
   // this->StartPickPosition;
   // this->StartCenterPosition;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkResliceCursorLineRepresentation.h b/Interaction/Widgets/vtkResliceCursorLineRepresentation.h
index c837ec406ab316f496982a58b14481eea2f1d24b..02648d3a44b373f1fdf725efb2774271b0d22763 100644
--- a/Interaction/Widgets/vtkResliceCursorLineRepresentation.h
+++ b/Interaction/Widgets/vtkResliceCursorLineRepresentation.h
@@ -35,6 +35,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkResliceCursorRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkResliceCursorActor;
 class vtkResliceCursorPolyDataAlgorithm;
@@ -146,4 +147,5 @@ private:
   void operator=(const vtkResliceCursorLineRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkResliceCursorPicker.cxx b/Interaction/Widgets/vtkResliceCursorPicker.cxx
index 88b97a8b2998aa6b4e399b745cf2027933e5e4cc..5e7c05982fbbd4518570edb196e03409593c7e9b 100644
--- a/Interaction/Widgets/vtkResliceCursorPicker.cxx
+++ b/Interaction/Widgets/vtkResliceCursorPicker.cxx
@@ -30,6 +30,7 @@
 #include "vtkResliceCursorPolyDataAlgorithm.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkResliceCursorPicker);
 vtkCxxSetObjectMacro(
   vtkResliceCursorPicker, ResliceCursorAlgorithm, vtkResliceCursorPolyDataAlgorithm);
@@ -539,3 +540,4 @@ void vtkResliceCursorPicker::PrintSelf(ostream& os, vtkIndent indent)
   // this->Plane;
   // this->Cell;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkResliceCursorPicker.h b/Interaction/Widgets/vtkResliceCursorPicker.h
index 29e73806b1f6aef9274d5b6d8322bde706b5ef9d..cb241fb3b08bf3c9b789bfcfc9f06375f88c0a48 100644
--- a/Interaction/Widgets/vtkResliceCursorPicker.h
+++ b/Interaction/Widgets/vtkResliceCursorPicker.h
@@ -33,6 +33,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPicker.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkGenericCell;
 class vtkResliceCursorPolyDataAlgorithm;
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkResliceCursorPicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkResliceCursorPolyDataAlgorithm.cxx b/Interaction/Widgets/vtkResliceCursorPolyDataAlgorithm.cxx
index c0529da93dd150fe4cad3bf83ad140c5b791cc74..8631cce66c1e507576efb56f5231aa865c724b71 100644
--- a/Interaction/Widgets/vtkResliceCursorPolyDataAlgorithm.cxx
+++ b/Interaction/Widgets/vtkResliceCursorPolyDataAlgorithm.cxx
@@ -33,6 +33,7 @@
 #include <algorithm>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkResliceCursorPolyDataAlgorithm);
 vtkCxxSetObjectMacro(vtkResliceCursorPolyDataAlgorithm, ResliceCursor, vtkResliceCursor);
 
@@ -345,3 +346,4 @@ void vtkResliceCursorPolyDataAlgorithm::PrintSelf(ostream& os, vtkIndent indent)
   // this->ClipWithBox;
   // this->SlicePlane;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkResliceCursorPolyDataAlgorithm.h b/Interaction/Widgets/vtkResliceCursorPolyDataAlgorithm.h
index b170bcc1455946410d893d822bff157637c38940..51c7dc8af462938c83ed68ef4e07430fbe9dcd49 100644
--- a/Interaction/Widgets/vtkResliceCursorPolyDataAlgorithm.h
+++ b/Interaction/Widgets/vtkResliceCursorPolyDataAlgorithm.h
@@ -35,6 +35,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPolyDataAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCutter;
 class vtkResliceCursor;
 class vtkPlane;
@@ -153,4 +154,5 @@ private:
   void operator=(const vtkResliceCursorPolyDataAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkResliceCursorRepresentation.cxx b/Interaction/Widgets/vtkResliceCursorRepresentation.cxx
index 861bcc8d403f33ddae58c872ab684545d899223e..e5e4372267f0fe42fb9eb01ab2d0636adb742470 100644
--- a/Interaction/Widgets/vtkResliceCursorRepresentation.cxx
+++ b/Interaction/Widgets/vtkResliceCursorRepresentation.cxx
@@ -51,6 +51,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkResliceCursorRepresentation, ColorMap, vtkImageMapToColors);
 
 //------------------------------------------------------------------------------
@@ -1007,3 +1008,4 @@ void vtkResliceCursorRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   // this->Texture;
   // this->TextActor;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkResliceCursorRepresentation.h b/Interaction/Widgets/vtkResliceCursorRepresentation.h
index 848abbcfd6abebbd6f31855de9e5b26d2d945539..a0d3cea9a517a0894be080d89d7485da0cefe2c6 100644
--- a/Interaction/Widgets/vtkResliceCursorRepresentation.h
+++ b/Interaction/Widgets/vtkResliceCursorRepresentation.h
@@ -30,6 +30,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTextProperty;
 class vtkActor2D;
 class vtkTextMapper;
@@ -368,4 +369,5 @@ private:
   void operator=(const vtkResliceCursorRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkResliceCursorThickLineRepresentation.cxx b/Interaction/Widgets/vtkResliceCursorThickLineRepresentation.cxx
index 4ef3204abe890bb846ae898901b36bfe9516b3a7..c78248202c1b0a9d6ea2a70d7e78c771302e5a12 100644
--- a/Interaction/Widgets/vtkResliceCursorThickLineRepresentation.cxx
+++ b/Interaction/Widgets/vtkResliceCursorThickLineRepresentation.cxx
@@ -24,6 +24,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkResliceCursorThickLineRepresentation);
 
 //------------------------------------------------------------------------------
@@ -89,3 +90,4 @@ void vtkResliceCursorThickLineRepresentation::PrintSelf(ostream& os, vtkIndent i
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkResliceCursorThickLineRepresentation.h b/Interaction/Widgets/vtkResliceCursorThickLineRepresentation.h
index 60fcfcb165d23f818c4f23c7dd3c71148d695d4b..ba97363f18282e2dcc06594d7b2aa997a17bd3be 100644
--- a/Interaction/Widgets/vtkResliceCursorThickLineRepresentation.h
+++ b/Interaction/Widgets/vtkResliceCursorThickLineRepresentation.h
@@ -32,6 +32,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkResliceCursorLineRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONWIDGETS_EXPORT vtkResliceCursorThickLineRepresentation
   : public vtkResliceCursorLineRepresentation
 {
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkResliceCursorThickLineRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkResliceCursorWidget.cxx b/Interaction/Widgets/vtkResliceCursorWidget.cxx
index 167419b63240cf8a45bf6ac5e2149e931a2f276d..549d4bb3d1e8d33e5bb5800c2979b67f86350696 100644
--- a/Interaction/Widgets/vtkResliceCursorWidget.cxx
+++ b/Interaction/Widgets/vtkResliceCursorWidget.cxx
@@ -29,6 +29,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkResliceCursorWidget);
 
 //------------------------------------------------------------------------------
@@ -474,3 +475,4 @@ void vtkResliceCursorWidget::PrintSelf(ostream& os, vtkIndent indent)
   // this->ModifierActive;
   // this->WidgetState;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkResliceCursorWidget.h b/Interaction/Widgets/vtkResliceCursorWidget.h
index ca2a96af868fff382d528fcbc3ab541c8c16ebc2..6c7d47020b0c78cef1501d4a0c3f887c501c9ae7 100644
--- a/Interaction/Widgets/vtkResliceCursorWidget.h
+++ b/Interaction/Widgets/vtkResliceCursorWidget.h
@@ -40,6 +40,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkResliceCursorRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkResliceCursorWidget : public vtkAbstractWidget
@@ -157,4 +158,5 @@ private:
   void operator=(const vtkResliceCursorWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkScalarBarRepresentation.cxx b/Interaction/Widgets/vtkScalarBarRepresentation.cxx
index fed27741c4337d2423d122ddbea56e5c8a552057..2ab872350bc46ddcba01d2ee5bda25feaab72877 100644
--- a/Interaction/Widgets/vtkScalarBarRepresentation.cxx
+++ b/Interaction/Widgets/vtkScalarBarRepresentation.cxx
@@ -34,6 +34,7 @@
 #include <cmath>
 
 //=============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkScalarBarRepresentation);
 //------------------------------------------------------------------------------
 vtkScalarBarRepresentation::vtkScalarBarRepresentation()
@@ -272,3 +273,4 @@ vtkTypeBool vtkScalarBarRepresentation::HasTranslucentPolygonalGeometry()
   }
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkScalarBarRepresentation.h b/Interaction/Widgets/vtkScalarBarRepresentation.h
index c0fb8d1f33b1a0088454e3f7b56e94ed23efc2c4..e8c0f3e58103b869f4ae7c40c6fd1db66ea408f2 100644
--- a/Interaction/Widgets/vtkScalarBarRepresentation.h
+++ b/Interaction/Widgets/vtkScalarBarRepresentation.h
@@ -46,6 +46,7 @@
 #include "vtkBorderRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScalarBarActor;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkScalarBarRepresentation : public vtkBorderRepresentation
@@ -126,4 +127,5 @@ private:
   void operator=(const vtkScalarBarRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkScalarBarRepresentation_h
diff --git a/Interaction/Widgets/vtkScalarBarWidget.cxx b/Interaction/Widgets/vtkScalarBarWidget.cxx
index 3f895056b1a92170ff9e6f264c9e00e08a3eac24..21bcd06ca5713891715756fc75c8c3b6dce864a0 100644
--- a/Interaction/Widgets/vtkScalarBarWidget.cxx
+++ b/Interaction/Widgets/vtkScalarBarWidget.cxx
@@ -25,6 +25,7 @@
 #include "vtkWidgetCallbackMapper.h"
 #include "vtkWidgetEvent.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkScalarBarWidget);
 
 //------------------------------------------------------------------------------
@@ -132,3 +133,4 @@ void vtkScalarBarWidget::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Repositionable: " << this->Repositionable << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkScalarBarWidget.h b/Interaction/Widgets/vtkScalarBarWidget.h
index 34063ed5b62c425ed86ef259f05e5843f7d863bf..fd4cd0116994c271ee0d93edcbdb347d9d5fb967 100644
--- a/Interaction/Widgets/vtkScalarBarWidget.h
+++ b/Interaction/Widgets/vtkScalarBarWidget.h
@@ -38,6 +38,7 @@
 #include "vtkBorderWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScalarBarActor;
 class vtkScalarBarRepresentation;
 
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkScalarBarWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSeedRepresentation.cxx b/Interaction/Widgets/vtkSeedRepresentation.cxx
index 2cb5539c73a42f82b1e42b65edb855f01f92416c..fb02ca7f39ba70792c2790925d2a4f15d78218e9 100644
--- a/Interaction/Widgets/vtkSeedRepresentation.cxx
+++ b/Interaction/Widgets/vtkSeedRepresentation.cxx
@@ -27,6 +27,7 @@
 #include <iterator>
 #include <list>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSeedRepresentation);
 
 vtkCxxSetObjectMacro(vtkSeedRepresentation, HandleRepresentation, vtkHandleRepresentation);
@@ -301,3 +302,4 @@ void vtkSeedRepresentation::GetActors(vtkPropCollection* pc)
   }
   this->Superclass::GetActors(pc);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSeedRepresentation.h b/Interaction/Widgets/vtkSeedRepresentation.h
index fc6559ab0c937de5dc60dd30ad4d60b9c3addd47..9bcec73ee2b89a44d099619f62248db00a296059 100644
--- a/Interaction/Widgets/vtkSeedRepresentation.h
+++ b/Interaction/Widgets/vtkSeedRepresentation.h
@@ -31,6 +31,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHandleList;
 class vtkHandleRepresentation;
 
@@ -157,4 +158,5 @@ private:
   void operator=(const vtkSeedRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSeedWidget.cxx b/Interaction/Widgets/vtkSeedWidget.cxx
index 2bd2272a55a9ef85d6d375077ed4a635f1da99a8..c898b91694aaa0f9a0e71cd2fe8f962217e77ce8 100644
--- a/Interaction/Widgets/vtkSeedWidget.cxx
+++ b/Interaction/Widgets/vtkSeedWidget.cxx
@@ -30,6 +30,7 @@
 #include <iterator>
 #include <list>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSeedWidget);
 
 // The vtkSeedList is a PIMPLed list<T>.
@@ -391,3 +392,4 @@ void vtkSeedWidget::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "WidgetState: " << this->WidgetState << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSeedWidget.h b/Interaction/Widgets/vtkSeedWidget.h
index 6b32478f770f338e1fcdeab99456f451d75e203b..f7a2359314bb2c180ced22e3939a4352e05bb75e 100644
--- a/Interaction/Widgets/vtkSeedWidget.h
+++ b/Interaction/Widgets/vtkSeedWidget.h
@@ -73,6 +73,7 @@
 #include "vtkAbstractWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHandleRepresentation;
 class vtkHandleWidget;
 class vtkSeedList;
@@ -220,4 +221,5 @@ private:
   void operator=(const vtkSeedWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSliderRepresentation.cxx b/Interaction/Widgets/vtkSliderRepresentation.cxx
index 87c1b337697065305f579fe0a03b9d08d7e49b0a..d61a9de18e1a831cb1d0f362a2036ac3d0500cba 100644
--- a/Interaction/Widgets/vtkSliderRepresentation.cxx
+++ b/Interaction/Widgets/vtkSliderRepresentation.cxx
@@ -19,6 +19,7 @@
 #include "vtkRenderer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkSliderRepresentation::vtkSliderRepresentation()
 {
   this->MinimumValue = 0.0;
@@ -157,3 +158,4 @@ void vtkSliderRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Label Height: " << this->LabelHeight << "\n";
   os << indent << "Title Height: " << this->TitleHeight << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSliderRepresentation.h b/Interaction/Widgets/vtkSliderRepresentation.h
index 3c14b3a881865d2ba038e83ad8539a46344ba413..f7a3bf96fe238e050cffa72d21c8f6b3dd3447e9 100644
--- a/Interaction/Widgets/vtkSliderRepresentation.h
+++ b/Interaction/Widgets/vtkSliderRepresentation.h
@@ -33,6 +33,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONWIDGETS_EXPORT vtkSliderRepresentation : public vtkWidgetRepresentation
 {
 public:
@@ -215,4 +216,5 @@ private:
   void operator=(const vtkSliderRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSliderRepresentation2D.cxx b/Interaction/Widgets/vtkSliderRepresentation2D.cxx
index 0338780e6af22fb59b2c06e25b6930e1f2b1d5c9..978b88b9e793a30063cfaa22bacd3e09603d0bd1 100644
--- a/Interaction/Widgets/vtkSliderRepresentation2D.cxx
+++ b/Interaction/Widgets/vtkSliderRepresentation2D.cxx
@@ -33,6 +33,7 @@
 #include "vtkTransformPolyDataFilter.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSliderRepresentation2D);
 
 //------------------------------------------------------------------------------
@@ -614,3 +615,4 @@ void vtkSliderRepresentation2D::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "TitleProperty: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSliderRepresentation2D.h b/Interaction/Widgets/vtkSliderRepresentation2D.h
index 090315eb8aae5274b91d6811a0cfd87e6a4aca54..f7cbaa1d2b682104878b4af1610c95609dee2297 100644
--- a/Interaction/Widgets/vtkSliderRepresentation2D.h
+++ b/Interaction/Widgets/vtkSliderRepresentation2D.h
@@ -33,6 +33,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkSliderRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkCellArray;
 class vtkPolyData;
@@ -204,4 +205,5 @@ private:
   void operator=(const vtkSliderRepresentation2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSliderRepresentation3D.cxx b/Interaction/Widgets/vtkSliderRepresentation3D.cxx
index 6f151ef3cd5a76bf0a1d17a2aa6e54ed9a3e12b0..30698bc8ed006c4ac19544166142a9f02589204d 100644
--- a/Interaction/Widgets/vtkSliderRepresentation3D.cxx
+++ b/Interaction/Widgets/vtkSliderRepresentation3D.cxx
@@ -41,6 +41,7 @@
 #include "vtkVectorText.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSliderRepresentation3D);
 
 //------------------------------------------------------------------------------
@@ -755,3 +756,4 @@ void vtkSliderRepresentation3D::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Slider Shape: Cylinder\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSliderRepresentation3D.h b/Interaction/Widgets/vtkSliderRepresentation3D.h
index 8735181387c2f81f31e2f06937338471d8222de8..21bb0aa4d133a08450f51df9dd245d732bd75f89 100644
--- a/Interaction/Widgets/vtkSliderRepresentation3D.h
+++ b/Interaction/Widgets/vtkSliderRepresentation3D.h
@@ -34,6 +34,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkSliderRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyDataMapper;
 class vtkSphereSource;
@@ -259,4 +260,5 @@ private:
   void operator=(const vtkSliderRepresentation3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSliderWidget.cxx b/Interaction/Widgets/vtkSliderWidget.cxx
index 035388df9e269cdfc8d0f4f54e200c01ca5cbca5..aec1e5cab93f019df2fd51218f3d5fc6b6e4b9b9 100644
--- a/Interaction/Widgets/vtkSliderWidget.cxx
+++ b/Interaction/Widgets/vtkSliderWidget.cxx
@@ -24,6 +24,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSliderWidget);
 
 //------------------------------------------------------------------------------
@@ -250,3 +251,4 @@ void vtkSliderWidget::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Number of Animation Steps: " << this->NumberOfAnimationSteps << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSliderWidget.h b/Interaction/Widgets/vtkSliderWidget.h
index ba6ea361e747cee9f846af6e2154f7fea2c51652..f579025728a7cc82e651b9e02f3ca2af56512d80 100644
--- a/Interaction/Widgets/vtkSliderWidget.h
+++ b/Interaction/Widgets/vtkSliderWidget.h
@@ -70,6 +70,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSliderRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkSliderWidget : public vtkAbstractWidget
@@ -172,4 +173,5 @@ private:
   void operator=(const vtkSliderWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSphereHandleRepresentation.cxx b/Interaction/Widgets/vtkSphereHandleRepresentation.cxx
index c2dec12087dd6ddcc86d6233124da07009d6bb3e..b48b312102ace9d91222ddd02ac8847791271d21 100644
--- a/Interaction/Widgets/vtkSphereHandleRepresentation.cxx
+++ b/Interaction/Widgets/vtkSphereHandleRepresentation.cxx
@@ -29,6 +29,7 @@
 #include "vtkRenderer.h"
 #include "vtkSphereSource.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSphereHandleRepresentation);
 vtkCxxSetObjectMacro(vtkSphereHandleRepresentation, SelectedProperty, vtkProperty);
 
@@ -556,3 +557,4 @@ void vtkSphereHandleRepresentation::PrintSelf(ostream& os, vtkIndent indent)
 
   this->Sphere->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSphereHandleRepresentation.h b/Interaction/Widgets/vtkSphereHandleRepresentation.h
index 03fd7213f444ce97aa7b194e43a2afe492c9db1d..70f70911811bb659df128eebdbf2af8497f52c53 100644
--- a/Interaction/Widgets/vtkSphereHandleRepresentation.h
+++ b/Interaction/Widgets/vtkSphereHandleRepresentation.h
@@ -31,6 +31,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkSphereSource.h"             // Needed for delegation to sphere
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSphereSource;
 class vtkProperty;
 class vtkActor;
@@ -195,4 +196,5 @@ private:
   void operator=(const vtkSphereHandleRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSphereRepresentation.cxx b/Interaction/Widgets/vtkSphereRepresentation.cxx
index 82b96c401d2cf4591778fe7600328ae6243dcbf2..ad47202558209a58128619769f1c023e9c52e2ab 100644
--- a/Interaction/Widgets/vtkSphereRepresentation.cxx
+++ b/Interaction/Widgets/vtkSphereRepresentation.cxx
@@ -42,6 +42,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSphereRepresentation);
 
 //------------------------------------------------------------------------------
@@ -932,3 +933,4 @@ void vtkSphereRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Radial Line Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSphereRepresentation.h b/Interaction/Widgets/vtkSphereRepresentation.h
index aceadf1884645cbaa2044c211ab5a9355ed1b7b6..fa0d3049c2fafaf9cc308fbe92df06f919ac3286 100644
--- a/Interaction/Widgets/vtkSphereRepresentation.h
+++ b/Interaction/Widgets/vtkSphereRepresentation.h
@@ -50,6 +50,7 @@
 #include "vtkSphereSource.h"             // Needed for fast access to the sphere source
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyDataMapper;
 class vtkSphere;
@@ -420,4 +421,5 @@ private:
   void operator=(const vtkSphereRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSphereWidget.cxx b/Interaction/Widgets/vtkSphereWidget.cxx
index 9538a23bddd4f27e678efdbb6a7e98982d389e56..6c511d7ecdf36500dd6c91aa9e12ee528e885800 100644
--- a/Interaction/Widgets/vtkSphereWidget.cxx
+++ b/Interaction/Widgets/vtkSphereWidget.cxx
@@ -32,6 +32,7 @@
 #include "vtkSphere.h"
 #include "vtkSphereSource.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSphereWidget);
 
 //------------------------------------------------------------------------------
@@ -752,3 +753,4 @@ void vtkSphereWidget::GetPolyData(vtkPolyData* pd)
 {
   pd->ShallowCopy(this->SphereSource->GetOutput());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSphereWidget.h b/Interaction/Widgets/vtkSphereWidget.h
index dde4ea0b35314e5d7844d774e086560f2ab6cc12..b3b1dd33e29938ea6f1f18012601cb3dafca9cb8 100644
--- a/Interaction/Widgets/vtkSphereWidget.h
+++ b/Interaction/Widgets/vtkSphereWidget.h
@@ -57,6 +57,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkSphereSource.h"             // Needed for faster access to the sphere source
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyDataMapper;
 class vtkPoints;
@@ -298,4 +299,5 @@ private:
   void operator=(const vtkSphereWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSphereWidget2.cxx b/Interaction/Widgets/vtkSphereWidget2.cxx
index 21104b8586e5ea2b521974d41a37ee448ab98823..74123afa273f6428a24304fe5ce1a4df15271cab 100644
--- a/Interaction/Widgets/vtkSphereWidget2.cxx
+++ b/Interaction/Widgets/vtkSphereWidget2.cxx
@@ -25,6 +25,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSphereWidget2);
 
 //------------------------------------------------------------------------------
@@ -368,3 +369,4 @@ void vtkSphereWidget2::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Translation Enabled: " << (this->TranslationEnabled ? "On\n" : "Off\n");
   os << indent << "Scaling Enabled: " << (this->ScalingEnabled ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSphereWidget2.h b/Interaction/Widgets/vtkSphereWidget2.h
index 0c587caf63f536d4865d5b9d9881ac92ed5a2104..37d7a4b58e6e98f8f6333521193345762da211c3 100644
--- a/Interaction/Widgets/vtkSphereWidget2.h
+++ b/Interaction/Widgets/vtkSphereWidget2.h
@@ -91,6 +91,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSphereRepresentation;
 class vtkHandleWidget;
 
@@ -180,4 +181,5 @@ private:
   void operator=(const vtkSphereWidget2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSplineRepresentation.cxx b/Interaction/Widgets/vtkSplineRepresentation.cxx
index 1e449a526d42177307d87e282cd4808bf773e05f..9f287bc8d4db7e3d2c78ba96c93a8661cb809dd5 100644
--- a/Interaction/Widgets/vtkSplineRepresentation.cxx
+++ b/Interaction/Widgets/vtkSplineRepresentation.cxx
@@ -24,6 +24,7 @@
 #include "vtkVectorOperators.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSplineRepresentation);
 
 //------------------------------------------------------------------------------
@@ -400,3 +401,4 @@ void vtkSplineRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << ")\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSplineRepresentation.h b/Interaction/Widgets/vtkSplineRepresentation.h
index f55d32f82031247a3eaaa38f9c0c6b291983df7c..67a5fd5bf1e342e509b78ce83a8ac597eadaed79 100644
--- a/Interaction/Widgets/vtkSplineRepresentation.h
+++ b/Interaction/Widgets/vtkSplineRepresentation.h
@@ -31,6 +31,7 @@
 #include "vtkAbstractSplineRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPointHandleSource;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkSplineRepresentation : public vtkAbstractSplineRepresentation
@@ -116,4 +117,5 @@ private:
   std::vector<vtkSmartPointer<vtkActor>> HandleActors;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSplineWidget.cxx b/Interaction/Widgets/vtkSplineWidget.cxx
index 377f007d24e40c70e13b5e192340aef044fd18ea..b79c66dcababd0600ec45a183d8f93129d59673c 100644
--- a/Interaction/Widgets/vtkSplineWidget.cxx
+++ b/Interaction/Widgets/vtkSplineWidget.cxx
@@ -35,6 +35,7 @@
 #include "vtkSphereSource.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSplineWidget);
 
 vtkCxxSetObjectMacro(vtkSplineWidget, HandleProperty, vtkProperty);
@@ -1485,3 +1486,4 @@ int vtkSplineWidget::IsClosed()
 
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSplineWidget.h b/Interaction/Widgets/vtkSplineWidget.h
index be6934dce883dd79edcb12e0eb435d4dfaa41f60..6447a07c4b71acb32bf1dbd735351f51f636d643 100644
--- a/Interaction/Widgets/vtkSplineWidget.h
+++ b/Interaction/Widgets/vtkSplineWidget.h
@@ -84,6 +84,7 @@
 #include "vtk3DWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkCellPicker;
 class vtkParametricSpline;
@@ -380,4 +381,5 @@ private:
   void operator=(const vtkSplineWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkSplineWidget2.cxx b/Interaction/Widgets/vtkSplineWidget2.cxx
index f942717029c18cc18a38c2f1b39605dc1fc84cad..4e55abefc10f88cf8c3c74c918882e16658d8c90 100644
--- a/Interaction/Widgets/vtkSplineWidget2.cxx
+++ b/Interaction/Widgets/vtkSplineWidget2.cxx
@@ -26,6 +26,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSplineWidget2);
 //------------------------------------------------------------------------------
 vtkSplineWidget2::vtkSplineWidget2()
@@ -327,3 +328,4 @@ void vtkSplineWidget2::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkSplineWidget2.h b/Interaction/Widgets/vtkSplineWidget2.h
index 92ab93fccd118257909465284d25110baf9c07aa..7b2716d4b5db8be2b8dcb1d0844ce173f9eb0d8e 100644
--- a/Interaction/Widgets/vtkSplineWidget2.h
+++ b/Interaction/Widgets/vtkSplineWidget2.h
@@ -30,6 +30,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSplineRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkSplineWidget2 : public vtkAbstractWidget
@@ -91,4 +92,5 @@ private:
   void operator=(const vtkSplineWidget2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkTensorProbeRepresentation.cxx b/Interaction/Widgets/vtkTensorProbeRepresentation.cxx
index ecc8b6c317bb6f745782e89fade8fbd42deb6c3d..95436882be234d01f460d0f023dcf0a0e8e77fec 100644
--- a/Interaction/Widgets/vtkTensorProbeRepresentation.cxx
+++ b/Interaction/Widgets/vtkTensorProbeRepresentation.cxx
@@ -28,6 +28,7 @@
 #include "vtkRenderer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkTensorProbeRepresentation::vtkTensorProbeRepresentation()
 {
   this->Trajectory = nullptr;
@@ -231,3 +232,4 @@ void vtkTensorProbeRepresentation::PrintSelf(ostream& os, vtkIndent indent)
      << "," << this->ProbePosition[2] << ")" << endl;
   os << indent << "ProbeCellId: " << this->ProbeCellId << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkTensorProbeRepresentation.h b/Interaction/Widgets/vtkTensorProbeRepresentation.h
index ac8a7aff88820c7c7714a49b98dbe3f7db62dda7..a7a46f0c96c778ee9ffff98624024aba967e50cc 100644
--- a/Interaction/Widgets/vtkTensorProbeRepresentation.h
+++ b/Interaction/Widgets/vtkTensorProbeRepresentation.h
@@ -31,6 +31,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyData;
 class vtkPolyDataMapper;
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkTensorProbeRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkTensorProbeWidget.cxx b/Interaction/Widgets/vtkTensorProbeWidget.cxx
index b5b754c8e9c6760de50d62a05756c5b75895a21c..16256beded120d752f9bf0faba1083009bbd9413 100644
--- a/Interaction/Widgets/vtkTensorProbeWidget.cxx
+++ b/Interaction/Widgets/vtkTensorProbeWidget.cxx
@@ -30,6 +30,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTensorProbeWidget);
 
 //------------------------------------------------------------------------------
@@ -130,3 +131,4 @@ void vtkTensorProbeWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkTensorProbeWidget.h b/Interaction/Widgets/vtkTensorProbeWidget.h
index a18a292113de2feb914abe47c1a88519959ac211..a09e708f74fad438ee4f3b1575a12a30d42625ab 100644
--- a/Interaction/Widgets/vtkTensorProbeWidget.h
+++ b/Interaction/Widgets/vtkTensorProbeWidget.h
@@ -34,6 +34,7 @@
 #include "vtkAbstractWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTensorProbeRepresentation;
 class vtkPolyData;
 
@@ -95,4 +96,5 @@ private:
   void operator=(const vtkTensorProbeWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkTensorRepresentation.cxx b/Interaction/Widgets/vtkTensorRepresentation.cxx
index 248d562b524c60bb16ab2de0ee252babb417b8d4..bc5732df7e8cd9b7b6df5d83c8da6d5cb77aa6f9 100644
--- a/Interaction/Widgets/vtkTensorRepresentation.cxx
+++ b/Interaction/Widgets/vtkTensorRepresentation.cxx
@@ -45,6 +45,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTensorRepresentation);
 
 //------------------------------------------------------------------------------
@@ -1966,3 +1967,4 @@ void vtkTensorRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Tensor Ellipsoid: " << (this->TensorEllipsoid ? "On\n" : "Off\n");
   os << indent << "Inside Out: " << (this->InsideOut ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkTensorRepresentation.h b/Interaction/Widgets/vtkTensorRepresentation.h
index 3adc0af51b8791321eaf62658cb34eb1511d6754..db27f00fc353069501ad677a475701227534211a 100644
--- a/Interaction/Widgets/vtkTensorRepresentation.h
+++ b/Interaction/Widgets/vtkTensorRepresentation.h
@@ -46,6 +46,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkWidgetRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyDataMapper;
 class vtkLineSource;
@@ -464,4 +465,5 @@ private:
   void operator=(const vtkTensorRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkTensorWidget.cxx b/Interaction/Widgets/vtkTensorWidget.cxx
index db4bb5f09e6f8d622c5902ca35b72a4117b11a9f..c73cfa813640797dcbc332405e241c9160b283ad 100644
--- a/Interaction/Widgets/vtkTensorWidget.cxx
+++ b/Interaction/Widgets/vtkTensorWidget.cxx
@@ -26,6 +26,7 @@
 #include "vtkWidgetEvent.h"
 #include "vtkWidgetEventTranslator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTensorWidget);
 
 //------------------------------------------------------------------------------
@@ -568,3 +569,4 @@ void vtkTensorWidget::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Rotation Enabled: " << (this->RotationEnabled ? "On\n" : "Off\n");
   os << indent << "Move Faces Enabled: " << (this->MoveFacesEnabled ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkTensorWidget.h b/Interaction/Widgets/vtkTensorWidget.h
index fba11d1ad9d9de6ad06b2b66e5a444d942d4049d..8bdc358d64fffb45956ea870102ea0fd4d25a2ca 100644
--- a/Interaction/Widgets/vtkTensorWidget.h
+++ b/Interaction/Widgets/vtkTensorWidget.h
@@ -93,6 +93,7 @@
 #include "vtkDeprecation.h"              // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTensorRepresentation;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkTensorWidget : public vtkAbstractWidget
@@ -193,4 +194,5 @@ private:
   void operator=(const vtkTensorWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkTerrainContourLineInterpolator.cxx b/Interaction/Widgets/vtkTerrainContourLineInterpolator.cxx
index d3575dd100500670f331ef836c72997e639e5aa6..675cd0ffd3aa4078ae24d17c24fafce0c8ad40bc 100644
--- a/Interaction/Widgets/vtkTerrainContourLineInterpolator.cxx
+++ b/Interaction/Widgets/vtkTerrainContourLineInterpolator.cxx
@@ -22,6 +22,7 @@
 #include "vtkPoints.h"
 #include "vtkProjectedTerrainPath.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTerrainContourLineInterpolator);
 
 //------------------------------------------------------------------------------
@@ -160,3 +161,4 @@ void vtkTerrainContourLineInterpolator::PrintSelf(ostream& os, vtkIndent indent)
     this->Projector->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkTerrainContourLineInterpolator.h b/Interaction/Widgets/vtkTerrainContourLineInterpolator.h
index fac55d65290645f6c9caa8b4fb44ae999dae8707..18beba2f75ef35a663468bd753bdaa62fa275cae 100644
--- a/Interaction/Widgets/vtkTerrainContourLineInterpolator.h
+++ b/Interaction/Widgets/vtkTerrainContourLineInterpolator.h
@@ -44,6 +44,7 @@
 #include "vtkContourLineInterpolator.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkProjectedTerrainPath;
 
@@ -112,4 +113,5 @@ private:
   void operator=(const vtkTerrainContourLineInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkTerrainDataPointPlacer.cxx b/Interaction/Widgets/vtkTerrainDataPointPlacer.cxx
index 08677fba0099edb80f953fc892d538a34df13918..dcafe1cdf27159361699efecc2cf047ec4578ffa 100644
--- a/Interaction/Widgets/vtkTerrainDataPointPlacer.cxx
+++ b/Interaction/Widgets/vtkTerrainDataPointPlacer.cxx
@@ -22,6 +22,7 @@
 #include "vtkPropPicker.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTerrainDataPointPlacer);
 
 //------------------------------------------------------------------------------
@@ -152,3 +153,4 @@ void vtkTerrainDataPointPlacer::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "HeightOffset: " << this->HeightOffset << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkTerrainDataPointPlacer.h b/Interaction/Widgets/vtkTerrainDataPointPlacer.h
index 3cd76ff2e12bb702455707bb2f8fa10f927f3d81..f0838d6b840da8c708ed13142e6e86154b4597ea 100644
--- a/Interaction/Widgets/vtkTerrainDataPointPlacer.h
+++ b/Interaction/Widgets/vtkTerrainDataPointPlacer.h
@@ -40,6 +40,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkPointPlacer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPropCollection;
 class vtkProp;
 class vtkPropPicker;
@@ -136,4 +137,5 @@ private:
   void operator=(const vtkTerrainDataPointPlacer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkTextRepresentation.cxx b/Interaction/Widgets/vtkTextRepresentation.cxx
index 29b5adf5e2aff61b2815f5cdfe06ac2de9a28a6d..54d41deec14c9ac05077194fc11b809e16b9d1b6 100644
--- a/Interaction/Widgets/vtkTextRepresentation.cxx
+++ b/Interaction/Widgets/vtkTextRepresentation.cxx
@@ -24,6 +24,7 @@
 #include "vtkTextRenderer.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTextRepresentationObserver : public vtkCommand
 {
 public:
@@ -359,3 +360,4 @@ void vtkTextRepresentation::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Text Actor: " << this->TextActor << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkTextRepresentation.h b/Interaction/Widgets/vtkTextRepresentation.h
index 746f24f430e9ed2eb8e139bb368c7cf2edc2f78a..be0377c54faae3c524019854589acbcfe8bd3b01 100644
--- a/Interaction/Widgets/vtkTextRepresentation.h
+++ b/Interaction/Widgets/vtkTextRepresentation.h
@@ -30,6 +30,7 @@
 #include "vtkBorderRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkTextActor;
 class vtkTextProperty;
@@ -197,4 +198,5 @@ private:
   void operator=(const vtkTextRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkTextWidget.cxx b/Interaction/Widgets/vtkTextWidget.cxx
index b9fe4ad718640f1db91d50fc3924e715239d7cc4..d8255b0fabd0c129d2e0155e34ab9df332e83d2b 100644
--- a/Interaction/Widgets/vtkTextWidget.cxx
+++ b/Interaction/Widgets/vtkTextWidget.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkTextRepresentation.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTextWidget);
 
 //------------------------------------------------------------------------------
@@ -76,3 +77,4 @@ void vtkTextWidget::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkTextWidget.h b/Interaction/Widgets/vtkTextWidget.h
index 9580a28afcda44f9479718f8efe78ac794e9d78f..6ed91141e4954728938290b5296e50ddd93d57d3 100644
--- a/Interaction/Widgets/vtkTextWidget.h
+++ b/Interaction/Widgets/vtkTextWidget.h
@@ -31,12 +31,13 @@
 #ifndef vtkTextWidget_h
 #define vtkTextWidget_h
 
-class vtkTextRepresentation;
-class vtkTextActor;
-
 #include "vtkBorderWidget.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
+class vtkTextRepresentation;
+class vtkTextActor;
+
 class VTKINTERACTIONWIDGETS_EXPORT vtkTextWidget : public vtkBorderWidget
 {
 public:
@@ -85,4 +86,5 @@ private:
   void operator=(const vtkTextWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkTexturedButtonRepresentation.cxx b/Interaction/Widgets/vtkTexturedButtonRepresentation.cxx
index 011d4f7006b0b9b2c3c2a39ecab36a99b61906e0..041ad3287b9d52246f272016f50b175dec1ad8d7 100644
--- a/Interaction/Widgets/vtkTexturedButtonRepresentation.cxx
+++ b/Interaction/Widgets/vtkTexturedButtonRepresentation.cxx
@@ -34,6 +34,7 @@
 #include "vtkTexture.h"
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTexturedButtonRepresentation);
 
 vtkCxxSetObjectMacro(vtkTexturedButtonRepresentation, Property, vtkProperty);
@@ -478,3 +479,4 @@ void vtkTexturedButtonRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Selecting Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkTexturedButtonRepresentation.h b/Interaction/Widgets/vtkTexturedButtonRepresentation.h
index 7154655b94cba25839ce93b55e16e57adbd79dc6..87c73908784c8c50df7f6cddc884cf8317fec18d 100644
--- a/Interaction/Widgets/vtkTexturedButtonRepresentation.h
+++ b/Interaction/Widgets/vtkTexturedButtonRepresentation.h
@@ -50,6 +50,7 @@
 #include "vtkButtonRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellPicker;
 class vtkActor;
 class vtkProperty;
@@ -199,4 +200,5 @@ private:
   void operator=(const vtkTexturedButtonRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkTexturedButtonRepresentation2D.cxx b/Interaction/Widgets/vtkTexturedButtonRepresentation2D.cxx
index d7eb5cc4bc00e9133760098cc75e2062abf56839..d38bce8671f01286abe919965b1c3cb791bc1bc9 100644
--- a/Interaction/Widgets/vtkTexturedButtonRepresentation2D.cxx
+++ b/Interaction/Widgets/vtkTexturedButtonRepresentation2D.cxx
@@ -27,6 +27,7 @@
 #include "vtkSmartPointer.h"
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTexturedButtonRepresentation2D);
 
 vtkCxxSetObjectMacro(vtkTexturedButtonRepresentation2D, Property, vtkProperty2D);
@@ -375,3 +376,4 @@ void vtkTexturedButtonRepresentation2D::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Selecting Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkTexturedButtonRepresentation2D.h b/Interaction/Widgets/vtkTexturedButtonRepresentation2D.h
index 2180dcd06d7556b1d0170ade95e4c3caee99d8c8..72f29d0bb8977930f5aea4980c5ac91ce3102166 100644
--- a/Interaction/Widgets/vtkTexturedButtonRepresentation2D.h
+++ b/Interaction/Widgets/vtkTexturedButtonRepresentation2D.h
@@ -47,6 +47,7 @@
 #include "vtkButtonRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProperty2D;
 class vtkImageData;
 class vtkTextureArray; // PIMPLd
@@ -179,4 +180,5 @@ private:
   void operator=(const vtkTexturedButtonRepresentation2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkWidgetCallbackMapper.cxx b/Interaction/Widgets/vtkWidgetCallbackMapper.cxx
index fd2f89a520515cfc45fdad01e5302c72c9e12966..9ae7023ae2bbe9feabecb4e6f6fcd4461f7e1ba6 100644
--- a/Interaction/Widgets/vtkWidgetCallbackMapper.cxx
+++ b/Interaction/Widgets/vtkWidgetCallbackMapper.cxx
@@ -20,6 +20,7 @@
 #include "vtkWidgetEventTranslator.h"
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWidgetCallbackMapper);
 
 // Callbacks are stored as a pair of (Object,Method) in the map.
@@ -148,3 +149,4 @@ void vtkWidgetCallbackMapper::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkWidgetCallbackMapper.h b/Interaction/Widgets/vtkWidgetCallbackMapper.h
index 350027103551a0c934fe49c93210e37f39f0640b..ef4d8f337e86a1fdbdd745a93df2ca23111554ab 100644
--- a/Interaction/Widgets/vtkWidgetCallbackMapper.h
+++ b/Interaction/Widgets/vtkWidgetCallbackMapper.h
@@ -32,6 +32,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWidgetEvent;
 class vtkAbstractWidget;
 class vtkWidgetEventTranslator;
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkWidgetCallbackMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkWidgetCallbackMapper_h */
diff --git a/Interaction/Widgets/vtkWidgetEvent.cxx b/Interaction/Widgets/vtkWidgetEvent.cxx
index 291093d04871eec6e9231c32d3d4801e8b048f31..41ee0d281b756e2f1ede21223860884ac01e937e 100644
--- a/Interaction/Widgets/vtkWidgetEvent.cxx
+++ b/Interaction/Widgets/vtkWidgetEvent.cxx
@@ -17,6 +17,7 @@
 
 // this list should only contain the initial, contiguous
 // set of events and should not include UserEvent
+VTK_ABI_NAMESPACE_BEGIN
 static const char* vtkWidgetEventStrings[] = {
   "NoEvent",
   "Select",
@@ -89,3 +90,4 @@ void vtkWidgetEvent::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkWidgetEvent.h b/Interaction/Widgets/vtkWidgetEvent.h
index 2630235726fa71cdc82ee921ec59f9d90caa6836..7e6f60e2f74c281badb50f55169489044f3791bb 100644
--- a/Interaction/Widgets/vtkWidgetEvent.h
+++ b/Interaction/Widgets/vtkWidgetEvent.h
@@ -26,6 +26,7 @@
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKINTERACTIONWIDGETS_EXPORT vtkWidgetEvent : public vtkObject
 {
 public:
@@ -99,4 +100,5 @@ private:
   void operator=(const vtkWidgetEvent&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkWidgetEventTranslator.cxx b/Interaction/Widgets/vtkWidgetEventTranslator.cxx
index 2595f7dada3e9d2a360f0c7f2a5d580f1476285d..e04bb4d7f931e15095f55e3fe9e3a4ab37b423f3 100644
--- a/Interaction/Widgets/vtkWidgetEventTranslator.cxx
+++ b/Interaction/Widgets/vtkWidgetEventTranslator.cxx
@@ -25,6 +25,7 @@
 #include <list>
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWidgetEventTranslator);
 
 // This is what is place in the list
@@ -430,3 +431,4 @@ void vtkWidgetEventTranslator::PrintSelf(ostream& os, vtkIndent indent)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkWidgetEventTranslator.h b/Interaction/Widgets/vtkWidgetEventTranslator.h
index fde5154a5d5a70e73b18e801aed0bd17d619e336..677d41827b0969ad0c54478d7b99f3b94d70836f 100644
--- a/Interaction/Widgets/vtkWidgetEventTranslator.h
+++ b/Interaction/Widgets/vtkWidgetEventTranslator.h
@@ -37,6 +37,7 @@
 #include "vtkObject.h"
 
 // Support PIMPL encapsulation of internal STL map
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEventMap;
 class vtkRenderWindowInteractor;
 class vtkCallbackCommand;
@@ -131,4 +132,5 @@ private:
   void operator=(const vtkWidgetEventTranslator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkWidgetEventTranslator_h */
diff --git a/Interaction/Widgets/vtkWidgetRepresentation.cxx b/Interaction/Widgets/vtkWidgetRepresentation.cxx
index 332f99840e18fdc1dea515c18206fe56d31a3503..15e9f76238b51877cd92f4bcef5b488c65abe86e 100644
--- a/Interaction/Widgets/vtkWidgetRepresentation.cxx
+++ b/Interaction/Widgets/vtkWidgetRepresentation.cxx
@@ -25,6 +25,7 @@
 #include "vtkTransform.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkWidgetRepresentation::vtkWidgetRepresentation()
 {
   this->Renderer = nullptr;
@@ -388,3 +389,4 @@ void vtkWidgetRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Need to Render: " << (this->NeedToRender ? "On\n" : "Off\n");
   os << indent << "Place Factor: " << this->PlaceFactor << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkWidgetRepresentation.h b/Interaction/Widgets/vtkWidgetRepresentation.h
index 31b6d0c0e2ad54a2c1fc2900f80a703b91a87b6f..d121c29bc95123a659d25ae0ae0d0269773f4913 100644
--- a/Interaction/Widgets/vtkWidgetRepresentation.h
+++ b/Interaction/Widgets/vtkWidgetRepresentation.h
@@ -47,6 +47,7 @@
 #include "vtkProp.h"
 #include "vtkWeakPointer.h" // needed for vtkWeakPointer iVar.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPropPicker;
 class vtkAbstractWidget;
 class vtkMatrix4x4;
@@ -321,4 +322,5 @@ private:
   void operator=(const vtkWidgetRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkWidgetSet.cxx b/Interaction/Widgets/vtkWidgetSet.cxx
index 1a8c3074b62e4604f95bda30a79c3544f26cfbec..2e29e425b721f4ae2a133f5ff6e578933873d6d3 100644
--- a/Interaction/Widgets/vtkWidgetSet.cxx
+++ b/Interaction/Widgets/vtkWidgetSet.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkParallelopipedWidget.h" // REMOVE
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWidgetSet);
 
 //------------------------------------------------------------------------------
@@ -91,3 +92,4 @@ void vtkWidgetSet::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkWidgetSet.h b/Interaction/Widgets/vtkWidgetSet.h
index a1d4ef4dddc468b171d7c870f941e6e12885a1cd..adb4cab517069198845f12c9fa60c4c29b8b9978 100644
--- a/Interaction/Widgets/vtkWidgetSet.h
+++ b/Interaction/Widgets/vtkWidgetSet.h
@@ -99,6 +99,7 @@
 #include "vtkObject.h"
 #include <vector> // Required for vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractWidget;
 
 // Pointer to a member function that takes a vtkAbstractWidget (the active
@@ -200,4 +201,5 @@ private:
   void operator=(const vtkWidgetSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Interaction/Widgets/vtkXYPlotRepresentation.cxx b/Interaction/Widgets/vtkXYPlotRepresentation.cxx
index e7688030fe6e054f0563900e4fc632446dcfb766..4f7d6b45e816b0ef234774bd145e882597c261cf 100644
--- a/Interaction/Widgets/vtkXYPlotRepresentation.cxx
+++ b/Interaction/Widgets/vtkXYPlotRepresentation.cxx
@@ -23,6 +23,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkTextProperty.h"
 #include "vtkXYPlotActor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXYPlotRepresentation);
 
 //------------------------------------------------------------------------------
@@ -676,3 +677,4 @@ void vtkXYPlotRepresentation::SetYLabelFormat(const char* arg)
     this->XYPlotActor->SetYLabelFormat(arg);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkXYPlotRepresentation.h b/Interaction/Widgets/vtkXYPlotRepresentation.h
index 00d96129f751303d9a4b4a625c41d290287a4c8e..b9fb9870554586562c7b2e2d6367eedaad231753 100644
--- a/Interaction/Widgets/vtkXYPlotRepresentation.h
+++ b/Interaction/Widgets/vtkXYPlotRepresentation.h
@@ -36,6 +36,7 @@
 #include "vtkBorderRepresentation.h"
 #include "vtkInteractionWidgetsModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXYPlotActor;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkXYPlotRepresentation : public vtkBorderRepresentation
@@ -184,4 +185,5 @@ private:
   void operator=(const vtkXYPlotRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkXYPlotRepresentation_h
diff --git a/Interaction/Widgets/vtkXYPlotWidget.cxx b/Interaction/Widgets/vtkXYPlotWidget.cxx
index 273ed1c8ab5d6bc251ef09fc523a319590408375..8eb81f075e971529b4983a9c320778aa4c668e11 100644
--- a/Interaction/Widgets/vtkXYPlotWidget.cxx
+++ b/Interaction/Widgets/vtkXYPlotWidget.cxx
@@ -23,6 +23,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXYPlotWidget);
 vtkCxxSetObjectMacro(vtkXYPlotWidget, XYPlotActor, vtkXYPlotActor);
 
@@ -442,3 +443,4 @@ void vtkXYPlotWidget::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "XYPlotActor: " << this->XYPlotActor << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Interaction/Widgets/vtkXYPlotWidget.h b/Interaction/Widgets/vtkXYPlotWidget.h
index 98a8c05a32d2e5eb02866f421f362a17cbed07fd..7b0811fbddc6f7eda29bbb9ea539faaa0dea6eb1 100644
--- a/Interaction/Widgets/vtkXYPlotWidget.h
+++ b/Interaction/Widgets/vtkXYPlotWidget.h
@@ -35,6 +35,7 @@
 
 #include "vtkInteractionWidgetsModule.h" // For export macro
 #include "vtkInteractorObserver.h"
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXYPlotActor;
 
 class VTKINTERACTIONWIDGETS_EXPORT vtkXYPlotWidget : public vtkInteractorObserver
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkXYPlotWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/Core/vtkCommunicator.cxx b/Parallel/Core/vtkCommunicator.cxx
index 25e88fb21ab088a7ab9663e11258c2820484f4ac..68e3959355168cb71d4c6840a7d1bf4988ab1ebf 100644
--- a/Parallel/Core/vtkCommunicator.cxx
+++ b/Parallel/Core/vtkCommunicator.cxx
@@ -80,6 +80,7 @@
     vtkGenericWarningMacro(<< #name << " not supported for floating point numbers");               \
   }
 
+VTK_ABI_NAMESPACE_BEGIN
 STANDARD_OPERATION_DEFINITION(Max, (A[i] < B[i] ? B[i] : A[i]));
 STANDARD_OPERATION_DEFINITION(Min, (A[i] < B[i] ? A[i] : B[i]));
 STANDARD_OPERATION_DEFINITION(Sum, A[i] + B[i]);
@@ -1778,3 +1779,4 @@ int vtkCommunicator::Receive(vtkMultiProcessStream& stream, int remoteId, int ta
   }
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkCommunicator.h b/Parallel/Core/vtkCommunicator.h
index 0cdd0ca4ebbafcb621e7d98b4e9e8f8fe73cb3fd..839af22340f353a96b9d472eb656606b46d54077 100644
--- a/Parallel/Core/vtkCommunicator.h
+++ b/Parallel/Core/vtkCommunicator.h
@@ -37,6 +37,7 @@
 #include "vtkSmartPointer.h"       // needed for vtkSmartPointer.
 #include <vector>                  // needed for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBoundingBox;
 class vtkCharArray;
 class vtkDataArray;
@@ -1342,4 +1343,5 @@ private:
   void operator=(const vtkCommunicator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCommunicator_h
diff --git a/Parallel/Core/vtkDummyCommunicator.cxx b/Parallel/Core/vtkDummyCommunicator.cxx
index 08757c33c49e50d99af16df0074b94a114e88572..59d76dca32b9c70298406633050957d4d543489d 100644
--- a/Parallel/Core/vtkDummyCommunicator.cxx
+++ b/Parallel/Core/vtkDummyCommunicator.cxx
@@ -16,6 +16,7 @@
 #include "vtkDummyCommunicator.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDummyCommunicator);
 
 //------------------------------------------------------------------------------
@@ -30,3 +31,4 @@ void vtkDummyCommunicator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkDummyCommunicator.h b/Parallel/Core/vtkDummyCommunicator.h
index 16a8e19a762c7708d11380c12cdb35e7ea1e28ce..7f947822016c7ae6900bc8ac995b40591416071a 100644
--- a/Parallel/Core/vtkDummyCommunicator.h
+++ b/Parallel/Core/vtkDummyCommunicator.h
@@ -31,6 +31,7 @@
 #include "vtkCommunicator.h"
 #include "vtkParallelCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKPARALLELCORE_EXPORT vtkDummyCommunicator : public vtkCommunicator
 {
 public:
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkDummyCommunicator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkDummyCommunicator_h
diff --git a/Parallel/Core/vtkDummyController.cxx b/Parallel/Core/vtkDummyController.cxx
index e5fdbc632330c4d3ce93a96b99b9f0bc5430312c..6c26b90a335006ad8b175f6285244acfbb049868 100644
--- a/Parallel/Core/vtkDummyController.cxx
+++ b/Parallel/Core/vtkDummyController.cxx
@@ -16,6 +16,7 @@
 #include "vtkDummyCommunicator.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDummyController);
 
 vtkCxxSetObjectMacro(vtkDummyController, Communicator, vtkCommunicator);
@@ -80,3 +81,4 @@ void vtkDummyController::MultipleMethodExecute()
     vtkWarningMacro("MultipleMethod " << i << " not set.");
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkDummyController.h b/Parallel/Core/vtkDummyController.h
index fffdcaabe14f59abc3be43006a6bcb2e99619784..f305dbe0d05e140577bbf5d525f15dbb642d9ff1 100644
--- a/Parallel/Core/vtkDummyController.h
+++ b/Parallel/Core/vtkDummyController.h
@@ -29,6 +29,7 @@
 #include "vtkMultiProcessController.h"
 #include "vtkParallelCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKPARALLELCORE_EXPORT vtkDummyController : public vtkMultiProcessController
 {
 public:
@@ -83,4 +84,5 @@ private:
   void operator=(const vtkDummyController&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/Core/vtkFieldDataSerializer.cxx b/Parallel/Core/vtkFieldDataSerializer.cxx
index 656bef4873c72ce8b7a4cc37ab5f71f803787afd..0e0ece2c02c689f5e7262e9d002f69bc6c173840 100644
--- a/Parallel/Core/vtkFieldDataSerializer.cxx
+++ b/Parallel/Core/vtkFieldDataSerializer.cxx
@@ -29,6 +29,7 @@
 #include <cassert> // For assert()
 #include <cstring> // For memcpy
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFieldDataSerializer);
 
 //------------------------------------------------------------------------------
@@ -467,3 +468,4 @@ void vtkFieldDataSerializer::DeserializeDataArray(
       cerr << "Cannot serialize data of type=" << dataArray->GetDataType() << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkFieldDataSerializer.h b/Parallel/Core/vtkFieldDataSerializer.h
index 73bc2933acff1462fd65619e0ca7cf0aba293c2b..8d85bad7553aa336bae7a99123430da43e81ee54 100644
--- a/Parallel/Core/vtkFieldDataSerializer.h
+++ b/Parallel/Core/vtkFieldDataSerializer.h
@@ -32,6 +32,7 @@
 #include "vtkParallelCoreModule.h" // For export macro
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkFieldData;
 class vtkDataArray;
@@ -132,4 +133,5 @@ private:
   void operator=(const vtkFieldDataSerializer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkFieldDataSerializer_h */
diff --git a/Parallel/Core/vtkMultiProcessController.cxx b/Parallel/Core/vtkMultiProcessController.cxx
index 731d03bd628d6889d076318b712178a5770ec99a..d32aab83fac7958d6ce6150a31f236855e2a8667 100644
--- a/Parallel/Core/vtkMultiProcessController.cxx
+++ b/Parallel/Core/vtkMultiProcessController.cxx
@@ -39,6 +39,7 @@
 //------------------------------------------------------------------------------
 // Stores internal members that cannot or should not be exposed in the header
 // file (for example, because they use templated types).
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController::vtkInternal
 {
 public:
@@ -931,3 +932,4 @@ void vtkMultiProcessController::SetGlobalController(vtkMultiProcessController* c
 {
   VTK_GLOBAL_MULTI_PROCESS_CONTROLLER = controller;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkMultiProcessController.h b/Parallel/Core/vtkMultiProcessController.h
index 4c3343952d1944a79800a1d0860070cee0dcde68..e10e48dbd9bc658e46dc9e8b197551dc25b82477 100644
--- a/Parallel/Core/vtkMultiProcessController.h
+++ b/Parallel/Core/vtkMultiProcessController.h
@@ -54,6 +54,7 @@
 
 #include "vtkCommunicator.h" // Needed for direct access to communicator
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBoundingBox;
 class vtkCollection;
 class vtkDataObject;
@@ -1906,4 +1907,5 @@ inline vtkIdType vtkMultiProcessController::GetCount()
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/Core/vtkMultiProcessStream.cxx b/Parallel/Core/vtkMultiProcessStream.cxx
index 64735ff6f1507079d5c3ecbcf0a21bd1e8b2d298..86769322ca4b1b2d2d14a115cf799fe9a24bb2ea 100644
--- a/Parallel/Core/vtkMultiProcessStream.cxx
+++ b/Parallel/Core/vtkMultiProcessStream.cxx
@@ -20,6 +20,7 @@
 #include <cassert>
 #include <deque>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessStream::vtkInternals
 {
 public:
@@ -816,3 +817,4 @@ void vtkMultiProcessStream::SetRawData(const unsigned char* data, unsigned int s
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkMultiProcessStream.h b/Parallel/Core/vtkMultiProcessStream.h
index 8f0f6282faef0c2e7959a02dde92720181936c73..0f50ec13555c76f8c0ca456b62a538cd16b2b3be 100644
--- a/Parallel/Core/vtkMultiProcessStream.h
+++ b/Parallel/Core/vtkMultiProcessStream.h
@@ -34,6 +34,7 @@
 #include <string>                  // needed for string.
 #include <vector>                  // needed for vector.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKPARALLELCORE_EXPORT vtkMultiProcessStream
 {
 public:
@@ -155,6 +156,7 @@ private:
   };
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 
 // VTK-HeaderTest-Exclude: vtkMultiProcessStream.h
diff --git a/Parallel/Core/vtkMultiProcessStreamSerialization.h b/Parallel/Core/vtkMultiProcessStreamSerialization.h
index 71bf55f9a7dfb7a7127c441a014dcd8b83914e0d..c1847e142e6170625cd1cd5eaf8908bc0c1329bb 100644
--- a/Parallel/Core/vtkMultiProcessStreamSerialization.h
+++ b/Parallel/Core/vtkMultiProcessStreamSerialization.h
@@ -48,6 +48,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 struct Serialization
 {
@@ -180,5 +181,6 @@ inline vtkMultiProcessStream& operator>>(vtkMultiProcessStream& stream, T& value
   return stream;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkMultiProcessStreamSerialization.h
diff --git a/Parallel/Core/vtkPDirectory.cxx b/Parallel/Core/vtkPDirectory.cxx
index 1c4755eaa050221235b6c3a2f895afe119b864a0..2f1b7ab0296e592c95ff9c81a0d81a6ed9dacaeb 100644
--- a/Parallel/Core/vtkPDirectory.cxx
+++ b/Parallel/Core/vtkPDirectory.cxx
@@ -22,6 +22,7 @@
 
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPDirectory);
 
 //------------------------------------------------------------------------------
@@ -246,3 +247,4 @@ void vtkPDirectory::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << this->Files->GetValue(i) << "\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkPDirectory.h b/Parallel/Core/vtkPDirectory.h
index 8c7337e53e72be9bcdb5675c655bb1fd0202c2ad..2352fdc3584767b75bb5b18f00da3ffd402301ae 100644
--- a/Parallel/Core/vtkPDirectory.h
+++ b/Parallel/Core/vtkPDirectory.h
@@ -29,6 +29,7 @@
 #include "vtkParallelCoreModule.h" // For export macro
 #include <string>                  // for string functions in Directory
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 
 class VTKPARALLELCORE_EXPORT vtkPDirectory : public vtkObject
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkPDirectory&) = delete;
 }; // End Class: vtkPDirectory
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/Core/vtkPSystemTools.cxx b/Parallel/Core/vtkPSystemTools.cxx
index 744986e2e84415334e13539310c455e247900df5..66cd8891d49f592d09bd835b93c0fcf460a2314a 100644
--- a/Parallel/Core/vtkPSystemTools.cxx
+++ b/Parallel/Core/vtkPSystemTools.cxx
@@ -18,6 +18,7 @@
 #include <vtkMultiProcessController.h>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPSystemTools);
 
 //------------------------------------------------------------------------------
@@ -184,3 +185,4 @@ void vtkPSystemTools::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkPSystemTools.h b/Parallel/Core/vtkPSystemTools.h
index 4aa7db5f5e3622c39fdbbce1cdfa7df960885e62..f23a1a2c03534cf022a3829b9747c02a2b019447 100644
--- a/Parallel/Core/vtkPSystemTools.h
+++ b/Parallel/Core/vtkPSystemTools.h
@@ -30,6 +30,7 @@
 #include "vtkParallelCoreModule.h" // For export macro
 #include <string>                  // for string functions in SystemTools
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKPARALLELCORE_EXPORT vtkPSystemTools : public vtkObject
 {
 public:
@@ -113,4 +114,5 @@ private:
   void operator=(const vtkPSystemTools&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/Core/vtkProcess.cxx b/Parallel/Core/vtkProcess.cxx
index e67d67425eb242f40183cc8b3bd87f717fbb0e00..c435d5431558858d5faf508bf4ef3691f346f753 100644
--- a/Parallel/Core/vtkProcess.cxx
+++ b/Parallel/Core/vtkProcess.cxx
@@ -16,6 +16,7 @@
 #include "vtkMultiProcessController.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkProcess::vtkProcess()
 {
   this->Controller = nullptr;
@@ -60,3 +61,4 @@ void vtkProcess::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkProcess.h b/Parallel/Core/vtkProcess.h
index 117bcae93349af5f3b994beb8329fffa2e5b2986..702eec3647a8235d60679c4702e7c7614e058191 100644
--- a/Parallel/Core/vtkProcess.h
+++ b/Parallel/Core/vtkProcess.h
@@ -41,6 +41,7 @@
 #include "vtkObject.h"
 #include "vtkParallelCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKPARALLELCORE_EXPORT vtkProcess : public vtkObject
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkProcess&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/Core/vtkProcessGroup.cxx b/Parallel/Core/vtkProcessGroup.cxx
index 89e82fb0dcbb43eb11f040b873f7b936598b862f..dc4ab487d0f00cba7218f50c8d690984e25b1d6a 100644
--- a/Parallel/Core/vtkProcessGroup.cxx
+++ b/Parallel/Core/vtkProcessGroup.cxx
@@ -28,6 +28,7 @@
 #include <algorithm>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProcessGroup);
 
 //------------------------------------------------------------------------------
@@ -174,3 +175,4 @@ void vtkProcessGroup::Copy(vtkProcessGroup* group)
     this->ProcessIds[i] = group->ProcessIds[i];
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkProcessGroup.h b/Parallel/Core/vtkProcessGroup.h
index 55e9cb0798d4ab51b1b37d5eafb686ea233d56e6..3e674d91111080ecc9e71ca82dee0bd34bc1c291 100644
--- a/Parallel/Core/vtkProcessGroup.h
+++ b/Parallel/Core/vtkProcessGroup.h
@@ -48,6 +48,7 @@
 #include "vtkObject.h"
 #include "vtkParallelCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class vtkCommunicator;
 
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkProcessGroup&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkProcessGroup_h
diff --git a/Parallel/Core/vtkSocketCommunicator.cxx b/Parallel/Core/vtkSocketCommunicator.cxx
index cc2ad723659c98613b9d0ac62ad275347a5e1ef4..2add1a9bff8d6589c2e1d1c63a74d32c4c54df41 100644
--- a/Parallel/Core/vtkSocketCommunicator.cxx
+++ b/Parallel/Core/vtkSocketCommunicator.cxx
@@ -34,6 +34,7 @@
 // receive is successful.
 //#define ENABLE_SYNCHRONIZED_COMMUNICATION
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSocketCommunicator::vtkMessageBuffer
 {
 public:
@@ -89,8 +90,10 @@ public:
 // represent the CVS revision number of this file, so the value must
 // be larger than the last revision which used that strategy.
 #define vtkSocketCommunicatorHashId 100 /* MD5 */
+VTK_ABI_NAMESPACE_END
 #include "vtkSocketCommunicatorHash.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSocketCommunicator);
 vtkCxxSetObjectMacro(vtkSocketCommunicator, Socket, vtkClientSocket);
 //------------------------------------------------------------------------------
@@ -1136,3 +1139,4 @@ int vtkSocketCommunicator::GetVersion()
 {
   return vtkSocketCommunicatorHashId;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkSocketCommunicator.h b/Parallel/Core/vtkSocketCommunicator.h
index 4fecead4f7a2b170cfe8252bce1241cb92298f34..1278f143c888d81782126eaafc06ae9462437a8b 100644
--- a/Parallel/Core/vtkSocketCommunicator.h
+++ b/Parallel/Core/vtkSocketCommunicator.h
@@ -52,6 +52,7 @@
 #define vtkSwap8Range vtkByteSwap::Swap8BERange
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkClientSocket;
 class vtkServerSocket;
 
@@ -300,4 +301,5 @@ private:
   vtkMessageBuffer* ReceivedMessageBuffer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/Core/vtkSocketController.cxx b/Parallel/Core/vtkSocketController.cxx
index 5674ce8effac964e56a60a43973d08f8e6ecd2b2..ab686653a50f5629490d2836b492f1d0557f05ae 100644
--- a/Parallel/Core/vtkSocketController.cxx
+++ b/Parallel/Core/vtkSocketController.cxx
@@ -24,6 +24,7 @@
 #define WSA_VERSION MAKEWORD(1, 1)
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 int vtkSocketController::Initialized = 0;
 
 vtkStandardNewMacro(vtkSocketController);
@@ -136,3 +137,4 @@ vtkMultiProcessController* vtkSocketController::CreateCompliantController()
 
   return compliantController;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkSocketController.h b/Parallel/Core/vtkSocketController.h
index 85d5aa97957d97e714cd7a5f23badaf2074ac259..4d92d9948b1960391ea0a77cda504a3e31ea2010 100644
--- a/Parallel/Core/vtkSocketController.h
+++ b/Parallel/Core/vtkSocketController.h
@@ -44,6 +44,7 @@
 #include "vtkMultiProcessController.h"
 #include "vtkParallelCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSocketCommunicator;
 
 class VTKPARALLELCORE_EXPORT vtkSocketController : public vtkMultiProcessController
@@ -138,4 +139,5 @@ private:
   void operator=(const vtkSocketController&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSocketController_h
diff --git a/Parallel/Core/vtkSubCommunicator.cxx b/Parallel/Core/vtkSubCommunicator.cxx
index 8f36530f89958dbf199d0ef76c6356237e675eb4..390dcaf5e4def23ab00d6748c5ad3848ea7aefed 100644
--- a/Parallel/Core/vtkSubCommunicator.cxx
+++ b/Parallel/Core/vtkSubCommunicator.cxx
@@ -25,6 +25,7 @@
 #include "vtkProcessGroup.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSubCommunicator);
 
 //------------------------------------------------------------------------------
@@ -90,3 +91,4 @@ void vtkSubCommunicator::SetGroup(vtkProcessGroup* group)
     this->MaximumNumberOfProcesses = 0;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkSubCommunicator.h b/Parallel/Core/vtkSubCommunicator.h
index 52344e4891bafe8b3da4af3d996f3d595980bf6f..3efe10a60f3f37c2d94f539fbef34997c5f37a40 100644
--- a/Parallel/Core/vtkSubCommunicator.h
+++ b/Parallel/Core/vtkSubCommunicator.h
@@ -49,6 +49,7 @@
 #include "vtkCommunicator.h"
 #include "vtkParallelCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProcessGroup;
 
 class VTKPARALLELCORE_EXPORT vtkSubCommunicator : public vtkCommunicator
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkSubCommunicator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSubCommunicator_h
diff --git a/Parallel/Core/vtkSubGroup.cxx b/Parallel/Core/vtkSubGroup.cxx
index 6311a43d6402e6296f9e0e65a71a93c68722520c..6f0dd0d346a5d63040c0f6d86822dc904d794da5 100644
--- a/Parallel/Core/vtkSubGroup.cxx
+++ b/Parallel/Core/vtkSubGroup.cxx
@@ -23,6 +23,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSubGroup);
 
 vtkSubGroup::vtkSubGroup()
@@ -645,3 +646,4 @@ void vtkSubGroup::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "comm: " << this->comm;
   os << indent << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/Core/vtkSubGroup.h b/Parallel/Core/vtkSubGroup.h
index 886a164bd1f01d8054fcb642a564143f9a6ad2c2..d99c1e24d4cc2539dae8a11f4b243729d6badb7c 100644
--- a/Parallel/Core/vtkSubGroup.h
+++ b/Parallel/Core/vtkSubGroup.h
@@ -45,6 +45,7 @@
 #include "vtkObject.h"
 #include "vtkParallelCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class vtkCommunicator;
 
@@ -146,4 +147,5 @@ private:
   vtkSubGroup(const vtkSubGroup&) = delete;
   void operator=(const vtkSubGroup&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/Core/vtkThreadedTaskQueue.h b/Parallel/Core/vtkThreadedTaskQueue.h
index e76959909a9da6f12f4a063390b87c9b9505e738..f3924614400bba73a1ef0c981911e6eda91dca25 100644
--- a/Parallel/Core/vtkThreadedTaskQueue.h
+++ b/Parallel/Core/vtkThreadedTaskQueue.h
@@ -63,12 +63,16 @@
 #if !defined(__WRAP__)
 namespace vtkThreadedTaskQueueInternals
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename R>
 class TaskQueue;
 
 template <typename R>
 class ResultQueue;
-};
+VTK_ABI_NAMESPACE_END
+}
+
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename R, typename... Args>
 class vtkThreadedTaskQueue
@@ -159,6 +163,7 @@ private:
   std::unique_ptr<std::thread[]> Threads;
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkThreadedTaskQueue.txx"
 
 #endif // !defined(__WRAP__)
diff --git a/Parallel/Core/vtkThreadedTaskQueue.txx b/Parallel/Core/vtkThreadedTaskQueue.txx
index 661bf4d8ec94c5f7aec7912b759aef0f7f814127..ac4b2584d7536137cabced7b0aaff3ed54bdbd50 100644
--- a/Parallel/Core/vtkThreadedTaskQueue.txx
+++ b/Parallel/Core/vtkThreadedTaskQueue.txx
@@ -23,6 +23,7 @@
 //=============================================================================
 namespace vtkThreadedTaskQueueInternals
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename R>
 class TaskQueue
@@ -166,8 +167,10 @@ private:
   bool StrictOrdering;
 };
 
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //-----------------------------------------------------------------------------
 template <typename R, typename... Args>
 vtkThreadedTaskQueue<R, Args...>::vtkThreadedTaskQueue(
@@ -343,3 +346,4 @@ void vtkThreadedTaskQueue<void, Args...>::Flush()
   std::unique_lock<std::mutex> lk(this->NextResultIdMutex);
   this->ResultsCV.wait(lk, [this] { return this->IsEmpty(); });
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/DIY/vtkDIYDataExchanger.cxx b/Parallel/DIY/vtkDIYDataExchanger.cxx
index 47fe8ec18372d80313953666e6a89e1174047227..7c738eab5817fc91a06284e7d8576e5521c95efc 100644
--- a/Parallel/DIY/vtkDIYDataExchanger.cxx
+++ b/Parallel/DIY/vtkDIYDataExchanger.cxx
@@ -35,6 +35,7 @@
 
 #include <functional>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDIYDataExchanger);
 vtkCxxSetObjectMacro(vtkDIYDataExchanger, Controller, vtkMultiProcessController);
 //------------------------------------------------------------------------------
@@ -186,3 +187,4 @@ void vtkDIYDataExchanger::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Controller: " << this->Controller << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/DIY/vtkDIYDataExchanger.h b/Parallel/DIY/vtkDIYDataExchanger.h
index a1fc31029c8b9fb651b243795df25332d458e7f2..0e4b82a0a10b088657b59d33e183cc5699d49c2d 100644
--- a/Parallel/DIY/vtkDIYDataExchanger.h
+++ b/Parallel/DIY/vtkDIYDataExchanger.h
@@ -33,6 +33,7 @@
 
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkMultiProcessController;
 
@@ -96,4 +97,5 @@ private:
   vtkMultiProcessController* Controller;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/DIY/vtkDIYExplicitAssigner.cxx b/Parallel/DIY/vtkDIYExplicitAssigner.cxx
index 114c08611ab7867b952d2e2e067b7719d4f30d7c..0b8ffdfa390d494a980c55679cca566da9a70546 100644
--- a/Parallel/DIY/vtkDIYExplicitAssigner.cxx
+++ b/Parallel/DIY/vtkDIYExplicitAssigner.cxx
@@ -23,6 +23,7 @@
 #include <numeric>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkDIYExplicitAssigner::vtkDIYExplicitAssigner(
   diy::mpi::communicator comm, int local_blocks, bool force_power_of_two /*=false*/)
   : diy::StaticAssigner(comm.size(), local_blocks)
@@ -90,3 +91,4 @@ void vtkDIYExplicitAssigner::local_gids(int rank, std::vector<int>& gids) const
   gids.resize(max - min);
   std::iota(gids.begin(), gids.end(), min);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/DIY/vtkDIYExplicitAssigner.h b/Parallel/DIY/vtkDIYExplicitAssigner.h
index daa336ec73cd55a2ca8bf63a97a9b458513aa35f..35fe2a4be2b3bbe48481a11d78ede35f5d8ffa9d 100644
--- a/Parallel/DIY/vtkDIYExplicitAssigner.h
+++ b/Parallel/DIY/vtkDIYExplicitAssigner.h
@@ -44,6 +44,7 @@
                                    dll-interface class */
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKPARALLELDIY_EXPORT vtkDIYExplicitAssigner : public diy::StaticAssigner
 {
 public:
@@ -57,5 +58,6 @@ private:
   std::vector<int> IScanBlockCounts;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkDIYExplicitAssigner.h
diff --git a/Parallel/DIY/vtkDIYGhostUtilities.cxx b/Parallel/DIY/vtkDIYGhostUtilities.cxx
index cb57d276a53777ac909997b9ba5aa2186790a9c6..e6c0b83c7b4f533e3bf72824f60bf0f9ee49d169 100644
--- a/Parallel/DIY/vtkDIYGhostUtilities.cxx
+++ b/Parallel/DIY/vtkDIYGhostUtilities.cxx
@@ -5668,6 +5668,8 @@ struct ReinitializeBitsWorker
 };
 } // anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //----------------------------------------------------------------------------
 void vtkDIYGhostUtilities::ReinitializeSelectedBits(vtkUnsignedCharArray* ghosts,
   unsigned char bits)
@@ -6353,3 +6355,4 @@ int vtkDIYGhostUtilities::GenerateGhostCellsUnstructuredGrid(
 {
   return vtkDIYGhostUtilities::GenerateGhostCells(inputs, outputs, outputGhostLevels, controller);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/DIY/vtkDIYGhostUtilities.h b/Parallel/DIY/vtkDIYGhostUtilities.h
index 83a85924ce32fce4834dbe0313729c938d966300..990511660b8c21a2cb957850de53eaee3bb74874 100644
--- a/Parallel/DIY/vtkDIYGhostUtilities.h
+++ b/Parallel/DIY/vtkDIYGhostUtilities.h
@@ -91,6 +91,7 @@
 #include VTK_DIY2(diy/partners/all-reduce.hpp)
 // clang-format on
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPointLocator;
 class vtkAlgorithm;
 class vtkCellArray;
@@ -1022,6 +1023,7 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkDIYGhostUtilities.txx" // for template implementations
 
 #endif
diff --git a/Parallel/DIY/vtkDIYGhostUtilities.txx b/Parallel/DIY/vtkDIYGhostUtilities.txx
index c7b18d8de61cb09f94f26ee77b7ebd7698809178..b746a8d34382b94465d8ddd9cc12c377e11f0406 100644
--- a/Parallel/DIY/vtkDIYGhostUtilities.txx
+++ b/Parallel/DIY/vtkDIYGhostUtilities.txx
@@ -60,6 +60,7 @@
 // clang-format on
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 template <>
 struct vtkDIYGhostUtilities::DataSetTypeToBlockTypeConverter<vtkImageData>
 {
@@ -98,9 +99,11 @@ struct vtkDIYGhostUtilities::DataSetTypeToBlockTypeConverter<vtkPolyData>
   typedef PolyDataBlock BlockType;
   static constexpr bool IsUnstructuredData = true;
 };
+VTK_ABI_NAMESPACE_END
 
 namespace vtkDIYGhostUtilities_detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 //============================================================================
 template <class ValueT, bool IsIntegerT = std::numeric_limits<ValueT>::is_integer>
 struct Limits;
@@ -333,8 +336,11 @@ vtkSmartPointer<DataSetT> RemoveGhostArraysIfNeeded(
   }
   return ds;
 }
+VTK_ABI_NAMESPACE_END
 } // namesapce vtkDIYGhostUtilities_detail
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //----------------------------------------------------------------------------
 template <class DataSetT>
 void vtkDIYGhostUtilities::ExchangeBoundingBoxes(
@@ -697,4 +703,5 @@ int vtkDIYGhostUtilities::GenerateGhostCells(std::vector<DataSetT*>& inputs,
   return 1;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/DIY/vtkDIYUtilities.cxx b/Parallel/DIY/vtkDIYUtilities.cxx
index e4786fa64cb473440462d564a6b6af1a01ab40d2..7a6987c29184f41ff849218b189d566ba1c1215b 100644
--- a/Parallel/DIY/vtkDIYUtilities.cxx
+++ b/Parallel/DIY/vtkDIYUtilities.cxx
@@ -46,6 +46,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 //==============================================================================
@@ -642,3 +643,4 @@ void vtkDIYUtilities::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/DIY/vtkDIYUtilities.h b/Parallel/DIY/vtkDIYUtilities.h
index b4cede6f240f86a145bdbbcd06c10b37feaf247c..eec9ba7a62ffae20bad78de16d4b78039f72fc24 100644
--- a/Parallel/DIY/vtkDIYUtilities.h
+++ b/Parallel/DIY/vtkDIYUtilities.h
@@ -38,6 +38,7 @@
 #include VTK_DIY2(diy/types.hpp)
 // clang-format on
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkBoundingBox;
 class vtkDataObject;
@@ -165,6 +166,7 @@ private:
   vtkDIYUtilities(const vtkDIYUtilities&) = delete;
   void operator=(const vtkDIYUtilities&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 
 namespace diy
 {
@@ -190,6 +192,7 @@ struct Serialization<vtkFieldData*>
 };
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 // Implementation detail for Schwarz counter idiom.
 class VTKPARALLELDIY_EXPORT vtkDIYUtilitiesCleanup
 {
@@ -203,6 +206,7 @@ private:
 };
 static vtkDIYUtilitiesCleanup vtkDIYUtilitiesCleanupInstance;
 
+VTK_ABI_NAMESPACE_END
 #include "vtkDIYUtilities.txx" // for template implementations
 
 #endif
diff --git a/Parallel/DIY/vtkDIYUtilities.txx b/Parallel/DIY/vtkDIYUtilities.txx
index 91da758b43f4ca1f4a944bd6e5cd82f5b23d27e0..493eef5460757017c06f04cfca24e9e15ba04fce 100644
--- a/Parallel/DIY/vtkDIYUtilities.txx
+++ b/Parallel/DIY/vtkDIYUtilities.txx
@@ -35,6 +35,7 @@
 // clang-format on
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <class DummyT>
 void vtkDIYUtilities::Link(diy::Master& master, const diy::Assigner& assigner,
   const std::vector<std::map<int, DummyT>>& linksMap)
@@ -52,4 +53,5 @@ void vtkDIYUtilities::Link(diy::Master& master, const diy::Assigner& assigner,
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/MPI/Testing/Cxx/ExerciseMultiProcessController.h b/Parallel/MPI/Testing/Cxx/ExerciseMultiProcessController.h
index 778c2b45136a3fde3e18361f3f6d3f01dbb3ab35..1eabcf8d23501e4c930447d497afcd089bca5bc8 100644
--- a/Parallel/MPI/Testing/Cxx/ExerciseMultiProcessController.h
+++ b/Parallel/MPI/Testing/Cxx/ExerciseMultiProcessController.h
@@ -13,7 +13,11 @@
 
 =========================================================================*/
 
+#include "vtkABINamespace.h"
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
+VTK_ABI_NAMESPACE_END
 
 // Runs the given multi process controller through the ropes.  Returns
 // value is 0 on success (so that it may be passed back from the main
diff --git a/Parallel/MPI/vtkMPI.h b/Parallel/MPI/vtkMPI.h
index 26caf947e21ef3d42df4b1edbe5fe70b6605d1b0..dcff2bcae0f7b39d846253e313a913169ecc6451 100644
--- a/Parallel/MPI/vtkMPI.h
+++ b/Parallel/MPI/vtkMPI.h
@@ -27,6 +27,7 @@
 #include "vtkParallelMPIModule.h" // For export macro
 #include "vtkSystemIncludes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKPARALLELMPI_EXPORT vtkMPICommunicatorOpaqueComm
 {
 public:
@@ -67,5 +68,6 @@ public:
   MPI_Request Handle;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkMPI_h
 // VTK-HeaderTest-Exclude: vtkMPI.h
diff --git a/Parallel/MPI/vtkMPICommunicator.cxx b/Parallel/MPI/vtkMPICommunicator.cxx
index cd21683ba4adb0f8ad0d6395cb854f98cabb832a..404a0eac60941dc7ed7995c02ea49f63bf5713c9 100644
--- a/Parallel/MPI/vtkMPICommunicator.cxx
+++ b/Parallel/MPI/vtkMPICommunicator.cxx
@@ -28,6 +28,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 static inline void vtkMPICommunicatorDebugBarrier(MPI_Comm* handle)
 {
   // If NDEBUG is defined, do nothing.
@@ -1579,3 +1580,4 @@ int vtkMPICommunicator::Iprobe(
   return CheckForMPIError(vtkMPICommunicatorIprobe(
     source, tag, flag, actualSource, MPI_DOUBLE, size, this->MPIComm->Handle));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/MPI/vtkMPICommunicator.h b/Parallel/MPI/vtkMPICommunicator.h
index 8b849adc6d5d109fe47bed91072afb80771e0ee4..3eef7bd182f2fab0d7bb03af4882e791a18db87f 100644
--- a/Parallel/MPI/vtkMPICommunicator.h
+++ b/Parallel/MPI/vtkMPICommunicator.h
@@ -39,6 +39,7 @@
 #include "vtkCommunicator.h"
 #include "vtkParallelMPIModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMPIController;
 class vtkProcessGroup;
 
@@ -319,4 +320,5 @@ private:
   void operator=(const vtkMPICommunicator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/MPI/vtkMPIController.cxx b/Parallel/MPI/vtkMPIController.cxx
index 951187efd4620d3e9d8ab2a714c53836d9ca243f..ad932862847a34f7134609c5186bd6cc3e845d36 100644
--- a/Parallel/MPI/vtkMPIController.cxx
+++ b/Parallel/MPI/vtkMPIController.cxx
@@ -26,6 +26,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 int vtkMPIController::Initialized = 0;
 char vtkMPIController::ProcessorName[MPI_MAX_PROCESSOR_NAME] = "";
 int vtkMPIController::UseSsendForRMI = 0;
@@ -413,3 +414,4 @@ bool vtkMPIController::TestSome(
     return false;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/MPI/vtkMPIController.h b/Parallel/MPI/vtkMPIController.h
index fc9cfd23b8f95a5d5dcd578e6e1b87f2e4c49b3a..ceb6c8473f3f6a9cafc66e84dffe6895d07bf805 100644
--- a/Parallel/MPI/vtkMPIController.h
+++ b/Parallel/MPI/vtkMPIController.h
@@ -50,6 +50,7 @@
 // reference.
 #include "vtkMPICommunicator.h" // Needed for direct access to communicator
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIntArray;
 
 class VTKPARALLELMPI_EXPORT vtkMPIController : public vtkMultiProcessController
@@ -384,4 +385,5 @@ private:
   void operator=(const vtkMPIController&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/MPI/vtkMPIEventLog.cxx b/Parallel/MPI/vtkMPIEventLog.cxx
index 287a4e44e64d70f4d0f56604ad8db3656fdbdd3c..5c494535c0cd4291b4601dab1489e262ab836678 100644
--- a/Parallel/MPI/vtkMPIEventLog.cxx
+++ b/Parallel/MPI/vtkMPIEventLog.cxx
@@ -23,6 +23,7 @@
 #include "vtkMPIController.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 int vtkMPIEventLog::LastEventId = 0;
 
 vtkStandardNewMacro(vtkMPIEventLog);
@@ -95,3 +96,4 @@ void vtkMPIEventLog::StopLogging()
 }
 
 vtkMPIEventLog::~vtkMPIEventLog() {}
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/MPI/vtkMPIEventLog.h b/Parallel/MPI/vtkMPIEventLog.h
index d1c840eb0c203ce123ac26d529d707337d320e56..6c276554623645b15f791a4be05c8fa504591f25 100644
--- a/Parallel/MPI/vtkMPIEventLog.h
+++ b/Parallel/MPI/vtkMPIEventLog.h
@@ -36,6 +36,7 @@
 #include "vtkObject.h"
 #include "vtkParallelMPIModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKPARALLELMPI_EXPORT vtkMPIEventLog : public vtkObject
 {
 public:
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkMPIEventLog&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Parallel/MPI/vtkMPIUtilities.cxx b/Parallel/MPI/vtkMPIUtilities.cxx
index bfb6c7a372c517fbba237e80c0c06b24762d5332..96d7f0fca24aee41ae8026a28629ec6e65649bab 100644
--- a/Parallel/MPI/vtkMPIUtilities.cxx
+++ b/Parallel/MPI/vtkMPIUtilities.cxx
@@ -25,6 +25,7 @@
 
 namespace vtkMPIUtilities
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 void Printf(vtkMPIController* comm, const char* format, ...)
 {
@@ -110,4 +111,5 @@ void SynchronizedPrintf(vtkMPIController* comm, const char* format, ...)
   comm->Barrier();
 }
 
+VTK_ABI_NAMESPACE_END
 } // END namespace vtkMPIUtilities
diff --git a/Parallel/MPI/vtkMPIUtilities.h b/Parallel/MPI/vtkMPIUtilities.h
index 6f0e1fcd2f4393ace3b04dfdf55bc5a5d788b285..c4af93f6096b6b2cd3082fd55a75af9a01cc3765 100644
--- a/Parallel/MPI/vtkMPIUtilities.h
+++ b/Parallel/MPI/vtkMPIUtilities.h
@@ -18,10 +18,13 @@
 #include "vtkParallelMPIModule.h" // For export macro
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMPIController;
+VTK_ABI_NAMESPACE_END
 
 namespace vtkMPIUtilities
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Description:
 // Rank 0 prints the user-supplied formatted message to stdout.
@@ -40,6 +43,7 @@ void Printf(vtkMPIController* comm, const char* format, ...);
 VTKPARALLELMPI_EXPORT
 void SynchronizedPrintf(vtkMPIController* comm, const char* format, ...);
 
+VTK_ABI_NAMESPACE_END
 } // END namespace vtkMPIUtilities
 
 #endif // vtkMPIUtilities_h
diff --git a/Parallel/MPI4Py/vtkMPI4PyCommunicator.cxx b/Parallel/MPI4Py/vtkMPI4PyCommunicator.cxx
index 6a9c89ae873c9c9db2522ba35146db8baace7f69..146d2431095aecc926c873214b51f8180d36e760 100644
--- a/Parallel/MPI4Py/vtkMPI4PyCommunicator.cxx
+++ b/Parallel/MPI4Py/vtkMPI4PyCommunicator.cxx
@@ -21,6 +21,7 @@
 
 #include <mpi4py/mpi4py.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMPI4PyCommunicator);
 
 //------------------------------------------------------------------------------
@@ -80,3 +81,4 @@ void vtkMPI4PyCommunicator::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Parallel/MPI4Py/vtkMPI4PyCommunicator.h b/Parallel/MPI4Py/vtkMPI4PyCommunicator.h
index d7ce065d5e054bb7afb27af00e7fe1b966084601..2053cc39d9d477ec338b4a77fd49406d0eba7752 100644
--- a/Parallel/MPI4Py/vtkMPI4PyCommunicator.h
+++ b/Parallel/MPI4Py/vtkMPI4PyCommunicator.h
@@ -34,6 +34,7 @@
 #include "vtkObject.h"
 #include "vtkParallelMPI4PyModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMPICommunicator;
 
 class VTKPARALLELMPI4PY_EXPORT vtkMPI4PyCommunicator : public vtkObject
@@ -60,5 +61,6 @@ private:
   void operator=(const vtkMPI4PyCommunicator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 #endif
diff --git a/Rendering/Annotation/vtkAnnotatedCubeActor.cxx b/Rendering/Annotation/vtkAnnotatedCubeActor.cxx
index 4e1d1654c6ae0bfc2e01f52078f27f4e6733d73a..45f147fb554ba2d15b4a60c17faaf34363d4180f 100644
--- a/Rendering/Annotation/vtkAnnotatedCubeActor.cxx
+++ b/Rendering/Annotation/vtkAnnotatedCubeActor.cxx
@@ -31,6 +31,7 @@
 #include "vtkTransformFilter.h"
 #include "vtkVectorText.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAnnotatedCubeActor);
 
 //------------------------------------------------------------------------------
@@ -565,3 +566,4 @@ void vtkAnnotatedCubeActor::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "ZFaceTextRotation: " << this->ZFaceTextRotation << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkAnnotatedCubeActor.h b/Rendering/Annotation/vtkAnnotatedCubeActor.h
index 6f09022a9d5c45d9da037ac3af85d15bba08d871..31fa0808fa5438a72c7158d0cb71fbdbf146a6a1 100644
--- a/Rendering/Annotation/vtkAnnotatedCubeActor.h
+++ b/Rendering/Annotation/vtkAnnotatedCubeActor.h
@@ -42,6 +42,7 @@
 #include "vtkProp3D.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkAppendPolyData;
 class vtkAssembly;
@@ -246,4 +247,5 @@ private:
   void operator=(const vtkAnnotatedCubeActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkArcPlotter.cxx b/Rendering/Annotation/vtkArcPlotter.cxx
index cd3d47eff751c5c95812577ab08ca99ecf0f97b4..b71c9c2c00ce0bc62b0cb7a0ec0a1b4db687dd95 100644
--- a/Rendering/Annotation/vtkArcPlotter.cxx
+++ b/Rendering/Annotation/vtkArcPlotter.cxx
@@ -25,6 +25,7 @@
 #include "vtkPointData.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkArcPlotter);
 
 vtkCxxSetObjectMacro(vtkArcPlotter, Camera, vtkCamera);
@@ -456,3 +457,4 @@ void vtkArcPlotter::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Height: " << this->Height << "\n";
   os << indent << "Offset: " << this->Offset << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkArcPlotter.h b/Rendering/Annotation/vtkArcPlotter.h
index 63e461b7c0e17cb40319f2b7665e5db424f4166b..3bc81fe7d341dd82b0cefae400558c032e5091c0 100644
--- a/Rendering/Annotation/vtkArcPlotter.h
+++ b/Rendering/Annotation/vtkArcPlotter.h
@@ -51,6 +51,7 @@
 #define VTK_PLOT_TENSORS 5
 #define VTK_PLOT_FIELD_DATA 6
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 class vtkDataArray;
 class vtkPointData;
@@ -196,4 +197,5 @@ private:
   void operator=(const vtkArcPlotter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkAxesActor.cxx b/Rendering/Annotation/vtkAxesActor.cxx
index 6461ee04491b06984f5bc596af9148057918c4c9..25e9eb5b4c90d63a472fbdca5583b34866b79608 100644
--- a/Rendering/Annotation/vtkAxesActor.cxx
+++ b/Rendering/Annotation/vtkAxesActor.cxx
@@ -34,6 +34,7 @@
 #include <algorithm>
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAxesActor);
 
 vtkCxxSetObjectMacro(vtkAxesActor, UserDefinedTip, vtkPolyData);
@@ -804,3 +805,4 @@ void vtkAxesActor::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "NormalizedLabelPosition: " << this->NormalizedLabelPosition[0] << ","
      << this->NormalizedLabelPosition[1] << "," << this->NormalizedLabelPosition[2] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkAxesActor.h b/Rendering/Annotation/vtkAxesActor.h
index ca49433fb888441e496b27777b421cdcb2f3fa85..fa9b9ebc7de13d5f1efa9265c494d2591db9d2bf 100644
--- a/Rendering/Annotation/vtkAxesActor.h
+++ b/Rendering/Annotation/vtkAxesActor.h
@@ -51,6 +51,7 @@
 #include "vtkProp3D.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkCaptionActor2D;
 class vtkConeSource;
@@ -341,4 +342,5 @@ private:
   void operator=(const vtkAxesActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkAxisActor.cxx b/Rendering/Annotation/vtkAxisActor.cxx
index 8b885687613f7844ff2dfaedcd362cea77699750..8442df8390ca2dd157179fa6cf8b40045790403a 100644
--- a/Rendering/Annotation/vtkAxisActor.cxx
+++ b/Rendering/Annotation/vtkAxisActor.cxx
@@ -42,6 +42,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAxisActor);
 vtkCxxSetObjectMacro(vtkAxisActor, Camera, vtkCamera);
 vtkCxxSetObjectMacro(vtkAxisActor, LabelTextProperty, vtkTextProperty);
@@ -3385,3 +3386,4 @@ void vtkAxisActor::RotateActor2DFromAxisProjection(vtkTextActor* pActor2D)
 
   pActor2D->SetOrientation(orient);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkAxisActor.h b/Rendering/Annotation/vtkAxisActor.h
index dd9c7fffef28ebef9259ad59dca3e29254fcfa2b..4f475f3179e31cce627bec2084583b4f9666b113 100644
--- a/Rendering/Annotation/vtkAxisActor.h
+++ b/Rendering/Annotation/vtkAxisActor.h
@@ -53,6 +53,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkActor.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAxisFollower;
 class vtkCamera;
 class vtkCoordinate;
@@ -963,4 +964,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkAxisActor2D.cxx b/Rendering/Annotation/vtkAxisActor2D.cxx
index 9b10b406521ebc60e3d056427ab0d6a539ff53af..9c68ab14546c2a628a750d1452a5b6b156ad7175 100644
--- a/Rendering/Annotation/vtkAxisActor2D.cxx
+++ b/Rendering/Annotation/vtkAxisActor2D.cxx
@@ -27,6 +27,7 @@
 #include <cmath>
 #include <limits>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAxisActor2D);
 
 vtkCxxSetObjectMacro(vtkAxisActor2D, LabelTextProperty, vtkTextProperty);
@@ -905,3 +906,4 @@ void vtkAxisActor2D::ShallowCopy(vtkProp* prop)
   // Now do superclass
   this->vtkActor2D::ShallowCopy(prop);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkAxisActor2D.h b/Rendering/Annotation/vtkAxisActor2D.h
index c80d633530035740674d9276a28c533ed78f1cb6..50eb83fa5311d24c2e51d632d6bc55463d77064d 100644
--- a/Rendering/Annotation/vtkAxisActor2D.h
+++ b/Rendering/Annotation/vtkAxisActor2D.h
@@ -61,6 +61,7 @@
 #include "vtkActor2D.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyDataMapper2D;
 class vtkPolyData;
 class vtkTextMapper;
@@ -445,4 +446,5 @@ private:
   void operator=(const vtkAxisActor2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkAxisFollower.cxx b/Rendering/Annotation/vtkAxisFollower.cxx
index e1a13304b686dcd5f1ec5c1c70083bbd42edd3f9..a2e12648bfddc67bd2f369cbb195646903427fe1 100644
--- a/Rendering/Annotation/vtkAxisFollower.cxx
+++ b/Rendering/Annotation/vtkAxisFollower.cxx
@@ -30,6 +30,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAxisFollower);
 
 // List of vectors per axis (depending on which one needs to be
@@ -531,3 +532,4 @@ bool vtkAxisFollower::IsTextUpsideDown(double* a, double* b)
   double angle = vtkMath::RadiansFromDegrees(this->Orientation[2]);
   return (b[0] - a[0]) * cos(angle) - (b[1] - a[1]) * sin(angle) < 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkAxisFollower.h b/Rendering/Annotation/vtkAxisFollower.h
index 5432a0dcda30761272b01917f38cdd08c19619fb..b8f93b0e14647e4d634b796733ce8b0e002da176 100644
--- a/Rendering/Annotation/vtkAxisFollower.h
+++ b/Rendering/Annotation/vtkAxisFollower.h
@@ -35,6 +35,7 @@
 #include "vtkWeakPointer.h" // For vtkWeakPointer
 
 // Forward declarations.
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAxisActor;
 class vtkRenderer;
 
@@ -200,4 +201,5 @@ private:
   void Render(vtkRenderer*, vtkMapper*) override {}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkAxisFollower_h
diff --git a/Rendering/Annotation/vtkBarChartActor.cxx b/Rendering/Annotation/vtkBarChartActor.cxx
index a9191c8aafc7778accc1415798753a83f4f1a0e6..2aa3e0fa88ef274bfd1197600f519fb160a2f639 100644
--- a/Rendering/Annotation/vtkBarChartActor.cxx
+++ b/Rendering/Annotation/vtkBarChartActor.cxx
@@ -34,6 +34,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBarChartActor);
 
 vtkCxxSetObjectMacro(vtkBarChartActor, Input, vtkDataObject);
@@ -678,3 +679,4 @@ void vtkBarChartActor::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "YTitle: " << (this->YTitle ? this->YTitle : "(none)") << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkBarChartActor.h b/Rendering/Annotation/vtkBarChartActor.h
index 9a6ba59e624c3097ea28364d064ecfa9d7668e12..150d8b83555ec92f57428900ebbd80d98e269114 100644
--- a/Rendering/Annotation/vtkBarChartActor.h
+++ b/Rendering/Annotation/vtkBarChartActor.h
@@ -37,6 +37,7 @@
 #include "vtkActor2D.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAxisActor2D;
 class vtkDataObject;
 class vtkPolyData;
@@ -244,4 +245,5 @@ private:
   void operator=(const vtkBarChartActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkCaptionActor2D.cxx b/Rendering/Annotation/vtkCaptionActor2D.cxx
index 01ee6a4441b41bcb7f7445c850868372454d49be..97c189663b06956188ad2ae6dca452567cd99f3d 100644
--- a/Rendering/Annotation/vtkCaptionActor2D.cxx
+++ b/Rendering/Annotation/vtkCaptionActor2D.cxx
@@ -33,6 +33,7 @@
 #include "vtkTrivialProducer.h"
 #include "vtkViewport.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCaptionActor2D);
 
 vtkCxxSetObjectMacro(vtkCaptionActor2D, CaptionTextProperty, vtkTextProperty);
@@ -602,3 +603,4 @@ void vtkCaptionActor2D::ShallowCopy(vtkProp* prop)
   // Now do superclass
   this->vtkActor2D::ShallowCopy(prop);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkCaptionActor2D.h b/Rendering/Annotation/vtkCaptionActor2D.h
index 990ef4c16b5405f01c9d8a7eb800436fcc8489d5..0e29d619209591d112c9b179f86d313e40fa85fa 100644
--- a/Rendering/Annotation/vtkCaptionActor2D.h
+++ b/Rendering/Annotation/vtkCaptionActor2D.h
@@ -58,6 +58,7 @@
 #include "vtkActor2D.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkAlgorithmOutput;
 class vtkAppendPolyData;
@@ -271,4 +272,5 @@ private:
   void operator=(const vtkCaptionActor2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkConvexHull2D.cxx b/Rendering/Annotation/vtkConvexHull2D.cxx
index bac87caa8127e55ac02019c2ef5e59140ce3de60..54647aa10e42d35028d98b5da2f46c7b3e0fe2fa 100644
--- a/Rendering/Annotation/vtkConvexHull2D.cxx
+++ b/Rendering/Annotation/vtkConvexHull2D.cxx
@@ -31,6 +31,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkConvexHull2D);
 
 //------------------------------------------------------------------------------
@@ -347,3 +348,4 @@ void vtkConvexHull2D::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkConvexHull2D.h b/Rendering/Annotation/vtkConvexHull2D.h
index 82c37643672d7e0d6032a48d7786136f511f8424..1308c74d3e9e8ba7876ee379aa184eb8c8a444e2 100644
--- a/Rendering/Annotation/vtkConvexHull2D.h
+++ b/Rendering/Annotation/vtkConvexHull2D.h
@@ -52,6 +52,7 @@
 #include "vtkRenderingAnnotationModule.h" // For export macro
 #include "vtkSmartPointer.h"              // needed for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCoordinate;
 class vtkPoints;
 class vtkPolygon;
@@ -169,4 +170,5 @@ private:
   vtkSmartPointer<vtkPolygon> HullSource;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkConvexHull2D_h
diff --git a/Rendering/Annotation/vtkCornerAnnotation.cxx b/Rendering/Annotation/vtkCornerAnnotation.cxx
index f406c008ba88fb5da99cef598bfec70a2f6f7f5e..4ab80bca06b91f8927b20b36355c18075d516813 100644
--- a/Rendering/Annotation/vtkCornerAnnotation.cxx
+++ b/Rendering/Annotation/vtkCornerAnnotation.cxx
@@ -29,6 +29,7 @@
 #include <cmath>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCornerAnnotation);
 
 vtkCxxSetObjectMacro(vtkCornerAnnotation, ImageActor, vtkImageActor);
@@ -736,3 +737,4 @@ void vtkCornerAnnotation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "TextProperty: " << this->TextProperty << endl;
   os << indent << "ShowSliceAndImage: " << this->ShowSliceAndImage << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkCornerAnnotation.h b/Rendering/Annotation/vtkCornerAnnotation.h
index 5e14776af4584f79a6c3c0a108ede4e11a0c78c8..83386849c4b2924bd547808e7900561f9b0f1f37 100644
--- a/Rendering/Annotation/vtkCornerAnnotation.h
+++ b/Rendering/Annotation/vtkCornerAnnotation.h
@@ -39,6 +39,7 @@
 #include "vtkActor2D.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTextMapper;
 class vtkImageMapToWindowLevelColors;
 class vtkImageActor;
@@ -242,4 +243,5 @@ private:
   void operator=(const vtkCornerAnnotation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkCubeAxesActor.cxx b/Rendering/Annotation/vtkCubeAxesActor.cxx
index 699e5531d7c2101a68434d30c9c0e566ab3e9a98..dffff4b0ec30ebbb8d2a53ef4e4a5bfc95821bd6 100644
--- a/Rendering/Annotation/vtkCubeAxesActor.cxx
+++ b/Rendering/Annotation/vtkCubeAxesActor.cxx
@@ -35,6 +35,7 @@
 #include <sstream>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCubeAxesActor);
 vtkCxxSetObjectMacro(vtkCubeAxesActor, Camera, vtkCamera);
 // *************************************************************************
@@ -2995,3 +2996,4 @@ double* vtkCubeAxesActor::GetRenderedBounds()
   // Return our data holder
   return this->RenderedBounds;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkCubeAxesActor.h b/Rendering/Annotation/vtkCubeAxesActor.h
index 48bf5ce456840b55458484bbeae6d3505f19bc4e..c538b09ec8065de468cd49dee2df7691a34038cb 100644
--- a/Rendering/Annotation/vtkCubeAxesActor.h
+++ b/Rendering/Annotation/vtkCubeAxesActor.h
@@ -59,6 +59,7 @@ All rights reserve
 #include "vtkActor.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAxisActor;
 class vtkCamera;
 class vtkTextProperty;
@@ -888,4 +889,5 @@ private:
   double AutoScale(vtkViewport* viewport, double screenSize, double position[3]);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkCubeAxesActor2D.cxx b/Rendering/Annotation/vtkCubeAxesActor2D.cxx
index b5f13e79c682f0404cf9396b5bae8285568500d1..4bb40fddd4c1111dce4529ef6d620bab48bb7a94 100644
--- a/Rendering/Annotation/vtkCubeAxesActor2D.cxx
+++ b/Rendering/Annotation/vtkCubeAxesActor2D.cxx
@@ -23,6 +23,7 @@
 #include "vtkTrivialProducer.h"
 #include "vtkViewport.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCubeAxesActor2D);
 
 vtkCxxSetObjectMacro(vtkCubeAxesActor2D, Camera, vtkCamera);
@@ -1069,3 +1070,4 @@ static int IsInBounds(double x[3], double bounds[6])
     return 1;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkCubeAxesActor2D.h b/Rendering/Annotation/vtkCubeAxesActor2D.h
index df5b622e76ba47de4b0df043fb689dd85d01165a..874e993caa495adb6fa10ffcbc1793cf5a4be3bd 100644
--- a/Rendering/Annotation/vtkCubeAxesActor2D.h
+++ b/Rendering/Annotation/vtkCubeAxesActor2D.h
@@ -49,6 +49,7 @@
 #include "vtkActor2D.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithmOutput;
 class vtkAxisActor2D;
 class vtkCamera;
@@ -389,4 +390,5 @@ private:
   void operator=(const vtkCubeAxesActor2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkGraphAnnotationLayersFilter.cxx b/Rendering/Annotation/vtkGraphAnnotationLayersFilter.cxx
index 6da09d99e959d2107cdcb01064d8fe3e8486abdf..49a8846b206a231350d3d2987971cd964a54a171 100644
--- a/Rendering/Annotation/vtkGraphAnnotationLayersFilter.cxx
+++ b/Rendering/Annotation/vtkGraphAnnotationLayersFilter.cxx
@@ -34,6 +34,7 @@
 #include "vtkStringArray.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphAnnotationLayersFilter);
 
 //------------------------------------------------------------------------------
@@ -287,3 +288,4 @@ void vtkGraphAnnotationLayersFilter::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkGraphAnnotationLayersFilter.h b/Rendering/Annotation/vtkGraphAnnotationLayersFilter.h
index e0ce16e79e1a604eee6e84d977d94e83140c66ed..1b8d1b5d5c6ad2a5a35c23709862dbdaef6e9712 100644
--- a/Rendering/Annotation/vtkGraphAnnotationLayersFilter.h
+++ b/Rendering/Annotation/vtkGraphAnnotationLayersFilter.h
@@ -53,6 +53,7 @@
 #include "vtkRenderingAnnotationModule.h" // For export macro
 #include "vtkSmartPointer.h"              // needed for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAppendPolyData;
 class vtkConvexHull2D;
 class vtkRenderer;
@@ -133,4 +134,5 @@ private:
   vtkSmartPointer<vtkConvexHull2D> ConvexHullFilter;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkGraphAnnotationLayersFilter_h
diff --git a/Rendering/Annotation/vtkLeaderActor2D.cxx b/Rendering/Annotation/vtkLeaderActor2D.cxx
index a7c0e71b9632b5b6f2113922c7fccb49ceba929c..93daf3c1fc2876b99e19542dc30d3eaa06ae5cc7 100644
--- a/Rendering/Annotation/vtkLeaderActor2D.cxx
+++ b/Rendering/Annotation/vtkLeaderActor2D.cxx
@@ -25,6 +25,7 @@
 #include "vtkViewport.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLeaderActor2D);
 
 vtkCxxSetObjectMacro(vtkLeaderActor2D, LabelTextProperty, vtkTextProperty);
@@ -752,3 +753,4 @@ void vtkLeaderActor2D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Angle: " << this->Angle << "\n";
   os << indent << "Length: " << this->Length << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkLeaderActor2D.h b/Rendering/Annotation/vtkLeaderActor2D.h
index 393491afe85cc6272600e2521d92d1f70222266f..2fe8a6d6796d91852e18d76b2da7889530c0aeff 100644
--- a/Rendering/Annotation/vtkLeaderActor2D.h
+++ b/Rendering/Annotation/vtkLeaderActor2D.h
@@ -46,6 +46,7 @@
 #include "vtkActor2D.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPoints;
 class vtkCellArray;
 class vtkPolyData;
@@ -284,4 +285,5 @@ private:
   void operator=(const vtkLeaderActor2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkLegendBoxActor.cxx b/Rendering/Annotation/vtkLegendBoxActor.cxx
index dabc47759624481111bdeecd008fc93a0adc243a..c0fd07fae48462135040044e063295956ca92d1e 100644
--- a/Rendering/Annotation/vtkLegendBoxActor.cxx
+++ b/Rendering/Annotation/vtkLegendBoxActor.cxx
@@ -33,6 +33,7 @@
 #include "vtkTransformPolyDataFilter.h"
 #include "vtkViewport.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLegendBoxActor);
 
 vtkCxxSetObjectMacro(vtkLegendBoxActor, EntryTextProperty, vtkTextProperty);
@@ -1049,3 +1050,4 @@ void vtkLegendBoxActor::ShallowCopy(vtkProp* prop)
   // Now do superclass
   this->vtkActor2D::ShallowCopy(prop);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkLegendBoxActor.h b/Rendering/Annotation/vtkLegendBoxActor.h
index c74156d01910dc2c53a7d53d7a37cbdb5bcda21a..d82a42e26241dd7ff819dde7a57f80f2f0d66faf 100644
--- a/Rendering/Annotation/vtkLegendBoxActor.h
+++ b/Rendering/Annotation/vtkLegendBoxActor.h
@@ -41,6 +41,7 @@
 #include "vtkActor2D.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkDoubleArray;
 class vtkImageData;
@@ -289,4 +290,5 @@ private:
   void operator=(const vtkLegendBoxActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkLegendScaleActor.cxx b/Rendering/Annotation/vtkLegendScaleActor.cxx
index e06b27037a66b930889da6d069094ff1e0b2a839..91221b65c3df4c2b9aa33c1eaa4d11c14dbc3bb7 100644
--- a/Rendering/Annotation/vtkLegendScaleActor.cxx
+++ b/Rendering/Annotation/vtkLegendScaleActor.cxx
@@ -31,6 +31,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLegendScaleActor);
 
 //------------------------------------------------------------------------------
@@ -578,3 +579,4 @@ void vtkLegendScaleActor::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkLegendScaleActor.h b/Rendering/Annotation/vtkLegendScaleActor.h
index d47808f38e605ba4b6cbda61de1cd7629d331263..d57ac07ae3f91bd0cc1d65b8ef23f170031967bc 100644
--- a/Rendering/Annotation/vtkLegendScaleActor.h
+++ b/Rendering/Annotation/vtkLegendScaleActor.h
@@ -41,6 +41,7 @@
 #include "vtkProp.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAxisActor2D;
 class vtkTextProperty;
 class vtkPolyData;
@@ -252,4 +253,5 @@ private:
   void operator=(const vtkLegendScaleActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkParallelCoordinatesActor.cxx b/Rendering/Annotation/vtkParallelCoordinatesActor.cxx
index 0ca855b0639d4078b021c98506d3c9da4532dfeb..4c3cde8d3aa2c2906c1c02126c1de91bd718029d 100644
--- a/Rendering/Annotation/vtkParallelCoordinatesActor.cxx
+++ b/Rendering/Annotation/vtkParallelCoordinatesActor.cxx
@@ -27,6 +27,7 @@
 #include "vtkViewport.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParallelCoordinatesActor);
 
 vtkCxxSetObjectMacro(vtkParallelCoordinatesActor, LabelTextProperty, vtkTextProperty);
@@ -629,3 +630,4 @@ void vtkParallelCoordinatesActor::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Label Format: " << this->LabelFormat << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkParallelCoordinatesActor.h b/Rendering/Annotation/vtkParallelCoordinatesActor.h
index a42c64fdd439ca7ab5250d41c44acd47e876deb5..0a5c1b640b19b2b4ec4f9317426a18cb6be2325c 100644
--- a/Rendering/Annotation/vtkParallelCoordinatesActor.h
+++ b/Rendering/Annotation/vtkParallelCoordinatesActor.h
@@ -63,6 +63,7 @@
 #include "vtkActor2D.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithmOutput;
 class vtkAxisActor2D;
 class vtkDataObject;
@@ -223,4 +224,5 @@ private:
   void operator=(const vtkParallelCoordinatesActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkPieChartActor.cxx b/Rendering/Annotation/vtkPieChartActor.cxx
index 0a3817363a1907ae80b29d9c11dcf2dbdb000b4f..1e33f8b276a3f4247a2bb8efa07b749bbb99f787 100644
--- a/Rendering/Annotation/vtkPieChartActor.cxx
+++ b/Rendering/Annotation/vtkPieChartActor.cxx
@@ -35,6 +35,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPieChartActor);
 
 vtkCxxSetObjectMacro(vtkPieChartActor, LabelTextProperty, vtkTextProperty);
@@ -727,3 +728,4 @@ void vtkPieChartActor::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Legend Actor: " << this->LegendActor << "\n";
   this->LegendActor->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkPieChartActor.h b/Rendering/Annotation/vtkPieChartActor.h
index ac056c124adf2442c01ddf295fdecb6c644a65bd..549749434121a4b9af41dacc835e5a4ae5f65d5f 100644
--- a/Rendering/Annotation/vtkPieChartActor.h
+++ b/Rendering/Annotation/vtkPieChartActor.h
@@ -37,6 +37,7 @@
 #include "vtkActor2D.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithmOutput;
 class vtkAxisActor2D;
 class vtkDataObject;
@@ -243,4 +244,5 @@ private:
   void operator=(const vtkPieChartActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkPolarAxesActor.cxx b/Rendering/Annotation/vtkPolarAxesActor.cxx
index da22674097864259fc6e241d15917bc25ce47538..038d8baf5541f999699dbbf0b47c8d96393483ed 100644
--- a/Rendering/Annotation/vtkPolarAxesActor.cxx
+++ b/Rendering/Annotation/vtkPolarAxesActor.cxx
@@ -35,6 +35,7 @@
 
 #define VTK_EXPONENT_AXES_ACTOR_RTOL (1. - 10. * VTK_DBL_EPSILON)
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolarAxesActor);
 vtkCxxSetObjectMacro(vtkPolarAxesActor, Camera, vtkCamera);
 vtkCxxSetObjectMacro(vtkPolarAxesActor, PolarAxisLabelTextProperty, vtkTextProperty);
@@ -2567,3 +2568,4 @@ double vtkPolarAxesActor::ComputeEllipseAngle(double angleInDegrees, double rati
   }
   return miniAngleEllipse;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkPolarAxesActor.h b/Rendering/Annotation/vtkPolarAxesActor.h
index 0fe3dbd13295882ac9db36a24b5cd819ad0cc3ad..9207afd0cb0866c26d1c88df31a7862ebcbcfda9 100644
--- a/Rendering/Annotation/vtkPolarAxesActor.h
+++ b/Rendering/Annotation/vtkPolarAxesActor.h
@@ -45,6 +45,7 @@ All rights reserve
 #include <list>                           // To process exponent list as reference
 #include <string>                         // used for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 class vtkPolyData;
 class vtkPolyDataMapper;
@@ -1165,4 +1166,5 @@ private:
   void operator=(const vtkPolarAxesActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkProp3DAxisFollower.cxx b/Rendering/Annotation/vtkProp3DAxisFollower.cxx
index 93ccfcf7f9ffe914ec51719c5baa032c3e985fe9..b0080591ec2384c7a9dd5174665d8f4c128347cf 100644
--- a/Rendering/Annotation/vtkProp3DAxisFollower.cxx
+++ b/Rendering/Annotation/vtkProp3DAxisFollower.cxx
@@ -28,6 +28,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProp3DAxisFollower);
 
 // List of vectors per axis (depending on which one needs to be
@@ -573,3 +574,4 @@ int vtkProp3DAxisFollower::RenderVolumetricGeometry(vtkViewport* viewport)
   this->SetViewport(viewport);
   return this->Superclass::RenderVolumetricGeometry(viewport);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkProp3DAxisFollower.h b/Rendering/Annotation/vtkProp3DAxisFollower.h
index 94d1dd8db3531ffd7e1c4549109ebea718d841e6..53e56028e90be9554a6826b6217ab8f8c8f82b5a 100644
--- a/Rendering/Annotation/vtkProp3DAxisFollower.h
+++ b/Rendering/Annotation/vtkProp3DAxisFollower.h
@@ -33,6 +33,7 @@
 #include "vtkRenderingAnnotationModule.h" // For export macro
 #include "vtkWeakPointer.h"               // For vtkWeakPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAxisActor;
 class vtkViewport;
 
@@ -199,4 +200,5 @@ private:
   int VisibleAtCurrentViewAngle;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkScalarBarActor.cxx b/Rendering/Annotation/vtkScalarBarActor.cxx
index 78513b4637d5fce76fc5b4cd7800a8723de1ce3d..14183879bd955b9a9c740aa7dcffb9414be8ccbf 100644
--- a/Rendering/Annotation/vtkScalarBarActor.cxx
+++ b/Rendering/Annotation/vtkScalarBarActor.cxx
@@ -50,6 +50,7 @@
 
 #undef VTK_DBG_LAYOUT
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkScalarBarActor);
 
 vtkCxxSetObjectMacro(vtkScalarBarActor, LookupTable, vtkScalarsToColors);
@@ -2622,3 +2623,4 @@ int vtkScalarBarActor::PlaceAnnotationsHorizontally(
   llcolors->Delete();
   return numNotes;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkScalarBarActor.h b/Rendering/Annotation/vtkScalarBarActor.h
index 5dc77e3f4b98b11e54b5bf6baf18a05611c47967..7211a39b45ea81247024392893334894530e9db5 100644
--- a/Rendering/Annotation/vtkScalarBarActor.h
+++ b/Rendering/Annotation/vtkScalarBarActor.h
@@ -60,6 +60,7 @@
 #include "vtkDoubleArray.h"               // for ivars
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkColor3ub;
 class vtkPolyData;
 class vtkPolyDataMapper2D;
@@ -813,4 +814,5 @@ private:
   void operator=(const vtkScalarBarActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkScalarBarActorInternal.h b/Rendering/Annotation/vtkScalarBarActorInternal.h
index 2a08376055861a87e3215da9be84d40047b30ab7..e8c444703db8a00e3f83fc39e7a1403168983caa 100644
--- a/Rendering/Annotation/vtkScalarBarActorInternal.h
+++ b/Rendering/Annotation/vtkScalarBarActorInternal.h
@@ -9,6 +9,7 @@
 #include <map>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 class vtkCellArray;
 class vtkTextActor;
@@ -188,5 +189,6 @@ public:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkScalarBarActorInternal_h
 // VTK-HeaderTest-Exclude: vtkScalarBarActorInternal.h
diff --git a/Rendering/Annotation/vtkSpiderPlotActor.cxx b/Rendering/Annotation/vtkSpiderPlotActor.cxx
index 8151eab2df18b0caeda334ce7c6a4c223069ae86..61a09f6cb05771258c5b777d7c97e9a1c6cfc9ad 100644
--- a/Rendering/Annotation/vtkSpiderPlotActor.cxx
+++ b/Rendering/Annotation/vtkSpiderPlotActor.cxx
@@ -36,6 +36,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSpiderPlotActor);
 
 vtkCxxSetObjectMacro(vtkSpiderPlotActor, LabelTextProperty, vtkTextProperty);
@@ -956,3 +957,4 @@ void vtkSpiderPlotActor::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Legend Actor: " << this->LegendActor << "\n";
   this->LegendActor->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkSpiderPlotActor.h b/Rendering/Annotation/vtkSpiderPlotActor.h
index e897ebdd2dd43034d08d7b315cab2b15d85330d9..6abcd5023c644f970a90ed5b51038170e2e744ce 100644
--- a/Rendering/Annotation/vtkSpiderPlotActor.h
+++ b/Rendering/Annotation/vtkSpiderPlotActor.h
@@ -52,6 +52,7 @@
 #include "vtkActor2D.h"
 #include "vtkRenderingAnnotationModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithmOutput;
 class vtkAxisActor2D;
 class vtkDataObject;
@@ -293,4 +294,5 @@ private:
   void operator=(const vtkSpiderPlotActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Annotation/vtkXYPlotActor.cxx b/Rendering/Annotation/vtkXYPlotActor.cxx
index 6fa41c9610d7cf6128df6627a6dc59d1fe26feae..317bf60b93f382753e870ea6673c728bdbc5e9ed 100644
--- a/Rendering/Annotation/vtkXYPlotActor.cxx
+++ b/Rendering/Annotation/vtkXYPlotActor.cxx
@@ -42,6 +42,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #define VTK_MAX_PLOTS 50
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXYPlotActor);
 
 vtkCxxSetObjectMacro(vtkXYPlotActor, TitleTextProperty, vtkTextProperty);
@@ -3152,3 +3153,4 @@ void vtkXYPlotActor::SetAxisLabelVerticalJustification(int x)
   this->GetAxisLabelTextProperty()->SetVerticalJustification(x);
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Annotation/vtkXYPlotActor.h b/Rendering/Annotation/vtkXYPlotActor.h
index f5ed24a5ddbc6dd64126bdc397ccc425e5e65f26..21f9a2eb5dcd408e6214ffcaacaf28a499baadec 100644
--- a/Rendering/Annotation/vtkXYPlotActor.h
+++ b/Rendering/Annotation/vtkXYPlotActor.h
@@ -104,6 +104,7 @@
 #include "vtkRenderingAnnotationModule.h" // For export macro
 #include "vtkSmartPointer.h"              // For SP
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkXYPlotActorConnections;
 class vtkAlgorithmOutput;
 class vtkAppendPolyData;
@@ -981,4 +982,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Context2D/vtkAbstractContextBufferId.cxx b/Rendering/Context2D/vtkAbstractContextBufferId.cxx
index edbe49671eb8162aaea7752dd7d354b1c2db3b74..01c76a13f2b310383174ac90caed1be0964bb207 100644
--- a/Rendering/Context2D/vtkAbstractContextBufferId.cxx
+++ b/Rendering/Context2D/vtkAbstractContextBufferId.cxx
@@ -16,6 +16,7 @@
 #include "vtkAbstractContextBufferId.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractObjectFactoryNewMacro(vtkAbstractContextBufferId);
 
 //------------------------------------------------------------------------------
@@ -36,3 +37,4 @@ void vtkAbstractContextBufferId::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkAbstractContextBufferId.h b/Rendering/Context2D/vtkAbstractContextBufferId.h
index 909abae5e7fb1b49e1e373d6bb4d515ac80e48bf..9d085f0d019c8afdc63251d594f9d8543f63c9e9 100644
--- a/Rendering/Context2D/vtkAbstractContextBufferId.h
+++ b/Rendering/Context2D/vtkAbstractContextBufferId.h
@@ -41,6 +41,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingContext2DModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindow;
 
 class VTKRENDERINGCONTEXT2D_EXPORT vtkAbstractContextBufferId : public vtkObject
@@ -140,4 +141,5 @@ private:
   void operator=(const vtkAbstractContextBufferId&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // #ifndef vtkAbstractContextBufferId_h
diff --git a/Rendering/Context2D/vtkAbstractContextItem.cxx b/Rendering/Context2D/vtkAbstractContextItem.cxx
index 762c940ceb316b0378432ab9637370d82bbc8060..41e340c998bd82d1a33b0fc8d50c9b32a7f7f17d 100644
--- a/Rendering/Context2D/vtkAbstractContextItem.cxx
+++ b/Rendering/Context2D/vtkAbstractContextItem.cxx
@@ -22,6 +22,7 @@
 #include <algorithm>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractContextItem::vtkAbstractContextItem()
 {
   this->Scene = nullptr;
@@ -319,3 +320,4 @@ void vtkAbstractContextItem::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkAbstractContextItem.h b/Rendering/Context2D/vtkAbstractContextItem.h
index 371a41aed8362b5f2c95e40c26ce58173ae3e6ed..f65b075d1e3f06a692f6608cffe32224564a39cf 100644
--- a/Rendering/Context2D/vtkAbstractContextItem.h
+++ b/Rendering/Context2D/vtkAbstractContextItem.h
@@ -30,6 +30,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingContext2DModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkContextMouseEvent;
 class vtkContextKeyEvent;
@@ -322,4 +323,5 @@ private:
   void operator=(const vtkAbstractContextItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContextItem_h
diff --git a/Rendering/Context2D/vtkBlockItem.cxx b/Rendering/Context2D/vtkBlockItem.cxx
index ff161a634d160bd5a32aa3d0c9c954b8c91c947f..a0f9372e49079ef31e3545609157a25f1eac4656 100644
--- a/Rendering/Context2D/vtkBlockItem.cxx
+++ b/Rendering/Context2D/vtkBlockItem.cxx
@@ -31,6 +31,7 @@
 #include "vtkVector.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 float vtkComputePosition(int alignment, float pos, float size, int vp_size, int margin)
@@ -275,3 +276,4 @@ void vtkBlockItem::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkBlockItem.h b/Rendering/Context2D/vtkBlockItem.h
index bfe244b9dcf79769990c1ccc57156e6290b617ee..d108444aa5a0ad1096fd22ee0a14a0986a3c4dab 100644
--- a/Rendering/Context2D/vtkBlockItem.h
+++ b/Rendering/Context2D/vtkBlockItem.h
@@ -34,6 +34,7 @@
 #include "vtkRenderingContext2DModule.h" // For export macro
 #include "vtkStdString.h"                // For vtkStdString ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkTextProperty;
 class vtkBrush;
@@ -241,4 +242,5 @@ private:
   int Margins[2];
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkBlockItem_h
diff --git a/Rendering/Context2D/vtkBrush.cxx b/Rendering/Context2D/vtkBrush.cxx
index 2a54c9141d7c337c4e306a4c02a791850a3c4094..b9b0091c44166cec977f1cc572fe99aab1b1d935 100644
--- a/Rendering/Context2D/vtkBrush.cxx
+++ b/Rendering/Context2D/vtkBrush.cxx
@@ -21,6 +21,7 @@
 //------------------------------------------------------------------------------
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBrush);
 
 //------------------------------------------------------------------------------
@@ -173,3 +174,4 @@ void vtkBrush::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Texture: " << reinterpret_cast<void*>(this->Texture) << endl;
   os << indent << "Texture Properties: " << this->TextureProperties << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkBrush.h b/Rendering/Context2D/vtkBrush.h
index ba481a3ece31dd23697d30d4c4ee1089a5055d66..61bb6c05ed1ef06bf843673dd315a7b720ffec5f 100644
--- a/Rendering/Context2D/vtkBrush.h
+++ b/Rendering/Context2D/vtkBrush.h
@@ -32,6 +32,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingContext2DModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKRENDERINGCONTEXT2D_EXPORT vtkBrush : public vtkObject
@@ -187,4 +188,5 @@ private:
   void operator=(const vtkBrush&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkBrush_h
diff --git a/Rendering/Context2D/vtkContext2D.cxx b/Rendering/Context2D/vtkContext2D.cxx
index 2b932cfa6ca895eaf7f6cde9b41694a06eec3f71..e9eb974dfe038363b94358c5f6db7b3407b5dbc4 100644
--- a/Rendering/Context2D/vtkContext2D.cxx
+++ b/Rendering/Context2D/vtkContext2D.cxx
@@ -32,6 +32,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContext2D);
 
 //------------------------------------------------------------------------------
@@ -1044,3 +1045,4 @@ void vtkContext2D::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkContext2D.h b/Rendering/Context2D/vtkContext2D.h
index a7b74ac5c6da431604308faa6011834482c5fb04..109b3ab42a60484eff57b4c52a1e998ebc31970c 100644
--- a/Rendering/Context2D/vtkContext2D.h
+++ b/Rendering/Context2D/vtkContext2D.h
@@ -30,6 +30,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingContext2DModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWindow;
 
 class vtkContext3D;
@@ -578,4 +579,5 @@ inline int vtkContext2D::FloatToInt(float x)
   return static_cast<int>(x + tol);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContext2D_h
diff --git a/Rendering/Context2D/vtkContext3D.cxx b/Rendering/Context2D/vtkContext3D.cxx
index 82efc52bec31c1e2c9304a8cca76bd8a4e0d670b..b17b3f0dbbf5825aea656df3299a24610e973b2d 100644
--- a/Rendering/Context2D/vtkContext3D.cxx
+++ b/Rendering/Context2D/vtkContext3D.cxx
@@ -21,6 +21,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContext3D);
 
 void vtkContext3D::PrintSelf(ostream& os, vtkIndent indent)
@@ -162,3 +163,4 @@ void vtkContext3D::DisableClippingPlane(int i)
 vtkContext3D::vtkContext3D() = default;
 
 vtkContext3D::~vtkContext3D() = default;
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkContext3D.h b/Rendering/Context2D/vtkContext3D.h
index 5df5c4635c93dad5c2fc3a5a91a3fa5efda66f56..4ea3e3dfaeb162c873ec0b2db00218f3637ab4ce 100644
--- a/Rendering/Context2D/vtkContext3D.h
+++ b/Rendering/Context2D/vtkContext3D.h
@@ -32,6 +32,7 @@
 #include "vtkSmartPointer.h"             // For SP ivars.
 #include "vtkVector.h"                   // For the vector coordinates.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContextDevice3D;
 class vtkPen;
 class vtkBrush;
@@ -166,4 +167,5 @@ private:
   void operator=(const vtkContext3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // VTKCONTEXT3D_H
diff --git a/Rendering/Context2D/vtkContextActor.cxx b/Rendering/Context2D/vtkContextActor.cxx
index 9cb77185e2027f63f98d3bdf95514cc29b767aad..1b0f8a6ed69e03a183e502548ffe50e16b7171c1 100644
--- a/Rendering/Context2D/vtkContextActor.cxx
+++ b/Rendering/Context2D/vtkContextActor.cxx
@@ -26,6 +26,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // vtkViewportSpecification is a helper class that makes it easier to do some
@@ -258,3 +259,4 @@ void vtkContextActor::PrintSelf(ostream& os, vtkIndent indent)
     this->Context->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkContextActor.h b/Rendering/Context2D/vtkContextActor.h
index 6080406e271f559f9400e81901bdd9d19e854658..3a43a1fcf68d28e659abbcbe90dc8f46c145b72d 100644
--- a/Rendering/Context2D/vtkContextActor.h
+++ b/Rendering/Context2D/vtkContextActor.h
@@ -29,6 +29,7 @@
 #include "vtkRenderingContext2DModule.h" // For export macro
 #include "vtkSmartPointer.h"             // For ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkContext3D;
 class vtkContextDevice2D;
@@ -100,4 +101,5 @@ private:
   void operator=(const vtkContextActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Context2D/vtkContextClip.cxx b/Rendering/Context2D/vtkContextClip.cxx
index b11673680d6728cb31e6f5e49c56ac7080b0a5f4..b97a9c1ffb49b838905e205e6f2aa4d4e1db45d3 100644
--- a/Rendering/Context2D/vtkContextClip.cxx
+++ b/Rendering/Context2D/vtkContextClip.cxx
@@ -21,6 +21,7 @@
 #include "vtkTransform2D.h"
 #include "vtkVector.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContextClip);
 
 //------------------------------------------------------------------------------
@@ -70,3 +71,4 @@ void vtkContextClip::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkContextClip.h b/Rendering/Context2D/vtkContextClip.h
index 87dc7a976a570c4ce5f0a5b2b4a3af570598a846..6352d1a07837e368cd86872c9c1418ba304e7b0a 100644
--- a/Rendering/Context2D/vtkContextClip.h
+++ b/Rendering/Context2D/vtkContextClip.h
@@ -30,6 +30,7 @@
 #include "vtkRenderingContext2DModule.h" // For export macro
 #include "vtkSmartPointer.h"             // Needed for SP ivars.
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCONTEXT2D_EXPORT vtkContextClip : public vtkAbstractContextItem
 {
 public:
@@ -87,4 +88,5 @@ inline void vtkContextClip::GetRect(float rect[4])
   rect[3] = this->Dims[3];
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContextClip_h
diff --git a/Rendering/Context2D/vtkContextDevice2D.cxx b/Rendering/Context2D/vtkContextDevice2D.cxx
index 78702653f56c9a9b98c146d9e9c95b5c73739ee2..97dce8303840d0bfba655f1b79e2b79a849850c3 100644
--- a/Rendering/Context2D/vtkContextDevice2D.cxx
+++ b/Rendering/Context2D/vtkContextDevice2D.cxx
@@ -28,6 +28,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractObjectFactoryNewMacro(vtkContextDevice2D);
 
 vtkContextDevice2D::vtkContextDevice2D()
@@ -191,3 +192,4 @@ void vtkContextDevice2D::DrawColoredPolygon(float*, int, unsigned char*, int)
 {
   vtkErrorMacro("DrawColoredPolygon not implemented on this device.");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkContextDevice2D.h b/Rendering/Context2D/vtkContextDevice2D.h
index ec46ca3f07716250f8a288dfa47bb2bc00f98382..f35acf83aa3fe4c38ae86c8eb3723de21b7078a5 100644
--- a/Rendering/Context2D/vtkContextDevice2D.h
+++ b/Rendering/Context2D/vtkContextDevice2D.h
@@ -32,6 +32,7 @@
 #include "vtkRenderingCoreEnums.h"       // For marker enum
 #include "vtkVector.h"                   // For vtkVector2i ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWindow;
 class vtkViewport;
 class vtkStdString;
@@ -418,4 +419,5 @@ private:
   void operator=(const vtkContextDevice2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContextDevice2D_h
diff --git a/Rendering/Context2D/vtkContextDevice3D.cxx b/Rendering/Context2D/vtkContextDevice3D.cxx
index a8abcdb3fec101ad9359b82ca123e2ebd6ba6806..14b07fd3a66438a8aa0e462d507ca0689f16bb9d 100644
--- a/Rendering/Context2D/vtkContextDevice3D.cxx
+++ b/Rendering/Context2D/vtkContextDevice3D.cxx
@@ -16,6 +16,7 @@
 #include "vtkContextDevice3D.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractObjectFactoryNewMacro(vtkContextDevice3D);
 
 vtkContextDevice3D::vtkContextDevice3D() = default;
@@ -27,3 +28,4 @@ void vtkContextDevice3D::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkContextDevice3D.h b/Rendering/Context2D/vtkContextDevice3D.h
index 297aab7f3bf825628983b8187f0e016e2aeda8ae..6a90e37883f75eea211c8358ccf510db7a01fd50 100644
--- a/Rendering/Context2D/vtkContextDevice3D.h
+++ b/Rendering/Context2D/vtkContextDevice3D.h
@@ -33,6 +33,7 @@
 #include "vtkRenderingContext2DModule.h" // For export macro
 #include "vtkVector.h"                   // For the vector coordinates.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkViewport;
 class vtkPen;
@@ -144,4 +145,5 @@ private:
   void operator=(const vtkContextDevice3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Context2D/vtkContextItem.cxx b/Rendering/Context2D/vtkContextItem.cxx
index e2735cdf3c2d4762a4858be7a7fef25be65e9e01..4929923af25c6b1cdd8f6bca4b71551f7b71647f 100644
--- a/Rendering/Context2D/vtkContextItem.cxx
+++ b/Rendering/Context2D/vtkContextItem.cxx
@@ -16,6 +16,7 @@
 #include "vtkContextItem.h"
 #include "vtkContextTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkContextItem, Transform, vtkContextTransform);
 
 //------------------------------------------------------------------------------
@@ -30,3 +31,4 @@ void vtkContextItem::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Opacity: " << this->Opacity << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkContextItem.h b/Rendering/Context2D/vtkContextItem.h
index dfb0774def3f5ea3f74e475524feb5965fc58b65..8515380cc7b3c165c1057cbc9a9366704851b46e 100644
--- a/Rendering/Context2D/vtkContextItem.h
+++ b/Rendering/Context2D/vtkContextItem.h
@@ -28,6 +28,7 @@
 #include "vtkAbstractContextItem.h"
 #include "vtkRenderingContext2DModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContextTransform;
 
 class VTKRENDERINGCONTEXT2D_EXPORT vtkContextItem : public vtkAbstractContextItem
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkContextItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContextItem_h
diff --git a/Rendering/Context2D/vtkContextKeyEvent.cxx b/Rendering/Context2D/vtkContextKeyEvent.cxx
index 322b6e0ffcb43ff111fbd0751b4254e5e3dab675..a4371c002552e8a9793619e48345cc55d15488cc 100644
--- a/Rendering/Context2D/vtkContextKeyEvent.cxx
+++ b/Rendering/Context2D/vtkContextKeyEvent.cxx
@@ -19,6 +19,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkContextKeyEvent::vtkContextKeyEvent() = default;
 
 void vtkContextKeyEvent::SetInteractor(vtkRenderWindowInteractor* interactor)
@@ -43,3 +44,4 @@ char vtkContextKeyEvent::GetKeyCode() const
     return 0;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkContextKeyEvent.h b/Rendering/Context2D/vtkContextKeyEvent.h
index 1d21f9d8ecefe35db61b996814f2c91364ec6ff9..fc653f9724923e834cabe5763ea40a080b2811a8 100644
--- a/Rendering/Context2D/vtkContextKeyEvent.h
+++ b/Rendering/Context2D/vtkContextKeyEvent.h
@@ -29,6 +29,7 @@
 #include "vtkVector.h"                   // For vtkVector2i
 #include "vtkWeakPointer.h"              // For vtkWeakPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindowInteractor;
 
 class VTKRENDERINGCONTEXT2D_EXPORT vtkContextKeyEvent
@@ -64,5 +65,6 @@ protected:
   vtkVector2i Position;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContextKeyEvent_h
 // VTK-HeaderTest-Exclude: vtkContextKeyEvent.h
diff --git a/Rendering/Context2D/vtkContextMapper2D.cxx b/Rendering/Context2D/vtkContextMapper2D.cxx
index aa79a0562e48ad6904b6b4e483962e7df32dc275..8df3fb5ad7baab7c17aa7b85f72904cab9c4033a 100644
--- a/Rendering/Context2D/vtkContextMapper2D.cxx
+++ b/Rendering/Context2D/vtkContextMapper2D.cxx
@@ -21,6 +21,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContextMapper2D);
 //------------------------------------------------------------------------------
 vtkContextMapper2D::vtkContextMapper2D()
@@ -57,3 +58,4 @@ void vtkContextMapper2D::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkContextMapper2D.h b/Rendering/Context2D/vtkContextMapper2D.h
index c28a44f0f061b68c94e95b4eae1f8a11ff950fd8..d2cfed9cc07c087d3b41acc35ab94265739cdae9 100644
--- a/Rendering/Context2D/vtkContextMapper2D.h
+++ b/Rendering/Context2D/vtkContextMapper2D.h
@@ -29,6 +29,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkRenderingContext2DModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkTable;
 class vtkDataArray;
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkContextMapper2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContextMapper2D_h
diff --git a/Rendering/Context2D/vtkContextMouseEvent.cxx b/Rendering/Context2D/vtkContextMouseEvent.cxx
index 8d27bde30c98a9d6c102ddca4f331c542ddc1ce6..dbe098b25bc2602521d6a3078a78502e5614db29 100644
--- a/Rendering/Context2D/vtkContextMouseEvent.cxx
+++ b/Rendering/Context2D/vtkContextMouseEvent.cxx
@@ -16,6 +16,7 @@
 #include "vtkContextMouseEvent.h"
 #include "vtkRenderWindowInteractor.h" // AIX include order issues.
 
+VTK_ABI_NAMESPACE_BEGIN
 int vtkContextMouseEvent::GetModifiers() const
 {
   int modifier = vtkContextMouseEvent::NO_MODIFIER;
@@ -36,3 +37,4 @@ int vtkContextMouseEvent::GetModifiers() const
   }
   return modifier;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkContextMouseEvent.h b/Rendering/Context2D/vtkContextMouseEvent.h
index 275ca096dfdf56f7e4d60835787cd784f84e655a..f0f08a5025ef428ac185e8df748c0a48216d772e 100644
--- a/Rendering/Context2D/vtkContextMouseEvent.h
+++ b/Rendering/Context2D/vtkContextMouseEvent.h
@@ -29,6 +29,7 @@
 #include "vtkVector.h"                   // Needed for vtkVector2f and vtkVector2i
 #include "vtkWin32Header.h"              // For export macros.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindowInteractor;
 
 class VTKRENDERINGCONTEXT2D_EXPORT vtkContextMouseEvent
@@ -158,5 +159,6 @@ protected:
   vtkRenderWindowInteractor* Interactor;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContextMouseEvent_h
 // VTK-HeaderTest-Exclude: vtkContextMouseEvent.h
diff --git a/Rendering/Context2D/vtkContextScene.cxx b/Rendering/Context2D/vtkContextScene.cxx
index 0900c2433b8e9800da5980f511759defbc99a3c6..f62d9d141bc62a786e7dc84aa9d239571f807025 100644
--- a/Rendering/Context2D/vtkContextScene.cxx
+++ b/Rendering/Context2D/vtkContextScene.cxx
@@ -39,6 +39,7 @@
 
 //------------------------------------------------------------------------------
 // Minimal storage class for STL containers etc.
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContextScene::Private
 {
 public:
@@ -677,3 +678,4 @@ void vtkContextScene::PrintSelf(ostream& os, vtkIndent indent)
   // Print out the chart's geometry if it has been set
   os << indent << "Widthxheight: " << this->Geometry[0] << "\t" << this->Geometry[1] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkContextScene.h b/Rendering/Context2D/vtkContextScene.h
index 149f7283d1f1196d32745c82626d38dc0e364114..bc39e906d221b9f0e1b82a164e2d00650e1186f2 100644
--- a/Rendering/Context2D/vtkContextScene.h
+++ b/Rendering/Context2D/vtkContextScene.h
@@ -31,6 +31,7 @@
 #include "vtkVector.h"                   // For vtkVector return type.
 #include "vtkWeakPointer.h"              // Needed for weak pointer to the window.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkAbstractContextItem;
 class vtkTransform2D;
@@ -367,4 +368,5 @@ private:
   void EventCopy(const vtkContextMouseEvent& event);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContextScene_h
diff --git a/Rendering/Context2D/vtkContextScenePrivate.h b/Rendering/Context2D/vtkContextScenePrivate.h
index c2cdca79d0e7aef85e091c1fd43dd688bec89019..f4bd27afb3a769ab09ecb1b25c6dcd445b4a6694 100644
--- a/Rendering/Context2D/vtkContextScenePrivate.h
+++ b/Rendering/Context2D/vtkContextScenePrivate.h
@@ -34,6 +34,7 @@
 // STL headers
 #include <vector> // Needed for STL vector.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 
 //-----------------------------------------------------------------------------
@@ -177,5 +178,6 @@ public:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContextScenePrivate_h
 // VTK-HeaderTest-Exclude: vtkContextScenePrivate.h
diff --git a/Rendering/Context2D/vtkContextTransform.cxx b/Rendering/Context2D/vtkContextTransform.cxx
index 07bc71342f99d655c536f255e235dcf2ce1283dc..84d7b4dfa9cac55d357a3f997aecd105698b78a0 100644
--- a/Rendering/Context2D/vtkContextTransform.cxx
+++ b/Rendering/Context2D/vtkContextTransform.cxx
@@ -24,6 +24,7 @@
 #include "vtkVector.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContextTransform);
 
 //------------------------------------------------------------------------------
@@ -256,3 +257,4 @@ void vtkContextTransform::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Transform:\n";
   this->Transform->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkContextTransform.h b/Rendering/Context2D/vtkContextTransform.h
index 9378c9419e263a4bfd3c23a18d7008c702d05868..bdac11282d829c92c1da0e726efe22a56d61c865 100644
--- a/Rendering/Context2D/vtkContextTransform.h
+++ b/Rendering/Context2D/vtkContextTransform.h
@@ -31,6 +31,7 @@
 #include "vtkSmartPointer.h"             // Needed for SP ivars.
 #include "vtkVector.h"                   // Needed for ivars.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransform2D;
 
 class VTKRENDERINGCONTEXT2D_EXPORT vtkContextTransform : public vtkAbstractContextItem
@@ -228,4 +229,5 @@ private:
   void operator=(const vtkContextTransform&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkContextTransform_h
diff --git a/Rendering/Context2D/vtkImageItem.cxx b/Rendering/Context2D/vtkImageItem.cxx
index 4520dc0604c3bbdd38be164e26c684430c53d352..a348071bba3e7f31c85d0863724ff7ea5ae019d4 100644
--- a/Rendering/Context2D/vtkImageItem.cxx
+++ b/Rendering/Context2D/vtkImageItem.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageItem);
 
 //------------------------------------------------------------------------------
@@ -61,3 +62,4 @@ void vtkImageItem::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkImageItem.h b/Rendering/Context2D/vtkImageItem.h
index 333536e23322cd5726390f03c98fd63fde500acd..24cb6cda146fd82a897a13fcf3dcaed2777a8f57 100644
--- a/Rendering/Context2D/vtkImageItem.h
+++ b/Rendering/Context2D/vtkImageItem.h
@@ -29,6 +29,7 @@
 #include "vtkRenderingContext2DModule.h" // For export macro
 #include "vtkSmartPointer.h"             // For SP ivars.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKRENDERINGCONTEXT2D_EXPORT vtkImageItem : public vtkContextItem
@@ -83,4 +84,5 @@ private:
   void operator=(const vtkImageItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkImageItem_h
diff --git a/Rendering/Context2D/vtkLabeledContourPolyDataItem.cxx b/Rendering/Context2D/vtkLabeledContourPolyDataItem.cxx
index f551fc2af4f7b44e6c3447b7f9bbb89cdae64b40..4a628e4cb1055e59c890e88874ac22aae53ffc6c 100644
--- a/Rendering/Context2D/vtkLabeledContourPolyDataItem.cxx
+++ b/Rendering/Context2D/vtkLabeledContourPolyDataItem.cxx
@@ -59,6 +59,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 struct PDILabelMetric
 {
   bool Valid;
@@ -1293,3 +1294,4 @@ bool vtkLabeledContourPolyDataItem::Private::TestOverlap(
     testAxis(a, b.TRd, b.TLd) || testAxis(b, a.TLd, a.BLd) || testAxis(b, a.BLd, a.BRd) ||
     testAxis(b, a.BRd, a.TRd) || testAxis(b, a.TRd, a.TLd));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkLabeledContourPolyDataItem.h b/Rendering/Context2D/vtkLabeledContourPolyDataItem.h
index 2de5fe700035cb65a4a366b98c9b5fe1a7dfdb54..a187b896716e5b6f0dd98967116b9e87c8d1899d 100644
--- a/Rendering/Context2D/vtkLabeledContourPolyDataItem.h
+++ b/Rendering/Context2D/vtkLabeledContourPolyDataItem.h
@@ -29,6 +29,7 @@
 #include "vtkRenderingContext2DModule.h" // For export macro
 #include "vtkSmartPointer.h"             // For vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkContext2D;
 class vtkDoubleArray;
@@ -154,4 +155,5 @@ private:
   Private* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Context2D/vtkMarkerUtilities.cxx b/Rendering/Context2D/vtkMarkerUtilities.cxx
index ddcb6c8077570c6da0628e0af92e8e559997b8e1..54c95a45d970c9cfd54018f24037656e111fd3c1 100644
--- a/Rendering/Context2D/vtkMarkerUtilities.cxx
+++ b/Rendering/Context2D/vtkMarkerUtilities.cxx
@@ -21,6 +21,7 @@
 #include <cmath>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkMarkerUtilities::vtkMarkerUtilities() = default;
 
 //------------------------------------------------------------------------------
@@ -185,3 +186,4 @@ void vtkMarkerUtilities::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkMarkerUtilities.h b/Rendering/Context2D/vtkMarkerUtilities.h
index 271915d3d9246095338ba4d00ebec0d90aa92f27..eb4898684c84df49e4c03d6b2e6c11146933478e 100644
--- a/Rendering/Context2D/vtkMarkerUtilities.h
+++ b/Rendering/Context2D/vtkMarkerUtilities.h
@@ -32,6 +32,7 @@
 
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 class VTKRENDERINGCONTEXT2D_EXPORT vtkMarkerUtilities : public vtkObject
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkMarkerUtilities&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkMarkerUtilities_h
diff --git a/Rendering/Context2D/vtkPen.cxx b/Rendering/Context2D/vtkPen.cxx
index 064e7d27073776619a7989386384bacc543d6e66..89b47d7f0aa3d56ce61b3e9b6bacb2649fcf7d44 100644
--- a/Rendering/Context2D/vtkPen.cxx
+++ b/Rendering/Context2D/vtkPen.cxx
@@ -21,6 +21,7 @@
 //------------------------------------------------------------------------------
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPen);
 
 //------------------------------------------------------------------------------
@@ -163,3 +164,4 @@ void vtkPen::PrintSelf(ostream& os, vtkIndent indent)
      << ", " << this->Color[3] << endl;
   os << indent << "Width: " << this->Width << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkPen.h b/Rendering/Context2D/vtkPen.h
index 1dc9ad5e69e0591207464cdc812fabe71625a08c..143ea1bd77640f5465cf5674e0c5fcc27fca4226 100644
--- a/Rendering/Context2D/vtkPen.h
+++ b/Rendering/Context2D/vtkPen.h
@@ -33,6 +33,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingContext2DModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCONTEXT2D_EXPORT vtkPen : public vtkObject
 {
 public:
@@ -182,4 +183,5 @@ private:
   void operator=(const vtkPen&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPen_h
diff --git a/Rendering/Context2D/vtkPolyDataItem.cxx b/Rendering/Context2D/vtkPolyDataItem.cxx
index 4517ce50eb16b9ed282b6570b193bd14f70d6885..17b1290bcd54128417cabdf340d5b45f41431ddb 100644
--- a/Rendering/Context2D/vtkPolyDataItem.cxx
+++ b/Rendering/Context2D/vtkPolyDataItem.cxx
@@ -23,6 +23,7 @@
 #include "vtkPolyData.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataItem);
 
 vtkCxxSetObjectMacro(vtkPolyDataItem, PolyData, vtkPolyData);
@@ -127,3 +128,4 @@ void vtkPolyDataItem::PrintSelf(ostream& os, vtkIndent indent)
 {
   Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkPolyDataItem.h b/Rendering/Context2D/vtkPolyDataItem.h
index cdae96fe8bdf92f4d04a2c6065809df6b073e676..8081fd8a7c54e1e23221531a0b9bec06eef1ecf5 100644
--- a/Rendering/Context2D/vtkPolyDataItem.h
+++ b/Rendering/Context2D/vtkPolyDataItem.h
@@ -27,6 +27,7 @@
 #include "vtkContextItem.h"
 #include "vtkRenderingContext2DModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkUnsignedCharArray;
 
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkPolyDataItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Context2D/vtkPropItem.cxx b/Rendering/Context2D/vtkPropItem.cxx
index 63afdb0447df6d87de4b97e7565ed57489dfd3a1..c2691ba8e5ca60869b173543162e5c10b7300082 100644
--- a/Rendering/Context2D/vtkPropItem.cxx
+++ b/Rendering/Context2D/vtkPropItem.cxx
@@ -21,6 +21,7 @@
 #include "vtkProp3D.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkPropItem);
 vtkCxxSetObjectMacro(vtkPropItem, PropObject, vtkProp);
 
@@ -96,3 +97,4 @@ void vtkPropItem::PrintSelf(std::ostream& os, vtkIndent indent)
     os << "(nullptr)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkPropItem.h b/Rendering/Context2D/vtkPropItem.h
index 6eae011d9aa654b87100cd8a9360979adec9002b..bc511fad2639161f149c6910980252b0ecbab338 100644
--- a/Rendering/Context2D/vtkPropItem.h
+++ b/Rendering/Context2D/vtkPropItem.h
@@ -29,6 +29,7 @@
 #include "vtkAbstractContextItem.h"
 #include "vtkRenderingContext2DModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProp;
 
 class VTKRENDERINGCONTEXT2D_EXPORT vtkPropItem : public vtkAbstractContextItem
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkPropItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPropItem_h
diff --git a/Rendering/Context2D/vtkTooltipItem.cxx b/Rendering/Context2D/vtkTooltipItem.cxx
index 62fcb04d540395c18d7563b4225dc94157fefade..e0979af2a6658f4b704079758a094eceff19cfd0 100644
--- a/Rendering/Context2D/vtkTooltipItem.cxx
+++ b/Rendering/Context2D/vtkTooltipItem.cxx
@@ -31,6 +31,7 @@
 //------------------------------------------------------------------------------
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTooltipItem);
 
 //------------------------------------------------------------------------------
@@ -155,3 +156,4 @@ void vtkTooltipItem::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Context2D/vtkTooltipItem.h b/Rendering/Context2D/vtkTooltipItem.h
index 1db598e35e39d84df253b5d36b48c5ad6d5b7b4e..cd371436f33a01a661b05d95c589c0093ac4ea94 100644
--- a/Rendering/Context2D/vtkTooltipItem.h
+++ b/Rendering/Context2D/vtkTooltipItem.h
@@ -32,6 +32,7 @@
 #include "vtkStdString.h"                // For vtkStdString ivars
 #include "vtkVector.h"                   // Needed for vtkVector2f
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPen;
 class vtkBrush;
 class vtkTextProperty;
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkTooltipItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTooltipItem_h
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextActor.cxx b/Rendering/ContextOpenGL2/vtkOpenGLContextActor.cxx
index dd7f948348c3025c240788ab9f221e373053d28e..b3074cddbd4d4c1dd74506cffb29d2c2b3c79e35 100644
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextActor.cxx
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextActor.cxx
@@ -22,6 +22,7 @@
 #include "vtkOpenGLContextDevice3D.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLContextActor);
 
 //------------------------------------------------------------------------------
@@ -111,3 +112,4 @@ void vtkOpenGLContextActor::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextActor.h b/Rendering/ContextOpenGL2/vtkOpenGLContextActor.h
index c778eeee93365a7e283997ba0b6397d7ccada37c..043af5404a088b3be7cb7834b165bc0d0033a4f1 100644
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextActor.h
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextActor.h
@@ -27,6 +27,7 @@
 #include "vtkContextActor.h"
 #include "vtkRenderingContextOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCONTEXTOPENGL2_EXPORT vtkOpenGLContextActor : public vtkContextActor
 {
 public:
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkOpenGLContextActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx b/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx
index c0e0f8909f95c97a0cd1d00a4cf0b79620dd8b2a..e55e7d2e3a792536c5aa70d99ba2f72f1d5056d2 100644
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.cxx
@@ -24,6 +24,7 @@
 #include "vtkTextureObject.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLContextBufferId);
 
 //------------------------------------------------------------------------------
@@ -198,3 +199,4 @@ void vtkOpenGLContextBufferId::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.h b/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.h
index 306dcd18e881d8e3c4d7642be37e937d8290dda4..2dc6b296761a9b225f2fb505ceb627ddc9f3d7e6 100644
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.h
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextBufferId.h
@@ -28,6 +28,7 @@
 #include "vtkAbstractContextBufferId.h"
 #include "vtkRenderingContextOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTextureObject;
 class vtkOpenGLRenderWindow;
 
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkOpenGLContextBufferId&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // #ifndef vtkOpenGLContextBufferId_h
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx
index 61b99f8ed8dc04a615fafa25066c99ffeb30bb35..8af79f4b74664f803aa96e54897d8e2be24b1741 100644
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.cxx
@@ -64,6 +64,7 @@
 
 #define BUFFER_OFFSET(i) (reinterpret_cast<char*>(i))
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 void copyColors(std::vector<unsigned char>& newColors, unsigned char* colors, int nc)
@@ -2898,3 +2899,4 @@ void vtkOpenGLContextDevice2D::TransformSize(float& dx, float& dy) const
   dx /= modelview[0];
   dy /= modelview[5];
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.h b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.h
index e580eb6874bf41b68394032a56230b2f8c2cdddf..4ed49430c868924ddc2745664542ebf393e16cc8 100644
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.h
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2D.h
@@ -36,6 +36,7 @@
 #include <list>   // for std::list
 #include <vector> // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkOpenGLExtensionManager;
 class vtkOpenGLHelper;
@@ -493,4 +494,5 @@ private:
   vtkImageData* GenerateMarker(int shape, int size, bool highlight);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLContextDevice2D_h
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h
index bbcfc13501bae00436fbabb33fb1ea3ba48334f8..be1fdd95814a83d3d45bc9f7ec193d488d5c0c19 100644
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice2DPrivate.h
@@ -54,6 +54,7 @@
 // .SECTION Description
 // Creating and initializing a texture can be time consuming,
 // vtkTextureImageCache offers the ability to reuse them as much as possible.
+VTK_ABI_NAMESPACE_BEGIN
 template <class Key>
 class vtkTextureImageCache
 {
@@ -892,5 +893,6 @@ private:
 
   PolyDataCache* cache;
 };
+VTK_ABI_NAMESPACE_END
 #endif // VTKOPENGLCONTEXTDEVICE2DPRIVATE_H
 // VTK-HeaderTest-Exclude: vtkOpenGLContextDevice2DPrivate.h
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx
index 364b1bac744f234a09b4a1c01b3dc2dfbf8844bf..1b707be0d5ca8c3cbdb1ec2288b41295a0540321 100644
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.cxx
@@ -33,6 +33,7 @@
 #include "vtkShaderProgram.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLContextDevice3D::Private
 {
 public:
@@ -642,3 +643,4 @@ void vtkOpenGLContextDevice3D::PrintSelf(ostream& os, vtkIndent indent)
 {
   Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.h b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.h
index 72d59c1a74b3d757367c31f18f5b17c7dbace757..81be770a461cd44ddf7b0a06ed951b3517430508 100644
--- a/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.h
+++ b/Rendering/ContextOpenGL2/vtkOpenGLContextDevice3D.h
@@ -30,6 +30,7 @@
 #include "vtkRenderingContextOpenGL2Module.h" // For export macro
 #include <vector>                             // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBrush;
 class vtkOpenGLContextDevice2D;
 class vtkOpenGLHelper;
@@ -203,4 +204,5 @@ private:
   vtkNew<vtkPen> Pen;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLPropItem.cxx b/Rendering/ContextOpenGL2/vtkOpenGLPropItem.cxx
index ed9fa82a9e99fe06f77128e9d872a0c8b20d507b..634f3b7195b4ccdc6c64bbf352a63596ba0b577c 100644
--- a/Rendering/ContextOpenGL2/vtkOpenGLPropItem.cxx
+++ b/Rendering/ContextOpenGL2/vtkOpenGLPropItem.cxx
@@ -25,6 +25,7 @@
 #include "vtkRenderer.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLPropItem);
 
 void vtkOpenGLPropItem::PrintSelf(ostream& os, vtkIndent indent)
@@ -163,3 +164,4 @@ bool vtkOpenGLPropItem::Paint(vtkContext2D* painter)
 
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/ContextOpenGL2/vtkOpenGLPropItem.h b/Rendering/ContextOpenGL2/vtkOpenGLPropItem.h
index 6c5e1ed982ecd6a67fac6673b165cca9513f597a..34f961c80bb9e2d4ae67d023962fbbac5c7aa5c8 100644
--- a/Rendering/ContextOpenGL2/vtkOpenGLPropItem.h
+++ b/Rendering/ContextOpenGL2/vtkOpenGLPropItem.h
@@ -31,6 +31,7 @@
 #include "vtkPropItem.h"
 #include "vtkRenderingContextOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 
 class VTKRENDERINGCONTEXTOPENGL2_EXPORT vtkOpenGLPropItem : public vtkPropItem
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkOpenGLPropItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLPropItem_h
diff --git a/Rendering/Core/vtkAbstractHyperTreeGridMapper.cxx b/Rendering/Core/vtkAbstractHyperTreeGridMapper.cxx
index 1cfc3586367d22685699a591edec2c6d3b06c6e8..3849729dcaddbfe753528d1e281d0d32ef4c91aa 100644
--- a/Rendering/Core/vtkAbstractHyperTreeGridMapper.cxx
+++ b/Rendering/Core/vtkAbstractHyperTreeGridMapper.cxx
@@ -29,6 +29,7 @@
 #include "vtkRenderer.h"
 #include "vtkUniformHyperTreeGrid.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkAbstractHyperTreeGridMapper, ColorMap, vtkScalarsToColors);
 
 //------------------------------------------------------------------------------
@@ -339,3 +340,4 @@ vtkMTimeType vtkAbstractHyperTreeGridMapper::GetMTime()
 }
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAbstractHyperTreeGridMapper.h b/Rendering/Core/vtkAbstractHyperTreeGridMapper.h
index b73364989828c9a6a9861015f4f3d5fb4cd04690..b78f5f6d032d4585308c47ee0653a65aaba43fc7 100644
--- a/Rendering/Core/vtkAbstractHyperTreeGridMapper.h
+++ b/Rendering/Core/vtkAbstractHyperTreeGridMapper.h
@@ -36,6 +36,7 @@
 #include "vtkAbstractVolumeMapper.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkDataArray;
 class vtkMatrix4x4;
@@ -238,4 +239,5 @@ private:
   void operator=(const vtkAbstractHyperTreeGridMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAbstractInteractionDevice.cxx b/Rendering/Core/vtkAbstractInteractionDevice.cxx
index 59242d821d3d717167903085b5af8b44c09273d4..cfcf938a2ab02593996a52f4bcd1f2671dc4ab80 100644
--- a/Rendering/Core/vtkAbstractInteractionDevice.cxx
+++ b/Rendering/Core/vtkAbstractInteractionDevice.cxx
@@ -15,6 +15,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractObjectFactoryNewMacro(vtkAbstractInteractionDevice);
 
 vtkAbstractInteractionDevice::vtkAbstractInteractionDevice()
@@ -48,3 +49,4 @@ void vtkAbstractInteractionDevice::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAbstractInteractionDevice.h b/Rendering/Core/vtkAbstractInteractionDevice.h
index e2d7ec49fd76d0da4a0dfd8158d4c3ceaad0a1bd..d64c01759d436001b3eb7372292eb91f2e56af33 100644
--- a/Rendering/Core/vtkAbstractInteractionDevice.h
+++ b/Rendering/Core/vtkAbstractInteractionDevice.h
@@ -17,6 +17,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWidget;
 class vtkAbstractRenderDevice;
 
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkAbstractInteractionDevice&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAbstractMapper.cxx b/Rendering/Core/vtkAbstractMapper.cxx
index 9b9412d7553801cd34520108bde32508cb2b9fd7..85dc7d163b5d02cc4d33458fade72d5f8966de61 100644
--- a/Rendering/Core/vtkAbstractMapper.cxx
+++ b/Rendering/Core/vtkAbstractMapper.cxx
@@ -25,6 +25,7 @@
 #include "vtkTimerLog.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkAbstractMapper, ClippingPlanes, vtkPlaneCollection);
 
 // Construct object.
@@ -271,3 +272,4 @@ int vtkAbstractMapper::GetNumberOfClippingPlanes()
 
   return n;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAbstractMapper.h b/Rendering/Core/vtkAbstractMapper.h
index 3e821d26dc585892e244c92b9cbab1e78fd614e1..516461ca0984a86f1b618af78827ab48f58aec08 100644
--- a/Rendering/Core/vtkAbstractMapper.h
+++ b/Rendering/Core/vtkAbstractMapper.h
@@ -41,6 +41,7 @@
 #define VTK_GET_ARRAY_BY_ID 0
 #define VTK_GET_ARRAY_BY_NAME 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkDataSet;
 class vtkPlane;
@@ -162,4 +163,5 @@ private:
   void operator=(const vtkAbstractMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAbstractMapper3D.cxx b/Rendering/Core/vtkAbstractMapper3D.cxx
index 22402f2cc31261b00dcf626be3d3e570c3565b79..2b27aa31da00e9e0d0b3108867f3570eac920c63 100644
--- a/Rendering/Core/vtkAbstractMapper3D.cxx
+++ b/Rendering/Core/vtkAbstractMapper3D.cxx
@@ -19,6 +19,7 @@
 #include "vtkPlaneCollection.h"
 
 // Construct with initial range (0,1).
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractMapper3D::vtkAbstractMapper3D()
 {
   vtkMath::UninitializeBounds(this->Bounds);
@@ -99,3 +100,4 @@ void vtkAbstractMapper3D::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAbstractMapper3D.h b/Rendering/Core/vtkAbstractMapper3D.h
index 5717a939a826c721ee3e6449085c4a2436e3977d..72eca9b342750e21c7f0b5984c920f3501d7e87a 100644
--- a/Rendering/Core/vtkAbstractMapper3D.h
+++ b/Rendering/Core/vtkAbstractMapper3D.h
@@ -35,6 +35,7 @@
 #include "vtkAbstractMapper.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWindow;
 class vtkDataSet;
 class vtkMatrix4x4;
@@ -106,4 +107,5 @@ private:
   void operator=(const vtkAbstractMapper3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAbstractPicker.cxx b/Rendering/Core/vtkAbstractPicker.cxx
index 58f3a1744f33b70af0e0024c465d9d5e86899fb7..d6a7c03cfae17b3779fa2c80501f4817df112744 100644
--- a/Rendering/Core/vtkAbstractPicker.cxx
+++ b/Rendering/Core/vtkAbstractPicker.cxx
@@ -19,6 +19,7 @@
 
 // Construct object with initial tolerance of 1/40th of window. There are no
 // pick methods and picking is performed from the renderer's actors.
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractPicker::vtkAbstractPicker()
 {
   this->Renderer = nullptr;
@@ -96,3 +97,4 @@ void vtkAbstractPicker::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Pick Position: (" << this->PickPosition[0] << "," << this->PickPosition[1] << ","
      << this->PickPosition[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAbstractPicker.h b/Rendering/Core/vtkAbstractPicker.h
index 8956ccadfb980f75998962a72aac3a9eee631a5a..d63bc936e50ff317b7ffebdfcd4fe3107be80d17 100644
--- a/Rendering/Core/vtkAbstractPicker.h
+++ b/Rendering/Core/vtkAbstractPicker.h
@@ -61,6 +61,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkProp;
 class vtkPropCollection;
@@ -184,4 +185,5 @@ private:
   void operator=(const vtkAbstractPicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAbstractPropPicker.cxx b/Rendering/Core/vtkAbstractPropPicker.cxx
index d33320e55fd0f3245f21e0c9e37fef9804d1306d..d992da8156609727a9c37c37e7ffa497ed7f9cd5 100644
--- a/Rendering/Core/vtkAbstractPropPicker.cxx
+++ b/Rendering/Core/vtkAbstractPropPicker.cxx
@@ -23,6 +23,7 @@
 #include "vtkPropAssembly.h"
 #include "vtkVolume.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkAbstractPropPicker, Path, vtkAssemblyPath);
 
 vtkAbstractPropPicker::vtkAbstractPropPicker()
@@ -153,3 +154,4 @@ void vtkAbstractPropPicker::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Path: (none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAbstractPropPicker.h b/Rendering/Core/vtkAbstractPropPicker.h
index 58b048407f4d45cbfdd156ccf77f4f9ca81a3fcc..62dc3b08928d4ab64a2a53b191ff8127b2b4eb8d 100644
--- a/Rendering/Core/vtkAbstractPropPicker.h
+++ b/Rendering/Core/vtkAbstractPropPicker.h
@@ -67,6 +67,7 @@
 #include "vtkAbstractPicker.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProp;
 class vtkPropAssembly;
 class vtkAssembly;
@@ -156,4 +157,5 @@ private:
   void operator=(const vtkAbstractPropPicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAbstractRenderDevice.cxx b/Rendering/Core/vtkAbstractRenderDevice.cxx
index e238402c6286201606e0a879666857ce0d84ac55..65df7a8e77ba20a17ebfa62d2d813b1ecfb5612e 100644
--- a/Rendering/Core/vtkAbstractRenderDevice.cxx
+++ b/Rendering/Core/vtkAbstractRenderDevice.cxx
@@ -14,6 +14,7 @@
 #include "vtkAbstractRenderDevice.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractObjectFactoryNewMacro(vtkAbstractRenderDevice);
 
 vtkAbstractRenderDevice::vtkAbstractRenderDevice()
@@ -34,3 +35,4 @@ void vtkAbstractRenderDevice::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAbstractRenderDevice.h b/Rendering/Core/vtkAbstractRenderDevice.h
index f206a02e529432798dad1e11f33b3333339d06d0..c54bf3b94e10ee5bd0c94728a2cf169459ec93f9 100644
--- a/Rendering/Core/vtkAbstractRenderDevice.h
+++ b/Rendering/Core/vtkAbstractRenderDevice.h
@@ -18,6 +18,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include <string>                   // For std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRecti;
 
 class VTKRENDERINGCORE_EXPORT vtkAbstractRenderDevice : public vtkObject
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkAbstractRenderDevice&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAbstractVolumeMapper.cxx b/Rendering/Core/vtkAbstractVolumeMapper.cxx
index 68395ce41da3adf37b688e6ed84c556ff6e061bf..4c84bc3b11ec7d52c495ff4a8efa60986f836910 100644
--- a/Rendering/Core/vtkAbstractVolumeMapper.cxx
+++ b/Rendering/Core/vtkAbstractVolumeMapper.cxx
@@ -20,6 +20,7 @@
 #include "vtkMath.h"
 
 // Construct a vtkAbstractVolumeMapper
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractVolumeMapper::vtkAbstractVolumeMapper()
 {
   vtkMath::UninitializeBounds(this->Bounds);
@@ -151,3 +152,4 @@ void vtkAbstractVolumeMapper::PrintSelf(ostream& os, vtkIndent indent)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAbstractVolumeMapper.h b/Rendering/Core/vtkAbstractVolumeMapper.h
index e645fb5924f3927df66556004b01b2f2a665091b..2b3c104b57e82689cb9190e52904e7a6e58257cd 100644
--- a/Rendering/Core/vtkAbstractVolumeMapper.h
+++ b/Rendering/Core/vtkAbstractVolumeMapper.h
@@ -30,6 +30,7 @@
 #include "vtkAbstractMapper3D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkVolume;
 class vtkWindow;
@@ -151,4 +152,5 @@ private:
   void operator=(const vtkAbstractVolumeMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkActor.cxx b/Rendering/Core/vtkActor.cxx
index 598b32ed1dfd17b1c1b792008903c3c9dc11b26e..f7c8ad519f74720eb2935996ac60c6c89ee08605 100644
--- a/Rendering/Core/vtkActor.cxx
+++ b/Rendering/Core/vtkActor.cxx
@@ -33,6 +33,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkActor, Texture, vtkTexture);
 vtkCxxSetObjectMacro(vtkActor, Mapper, vtkMapper);
 vtkCxxSetObjectMacro(vtkActor, BackfaceProperty, vtkProperty);
@@ -587,3 +588,4 @@ void vtkActor::ProcessSelectorPixelBuffers(
     this->Mapper->ProcessSelectorPixelBuffers(sel, pixeloffsets, this);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkActor.h b/Rendering/Core/vtkActor.h
index bfe02e6687f60615d96728984d12612a099d7036..5fc9fab8d69b09a93765e26ef55a43eb555e1598 100644
--- a/Rendering/Core/vtkActor.h
+++ b/Rendering/Core/vtkActor.h
@@ -35,6 +35,7 @@
 #include "vtkProp3D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkPropCollection;
 class vtkActorCollection;
@@ -241,4 +242,5 @@ private:
   void operator=(const vtkActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkActor2D.cxx b/Rendering/Core/vtkActor2D.cxx
index 0ee01487a789ad472703652652d610e5bb7434c6..e7203730cf40c96a12fd7cf3bda9521c4dbfb9eb 100644
--- a/Rendering/Core/vtkActor2D.cxx
+++ b/Rendering/Core/vtkActor2D.cxx
@@ -21,6 +21,7 @@
 #include "vtkRenderWindow.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkActor2D);
 
 vtkCxxSetObjectMacro(vtkActor2D, Property, vtkProperty2D);
@@ -314,3 +315,4 @@ void vtkActor2D::PrintSelf(ostream& os, vtkIndent indent)
     this->Mapper->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkActor2D.h b/Rendering/Core/vtkActor2D.h
index 1a072213a3c3e54c31811afdca2f3395b0302ab8..40e263be7c853967694e3169de4d8e575dae89e6 100644
--- a/Rendering/Core/vtkActor2D.h
+++ b/Rendering/Core/vtkActor2D.h
@@ -33,6 +33,7 @@
 #include "vtkProp.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMapper2D;
 class vtkProperty2D;
 
@@ -179,4 +180,5 @@ private:
   void operator=(const vtkActor2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkActor2DCollection.cxx b/Rendering/Core/vtkActor2DCollection.cxx
index d33babd9d607b669f6fa57221456282b8c4c8613..8afface8c719498d47a77cef0e07813647d01efd 100644
--- a/Rendering/Core/vtkActor2DCollection.cxx
+++ b/Rendering/Core/vtkActor2DCollection.cxx
@@ -16,6 +16,7 @@
 #include "vtkActor2DCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkActor2DCollection);
 
 void vtkActor2DCollection::PrintSelf(ostream& os, vtkIndent indent)
@@ -174,3 +175,4 @@ void vtkActor2DCollection::Sort()
 
   delete[] actorPtrArr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkActor2DCollection.h b/Rendering/Core/vtkActor2DCollection.h
index ac7d0f51e9f58f5b91788dfda3a150a88ffb4a4b..6a2c6d117eab3beedb1316c81da58402da6e0802 100644
--- a/Rendering/Core/vtkActor2DCollection.h
+++ b/Rendering/Core/vtkActor2DCollection.h
@@ -33,6 +33,7 @@
 
 #include "vtkActor2D.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkViewport;
 
 class VTKRENDERINGCORE_EXPORT vtkActor2DCollection : public vtkPropCollection
@@ -141,4 +142,5 @@ inline vtkActor2D* vtkActor2DCollection::GetLastItem()
   return this->GetLastActor2D();
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkActorCollection.cxx b/Rendering/Core/vtkActorCollection.cxx
index 5c87b5510f12bed63692cf0cf521d38e546e88ba..74dcc6ba295c0210b07a9a9f86bdac4ea1d35227 100644
--- a/Rendering/Core/vtkActorCollection.cxx
+++ b/Rendering/Core/vtkActorCollection.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkProperty.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkActorCollection);
 
 void vtkActorCollection::ApplyProperties(vtkProperty* p)
@@ -40,3 +41,4 @@ void vtkActorCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkActorCollection.h b/Rendering/Core/vtkActorCollection.h
index d8ea5732633f22ade3f88233d868edcb34a3e9a0..de8ef3b49fe0283050ae9521e1bbe3439e652058 100644
--- a/Rendering/Core/vtkActorCollection.h
+++ b/Rendering/Core/vtkActorCollection.h
@@ -31,6 +31,7 @@
 #include "vtkPropCollection.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProperty;
 
 class VTKRENDERINGCORE_EXPORT vtkActorCollection : public vtkPropCollection
@@ -125,4 +126,5 @@ inline vtkActor* vtkActorCollection::GetLastItem()
   return this->GetLastActor();
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAreaPicker.cxx b/Rendering/Core/vtkAreaPicker.cxx
index 5fd23dad2619750ee6da0638c0a222c83c970a56..3568b0d523b00ff5838a03a9ad835884f1ea0805 100644
--- a/Rendering/Core/vtkAreaPicker.cxx
+++ b/Rendering/Core/vtkAreaPicker.cxx
@@ -36,6 +36,7 @@
 #include "vtkRenderer.h"
 #include "vtkVolume.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAreaPicker);
 
 //------------------------------------------------------------------------------
@@ -422,3 +423,4 @@ void vtkAreaPicker::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Mapper: " << this->Mapper << "\n";
   os << indent << "DataSet: " << this->DataSet << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAreaPicker.h b/Rendering/Core/vtkAreaPicker.h
index 656b959d6c2f97782e7e51005faf790d8b614919..e412748e0cd8dc86a92142ceeac1a77c99646707 100644
--- a/Rendering/Core/vtkAreaPicker.h
+++ b/Rendering/Core/vtkAreaPicker.h
@@ -47,6 +47,7 @@
 #include "vtkAbstractPropPicker.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkPoints;
 class vtkPlanes;
@@ -163,4 +164,5 @@ private:
   void operator=(const vtkAreaPicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAssembly.cxx b/Rendering/Core/vtkAssembly.cxx
index 54a4d4831498a095ab2b8a4aab59fb4b4c15e5ac..3f5ea21fdd203075e06bb65732d4cdf0c372491e 100644
--- a/Rendering/Core/vtkAssembly.cxx
+++ b/Rendering/Core/vtkAssembly.cxx
@@ -22,6 +22,7 @@
 #include "vtkRenderWindow.h"
 #include "vtkVolume.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAssembly);
 
 // Construct object with no children.
@@ -445,3 +446,4 @@ void vtkAssembly::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "There are: " << this->Parts->GetNumberOfItems() << " parts in this assembly\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAssembly.h b/Rendering/Core/vtkAssembly.h
index 4827983755064dcad65d0ed88c3e8feb6ba76276..b00b6d6f20818ec81ce7154e03d1fd005104c28d 100644
--- a/Rendering/Core/vtkAssembly.h
+++ b/Rendering/Core/vtkAssembly.h
@@ -60,6 +60,7 @@
 #include "vtkProp3D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAssemblyPaths;
 class vtkProp3DCollection;
 class vtkMapper;
@@ -185,4 +186,5 @@ private:
   void operator=(const vtkAssembly&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAssemblyNode.cxx b/Rendering/Core/vtkAssemblyNode.cxx
index a0af637aeae00392e6cd2d3f0692fbc4f2210c63..b829ea3b88515199080d7f8cfb5e8917e255096c 100644
--- a/Rendering/Core/vtkAssemblyNode.cxx
+++ b/Rendering/Core/vtkAssemblyNode.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkProp.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAssemblyNode);
 
 //------------------------------------------------------------------------------
@@ -105,3 +106,4 @@ void vtkAssemblyNode::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Matrix: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAssemblyNode.h b/Rendering/Core/vtkAssemblyNode.h
index 8a6504f519102357824738e6c662ee198fb1be9b..d17e59884a9fef80b1b8b42c6cb96b013091340f 100644
--- a/Rendering/Core/vtkAssemblyNode.h
+++ b/Rendering/Core/vtkAssemblyNode.h
@@ -49,6 +49,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProp;
 class vtkMatrix4x4;
 
@@ -102,4 +103,5 @@ private:
   vtkAssemblyNode(const vtkAssemblyNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAssemblyPath.cxx b/Rendering/Core/vtkAssemblyPath.cxx
index 56773bd34a2d5b20daf9fc110efb66a9c00d4912..7f9b584071c76f6a566f6bea6ae5c1f39fe4d907 100644
--- a/Rendering/Core/vtkAssemblyPath.cxx
+++ b/Rendering/Core/vtkAssemblyPath.cxx
@@ -19,6 +19,7 @@
 #include "vtkProp.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAssemblyPath);
 
 vtkAssemblyPath::vtkAssemblyPath()
@@ -114,3 +115,4 @@ void vtkAssemblyPath::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAssemblyPath.h b/Rendering/Core/vtkAssemblyPath.h
index ea2c17c04cf2025c75499329820e716f649db6d8..f3108621ea5660979b6019ed491b17d7d2644f9e 100644
--- a/Rendering/Core/vtkAssemblyPath.h
+++ b/Rendering/Core/vtkAssemblyPath.h
@@ -34,6 +34,7 @@
 #include "vtkCollection.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkTransform;
 class vtkProp;
@@ -124,4 +125,5 @@ private:
   void operator=(const vtkAssemblyPath&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAssemblyPaths.cxx b/Rendering/Core/vtkAssemblyPaths.cxx
index 59253b534e3c29b31a7a84ef8c7aa24e6e46f2c3..e0b0708c047f97277b2658720914e8aee46fbd05 100644
--- a/Rendering/Core/vtkAssemblyPaths.cxx
+++ b/Rendering/Core/vtkAssemblyPaths.cxx
@@ -15,6 +15,7 @@
 #include "vtkAssemblyPaths.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAssemblyPaths);
 
 void vtkAssemblyPaths::PrintSelf(ostream& os, vtkIndent indent)
@@ -37,3 +38,4 @@ vtkMTimeType vtkAssemblyPaths::GetMTime()
   }
   return mtime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAssemblyPaths.h b/Rendering/Core/vtkAssemblyPaths.h
index 7db79e1cf2f07c46fa60445e4cae776657e54044..7cbf935eaf61bf4f6dceedd3d2e7d0eb874f9f0f 100644
--- a/Rendering/Core/vtkAssemblyPaths.h
+++ b/Rendering/Core/vtkAssemblyPaths.h
@@ -32,6 +32,7 @@
 
 #include "vtkAssemblyPath.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProp;
 
 class VTKRENDERINGCORE_EXPORT vtkAssemblyPaths : public vtkCollection
@@ -113,4 +114,5 @@ inline vtkAssemblyPath* vtkAssemblyPaths::GetNextItem()
   return static_cast<vtkAssemblyPath*>(this->GetNextItemAsObject());
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkAvatar.cxx b/Rendering/Core/vtkAvatar.cxx
index 5be3b408e86b93da6ebe4013d4da20a171d58e8e..c0ef3dc7eab69b2f9351343ecdb1084a89af6ff8 100644
--- a/Rendering/Core/vtkAvatar.cxx
+++ b/Rendering/Core/vtkAvatar.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkAvatar);
 
 //------------------------------------------------------------------------------
@@ -74,3 +75,4 @@ vtkAvatar::vtkAvatar()
 
 //------------------------------------------------------------------------------
 vtkAvatar::~vtkAvatar() = default;
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkAvatar.h b/Rendering/Core/vtkAvatar.h
index f0ad84059942627b2980fa262843bb6af9734d0f..23445205009eefdcc223fa42c79182ea597b86d1 100644
--- a/Rendering/Core/vtkAvatar.h
+++ b/Rendering/Core/vtkAvatar.h
@@ -26,6 +26,7 @@
 #include "vtkActor.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkAvatar : public vtkActor
 {
 public:
@@ -113,4 +114,5 @@ private:
   void operator=(const vtkAvatar&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkAvatar_h
diff --git a/Rendering/Core/vtkBackgroundColorMonitor.cxx b/Rendering/Core/vtkBackgroundColorMonitor.cxx
index c86dcbd4a2e9ceabaa763bb185ae9572c56ca763..be87bea6d577c8916358740157754a794a40eb90 100644
--- a/Rendering/Core/vtkBackgroundColorMonitor.cxx
+++ b/Rendering/Core/vtkBackgroundColorMonitor.cxx
@@ -19,6 +19,7 @@
 #include <cstring>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBackgroundColorMonitor);
 
 //------------------------------------------------------------------------------
@@ -87,3 +88,4 @@ void vtkBackgroundColorMonitor::PrintSelf(ostream& os, vtkIndent indent)
   os << endl;
   os << indent << "UpTime=" << this->UpTime << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkBackgroundColorMonitor.h b/Rendering/Core/vtkBackgroundColorMonitor.h
index 7c81505fffa64b4cfc8fbcf64755dd978b7fa1c5..8b37d17cc2e884f0eb38303c24acba2bff89875e 100644
--- a/Rendering/Core/vtkBackgroundColorMonitor.h
+++ b/Rendering/Core/vtkBackgroundColorMonitor.h
@@ -35,6 +35,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // for export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 
 class VTKRENDERINGCORE_EXPORT vtkBackgroundColorMonitor : public vtkObject
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkBackgroundColorMonitor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkBillboardTextActor3D.cxx b/Rendering/Core/vtkBillboardTextActor3D.cxx
index eed3679ecc6ace3a0f4848d96a8f012682196135..10fc08c28d628aae19bfc100c36a08382715cf98 100644
--- a/Rendering/Core/vtkBillboardTextActor3D.cxx
+++ b/Rendering/Core/vtkBillboardTextActor3D.cxx
@@ -39,6 +39,7 @@
 // Define to print debugging info:
 //#define DEBUG_BTA3D
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -666,3 +667,4 @@ void vtkBillboardTextActor3D::PreRender()
   // etc to work.
   this->QuadActor->SetPropertyKeys(this->GetPropertyKeys());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkBillboardTextActor3D.h b/Rendering/Core/vtkBillboardTextActor3D.h
index e2d277914f37d30aa3f7dd40256356342958e2b7..eea63754bd5530a350715fb964efff073010f903 100644
--- a/Rendering/Core/vtkBillboardTextActor3D.h
+++ b/Rendering/Core/vtkBillboardTextActor3D.h
@@ -25,6 +25,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkSmartPointer.h"        // For.... vtkSmartPointer!
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkImageData;
 class vtkPolyData;
@@ -174,4 +175,5 @@ private:
   void operator=(const vtkBillboardTextActor3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkBillboardTextActor3D_h
diff --git a/Rendering/Core/vtkCIEDE2000.cxx b/Rendering/Core/vtkCIEDE2000.cxx
index fb4ed421ef3fdfb6c56b1550d097908115e6b05a..2263ee3539577f93d1a711be0a03b3808918384c 100644
--- a/Rendering/Core/vtkCIEDE2000.cxx
+++ b/Rendering/Core/vtkCIEDE2000.cxx
@@ -48,6 +48,7 @@ SOFTWARE.
 
 namespace CIEDE2000
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 //------------------------------------------------------------------------------
 static const int COLORSPACE_SIZE_X = 17;
@@ -398,4 +399,5 @@ double GetColorPath(
 }
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_END
 } // namespace CIEDE2000
diff --git a/Rendering/Core/vtkCIEDE2000.h b/Rendering/Core/vtkCIEDE2000.h
index 60e543963d58b471f52a61cc096fa8498bd16ace..1790335ab674a85a86b61ae36379207c67f7d2f9 100644
--- a/Rendering/Core/vtkCIEDE2000.h
+++ b/Rendering/Core/vtkCIEDE2000.h
@@ -54,10 +54,13 @@ SOFTWARE.
 #ifndef vtkCIEDE2000_h
 #define vtkCIEDE2000_h
 
+#include "vtkABINamespace.h"
+
 #include <vector> // needed for std::vector
 
 namespace CIEDE2000
 {
+VTK_ABI_NAMESPACE_BEGIN
 /**
  * Node of the color path
  */
@@ -84,6 +87,7 @@ double GetCIEDeltaE2000(const double lab1[3], const double lab2[3]);
  */
 double GetColorPath(const double rgb1[3], const double rgb2[3], std::vector<Node>& path,
   bool forceExactSupportColors);
+VTK_ABI_NAMESPACE_END
 }
 
 #endif
diff --git a/Rendering/Core/vtkCamera.cxx b/Rendering/Core/vtkCamera.cxx
index 440458258f1a976ed670f7ffb862761a714bc9e4..96e93b0e2f023c11bcfe16c92b1e858eadf89db6 100644
--- a/Rendering/Core/vtkCamera.cxx
+++ b/Rendering/Core/vtkCamera.cxx
@@ -28,6 +28,7 @@
 
 //------------------------------------------------------------------------------
 // Needed when we don't use the vtkStandardNewMacro.
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkCamera);
 
 vtkCxxSetObjectMacro(vtkCamera, Information, vtkInformation);
@@ -1990,3 +1991,4 @@ void vtkCamera::SetModelTransformMatrix(const double elements[16])
   this->ModelTransformMatrix->Element[3][3] = elements[15];
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkCamera.h b/Rendering/Core/vtkCamera.h
index e3896f2e6a4229a75691ac5e17bd3ede0d343cc3..0fb9e5605a4fd9a3707bf536f1bb4f4aced338b6 100644
--- a/Rendering/Core/vtkCamera.h
+++ b/Rendering/Core/vtkCamera.h
@@ -33,6 +33,7 @@
 #include "vtkRect.h"                // for ivar
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHomogeneousTransform;
 class vtkInformation;
 class vtkMatrix4x4;
@@ -873,4 +874,5 @@ private:
   void operator=(const vtkCamera&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkCameraActor.cxx b/Rendering/Core/vtkCameraActor.cxx
index e4eee307e5201a5c760abb7eb708e2e2b8549e28..2bf965a9b2d3cbb6de3d58dc3ca836fbcfbe858f 100644
--- a/Rendering/Core/vtkCameraActor.cxx
+++ b/Rendering/Core/vtkCameraActor.cxx
@@ -24,6 +24,7 @@
 #include "vtkPolyDataMapper.h"
 #include "vtkProperty.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCameraActor);
 vtkCxxSetObjectMacro(vtkCameraActor, Camera, vtkCamera);
 
@@ -215,3 +216,4 @@ void vtkCameraActor::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "WidthByHeightRatio: " << this->WidthByHeightRatio << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkCameraActor.h b/Rendering/Core/vtkCameraActor.h
index bc0c48cf617002c8077c4e76a357b9dc0747c26a..45c9e6d52ed8ca9f23f63379c768197f0ec0cb19 100644
--- a/Rendering/Core/vtkCameraActor.h
+++ b/Rendering/Core/vtkCameraActor.h
@@ -29,6 +29,7 @@
 #include "vtkProp3D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 class vtkFrustumSource;
 class vtkPolyDataMapper;
@@ -114,4 +115,5 @@ private:
   void operator=(const vtkCameraActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkCameraInterpolator.cxx b/Rendering/Core/vtkCameraInterpolator.cxx
index 3a7ef81807d148eb8c1c1e213082fc1a975b5a54..ffcb2f2a6bfd55251b0aa554b6a0cce6d34c8fed 100644
--- a/Rendering/Core/vtkCameraInterpolator.cxx
+++ b/Rendering/Core/vtkCameraInterpolator.cxx
@@ -19,6 +19,7 @@
 #include "vtkTupleInterpolator.h"
 #include <list>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCameraInterpolator);
 
 // PIMPL STL encapsulation for list of cameras. This just keeps track of all
@@ -561,3 +562,4 @@ void vtkCameraInterpolator::PrintSelf(ostream& os, vtkIndent indent)
     os << "(null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkCameraInterpolator.h b/Rendering/Core/vtkCameraInterpolator.h
index 72176ade19fc236d8dff3ef91bb6980866876770..9a594ac8bcd7ce5cd557010bb2f5d1bfc54acffc 100644
--- a/Rendering/Core/vtkCameraInterpolator.h
+++ b/Rendering/Core/vtkCameraInterpolator.h
@@ -52,6 +52,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 class vtkCameraList;
 class vtkTupleInterpolator;
@@ -236,4 +237,5 @@ private:
   void operator=(const vtkCameraInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkCellCenterDepthSort.cxx b/Rendering/Core/vtkCellCenterDepthSort.cxx
index ff1b1a515966f9d226a6a879498cd2096748bb5b..f422e6f0aef37db7bade56b3b0da1e7319baabc8 100644
--- a/Rendering/Core/vtkCellCenterDepthSort.cxx
+++ b/Rendering/Core/vtkCellCenterDepthSort.cxx
@@ -41,6 +41,7 @@
 
 typedef std::pair<vtkIdType, vtkIdType> vtkIdPair;
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellCenterDepthSortStack
 {
 public:
@@ -256,3 +257,4 @@ vtkIdTypeArray* vtkCellCenterDepthSort::GetNextCells()
   vtkSortDataArray::Sort(this->CellPartitionDepths, this->SortedCellPartition);
   return this->SortedCellPartition;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkCellCenterDepthSort.h b/Rendering/Core/vtkCellCenterDepthSort.h
index 6caf1151407d5267d770990253eb70b367ed79c9..ea3798875592f10cbee71a1c440eb8d7b87a4357 100644
--- a/Rendering/Core/vtkCellCenterDepthSort.h
+++ b/Rendering/Core/vtkCellCenterDepthSort.h
@@ -42,6 +42,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkVisibilitySort.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 
 class vtkCellCenterDepthSortStack;
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkCellCenterDepthSort&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkCellPicker.cxx b/Rendering/Core/vtkCellPicker.cxx
index 5a85ea8b94d15d4bcdd3871dc2502e56ad2d687e..6e066eddcabe8fb33f45d3d61c98110ee761a56d 100644
--- a/Rendering/Core/vtkCellPicker.cxx
+++ b/Rendering/Core/vtkCellPicker.cxx
@@ -49,6 +49,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCellPicker);
 
 //------------------------------------------------------------------------------
@@ -1861,3 +1862,4 @@ double vtkCellPicker::ComputeVolumeOpacity(const int xi[3], const double pcoords
 
   return opacity;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkCellPicker.h b/Rendering/Core/vtkCellPicker.h
index ab036563007fec3a4e06a800f46e83e0376dfe58..388b05d100b12e0a79dab5dbee5fd932750933aa 100644
--- a/Rendering/Core/vtkCellPicker.h
+++ b/Rendering/Core/vtkCellPicker.h
@@ -44,6 +44,7 @@
 #include "vtkPicker.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMapper;
 class vtkTexture;
 class vtkAbstractHyperTreeGridMapper;
@@ -348,4 +349,5 @@ private:
   void operator=(const vtkCellPicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkColorTransferFunction.cxx b/Rendering/Core/vtkColorTransferFunction.cxx
index 9a5b29bdda247bd597adf3569c631908bfe05cc7..20a75370bbc967941734bbe86f04ecf0180f9974 100644
--- a/Rendering/Core/vtkColorTransferFunction.cxx
+++ b/Rendering/Core/vtkColorTransferFunction.cxx
@@ -26,6 +26,7 @@
 #include <set>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkColorTransferFunction);
 
 #define MY_MAX(x, y) ((x) > (y) ? (x) : (y))
@@ -2034,3 +2035,4 @@ void vtkColorTransferFunction::PrintSelf(ostream& os, vtkIndent indent)
        << " Midpoint: " << this->Internal->Nodes[i]->Midpoint << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkColorTransferFunction.h b/Rendering/Core/vtkColorTransferFunction.h
index 81450720dc230f8d279fc848e400518c233d2a0f..10e3f3c314d8064f158506f858daf17004067f2d 100644
--- a/Rendering/Core/vtkColorTransferFunction.h
+++ b/Rendering/Core/vtkColorTransferFunction.h
@@ -39,6 +39,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkScalarsToColors.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkColorTransferFunctionInternals;
 class vtkDoubleArray;
 
@@ -475,4 +476,5 @@ private:
   void operator=(const vtkColorTransferFunction&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkCompositeDataDisplayAttributes.cxx b/Rendering/Core/vtkCompositeDataDisplayAttributes.cxx
index 44c28822f8b395c2eb7ed0d2bc02d9bca83d2ba4..65b7b4207522aca2b42fc4eb015ad5aa6d158b9b 100644
--- a/Rendering/Core/vtkCompositeDataDisplayAttributes.cxx
+++ b/Rendering/Core/vtkCompositeDataDisplayAttributes.cxx
@@ -24,6 +24,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeDataDisplayAttributes);
 
 vtkCompositeDataDisplayAttributes::vtkCompositeDataDisplayAttributes() = default;
@@ -371,3 +372,4 @@ vtkDataObject* vtkCompositeDataDisplayAttributes::DataObjectFromIndex(
   }
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkCompositeDataDisplayAttributes.h b/Rendering/Core/vtkCompositeDataDisplayAttributes.h
index fa08089c556183f968493a548f25e122e761c712..040651ab4d5f8a554423cd2b3e7585c487ce938f 100644
--- a/Rendering/Core/vtkCompositeDataDisplayAttributes.h
+++ b/Rendering/Core/vtkCompositeDataDisplayAttributes.h
@@ -33,6 +33,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // for export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBoundingBox;
 class vtkDataObject;
 
@@ -247,4 +248,5 @@ private:
   BoolMap BlockPickabilities;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCompositeDataDisplayAttributes_h
diff --git a/Rendering/Core/vtkCompositeDataDisplayAttributesLegacy.cxx b/Rendering/Core/vtkCompositeDataDisplayAttributesLegacy.cxx
index 2d6a6271363ccf218fa8e2f14208185938e6f51e..4e4782c739ab172b1a06ec4104ca9f3a07e5a5de 100644
--- a/Rendering/Core/vtkCompositeDataDisplayAttributesLegacy.cxx
+++ b/Rendering/Core/vtkCompositeDataDisplayAttributesLegacy.cxx
@@ -22,6 +22,7 @@
 #include "vtkMultiPieceDataSet.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeDataDisplayAttributesLegacy);
 
 vtkCompositeDataDisplayAttributesLegacy::vtkCompositeDataDisplayAttributesLegacy() = default;
@@ -258,3 +259,4 @@ void vtkCompositeDataDisplayAttributesLegacy::ComputeVisibleBoundsInternal(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkCompositeDataDisplayAttributesLegacy.h b/Rendering/Core/vtkCompositeDataDisplayAttributesLegacy.h
index d84bc8cd8fa1d4b401008436d9ca59c85ab70c83..3eaabdf4601d8b2edf631f08b8eabcd42d47a4ca 100644
--- a/Rendering/Core/vtkCompositeDataDisplayAttributesLegacy.h
+++ b/Rendering/Core/vtkCompositeDataDisplayAttributesLegacy.h
@@ -32,6 +32,7 @@
 
 #include <map> // for std::map
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBoundingBox;
 class vtkDataObject;
 
@@ -192,4 +193,5 @@ private:
   std::map<unsigned int, bool> BlockPickabilities;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCompositeDataDisplayAttributesLegacy_h
diff --git a/Rendering/Core/vtkCompositePolyDataMapper.cxx b/Rendering/Core/vtkCompositePolyDataMapper.cxx
index 071c4a8f5096e17504f9bbc491c8a4e913841b98..aebd59d75bdca83ae7d82751550c21ed6c7bfc3b 100644
--- a/Rendering/Core/vtkCompositePolyDataMapper.cxx
+++ b/Rendering/Core/vtkCompositePolyDataMapper.cxx
@@ -29,6 +29,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositePolyDataMapper);
 
 class vtkCompositePolyDataMapperInternals
@@ -353,3 +354,4 @@ bool vtkCompositePolyDataMapper::HasTranslucentPolygonalGeometry()
   }
   return hasTrans;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkCompositePolyDataMapper.h b/Rendering/Core/vtkCompositePolyDataMapper.h
index 60fb57173ab75cb88bf78d4392181a279925c945..4b4e6e3a977d1f8b00e017ddb8a280f0fad62522 100644
--- a/Rendering/Core/vtkCompositePolyDataMapper.h
+++ b/Rendering/Core/vtkCompositePolyDataMapper.h
@@ -31,6 +31,7 @@
 #include "vtkMapper.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyDataMapper;
 class vtkInformation;
 class vtkRenderer;
@@ -129,4 +130,5 @@ private:
   void operator=(const vtkCompositePolyDataMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkCoordinate.cxx b/Rendering/Core/vtkCoordinate.cxx
index f8dfad6200ed878c3e505769e19b77ed01a7c3c3..a8ec5b9f612477d4f8639b7dd706bffa6dc95f37 100644
--- a/Rendering/Core/vtkCoordinate.cxx
+++ b/Rendering/Core/vtkCoordinate.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkViewport.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCoordinate);
 
 vtkCxxSetObjectMacro(vtkCoordinate, ReferenceCoordinate, vtkCoordinate);
@@ -468,3 +469,4 @@ double* vtkCoordinate::GetComputedValue(vtkViewport* viewport)
 
   return this->ComputedWorldValue;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkCoordinate.h b/Rendering/Core/vtkCoordinate.h
index d1ce8b04ae5f062578277cf24df81d80e27496a9..2f5a696cca950984d2a4d8b358ed56fa6fbeb166 100644
--- a/Rendering/Core/vtkCoordinate.h
+++ b/Rendering/Core/vtkCoordinate.h
@@ -62,6 +62,7 @@
 
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
+VTK_ABI_NAMESPACE_BEGIN
 class vtkViewport;
 
 #define VTK_DISPLAY 0
@@ -194,4 +195,5 @@ private:
   void operator=(const vtkCoordinate&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkCuller.cxx b/Rendering/Core/vtkCuller.cxx
index f7d38466e4264d119c5737afc1690841676fe625..9c82cc0e41ef47407b94b6223d19bb4500972bfb 100644
--- a/Rendering/Core/vtkCuller.cxx
+++ b/Rendering/Core/vtkCuller.cxx
@@ -14,6 +14,7 @@
 =========================================================================*/
 #include "vtkCuller.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCuller::vtkCuller() = default;
 
 vtkCuller::~vtkCuller() = default;
@@ -23,3 +24,4 @@ void vtkCuller::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkCuller.h b/Rendering/Core/vtkCuller.h
index 59236dec2ef7d87bfa885a899b7c922f324851ac..38915b7a38e73476e51493aa3e8ce205a4e1fa27 100644
--- a/Rendering/Core/vtkCuller.h
+++ b/Rendering/Core/vtkCuller.h
@@ -31,6 +31,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProp;
 class vtkRenderer;
 
@@ -54,4 +55,5 @@ private:
   void operator=(const vtkCuller&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkCullerCollection.cxx b/Rendering/Core/vtkCullerCollection.cxx
index 5f1104b82cada52f47b35b2ff8154dfdf3aedc8f..5b54ddcb3e11690753f69c8c9829baafdebc7270 100644
--- a/Rendering/Core/vtkCullerCollection.cxx
+++ b/Rendering/Core/vtkCullerCollection.cxx
@@ -15,6 +15,7 @@
 #include "vtkCullerCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCullerCollection);
 
 //------------------------------------------------------------------------------
@@ -22,3 +23,4 @@ void vtkCullerCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkCullerCollection.h b/Rendering/Core/vtkCullerCollection.h
index 5c132f50f1244c99b629565b088229dd1365cbf9..6c3f7fb410c8c02ce7753dcd005cf1a754e913b0 100644
--- a/Rendering/Core/vtkCullerCollection.h
+++ b/Rendering/Core/vtkCullerCollection.h
@@ -31,6 +31,7 @@
 #include "vtkCuller.h"              // for inline functions
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkCullerCollection : public vtkCollection
 {
 public:
@@ -87,4 +88,5 @@ inline vtkCuller* vtkCullerCollection::GetLastItem()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkDataSetMapper.cxx b/Rendering/Core/vtkDataSetMapper.cxx
index 0918deff5c33b746050fce211efa9b101dbe37e6..22d617cf25f5b0bf09db7220075036bdb839c324 100644
--- a/Rendering/Core/vtkDataSetMapper.cxx
+++ b/Rendering/Core/vtkDataSetMapper.cxx
@@ -24,6 +24,7 @@
 #include "vtkPolyDataMapper.h"
 #include "vtkScalarsToColors.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDataSetMapper);
 
 //------------------------------------------------------------------------------
@@ -212,3 +213,4 @@ void vtkDataSetMapper::ReportReferences(vtkGarbageCollector* collector)
   vtkGarbageCollectorReport(collector, this->GeometryExtractor, "GeometryExtractor");
   vtkGarbageCollectorReport(collector, this->PolyDataMapper, "PolyDataMapper");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkDataSetMapper.h b/Rendering/Core/vtkDataSetMapper.h
index ef47e819276ade57b1ad4b41bc145eab621299bb..3b89f7316335f63046d637b8c8b69882337d92d8 100644
--- a/Rendering/Core/vtkDataSetMapper.h
+++ b/Rendering/Core/vtkDataSetMapper.h
@@ -30,6 +30,7 @@
 #include "vtkMapper.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyDataMapper;
 class vtkDataSetSurfaceFilter;
 
@@ -85,4 +86,5 @@ private:
   void operator=(const vtkDataSetMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkDiscretizableColorTransferFunction.cxx b/Rendering/Core/vtkDiscretizableColorTransferFunction.cxx
index eae79ea85906931937250f0b01b0e133ba52f287..88d2ed9a50572b1d338242e5d33ffc3ed70f54ca 100644
--- a/Rendering/Core/vtkDiscretizableColorTransferFunction.cxx
+++ b/Rendering/Core/vtkDiscretizableColorTransferFunction.cxx
@@ -25,6 +25,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDiscretizableColorTransferFunction::vtkInternals
 {
 public:
@@ -456,3 +457,4 @@ void vtkDiscretizableColorTransferFunction::PrintSelf(ostream& os, vtkIndent ind
   os << indent << "EnableOpacityMapping: " << this->EnableOpacityMapping << endl;
   os << indent << "ScalarOpacityFunction: " << this->ScalarOpacityFunction << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkDiscretizableColorTransferFunction.h b/Rendering/Core/vtkDiscretizableColorTransferFunction.h
index 340764ec2eb6d79bc65de3c1d543e40ea43791e2..8b0d3c5c79b9f989213177b847a86d70484794e8 100644
--- a/Rendering/Core/vtkDiscretizableColorTransferFunction.h
+++ b/Rendering/Core/vtkDiscretizableColorTransferFunction.h
@@ -50,6 +50,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkSmartPointer.h"        // for vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkColorTransferFunction;
 class vtkLookupTable;
 class vtkPiecewiseFunction;
@@ -284,4 +285,5 @@ private:
   vtkInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkDistanceToCamera.cxx b/Rendering/Core/vtkDistanceToCamera.cxx
index 6767eef9085fb18037e1e72107b2699dcc8ac8f5..6e03d117605486cc63ec346c0364fff9412150ee 100644
--- a/Rendering/Core/vtkDistanceToCamera.cxx
+++ b/Rendering/Core/vtkDistanceToCamera.cxx
@@ -31,6 +31,7 @@
 #include "vtkRenderer.h"
 #include "vtkSmartPointer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDistanceToCamera);
 
 vtkDistanceToCamera::vtkDistanceToCamera()
@@ -249,3 +250,4 @@ void vtkDistanceToCamera::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ScreenSize: " << this->ScreenSize << endl;
   os << indent << "Scaling: " << (this->Scaling ? "on" : "off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkDistanceToCamera.h b/Rendering/Core/vtkDistanceToCamera.h
index 907a9d776342fcb88582d2a21fcb26f31d1d9955..75dcf49417aad6d2ce9c0f4b49f864491de15177 100644
--- a/Rendering/Core/vtkDistanceToCamera.h
+++ b/Rendering/Core/vtkDistanceToCamera.h
@@ -35,6 +35,7 @@
 #include "vtkPointSetAlgorithm.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 
 class VTKRENDERINGCORE_EXPORT vtkDistanceToCamera : public vtkPointSetAlgorithm
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkDistanceToCamera&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkFXAAOptions.cxx b/Rendering/Core/vtkFXAAOptions.cxx
index 07e8afb175c7af139facf139cfa1abc5634c7767..7348e8eb76d3ae01c75e30af41991b1853ba181f 100644
--- a/Rendering/Core/vtkFXAAOptions.cxx
+++ b/Rendering/Core/vtkFXAAOptions.cxx
@@ -17,6 +17,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFXAAOptions);
 
 //------------------------------------------------------------------------------
@@ -76,3 +77,4 @@ vtkFXAAOptions::vtkFXAAOptions()
 
 //------------------------------------------------------------------------------
 vtkFXAAOptions::~vtkFXAAOptions() = default;
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkFXAAOptions.h b/Rendering/Core/vtkFXAAOptions.h
index 5f769729ed79b7f0be99397b13aa0fb4d84fe743..15236aaa03f628249eb64374ecb27ab045190005 100644
--- a/Rendering/Core/vtkFXAAOptions.h
+++ b/Rendering/Core/vtkFXAAOptions.h
@@ -27,6 +27,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkFXAAOptions : public vtkObject
 {
 public:
@@ -194,4 +195,5 @@ private:
   void operator=(const vtkFXAAOptions&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkFXAAOptions_h
diff --git a/Rendering/Core/vtkFlagpoleLabel.cxx b/Rendering/Core/vtkFlagpoleLabel.cxx
index 94802379f69721aa73aa181fbb289c4fbfeb589e..ddc5dd63a26bebda2088fb5e481cc4b9d1b24e57 100644
--- a/Rendering/Core/vtkFlagpoleLabel.cxx
+++ b/Rendering/Core/vtkFlagpoleLabel.cxx
@@ -33,6 +33,7 @@
 #include "vtkTexture.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkFlagpoleLabel);
 vtkCxxSetObjectMacro(vtkFlagpoleLabel, TextProperty, vtkTextProperty);
 
@@ -505,3 +506,4 @@ void vtkFlagpoleLabel::PreRender()
   this->PoleActor->SetPropertyKeys(this->GetPropertyKeys());
   this->QuadActor->SetPropertyKeys(this->GetPropertyKeys());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkFlagpoleLabel.h b/Rendering/Core/vtkFlagpoleLabel.h
index b96e96fb250f8c42b882e07c298354e97f09ea17..56ad7770b3ff3e6357c044ccea1749f11a266999 100644
--- a/Rendering/Core/vtkFlagpoleLabel.h
+++ b/Rendering/Core/vtkFlagpoleLabel.h
@@ -30,6 +30,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkSmartPointer.h"        // For.... vtkSmartPointer!
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkImageData;
 class vtkLineSource;
@@ -168,4 +169,5 @@ private:
   void operator=(const vtkFlagpoleLabel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkFlagpoleLabel_h
diff --git a/Rendering/Core/vtkFollower.cxx b/Rendering/Core/vtkFollower.cxx
index 0ae1d754d0192bdb69b62b5e4c0ce6d834f4a138..3c41b1e8e249e3f097fc08e1d3819c99c344f812 100644
--- a/Rendering/Core/vtkFollower.cxx
+++ b/Rendering/Core/vtkFollower.cxx
@@ -27,6 +27,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFollower);
 
 vtkCxxSetObjectMacro(vtkFollower, Camera, vtkCamera);
@@ -276,3 +277,4 @@ void vtkFollower::ShallowCopy(vtkProp* prop)
   // Now do superclass
   this->vtkActor::ShallowCopy(prop);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkFollower.h b/Rendering/Core/vtkFollower.h
index 080fa43fa926d8a990543f11f21a1b163f0abb83..35cca1bafe438951f77936d48b38bc08d2b81873 100644
--- a/Rendering/Core/vtkFollower.h
+++ b/Rendering/Core/vtkFollower.h
@@ -35,6 +35,7 @@
 #include "vtkActor.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 
 class VTKRENDERINGCORE_EXPORT vtkFollower : public vtkActor
@@ -102,4 +103,5 @@ private:
   void Render(vtkRenderer*, vtkMapper*) override {}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkFrameBufferObjectBase.cxx b/Rendering/Core/vtkFrameBufferObjectBase.cxx
index 225dab1df3149471bea2ec07d26fd0add8b9cb53..0bb41cbb9051c955f06314c431034a2efee0c04a 100644
--- a/Rendering/Core/vtkFrameBufferObjectBase.cxx
+++ b/Rendering/Core/vtkFrameBufferObjectBase.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkFrameBufferObjectBase::vtkFrameBufferObjectBase() = default;
 
 //------------------------------------------------------------------------------
@@ -27,3 +28,4 @@ void vtkFrameBufferObjectBase::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkFrameBufferObjectBase.h b/Rendering/Core/vtkFrameBufferObjectBase.h
index f4c6f775021c335168040ac451adb584192383ed..319cbf6a35cbd11f3b16bdadfec928ab92a3141e 100644
--- a/Rendering/Core/vtkFrameBufferObjectBase.h
+++ b/Rendering/Core/vtkFrameBufferObjectBase.h
@@ -25,6 +25,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkProp;
 class vtkInformation;
@@ -53,4 +54,5 @@ private:
   void operator=(const vtkFrameBufferObjectBase&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkFrustumCoverageCuller.cxx b/Rendering/Core/vtkFrustumCoverageCuller.cxx
index 96e338285f25e113379ee797b524a8916fdd22ae..681ade225bf0d99366fb6dbd32ba3ad633f13826 100644
--- a/Rendering/Core/vtkFrustumCoverageCuller.cxx
+++ b/Rendering/Core/vtkFrustumCoverageCuller.cxx
@@ -20,6 +20,7 @@
 #include "vtkProp.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFrustumCoverageCuller);
 
 // Create a frustum coverage culler with default values
@@ -346,3 +347,4 @@ void vtkFrustumCoverageCuller::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Sorting Style: " << this->GetSortingStyleAsString() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkFrustumCoverageCuller.h b/Rendering/Core/vtkFrustumCoverageCuller.h
index f0e0c4ad44a4a67bca95d2db4770f3dc4287f351..4a211bb49c1bd258e25c480945ffa0f3213c346f 100644
--- a/Rendering/Core/vtkFrustumCoverageCuller.h
+++ b/Rendering/Core/vtkFrustumCoverageCuller.h
@@ -42,6 +42,7 @@
 #define VTK_CULLER_SORT_FRONT_TO_BACK 1
 #define VTK_CULLER_SORT_BACK_TO_FRONT 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProp;
 class vtkRenderer;
 
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkFrustumCoverageCuller&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkGPUInfo.cxx b/Rendering/Core/vtkGPUInfo.cxx
index adc1b91929db6d7317887dbafb08281f33633db9..792fcd834f04fa10e59edee9a887544896192515 100644
--- a/Rendering/Core/vtkGPUInfo.cxx
+++ b/Rendering/Core/vtkGPUInfo.cxx
@@ -16,6 +16,7 @@
 #include "vtkGPUInfo.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGPUInfo);
 
 //------------------------------------------------------------------------------
@@ -38,3 +39,4 @@ void vtkGPUInfo::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Dedicated System Memory in bytes: " << this->DedicatedSystemMemory << endl;
   os << indent << "Shared System Memory in bytes: " << this->SharedSystemMemory << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkGPUInfo.h b/Rendering/Core/vtkGPUInfo.h
index 0ed218d229ba1c53ccef2ebb36e701383fcf7d81..998413375f736a56ff847771663b3c78eb1a23b3 100644
--- a/Rendering/Core/vtkGPUInfo.h
+++ b/Rendering/Core/vtkGPUInfo.h
@@ -29,6 +29,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkGPUInfo : public vtkObject
 {
 public:
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkGPUInfo&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkGPUInfoList.cxx b/Rendering/Core/vtkGPUInfoList.cxx
index 647da62f669bd7464a5c027dd7814b0e9a6a0426..8e430372dafb15f16aa28c40a11f3b50e44b1f9b 100644
--- a/Rendering/Core/vtkGPUInfoList.cxx
+++ b/Rendering/Core/vtkGPUInfoList.cxx
@@ -23,6 +23,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkGPUInfoList* vtkGPUInfoList::New()
 {
   vtkObject* ret = vtkGraphicsFactory::CreateInstance("vtkGPUInfoList");
@@ -112,3 +113,4 @@ void vtkGPUInfoList::PrintSelf(ostream& os, vtkIndent indent)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkGPUInfoList.h b/Rendering/Core/vtkGPUInfoList.h
index 9dcfd56b6f28b1b3f60acfa9579a4fb77011c8de..5cdda2ac38bd085e9d3fa3e000bfdbadc4e41cd5 100644
--- a/Rendering/Core/vtkGPUInfoList.h
+++ b/Rendering/Core/vtkGPUInfoList.h
@@ -30,6 +30,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGPUInfoListArray; // STL Pimpl
 class vtkGPUInfo;
 
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkGPUInfoList&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkGPUInfoListArray.h b/Rendering/Core/vtkGPUInfoListArray.h
index 92121cc702126034cb375911ce7d9b1041cd434a..04867923300c8b79c65b9a255bf6b73b2ac354c2 100644
--- a/Rendering/Core/vtkGPUInfoListArray.h
+++ b/Rendering/Core/vtkGPUInfoListArray.h
@@ -25,11 +25,13 @@
 #include "vtkGPUInfo.h"
 #include <vector> // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGPUInfoListArray
 {
 public:
   std::vector<vtkGPUInfo*> v;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkGPUInfoListArray.h
diff --git a/Rendering/Core/vtkGenericVertexAttributeMapping.cxx b/Rendering/Core/vtkGenericVertexAttributeMapping.cxx
index abd75bda685d7f9d90e346f349a263b7c5c26561..cabec680ba7fda8a7bbd365141a3917ca5e30fb0 100644
--- a/Rendering/Core/vtkGenericVertexAttributeMapping.cxx
+++ b/Rendering/Core/vtkGenericVertexAttributeMapping.cxx
@@ -20,6 +20,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericVertexAttributeMapping::vtkInternal
 {
 public:
@@ -187,3 +188,4 @@ void vtkGenericVertexAttributeMapping::PrintSelf(ostream& os, vtkIndent indent)
        << iter->FieldAssociation << ", " << iter->Component << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkGenericVertexAttributeMapping.h b/Rendering/Core/vtkGenericVertexAttributeMapping.h
index 3a45b924a02fdbf75a0d0ac87949f13e436ca19c..6ced8dc3f03259c59aa361b37e60f26bb331409d 100644
--- a/Rendering/Core/vtkGenericVertexAttributeMapping.h
+++ b/Rendering/Core/vtkGenericVertexAttributeMapping.h
@@ -31,6 +31,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkGenericVertexAttributeMapping : public vtkObject
 {
 public:
@@ -106,4 +107,5 @@ private:
   vtkInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkGlyph3DMapper.cxx b/Rendering/Core/vtkGlyph3DMapper.cxx
index a47973a471a4db604dacbb8df4f28a171bdd0d0b..35d9bf211271e8a790f7a950a96f501e47ea8a46 100644
--- a/Rendering/Core/vtkGlyph3DMapper.cxx
+++ b/Rendering/Core/vtkGlyph3DMapper.cxx
@@ -44,6 +44,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 int getNumberOfChildren(vtkDataObjectTree* tree)
@@ -813,3 +814,4 @@ vtkIdType vtkGlyph3DMapper::GetMaxNumberOfLOD()
 {
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkGlyph3DMapper.h b/Rendering/Core/vtkGlyph3DMapper.h
index f771fa9107f8472ee0b26ad6cfe784bc306ddee4..54d92c025bca4468b374f009cc8ee92f9e79631a 100644
--- a/Rendering/Core/vtkGlyph3DMapper.h
+++ b/Rendering/Core/vtkGlyph3DMapper.h
@@ -33,6 +33,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkWeakPointer.h"         // needed for vtkWeakPointer.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataDisplayAttributes;
 class vtkDataObjectTree;
 
@@ -503,4 +504,5 @@ private:
   bool GetBoundsInternal(vtkDataSet* ds, double ds_bounds[6]);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkGraphMapper.cxx b/Rendering/Core/vtkGraphMapper.cxx
index d033eb95fe4adb13bde503b386ae468801d84b96..c0dfd3c4c8acde4348d89b3d980a8501a5201053 100644
--- a/Rendering/Core/vtkGraphMapper.cxx
+++ b/Rendering/Core/vtkGraphMapper.cxx
@@ -50,6 +50,7 @@
 #include "vtkUndirectedGraph.h"
 #include "vtkVertexGlyphFilter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphMapper);
 
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
@@ -763,3 +764,4 @@ void vtkGraphMapper::ReportReferences(vtkGarbageCollector* collector)
 }
 
 #endif
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkGraphMapper.h b/Rendering/Core/vtkGraphMapper.h
index 3a8078ac6e4b7ffbebecf13272bea55eacf47a81..5553824effc94708b2b22d15d8e5519606ae46d6 100644
--- a/Rendering/Core/vtkGraphMapper.h
+++ b/Rendering/Core/vtkGraphMapper.h
@@ -35,6 +35,7 @@
 
 #include "vtkSmartPointer.h" // Required for smart pointer internal ivars.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 class vtkMapArrayValues;
 class vtkCamera;
@@ -328,4 +329,5 @@ private:
   char* ScalingArrayName;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkGraphToGlyphs.cxx b/Rendering/Core/vtkGraphToGlyphs.cxx
index 9714ba7d7040d7a07c768d6635a1ee1450f70b4a..d2c0e2c05dda85cd3d699c8a03e7c75d766d0bab 100644
--- a/Rendering/Core/vtkGraphToGlyphs.cxx
+++ b/Rendering/Core/vtkGraphToGlyphs.cxx
@@ -36,6 +36,7 @@
 #include "vtkTable.h"
 #include "vtkUndirectedGraph.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphToGlyphs);
 
 vtkGraphToGlyphs::vtkGraphToGlyphs()
@@ -162,3 +163,4 @@ void vtkGraphToGlyphs::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ScreenSize: " << this->ScreenSize << endl;
   os << indent << "GlyphType: " << this->GlyphType << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkGraphToGlyphs.h b/Rendering/Core/vtkGraphToGlyphs.h
index 7b2e0f5889da6d111e936ade6b2806684dc4cfcd..1c3a209c6245af6c40228ec0716e86c4dd1cb6b7 100644
--- a/Rendering/Core/vtkGraphToGlyphs.h
+++ b/Rendering/Core/vtkGraphToGlyphs.h
@@ -37,6 +37,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkSmartPointer.h"        // for SP ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDistanceToCamera;
 class vtkGraphToPoints;
 class vtkGlyph3D;
@@ -144,4 +145,5 @@ private:
   void operator=(const vtkGraphToGlyphs&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkGraphicsFactory.cxx b/Rendering/Core/vtkGraphicsFactory.cxx
index f5ab8ff877abbd8e60b1c2f83a98f302e51d85c0..220e069753ade63285d78cc326fdafb93ca0b210 100644
--- a/Rendering/Core/vtkGraphicsFactory.cxx
+++ b/Rendering/Core/vtkGraphicsFactory.cxx
@@ -20,6 +20,7 @@
 #include <cstdlib>
 #include <mutex>
 
+VTK_ABI_NAMESPACE_BEGIN
 static std::mutex vtkUseMesaClassesCriticalSection;
 static std::mutex vtkOffScreenOnlyModeCriticalSection;
 int vtkGraphicsFactory::UseMesaClasses = 0;
@@ -118,3 +119,4 @@ void vtkGraphicsFactory::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkGraphicsFactory.h b/Rendering/Core/vtkGraphicsFactory.h
index b5e32193a79255bc496888dc5aa638459614cd17..b1be12cbf915929429a1e00fc1e013b109bb6c69 100644
--- a/Rendering/Core/vtkGraphicsFactory.h
+++ b/Rendering/Core/vtkGraphicsFactory.h
@@ -23,6 +23,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkGraphicsFactory : public vtkObject
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkGraphicsFactory&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkHardwarePicker.cxx b/Rendering/Core/vtkHardwarePicker.cxx
index d8e0ef2383530a703ef4d2d4f0b84f2ac1ea0d6f..0864f70ece34dce64adc8cbf276d3383425e6baa 100644
--- a/Rendering/Core/vtkHardwarePicker.cxx
+++ b/Rendering/Core/vtkHardwarePicker.cxx
@@ -44,6 +44,7 @@
 
 #include <limits>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 constexpr double DEFAULT_VALUE = std::numeric_limits<double>::quiet_NaN();
@@ -588,3 +589,4 @@ void vtkHardwarePicker::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "PCoords: (" << this->PCoords[0] << ", " << this->PCoords[1] << ", "
      << this->PCoords[2] << ")" << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkHardwarePicker.h b/Rendering/Core/vtkHardwarePicker.h
index 287a447f6f66ff774816f223109861e4fb40ff4a..d6824ce3d1977c36884a17020afa137f482217ac 100644
--- a/Rendering/Core/vtkHardwarePicker.h
+++ b/Rendering/Core/vtkHardwarePicker.h
@@ -38,6 +38,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkSmartPointer.h"        // For vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractMapper3D;
 class vtkCell;
 class vtkCompositeDataSet;
@@ -259,4 +260,5 @@ private:
   void operator=(const vtkHardwarePicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkHardwareSelector.cxx b/Rendering/Core/vtkHardwareSelector.cxx
index 680f2b09b3a63f211121fffae342d05d90f273c9..030ba9a9a94f3430b748d1bc7515d3a48ccc4f8e 100644
--- a/Rendering/Core/vtkHardwareSelector.cxx
+++ b/Rendering/Core/vtkHardwareSelector.cxx
@@ -34,6 +34,7 @@
 #define ID_OFFSET 1
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 class PixelInformationComparator
@@ -882,3 +883,4 @@ void vtkHardwareSelector::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "UseProcessIdFromData: " << this->UseProcessIdFromData << endl;
   os << indent << "ActorPassOnly: " << this->ActorPassOnly << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkHardwareSelector.h b/Rendering/Core/vtkHardwareSelector.h
index ade7aaa241f71e9b672c426c3578f09801aa0df2..45164ddc55fa225059de616fba57d764d7cd77f7 100644
--- a/Rendering/Core/vtkHardwareSelector.h
+++ b/Rendering/Core/vtkHardwareSelector.h
@@ -114,6 +114,7 @@
 
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkRenderWindow;
 class vtkSelection;
@@ -527,4 +528,5 @@ private:
   vtkInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkHardwareWindow.cxx b/Rendering/Core/vtkHardwareWindow.cxx
index c10b4ade8f080d9c0d8ea50d43c8fbafef91ae39..2c4d7b14233fb669cfd0d88cb88423245cd858bc 100644
--- a/Rendering/Core/vtkHardwareWindow.cxx
+++ b/Rendering/Core/vtkHardwareWindow.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkHardwareWindow);
 
 vtkHardwareWindow::vtkHardwareWindow()
@@ -40,3 +41,4 @@ void vtkHardwareWindow::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Borders: " << this->Borders << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkHardwareWindow.h b/Rendering/Core/vtkHardwareWindow.h
index c07f5b08b4709ee9090edc1af90aebccfe005583..2354fe6b20e8cdc7afc65795ad8e36c301a4b4f3 100644
--- a/Rendering/Core/vtkHardwareWindow.h
+++ b/Rendering/Core/vtkHardwareWindow.h
@@ -32,6 +32,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkHardwareWindow : public vtkWindow
 {
 public:
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkHardwareWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkHierarchicalPolyDataMapper.cxx b/Rendering/Core/vtkHierarchicalPolyDataMapper.cxx
index c12498744f7d7bc49bcdcaf870cde6604c8a589e..7f1cf75db4742ffd8ab1a8bcdf2782dfc0dee5c7 100644
--- a/Rendering/Core/vtkHierarchicalPolyDataMapper.cxx
+++ b/Rendering/Core/vtkHierarchicalPolyDataMapper.cxx
@@ -17,6 +17,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHierarchicalPolyDataMapper);
 
 vtkHierarchicalPolyDataMapper::vtkHierarchicalPolyDataMapper() = default;
@@ -27,3 +28,4 @@ void vtkHierarchicalPolyDataMapper::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkHierarchicalPolyDataMapper.h b/Rendering/Core/vtkHierarchicalPolyDataMapper.h
index c848a59d6bb896f9a40f2e106fb00de8a45d524d..6eb7eb1da662f880c6c46aff9e8de6fb8969ebc1 100644
--- a/Rendering/Core/vtkHierarchicalPolyDataMapper.h
+++ b/Rendering/Core/vtkHierarchicalPolyDataMapper.h
@@ -28,6 +28,7 @@
 #include "vtkCompositePolyDataMapper.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkHierarchicalPolyDataMapper : public vtkCompositePolyDataMapper
 {
 
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkHierarchicalPolyDataMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkImageActor.cxx b/Rendering/Core/vtkImageActor.cxx
index 3404a88d420f0d633f1764453e0b9db39f4ad796..a635c9f64d8dc6e1a1b8426bc3d8e4e748707000 100644
--- a/Rendering/Core/vtkImageActor.cxx
+++ b/Rendering/Core/vtkImageActor.cxx
@@ -25,6 +25,7 @@
 #include "vtkRenderer.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageActor);
 
 //------------------------------------------------------------------------------
@@ -551,3 +552,4 @@ vtkTypeBool vtkImageActor::HasTranslucentPolygonalGeometry()
 
   return this->TranslucentCachedResult;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkImageActor.h b/Rendering/Core/vtkImageActor.h
index b667b6ba906a8cc18f7224c7598db31d60700919..4cfc4f10b1bce6c2ae8ca2736909d9a4295ff025 100644
--- a/Rendering/Core/vtkImageActor.h
+++ b/Rendering/Core/vtkImageActor.h
@@ -34,6 +34,7 @@
 #include "vtkImageSlice.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithm;
 class vtkPropCollection;
 class vtkRenderer;
@@ -190,4 +191,5 @@ private:
   void operator=(const vtkImageActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkImageMapper.cxx b/Rendering/Core/vtkImageMapper.cxx
index a990b4b6450b8b2d7497a49d9002d2cb83462ac9..ca794ba1ef14cff35df2eac87c39d6946d9ff07c 100644
--- a/Rendering/Core/vtkImageMapper.cxx
+++ b/Rendering/Core/vtkImageMapper.cxx
@@ -26,6 +26,7 @@
 
 //------------------------------------------------------------------------------
 // Return nullptr if no override is supplied.
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkImageMapper);
 
 //------------------------------------------------------------------------------
@@ -249,3 +250,4 @@ int vtkImageMapper::FillInputPortInformation(int vtkNotUsed(port), vtkInformatio
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkImageData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkImageMapper.h b/Rendering/Core/vtkImageMapper.h
index 31fa838eb9cc80c3ae0d70894d23f99b03005ac6..ff1b352b6bbe56da333791beff59e51613641b1c 100644
--- a/Rendering/Core/vtkImageMapper.h
+++ b/Rendering/Core/vtkImageMapper.h
@@ -33,6 +33,7 @@
 #include "vtkMapper2D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWindow;
 class vtkViewport;
 class vtkActor2D;
@@ -165,4 +166,5 @@ private:
   void operator=(const vtkImageMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkImageMapper3D.cxx b/Rendering/Core/vtkImageMapper3D.cxx
index d10c8643d0ef93ed5e404fd93eef2d5e7386f0a4..79a37b8e362c67e320ea8adf074d72a03323829f 100644
--- a/Rendering/Core/vtkImageMapper3D.cxx
+++ b/Rendering/Core/vtkImageMapper3D.cxx
@@ -35,6 +35,7 @@
 #include "vtkTemplateAliasMacro.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkImageMapper3D::vtkImageMapper3D()
 {
   // Default color conversion
@@ -1171,3 +1172,4 @@ void vtkImageMapper3D::CheckerboardRGBA(unsigned char* data, int xsize, int ysiz
     gy += fy;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkImageMapper3D.h b/Rendering/Core/vtkImageMapper3D.h
index cfa52694fba06987923a8c218d2db43606ecb29d..b43ab8fff00617abd6055f17b2e28651fbf44ed7 100644
--- a/Rendering/Core/vtkImageMapper3D.h
+++ b/Rendering/Core/vtkImageMapper3D.h
@@ -33,6 +33,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkThreads.h"             // for VTK_MAX_THREADS
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkProp3D;
 class vtkPoints;
@@ -272,4 +273,5 @@ private:
   friend class vtkImageToImageMapper3DFriendship;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkImageProperty.cxx b/Rendering/Core/vtkImageProperty.cxx
index 40c1f6e7da55a9dab3f27c0cc5e455bb37a98ff8..f3d92eb628e5b03e3ca1dc77a576da24f74674ee 100644
--- a/Rendering/Core/vtkImageProperty.cxx
+++ b/Rendering/Core/vtkImageProperty.cxx
@@ -18,6 +18,7 @@
 #include "vtkLookupTable.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageProperty);
 
 vtkCxxSetObjectMacro(vtkImageProperty, LookupTable, vtkScalarsToColors);
@@ -146,3 +147,4 @@ void vtkImageProperty::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "BackingColor: " << this->BackingColor[0] << " " << this->BackingColor[1] << " "
      << this->BackingColor[2] << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkImageProperty.h b/Rendering/Core/vtkImageProperty.h
index 51b07be28ebe511da7d3cab5e53bc90ec1b9aa35..f7c4c8c98073e62b0b968a2c9663da6d82171d2f 100644
--- a/Rendering/Core/vtkImageProperty.h
+++ b/Rendering/Core/vtkImageProperty.h
@@ -31,6 +31,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScalarsToColors;
 
 class VTKRENDERINGCORE_EXPORT vtkImageProperty : public vtkObject
@@ -211,4 +212,5 @@ private:
   void operator=(const vtkImageProperty&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkImageSlice.cxx b/Rendering/Core/vtkImageSlice.cxx
index 63e1daccfaf9ed6bbff9a5c06b2e7b8c07a05826..9e2a228aafc4323167e0ad79a6353e23286ee2a1 100644
--- a/Rendering/Core/vtkImageSlice.cxx
+++ b/Rendering/Core/vtkImageSlice.cxx
@@ -28,6 +28,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageSlice);
 
 //------------------------------------------------------------------------------
@@ -509,3 +510,4 @@ void vtkImageSlice::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "ForceTranslucent: " << (this->ForceTranslucent ? "On\n" : "Off\n");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkImageSlice.h b/Rendering/Core/vtkImageSlice.h
index 358f6ddbb4e0e425db204a1023bb939bcd8a832e..fb02410507cf6969599c7c3ea10c865af39969c7 100644
--- a/Rendering/Core/vtkImageSlice.h
+++ b/Rendering/Core/vtkImageSlice.h
@@ -38,6 +38,7 @@
 #include "vtkProp3D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkPropCollection;
 class vtkImageProperty;
@@ -174,4 +175,5 @@ private:
   void operator=(const vtkImageSlice&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkImageSliceMapper.cxx b/Rendering/Core/vtkImageSliceMapper.cxx
index c862138b3c1ae181079acf4cd802ae665f3b1aea..63d756374a770deb5f320eea9ec09f1146a227f4 100644
--- a/Rendering/Core/vtkImageSliceMapper.cxx
+++ b/Rendering/Core/vtkImageSliceMapper.cxx
@@ -29,6 +29,7 @@
 #include "vtkRenderer.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkImageSliceMapper, Points, vtkPoints);
 
 //------------------------------------------------------------------------------
@@ -511,3 +512,4 @@ void vtkImageSliceMapper::GetDimensionIndices(int orientation, int& xdim, int& y
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkImageSliceMapper.h b/Rendering/Core/vtkImageSliceMapper.h
index d929c098905f527d9565fa8ca7479440c524d021..d85e31db569f620a759f5494c53002cd692eca30 100644
--- a/Rendering/Core/vtkImageSliceMapper.h
+++ b/Rendering/Core/vtkImageSliceMapper.h
@@ -33,6 +33,7 @@
 #include "vtkImageMapper3D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 class vtkPoints;
 
@@ -213,4 +214,5 @@ private:
   friend class vtkImageResliceMapper;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkInteractorEventRecorder.cxx b/Rendering/Core/vtkInteractorEventRecorder.cxx
index 8cb07e39351a2eac12549576afab73aa2cf7a075..43c6120550add14270760e99a605ebe366379798 100644
--- a/Rendering/Core/vtkInteractorEventRecorder.cxx
+++ b/Rendering/Core/vtkInteractorEventRecorder.cxx
@@ -26,6 +26,7 @@
 #include <vtksys/FStream.hxx>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorEventRecorder);
 
 float vtkInteractorEventRecorder::StreamVersion = 1.2f;
@@ -522,3 +523,4 @@ void vtkInteractorEventRecorder::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Input String: (None)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkInteractorEventRecorder.h b/Rendering/Core/vtkInteractorEventRecorder.h
index 7272faa2379ee6afcdee938e735216a8040d263f..ec846da2c03ef9c14cd5d63ccfed794ea1985d89 100644
--- a/Rendering/Core/vtkInteractorEventRecorder.h
+++ b/Rendering/Core/vtkInteractorEventRecorder.h
@@ -45,6 +45,7 @@
 #include "vtkInteractorObserver.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStringArray;
 
 // The superclass that all commands should be subclasses of
@@ -186,4 +187,5 @@ private:
   void operator=(const vtkInteractorEventRecorder&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkInteractorEventRecorder_h */
diff --git a/Rendering/Core/vtkInteractorObserver.cxx b/Rendering/Core/vtkInteractorObserver.cxx
index a0d58b960eb61c3bc6f03b985b1881471c9a5f49..71e0969e48391048e97a0872a556dc0ab4bf7ea5 100644
--- a/Rendering/Core/vtkInteractorObserver.cxx
+++ b/Rendering/Core/vtkInteractorObserver.cxx
@@ -23,6 +23,7 @@
 #include "vtkRenderWindowInteractor.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkInteractorObserver, DefaultRenderer, vtkRenderer);
 
 //------------------------------------------------------------------------------
@@ -381,3 +382,4 @@ void vtkInteractorObserver::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Key Press Activation: " << (this->KeyPressActivation ? "On" : "Off") << "\n";
   os << indent << "Key Press Activation Value: " << this->KeyPressActivationValue << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkInteractorObserver.h b/Rendering/Core/vtkInteractorObserver.h
index e4795f80392f1effc2fd90df2229201dba4aaf8e..c8403be673327f628ba7e03fdc7ce1d3b54942e5 100644
--- a/Rendering/Core/vtkInteractorObserver.h
+++ b/Rendering/Core/vtkInteractorObserver.h
@@ -48,6 +48,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPropPicker;
 class vtkAssemblyPath;
 class vtkRenderWindowInteractor;
@@ -288,4 +289,5 @@ private:
   void operator=(const vtkInteractorObserver&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkInteractorStyle.cxx b/Rendering/Core/vtkInteractorStyle.cxx
index a04bd80cdc83c2d8693d1d90483fee1286301d7f..cf06d2351954a1013b893651f616778c1ec85525 100644
--- a/Rendering/Core/vtkInteractorStyle.cxx
+++ b/Rendering/Core/vtkInteractorStyle.cxx
@@ -33,6 +33,7 @@
 #include "vtkRenderer.h"
 #include "vtkTDxInteractorStyleCamera.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyle);
 vtkCxxSetObjectMacro(vtkInteractorStyle, TDxStyle, vtkTDxInteractorStyle);
 
@@ -1505,3 +1506,4 @@ void vtkInteractorStyle::ProcessEvents(
       break;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkInteractorStyle.h b/Rendering/Core/vtkInteractorStyle.h
index 3d232b7ef05f13f3750f665a3bf43fa2e9890870..b4975027c94443f2a395c286d67486c3386a9f00 100644
--- a/Rendering/Core/vtkInteractorStyle.h
+++ b/Rendering/Core/vtkInteractorStyle.h
@@ -125,6 +125,7 @@
 #define VTKIS_ANIM_OFF 0
 #define VTKIS_ANIM_ON 1
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 class vtkActor;
 class vtkCallbackCommand;
@@ -471,4 +472,5 @@ private:
   void operator=(const vtkInteractorStyle&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkInteractorStyle3D.cxx b/Rendering/Core/vtkInteractorStyle3D.cxx
index 4c9c9201aad35ce6aa0b07a55b8893551c6b5cd1..c6e0953fcb9827002142dcc87980590428a70a89 100644
--- a/Rendering/Core/vtkInteractorStyle3D.cxx
+++ b/Rendering/Core/vtkInteractorStyle3D.cxx
@@ -32,6 +32,7 @@
 #include "vtkTimerLog.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyle3D);
 
 //------------------------------------------------------------------------------
@@ -303,3 +304,4 @@ void vtkInteractorStyle3D::SetScale(vtkCamera* camera, double newScale)
     this->CurrentRenderer->ResetCameraClippingRange();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkInteractorStyle3D.h b/Rendering/Core/vtkInteractorStyle3D.h
index 9dd346ab1f68d26ad03c752e1f2fd527e252340e..ca9e6709a4598cd37f495ec5c260aee71a1fa593 100644
--- a/Rendering/Core/vtkInteractorStyle3D.h
+++ b/Rendering/Core/vtkInteractorStyle3D.h
@@ -55,6 +55,7 @@
 #include "vtkNew.h"                 // ivars
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPropPicker;
 class vtkCamera;
 class vtkProp3D;
@@ -132,4 +133,5 @@ private:
   void operator=(const vtkInteractorStyle3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkInteractorStyleSwitchBase.cxx b/Rendering/Core/vtkInteractorStyleSwitchBase.cxx
index 28f7df0f45b7d26890fcc46b1bfa8069199aa118..44b4f499e4d0fd92c34695718738671d6a8ddebe 100644
--- a/Rendering/Core/vtkInteractorStyleSwitchBase.cxx
+++ b/Rendering/Core/vtkInteractorStyleSwitchBase.cxx
@@ -20,6 +20,7 @@
 // This is largely here to confirm the approach works, and will be replaced
 // with standard factory override logic in the modularized source tree.
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkInteractorStyleSwitchBase);
 
 //------------------------------------------------------------------------------
@@ -45,3 +46,4 @@ void vtkInteractorStyleSwitchBase::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkInteractorStyleSwitchBase.h b/Rendering/Core/vtkInteractorStyleSwitchBase.h
index 6a198538afb2eea35c713e09f3fd68e357816cdf..8c7ef92ef412ad0f0b5f6405aaac0289f984b832 100644
--- a/Rendering/Core/vtkInteractorStyleSwitchBase.h
+++ b/Rendering/Core/vtkInteractorStyleSwitchBase.h
@@ -31,6 +31,7 @@
 #include "vtkInteractorStyle.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkInteractorStyleSwitchBase : public vtkInteractorStyle
 {
 public:
@@ -49,4 +50,5 @@ private:
   void operator=(const vtkInteractorStyleSwitchBase&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkLODProp3D.cxx b/Rendering/Core/vtkLODProp3D.cxx
index d4ab9d7edb88ef1a2028ee211cef44f35679244d..022f283e6ee817c73857c120a46bb2baf00d10d1 100644
--- a/Rendering/Core/vtkLODProp3D.cxx
+++ b/Rendering/Core/vtkLODProp3D.cxx
@@ -28,6 +28,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLODProp3D);
 
 #define VTK_INDEX_NOT_IN_USE (-1)
@@ -1266,3 +1267,4 @@ void vtkLODProp3D::ShallowCopy(vtkProp* prop)
   // Now do superclass
   this->vtkProp3D::ShallowCopy(prop);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkLODProp3D.h b/Rendering/Core/vtkLODProp3D.h
index 3cd06cc5784d59ec1ccc91c9f24feb2c278bf3d9..fff734156f9566bb2994920adeb419c3e71ccc99 100644
--- a/Rendering/Core/vtkLODProp3D.h
+++ b/Rendering/Core/vtkLODProp3D.h
@@ -33,6 +33,7 @@
 #include "vtkProp3D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkMapper;
 class vtkAbstractVolumeMapper;
@@ -342,4 +343,5 @@ private:
   void operator=(const vtkLODProp3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkLabeledContourMapper.cxx b/Rendering/Core/vtkLabeledContourMapper.cxx
index af6f538e51e8edb04ae1007019d73210c84b426e..199b6cdff9b8edfae2ff70ec4ea48465f8dcad3a 100644
--- a/Rendering/Core/vtkLabeledContourMapper.cxx
+++ b/Rendering/Core/vtkLabeledContourMapper.cxx
@@ -49,6 +49,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 struct LabelMetric
 {
   bool Valid;
@@ -1544,3 +1545,4 @@ bool vtkLabeledContourMapper::Private::TestOverlap(const LabelInfo& a, const Lab
     testAxis(a, b.TRd, b.TLd) || testAxis(b, a.TLd, a.BLd) || testAxis(b, a.BLd, a.BRd) ||
     testAxis(b, a.BRd, a.TRd) || testAxis(b, a.TRd, a.TLd));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkLabeledContourMapper.h b/Rendering/Core/vtkLabeledContourMapper.h
index 3d76dea2ac3e9a6e57d47c2b54ad3ac06d3df6f1..aca4301e8b3ba4d335de21ee4f7df5eb1d194492 100644
--- a/Rendering/Core/vtkLabeledContourMapper.h
+++ b/Rendering/Core/vtkLabeledContourMapper.h
@@ -35,6 +35,7 @@
 #include "vtkNew.h"          // For vtkNew
 #include "vtkSmartPointer.h" // For vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkTextActor3D;
 class vtkTextProperty;
@@ -191,4 +192,5 @@ private:
   Private* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkLight.cxx b/Rendering/Core/vtkLight.cxx
index e7e42d552eabdd2d563fa152f4b79d3cfa7f25b7..504baf20c55bab7314d985f3c4276c32bb49e501 100644
--- a/Rendering/Core/vtkLight.cxx
+++ b/Rendering/Core/vtkLight.cxx
@@ -19,6 +19,7 @@
 #include "vtkMatrix4x4.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkLight, Information, vtkInformation);
 vtkCxxSetObjectMacro(vtkLight, TransformMatrix, vtkMatrix4x4);
 
@@ -378,3 +379,4 @@ void vtkLight::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << indent << "ShadowAttenuation: " << this->ShadowAttenuation << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkLight.h b/Rendering/Core/vtkLight.h
index 587ac49691583557112f243f3162f514fd77214a..83206c4cf17fb4c51cd39b63d6cdec2ff3273dea 100644
--- a/Rendering/Core/vtkLight.h
+++ b/Rendering/Core/vtkLight.h
@@ -45,6 +45,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 
 /* need for virtual function */
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformation;
 class vtkRenderer;
 class vtkMatrix4x4;
@@ -323,4 +324,5 @@ private:
   void operator=(const vtkLight&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkLightActor.cxx b/Rendering/Core/vtkLightActor.cxx
index 83734511f2f09bdb1df2ee47fe16f89476628ca3..dc8e46ffed9d04599437101fd4c4e20013c30824 100644
--- a/Rendering/Core/vtkLightActor.cxx
+++ b/Rendering/Core/vtkLightActor.cxx
@@ -25,6 +25,7 @@
 #include "vtkPolyDataMapper.h"
 #include "vtkProperty.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLightActor);
 vtkCxxSetObjectMacro(vtkLightActor, Light, vtkLight);
 
@@ -325,3 +326,4 @@ void vtkLightActor::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ClippingRange: " << this->ClippingRange[0] << "," << this->ClippingRange[1]
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkLightActor.h b/Rendering/Core/vtkLightActor.h
index 0fc1bb03990ce183715d556786cfd3150bdef83d..58e417969abf0ad06bd0a65ca188288864b743bc 100644
--- a/Rendering/Core/vtkLightActor.h
+++ b/Rendering/Core/vtkLightActor.h
@@ -40,6 +40,7 @@
 #include "vtkProp3D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLight;
 class vtkConeSource;
 class vtkPolyDataMapper;
@@ -134,4 +135,5 @@ private:
   void operator=(const vtkLightActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkLightCollection.cxx b/Rendering/Core/vtkLightCollection.cxx
index 1a247d8d01d59b94ff55944bea3e0fe8c37cab7a..1b1c9a19684a8fadd3905ffacd40b0133d252fbc 100644
--- a/Rendering/Core/vtkLightCollection.cxx
+++ b/Rendering/Core/vtkLightCollection.cxx
@@ -19,6 +19,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLightCollection);
 
 // Add a light to the bottom of the list.
@@ -44,3 +45,4 @@ void vtkLightCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkLightCollection.h b/Rendering/Core/vtkLightCollection.h
index 2334cf758fbe72e374e41d2c198a4a590da7e9e6..13f2e033595b68004c919279cde5b65bb9817dea 100644
--- a/Rendering/Core/vtkLightCollection.h
+++ b/Rendering/Core/vtkLightCollection.h
@@ -30,6 +30,7 @@
 #include "vtkCollection.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLight;
 
 class VTKRENDERINGCORE_EXPORT vtkLightCollection : public vtkCollection
@@ -69,4 +70,5 @@ private:
   void operator=(const vtkLightCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkLightKit.cxx b/Rendering/Core/vtkLightKit.cxx
index 1838b93d5f240fb72e02acf94965253c7627f1eb..249eeb6a336ac9f019298796c61f60c457b07a8b 100644
--- a/Rendering/Core/vtkLightKit.cxx
+++ b/Rendering/Core/vtkLightKit.cxx
@@ -19,6 +19,7 @@
 #include "vtkPiecewiseFunction.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLightKit);
 
 static const char* vtkLightKitTypeStrings[] = { "KeyLight", "FillLight", "BackLight", "HeadLight",
@@ -462,3 +463,4 @@ vtkLightKit::LightKitSubType vtkLightKit::GetSubType(vtkLightKit::LightKitType t
 
   return subtype;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkLightKit.h b/Rendering/Core/vtkLightKit.h
index d5fb5de7a736e3e158240b3788feac54d2ef82eb..cc04720f1f75075918373d0ce0bc7d28f544158b 100644
--- a/Rendering/Core/vtkLightKit.h
+++ b/Rendering/Core/vtkLightKit.h
@@ -95,6 +95,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLight;
 class vtkPiecewiseFunction;
 class vtkRenderer;
@@ -387,4 +388,5 @@ private:
   void operator=(const vtkLightKit&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkLogLookupTable.cxx b/Rendering/Core/vtkLogLookupTable.cxx
index db72f89611d4b2ed7717bbbc781edc1c6fa90e09..66176e2fa35d3e2173d36813fe50a9b1ca3a8702 100644
--- a/Rendering/Core/vtkLogLookupTable.cxx
+++ b/Rendering/Core/vtkLogLookupTable.cxx
@@ -17,6 +17,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLogLookupTable);
 
 // Construct with (minimum,maximum) range 1 to 10 (based on
@@ -34,3 +35,4 @@ void vtkLogLookupTable::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkLogLookupTable.h b/Rendering/Core/vtkLogLookupTable.h
index 2323e5015f63e8c3e9542da79ea5bd3be4960e83..64ddf059eea5ae73aef549a064cb7ef69edcc4e5 100644
--- a/Rendering/Core/vtkLogLookupTable.h
+++ b/Rendering/Core/vtkLogLookupTable.h
@@ -29,6 +29,7 @@
 #include "vtkLookupTable.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkLogLookupTable : public vtkLookupTable
 {
 public:
@@ -46,4 +47,5 @@ private:
   void operator=(const vtkLogLookupTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkLookupTableWithEnabling.cxx b/Rendering/Core/vtkLookupTableWithEnabling.cxx
index 99872ab1c7a2ef058373dc5a967f7747c47963a4..eb9ce0c5f612ba2b1b9a39794fd2d2e9233645dc 100644
--- a/Rendering/Core/vtkLookupTableWithEnabling.cxx
+++ b/Rendering/Core/vtkLookupTableWithEnabling.cxx
@@ -19,6 +19,7 @@
 #include "vtkVariant.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLookupTableWithEnabling);
 
 vtkCxxSetObjectMacro(vtkLookupTableWithEnabling, EnabledArray, vtkDataArray);
@@ -583,3 +584,4 @@ void vtkLookupTableWithEnabling::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkLookupTableWithEnabling.h b/Rendering/Core/vtkLookupTableWithEnabling.h
index aba062cb1695419df78d391a72f06bcd3d1e99f7..d66bbe20a2b063b8be2f882af98fb274d36693c6 100644
--- a/Rendering/Core/vtkLookupTableWithEnabling.h
+++ b/Rendering/Core/vtkLookupTableWithEnabling.h
@@ -36,6 +36,7 @@
 #include "vtkLookupTable.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 
 class VTKRENDERINGCORE_EXPORT vtkLookupTableWithEnabling : public vtkLookupTable
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkLookupTableWithEnabling&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkMapArrayValues.cxx b/Rendering/Core/vtkMapArrayValues.cxx
index 476a2e55358efa20e68487a2442937ea5a5f7c4a..b394bef40d2b2644622fd166f0be36f2098bf79c 100644
--- a/Rendering/Core/vtkMapArrayValues.cxx
+++ b/Rendering/Core/vtkMapArrayValues.cxx
@@ -34,6 +34,7 @@
 #include <map>
 #include <utility>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMapArrayValues);
 
 typedef std::map<vtkVariant, vtkVariant, vtkVariantLessThan> MapBase;
@@ -314,3 +315,4 @@ void vtkMapArrayValues::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "PassArray: " << this->PassArray << endl;
   os << indent << "FillValue: " << this->FillValue << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkMapArrayValues.h b/Rendering/Core/vtkMapArrayValues.h
index 2350d5fbc3c0702974ecd323b2faa26eb1cdb66f..e933c3645a364dd76703c4364ebe811a9bfb49cf 100644
--- a/Rendering/Core/vtkMapArrayValues.h
+++ b/Rendering/Core/vtkMapArrayValues.h
@@ -42,6 +42,7 @@
 #include "vtkPassInputTypeAlgorithm.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMapType;
 class vtkVariant;
 
@@ -165,4 +166,5 @@ private:
   void operator=(const vtkMapArrayValues&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkMapper.cxx b/Rendering/Core/vtkMapper.cxx
index eba0c00908b8902d7ec5364f46e3cb42c4758052..b2f782c582c10e7937b68682f64ce18529156392 100644
--- a/Rendering/Core/vtkMapper.cxx
+++ b/Rendering/Core/vtkMapper.cxx
@@ -36,6 +36,7 @@
 #include "vtkVariantArray.h"
 
 // Initialize static member that controls global coincidence resolution
+VTK_ABI_NAMESPACE_BEGIN
 static int vtkMapperGlobalResolveCoincidentTopology = VTK_RESOLVE_OFF;
 static double vtkMapperGlobalResolveCoincidentTopologyZShift = 0.01;
 static int vtkMapperGlobalResolveCoincidentTopologyPolygonOffsetFaces = 1;
@@ -1059,3 +1060,4 @@ vtkImageData* vtkMapper::GetColorTextureMap()
 {
   return this->ColorTextureMap;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkMapper.h b/Rendering/Core/vtkMapper.h
index b27a9ad72fb349f58fd6a789115393a683ecbebd..4b83cbd8b5257bc39c7b3b4bdd50d7fc979c9f93 100644
--- a/Rendering/Core/vtkMapper.h
+++ b/Rendering/Core/vtkMapper.h
@@ -65,6 +65,7 @@
 #define VTK_MATERIALMODE_DIFFUSE 2
 #define VTK_MATERIALMODE_AMBIENT_AND_DIFFUSE 3
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkDataSet;
 class vtkDataObject;
@@ -564,4 +565,5 @@ private:
   void operator=(const vtkMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkMapper2D.cxx b/Rendering/Core/vtkMapper2D.cxx
index 04947507ebf2d43d2e42df518f33d6223100f20a..31320f5e8aaa6b3078a1a980511e5bda39746f39 100644
--- a/Rendering/Core/vtkMapper2D.cxx
+++ b/Rendering/Core/vtkMapper2D.cxx
@@ -17,7 +17,9 @@
 #include "vtkObjectFactory.h"
 #include "vtkViewport.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkMapper2D::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkMapper2D.h b/Rendering/Core/vtkMapper2D.h
index a24a5be5b76457be89ec89776d186bc8b80351a5..5a55cd742c104309ae158ff35d92394595031109 100644
--- a/Rendering/Core/vtkMapper2D.h
+++ b/Rendering/Core/vtkMapper2D.h
@@ -29,6 +29,7 @@
 #include "vtkAbstractMapper.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkViewport;
 class vtkActor2D;
 
@@ -52,4 +53,5 @@ private:
   void operator=(const vtkMapper2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkMapperCollection.cxx b/Rendering/Core/vtkMapperCollection.cxx
index 62de297bea95bcbd735f0555811ecad3dbd878e6..109bd52f8afddfae639dbd62e7f5b5b1e25725b5 100644
--- a/Rendering/Core/vtkMapperCollection.cxx
+++ b/Rendering/Core/vtkMapperCollection.cxx
@@ -15,9 +15,11 @@
 #include "vtkMapperCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMapperCollection);
 
 void vtkMapperCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkMapperCollection.h b/Rendering/Core/vtkMapperCollection.h
index d79bc0f952c8d552100c6e1dedf9c6d4a8ebcf19..8bcfe39939d79f8a5e75772c63e330a19d789979 100644
--- a/Rendering/Core/vtkMapperCollection.h
+++ b/Rendering/Core/vtkMapperCollection.h
@@ -32,6 +32,7 @@
                                     // inline functions
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkMapperCollection : public vtkCollection
 {
 public:
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkMapperCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkNoise200x200.h b/Rendering/Core/vtkNoise200x200.h
index de764f418d8300ee18cac5820c6bc5a2952fa24e..c22db8ba098a84bab8d3fd7965b33fdc5ed25367 100644
--- a/Rendering/Core/vtkNoise200x200.h
+++ b/Rendering/Core/vtkNoise200x200.h
@@ -19,6 +19,7 @@
  * Resource generated for file:
  *    noise.vtk (base64) (binary file)
  */
+VTK_ABI_NAMESPACE_BEGIN
 static const unsigned long file_noise200x200_vtk_length = 106884;
 static const unsigned long file_noise200x200_vtk_decoded_length = 80162;
 
@@ -1563,5 +1564,6 @@ static const unsigned char* file_noise200x200_vtk_sections[4] = { file_noise200x
 
 static const unsigned int file_noise200x200_vtk_nb_sections = 4;
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkNoise200x200.h
diff --git a/Rendering/Core/vtkObserverMediator.cxx b/Rendering/Core/vtkObserverMediator.cxx
index 82bb4ae5e8e82324424d5165d8839d340db9ce58..cd6a3f630423a85f6edd283d84f8363b11dfd09d 100644
--- a/Rendering/Core/vtkObserverMediator.cxx
+++ b/Rendering/Core/vtkObserverMediator.cxx
@@ -20,6 +20,7 @@
 #include "vtkRenderWindowInteractor.h"
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkObserverMediator);
 
 // PIMPL the map representing the observer (key) to cursor request
@@ -167,3 +168,4 @@ void vtkObserverMediator::PrintSelf(ostream& os, vtkIndent indent)
     os << "(None)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkObserverMediator.h b/Rendering/Core/vtkObserverMediator.h
index f2666672144d2f2ea6f3e37586d10c0ee87843b8..5334096001bc8030c4b8d58d10613f82b5bd6bf0 100644
--- a/Rendering/Core/vtkObserverMediator.h
+++ b/Rendering/Core/vtkObserverMediator.h
@@ -34,6 +34,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindowInteractor;
 class vtkInteractorObserver;
 class vtkObserverMap;
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkObserverMediator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkPicker.cxx b/Rendering/Core/vtkPicker.cxx
index 37d7e878597a8b2a6584d069d9ea914727cfcfb1..cf22db867f89febaa2d32a0db835d5a61c7798b8 100644
--- a/Rendering/Core/vtkPicker.cxx
+++ b/Rendering/Core/vtkPicker.cxx
@@ -40,6 +40,7 @@
 #include "vtkVertex.h"
 #include "vtkVolume.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPicker);
 
 //------------------------------------------------------------------------------
@@ -891,3 +892,4 @@ void vtkPicker::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "MapperPosition: (" << this->MapperPosition[0] << "," << this->MapperPosition[1]
      << "," << this->MapperPosition[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkPicker.h b/Rendering/Core/vtkPicker.h
index e118234441dd29be16837043d0aa557effa70183..624e4a530552a24fdab681fe58508d1f21b79e0f 100644
--- a/Rendering/Core/vtkPicker.h
+++ b/Rendering/Core/vtkPicker.h
@@ -44,6 +44,7 @@
 #include "vtkAbstractPropPicker.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractMapper3D;
 class vtkCompositeDataSet;
 class vtkDataSet;
@@ -204,4 +205,5 @@ private:
   void operator=(const vtkPicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkPickingManager.cxx b/Rendering/Core/vtkPickingManager.cxx
index 85cbb441d8b0ad880a599a449927e7637f09c280..65cf9f332fa0a6e231727166a78815817ccc2a03 100644
--- a/Rendering/Core/vtkPickingManager.cxx
+++ b/Rendering/Core/vtkPickingManager.cxx
@@ -56,6 +56,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPickingManager);
 
 //------------------------------------------------------------------------------
@@ -519,3 +520,4 @@ void vtkPickingManager::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << indent << "NumberOfObjectsLinked: " << it->second.size() << "\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkPickingManager.h b/Rendering/Core/vtkPickingManager.h
index 1c0c806a68e1980ffb869ee2180a80db77a0d066..b8e220879ae37b3d59bc1331d0065ec34b7bbc5d 100644
--- a/Rendering/Core/vtkPickingManager.h
+++ b/Rendering/Core/vtkPickingManager.h
@@ -73,6 +73,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractPicker;
 class vtkAbstractPropPicker;
 class vtkAssemblyPath;
@@ -203,4 +204,5 @@ private:
   vtkInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkPointGaussianMapper.cxx b/Rendering/Core/vtkPointGaussianMapper.cxx
index cbda9ae4b94db90ecdcb07cfe5b370d5942f18c5..d7711a96af79f8abd3fe73710d36e17c26d8374e 100644
--- a/Rendering/Core/vtkPointGaussianMapper.cxx
+++ b/Rendering/Core/vtkPointGaussianMapper.cxx
@@ -17,6 +17,7 @@
 #include "vtkPiecewiseFunction.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkPointGaussianMapper);
 
 vtkCxxSetObjectMacro(vtkPointGaussianMapper, ScaleFunction, vtkPiecewiseFunction);
@@ -69,3 +70,4 @@ void vtkPointGaussianMapper::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ScaleTableSize: " << this->ScaleTableSize << "\n";
   os << indent << "TriangleScale: " << this->TriangleScale << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkPointGaussianMapper.h b/Rendering/Core/vtkPointGaussianMapper.h
index 56c3af5ca9ddf426cdf370e9db73f357966f326a..fcae4307daf7548ef26bd7e98cc9f6ad8e18a5e8 100644
--- a/Rendering/Core/vtkPointGaussianMapper.h
+++ b/Rendering/Core/vtkPointGaussianMapper.h
@@ -29,6 +29,7 @@
 #include "vtkPolyDataMapper.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPiecewiseFunction;
 
 class VTKRENDERINGCORE_EXPORT vtkPointGaussianMapper : public vtkPolyDataMapper
@@ -195,4 +196,5 @@ private:
   void operator=(const vtkPointGaussianMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkPointPicker.cxx b/Rendering/Core/vtkPointPicker.cxx
index dda7ab2574dc020ff37095ae9ee4c5fb67f8f8d1..14660b12866515168a73676fdd6815302b4a53eb 100644
--- a/Rendering/Core/vtkPointPicker.cxx
+++ b/Rendering/Core/vtkPointPicker.cxx
@@ -30,6 +30,7 @@
 #include "vtkSMPThreadLocal.h"
 #include "vtkSMPTools.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointPicker);
 
 //------------------------------------------------------------------------------
@@ -455,3 +456,4 @@ void vtkPointPicker::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Point Id: " << this->PointId << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkPointPicker.h b/Rendering/Core/vtkPointPicker.h
index cd1c008ad68d12a98cfdff7126c5e243b0a71e1a..9d3ec1b96f645566b20bf0b3773e3e31957613ba 100644
--- a/Rendering/Core/vtkPointPicker.h
+++ b/Rendering/Core/vtkPointPicker.h
@@ -36,6 +36,7 @@
 #include "vtkPicker.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKRENDERINGCORE_EXPORT vtkPointPicker : public vtkPicker
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkPointPicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkPolyDataMapper.cxx b/Rendering/Core/vtkPolyDataMapper.cxx
index 8f2be312e84bddcd0d61716cf0daee4f57f441bc..6c779a2cab4ebea39d28100bc86751a815ea4d12 100644
--- a/Rendering/Core/vtkPolyDataMapper.cxx
+++ b/Rendering/Core/vtkPolyDataMapper.cxx
@@ -23,6 +23,7 @@
 #include "vtkRenderWindow.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkPolyDataMapper);
 
 //------------------------------------------------------------------------------
@@ -254,3 +255,4 @@ vtkTypeBool vtkPolyDataMapper::Update(vtkInformation* requests)
   }
   return this->Superclass::Update(requests);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkPolyDataMapper.h b/Rendering/Core/vtkPolyDataMapper.h
index e1f9b14a7e97725943a6586ea19a1aa12e905e91..d90a7e8f5fbb1e4be974f3769ed128ca49aa24a4 100644
--- a/Rendering/Core/vtkPolyDataMapper.h
+++ b/Rendering/Core/vtkPolyDataMapper.h
@@ -29,6 +29,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 //#include "vtkTexture.h" // used to include texture unit enum.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkRenderer;
 class vtkRenderWindow;
@@ -178,4 +179,5 @@ private:
   void operator=(const vtkPolyDataMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkPolyDataMapper2D.cxx b/Rendering/Core/vtkPolyDataMapper2D.cxx
index aa55e28d626eb836aa956a8bda6d64d179b459c4..9af6e90392387f3002278c9414d75f488f027188 100644
--- a/Rendering/Core/vtkPolyDataMapper2D.cxx
+++ b/Rendering/Core/vtkPolyDataMapper2D.cxx
@@ -27,6 +27,7 @@
 
 //------------------------------------------------------------------------------
 // Return nullptr if no override is supplied.
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkPolyDataMapper2D);
 //------------------------------------------------------------------------------
 
@@ -376,3 +377,4 @@ int vtkPolyDataMapper2D::FillInputPortInformation(int vtkNotUsed(port), vtkInfor
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkPolyData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkPolyDataMapper2D.h b/Rendering/Core/vtkPolyDataMapper2D.h
index 78ef2ec4f0b0fec9558240a630e843ef6b20f3a0..c84ddd47c6cd6ded182b774476c3fd34c7ef3073 100644
--- a/Rendering/Core/vtkPolyDataMapper2D.h
+++ b/Rendering/Core/vtkPolyDataMapper2D.h
@@ -36,6 +36,7 @@
 #include "vtkMapper2D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCoordinate;
 class vtkPolyData;
 class vtkScalarsToColors;
@@ -244,4 +245,5 @@ private:
   void operator=(const vtkPolyDataMapper2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkProp.cxx b/Rendering/Core/vtkProp.cxx
index 57a9cd55f395c5cefbf56a0e17928fc723f860e3..08622c8be9679648b546fa9e295ea28163216e8b 100644
--- a/Rendering/Core/vtkProp.cxx
+++ b/Rendering/Core/vtkProp.cxx
@@ -24,6 +24,7 @@
 #include "vtkShaderProperty.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkProp, PropertyKeys, vtkInformation);
 
 vtkInformationKeyMacro(vtkProp, GeneralTextureUnit, Integer);
@@ -382,3 +383,4 @@ vtkShaderProperty* vtkProp::GetShaderProperty()
   }
   return this->ShaderProperty;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkProp.h b/Rendering/Core/vtkProp.h
index bd6ea9be2f2e7427f2643ec544948ad9ce2ee9ea..c5bb30829c15323461fd9656c6deff30d5608ac9 100644
--- a/Rendering/Core/vtkProp.h
+++ b/Rendering/Core/vtkProp.h
@@ -32,6 +32,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include <vector>                   // for method args
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAssemblyPath;
 class vtkAssemblyPaths;
 class vtkHardwareSelector;
@@ -481,4 +482,5 @@ private:
   void operator=(const vtkProp&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkProp3D.cxx b/Rendering/Core/vtkProp3D.cxx
index f1b00232919332aa707b3210bd49e498d6ff9dbc..8134d88c652e53093f6e5472a036091ea1e2b9a5 100644
--- a/Rendering/Core/vtkProp3D.cxx
+++ b/Rendering/Core/vtkProp3D.cxx
@@ -29,6 +29,7 @@
 // Construct with the following defaults: origin(0,0,0)
 // position=(0,0,0) and orientation=(0,0,0). No user defined
 // matrix and no texture map.
+VTK_ABI_NAMESPACE_BEGIN
 vtkProp3D::vtkProp3D()
 {
   this->Origin[0] = 0.0;
@@ -798,3 +799,4 @@ void vtkProp3D::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkProp3D.h b/Rendering/Core/vtkProp3D.h
index 737214d7d2332253dc9ed5b8ab766587841de709..a4f07b8f921ae32e26fe91b71dc38fca1d9f2277 100644
--- a/Rendering/Core/vtkProp3D.h
+++ b/Rendering/Core/vtkProp3D.h
@@ -38,6 +38,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkWeakPointer.h"         // For vtkWeakPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLinearTransform;
 class vtkMatrix4x4;
 class vtkRenderer;
@@ -416,4 +417,5 @@ private:
   void operator=(const vtkProp3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkProp3DCollection.cxx b/Rendering/Core/vtkProp3DCollection.cxx
index 34f3d51953af267c984dc677b80ed564d43f7548..a261d9cedeebfb100e027e8a76a581dec9ec0524 100644
--- a/Rendering/Core/vtkProp3DCollection.cxx
+++ b/Rendering/Core/vtkProp3DCollection.cxx
@@ -15,6 +15,7 @@
 #include "vtkProp3DCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProp3DCollection);
 
 //------------------------------------------------------------------------------
@@ -22,3 +23,4 @@ void vtkProp3DCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkProp3DCollection.h b/Rendering/Core/vtkProp3DCollection.h
index 86a6c2bf9034280d68841772de3f962f8496fe98..60485e5df66d0a977a96c04e75ab7aefc7e47d24 100644
--- a/Rendering/Core/vtkProp3DCollection.h
+++ b/Rendering/Core/vtkProp3DCollection.h
@@ -31,6 +31,7 @@
 #include "vtkPropCollection.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkProp3DCollection : public vtkPropCollection
 {
 public:
@@ -98,4 +99,5 @@ inline vtkProp3D* vtkProp3DCollection::GetLastProp3D()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkProp3DFollower.cxx b/Rendering/Core/vtkProp3DFollower.cxx
index c53f0776d547e0163c3340947a0d3e243f7c8f08..a255d7b121b54176f9b5254f94ae1d3f54bb8fbd 100644
--- a/Rendering/Core/vtkProp3DFollower.cxx
+++ b/Rendering/Core/vtkProp3DFollower.cxx
@@ -26,6 +26,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProp3DFollower);
 
 vtkCxxSetObjectMacro(vtkProp3DFollower, Camera, vtkCamera);
@@ -320,3 +321,4 @@ void vtkProp3DFollower::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Camera: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkProp3DFollower.h b/Rendering/Core/vtkProp3DFollower.h
index fa8918ee0d4e7b5cf20dc1a4b9042fb826cd9bff..c09c56cd01b2a4f34c9ac9de9334dbc00f16f757 100644
--- a/Rendering/Core/vtkProp3DFollower.h
+++ b/Rendering/Core/vtkProp3DFollower.h
@@ -37,6 +37,7 @@
 #include "vtkProp3D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 class vtkMapper;
 
@@ -134,4 +135,5 @@ private:
   void operator=(const vtkProp3DFollower&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkPropAssembly.cxx b/Rendering/Core/vtkPropAssembly.cxx
index 3efd80f825562b5c8b892c80a09b1c835227d0d4..afdce8a892163774fbab9ececa2a55a5d222cd53 100644
--- a/Rendering/Core/vtkPropAssembly.cxx
+++ b/Rendering/Core/vtkPropAssembly.cxx
@@ -23,6 +23,7 @@
 #include "vtkPropCollection.h"
 #include "vtkViewport.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPropAssembly);
 
 // Construct object with no children.
@@ -447,3 +448,4 @@ void vtkPropAssembly::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "There are: " << this->Parts->GetNumberOfItems() << " parts in this assembly\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkPropAssembly.h b/Rendering/Core/vtkPropAssembly.h
index aaf230f30c7fb61fc7912a609b210da8b4be2828..0532475661300a1d39626642a62e9b258ee4806c 100644
--- a/Rendering/Core/vtkPropAssembly.h
+++ b/Rendering/Core/vtkPropAssembly.h
@@ -47,6 +47,7 @@
 #include "vtkProp.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkPropAssembly : public vtkProp
 {
 public:
@@ -152,4 +153,5 @@ private:
   void operator=(const vtkPropAssembly&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkPropCollection.cxx b/Rendering/Core/vtkPropCollection.cxx
index 8309b3682b04d13d5ed0c6278524ea1ee8608226..98dc19506ec6055e9455865eadabbf975f5ae34c 100644
--- a/Rendering/Core/vtkPropCollection.cxx
+++ b/Rendering/Core/vtkPropCollection.cxx
@@ -15,6 +15,7 @@
 #include "vtkPropCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPropCollection);
 
 void vtkPropCollection::PrintSelf(ostream& os, vtkIndent indent)
@@ -34,3 +35,4 @@ int vtkPropCollection::GetNumberOfPaths()
   }
   return numPaths;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkPropCollection.h b/Rendering/Core/vtkPropCollection.h
index 64cde6d8d42dc66abab43a8a609fe9f7396c62a4..a94ecebc6011d7eb05edb4a24eea23db27273f19 100644
--- a/Rendering/Core/vtkPropCollection.h
+++ b/Rendering/Core/vtkPropCollection.h
@@ -32,6 +32,7 @@
 
 #include "vtkProp.h" // Needed for inline methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkPropCollection : public vtkCollection
 {
 public:
@@ -106,4 +107,5 @@ inline vtkProp* vtkPropCollection::GetLastProp()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkPropPicker.cxx b/Rendering/Core/vtkPropPicker.cxx
index a7b35784d09760ac221b8bfe24ca7b4f3243224b..43d39c9286557f8d7edc040ce87f9497e88a6f2e 100644
--- a/Rendering/Core/vtkPropPicker.cxx
+++ b/Rendering/Core/vtkPropPicker.cxx
@@ -25,6 +25,7 @@
 #include "vtkTransform.h"
 #include "vtkWorldPointPicker.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPropPicker);
 
 vtkPropPicker::vtkPropPicker()
@@ -351,3 +352,4 @@ void vtkPropPicker::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "PickFrom List: (none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkPropPicker.h b/Rendering/Core/vtkPropPicker.h
index 1ddaef030c888721e6a5eea5c371d871853e2c4d..a2771b668cff171c7aecb8f865c5f7f693301ecd 100644
--- a/Rendering/Core/vtkPropPicker.h
+++ b/Rendering/Core/vtkPropPicker.h
@@ -33,6 +33,7 @@
 #include "vtkAbstractPropPicker.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProp;
 class vtkWorldPointPicker;
 
@@ -118,4 +119,5 @@ private:
   void operator=(const vtkPropPicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkProperty.cxx b/Rendering/Core/vtkProperty.cxx
index 7d49337bfa214511080424eb462cb2219df4a686..946e4b45cf6e3d65f704cfb6f02a04ef1daffbfd 100644
--- a/Rendering/Core/vtkProperty.cxx
+++ b/Rendering/Core/vtkProperty.cxx
@@ -29,6 +29,7 @@
 
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkProperty, Information, vtkInformation);
 
 //------------------------------------------------------------------------------
@@ -501,3 +502,4 @@ void vtkProperty::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Metallic: " << this->Metallic << endl;
   os << indent << "Roughness: " << this->Roughness << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkProperty.h b/Rendering/Core/vtkProperty.h
index 57f3c9340197d440d60f9f7ab2e5f5c47ab7476f..6c4031f6074d0e476c7d5502d4b265d2e6e2ba5c 100644
--- a/Rendering/Core/vtkProperty.h
+++ b/Rendering/Core/vtkProperty.h
@@ -47,6 +47,7 @@
 #define VTK_WIREFRAME 1
 #define VTK_SURFACE 2
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkInformation;
 class vtkRenderer;
@@ -854,4 +855,5 @@ inline const char* vtkProperty::GetRepresentationAsString()
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkProperty2D.cxx b/Rendering/Core/vtkProperty2D.cxx
index 60f03366230a872d1d4ff6c504e066629d8beff5..a44e7268ed03a061222969b387502fde782919c9 100644
--- a/Rendering/Core/vtkProperty2D.cxx
+++ b/Rendering/Core/vtkProperty2D.cxx
@@ -15,6 +15,7 @@
 #include "vtkProperty2D.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkProperty2D);
 
 // Creates a vtkProperty2D with the following default values:
@@ -73,3 +74,4 @@ void vtkProperty2D::PrintSelf(ostream& os, vtkIndent indent)
       break;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkProperty2D.h b/Rendering/Core/vtkProperty2D.h
index c26fb00080f4420d53915ed326b2da775d5b3a47..8b4e02b1a214f0bf15191e04ffc661fd7ce2315b 100644
--- a/Rendering/Core/vtkProperty2D.h
+++ b/Rendering/Core/vtkProperty2D.h
@@ -29,6 +29,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkViewport;
 
 #define VTK_BACKGROUND_LOCATION 0
@@ -143,4 +144,5 @@ private:
   void operator=(const vtkProperty2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkPythagoreanQuadruples.h b/Rendering/Core/vtkPythagoreanQuadruples.h
index d6b99c2248c60ff2995850ef0d584ba62624ec7c..aca2051783bae09402599febabf018afeb3fa9dd 100644
--- a/Rendering/Core/vtkPythagoreanQuadruples.h
+++ b/Rendering/Core/vtkPythagoreanQuadruples.h
@@ -9,6 +9,10 @@
  */
 #ifndef vtkPythagoreanQuadruples_h
 #define vtkPythagoreanQuadruples_h
+
+#include "vtkABINamespace.h"
+
+VTK_ABI_NAMESPACE_BEGIN
 const int vtkPythagoreanQuadruples[] = {
 /* R^2  i   j   k */
     0,  0,  0,  0,
@@ -12356,5 +12360,6 @@ const int vtkPythagoreanQuadruples[] = {
 };
 
 static const int vtkMaxPythagoreanQuadrupleId = sizeof(vtkPythagoreanQuadruples)/sizeof(vtkPythagoreanQuadruples[0])/4 - 1;
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkPythagoreanQuadruples.h
diff --git a/Rendering/Core/vtkRayCastStructures.h b/Rendering/Core/vtkRayCastStructures.h
index c5f061ed37f1c5a5f9afa878d2f72242835011ee..cdbfa65e565392b9e20a6992f87b30f989a2fe5d 100644
--- a/Rendering/Core/vtkRayCastStructures.h
+++ b/Rendering/Core/vtkRayCastStructures.h
@@ -27,6 +27,9 @@
 #ifndef vtkRayCastStructures_h
 #define vtkRayCastStructures_h
 
+#include "vtkABINamespace.h"
+
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkRayCastRayInfo_t
 {
   // These are the input values that define the ray. Depending on
@@ -78,5 +81,6 @@ struct vtkRayCastRayInfo_t
 };
 using vtkRayCastRayInfo = struct vtkRayCastRayInfo_t;
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkRayCastStructures.h
diff --git a/Rendering/Core/vtkRenderPass.cxx b/Rendering/Core/vtkRenderPass.cxx
index befb43cea45b9df27991a55ff6350229b20d145f..f49c17a404596c136cdf3565b8eeaafd1420fb86 100644
--- a/Rendering/Core/vtkRenderPass.cxx
+++ b/Rendering/Core/vtkRenderPass.cxx
@@ -20,6 +20,7 @@
 //------------------------------------------------------------------------------
 // Description:
 // Default constructor. Do nothing.
+VTK_ABI_NAMESPACE_BEGIN
 vtkRenderPass::vtkRenderPass()
 {
   this->NumberOfRenderedProps = 0;
@@ -108,3 +109,4 @@ void vtkRenderPass::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "NumberOfRenderedProps:" << this->NumberOfRenderedProps << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRenderPass.h b/Rendering/Core/vtkRenderPass.h
index 1020e2d47090002251737286e3e6aa0b1e837d41..b167f76d416aa8e971be8ddc7b01cfe59c8e598c 100644
--- a/Rendering/Core/vtkRenderPass.h
+++ b/Rendering/Core/vtkRenderPass.h
@@ -48,6 +48,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFrameBufferObjectBase;
 class vtkRenderState;
 class vtkWindow;
@@ -137,4 +138,5 @@ private:
   void operator=(const vtkRenderPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkRenderState.cxx b/Rendering/Core/vtkRenderState.cxx
index 6290c5e06526a7de9617d32461e80b004125c31d..e4172b854873a091e06479e29cb0ec69bca93c32 100644
--- a/Rendering/Core/vtkRenderState.cxx
+++ b/Rendering/Core/vtkRenderState.cxx
@@ -23,6 +23,7 @@
 // \pre renderer_exists: renderer!=0
 // \post renderer_is_set: GetRenderer()==renderer.
 // \post valid_state: IsValid()
+VTK_ABI_NAMESPACE_BEGIN
 vtkRenderState::vtkRenderState(vtkRenderer* renderer)
 {
   assert("pre: renderer_exists" && renderer != nullptr);
@@ -140,3 +141,4 @@ void vtkRenderState::SetRequiredKeys(vtkInformation* keys)
   this->RequiredKeys = keys;
   assert("post: is_set" && this->GetRequiredKeys() == keys);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRenderState.h b/Rendering/Core/vtkRenderState.h
index 0fa879159815e35dab80031c34aad8bbc1c65016..98ca65406d327f32f107914448ce16ee55784eb5 100644
--- a/Rendering/Core/vtkRenderState.h
+++ b/Rendering/Core/vtkRenderState.h
@@ -32,6 +32,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkProp;
 class vtkFrameBufferObjectBase;
@@ -160,5 +161,6 @@ private:
   void operator=(const vtkRenderState&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkRenderState.h
diff --git a/Rendering/Core/vtkRenderTimerLog.cxx b/Rendering/Core/vtkRenderTimerLog.cxx
index 77a153df5472e381df57d1dbb870d236d1c8bb84..41c223fc75da582d776623c6552122d0218c485c 100644
--- a/Rendering/Core/vtkRenderTimerLog.cxx
+++ b/Rendering/Core/vtkRenderTimerLog.cxx
@@ -20,6 +20,7 @@
 #include <iomanip>
 #include <utility>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkRenderTimerLog);
 
 //------------------------------------------------------------------------------
@@ -138,3 +139,4 @@ void vtkRenderTimerLog::Event::Print(
     event.Print(os, thisTime, threshMs, nextIndent);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRenderTimerLog.h b/Rendering/Core/vtkRenderTimerLog.h
index 73c792a9ff757e6f9af6057f09de2ba1d0a400ab..3bdfa3f75aba1d0049b2e2188cc85eedc5f837a5 100644
--- a/Rendering/Core/vtkRenderTimerLog.h
+++ b/Rendering/Core/vtkRenderTimerLog.h
@@ -77,6 +77,7 @@
     (void)identifier; /* Prevent set-but-not-used var warnings */                                  \
   } while (false)     /* Do-while loop prevents duplicate semicolon warnings */
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkRenderTimerLog : public vtkObject
 {
 public:
@@ -229,4 +230,5 @@ private:
   void operator=(const vtkRenderTimerLog&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkRenderTimerLog_h
diff --git a/Rendering/Core/vtkRenderWidget.cxx b/Rendering/Core/vtkRenderWidget.cxx
index f69ffc2989c2dc379aac4ca5e68d9f6da41e1321..010409b517134e500740cab3d79240d2e02dd4cd 100644
--- a/Rendering/Core/vtkRenderWidget.cxx
+++ b/Rendering/Core/vtkRenderWidget.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkRect.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderWidget);
 
 vtkRenderWidget::vtkRenderWidget()
@@ -91,3 +92,4 @@ void vtkRenderWidget::PrintSelf(ostream& os, vtkIndent indent)
   // FIXME: Add methods for this...
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRenderWidget.h b/Rendering/Core/vtkRenderWidget.h
index 323f0e0b6823a5d93eb67cc1e9decd3531aa5175..9a5fbb68d30cb9a83e9c5619cfe7b49fcea29164 100644
--- a/Rendering/Core/vtkRenderWidget.h
+++ b/Rendering/Core/vtkRenderWidget.h
@@ -20,6 +20,7 @@
 #include "vtkVector.h"              // For member variables.
 #include <string>                   // For member variables.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractInteractionDevice;
 class vtkAbstractRenderDevice;
 
@@ -98,4 +99,5 @@ private:
   void operator=(const vtkRenderWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkRenderWindow.cxx b/Rendering/Core/vtkRenderWindow.cxx
index 19829161f54cd1ad27c20f959a8cbab3bfd7cdf0..6f0afa661a9e799487fae9af540343f91153bf9e 100644
--- a/Rendering/Core/vtkRenderWindow.cxx
+++ b/Rendering/Core/vtkRenderWindow.cxx
@@ -35,6 +35,7 @@
 #include <utility> // for std::swap
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkRenderWindow);
 
 // Construct an instance of  vtkRenderWindow with its screen size
@@ -682,3 +683,4 @@ const char* vtkRenderWindow::GetStereoTypeAsString(int type)
       return "";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRenderWindow.h b/Rendering/Core/vtkRenderWindow.h
index f55ff645bf6ec646138c51431a971a50fdd655eb..972d2a50a78217c004ec56ed7e56af08736e3b0c 100644
--- a/Rendering/Core/vtkRenderWindow.h
+++ b/Rendering/Core/vtkRenderWindow.h
@@ -47,6 +47,7 @@
 #include "vtkSmartPointer.h"        // For vtkSmartPointer
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 class vtkProp;
 class vtkCollection;
@@ -790,4 +791,5 @@ private:
   vtkNew<vtkStereoCompositor> StereoCompositor;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkRenderWindowCollection.cxx b/Rendering/Core/vtkRenderWindowCollection.cxx
index 73c83f0262735f3268f70845adb0fbe9f268f941..0eec60f44946baf9c3de67848a026be0ee7e765d 100644
--- a/Rendering/Core/vtkRenderWindowCollection.cxx
+++ b/Rendering/Core/vtkRenderWindowCollection.cxx
@@ -15,9 +15,11 @@
 #include "vtkRenderWindowCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderWindowCollection);
 
 void vtkRenderWindowCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRenderWindowCollection.h b/Rendering/Core/vtkRenderWindowCollection.h
index f56564defa0b47f8092cebb91f660bf0fde91163..28ae1d5825b417785f95687c242fe1dd9fc8cd23 100644
--- a/Rendering/Core/vtkRenderWindowCollection.h
+++ b/Rendering/Core/vtkRenderWindowCollection.h
@@ -31,6 +31,7 @@
 #include "vtkRenderWindow.h"        // Needed for static cast
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkRenderWindowCollection : public vtkCollection
 {
 public:
@@ -73,4 +74,5 @@ private:
   vtkRenderWindowCollection(const vtkRenderWindowCollection&) = delete;
   void operator=(const vtkRenderWindowCollection&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkRenderWindowInteractor.cxx b/Rendering/Core/vtkRenderWindowInteractor.cxx
index 478f8987bf60ed757e0ce54163a10e00c5dc816b..90b990616a899309a17294994771881b1266b933 100644
--- a/Rendering/Core/vtkRenderWindowInteractor.cxx
+++ b/Rendering/Core/vtkRenderWindowInteractor.cxx
@@ -34,6 +34,7 @@
 
 // PIMPL'd class to keep track of timers. It maps the ids returned by CreateTimer()
 // to the platform-specific representation for timer ids.
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkTimerStruct
 {
   int Id;
@@ -1420,3 +1421,4 @@ void vtkRenderWindowInteractor::SwipeEvent()
   }
   this->InvokeEvent(vtkCommand::SwipeEvent, nullptr);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRenderWindowInteractor.h b/Rendering/Core/vtkRenderWindowInteractor.h
index db956c84b4e1c5422955e74819b98a8a864b2d76..f607abfb39469dc4ff4def658b3bc2ecbfa8a4e3 100644
--- a/Rendering/Core/vtkRenderWindowInteractor.h
+++ b/Rendering/Core/vtkRenderWindowInteractor.h
@@ -50,6 +50,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkSmartPointer.h"        // For InteractorStyle
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTimerIdMap;
 
 // Timer flags for win32/X compatibility
@@ -926,4 +927,5 @@ private:
   void operator=(const vtkRenderWindowInteractor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkRenderWindowInteractor3D.cxx b/Rendering/Core/vtkRenderWindowInteractor3D.cxx
index 7bab7edc9db5a7a5bf41ca52ccde6f2dda9a0926..cc9ad7b730a0e4778852748094ac80c245f4e3ac 100644
--- a/Rendering/Core/vtkRenderWindowInteractor3D.cxx
+++ b/Rendering/Core/vtkRenderWindowInteractor3D.cxx
@@ -28,6 +28,7 @@
 #include "vtkMatrix4x4.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderWindowInteractor3D);
 
 //------------------------------------------------------------------------------
@@ -440,3 +441,4 @@ void vtkRenderWindowInteractor3D::GetStartingPhysicalEventPose(
   }
   poseMatrix->DeepCopy(StartingPhysicalEventPoses[pointerIndex]);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRenderWindowInteractor3D.h b/Rendering/Core/vtkRenderWindowInteractor3D.h
index 14d1ea1a7facead39edd22c45e15467c833f2690..6c550b8f418d26b2b446ef25a819f545c0b0437a 100644
--- a/Rendering/Core/vtkRenderWindowInteractor3D.h
+++ b/Rendering/Core/vtkRenderWindowInteractor3D.h
@@ -34,6 +34,7 @@
 
 #include "vtkNew.h" // ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 class vtkMatrix4x4;
 enum class vtkEventDataDevice;
@@ -311,4 +312,5 @@ private:
   void operator=(const vtkRenderWindowInteractor3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkRenderedAreaPicker.cxx b/Rendering/Core/vtkRenderedAreaPicker.cxx
index 21191b23e8aa1d84352af5809ed2aaa8e8b14b92..e234fb0b3361393d9955c37f01aeefcf97bdcce3 100644
--- a/Rendering/Core/vtkRenderedAreaPicker.cxx
+++ b/Rendering/Core/vtkRenderedAreaPicker.cxx
@@ -33,6 +33,7 @@
 #include "vtkRenderer.h"
 #include "vtkVolume.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderedAreaPicker);
 
 //------------------------------------------------------------------------------
@@ -148,3 +149,4 @@ void vtkRenderedAreaPicker::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRenderedAreaPicker.h b/Rendering/Core/vtkRenderedAreaPicker.h
index 111b1778906daaafe613d3da1a9641d1794ff151..4fc157466d3ed44bed9630b35834c1b45e327fb1 100644
--- a/Rendering/Core/vtkRenderedAreaPicker.h
+++ b/Rendering/Core/vtkRenderedAreaPicker.h
@@ -35,6 +35,7 @@
 #include "vtkAreaPicker.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 
 class VTKRENDERINGCORE_EXPORT vtkRenderedAreaPicker : public vtkAreaPicker
@@ -60,4 +61,5 @@ private:
   void operator=(const vtkRenderedAreaPicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkRenderer.cxx b/Rendering/Core/vtkRenderer.cxx
index 3a9d8f2f0affa0a217202d678ad362d7099636b9..831f791af83209fc8dc41e5ae30dbba17275d06e 100644
--- a/Rendering/Core/vtkRenderer.cxx
+++ b/Rendering/Core/vtkRenderer.cxx
@@ -41,6 +41,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkRenderer, Information, vtkInformation);
 vtkCxxSetObjectMacro(vtkRenderer, Delegate, vtkRendererDelegate);
 vtkCxxSetObjectMacro(vtkRenderer, BackgroundTexture, vtkTexture);
@@ -2121,3 +2122,4 @@ const std::array<double, 16>& vtkRenderer::GetProjectionTransformationMatrix()
   }
   return this->ProjectionTransformationMatrix;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRenderer.h b/Rendering/Core/vtkRenderer.h
index fc503371f7c6c174d89b2bf4cccc2d122b93c438..24ba1346345df3a1ebe3117602e1714841f9e1a7 100644
--- a/Rendering/Core/vtkRenderer.h
+++ b/Rendering/Core/vtkRenderer.h
@@ -40,6 +40,7 @@
 
 #include <array> // To store matrices
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFXAAOptions;
 class vtkRenderWindow;
 class vtkVolume;
@@ -1211,4 +1212,5 @@ inline vtkCullerCollection* vtkRenderer::GetCullers()
   return this->Cullers;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkRendererCollection.cxx b/Rendering/Core/vtkRendererCollection.cxx
index 8fb188ec9a1ba295aa12411b26e237aa99e16437..d07a3dd39955e94ab38c675f78d75e94b08e47d9 100644
--- a/Rendering/Core/vtkRendererCollection.cxx
+++ b/Rendering/Core/vtkRendererCollection.cxx
@@ -18,6 +18,7 @@
 
 #include <cstdlib>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRendererCollection);
 
 // Forward the Render() method to each renderer in the list.
@@ -80,3 +81,4 @@ void vtkRendererCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRendererCollection.h b/Rendering/Core/vtkRendererCollection.h
index 98f71feb8db66cd7f8d1cefac4e88e0b74a50c52..4183dbeb33db13f6c8f414bc6bf9bac269c29af6 100644
--- a/Rendering/Core/vtkRendererCollection.h
+++ b/Rendering/Core/vtkRendererCollection.h
@@ -31,6 +31,7 @@
 #include "vtkRenderer.h"            // Needed for static cast
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkRendererCollection : public vtkCollection
 {
 public:
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkRendererCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkRendererDelegate.cxx b/Rendering/Core/vtkRendererDelegate.cxx
index b8e231bef56290b42a034fdd984b67609e156861..809f4909edd895014af0c7818f68484687777ab8 100644
--- a/Rendering/Core/vtkRendererDelegate.cxx
+++ b/Rendering/Core/vtkRendererDelegate.cxx
@@ -15,6 +15,7 @@
 
 #include "vtkRendererDelegate.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkRendererDelegate::vtkRendererDelegate()
 {
   this->Used = false;
@@ -37,3 +38,4 @@ void vtkRendererDelegate::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRendererDelegate.h b/Rendering/Core/vtkRendererDelegate.h
index a2c25cf660451b5b8ce0d3d132bc850554748b3a..59febea26354718f315fe7bfbab2a3d0dabac6f4 100644
--- a/Rendering/Core/vtkRendererDelegate.h
+++ b/Rendering/Core/vtkRendererDelegate.h
@@ -32,6 +32,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 
 class VTKRENDERINGCORE_EXPORT vtkRendererDelegate : public vtkObject
@@ -66,4 +67,5 @@ private:
   void operator=(const vtkRendererDelegate&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkRendererSource.cxx b/Rendering/Core/vtkRendererSource.cxx
index 52af65ed21dd939f25004dbc4eec184bbb1b8fa0..0c521b5a6e7f4fa794eff5ee977a81e1e8719e51 100644
--- a/Rendering/Core/vtkRendererSource.cxx
+++ b/Rendering/Core/vtkRendererSource.cxx
@@ -27,6 +27,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRendererSource);
 
 vtkCxxSetObjectMacro(vtkRendererSource, Input, vtkRenderer);
@@ -377,3 +378,4 @@ int vtkRendererSource::FillOutputPortInformation(int vtkNotUsed(port), vtkInform
   info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkImageData");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkRendererSource.h b/Rendering/Core/vtkRendererSource.h
index 5c22b48d6b99978ff4c15b655ca8b7799d5eb403..c27daf0327abc50c477cced364b5d61cfe2227d4 100644
--- a/Rendering/Core/vtkRendererSource.h
+++ b/Rendering/Core/vtkRendererSource.h
@@ -51,6 +51,7 @@
 #include "vtkImageData.h"           // makes things a bit easier
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 
 class VTKRENDERINGCORE_EXPORT vtkRendererSource : public vtkAlgorithm
@@ -167,4 +168,5 @@ private:
   void operator=(const vtkRendererSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkRenderingCoreEnums.h b/Rendering/Core/vtkRenderingCoreEnums.h
index 906f57e203baa574d360d76ce5ca48a2b4ba55e1..2dc92c7a55a78166bd32347bab1298c49c3d3558 100644
--- a/Rendering/Core/vtkRenderingCoreEnums.h
+++ b/Rendering/Core/vtkRenderingCoreEnums.h
@@ -16,7 +16,10 @@
 #ifndef vtkRenderingCoreEnums_h
 #define vtkRenderingCoreEnums_h
 
+#include "vtkABINamespace.h"
+
 // Marker shapes for plotting
+VTK_ABI_NAMESPACE_BEGIN
 enum
 {
   VTK_MARKER_NONE = 0,
@@ -29,5 +32,6 @@ enum
   VTK_MARKER_UNKNOWN // Must be last.
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkRenderingCoreEnums_h
 // VTK-HeaderTest-Exclude: vtkRenderingCoreEnums.h
diff --git a/Rendering/Core/vtkResizingWindowToImageFilter.cxx b/Rendering/Core/vtkResizingWindowToImageFilter.cxx
index 03105a1a8eaa363c1a89c512c1b0b59997d440f2..a8cd8474e47721a5f06ede34f69050850db11c16 100644
--- a/Rendering/Core/vtkResizingWindowToImageFilter.cxx
+++ b/Rendering/Core/vtkResizingWindowToImageFilter.cxx
@@ -27,6 +27,7 @@
 #include <cmath>
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkResizingWindowToImageFilter);
 
 //------------------------------------------------------------------------------
@@ -358,3 +359,4 @@ void vtkResizingWindowToImageFilter::GetScaleFactorsAndSize(
     *approximate |= (actualSize[1] * scale[1] != requestedSize[1]);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkResizingWindowToImageFilter.h b/Rendering/Core/vtkResizingWindowToImageFilter.h
index c7452fbbca8aa523cbd082927019886d8592c87c..cb756404e7d2e5eba24a34e07a8956c4756c7495 100644
--- a/Rendering/Core/vtkResizingWindowToImageFilter.h
+++ b/Rendering/Core/vtkResizingWindowToImageFilter.h
@@ -58,6 +58,7 @@
 // VTK_RGB and VTK_RGBA are defined in system includes
 #define VTK_ZBUFFER 5
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWindow;
 
 class vtkWTI2DHelperClass;
@@ -177,4 +178,5 @@ private:
   void operator=(const vtkResizingWindowToImageFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkScenePicker.cxx b/Rendering/Core/vtkScenePicker.cxx
index 34f4b5e3f9ab58d326def22446b22ca6cb15f6ce..a6e61b383a4f0c20a0933385703316c9cebb5e7e 100644
--- a/Rendering/Core/vtkScenePicker.cxx
+++ b/Rendering/Core/vtkScenePicker.cxx
@@ -23,6 +23,7 @@
 #include "vtkRenderWindowInteractor.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScenePickerSelectionRenderCommand : public vtkCommand
 {
 public:
@@ -266,3 +267,4 @@ void vtkScenePicker::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Renderer: " << this->Renderer << endl;
   os << indent << "EnableVertexPicking: " << this->EnableVertexPicking << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkScenePicker.h b/Rendering/Core/vtkScenePicker.h
index c2d858764b1695388bac073e838c3947f4b734db..64a361f9758c9b273fa7a80a83cedb2099804369 100644
--- a/Rendering/Core/vtkScenePicker.h
+++ b/Rendering/Core/vtkScenePicker.h
@@ -46,6 +46,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkProp;
 class vtkHardwareSelector;
@@ -140,4 +141,5 @@ private:
   void operator=(const vtkScenePicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkSelectVisiblePoints.cxx b/Rendering/Core/vtkSelectVisiblePoints.cxx
index e0497aa6a4ca87fd92188f69c25dafdcb7b84c25..28b18fb83d008af6052d6fe299558d497f5ac400 100644
--- a/Rendering/Core/vtkSelectVisiblePoints.cxx
+++ b/Rendering/Core/vtkSelectVisiblePoints.cxx
@@ -27,6 +27,7 @@
 #include "vtkRenderWindow.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSelectVisiblePoints);
 
 // Instantiate object with no renderer; window selection turned off;
@@ -281,3 +282,4 @@ bool vtkSelectVisiblePoints::IsPointOccluded(const double x[3], const float* zPt
 
   return false;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkSelectVisiblePoints.h b/Rendering/Core/vtkSelectVisiblePoints.h
index 1b3bcfba0f1b0e87869064b9521a2e36ca20ca7a..12757e1c57c8530af628d263d2256a84a5f37abc 100644
--- a/Rendering/Core/vtkSelectVisiblePoints.h
+++ b/Rendering/Core/vtkSelectVisiblePoints.h
@@ -48,6 +48,7 @@
 #include "vtkPolyDataAlgorithm.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkMatrix4x4;
 
@@ -171,4 +172,5 @@ private:
   void operator=(const vtkSelectVisiblePoints&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkShaderProperty.cxx b/Rendering/Core/vtkShaderProperty.cxx
index ef69b6ba62a5d8c0736e07b0ce25e9c7edccd59e..9acbb2a1a937e6059b883026a6527617f1b4e5a5 100644
--- a/Rendering/Core/vtkShaderProperty.cxx
+++ b/Rendering/Core/vtkShaderProperty.cxx
@@ -18,6 +18,7 @@
 #include "vtkUniforms.h"
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractObjectFactoryNewMacro(vtkShaderProperty);
 
 vtkShaderProperty::vtkShaderProperty()
@@ -69,3 +70,4 @@ void vtkShaderProperty::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkShaderProperty.h b/Rendering/Core/vtkShaderProperty.h
index 85b967dbcb601345ac4c3c5cc6ea40cd183b1bba..d211c2a90492904350bccdbce273983028825919 100644
--- a/Rendering/Core/vtkShaderProperty.h
+++ b/Rendering/Core/vtkShaderProperty.h
@@ -34,6 +34,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUniforms;
 
 class VTKRENDERINGCORE_EXPORT vtkShaderProperty : public vtkObject
@@ -142,4 +143,5 @@ private:
   void operator=(const vtkShaderProperty&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkSkybox.cxx b/Rendering/Core/vtkSkybox.cxx
index 948a5d814396fa50caf96269ea54fed5dfcb0335..cb884ef2201b7fed7aa7e298dfa313b1788372db 100644
--- a/Rendering/Core/vtkSkybox.cxx
+++ b/Rendering/Core/vtkSkybox.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkSkybox);
 
 //------------------------------------------------------------------------------
@@ -48,3 +49,4 @@ vtkSkybox::vtkSkybox()
 
 //------------------------------------------------------------------------------
 vtkSkybox::~vtkSkybox() = default;
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkSkybox.h b/Rendering/Core/vtkSkybox.h
index e6affa6a17bf4cf90b7603ed7da15703e54b84bf..25c4a432ba20f60e349748046e82fb57439c99e8 100644
--- a/Rendering/Core/vtkSkybox.h
+++ b/Rendering/Core/vtkSkybox.h
@@ -25,6 +25,7 @@
 #include "vtkActor.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkSkybox : public vtkActor
 {
 public:
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkSkybox&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkSkybox_h
diff --git a/Rendering/Core/vtkStateStorage.h b/Rendering/Core/vtkStateStorage.h
index f85cccd8cbc0365b187b50a403b826a7005035ab..c9e44ab1e6f1fe58a77c8f193c40864442aa58f0 100644
--- a/Rendering/Core/vtkStateStorage.h
+++ b/Rendering/Core/vtkStateStorage.h
@@ -47,6 +47,8 @@
 #ifndef vtkStateStorage_h
 #define vtkStateStorage_h
 
+#include "vtkABINamespace.h"
+
 #include <algorithm>
 #include <string>
 #include <vector>
@@ -55,6 +57,7 @@
 //#define USE_STATE_DEBUGGING 1
 #ifdef USE_STATE_DEBUGGING
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStateStorage
 {
 public:
@@ -124,8 +127,10 @@ inline void vtkStateStorage::Append(const T& value, const char* name)
   this->Storage.insert(this->Storage.end(), start, start + sizeof(T));
 }
 
-#else // normal implementation
+VTK_ABI_NAMESPACE_END
+#else  // normal implementation
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStateStorage
 {
 public:
@@ -156,6 +161,7 @@ inline void vtkStateStorage::Append(const T& value, const char*)
   this->Storage.insert(this->Storage.end(), start, start + sizeof(T));
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // normal implementation
 
 #endif // vtkStateStorage_h
diff --git a/Rendering/Core/vtkStereoCompositor.cxx b/Rendering/Core/vtkStereoCompositor.cxx
index e9a6d2467da5ced5f0b43dcde535141fd9855c3d..7256621371951ae0b1858854dd06f629e4e4fe82 100644
--- a/Rendering/Core/vtkStereoCompositor.cxx
+++ b/Rendering/Core/vtkStereoCompositor.cxx
@@ -21,6 +21,7 @@
 #include <algorithm>
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStereoCompositor);
 //------------------------------------------------------------------------------
 vtkStereoCompositor::vtkStereoCompositor() = default;
@@ -300,3 +301,4 @@ void vtkStereoCompositor::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkStereoCompositor.h b/Rendering/Core/vtkStereoCompositor.h
index 157c80599fca559e36033b90c98480c46bee3f6a..39b97e26ba30bdc59eb00f2921b3c6552cd3287e 100644
--- a/Rendering/Core/vtkStereoCompositor.h
+++ b/Rendering/Core/vtkStereoCompositor.h
@@ -30,6 +30,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 
 class VTKRENDERINGCORE_EXPORT vtkStereoCompositor : public vtkObject
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkStereoCompositor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkStringToImage.cxx b/Rendering/Core/vtkStringToImage.cxx
index b21dbb6f2047702044eaab3c6ee354a79043582b..118888f15905403c24ae5568e1885a9a9eeffbee 100644
--- a/Rendering/Core/vtkStringToImage.cxx
+++ b/Rendering/Core/vtkStringToImage.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStringToImage::vtkStringToImage()
 {
   this->Antialias = true;
@@ -43,3 +44,4 @@ void vtkStringToImage::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "ScaleToPowerOfTwo: " << this->ScaleToPowerOfTwo << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkStringToImage.h b/Rendering/Core/vtkStringToImage.h
index 51f2828b5eaa8fca56dd78a234a3c9efe3fe2ddd..d135f935f5cade1761f7d7c5350ac060bb1f6d64 100644
--- a/Rendering/Core/vtkStringToImage.h
+++ b/Rendering/Core/vtkStringToImage.h
@@ -28,6 +28,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkStdString;
 class vtkTextProperty;
 class vtkImageData;
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkStringToImage&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkStringToImage_h
diff --git a/Rendering/Core/vtkTDxConfigure.h.in b/Rendering/Core/vtkTDxConfigure.h.in
index e8fb89d340958168e49e57f49b0992d187765153..fb6edc8cbec8799aee58a3eb9f97c631cd13bb32 100644
--- a/Rendering/Core/vtkTDxConfigure.h.in
+++ b/Rendering/Core/vtkTDxConfigure.h.in
@@ -14,3 +14,4 @@
 =========================================================================*/
 
 /* The TDx support has not been ported, this header defines nothing. */
+/* VTK-HeaderTest-Exclude: vtkTDxConfigure.h */
diff --git a/Rendering/Core/vtkTDxInteractorStyle.cxx b/Rendering/Core/vtkTDxInteractorStyle.cxx
index 9cd24b147ffeee8ff5e713c6750533abf18f1ced..cd7aa24ddd36ac3c5e21889826ff6b80d039b7e0 100644
--- a/Rendering/Core/vtkTDxInteractorStyle.cxx
+++ b/Rendering/Core/vtkTDxInteractorStyle.cxx
@@ -19,6 +19,7 @@
 #include "vtkTDxInteractorStyleSettings.h"
 #include "vtkTDxMotionEventInfo.h" // Borland needs it.
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkTDxInteractorStyle, Settings, vtkTDxInteractorStyleSettings);
 
 //------------------------------------------------------------------------------
@@ -100,3 +101,4 @@ void vtkTDxInteractorStyle::PrintSelf(ostream& os, vtkIndent indent)
     this->Settings->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTDxInteractorStyle.h b/Rendering/Core/vtkTDxInteractorStyle.h
index a6f0b406fb7b45628da1460d36fb08241689cce7..2aa312cb3e066946a521fa37a5a785bf6cd34a64 100644
--- a/Rendering/Core/vtkTDxInteractorStyle.h
+++ b/Rendering/Core/vtkTDxInteractorStyle.h
@@ -35,6 +35,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTDxMotionEventInfo;
 class vtkRenderer;
 class vtkTDxInteractorStyleSettings;
@@ -93,4 +94,5 @@ private:
   vtkTDxInteractorStyle(const vtkTDxInteractorStyle&) = delete;
   void operator=(const vtkTDxInteractorStyle&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkTDxInteractorStyleCamera.cxx b/Rendering/Core/vtkTDxInteractorStyleCamera.cxx
index 7af0760aed21864fc3260b5b0c5f57bb67dc42de..ba29a27de39df079f9d3c5e3064630840a890a18 100644
--- a/Rendering/Core/vtkTDxInteractorStyleCamera.cxx
+++ b/Rendering/Core/vtkTDxInteractorStyleCamera.cxx
@@ -25,6 +25,7 @@
 #include "vtkTransform.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTDxInteractorStyleCamera);
 
 //------------------------------------------------------------------------------
@@ -153,3 +154,4 @@ void vtkTDxInteractorStyleCamera::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTDxInteractorStyleCamera.h b/Rendering/Core/vtkTDxInteractorStyleCamera.h
index 26e60fa18df2a104da7a834bef3476fef76d3cfc..312d025880ed7870432184c176225d7db5003de9 100644
--- a/Rendering/Core/vtkTDxInteractorStyleCamera.h
+++ b/Rendering/Core/vtkTDxInteractorStyleCamera.h
@@ -31,6 +31,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkTDxInteractorStyle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransform;
 
 class VTKRENDERINGCORE_EXPORT vtkTDxInteractorStyleCamera : public vtkTDxInteractorStyle
@@ -56,4 +57,5 @@ private:
   vtkTDxInteractorStyleCamera(const vtkTDxInteractorStyleCamera&) = delete;
   void operator=(const vtkTDxInteractorStyleCamera&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkTDxInteractorStyleSettings.cxx b/Rendering/Core/vtkTDxInteractorStyleSettings.cxx
index b1cbc8ea9296884c029aa414463ca5d66f1d0f52..ecd8cab4092a7ec0e4c794db91b7362b6796ca7f 100644
--- a/Rendering/Core/vtkTDxInteractorStyleSettings.cxx
+++ b/Rendering/Core/vtkTDxInteractorStyleSettings.cxx
@@ -16,6 +16,7 @@
 #include "vtkTDxInteractorStyleSettings.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTDxInteractorStyleSettings);
 
 //------------------------------------------------------------------------------
@@ -47,3 +48,4 @@ void vtkTDxInteractorStyleSettings::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "TranslationYSensitivity: " << this->TranslationYSensitivity << endl;
   os << indent << "TranslationZSensitivity: " << this->TranslationZSensitivity << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTDxInteractorStyleSettings.h b/Rendering/Core/vtkTDxInteractorStyleSettings.h
index d70b579bc5a71e07fe7d886a0feb9714b06ef6f6..dc3a5b24c167da8aece5065ce3c3ea69f44add2d 100644
--- a/Rendering/Core/vtkTDxInteractorStyleSettings.h
+++ b/Rendering/Core/vtkTDxInteractorStyleSettings.h
@@ -31,6 +31,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkTDxInteractorStyleSettings : public vtkObject
 {
 public:
@@ -133,4 +134,5 @@ private:
   vtkTDxInteractorStyleSettings(const vtkTDxInteractorStyleSettings&) = delete;
   void operator=(const vtkTDxInteractorStyleSettings&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkTDxMotionEventInfo.h b/Rendering/Core/vtkTDxMotionEventInfo.h
index 6c56d17992895da742d0734ba6bc97861f171503..b3446b70953ebf1695f909361ee21d39b384651a 100644
--- a/Rendering/Core/vtkTDxMotionEventInfo.h
+++ b/Rendering/Core/vtkTDxMotionEventInfo.h
@@ -29,6 +29,7 @@
 #include "vtkObject.h"              // for the export macro
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkTDxMotionEventInfo
 {
 public:
@@ -61,5 +62,6 @@ public:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkTDxMotionEventInfo.h
diff --git a/Rendering/Core/vtkTextActor.cxx b/Rendering/Core/vtkTextActor.cxx
index b12e44f8afab78928ce2561a17f962d1ac654f5e..be313cdde959d7ec293f99c4256ee36232af1057 100644
--- a/Rendering/Core/vtkTextActor.cxx
+++ b/Rendering/Core/vtkTextActor.cxx
@@ -36,6 +36,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkTextActor);
 
 //------------------------------------------------------------------------------
@@ -1010,3 +1011,4 @@ void vtkTextActor::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "FontScaleExponent: " << this->FontScaleExponent << endl;
   os << indent << "UseBorderAlign: " << this->UseBorderAlign << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTextActor.h b/Rendering/Core/vtkTextActor.h
index 56241a2c27776723c7a9222a4e11b9c6ad173e75..79c6e402377b6bc4f40fb988d2980f345bc4afdf 100644
--- a/Rendering/Core/vtkTextActor.h
+++ b/Rendering/Core/vtkTextActor.h
@@ -38,6 +38,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkTexturedActor2D.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkPoints;
 class vtkPolyData;
@@ -335,4 +336,5 @@ private:
   void operator=(const vtkTextActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkTextActor3D.cxx b/Rendering/Core/vtkTextActor3D.cxx
index c577c1619c73c1ac031c43cdd5a50bb64b14fcf6..6cdb026c2ad04de41a5660abd8155964954814d6 100644
--- a/Rendering/Core/vtkTextActor3D.cxx
+++ b/Rendering/Core/vtkTextActor3D.cxx
@@ -28,6 +28,7 @@
 #include "vtkTransform.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkTextActor3D);
 
 vtkCxxSetObjectMacro(vtkTextActor3D, TextProperty, vtkTextProperty);
@@ -340,3 +341,4 @@ void vtkTextActor3D::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Text Property: (none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTextActor3D.h b/Rendering/Core/vtkTextActor3D.h
index 16be45224b68e7561307fb86f5fe4425e0718693..211f4ad79cf2ae8e65ec406cab15b9366c1d3a87 100644
--- a/Rendering/Core/vtkTextActor3D.h
+++ b/Rendering/Core/vtkTextActor3D.h
@@ -37,6 +37,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include <string>                   // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageActor;
 class vtkImageData;
 class vtkTextProperty;
@@ -150,4 +151,5 @@ private:
   void operator=(const vtkTextActor3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkTextMapper.cxx b/Rendering/Core/vtkTextMapper.cxx
index 0936ebba6d3c80463ace2906a5d5d6b741bee6c7..026a326bee50f74d2af3608cec86f544f53598c4 100644
--- a/Rendering/Core/vtkTextMapper.cxx
+++ b/Rendering/Core/vtkTextMapper.cxx
@@ -33,6 +33,7 @@
 #include <algorithm>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkTextMapper);
 //------------------------------------------------------------------------------
 vtkCxxSetObjectMacro(vtkTextMapper, TextProperty, vtkTextProperty);
@@ -522,3 +523,4 @@ void vtkTextMapper::UpdateImage(int dpi)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTextMapper.h b/Rendering/Core/vtkTextMapper.h
index 54f86db61034198916c880e197378fbd0498d430..7333bb1a547c643743527dc8dd1db94b4bdad572 100644
--- a/Rendering/Core/vtkTextMapper.h
+++ b/Rendering/Core/vtkTextMapper.h
@@ -34,6 +34,7 @@
 
 #include "vtkNew.h" // For vtkNew
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 class vtkImageData;
 class vtkPoints;
@@ -149,4 +150,5 @@ private:
   vtkNew<vtkTexture> Texture;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkTextProperty.cxx b/Rendering/Core/vtkTextProperty.cxx
index e7139e65a2bc0a088ee6c600049676f3f7b3f09a..b3f8c4a0d5f134db3ee2b78b47cab3cb25dd5756 100644
--- a/Rendering/Core/vtkTextProperty.cxx
+++ b/Rendering/Core/vtkTextProperty.cxx
@@ -15,6 +15,7 @@
 #include "vtkTextProperty.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTextProperty);
 
 //------------------------------------------------------------------------------
@@ -196,3 +197,4 @@ void vtkTextProperty::GetBackgroundRGBA(double& r, double& g, double& b, double&
   this->GetBackgroundColor(r, g, b);
   a = this->GetBackgroundOpacity();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTextProperty.h b/Rendering/Core/vtkTextProperty.h
index 692e77a36323b5474aa26a370624779971ceeb38..c3fd4c30f53a2ae415acc0242033a28881a5f4c0 100644
--- a/Rendering/Core/vtkTextProperty.h
+++ b/Rendering/Core/vtkTextProperty.h
@@ -30,6 +30,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkTextProperty : public vtkObject
 {
 public:
@@ -433,4 +434,5 @@ inline const char* vtkTextProperty::GetVerticalJustificationAsString(void)
   return "Unknown";
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkTextPropertyCollection.cxx b/Rendering/Core/vtkTextPropertyCollection.cxx
index f478d5d998f35b4f2a3705a19ca82e0cfc72d91c..6dc231aa224758e24c7e90ec349e3c5322f75d5c 100644
--- a/Rendering/Core/vtkTextPropertyCollection.cxx
+++ b/Rendering/Core/vtkTextPropertyCollection.cxx
@@ -16,6 +16,7 @@
 #include "vtkTextPropertyCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTextPropertyCollection);
 
 //------------------------------------------------------------------------------
@@ -29,3 +30,4 @@ vtkTextPropertyCollection::vtkTextPropertyCollection() = default;
 
 //------------------------------------------------------------------------------
 vtkTextPropertyCollection::~vtkTextPropertyCollection() = default;
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTextPropertyCollection.h b/Rendering/Core/vtkTextPropertyCollection.h
index 9c2d3c5d9e70a57cdc5a9c8893737ba5efce071c..426774fa252d2a2217ef9a7846f0073f99025743 100644
--- a/Rendering/Core/vtkTextPropertyCollection.h
+++ b/Rendering/Core/vtkTextPropertyCollection.h
@@ -30,6 +30,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkTextProperty.h"        // for inline functions
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkTextPropertyCollection : public vtkCollection
 {
 public:
@@ -114,4 +115,5 @@ inline void vtkTextPropertyCollection::AddItem(vtkObject* o)
   this->vtkCollection::AddItem(o);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkTextRenderer.cxx b/Rendering/Core/vtkTextRenderer.cxx
index 8a764c840165104d82aff66e30adb35239a65d55..ec00700c05d2584c379bd6fe56d0df7774f3f02f 100644
--- a/Rendering/Core/vtkTextRenderer.cxx
+++ b/Rendering/Core/vtkTextRenderer.cxx
@@ -26,6 +26,7 @@
 
 //------------------------------------------------------------------------------
 // The singleton, and the singleton cleanup
+VTK_ABI_NAMESPACE_BEGIN
 vtkTextRenderer* vtkTextRenderer::Instance = nullptr;
 vtkTextRendererCleanup vtkTextRenderer::Cleanup;
 
@@ -144,3 +145,4 @@ void vtkTextRenderer::CleanUpFreeTypeEscapes(vtkStdString& str)
     ind = str.find("\\$", ind + 1);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTextRenderer.h b/Rendering/Core/vtkTextRenderer.h
index a327c61fdff51b164a56420c3fa29dd13a5a134a..d875ec4eb44de3e0aa3085c5304038601ea485eb 100644
--- a/Rendering/Core/vtkTextRenderer.h
+++ b/Rendering/Core/vtkTextRenderer.h
@@ -51,16 +51,20 @@
 #include "vtkTuple.h"               // For metrics struct
 #include "vtkVector.h"              // For metrics struct
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkPath;
 class vtkStdString;
 class vtkTextProperty;
+VTK_ABI_NAMESPACE_END
 
 namespace vtksys
 {
 class RegularExpression;
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKRENDERINGCORE_EXPORT vtkTextRendererCleanup
 {
 public:
@@ -322,4 +326,5 @@ private:
   void operator=(const vtkTextRenderer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTextRenderer_h
diff --git a/Rendering/Core/vtkTexture.cxx b/Rendering/Core/vtkTexture.cxx
index 5afe9a169827f10a89c19d2a8f971d4b026b9277..3e8c1fb7f542684513a1fcadf21f354fd292413d 100644
--- a/Rendering/Core/vtkTexture.cxx
+++ b/Rendering/Core/vtkTexture.cxx
@@ -26,6 +26,7 @@
 #include "vtkStreamingDemandDrivenPipeline.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkTexture, LookupTable, vtkScalarsToColors);
 //------------------------------------------------------------------------------
 // Return nullptr if no override is supplied.
@@ -371,3 +372,4 @@ int vtkTexture::IsTranslucent()
   this->TranslucentComputationTime.Modified();
   return this->TranslucentCachedResult;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTexture.h b/Rendering/Core/vtkTexture.h
index dfba597c07bc49463d1d91a296c95c750946de93..e21e584e2dc512ae7a0dd00a4baabe304752772f 100644
--- a/Rendering/Core/vtkTexture.h
+++ b/Rendering/Core/vtkTexture.h
@@ -50,6 +50,7 @@
 #include "vtkRenderingCoreModule.h" // For export macro
 #include "vtkSystemIncludes.h"      // For VTK_COLOR_MODE_*
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkScalarsToColors;
 class vtkRenderer;
@@ -367,4 +368,5 @@ private:
   void operator=(const vtkTexture&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkTexturedActor2D.cxx b/Rendering/Core/vtkTexturedActor2D.cxx
index b6d3f0b0ec1e00c38f6b4f08f781be0df19a1c41..13bf347974c6ac6b88b4591e2b2520a5fab47242 100644
--- a/Rendering/Core/vtkTexturedActor2D.cxx
+++ b/Rendering/Core/vtkTexturedActor2D.cxx
@@ -19,6 +19,7 @@
 #include "vtkRenderer.h"
 #include "vtkTexture.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTexturedActor2D);
 
 vtkCxxSetObjectMacro(vtkTexturedActor2D, Texture, vtkTexture);
@@ -146,3 +147,4 @@ void vtkTexturedActor2D::PrintSelf(ostream& os, vtkIndent indent)
     this->Texture->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTexturedActor2D.h b/Rendering/Core/vtkTexturedActor2D.h
index 88e97fc3e6eb227131b6f84a4a124b2fa1b6f601..746dfb30cfcdb80daa8676c7e5b24e38a48356d1 100644
--- a/Rendering/Core/vtkTexturedActor2D.h
+++ b/Rendering/Core/vtkTexturedActor2D.h
@@ -30,6 +30,7 @@
 #include "vtkActor2D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProp;
 class vtkTexture;
 class vtkViewport;
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkTexturedActor2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkTransformCoordinateSystems.cxx b/Rendering/Core/vtkTransformCoordinateSystems.cxx
index a2828599bc7b79cee3c858f86cf6ca8e5ee4e561..95362e44418cffc8445261a3a2768126a837e30d 100644
--- a/Rendering/Core/vtkTransformCoordinateSystems.cxx
+++ b/Rendering/Core/vtkTransformCoordinateSystems.cxx
@@ -21,6 +21,7 @@
 #include "vtkPointSet.h"
 #include "vtkViewport.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransformCoordinateSystems);
 
 //------------------------------------------------------------------------------
@@ -202,3 +203,4 @@ void vtkTransformCoordinateSystems::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTransformCoordinateSystems.h b/Rendering/Core/vtkTransformCoordinateSystems.h
index a6b228e5ca1010f002ae819c667b31c973c40c9c..06e9ae9196babb907f6ab4353707b97a6ad4d15e 100644
--- a/Rendering/Core/vtkTransformCoordinateSystems.h
+++ b/Rendering/Core/vtkTransformCoordinateSystems.h
@@ -32,6 +32,7 @@
 #include "vtkPointSetAlgorithm.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkTransformCoordinateSystems : public vtkPointSetAlgorithm
 {
 public:
@@ -109,4 +110,5 @@ private:
   void operator=(const vtkTransformCoordinateSystems&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkTransformInterpolator.cxx b/Rendering/Core/vtkTransformInterpolator.cxx
index 7e06560e74c04347bca6eb30649dadb92bc15ce2..fb41fc67995f7c8996cf7586659877453e674681 100644
--- a/Rendering/Core/vtkTransformInterpolator.cxx
+++ b/Rendering/Core/vtkTransformInterpolator.cxx
@@ -23,6 +23,7 @@
 #include "vtkTupleInterpolator.h"
 #include <list>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransformInterpolator);
 
 // PIMPL STL encapsulation for list of transforms, and list of
@@ -441,3 +442,4 @@ void vtkTransformInterpolator::PrintSelf(ostream& os, vtkIndent indent)
     os << "(null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTransformInterpolator.h b/Rendering/Core/vtkTransformInterpolator.h
index 80067d19a374edd5e90c55fb4969eb22a4b08c3f..fad6e90f550b8755e05ba49375a9e1142a725e5f 100644
--- a/Rendering/Core/vtkTransformInterpolator.h
+++ b/Rendering/Core/vtkTransformInterpolator.h
@@ -53,6 +53,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransform;
 class vtkMatrix4x4;
 class vtkProp3D;
@@ -209,4 +210,5 @@ private:
   void operator=(const vtkTransformInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkTupleInterpolator.cxx b/Rendering/Core/vtkTupleInterpolator.cxx
index e53a58110d09a555ef98e5df9f624f20170b0b05..db8aa2db81e663b25450351f71ff078c40d77e45 100644
--- a/Rendering/Core/vtkTupleInterpolator.cxx
+++ b/Rendering/Core/vtkTupleInterpolator.cxx
@@ -19,6 +19,7 @@
 #include "vtkPiecewiseFunction.h"
 #include "vtkSpline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTupleInterpolator);
 
 //------------------------------------------------------------------------------
@@ -305,3 +306,4 @@ void vtkTupleInterpolator::PrintSelf(ostream& os, vtkIndent indent)
     os << "(null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkTupleInterpolator.h b/Rendering/Core/vtkTupleInterpolator.h
index 83ba3e27caf7ff6e06a754af7ce5880f49907fd7..713e7ab7246f49acbd2f29baea4d5af4c5c5b9e4 100644
--- a/Rendering/Core/vtkTupleInterpolator.h
+++ b/Rendering/Core/vtkTupleInterpolator.h
@@ -47,6 +47,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSpline;
 class vtkPiecewiseFunction;
 
@@ -176,4 +177,5 @@ private:
   void operator=(const vtkTupleInterpolator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkUniforms.cxx b/Rendering/Core/vtkUniforms.cxx
index 3dbe68b61caf8f8a59f5ae5589188aecfb3072ec..64830ff43708ccf65c29f83047cf5365efaa76c4 100644
--- a/Rendering/Core/vtkUniforms.cxx
+++ b/Rendering/Core/vtkUniforms.cxx
@@ -3,6 +3,7 @@
 
 //------------------------------------------------------------------------------
 // Return nullptr if no override is supplied.
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractObjectFactoryNewMacro(vtkUniforms);
 
 //------------------------------------------------------------------------------
@@ -78,3 +79,4 @@ int vtkUniforms::StringToScalarType(const std::string& s)
     return VTK_VOID;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkUniforms.h b/Rendering/Core/vtkUniforms.h
index 8fe222825ce052e1a9e716535d7326fb8b707d46..220611c0ddb2e0f5745f8aa26f7a4fbea47a4806 100644
--- a/Rendering/Core/vtkUniforms.h
+++ b/Rendering/Core/vtkUniforms.h
@@ -36,6 +36,7 @@
 #include <string>                   // member function parameters
 #include <vector>                   // member function parameters
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix3x3;
 class vtkMatrix4x4;
 
@@ -190,4 +191,5 @@ private:
   void operator=(const vtkUniforms&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkViewDependentErrorMetric.cxx b/Rendering/Core/vtkViewDependentErrorMetric.cxx
index 04571767f5d96c0983f82981a9ee99cf686b253d..9744c4b48518a891e70b0107518f1d873717efda 100644
--- a/Rendering/Core/vtkViewDependentErrorMetric.cxx
+++ b/Rendering/Core/vtkViewDependentErrorMetric.cxx
@@ -24,6 +24,7 @@
 #include "vtkViewport.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkViewDependentErrorMetric);
 
 //------------------------------------------------------------------------------
@@ -212,3 +213,4 @@ void vtkViewDependentErrorMetric::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkViewDependentErrorMetric.h b/Rendering/Core/vtkViewDependentErrorMetric.h
index 6c4582685d57628c11bd89ae2726f40dfb91e053..381165c07d562c5fcae8824ebf072be9dc2126b9 100644
--- a/Rendering/Core/vtkViewDependentErrorMetric.h
+++ b/Rendering/Core/vtkViewDependentErrorMetric.h
@@ -32,6 +32,7 @@
 #include "vtkGenericSubdivisionErrorMetric.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkViewport;
 class vtkCoordinate;
 
@@ -142,4 +143,5 @@ private:
   void operator=(const vtkViewDependentErrorMetric&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkViewport.cxx b/Rendering/Core/vtkViewport.cxx
index 1f7669374133cbd41b0df3229c5b276c917bd34c..481057692f46b69eac3ee1464a466dfcf56662f3 100644
--- a/Rendering/Core/vtkViewport.cxx
+++ b/Rendering/Core/vtkViewport.cxx
@@ -27,6 +27,7 @@
 // Create a vtkViewport with a black background, a white ambient light,
 // two-sided lighting turned on, a viewport of (0,0,1,1), and backface culling
 // turned off.
+VTK_ABI_NAMESPACE_BEGIN
 vtkViewport::vtkViewport()
 {
   this->VTKWindow = nullptr;
@@ -817,3 +818,4 @@ void vtkViewport::GetTiledSizeAndOrigin(int* usize, int* vsize, int* lowerLeftU,
     *vsize = 0;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkViewport.h b/Rendering/Core/vtkViewport.h
index 1293ae11ccb6185100fa7632f865c7c697020f9e..d7c833768bd6829a4692703c9da2683a5e538995 100644
--- a/Rendering/Core/vtkViewport.h
+++ b/Rendering/Core/vtkViewport.h
@@ -40,6 +40,7 @@
 
 #include <array> // To store matrices
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2DCollection;
 class vtkAssemblyPath;
 class vtkProp;
@@ -470,4 +471,5 @@ private:
   void operator=(const vtkViewport&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkVisibilitySort.cxx b/Rendering/Core/vtkVisibilitySort.cxx
index 197a51c9ffd9fac168e82d6e18b11f6085690573..9a3d089e517969ae09577d1a7d3157fd57b0b958 100644
--- a/Rendering/Core/vtkVisibilitySort.cxx
+++ b/Rendering/Core/vtkVisibilitySort.cxx
@@ -31,6 +31,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkVisibilitySort, Camera, vtkCamera);
 vtkCxxSetObjectMacro(vtkVisibilitySort, Input, vtkDataSet);
 
@@ -121,3 +122,4 @@ void vtkVisibilitySort::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Camera: (" << this->Camera << ")" << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkVisibilitySort.h b/Rendering/Core/vtkVisibilitySort.h
index e241382c3c2d93e81e3a5c99eabeb6c06c43827b..29d412f4000d89f6fc9ca70e1a12acd2bccf0a95 100644
--- a/Rendering/Core/vtkVisibilitySort.h
+++ b/Rendering/Core/vtkVisibilitySort.h
@@ -49,6 +49,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 class vtkDataSet;
 class vtkMatrix4x4;
@@ -159,4 +160,5 @@ private:
   void operator=(const vtkVisibilitySort&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkVisibilitySort_h
diff --git a/Rendering/Core/vtkVolume.cxx b/Rendering/Core/vtkVolume.cxx
index 8120d908d0aa32ea85be34c32d0f09458ee65965..a282a877666d1181a7fd538bab5f405be483186c 100644
--- a/Rendering/Core/vtkVolume.cxx
+++ b/Rendering/Core/vtkVolume.cxx
@@ -31,6 +31,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVolume);
 
 // Creates a Volume with the following defaults: origin(0,0,0)
@@ -789,3 +790,4 @@ void vtkVolume::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "Bounds: (not defined)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkVolume.h b/Rendering/Core/vtkVolume.h
index 0a6511ed30adcd1e8ce350924dd792683094c24f..7026bde0a1ef4d0cad869e01199bc4eb9d88083d 100644
--- a/Rendering/Core/vtkVolume.h
+++ b/Rendering/Core/vtkVolume.h
@@ -34,6 +34,7 @@
 #include "vtkProp3D.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkPropCollection;
 class vtkVolumeCollection;
@@ -259,4 +260,5 @@ private:
   void operator=(const vtkVolume&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkVolumeCollection.cxx b/Rendering/Core/vtkVolumeCollection.cxx
index 7f75b750f77b0bd8d2e708db50361b636686e131..bc3a682a3985cb37ea2699aac09f7f32686202c3 100644
--- a/Rendering/Core/vtkVolumeCollection.cxx
+++ b/Rendering/Core/vtkVolumeCollection.cxx
@@ -15,6 +15,7 @@
 #include "vtkVolumeCollection.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVolumeCollection);
 
 //------------------------------------------------------------------------------
@@ -22,3 +23,4 @@ void vtkVolumeCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkVolumeCollection.h b/Rendering/Core/vtkVolumeCollection.h
index b7eaa1cc12e6a0f78f0fe52829b088659f0d2e15..4aac2397b4e8b3634ab9ded860f967d97ed60534 100644
--- a/Rendering/Core/vtkVolumeCollection.h
+++ b/Rendering/Core/vtkVolumeCollection.h
@@ -32,6 +32,7 @@
 
 #include "vtkVolume.h" // Needed for static cast
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkVolumeCollection : public vtkPropCollection
 {
 public:
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkVolumeCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkVolumeProperty.cxx b/Rendering/Core/vtkVolumeProperty.cxx
index 8db1441e91c89e14e373da82eae6424f8f73e92d..f1409a958b0e53691f02ec2b046465e246475661 100644
--- a/Rendering/Core/vtkVolumeProperty.cxx
+++ b/Rendering/Core/vtkVolumeProperty.cxx
@@ -23,6 +23,7 @@
 #include "vtkPiecewiseFunction.h"
 #include "vtkPointData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVolumeProperty);
 
 //------------------------------------------------------------------------------
@@ -996,3 +997,4 @@ void vtkVolumeProperty::PrintSelf(ostream& os, vtkIndent indent)
   // this->LabelScalarOpacityMTime
   // this->LabelGradientOpacityMTime
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkVolumeProperty.h b/Rendering/Core/vtkVolumeProperty.h
index 954be6c47724feea5d0b0bbf5839e07cce210bb2..d566102b7b4778d56740782ba25514029ecda342 100644
--- a/Rendering/Core/vtkVolumeProperty.h
+++ b/Rendering/Core/vtkVolumeProperty.h
@@ -65,6 +65,7 @@
 #include <set>           // For labelmap labels set
 #include <unordered_map> // For labelmap transfer function maps
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkColorTransferFunction;
 class vtkContourValues;
 class vtkImageData;
@@ -609,4 +610,5 @@ inline const char* vtkVolumeProperty::GetInterpolationTypeAsString()
   return "Unknown";
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkWindowLevelLookupTable.cxx b/Rendering/Core/vtkWindowLevelLookupTable.cxx
index 0c2d5b1b20f5e8ab348e5eb6fef5062f1020c07b..195e3e5ff28555f73d170a84761705217ac94614 100644
--- a/Rendering/Core/vtkWindowLevelLookupTable.cxx
+++ b/Rendering/Core/vtkWindowLevelLookupTable.cxx
@@ -17,6 +17,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWindowLevelLookupTable);
 
 //------------------------------------------------------------------------------
@@ -141,3 +142,4 @@ void vtkWindowLevelLookupTable::PrintSelf(ostream& os, vtkIndent indent)
      << this->MaximumTableValue[1] << ", " << this->MaximumTableValue[2] << ", "
      << this->MaximumTableValue[3] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkWindowLevelLookupTable.h b/Rendering/Core/vtkWindowLevelLookupTable.h
index 80ba0894748500f8ea3b4bc7dc7087dad7de4bd0..f3b06097ed3b857a073badfdfe713b334c7de4c6 100644
--- a/Rendering/Core/vtkWindowLevelLookupTable.h
+++ b/Rendering/Core/vtkWindowLevelLookupTable.h
@@ -39,6 +39,7 @@
 #include "vtkLookupTable.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkWindowLevelLookupTable : public vtkLookupTable
 {
 public:
@@ -127,4 +128,5 @@ private:
   void operator=(const vtkWindowLevelLookupTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkWindowToImageFilter.cxx b/Rendering/Core/vtkWindowToImageFilter.cxx
index a62a34e63e73f9634f7bbf5684f573435904cbd5..9036d8868f0aa4b0d02465f58832bad1fa3dac1d 100644
--- a/Rendering/Core/vtkWindowToImageFilter.cxx
+++ b/Rendering/Core/vtkWindowToImageFilter.cxx
@@ -33,6 +33,7 @@
 
 #define BORDER_PIXELS 2
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWindowToImageFilter);
 
 class vtkWTI2DHelperClass
@@ -722,3 +723,4 @@ void vtkWindowToImageFilter::Render()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkWindowToImageFilter.h b/Rendering/Core/vtkWindowToImageFilter.h
index c2913a13212c163b2bb08f76fccd92377ba0a295..5d452435dba1be8fb4715f5dd40c89c65a5287f7 100644
--- a/Rendering/Core/vtkWindowToImageFilter.h
+++ b/Rendering/Core/vtkWindowToImageFilter.h
@@ -65,6 +65,7 @@
 // VTK_RGB and VTK_RGBA are defined in system includes
 #define VTK_ZBUFFER 5
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWindow;
 
 class vtkWTI2DHelperClass;
@@ -209,4 +210,5 @@ private:
   void operator=(const vtkWindowToImageFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Core/vtkWorldPointPicker.cxx b/Rendering/Core/vtkWorldPointPicker.cxx
index 77dc6113ca2fcef777d9067ab1336e250d4758c1..118de7432fd722f46f55002df0c91a7e694e63b5 100644
--- a/Rendering/Core/vtkWorldPointPicker.cxx
+++ b/Rendering/Core/vtkWorldPointPicker.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWorldPointPicker);
 
 vtkWorldPointPicker::vtkWorldPointPicker() = default;
@@ -95,3 +96,4 @@ void vtkWorldPointPicker::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Core/vtkWorldPointPicker.h b/Rendering/Core/vtkWorldPointPicker.h
index c519c96474ff48858ab9cc7b581d1404eab71067..f5fb0308a366305e2cda241066c141fcd87aa068 100644
--- a/Rendering/Core/vtkWorldPointPicker.h
+++ b/Rendering/Core/vtkWorldPointPicker.h
@@ -35,6 +35,7 @@
 #include "vtkAbstractPicker.h"
 #include "vtkRenderingCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGCORE_EXPORT vtkWorldPointPicker : public vtkAbstractPicker
 {
 public:
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkWorldPointPicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/External/ExternalVTKWidget.cxx b/Rendering/External/ExternalVTKWidget.cxx
index a4e489a05228a3d2d8e438e05c7d7e928138969d..ffeeee189a5604b34da53595ee33695d44dc4c95 100644
--- a/Rendering/External/ExternalVTKWidget.cxx
+++ b/Rendering/External/ExternalVTKWidget.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkRendererCollection.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(ExternalVTKWidget);
 
 //------------------------------------------------------------------------------
@@ -110,3 +111,4 @@ void ExternalVTKWidget::SetRenderWindow(vtkExternalOpenGLRenderWindow* w)
     renderers->UnRegister(this);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/External/ExternalVTKWidget.h b/Rendering/External/ExternalVTKWidget.h
index 8d0a6004896607f494fc607f5342680270beddc4..f23a6ec365f5de1e1a03946ef684b5969933fd58 100644
--- a/Rendering/External/ExternalVTKWidget.h
+++ b/Rendering/External/ExternalVTKWidget.h
@@ -26,6 +26,7 @@
 #include "vtkRenderingExternalModule.h" // For export macro
 
 // Class that maintains an external render window.
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGEXTERNAL_EXPORT ExternalVTKWidget : public vtkObject
 {
 public:
@@ -58,4 +59,6 @@ private:
   void operator=(const ExternalVTKWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif //__ExternalVTKWidget_h
+/* VTK-HeaderTest-Exclude: INCLUDES */
diff --git a/Rendering/External/vtkExternalLight.cxx b/Rendering/External/vtkExternalLight.cxx
index 5566e18c9d93fb00a5540ebb20114846c0dac40d..ac3882020718dd57402663ebc37aefc8e749e70e 100644
--- a/Rendering/External/vtkExternalLight.cxx
+++ b/Rendering/External/vtkExternalLight.cxx
@@ -18,6 +18,7 @@
 #include "vtk_glew.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExternalLight);
 
 //------------------------------------------------------------------------------
@@ -134,3 +135,4 @@ void vtkExternalLight::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ExponentSet: " << this->ExponentSet << "\n";
   os << indent << "PositionalSet: " << this->PositionalSet << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/External/vtkExternalLight.h b/Rendering/External/vtkExternalLight.h
index 1c3c830c894f0ee83e7b54f1a6170251ee4123c5..adb27f5c11c04f7725e8612f34d349e3811afa08 100644
--- a/Rendering/External/vtkExternalLight.h
+++ b/Rendering/External/vtkExternalLight.h
@@ -59,6 +59,7 @@
 #include "vtkLight.h"
 #include "vtkRenderingExternalModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGEXTERNAL_EXPORT vtkExternalLight : public vtkLight
 {
 public:
@@ -259,4 +260,5 @@ private:
   void operator=(const vtkExternalLight&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkExternalLight_h
diff --git a/Rendering/External/vtkExternalOpenGLCamera.cxx b/Rendering/External/vtkExternalOpenGLCamera.cxx
index c9b4d3aeef0b65cc61bb645f4019cdbdc2d1d0e0..3d0c31128b73aa462be73e12f8ac0f97fad2099b 100644
--- a/Rendering/External/vtkExternalOpenGLCamera.cxx
+++ b/Rendering/External/vtkExternalOpenGLCamera.cxx
@@ -25,6 +25,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExternalOpenGLCamera);
 
 //------------------------------------------------------------------------------
@@ -86,3 +87,4 @@ void vtkExternalOpenGLCamera::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/External/vtkExternalOpenGLCamera.h b/Rendering/External/vtkExternalOpenGLCamera.h
index 6d6c0ddb3ee5efab363cf9bd65c42686c8787140..7a13ebd9be912f2684c77a77ca8700e0ea35f812 100644
--- a/Rendering/External/vtkExternalOpenGLCamera.h
+++ b/Rendering/External/vtkExternalOpenGLCamera.h
@@ -28,6 +28,7 @@
 #include "vtkOpenGLCamera.h"
 #include "vtkRenderingExternalModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGEXTERNAL_EXPORT vtkExternalOpenGLCamera : public vtkOpenGLCamera
 {
 public:
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkExternalOpenGLCamera&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/External/vtkExternalOpenGLRenderWindow.cxx b/Rendering/External/vtkExternalOpenGLRenderWindow.cxx
index 445bfce802f1e35791d13a42ecdc93fcb63eba7a..6e48bc3d085867223b5d56b30c81a7dbb2876a6f 100644
--- a/Rendering/External/vtkExternalOpenGLRenderWindow.cxx
+++ b/Rendering/External/vtkExternalOpenGLRenderWindow.cxx
@@ -22,6 +22,7 @@
 #include "vtkRenderer.h"
 #include "vtkRendererCollection.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExternalOpenGLRenderWindow);
 
 //------------------------------------------------------------------------------
@@ -97,3 +98,4 @@ void vtkExternalOpenGLRenderWindow::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "UseExternalContent: " << this->UseExternalContent << endl;
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/External/vtkExternalOpenGLRenderWindow.h b/Rendering/External/vtkExternalOpenGLRenderWindow.h
index 13e0eb64795caaac9e2ae9b7afe12b0284417284..ee5a2e2ec722a9b7413f07ac9ea0aa9313ec8946 100644
--- a/Rendering/External/vtkExternalOpenGLRenderWindow.h
+++ b/Rendering/External/vtkExternalOpenGLRenderWindow.h
@@ -44,6 +44,7 @@
 #include "vtkGenericOpenGLRenderWindow.h"
 #include "vtkRenderingExternalModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGEXTERNAL_EXPORT vtkExternalOpenGLRenderWindow
   : public vtkGenericOpenGLRenderWindow
 {
@@ -102,4 +103,5 @@ private:
   vtkExternalOpenGLRenderWindow(const vtkExternalOpenGLRenderWindow&) = delete;
   void operator=(const vtkExternalOpenGLRenderWindow&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif // vtkExternalOpenGLRenderWindow_h
diff --git a/Rendering/External/vtkExternalOpenGLRenderer.cxx b/Rendering/External/vtkExternalOpenGLRenderer.cxx
index b1ad233e385dee1c9dbfca57eff6731a6887b3c6..38a176b6720c11b22a365494bd7eaa1c23e284a8 100644
--- a/Rendering/External/vtkExternalOpenGLRenderer.cxx
+++ b/Rendering/External/vtkExternalOpenGLRenderer.cxx
@@ -32,6 +32,7 @@
 
 #define MAX_LIGHTS 8
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkExternalOpenGLRenderer);
 
 //------------------------------------------------------------------------------
@@ -390,3 +391,4 @@ void vtkExternalOpenGLRenderer::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "External Lights:\n";
   this->ExternalLights->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/External/vtkExternalOpenGLRenderer.h b/Rendering/External/vtkExternalOpenGLRenderer.h
index bbc9bc938790491db0069719da5c667eccdb9450..18a008ce22f592b3b11e0b5f0a0afe69db840e37 100644
--- a/Rendering/External/vtkExternalOpenGLRenderer.h
+++ b/Rendering/External/vtkExternalOpenGLRenderer.h
@@ -37,6 +37,7 @@
 #include "vtkRenderingExternalModule.h" // For export macro
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLightCollection;
 class vtkExternalLight;
 
@@ -120,4 +121,5 @@ private:
   void operator=(const vtkExternalOpenGLRenderer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkExternalOpenGLRenderer_h
diff --git a/Rendering/FFMPEGOpenGL2/vtkOpenGLMovieSphere.cxx b/Rendering/FFMPEGOpenGL2/vtkOpenGLMovieSphere.cxx
index 67ed78586d79d779e230c89180f15a4e5f0a4d0c..38d67bbff74283b1121f63374745da9b43eef8b7 100644
--- a/Rendering/FFMPEGOpenGL2/vtkOpenGLMovieSphere.cxx
+++ b/Rendering/FFMPEGOpenGL2/vtkOpenGLMovieSphere.cxx
@@ -35,6 +35,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLMovieSphere);
 
 vtkOpenGLMovieSphere::vtkOpenGLMovieSphere()
@@ -304,3 +305,4 @@ void vtkOpenGLMovieSphere::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FFMPEGOpenGL2/vtkOpenGLMovieSphere.h b/Rendering/FFMPEGOpenGL2/vtkOpenGLMovieSphere.h
index 70398a3b756df798aea16e87bedaa0e3e151d6e8..25de5a719184fd6b93100fd36bb2b3831a3928e4 100644
--- a/Rendering/FFMPEGOpenGL2/vtkOpenGLMovieSphere.h
+++ b/Rendering/FFMPEGOpenGL2/vtkOpenGLMovieSphere.h
@@ -39,6 +39,7 @@
 #include <atomic>                            // for ivars
 #include <mutex>                             // for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFFMPEGVideoSource;
 struct vtkFFMPEGVideoSourceVideoCallbackData;
 class vtkMutexLock;
@@ -95,4 +96,5 @@ private:
   void operator=(const vtkOpenGLMovieSphere&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/FreeType/fonts/face_arial.cxx b/Rendering/FreeType/fonts/face_arial.cxx
index bf3caca831849b28c6fc5ff94245b1ba7b9bc555..3f429571a5bb2f1c977e8d2e0ae2fd84f67db3a0 100644
--- a/Rendering/FreeType/fonts/face_arial.cxx
+++ b/Rendering/FreeType/fonts/face_arial.cxx
@@ -4,6 +4,7 @@
 // URW Gothic L Book
 // Contributed by URW
 
+VTK_ABI_NAMESPACE_BEGIN
 size_t face_arial_buffer_length = 34454;
 
 unsigned char face_arial_buffer[] = {
@@ -2162,3 +2163,4 @@ unsigned char face_arial_buffer[] = {
    48,  48,  48,  48,  48,  48,  48,  13,  99, 108, 101,  97, 114, 116, 111, 109,
    97, 114, 107,  10, 128,   3,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/fonts/face_arial_bold.cxx b/Rendering/FreeType/fonts/face_arial_bold.cxx
index d9a03870ddcaf996edd9175dc884efc8dcb32bdb..fb866fbdb4ab05e53d9714281354ccb99274b81b 100644
--- a/Rendering/FreeType/fonts/face_arial_bold.cxx
+++ b/Rendering/FreeType/fonts/face_arial_bold.cxx
@@ -4,6 +4,7 @@
 // URW Gothic L Demi
 // Contributed by URW
 
+VTK_ABI_NAMESPACE_BEGIN
 size_t face_arial_bold_buffer_length = 35937;
 
 unsigned char face_arial_bold_buffer[] = {
@@ -2255,3 +2256,4 @@ unsigned char face_arial_bold_buffer[] = {
    48,  48,  13,  99, 108, 101,  97, 114, 116, 111, 109,  97, 114, 107,  10, 128,
     3,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/fonts/face_arial_bold_italic.cxx b/Rendering/FreeType/fonts/face_arial_bold_italic.cxx
index 8fec4168a3c1fe2e79be6e01300b67b7f6195a7b..dba653a867de446624763b0881d0b541438bab06 100644
--- a/Rendering/FreeType/fonts/face_arial_bold_italic.cxx
+++ b/Rendering/FreeType/fonts/face_arial_bold_italic.cxx
@@ -4,6 +4,7 @@
 // URW Gothic L Demi Oblique
 // Contributed by URW
 
+VTK_ABI_NAMESPACE_BEGIN
 size_t face_arial_bold_italic_buffer_length = 35711;
 
 unsigned char face_arial_bold_italic_buffer[] = {
@@ -2240,3 +2241,4 @@ unsigned char face_arial_bold_italic_buffer[] = {
    48,  48,  48,  48,  48,  48,  48,  48,  48,  48,  48,  48,  48,  48,  48,  48,
    13,  99, 108, 101,  97, 114, 116, 111, 109,  97, 114, 107,  10, 128,   3,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/fonts/face_arial_italic.cxx b/Rendering/FreeType/fonts/face_arial_italic.cxx
index 5402960edb82221c4410200a013fc2d710606d48..ca38072d8f0de6b1dcb707bc6a1486f25f6b5c45 100644
--- a/Rendering/FreeType/fonts/face_arial_italic.cxx
+++ b/Rendering/FreeType/fonts/face_arial_italic.cxx
@@ -4,6 +4,7 @@
 // URW Gothic L Book Oblique
 // Contributed by URW
 
+VTK_ABI_NAMESPACE_BEGIN
 size_t face_arial_italic_buffer_length = 34739;
 
 unsigned char face_arial_italic_buffer[] = {
@@ -2180,3 +2181,4 @@ unsigned char face_arial_italic_buffer[] = {
    48,  48,  48,  48,  13,  99, 108, 101,  97, 114, 116, 111, 109,  97, 114, 107,
    10, 128,   3,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/fonts/face_courier.cxx b/Rendering/FreeType/fonts/face_courier.cxx
index b374bbbf304e32af1c1fdddc0963621de7b32e77..805a652341fa635fd04ff58cfe51e5f3347ac7f1 100644
--- a/Rendering/FreeType/fonts/face_courier.cxx
+++ b/Rendering/FreeType/fonts/face_courier.cxx
@@ -4,6 +4,7 @@
 // Courier 10 Pitch (c0419bt_.pfb)
 // Contributed by Bitstream (XFree86)
 
+VTK_ABI_NAMESPACE_BEGIN
 size_t face_courier_buffer_length = 40766;
 
 unsigned char face_courier_buffer[] = {
@@ -2920,3 +2921,4 @@ unsigned char face_courier_buffer[] = {
    48,  48,  48,  48,  48,  48,  48,  48,  48,  48,  48,  13,  99, 108,
   101,  97, 114, 116, 111, 109,  97, 114, 107,  13, 128,   3,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/fonts/face_courier_bold.cxx b/Rendering/FreeType/fonts/face_courier_bold.cxx
index db339d3a8987c6c3af85e4859277a8b2e62e8c40..6deedb94c551943eb2beafe4962074e77dd4054a 100644
--- a/Rendering/FreeType/fonts/face_courier_bold.cxx
+++ b/Rendering/FreeType/fonts/face_courier_bold.cxx
@@ -4,6 +4,7 @@
 // Courier 10 Pitch Bold (c0583bt_.pfb)
 // Contributed by Bitstream (XFree86)
 
+VTK_ABI_NAMESPACE_BEGIN
 size_t face_courier_bold_buffer_length = 40008;
 
 unsigned char face_courier_bold_buffer[] = {
@@ -2866,3 +2867,4 @@ unsigned char face_courier_bold_buffer[] = {
    48,  48,  48,  48,  48,  48,  48,  48,  48,  13,  99, 108, 101,  97,
   114, 116, 111, 109,  97, 114, 107,  13, 128,   3,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/fonts/face_courier_bold_italic.cxx b/Rendering/FreeType/fonts/face_courier_bold_italic.cxx
index 6b312f8a15d65a09ab8aaa054841b238f5626112..9b645162c14d14edc6ce37d66271f7d8e3ac26c0 100644
--- a/Rendering/FreeType/fonts/face_courier_bold_italic.cxx
+++ b/Rendering/FreeType/fonts/face_courier_bold_italic.cxx
@@ -4,6 +4,7 @@
 // Courier 10 Pitch Bold Italic (c0611bt_.pfb)
 // Contributed by Bitstream (XFree86)
 
+VTK_ABI_NAMESPACE_BEGIN
 size_t face_courier_bold_italic_buffer_length = 39871;
 
 unsigned char face_courier_bold_italic_buffer[] = {
@@ -2856,3 +2857,4 @@ unsigned char face_courier_bold_italic_buffer[] = {
    48,  48,  48,  48,  48,  48,  48,  48,  48,  48,  48,  48,  13,  99,
   108, 101,  97, 114, 116, 111, 109,  97, 114, 107,  13, 128,   3,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/fonts/face_courier_italic.cxx b/Rendering/FreeType/fonts/face_courier_italic.cxx
index a7ff8124b8926e7d0d92a913f13fc65670f42a95..4007048b2271a65fb0b9460416b1b5ce81c2781e 100644
--- a/Rendering/FreeType/fonts/face_courier_italic.cxx
+++ b/Rendering/FreeType/fonts/face_courier_italic.cxx
@@ -4,6 +4,7 @@
 // Courier 10 Pitch Regular Italic (c0582bt_.pfb)
 // Contributed by Bitstream (XFree86)
 
+VTK_ABI_NAMESPACE_BEGIN
 size_t face_courier_italic_buffer_length = 39511;
 
 unsigned char face_courier_italic_buffer[] = {
@@ -2831,3 +2832,4 @@ unsigned char face_courier_italic_buffer[] = {
    48,  48,  13,  99, 108, 101,  97, 114, 116, 111, 109,  97, 114, 107,
    13, 128,   3,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/fonts/face_times.cxx b/Rendering/FreeType/fonts/face_times.cxx
index c578912b2d21b72105f87a54b2bf490e12b9f037..c0f5656d33fada9e71ef9640a01f9ea8e9e6e1a9 100644
--- a/Rendering/FreeType/fonts/face_times.cxx
+++ b/Rendering/FreeType/fonts/face_times.cxx
@@ -4,6 +4,7 @@
 // Bitstream Charter (c0648bt_.pfb)
 // Contributed by Bitstream (XFree86)
 
+VTK_ABI_NAMESPACE_BEGIN
 size_t face_times_buffer_length = 34869;
 
 unsigned char face_times_buffer[] = {
@@ -2499,3 +2500,4 @@ unsigned char face_times_buffer[] = {
    48,  48,  48,  48,  48,  48,  48,  48,  13,  99, 108, 101,  97, 114,
   116, 111, 109,  97, 114, 107,  13, 128,   3,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/fonts/face_times_bold.cxx b/Rendering/FreeType/fonts/face_times_bold.cxx
index 1f14e6d1c0026b17eb898b51a80d6180a9d6cb5a..42ce345fe97896a9622f681dea3ef8a658676384 100644
--- a/Rendering/FreeType/fonts/face_times_bold.cxx
+++ b/Rendering/FreeType/fonts/face_times_bold.cxx
@@ -4,6 +4,7 @@
 // Bitstream Charter Bold (c0632bt_.pfb)
 // Contributed by Bitstream (XFree86)
 
+VTK_ABI_NAMESPACE_BEGIN
 size_t face_times_bold_buffer_length = 33799;
 
 unsigned char face_times_bold_buffer[] = {
@@ -2423,3 +2424,4 @@ unsigned char face_times_bold_buffer[] = {
    48,  48,  13,  99, 108, 101,  97, 114, 116, 111, 109,  97, 114, 107,
    13, 128,   3,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/fonts/face_times_bold_italic.cxx b/Rendering/FreeType/fonts/face_times_bold_italic.cxx
index ed34c52111c34c266761e3d897dc30ff10a0c21a..6ccfd887a999c5fc326d1517d98b58079bb51152 100644
--- a/Rendering/FreeType/fonts/face_times_bold_italic.cxx
+++ b/Rendering/FreeType/fonts/face_times_bold_italic.cxx
@@ -4,6 +4,7 @@
 // Bitstream Charter Bold Italic (c0633bt_.pfb)
 // Contributed by Bitstream (XFree86)
 
+VTK_ABI_NAMESPACE_BEGIN
 size_t face_times_bold_italic_buffer_length = 35229;
 
 unsigned char face_times_bold_italic_buffer[] = {
@@ -2525,3 +2526,4 @@ unsigned char face_times_bold_italic_buffer[] = {
    48,  48,  48,  48,  13,  99, 108, 101,  97, 114, 116, 111, 109,  97,
   114, 107,  13, 128,   3,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/fonts/face_times_italic.cxx b/Rendering/FreeType/fonts/face_times_italic.cxx
index dde7406c3e21512a30e060f23edd91f82c699a4f..ba1f16359ea2f25a9ec0751dff88e3ac6610b230 100644
--- a/Rendering/FreeType/fonts/face_times_italic.cxx
+++ b/Rendering/FreeType/fonts/face_times_italic.cxx
@@ -4,6 +4,7 @@
 // Bitstream Charter Regular Italic (c0649bt_.pfb)
 // Contributed by Bitstream (XFree86)
 
+VTK_ABI_NAMESPACE_BEGIN
 size_t face_times_italic_buffer_length = 35118;
 
 unsigned char face_times_italic_buffer[] = {
@@ -2517,3 +2518,4 @@ unsigned char face_times_italic_buffer[] = {
    48,  48,  48,  48,  48,  13,  99, 108, 101,  97, 114, 116, 111, 109,
    97, 114, 107,  13, 128,   3,
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/fonts/vtkEmbeddedFonts.h b/Rendering/FreeType/fonts/vtkEmbeddedFonts.h
index 2eeac446038a0baa4d8cb1c825c317e469383b8e..360690a85bcede873ca8fba9bededa995add8cad 100644
--- a/Rendering/FreeType/fonts/vtkEmbeddedFonts.h
+++ b/Rendering/FreeType/fonts/vtkEmbeddedFonts.h
@@ -16,6 +16,8 @@
 #ifndef vtkEmbeddedFonts_h
 #define vtkEmbeddedFonts_h
 
+#include "vtkABINamespace.h"
+
 #include <stddef.h>
 
 // -----------------------------------------------------------------------
@@ -23,6 +25,7 @@
 // Gothic L Book
 // Contributed by URW
 
+VTK_ABI_NAMESPACE_BEGIN
 extern size_t face_arial_buffer_length;
 extern unsigned char face_arial_buffer[];
 
@@ -105,4 +108,5 @@ extern unsigned char face_times_bold_italic_buffer[];
 extern size_t face_times_italic_buffer_length;
 extern unsigned char face_times_italic_buffer[];
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/FreeType/vtkFreeTypeStringToImage.cxx b/Rendering/FreeType/vtkFreeTypeStringToImage.cxx
index 6f04d4383c48eeab9c7342cdc362ccb6fc19a3e2..3e1bab43c0dbd05a6a4da142a9d2dce7b6fe4087 100644
--- a/Rendering/FreeType/vtkFreeTypeStringToImage.cxx
+++ b/Rendering/FreeType/vtkFreeTypeStringToImage.cxx
@@ -24,6 +24,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFreeTypeStringToImage::Internals
 {
 public:
@@ -86,3 +87,4 @@ void vtkFreeTypeStringToImage::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/vtkFreeTypeStringToImage.h b/Rendering/FreeType/vtkFreeTypeStringToImage.h
index 629f0e46c9f84e41e0c1fc77633f21742398558b..261d307597c4f13514d4d22560e37b48937dc387 100644
--- a/Rendering/FreeType/vtkFreeTypeStringToImage.h
+++ b/Rendering/FreeType/vtkFreeTypeStringToImage.h
@@ -26,6 +26,7 @@
 #include "vtkSmartPointer.h"            // For SP ivars
 #include "vtkStringToImage.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGFREETYPE_EXPORT vtkFreeTypeStringToImage : public vtkStringToImage
 {
 public:
@@ -86,4 +87,5 @@ private:
   void operator=(const vtkFreeTypeStringToImage&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkFreeTypeStringToImage_h
diff --git a/Rendering/FreeType/vtkFreeTypeTools.cxx b/Rendering/FreeType/vtkFreeTypeTools.cxx
index 84e227743dcc38fbabca4505e4302f48ade289ba..0ba6626ba5278595fb14a817ea321ee474a620f7 100644
--- a/Rendering/FreeType/vtkFreeTypeTools.cxx
+++ b/Rendering/FreeType/vtkFreeTypeTools.cxx
@@ -55,6 +55,8 @@ void rotateVector2i(vtkVector2i& vec, float sinTheta, float cosTheta)
 
 } // end anon namespace
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkTextPropertyLookup : public std::map<size_t, vtkSmartPointer<vtkTextProperty>>
 {
 public:
@@ -1313,11 +1315,15 @@ bool vtkFreeTypeTools::StringToPathInternal(
   return true;
 }
 
+VTK_ABI_NAMESPACE_END
+
 namespace
 {
 const char* DEFAULT_HEIGHT_STRING = "_/7Agfy";
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //------------------------------------------------------------------------------
 bool vtkFreeTypeTools::CalculateBoundingBox(const vtkStdString& str, MetaData& metaData)
 {
@@ -1618,9 +1624,11 @@ void vtkFreeTypeTools::PrepareImageData(vtkImageData* data, int textBbox[4])
     (data->GetNumberOfPoints() * data->GetNumberOfScalarComponents()));
 }
 
+VTK_ABI_NAMESPACE_END
 // Helper functions for rasterizing the background/frame quad:
 namespace RasterScanQuad
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // Return true and set t1 (if 0 <= t1 <= 1) for the intersection of lines:
 //
@@ -1729,8 +1737,10 @@ inline void clampToExtent(int extent[6], int dim, int& value)
   value = std::min(extent[2 * dim + 1], std::max(extent[2 * dim], value));
 }
 
+VTK_ABI_NAMESPACE_END
 } // end namespace RasterScanQuad
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 void vtkFreeTypeTools::RenderBackground(
   vtkTextProperty* tprop, vtkImageData* image, ImageMetaData& metaData)
@@ -2429,3 +2439,4 @@ void vtkFreeTypeTools::GetLineMetrics(std::string::const_iterator begin,
     width += (delta.x + 0x8000) >> 16;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/vtkFreeTypeTools.h b/Rendering/FreeType/vtkFreeTypeTools.h
index 3b5e252f101b8524e48c743cc54d52140d9cfe56..a6bedc73c1762d6e486c1d4dd0d785272f082832 100644
--- a/Rendering/FreeType/vtkFreeTypeTools.h
+++ b/Rendering/FreeType/vtkFreeTypeTools.h
@@ -33,17 +33,20 @@
 
 #include <array> // for std::array
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkPath;
 class vtkTextProperty;
 class vtkStdString;
 
 // FreeType
+VTK_ABI_NAMESPACE_END
 #include "vtk_freetype.h" //since ft2build.h could be in the path
 #include FT_FREETYPE_H
 #include FT_GLYPH_H
 #include FT_CACHE_H
 
+VTK_ABI_NAMESPACE_BEGIN
 class FTFont;
 
 // PIMPL class for FTC_FaceID->vtkTextProperty lookup
@@ -499,4 +502,5 @@ private:
 // This is here to implement the Schwarz counter idiom.
 static vtkFreeTypeToolsCleanup vtkFreeTypeToolsCleanupInstance;
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/FreeType/vtkMathTextFreeTypeTextRenderer.cxx b/Rendering/FreeType/vtkMathTextFreeTypeTextRenderer.cxx
index f0e13c8513bffa78a4b6cfa30e3f270f14e9cc6f..e09b152a657a1768e83875afc3ab97aa69555ade 100644
--- a/Rendering/FreeType/vtkMathTextFreeTypeTextRenderer.cxx
+++ b/Rendering/FreeType/vtkMathTextFreeTypeTextRenderer.cxx
@@ -22,6 +22,7 @@
 #include "vtkTextProperty.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkMathTextFreeTypeTextRenderer);
 
 //------------------------------------------------------------------------------
@@ -351,3 +352,4 @@ vtkMathTextFreeTypeTextRenderer::vtkMathTextFreeTypeTextRenderer()
 
 //------------------------------------------------------------------------------
 vtkMathTextFreeTypeTextRenderer::~vtkMathTextFreeTypeTextRenderer() = default;
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/vtkMathTextFreeTypeTextRenderer.h b/Rendering/FreeType/vtkMathTextFreeTypeTextRenderer.h
index 673e7936854d61a457c2b6db850eea353b2e84bb..d8126d81849b9da99edb18e0602dbffbb9c55326 100644
--- a/Rendering/FreeType/vtkMathTextFreeTypeTextRenderer.h
+++ b/Rendering/FreeType/vtkMathTextFreeTypeTextRenderer.h
@@ -34,6 +34,7 @@
 #include "vtkRenderingFreeTypeModule.h" // For export macro
 #include "vtkTextRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFreeTypeTools;
 class vtkMathTextUtilities;
 
@@ -82,4 +83,5 @@ private:
   vtkMathTextUtilities* MathTextUtilities;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkMathTextFreeTypeTextRenderer_h
diff --git a/Rendering/FreeType/vtkMathTextUtilities.cxx b/Rendering/FreeType/vtkMathTextUtilities.cxx
index 08b7a489dbca4f2e40b2c036fc82e26c37cfe5b7..43f4380c1f4b4a15e6acf0826ad27821d7b4d9fe 100644
--- a/Rendering/FreeType/vtkMathTextUtilities.cxx
+++ b/Rendering/FreeType/vtkMathTextUtilities.cxx
@@ -27,6 +27,7 @@
 
 //------------------------------------------------------------------------------
 // The singleton, and the singleton cleanup
+VTK_ABI_NAMESPACE_BEGIN
 vtkMathTextUtilities* vtkMathTextUtilities::Instance = nullptr;
 vtkMathTextUtilitiesCleanup vtkMathTextUtilities::Cleanup;
 
@@ -163,3 +164,4 @@ void vtkMathTextUtilities::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Instance: " << vtkMathTextUtilities::Instance << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/vtkMathTextUtilities.h b/Rendering/FreeType/vtkMathTextUtilities.h
index d539d0124211270e8a10cf3aa9566ca1d32c6653..5dc03927116c585f3949c4c6946dbaeaf6cfe127 100644
--- a/Rendering/FreeType/vtkMathTextUtilities.h
+++ b/Rendering/FreeType/vtkMathTextUtilities.h
@@ -28,6 +28,7 @@
 #include "vtkRenderingFreeTypeModule.h" // For export macro
 #include "vtkTextRenderer.h"            // for metrics
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkPath;
 class vtkTextProperty;
@@ -144,4 +145,5 @@ private:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/FreeType/vtkScaledTextActor.cxx b/Rendering/FreeType/vtkScaledTextActor.cxx
index d247f586ebfe097b9c41be3c2f3f1a36ec5f15b4..eb709e9e1ea4415f933dce663901552b74b3be5b 100644
--- a/Rendering/FreeType/vtkScaledTextActor.cxx
+++ b/Rendering/FreeType/vtkScaledTextActor.cxx
@@ -15,6 +15,7 @@
 #include "vtkScaledTextActor.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkScaledTextActor);
 
 vtkScaledTextActor::vtkScaledTextActor()
@@ -29,3 +30,4 @@ void vtkScaledTextActor::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/vtkScaledTextActor.h b/Rendering/FreeType/vtkScaledTextActor.h
index dbd2ded91e161f9d4620c7d03482a71940888a45..1438cb8dd2508466409857589a28c91f96031ef9 100644
--- a/Rendering/FreeType/vtkScaledTextActor.h
+++ b/Rendering/FreeType/vtkScaledTextActor.h
@@ -29,6 +29,7 @@
 #include "vtkRenderingFreeTypeModule.h" // For export macro
 #include "vtkTextActor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGFREETYPE_EXPORT vtkScaledTextActor : public vtkTextActor
 {
 public:
@@ -49,4 +50,5 @@ private:
   void operator=(const vtkScaledTextActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/FreeType/vtkTextRendererStringToImage.cxx b/Rendering/FreeType/vtkTextRendererStringToImage.cxx
index ccad095afe9be9f38d717a956d6af5a0c117d84b..9791118a046828e524afc3040f5dffd6a46bf4a7 100644
--- a/Rendering/FreeType/vtkTextRendererStringToImage.cxx
+++ b/Rendering/FreeType/vtkTextRendererStringToImage.cxx
@@ -22,6 +22,7 @@
 #include "vtkTextRenderer.h"
 #include "vtkVector.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTextRendererStringToImage::Internals
 {
 public:
@@ -84,3 +85,4 @@ void vtkTextRendererStringToImage::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/vtkTextRendererStringToImage.h b/Rendering/FreeType/vtkTextRendererStringToImage.h
index 66976b76213aa6776e85b41753172146f0d5c953..cd25e72a6e1a1cf6396d8a6d9e436f4fae1c5fc1 100644
--- a/Rendering/FreeType/vtkTextRendererStringToImage.h
+++ b/Rendering/FreeType/vtkTextRendererStringToImage.h
@@ -25,6 +25,7 @@
 #include "vtkRenderingFreeTypeModule.h" // For export macro
 #include "vtkStringToImage.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGFREETYPE_EXPORT vtkTextRendererStringToImage : public vtkStringToImage
 {
 public:
@@ -85,4 +86,5 @@ private:
   void operator=(const vtkTextRendererStringToImage&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTextRendererStringToImage_h
diff --git a/Rendering/FreeType/vtkVectorText.cxx b/Rendering/FreeType/vtkVectorText.cxx
index 5a3776cb337887190e07b3f12f7c916e8a49509c..856a4687f05563b8edc3ac6dd4b352a966d42d1a 100644
--- a/Rendering/FreeType/vtkVectorText.cxx
+++ b/Rendering/FreeType/vtkVectorText.cxx
@@ -24,12 +24,15 @@
 
 #include <clocale>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVectorText);
 
 // NOLINTNEXTLINE(bugprone-suspicious-include)
+VTK_ABI_NAMESPACE_END
 #include "vtkVectorTextData.cxx"
 
 // Construct object with no string set and backing enabled.
+VTK_ABI_NAMESPACE_BEGIN
 vtkVectorText::vtkVectorText()
 {
   this->Text = nullptr;
@@ -141,3 +144,4 @@ vtkVectorText::~vtkVectorText()
 {
   delete[] this->Text;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeType/vtkVectorText.h b/Rendering/FreeType/vtkVectorText.h
index b5d2b3fe92fb288bd777ad55abc451ce1c91e213..f95b393890c0a934f4f1f6b4d4d65e7d2520b93a 100644
--- a/Rendering/FreeType/vtkVectorText.h
+++ b/Rendering/FreeType/vtkVectorText.h
@@ -38,6 +38,7 @@
 #include "vtkPolyDataAlgorithm.h"
 #include "vtkRenderingFreeTypeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGFREETYPE_EXPORT vtkVectorText : public vtkPolyDataAlgorithm
 {
 public:
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkVectorText&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/FreeType/vtkVectorTextData.cxx b/Rendering/FreeType/vtkVectorTextData.cxx
index 91f5640253ecfc90527adc8c3473972c4f60a758..5669c0c9bdfb18553f82499d932a9ebaf67b48df 100644
--- a/Rendering/FreeType/vtkVectorTextData.cxx
+++ b/Rendering/FreeType/vtkVectorTextData.cxx
@@ -1,3 +1,4 @@
+VTK_ABI_NAMESPACE_BEGIN
 struct VTK_VECTOR_TEXT_POINT_t
 {
   float x;
@@ -1667,3 +1668,4 @@ static const VTK_VECTOR_TEXT_GLYPH Letters[] = {
 { 0.606299f, VTK_VECTOR_TEXT_POINTS_125,  35, VTK_VECTOR_TEXT_TRIANGLES_125,   33 },
 { 0.971429f, VTK_VECTOR_TEXT_POINTS_126,  25, VTK_VECTOR_TEXT_TRIANGLES_126,   23 },
 };
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.cxx b/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.cxx
index bd11ae667c20943fac2b19b82bb8e3bd2e60d8b9..86966b66e7fa9dc1bc8ba7013130f951b12f3482 100644
--- a/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.cxx
+++ b/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.cxx
@@ -24,6 +24,7 @@
 
 #include <fontconfig/fontconfig.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFontConfigFreeTypeTools);
 
 namespace
@@ -186,3 +187,4 @@ bool vtkFontConfigFreeTypeTools::LookupFaceFontConfig(
 
   return !error;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.h b/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.h
index 30f11be1feec449ca0a262fd57b4a5268bef18ed..ab64d43ca5e1f343018c1497bec9bef2bec44313 100644
--- a/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.h
+++ b/Rendering/FreeTypeFontConfig/vtkFontConfigFreeTypeTools.h
@@ -37,6 +37,7 @@
 #include "vtkFreeTypeTools.h"
 #include "vtkRenderingFreeTypeFontConfigModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGFREETYPEFONTCONFIG_EXPORT vtkFontConfigFreeTypeTools : public vtkFreeTypeTools
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkFontConfigFreeTypeTools&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkFontConfigFreeTypeTools_h
diff --git a/Rendering/GL2PSOpenGL2/vtkOpenGLGL2PSHelperImpl.cxx b/Rendering/GL2PSOpenGL2/vtkOpenGLGL2PSHelperImpl.cxx
index 54bcab79c29a4d9a14fceaf3fc195b8f62b04b64..d14389a3fb18a424960d235cd5474787ece68e8a 100644
--- a/Rendering/GL2PSOpenGL2/vtkOpenGLGL2PSHelperImpl.cxx
+++ b/Rendering/GL2PSOpenGL2/vtkOpenGLGL2PSHelperImpl.cxx
@@ -39,6 +39,7 @@
 #include <cassert>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLGL2PSHelperImpl);
 
 namespace
@@ -1241,3 +1242,4 @@ void vtkOpenGLGL2PSHelperImpl::DrawPathSVG(vtkPath* path, double rasterPos[3], d
   gl2psForceRasterPos(&gl2psRasterPos);
   gl2psSpecial(gl2psGetFileFormat(), out.str().c_str());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/GL2PSOpenGL2/vtkOpenGLGL2PSHelperImpl.h b/Rendering/GL2PSOpenGL2/vtkOpenGLGL2PSHelperImpl.h
index dbf803dd64c2881842f8a5222051c68d346cd497..37f6cca2851d17171377e470d5fe2dcda9923fb9 100644
--- a/Rendering/GL2PSOpenGL2/vtkOpenGLGL2PSHelperImpl.h
+++ b/Rendering/GL2PSOpenGL2/vtkOpenGLGL2PSHelperImpl.h
@@ -25,6 +25,7 @@
 #include "vtkOpenGLGL2PSHelper.h"
 #include "vtkRenderingGL2PSOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkPoints;
 
@@ -108,4 +109,5 @@ private:
   void operator=(const vtkOpenGLGL2PSHelperImpl&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLGL2PSHelperImpl_h
diff --git a/Rendering/HyperTreeGrid/vtkHyperTreeGridMapper.cxx b/Rendering/HyperTreeGrid/vtkHyperTreeGridMapper.cxx
index 7946acc44b9d73eb1d75e6f8e1d04d6f2b3e6cb0..a161c762fda403a9a25c0c9ce1921babc1840e8f 100644
--- a/Rendering/HyperTreeGrid/vtkHyperTreeGridMapper.cxx
+++ b/Rendering/HyperTreeGrid/vtkHyperTreeGridMapper.cxx
@@ -31,6 +31,7 @@
 #include "vtkRenderWindow.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 vtkSmartPointer<vtkCompositeDataSet> EnsureComposite(vtkDataObject* dobj)
@@ -217,3 +218,4 @@ int vtkHyperTreeGridMapper::FillInputPortInformation(int vtkNotUsed(port), vtkIn
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkHyperTreeGrid");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/HyperTreeGrid/vtkHyperTreeGridMapper.h b/Rendering/HyperTreeGrid/vtkHyperTreeGridMapper.h
index b266f1525c4ecf9d150db87282bd91046b74564d..808287e56b0fa2fb7362c0d3613ba8797ded5749 100644
--- a/Rendering/HyperTreeGrid/vtkHyperTreeGridMapper.h
+++ b/Rendering/HyperTreeGrid/vtkHyperTreeGridMapper.h
@@ -41,6 +41,7 @@
 
 #include "vtkRenderingHyperTreeGridModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkHyperTreeGrid;
 class vtkCompositeDataSet;
 class vtkPolyData;
@@ -133,4 +134,5 @@ private:
   void operator=(const vtkHyperTreeGridMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Image/vtkDepthImageToPointCloud.cxx b/Rendering/Image/vtkDepthImageToPointCloud.cxx
index 53b649bbed94c908227e2fa0e8f02726276c7a16..c98341a382f4998d3901f0d9cc2f3fd8ee5e081e 100644
--- a/Rendering/Image/vtkDepthImageToPointCloud.cxx
+++ b/Rendering/Image/vtkDepthImageToPointCloud.cxx
@@ -32,6 +32,7 @@
 #include "vtkSMPTools.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDepthImageToPointCloud);
 vtkCxxSetObjectMacro(vtkDepthImageToPointCloud, Camera, vtkCamera);
 
@@ -446,3 +447,4 @@ void vtkDepthImageToPointCloud::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "OutputPointsPrecision: " << this->OutputPointsPrecision << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Image/vtkDepthImageToPointCloud.h b/Rendering/Image/vtkDepthImageToPointCloud.h
index 9d3afd734c19e6fa689ea6aa083baf22228d10bc..0761911ebd6ae3a6468c83dadbcd768691ab1a36 100644
--- a/Rendering/Image/vtkDepthImageToPointCloud.h
+++ b/Rendering/Image/vtkDepthImageToPointCloud.h
@@ -71,6 +71,7 @@
 #include "vtkPolyDataAlgorithm.h"
 #include "vtkRenderingImageModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 
 class VTKRENDERINGIMAGE_EXPORT vtkDepthImageToPointCloud : public vtkPolyDataAlgorithm
@@ -187,4 +188,5 @@ private:
   void operator=(const vtkDepthImageToPointCloud&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Image/vtkImageResliceMapper.cxx b/Rendering/Image/vtkImageResliceMapper.cxx
index fca9ab7e82951cddd6b249b693b2251bafeba69d..408de1d17f843e1bff68287d9c4f83cc9bf7a523 100644
--- a/Rendering/Image/vtkImageResliceMapper.cxx
+++ b/Rendering/Image/vtkImageResliceMapper.cxx
@@ -37,6 +37,7 @@
 // A tolerance to compensate for roundoff errors
 #define VTK_RESLICE_MAPPER_VOXEL_TOL 7.62939453125e-06
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageResliceMapper);
 
 //------------------------------------------------------------------------------
@@ -1623,3 +1624,4 @@ void vtkImageResliceMapper::ReportReferences(vtkGarbageCollector* collector)
   vtkGarbageCollectorReport(collector, this->ImageReslice, "ImageReslice");
   vtkGarbageCollectorReport(collector, this->SliceMapper, "SliceMapper");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Image/vtkImageResliceMapper.h b/Rendering/Image/vtkImageResliceMapper.h
index 285a624c620a8ca26bb1df0745ce8e317c1f9195..6241d115d94efd722e5f438ddad634c1da63e9e4 100644
--- a/Rendering/Image/vtkImageResliceMapper.h
+++ b/Rendering/Image/vtkImageResliceMapper.h
@@ -32,6 +32,7 @@
 #include "vtkImageMapper3D.h"
 #include "vtkRenderingImageModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageSliceMapper;
 class vtkRenderer;
 class vtkRenderWindow;
@@ -280,4 +281,5 @@ private:
   void operator=(const vtkImageResliceMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Image/vtkImageSliceCollection.cxx b/Rendering/Image/vtkImageSliceCollection.cxx
index 05aec234a7258a560e1360d203eb5ee6ff73b8ee..c06426643da3594810949d345d08edded63b94b5 100644
--- a/Rendering/Image/vtkImageSliceCollection.cxx
+++ b/Rendering/Image/vtkImageSliceCollection.cxx
@@ -18,6 +18,7 @@
 #include "vtkImageSlice.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageSliceCollection);
 
 //------------------------------------------------------------------------------
@@ -158,3 +159,4 @@ void vtkImageSliceCollection::Sort()
     delete[] layerArray;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Image/vtkImageSliceCollection.h b/Rendering/Image/vtkImageSliceCollection.h
index 12de787adcfe2a3bdc090d9f837c760e5cc4809f..b7faf55e6b520b7afc59c53932db13c06da83041 100644
--- a/Rendering/Image/vtkImageSliceCollection.h
+++ b/Rendering/Image/vtkImageSliceCollection.h
@@ -30,6 +30,7 @@
 #include "vtkPropCollection.h"
 #include "vtkRenderingImageModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGIMAGE_EXPORT vtkImageSliceCollection : public vtkPropCollection
 {
 public:
@@ -96,4 +97,5 @@ inline vtkImageSlice* vtkImageSliceCollection::GetNextImage(vtkCollectionSimpleI
   return static_cast<vtkImageSlice*>(this->GetNextItemAsObject(cookie));
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Image/vtkImageStack.cxx b/Rendering/Image/vtkImageStack.cxx
index 0c3c15e6adc3d7722b3c7550dbf98690cd1ec05d..6f38917cfd02c44190271baac9b7d034a13381a1 100644
--- a/Rendering/Image/vtkImageStack.cxx
+++ b/Rendering/Image/vtkImageStack.cxx
@@ -22,6 +22,7 @@
 #include "vtkMatrix4x4.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageStack);
 
 //------------------------------------------------------------------------------
@@ -609,3 +610,4 @@ void vtkImageStack::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ActiveLayer: " << this->ActiveLayer << "\n";
   os << indent << "ActiveImage: " << this->GetActiveImage() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Image/vtkImageStack.h b/Rendering/Image/vtkImageStack.h
index 52bbbc12815f6ce2766d3c67f79f6f08e6bbc6b0..c00a429ead8fbb378de12c36a7ca6a57f50668b2 100644
--- a/Rendering/Image/vtkImageStack.h
+++ b/Rendering/Image/vtkImageStack.h
@@ -35,6 +35,7 @@
 #include "vtkImageSlice.h"
 #include "vtkRenderingImageModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageSliceCollection;
 class vtkImageProperty;
 class vtkImageMapper3D;
@@ -184,4 +185,5 @@ private:
   void operator=(const vtkImageStack&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/LICOpenGL2/Testing/Cxx/vtkSurfaceLICTestDriver.h b/Rendering/LICOpenGL2/Testing/Cxx/vtkSurfaceLICTestDriver.h
index f7996d3cdc8dd32daf0e3b1176149f1de3021fa9..9c91d92c9dedda19a446e693c8047ec9901433e3 100644
--- a/Rendering/LICOpenGL2/Testing/Cxx/vtkSurfaceLICTestDriver.h
+++ b/Rendering/LICOpenGL2/Testing/Cxx/vtkSurfaceLICTestDriver.h
@@ -18,7 +18,10 @@
 #include "vtkSystemIncludes.h" // include it first
 #include <string>              // for string
 #include <vector>              // for vector
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
+VTK_ABI_NAMESPACE_END
 
 // Description:
 // Internal test driver. Used by serial and parallel
diff --git a/Rendering/LICOpenGL2/vtkCompositeSurfaceLICMapper.cxx b/Rendering/LICOpenGL2/vtkCompositeSurfaceLICMapper.cxx
index 445d7b10645802b828216306f6e3513770daa937..ff06a39f97e75ac63360fdb13de2a4aaaa9dc523 100644
--- a/Rendering/LICOpenGL2/vtkCompositeSurfaceLICMapper.cxx
+++ b/Rendering/LICOpenGL2/vtkCompositeSurfaceLICMapper.cxx
@@ -57,6 +57,7 @@
 
 typedef std::map<vtkPolyData*, vtkCompositeMapperHelperData*>::iterator dataIter;
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeLICHelper : public vtkCompositeMapperHelper2
 {
 public:
@@ -312,3 +313,4 @@ void vtkCompositeSurfaceLICMapper::Render(vtkRenderer* ren, vtkActor* actor)
 
   ostate->PopFramebufferBindings();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/LICOpenGL2/vtkCompositeSurfaceLICMapper.h b/Rendering/LICOpenGL2/vtkCompositeSurfaceLICMapper.h
index 6792991698adfb49481d982d4b3f78dea5dab4fa..0125343a3f49940d7db2f1eaf37abff1674a2e19 100644
--- a/Rendering/LICOpenGL2/vtkCompositeSurfaceLICMapper.h
+++ b/Rendering/LICOpenGL2/vtkCompositeSurfaceLICMapper.h
@@ -30,6 +30,7 @@
 #include "vtkNew.h"                       // for ivars
 #include "vtkRenderingLICOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSurfaceLICInterface;
 
 class VTKRENDERINGLICOPENGL2_EXPORT vtkCompositeSurfaceLICMapper
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkCompositeSurfaceLICMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/LICOpenGL2/vtkImageDataLIC2D.cxx b/Rendering/LICOpenGL2/vtkImageDataLIC2D.cxx
index b428ec0d02164ee81a5f40539b6fd0f4d2892b68..b32b9fc35879be1bdcbed56462093787fc48533e 100644
--- a/Rendering/LICOpenGL2/vtkImageDataLIC2D.cxx
+++ b/Rendering/LICOpenGL2/vtkImageDataLIC2D.cxx
@@ -57,6 +57,7 @@ using std::deque;
   ext[0] << ", " << ext[1] << ", " << ext[2] << ", " << ext[3] << ", " << ext[4] << ", " << ext[5]
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageDataLIC2D);
 
 //------------------------------------------------------------------------------
@@ -619,3 +620,4 @@ void vtkImageDataLIC2D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Magnification: " << this->Magnification << "\n";
   os << indent << "OpenGLExtensionsSupported: " << this->OpenGLExtensionsSupported << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/LICOpenGL2/vtkImageDataLIC2D.h b/Rendering/LICOpenGL2/vtkImageDataLIC2D.h
index f6cad3b9b6778117804a668432bb9455ad69583a..db659007e14a877e478356d7b048121a04067923 100644
--- a/Rendering/LICOpenGL2/vtkImageDataLIC2D.h
+++ b/Rendering/LICOpenGL2/vtkImageDataLIC2D.h
@@ -39,6 +39,7 @@
 #include "vtkRenderingLICOpenGL2Module.h" // For export macro
 #include "vtkWeakPointer.h"               // needed for vtkWeakPointer.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindow;
 class vtkOpenGLRenderWindow;
 class vtkImageNoiseSource;
@@ -146,4 +147,5 @@ private:
   void operator=(const vtkImageDataLIC2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/LICOpenGL2/vtkLICNoiseHelper.cxx b/Rendering/LICOpenGL2/vtkLICNoiseHelper.cxx
index 7bfd16a8dc2cb0fcd0258e32f12ed0a31ba3eb61..a99097d1f87334cd7dd74bcc0166ac6b7a1381cb 100644
--- a/Rendering/LICOpenGL2/vtkLICNoiseHelper.cxx
+++ b/Rendering/LICOpenGL2/vtkLICNoiseHelper.cxx
@@ -20,6 +20,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -401,3 +402,4 @@ vtkImageData* vtkLICRandomNoise2D::GetNoiseResource()
   reader->Delete();
   return data;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/LICOpenGL2/vtkLICNoiseHelper.h b/Rendering/LICOpenGL2/vtkLICNoiseHelper.h
index 4e084279a734e89dd74cc661366d7f7d0f0b5046..ffe396145db42a517b68076f8ba0840e47aa6bdd 100644
--- a/Rendering/LICOpenGL2/vtkLICNoiseHelper.h
+++ b/Rendering/LICOpenGL2/vtkLICNoiseHelper.h
@@ -23,6 +23,7 @@
 
 #include "vtkMinimalStandardRandomSequence.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 
 /**
@@ -146,5 +147,6 @@ private:
   vtkLICRandomNumberGeneratorInterface ProbGen;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkLICNoiseHelper.h
diff --git a/Rendering/LICOpenGL2/vtkLineIntegralConvolution2D.cxx b/Rendering/LICOpenGL2/vtkLineIntegralConvolution2D.cxx
index cde70190787c318e8f002d12975df07966977ac7..28a935795cabee3589d20d39624da66d681b10d6 100644
--- a/Rendering/LICOpenGL2/vtkLineIntegralConvolution2D.cxx
+++ b/Rendering/LICOpenGL2/vtkLineIntegralConvolution2D.cxx
@@ -70,12 +70,14 @@ using std::vector;
 #include <sstream>
 using std::ostringstream;
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 static string mpifn(int rank, const char* fn)
 {
   ostringstream oss;
   oss << rank << "_" << fn;
   return oss.str();
 }
+VTK_ABI_NAMESPACE_END
 #endif
 #if vtkLineIntegralConvolution2DDEBUG >= 3
 #define vtkLICCheckFrameBufferStatusMacro(mode) vtkCheckFrameBufferStatusMacro(mode)
@@ -106,6 +108,7 @@ employed during LIC integration. This class encapsulates all
 of the knowledge of our use of the FBO and texture units. Care
 is taken to avoid feedback loops.
 */
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLICPingPongBufferManager
 {
 public:
@@ -726,9 +729,11 @@ private:
   vtkTextureObject* PongTextures[2];
   vtkTextureObject** Textures[2];
 };
+VTK_ABI_NAMESPACE_END
 
 namespace vtkLineIntegralConvolution2DUtil
 {
+VTK_ABI_NAMESPACE_BEGIN
 /**
 glsl shader code for selecting vector comps.
 */
@@ -868,9 +873,11 @@ void StreamingFindMinMax(vtkOpenGLFramebufferObject* fbo, vtkTextureObject* tex,
 #endif
 }
 
-};
+VTK_ABI_NAMESPACE_END
+}
 using namespace vtkLineIntegralConvolution2DUtil;
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkObjectFactoryNewMacro(vtkLineIntegralConvolution2D);
 
@@ -1114,6 +1121,7 @@ void vtkLineIntegralConvolution2D::SetAAVShader(vtkShaderProgram* prog)
     this->AAVShader->Program = prog;
   }
 }
+VTK_ABI_NAMESPACE_END
 
 namespace
 {
@@ -1134,6 +1142,7 @@ void BuildAShader(vtkOpenGLRenderWindow* renWin, vtkOpenGLHelper** cbor, const c
 }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 void vtkLineIntegralConvolution2D::BuildShaders()
 {
@@ -1909,3 +1918,4 @@ void vtkLineIntegralConvolution2D::PrintSelf(ostream& os, vtkIndent indent)
     << indent << "NormalizeVectors=" << this->NormalizeVectors << endl
     << indent << "ComponentIds=" << this->ComponentIds[0] << ", " << this->ComponentIds[1] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/LICOpenGL2/vtkLineIntegralConvolution2D.h b/Rendering/LICOpenGL2/vtkLineIntegralConvolution2D.h
index 72a9f3a61da352d72c1517183fab97ea50620d51..ec10acd55bea461b134de072d20463a304c2dd0a 100644
--- a/Rendering/LICOpenGL2/vtkLineIntegralConvolution2D.h
+++ b/Rendering/LICOpenGL2/vtkLineIntegralConvolution2D.h
@@ -97,6 +97,7 @@
 #include "vtkWeakPointer.h"               // for ren context
 #include <deque>                          // for deque
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLHelper;
 class vtkOpenGLRenderWindow;
@@ -428,4 +429,5 @@ private:
   void operator=(const vtkLineIntegralConvolution2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/LICOpenGL2/vtkPainterCommunicator.h b/Rendering/LICOpenGL2/vtkPainterCommunicator.h
index d0704822fbb15e607d4880bb3e8ec3ec0369159c..b4d80c6097cafaf4f6d8f9bd5c03c8554fd3988d 100644
--- a/Rendering/LICOpenGL2/vtkPainterCommunicator.h
+++ b/Rendering/LICOpenGL2/vtkPainterCommunicator.h
@@ -27,6 +27,7 @@
 
 #include "vtkRenderingLICOpenGL2Module.h" // for export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGLICOPENGL2_EXPORT vtkPainterCommunicator
 {
 public:
@@ -77,5 +78,6 @@ public:
   virtual bool GetMPIFinalized() { return true; }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkPainterCommunicator.h
diff --git a/Rendering/LICOpenGL2/vtkStructuredGridLIC2D.cxx b/Rendering/LICOpenGL2/vtkStructuredGridLIC2D.cxx
index 2623d784c05823337cc61adf2414306d5898bdad..7dbfe02419e9a11c0b57530a1cd04cc40f021f3e 100644
--- a/Rendering/LICOpenGL2/vtkStructuredGridLIC2D.cxx
+++ b/Rendering/LICOpenGL2/vtkStructuredGridLIC2D.cxx
@@ -47,6 +47,7 @@
 #define PRINTEXTENT(ext)                                                                           \
   ext[0] << ", " << ext[1] << ", " << ext[2] << ", " << ext[3] << ", " << ext[4] << ", " << ext[5]
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkStructuredGridLIC2D);
 //------------------------------------------------------------------------------
 vtkStructuredGridLIC2D::vtkStructuredGridLIC2D()
@@ -741,3 +742,4 @@ void vtkStructuredGridLIC2D::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "LICSuccess: " << this->LICSuccess << "\n";
   os << indent << "Magnification: " << this->Magnification << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/LICOpenGL2/vtkStructuredGridLIC2D.h b/Rendering/LICOpenGL2/vtkStructuredGridLIC2D.h
index f1e35a4b47fbd3d94a8e01e0b7a65ff1b21b6f4b..51c91f00dbee320f83fd6bd98bd3e041bc3186d0 100644
--- a/Rendering/LICOpenGL2/vtkStructuredGridLIC2D.h
+++ b/Rendering/LICOpenGL2/vtkStructuredGridLIC2D.h
@@ -46,6 +46,7 @@
 #include "vtkStructuredGridAlgorithm.h"
 #include "vtkWeakPointer.h" // needed for vtkWeakPointer.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageNoiseSource;
 class vtkOpenGLHelper;
 class vtkRenderWindow;
@@ -173,4 +174,5 @@ private:
   void operator=(const vtkStructuredGridLIC2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/LICOpenGL2/vtkSurfaceLICComposite.cxx b/Rendering/LICOpenGL2/vtkSurfaceLICComposite.cxx
index 6ebad448222e2f7ae756dd5dc36c717cfbffbaf4..ddba1d2338cdf303c70b1d0c31c8a63f36965569 100644
--- a/Rendering/LICOpenGL2/vtkSurfaceLICComposite.cxx
+++ b/Rendering/LICOpenGL2/vtkSurfaceLICComposite.cxx
@@ -31,6 +31,7 @@ using std::vector;
 #define vtkSurfaceLICCompositeDEBUG 0
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkSurfaceLICComposite);
 
 //------------------------------------------------------------------------------
@@ -384,3 +385,4 @@ ostream& operator<<(ostream& os, vtkSurfaceLICComposite& ss)
   }
   return os;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/LICOpenGL2/vtkSurfaceLICComposite.h b/Rendering/LICOpenGL2/vtkSurfaceLICComposite.h
index 97d0da6d6458107faba4bc812ac053f5c0349ea0..491d0652a33e9b0a7642f0eca772083402f34f21 100644
--- a/Rendering/LICOpenGL2/vtkSurfaceLICComposite.h
+++ b/Rendering/LICOpenGL2/vtkSurfaceLICComposite.h
@@ -31,6 +31,7 @@
 #include <deque>                          // for deque
 #include <vector>                         // for vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 class vtkOpenGLRenderWindow;
 class vtkTextureObject;
@@ -261,4 +262,6 @@ private:
 
 ostream& operator<<(ostream& os, vtkSurfaceLICComposite& ss);
 
+VTK_ABI_NAMESPACE_END
+
 #endif
diff --git a/Rendering/LICOpenGL2/vtkSurfaceLICHelper.cxx b/Rendering/LICOpenGL2/vtkSurfaceLICHelper.cxx
index ec2767f434f6857b97430ab975f55edfcef3e141..e48505f95f01666f5dff75726085aac5aeb1351d 100644
--- a/Rendering/LICOpenGL2/vtkSurfaceLICHelper.cxx
+++ b/Rendering/LICOpenGL2/vtkSurfaceLICHelper.cxx
@@ -42,6 +42,7 @@
 // Description
 // find min/max of unmasked fragments across all regions
 // download each search each region individually
+VTK_ABI_NAMESPACE_BEGIN
 void vtkSurfaceLICHelper::StreamingFindMinMax(
   vtkOpenGLFramebufferObject* fbo, std::deque<vtkPixelExtent>& blockExts, float& min, float& max)
 {
@@ -553,3 +554,4 @@ void vtkSurfaceLICHelper::GetPixelBounds(float* rgba, int ni, std::deque<vtkPixe
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/LICOpenGL2/vtkSurfaceLICHelper.h b/Rendering/LICOpenGL2/vtkSurfaceLICHelper.h
index f8d2a19f035fb55a2b23f5c1652848d44e3ab034..0d29323118b33f173b7808f6ed190808bbf5b266 100644
--- a/Rendering/LICOpenGL2/vtkSurfaceLICHelper.h
+++ b/Rendering/LICOpenGL2/vtkSurfaceLICHelper.h
@@ -29,6 +29,7 @@
 
 #include <deque> // for methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLRenderWindow;
 class vtkPainterCommunicator;
@@ -229,5 +230,6 @@ public:
 protected:
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkSurfaceLICHelper.h
diff --git a/Rendering/LICOpenGL2/vtkSurfaceLICInterface.cxx b/Rendering/LICOpenGL2/vtkSurfaceLICInterface.cxx
index 55d4b0194c5be97c29d686a7137dc01d625e9806..5121b051cf26410df66cab6acce1cc91b47fb8ca 100644
--- a/Rendering/LICOpenGL2/vtkSurfaceLICInterface.cxx
+++ b/Rendering/LICOpenGL2/vtkSurfaceLICInterface.cxx
@@ -61,14 +61,17 @@ typedef vtkLineIntegralConvolution2D vtkLIC2D;
 #include <sstream>
 using std::ostringstream;
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 static std::string mpifn(vtkPainterCommunicator* comm, const char* fn)
 {
   ostringstream oss;
   oss << comm->GetRank() << "_" << fn;
   return oss.str();
 }
+VTK_ABI_NAMESPACE_END
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkSurfaceLICInterface);
 
 //------------------------------------------------------------------------------
@@ -1172,3 +1175,4 @@ void vtkSurfaceLICInterface::PrintSelf(ostream& os, vtkIndent indent)
      << indent << "AlwaysUpdate=" << this->AlwaysUpdate << endl
      << indent << "CompositeStrategy=" << this->CompositeStrategy << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/LICOpenGL2/vtkSurfaceLICInterface.h b/Rendering/LICOpenGL2/vtkSurfaceLICInterface.h
index c262df2aa8a1a13e7bb79b6068d533b88906a1ec..690f1141d746a767bdd665e5212de1b0fed0e8ac 100644
--- a/Rendering/LICOpenGL2/vtkSurfaceLICInterface.h
+++ b/Rendering/LICOpenGL2/vtkSurfaceLICInterface.h
@@ -59,6 +59,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingLICOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindow;
 class vtkRenderer;
 class vtkActor;
@@ -599,4 +600,5 @@ private:
   void operator=(const vtkSurfaceLICInterface&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/LICOpenGL2/vtkSurfaceLICMapper.cxx b/Rendering/LICOpenGL2/vtkSurfaceLICMapper.cxx
index d5b8b2f02020e43afc70472496f6d5ac9e02954f..9caf4ec035dc37ff5c707578f47c693dd5943fb7 100644
--- a/Rendering/LICOpenGL2/vtkSurfaceLICMapper.cxx
+++ b/Rendering/LICOpenGL2/vtkSurfaceLICMapper.cxx
@@ -38,6 +38,7 @@
 #define vtkSurfaceLICMapperDEBUG 0
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkSurfaceLICMapper);
 
 //------------------------------------------------------------------------------
@@ -251,3 +252,4 @@ void vtkSurfaceLICMapper::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/LICOpenGL2/vtkSurfaceLICMapper.h b/Rendering/LICOpenGL2/vtkSurfaceLICMapper.h
index 6926e2c41e749b922edd965f506c8d1b420330a6..c81b4baaaebfacfa5ae4f890312476a7d906e3dc 100644
--- a/Rendering/LICOpenGL2/vtkSurfaceLICMapper.h
+++ b/Rendering/LICOpenGL2/vtkSurfaceLICMapper.h
@@ -59,6 +59,7 @@
 #include "vtkOpenGLPolyDataMapper.h"
 #include "vtkRenderingLICOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSurfaceLICInterface;
 class vtkPainterCommunicator;
 
@@ -130,4 +131,5 @@ private:
   void operator=(const vtkSurfaceLICMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/LICOpenGL2/vtkTextureIO.cxx b/Rendering/LICOpenGL2/vtkTextureIO.cxx
index 0161e194fbd376b0a1b3bda0b899b9363743ddcb..53629a01bdb602aca818fcc662734163ceaf2543 100644
--- a/Rendering/LICOpenGL2/vtkTextureIO.cxx
+++ b/Rendering/LICOpenGL2/vtkTextureIO.cxx
@@ -34,6 +34,7 @@ using std::ostringstream;
 using std::string;
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 static vtkFloatArray* DownloadTexture(vtkTextureObject* texture, const unsigned int* sub)
 {
   int tt = texture->GetVTKDataType();
@@ -155,3 +156,4 @@ void vtkTextureIO::Write(const char* filename, vtkTextureObject* texture,
   w->Delete();
   mb->Delete();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/LICOpenGL2/vtkTextureIO.h b/Rendering/LICOpenGL2/vtkTextureIO.h
index 8e55144ad55c8d8a13e49ab8eb64dac65d810c08..5cb16b31cbad7416d28d9975a687c4a113a72b74 100644
--- a/Rendering/LICOpenGL2/vtkTextureIO.h
+++ b/Rendering/LICOpenGL2/vtkTextureIO.h
@@ -29,6 +29,7 @@
 #include <deque>   // for deque
 #include <string>  // for string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTextureObject;
 
 class VTKRENDERINGLICOPENGL2_EXPORT vtkTextureIO
@@ -76,5 +77,6 @@ public:
   ///@}
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkTextureIO.h
diff --git a/Rendering/LOD/vtkLODActor.cxx b/Rendering/LOD/vtkLODActor.cxx
index 5ae7308a30068a8492ac31556c31f316fd3b4214..1602e2572d3c7bcef647a64cef510abd19e95161 100644
--- a/Rendering/LOD/vtkLODActor.cxx
+++ b/Rendering/LOD/vtkLODActor.cxx
@@ -28,6 +28,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLODActor);
 vtkCxxSetObjectMacro(vtkLODActor, LowResFilter, vtkPolyDataAlgorithm);
 vtkCxxSetObjectMacro(vtkLODActor, MediumResFilter, vtkPolyDataAlgorithm);
@@ -363,3 +364,4 @@ void vtkLODActor::ShallowCopy(vtkProp* prop)
   // Now do superclass
   this->vtkActor::ShallowCopy(prop);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/LOD/vtkLODActor.h b/Rendering/LOD/vtkLODActor.h
index ef920abce106f622fa2feb0ffa777fe9a4ee2e51..294549da9d45d91ac063c1bf73923ab800a278a5 100644
--- a/Rendering/LOD/vtkLODActor.h
+++ b/Rendering/LOD/vtkLODActor.h
@@ -59,6 +59,7 @@
 #include "vtkActor.h"
 #include "vtkRenderingLODModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMapper;
 class vtkMapperCollection;
 class vtkPolyDataAlgorithm;
@@ -163,4 +164,5 @@ private:
   void operator=(const vtkLODActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/LOD/vtkQuadricLODActor.cxx b/Rendering/LOD/vtkQuadricLODActor.cxx
index dafc281831a09c1d87486befe9cb437ecb7738a7..dfb7635ba2563a30a5f5b67c13127f901137b0fe 100644
--- a/Rendering/LOD/vtkQuadricLODActor.cxx
+++ b/Rendering/LOD/vtkQuadricLODActor.cxx
@@ -29,6 +29,7 @@
 #include "vtkRenderer.h"
 #include "vtkTexture.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQuadricLODActor);
 
 //------------------------------------------------------------------------------
@@ -369,3 +370,4 @@ void vtkQuadricLODActor::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/LOD/vtkQuadricLODActor.h b/Rendering/LOD/vtkQuadricLODActor.h
index 1143e31b437b3eee2ad8fa66c2505c5733dc2090..7ce20e868d7a73ba04239a2e442f510061b3e6d6 100644
--- a/Rendering/LOD/vtkQuadricLODActor.h
+++ b/Rendering/LOD/vtkQuadricLODActor.h
@@ -53,6 +53,7 @@
 #include "vtkActor.h"
 #include "vtkRenderingLODModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQuadricClustering;
 class vtkPolyDataMapper;
 class vtkCamera;
@@ -239,4 +240,5 @@ private:
   void operator=(const vtkQuadricLODActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Label/vtkDynamic2DLabelMapper.cxx b/Rendering/Label/vtkDynamic2DLabelMapper.cxx
index 6760ac510d3f0d9017adcfc9759895af716b350d..f697a4fa872db8069b9681f7fa441093e48ed2f8 100644
--- a/Rendering/Label/vtkDynamic2DLabelMapper.cxx
+++ b/Rendering/Label/vtkDynamic2DLabelMapper.cxx
@@ -48,6 +48,7 @@
 
 #include <fstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDynamic2DLabelMapper);
 
 //------------------------------------------------------------------------------
@@ -698,3 +699,4 @@ void vtkDynamic2DLabelMapper::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "LabelHeightPadding: " << (this->LabelHeightPadding ? "on" : "off") << endl;
   os << indent << "LabelWidthPadding: " << (this->LabelWidthPadding ? "on" : "off") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkDynamic2DLabelMapper.h b/Rendering/Label/vtkDynamic2DLabelMapper.h
index 171cf3f61d31284315f8aeb3e93af0994058ac41..bcfd4a829dc81f5c4c20c2a9b30011452b12e15f 100644
--- a/Rendering/Label/vtkDynamic2DLabelMapper.h
+++ b/Rendering/Label/vtkDynamic2DLabelMapper.h
@@ -56,6 +56,7 @@
 #include "vtkLabeledDataMapper.h"
 #include "vtkRenderingLabelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGLABEL_EXPORT vtkDynamic2DLabelMapper : public vtkLabeledDataMapper
 {
 public:
@@ -136,4 +137,5 @@ private:
   void operator=(const vtkDynamic2DLabelMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Label/vtkFreeTypeLabelRenderStrategy.cxx b/Rendering/Label/vtkFreeTypeLabelRenderStrategy.cxx
index 165aaab59e0823c99e997ad1cd45269dbd4be5f4..d37016cc0b9383293018c64486cd5e181189c18d 100644
--- a/Rendering/Label/vtkFreeTypeLabelRenderStrategy.cxx
+++ b/Rendering/Label/vtkFreeTypeLabelRenderStrategy.cxx
@@ -25,6 +25,7 @@
 #include "vtkTimerLog.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFreeTypeLabelRenderStrategy);
 
 //------------------------------------------------------------------------------
@@ -172,3 +173,4 @@ void vtkFreeTypeLabelRenderStrategy::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkFreeTypeLabelRenderStrategy.h b/Rendering/Label/vtkFreeTypeLabelRenderStrategy.h
index 7e3fc157ed2adb555679389d18a17d03ee32bc26..75caccec62b2c2252df09d2fa6dcb4a8fd2e17b6 100644
--- a/Rendering/Label/vtkFreeTypeLabelRenderStrategy.h
+++ b/Rendering/Label/vtkFreeTypeLabelRenderStrategy.h
@@ -27,6 +27,7 @@
 #include "vtkLabelRenderStrategy.h"
 #include "vtkRenderingLabelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 class vtkTextRenderer;
 class vtkTextMapper;
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkFreeTypeLabelRenderStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Label/vtkLabelHierarchy.cxx b/Rendering/Label/vtkLabelHierarchy.cxx
index 2dc7698b4e22b32b763419d4af23bfa6355b96d7..a14722b82238c6d216ac0dd64811da598e85c6d6 100644
--- a/Rendering/Label/vtkLabelHierarchy.cxx
+++ b/Rendering/Label/vtkLabelHierarchy.cxx
@@ -72,6 +72,7 @@
 // in the VTK code base, this is one way to do it. Feel free to change it
 // if you have a better solution. But make sure it works on Borland 5.5...
 //
+VTK_ABI_NAMESPACE_BEGIN
 vtkLabelHierarchy* vtkLabelHierarchy::Implementation::Current;
 
 //------------------------------------------------------------------------------
@@ -2608,3 +2609,4 @@ void vtkLabelHierarchy::GetAnchorFrustumPlanes(
   frustumPlanes[22] = 1.0;
   frustumPlanes[23] = VTK_DOUBLE_MAX;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkLabelHierarchy.h b/Rendering/Label/vtkLabelHierarchy.h
index 0f871f239b8cac993782dd4a0cadc66009db9ce8..b37f10b22b8453dc34eaccad92cb225fb2d7cd22 100644
--- a/Rendering/Label/vtkLabelHierarchy.h
+++ b/Rendering/Label/vtkLabelHierarchy.h
@@ -64,6 +64,7 @@
 #include "vtkPointSet.h"
 #include "vtkRenderingLabelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkCamera;
 class vtkCoincidentPoints;
@@ -290,4 +291,5 @@ private:
   void operator=(const vtkLabelHierarchy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLabelHierarchy_h
diff --git a/Rendering/Label/vtkLabelHierarchyAlgorithm.cxx b/Rendering/Label/vtkLabelHierarchyAlgorithm.cxx
index 410bb2044bbd9b434f66d6e5c1a4e725ea43b3e4..4fde9deef6ed8fb63c02d7b9211b51a3e0f9a610 100644
--- a/Rendering/Label/vtkLabelHierarchyAlgorithm.cxx
+++ b/Rendering/Label/vtkLabelHierarchyAlgorithm.cxx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkStreamingDemandDrivenPipeline.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLabelHierarchyAlgorithm);
 
 //------------------------------------------------------------------------------
@@ -199,3 +200,4 @@ void vtkLabelHierarchyAlgorithm::AddInputData(int index, vtkDataObject* input)
 {
   this->AddInputDataInternal(index, input);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkLabelHierarchyAlgorithm.h b/Rendering/Label/vtkLabelHierarchyAlgorithm.h
index b0254983149c32560943f9e234c2c02001ae882f..69c3ac748644a013320203717804947f57b8c38b 100644
--- a/Rendering/Label/vtkLabelHierarchyAlgorithm.h
+++ b/Rendering/Label/vtkLabelHierarchyAlgorithm.h
@@ -37,6 +37,7 @@
 #include "vtkAlgorithm.h"
 #include "vtkRenderingLabelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 class vtkLabelHierarchy;
 
@@ -124,4 +125,5 @@ private:
   void operator=(const vtkLabelHierarchyAlgorithm&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Label/vtkLabelHierarchyCompositeIterator.cxx b/Rendering/Label/vtkLabelHierarchyCompositeIterator.cxx
index 63ef3192a7bbe584c49fdabd501ff1d7f46e2580..3a71bea24e4cfb408de0b983c74535c2e888fca3 100644
--- a/Rendering/Label/vtkLabelHierarchyCompositeIterator.cxx
+++ b/Rendering/Label/vtkLabelHierarchyCompositeIterator.cxx
@@ -26,6 +26,7 @@
 #include <utility>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLabelHierarchyCompositeIterator);
 
 class vtkLabelHierarchyCompositeIterator::Internal
@@ -168,3 +169,4 @@ void vtkLabelHierarchyCompositeIterator::PrintSelf(ostream& os, vtkIndent indent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkLabelHierarchyCompositeIterator.h b/Rendering/Label/vtkLabelHierarchyCompositeIterator.h
index 0aace68f9b6d2a2f05982f764a70c7516e5bd276..e77eb31eb49066531dd0ed58c2488019e7a9fe20 100644
--- a/Rendering/Label/vtkLabelHierarchyCompositeIterator.h
+++ b/Rendering/Label/vtkLabelHierarchyCompositeIterator.h
@@ -40,6 +40,7 @@
 #include "vtkLabelHierarchyIterator.h"
 #include "vtkRenderingLabelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 class vtkLabelHierarchy;
 class vtkPolyData;
@@ -122,4 +123,5 @@ private:
   void operator=(const vtkLabelHierarchyCompositeIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLabelHierarchyCompositeIterator_h
diff --git a/Rendering/Label/vtkLabelHierarchyIterator.cxx b/Rendering/Label/vtkLabelHierarchyIterator.cxx
index 5f3d579937e925c278a1031e78d8331c0ce5b6b1..04d57318f1a88abd2d21256c12f517a77c988815 100644
--- a/Rendering/Label/vtkLabelHierarchyIterator.cxx
+++ b/Rendering/Label/vtkLabelHierarchyIterator.cxx
@@ -35,6 +35,7 @@
 #include "vtkPoints.h"
 #include "vtkPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkLabelHierarchyIterator, Hierarchy, vtkLabelHierarchy);
 vtkCxxSetObjectMacro(vtkLabelHierarchyIterator, TraversedBounds, vtkPolyData);
 
@@ -288,3 +289,4 @@ void vtkLabelHierarchyIterator::BoxNodeInternal2(const double* ctr, double sz)
     this->TraversedBounds->InsertNextCell(VTK_LINE, 2, econn);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkLabelHierarchyIterator.h b/Rendering/Label/vtkLabelHierarchyIterator.h
index d1d3f67e0e1e65b0dabfe755d4c106a3ed35adc6..816062839a966f3098487d9030751ad646307504 100644
--- a/Rendering/Label/vtkLabelHierarchyIterator.h
+++ b/Rendering/Label/vtkLabelHierarchyIterator.h
@@ -32,6 +32,7 @@
 #include "vtkRenderingLabelModule.h" // For export macro
 #include "vtkStdString.h"            // for std string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdTypeArray;
 class vtkLabelHierarchy;
 class vtkPolyData;
@@ -164,4 +165,5 @@ private:
   void operator=(const vtkLabelHierarchyIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLabelHierarchyIterator_h
diff --git a/Rendering/Label/vtkLabelHierarchyPrivate.h b/Rendering/Label/vtkLabelHierarchyPrivate.h
index 57e2c84f11eebcd39643dd8165c3e9111d0d4e13..ae4588d0f423bda5a382d4f907e21b7b3df7e212 100644
--- a/Rendering/Label/vtkLabelHierarchyPrivate.h
+++ b/Rendering/Label/vtkLabelHierarchyPrivate.h
@@ -8,6 +8,7 @@
 //----------------------------------------------------------------------------
 // vtkLabelHierarchy::Implementation
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLabelHierarchy::Implementation
 {
 public:
@@ -243,5 +244,6 @@ inline void vtkLabelHierarchy::Implementation::LabelSet::AddChildren(
   this->SetChildGeometry(self);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLabelHierarchyPrivate_h
 // VTK-HeaderTest-Exclude: vtkLabelHierarchyPrivate.h
diff --git a/Rendering/Label/vtkLabelPlacementMapper.cxx b/Rendering/Label/vtkLabelPlacementMapper.cxx
index 34595e2a3af820971afe8128526adf2a39b854e2..3dda9c68119382e690ce9b228eab386e7a7f284e 100644
--- a/Rendering/Label/vtkLabelPlacementMapper.cxx
+++ b/Rendering/Label/vtkLabelPlacementMapper.cxx
@@ -46,6 +46,7 @@
 #include "vtkTransformCoordinateSystems.h"
 
 // From: http://www.flipcode.com/archives/2D_OBB_Intersection.shtml
+VTK_ABI_NAMESPACE_BEGIN
 class LabelRect
 {
 public:
@@ -903,3 +904,4 @@ void vtkLabelPlacementMapper::PrintSelf(ostream& os, vtkIndent indent)
      << this->BackgroundColor[1] << ", " << this->BackgroundColor[2] << endl;
   os << indent << "BackgroundOpacity: " << this->BackgroundOpacity << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkLabelPlacementMapper.h b/Rendering/Label/vtkLabelPlacementMapper.h
index 46adf0e98856878dbbd0b022a282e1f24074df9f..a088bf8cc588ce6cb3edfe39b05dec34f5909455 100644
--- a/Rendering/Label/vtkLabelPlacementMapper.h
+++ b/Rendering/Label/vtkLabelPlacementMapper.h
@@ -38,6 +38,7 @@
 #include "vtkMapper2D.h"
 #include "vtkRenderingLabelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCoordinate;
 class vtkLabelRenderStrategy;
 class vtkSelectVisiblePoints;
@@ -246,4 +247,5 @@ private:
   void operator=(const vtkLabelPlacementMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Label/vtkLabelPlacer.cxx b/Rendering/Label/vtkLabelPlacer.cxx
index c28ee88e652b1f422afcae22458960471d885f1c..35ee648a083941913a1846b37d238f76746a665b 100644
--- a/Rendering/Label/vtkLabelPlacer.cxx
+++ b/Rendering/Label/vtkLabelPlacer.cxx
@@ -43,6 +43,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLabelPlacer);
 vtkCxxSetObjectMacro(vtkLabelPlacer, AnchorTransform, vtkCoordinate);
 
@@ -804,3 +805,4 @@ int vtkLabelPlacer::RequestData(vtkInformation* vtkNotUsed(request),
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkLabelPlacer.h b/Rendering/Label/vtkLabelPlacer.h
index 8c2fe2be828abdcd0dcf82c93fe10d1cc55f93b4..effcae78397f46217c645449b9541aa579c03995 100644
--- a/Rendering/Label/vtkLabelPlacer.h
+++ b/Rendering/Label/vtkLabelPlacer.h
@@ -45,6 +45,7 @@
 #include "vtkPolyDataAlgorithm.h"
 #include "vtkRenderingLabelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkCoordinate;
 class vtkSelectVisiblePoints;
@@ -221,4 +222,5 @@ private:
   void operator=(const vtkLabelPlacer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLabelPlacer_h
diff --git a/Rendering/Label/vtkLabelRenderStrategy.cxx b/Rendering/Label/vtkLabelRenderStrategy.cxx
index 5a6dc18e476b44d34b8175a5222fc766cf196f75..a047bbb31f45e5a7e940ae07f57e1894878657a8 100644
--- a/Rendering/Label/vtkLabelRenderStrategy.cxx
+++ b/Rendering/Label/vtkLabelRenderStrategy.cxx
@@ -18,6 +18,7 @@
 #include "vtkRenderer.h"
 #include "vtkTextProperty.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkLabelRenderStrategy, Renderer, vtkRenderer);
 vtkCxxSetObjectMacro(vtkLabelRenderStrategy, DefaultTextProperty, vtkTextProperty);
 
@@ -42,3 +43,4 @@ void vtkLabelRenderStrategy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Renderer: " << this->Renderer << endl;
   os << indent << "DefaultTextProperty: " << this->DefaultTextProperty << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkLabelRenderStrategy.h b/Rendering/Label/vtkLabelRenderStrategy.h
index c26e85ca7cb67b7971acfdf4fa6a8143f177c3bf..3f03e117e90fbf2eb221e3c9939a9afbb573145e 100644
--- a/Rendering/Label/vtkLabelRenderStrategy.h
+++ b/Rendering/Label/vtkLabelRenderStrategy.h
@@ -28,6 +28,7 @@
 
 #include "vtkStdString.h" // For string support
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkWindow;
 class vtkTextProperty;
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkLabelRenderStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Label/vtkLabelSizeCalculator.cxx b/Rendering/Label/vtkLabelSizeCalculator.cxx
index 7af9106f240b939d931199dfeac018bfe05831b9..32e6a4d4ed33049a9f4a183de944456a3ed13258 100644
--- a/Rendering/Label/vtkLabelSizeCalculator.cxx
+++ b/Rendering/Label/vtkLabelSizeCalculator.cxx
@@ -21,6 +21,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLabelSizeCalculator::Internals
 {
 public:
@@ -243,3 +244,4 @@ vtkIntArray* vtkLabelSizeCalculator::LabelSizesForArray(
 
   return lsz;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkLabelSizeCalculator.h b/Rendering/Label/vtkLabelSizeCalculator.h
index 830883fcd37ee2a8306029308c2ca818afcf1943..a3bb7c65df74cb910f3d8358a80dc603397e047b 100644
--- a/Rendering/Label/vtkLabelSizeCalculator.h
+++ b/Rendering/Label/vtkLabelSizeCalculator.h
@@ -40,6 +40,7 @@
 #include "vtkPassInputTypeAlgorithm.h"
 #include "vtkRenderingLabelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIntArray;
 class vtkTextRenderer;
 class vtkStringArray;
@@ -107,4 +108,5 @@ private:
   void operator=(const vtkLabelSizeCalculator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkLabelSizeCalculator_h
diff --git a/Rendering/Label/vtkLabeledDataMapper.cxx b/Rendering/Label/vtkLabeledDataMapper.cxx
index 74063784fd161230f68808b93eb7f2dcfa60a2b2..8b93636d81737edf0ac85d2623a379cdd938173e 100644
--- a/Rendering/Label/vtkLabeledDataMapper.cxx
+++ b/Rendering/Label/vtkLabeledDataMapper.cxx
@@ -37,6 +37,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLabeledDataMapper::Internals
 {
 public:
@@ -815,3 +816,4 @@ void vtkLabeledDataMapper::SetFieldDataName(const char* arrayName)
   }
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkLabeledDataMapper.h b/Rendering/Label/vtkLabeledDataMapper.h
index 826853bf567906c1226c5ddd735845cbc99bc261..e1a19446b332e58c3b1921bb9378250bd1e306bb 100644
--- a/Rendering/Label/vtkLabeledDataMapper.h
+++ b/Rendering/Label/vtkLabeledDataMapper.h
@@ -53,6 +53,7 @@
 
 #include <cassert> // For assert macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 class vtkDataSet;
 class vtkTextMapper;
@@ -285,4 +286,5 @@ private:
   void operator=(const vtkLabeledDataMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Label/vtkLabeledTreeMapDataMapper.cxx b/Rendering/Label/vtkLabeledTreeMapDataMapper.cxx
index 0a261c5037dd0badc9beba82e89508b0d5f8c512..2b2fb978bbccdaba9788db234471bf38216e5b5c 100644
--- a/Rendering/Label/vtkLabeledTreeMapDataMapper.cxx
+++ b/Rendering/Label/vtkLabeledTreeMapDataMapper.cxx
@@ -38,6 +38,7 @@
 #include "vtkViewport.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLabeledTreeMapDataMapper);
 
 vtkLabeledTreeMapDataMapper::vtkLabeledTreeMapDataMapper()
@@ -990,3 +991,4 @@ void vtkLabeledTreeMapDataMapper::GetLevelRange(int range[2])
   range[0] = this->StartLevel;
   range[1] = this->EndLevel;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkLabeledTreeMapDataMapper.h b/Rendering/Label/vtkLabeledTreeMapDataMapper.h
index c19bea8a98665730a107ce97a6eb7b9ca55788bf..7156057dace5f8c17d6f928f115c3c19a52ca6ef 100644
--- a/Rendering/Label/vtkLabeledTreeMapDataMapper.h
+++ b/Rendering/Label/vtkLabeledTreeMapDataMapper.h
@@ -47,6 +47,7 @@
 #include "vtkLabeledDataMapper.h"
 #include "vtkRenderingLabelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTree;
 class vtkPoints;
 class vtkCoordinate;
@@ -172,4 +173,5 @@ private:
   void operator=(const vtkLabeledTreeMapDataMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Label/vtkPointSetToLabelHierarchy.cxx b/Rendering/Label/vtkPointSetToLabelHierarchy.cxx
index bb29dab11ce9fc44fb1aeb8ea0634b9f4cb90d58..14b31523bdbe52a6701dc60676249c6bf15d692c 100644
--- a/Rendering/Label/vtkPointSetToLabelHierarchy.cxx
+++ b/Rendering/Label/vtkPointSetToLabelHierarchy.cxx
@@ -38,6 +38,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointSetToLabelHierarchy);
 vtkCxxSetObjectMacro(vtkPointSetToLabelHierarchy, TextProperty, vtkTextProperty);
 
@@ -281,3 +282,4 @@ void vtkPointSetToLabelHierarchy::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "TextProperty: " << this->TextProperty << "\n";
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Label/vtkPointSetToLabelHierarchy.h b/Rendering/Label/vtkPointSetToLabelHierarchy.h
index dab86a2f8edafa1eee646b2e9d36af03a72d7792..eec7db5da566a02c239cb3312b466b1dac9ece14 100644
--- a/Rendering/Label/vtkPointSetToLabelHierarchy.h
+++ b/Rendering/Label/vtkPointSetToLabelHierarchy.h
@@ -36,6 +36,7 @@
 #include "vtkLabelHierarchyAlgorithm.h"
 #include "vtkRenderingLabelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTextProperty;
 
 class VTKRENDERINGLABEL_EXPORT vtkPointSetToLabelHierarchy : public vtkLabelHierarchyAlgorithm
@@ -135,4 +136,5 @@ private:
   void operator=(const vtkPointSetToLabelHierarchy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPointSetToLabelHierarchy_h
diff --git a/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx b/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx
index 44221ca93e218a6e9de0fcb4b6ba945b6177cccb..d7a3a4014ce51d13ead6acfa1e9c387f662a28f7 100644
--- a/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx
+++ b/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.cxx
@@ -49,6 +49,7 @@ typedef Py_intptr_t Py_ssize_t;
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkMatplotlibMathTextUtilities::Availability vtkMatplotlibMathTextUtilities::MPLMathTextAvailable =
   vtkMatplotlibMathTextUtilities::NOT_TESTED;
 
@@ -1616,3 +1617,4 @@ void vtkMatplotlibMathTextUtilities::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "PathParser: " << this->PathParser << endl;
   os << indent << "FontPropertiesClass: " << this->FontPropertiesClass << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h b/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h
index ca5445ddf4bb4dac25d60ea87687fd1a264eab80..cbccd727ddf363e53dab70bb34c590435ad3bbcd 100644
--- a/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h
+++ b/Rendering/Matplotlib/vtkMatplotlibMathTextUtilities.h
@@ -53,10 +53,12 @@
 
 struct _object;
 typedef struct _object PyObject;
-class vtkSmartPyObject;
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkPath;
 class vtkPythonInterpreter;
+class vtkSmartPyObject;
 class vtkTextProperty;
 struct TextColors;
 
@@ -251,4 +253,5 @@ private:
   bool DrawInteriorLines(vtkImageData* image, int bbox[4], vtkTextProperty* tprop);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkCameraPass.cxx b/Rendering/OpenGL2/vtkCameraPass.cxx
index 8657b29a9062503bd262bdad43a12b6ffc053432..06e84bcd32eba3d7b01c72eea744435533981120 100644
--- a/Rendering/OpenGL2/vtkCameraPass.cxx
+++ b/Rendering/OpenGL2/vtkCameraPass.cxx
@@ -24,6 +24,7 @@
 #include "vtkRenderState.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCameraPass);
 vtkCxxSetObjectMacro(vtkCameraPass, DelegatePass, vtkRenderPass);
 
@@ -165,3 +166,4 @@ void vtkCameraPass::ReleaseGraphicsResources(vtkWindow* w)
     this->DelegatePass->ReleaseGraphicsResources(w);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkCameraPass.h b/Rendering/OpenGL2/vtkCameraPass.h
index 44593932e151147aa738e97d9ab725c892a5340a..ee18fb150e83683294b4aa4adfe3bffa2302c4e8 100644
--- a/Rendering/OpenGL2/vtkCameraPass.h
+++ b/Rendering/OpenGL2/vtkCameraPass.h
@@ -35,6 +35,7 @@
 #include "vtkRenderPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkCameraPass : public vtkRenderPass
 {
 public:
@@ -100,4 +101,5 @@ private:
   void operator=(const vtkCameraPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkClearRGBPass.cxx b/Rendering/OpenGL2/vtkClearRGBPass.cxx
index 54411bc157c7fe270f7a3b420094a2488f3ec38c..9ac138ce2147f9438874a28b9b9b345c3e41d0a1 100644
--- a/Rendering/OpenGL2/vtkClearRGBPass.cxx
+++ b/Rendering/OpenGL2/vtkClearRGBPass.cxx
@@ -20,6 +20,7 @@
 #include "vtkRenderState.h"
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClearRGBPass);
 
 //------------------------------------------------------------------------------
@@ -53,3 +54,4 @@ void vtkClearRGBPass::Render(const vtkRenderState* s)
     static_cast<GLclampf>(0.0));
   ostate->vtkglClear(GL_COLOR_BUFFER_BIT);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkClearRGBPass.h b/Rendering/OpenGL2/vtkClearRGBPass.h
index 1cc0262f662c6b437c82f76d71b6f8e30b178558..90b548390e093d6c6e91375f7ced14e5280b2bbe 100644
--- a/Rendering/OpenGL2/vtkClearRGBPass.h
+++ b/Rendering/OpenGL2/vtkClearRGBPass.h
@@ -28,6 +28,7 @@
 #include "vtkRenderPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkClearRGBPass : public vtkRenderPass
@@ -69,4 +70,5 @@ private:
   void operator=(const vtkClearRGBPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkClearZPass.cxx b/Rendering/OpenGL2/vtkClearZPass.cxx
index e0ec79981d50bf74a4ce1300e58e0706fbc1918e..3d1950fc20d181e7c66b11374d248165df38fc56 100644
--- a/Rendering/OpenGL2/vtkClearZPass.cxx
+++ b/Rendering/OpenGL2/vtkClearZPass.cxx
@@ -21,6 +21,7 @@
 #include "vtk_glew.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClearZPass);
 
 //------------------------------------------------------------------------------
@@ -55,3 +56,4 @@ void vtkClearZPass::Render(const vtkRenderState* s)
   ostate->vtkglClearDepth(this->Depth);
   ostate->vtkglClear(GL_DEPTH_BUFFER_BIT);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkClearZPass.h b/Rendering/OpenGL2/vtkClearZPass.h
index fa867cb7c4691ade77ddc5924d40f99e25733d6b..c31e562f5fcb5e35a91ff87e404865325f833a5d 100644
--- a/Rendering/OpenGL2/vtkClearZPass.h
+++ b/Rendering/OpenGL2/vtkClearZPass.h
@@ -28,6 +28,7 @@
 #include "vtkRenderPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkClearZPass : public vtkRenderPass
@@ -69,4 +70,5 @@ private:
   void operator=(const vtkClearZPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkCocoaGLView.h b/Rendering/OpenGL2/vtkCocoaGLView.h
index 333ab7815b06cb76842c7b81a09e189272f15c3d..8a6702dab276953da17683c5ea0c8821cd60768f 100644
--- a/Rendering/OpenGL2/vtkCocoaGLView.h
+++ b/Rendering/OpenGL2/vtkCocoaGLView.h
@@ -57,12 +57,14 @@
 // To achieve this, we use the neat technique below:
 #ifdef __cplusplus
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCocoaRenderWindow;
 class vtkCocoaRenderWindowInteractor;
 
 // Type declarations
 typedef vtkCocoaRenderWindow* vtkCocoaRenderWindowRef;
 typedef vtkCocoaRenderWindowInteractor* vtkCocoaRenderWindowInteractorRef;
+VTK_ABI_NAMESPACE_END
 #else
 // Type declarations
 typedef void* vtkCocoaRenderWindowRef;
diff --git a/Rendering/OpenGL2/vtkCocoaRenderWindow.h b/Rendering/OpenGL2/vtkCocoaRenderWindow.h
index 61d561fad2937614fcd6882eecd0caa3a9ca7217..3187c7ae2f3a4908502a96c0e88478d5c47ab626 100644
--- a/Rendering/OpenGL2/vtkCocoaRenderWindow.h
+++ b/Rendering/OpenGL2/vtkCocoaRenderWindow.h
@@ -46,6 +46,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include <stack>                       // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkCocoaRenderWindow : public vtkOpenGLRenderWindow
 {
 public:
@@ -446,4 +447,5 @@ private:
   int DisplayIndex = 0;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkCocoaRenderWindow.mm b/Rendering/OpenGL2/vtkCocoaRenderWindow.mm
index fe4ab456697f5049fad8d7493770bdac031747e9..fa8097087fae16683bf32a2f3710cd90d29466b5 100644
--- a/Rendering/OpenGL2/vtkCocoaRenderWindow.mm
+++ b/Rendering/OpenGL2/vtkCocoaRenderWindow.mm
@@ -31,7 +31,9 @@ PURPOSE.  See the above copyright notice for more information.
 
 #import <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCocoaRenderWindow);
+VTK_ABI_NAMESPACE_END
 
 //----------------------------------------------------------------------------
 // This is a private class and an implementation detail, do not use it.
@@ -199,6 +201,7 @@ vtkStandardNewMacro(vtkCocoaRenderWindow);
 
 @end
 
+VTK_ABI_NAMESPACE_BEGIN
 //----------------------------------------------------------------------------
 vtkCocoaRenderWindow::vtkCocoaRenderWindow()
 {
@@ -1637,3 +1640,4 @@ void vtkCocoaRenderWindow::SetConnectContextToNSView(bool connect)
 {
   this->ConnectContextToNSView = connect;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkCompositeMapperHelper2.h b/Rendering/OpenGL2/vtkCompositeMapperHelper2.h
index cf08df98af644781ed87eb5f60d17aaee425f9c0..6678ce12858af4e69b7c9695be25e30700d1750d 100644
--- a/Rendering/OpenGL2/vtkCompositeMapperHelper2.h
+++ b/Rendering/OpenGL2/vtkCompositeMapperHelper2.h
@@ -18,6 +18,7 @@
 #include "vtkOpenGLPolyDataMapper.h"
 #include "vtkRenderingOpenGL2Module.h" // for export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPolyData;
 class vtkCompositePolyDataMapper2;
 
@@ -172,4 +173,5 @@ private:
   void operator=(const vtkCompositeMapperHelper2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkCompositePolyDataMapper2.cxx b/Rendering/OpenGL2/vtkCompositePolyDataMapper2.cxx
index 4e5f3855b592688dd30b49bd38d5b65ca8cfae57..7a27a17fe44f109fdc78c2a19caae75ef48948cb 100644
--- a/Rendering/OpenGL2/vtkCompositePolyDataMapper2.cxx
+++ b/Rendering/OpenGL2/vtkCompositePolyDataMapper2.cxx
@@ -60,6 +60,7 @@
 #include "vtkCompositeMapperHelper2.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeMapperHelper2);
 
 //------------------------------------------------------------------------------
@@ -2140,3 +2141,4 @@ vtkMTimeType vtkCompositePolyDataMapper2::GetMTime()
   }
   return this->Superclass::GetMTime();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkCompositePolyDataMapper2.h b/Rendering/OpenGL2/vtkCompositePolyDataMapper2.h
index 5d3772a9b068152ae22b26750d5c89e9240d5fcc..1286b5fad7d1876de48e13e4a7d43bfcbd9edefb 100644
--- a/Rendering/OpenGL2/vtkCompositePolyDataMapper2.h
+++ b/Rendering/OpenGL2/vtkCompositePolyDataMapper2.h
@@ -34,6 +34,7 @@
 #include <stack>      // used for ivars
 #include <vector>     // used for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositeDataDisplayAttributes;
 class vtkCompositeMapperHelper2;
 class vtkCompositeMapperHelperData;
@@ -254,4 +255,5 @@ private:
   void operator=(const vtkCompositePolyDataMapper2&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkDataTransferHelper.cxx b/Rendering/OpenGL2/vtkDataTransferHelper.cxx
index a9da1ba8a81e37a60849b7aa3b05ed9841fe9a6a..7af4fe19d00d1f0c3681bd360fa38c9621585941 100644
--- a/Rendering/OpenGL2/vtkDataTransferHelper.cxx
+++ b/Rendering/OpenGL2/vtkDataTransferHelper.cxx
@@ -24,6 +24,7 @@
 #include "vtkTextureObject.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 static void vtkGetDimensions(int extents[6], int dims[3])
 {
   dims[0] = extents[1] - extents[0] + 1;
@@ -553,3 +554,4 @@ void vtkDataTransferHelper::PrintSelf(ostream& os, vtkIndent indent)
      << ", " << this->TextureExtent[2] << ", " << this->TextureExtent[3] << ", "
      << this->TextureExtent[4] << ", " << this->TextureExtent[5] << ")" << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkDataTransferHelper.h b/Rendering/OpenGL2/vtkDataTransferHelper.h
index c8ef3ebb9f807b86931dacc64fa16c94a44138ed..524644249dc77c8d474609f7085d06e79528ab59 100644
--- a/Rendering/OpenGL2/vtkDataTransferHelper.h
+++ b/Rendering/OpenGL2/vtkDataTransferHelper.h
@@ -36,6 +36,7 @@
 #include "vtkSmartPointer.h"           // needed for vtkSmartPointer.
 #include "vtkWeakPointer.h"            // needed for vtkWeakPointer.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkPixelBufferObject;
 class vtkTextureObject;
@@ -254,4 +255,5 @@ private:
   void operator=(const vtkDataTransferHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkDefaultPass.cxx b/Rendering/OpenGL2/vtkDefaultPass.cxx
index a85f00a8f82a1198da3a1e256ea96222bcc9059b..dc54f4764d07e5d267ae5d9ab63126e236a81b3f 100644
--- a/Rendering/OpenGL2/vtkDefaultPass.cxx
+++ b/Rendering/OpenGL2/vtkDefaultPass.cxx
@@ -20,6 +20,7 @@
 #include "vtkRenderer.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDefaultPass);
 
 //------------------------------------------------------------------------------
@@ -210,3 +211,4 @@ void vtkDefaultPass::RenderFilteredOverlay(const vtkRenderState* s)
     ++i;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkDefaultPass.h b/Rendering/OpenGL2/vtkDefaultPass.h
index 0392e8fff94736b9ff3701dc308ed8b6e61ea117..c0cb1a370842634c33a9a38c705def7afacea495 100644
--- a/Rendering/OpenGL2/vtkDefaultPass.h
+++ b/Rendering/OpenGL2/vtkDefaultPass.h
@@ -37,6 +37,7 @@
 #include "vtkRenderPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 class vtkDefaultPassLayerList; // Pimpl
 
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkDefaultPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkDepthImageProcessingPass.cxx b/Rendering/OpenGL2/vtkDepthImageProcessingPass.cxx
index 1e64c232fe431eecfffe2d884a3915f8abd5de30..45a26381d965933ee810d4846a8a133424599035 100644
--- a/Rendering/OpenGL2/vtkDepthImageProcessingPass.cxx
+++ b/Rendering/OpenGL2/vtkDepthImageProcessingPass.cxx
@@ -34,6 +34,7 @@ Ph.D. thesis of Christian BOUCHENY.
 #include "vtkPixelBufferObject.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkDepthImageProcessingPass::vtkDepthImageProcessingPass()
 {
   this->Origin[0] = 0;
@@ -162,3 +163,4 @@ void vtkDepthImageProcessingPass::ReadWindowSize(const vtkRenderState* s)
     this->Height = size[1];
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkDepthImageProcessingPass.h b/Rendering/OpenGL2/vtkDepthImageProcessingPass.h
index 29ef01eabbb7829908d45ffa9ab4d3155afcad9e..fd028a9422609a044c85f9284888ff0a9206f29f 100644
--- a/Rendering/OpenGL2/vtkDepthImageProcessingPass.h
+++ b/Rendering/OpenGL2/vtkDepthImageProcessingPass.h
@@ -37,6 +37,7 @@ Ph.D. thesis of Christian BOUCHENY.
 #include "vtkImageProcessingPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 class vtkDepthPeelingPassLayerList; // Pimpl
 class vtkOpenGLFramebufferObject;
@@ -91,4 +92,5 @@ private:
   void operator=(const vtkDepthImageProcessingPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkDepthOfFieldPass.cxx b/Rendering/OpenGL2/vtkDepthOfFieldPass.cxx
index b52a1cad5e7bdb9d2733943c18f0a60370f36734..10a74ffe5afa164eb730072a5b3ee0f73a19b1a2 100644
--- a/Rendering/OpenGL2/vtkDepthOfFieldPass.cxx
+++ b/Rendering/OpenGL2/vtkDepthOfFieldPass.cxx
@@ -34,6 +34,7 @@
 #include "vtkDepthOfFieldPassFS.h"
 #include "vtkTextureObjectVS.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDepthOfFieldPass);
 
 //------------------------------------------------------------------------------
@@ -270,3 +271,4 @@ void vtkDepthOfFieldPass::ReleaseGraphicsResources(vtkWindow* w)
     this->Pass1Depth = nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkDepthOfFieldPass.h b/Rendering/OpenGL2/vtkDepthOfFieldPass.h
index df25f4a1b02e78ec922282eab671c9d53d96370f..00c4a9df30a2daf6a1b13ba536e39f7ae92f391e 100644
--- a/Rendering/OpenGL2/vtkDepthOfFieldPass.h
+++ b/Rendering/OpenGL2/vtkDepthOfFieldPass.h
@@ -40,6 +40,7 @@
 #include "vtkDepthImageProcessingPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDepthPeelingPassLayerList; // Pimpl
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLHelper;
@@ -105,4 +106,5 @@ private:
   void operator=(const vtkDepthOfFieldPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkDepthPeelingPass.cxx b/Rendering/OpenGL2/vtkDepthPeelingPass.cxx
index ca03a6f6e7cc8da0150891226146e50fb35bb8d7..2270da1fb76498df173d0509dde01165eed60de1 100644
--- a/Rendering/OpenGL2/vtkDepthPeelingPass.cxx
+++ b/Rendering/OpenGL2/vtkDepthPeelingPass.cxx
@@ -40,6 +40,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkDepthPeelingPassFinalFS.h"
 #include "vtkDepthPeelingPassIntermediateFS.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDepthPeelingPass);
 vtkCxxSetObjectMacro(vtkDepthPeelingPass, TranslucentPass, vtkRenderPass);
 
@@ -691,3 +692,4 @@ bool vtkDepthPeelingPass::SetShaderParameters(vtkShaderProgram* program, vtkAbst
 
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkDepthPeelingPass.h b/Rendering/OpenGL2/vtkDepthPeelingPass.h
index 37c86c82d0594cf878bf842a0454f8991e7026e7..b5e3c1b829dedb0aa340cf53bec982b254269468 100644
--- a/Rendering/OpenGL2/vtkDepthPeelingPass.h
+++ b/Rendering/OpenGL2/vtkDepthPeelingPass.h
@@ -54,6 +54,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include <vector>                      // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkTextureObject;
 class vtkOpenGLRenderWindow;
@@ -206,4 +207,5 @@ private:
   void operator=(const vtkDepthPeelingPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkDualDepthPeelingPass.cxx b/Rendering/OpenGL2/vtkDualDepthPeelingPass.cxx
index 491a4929a65a0f0e690e2d1adee05182fe75421b..721d25faea4fac0c67577cf9cefa1bf529f36c91 100644
--- a/Rendering/OpenGL2/vtkDualDepthPeelingPass.cxx
+++ b/Rendering/OpenGL2/vtkDualDepthPeelingPass.cxx
@@ -66,6 +66,7 @@ using RenderEvent = vtkRenderTimerLog::ScopedEventLogger;
 
 #define TIME_FUNCTION(functionName) VTK_SCOPED_RENDER_EVENT(#functionName, this->Timer)
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDualDepthPeelingPass);
 vtkCxxSetObjectMacro(vtkDualDepthPeelingPass, VolumetricPass, vtkRenderPass);
 
@@ -1778,3 +1779,4 @@ void vtkDualDepthPeelingPass::DeleteOcclusionQueryIds()
   glDeleteQueries(1, &this->TranslucentOcclusionQueryId);
   glDeleteQueries(1, &this->VolumetricOcclusionQueryId);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkDualDepthPeelingPass.h b/Rendering/OpenGL2/vtkDualDepthPeelingPass.h
index 4150984e410beb8d5841632311a76f2eeea6054c..76bdcfb3c08a439d65a661d5d55df78b94036763 100644
--- a/Rendering/OpenGL2/vtkDualDepthPeelingPass.h
+++ b/Rendering/OpenGL2/vtkDualDepthPeelingPass.h
@@ -56,6 +56,7 @@
 
 #include <array> // For std::array!
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLQuadHelper;
 class vtkOpenGLVertexArrayObject;
@@ -279,4 +280,5 @@ private:
   void operator=(const vtkDualDepthPeelingPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkDualDepthPeelingPass_h
diff --git a/Rendering/OpenGL2/vtkDummyGPUInfoList.cxx b/Rendering/OpenGL2/vtkDummyGPUInfoList.cxx
index 54c8f8bcb17eed802eddd0ffd3bce8be70d12494..ca65850da808c8526ac87f8db577300d719bd2be 100644
--- a/Rendering/OpenGL2/vtkDummyGPUInfoList.cxx
+++ b/Rendering/OpenGL2/vtkDummyGPUInfoList.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDummyGPUInfoList);
 
 //------------------------------------------------------------------------------
@@ -48,3 +49,4 @@ void vtkDummyGPUInfoList::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkDummyGPUInfoList.h b/Rendering/OpenGL2/vtkDummyGPUInfoList.h
index bd0c6ef23469814cc8e8a7e2a38719870756047b..734707538ce1be83bc85256a4cd37979dd453dfc 100644
--- a/Rendering/OpenGL2/vtkDummyGPUInfoList.h
+++ b/Rendering/OpenGL2/vtkDummyGPUInfoList.h
@@ -29,6 +29,7 @@
 #include "vtkGPUInfoList.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkDummyGPUInfoList : public vtkGPUInfoList
 {
 public:
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkDummyGPUInfoList&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkEDLShading.cxx b/Rendering/OpenGL2/vtkEDLShading.cxx
index 37449954d917a0ddbc627e78aa147ff9e86b07f4..01a5207e52e3abd3d2fd94830bb5c8903d284638 100644
--- a/Rendering/OpenGL2/vtkEDLShading.cxx
+++ b/Rendering/OpenGL2/vtkEDLShading.cxx
@@ -47,6 +47,7 @@ Ph.D. thesis of Christian BOUCHENY.
 
 //#define VTK_EDL_SHADING_DEBUG
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 void annotate(const std::string& str)
@@ -786,3 +787,4 @@ void vtkEDLShading::ReleaseGraphicsResources(vtkWindow* w)
 
   this->Superclass::ReleaseGraphicsResources(w);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkEDLShading.h b/Rendering/OpenGL2/vtkEDLShading.h
index 4e523042d50fd384fc58bf2d374598bd46a76d62..4f11b1076140da642d48fd82a82333ca936b7cd7 100644
--- a/Rendering/OpenGL2/vtkEDLShading.h
+++ b/Rendering/OpenGL2/vtkEDLShading.h
@@ -47,6 +47,7 @@ Ph.D. thesis of Christian BOUCHENY.
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include "vtkSmartPointer.h"           // needed for vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 class vtkOpenGLFramebufferObject;
 class vtkTextureObject;
@@ -154,4 +155,5 @@ private:
   void operator=(const vtkEDLShading&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkEGLRenderWindow.cxx b/Rendering/OpenGL2/vtkEGLRenderWindow.cxx
index 334c1c20bd3a146e7a7dacb153cee8c6dbbbefaf..16842e2bee0efa46a7cceb54228ffa43963593cc 100644
--- a/Rendering/OpenGL2/vtkEGLRenderWindow.cxx
+++ b/Rendering/OpenGL2/vtkEGLRenderWindow.cxx
@@ -35,6 +35,7 @@
 #include <vtkAndroidRenderWindowInteractor.h>
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 typedef void* EGLDeviceEXT;
@@ -785,3 +786,4 @@ void vtkEGLRenderWindow::SetWindowId(void* window)
   vtkInternals* impl = this->Internals;
   impl->Window = reinterpret_cast<EGLNativeWindowType>(window);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkEGLRenderWindow.h b/Rendering/OpenGL2/vtkEGLRenderWindow.h
index d9e68886cfcd92608f7a4c45dfb45adbb5f865b8..35f675de108e862ccd074b080390038ae13be3e5 100644
--- a/Rendering/OpenGL2/vtkEGLRenderWindow.h
+++ b/Rendering/OpenGL2/vtkEGLRenderWindow.h
@@ -35,6 +35,7 @@
 #include "vtkOpenGLRenderWindow.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkEGLRenderWindow : public vtkOpenGLRenderWindow
@@ -238,4 +239,5 @@ private:
   bool DeviceExtensionsPresent;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkEquirectangularToCubeMapTexture.cxx b/Rendering/OpenGL2/vtkEquirectangularToCubeMapTexture.cxx
index bc86e2968fb8374dc8ca3e313a46ec673ce35436..872713fd399cb62881ed1298b97ed8379e378ac9 100644
--- a/Rendering/OpenGL2/vtkEquirectangularToCubeMapTexture.cxx
+++ b/Rendering/OpenGL2/vtkEquirectangularToCubeMapTexture.cxx
@@ -27,6 +27,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEquirectangularToCubeMapTexture);
 vtkCxxSetObjectMacro(vtkEquirectangularToCubeMapTexture, InputTexture, vtkOpenGLTexture);
 
@@ -170,3 +171,4 @@ void vtkEquirectangularToCubeMapTexture::Load(vtkRenderer* ren)
 
   this->TextureObject->Activate();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkEquirectangularToCubeMapTexture.h b/Rendering/OpenGL2/vtkEquirectangularToCubeMapTexture.h
index 6a1ed3f22ad98dd27d4d8a97b1e26751d12bf5d3..3b1d14c9e0308991d816e806f2517dc4f11d4ce8 100644
--- a/Rendering/OpenGL2/vtkEquirectangularToCubeMapTexture.h
+++ b/Rendering/OpenGL2/vtkEquirectangularToCubeMapTexture.h
@@ -29,6 +29,7 @@
 #include "vtkOpenGLTexture.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLRenderWindow;
 class vtkOpenGLTexture;
@@ -88,4 +89,5 @@ private:
   void operator=(const vtkEquirectangularToCubeMapTexture&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkFramebufferPass.cxx b/Rendering/OpenGL2/vtkFramebufferPass.cxx
index 93447dc094fa7cb39216d9a1126e2de046a8ebfc..e58593dad615521ffbbb9ee1822d627f9820187f 100644
--- a/Rendering/OpenGL2/vtkFramebufferPass.cxx
+++ b/Rendering/OpenGL2/vtkFramebufferPass.cxx
@@ -32,6 +32,7 @@
 
 #include "vtkOpenGLHelper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFramebufferPass);
 
 //------------------------------------------------------------------------------
@@ -188,3 +189,4 @@ void vtkFramebufferPass::ReleaseGraphicsResources(vtkWindow* w)
     this->DepthTexture->ReleaseGraphicsResources(w);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkFramebufferPass.h b/Rendering/OpenGL2/vtkFramebufferPass.h
index f3ba225fda9f041a68bae2ed8a1650a29a010b1c..72378f335e0013e70920115abe02d0fd4deba3c5 100644
--- a/Rendering/OpenGL2/vtkFramebufferPass.h
+++ b/Rendering/OpenGL2/vtkFramebufferPass.h
@@ -26,6 +26,7 @@
 #include "vtkDepthImageProcessingPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLHelper;
 class vtkOpenGLRenderWindow;
@@ -107,4 +108,5 @@ private:
   void operator=(const vtkFramebufferPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkGaussianBlurPass.cxx b/Rendering/OpenGL2/vtkGaussianBlurPass.cxx
index 4825deaef7bac87373c7732913782f3a0ab9dc11..b9b45bd0ae92e1071048e79fa2399bb26116be58 100644
--- a/Rendering/OpenGL2/vtkGaussianBlurPass.cxx
+++ b/Rendering/OpenGL2/vtkGaussianBlurPass.cxx
@@ -43,6 +43,7 @@
 #include "vtkGaussianBlurPassFS.h"
 #include "vtkGaussianBlurPassVS.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGaussianBlurPass);
 
 //------------------------------------------------------------------------------
@@ -388,3 +389,4 @@ void vtkGaussianBlurPass::ReleaseGraphicsResources(vtkWindow* w)
     this->Pass2 = nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkGaussianBlurPass.h b/Rendering/OpenGL2/vtkGaussianBlurPass.h
index d8455adf1bc6ae8cdf8b358e0b84cbe3d565b258..7541ef73bafb8c47789c159e20d52ede66fa5193 100644
--- a/Rendering/OpenGL2/vtkGaussianBlurPass.h
+++ b/Rendering/OpenGL2/vtkGaussianBlurPass.h
@@ -52,6 +52,7 @@
 #include "vtkImageProcessingPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDepthPeelingPassLayerList; // Pimpl
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLHelper;
@@ -104,4 +105,5 @@ private:
   void operator=(const vtkGaussianBlurPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.cxx
index 817a7086df6ba27a4b22426f10d66283a14d030e..c626fe21dea03acd7013901e79494c183f408e4e 100644
--- a/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.cxx
+++ b/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.cxx
@@ -24,6 +24,7 @@
 #include "vtkOpenGLState.h"
 #include "vtkRendererCollection.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericOpenGLRenderWindow);
 
 vtkGenericOpenGLRenderWindow::vtkGenericOpenGLRenderWindow()
@@ -306,3 +307,4 @@ int vtkGenericOpenGLRenderWindow::SetRGBACharPixelData(
   vtkWarningMacro("`SetRGBACharPixelData` called before window is ready for rendering; ignoring.");
   return VTK_ERROR;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.h b/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.h
index 219b2357af79768768dda92e934bb0f71fd1ab12..b6152a16c5795c5bbe89748bf787962f860f1091 100644
--- a/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.h
+++ b/Rendering/OpenGL2/vtkGenericOpenGLRenderWindow.h
@@ -30,6 +30,7 @@
 #include "vtkOpenGLRenderWindow.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkGenericOpenGLRenderWindow : public vtkOpenGLRenderWindow
 {
 public:
@@ -198,4 +199,5 @@ private:
   void operator=(const vtkGenericOpenGLRenderWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkHiddenLineRemovalPass.cxx b/Rendering/OpenGL2/vtkHiddenLineRemovalPass.cxx
index 239ae4265ea0925213c16bff7b397885f0801144..8f5da577adc4a2f0e9d7b3c5ea0f80bcccf1f799 100644
--- a/Rendering/OpenGL2/vtkHiddenLineRemovalPass.cxx
+++ b/Rendering/OpenGL2/vtkHiddenLineRemovalPass.cxx
@@ -31,6 +31,7 @@
 
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 void annotate(const std::string& str)
@@ -161,3 +162,4 @@ int vtkHiddenLineRemovalPass::RenderProps(std::vector<vtkProp*>& props, vtkViewp
   }
   return propsRendered;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkHiddenLineRemovalPass.h b/Rendering/OpenGL2/vtkHiddenLineRemovalPass.h
index 9f3bb0063df0a9311e60692e67689f074556c267..bc96d294ad55d7b80e1dbcddcb4502fd53eb880d 100644
--- a/Rendering/OpenGL2/vtkHiddenLineRemovalPass.h
+++ b/Rendering/OpenGL2/vtkHiddenLineRemovalPass.h
@@ -30,6 +30,7 @@
 
 #include <vector> // For std::vector!
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkProp;
 class vtkViewport;
 
@@ -59,4 +60,5 @@ private:
   void operator=(const vtkHiddenLineRemovalPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkHiddenLineRemovalPass_h
diff --git a/Rendering/OpenGL2/vtkIOSRenderWindow.h b/Rendering/OpenGL2/vtkIOSRenderWindow.h
index 054a514a80d28e887b4fbfedf6b4e7ad69784821..34c153c6e6510788a671a7b577ca52bdcdf87e23 100644
--- a/Rendering/OpenGL2/vtkIOSRenderWindow.h
+++ b/Rendering/OpenGL2/vtkIOSRenderWindow.h
@@ -45,6 +45,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkOpenGLRenderWindow.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkIOSRenderWindow : public vtkOpenGLRenderWindow
 {
 public:
@@ -371,4 +372,5 @@ private:
   vtkTypeBool ForceMakeCurrent;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkIOSRenderWindow.mm b/Rendering/OpenGL2/vtkIOSRenderWindow.mm
index a5d2de070fbb41d8b2625899b45b18ecc4e2afac..0f400934eef8c7f21017754eafa9d7514ea5db5d 100644
--- a/Rendering/OpenGL2/vtkIOSRenderWindow.mm
+++ b/Rendering/OpenGL2/vtkIOSRenderWindow.mm
@@ -28,6 +28,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIOSRenderWindow);
 
 //----------------------------------------------------------------------------
@@ -555,3 +556,4 @@ void vtkIOSRenderWindow::SetCurrentCursor(int shape)
   }
   this->Superclass::SetCurrentCursor(shape);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkImageProcessingPass.cxx b/Rendering/OpenGL2/vtkImageProcessingPass.cxx
index 4be744a2bbc7ee74f453cb1a1b0780ccfdf8d0ca..9c4bcf5337053c781aac9856d7170e9774590848 100644
--- a/Rendering/OpenGL2/vtkImageProcessingPass.cxx
+++ b/Rendering/OpenGL2/vtkImageProcessingPass.cxx
@@ -32,6 +32,7 @@
 #include "vtkMath.h"
 #include "vtkPixelBufferObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkImageProcessingPass, DelegatePass, vtkRenderPass);
 
 //------------------------------------------------------------------------------
@@ -234,3 +235,4 @@ void vtkImageProcessingPass::ReleaseGraphicsResources(vtkWindow* w)
     this->DelegatePass->ReleaseGraphicsResources(w);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkImageProcessingPass.h b/Rendering/OpenGL2/vtkImageProcessingPass.h
index 197c5239d96b758374804695854ef5d4e0467697..cd1b48228e70f4104105fbe9c50f220336bee5b9 100644
--- a/Rendering/OpenGL2/vtkImageProcessingPass.h
+++ b/Rendering/OpenGL2/vtkImageProcessingPass.h
@@ -30,6 +30,7 @@
 #include "vtkOpenGLRenderPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 class vtkDepthPeelingPassLayerList; // Pimpl
 class vtkOpenGLFramebufferObject;
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkImageProcessingPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkLightingMapPass.cxx b/Rendering/OpenGL2/vtkLightingMapPass.cxx
index c64693f9edbbe855f7711bc8e787fed4069d3b81..0033d5202edb64f67cc8f1065cd56f7f43c178cb 100644
--- a/Rendering/OpenGL2/vtkLightingMapPass.cxx
+++ b/Rendering/OpenGL2/vtkLightingMapPass.cxx
@@ -25,6 +25,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLightingMapPass);
 
 vtkInformationKeyMacro(vtkLightingMapPass, RENDER_LUMINANCE, Integer);
@@ -119,3 +120,4 @@ void vtkLightingMapPass::RenderOpaqueGeometry(const vtkRenderState* s)
     ++i;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkLightingMapPass.h b/Rendering/OpenGL2/vtkLightingMapPass.h
index 274f3c0db53bd8189beea623599817225f3314b0..33340543a1376c1c6fdfc3e90997228489fcde33 100644
--- a/Rendering/OpenGL2/vtkLightingMapPass.h
+++ b/Rendering/OpenGL2/vtkLightingMapPass.h
@@ -34,6 +34,7 @@
 #include "vtkDefaultPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationIntegerKey;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkLightingMapPass : public vtkDefaultPass
@@ -100,4 +101,5 @@ private:
   RenderMode RenderType;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkLightsPass.cxx b/Rendering/OpenGL2/vtkLightsPass.cxx
index 6c263cb4e0cb7eeb39deaf7fcff594a6290eab85..e90486bf9791176d17820172704e8c76b27077fd 100644
--- a/Rendering/OpenGL2/vtkLightsPass.cxx
+++ b/Rendering/OpenGL2/vtkLightsPass.cxx
@@ -19,6 +19,7 @@
 #include "vtkRenderer.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLightsPass);
 
 //------------------------------------------------------------------------------
@@ -47,3 +48,4 @@ void vtkLightsPass::Render(const vtkRenderState* s)
   this->UpdateLightGeometry(s->GetRenderer());
   this->UpdateLights(s->GetRenderer());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkLightsPass.h b/Rendering/OpenGL2/vtkLightsPass.h
index 9a4bcc1e700c402266fb16835a79ac60390e55e6..ef9abf14b05ad9e35a48d1b55aaed27e63f19dae 100644
--- a/Rendering/OpenGL2/vtkLightsPass.h
+++ b/Rendering/OpenGL2/vtkLightsPass.h
@@ -32,6 +32,7 @@
 #include "vtkRenderPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkLightsPass : public vtkRenderPass
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkLightsPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOSOpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkOSOpenGLRenderWindow.cxx
index 9aeb56bc235d15a2eddbbd1d09e390b425cf17ae..5a95714308a09932d0d5a13cc7414fe119e6a2ae 100644
--- a/Rendering/OpenGL2/vtkOSOpenGLRenderWindow.cxx
+++ b/Rendering/OpenGL2/vtkOSOpenGLRenderWindow.cxx
@@ -44,6 +44,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtksys/SystemTools.hxx"
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOSOpenGLRenderWindow;
 class vtkRenderWindow;
 
@@ -477,3 +478,4 @@ void* vtkOSOpenGLRenderWindow::GetGenericWindowId()
 {
   return (void*)this->Internal->OffScreenWindow;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOSOpenGLRenderWindow.h b/Rendering/OpenGL2/vtkOSOpenGLRenderWindow.h
index d9d24f37591f2420a313593209f39704c9832717..a8e82a98da3edc0e6d9abde59dc0b8ee03bf4319 100644
--- a/Rendering/OpenGL2/vtkOSOpenGLRenderWindow.h
+++ b/Rendering/OpenGL2/vtkOSOpenGLRenderWindow.h
@@ -32,6 +32,7 @@
 #include "vtkOpenGLRenderWindow.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkOSOpenGLRenderWindowInternal;
 
@@ -236,4 +237,5 @@ private:
   void operator=(const vtkOSOpenGLRenderWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpaquePass.cxx b/Rendering/OpenGL2/vtkOpaquePass.cxx
index 32527754a10cdfb62ec3a3329d920a1648c94189..fd6d4ac13b2458638e61662008b6942bc0443170 100644
--- a/Rendering/OpenGL2/vtkOpaquePass.cxx
+++ b/Rendering/OpenGL2/vtkOpaquePass.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpaquePass);
 
 //------------------------------------------------------------------------------
@@ -42,3 +43,4 @@ void vtkOpaquePass::Render(const vtkRenderState* s)
   this->NumberOfRenderedProps = 0;
   this->RenderFilteredOpaqueGeometry(s);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpaquePass.h b/Rendering/OpenGL2/vtkOpaquePass.h
index 3544c45de3ba54c248f35b8cd6d177bf0793cd9b..d1312f8d9a6f3f999b126bac1697a7554fb6e4f6 100644
--- a/Rendering/OpenGL2/vtkOpaquePass.h
+++ b/Rendering/OpenGL2/vtkOpaquePass.h
@@ -34,6 +34,7 @@
 #include "vtkDefaultPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkOpaquePass : public vtkDefaultPass
 {
 public:
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkOpaquePass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLActor.cxx b/Rendering/OpenGL2/vtkOpenGLActor.cxx
index 062dd0e95ffdc90e84c9bd732e038fe7f9999e22..0864c7e5d095eb68686836eaf5923f200ea44b8a 100644
--- a/Rendering/OpenGL2/vtkOpenGLActor.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLActor.cxx
@@ -33,6 +33,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLActor);
 
 vtkInformationKeyMacro(vtkOpenGLActor, GLDepthMaskOverride, Integer);
@@ -156,3 +157,4 @@ void vtkOpenGLActor::GetKeyMatrices(vtkMatrix4x4*& mcwc, vtkMatrix3x3*& normMat)
   mcwc = this->MCWCMatrix;
   normMat = this->NormalMatrix;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLActor.h b/Rendering/OpenGL2/vtkOpenGLActor.h
index 7fc7f15b6135267823fe008d7c536d48f3918327..24a60133c0e27d2081812d6cb3f575ff07944a7f 100644
--- a/Rendering/OpenGL2/vtkOpenGLActor.h
+++ b/Rendering/OpenGL2/vtkOpenGLActor.h
@@ -26,6 +26,7 @@
 #include "vtkActor.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationIntegerKey;
 class vtkOpenGLRenderer;
 class vtkMatrix4x4;
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkOpenGLActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLBillboardTextActor3D.cxx b/Rendering/OpenGL2/vtkOpenGLBillboardTextActor3D.cxx
index ed22282887f8639aae798c24591ace4cb94bcd42..538949db3ea4689ad180d2b353d176b8a9f27a02 100644
--- a/Rendering/OpenGL2/vtkOpenGLBillboardTextActor3D.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLBillboardTextActor3D.cxx
@@ -21,6 +21,7 @@
 
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLBillboardTextActor3D);
 
 //------------------------------------------------------------------------------
@@ -74,3 +75,4 @@ int vtkOpenGLBillboardTextActor3D::RenderGL2PS(vtkViewport* viewport, vtkOpenGLG
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLBillboardTextActor3D.h b/Rendering/OpenGL2/vtkOpenGLBillboardTextActor3D.h
index 5c184c576a0c81c44286b3262a1ebeddcb11bbdb..8fd75b77a2a795dc0403391e329097572df0be74 100644
--- a/Rendering/OpenGL2/vtkOpenGLBillboardTextActor3D.h
+++ b/Rendering/OpenGL2/vtkOpenGLBillboardTextActor3D.h
@@ -23,6 +23,7 @@
 #include "vtkBillboardTextActor3D.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLGL2PSHelper;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLBillboardTextActor3D : public vtkBillboardTextActor3D
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkOpenGLBillboardTextActor3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLBillboardTextActor3D_h
diff --git a/Rendering/OpenGL2/vtkOpenGLBufferObject.cxx b/Rendering/OpenGL2/vtkOpenGLBufferObject.cxx
index 7129218dce7ef3e12faf290fef5fe565a72003b0..709c946b6c22b76889cd54e41fa448b756123a57 100644
--- a/Rendering/OpenGL2/vtkOpenGLBufferObject.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLBufferObject.cxx
@@ -16,6 +16,7 @@
 
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLBufferObject);
 
 namespace
@@ -155,3 +156,4 @@ void vtkOpenGLBufferObject::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLBufferObject.h b/Rendering/OpenGL2/vtkOpenGLBufferObject.h
index 8a84259c4f19e018ffbb39d52877e3fa889161fc..1df9807b2bf0bd908a6a0309c610e3fc28b267f7 100644
--- a/Rendering/OpenGL2/vtkOpenGLBufferObject.h
+++ b/Rendering/OpenGL2/vtkOpenGLBufferObject.h
@@ -19,6 +19,7 @@
 #include <string>                      // used for std::string
 #include <vector>                      // used for method args
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkDataArray;
 class vtkPoints;
@@ -136,4 +137,5 @@ inline bool vtkOpenGLBufferObject::Upload(
   return this->UploadInternal(array, numElements * sizeof(T), objectType);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLCamera.cxx b/Rendering/OpenGL2/vtkOpenGLCamera.cxx
index f3aae645897134f96f1218f40439311afe4aca02..3fb7073d7d52f8ee14d397f9573efc7db3722c93 100644
--- a/Rendering/OpenGL2/vtkOpenGLCamera.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLCamera.cxx
@@ -23,6 +23,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLCamera);
 
 vtkOpenGLCamera::vtkOpenGLCamera()
@@ -146,3 +147,4 @@ void vtkOpenGLCamera::GetKeyMatrices(vtkRenderer* ren, vtkMatrix4x4*& wcvc, vtkM
   vcdc = this->VCDCMatrix;
   wcdc = this->WCDCMatrix;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLCamera.h b/Rendering/OpenGL2/vtkOpenGLCamera.h
index 998627572ce1f175826a9822690948ea672990ed..e3901501e004b7703b72384aee72eba5a7999a50 100644
--- a/Rendering/OpenGL2/vtkOpenGLCamera.h
+++ b/Rendering/OpenGL2/vtkOpenGLCamera.h
@@ -25,6 +25,7 @@
 #include "vtkCamera.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderer;
 class vtkMatrix3x3;
 class vtkMatrix4x4;
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkOpenGLCamera&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLCellToVTKCellMap.cxx b/Rendering/OpenGL2/vtkOpenGLCellToVTKCellMap.cxx
index 70dec4865f81d6fa88451c2b2ec33a34df2132a1..487cc841e6fa812a7ac0c641a0bf84dc8b0fcaf3 100644
--- a/Rendering/OpenGL2/vtkOpenGLCellToVTKCellMap.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLCellToVTKCellMap.cxx
@@ -19,6 +19,7 @@
 #include "vtkProperty.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLCellToVTKCellMap);
 
 //------------------------------------------------------------------------------
@@ -361,3 +362,4 @@ vtkIdType vtkOpenGLCellToVTKCellMap::ConvertOpenGLCellIdToVTKCellId(
   // error
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLCellToVTKCellMap.h b/Rendering/OpenGL2/vtkOpenGLCellToVTKCellMap.h
index 7b6c87e6da68b2ed1d471e426c6ce0fad2a11548..8a5c1da8de0bd0e862afea1230efb7a3724d4d56 100644
--- a/Rendering/OpenGL2/vtkOpenGLCellToVTKCellMap.h
+++ b/Rendering/OpenGL2/vtkOpenGLCellToVTKCellMap.h
@@ -29,6 +29,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include "vtkStateStorage.h"           // used for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkPoints;
 
@@ -83,4 +84,5 @@ private:
   void operator=(const vtkOpenGLCellToVTKCellMap&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLError.h.in b/Rendering/OpenGL2/vtkOpenGLError.h.in
index db185c1ea06926f913800e91b716a1e483ecbfb3..2a6ac68f0721d6242cdb0f182ccb8427831f78d6 100644
--- a/Rendering/OpenGL2/vtkOpenGLError.h.in
+++ b/Rendering/OpenGL2/vtkOpenGLError.h.in
@@ -65,6 +65,7 @@
  * Convert an OpenGL error code into a descriptive
  * string.
  */
+VTK_ABI_NAMESPACE_BEGIN
 inline
 const char *vtkOpenGLStrError(unsigned int code)
 {
@@ -292,5 +293,6 @@ void vtkClearOpenGLErrors(const unsigned int maxErrors = 16)
   vtkOpenGLStaticCheckErrorMacro(message)
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkOpenGLError.h
diff --git a/Rendering/OpenGL2/vtkOpenGLFXAAFilter.cxx b/Rendering/OpenGL2/vtkOpenGLFXAAFilter.cxx
index 42eec809ca51e7f3521ae2e5740fd71a2681781e..b265b853836a2a906ea6a547bccbc16e4b3315f3 100644
--- a/Rendering/OpenGL2/vtkOpenGLFXAAFilter.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLFXAAFilter.cxx
@@ -43,6 +43,7 @@
 // Define to perform/dump benchmarking info:
 //#define FXAA_BENCHMARK
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLFXAAFilter);
 
 //------------------------------------------------------------------------------
@@ -449,3 +450,4 @@ void vtkOpenGLFXAAFilter::PrintBenchmark()
     this->FXAATimer->Reset();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLFXAAFilter.h b/Rendering/OpenGL2/vtkOpenGLFXAAFilter.h
index 501667ab3eb078d246bef33122fb2cdc26cf356a..f02c0b060921b403a2c420f96bbc66ac54abe467 100644
--- a/Rendering/OpenGL2/vtkOpenGLFXAAFilter.h
+++ b/Rendering/OpenGL2/vtkOpenGLFXAAFilter.h
@@ -46,6 +46,7 @@
 
 #include <string> // For std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFXAAOptions;
 class vtkOpenGLRenderer;
 class vtkOpenGLRenderTimer;
@@ -148,4 +149,5 @@ private:
   void operator=(const vtkOpenGLFXAAFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLFXAAFilter_h
diff --git a/Rendering/OpenGL2/vtkOpenGLFXAAPass.cxx b/Rendering/OpenGL2/vtkOpenGLFXAAPass.cxx
index 4bbd1623917b9319b2e05459a9a273344c54a954..b10d260edc70b68a3281c4332827aa1fabdd61d7 100644
--- a/Rendering/OpenGL2/vtkOpenGLFXAAPass.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLFXAAPass.cxx
@@ -7,6 +7,7 @@
 #include "vtkOpenGLState.h"
 #include "vtkRenderState.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLFXAAPass);
 vtkCxxSetObjectMacro(vtkOpenGLFXAAPass, FXAAOptions, vtkFXAAOptions);
 
@@ -52,3 +53,4 @@ void vtkOpenGLFXAAPass::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLFXAAPass.h b/Rendering/OpenGL2/vtkOpenGLFXAAPass.h
index 397ee06d145ca7bfbd3d524903e826bedf615201..f1384db0b3e22c0483dc8078a60724e46ba9417d 100644
--- a/Rendering/OpenGL2/vtkOpenGLFXAAPass.h
+++ b/Rendering/OpenGL2/vtkOpenGLFXAAPass.h
@@ -38,6 +38,7 @@
 #include "vtkOpenGLFXAAFilter.h"       // For vtkOpenGLFXAAFilter
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFXAAOptions;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLFXAAPass : public vtkImageProcessingPass
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkOpenGLFXAAPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLFluidMapper.cxx b/Rendering/OpenGL2/vtkOpenGLFluidMapper.cxx
index e0329fbb3bb25540a7637d3ccc95d2da8244f954..6b94daa70e55f25859c05190ee9837124449e9a8 100644
--- a/Rendering/OpenGL2/vtkOpenGLFluidMapper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLFluidMapper.cxx
@@ -57,6 +57,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLFluidMapper);
 
 //------------------------------------------------------------------------------
@@ -982,3 +983,4 @@ void vtkOpenGLFluidMapper::ReleaseGraphicsResources(vtkWindow* w)
 
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLFluidMapper.h b/Rendering/OpenGL2/vtkOpenGLFluidMapper.h
index b5e7dcb908464a67912135096ef5aea386f7df6d..c54600349e9c7bfa966df03d8cc29b3dc324a030 100644
--- a/Rendering/OpenGL2/vtkOpenGLFluidMapper.h
+++ b/Rendering/OpenGL2/vtkOpenGLFluidMapper.h
@@ -32,6 +32,7 @@
 
 #include <map> //for methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix3x3;
 class vtkMatrix4x4;
 class vtkOpenGLFramebufferObject;
@@ -395,4 +396,5 @@ private:
   void operator=(const vtkOpenGLFluidMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLFramebufferObject.cxx b/Rendering/OpenGL2/vtkOpenGLFramebufferObject.cxx
index 2415ca5c13d1840b060aca8f2bdac33c8b44f8f5..d5dde26a5f2c4403af2b972b6e91c31fd6942dbf 100644
--- a/Rendering/OpenGL2/vtkOpenGLFramebufferObject.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLFramebufferObject.cxx
@@ -30,6 +30,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFOInfo
 {
 public:
@@ -1616,3 +1617,4 @@ int vtkOpenGLFramebufferObject::GetNumberOfColorAttachments()
 {
   return static_cast<int>(this->ColorBuffers.size());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLFramebufferObject.h b/Rendering/OpenGL2/vtkOpenGLFramebufferObject.h
index 49acf4d53ac6a5cebf680a208a6c7573f5347e77..87558a59f18e7c6c96c770ab70307dc77d1c9cfe 100644
--- a/Rendering/OpenGL2/vtkOpenGLFramebufferObject.h
+++ b/Rendering/OpenGL2/vtkOpenGLFramebufferObject.h
@@ -167,6 +167,7 @@
 #include <map>                         // for the maps
 #include <vector>                      // for the lists of logical buffers.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFOInfo;
 class vtkGenericOpenGLResourceFreeCallback;
 class vtkOpenGLRenderWindow;
@@ -517,4 +518,5 @@ private:
   void operator=(const vtkOpenGLFramebufferObject&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLGL2PSHelper.cxx b/Rendering/OpenGL2/vtkOpenGLGL2PSHelper.cxx
index 6e1e4549196b3524d5fa94665c3bece3f7a968f9..d7f9fded89837615ad0c382bbdf31da18b4511c9 100644
--- a/Rendering/OpenGL2/vtkOpenGLGL2PSHelper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLGL2PSHelper.cxx
@@ -19,6 +19,7 @@
 #include "vtkRenderWindow.h"
 
 // Static allocation:
+VTK_ABI_NAMESPACE_BEGIN
 vtkOpenGLGL2PSHelper* vtkOpenGLGL2PSHelper::Instance = nullptr;
 
 //------------------------------------------------------------------------------
@@ -76,3 +77,4 @@ vtkOpenGLGL2PSHelper::~vtkOpenGLGL2PSHelper()
 {
   this->SetRenderWindow(nullptr);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLGL2PSHelper.h b/Rendering/OpenGL2/vtkOpenGLGL2PSHelper.h
index 837a9679f9104750f7c5b28ab1061179a6d542e2..6babb414705c5bf5a457cfddd1d3af910a13cd88 100644
--- a/Rendering/OpenGL2/vtkOpenGLGL2PSHelper.h
+++ b/Rendering/OpenGL2/vtkOpenGLGL2PSHelper.h
@@ -31,6 +31,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include <string>                      // For string usage
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkImageData;
 class vtkMatrix4x4;
@@ -190,4 +191,5 @@ private:
   void operator=(const vtkOpenGLGL2PSHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLGL2PSHelper_h
diff --git a/Rendering/OpenGL2/vtkOpenGLGlyph3DHelper.cxx b/Rendering/OpenGL2/vtkOpenGLGlyph3DHelper.cxx
index 1cc2132cd221ddba7228bee2280649c132aaf691..fcb6cc91ba68853ecde13b0319e14b331035a2b6 100644
--- a/Rendering/OpenGL2/vtkOpenGLGlyph3DHelper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLGlyph3DHelper.cxx
@@ -51,6 +51,7 @@
 #include <numeric>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLGlyph3DHelper);
 
 //------------------------------------------------------------------------------
@@ -617,3 +618,4 @@ void vtkOpenGLGlyph3DHelper::SetLODColoring(bool val)
 {
   this->InstanceCulling->SetColorLOD(val);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLGlyph3DHelper.h b/Rendering/OpenGL2/vtkOpenGLGlyph3DHelper.h
index d0738109e92eb122211b80a7483587855143ba5a..53a8993fe97dc75d7dd97d181b87103575af2c58 100644
--- a/Rendering/OpenGL2/vtkOpenGLGlyph3DHelper.h
+++ b/Rendering/OpenGL2/vtkOpenGLGlyph3DHelper.h
@@ -28,6 +28,7 @@
 #include "vtkOpenGLPolyDataMapper.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLGlyph3DHelper : public vtkOpenGLPolyDataMapper
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkOpenGLGlyph3DHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLGlyph3DMapper.cxx b/Rendering/OpenGL2/vtkOpenGLGlyph3DMapper.cxx
index e475ba9a1cccb009b6e70f7e77cebc0bb803b119..4f41bb3d6d980f0a1dc63e93c1f56df7ceaa1dcd 100644
--- a/Rendering/OpenGL2/vtkOpenGLGlyph3DMapper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLGlyph3DMapper.cxx
@@ -38,6 +38,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 int getNumberOfChildren(vtkDataObjectTree* tree)
@@ -1023,3 +1024,4 @@ void vtkOpenGLGlyph3DMapper::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLGlyph3DMapper.h b/Rendering/OpenGL2/vtkOpenGLGlyph3DMapper.h
index 5579b28297c4a7a639eb7e4821a1d4b7c97554cf..f00e0b4300f23820046189d0cc2253fc4a3d6405 100644
--- a/Rendering/OpenGL2/vtkOpenGLGlyph3DMapper.h
+++ b/Rendering/OpenGL2/vtkOpenGLGlyph3DMapper.h
@@ -32,6 +32,7 @@
 #include "vtkNew.h"                    // For vtkNew
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLGlyph3DHelper;
 class vtkBitArray;
 
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkOpenGLGlyph3DMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLHardwareSelector.cxx b/Rendering/OpenGL2/vtkOpenGLHardwareSelector.cxx
index 62395a4781f3d9f20db10dd628c123317d4f7b0e..b7ea707c5649e8667b0cdefad37c2998cd754ea6 100644
--- a/Rendering/OpenGL2/vtkOpenGLHardwareSelector.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLHardwareSelector.cxx
@@ -37,6 +37,7 @@
 
 #define ID_OFFSET 1
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 void annotate(const std::string& str)
@@ -255,3 +256,4 @@ void vtkOpenGLHardwareSelector::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLHardwareSelector.h b/Rendering/OpenGL2/vtkOpenGLHardwareSelector.h
index e36847b797bf590c6c3f2c262c13e052453631b1..66f884782aaf13cccb81ff2cbcb793ddfc044cc2 100644
--- a/Rendering/OpenGL2/vtkOpenGLHardwareSelector.h
+++ b/Rendering/OpenGL2/vtkOpenGLHardwareSelector.h
@@ -30,6 +30,7 @@
 #include "vtkHardwareSelector.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLHardwareSelector : public vtkHardwareSelector
 {
 public:
@@ -82,4 +83,5 @@ private:
   void operator=(const vtkOpenGLHardwareSelector&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLHelper.cxx b/Rendering/OpenGL2/vtkOpenGLHelper.cxx
index abe3d6139e7b500e599c0eb10a301c7245d4d8ef..a2a2344f5f273b885e31b2027fe1f22d657d9215 100644
--- a/Rendering/OpenGL2/vtkOpenGLHelper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLHelper.cxx
@@ -18,6 +18,7 @@
 #include "vtkOpenGLVertexArrayObject.h"
 #include "vtkShaderProgram.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkOpenGLHelper::vtkOpenGLHelper()
 {
   this->Program = nullptr;
@@ -51,3 +52,4 @@ void vtkOpenGLHelper::ReleaseGraphicsResources(vtkWindow* win)
   this->IBO->ReleaseGraphicsResources();
   this->VAO->ReleaseGraphicsResources();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLHelper.h b/Rendering/OpenGL2/vtkOpenGLHelper.h
index 2cbaecb809d85c0fd75d8d1fdc7c2b96f387b5c1..4ace4240abc1ceff8a258bc5c17761ade90e7041 100644
--- a/Rendering/OpenGL2/vtkOpenGLHelper.h
+++ b/Rendering/OpenGL2/vtkOpenGLHelper.h
@@ -18,6 +18,7 @@
 #include "vtkRenderingOpenGL2Module.h" // for export macro
 #include "vtkTimeStamp.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLIndexBufferObject;
 class vtkOpenGLShaderCache;
 class vtkOpenGLVertexArrayObject;
@@ -48,6 +49,7 @@ private:
   vtkOpenGLHelper& operator=(const vtkOpenGLHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLHelper_h
 
 // VTK-HeaderTest-Exclude: vtkOpenGLHelper.h
diff --git a/Rendering/OpenGL2/vtkOpenGLHyperTreeGridMapper.cxx b/Rendering/OpenGL2/vtkOpenGLHyperTreeGridMapper.cxx
index 155a896ce4036e5a87f6b62ced31bd00015b1bc8..b67692bef8dff98ca73281f56564a9822a330d07 100644
--- a/Rendering/OpenGL2/vtkOpenGLHyperTreeGridMapper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLHyperTreeGridMapper.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"            // For the macro
 #include "vtkOpenGLPolyDataMapper.h"     // For PDMapper
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkOpenGLHyperTreeGridMapper);
 
 //------------------------------------------------------------------------------
@@ -31,3 +32,4 @@ void vtkOpenGLHyperTreeGridMapper::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLHyperTreeGridMapper.h b/Rendering/OpenGL2/vtkOpenGLHyperTreeGridMapper.h
index a3a5a663e231b86da15f9db79fab6b5862c5f01b..51c365507b2876caae8632e7abbeadb00c7593ea 100644
--- a/Rendering/OpenGL2/vtkOpenGLHyperTreeGridMapper.h
+++ b/Rendering/OpenGL2/vtkOpenGLHyperTreeGridMapper.h
@@ -29,6 +29,7 @@
 
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLHyperTreeGridMapper : public vtkHyperTreeGridMapper
 {
 public:
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkOpenGLHyperTreeGridMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLImageAlgorithmHelper.cxx b/Rendering/OpenGL2/vtkOpenGLImageAlgorithmHelper.cxx
index 0b2a8ee401640b205dbe2936127218cb2d7a53e5..fe3b462067ec205d2defdc5868184788d79565e7 100644
--- a/Rendering/OpenGL2/vtkOpenGLImageAlgorithmHelper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLImageAlgorithmHelper.cxx
@@ -28,6 +28,7 @@
 #include "vtkTextureObject.h"
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLImageAlgorithmHelper);
 
 //------------------------------------------------------------------------------
@@ -204,3 +205,4 @@ void vtkOpenGLImageAlgorithmHelper::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLImageAlgorithmHelper.h b/Rendering/OpenGL2/vtkOpenGLImageAlgorithmHelper.h
index a23133381bfcd20b48530a266944f31f53a97275..b1750320e2468c9a7b08d574fe3c8ed5e5dc5233 100644
--- a/Rendering/OpenGL2/vtkOpenGLImageAlgorithmHelper.h
+++ b/Rendering/OpenGL2/vtkOpenGLImageAlgorithmHelper.h
@@ -28,6 +28,7 @@
 #include "vtkOpenGLHelper.h" // used for ivars
 #include "vtkSmartPointer.h" // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 class vtkRenderWindow;
 class vtkImageData;
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkOpenGLImageAlgorithmHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLImageMapper.cxx b/Rendering/OpenGL2/vtkOpenGLImageMapper.cxx
index 4a251f4253b4f3f84e03304fdff9d4dd84a920e6..0bc2509a4857480f94c1ee294773d83db9f72394 100644
--- a/Rendering/OpenGL2/vtkOpenGLImageMapper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLImageMapper.cxx
@@ -42,6 +42,7 @@
 
 #include "vtkOpenGLError.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLImageMapper);
 
 vtkOpenGLImageMapper::vtkOpenGLImageMapper()
@@ -690,3 +691,4 @@ void vtkOpenGLImageMapper::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLImageMapper.h b/Rendering/OpenGL2/vtkOpenGLImageMapper.h
index 7bc10a1fafe31adcbbb86110e544b2f96e435adf..eb26e1f8c2c5fff0a71d05bc3e522a7ed0495094 100644
--- a/Rendering/OpenGL2/vtkOpenGLImageMapper.h
+++ b/Rendering/OpenGL2/vtkOpenGLImageMapper.h
@@ -33,6 +33,7 @@
 #include "vtkImageMapper.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 class vtkTexturedActor2D;
 
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkOpenGLImageMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLImageSliceMapper.cxx b/Rendering/OpenGL2/vtkOpenGLImageSliceMapper.cxx
index 27a63d1ca80f3484fcb7c09b0ea65622735efe1f..21f960374e527362d15a8a34addd3f0616bcaeed 100644
--- a/Rendering/OpenGL2/vtkOpenGLImageSliceMapper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLImageSliceMapper.cxx
@@ -52,6 +52,7 @@
 
 #include "vtkOpenGLError.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLImageSliceMapper);
 
 //------------------------------------------------------------------------------
@@ -708,3 +709,4 @@ void vtkOpenGLImageSliceMapper::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLImageSliceMapper.h b/Rendering/OpenGL2/vtkOpenGLImageSliceMapper.h
index d2f8627d019c20ce4a06a93ddc21d405c9bb4c2b..7b7ea12342afb29e4c3c880169075fc163f9f646 100644
--- a/Rendering/OpenGL2/vtkOpenGLImageSliceMapper.h
+++ b/Rendering/OpenGL2/vtkOpenGLImageSliceMapper.h
@@ -29,6 +29,7 @@
 #include "vtkImageSliceMapper.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindow;
 class vtkOpenGLRenderWindow;
 class vtkActor;
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkOpenGLImageSliceMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLIndexBufferObject.cxx b/Rendering/OpenGL2/vtkOpenGLIndexBufferObject.cxx
index 32f962039dfad2198ac192a71b1043fabf503fcc..e1c7f5038db4986e76cfeb91352246133c4a790d 100644
--- a/Rendering/OpenGL2/vtkOpenGLIndexBufferObject.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLIndexBufferObject.cxx
@@ -28,6 +28,7 @@
 
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLIndexBufferObject);
 
 vtkOpenGLIndexBufferObject::vtkOpenGLIndexBufferObject()
@@ -512,3 +513,4 @@ void vtkOpenGLIndexBufferObject::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLIndexBufferObject.h b/Rendering/OpenGL2/vtkOpenGLIndexBufferObject.h
index 3978217b28ed1a47b764a755f2d4b0b63cc9cb5e..3c9606845722463ba93b22322a6acc6ac7e42749 100644
--- a/Rendering/OpenGL2/vtkOpenGLIndexBufferObject.h
+++ b/Rendering/OpenGL2/vtkOpenGLIndexBufferObject.h
@@ -24,6 +24,7 @@
  * GPU.
  */
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLIndexBufferObject : public vtkOpenGLBufferObject
 {
 public:
@@ -104,4 +105,5 @@ private:
   void operator=(const vtkOpenGLIndexBufferObject&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLInstanceCulling.cxx b/Rendering/OpenGL2/vtkOpenGLInstanceCulling.cxx
index 91c5198fd5a60ce68487ffdc3b0365b9534d760c..5b38068fc28512c3fa848f78bcbc73bd5dc413c9 100644
--- a/Rendering/OpenGL2/vtkOpenGLInstanceCulling.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLInstanceCulling.cxx
@@ -33,6 +33,7 @@
 #include <array>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLInstanceCulling);
 
 void vtkOpenGLInstanceCulling::PrintSelf(ostream& os, vtkIndent indent)
@@ -465,3 +466,4 @@ vtkIdType vtkOpenGLInstanceCulling::GetNumberOfLOD()
 {
   return static_cast<vtkIdType>(this->LODList.size());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLInstanceCulling.h b/Rendering/OpenGL2/vtkOpenGLInstanceCulling.h
index 4e232c4a3fcdc82833f84e51280d34bf7d82e465..1378627c3421a5a0b376f3f02f4283b7959290b2 100644
--- a/Rendering/OpenGL2/vtkOpenGLInstanceCulling.h
+++ b/Rendering/OpenGL2/vtkOpenGLInstanceCulling.h
@@ -73,6 +73,7 @@
 
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLIndexBufferObject;
 class vtkOpenGLBufferObject;
 class vtkPolyData;
@@ -168,4 +169,5 @@ private:
   bool ColorLOD = false;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLInstanceCulling_h
diff --git a/Rendering/OpenGL2/vtkOpenGLLabeledContourMapper.cxx b/Rendering/OpenGL2/vtkOpenGLLabeledContourMapper.cxx
index 4dc157fc126a7cea201c12e871767bae9cf07219..fb3082ec12e1efd4f5c5d077cd2c9acf3f48a9bd 100644
--- a/Rendering/OpenGL2/vtkOpenGLLabeledContourMapper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLLabeledContourMapper.cxx
@@ -31,6 +31,7 @@
 #include "vtkTextActor3D.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLLabeledContourMapper);
 
 //------------------------------------------------------------------------------
@@ -173,3 +174,4 @@ bool vtkOpenGLLabeledContourMapper::RemoveStencil(vtkRenderer* ren)
   vtkOpenGLCheckErrorMacro("failed after RemoveStencil()");
   return this->Superclass::RemoveStencil(ren);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLLabeledContourMapper.h b/Rendering/OpenGL2/vtkOpenGLLabeledContourMapper.h
index 2ba7b77b5a66986f944669c0b5b99fa07a68f121..c259d6145150ac1b3a75320ce247edaba295a515 100644
--- a/Rendering/OpenGL2/vtkOpenGLLabeledContourMapper.h
+++ b/Rendering/OpenGL2/vtkOpenGLLabeledContourMapper.h
@@ -25,6 +25,7 @@
 #include "vtkLabeledContourMapper.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkOpenGLHelper;
 
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkOpenGLLabeledContourMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLLight.cxx b/Rendering/OpenGL2/vtkOpenGLLight.cxx
index 7775315901c70413827d542217d674641bedb3f4..8520e25920c3b8f59c3aaf624c20e22c8f62b3fa 100644
--- a/Rendering/OpenGL2/vtkOpenGLLight.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLLight.cxx
@@ -15,6 +15,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLLight);
 
 // Implement base class method.
@@ -28,3 +29,4 @@ void vtkOpenGLLight::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLLight.h b/Rendering/OpenGL2/vtkOpenGLLight.h
index 0189be1e4121887b6419ab516f80bbb75a2e236a..5abb1df5af762c9c3758a5f39b633952b07263cb 100644
--- a/Rendering/OpenGL2/vtkOpenGLLight.h
+++ b/Rendering/OpenGL2/vtkOpenGLLight.h
@@ -25,6 +25,7 @@
 #include "vtkLight.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderer;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLLight : public vtkLight
@@ -48,4 +49,5 @@ private:
   void operator=(const vtkOpenGLLight&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLPointGaussianMapper.cxx b/Rendering/OpenGL2/vtkOpenGLPointGaussianMapper.cxx
index 10a268a509f25924d750170a0e448ec0ada178a5..5bb32a5d161ba6635d9e7aa3ee14e866ff58d885 100644
--- a/Rendering/OpenGL2/vtkOpenGLPointGaussianMapper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLPointGaussianMapper.cxx
@@ -52,6 +52,7 @@
 
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLPointGaussianMapperHelper : public vtkOpenGLPolyDataMapper
 {
 public:
@@ -1095,3 +1096,4 @@ void vtkOpenGLPointGaussianMapper::ProcessSelectorPixelBuffers(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLPointGaussianMapper.h b/Rendering/OpenGL2/vtkOpenGLPointGaussianMapper.h
index 37342296aa3fdc56e597e6cb161db70128e53787..9b851422950b01e0d8cfe509b0fba89a96ff274c 100644
--- a/Rendering/OpenGL2/vtkOpenGLPointGaussianMapper.h
+++ b/Rendering/OpenGL2/vtkOpenGLPointGaussianMapper.h
@@ -26,6 +26,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include <vector>                      // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLPointGaussianMapperHelper;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLPointGaussianMapper : public vtkPointGaussianMapper
@@ -116,4 +117,5 @@ private:
   void operator=(const vtkOpenGLPointGaussianMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx b/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx
index 53676ef95ee872c023236471ff1d24699faf0ae6..924d627db2983ed57814a197620e9c28e40caa97 100644
--- a/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.cxx
@@ -78,6 +78,7 @@
 #include <sstream>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLPolyDataMapper);
 
 //------------------------------------------------------------------------------
@@ -4644,3 +4645,4 @@ void vtkOpenGLPolyDataMapper::ProcessSelectorPixelBuffers(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.h b/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.h
index c4e76e1a11af753d82de6cb222a61c6bd85e484c..18fc7fd9abc2fcb3593ac74f7574e2417c9c0f48 100644
--- a/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.h
+++ b/Rendering/OpenGL2/vtkOpenGLPolyDataMapper.h
@@ -33,6 +33,7 @@
 #include <tuple>  // for tuple
 #include <vector> // for vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCellArray;
 class vtkGenericOpenGLResourceFreeCallback;
 class vtkMatrix4x4;
@@ -530,4 +531,5 @@ private:
   void operator=(const vtkOpenGLPolyDataMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLPolyDataMapper2D.cxx b/Rendering/OpenGL2/vtkOpenGLPolyDataMapper2D.cxx
index 2ac5afa73f4f35548a9315d1913492ea879bd1c0..ee82df8b3c05bfba87723afc0134075981bd9be0 100644
--- a/Rendering/OpenGL2/vtkOpenGLPolyDataMapper2D.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLPolyDataMapper2D.cxx
@@ -53,6 +53,7 @@
 #include "vtkPolyDataWideLineGS.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLPolyDataMapper2D);
 
 //------------------------------------------------------------------------------
@@ -734,3 +735,4 @@ void vtkOpenGLPolyDataMapper2D::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLPolyDataMapper2D.h b/Rendering/OpenGL2/vtkOpenGLPolyDataMapper2D.h
index fc392d56e7b9caa41085254b3b74a703dcfb0d4f..a68d76a923b60005827545c680c86ab8e40839d2 100644
--- a/Rendering/OpenGL2/vtkOpenGLPolyDataMapper2D.h
+++ b/Rendering/OpenGL2/vtkOpenGLPolyDataMapper2D.h
@@ -35,6 +35,7 @@
 #include <string>                      // For API.
 #include <vector>                      //for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 class vtkGenericOpenGLResourceFreeCallback;
 class vtkMatrix4x4;
@@ -149,4 +150,5 @@ private:
   void operator=(const vtkOpenGLPolyDataMapper2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLProperty.cxx b/Rendering/OpenGL2/vtkOpenGLProperty.cxx
index 6589558d9ff5b0295a0bfc2c30fb2c4a90ae74aa..367ce73ae9d443df0a9fcf0051fb21735d8d613c 100644
--- a/Rendering/OpenGL2/vtkOpenGLProperty.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLProperty.cxx
@@ -26,6 +26,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLProperty);
 
 vtkOpenGLProperty::vtkOpenGLProperty() = default;
@@ -119,3 +120,4 @@ void vtkOpenGLProperty::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLProperty.h b/Rendering/OpenGL2/vtkOpenGLProperty.h
index c6067eb5adb77357287de27b023b2a625dee45a8..a1499514a70858cd3982c16b8fc769aa59d20f01 100644
--- a/Rendering/OpenGL2/vtkOpenGLProperty.h
+++ b/Rendering/OpenGL2/vtkOpenGLProperty.h
@@ -26,6 +26,7 @@
 #include "vtkProperty.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLProperty : public vtkProperty
 {
 public:
@@ -72,4 +73,5 @@ private:
   void operator=(const vtkOpenGLProperty&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLQuadHelper.cxx b/Rendering/OpenGL2/vtkOpenGLQuadHelper.cxx
index f8fed20195895a7a3e7bb6ba438005790101408f..c2ff9f0e0fff4939d7a69cff2019167ad686e35e 100644
--- a/Rendering/OpenGL2/vtkOpenGLQuadHelper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLQuadHelper.cxx
@@ -20,6 +20,7 @@
 #include "vtkShaderProgram.h"
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkOpenGLQuadHelper::vtkOpenGLQuadHelper(
   vtkOpenGLRenderWindow* renWin, const char* vs, const char* fs, const char* gs, bool flipY)
   : Program(nullptr)
@@ -118,3 +119,4 @@ void vtkOpenGLQuadHelper::Render()
     this->VAO->Release();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLQuadHelper.h b/Rendering/OpenGL2/vtkOpenGLQuadHelper.h
index 04144576287e6c558d05af235d46b400daf764d6..76f5447d5e4c9bf91aa65d8e6ffcccb258769886 100644
--- a/Rendering/OpenGL2/vtkOpenGLQuadHelper.h
+++ b/Rendering/OpenGL2/vtkOpenGLQuadHelper.h
@@ -52,6 +52,7 @@
 #include "vtkTimeStamp.h"
 #include <memory> // for std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 class vtkOpenGLVertexArrayObject;
 class vtkShaderProgram;
@@ -95,6 +96,7 @@ private:
   std::unique_ptr<vtkGenericOpenGLResourceFreeCallback> ResourceCallback;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLQuadHelper_h
 
 // VTK-HeaderTest-Exclude: vtkOpenGLQuadHelper.h
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderPass.cxx b/Rendering/OpenGL2/vtkOpenGLRenderPass.cxx
index 661550003d1490db29ea3366024aa29a9d722133..fd4d8866c535233f44bd1cc26d089ebe84deb6d3 100644
--- a/Rendering/OpenGL2/vtkOpenGLRenderPass.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLRenderPass.cxx
@@ -23,6 +23,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyMacro(vtkOpenGLRenderPass, RenderPasses, ObjectBaseVector);
 
 //------------------------------------------------------------------------------
@@ -100,3 +101,4 @@ void vtkOpenGLRenderPass::PostRender(const vtkRenderState* s)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderPass.h b/Rendering/OpenGL2/vtkOpenGLRenderPass.h
index 1e8a213547c62dc169cac196b86a87b8d9560041..ca7dca1c540414f1a486cfcca738e2a0aa111c79 100644
--- a/Rendering/OpenGL2/vtkOpenGLRenderPass.h
+++ b/Rendering/OpenGL2/vtkOpenGLRenderPass.h
@@ -29,6 +29,7 @@
 
 #include <string> // For std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractMapper;
 class vtkInformationObjectBaseVectorKey;
 class vtkProp;
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkOpenGLRenderPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLRenderPass_h
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderTimer.cxx b/Rendering/OpenGL2/vtkOpenGLRenderTimer.cxx
index cbff41202c6c7b7c6601d0a44d6c4a2f3381036f..9dd204ced58a63d226be3e1f2a1aec004e138932 100644
--- a/Rendering/OpenGL2/vtkOpenGLRenderTimer.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLRenderTimer.cxx
@@ -26,6 +26,7 @@
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkOpenGLRenderTimer::vtkOpenGLRenderTimer()
   : StartReady(false)
   , EndReady(false)
@@ -388,3 +389,4 @@ float vtkOpenGLRenderTimer::GetReusableElapsedSeconds()
   return 0.f;
 #endif // NO_TIMESTAMP_QUERIES
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderTimer.h b/Rendering/OpenGL2/vtkOpenGLRenderTimer.h
index 351fd2fbac0b333532041f050f974f06b213397b..6726c7c99879f6417c3c037668fa67e0c61f1a73 100644
--- a/Rendering/OpenGL2/vtkOpenGLRenderTimer.h
+++ b/Rendering/OpenGL2/vtkOpenGLRenderTimer.h
@@ -34,6 +34,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include "vtkType.h"                   // For vtkTypeUint64, etc
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLRenderTimer
 {
 public:
@@ -148,6 +149,7 @@ private:
   void operator=(const vtkOpenGLRenderTimer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLRenderTimer_h
 
 // VTK-HeaderTest-Exclude: vtkOpenGLRenderTimer.h
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderTimerLog.cxx b/Rendering/OpenGL2/vtkOpenGLRenderTimerLog.cxx
index 93d7436bb926892d3d56587434a617dc740939ba..d68d659068c100044aeb92a39bc6fa1f9c404907 100644
--- a/Rendering/OpenGL2/vtkOpenGLRenderTimerLog.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLRenderTimerLog.cxx
@@ -22,6 +22,7 @@
 #include <cassert>
 #include <utility>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLRenderTimerLog);
 
 //------------------------------------------------------------------------------
@@ -421,3 +422,4 @@ void vtkOpenGLRenderTimerLog::ForceCloseEvent(OGLEvent& event)
     this->ForceCloseEvent(subEvent);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderTimerLog.h b/Rendering/OpenGL2/vtkOpenGLRenderTimerLog.h
index 3380fae6b6288e4a1dfba7f95ba1c78dbf0a1446..563ff69c79edbe37ecc55b931390708b2c9402fe 100644
--- a/Rendering/OpenGL2/vtkOpenGLRenderTimerLog.h
+++ b/Rendering/OpenGL2/vtkOpenGLRenderTimerLog.h
@@ -22,6 +22,7 @@
 #include <deque> // for deque!
 #include <queue> // for queue!
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderTimer;
 
 /**
@@ -133,4 +134,5 @@ private:
   void operator=(const vtkOpenGLRenderTimerLog&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLRenderTimerLog_h
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderUtilities.cxx b/Rendering/OpenGL2/vtkOpenGLRenderUtilities.cxx
index a3d0bb6069eee84873405813427cc286453588d4..8e6e59ad633d5e8e5e6afebd5d54c46a898bdc19 100644
--- a/Rendering/OpenGL2/vtkOpenGLRenderUtilities.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLRenderUtilities.cxx
@@ -24,6 +24,7 @@
 #include "vtkShaderProgram.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkOpenGLRenderUtilities::vtkOpenGLRenderUtilities() = default;
 
 //------------------------------------------------------------------------------
@@ -223,3 +224,4 @@ void vtkOpenGLRenderUtilities::MarkDebugEvent(const std::string& event)
   vtkOpenGLClearErrorMacro();
 #endif // VTK_OPENGL_ENABLE_STREAM_ANNOTATIONS
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderUtilities.h b/Rendering/OpenGL2/vtkOpenGLRenderUtilities.h
index 52bf94098aad3e000e69fb11146a56a101301c5a..969abd0056c4198e532e07787a0625197befcdf7 100644
--- a/Rendering/OpenGL2/vtkOpenGLRenderUtilities.h
+++ b/Rendering/OpenGL2/vtkOpenGLRenderUtilities.h
@@ -31,6 +31,7 @@
 #include "vtk_glew.h" // Needed for GLuint.
 #include <string>     // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLBufferObject;
 class vtkOpenGLRenderWindow;
 class vtkOpenGLVertexArrayObject;
@@ -133,4 +134,5 @@ private:
   void operator=(const vtkOpenGLRenderUtilities&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx
index 8ec2ab04be48a36a7efbc48fe331458f8309b6e3..24b407b3c252a45a323606dbaeb6cd65a2315cbd 100644
--- a/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx
@@ -59,13 +59,18 @@ using std::ostringstream;
 // Initialize static member that controls global maximum number of multisamples
 // (off by default on Apple because it causes problems on some Mac models).
 #if defined(__APPLE__)
+VTK_ABI_NAMESPACE_BEGIN
 static int vtkOpenGLRenderWindowGlobalMaximumNumberOfMultiSamples = 0;
+VTK_ABI_NAMESPACE_END
 #else
+VTK_ABI_NAMESPACE_BEGIN
 static int vtkOpenGLRenderWindowGlobalMaximumNumberOfMultiSamples = 8;
+VTK_ABI_NAMESPACE_END
 #endif
 
 // Some linux drivers have issues reading a multisampled texture,
 // so we check the driver's "Renderer" against this list of strings.
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkOpenGLRenderWindowDriverInfo
 {
   const char* Vendor;
@@ -2319,3 +2324,4 @@ void vtkOpenGLRenderWindow::Render()
     vtkOpenGLRenderUtilities::MarkDebugEvent("Completed vtkOpenGLRenderWIndow::Render");
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderWindow.h b/Rendering/OpenGL2/vtkOpenGLRenderWindow.h
index 80758dab15751e870abff2c4bd1d33da89aac8c8..6804f1435abf331a6b691581acf03322060ee0cd 100644
--- a/Rendering/OpenGL2/vtkOpenGLRenderWindow.h
+++ b/Rendering/OpenGL2/vtkOpenGLRenderWindow.h
@@ -33,6 +33,7 @@
 #include <set>                         // for ivar
 #include <string>                      // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkOpenGLBufferObject;
 class vtkOpenGLFramebufferObject;
@@ -558,4 +559,5 @@ private:
   vtkOpenGLState* State;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderer.cxx b/Rendering/OpenGL2/vtkOpenGLRenderer.cxx
index 3f83ee6629f36abd2b24bb3da5febb25d98fa69a..157f82174d4da4a6b575c40ce8b61591027599f3 100644
--- a/Rendering/OpenGL2/vtkOpenGLRenderer.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLRenderer.cxx
@@ -73,6 +73,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <CoreFoundation/CoreFoundation.h>
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLRenderer);
 
 vtkOpenGLRenderer::vtkOpenGLRenderer()
@@ -1165,3 +1166,4 @@ vtkPBRPrefilterTexture* vtkOpenGLRenderer::GetEnvMapPrefiltered()
   }
   return this->EnvMapPrefiltered;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLRenderer.h b/Rendering/OpenGL2/vtkOpenGLRenderer.h
index 166b1faebc965672d5e10d4795459a125ab6eff7..dec3ec9af1751a00488b9fac60bb969ada913aac 100644
--- a/Rendering/OpenGL2/vtkOpenGLRenderer.h
+++ b/Rendering/OpenGL2/vtkOpenGLRenderer.h
@@ -29,6 +29,7 @@
 #include <string>                      // Ivars
 #include <vector>                      // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 class vtkOpenGLFXAAFilter;
 class vtkRenderPass;
@@ -248,4 +249,5 @@ private:
   void operator=(const vtkOpenGLRenderer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLResourceFreeCallback.h b/Rendering/OpenGL2/vtkOpenGLResourceFreeCallback.h
index c6295d5fae11c055ccbf0e8caf6a95730e9b06c8..8d728458e1cbc6c720797e943fff9f3bc2adbb68 100644
--- a/Rendering/OpenGL2/vtkOpenGLResourceFreeCallback.h
+++ b/Rendering/OpenGL2/vtkOpenGLResourceFreeCallback.h
@@ -19,6 +19,7 @@
 // Provide a mechanism for making sure graphics resources are
 // freed properly.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 class vtkWindow;
 
@@ -95,5 +96,6 @@ protected:
   void (T::*Method)(vtkWindow*);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkOpenGLResourceFreeCallback.h
diff --git a/Rendering/OpenGL2/vtkOpenGLShaderCache.cxx b/Rendering/OpenGL2/vtkOpenGLShaderCache.cxx
index 11bea0157da74056526d1f036785d89ea167bfc6..8f07d85fbdb778d1d4b5394e39d1ba6ba702219a 100644
--- a/Rendering/OpenGL2/vtkOpenGLShaderCache.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLShaderCache.cxx
@@ -27,6 +27,7 @@
 
 #include "vtksys/MD5.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLShaderCache::Private
 {
 public:
@@ -393,3 +394,4 @@ void vtkOpenGLShaderCache::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLShaderCache.h b/Rendering/OpenGL2/vtkOpenGLShaderCache.h
index b9deb7ae28a0ac3dc087b856ea9d4c7e680c6b4a..23377c5ea3e37ae71a5fc334fec2f4f2f6025070 100644
--- a/Rendering/OpenGL2/vtkOpenGLShaderCache.h
+++ b/Rendering/OpenGL2/vtkOpenGLShaderCache.h
@@ -27,6 +27,7 @@
 #include "vtkShader.h"                 // for vtkShader::Type
 #include <map>                         // for methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTransformFeedback;
 class vtkShaderProgram;
 class vtkWindow;
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkOpenGLShaderCache&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLShaderProperty.cxx b/Rendering/OpenGL2/vtkOpenGLShaderProperty.cxx
index 705ca9361a5f7e5d42d0469e2917a4034bbce65c..3718f0ad93257953e0b1b08ff38a1b2d25e39514 100644
--- a/Rendering/OpenGL2/vtkOpenGLShaderProperty.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLShaderProperty.cxx
@@ -18,6 +18,7 @@
 #include "vtkOpenGLUniforms.h"
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLShaderProperty);
 
 vtkOpenGLShaderProperty::vtkOpenGLShaderProperty() = default;
@@ -221,3 +222,4 @@ void vtkOpenGLShaderProperty::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLShaderProperty.h b/Rendering/OpenGL2/vtkOpenGLShaderProperty.h
index 90b71ba09d18ad72f989fb594b57318b383e06b0..54659c71330b9d2379dff32b0b3dba3ddb47fc40 100644
--- a/Rendering/OpenGL2/vtkOpenGLShaderProperty.h
+++ b/Rendering/OpenGL2/vtkOpenGLShaderProperty.h
@@ -35,6 +35,7 @@
 #include "vtkShaderProperty.h"
 #include <map> // used for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLUniforms;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLShaderProperty : public vtkShaderProperty
@@ -113,4 +114,5 @@ private:
   void operator=(const vtkOpenGLShaderProperty&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLSkybox.cxx b/Rendering/OpenGL2/vtkOpenGLSkybox.cxx
index 66be6f609757b8afadb9ad85daa29c523b994612..2287f8f75f209f10b674614317680e44bf852240 100644
--- a/Rendering/OpenGL2/vtkOpenGLSkybox.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLSkybox.cxx
@@ -32,6 +32,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLSkybox);
 
 vtkOpenGLSkybox::vtkOpenGLSkybox()
@@ -260,3 +261,4 @@ void vtkOpenGLSkybox::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLSkybox.h b/Rendering/OpenGL2/vtkOpenGLSkybox.h
index 5449664cf27218ef4820b5b21bb23f0074b1e286..bad6f6a16090d8dc7fa3fc54bba95a9aac8fdf7c 100644
--- a/Rendering/OpenGL2/vtkOpenGLSkybox.h
+++ b/Rendering/OpenGL2/vtkOpenGLSkybox.h
@@ -27,6 +27,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include "vtkSkybox.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLActor;
 class vtkOpenGLPolyDataMapper;
 
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkOpenGLSkybox&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLSphereMapper.cxx b/Rendering/OpenGL2/vtkOpenGLSphereMapper.cxx
index 247331d55ddbd8048e277441c94c673fad6b8c10..0e1a6900c2f12ff2d971f6d1072dab7c4b2fbb90 100644
--- a/Rendering/OpenGL2/vtkOpenGLSphereMapper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLSphereMapper.cxx
@@ -39,6 +39,7 @@
 #include "vtk_glew.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLSphereMapper);
 
 //------------------------------------------------------------------------------
@@ -334,3 +335,4 @@ void vtkOpenGLSphereMapper::RenderPieceDraw(vtkRenderer* ren, vtkActor* actor)
     glDrawArrays(GL_POINTS, 0, static_cast<GLuint>(numVerts));
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLSphereMapper.h b/Rendering/OpenGL2/vtkOpenGLSphereMapper.h
index 5138b3122c95ca4606169901c0aa27084b3e9548..7b4cdf3658ceb1b1473400c5b9e60f883ee05d46 100644
--- a/Rendering/OpenGL2/vtkOpenGLSphereMapper.h
+++ b/Rendering/OpenGL2/vtkOpenGLSphereMapper.h
@@ -25,6 +25,7 @@
 #include "vtkOpenGLPolyDataMapper.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLSphereMapper : public vtkOpenGLPolyDataMapper
 {
 public:
@@ -106,4 +107,5 @@ private:
   void operator=(const vtkOpenGLSphereMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLState.cxx b/Rendering/OpenGL2/vtkOpenGLState.cxx
index dfeeeedd9752d0e4c63260be98a889a30ee56412..0d62701cc3c4f90605b33d9766c4e8c887534b92 100644
--- a/Rendering/OpenGL2/vtkOpenGLState.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLState.cxx
@@ -52,6 +52,7 @@
 
 // this method checks all the cached state to make sure
 // nothing is out of sync. It can be slow.
+VTK_ABI_NAMESPACE_BEGIN
 void vtkOpenGLState::CheckState()
 {
   bool error = false;
@@ -312,6 +313,7 @@ bool reportOpenGLErrors(std::string& result)
     }                                                                                              \
   }
 
+VTK_ABI_NAMESPACE_END
 #else // VTK_REPORT_OPENGL_ERRORS
 
 #define vtkCheckOpenGLErrorsWithStack(message)
@@ -322,6 +324,7 @@ bool reportOpenGLErrors(std::string& result)
 //
 //////////////////////////////////////////////////////////////////////////////
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkOpenGLState::BufferBindingState::BufferBindingState()
 {
   // this->Framebuffer = nullptr;
@@ -2188,3 +2191,4 @@ void vtkOpenGLState::InitializeTextureInternalFormats()
   this->TextureInternalFormats[VTK_SHORT][1][4] = GL_RGBA32F;
 #endif
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLState.h b/Rendering/OpenGL2/vtkOpenGLState.h
index ce050f2d21ef8e15f08212f0ac896beb0a566d64..384bb7bafff4796c1a63a64faefab48847411035 100644
--- a/Rendering/OpenGL2/vtkOpenGLState.h
+++ b/Rendering/OpenGL2/vtkOpenGLState.h
@@ -71,6 +71,7 @@
 #include <stack>                       // for ivar
 #include <string>                      // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLRenderWindow;
 class vtkOpenGLShaderCache;
@@ -501,4 +502,5 @@ private:
   void operator=(const vtkOpenGLState&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLStickMapper.cxx b/Rendering/OpenGL2/vtkOpenGLStickMapper.cxx
index 9c3eb9a4100cdc44b85778b54f2dfd9303b1cea5..d2a5e3808b3161b1fc3d7646b84493f96d16d174 100644
--- a/Rendering/OpenGL2/vtkOpenGLStickMapper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLStickMapper.cxx
@@ -40,6 +40,7 @@
 #include "vtk_glew.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLStickMapper);
 
 //------------------------------------------------------------------------------
@@ -423,3 +424,4 @@ void vtkOpenGLStickMapper::RenderPieceDraw(vtkRenderer* ren, vtkActor* actor)
     glDrawArrays(GL_POINTS, 0, static_cast<GLuint>(numVerts));
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLStickMapper.h b/Rendering/OpenGL2/vtkOpenGLStickMapper.h
index 17284bb5998f65731bd6a081d5b58a65c933f6cb..4680cdeaf91638c4c434e62eff56a8e1e5731a0d 100644
--- a/Rendering/OpenGL2/vtkOpenGLStickMapper.h
+++ b/Rendering/OpenGL2/vtkOpenGLStickMapper.h
@@ -25,6 +25,7 @@
 #include "vtkOpenGLPolyDataMapper.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLStickMapper : public vtkOpenGLPolyDataMapper
 {
 public:
@@ -100,4 +101,5 @@ private:
   void operator=(const vtkOpenGLStickMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLTextActor.cxx b/Rendering/OpenGL2/vtkOpenGLTextActor.cxx
index 6b7cc6fd07439f0b2a3a01e9bf08724826fd60e1..8441fcc4470b8e6487570ca8d64dcd5a3c38392b 100644
--- a/Rendering/OpenGL2/vtkOpenGLTextActor.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLTextActor.cxx
@@ -22,6 +22,7 @@
 #include "vtkRenderer.h"
 #include "vtkViewport.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLTextActor);
 
 //------------------------------------------------------------------------------
@@ -86,3 +87,4 @@ int vtkOpenGLTextActor::RenderGL2PS(vtkViewport* viewport, vtkOpenGLGL2PSHelper*
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLTextActor.h b/Rendering/OpenGL2/vtkOpenGLTextActor.h
index 85f04253e3370e7f3dbb74da316e721f33ddb893..64052da30b19e0edee6780a2b0e12be814b662d8 100644
--- a/Rendering/OpenGL2/vtkOpenGLTextActor.h
+++ b/Rendering/OpenGL2/vtkOpenGLTextActor.h
@@ -24,6 +24,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include "vtkTextActor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLGL2PSHelper;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLTextActor : public vtkTextActor
@@ -46,4 +47,5 @@ private:
   void operator=(const vtkOpenGLTextActor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLTextActor_h
diff --git a/Rendering/OpenGL2/vtkOpenGLTextActor3D.cxx b/Rendering/OpenGL2/vtkOpenGLTextActor3D.cxx
index 654b66205a42af3ea7462ac443f9a3b10de19ae6..75bf427f0e2d434130be2fcdeb96e4cdbbf46824 100644
--- a/Rendering/OpenGL2/vtkOpenGLTextActor3D.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLTextActor3D.cxx
@@ -28,6 +28,7 @@
 #include <sstream>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLTextActor3D);
 
 //------------------------------------------------------------------------------
@@ -150,3 +151,4 @@ int vtkOpenGLTextActor3D::RenderGL2PS(vtkViewport* vp, vtkOpenGLGL2PSHelper* gl2
 
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLTextActor3D.h b/Rendering/OpenGL2/vtkOpenGLTextActor3D.h
index bf0b05a35ff0058b30fe4534aa5367b4e3e690f7..80b13c1068cbcd603efb7bc7b1c3f13eaa367eb8 100644
--- a/Rendering/OpenGL2/vtkOpenGLTextActor3D.h
+++ b/Rendering/OpenGL2/vtkOpenGLTextActor3D.h
@@ -24,6 +24,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include "vtkTextActor3D.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLGL2PSHelper;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLTextActor3D : public vtkTextActor3D
@@ -46,4 +47,5 @@ private:
   void operator=(const vtkOpenGLTextActor3D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLTextActor3D_h
diff --git a/Rendering/OpenGL2/vtkOpenGLTextMapper.cxx b/Rendering/OpenGL2/vtkOpenGLTextMapper.cxx
index 5abf0f3e5a67b80d33ac90a8f23f5d6131fe742f..7ac39759dabe5290340afb756b0db06508017a30 100644
--- a/Rendering/OpenGL2/vtkOpenGLTextMapper.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLTextMapper.cxx
@@ -23,6 +23,7 @@
 #include "vtkRenderer.h"
 #include "vtkViewport.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLTextMapper);
 
 //------------------------------------------------------------------------------
@@ -85,3 +86,4 @@ void vtkOpenGLTextMapper::RenderGL2PS(vtkViewport* vp, vtkActor2D* act, vtkOpenG
 
   gl2ps->DrawString(input, this->TextProperty, pos, pos[2] + 1e-6, ren);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLTextMapper.h b/Rendering/OpenGL2/vtkOpenGLTextMapper.h
index 581291ab1abab705c67b29e37b8c153c176248c1..c2813cec0de1117bc9c9a0f8ec58996b4da3e774 100644
--- a/Rendering/OpenGL2/vtkOpenGLTextMapper.h
+++ b/Rendering/OpenGL2/vtkOpenGLTextMapper.h
@@ -24,6 +24,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include "vtkTextMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLGL2PSHelper;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLTextMapper : public vtkTextMapper
@@ -46,4 +47,5 @@ private:
   void operator=(const vtkOpenGLTextMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLTextMapper_h
diff --git a/Rendering/OpenGL2/vtkOpenGLTexture.cxx b/Rendering/OpenGL2/vtkOpenGLTexture.cxx
index e0b492497198d02763ffae966481030d5204f6d3..98316a4c02fe286d78c6f35f972bdd0eb89b3eda 100644
--- a/Rendering/OpenGL2/vtkOpenGLTexture.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLTexture.cxx
@@ -33,6 +33,7 @@
 #include <cmath>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLTexture);
 
 //------------------------------------------------------------------------------
@@ -581,3 +582,4 @@ int vtkOpenGLTexture::IsTranslucent()
 
   return this->Superclass::IsTranslucent();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLTexture.h b/Rendering/OpenGL2/vtkOpenGLTexture.h
index 3885163b8675cd9b1a786519f90ef8d0b63f3e36..2a534026afb9ac56f3a6922b85e7f873507067c2 100644
--- a/Rendering/OpenGL2/vtkOpenGLTexture.h
+++ b/Rendering/OpenGL2/vtkOpenGLTexture.h
@@ -27,6 +27,7 @@
 #include "vtkTexture.h"
 #include "vtkWeakPointer.h" // needed for vtkWeakPointer.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindow;
 class vtkTextureObject;
 
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkOpenGLTexture&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLUniforms.cxx b/Rendering/OpenGL2/vtkOpenGLUniforms.cxx
index 8358f7487c6acdb8b3b010f972716c2639c4cb6b..00fa26c5a5379d423814b4fdb0a7f38921a27c8e 100644
--- a/Rendering/OpenGL2/vtkOpenGLUniforms.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLUniforms.cxx
@@ -7,12 +7,15 @@
 #include <cstring>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLUniforms);
+VTK_ABI_NAMESPACE_END
 
 // temporary patch: Some Android builds don't have std::to_string
 #include <sstream>
 namespace patch
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 std::string to_string(const T& n)
 {
@@ -20,8 +23,10 @@ std::string to_string(const T& n)
   stm << n;
   return stm.str();
 }
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 class Uniform
 {
 public:
@@ -1088,3 +1093,4 @@ void vtkOpenGLUniforms::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   this->Internals->PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLUniforms.h b/Rendering/OpenGL2/vtkOpenGLUniforms.h
index e8673a965b021562a9b181b32b27b38615f8d3f9..9b59a6c8caf3a8361c0331eba30de5a3b4e62509 100644
--- a/Rendering/OpenGL2/vtkOpenGLUniforms.h
+++ b/Rendering/OpenGL2/vtkOpenGLUniforms.h
@@ -35,6 +35,7 @@
 #include "vtkUniforms.h"
 #include <string> // For member functions
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUniformInternals;
 class vtkShaderProgram;
 
@@ -183,4 +184,5 @@ private:
   vtkUniformInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLVertexArrayObject.cxx b/Rendering/OpenGL2/vtkOpenGLVertexArrayObject.cxx
index bc26e11494ae4157ec537e28b266a0a3ac5a4d57..205f30bf171521ff3204cf13d5ea1ccc85347cd0 100644
--- a/Rendering/OpenGL2/vtkOpenGLVertexArrayObject.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLVertexArrayObject.cxx
@@ -25,6 +25,7 @@
 
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLVertexArrayObject);
 
 namespace
@@ -444,3 +445,4 @@ void vtkOpenGLVertexArrayObject::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLVertexArrayObject.h b/Rendering/OpenGL2/vtkOpenGLVertexArrayObject.h
index 316531b316fbc7503c91a0c9280f041f02f50a74..e3cc63d046963f729d18a4064c0e0d8573f62fc5 100644
--- a/Rendering/OpenGL2/vtkOpenGLVertexArrayObject.h
+++ b/Rendering/OpenGL2/vtkOpenGLVertexArrayObject.h
@@ -18,6 +18,7 @@
 #include "vtkRenderingOpenGL2Module.h" // for export macro
 #include <string>                      // For API.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkShaderProgram;
 class vtkOpenGLBufferObject;
 class vtkOpenGLVertexBufferObject;
@@ -85,4 +86,5 @@ private:
   Private* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLVertexArrayObject_h
diff --git a/Rendering/OpenGL2/vtkOpenGLVertexBufferObject.cxx b/Rendering/OpenGL2/vtkOpenGLVertexBufferObject.cxx
index 59bc41282845dc77c168a02522a48c1d3d38dd73..50357a0f0eaf4bdd15b5da8973c24d1e0d8d23f2 100644
--- a/Rendering/OpenGL2/vtkOpenGLVertexBufferObject.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLVertexBufferObject.cxx
@@ -24,6 +24,7 @@
 
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLVertexBufferObject);
 
 vtkOpenGLVertexBufferObject::vtkOpenGLVertexBufferObject()
@@ -689,3 +690,4 @@ void vtkOpenGLVertexBufferObject::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Stride: " << this->Stride << "\n";
   os << indent << "Number of Values (floats): " << this->PackedVBO.size() << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLVertexBufferObject.h b/Rendering/OpenGL2/vtkOpenGLVertexBufferObject.h
index 680b0aa8fefaa28fc891eb9c95614a9ff02f96df..b2a338d9dccf11e9be07702d3263cd1506b585ad 100644
--- a/Rendering/OpenGL2/vtkOpenGLVertexBufferObject.h
+++ b/Rendering/OpenGL2/vtkOpenGLVertexBufferObject.h
@@ -18,6 +18,7 @@
 #include "vtkRenderingOpenGL2Module.h" // for export macro
 #include "vtkWeakPointer.h"            // For vtkWeakPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLVertexBufferObjectCache;
 
 /**
@@ -208,4 +209,5 @@ private:
   static vtkTypeBool GlobalCoordShiftAndScaleEnabled;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectCache.cxx b/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectCache.cxx
index eb578eded106093829ca88b815223dc948ca27a5..234b5eb9744ae92b077097f5ab8d6f4247f34f91 100644
--- a/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectCache.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectCache.cxx
@@ -19,6 +19,7 @@
 #include "vtkOpenGLVertexBufferObject.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLVertexBufferObjectCache);
 
 //------------------------------------------------------------------------------
@@ -82,3 +83,4 @@ void vtkOpenGLVertexBufferObjectCache::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectCache.h b/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectCache.h
index 15d1a365b65bd6c380eb26a026e804bbf88412a8..58965d9044a8c457996108657caedd551ae59bf3 100644
--- a/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectCache.h
+++ b/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectCache.h
@@ -31,6 +31,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include <map>                         // for methods
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLVertexBufferObject;
 class vtkDataArray;
 class vtkTimeStamp;
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkOpenGLVertexBufferObjectCache&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectGroup.cxx b/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectGroup.cxx
index 3bea08eac176dd231ce1ff419946136519433d01..a82168672a7ecf86072028257d6be9ab00e7af31 100644
--- a/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectGroup.cxx
+++ b/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectGroup.cxx
@@ -29,6 +29,7 @@
 #include <algorithm>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLVertexBufferObjectGroup);
 
 typedef std::map<std::string, vtkOpenGLVertexBufferObject*>::iterator vboIter;
@@ -403,3 +404,4 @@ void vtkOpenGLVertexBufferObjectGroup::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectGroup.h b/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectGroup.h
index d94d5113b4ff973c57de1f00108b81b7ae46b146..6119ea2169b48cab5aa20319099c79281dc7536b 100644
--- a/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectGroup.h
+++ b/Rendering/OpenGL2/vtkOpenGLVertexBufferObjectGroup.h
@@ -66,6 +66,7 @@
 #include <string>                      // for ivars
 #include <vector>                      // for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkOpenGLVertexArrayObject;
 class vtkOpenGLVertexBufferObject;
@@ -183,4 +184,5 @@ private:
   void operator=(const vtkOpenGLVertexBufferObjectGroup&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOrderIndependentTranslucentPass.cxx b/Rendering/OpenGL2/vtkOrderIndependentTranslucentPass.cxx
index ef5ce3ed34bd0cd5012bdb0b06b23fa6ea5e3b27..156194a75e42d134276782c1a4a83b7087e02df2 100644
--- a/Rendering/OpenGL2/vtkOrderIndependentTranslucentPass.cxx
+++ b/Rendering/OpenGL2/vtkOrderIndependentTranslucentPass.cxx
@@ -39,6 +39,7 @@ PURPOSE.  See the above copyright notice for more information.
 // the 2D blending shaders we use
 #include "vtkOrderIndependentTranslucentPassFinalFS.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOrderIndependentTranslucentPass);
 vtkCxxSetObjectMacro(vtkOrderIndependentTranslucentPass, TranslucentPass, vtkRenderPass);
 
@@ -391,3 +392,4 @@ bool vtkOrderIndependentTranslucentPass::PostReplaceShaderValues(
 
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOrderIndependentTranslucentPass.h b/Rendering/OpenGL2/vtkOrderIndependentTranslucentPass.h
index c4d00bfab7f620ac6d603d4ca9c7212215335789..2c784dca54251b6e080e565c802223e430a7581b 100644
--- a/Rendering/OpenGL2/vtkOrderIndependentTranslucentPass.h
+++ b/Rendering/OpenGL2/vtkOrderIndependentTranslucentPass.h
@@ -29,6 +29,7 @@
 #include "vtkOpenGLRenderPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkTextureObject;
 class vtkOpenGLRenderWindow;
@@ -110,4 +111,5 @@ private:
   void operator=(const vtkOrderIndependentTranslucentPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkOutlineGlowPass.cxx b/Rendering/OpenGL2/vtkOutlineGlowPass.cxx
index e24daa9c10966211c41cfefdf6e5a8eca1c05dd4..58904c96cf0c01e0bb07ca8b05fb6149be1a306b 100644
--- a/Rendering/OpenGL2/vtkOutlineGlowPass.cxx
+++ b/Rendering/OpenGL2/vtkOutlineGlowPass.cxx
@@ -45,6 +45,7 @@
 #include "vtkOutlineGlowUpscalePassFS.h"
 #include "vtkTextureObjectVS.h" // a pass through shader
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOutlineGlowPass);
 
 // ----------------------------------------------------------------------------
@@ -498,3 +499,4 @@ void vtkOutlineGlowPass::ReleaseGraphicsResources(vtkWindow* w)
     this->BlurPass2 = nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOutlineGlowPass.h b/Rendering/OpenGL2/vtkOutlineGlowPass.h
index e24b7afbef295dfc09e7f3731d373eaab74776a6..b9a9cd0cca97eb8a36407ada13021d8ee5ee8e00 100644
--- a/Rendering/OpenGL2/vtkOutlineGlowPass.h
+++ b/Rendering/OpenGL2/vtkOutlineGlowPass.h
@@ -53,6 +53,7 @@
 #include "vtkImageProcessingPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLHelper;
 class vtkTextureObject;
@@ -115,4 +116,5 @@ private:
   void operator=(const vtkOutlineGlowPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif /* vtkOutlineGlowPass_h */
diff --git a/Rendering/OpenGL2/vtkOverlayPass.cxx b/Rendering/OpenGL2/vtkOverlayPass.cxx
index 1171ab992ae685d388b9fbd974b294199aec9874..b55959503b0ab05705d75ba9db52ba3baeb9355b 100644
--- a/Rendering/OpenGL2/vtkOverlayPass.cxx
+++ b/Rendering/OpenGL2/vtkOverlayPass.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOverlayPass);
 
 //------------------------------------------------------------------------------
@@ -42,3 +43,4 @@ void vtkOverlayPass::Render(const vtkRenderState* s)
   this->NumberOfRenderedProps = 0;
   this->RenderFilteredOverlay(s);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkOverlayPass.h b/Rendering/OpenGL2/vtkOverlayPass.h
index 82095c2f097abb480687abfd55e29f84a8cd76a2..9a1f3e4f8f64f23dd2bf594de8fe6d11cc420108 100644
--- a/Rendering/OpenGL2/vtkOverlayPass.h
+++ b/Rendering/OpenGL2/vtkOverlayPass.h
@@ -34,6 +34,7 @@
 #include "vtkDefaultPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkOverlayPass : public vtkDefaultPass
 {
 public:
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkOverlayPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkPBRIrradianceTexture.cxx b/Rendering/OpenGL2/vtkPBRIrradianceTexture.cxx
index d7c6a1ca20116debee717ca5211eaf5e64440d36..107889a69547bc11a139222b13ca22a96a024540 100644
--- a/Rendering/OpenGL2/vtkPBRIrradianceTexture.cxx
+++ b/Rendering/OpenGL2/vtkPBRIrradianceTexture.cxx
@@ -27,6 +27,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPBRIrradianceTexture);
 
 vtkCxxSetObjectMacro(vtkPBRIrradianceTexture, InputTexture, vtkOpenGLTexture);
@@ -249,3 +250,4 @@ void vtkPBRIrradianceTexture::Load(vtkRenderer* ren)
 
   this->TextureObject->Activate();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkPBRIrradianceTexture.h b/Rendering/OpenGL2/vtkPBRIrradianceTexture.h
index 038426000cc90a2fcaa3277ca7be1df77026168e..569767db8b5a8593a57d07ebfa013f30a729181e 100644
--- a/Rendering/OpenGL2/vtkPBRIrradianceTexture.h
+++ b/Rendering/OpenGL2/vtkPBRIrradianceTexture.h
@@ -27,6 +27,7 @@
 #include "vtkOpenGLTexture.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLRenderWindow;
 class vtkOpenGLTexture;
@@ -110,4 +111,5 @@ private:
   void operator=(const vtkPBRIrradianceTexture&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkPBRLUTTexture.cxx b/Rendering/OpenGL2/vtkPBRLUTTexture.cxx
index ce883323c805efa2697c40102cc941bb1145cddf..eaa000de700ee2aa9e7ffa9ce58e62c16a052cb0 100644
--- a/Rendering/OpenGL2/vtkPBRLUTTexture.cxx
+++ b/Rendering/OpenGL2/vtkPBRLUTTexture.cxx
@@ -27,6 +27,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPBRLUTTexture);
 
 //------------------------------------------------------------------------------
@@ -181,3 +182,4 @@ void vtkPBRLUTTexture::Load(vtkRenderer* ren)
 
   this->TextureObject->Activate();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkPBRLUTTexture.h b/Rendering/OpenGL2/vtkPBRLUTTexture.h
index f422e8e72bce51ba357b6cf25383844b6db8c04c..d65e2d573f6fc4db00e17931734233ba9010f226 100644
--- a/Rendering/OpenGL2/vtkPBRLUTTexture.h
+++ b/Rendering/OpenGL2/vtkPBRLUTTexture.h
@@ -27,6 +27,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include "vtkSmartPointer.h"           // For vtkSmartPointer
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLRenderWindow;
 class vtkOpenGLTexture;
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkPBRLUTTexture&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkPBRPrefilterTexture.cxx b/Rendering/OpenGL2/vtkPBRPrefilterTexture.cxx
index 7133dffdf668dfc9b43ddc627ec26bca4fefc053..799ca2e60f3d125525be151269b55eefe3333b01 100644
--- a/Rendering/OpenGL2/vtkPBRPrefilterTexture.cxx
+++ b/Rendering/OpenGL2/vtkPBRPrefilterTexture.cxx
@@ -27,6 +27,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPBRPrefilterTexture);
 
 vtkCxxSetObjectMacro(vtkPBRPrefilterTexture, InputTexture, vtkOpenGLTexture);
@@ -338,3 +339,4 @@ void vtkPBRPrefilterTexture::Load(vtkRenderer* ren)
 
   this->TextureObject->Activate();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkPBRPrefilterTexture.h b/Rendering/OpenGL2/vtkPBRPrefilterTexture.h
index 865f4ee103da5259a8ed9cf3df645572106cd4db..9e19419e148c73084c1b1525c31e64a4ff2a8649 100644
--- a/Rendering/OpenGL2/vtkPBRPrefilterTexture.h
+++ b/Rendering/OpenGL2/vtkPBRPrefilterTexture.h
@@ -28,6 +28,7 @@
 #include "vtkOpenGLTexture.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLRenderWindow;
 class vtkOpenGLTexture;
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkPBRPrefilterTexture&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkPanoramicProjectionPass.cxx b/Rendering/OpenGL2/vtkPanoramicProjectionPass.cxx
index 943abebfae2e7d0dc5f9d62eccf606a42248db4f..479b5a4d3b7e0239d5b0b8e0a5d5dacb48654eb9 100644
--- a/Rendering/OpenGL2/vtkPanoramicProjectionPass.cxx
+++ b/Rendering/OpenGL2/vtkPanoramicProjectionPass.cxx
@@ -37,6 +37,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPanoramicProjectionPass);
 
 //------------------------------------------------------------------------------
@@ -377,3 +378,4 @@ void vtkPanoramicProjectionPass::ReleaseGraphicsResources(vtkWindow* w)
     this->CubeMapTexture = nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkPanoramicProjectionPass.h b/Rendering/OpenGL2/vtkPanoramicProjectionPass.h
index c60e0c0b239dff535534e86ba55bd72e835c3f25..131d4e6ab7c6f73da2c823adf219883f8aadacec 100644
--- a/Rendering/OpenGL2/vtkPanoramicProjectionPass.h
+++ b/Rendering/OpenGL2/vtkPanoramicProjectionPass.h
@@ -33,6 +33,7 @@
 #include "vtkImageProcessingPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLQuadHelper;
 class vtkTextureObject;
@@ -136,4 +137,5 @@ private:
   void operator=(const vtkPanoramicProjectionPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkPixelBufferObject.cxx b/Rendering/OpenGL2/vtkPixelBufferObject.cxx
index 84f6679ee80b56705fec46be501538ff753264ca..4d7fa59ba79b578fa72d69ddde663bc77f21805a 100644
--- a/Rendering/OpenGL2/vtkPixelBufferObject.cxx
+++ b/Rendering/OpenGL2/vtkPixelBufferObject.cxx
@@ -32,6 +32,7 @@
 
 // Mapping from Usage values to OpenGL values.
 
+VTK_ABI_NAMESPACE_BEGIN
 static const GLenum OpenGLBufferObjectUsage[9] = { GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY,
   GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ,
   GL_DYNAMIC_COPY };
@@ -50,6 +51,7 @@ const GLenum OpenGLBufferObjectAccess[2] = {
 
 // targets
 const GLenum OpenGLBufferObjectTarget[2] = { GL_PIXEL_UNPACK_BUFFER, GL_PIXEL_PACK_BUFFER };
+VTK_ABI_NAMESPACE_END
 
 #ifdef VTK_PBO_DEBUG
 #include <pthread.h> // for debugging with MPI, pthread_self()
@@ -57,6 +59,7 @@ const GLenum OpenGLBufferObjectTarget[2] = { GL_PIXEL_UNPACK_BUFFER, GL_PIXEL_PA
 
 // converting double to float behind the
 // scene so we need sizeof(double)==4
+VTK_ABI_NAMESPACE_BEGIN
 template <class T>
 class vtksizeof
 {
@@ -692,3 +695,4 @@ void vtkPixelBufferObject::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "VTK Type: " << vtkImageScalarTypeNameMacro(this->Type) << endl;
   os << indent << "Usage:" << BufferObjectUsageAsString[this->Usage] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkPixelBufferObject.h b/Rendering/OpenGL2/vtkPixelBufferObject.h
index 4d7aed498219ec63b63c0e55cbb155916c8daa57..b7f8e1ec5021213a89f78ebb502e933feac24c24 100644
--- a/Rendering/OpenGL2/vtkPixelBufferObject.h
+++ b/Rendering/OpenGL2/vtkPixelBufferObject.h
@@ -37,6 +37,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include "vtkWeakPointer.h"            // needed for vtkWeakPointer.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindow;
 class vtkOpenGLExtensionManager;
 
@@ -365,4 +366,5 @@ private:
   void operator=(const vtkPixelBufferObject&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkPointFillPass.cxx b/Rendering/OpenGL2/vtkPointFillPass.cxx
index f79557be8616f14bf6c60e4ff04cd6a6894e4fca..f8b025c810ba48a85d6a543099868917c58cd693 100644
--- a/Rendering/OpenGL2/vtkPointFillPass.cxx
+++ b/Rendering/OpenGL2/vtkPointFillPass.cxx
@@ -34,6 +34,7 @@
 #include "vtkPointFillPassFS.h"
 #include "vtkTextureObjectVS.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPointFillPass);
 
 //------------------------------------------------------------------------------
@@ -209,3 +210,4 @@ void vtkPointFillPass::ReleaseGraphicsResources(vtkWindow* w)
     this->Pass1Depth = nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkPointFillPass.h b/Rendering/OpenGL2/vtkPointFillPass.h
index b33a930e8df3242bf87c284df2756808e1ff6722..fe487649c1f08241d78a34368ed336a21269899d 100644
--- a/Rendering/OpenGL2/vtkPointFillPass.h
+++ b/Rendering/OpenGL2/vtkPointFillPass.h
@@ -31,6 +31,7 @@
 #include "vtkDepthImageProcessingPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDepthPeelingPassLayerList; // Pimpl
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLQuadHelper;
@@ -107,4 +108,5 @@ private:
   void operator=(const vtkPointFillPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkRenderPassCollection.cxx b/Rendering/OpenGL2/vtkRenderPassCollection.cxx
index 51f6347d54080a4501b0af1e5b2f081a73d79b5c..9363600208d595b0f49f6c6799b2e80f6583f4eb 100644
--- a/Rendering/OpenGL2/vtkRenderPassCollection.cxx
+++ b/Rendering/OpenGL2/vtkRenderPassCollection.cxx
@@ -16,6 +16,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkRenderPass.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderPassCollection);
 
 //------------------------------------------------------------------------------
@@ -63,3 +64,4 @@ void vtkRenderPassCollection::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkRenderPassCollection.h b/Rendering/OpenGL2/vtkRenderPassCollection.h
index ab7a53d489ee310c5db9c1cad3752e61708cb2f3..44016fc4920fbc8652b08fcf8f167cbfa386adb6 100644
--- a/Rendering/OpenGL2/vtkRenderPassCollection.h
+++ b/Rendering/OpenGL2/vtkRenderPassCollection.h
@@ -30,6 +30,7 @@
 #include "vtkCollection.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderPass;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkRenderPassCollection : public vtkCollection
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkRenderPassCollection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkRenderStepsPass.cxx b/Rendering/OpenGL2/vtkRenderStepsPass.cxx
index ee29e271dde2e13b9000df56e6295685e07b4eaf..ed233eb1882be15afa775b177325f40a145d64bd 100644
--- a/Rendering/OpenGL2/vtkRenderStepsPass.cxx
+++ b/Rendering/OpenGL2/vtkRenderStepsPass.cxx
@@ -26,6 +26,7 @@
 #include "vtkTranslucentPass.h"
 #include "vtkVolumetricPass.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderStepsPass);
 
 vtkCxxSetObjectMacro(vtkRenderStepsPass, CameraPass, vtkCameraPass);
@@ -251,3 +252,4 @@ void vtkRenderStepsPass::ReleaseGraphicsResources(vtkWindow* w)
     this->PostProcessPass->ReleaseGraphicsResources(w);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkRenderStepsPass.h b/Rendering/OpenGL2/vtkRenderStepsPass.h
index 6509331d580383d4272c218595256b74678b8736..0601bda5eada49d0dc43de0b6a57e81541554aaf 100644
--- a/Rendering/OpenGL2/vtkRenderStepsPass.h
+++ b/Rendering/OpenGL2/vtkRenderStepsPass.h
@@ -36,6 +36,7 @@
 #include "vtkRenderPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSequencePass;
 class vtkCameraPass;
 
@@ -133,4 +134,5 @@ private:
   void operator=(const vtkRenderStepsPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkRenderbuffer.cxx b/Rendering/OpenGL2/vtkRenderbuffer.cxx
index a951fa90b7b42cde85593c47131515b32f00d73b..f5fc43b6938c89941022db9dba4e841a676899c3 100644
--- a/Rendering/OpenGL2/vtkRenderbuffer.cxx
+++ b/Rendering/OpenGL2/vtkRenderbuffer.cxx
@@ -22,6 +22,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderbuffer);
 
 //------------------------------------------------------------------------------
@@ -199,3 +200,4 @@ void vtkRenderbuffer::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Handle=" << this->Handle << endl
      << indent << "Context=" << this->Context << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkRenderbuffer.h b/Rendering/OpenGL2/vtkRenderbuffer.h
index 1558ceb35d7edf755fff1006908eed3bde45d92b..a3693772f883493c71d063732f11b357be4af035 100644
--- a/Rendering/OpenGL2/vtkRenderbuffer.h
+++ b/Rendering/OpenGL2/vtkRenderbuffer.h
@@ -26,6 +26,7 @@
 #include "vtkRenderingOpenGL2Module.h" // for export macro
 #include "vtkWeakPointer.h"            // for render context
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindow;
 class vtkWindow;
 
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkRenderbuffer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkSDL2OpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkSDL2OpenGLRenderWindow.cxx
index 15a2ff7f8a90badf9e18d66056269222d50d9471..dab02bb6c8163dc3059503fb9c0de7cdffa25670 100644
--- a/Rendering/OpenGL2/vtkSDL2OpenGLRenderWindow.cxx
+++ b/Rendering/OpenGL2/vtkSDL2OpenGLRenderWindow.cxx
@@ -30,6 +30,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cmath>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSDL2OpenGLRenderWindow);
 
 const std::string vtkSDL2OpenGLRenderWindow::DEFAULT_BASE_WINDOW_NAME =
@@ -382,3 +383,4 @@ void vtkSDL2OpenGLRenderWindow::ShowCursor()
 {
   SDL_ShowCursor(SDL_ENABLE);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkSDL2OpenGLRenderWindow.h b/Rendering/OpenGL2/vtkSDL2OpenGLRenderWindow.h
index 0cac748b7576545595052b5887daa6f1773466ac..de998e2fee3d277a571932f5dd34ea8b5f5b4895 100644
--- a/Rendering/OpenGL2/vtkSDL2OpenGLRenderWindow.h
+++ b/Rendering/OpenGL2/vtkSDL2OpenGLRenderWindow.h
@@ -29,6 +29,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <SDL2/SDL.h>                  // for ivars
 #include <stack>                       // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkSDL2OpenGLRenderWindow : public vtkOpenGLRenderWindow
 {
 public:
@@ -186,4 +187,5 @@ private:
   void operator=(const vtkSDL2OpenGLRenderWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkSSAAPass.cxx b/Rendering/OpenGL2/vtkSSAAPass.cxx
index 8986f2580f469fef9da3994b16dc2242bca6978b..95faa50b9b0b6e4185e7365a5292d7b3c1789b53 100644
--- a/Rendering/OpenGL2/vtkSSAAPass.cxx
+++ b/Rendering/OpenGL2/vtkSSAAPass.cxx
@@ -32,6 +32,7 @@
 #include "vtkSSAAPassFS.h"
 #include "vtkTextureObjectVS.h" // a pass through shader
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSSAAPass);
 
 vtkCxxSetObjectMacro(vtkSSAAPass, DelegatePass, vtkRenderPass);
@@ -291,3 +292,4 @@ void vtkSSAAPass::ReleaseGraphicsResources(vtkWindow* w)
     this->DelegatePass->ReleaseGraphicsResources(w);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkSSAAPass.h b/Rendering/OpenGL2/vtkSSAAPass.h
index c9953537a8c808e6ca1309cc38b53aa7a05d4224..c3309d731e7251c243aba815043fd7e48e26565e 100644
--- a/Rendering/OpenGL2/vtkSSAAPass.h
+++ b/Rendering/OpenGL2/vtkSSAAPass.h
@@ -40,6 +40,7 @@
 #include "vtkRenderPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLHelper;
 class vtkTextureObject;
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkSSAAPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkSSAOPass.cxx b/Rendering/OpenGL2/vtkSSAOPass.cxx
index bb53e16b634fef913e6b635698cd463cb51ca27f..8683eb41aaa3c24544bfa2ab7d7fc8d7d277ddaf 100644
--- a/Rendering/OpenGL2/vtkSSAOPass.cxx
+++ b/Rendering/OpenGL2/vtkSSAOPass.cxx
@@ -35,6 +35,7 @@
 
 #include <random>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSSAOPass);
 
 //------------------------------------------------------------------------------
@@ -605,3 +606,4 @@ void vtkSSAOPass::ReleaseGraphicsResources(vtkWindow* w)
     this->DepthTexture = nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkSSAOPass.h b/Rendering/OpenGL2/vtkSSAOPass.h
index 43a22442f075bf0a1d40e819de670c7f6ff70225..acd8becc01aa3166ebe0348f832e1ba5816c532b 100644
--- a/Rendering/OpenGL2/vtkSSAOPass.h
+++ b/Rendering/OpenGL2/vtkSSAOPass.h
@@ -34,6 +34,7 @@
 
 #include <vector> // For vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLQuadHelper;
@@ -145,4 +146,5 @@ private:
   void operator=(const vtkSSAOPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkSequencePass.cxx b/Rendering/OpenGL2/vtkSequencePass.cxx
index ca15ba6def718653eff6a063554ffacce00a0ab8..0447e7f74fede9dbdc73453f46e3990b379e5520 100644
--- a/Rendering/OpenGL2/vtkSequencePass.cxx
+++ b/Rendering/OpenGL2/vtkSequencePass.cxx
@@ -18,6 +18,7 @@
 #include "vtkRenderPassCollection.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSequencePass);
 vtkCxxSetObjectMacro(vtkSequencePass, Passes, vtkRenderPassCollection);
 
@@ -94,3 +95,4 @@ void vtkSequencePass::ReleaseGraphicsResources(vtkWindow* w)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkSequencePass.h b/Rendering/OpenGL2/vtkSequencePass.h
index 5e378c8044b9c7643bb675da08d7e5c4225f4b78..00bfe83ea77c94384d8678aff3c41da5c99e6719 100644
--- a/Rendering/OpenGL2/vtkSequencePass.h
+++ b/Rendering/OpenGL2/vtkSequencePass.h
@@ -33,6 +33,7 @@
 #include "vtkRenderPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderPassCollection;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkSequencePass : public vtkRenderPass
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkSequencePass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkShader.cxx b/Rendering/OpenGL2/vtkShader.cxx
index 1d0476124646b7adb333a9c18ad4e25de82d42d6..fdd5674ec77216db1d19c8ff7dd0cca2f291fb99 100644
--- a/Rendering/OpenGL2/vtkShader.cxx
+++ b/Rendering/OpenGL2/vtkShader.cxx
@@ -17,6 +17,7 @@
 
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkShader);
 
 vtkShader::vtkShader()
@@ -127,3 +128,4 @@ void vtkShader::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkShader.h b/Rendering/OpenGL2/vtkShader.h
index 8e590a25e7b00aeca05f53d565130b408dac6405..411b273bef109e58086d90b00092df359608e324 100644
--- a/Rendering/OpenGL2/vtkShader.h
+++ b/Rendering/OpenGL2/vtkShader.h
@@ -34,6 +34,7 @@
  * attached to a ShaderProgram in order to render geometry etc.
  */
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkShader : public vtkObject
 {
 public:
@@ -133,4 +134,5 @@ private:
   void operator=(const vtkShader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkShaderProgram.cxx b/Rendering/OpenGL2/vtkShaderProgram.cxx
index b46123f411e6403604766f814bcc8e70a6a71ddb..3396135edb74c5fd5cce31964d47c8d6c1fa56ae 100644
--- a/Rendering/OpenGL2/vtkShaderProgram.cxx
+++ b/Rendering/OpenGL2/vtkShaderProgram.cxx
@@ -29,6 +29,7 @@
 #include <sstream>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 
@@ -977,3 +978,4 @@ void vtkShaderProgram::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "FileNamePrefixForDebugging: "
      << (this->FileNamePrefixForDebugging ? this->FileNamePrefixForDebugging : "(null)") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkShaderProgram.h b/Rendering/OpenGL2/vtkShaderProgram.h
index 4b189f87c1e49d8f9074f07e295290c490151600..518b37494ccfd9cbc41f0ecaedada9e3cf6e15db 100644
--- a/Rendering/OpenGL2/vtkShaderProgram.h
+++ b/Rendering/OpenGL2/vtkShaderProgram.h
@@ -27,6 +27,7 @@
 #include <map>    // For member variables.
 #include <string> // For member variables.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix3x3;
 class vtkMatrix4x4;
 class vtkTransformFeedback;
@@ -398,4 +399,5 @@ private:
   char* FileNamePrefixForDebugging;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkShadowMapBakerPass.cxx b/Rendering/OpenGL2/vtkShadowMapBakerPass.cxx
index 3197292aef992fa7e6c189522d9956d82297af83..51f7e1ce39b5b843eeb723741fc164307264eaf6 100644
--- a/Rendering/OpenGL2/vtkShadowMapBakerPass.cxx
+++ b/Rendering/OpenGL2/vtkShadowMapBakerPass.cxx
@@ -48,6 +48,7 @@
 //#define VTK_SHADOW_MAP_BAKER_PASS_DEBUG
 //#define DONT_DUPLICATE_LIGHTS
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkShadowMapBakerPass);
 vtkCxxSetObjectMacro(vtkShadowMapBakerPass, OpaqueSequence, vtkRenderPass);
 vtkCxxSetObjectMacro(vtkShadowMapBakerPass, CompositeZPass, vtkRenderPass);
@@ -712,3 +713,4 @@ void vtkShadowMapBakerPass::ReleaseGraphicsResources(vtkWindow* w)
   delete this->LightCameras;
   this->LightCameras = nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkShadowMapBakerPass.h b/Rendering/OpenGL2/vtkShadowMapBakerPass.h
index ec4f0b1ef8e1ddaa68a6ea52afb54ffebaf58b7d..d31d26db3bb7e03051491f007ad4c18205c57cf8 100644
--- a/Rendering/OpenGL2/vtkShadowMapBakerPass.h
+++ b/Rendering/OpenGL2/vtkShadowMapBakerPass.h
@@ -46,6 +46,7 @@
 #include "vtkSmartPointer.h"           // for ivars
 #include <vector>                      // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 class vtkInformationIntegerKey;
 class vtkCamera;
@@ -231,4 +232,5 @@ private:
   void operator=(const vtkShadowMapBakerPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkShadowMapPass.cxx b/Rendering/OpenGL2/vtkShadowMapPass.cxx
index 5b1d2bf9808c221c48584ee5b722eaebb5199e74..bbf81732aaef18696b49d7eb37016cae7c589acc 100644
--- a/Rendering/OpenGL2/vtkShadowMapPass.cxx
+++ b/Rendering/OpenGL2/vtkShadowMapPass.cxx
@@ -56,6 +56,7 @@
 //#define VTK_SHADOW_MAP_PASS_DEBUG
 //#define DONT_DUPLICATE_LIGHTS
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkShadowMapPass);
 vtkCxxSetObjectMacro(vtkShadowMapPass, ShadowMapBakerPass, vtkShadowMapBakerPass);
 vtkCxxSetObjectMacro(vtkShadowMapPass, OpaqueSequence, vtkRenderPass);
@@ -475,3 +476,4 @@ void vtkShadowMapPass::ReleaseGraphicsResources(vtkWindow* w)
     this->ShadowMapBakerPass->ReleaseGraphicsResources(w);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkShadowMapPass.h b/Rendering/OpenGL2/vtkShadowMapPass.h
index 63e6cb3fedb333aaba1ca9879744b4f2e725ba86..33f401d19df6e9ae3116d8222c21690f88228aac 100644
--- a/Rendering/OpenGL2/vtkShadowMapPass.h
+++ b/Rendering/OpenGL2/vtkShadowMapPass.h
@@ -46,6 +46,7 @@
 #include <string>                      // For member variables.
 #include <vector>                      // STL Header
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 class vtkInformationIntegerKey;
 class vtkCamera;
@@ -176,4 +177,5 @@ private:
   void operator=(const vtkShadowMapPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkSimpleMotionBlurPass.cxx b/Rendering/OpenGL2/vtkSimpleMotionBlurPass.cxx
index fa1433015dfda2dff4148523bfa4034ff1eaebd3..9df4fa85be0b0aa0d52bc3a461597f4d8bdd0407 100644
--- a/Rendering/OpenGL2/vtkSimpleMotionBlurPass.cxx
+++ b/Rendering/OpenGL2/vtkSimpleMotionBlurPass.cxx
@@ -33,6 +33,7 @@
 #include "vtkSimpleMotionBlurPassFS.h"
 #include "vtkTextureObjectVS.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSimpleMotionBlurPass);
 
 //------------------------------------------------------------------------------
@@ -321,3 +322,4 @@ void vtkSimpleMotionBlurPass::ReleaseGraphicsResources(vtkWindow* w)
     this->BlendProgram = nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkSimpleMotionBlurPass.h b/Rendering/OpenGL2/vtkSimpleMotionBlurPass.h
index e639ce98b22f6334a93a1aa1d29eb7086e7c9d62..8d51aecd9ed371670063d6050e3258e9be28e6de 100644
--- a/Rendering/OpenGL2/vtkSimpleMotionBlurPass.h
+++ b/Rendering/OpenGL2/vtkSimpleMotionBlurPass.h
@@ -32,6 +32,7 @@
 #include "vtkDepthImageProcessingPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLHelper;
 class vtkOpenGLRenderWindow;
@@ -132,4 +133,5 @@ private:
   void operator=(const vtkSimpleMotionBlurPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkSobelGradientMagnitudePass.cxx b/Rendering/OpenGL2/vtkSobelGradientMagnitudePass.cxx
index c845ff7d539b208c986af0173d9b1b103903d012..0b2d10b908b4d8ad0a1544c3ec539da72fe7a342 100644
--- a/Rendering/OpenGL2/vtkSobelGradientMagnitudePass.cxx
+++ b/Rendering/OpenGL2/vtkSobelGradientMagnitudePass.cxx
@@ -45,6 +45,7 @@
 #include "vtkSobelGradientMagnitudePass2FS.h"
 #include "vtkTextureObjectVS.h" // a pass through shader
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSobelGradientMagnitudePass);
 
 //------------------------------------------------------------------------------
@@ -508,3 +509,4 @@ void vtkSobelGradientMagnitudePass::ReleaseGraphicsResources(vtkWindow* w)
     this->Gy1 = nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkSobelGradientMagnitudePass.h b/Rendering/OpenGL2/vtkSobelGradientMagnitudePass.h
index 9fcdb956284d08b343851b62aaa755dfbd6ab0ea..a4d85caa43f17e7412e69366004782ff60731040 100644
--- a/Rendering/OpenGL2/vtkSobelGradientMagnitudePass.h
+++ b/Rendering/OpenGL2/vtkSobelGradientMagnitudePass.h
@@ -63,6 +63,7 @@
 #include "vtkImageProcessingPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDepthPeelingPassLayerList; // Pimpl
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLHelper;
@@ -117,4 +118,5 @@ private:
   void operator=(const vtkSobelGradientMagnitudePass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkTestOpenGLVersion.cxx b/Rendering/OpenGL2/vtkTestOpenGLVersion.cxx
index a824ee6ac2c1d2efba560c11679294924f2a946f..309863d7cdf75e53bfff2123b2ade6ec90d9f5dc 100644
--- a/Rendering/OpenGL2/vtkTestOpenGLVersion.cxx
+++ b/Rendering/OpenGL2/vtkTestOpenGLVersion.cxx
@@ -19,6 +19,8 @@ with additional system information.
 
 =========================================================================*/
 
+#include "vtkABINamespace.h"
+
 #include <iostream>
 #include <sstream>
 #include <string>
@@ -28,6 +30,7 @@ with additional system information.
 
 #include <GL/gl.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 class CheckOpenGLVersion
 {
 public:
@@ -152,6 +155,7 @@ bool CheckOpenGLVersion::hasVersion_3_2()
 
   return false;
 }
+VTK_ABI_NAMESPACE_END
 
 int CALLBACK WinMain(_In_ HINSTANCE hInstance, _In_ HINSTANCE /*hPrevInstance*/,
   _In_ LPSTR lpCmdLine, _In_ int /*nCmdShow*/)
diff --git a/Rendering/OpenGL2/vtkTestOpenGLVersion.h b/Rendering/OpenGL2/vtkTestOpenGLVersion.h
index e56f9e7983b882e7e221f31d5be377df0b1c9fde..b861bb725d851df04a8b4045a966ab335c8da2e9 100644
--- a/Rendering/OpenGL2/vtkTestOpenGLVersion.h
+++ b/Rendering/OpenGL2/vtkTestOpenGLVersion.h
@@ -34,10 +34,13 @@
  *    to these libraries as the second argument to HandleOpenGL32Issues
  */
 
+#include "vtkABINamespace.h"
+
 #include <windows.h>
 
 // returns an int, zero indicates a problem though right now
 // all paths return 1.
+VTK_ABI_NAMESPACE_BEGIN
 int HandleOpenGL32Issues(const char* pathToTestOpenGLExecutable, const char* mesaLibPath)
 {
   // run the test executable and collect the result
@@ -56,3 +59,4 @@ int HandleOpenGL32Issues(const char* pathToTestOpenGLExecutable, const char* mes
 }
 
 // VTK-HeaderTest-Exclude: vtkTestOpenGLVersion.h
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkTextureObject.cxx b/Rendering/OpenGL2/vtkTextureObject.cxx
index cab40c2f8fe20bcd29fe08df9aca06ea86dc93dd..a7ef5ecb936c96e486cf93a5b55c0e9e326490c6 100644
--- a/Rendering/OpenGL2/vtkTextureObject.cxx
+++ b/Rendering/OpenGL2/vtkTextureObject.cxx
@@ -51,6 +51,7 @@
 
 // Mapping from DepthTextureCompareFunction values to OpenGL values.
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 static GLint OpenGLDepthTextureCompareFunction[8] = { GL_LEQUAL, GL_GEQUAL, GL_LESS, GL_GREATER,
   GL_EQUAL, GL_NOTEQUAL, GL_ALWAYS, GL_NEVER };
 
@@ -2124,3 +2125,4 @@ void vtkTextureObject::PrintSelf(ostream& os, vtkIndent indent)
      << DepthTextureCompareFunctionAsString[this->DepthTextureCompareFunction] << endl;
   os << indent << "GenerateMipmap: " << this->GenerateMipmap << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkTextureObject.h b/Rendering/OpenGL2/vtkTextureObject.h
index 9caa023cd34163ac500f6d2dcb40403893763765..26084d861a4da2d10665b85c05b8bb471fc64414 100644
--- a/Rendering/OpenGL2/vtkTextureObject.h
+++ b/Rendering/OpenGL2/vtkTextureObject.h
@@ -28,6 +28,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include "vtkWeakPointer.h"            // for render context
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLBufferObject;
 class vtkOpenGLHelper;
 class vtkOpenGLRenderWindow;
@@ -800,4 +801,5 @@ private:
   void operator=(const vtkTextureObject&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkTextureUnitManager.cxx b/Rendering/OpenGL2/vtkTextureUnitManager.cxx
index 73c7f4a0a10e8c43de0e58c9fa9f044f3f32003e..10db6901c26a813b47e7b66048f36e07f2d99003 100644
--- a/Rendering/OpenGL2/vtkTextureUnitManager.cxx
+++ b/Rendering/OpenGL2/vtkTextureUnitManager.cxx
@@ -20,6 +20,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTextureUnitManager);
 
 //------------------------------------------------------------------------------
@@ -168,3 +169,4 @@ void vtkTextureUnitManager::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkTextureUnitManager.h b/Rendering/OpenGL2/vtkTextureUnitManager.h
index 71f8df241855623bad423aa534ada5713e9aa037..ab79844ea3f4e7d16f1c55c830435dcc04bcb1ea 100644
--- a/Rendering/OpenGL2/vtkTextureUnitManager.h
+++ b/Rendering/OpenGL2/vtkTextureUnitManager.h
@@ -33,6 +33,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkTextureUnitManager : public vtkObject
@@ -115,4 +116,5 @@ private:
   void operator=(const vtkTextureUnitManager&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkToneMappingPass.cxx b/Rendering/OpenGL2/vtkToneMappingPass.cxx
index ab8ba61264eaf4faab694ae7744e5742d0820dca..0d5773f148a6772c92a4f35201ada81b241caf69 100644
--- a/Rendering/OpenGL2/vtkToneMappingPass.cxx
+++ b/Rendering/OpenGL2/vtkToneMappingPass.cxx
@@ -29,6 +29,7 @@
 #include "vtkShaderProgram.h"
 #include "vtkTextureObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkToneMappingPass);
 
 //------------------------------------------------------------------------------
@@ -328,3 +329,4 @@ void vtkToneMappingPass::PreComputeAnchorCurveGenericFilmic()
         (powf(m, a * d) * n - n * powf(this->HdrMax, a * d)),
       0.f);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkToneMappingPass.h b/Rendering/OpenGL2/vtkToneMappingPass.h
index b5a91be193a266dfb5d80cd9fabb486569ee6e8c..084a3bacac4ca351a4056fa889b77a9d72aef191 100644
--- a/Rendering/OpenGL2/vtkToneMappingPass.h
+++ b/Rendering/OpenGL2/vtkToneMappingPass.h
@@ -41,6 +41,7 @@
 #include "vtkImageProcessingPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLFramebufferObject;
 class vtkOpenGLQuadHelper;
 class vtkTextureObject;
@@ -203,4 +204,5 @@ private:
   void operator=(const vtkToneMappingPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkTransformFeedback.cxx b/Rendering/OpenGL2/vtkTransformFeedback.cxx
index 41b851038451638c3230ba1e37b040a4893b61c1..74b4066fdf11defebab1096ad026c4a71a90d9fd 100644
--- a/Rendering/OpenGL2/vtkTransformFeedback.cxx
+++ b/Rendering/OpenGL2/vtkTransformFeedback.cxx
@@ -22,6 +22,7 @@
 
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTransformFeedback);
 
 //------------------------------------------------------------------------------
@@ -258,3 +259,4 @@ vtkTransformFeedback::~vtkTransformFeedback()
   this->ReleaseGraphicsResources();
   this->ReleaseBufferData();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkTransformFeedback.h b/Rendering/OpenGL2/vtkTransformFeedback.h
index 3466943b2be5b09741acdb46ff3fde04b60f561f..1c4d4addfc1979823059a59590efd61e4311e467 100644
--- a/Rendering/OpenGL2/vtkTransformFeedback.h
+++ b/Rendering/OpenGL2/vtkTransformFeedback.h
@@ -33,6 +33,7 @@
 #include <string> // For string
 #include <vector> // For vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkShaderProgram;
 class vtkWindow;
 class vtkOpenGLBufferObject;
@@ -232,4 +233,5 @@ inline size_t vtkTransformFeedback::GetBytesPerVertex(vtkTransformFeedback::Vary
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTransformFeedback_h
diff --git a/Rendering/OpenGL2/vtkTranslucentPass.cxx b/Rendering/OpenGL2/vtkTranslucentPass.cxx
index a0f01828710089025bd3703fac0a0327cb129c54..2936f163ec757521e349a1a72be6c42a055e485e 100644
--- a/Rendering/OpenGL2/vtkTranslucentPass.cxx
+++ b/Rendering/OpenGL2/vtkTranslucentPass.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTranslucentPass);
 
 //------------------------------------------------------------------------------
@@ -42,3 +43,4 @@ void vtkTranslucentPass::Render(const vtkRenderState* s)
   this->NumberOfRenderedProps = 0;
   this->RenderFilteredTranslucentPolygonalGeometry(s);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkTranslucentPass.h b/Rendering/OpenGL2/vtkTranslucentPass.h
index f0a3c6d8c75f9b3872c8f23beecbb93c6bb8cb4d..a9b1ffcdcbeaf8c6fa5edab048851959e13b2d5f 100644
--- a/Rendering/OpenGL2/vtkTranslucentPass.h
+++ b/Rendering/OpenGL2/vtkTranslucentPass.h
@@ -34,6 +34,7 @@
 #include "vtkDefaultPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkTranslucentPass : public vtkDefaultPass
 {
 public:
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkTranslucentPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkValuePass.cxx b/Rendering/OpenGL2/vtkValuePass.cxx
index cddb49a083ecb7656b9bdcf1100b713207ff5a1e..839f103fc5baae5a782cda5f6ba0a282e9032a73 100644
--- a/Rendering/OpenGL2/vtkValuePass.cxx
+++ b/Rendering/OpenGL2/vtkValuePass.cxx
@@ -47,6 +47,7 @@
 #include <cassert>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkValuePass::Parameters
 {
   Parameters()
@@ -1061,3 +1062,4 @@ vtkAbstractArray* vtkValuePass::GetArrayFromCompositeData(vtkMapper* mapper, Par
 
   return abstractArray;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkValuePass.h b/Rendering/OpenGL2/vtkValuePass.h
index 82657058ec73a9333c0a3012be179e4bda6a1e1a..2af3fc3fdbcded752a9778133ad745f0b26b80ed 100644
--- a/Rendering/OpenGL2/vtkValuePass.h
+++ b/Rendering/OpenGL2/vtkValuePass.h
@@ -46,6 +46,7 @@
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include "vtkSmartPointer.h"           //for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkActor;
 class vtkDataArray;
@@ -219,4 +220,5 @@ private:
   void operator=(const vtkValuePass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkVolumetricPass.cxx b/Rendering/OpenGL2/vtkVolumetricPass.cxx
index 5f44867ecec8908efe3f02d5a1acd64f0bc02520..c116d48d7d59ac1abd10000b9d805cabb01ed063 100644
--- a/Rendering/OpenGL2/vtkVolumetricPass.cxx
+++ b/Rendering/OpenGL2/vtkVolumetricPass.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVolumetricPass);
 
 //------------------------------------------------------------------------------
@@ -42,3 +43,4 @@ void vtkVolumetricPass::Render(const vtkRenderState* s)
   this->NumberOfRenderedProps = 0;
   this->RenderFilteredVolumetricGeometry(s);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkVolumetricPass.h b/Rendering/OpenGL2/vtkVolumetricPass.h
index 48004220514db2b1ed35c1f8d8af490e3aff4a0b..193db628f6f6d233ca81223bef4666a59ff8e450 100644
--- a/Rendering/OpenGL2/vtkVolumetricPass.h
+++ b/Rendering/OpenGL2/vtkVolumetricPass.h
@@ -34,6 +34,7 @@
 #include "vtkDefaultPass.h"
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENGL2_EXPORT vtkVolumetricPass : public vtkDefaultPass
 {
 public:
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkVolumetricPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkWin32OpenGLDXRenderWindow.cxx b/Rendering/OpenGL2/vtkWin32OpenGLDXRenderWindow.cxx
index bc31d91557db704fb3820e1ae21ff059586d6e71..2bb33d8f0854109d214e5ef199b58de74e461d92 100644
--- a/Rendering/OpenGL2/vtkWin32OpenGLDXRenderWindow.cxx
+++ b/Rendering/OpenGL2/vtkWin32OpenGLDXRenderWindow.cxx
@@ -23,6 +23,7 @@
 #include <dxgi.h>
 #include <wrl/client.h> // For Microsoft::WRL::ComPtr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWin32OpenGLDXRenderWindow::PIMPL
 {
 public:
@@ -278,3 +279,4 @@ void vtkWin32OpenGLDXRenderWindow::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Shared Texture Handle: " << this->GLSharedTextureHandle << "\n";
   os << indent << "Registered GL texture: " << this->TextureId << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkWin32OpenGLDXRenderWindow.h b/Rendering/OpenGL2/vtkWin32OpenGLDXRenderWindow.h
index 60e57cca5570fbfc91e252f0f962f5c75f1ed4ef..d789c4f8a9825ba4241acf217d6fe0df6fca1980 100644
--- a/Rendering/OpenGL2/vtkWin32OpenGLDXRenderWindow.h
+++ b/Rendering/OpenGL2/vtkWin32OpenGLDXRenderWindow.h
@@ -26,6 +26,7 @@
 
 #include "vtkRenderingOpenGL2Module.h" // For export macro
 #include "vtkWin32OpenGLRenderWindow.h"
+VTK_ABI_NAMESPACE_BEGIN
 
 struct ID3D11Device;
 struct ID3D11Texture2D;
@@ -123,4 +124,5 @@ private:
 
   LUID AdapterId = { 0, 0 }; // DGXI adapter id
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkWin32OpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkWin32OpenGLRenderWindow.cxx
index a20d3eae7a2dd8a61b9f9955e51d0d1cbe4570c0..ac6ed5e1a5df773f3538ce66673175f7dc0a0ef9 100644
--- a/Rendering/OpenGL2/vtkWin32OpenGLRenderWindow.cxx
+++ b/Rendering/OpenGL2/vtkWin32OpenGLRenderWindow.cxx
@@ -45,6 +45,7 @@ PURPOSE.  See the above copyright notice for more information.
 #define WM_MOUSEWHEEL 0x020A
 #endif // WM_MOUSEWHEEL
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWin32OpenGLRenderWindow);
 
 const std::string vtkWin32OpenGLRenderWindow::DEFAULT_BASE_WINDOW_NAME =
@@ -1512,3 +1513,4 @@ bool vtkWin32OpenGLRenderWindow::DetectDPI()
   this->SetDPI(GetDeviceCaps(this->DeviceContext, LOGPIXELSY));
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkWin32OpenGLRenderWindow.h b/Rendering/OpenGL2/vtkWin32OpenGLRenderWindow.h
index babff08219c88e7eb2d511275a5248e0d6299f15..5945c4859aa8012f244c1639b54c6aa31291556c 100644
--- a/Rendering/OpenGL2/vtkWin32OpenGLRenderWindow.h
+++ b/Rendering/OpenGL2/vtkWin32OpenGLRenderWindow.h
@@ -30,6 +30,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include "vtkWindows.h" // For windows API
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 
 class VTKRENDERINGOPENGL2_EXPORT vtkWin32OpenGLRenderWindow : public vtkOpenGLRenderWindow
@@ -342,4 +343,5 @@ private:
   void operator=(const vtkWin32OpenGLRenderWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx b/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx
index 61b5be2867e06909b2163576b61cde2c727d6102..4a403c0b8724e358fccb3aa39ea9f52a1b7021fb 100644
--- a/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx
+++ b/Rendering/OpenGL2/vtkXOpenGLRenderWindow.cxx
@@ -76,6 +76,7 @@ typedef ptrdiff_t GLsizeiptr;
  * structs working. We do not want to include XUtil.h in the header as
  * it populates the global namespace.
  */
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkXVisualInfo : public XVisualInfo
 {
 };
@@ -1758,3 +1759,4 @@ void vtkXOpenGLRenderWindow::SetCurrentCursor(int shape)
       break;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenGL2/vtkXOpenGLRenderWindow.h b/Rendering/OpenGL2/vtkXOpenGLRenderWindow.h
index 05ed646fe404620a5e6cc7fafc8e45fc02c0c05e..b39d5c094ea6d4147857e5d6c4179ec76588eacb 100644
--- a/Rendering/OpenGL2/vtkXOpenGLRenderWindow.h
+++ b/Rendering/OpenGL2/vtkXOpenGLRenderWindow.h
@@ -30,6 +30,7 @@
 #include <X11/Xlib.h>                  // Needed for X types used in the public interface
 #include <stack>                       // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkXOpenGLRenderWindowInternal;
 struct vtkXVisualInfo;
@@ -373,4 +374,5 @@ private:
   void operator=(const vtkXOpenGLRenderWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenVR/vtkOpenVRCamera.cxx b/Rendering/OpenVR/vtkOpenVRCamera.cxx
index 002b4254076b8a8b3c47b41388297aeccf9cce9c..b9c007831613c2f26bffb06086cbc87a43a7f4a7 100644
--- a/Rendering/OpenVR/vtkOpenVRCamera.cxx
+++ b/Rendering/OpenVR/vtkOpenVRCamera.cxx
@@ -25,6 +25,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenVRCamera);
 
 vtkOpenVRCamera::vtkOpenVRCamera() = default;
@@ -194,3 +195,4 @@ void vtkOpenVRCamera::Render(vtkRenderer* ren)
 
   vtkOpenGLCheckErrorMacro("failed after Render");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenVR/vtkOpenVRCamera.h b/Rendering/OpenVR/vtkOpenVRCamera.h
index deed53092f2043b891577342f730d2daee668053..e217d4e7b665d2eeebf01381780ef52e172db740 100644
--- a/Rendering/OpenVR/vtkOpenVRCamera.h
+++ b/Rendering/OpenVR/vtkOpenVRCamera.h
@@ -26,6 +26,7 @@
 #include "vtkRenderingOpenVRModule.h" // For export macro
 #include "vtkVRHMDCamera.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkMatrix4x4;
 
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkOpenVRCamera&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenVR/vtkOpenVRControlsHelper.cxx b/Rendering/OpenVR/vtkOpenVRControlsHelper.cxx
index 50ef3c12a344cb4dad260f1fddc7ef13094247a0..a1c4174d84237dd06bd50e779ba1f1c44fa9e6a2 100644
--- a/Rendering/OpenVR/vtkOpenVRControlsHelper.cxx
+++ b/Rendering/OpenVR/vtkOpenVRControlsHelper.cxx
@@ -19,6 +19,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkOpenVRRenderWindow.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenVRControlsHelper);
 
 //------------------------------------------------------------------------------
@@ -87,3 +88,4 @@ void vtkOpenVRControlsHelper::InitControlPosition()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenVR/vtkOpenVRControlsHelper.h b/Rendering/OpenVR/vtkOpenVRControlsHelper.h
index e35cedca3e3009e509d25b08aeff26cebff9c2bf..7e01aed8a56a5fa374002a2b51a2038a2f3078d1 100644
--- a/Rendering/OpenVR/vtkOpenVRControlsHelper.h
+++ b/Rendering/OpenVR/vtkOpenVRControlsHelper.h
@@ -27,6 +27,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkRenderingOpenVRModule.h" // For export macro
 #include "vtkVRControlsHelper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENVR_EXPORT vtkOpenVRControlsHelper : public vtkVRControlsHelper
 {
 public:
@@ -47,4 +48,5 @@ private:
   void operator=(const vtkOpenVRControlsHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenVR/vtkOpenVRDefaultOverlay.cxx b/Rendering/OpenVR/vtkOpenVRDefaultOverlay.cxx
index 3829375abaa96f9cf41e85666bf07a8c96e62c9b..3efb2567b4d20b5bf0d88a4bbee4da2ab601fede 100644
--- a/Rendering/OpenVR/vtkOpenVRDefaultOverlay.cxx
+++ b/Rendering/OpenVR/vtkOpenVRDefaultOverlay.cxx
@@ -21,6 +21,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenVRDefaultOverlay);
 
 void handleMotionFactor(vtkObject* caller, unsigned long eid, void* clientdata, void* calldata)
@@ -283,3 +284,4 @@ void vtkOpenVRDefaultOverlay::Render()
 
   this->Superclass::Render();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenVR/vtkOpenVRDefaultOverlay.h b/Rendering/OpenVR/vtkOpenVRDefaultOverlay.h
index a09a47ebd2406112855c208b31cce5b1ddbb7c3e..abee4ed37b172a727a526cf951fca1af0194bf10 100644
--- a/Rendering/OpenVR/vtkOpenVRDefaultOverlay.h
+++ b/Rendering/OpenVR/vtkOpenVRDefaultOverlay.h
@@ -24,6 +24,7 @@
 #include "vtkOpenVROverlay.h"
 #include "vtkRenderingOpenVRModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENVR_EXPORT vtkOpenVRDefaultOverlay : public vtkOpenVROverlay
 {
 public:
@@ -46,4 +47,5 @@ private:
   void operator=(const vtkOpenVRDefaultOverlay&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenVR/vtkOpenVRInteractorStyle.cxx b/Rendering/OpenVR/vtkOpenVRInteractorStyle.cxx
index a3cc0fcf7c0dd21d049b528d5ae1fb55dbfdd027..556f6249ce81c4859216ba7c5db0e81977fec2e9 100644
--- a/Rendering/OpenVR/vtkOpenVRInteractorStyle.cxx
+++ b/Rendering/OpenVR/vtkOpenVRInteractorStyle.cxx
@@ -20,6 +20,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkOpenVRRenderWindow.h"
 #include "vtkOpenVRRenderWindowInteractor.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenVRInteractorStyle);
 
 //------------------------------------------------------------------------------
@@ -59,3 +60,4 @@ vtkVRControlsHelper* vtkOpenVRInteractorStyle::MakeControlsHelper()
   vtkVRControlsHelper* helper = vtkOpenVRControlsHelper::New();
   return helper;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenVR/vtkOpenVRInteractorStyle.h b/Rendering/OpenVR/vtkOpenVRInteractorStyle.h
index 51125cf17a28036b9b7f09fcf7a8d205434e6f22..d3012f7a1ea07e72e0dc2132e7eb6790f56dfd79 100644
--- a/Rendering/OpenVR/vtkOpenVRInteractorStyle.h
+++ b/Rendering/OpenVR/vtkOpenVRInteractorStyle.h
@@ -23,6 +23,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkRenderingOpenVRModule.h" // For export macro
 #include "vtkVRInteractorStyle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindowInteractor;
 class vtkVRControlsHelper;
 
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkOpenVRInteractorStyle&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenVR/vtkOpenVRModel.cxx b/Rendering/OpenVR/vtkOpenVRModel.cxx
index 0bcd125daf72f58551ebef6e2b95cd4a71602178..11431a8a5f77b213a2aad829366712490d68cefa 100644
--- a/Rendering/OpenVR/vtkOpenVRModel.cxx
+++ b/Rendering/OpenVR/vtkOpenVRModel.cxx
@@ -23,6 +23,7 @@ PURPOSE.  See the above copyright notice for more information.
 /*=========================================================================
 vtkOpenVRModel
 =========================================================================*/
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenVRModel);
 
 //------------------------------------------------------------------------------
@@ -120,3 +121,4 @@ void vtkOpenVRModel::LoadModelAndTexture(vtkOpenGLRenderWindow* win)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenVR/vtkOpenVRModel.h b/Rendering/OpenVR/vtkOpenVRModel.h
index 625557e4bc40bcf1fa0f12cae56143630f3440b0..e25a30210e1c8b6f182c6cefe46e85ec0f3fa5b6 100644
--- a/Rendering/OpenVR/vtkOpenVRModel.h
+++ b/Rendering/OpenVR/vtkOpenVRModel.h
@@ -27,6 +27,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkVRModel.h"
 #include <openvr.h> // for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENVR_EXPORT vtkOpenVRModel : public vtkVRModel
 {
 public:
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkOpenVRModel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenVR/vtkOpenVROverlay.cxx b/Rendering/OpenVR/vtkOpenVROverlay.cxx
index c89569a3d62e2825481d1e30bdf914ea85296e06..47329f79eaa2aacd37f8766d7cf46e8955272632 100644
--- a/Rendering/OpenVR/vtkOpenVROverlay.cxx
+++ b/Rendering/OpenVR/vtkOpenVROverlay.cxx
@@ -29,6 +29,7 @@
 
 #include "OpenVRDashboard.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenVROverlay);
 
 vtkOpenVROverlay::vtkOpenVROverlay()
@@ -461,3 +462,4 @@ void vtkOpenVROverlay::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenVR/vtkOpenVROverlay.h b/Rendering/OpenVR/vtkOpenVROverlay.h
index b7747874f2be6b2efb10774af114b77ac52eca9d..0b01f3689d4b55964d1dba2c0ec1da2db114c765 100644
--- a/Rendering/OpenVR/vtkOpenVROverlay.h
+++ b/Rendering/OpenVR/vtkOpenVROverlay.h
@@ -29,6 +29,7 @@
 #include <openvr.h>                   // for ivars
 #include <vector>                     // ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkJPEGReader;
 class vtkOpenVROverlaySpot;
 class vtkOpenVRRenderWindow;
@@ -157,4 +158,5 @@ private:
   void operator=(const vtkOpenVROverlay&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenVR/vtkOpenVROverlayInternal.h b/Rendering/OpenVR/vtkOpenVROverlayInternal.h
index b6882bb09527eab28c0d184b6486afed7a3498c5..84599cd38bbe144485f50595b9d7631d18ea6910 100644
--- a/Rendering/OpenVR/vtkOpenVROverlayInternal.h
+++ b/Rendering/OpenVR/vtkOpenVROverlayInternal.h
@@ -21,6 +21,7 @@
 #include "vtkRenderWindowInteractor.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenVRCameraPose : public vtkVRCamera::Pose
 {
 public:
@@ -83,6 +84,7 @@ public:
   vtkOpenVROverlaySpot& operator=(const vtkOpenVROverlaySpot&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkPVOpenVROverlayInternal_h
 
 //****************************************************************************
diff --git a/Rendering/OpenVR/vtkOpenVRRenderWindow.cxx b/Rendering/OpenVR/vtkOpenVRRenderWindow.cxx
index bdf647a8de6582541ae1b37fc70d1194284d2eb0..3f9f16282ab953b9f9b78e45b07d08160c7f8cae 100644
--- a/Rendering/OpenVR/vtkOpenVRRenderWindow.cxx
+++ b/Rendering/OpenVR/vtkOpenVRRenderWindow.cxx
@@ -27,6 +27,7 @@ https://github.com/ValveSoftware/openvr/blob/master/LICENSE
 #include "vtkRendererCollection.h"
 #include "vtkVRCamera.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenVRRenderWindow);
 
 //------------------------------------------------------------------------------
@@ -485,3 +486,4 @@ vtkEventDataDevice vtkOpenVRRenderWindow::GetDeviceForOpenVRHandle(vr::TrackedDe
 
   return vtkEventDataDevice::Unknown;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenVR/vtkOpenVRRenderWindow.h b/Rendering/OpenVR/vtkOpenVRRenderWindow.h
index 8f74c565af345106394d87bacf6b91e69c9b5bae..b123b6671d726de3cb0db56fb7e553b326cab799 100644
--- a/Rendering/OpenVR/vtkOpenVRRenderWindow.h
+++ b/Rendering/OpenVR/vtkOpenVRRenderWindow.h
@@ -60,6 +60,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <openvr.h> // for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkOpenVRModel;
 
@@ -178,4 +179,5 @@ private:
   void operator=(const vtkOpenVRRenderWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenVR/vtkOpenVRRenderWindowInteractor.cxx b/Rendering/OpenVR/vtkOpenVRRenderWindowInteractor.cxx
index fb8c2ed73753d039832acead718deed6b99cd9e6..7d707a63c8f31d0c970cf911e5ef025b474c6046 100644
--- a/Rendering/OpenVR/vtkOpenVRRenderWindowInteractor.cxx
+++ b/Rendering/OpenVR/vtkOpenVRRenderWindowInteractor.cxx
@@ -24,6 +24,7 @@
 
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenVRRenderWindowInteractor);
 
 //------------------------------------------------------------------------------
@@ -397,3 +398,4 @@ bool GetDigitalActionState(
   }
   return actionData.bActive && actionData.bState;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenVR/vtkOpenVRRenderWindowInteractor.h b/Rendering/OpenVR/vtkOpenVRRenderWindowInteractor.h
index 8d84f8260fee2b75ca4f6fb57f9634af47c81f71..a12d7352b68ad3d2acb16c75c4e4bc31160cc788 100644
--- a/Rendering/OpenVR/vtkOpenVRRenderWindowInteractor.h
+++ b/Rendering/OpenVR/vtkOpenVRRenderWindowInteractor.h
@@ -29,6 +29,7 @@
 #include <openvr.h>   // for ivar
 #include <string>     // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENVR_EXPORT vtkOpenVRRenderWindowInteractor : public vtkVRRenderWindowInteractor
 {
 public:
@@ -91,4 +92,5 @@ private:
   void operator=(const vtkOpenVRRenderWindowInteractor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenVR/vtkOpenVRRenderer.cxx b/Rendering/OpenVR/vtkOpenVRRenderer.cxx
index b297b421c6b12c3d2fe374b0adcabec41181f310..40f47eb257335b4919fdbbd45bc495a2aeee8760 100644
--- a/Rendering/OpenVR/vtkOpenVRRenderer.cxx
+++ b/Rendering/OpenVR/vtkOpenVRRenderer.cxx
@@ -22,6 +22,7 @@ https://github.com/ValveSoftware/openvr/blob/master/LICENSE
 #include "vtkObjectFactory.h"
 #include "vtkOpenVRCamera.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenVRRenderer);
 
 //------------------------------------------------------------------------------
@@ -31,3 +32,4 @@ vtkCamera* vtkOpenVRRenderer::MakeCamera()
   this->InvokeEvent(vtkCommand::CreateCameraEvent, cam);
   return cam;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenVR/vtkOpenVRRenderer.h b/Rendering/OpenVR/vtkOpenVRRenderer.h
index 91b8047fea0f8909dea8e811fcf02676e7a90a8f..877eb0911527f6d2e0e86add17341e3c00c7482b 100644
--- a/Rendering/OpenVR/vtkOpenVRRenderer.h
+++ b/Rendering/OpenVR/vtkOpenVRRenderer.h
@@ -25,6 +25,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkRenderingOpenVRModule.h" // For export macro
 #include "vtkVRRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENVR_EXPORT vtkOpenVRRenderer : public vtkVRRenderer
 {
 public:
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkOpenVRRenderer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenXR/XrExtensions.h b/Rendering/OpenXR/XrExtensions.h
index e0c44c3f5f61b015e1ce6a7adcd4ba4162049998..e771cdcf75e188333e4f4f61ed0101307bbe884b 100644
--- a/Rendering/OpenXR/XrExtensions.h
+++ b/Rendering/OpenXR/XrExtensions.h
@@ -143,6 +143,7 @@
 
 namespace xr
 {
+VTK_ABI_NAMESPACE_BEGIN
 struct ExtensionDispatchTable
 {
   FOR_EACH_EXTENSION_FUNCTION(DEFINE_PROC_MEMBER);
@@ -153,6 +154,7 @@ struct ExtensionDispatchTable
     FOR_EACH_EXTENSION_FUNCTION(GET_INSTANCE_PROC_ADDRESS);
   }
 };
+VTK_ABI_NAMESPACE_END
 } // namespace xr
 
 #undef DEFINE_PROC_MEMBER
diff --git a/Rendering/OpenXR/XrGraphicsExtensions.h b/Rendering/OpenXR/XrGraphicsExtensions.h
index d8ad450f617612460517dfbf9139c5586f249bf9..7f71a60d8173842d78d6790022f39b43674f9e66 100644
--- a/Rendering/OpenXR/XrGraphicsExtensions.h
+++ b/Rendering/OpenXR/XrGraphicsExtensions.h
@@ -77,6 +77,7 @@
 
 namespace xr
 {
+VTK_ABI_NAMESPACE_BEGIN
 struct GraphicsExtensionDispatchTable
 {
   FOR_EACH_EXTENSION_FUNCTION(DEFINE_PROC_MEMBER);
@@ -87,6 +88,7 @@ struct GraphicsExtensionDispatchTable
     FOR_EACH_EXTENSION_FUNCTION(GET_INSTANCE_PROC_ADDRESS);
   }
 };
+VTK_ABI_NAMESPACE_END
 } // namespace xr
 
 #undef DEFINE_PROC_MEMBER
diff --git a/Rendering/OpenXR/vtkOpenXRCamera.cxx b/Rendering/OpenXR/vtkOpenXRCamera.cxx
index 16bff60ec4ffcd0dceb9b123e7245348ae67dc21..54b91971138fbcd2cc447b463dd6b7a2efa7b2b8 100644
--- a/Rendering/OpenXR/vtkOpenXRCamera.cxx
+++ b/Rendering/OpenXR/vtkOpenXRCamera.cxx
@@ -35,6 +35,7 @@
 
 #include "vtkOpenXRUtilities.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenXRCamera);
 
 vtkOpenXRCamera::vtkOpenXRCamera() = default;
@@ -148,3 +149,4 @@ void vtkOpenXRCamera::Render(vtkRenderer* ren)
 
   vtkOpenGLCheckErrorMacro("failed after Render");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXR/vtkOpenXRCamera.h b/Rendering/OpenXR/vtkOpenXRCamera.h
index fb6b23a269256dacd5e9b205ad4a81451307eb54..b0d28c3a5e7f278aabccc0a82482562e8f67dd42 100644
--- a/Rendering/OpenXR/vtkOpenXRCamera.h
+++ b/Rendering/OpenXR/vtkOpenXRCamera.h
@@ -30,6 +30,7 @@
 #include "vtkRenderingOpenXRModule.h" // For export macro
 #include "vtkVRHMDCamera.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENXR_EXPORT vtkOpenXRCamera : public vtkVRHMDCamera
 {
 public:
@@ -55,4 +56,5 @@ private:
   void operator=(const vtkOpenXRCamera&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenXR/vtkOpenXRControlsHelper.cxx b/Rendering/OpenXR/vtkOpenXRControlsHelper.cxx
index eb47b3cd50bb39e2ffcb0897944c8c82d75f5cdb..d9377447602c6f482df15dbd98f341e2efe4765e 100644
--- a/Rendering/OpenXR/vtkOpenXRControlsHelper.cxx
+++ b/Rendering/OpenXR/vtkOpenXRControlsHelper.cxx
@@ -16,6 +16,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenXRControlsHelper);
 
 //------------------------------------------------------------------------------
@@ -31,3 +32,4 @@ void vtkOpenXRControlsHelper::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXR/vtkOpenXRControlsHelper.h b/Rendering/OpenXR/vtkOpenXRControlsHelper.h
index 8ec03d25998a4934db78d1fe51a928133fc2ea44..d55db50d5c6067189fed50603e4db471f7674f41 100644
--- a/Rendering/OpenXR/vtkOpenXRControlsHelper.h
+++ b/Rendering/OpenXR/vtkOpenXRControlsHelper.h
@@ -27,6 +27,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkRenderingOpenXRModule.h" // For export macro
 #include "vtkVRControlsHelper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENXR_EXPORT vtkOpenXRControlsHelper : public vtkVRControlsHelper
 {
 public:
@@ -48,4 +49,5 @@ private:
   void operator=(const vtkOpenXRControlsHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenXR/vtkOpenXRInteractorStyle.cxx b/Rendering/OpenXR/vtkOpenXRInteractorStyle.cxx
index 1e433e8f59317610b12a310b775f58c069cc04a0..6c03a124d25b3c52bcb36b08b2dc53ea5faef5f6 100644
--- a/Rendering/OpenXR/vtkOpenXRInteractorStyle.cxx
+++ b/Rendering/OpenXR/vtkOpenXRInteractorStyle.cxx
@@ -18,6 +18,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkOpenXRRenderWindowInteractor.h"
 
 // Map controller inputs to interaction states
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenXRInteractorStyle);
 
 //------------------------------------------------------------------------------
@@ -37,3 +38,4 @@ void vtkOpenXRInteractorStyle::SetupActions(vtkRenderWindowInteractor* iren)
     oiren->AddAction("triggeraction", vtkCommand::Select3DEvent);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXR/vtkOpenXRInteractorStyle.h b/Rendering/OpenXR/vtkOpenXRInteractorStyle.h
index 66653c7348290a205540976abfbfa869d999406b..8b772eaca764f6b92aa2c8e2195efcc0b909e120 100644
--- a/Rendering/OpenXR/vtkOpenXRInteractorStyle.h
+++ b/Rendering/OpenXR/vtkOpenXRInteractorStyle.h
@@ -23,6 +23,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkRenderingOpenXRModule.h" // For export macro
 #include "vtkVRInteractorStyle.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENXR_EXPORT vtkOpenXRInteractorStyle : public vtkVRInteractorStyle
 {
 public:
@@ -51,4 +52,5 @@ private:
   void operator=(const vtkOpenXRInteractorStyle&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenXR/vtkOpenXRManager.cxx b/Rendering/OpenXR/vtkOpenXRManager.cxx
index 2ca9ffd5e611fe3168a851da1f804fde430208d3..adfd3ee008f20e1d05a6248e6d5209ffa422e13b 100644
--- a/Rendering/OpenXR/vtkOpenXRManager.cxx
+++ b/Rendering/OpenXR/vtkOpenXRManager.cxx
@@ -28,6 +28,7 @@
     return false;                                                                                  \
   }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkOpenXRManager::vtkOpenXRManager()
 {
@@ -1387,3 +1388,4 @@ bool vtkOpenXRManager::ApplyVibration(const Action_t& actionT, const int hand,
   }
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXR/vtkOpenXRManager.h b/Rendering/OpenXR/vtkOpenXRManager.h
index f14af759055941ec785600eaabe7301e2e689db9..0f19f1633693ec2704aac6f6a0df526c06bce0bd 100644
--- a/Rendering/OpenXR/vtkOpenXRManager.h
+++ b/Rendering/OpenXR/vtkOpenXRManager.h
@@ -37,6 +37,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 
 class VTKRENDERINGOPENXR_EXPORT vtkOpenXRManager
@@ -605,5 +606,6 @@ private:
   void operator=(const vtkOpenXRManager&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkOpenXRManager.h
diff --git a/Rendering/OpenXR/vtkOpenXRManagerConnection.cxx b/Rendering/OpenXR/vtkOpenXRManagerConnection.cxx
index c1bcf26d056065b61a3697d4725bac6d72a8b45d..0b83bec1d83debb8adf4a5f3114d91144d7e125c 100644
--- a/Rendering/OpenXR/vtkOpenXRManagerConnection.cxx
+++ b/Rendering/OpenXR/vtkOpenXRManagerConnection.cxx
@@ -16,4 +16,6 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenXRManagerConnection);
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXR/vtkOpenXRManagerConnection.h b/Rendering/OpenXR/vtkOpenXRManagerConnection.h
index eddeb81468043d6e70dc456347eb947f91438270..6dc5d204dc3a21b0a460506042d46157086245ca 100644
--- a/Rendering/OpenXR/vtkOpenXRManagerConnection.h
+++ b/Rendering/OpenXR/vtkOpenXRManagerConnection.h
@@ -32,6 +32,7 @@
 #include "vtkRenderingOpenXRModule.h" // For export macro
 
 #include "vtkOpenXR.h" // For XrEventDataBuffer
+VTK_ABI_NAMESPACE_BEGIN
 
 class VTKRENDERINGOPENXR_EXPORT vtkOpenXRManagerConnection : public vtkObject
 {
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkOpenXRManagerConnection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenXR/vtkOpenXRManagerGraphics.cxx b/Rendering/OpenXR/vtkOpenXRManagerGraphics.cxx
index 236d89337f4a5b713afa7b33d1cb8f552edae117..02eaf4b9cc453b2350b4db132ca87dd23942629a 100644
--- a/Rendering/OpenXR/vtkOpenXRManagerGraphics.cxx
+++ b/Rendering/OpenXR/vtkOpenXRManagerGraphics.cxx
@@ -17,6 +17,7 @@
 #include "vtkOpenXRManager.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 uint32_t vtkOpenXRManagerGraphics::GetChainLength(XrSwapchain swapchain)
 {
   uint32_t chainLength;
@@ -26,3 +27,4 @@ uint32_t vtkOpenXRManagerGraphics::GetChainLength(XrSwapchain swapchain)
 
   return chainLength;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXR/vtkOpenXRManagerGraphics.h b/Rendering/OpenXR/vtkOpenXRManagerGraphics.h
index 8638d3cd887e702adec16c80a9fc04d3b29941f2..1d586a7d5ed4d15ffb869c75c3ac88d11943b99b 100644
--- a/Rendering/OpenXR/vtkOpenXRManagerGraphics.h
+++ b/Rendering/OpenXR/vtkOpenXRManagerGraphics.h
@@ -33,6 +33,7 @@
 
 #include "vtkOpenXR.h" // For OpenXR types
 #include <vector>      // For std::vector
+VTK_ABI_NAMESPACE_BEGIN
 
 class vtkOpenGLRenderWindow;
 
@@ -113,4 +114,5 @@ private:
   void operator=(const vtkOpenXRManagerGraphics&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenXR/vtkOpenXRManagerOpenGLGraphics.cxx b/Rendering/OpenXR/vtkOpenXRManagerOpenGLGraphics.cxx
index e3495eb6c33acfa28ba83bb7481451286962a62b..64ae59e2073b31b0dd106cd95accb02640a0213b 100644
--- a/Rendering/OpenXR/vtkOpenXRManagerOpenGLGraphics.cxx
+++ b/Rendering/OpenXR/vtkOpenXRManagerOpenGLGraphics.cxx
@@ -32,11 +32,14 @@
 // it populates the global namespace.
 #include "GL/glx.h"
 #include <X11/Xutil.h>
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkXVisualInfo : public XVisualInfo
 {
 };
+VTK_ABI_NAMESPACE_END
 #endif // VTK_USE_X
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenXRManagerOpenGLGraphics::PIMPL
 {
 public:
@@ -211,3 +214,4 @@ const char* vtkOpenXRManagerOpenGLGraphics::GetBackendExtensionName()
 {
   return XR_KHR_OPENGL_ENABLE_EXTENSION_NAME;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXR/vtkOpenXRManagerOpenGLGraphics.h b/Rendering/OpenXR/vtkOpenXRManagerOpenGLGraphics.h
index d18a4a0e346411a294e122424f05b12e4066993a..0dacfe592837c2beef45830f6c097ca0b2f9d342 100644
--- a/Rendering/OpenXR/vtkOpenXRManagerOpenGLGraphics.h
+++ b/Rendering/OpenXR/vtkOpenXRManagerOpenGLGraphics.h
@@ -41,6 +41,7 @@ typedef XrGraphicsBindingOpenGLWin32KHR XrGraphicsBindingOpenGL;
 #endif
 struct XrSwapchainImageOpenGLKHR;
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENXR_EXPORT vtkOpenXRManagerOpenGLGraphics : public vtkOpenXRManagerGraphics
 {
 public:
@@ -125,4 +126,5 @@ private:
   PIMPL* Private;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenXR/vtkOpenXRModel.cxx b/Rendering/OpenXR/vtkOpenXRModel.cxx
index 0e1aebe3d9cc1f6c38441efb691ec583e904a2af..b0a71d771e4548b9f1eb04f788bb06fb7b990034 100644
--- a/Rendering/OpenXR/vtkOpenXRModel.cxx
+++ b/Rendering/OpenXR/vtkOpenXRModel.cxx
@@ -25,6 +25,7 @@ PURPOSE.  See the above copyright notice for more information.
 /*=========================================================================
 vtkOpenXRModel
 =========================================================================*/
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenXRModel);
 
 //------------------------------------------------------------------------------
@@ -130,3 +131,4 @@ void vtkOpenXRModel::LoadModelAndTexture(vtkOpenGLRenderWindow* win)
     this->Loaded = true;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXR/vtkOpenXRModel.h b/Rendering/OpenXR/vtkOpenXRModel.h
index 6622c15e8577d03b30360110e2757d80f57f9e7d..7530f73618da2bff98a4ce30557846693e26c266 100644
--- a/Rendering/OpenXR/vtkOpenXRModel.h
+++ b/Rendering/OpenXR/vtkOpenXRModel.h
@@ -28,6 +28,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <atomic> // for ivars
 #include <vector> // for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENXR_EXPORT vtkOpenXRModel : public vtkVRModel
 {
 public:
@@ -56,4 +57,5 @@ private:
   void operator=(const vtkOpenXRModel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenXR/vtkOpenXRRenderWindow.cxx b/Rendering/OpenXR/vtkOpenXRRenderWindow.cxx
index a0dfa5a003ce6fb3259529c5ddf87efd47a5e2eb..e645c28d829bf1066f2b36d414356d5c6dad033c 100644
--- a/Rendering/OpenXR/vtkOpenXRRenderWindow.cxx
+++ b/Rendering/OpenXR/vtkOpenXRRenderWindow.cxx
@@ -42,6 +42,7 @@ https://github.com/ValveSoftware/openvr/blob/master/LICENSE
 #define stricmp strcasecmp
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenXRRenderWindow);
 
 //------------------------------------------------------------------------------
@@ -404,3 +405,4 @@ vtkEventDataDevice vtkOpenXRRenderWindow::GetDeviceForOpenXRHandle(uint32_t ohan
 
   return vtkEventDataDevice::Unknown;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXR/vtkOpenXRRenderWindow.h b/Rendering/OpenXR/vtkOpenXRRenderWindow.h
index e635c518cf50b2deb2ff30bb6b52bfe78e156edd..7cebc838e3036abeb80aad573b1dd21ceaad4dfa 100644
--- a/Rendering/OpenXR/vtkOpenXRRenderWindow.h
+++ b/Rendering/OpenXR/vtkOpenXRRenderWindow.h
@@ -56,6 +56,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <array> // array
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 
 class VTKRENDERINGOPENXR_EXPORT vtkOpenXRRenderWindow : public vtkVRRenderWindow
@@ -170,5 +171,6 @@ private:
   void operator=(const vtkOpenXRRenderWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkOpenXRRenderWindow.h
diff --git a/Rendering/OpenXR/vtkOpenXRRenderWindowInteractor.cxx b/Rendering/OpenXR/vtkOpenXRRenderWindowInteractor.cxx
index 652335deb9e6ac840c6f6fdd623529daa925fc24..aaa9edda5fdafdd50f2b015d136b40517dc62256 100644
--- a/Rendering/OpenXR/vtkOpenXRRenderWindowInteractor.cxx
+++ b/Rendering/OpenXR/vtkOpenXRRenderWindowInteractor.cxx
@@ -24,6 +24,7 @@
 #include <vtksys/FStream.hxx>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenXRRenderWindowInteractor);
 
 //------------------------------------------------------------------------------
@@ -840,3 +841,4 @@ bool vtkOpenXRRenderWindowInteractor::ApplyVibration(const std::string& actionNa
   return vtkOpenXRManager::GetInstance().ApplyVibration(
     actionData->ActionStruct, hand, amplitude, duration, frequency);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXR/vtkOpenXRRenderWindowInteractor.h b/Rendering/OpenXR/vtkOpenXRRenderWindowInteractor.h
index 2a51aa9c1e48a0eb0a4f94bf2e79221a00949cc2..56c34ee0214f6b5b9723e351e3f45556b4cf3ab0 100644
--- a/Rendering/OpenXR/vtkOpenXRRenderWindowInteractor.h
+++ b/Rendering/OpenXR/vtkOpenXRRenderWindowInteractor.h
@@ -33,6 +33,7 @@
 
 typedef vtkOpenXRManager::Action_t Action_t;
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENXR_EXPORT vtkOpenXRRenderWindowInteractor : public vtkVRRenderWindowInteractor
 {
 public:
@@ -131,5 +132,6 @@ private:
   void operator=(const vtkOpenXRRenderWindowInteractor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkOpenXRRenderWindowInteractor.h
diff --git a/Rendering/OpenXR/vtkOpenXRRenderer.cxx b/Rendering/OpenXR/vtkOpenXRRenderer.cxx
index fe197cd967f412628c0a0bfef0d1eff780e34ce5..4039dc212fbe0019604886e67ca548fb33554580 100644
--- a/Rendering/OpenXR/vtkOpenXRRenderer.cxx
+++ b/Rendering/OpenXR/vtkOpenXRRenderer.cxx
@@ -22,6 +22,7 @@ https://github.com/ValveSoftware/openvr/blob/master/LICENSE
 #include "vtkObjectFactory.h"
 #include "vtkOpenXRCamera.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenXRRenderer);
 
 //------------------------------------------------------------------------------
@@ -44,3 +45,4 @@ void vtkOpenXRRenderer::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXR/vtkOpenXRRenderer.h b/Rendering/OpenXR/vtkOpenXRRenderer.h
index 3dca1fb42210731347b0f1c8e0cda8240829eacd..d9f43e97772cdbd7e3669a94ab9996610dc91b6d 100644
--- a/Rendering/OpenXR/vtkOpenXRRenderer.h
+++ b/Rendering/OpenXR/vtkOpenXRRenderer.h
@@ -25,6 +25,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkRenderingOpenXRModule.h" // For export macro
 #include "vtkVRRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENXR_EXPORT vtkOpenXRRenderer : public vtkVRRenderer
 {
 public:
@@ -46,4 +47,5 @@ private:
   void operator=(const vtkOpenXRRenderer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenXR/vtkOpenXRUtilities.h b/Rendering/OpenXR/vtkOpenXRUtilities.h
index 851806e6f1ea72032e34b4e8d30d7542cbedb3b0..b31b7c234220a964e64b4ec4301a652c947bf083 100644
--- a/Rendering/OpenXR/vtkOpenXRUtilities.h
+++ b/Rendering/OpenXR/vtkOpenXRUtilities.h
@@ -29,6 +29,7 @@
 #include "vtkMatrix4x4.h"
 #include "vtkOpenXR.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenXRUtilities : public vtkObject
 {
 public:
@@ -513,5 +514,6 @@ inline const char* vtkOpenXRUtilities::GetStructureTypeAsString(
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkOpenXRUtilities.h
diff --git a/Rendering/OpenXRRemoting/XrConnectionExtensions.h b/Rendering/OpenXRRemoting/XrConnectionExtensions.h
index 0900cd5961c09b4f9dceb0d78d5e1efff9de7d74..425afd051a70dcad141279bdee709ce395263999 100644
--- a/Rendering/OpenXRRemoting/XrConnectionExtensions.h
+++ b/Rendering/OpenXRRemoting/XrConnectionExtensions.h
@@ -77,6 +77,7 @@
 
 namespace xr
 {
+VTK_ABI_NAMESPACE_BEGIN
 struct ConnectionExtensionDispatchTable
 {
   FOR_EACH_EXTENSION_FUNCTION(DEFINE_PROC_MEMBER);
@@ -87,6 +88,7 @@ struct ConnectionExtensionDispatchTable
     FOR_EACH_EXTENSION_FUNCTION(GET_INSTANCE_PROC_ADDRESS);
   }
 };
+VTK_ABI_NAMESPACE_END
 } // namespace xr
 
 #undef DEFINE_PROC_MEMBER
diff --git a/Rendering/OpenXRRemoting/vtkOpenXRManagerD3DGraphics.cxx b/Rendering/OpenXRRemoting/vtkOpenXRManagerD3DGraphics.cxx
index 2818c8587b02e436206e321c149f9b551ea02ebb..6c8567b9f5953b4dd05d0c71be2a8cfc75f89f26 100644
--- a/Rendering/OpenXRRemoting/vtkOpenXRManagerD3DGraphics.cxx
+++ b/Rendering/OpenXRRemoting/vtkOpenXRManagerD3DGraphics.cxx
@@ -22,6 +22,7 @@
 #include "d3d11.h" // Required headers for the XrGraphicsRequirementsD3D11KHR struct
 #include <vtkOpenXRPlatform.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenXRManagerD3DGraphics::PIMPL
 {
 public:
@@ -163,3 +164,4 @@ const char* vtkOpenXRManagerD3DGraphics::GetBackendExtensionName()
 {
   return XR_KHR_D3D11_ENABLE_EXTENSION_NAME;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXRRemoting/vtkOpenXRManagerD3DGraphics.h b/Rendering/OpenXRRemoting/vtkOpenXRManagerD3DGraphics.h
index a3dd21f44bf3185d30d073c9d23e9fcda8f158e7..4715da3ad2bb6189bbacc73b73d660a18283fa73 100644
--- a/Rendering/OpenXRRemoting/vtkOpenXRManagerD3DGraphics.h
+++ b/Rendering/OpenXRRemoting/vtkOpenXRManagerD3DGraphics.h
@@ -34,6 +34,7 @@
 struct XrGraphicsBindingD3D11KHR;
 struct XrSwapchainImageD3D11KHR;
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENXRREMOTING_EXPORT vtkOpenXRManagerD3DGraphics
   : public vtkOpenXRManagerGraphics
 {
@@ -120,4 +121,5 @@ private:
   PIMPL* Private;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenXRRemoting/vtkOpenXRManagerRemoteConnection.cxx b/Rendering/OpenXRRemoting/vtkOpenXRManagerRemoteConnection.cxx
index a5aa797713291f7c3cb86478c7a194906a5db9c9..c9666b63fbd8ada8a99d2b90b197425b56123f8b 100644
--- a/Rendering/OpenXRRemoting/vtkOpenXRManagerRemoteConnection.cxx
+++ b/Rendering/OpenXRRemoting/vtkOpenXRManagerRemoteConnection.cxx
@@ -25,6 +25,7 @@
 
 #include <thread> // used to sleep after connection
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenXRManagerRemoteConnection);
 
 //------------------------------------------------------------------------------
@@ -129,3 +130,4 @@ bool vtkOpenXRManagerRemoteConnection::HandleXrEvent(const XrEventDataBuffer& ev
 
   return false;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXRRemoting/vtkOpenXRManagerRemoteConnection.h b/Rendering/OpenXRRemoting/vtkOpenXRManagerRemoteConnection.h
index 8e3c528f7dd8c522331ef699f3d9c6e136c10b6b..659210d0e9ce87ed0d715351adc10289f54a686f 100644
--- a/Rendering/OpenXRRemoting/vtkOpenXRManagerRemoteConnection.h
+++ b/Rendering/OpenXRRemoting/vtkOpenXRManagerRemoteConnection.h
@@ -29,6 +29,7 @@
 
 #include "vtkOpenXR.h" // For XrInstance/XrSystemId
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENXRREMOTING_EXPORT vtkOpenXRManagerRemoteConnection
   : public vtkOpenXRManagerConnection
 {
@@ -58,4 +59,5 @@ private:
   void operator=(const vtkOpenXRManagerRemoteConnection&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/OpenXRRemoting/vtkOpenXRRemotingRenderWindow.cxx b/Rendering/OpenXRRemoting/vtkOpenXRRemotingRenderWindow.cxx
index b188e6595ebf4832c70ccecaba2c166350b272d8..771b809e2816e66e37a25ec4396d7841b5031fc2 100644
--- a/Rendering/OpenXRRemoting/vtkOpenXRRemotingRenderWindow.cxx
+++ b/Rendering/OpenXRRemoting/vtkOpenXRRemotingRenderWindow.cxx
@@ -22,6 +22,7 @@
 #include "vtkTextureObject.h"
 #include "vtkWin32OpenGLDXRenderWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenXRRemotingRenderWindow);
 
 //------------------------------------------------------------------------------
@@ -132,3 +133,4 @@ void vtkOpenXRRemotingRenderWindow::RenderOneEye(uint32_t eye)
   // Release this swapchain image
   vtkOpenXRManager::GetInstance().ReleaseSwapchainImage(eye);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/OpenXRRemoting/vtkOpenXRRemotingRenderWindow.h b/Rendering/OpenXRRemoting/vtkOpenXRRemotingRenderWindow.h
index e16328a60d549a6a142a99057613c5accc8a6216..30e9677f1fff9d7c41c8e1ec5837f2e3854a8a30 100644
--- a/Rendering/OpenXRRemoting/vtkOpenXRRemotingRenderWindow.h
+++ b/Rendering/OpenXRRemoting/vtkOpenXRRemotingRenderWindow.h
@@ -25,6 +25,7 @@
 #include "vtkOpenXRRenderWindow.h"
 #include "vtkRenderingOpenXRRemotingModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGOPENXRREMOTING_EXPORT vtkOpenXRRemotingRenderWindow : public vtkOpenXRRenderWindow
 {
 public:
@@ -61,5 +62,6 @@ private:
   void operator=(const vtkOpenXRRemotingRenderWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkOpenXRRemotingRenderWindow.h
diff --git a/Rendering/Parallel/vtkClientServerCompositePass.cxx b/Rendering/Parallel/vtkClientServerCompositePass.cxx
index ecb9343617875eb356013c18da0e9ee06039e587..adbd2e3888dc9af7097164af59610092ff53259e 100644
--- a/Rendering/Parallel/vtkClientServerCompositePass.cxx
+++ b/Rendering/Parallel/vtkClientServerCompositePass.cxx
@@ -19,6 +19,7 @@
 #include "vtkRenderState.h"
 #include "vtkSynchronizedRenderers.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClientServerCompositePass);
 vtkCxxSetObjectMacro(vtkClientServerCompositePass, Controller, vtkMultiProcessController);
 vtkCxxSetObjectMacro(vtkClientServerCompositePass, RenderPass, vtkRenderPass);
@@ -151,3 +152,4 @@ void vtkClientServerCompositePass::PrintSelf(ostream& os, vtkIndent indent)
     os << this->PostProcessingRenderPass << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkClientServerCompositePass.h b/Rendering/Parallel/vtkClientServerCompositePass.h
index f7ce31ea37eb3f42ef14a798043699f4ec4fc090..a84162097d5a0ef5601f9429350ecfa24da0490d 100644
--- a/Rendering/Parallel/vtkClientServerCompositePass.h
+++ b/Rendering/Parallel/vtkClientServerCompositePass.h
@@ -26,6 +26,7 @@
 #include "vtkRenderPass.h"
 #include "vtkRenderingParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class VTKRENDERINGPARALLEL_EXPORT vtkClientServerCompositePass : public vtkRenderPass
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkClientServerCompositePass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Parallel/vtkClientServerSynchronizedRenderers.cxx b/Rendering/Parallel/vtkClientServerSynchronizedRenderers.cxx
index 4916ff2036b24e95815708730101a1d97f8e20d6..1c545611c8f9863edcd141ed4b43559e644ea9a6 100644
--- a/Rendering/Parallel/vtkClientServerSynchronizedRenderers.cxx
+++ b/Rendering/Parallel/vtkClientServerSynchronizedRenderers.cxx
@@ -19,6 +19,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkClientServerSynchronizedRenderers);
 //------------------------------------------------------------------------------
 vtkClientServerSynchronizedRenderers::vtkClientServerSynchronizedRenderers() = default;
@@ -70,3 +71,4 @@ void vtkClientServerSynchronizedRenderers::PrintSelf(ostream& os, vtkIndent inde
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkClientServerSynchronizedRenderers.h b/Rendering/Parallel/vtkClientServerSynchronizedRenderers.h
index 6a813ba8a3e40d59055696cb782ec0ce5945ff27..0a080bdccf3208df3e7ab160a08e89188ca8ee5d 100644
--- a/Rendering/Parallel/vtkClientServerSynchronizedRenderers.h
+++ b/Rendering/Parallel/vtkClientServerSynchronizedRenderers.h
@@ -25,6 +25,7 @@
 #include "vtkRenderingParallelModule.h" // For export macro
 #include "vtkSynchronizedRenderers.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGPARALLEL_EXPORT vtkClientServerSynchronizedRenderers
   : public vtkSynchronizedRenderers
 {
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkClientServerSynchronizedRenderers&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Parallel/vtkCompositeRGBAPass.cxx b/Rendering/Parallel/vtkCompositeRGBAPass.cxx
index 16fda6f9e580efdf6879f04cd22195f0c203f793..dd8c99e4e1d602952122f9bb021f7b197a940423 100644
--- a/Rendering/Parallel/vtkCompositeRGBAPass.cxx
+++ b/Rendering/Parallel/vtkCompositeRGBAPass.cxx
@@ -49,6 +49,7 @@
 
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeRGBAPass);
 vtkCxxSetObjectMacro(vtkCompositeRGBAPass, Controller, vtkMultiProcessController);
 vtkCxxSetObjectMacro(vtkCompositeRGBAPass, Kdtree, vtkPKdTree);
@@ -536,3 +537,4 @@ void vtkCompositeRGBAPass::ReleaseGraphicsResources(vtkWindow* w)
     this->RootTexture = nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkCompositeRGBAPass.h b/Rendering/Parallel/vtkCompositeRGBAPass.h
index 827560d4416758fa25544595be054554d86611fb..aa68e27440b4a09038711572c0c1dfd7b8af2f26 100644
--- a/Rendering/Parallel/vtkCompositeRGBAPass.h
+++ b/Rendering/Parallel/vtkCompositeRGBAPass.h
@@ -34,6 +34,7 @@
 #include "vtkRenderPass.h"
 #include "vtkRenderingParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class vtkPixelBufferObject;
@@ -109,4 +110,5 @@ private:
   void operator=(const vtkCompositeRGBAPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Parallel/vtkCompositeRenderManager.cxx b/Rendering/Parallel/vtkCompositeRenderManager.cxx
index fc38c6cf935b96fa1ef714724772261c7e178e15..fa445a4f6f7280f9b38eb1f14942386e807d69b5 100644
--- a/Rendering/Parallel/vtkCompositeRenderManager.cxx
+++ b/Rendering/Parallel/vtkCompositeRenderManager.cxx
@@ -23,6 +23,7 @@
 #include "vtkTimerLog.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeRenderManager);
 
 vtkCxxSetObjectMacro(vtkCompositeRenderManager, Compositer, vtkCompositer);
@@ -120,3 +121,4 @@ void vtkCompositeRenderManager::PostRenderProcessing()
 
   vtkTimerLog::MarkEndEvent("Compositing");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkCompositeRenderManager.h b/Rendering/Parallel/vtkCompositeRenderManager.h
index 1a3a27cbe02fd2ff68b098523172cb56be82ab08..6b0f5fd208b4c4e9f8a703e73f468f2802c95fea 100644
--- a/Rendering/Parallel/vtkCompositeRenderManager.h
+++ b/Rendering/Parallel/vtkCompositeRenderManager.h
@@ -29,6 +29,7 @@
 #include "vtkParallelRenderManager.h"
 #include "vtkRenderingParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCompositer;
 class vtkFloatArray;
 
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkCompositeRenderManager&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkCompositeRenderManager_h
diff --git a/Rendering/Parallel/vtkCompositeZPass.cxx b/Rendering/Parallel/vtkCompositeZPass.cxx
index 32a20edbab7585bb23e6130427e53aafd17f91b5..85668ed098723b0e454810dfb435a718d52b2bcc 100644
--- a/Rendering/Parallel/vtkCompositeZPass.cxx
+++ b/Rendering/Parallel/vtkCompositeZPass.cxx
@@ -51,6 +51,7 @@
 #include "vtkTextureObjectVS.h"
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositeZPass);
 vtkCxxSetObjectMacro(vtkCompositeZPass, Controller, vtkMultiProcessController);
 
@@ -674,3 +675,4 @@ void vtkCompositeZPass::ReleaseGraphicsResources(vtkWindow* w)
     this->Program->ReleaseGraphicsResources(w);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkCompositeZPass.h b/Rendering/Parallel/vtkCompositeZPass.h
index bc5316b0a4536c226fa8fdb134795a1b0c67d778..121c996a7828bd8744ea5810e5cef7ffed99912f 100644
--- a/Rendering/Parallel/vtkCompositeZPass.h
+++ b/Rendering/Parallel/vtkCompositeZPass.h
@@ -34,6 +34,7 @@
 #include "vtkRenderPass.h"
 #include "vtkRenderingParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 
 class vtkPixelBufferObject;
@@ -108,4 +109,5 @@ private:
   void operator=(const vtkCompositeZPass&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Parallel/vtkCompositedSynchronizedRenderers.cxx b/Rendering/Parallel/vtkCompositedSynchronizedRenderers.cxx
index 8648fac4fc5fa7aaede708de60a1d7c99b3d4949..306fb636ba9731e6af4ef6825cd3df889510b254 100644
--- a/Rendering/Parallel/vtkCompositedSynchronizedRenderers.cxx
+++ b/Rendering/Parallel/vtkCompositedSynchronizedRenderers.cxx
@@ -22,6 +22,7 @@
 #include "vtkTreeCompositer.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositedSynchronizedRenderers);
 vtkCxxSetObjectMacro(vtkCompositedSynchronizedRenderers, Compositer, vtkCompositer);
 //------------------------------------------------------------------------------
@@ -116,3 +117,4 @@ void vtkCompositedSynchronizedRenderers::PrintSelf(ostream& os, vtkIndent indent
     os << "(none)" << endl;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkCompositedSynchronizedRenderers.h b/Rendering/Parallel/vtkCompositedSynchronizedRenderers.h
index 408daa0eb9f9302334e000e2068be70953db73d7..7abc966cce30e4db2ee57ebe81b085d64e65aefc 100644
--- a/Rendering/Parallel/vtkCompositedSynchronizedRenderers.h
+++ b/Rendering/Parallel/vtkCompositedSynchronizedRenderers.h
@@ -24,6 +24,7 @@
 #include "vtkRenderingParallelModule.h" // For export macro
 #include "vtkSynchronizedRenderers.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 class vtkCompositer;
 
@@ -58,4 +59,5 @@ private:
   void operator=(const vtkCompositedSynchronizedRenderers&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Parallel/vtkCompositer.cxx b/Rendering/Parallel/vtkCompositer.cxx
index 9061f2b8f56791ca0ea6fa97a3d60e38edf8f7e0..af22fab661d086a4d4626251dafcb66a19b8a1c3 100644
--- a/Rendering/Parallel/vtkCompositer.cxx
+++ b/Rendering/Parallel/vtkCompositer.cxx
@@ -20,6 +20,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompositer);
 
 //------------------------------------------------------------------------------
@@ -131,3 +132,4 @@ void vtkCompositer::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Controller: (" << this->Controller << ")\n";
   os << indent << "NumberOfProcesses: " << this->NumberOfProcesses << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkCompositer.h b/Rendering/Parallel/vtkCompositer.h
index ab7d66d309ccb7ddb4b37b34e9a2a0ec859e3a7a..c04cf82bc3584e95629a25fb484491d40b6a96b4 100644
--- a/Rendering/Parallel/vtkCompositer.h
+++ b/Rendering/Parallel/vtkCompositer.h
@@ -32,6 +32,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMultiProcessController;
 class vtkCompositer;
 class vtkDataArray;
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkCompositer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Parallel/vtkCompressCompositer.cxx b/Rendering/Parallel/vtkCompressCompositer.cxx
index d3000017616df2575dc80e34752b3e31f602d795..544d2b28fa2d3e330ceadaab3e6dcff5180ca042 100644
--- a/Rendering/Parallel/vtkCompressCompositer.cxx
+++ b/Rendering/Parallel/vtkCompressCompositer.cxx
@@ -47,6 +47,7 @@
 
 #include "vtkTimerLog.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCompressCompositer);
 
 // Different pixel types to template.
@@ -648,3 +649,4 @@ void vtkCompressCompositer::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkCompressCompositer.h b/Rendering/Parallel/vtkCompressCompositer.h
index 61564f272977d39b4d8dfc89d144bb61c499f8b0..b462040e958ee501a0fd8985f816098911e3eb27 100644
--- a/Rendering/Parallel/vtkCompressCompositer.h
+++ b/Rendering/Parallel/vtkCompressCompositer.h
@@ -33,6 +33,7 @@
 #include "vtkCompositer.h"
 #include "vtkRenderingParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTimerLog;
 class vtkDataArray;
 class vtkFloatArray;
@@ -74,4 +75,5 @@ private:
   void operator=(const vtkCompressCompositer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Parallel/vtkImageRenderManager.cxx b/Rendering/Parallel/vtkImageRenderManager.cxx
index f743b29818618eb3c22333359ce05c872df753ab..6cc529e2a632245bddb1d6681680ad4e377772c6 100644
--- a/Rendering/Parallel/vtkImageRenderManager.cxx
+++ b/Rendering/Parallel/vtkImageRenderManager.cxx
@@ -22,6 +22,7 @@
 #include "vtkTimerLog.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkImageRenderManager);
 
 //------------------------------------------------------------------------------
@@ -62,3 +63,4 @@ void vtkImageRenderManager::PostRenderProcessing()
   }
   this->RenderWindow->Frame();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkImageRenderManager.h b/Rendering/Parallel/vtkImageRenderManager.h
index 6c522f62bd77d083eda7cf6f010b674c72c9b9ad..bcc40e7193818965a27e76483b362e544214c153 100644
--- a/Rendering/Parallel/vtkImageRenderManager.h
+++ b/Rendering/Parallel/vtkImageRenderManager.h
@@ -33,6 +33,7 @@
 #include "vtkParallelRenderManager.h"
 #include "vtkRenderingParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGPARALLEL_EXPORT vtkImageRenderManager : public vtkParallelRenderManager
 {
 public:
@@ -52,4 +53,5 @@ private:
   void operator=(const vtkImageRenderManager&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkImageRenderManager_h
diff --git a/Rendering/Parallel/vtkPHardwareSelector.cxx b/Rendering/Parallel/vtkPHardwareSelector.cxx
index bbde5fb37c74406e34f88849fe67d7f2de22f012..8be109edb7ad71b5b35fb76d833345ee94b936f6 100644
--- a/Rendering/Parallel/vtkPHardwareSelector.cxx
+++ b/Rendering/Parallel/vtkPHardwareSelector.cxx
@@ -19,6 +19,7 @@
 #include "vtkRenderWindow.h"
 #include "vtkRenderer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPHardwareSelector::vtkObserver : public vtkCommand
 {
 public:
@@ -114,3 +115,4 @@ void vtkPHardwareSelector::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "ProcessIsRoot: " << this->ProcessIsRoot << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkPHardwareSelector.h b/Rendering/Parallel/vtkPHardwareSelector.h
index 6ba4259ee12b46830868ff14a725a7b82e1b3891..684627692d5dc9f82c523b73ed6fc0aac2cc7bd9 100644
--- a/Rendering/Parallel/vtkPHardwareSelector.h
+++ b/Rendering/Parallel/vtkPHardwareSelector.h
@@ -33,6 +33,7 @@
 #include "vtkOpenGLHardwareSelector.h"
 #include "vtkRenderingParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGPARALLEL_EXPORT vtkPHardwareSelector : public vtkOpenGLHardwareSelector
 {
 public:
@@ -77,4 +78,5 @@ private:
   vtkObserver* Observer;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Parallel/vtkParallelRenderManager.cxx b/Rendering/Parallel/vtkParallelRenderManager.cxx
index 941c8b5c023b2cdc233d5ad5dd6d5314b0742913..c8c6db9cbe521ed115e58c0f714ee46498550ec9 100644
--- a/Rendering/Parallel/vtkParallelRenderManager.cxx
+++ b/Rendering/Parallel/vtkParallelRenderManager.cxx
@@ -38,6 +38,7 @@
 #include "vtkTimerLog.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 static void AbortRenderCheck(
   vtkObject* caller, unsigned long vtkNotUsed(event), void* clientData, void*);
 
@@ -2015,3 +2016,4 @@ void vtkParallelRenderManager::LightInfo::Save(vtkMultiProcessStream& stream)
          << this->Position[2] << this->FocalPoint[0] << this->FocalPoint[1] << this->FocalPoint[2]
          << this->Type;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkParallelRenderManager.h b/Rendering/Parallel/vtkParallelRenderManager.h
index c2b586acd55cf4937c34fe394045b5f30ab28f08..49eda2d0ab0ec84475d646bc90b6eb69f7b7a5ca 100644
--- a/Rendering/Parallel/vtkParallelRenderManager.h
+++ b/Rendering/Parallel/vtkParallelRenderManager.h
@@ -47,6 +47,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkMultiProcessController;
 class vtkMultiProcessStream;
@@ -684,4 +685,5 @@ private:
   void operator=(const vtkParallelRenderManager&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkParalleRenderManager_h
diff --git a/Rendering/Parallel/vtkSynchronizedRenderWindows.cxx b/Rendering/Parallel/vtkSynchronizedRenderWindows.cxx
index bcb38422834981484aa785b7de332cedda431b8c..0a9ef0ea21af67e5186e83333f29ae8a24fdafb9 100644
--- a/Rendering/Parallel/vtkSynchronizedRenderWindows.cxx
+++ b/Rendering/Parallel/vtkSynchronizedRenderWindows.cxx
@@ -24,6 +24,7 @@
 #include <map>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSynchronizedRenderWindows::vtkObserver : public vtkCommand
 {
 public:
@@ -310,3 +311,4 @@ void vtkSynchronizedRenderWindows::RenderWindowInfo::CopyTo(vtkRenderWindow* win
   win->SetTileViewport(this->TileViewport);
   win->SetDesiredUpdateRate(this->DesiredUpdateRate);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkSynchronizedRenderWindows.h b/Rendering/Parallel/vtkSynchronizedRenderWindows.h
index f15d3bd3117c70112b871ccce12e183f42901d57..4a232296f5a0d1ea7baa3484e7ed2cb97dc23487 100644
--- a/Rendering/Parallel/vtkSynchronizedRenderWindows.h
+++ b/Rendering/Parallel/vtkSynchronizedRenderWindows.h
@@ -27,6 +27,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderWindow;
 class vtkMultiProcessController;
 class vtkCommand;
@@ -157,4 +158,5 @@ private:
   friend class vtkObserver;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Parallel/vtkSynchronizedRenderers.cxx b/Rendering/Parallel/vtkSynchronizedRenderers.cxx
index 837209d61be9c80bae74f7f74ea586b416543456..e128b93d8251da1f68373c9261d7a781431698ad 100644
--- a/Rendering/Parallel/vtkSynchronizedRenderers.cxx
+++ b/Rendering/Parallel/vtkSynchronizedRenderers.cxx
@@ -39,6 +39,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSynchronizedRenderers::vtkObserver : public vtkCommand
 {
 public:
@@ -757,3 +758,4 @@ vtkRenderer* vtkSynchronizedRenderers::GetRenderer()
                 << this->Renderer);
   return this->Renderer;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkSynchronizedRenderers.h b/Rendering/Parallel/vtkSynchronizedRenderers.h
index 5f5894b3f98f7f374763affe67ccabfff31f0eea..287686e458ae5beff24d407804415ac64701c48b 100644
--- a/Rendering/Parallel/vtkSynchronizedRenderers.h
+++ b/Rendering/Parallel/vtkSynchronizedRenderers.h
@@ -35,6 +35,7 @@
 #include "vtkSmartPointer.h"            // needed for vtkSmartPointer.
 #include "vtkUnsignedCharArray.h"       // needed for vtkUnsignedCharArray.
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFXAAOptions;
 class vtkRenderer;
 class vtkMultiProcessController;
@@ -313,4 +314,5 @@ private:
   bool FixBackground;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Parallel/vtkTreeCompositer.cxx b/Rendering/Parallel/vtkTreeCompositer.cxx
index 9f24e3ffc1787a3f0e369fe2ca26702a792aa34c..7b7d6312785dded4fd396fe129fd50579f334d2c 100644
--- a/Rendering/Parallel/vtkTreeCompositer.cxx
+++ b/Rendering/Parallel/vtkTreeCompositer.cxx
@@ -45,6 +45,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeCompositer);
 
 //------------------------------------------------------------------------------
@@ -240,3 +241,4 @@ void vtkTreeCompositer::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Parallel/vtkTreeCompositer.h b/Rendering/Parallel/vtkTreeCompositer.h
index 0b3f26909a8d56a37d14c12f35171eaf8b24a88a..c5d12bbbce178268ed5d4b5c829ff554445682c8 100644
--- a/Rendering/Parallel/vtkTreeCompositer.h
+++ b/Rendering/Parallel/vtkTreeCompositer.h
@@ -59,6 +59,7 @@
 #include "vtkCompositer.h"
 #include "vtkRenderingParallelModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGPARALLEL_EXPORT vtkTreeCompositer : public vtkCompositer
 {
 public:
@@ -78,4 +79,5 @@ private:
   void operator=(const vtkTreeCompositer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/ParallelLIC/vtkMPIPixelTT.cxx b/Rendering/ParallelLIC/vtkMPIPixelTT.cxx
index 17cdcc8bd058e208a699d104afcd1d1d82d25ec2..caa83e29213df23541d5c0c9468f7abb0ae5a2b8 100644
--- a/Rendering/ParallelLIC/vtkMPIPixelTT.cxx
+++ b/Rendering/ParallelLIC/vtkMPIPixelTT.cxx
@@ -18,6 +18,7 @@
   MPI_Datatype vtkMPIPixelTT<_ctype>::MPIType = _mpiEnum;                                          \
   int vtkMPIPixelTT<_ctype>::VTKType = _vtkEnum
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkMPIPixelTTMacro2(void, MPI_BYTE, VTK_VOID);
 vtkMPIPixelTTMacro2(char, MPI_CHAR, VTK_CHAR);
 vtkMPIPixelTTMacro2(signed char, MPI_CHAR, VTK_SIGNED_CHAR);
@@ -33,3 +34,4 @@ vtkMPIPixelTTMacro2(double, MPI_DOUBLE, VTK_DOUBLE);
 // vtkMPIPixelTTMacro2(vtkIdType, MPI_LONG_LONG, VTK_IDTYPE);
 vtkMPIPixelTTMacro2(long long, MPI_LONG_LONG, VTK_LONG_LONG);
 vtkMPIPixelTTMacro2(unsigned long long, MPI_UNSIGNED_LONG_LONG, VTK_UNSIGNED_LONG_LONG);
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/ParallelLIC/vtkMPIPixelTT.h b/Rendering/ParallelLIC/vtkMPIPixelTT.h
index 621199211bc7ee5f512288885f41f1ea8393db88..a6385343d3e4f2b95e78e48dbe3161baf2a6104e 100644
--- a/Rendering/ParallelLIC/vtkMPIPixelTT.h
+++ b/Rendering/ParallelLIC/vtkMPIPixelTT.h
@@ -21,6 +21,7 @@
 // Description:
 // Traits class for converting from vtk data type enum
 // to the appropriate C or MPI datatype.
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 class vtkMPIPixelTT;
 
@@ -49,5 +50,6 @@ vtkMPIPixelTTMacro1(double);
 vtkMPIPixelTTMacro1(long long);
 vtkMPIPixelTTMacro1(unsigned long long);
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkMPIPixelTT.h
diff --git a/Rendering/ParallelLIC/vtkMPIPixelView.h b/Rendering/ParallelLIC/vtkMPIPixelView.h
index 8fe1334e8ffa2bcee66859792e98ea9fd9d2c4af..9f04ee090e5d67005b9e86aac5d92c7eaebfecca 100644
--- a/Rendering/ParallelLIC/vtkMPIPixelView.h
+++ b/Rendering/ParallelLIC/vtkMPIPixelView.h
@@ -26,6 +26,7 @@
 #include <iostream>         // for cerr
 
 //-----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 int vtkMPIPixelViewNew(
   const vtkPixelExtent& domain, const vtkPixelExtent& decomp, int nComps, MPI_Datatype& view)
@@ -94,5 +95,6 @@ int vtkMPIPixelViewNew(
   return 0;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkMPIPixelView.h
diff --git a/Rendering/ParallelLIC/vtkPLineIntegralConvolution2D.cxx b/Rendering/ParallelLIC/vtkPLineIntegralConvolution2D.cxx
index 5e431c47d983d0fd806daf14c95fbcbd6d08c92f..bfbecc0ac533b4bc320f664d8b5b125c6f4ae759 100644
--- a/Rendering/ParallelLIC/vtkPLineIntegralConvolution2D.cxx
+++ b/Rendering/ParallelLIC/vtkPLineIntegralConvolution2D.cxx
@@ -21,6 +21,7 @@
 #include "vtkParallelTimer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPLineIntegralConvolution2D);
 
 //------------------------------------------------------------------------------
@@ -110,3 +111,4 @@ void vtkPLineIntegralConvolution2D::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "LogFileName=" << this->LogFileName << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/ParallelLIC/vtkPLineIntegralConvolution2D.h b/Rendering/ParallelLIC/vtkPLineIntegralConvolution2D.h
index 17f9e78ffefdd7cb25bf6894755c41ac5ded6972..2cd16fbc46aaa47b31377275d33ff4134aa3630c 100644
--- a/Rendering/ParallelLIC/vtkPLineIntegralConvolution2D.h
+++ b/Rendering/ParallelLIC/vtkPLineIntegralConvolution2D.h
@@ -31,6 +31,7 @@
 #include "vtkRenderingParallelLICModule.h" // for export macro
 #include <string>                          // for string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPainterCommunicator;
 class vtkPPainterCommunicator;
 
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkPLineIntegralConvolution2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/ParallelLIC/vtkPPainterCommunicator.cxx b/Rendering/ParallelLIC/vtkPPainterCommunicator.cxx
index 7f962e18cd5e24fa286ca70ad031e288a809fcb8..d26aaf9a72a32ce8d2cda2bd3fa132ed31c71896 100644
--- a/Rendering/ParallelLIC/vtkPPainterCommunicator.cxx
+++ b/Rendering/ParallelLIC/vtkPPainterCommunicator.cxx
@@ -24,6 +24,7 @@
 using std::vector;
 
 // use PImpl to avoid MPI types in public API.
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPPainterCommunicatorInternals
 {
 public:
@@ -314,3 +315,4 @@ void vtkPPainterCommunicator::SubsetCommunicator(vtkMPICommunicatorOpaqueComm* c
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/ParallelLIC/vtkPPainterCommunicator.h b/Rendering/ParallelLIC/vtkPPainterCommunicator.h
index 5617c70f1451c35fa970202516db817f4cbab52b..431b58f9a9fd823b4e14e09d1dd826bf890ecbc8 100644
--- a/Rendering/ParallelLIC/vtkPPainterCommunicator.h
+++ b/Rendering/ParallelLIC/vtkPPainterCommunicator.h
@@ -29,6 +29,7 @@
 #include "vtkPainterCommunicator.h"
 #include "vtkRenderingParallelLICModule.h" // for export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPPainterCommunicatorInternals;
 class vtkMPICommunicatorOpaqueComm;
 
@@ -121,5 +122,6 @@ private:
   vtkPPainterCommunicatorInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkPPainterCommunicator.h
diff --git a/Rendering/ParallelLIC/vtkPPixelTransfer.cxx b/Rendering/ParallelLIC/vtkPPixelTransfer.cxx
index 165a4ca07a51de0b159b59c6e10c33a2e90ec265..9b22b82958b861b6cf1145df17a077f290028c39 100644
--- a/Rendering/ParallelLIC/vtkPPixelTransfer.cxx
+++ b/Rendering/ParallelLIC/vtkPPixelTransfer.cxx
@@ -17,6 +17,8 @@ using std::deque;
 using std::ostream;
 using std::vector;
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //*****************************************************************************
 ostream& operator<<(ostream& os, const vtkPPixelTransfer& pt)
 {
@@ -46,3 +48,4 @@ int vtkPPixelTransfer::Blit(int nComps, int srcType, void* srcData, int destType
   return vtkPixelTransfer::Blit(this->SrcWholeExt, this->SrcExt, this->DestWholeExt, this->DestExt,
     nComps, srcType, srcData, nComps, destType, destData);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/ParallelLIC/vtkPPixelTransfer.h b/Rendering/ParallelLIC/vtkPPixelTransfer.h
index 1f59cb477a12a6f624e5890bc902770e78d9ca72..7e1bf1e4cc07cf36d5e3a17f368c1348550dc9e9 100644
--- a/Rendering/ParallelLIC/vtkPPixelTransfer.h
+++ b/Rendering/ParallelLIC/vtkPPixelTransfer.h
@@ -44,6 +44,7 @@
 
 // #define vtkPPixelTransferDEBUG
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGPARALLELLIC_EXPORT vtkPPixelTransfer : public vtkPixelTransfer
 {
 public:
@@ -398,5 +399,6 @@ int vtkPPixelTransfer::Execute(MPI_Comm comm, int rank, int nComps, SOURCE_TYPE*
 VTKRENDERINGPARALLELLIC_EXPORT
 ostream& operator<<(std::ostream& os, const vtkPPixelTransfer& gt);
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkPPixelTransfer.h
diff --git a/Rendering/ParallelLIC/vtkPSurfaceLICComposite.cxx b/Rendering/ParallelLIC/vtkPSurfaceLICComposite.cxx
index 6a24578e3e90b45524262f10ce7db099464e3c83..041fcbc1c30455e15197361ecff88e0761d91e13 100644
--- a/Rendering/ParallelLIC/vtkPSurfaceLICComposite.cxx
+++ b/Rendering/ParallelLIC/vtkPSurfaceLICComposite.cxx
@@ -133,6 +133,7 @@ static void MPIAPI vtkPixelExtentUnion(void* in, void* out, int* len, MPI_Dataty
   }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 // Description:
 // Container for our custom MPI_Op's
 class vtkPPixelExtentOps
@@ -194,6 +195,7 @@ void MPITypeFree(deque<MPI_Datatype>& types)
     MPI_Type_free(&types[i]);
   }
 }
+VTK_ABI_NAMESPACE_END
 
 // ****************************************************************************
 static size_t Size(deque<deque<vtkPixelExtent>> exts)
@@ -275,6 +277,7 @@ static int ScanMPIStatusForError(vector<MPI_Status>& stat)
 }
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkPSurfaceLICComposite);
 
@@ -1706,3 +1709,4 @@ ostream& operator<<(ostream& os, vtkPSurfaceLICComposite& ss)
   }
   return os;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/ParallelLIC/vtkPSurfaceLICComposite.h b/Rendering/ParallelLIC/vtkPSurfaceLICComposite.h
index ddc57f4c60f5a727099ebdd20f549cf6f0b7562e..0c0fd18aae36b18489941ce232faab5bab3e69d5 100644
--- a/Rendering/ParallelLIC/vtkPSurfaceLICComposite.h
+++ b/Rendering/ParallelLIC/vtkPSurfaceLICComposite.h
@@ -35,6 +35,7 @@
 #include <list>             // for list
 #include <vector>           // for vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 class vtkRenderWindow;
 class vtkTextureObject;
@@ -191,4 +192,5 @@ private:
 VTKRENDERINGPARALLELLIC_EXPORT
 ostream& operator<<(ostream& os, vtkPSurfaceLICComposite& ss);
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/ParallelLIC/vtkPSurfaceLICInterface.cxx b/Rendering/ParallelLIC/vtkPSurfaceLICInterface.cxx
index 23d0614fd7796042fbfb31081a078443a48c373f..5b89403a32281d0bb15db675ee1890836c2d291c 100644
--- a/Rendering/ParallelLIC/vtkPSurfaceLICInterface.cxx
+++ b/Rendering/ParallelLIC/vtkPSurfaceLICInterface.cxx
@@ -21,6 +21,7 @@
 #include "vtkParallelTimer.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPSurfaceLICInterface);
 
 //------------------------------------------------------------------------------
@@ -147,3 +148,4 @@ void vtkPSurfaceLICInterface::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "LogFileName=" << this->LogFileName << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/ParallelLIC/vtkPSurfaceLICInterface.h b/Rendering/ParallelLIC/vtkPSurfaceLICInterface.h
index d6269cf3217efb10d067f93f5a0e63024d43f9d8..f07b2460b8f92068ca58481d7e522fbbe264e73d 100644
--- a/Rendering/ParallelLIC/vtkPSurfaceLICInterface.h
+++ b/Rendering/ParallelLIC/vtkPSurfaceLICInterface.h
@@ -28,6 +28,7 @@
 #include "vtkSurfaceLICInterface.h"
 #include <string> // for string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPainterCommunicator;
 
 class VTKRENDERINGPARALLELLIC_EXPORT vtkPSurfaceLICInterface : public vtkSurfaceLICInterface
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkPSurfaceLICInterface&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/ParallelLIC/vtkParallelTimer.cxx b/Rendering/ParallelLIC/vtkParallelTimer.cxx
index 959ae327018800814bd9f437ff460f30e9ef122a..c79c600fd4cd951752fae1356e2ff1766c48bd63 100644
--- a/Rendering/ParallelLIC/vtkParallelTimer.cxx
+++ b/Rendering/ParallelLIC/vtkParallelTimer.cxx
@@ -37,6 +37,7 @@ using std::vector;
 #include <Winsock2.h>
 #include <ctime>
 #include <process.h>
+VTK_ABI_NAMESPACE_BEGIN
 static int gettimeofday(struct timeval* tv, void*)
 {
   FILETIME ft;
@@ -56,6 +57,7 @@ static int gettimeofday(struct timeval* tv, void*)
 
   return 0;
 }
+VTK_ABI_NAMESPACE_END
 #endif
 
 using std::ios_base;
@@ -63,6 +65,7 @@ using std::ios_base;
 /*
 For singleton pattern
 **/
+VTK_ABI_NAMESPACE_BEGIN
 vtkParallelTimer* vtkParallelTimer::GlobalInstance = nullptr;
 vtkParallelTimer::vtkParallelTimerDestructor vtkParallelTimer::GlobalInstanceDestructor;
 
@@ -648,3 +651,4 @@ void vtkParallelTimer::PrintSelf(ostream& os, vtkIndent)
   *this->Log >> oss;
   os << oss.str();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/ParallelLIC/vtkParallelTimer.h b/Rendering/ParallelLIC/vtkParallelTimer.h
index 47313056ebe9987f1ac6b3586e07755e3ae3bc89..a5ffac75d057ed1e12db6e5471df4bb2c52a52d2 100644
--- a/Rendering/ParallelLIC/vtkParallelTimer.h
+++ b/Rendering/ParallelLIC/vtkParallelTimer.h
@@ -50,6 +50,7 @@
 #include <iostream> // for cerr
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkParallelTimerBuffer;
 
 class VTKRENDERINGPARALLELLIC_EXPORT vtkParallelTimer : public vtkObject
@@ -287,4 +288,5 @@ vtkParallelTimer::LogBodyType& vtkParallelTimer::LogBodyType::operator<<(const T
   return *this;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/PythonContext2D/vtkPythonItem.cxx b/Rendering/PythonContext2D/vtkPythonItem.cxx
index 12bceed0abf0583ff7852313048fa45e72b04085..40ffd6305520370f37935f2a8253512175eab6d6 100644
--- a/Rendering/PythonContext2D/vtkPythonItem.cxx
+++ b/Rendering/PythonContext2D/vtkPythonItem.cxx
@@ -21,6 +21,7 @@
 #include "vtkPythonUtil.h"
 #include "vtkSmartPyObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPythonItem);
 
 //------------------------------------------------------------------------------
@@ -179,3 +180,4 @@ bool vtkPythonItem::Paint(vtkContext2D* painter)
 
   return CheckResult(mname, result);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/PythonContext2D/vtkPythonItem.h b/Rendering/PythonContext2D/vtkPythonItem.h
index 268104cd7dc03d8fc7976fa273d07c272614a453..064b8928eb2787bb3d41cac6fbbacdeb1731f0e0 100644
--- a/Rendering/PythonContext2D/vtkPythonItem.h
+++ b/Rendering/PythonContext2D/vtkPythonItem.h
@@ -33,6 +33,7 @@
 #include "vtkContextItem.h"
 #include "vtkPythonContext2DModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSmartPyObject;
 
 class VTKPYTHONCONTEXT2D_EXPORT vtkPythonItem : public vtkContextItem
@@ -66,5 +67,6 @@ private:
   PyObject* Object;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // #ifndef vtkPythonItem_h
 #endif
diff --git a/Rendering/Qt/vtkQImageToImageSource.cxx b/Rendering/Qt/vtkQImageToImageSource.cxx
index 0ecc6d17af3158102ffde6e8b2d3af2f140ae6bd..b0133998bf03d32841f45a0b73a8ed46f2daa3bc 100644
--- a/Rendering/Qt/vtkQImageToImageSource.cxx
+++ b/Rendering/Qt/vtkQImageToImageSource.cxx
@@ -29,6 +29,7 @@
 #include "vtkSmartPointer.h"
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQImageToImageSource);
 
 //------------------------------------------------------------------------------
@@ -144,3 +145,4 @@ void vtkQImageToImageSource::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Qt/vtkQImageToImageSource.h b/Rendering/Qt/vtkQImageToImageSource.h
index ece526de5d0228bc9f6303847b713e5d86f1d0cf..d774035928db8cf535403088d898d6545e48de76 100644
--- a/Rendering/Qt/vtkQImageToImageSource.h
+++ b/Rendering/Qt/vtkQImageToImageSource.h
@@ -27,6 +27,8 @@ PURPOSE.  See the above copyright notice for more information.
 
 class QImage;
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKRENDERINGQT_EXPORT vtkQImageToImageSource : public vtkImageAlgorithm
 {
 public:
@@ -60,4 +62,5 @@ private:
   void operator=(const vtkQImageToImageSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Qt/vtkQtInitialization.cxx b/Rendering/Qt/vtkQtInitialization.cxx
index e9a49cde2a8b8ade0e761c59d45a9dd08bd07594..3dce514151d35db4c42507ba644bee45bf8f402f 100644
--- a/Rendering/Qt/vtkQtInitialization.cxx
+++ b/Rendering/Qt/vtkQtInitialization.cxx
@@ -23,6 +23,7 @@
 
 #include <QApplication>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQtInitialization);
 
 vtkQtInitialization::vtkQtInitialization()
@@ -45,3 +46,4 @@ void vtkQtInitialization::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "QApplication: " << QApplication::instance() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Qt/vtkQtInitialization.h b/Rendering/Qt/vtkQtInitialization.h
index f1fb0125a9f3473d29d863d676fba4f846a978f9..88d9292bdd653a3a75835cd113b280679ee29d89 100644
--- a/Rendering/Qt/vtkQtInitialization.h
+++ b/Rendering/Qt/vtkQtInitialization.h
@@ -37,6 +37,8 @@
 
 class QApplication;
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class VTKRENDERINGQT_EXPORT vtkQtInitialization : public vtkObject
 {
 public:
@@ -55,4 +57,5 @@ private:
   QApplication* Application;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkQtInitialization_h
diff --git a/Rendering/Qt/vtkQtLabelRenderStrategy.cxx b/Rendering/Qt/vtkQtLabelRenderStrategy.cxx
index 5b7623efa0a71a8d392fb9d98dfb634a9a9a9ea1..0127d9dcabf92e3a630cb7bf64d48b72a5631236 100644
--- a/Rendering/Qt/vtkQtLabelRenderStrategy.cxx
+++ b/Rendering/Qt/vtkQtLabelRenderStrategy.cxx
@@ -47,6 +47,7 @@
 #include <QTextDocument>
 #include <QTextStream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQtLabelRenderStrategy);
 
 bool operator<(const vtkQtLabelMapEntry& a, const vtkQtLabelMapEntry& other)
@@ -548,3 +549,4 @@ void vtkQtLabelRenderStrategy::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Qt/vtkQtLabelRenderStrategy.h b/Rendering/Qt/vtkQtLabelRenderStrategy.h
index fa5d1568a6642c320b9748b84322fe4b29d37ed5..9442994b58f99464715dd6d2709d6614e47d5d87 100644
--- a/Rendering/Qt/vtkQtLabelRenderStrategy.h
+++ b/Rendering/Qt/vtkQtLabelRenderStrategy.h
@@ -28,6 +28,7 @@
 #include "vtkLabelRenderStrategy.h"
 #include "vtkRenderingQtModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLabelSizeCalculator;
 class vtkLabeledDataMapper;
 class vtkPlaneSource;
@@ -95,4 +96,5 @@ private:
   void operator=(const vtkQtLabelRenderStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Qt/vtkQtLabelRenderStrategyInternals.h b/Rendering/Qt/vtkQtLabelRenderStrategyInternals.h
index 8c69eb0630bedb60f512b1ceed0d0d6418b821d1..61f3f66c984ed84419ed697905927b5883f5734f 100644
--- a/Rendering/Qt/vtkQtLabelRenderStrategyInternals.h
+++ b/Rendering/Qt/vtkQtLabelRenderStrategyInternals.h
@@ -33,6 +33,8 @@
 
 class QPainter;
 
+VTK_ABI_NAMESPACE_BEGIN
+
 struct vtkQtLabelMapEntry
 {
   QString Text;
@@ -72,5 +74,6 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkQtLabelRenderStrategyInternals_h
 // VTK-HeaderTest-Exclude: vtkQtLabelRenderStrategyInternals.h
diff --git a/Rendering/Qt/vtkQtStringToImage.cxx b/Rendering/Qt/vtkQtStringToImage.cxx
index d08662de36bfd029b31fabfb0e85ab498e6d78e0..6f2c07ccab12d5ba8777bc361529d6cd08bbcdf2 100644
--- a/Rendering/Qt/vtkQtStringToImage.cxx
+++ b/Rendering/Qt/vtkQtStringToImage.cxx
@@ -35,6 +35,7 @@
 #include <QTextDocument>
 #include <QTextStream>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 struct vtkQtLabelMapEntry
@@ -195,3 +196,4 @@ void vtkQtStringToImage::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Qt/vtkQtStringToImage.h b/Rendering/Qt/vtkQtStringToImage.h
index e5a558866a0e2387e03c317de83d125aaac2be64..b22d26822a71c67c80eee5a1977bc3fc8bee5eb1 100644
--- a/Rendering/Qt/vtkQtStringToImage.h
+++ b/Rendering/Qt/vtkQtStringToImage.h
@@ -28,6 +28,7 @@
 #include "vtkSmartPointer.h"      // For SP ivars
 #include "vtkStringToImage.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkQImageToImageSource;
 
 class VTKRENDERINGQT_EXPORT vtkQtStringToImage : public vtkStringToImage
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkQtStringToImage&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkQtStringToImage_h
diff --git a/Rendering/Qt/vtkQtTreeRingLabelMapper.cxx b/Rendering/Qt/vtkQtTreeRingLabelMapper.cxx
index 76aa1433c3b660bbd01b9683594a7fd5eca6742e..f2b2043ee74bd067dd73adb8992ec94d70c10069 100644
--- a/Rendering/Qt/vtkQtTreeRingLabelMapper.cxx
+++ b/Rendering/Qt/vtkQtTreeRingLabelMapper.cxx
@@ -54,6 +54,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkSmartPointer.h"
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQtTreeRingLabelMapper);
 
 vtkCxxSetObjectMacro(vtkQtTreeRingLabelMapper, LabelTextProperty, vtkTextProperty);
@@ -665,3 +666,4 @@ vtkMTimeType vtkQtTreeRingLabelMapper::GetMTime()
   }
   return filterMTime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Qt/vtkQtTreeRingLabelMapper.h b/Rendering/Qt/vtkQtTreeRingLabelMapper.h
index 620ee8e53ef04e6261b890266a884a9eaedd1f9c..6ed10da1af8b9ca007724311fdb8a98ee5cd6c4e 100644
--- a/Rendering/Qt/vtkQtTreeRingLabelMapper.h
+++ b/Rendering/Qt/vtkQtTreeRingLabelMapper.h
@@ -49,6 +49,8 @@
 
 class QImage;
 
+VTK_ABI_NAMESPACE_BEGIN
+
 class vtkQImageToImageSource;
 class vtkCoordinate;
 class vtkDoubleArray;
@@ -157,4 +159,5 @@ private:
   void operator=(const vtkQtTreeRingLabelMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/RTWrapper/Backend.h b/Rendering/RayTracing/RTWrapper/Backend.h
index 0280a8187a976919c3a64df2c100bb9bd8e9cbe9..7b9b0cdd2d3083ac666320de83fbcd9ce263add7 100644
--- a/Rendering/RayTracing/RTWrapper/Backend.h
+++ b/Rendering/RayTracing/RTWrapper/Backend.h
@@ -4,6 +4,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class Backend
     {
     public:
@@ -68,4 +69,5 @@ namespace RTW
         virtual int GetColorTextureGL(RTWFrameBuffer frameBuffer) = 0;
         virtual int GetDepthTextureGL(RTWFrameBuffer frameBuffer) = 0;
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/OSPRay/OSPRayBackend.h b/Rendering/RayTracing/RTWrapper/OSPRay/OSPRayBackend.h
index 67587d0919339685b6a334c740ed5f551f760480..a62edeccf322a61fa4c63209ef6c87d3f3c5caf1 100644
--- a/Rendering/RayTracing/RTWrapper/OSPRay/OSPRayBackend.h
+++ b/Rendering/RayTracing/RTWrapper/OSPRay/OSPRayBackend.h
@@ -13,6 +13,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
 
   OSPFrameBufferFormat convert(RTWFrameBufferFormat format)
   {
@@ -360,4 +361,5 @@ namespace RTW
       return 0;
     }
   };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/RTWrapper.cxx b/Rendering/RayTracing/RTWrapper/RTWrapper.cxx
index 34062c49b82890c80cf6c61ada5c3174b7fb6490..15568cbd8d5d116138a74d0e5ef302453407439c 100644
--- a/Rendering/RayTracing/RTWrapper/RTWrapper.cxx
+++ b/Rendering/RayTracing/RTWrapper/RTWrapper.cxx
@@ -21,13 +21,18 @@
 #include <sstream>
 
 #ifdef VTK_ENABLE_VISRTX
+VTK_ABI_NAMESPACE_BEGIN
 RTW::VisRTXBackend* rtwVisRTXBackend = nullptr;
+VTK_ABI_NAMESPACE_END
 #endif
 
 #ifdef VTK_ENABLE_OSPRAY
+VTK_ABI_NAMESPACE_BEGIN
 RTW::OSPRayBackend* rtwOSPRayBackend = nullptr;
+VTK_ABI_NAMESPACE_END
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 void rtwInit()
 {
 #ifdef VTK_ENABLE_VISRTX
@@ -136,3 +141,4 @@ std::set<RTWBackendType> rtwGetAvailableBackends()
 #endif
     return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/RTWrapper/RTWrapper.h b/Rendering/RayTracing/RTWrapper/RTWrapper.h
index 1310a6b7ec3cfcb289a6f4a2f49be4782851cb80..2b994b866a2ffc236d4956ce90ba607551adb047 100644
--- a/Rendering/RayTracing/RTWrapper/RTWrapper.h
+++ b/Rendering/RayTracing/RTWrapper/RTWrapper.h
@@ -4,6 +4,7 @@
 #include "Types.h"
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 void rtwInit();
 RTW::Backend *rtwSwitch(const char *name);
 void rtwShutdown();
@@ -185,3 +186,4 @@ std::set<RTWBackendType> rtwGetAvailableBackends();
 
 #define ospcommon rtw
 #define osp rtw
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/RTWrapper/Types.h b/Rendering/RayTracing/RTWrapper/Types.h
index 3cda2bfa10501dd7bb36215e75f30354b5aaf4c3..85704209c61af9a26fa8655936d69a9d1f36919f 100644
--- a/Rendering/RayTracing/RTWrapper/Types.h
+++ b/Rendering/RayTracing/RTWrapper/Types.h
@@ -3,6 +3,7 @@
 #include <stdint.h>
 #include <sys/types.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 typedef enum : uint32_t
 {
     RTW_NO_ERROR = 0,
@@ -202,9 +203,11 @@ typedef enum : uint32_t
     RTW_BACKEND_OSPRAY = 1,
     RTW_BACKEND_VISRTX = 2
 } RTWBackendType;
+VTK_ABI_NAMESPACE_END
 
 namespace rtw
 {
+VTK_ABI_NAMESPACE_BEGIN
     struct vec2f { float x, y; };
     struct vec2i { int x, y; };
     struct vec3i { int x, y, z; };
@@ -215,8 +218,11 @@ namespace rtw
     struct box3f { vec3f lower, upper; };
     struct linear3f { vec3f vx, vy, vz; };
     struct affine3f { linear3f l; vec3f p; };
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 typedef struct RTWHandle
 *RTWFrameBuffer,
 *RTWRenderer,
@@ -246,3 +252,4 @@ typedef enum : uint32_t
     RTW_DENOISER = 4,
     RTW_DEPTH_COMPOSITING = 5,
 } RTWFeature;
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/Camera.h b/Rendering/RayTracing/RTWrapper/VisRTX/Camera.h
index ebaca60e555b1120afa33d5ec574def760ba30fb..986f7c3af4d0b120877327b28187e02d4db8bed4 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/Camera.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/Camera.h
@@ -10,6 +10,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class Camera : public Object
     {
         friend class Renderer;
@@ -113,4 +114,5 @@ namespace RTW
     private:
         VisRTX::Camera* camera = nullptr;
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/Data.h b/Rendering/RayTracing/RTWrapper/VisRTX/Data.h
index 4c12dfb0f047e76e2f1e91e35349a225a8b17a85..f82a149bff95c4f9e9ab367010d1f1abc6cb0a19 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/Data.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/Data.h
@@ -6,6 +6,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class Data : public Object
     {
     public:
@@ -168,4 +169,5 @@ namespace RTW
         bool shared = false;
         bool dirty = true;
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/FrameBuffer.h b/Rendering/RayTracing/RTWrapper/VisRTX/FrameBuffer.h
index 59b82a6f7657cf4f24b920af3300a9a3749c7921..f3d8a6f5f10253317b0224545f7c8971770080bc 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/FrameBuffer.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/FrameBuffer.h
@@ -9,6 +9,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class FrameBuffer : public Object
     {
         friend class Renderer;
@@ -96,4 +97,5 @@ namespace RTW
         RTWFrameBufferFormat format;
         uint32_t channels;
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/GeometricModel.h b/Rendering/RayTracing/RTWrapper/VisRTX/GeometricModel.h
index e8be064ddb242076d1f5700759132bf95b7eec32..376ea9e5e11704d022dac603a313cec51a1a7707 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/GeometricModel.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/GeometricModel.h
@@ -9,6 +9,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class GeometricModel : public Object
     {
         friend class World;
@@ -60,4 +61,5 @@ namespace RTW
     private:
         Geometry *geometry;
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/Geometry.h b/Rendering/RayTracing/RTWrapper/VisRTX/Geometry.h
index 5c7cbde8dddbd8b8a8ec36515673e524748a4b2b..ac68d8d106039e1932c9383532db102f16c74d34 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/Geometry.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/Geometry.h
@@ -8,6 +8,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class Geometry : public Object
     {
         friend class World;
@@ -389,4 +390,5 @@ namespace RTW
         VisRTX::Geometry* geometry = nullptr;
         Material* material = nullptr;
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/Group.h b/Rendering/RayTracing/RTWrapper/VisRTX/Group.h
index ef8fb74860e1d2a222f5ece343a2090c0d1d810c..887e12a9e457dd63f36d0a178179cc12bad447fa 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/Group.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/Group.h
@@ -9,6 +9,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class Group : public Object
     {
         friend class World;
@@ -56,4 +57,5 @@ namespace RTW
         std::set<GeometricModel *> geometricModels;
 
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/Instance.h b/Rendering/RayTracing/RTWrapper/VisRTX/Instance.h
index 287e47be3ffe8adf1492b36aecd79545c5e3a849..996a2dadc94657b0bcd8baffc01af2400ea4328f 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/Instance.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/Instance.h
@@ -9,6 +9,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class Instance : public Object
     {
         friend class World;
@@ -33,4 +34,5 @@ namespace RTW
     private:
         Group *group;
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/Light.h b/Rendering/RayTracing/RTWrapper/VisRTX/Light.h
index 86e6b3070f3b72fd82d3a365daeb057a62fe8157..d78e7854ec4e0fb94d7042d3e63a8be7ac9b256d 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/Light.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/Light.h
@@ -11,6 +11,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class Light : public Object
     {
         friend class Renderer;
@@ -174,4 +175,5 @@ namespace RTW
     private:
         VisRTX::Light* light = nullptr;
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/Material.h b/Rendering/RayTracing/RTWrapper/VisRTX/Material.h
index 1a62347178e13f35b384d20f68e63a763044e521..b438976dbc1a01636bbbbe882e5ad18060e829dd 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/Material.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/Material.h
@@ -14,6 +14,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class Material : public Object
     {
         friend class Geometry;
@@ -425,4 +426,5 @@ namespace RTW
         std::string type;
         VisRTX::Material* material = nullptr;
         };
-    }
+VTK_ABI_NAMESPACE_END
+}
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/OSPRayMDL.h b/Rendering/RayTracing/RTWrapper/VisRTX/OSPRayMDL.h
index c71277bfc9b96f12a49316d2741ab1c4a2f3e61d..633c0f364f2789f1888e95ed8bd49455f72b6894 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/OSPRayMDL.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/OSPRayMDL.h
@@ -1,8 +1,11 @@
 
 #ifdef __cplusplus
+VTK_ABI_NAMESPACE_BEGIN
 extern "C" {
+VTK_ABI_NAMESPACE_END
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 unsigned char OSPRay_mdl[] = {
 0x2f,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
 0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
@@ -1616,3 +1619,4 @@ unsigned char OSPRay_mdl[] = {
 #ifdef __cplusplus
 }
 #endif
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/Object.h b/Rendering/RayTracing/RTWrapper/VisRTX/Object.h
index 9cfdbdd909cef94e3c7065e042202b7a69192b57..5c2ff4220ac507b6d3d778dccc47ef85c180086b 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/Object.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/Object.h
@@ -13,6 +13,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class Data;
 
     class Object
@@ -362,4 +363,5 @@ namespace RTW
 
         RTWDataType dataType;
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/Renderer.h b/Rendering/RayTracing/RTWrapper/VisRTX/Renderer.h
index 680ce66edb4e16eb547494ade5892a0a4e9a5f3e..5eff8f1e96d2ec17f80a5d49302d17f56a2e3c45 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/Renderer.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/Renderer.h
@@ -16,6 +16,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class Renderer : public Object
     {
     public:
@@ -143,4 +144,5 @@ namespace RTW
 
         std::vector<VisRTX::Light*> lastLights;
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/Texture.h b/Rendering/RayTracing/RTWrapper/VisRTX/Texture.h
index 9e6790f9b0d43b1a6d5ac199d8d3f5afb6fbe584..cb1e8840728e2d7aa5319ff1535d70b31f31f446 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/Texture.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/Texture.h
@@ -8,6 +8,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class Texture : public Object
     {
         friend class Renderer;
@@ -79,4 +80,5 @@ namespace RTW
     private:
         VisRTX::Texture* texture = nullptr;
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/VisRTXBackend.cxx b/Rendering/RayTracing/RTWrapper/VisRTX/VisRTXBackend.cxx
index 73c7292dc4c6e06fd8c595b6e8db24a57ca3fd14..82b4a1b27c6f069b317d11ecbb57bb6d73a13247 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/VisRTXBackend.cxx
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/VisRTXBackend.cxx
@@ -24,6 +24,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     RTWError VisRTXBackend::Init()
     {
 #ifdef VISRTX_DYNLOAD
@@ -346,4 +347,5 @@ namespace RTW
 
         return reinterpret_cast<FrameBuffer*>(frameBuffer)->GetDepthTextureGL();
     }
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/VisRTXBackend.h b/Rendering/RayTracing/RTWrapper/VisRTX/VisRTXBackend.h
index d115edee0a8d161f828276d7bbe34c8c2376a605..8c40f392fbe4a7c246b8114b299dfdd1a727a327 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/VisRTXBackend.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/VisRTXBackend.h
@@ -7,6 +7,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     /*
      * Translates OSPRay-ish wrapper API calls to VisRTX
      */
@@ -96,4 +97,5 @@ namespace RTW
         }
 
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/RTWrapper/VisRTX/World.h b/Rendering/RayTracing/RTWrapper/VisRTX/World.h
index 1ad80951e7382bb1ef19faff7653e1e4c3b3ac66..dc525be7768db46f7e9d4e782dc38b446c55b18d 100644
--- a/Rendering/RayTracing/RTWrapper/VisRTX/World.h
+++ b/Rendering/RayTracing/RTWrapper/VisRTX/World.h
@@ -9,6 +9,7 @@
 
 namespace RTW
 {
+VTK_ABI_NAMESPACE_BEGIN
     class World : public Object
     {
         friend class Renderer;
@@ -116,4 +117,5 @@ namespace RTW
         VisRTX::Model* model = nullptr;
         std::set<Geometry*> geometries;
     };
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/RayTracing/vtkOSPRayAMRVolumeMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayAMRVolumeMapperNode.cxx
index e0b360ce243166c0bae8b8489069825c04d1946d..7c009c710f5ec7b8ce5ad9295f0dad49609c8d49 100644
--- a/Rendering/RayTracing/vtkOSPRayAMRVolumeMapperNode.cxx
+++ b/Rendering/RayTracing/vtkOSPRayAMRVolumeMapperNode.cxx
@@ -34,6 +34,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOSPRayAMRVolumeMapperNode);
 
 //------------------------------------------------------------------------------
@@ -255,3 +256,4 @@ void vtkOSPRayAMRVolumeMapperNode::Render(bool prepass)
     this->OSPRayInstance = instance;
   } // prepass
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayAMRVolumeMapperNode.h b/Rendering/RayTracing/vtkOSPRayAMRVolumeMapperNode.h
index 5d976d80a38a2ed86c9d01d8902cfe23dfab41b0..339aefb27c7020e2ec042a8b724a7bc0c1932886 100644
--- a/Rendering/RayTracing/vtkOSPRayAMRVolumeMapperNode.h
+++ b/Rendering/RayTracing/vtkOSPRayAMRVolumeMapperNode.h
@@ -28,6 +28,7 @@
 #include "vtkOSPRayVolumeMapperNode.h"
 #include "vtkRenderingRayTracingModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGRAYTRACING_EXPORT vtkOSPRayAMRVolumeMapperNode : public vtkOSPRayVolumeMapperNode
 {
 public:
@@ -50,4 +51,5 @@ private:
 
   float OldSamplingRate;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayActorNode.cxx b/Rendering/RayTracing/vtkOSPRayActorNode.cxx
index ef09b4882b077032547cd94b60c406699a53ce9d..5361799d5b9e5a13a0279a9985c9b74753f1c9fc 100644
--- a/Rendering/RayTracing/vtkOSPRayActorNode.cxx
+++ b/Rendering/RayTracing/vtkOSPRayActorNode.cxx
@@ -33,6 +33,7 @@
 
 #include "RTWrapper/RTWrapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyMacro(vtkOSPRayActorNode, LUMINOSITY, Double);
 vtkInformationKeyMacro(vtkOSPRayActorNode, ENABLE_SCALING, Integer);
 vtkInformationKeyMacro(vtkOSPRayActorNode, SCALE_ARRAY_NAME, String);
@@ -252,3 +253,4 @@ vtkMTimeType vtkOSPRayActorNode::GetMTime()
   }
   return mtime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayActorNode.h b/Rendering/RayTracing/vtkOSPRayActorNode.h
index 21572ca50b873da54f133465f4d0d1ad1dc11e01..12c2f1ea31d6b46ac70338a7b579b4b6f65eeba1 100644
--- a/Rendering/RayTracing/vtkOSPRayActorNode.h
+++ b/Rendering/RayTracing/vtkOSPRayActorNode.h
@@ -27,6 +27,7 @@
 #include "vtkTimeStamp.h"                 //for mapper changed time
 #include "vtkWeakPointer.h"               //also for mapper changed time
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkCompositeDataDisplayAttributes;
 class vtkDataArray;
@@ -132,4 +133,5 @@ private:
   vtkWeakPointer<vtkMapper> LastMapper;
   vtkTimeStamp MapperChangedTime;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayCache.h b/Rendering/RayTracing/vtkOSPRayCache.h
index 56220c2b28f5492b8ddfbb6a5b2dd343986dc397..d462ff33696f4831645d3900809dfb81adcf93b0 100644
--- a/Rendering/RayTracing/vtkOSPRayCache.h
+++ b/Rendering/RayTracing/vtkOSPRayCache.h
@@ -35,6 +35,7 @@
 
 #include "RTWrapper/RTWrapper.h" // for handle types
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class T>
 class VTKRENDERINGRAYTRACING_EXPORT vtkOSPRayCache
 {
@@ -126,5 +127,6 @@ public:
   RTW::Backend* backend = nullptr;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOSPRayCache_h
 // VTK-HeaderTest-Exclude: vtkOSPRayCache.h
diff --git a/Rendering/RayTracing/vtkOSPRayCameraNode.cxx b/Rendering/RayTracing/vtkOSPRayCameraNode.cxx
index e6bb20250c1be405c6d2b5e28c795c558b5b8481..14e83c84a086038db08e23be87b00ff345003cf3 100644
--- a/Rendering/RayTracing/vtkOSPRayCameraNode.cxx
+++ b/Rendering/RayTracing/vtkOSPRayCameraNode.cxx
@@ -27,6 +27,7 @@
 #include "RTWrapper/RTWrapper.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOSPRayCameraNode);
 
 //------------------------------------------------------------------------------
@@ -153,3 +154,4 @@ void vtkOSPRayCameraNode::Render(bool prepass)
     this->oCamera = ospCamera;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayCameraNode.h b/Rendering/RayTracing/vtkOSPRayCameraNode.h
index bca6d623e37e52f0713dff4497ebc371505df6bd..be225a0798b5a7daa75ac756825c201f5a71112b 100644
--- a/Rendering/RayTracing/vtkOSPRayCameraNode.h
+++ b/Rendering/RayTracing/vtkOSPRayCameraNode.h
@@ -27,6 +27,7 @@
 
 #include "RTWrapper/RTWrapper.h" // for handle types
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationIntegerKey;
 class vtkCamera;
 
@@ -55,4 +56,5 @@ private:
   void operator=(const vtkOSPRayCameraNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayCompositePolyDataMapper2Node.cxx b/Rendering/RayTracing/vtkOSPRayCompositePolyDataMapper2Node.cxx
index 608124a87786cae1acf992346898396914086094..1565466bdacce98b7957f27b85cc5600dc508dbf 100644
--- a/Rendering/RayTracing/vtkOSPRayCompositePolyDataMapper2Node.cxx
+++ b/Rendering/RayTracing/vtkOSPRayCompositePolyDataMapper2Node.cxx
@@ -27,6 +27,7 @@
 #include "vtkSmartPointer.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOSPRayCompositePolyDataMapper2Node);
 
 //------------------------------------------------------------------------------
@@ -217,3 +218,4 @@ void vtkOSPRayCompositePolyDataMapper2Node::RenderBlock(vtkOSPRayRendererNode* o
     this->BlockState.Material.pop();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayCompositePolyDataMapper2Node.h b/Rendering/RayTracing/vtkOSPRayCompositePolyDataMapper2Node.h
index 03a751ef8023713a702b85b6290e5b7ac5731355..26c404d0fed8a4dbed9764b83ea9d8450602cc07 100644
--- a/Rendering/RayTracing/vtkOSPRayCompositePolyDataMapper2Node.h
+++ b/Rendering/RayTracing/vtkOSPRayCompositePolyDataMapper2Node.h
@@ -27,6 +27,7 @@
 #include "vtkRenderingRayTracingModule.h" // For export macro
 #include <stack>                          // used for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObject;
 class vtkCompositePolyDataMapper2;
 class vtkOSPRayRendererNode;
@@ -72,4 +73,5 @@ private:
   vtkOSPRayCompositePolyDataMapper2Node(const vtkOSPRayCompositePolyDataMapper2Node&) = delete;
   void operator=(const vtkOSPRayCompositePolyDataMapper2Node&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayLightNode.cxx b/Rendering/RayTracing/vtkOSPRayLightNode.cxx
index 5f28394dfc9ed76b6bbbdfa5c45385df0d7a098b..5823aadb219041707619974208f1d823fc30a7b6 100644
--- a/Rendering/RayTracing/vtkOSPRayLightNode.cxx
+++ b/Rendering/RayTracing/vtkOSPRayLightNode.cxx
@@ -29,6 +29,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyMacro(vtkOSPRayLightNode, IS_AMBIENT, Integer);
 vtkInformationKeyMacro(vtkOSPRayLightNode, RADIUS, Double);
 
@@ -279,3 +280,4 @@ void vtkOSPRayLightNode::Render(bool prepass)
     this->OLight = ospLight;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayLightNode.h b/Rendering/RayTracing/vtkOSPRayLightNode.h
index 42f6b5faf05d628d6bbbd32c55b7d873b4318734..5bba896f65b42a11b367985d671f502a53600474 100644
--- a/Rendering/RayTracing/vtkOSPRayLightNode.h
+++ b/Rendering/RayTracing/vtkOSPRayLightNode.h
@@ -29,6 +29,7 @@
 
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationDoubleKey;
 class vtkInformationIntegerKey;
 class vtkLight;
@@ -98,4 +99,5 @@ private:
   void* OLight;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayMaterialHelpers.cxx b/Rendering/RayTracing/vtkOSPRayMaterialHelpers.cxx
index 9c20ecdcab3183b842212edc4c562ebde78cbd7d..26e95d3c311003da91260ce93dc6b34641998743 100644
--- a/Rendering/RayTracing/vtkOSPRayMaterialHelpers.cxx
+++ b/Rendering/RayTracing/vtkOSPRayMaterialHelpers.cxx
@@ -25,6 +25,7 @@
 #include <limits>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 OSPTexture vtkOSPRayMaterialHelpers::NewTexture2D(RTW::Backend* backend, const osp::vec2i& size,
   const OSPTextureFormat type, void* data, const uint32_t _flags)
 {
@@ -387,3 +388,4 @@ OSPMaterial vtkOSPRayMaterialHelpers::NewMaterial(
   ospCommit(result);
   return result;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayMaterialHelpers.h b/Rendering/RayTracing/vtkOSPRayMaterialHelpers.h
index 471ad474b14ea7fe30a1eac22d72a436758f7ea1..25b82216cb14a67dce4251b515e215aaf288c572 100644
--- a/Rendering/RayTracing/vtkOSPRayMaterialHelpers.h
+++ b/Rendering/RayTracing/vtkOSPRayMaterialHelpers.h
@@ -36,11 +36,14 @@
 
 #include "RTWrapper/RTWrapper.h" // for handle types
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkOSPRayRendererNode;
+VTK_ABI_NAMESPACE_END
 
 namespace vtkOSPRayMaterialHelpers
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 /**
  * Helper function to make a 2d OSPRay Texture.
@@ -74,6 +77,7 @@ OSPMaterial MakeMaterial(vtkOSPRayRendererNode* orn, OSPRenderer oRenderer, std:
  */
 OSPMaterial NewMaterial(vtkOSPRayRendererNode* orn, OSPRenderer oRenderer, std::string ospMatName);
 
+VTK_ABI_NAMESPACE_END
 }
 #endif
 // VTK-HeaderTest-Exclude: vtkOSPRayMaterialHelpers.h
diff --git a/Rendering/RayTracing/vtkOSPRayMaterialLibrary.cxx b/Rendering/RayTracing/vtkOSPRayMaterialLibrary.cxx
index 950bf81cd7f0e67b2f033957619c7c43b5f61f7b..04d3c1328e00947cf495973b108c511df8b980ee 100644
--- a/Rendering/RayTracing/vtkOSPRayMaterialLibrary.cxx
+++ b/Rendering/RayTracing/vtkOSPRayMaterialLibrary.cxx
@@ -38,6 +38,7 @@
 
 #include <sys/types.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 const std::map<std::string, std::map<std::string, std::string>> Aliases = {
@@ -1234,3 +1235,4 @@ vtkOSPRayMaterialLibrary::GetParametersDictionary()
   };
   return dic;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayMaterialLibrary.h b/Rendering/RayTracing/vtkOSPRayMaterialLibrary.h
index 68976a96710edaf5c8847963e2499081644a1a94..5febba45b7737b47a436908605be464a01945389 100644
--- a/Rendering/RayTracing/vtkOSPRayMaterialLibrary.h
+++ b/Rendering/RayTracing/vtkOSPRayMaterialLibrary.h
@@ -34,6 +34,7 @@
 #include <string>           //for string!
 #include <vector>           //for vector!
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOSPRayMaterialLibraryInternals;
 class vtkTexture;
 struct TextureInfo;
@@ -234,4 +235,5 @@ private:
   vtkOSPRayMaterialLibraryInternals* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.cxx
index ade942af438cdd3b7790650552a3aff8e76687cb..ab1fe32777089d432a70720e35ea9ba66fc236b3 100644
--- a/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.cxx
+++ b/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.cxx
@@ -36,6 +36,7 @@
 #include <vector>
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOSPRayMoleculeMapperNode);
 
 //------------------------------------------------------------------------------
@@ -437,3 +438,4 @@ void vtkOSPRayMoleculeMapperNode::Render(bool prepass)
     orn->Instances.emplace_back(instance);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.h b/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.h
index 91fa4bc2c0d61d3b0748310beb9bc65f1c09baaa..0f472066db7669bda071f6756d01dc2f1078aaf0 100644
--- a/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.h
+++ b/Rendering/RayTracing/vtkOSPRayMoleculeMapperNode.h
@@ -28,6 +28,7 @@
 #include "RTWrapper/RTWrapper.h" // for handle types
 #include <vector>                // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGRAYTRACING_EXPORT vtkOSPRayMoleculeMapperNode : public vtkPolyDataMapperNode
 {
 public:
@@ -52,4 +53,5 @@ private:
   vtkOSPRayMoleculeMapperNode(const vtkOSPRayMoleculeMapperNode&) = delete;
   void operator=(const vtkOSPRayMoleculeMapperNode&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayPass.cxx b/Rendering/RayTracing/vtkOSPRayPass.cxx
index b9c317270c5c7bfda8cc9758e70df59273eee91c..b7aa334c06bf330e1b5757f4d54548eead413d26 100644
--- a/Rendering/RayTracing/vtkOSPRayPass.cxx
+++ b/Rendering/RayTracing/vtkOSPRayPass.cxx
@@ -47,6 +47,7 @@
 #include <sys/types.h>
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOSPRayPassInternals : public vtkRenderPass
 {
 public:
@@ -503,3 +504,4 @@ bool vtkOSPRayPass::IsBackendAvailable(const char* choice)
   }
   return false;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayPass.h b/Rendering/RayTracing/vtkOSPRayPass.h
index 92658e5cc2231d06af25834d04f3418ee7bda51d..cdbd8bc7a40dd268c39db232142f86b9463d071a 100644
--- a/Rendering/RayTracing/vtkOSPRayPass.h
+++ b/Rendering/RayTracing/vtkOSPRayPass.h
@@ -42,6 +42,7 @@
 
 #include <string> // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCameraPass;
 class vtkLightsPass;
 class vtkOSPRayPassInternals;
@@ -124,4 +125,5 @@ private:
   static int RTDeviceRefCount;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.cxx
index 487be9f65f023566cfadcd6cf96383a8b1557af1..add98a35e520a4abef575a358800257dccc95f5d 100644
--- a/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.cxx
+++ b/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.cxx
@@ -50,6 +50,7 @@
 
 namespace vtkosp
 {
+VTK_ABI_NAMESPACE_BEGIN
 //----------------------------------------------------------------------------
 double GetComponent(double* tuple, int nComp, int c)
 {
@@ -306,8 +307,11 @@ OSPVolumetricModel RenderAsParticles(osp::vec3f* vertices, std::vector<unsigned
 
   return ospVolModel;
 }
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
+
 //============================================================================
 vtkStandardNewMacro(vtkOSPRayPointGaussianMapperNode);
 
@@ -600,3 +604,4 @@ bool vtkOSPRayPointGaussianMapperNode::GetNeedToRebuild(vtkOSPRayActorNode* aNod
   }
   return false;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.h b/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.h
index b3a1b9ff3b976dd0626efda38bea3567b0169949..bdbcc6d04f87266258cee049d8d837f029177e61 100644
--- a/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.h
+++ b/Rendering/RayTracing/vtkOSPRayPointGaussianMapperNode.h
@@ -25,6 +25,7 @@
 #include "vtkOSPRayPolyDataMapperNode.h"
 #include "vtkRenderingRayTracingModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOSPRayActorNode;
 class vtkPolyData;
 
@@ -83,4 +84,5 @@ private:
   void operator=(const vtkOSPRayPointGaussianMapperNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.cxx
index 4d6e0333de64d90abef8e319b5678392cdd863b2..96725f23cf9039cf84589e3d7535256e65ddc618 100644
--- a/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.cxx
+++ b/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.cxx
@@ -48,6 +48,7 @@
 
 namespace vtkosp
 {
+VTK_ABI_NAMESPACE_BEGIN
 void VToOPointNormals(
   vtkDataArray* vNormals, std::vector<osp::vec3f>& normals, vtkMatrix3x3* matrix)
 {
@@ -808,8 +809,10 @@ OSPMaterial MakeActorMaterial(vtkOSPRayRendererNode* orn, OSPRenderer oRenderer,
     false, dontcare1, dontcare2, "");
 };
 
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //============================================================================
 vtkStandardNewMacro(vtkOSPRayPolyDataMapperNode);
 
@@ -1409,3 +1412,4 @@ void vtkOSPRayPolyDataMapperNode::ClearGeometricModels()
   }
   this->Instances.clear();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.h b/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.h
index c8b781723d6a115bf8096c1df25c479d5b7b3ab2..7e0b537f38c0b29d232b13024781cb4ae1232f78 100644
--- a/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.h
+++ b/Rendering/RayTracing/vtkOSPRayPolyDataMapperNode.h
@@ -26,6 +26,7 @@
 #include "vtkPolyDataMapperNode.h"
 #include "vtkRenderingRayTracingModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOSPRayActorNode;
 class vtkPolyData;
 
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkOSPRayPolyDataMapperNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayRendererNode.cxx b/Rendering/RayTracing/vtkOSPRayRendererNode.cxx
index 1a7d2f8927c2f8df9420c7068344471f58657a10..252d23a7d1731ade24767298d4c33d52b9cec6cc 100644
--- a/Rendering/RayTracing/vtkOSPRayRendererNode.cxx
+++ b/Rendering/RayTracing/vtkOSPRayRendererNode.cxx
@@ -60,6 +60,7 @@ namespace ospray
 {
 namespace opengl
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 // code borrowed from ospray::modules::opengl to facilitate updating
 // and linking
@@ -172,9 +173,11 @@ OSPTexture getOSPDepthTextureFromOpenGLPerspective(const double& fovy, const dou
 
   return depthTexture;
 }
+VTK_ABI_NAMESPACE_END
 }
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkInformationKeyMacro(vtkOSPRayRendererNode, SAMPLES_PER_PIXEL, Integer);
 vtkInformationKeyMacro(vtkOSPRayRendererNode, MAX_CONTRIBUTION, Double);
 vtkInformationKeyMacro(vtkOSPRayRendererNode, MAX_DEPTH, Integer);
@@ -1772,3 +1775,4 @@ RTW::Backend* vtkOSPRayRendererNode::GetBackend()
 {
   return this->Internal->Backend;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayRendererNode.h b/Rendering/RayTracing/vtkOSPRayRendererNode.h
index b5b1f5ec8b40e82a8b78d09c12332b2785d6c976..d067b76ebf5b8f8b43149ac3a9ffc6cf688bf69f 100644
--- a/Rendering/RayTracing/vtkOSPRayRendererNode.h
+++ b/Rendering/RayTracing/vtkOSPRayRendererNode.h
@@ -36,6 +36,7 @@
 #include <OpenImageDenoise/oidn.hpp> // for denoiser structures
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInformationDoubleKey;
 class vtkInformationDoubleVectorKey;
 class vtkInformationIntegerKey;
@@ -451,4 +452,5 @@ private:
   void operator=(const vtkOSPRayRendererNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.cxx
index b00319d62dd404767c8e59a707ea2c4a87c6d3d5..9f841aef0b65bea99c069d970e633bc115b0ebdc 100644
--- a/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.cxx
+++ b/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.cxx
@@ -39,6 +39,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOSPRayUnstructuredVolumeMapperNode);
 
 //------------------------------------------------------------------------------
@@ -405,3 +406,4 @@ void vtkOSPRayUnstructuredVolumeMapperNode::Render(bool prepass)
     this->BuildTime.Modified();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.h b/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.h
index 01e3a2a08f6947a83abd8c2d7b4b6ace572ac1d9..f99d93d2f5df7ac33a9340992902ca5a8497b16d 100644
--- a/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.h
+++ b/Rendering/RayTracing/vtkOSPRayUnstructuredVolumeMapperNode.h
@@ -30,6 +30,7 @@
 
 #include "RTWrapper/RTWrapper.h" // for handle types
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGRAYTRACING_EXPORT vtkOSPRayUnstructuredVolumeMapperNode
   : public vtkVolumeMapperNode
 
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkOSPRayUnstructuredVolumeMapperNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayViewNodeFactory.cxx b/Rendering/RayTracing/vtkOSPRayViewNodeFactory.cxx
index 7516a055dce3af27c41a62ce5e22f637df148b48..c31a78a3de1cb7853d0c192d63d2cdba0055f71e 100644
--- a/Rendering/RayTracing/vtkOSPRayViewNodeFactory.cxx
+++ b/Rendering/RayTracing/vtkOSPRayViewNodeFactory.cxx
@@ -28,6 +28,7 @@
 #include "vtkOSPRayVolumeMapperNode.h"
 #include "vtkOSPRayVolumeNode.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkViewNode* ren_maker()
 {
   vtkOSPRayRendererNode* vn = vtkOSPRayRendererNode::New();
@@ -138,3 +139,4 @@ void vtkOSPRayViewNodeFactory::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayViewNodeFactory.h b/Rendering/RayTracing/vtkOSPRayViewNodeFactory.h
index a49ae3b082c5b214af7a646d9aff7a1856f84b88..07fee89f298129be287504ff95becf9f19a389da 100644
--- a/Rendering/RayTracing/vtkOSPRayViewNodeFactory.h
+++ b/Rendering/RayTracing/vtkOSPRayViewNodeFactory.h
@@ -27,6 +27,7 @@
 #include "vtkRenderingRayTracingModule.h" // For export macro
 #include "vtkViewNodeFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGRAYTRACING_EXPORT vtkOSPRayViewNodeFactory : public vtkViewNodeFactory
 {
 public:
@@ -43,4 +44,5 @@ private:
   void operator=(const vtkOSPRayViewNodeFactory&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayVolumeMapper.cxx b/Rendering/RayTracing/vtkOSPRayVolumeMapper.cxx
index 9ad68d94b2caf126d64f7ddee1075a390558c457..7e0339b6e7103e1fa47d18dedcba9167e4c358f9 100644
--- a/Rendering/RayTracing/vtkOSPRayVolumeMapper.cxx
+++ b/Rendering/RayTracing/vtkOSPRayVolumeMapper.cxx
@@ -20,6 +20,7 @@
 #include "vtkRenderer.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOSPRayVolumeMapper);
 
 //------------------------------------------------------------------------------
@@ -94,3 +95,4 @@ void vtkOSPRayVolumeMapper::Render(vtkRenderer* ren, vtkVolume* vol)
 // The parameter window could be used to determine which graphic
 // resources to release.
 void vtkOSPRayVolumeMapper::ReleaseGraphicsResources(vtkWindow*) {}
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayVolumeMapper.h b/Rendering/RayTracing/vtkOSPRayVolumeMapper.h
index 44f361114c8452fbdec08ed017e775d6871e4a0e..823c6e1be340d865c959abf6fdb018796324cb5c 100644
--- a/Rendering/RayTracing/vtkOSPRayVolumeMapper.h
+++ b/Rendering/RayTracing/vtkOSPRayVolumeMapper.h
@@ -27,6 +27,7 @@
 #include "vtkOSPRayVolumeInterface.h"
 #include "vtkRenderingRayTracingModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOSPRayPass;
 class vtkRenderer;
 class vtkWindow;
@@ -67,4 +68,5 @@ private:
   void operator=(const vtkOSPRayVolumeMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.cxx b/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.cxx
index 921a709c315520800266209cba45fd7b35b53719..df1259284f4cf31a228c4be12248ebc45511e838 100644
--- a/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.cxx
+++ b/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.cxx
@@ -37,6 +37,7 @@
 #include <vector>
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOSPRayVolumeMapperNode);
 
 //------------------------------------------------------------------------------
@@ -418,3 +419,4 @@ void vtkOSPRayVolumeMapperNode::UpdateTransferFunction(
 
   this->PropertyTime.Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.h b/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.h
index 78b1d5fb66be6058c1f217177503b1338b9623cc..d01043569d3b800fa7ac069a7eae39809794be36 100644
--- a/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.h
+++ b/Rendering/RayTracing/vtkOSPRayVolumeMapperNode.h
@@ -28,6 +28,7 @@
 
 #include "RTWrapper/RTWrapper.h" // for handle types
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkDataSet;
 class vtkVolume;
@@ -86,4 +87,5 @@ private:
   vtkOSPRayVolumeMapperNode(const vtkOSPRayVolumeMapperNode&) = delete;
   void operator=(const vtkOSPRayVolumeMapperNode&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayVolumeNode.cxx b/Rendering/RayTracing/vtkOSPRayVolumeNode.cxx
index 29d2575bce640be4209ea1eaccf8314937deba1d..20f903fcd9d341a9b6f6d382877fd610c73f331a 100644
--- a/Rendering/RayTracing/vtkOSPRayVolumeNode.cxx
+++ b/Rendering/RayTracing/vtkOSPRayVolumeNode.cxx
@@ -33,6 +33,7 @@
 #include "RTWrapper/RTWrapper.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOSPRayVolumeNode);
 
 //------------------------------------------------------------------------------
@@ -85,3 +86,4 @@ vtkMTimeType vtkOSPRayVolumeNode::GetMTime()
   }
   return mtime;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayVolumeNode.h b/Rendering/RayTracing/vtkOSPRayVolumeNode.h
index 80581796250168fa993288d9d1ecae47973cdb37..431030f0250e2e5f67df3f6ae906653ac818d98f 100644
--- a/Rendering/RayTracing/vtkOSPRayVolumeNode.h
+++ b/Rendering/RayTracing/vtkOSPRayVolumeNode.h
@@ -25,6 +25,7 @@
 #include "vtkRenderingRayTracingModule.h" // For export macro
 #include "vtkVolumeNode.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVolume;
 class vtkCompositeDataDisplayAttributes;
 class vtkDataArray;
@@ -55,4 +56,5 @@ private:
   vtkOSPRayVolumeNode(const vtkOSPRayVolumeNode&) = delete;
   void operator=(const vtkOSPRayVolumeNode&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/RayTracing/vtkOSPRayWindowNode.cxx b/Rendering/RayTracing/vtkOSPRayWindowNode.cxx
index c2e89bc9e6ed9617fc22195515a2dbe09349214d..e497a071da026c61ca277b3e34ad47ddde01d0d0 100644
--- a/Rendering/RayTracing/vtkOSPRayWindowNode.cxx
+++ b/Rendering/RayTracing/vtkOSPRayWindowNode.cxx
@@ -27,6 +27,7 @@
 #include "RTWrapper/RTWrapper.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOSPRayWindowNode);
 
 //------------------------------------------------------------------------------
@@ -95,3 +96,4 @@ void vtkOSPRayWindowNode::Render(bool prepass)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/RayTracing/vtkOSPRayWindowNode.h b/Rendering/RayTracing/vtkOSPRayWindowNode.h
index f0bf6cdf5db22004745e9e9d9a4dcb22ee1c8d81..d810d2b84751eb18a169215a9dfa6d66247fd01f 100644
--- a/Rendering/RayTracing/vtkOSPRayWindowNode.h
+++ b/Rendering/RayTracing/vtkOSPRayWindowNode.h
@@ -25,6 +25,7 @@
 #include "vtkRenderingRayTracingModule.h" // For export macro
 #include "vtkWindowNode.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGRAYTRACING_EXPORT vtkOSPRayWindowNode : public vtkWindowNode
 {
 public:
@@ -46,4 +47,5 @@ private:
   void operator=(const vtkOSPRayWindowNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/SceneGraph/vtkActorNode.cxx b/Rendering/SceneGraph/vtkActorNode.cxx
index b402724b6b059516db2c5a82d88d4437e0cab2cb..63871e88763b6a4de25e551669b16af020c35782 100644
--- a/Rendering/SceneGraph/vtkActorNode.cxx
+++ b/Rendering/SceneGraph/vtkActorNode.cxx
@@ -26,6 +26,7 @@
 #include "vtkProperty.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkActorNode);
 
 //------------------------------------------------------------------------------
@@ -60,3 +61,4 @@ void vtkActorNode::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/SceneGraph/vtkActorNode.h b/Rendering/SceneGraph/vtkActorNode.h
index d1e303a1cb4bb51e18a4e938bb2d152aa73c41e9..668060753f6f9b124d93d60195d03cf05557e7f3 100644
--- a/Rendering/SceneGraph/vtkActorNode.h
+++ b/Rendering/SceneGraph/vtkActorNode.h
@@ -27,6 +27,7 @@
 #include "vtkRenderingSceneGraphModule.h" // For export macro
 #include "vtkViewNode.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGSCENEGRAPH_EXPORT vtkActorNode : public vtkViewNode
 {
 public:
@@ -48,4 +49,5 @@ private:
   void operator=(const vtkActorNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/SceneGraph/vtkCameraNode.cxx b/Rendering/SceneGraph/vtkCameraNode.cxx
index 0e888846b0dc70c10c7d45faff73a3208831049f..89fa695dcb2f54df2013a7a6d59a18314e8c96cb 100644
--- a/Rendering/SceneGraph/vtkCameraNode.cxx
+++ b/Rendering/SceneGraph/vtkCameraNode.cxx
@@ -17,6 +17,7 @@
 #include "vtkObjectFactory.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkCameraNode);
 
 //------------------------------------------------------------------------------
@@ -30,3 +31,4 @@ void vtkCameraNode::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/SceneGraph/vtkCameraNode.h b/Rendering/SceneGraph/vtkCameraNode.h
index 0ddcac7cd0923b55bd4a84e2617de2d9d2a326db..a976966121c26afe390ad62f5ad5370862c5a92b 100644
--- a/Rendering/SceneGraph/vtkCameraNode.h
+++ b/Rendering/SceneGraph/vtkCameraNode.h
@@ -25,6 +25,7 @@
 #include "vtkRenderingSceneGraphModule.h" // For export macro
 #include "vtkViewNode.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGSCENEGRAPH_EXPORT vtkCameraNode : public vtkViewNode
 {
 public:
@@ -41,4 +42,5 @@ private:
   void operator=(const vtkCameraNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/SceneGraph/vtkLightNode.cxx b/Rendering/SceneGraph/vtkLightNode.cxx
index 852eaac9eff70462f509c304396894c9b1bc33db..c29cccdec2d9a92e57eeb2df319543e927c1a5a2 100644
--- a/Rendering/SceneGraph/vtkLightNode.cxx
+++ b/Rendering/SceneGraph/vtkLightNode.cxx
@@ -18,6 +18,7 @@
 #include "vtkLight.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkLightNode);
 
 //------------------------------------------------------------------------------
@@ -31,3 +32,4 @@ void vtkLightNode::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/SceneGraph/vtkLightNode.h b/Rendering/SceneGraph/vtkLightNode.h
index 28c47c2b9934606667c075c22f9a9273400ccf0e..fdc8d1970538f515674a73ac26541efc6c9e2f94 100644
--- a/Rendering/SceneGraph/vtkLightNode.h
+++ b/Rendering/SceneGraph/vtkLightNode.h
@@ -25,6 +25,7 @@
 #include "vtkRenderingSceneGraphModule.h" // For export macro
 #include "vtkViewNode.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGSCENEGRAPH_EXPORT vtkLightNode : public vtkViewNode
 {
 public:
@@ -41,4 +42,5 @@ private:
   void operator=(const vtkLightNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/SceneGraph/vtkMapperNode.cxx b/Rendering/SceneGraph/vtkMapperNode.cxx
index 44f9042bd5b659db24a96f16e833f68b89c06c6b..b05615011e94b7a2eddf663c3d794e185c0c832e 100644
--- a/Rendering/SceneGraph/vtkMapperNode.cxx
+++ b/Rendering/SceneGraph/vtkMapperNode.cxx
@@ -30,6 +30,7 @@
 #include "vtkProperty.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkMapperNode);
 
 //------------------------------------------------------------------------------
@@ -134,3 +135,4 @@ vtkAbstractArray* vtkMapperNode::GetArrayToProcess(vtkDataSet* input, int& cellF
 
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/SceneGraph/vtkMapperNode.h b/Rendering/SceneGraph/vtkMapperNode.h
index ee1b5c09f00e0001dce9d950a3fc767d6b4cc3d7..5ba7a8187fd7527fca89052876dc93205b3c2d2a 100644
--- a/Rendering/SceneGraph/vtkMapperNode.h
+++ b/Rendering/SceneGraph/vtkMapperNode.h
@@ -27,6 +27,7 @@
 
 #include <vector> //for results
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractArray;
 class vtkDataSet;
 class vtkMapper;
@@ -50,4 +51,5 @@ private:
   void operator=(const vtkMapperNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/SceneGraph/vtkPolyDataMapperNode.cxx b/Rendering/SceneGraph/vtkPolyDataMapperNode.cxx
index 11700c3e68b4b47130a09e21ad79d7c17d27fc4d..e92329724de02eff9b104b7de7ed989278712bbf 100644
--- a/Rendering/SceneGraph/vtkPolyDataMapperNode.cxx
+++ b/Rendering/SceneGraph/vtkPolyDataMapperNode.cxx
@@ -26,6 +26,7 @@
 #include "vtkProperty.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPolyDataMapperNode);
 
 //------------------------------------------------------------------------------
@@ -423,3 +424,4 @@ void vtkPolyDataMapperNode::MakeConnectivity(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/SceneGraph/vtkPolyDataMapperNode.h b/Rendering/SceneGraph/vtkPolyDataMapperNode.h
index fb8e2c24c6727432afb9949ea0699c6ac79bca80..d80c3ac9c0750c149cb8502058be95afa4966c7a 100644
--- a/Rendering/SceneGraph/vtkPolyDataMapperNode.h
+++ b/Rendering/SceneGraph/vtkPolyDataMapperNode.h
@@ -29,6 +29,7 @@
 
 #include <vector> //for results
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkPolyDataMapper;
 class vtkPolyData;
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkPolyDataMapperNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/SceneGraph/vtkRendererNode.cxx b/Rendering/SceneGraph/vtkRendererNode.cxx
index 797e89fdcb0b71548f6f7b70af978bb7b7737dd0..94cde77d23c086eca5dd34ecc73ad96ac09c7452 100644
--- a/Rendering/SceneGraph/vtkRendererNode.cxx
+++ b/Rendering/SceneGraph/vtkRendererNode.cxx
@@ -27,6 +27,7 @@
 #include "vtkRenderer.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRendererNode);
 
 //------------------------------------------------------------------------------
@@ -77,3 +78,4 @@ void vtkRendererNode::Build(bool prepass)
     this->RemoveUnusedNodes();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/SceneGraph/vtkRendererNode.h b/Rendering/SceneGraph/vtkRendererNode.h
index f4fdd09d2531e4ed28487c3e134a5f18e78a2b88..37f830feb4a4e8c4fc8cbd31c667f1551511bf5d 100644
--- a/Rendering/SceneGraph/vtkRendererNode.h
+++ b/Rendering/SceneGraph/vtkRendererNode.h
@@ -25,6 +25,7 @@
 #include "vtkRenderingSceneGraphModule.h" // For export macro
 #include "vtkViewNode.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCollection;
 
 class VTKRENDERINGSCENEGRAPH_EXPORT vtkRendererNode : public vtkViewNode
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkRendererNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/SceneGraph/vtkViewNode.cxx b/Rendering/SceneGraph/vtkViewNode.cxx
index 1f1f7fae80afd4aa7e25d4b6cb22d8aa61f52c5d..ed8a5163ea02213cd703ccf00234d1d2937c804d 100644
--- a/Rendering/SceneGraph/vtkViewNode.cxx
+++ b/Rendering/SceneGraph/vtkViewNode.cxx
@@ -20,6 +20,7 @@
 #include "vtkViewNodeFactory.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 const char* vtkViewNode::operation_type_strings[] = { "noop", "build", "synchronize", "render",
   nullptr };
 
@@ -276,3 +277,4 @@ vtkViewNode* vtkViewNode::GetFirstChildOfType(const char* type)
   }
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/SceneGraph/vtkViewNode.h b/Rendering/SceneGraph/vtkViewNode.h
index 0e3a424b706af726cd5a8c23165762d18d4f3244..19c38f897daa32ff715ef315cfe3370685e0fb04 100644
--- a/Rendering/SceneGraph/vtkViewNode.h
+++ b/Rendering/SceneGraph/vtkViewNode.h
@@ -32,6 +32,7 @@
 #include <list>                           // for ivar
 #include <map>                            // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCollection;
 class vtkViewNodeFactory;
 
@@ -188,4 +189,5 @@ private:
   void operator=(const vtkViewNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/SceneGraph/vtkViewNodeFactory.cxx b/Rendering/SceneGraph/vtkViewNodeFactory.cxx
index ebcf9c5206ae3e5d4107e35cd353bdf9382166fb..321a648b7e6775dfee6569ad7bd84cb0ef1f10d2 100644
--- a/Rendering/SceneGraph/vtkViewNodeFactory.cxx
+++ b/Rendering/SceneGraph/vtkViewNodeFactory.cxx
@@ -20,6 +20,7 @@
 #include <string>
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 class vtkViewNodeFactory::vtkInternals
 {
 public:
@@ -110,3 +111,4 @@ void vtkViewNodeFactory::RegisterOverride(const char* name, vtkViewNode* (*func)
 {
   this->Internals->Overrides[name] = func;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/SceneGraph/vtkViewNodeFactory.h b/Rendering/SceneGraph/vtkViewNodeFactory.h
index 9427ab8e7aaa2b2dfd1ff44d8a39f4c31df87eb6..70af9c656bfdcb706ab53dad444b8e60e263bb47 100644
--- a/Rendering/SceneGraph/vtkViewNodeFactory.h
+++ b/Rendering/SceneGraph/vtkViewNodeFactory.h
@@ -28,6 +28,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingSceneGraphModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkViewNode;
 
 class VTKRENDERINGSCENEGRAPH_EXPORT vtkViewNodeFactory : public vtkObject
@@ -60,4 +61,5 @@ private:
   vtkInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/SceneGraph/vtkVolumeMapperNode.cxx b/Rendering/SceneGraph/vtkVolumeMapperNode.cxx
index f71091fac96de282cf74e6551000bafde0b16acc..65295a7ef28fa0325f0c4f5af1de6e158ff74a89 100644
--- a/Rendering/SceneGraph/vtkVolumeMapperNode.cxx
+++ b/Rendering/SceneGraph/vtkVolumeMapperNode.cxx
@@ -25,6 +25,7 @@
 #include "vtkProperty.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVolumeMapperNode);
 
 //------------------------------------------------------------------------------
@@ -38,3 +39,4 @@ void vtkVolumeMapperNode::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/SceneGraph/vtkVolumeMapperNode.h b/Rendering/SceneGraph/vtkVolumeMapperNode.h
index fe6c70d2bc59cb2b63d8073dbc0ae01bb753eb59..b921c8f58db033b5b523d5dcd7b683f02613416b 100644
--- a/Rendering/SceneGraph/vtkVolumeMapperNode.h
+++ b/Rendering/SceneGraph/vtkVolumeMapperNode.h
@@ -29,6 +29,7 @@
 
 #include <vector> //for results
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkVolumeMapper;
 class vtkPolyData;
@@ -49,4 +50,5 @@ private:
   void operator=(const vtkVolumeMapperNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/SceneGraph/vtkVolumeNode.cxx b/Rendering/SceneGraph/vtkVolumeNode.cxx
index 9ab364cbb9f187d1a123c3e8167258a681397dde..3724083225003b4544e3616c350b33bdfa205c30 100644
--- a/Rendering/SceneGraph/vtkVolumeNode.cxx
+++ b/Rendering/SceneGraph/vtkVolumeNode.cxx
@@ -27,6 +27,7 @@
 #include "vtkVolume.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVolumeNode);
 
 //------------------------------------------------------------------------------
@@ -61,3 +62,4 @@ void vtkVolumeNode::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/SceneGraph/vtkVolumeNode.h b/Rendering/SceneGraph/vtkVolumeNode.h
index 331c9f6de1966171c4899a585818f158b75cc934..61b6c31bd6b0a84e57b5ff6d0c708384db97ef0a 100644
--- a/Rendering/SceneGraph/vtkVolumeNode.h
+++ b/Rendering/SceneGraph/vtkVolumeNode.h
@@ -27,6 +27,7 @@
 #include "vtkRenderingSceneGraphModule.h" // For export macro
 #include "vtkViewNode.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGSCENEGRAPH_EXPORT vtkVolumeNode : public vtkViewNode
 {
 public:
@@ -48,4 +49,5 @@ private:
   void operator=(const vtkVolumeNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/SceneGraph/vtkWindowNode.cxx b/Rendering/SceneGraph/vtkWindowNode.cxx
index cf77d88cd4187ec0b899ebfa763010a8716aa270..e9534ef0ae476742f5e254ec12e482dc2b07a001 100644
--- a/Rendering/SceneGraph/vtkWindowNode.cxx
+++ b/Rendering/SceneGraph/vtkWindowNode.cxx
@@ -24,6 +24,7 @@
 #include "vtkUnsignedCharArray.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWindowNode);
 
 //------------------------------------------------------------------------------
@@ -117,3 +118,4 @@ void vtkWindowNode::Synchronize(bool prepass)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/SceneGraph/vtkWindowNode.h b/Rendering/SceneGraph/vtkWindowNode.h
index 1c76bf9041a55917f0574f47a0d671a7d09620cc..35d83f15148f1f97b65d6f05f51c3928253f4681 100644
--- a/Rendering/SceneGraph/vtkWindowNode.h
+++ b/Rendering/SceneGraph/vtkWindowNode.h
@@ -25,6 +25,7 @@
 #include "vtkRenderingSceneGraphModule.h" // For export macro
 #include "vtkViewNode.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 class vtkFloatArray;
 
@@ -77,4 +78,5 @@ private:
   void operator=(const vtkWindowNode&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Tk/vtkCocoaTkUtilities.h b/Rendering/Tk/vtkCocoaTkUtilities.h
index 4ab0a379746b72271070199749919d3b59ceee59..6527ca1c7f79b650707aa198ce46e5cd5ce504e0 100644
--- a/Rendering/Tk/vtkCocoaTkUtilities.h
+++ b/Rendering/Tk/vtkCocoaTkUtilities.h
@@ -36,6 +36,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include "vtkObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 struct Tk_Window_;
 
 class vtkCocoaTkUtilities : public vtkObject
@@ -60,5 +61,6 @@ private:
   void operator=(const vtkCocoaTkUtilities&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkCocoaTkUtilities.h
diff --git a/Rendering/Tk/vtkPythonTkWidgetsInit.cxx b/Rendering/Tk/vtkPythonTkWidgetsInit.cxx
index bb74a92e08ed90656cc43d8dd1d7d24d6ba1c59e..124b46e321f41326988892b5a3ad9f11db9fb86d 100644
--- a/Rendering/Tk/vtkPythonTkWidgetsInit.cxx
+++ b/Rendering/Tk/vtkPythonTkWidgetsInit.cxx
@@ -23,6 +23,7 @@
 //------------------------------------------------------------------------------
 // Vtkrenderingtk_Init
 // Called upon system startup to create the widget commands.
+VTK_ABI_NAMESPACE_BEGIN
 extern "C"
 {
   VTK_EXPORT int Vtkrenderingtk_Init(Tcl_Interp* interp);
@@ -56,3 +57,4 @@ int Vtkrenderingtk_Init(Tcl_Interp* interp)
     return TCL_ERROR;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Tk/vtkTclUtil.h b/Rendering/Tk/vtkTclUtil.h
index 24ade38d709a342e43e327f6a1b80bf0f553c4b7..7c6d9f94e5b7948c26c14cb0cdf049ba14440d1e 100644
--- a/Rendering/Tk/vtkTclUtil.h
+++ b/Rendering/Tk/vtkTclUtil.h
@@ -26,6 +26,7 @@
 #define VTKTCL_EXPORT
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 extern VTKTCL_EXPORT void vtkTclUpdateCommand(Tcl_Interp* interp, char* name, vtkObject* obj);
 
 extern VTKTCL_EXPORT void vtkTclDeleteObjectFromHash(
@@ -103,5 +104,6 @@ extern VTKTCL_EXPORT void vtkTclApplicationInitExecutable(int argc, const char*
 extern VTKTCL_EXPORT void vtkTclApplicationInitTclTk(
   Tcl_Interp* interp, const char* const relative_dirs[]);
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkTclUtil.h
diff --git a/Rendering/Tk/vtkTkAppInitConfigure.h.in b/Rendering/Tk/vtkTkAppInitConfigure.h.in
index 3e0dec7da27dacc24aee727cfbfdd162da1011a7..aab32b253197a1c851b356a8b2f2ec6bd6d6aebe 100644
--- a/Rendering/Tk/vtkTkAppInitConfigure.h.in
+++ b/Rendering/Tk/vtkTkAppInitConfigure.h.in
@@ -13,6 +13,8 @@
 /* Where the VTK Tcl packages can be found */
 #define VTK_INSTALL_TCL_DIR "@VTK_INSTALL_TCL_DIR@"
 
+VTK_ABI_NAMESPACE_BEGIN
 @VTK_EXTRA_TCL_WRAPPING_CODE@
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Tk/vtkTkImageViewerWidget.cxx b/Rendering/Tk/vtkTkImageViewerWidget.cxx
index 1810958aa9aaecea9c121235a18add9f62977c73..f97f584849f37546b085f59ac350dbd25a6e1059 100644
--- a/Rendering/Tk/vtkTkImageViewerWidget.cxx
+++ b/Rendering/Tk/vtkTkImageViewerWidget.cxx
@@ -447,6 +447,8 @@ int Vtktkimageviewerwidget_Init(Tcl_Interp* interp)
 // The Xwindows version follows after this
 #ifdef _WIN32
 
+namespace
+{
 LRESULT APIENTRY vtkTkImageViewerWidgetProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 {
   LRESULT rval;
@@ -541,6 +543,7 @@ LRESULT APIENTRY vtkTkImageViewerWidgetProc(HWND hWnd, UINT message, WPARAM wPar
   vtkSetWindowLong(hWnd, vtkGWL_WNDPROC, (vtkLONG)vtkTkImageViewerWidgetProc);
   return rval;
 }
+}
 
 //------------------------------------------------------------------------------
 // Creates a ImageViewer window and forces Tk to use the window.
diff --git a/Rendering/Tk/vtkTkImageViewerWidget.h b/Rendering/Tk/vtkTkImageViewerWidget.h
index bc6b3685e860decdda63b091012c3fdef72f1abf..248a02e716c309633bf219f20cc96ea936c1fdc1 100644
--- a/Rendering/Tk/vtkTkImageViewerWidget.h
+++ b/Rendering/Tk/vtkTkImageViewerWidget.h
@@ -38,6 +38,7 @@
 #endif
 #include "vtkWindows.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkTkImageViewerWidget
 {
   Tk_Window TkWin;    /* Tk window structure */
@@ -51,5 +52,6 @@ struct vtkTkImageViewerWidget
 #endif
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkTkImageViewerWidget.h
diff --git a/Rendering/Tk/vtkTkInternals.h.in b/Rendering/Tk/vtkTkInternals.h.in
index b0b4b7d63288c3f6aba2265009834941c6e990ec..9fb67a9095fb2e1e7889c8234f526fb4851d6bc5 100644
--- a/Rendering/Tk/vtkTkInternals.h.in
+++ b/Rendering/Tk/vtkTkInternals.h.in
@@ -24,12 +24,16 @@
 // #include "tkInt.h"
 #ifdef _WIN32
 #ifdef  __cplusplus
+VTK_ABI_NAMESPACE_BEGIN
 extern "C"
 {
+VTK_ABI_NAMESPACE_END
 #endif
 #include "tkWinInt.h"
 #ifdef  __cplusplus
+VTK_ABI_NAMESPACE_BEGIN
 }
+VTK_ABI_NAMESPACE_END
 #endif
 #endif
 
diff --git a/Rendering/Tk/vtkTkRenderWidget.h b/Rendering/Tk/vtkTkRenderWidget.h
index 6461279fe352c97c87bc6d6bb85bffd48530658f..531155eac92f4896bce16bfa93189c4500788735 100644
--- a/Rendering/Tk/vtkTkRenderWidget.h
+++ b/Rendering/Tk/vtkTkRenderWidget.h
@@ -45,6 +45,7 @@
 #include "vtkTclUtil.h"
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkTkRenderWidget
 {
   Tk_Window TkWin;    /* Tk window structure */
@@ -58,5 +59,6 @@ struct vtkTkRenderWidget
 #endif
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkTkRenderWidget.h
diff --git a/Rendering/UI/vtkAndroidRenderWindowInteractor.cxx b/Rendering/UI/vtkAndroidRenderWindowInteractor.cxx
index 370974bef41719ab8359244d8e8f415081f8a029..bbfb76a851c9f7798133030cf6c60909b774a394 100644
--- a/Rendering/UI/vtkAndroidRenderWindowInteractor.cxx
+++ b/Rendering/UI/vtkAndroidRenderWindowInteractor.cxx
@@ -31,6 +31,7 @@
 #define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "VTK", __VA_ARGS__))
 #define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "VTK", __VA_ARGS__))
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAndroidRenderWindowInteractor);
 
 void (*vtkAndroidRenderWindowInteractor::ClassExitMethod)(void*) = (void (*)(void*)) nullptr;
@@ -684,3 +685,4 @@ void vtkAndroidRenderWindowInteractor::ExitCallback()
 
   this->TerminateApp();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/UI/vtkAndroidRenderWindowInteractor.h b/Rendering/UI/vtkAndroidRenderWindowInteractor.h
index 2006035f35ebc7c394893457475415a9ef2ffb93..e6f4cb3f25d2c26b2653b2e8a3789f167aff35a1 100644
--- a/Rendering/UI/vtkAndroidRenderWindowInteractor.h
+++ b/Rendering/UI/vtkAndroidRenderWindowInteractor.h
@@ -33,6 +33,7 @@
 #include "vtkRenderWindowInteractor.h"
 #include "vtkRenderingUIModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 struct AInputEvent;
 
 class VTKRENDERINGUI_EXPORT vtkAndroidRenderWindowInteractor : public vtkRenderWindowInteractor
@@ -164,4 +165,5 @@ private:
   void operator=(const vtkAndroidRenderWindowInteractor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/UI/vtkCocoaRenderWindowInteractor.h b/Rendering/UI/vtkCocoaRenderWindowInteractor.h
index 8922bacc5900652ff339b5bb481c84e3378f9df7..1d6a4e681604b06044698ce18fd6a1c7b065ac8a 100644
--- a/Rendering/UI/vtkCocoaRenderWindowInteractor.h
+++ b/Rendering/UI/vtkCocoaRenderWindowInteractor.h
@@ -37,9 +37,12 @@
 #include "vtkRenderingUIModule.h" // For export macro
 #include "vtkTDxConfigure.h"      // defines VTK_USE_TDX
 #ifdef VTK_USE_TDX
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTDxMacDevice;
+VTK_ABI_NAMESPACE_END
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGUI_EXPORT vtkCocoaRenderWindowInteractor : public vtkRenderWindowInteractor
 {
 public:
@@ -168,4 +171,5 @@ private:
   void* CocoaManager; // Really an NSMutableDictionary*
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/UI/vtkGenericRenderWindowInteractor.cxx b/Rendering/UI/vtkGenericRenderWindowInteractor.cxx
index 5cf86d7b1bfdc52df5947e4f4f5b027917db59e8..c0a288051642890f5b9cf7076ef4fe6df46c812d 100644
--- a/Rendering/UI/vtkGenericRenderWindowInteractor.cxx
+++ b/Rendering/UI/vtkGenericRenderWindowInteractor.cxx
@@ -16,6 +16,7 @@
 #include "vtkCommand.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGenericRenderWindowInteractor);
 
 //------------------------------------------------------------------
@@ -79,3 +80,4 @@ void vtkGenericRenderWindowInteractor::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "TimerEventResetsTimer: " << this->TimerEventResetsTimer << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/UI/vtkGenericRenderWindowInteractor.h b/Rendering/UI/vtkGenericRenderWindowInteractor.h
index 6fdefef7ba72d7a34eb32d9a9132a6ebf1e766df..0ade4a35f0a14d37baf40c9f9095cf2b3f0e0592 100644
--- a/Rendering/UI/vtkGenericRenderWindowInteractor.h
+++ b/Rendering/UI/vtkGenericRenderWindowInteractor.h
@@ -29,6 +29,7 @@
 #include "vtkRenderWindowInteractor.h"
 #include "vtkRenderingUIModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGUI_EXPORT vtkGenericRenderWindowInteractor : public vtkRenderWindowInteractor
 {
 public:
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkGenericRenderWindowInteractor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/UI/vtkIOSRenderWindowInteractor.h b/Rendering/UI/vtkIOSRenderWindowInteractor.h
index 64e40b7a03b3d41ed1a6373956d5e00fc3b92cb3..ef60a8b95787710c027065b42ed89f690d6a24a4 100644
--- a/Rendering/UI/vtkIOSRenderWindowInteractor.h
+++ b/Rendering/UI/vtkIOSRenderWindowInteractor.h
@@ -32,6 +32,7 @@
 #include "vtkRenderWindowInteractor.h"
 #include "vtkRenderingUIModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGUI_EXPORT vtkIOSRenderWindowInteractor : public vtkRenderWindowInteractor
 {
 public:
@@ -149,4 +150,5 @@ private:
   void* IOSManager; // Really an NSMutableDictionary*
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/UI/vtkSDL2RenderWindowInteractor.cxx b/Rendering/UI/vtkSDL2RenderWindowInteractor.cxx
index 15cf9a85cd82e283a69c97c2ae007df0caeea872..647622ee92123509b93895f2996db13a5a096c09 100644
--- a/Rendering/UI/vtkSDL2RenderWindowInteractor.cxx
+++ b/Rendering/UI/vtkSDL2RenderWindowInteractor.cxx
@@ -32,6 +32,7 @@
 #include "vtkCommand.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSDL2RenderWindowInteractor);
 
 //------------------------------------------------------------------------------
@@ -360,3 +361,4 @@ void vtkSDL2RenderWindowInteractor::ExitCallback()
 
   this->TerminateApp();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/UI/vtkSDL2RenderWindowInteractor.h b/Rendering/UI/vtkSDL2RenderWindowInteractor.h
index 55a429ae09e8f580bf455073e147418d2107fac9..1e5db75650060339e948090b752dd9087f5ba8ca 100644
--- a/Rendering/UI/vtkSDL2RenderWindowInteractor.h
+++ b/Rendering/UI/vtkSDL2RenderWindowInteractor.h
@@ -26,6 +26,7 @@
 #include "vtkRenderingUIModule.h" // For export macro
 #include <map>                    // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGUI_EXPORT vtkSDL2RenderWindowInteractor : public vtkRenderWindowInteractor
 {
 public:
@@ -98,4 +99,5 @@ private:
   void operator=(const vtkSDL2RenderWindowInteractor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/UI/vtkWin32HardwareWindow.cxx b/Rendering/UI/vtkWin32HardwareWindow.cxx
index cb8e26fe93dc760ad4633fe5ab5d5bdc13a6dbfe..b1a481f46fe409d688630554bcb212a16a74ee6d 100644
--- a/Rendering/UI/vtkWin32HardwareWindow.cxx
+++ b/Rendering/UI/vtkWin32HardwareWindow.cxx
@@ -19,6 +19,7 @@
 #include "vtkObjectFactory.h"
 
 //============================================================================
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWin32HardwareWindow);
 
 //------------------------------------------------------------------------------
@@ -244,3 +245,4 @@ void vtkWin32HardwareWindow::SetPosition(int x, int y)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/UI/vtkWin32HardwareWindow.h b/Rendering/UI/vtkWin32HardwareWindow.h
index 68f67c598d5c6631bd479d1487f99173f1c81d25..efe58460fef2c82780972ba69c0480642d7702c1 100644
--- a/Rendering/UI/vtkWin32HardwareWindow.h
+++ b/Rendering/UI/vtkWin32HardwareWindow.h
@@ -24,6 +24,7 @@
 #include "vtkRenderingUIModule.h" // For export macro
 #include "vtkWindows.h"           // For windows API
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGUI_EXPORT vtkWin32HardwareWindow : public vtkHardwareWindow
 {
 public:
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkWin32HardwareWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/UI/vtkWin32RenderWindowInteractor.cxx b/Rendering/UI/vtkWin32RenderWindowInteractor.cxx
index 694b61d80801e2926c42e28a9c3ded45abf0eb2a..52bd151e1e12e27b54d15ab140d8b0787b5864ed 100644
--- a/Rendering/UI/vtkWin32RenderWindowInteractor.cxx
+++ b/Rendering/UI/vtkWin32RenderWindowInteractor.cxx
@@ -49,10 +49,12 @@
 // sees it in the friend decl in vtkWin32RenderWindowInteractor, but
 // GCC needs to see the declaration beforehand. It has to do with the
 // CALLBACK attribute.
+VTK_ABI_NAMESPACE_BEGIN
 VTKRENDERINGUI_EXPORT LRESULT CALLBACK vtkHandleMessage(HWND, UINT, WPARAM, LPARAM);
 VTKRENDERINGUI_EXPORT LRESULT CALLBACK vtkHandleMessage2(
   HWND, UINT, WPARAM, LPARAM, class vtkWin32RenderWindowInteractor*);
 
+VTK_ABI_NAMESPACE_END
 #include "vtkActor.h"
 #include "vtkCommand.h"
 #include "vtkObjectFactory.h"
@@ -79,6 +81,7 @@ typedef bool(WINAPI* RegisterTouchWindowType)(HWND, ULONG);
 typedef bool(WINAPI* GetTouchInputInfoType)(HTOUCHINPUT, UINT, PTOUCHINPUT, int);
 typedef bool(WINAPI* CloseTouchInputHandleType)(HTOUCHINPUT);
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWin32RenderWindowInteractor);
 
 void (*vtkWin32RenderWindowInteractor::ClassExitMethod)(void*) = (void (*)(void*)) nullptr;
@@ -1056,3 +1059,4 @@ void vtkWin32RenderWindowInteractor::ExitCallback()
 
   this->TerminateApp();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/UI/vtkWin32RenderWindowInteractor.h b/Rendering/UI/vtkWin32RenderWindowInteractor.h
index d543a9735b570defb8f38866ff9443c5f7bf2e15..4fb018357146e566586ee39ed36fdbcb50737089 100644
--- a/Rendering/UI/vtkWin32RenderWindowInteractor.h
+++ b/Rendering/UI/vtkWin32RenderWindowInteractor.h
@@ -36,9 +36,12 @@
 
 #include "vtkTDxConfigure.h" // defines VTK_USE_TDX
 #ifdef VTK_USE_TDX
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTDxWinDevice;
+VTK_ABI_NAMESPACE_END
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGUI_EXPORT vtkWin32RenderWindowInteractor : public vtkRenderWindowInteractor
 {
 public:
@@ -189,4 +192,5 @@ private:
   void operator=(const vtkWin32RenderWindowInteractor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/UI/vtkXRenderWindowInteractor.cxx b/Rendering/UI/vtkXRenderWindowInteractor.cxx
index 9c760d5013d23556512f2b1a4c0045b708b4487f..2fe7c73d5bf48e85194356d3e341a64aee6786a8 100644
--- a/Rendering/UI/vtkXRenderWindowInteractor.cxx
+++ b/Rendering/UI/vtkXRenderWindowInteractor.cxx
@@ -43,6 +43,7 @@
 #include <set>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkXRenderWindowInteractor);
 
 template <int EventType>
@@ -972,3 +973,4 @@ void vtkXRenderWindowInteractor::GetMousePosition(int* x, int* y)
 // {
 //   vtkXRenderWindowInteractorCallback(w, client_data, event, ctd);
 // }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/UI/vtkXRenderWindowInteractor.h b/Rendering/UI/vtkXRenderWindowInteractor.h
index 3761aacae0a51b73474d89875cb710a0cc3e8bc4..3be7e62707086d1e79630e1028118d1ae3236570 100644
--- a/Rendering/UI/vtkXRenderWindowInteractor.h
+++ b/Rendering/UI/vtkXRenderWindowInteractor.h
@@ -36,6 +36,7 @@
 #include "vtkRenderingUIModule.h" // For export macro
 #include <X11/Xlib.h>             // Needed for X types in the public interface
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkXRenderWindowInteractorInternals;
 
@@ -154,4 +155,5 @@ private:
   void operator=(const vtkXRenderWindowInteractor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkOpenGLAvatar.cxx b/Rendering/VR/vtkOpenGLAvatar.cxx
index 2a0c5e642e122cfcbb25b6309e46f32415a8c63b..e9a291c57f982c75df60954d4f66555b16dec137 100644
--- a/Rendering/VR/vtkOpenGLAvatar.cxx
+++ b/Rendering/VR/vtkOpenGLAvatar.cxx
@@ -40,6 +40,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 void setOrientation(vtkTransform* trans, const double* orientation)
@@ -526,3 +527,4 @@ vtkTextProperty* vtkOpenGLAvatar::GetLabelTextProperty()
 {
   return this->LabelActor->GetTextProperty();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkOpenGLAvatar.h b/Rendering/VR/vtkOpenGLAvatar.h
index abed2986ec27e87e0271f935b8aaa6937403e27d..01b446be3eb1d699deca879d68a9593e910d7f38 100644
--- a/Rendering/VR/vtkOpenGLAvatar.h
+++ b/Rendering/VR/vtkOpenGLAvatar.h
@@ -27,6 +27,7 @@
 #include "vtkNew.h"               // for ivars
 #include "vtkRenderingVRModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLActor;
 class vtkOpenGLPolyDataMapper;
 class vtkOpenGLRenderer;
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkOpenGLAvatar&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRCamera.cxx b/Rendering/VR/vtkVRCamera.cxx
index 044d30b5be846aa6bc269672c3c91942079b02dd..5b9cd2ace9c9c9004e09b17e4a8ab70eb561eca6 100644
--- a/Rendering/VR/vtkVRCamera.cxx
+++ b/Rendering/VR/vtkVRCamera.cxx
@@ -18,6 +18,7 @@
 #include "vtkVRRenderWindowInteractor.h"
 #include "vtkVectorOperators.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkVRCamera::vtkVRCamera() = default;
 vtkVRCamera::~vtkVRCamera() = default;
 
@@ -174,3 +175,4 @@ void vtkVRCamera::SetCameraFromDeviceToWorldMatrix(vtkMatrix4x4* mat, double dis
   this->SetFocalPoint(
     ele[3] - distance * ele[2], ele[7] - distance * ele[6], ele[11] - distance * ele[10]);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRCamera.h b/Rendering/VR/vtkVRCamera.h
index 85bd21ac6030b21d742c60bb5f702a37866db843..48ac9fc40b4c02dfa411216d4a62268e84f7ea2a 100644
--- a/Rendering/VR/vtkVRCamera.h
+++ b/Rendering/VR/vtkVRCamera.h
@@ -27,6 +27,7 @@
 #include "vtkOpenGLCamera.h"
 #include "vtkRenderingVRModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkVRRenderWindow;
 
@@ -98,4 +99,5 @@ private:
   void operator=(const vtkVRCamera&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRCollaborationClient.cxx b/Rendering/VR/vtkVRCollaborationClient.cxx
index 8e9935812eebe49282ac16b384530a21e4d7dfd5..1337e6c492df1754bece69439bfb75f1e0f0dc23 100644
--- a/Rendering/VR/vtkVRCollaborationClient.cxx
+++ b/Rendering/VR/vtkVRCollaborationClient.cxx
@@ -29,6 +29,7 @@
 
 #include <sstream>
 #include <zmq.h>
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 const double RAY_LENGTH = 200.0;    // in meters
@@ -1180,3 +1181,4 @@ void vtkVRCollaborationClient::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRCollaborationClient.h b/Rendering/VR/vtkVRCollaborationClient.h
index 3abd3c70f96878dbb1fd07c4e6c0e4024cbe88e8..18b55153f8d1331360c32e7112b74cde45e6eb19 100644
--- a/Rendering/VR/vtkVRCollaborationClient.h
+++ b/Rendering/VR/vtkVRCollaborationClient.h
@@ -32,6 +32,7 @@
 #include <string>                          // for ivars
 #include <vector>                          // for ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkOpenGLAvatar;
 class vtkOpenGLRenderer;
@@ -189,4 +190,5 @@ protected:
   vtkVRCollaborationClientInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRControlsHelper.cxx b/Rendering/VR/vtkVRControlsHelper.cxx
index aaa8a77c163728dd7365550c87566f4148bd44fe..1bb820bc6905cd977a083f26cbfab219af823b9a 100644
--- a/Rendering/VR/vtkVRControlsHelper.cxx
+++ b/Rendering/VR/vtkVRControlsHelper.cxx
@@ -27,6 +27,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkVRRenderWindow.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkVRControlsHelper::vtkVRControlsHelper()
 {
   // The text
@@ -449,3 +450,4 @@ vtkRenderer* vtkVRControlsHelper::GetRenderer()
 {
   return this->Renderer;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRControlsHelper.h b/Rendering/VR/vtkVRControlsHelper.h
index 69f75a9f7226ba8b9d402b8141d61eb76b0ae2cb..dc7fc2acdd8f632268a1dcd267313885139ab015 100644
--- a/Rendering/VR/vtkVRControlsHelper.h
+++ b/Rendering/VR/vtkVRControlsHelper.h
@@ -31,6 +31,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkWeakPointer.h"       // needed for vtkWeakPointer iVar.
 #include <string>                 // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkCallbackCommand;
 class vtkLineSource;
@@ -159,4 +160,5 @@ private:
   void operator=(const vtkVRControlsHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRFollower.cxx b/Rendering/VR/vtkVRFollower.cxx
index 061ac6695fd15f5cd4d21e6c77b54c4a3a3d2ec5..ad0d0cdb199899f9f954675a015728a53d87c268 100644
--- a/Rendering/VR/vtkVRFollower.cxx
+++ b/Rendering/VR/vtkVRFollower.cxx
@@ -19,6 +19,7 @@
 #include "vtkTransform.h"
 #include "vtkVRRenderWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVRFollower);
 
 //------------------------------------------------------------------------------
@@ -139,3 +140,4 @@ void vtkVRFollower::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "LastViewUp: " << this->LastViewUp << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRFollower.h b/Rendering/VR/vtkVRFollower.h
index 1fafd9dc66abfb377348b55b3a255c140c282121..2f6e0a6ae59548548771765e1d914867f368506c 100644
--- a/Rendering/VR/vtkVRFollower.h
+++ b/Rendering/VR/vtkVRFollower.h
@@ -25,6 +25,7 @@
 #include "vtkFollower.h"
 #include "vtkRenderingVRModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGVR_EXPORT vtkVRFollower : public vtkFollower
 {
 public:
@@ -51,4 +52,5 @@ private:
   void operator=(const vtkVRFollower&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRHMDCamera.cxx b/Rendering/VR/vtkVRHMDCamera.cxx
index 93087c96d7a7c2370f489971c58eed847e07e522..e6104934f28bc807a5cd8afac6f3e7dad3855f74 100644
--- a/Rendering/VR/vtkVRHMDCamera.cxx
+++ b/Rendering/VR/vtkVRHMDCamera.cxx
@@ -24,6 +24,7 @@
 #include <cmath>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkVRHMDCamera::vtkVRHMDCamera()
 {
   // approximate for Vive
@@ -186,3 +187,4 @@ void vtkVRHMDCamera::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "PhysicalToProjectionMatrixForRightEye: ";
   this->PhysicalToProjectionMatrixForRightEye->PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRHMDCamera.h b/Rendering/VR/vtkVRHMDCamera.h
index 45b56f09834b8fecc0e957e46784d7251ceffde5..16a21396b3b861fd792539e80958f89047d36196 100644
--- a/Rendering/VR/vtkVRHMDCamera.h
+++ b/Rendering/VR/vtkVRHMDCamera.h
@@ -24,6 +24,7 @@
 #include "vtkRenderingVRModule.h" // For export macro
 #include "vtkVRCamera.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkMatrix4x4;
 
@@ -87,4 +88,5 @@ private:
   void operator=(const vtkVRHMDCamera&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRHardwarePicker.cxx b/Rendering/VR/vtkVRHardwarePicker.cxx
index 2358a6c8f5e15e641139cf44098d9356b16b7204..7d62f50a9a7d48d686c8de2d61e20198fd722ef1 100644
--- a/Rendering/VR/vtkVRHardwarePicker.cxx
+++ b/Rendering/VR/vtkVRHardwarePicker.cxx
@@ -23,6 +23,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkTransform.h"
 #include "vtkVRRenderWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVRHardwarePicker);
 
 vtkSelection* vtkVRHardwarePicker::GetSelection()
@@ -117,3 +118,4 @@ void vtkVRHardwarePicker::PrintSelf(ostream& os, vtkIndent indent)
     this->Selection->PrintSelf(os, indent);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRHardwarePicker.h b/Rendering/VR/vtkVRHardwarePicker.h
index ddee8313789c345c14c1c73e038a8d3ca5bdb555..a6cdea7ac8c4bcc89b30a34cd98eb5534859c4ed 100644
--- a/Rendering/VR/vtkVRHardwarePicker.h
+++ b/Rendering/VR/vtkVRHardwarePicker.h
@@ -30,6 +30,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkRenderingVRModule.h" // For export macro
 #include "vtkSmartPointer.h"      // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSelection;
 
 class VTKRENDERINGVR_EXPORT vtkVRHardwarePicker : public vtkPropPicker
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkVRHardwarePicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRInteractorStyle.cxx b/Rendering/VR/vtkVRInteractorStyle.cxx
index ab7ada9cae273ce80c18a9c36fef8ead5cbace58..a8cbe1f30935c2a395d9a2f94570eaf79cf3ace2 100644
--- a/Rendering/VR/vtkVRInteractorStyle.cxx
+++ b/Rendering/VR/vtkVRInteractorStyle.cxx
@@ -41,6 +41,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkVRRenderWindowInteractor.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkVRInteractorStyle::vtkVRInteractorStyle()
 {
   this->InteractionProps.resize(vtkEventDataNumberOfDevices);
@@ -1499,3 +1500,4 @@ bool vtkVRInteractorStyle::HardwareSelect(vtkEventDataDevice controller, bool ac
 
   return true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRInteractorStyle.h b/Rendering/VR/vtkVRInteractorStyle.h
index 049a1a016f4aa9c03a07168f39c4c80cd0dc88b4..3c37b8c82e7d8bb2cf170fb767a8bbdaf015fa70 100644
--- a/Rendering/VR/vtkVRInteractorStyle.h
+++ b/Rendering/VR/vtkVRInteractorStyle.h
@@ -31,6 +31,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <map>    // for std::map
 #include <vector> // for std::vector
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCallbackCommand;
 class vtkCell;
 class vtkPlane;
@@ -291,4 +292,5 @@ private:
   void operator=(const vtkVRInteractorStyle&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRMenuRepresentation.cxx b/Rendering/VR/vtkVRMenuRepresentation.cxx
index 1dd4eccdacbd5a8c525a49ce3421d46ab8c7ec1b..2834de7d986125de981a4ccf0a1dd3dbd81ab758 100644
--- a/Rendering/VR/vtkVRMenuRepresentation.cxx
+++ b/Rendering/VR/vtkVRMenuRepresentation.cxx
@@ -24,6 +24,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkVRRenderWindow.h"
 #include "vtkWidgetEvent.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVRMenuRepresentation);
 
 class vtkVRMenuRepresentation::InternalElement
@@ -323,3 +324,4 @@ void vtkVRMenuRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "PlacedOrientation: (" << this->PlacedOrientation[0] << ", "
      << this->PlacedOrientation[1] << "," << this->PlacedOrientation[2] << ")\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRMenuRepresentation.h b/Rendering/VR/vtkVRMenuRepresentation.h
index 096441167d7edada3bb6d8380b059f6ab7db3ed8..5767254b4282ffba3383a7d304642a19d163b40a 100644
--- a/Rendering/VR/vtkVRMenuRepresentation.h
+++ b/Rendering/VR/vtkVRMenuRepresentation.h
@@ -32,6 +32,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkWidgetRepresentation.h"
 #include <deque> // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGVR_EXPORT vtkVRMenuRepresentation : public vtkWidgetRepresentation
 {
 public:
@@ -102,4 +103,5 @@ private:
   void operator=(const vtkVRMenuRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRMenuWidget.cxx b/Rendering/VR/vtkVRMenuWidget.cxx
index 7b2444025d73e60dae4d0621711e6852c6c1e40b..8fc447cf5f7d74ce7a2666e72d6d708542d8503f 100644
--- a/Rendering/VR/vtkVRMenuWidget.cxx
+++ b/Rendering/VR/vtkVRMenuWidget.cxx
@@ -22,6 +22,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkWidgetCallbackMapper.h"
 #include "vtkWidgetEvent.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVRMenuWidget);
 
 class vtkVRMenuWidget::InternalElement
@@ -249,3 +250,4 @@ void vtkVRMenuWidget::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "WidgetState: " << this->WidgetState << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRMenuWidget.h b/Rendering/VR/vtkVRMenuWidget.h
index 720eb301c438ced47cddaf8b0f628af08a6bf50f..db66eebdea7ab52be5f4644b5594fe3b93e81a0e 100644
--- a/Rendering/VR/vtkVRMenuWidget.h
+++ b/Rendering/VR/vtkVRMenuWidget.h
@@ -28,6 +28,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkRenderingVRModule.h" // For export macro
 #include <deque>                  // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEventData;
 class vtkVRMenuRepresentation;
 
@@ -117,4 +118,5 @@ private:
   vtkVRMenuWidget(const vtkVRMenuWidget&) = delete;
   void operator=(const vtkVRMenuWidget&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRModel.cxx b/Rendering/VR/vtkVRModel.cxx
index 802a247b0f49d2e7955694ef30e4ff7ca21b2f80..5d35a39be2fcef66dd8021a3667d13bec41817c4 100644
--- a/Rendering/VR/vtkVRModel.cxx
+++ b/Rendering/VR/vtkVRModel.cxx
@@ -30,6 +30,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtk_glew.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkVRModel::vtkVRModel()
 {
   this->Loaded = false;
@@ -178,3 +179,4 @@ void vtkVRModel::SetRayColor(double r, double g, double b)
   float color[] = { static_cast<float>(r), static_cast<float>(g), static_cast<float>(b) };
   this->Ray->SetColor(color);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRModel.h b/Rendering/VR/vtkVRModel.h
index b0b586e59e3d9a7d27cc0b2a794c964a51c21142..88edb83452f906c668807124f972b4d30f377c30 100644
--- a/Rendering/VR/vtkVRModel.h
+++ b/Rendering/VR/vtkVRModel.h
@@ -30,6 +30,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkOpenGLHelper.h"      // ivar
 #include "vtkRenderingVRModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkOpenGLRenderWindow;
 class vtkOpenGLVertexBufferObject;
@@ -89,4 +90,5 @@ private:
   void operator=(const vtkVRModel&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRPanelRepresentation.cxx b/Rendering/VR/vtkVRPanelRepresentation.cxx
index d1fb4588ccdde2fb04a593adb244057e07a6888c..525875f10aa34783403ea6eeaf3dd720b1108457 100644
--- a/Rendering/VR/vtkVRPanelRepresentation.cxx
+++ b/Rendering/VR/vtkVRPanelRepresentation.cxx
@@ -27,6 +27,7 @@ PURPOSE.  See the above copyright notice for more information.
 // TODO
 // - add option to remove crop planes
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVRPanelRepresentation);
 
 //------------------------------------------------------------------------------
@@ -565,3 +566,4 @@ void vtkVRPanelRepresentation::SetText(const char* text)
   this->TextActor->SetInput(this->Text.c_str());
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRPanelRepresentation.h b/Rendering/VR/vtkVRPanelRepresentation.h
index 943170e127b05569c9ddfd38298753996f116311..84a3537fcc9f561d098486751f9f55447eaab2a2 100644
--- a/Rendering/VR/vtkVRPanelRepresentation.h
+++ b/Rendering/VR/vtkVRPanelRepresentation.h
@@ -33,6 +33,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <string> // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkTextActor3D;
 
 class VTKRENDERINGVR_EXPORT vtkVRPanelRepresentation : public vtkWidgetRepresentation
@@ -178,4 +179,5 @@ private:
   void operator=(const vtkVRPanelRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRPanelWidget.cxx b/Rendering/VR/vtkVRPanelWidget.cxx
index 4dbdce647eb78d164e3a8f9501d8ffcf3d7b15e0..1ad8ae2fdd5a6897038899bae5991e9da9380397 100644
--- a/Rendering/VR/vtkVRPanelWidget.cxx
+++ b/Rendering/VR/vtkVRPanelWidget.cxx
@@ -21,6 +21,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkWidgetCallbackMapper.h"
 #include "vtkWidgetEvent.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVRPanelWidget);
 
 //------------------------------------------------------------------------------
@@ -151,3 +152,4 @@ void vtkVRPanelWidget::EndSelectAction3D(vtkAbstractWidget* w)
   self->EndInteraction();
   self->InvokeEvent(vtkCommand::EndInteractionEvent, nullptr);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRPanelWidget.h b/Rendering/VR/vtkVRPanelWidget.h
index 6866ccc4fe00d9449528327850dc880a357cac54..032ae955498a1130bf96ee878bd5d5c8a2f0144b 100644
--- a/Rendering/VR/vtkVRPanelWidget.h
+++ b/Rendering/VR/vtkVRPanelWidget.h
@@ -29,6 +29,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkDeprecation.h"       // For VTK_DEPRECATED_IN_9_2_0
 #include "vtkRenderingVRModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVRPanelRepresentation;
 
 class VTKRENDERINGVR_EXPORT vtkVRPanelWidget : public vtkAbstractWidget
@@ -86,4 +87,5 @@ private:
   vtkVRPanelWidget(const vtkVRPanelWidget&) = delete;
   void operator=(const vtkVRPanelWidget&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRRay.cxx b/Rendering/VR/vtkVRRay.cxx
index a112c577b8e51012c3d69ade1d172e200e13f2b2..b0ba95fb3fb1dd61c0c350fe196a014a625e7351 100644
--- a/Rendering/VR/vtkVRRay.cxx
+++ b/Rendering/VR/vtkVRRay.cxx
@@ -29,6 +29,7 @@ PURPOSE.  See the above copyright notice for more information.
 /*=========================================================================
 vtkVRRay
 =========================================================================*/
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVRRay);
 
 //------------------------------------------------------------------------------
@@ -147,3 +148,4 @@ void vtkVRRay::Render(vtkOpenGLRenderWindow* win, vtkMatrix4x4* poseMatrix)
 
   glDrawArrays(GL_LINES, 0, 6);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRRay.h b/Rendering/VR/vtkVRRay.h
index e5c75a22d69a2ae68a3a213a8484231d405e46d5..1e9d90817d60bbc784f4d3979a3da8b54b8bfd5c 100644
--- a/Rendering/VR/vtkVRRay.h
+++ b/Rendering/VR/vtkVRRay.h
@@ -27,6 +27,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkOpenGLHelper.h"      // ivar
 #include "vtkRenderingVRModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 class vtkRenderWindow;
 class vtkOpenGLVertexBufferObject;
@@ -71,4 +72,5 @@ private:
   void operator=(const vtkVRRay&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRRenderWindow.cxx b/Rendering/VR/vtkVRRenderWindow.cxx
index 1ee95537c2985b13a3214a416f07bd7049499e0a..3956c6523a75b104a8f74bd9da96dbe147af09de 100644
--- a/Rendering/VR/vtkVRRenderWindow.cxx
+++ b/Rendering/VR/vtkVRRenderWindow.cxx
@@ -38,6 +38,7 @@ PURPOSE.  See the above copyright notice for more information.
 #endif
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkVRRenderWindow::vtkVRRenderWindow()
 {
   this->StereoCapableWindow = 1;
@@ -619,3 +620,4 @@ void vtkVRRenderWindow::SetSize(int width, int height)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRRenderWindow.h b/Rendering/VR/vtkVRRenderWindow.h
index 8a32858db73bee08ded860dae6cf80a6018016dc..0383a48c8e5e0c431de5f632713b11f3be698778 100644
--- a/Rendering/VR/vtkVRRenderWindow.h
+++ b/Rendering/VR/vtkVRRenderWindow.h
@@ -60,6 +60,7 @@ PURPOSE.  See the above copyright notice for more information.
 
 #include <vector> // ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCamera;
 class vtkMatrix4x4;
 class vtkVRModel;
@@ -452,4 +453,5 @@ private:
   void operator=(const vtkVRRenderWindow&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRRenderWindowInteractor.cxx b/Rendering/VR/vtkVRRenderWindowInteractor.cxx
index 729d79ea403c2d6cc49a045787d33ec0f01a25aa..68ceabf07cd4a6efb80a222948389584ebdc2983 100644
--- a/Rendering/VR/vtkVRRenderWindowInteractor.cxx
+++ b/Rendering/VR/vtkVRRenderWindowInteractor.cxx
@@ -18,6 +18,7 @@
 #include "vtkRendererCollection.h"
 #include "vtkVRRenderWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 void (*vtkVRRenderWindowInteractor::ClassExitMethod)(void*) = (void (*)(void*)) nullptr;
 void* vtkVRRenderWindowInteractor::ClassExitMethodArg = (void*)nullptr;
 void (*vtkVRRenderWindowInteractor::ClassExitMethodArgDelete)(void*) = (void (*)(void*)) nullptr;
@@ -518,3 +519,4 @@ void vtkVRRenderWindowInteractor::RecognizeComplexGesture(vtkEventDataDevice3D*)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRRenderWindowInteractor.h b/Rendering/VR/vtkVRRenderWindowInteractor.h
index de374f4b27bc64407d11a8078367aef575739714..7c039d6d3737297a678827d78b88f6aa8d6970d5 100644
--- a/Rendering/VR/vtkVRRenderWindowInteractor.h
+++ b/Rendering/VR/vtkVRRenderWindowInteractor.h
@@ -27,6 +27,7 @@
 
 #include <string> // for ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkVRRenderWindow;
 
@@ -188,4 +189,5 @@ private:
   void operator=(const vtkVRRenderWindowInteractor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VR/vtkVRRenderer.cxx b/Rendering/VR/vtkVRRenderer.cxx
index 3e5766c406ff0606a48e61b5403913a33bfaa9c4..1b3c78d70810ffa54c9bc76ce4901d77133cdb47 100644
--- a/Rendering/VR/vtkVRRenderer.cxx
+++ b/Rendering/VR/vtkVRRenderer.cxx
@@ -27,6 +27,7 @@ https://github.com/ValveSoftware/openvr/blob/master/LICENSE
 #include "vtkVRRenderWindow.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkVRRenderer::vtkVRRenderer()
 {
   this->FloorActor->PickableOff();
@@ -330,3 +331,4 @@ void vtkVRRenderer::ResetCameraClippingRange(const double bounds[6])
 
   this->ActiveCamera->SetClippingRange(range[0] * physicalScale, range[1] * physicalScale);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VR/vtkVRRenderer.h b/Rendering/VR/vtkVRRenderer.h
index 2c2c64de7ddb6792d79958c6ecc163cb282db3da..3e85b498b6742820d1c8cfae67225f938fdc7101 100644
--- a/Rendering/VR/vtkVRRenderer.h
+++ b/Rendering/VR/vtkVRRenderer.h
@@ -29,6 +29,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkOpenGLRenderer.h"
 #include "vtkRenderingVRModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 
 class VTKRENDERINGVR_EXPORT vtkVRRenderer : public vtkOpenGLRenderer
@@ -95,4 +96,5 @@ private:
   void operator=(const vtkVRRenderer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkBlockSortHelper.h b/Rendering/Volume/vtkBlockSortHelper.h
index 8a3b41e251be08747a4300f4e192a1daaed04c6f..6b3ea06626476c2660dfa2a2ce4b9b0cc3a4af19 100644
--- a/Rendering/Volume/vtkBlockSortHelper.h
+++ b/Rendering/Volume/vtkBlockSortHelper.h
@@ -32,6 +32,7 @@
 
 namespace vtkBlockSortHelper
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 template <typename T>
 inline void GetBounds(T a, double bds[6])
@@ -404,6 +405,7 @@ inline void Sort(RandomIt bitr, RandomIt eitr, BackToFront<T>& me)
   // copy results to original container
   std::reverse_copy(result.begin(), result.end(), start);
 };
+VTK_ABI_NAMESPACE_END
 }
 
 #endif // vtkBlockSortHelper_h
diff --git a/Rendering/Volume/vtkDirectionEncoder.cxx b/Rendering/Volume/vtkDirectionEncoder.cxx
index 33e49742bef3c43f95f478f98f87bad62c544205..3b5de7b222c4d0621e48b4a4a2259c362e82a627 100644
--- a/Rendering/Volume/vtkDirectionEncoder.cxx
+++ b/Rendering/Volume/vtkDirectionEncoder.cxx
@@ -15,7 +15,9 @@
 #include "vtkDirectionEncoder.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkDirectionEncoder::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkDirectionEncoder.h b/Rendering/Volume/vtkDirectionEncoder.h
index 61560e754e73f83e2d8209f77d97ad0d9ea791a1..6d05761dbf7130d129ee3775c77b553956fa5937 100644
--- a/Rendering/Volume/vtkDirectionEncoder.h
+++ b/Rendering/Volume/vtkDirectionEncoder.h
@@ -36,6 +36,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGVOLUME_EXPORT vtkDirectionEncoder : public vtkObject
 {
 public:
@@ -79,4 +80,5 @@ private:
   void operator=(const vtkDirectionEncoder&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkEncodedGradientEstimator.cxx b/Rendering/Volume/vtkEncodedGradientEstimator.cxx
index 6720761dadb1a6f4cd8961d23620d3e06ec6f423..1f0111fd1d5dcd5290bec52992a0a0cfb787dae2 100644
--- a/Rendering/Volume/vtkEncodedGradientEstimator.cxx
+++ b/Rendering/Volume/vtkEncodedGradientEstimator.cxx
@@ -22,6 +22,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkEncodedGradientEstimator, InputData, vtkImageData);
 
 // Construct a vtkEncodedGradientEstimator with initial values of nullptr for
@@ -333,3 +334,4 @@ void vtkEncodedGradientEstimator::ReportReferences(vtkGarbageCollector* collecto
   this->Superclass::ReportReferences(collector);
   vtkGarbageCollectorReport(collector, this->InputData, "Input");
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkEncodedGradientEstimator.h b/Rendering/Volume/vtkEncodedGradientEstimator.h
index 0a5c29106d41105bef65e8b7f77e931f02dc3367..6038785211ac012a6cb7d377002481f50e4237b7 100644
--- a/Rendering/Volume/vtkEncodedGradientEstimator.h
+++ b/Rendering/Volume/vtkEncodedGradientEstimator.h
@@ -38,6 +38,7 @@
 #include "vtkRenderingVolumeModule.h" // For export macro
 #include "vtkThreads.h"               // for VTK_MAX_THREADS
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkDirectionEncoder;
 class vtkMultiThreader;
@@ -254,4 +255,5 @@ private:
   void operator=(const vtkEncodedGradientEstimator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkEncodedGradientShader.cxx b/Rendering/Volume/vtkEncodedGradientShader.cxx
index f4f02b2c549ad63c304b46667d6a8060c033acea..2cc9648a8c5b77a78bb3ae1fd99653f546e38654 100644
--- a/Rendering/Volume/vtkEncodedGradientShader.cxx
+++ b/Rendering/Volume/vtkEncodedGradientShader.cxx
@@ -28,6 +28,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEncodedGradientShader);
 
 vtkEncodedGradientShader::vtkEncodedGradientShader()
@@ -558,3 +559,4 @@ void vtkEncodedGradientShader::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Zero Normal Specular Intensity: " << this->ZeroNormalSpecularIntensity << endl;
   os << indent << "ActiveComponent: " << this->ActiveComponent << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkEncodedGradientShader.h b/Rendering/Volume/vtkEncodedGradientShader.h
index 65182bf7921c8258382c6a8d9b06bb746e07a677..474e89097b6e0282001ec16e91775d53096e26aa 100644
--- a/Rendering/Volume/vtkEncodedGradientShader.h
+++ b/Rendering/Volume/vtkEncodedGradientShader.h
@@ -36,6 +36,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVolume;
 class vtkRenderer;
 class vtkEncodedGradientEstimator;
@@ -135,4 +136,5 @@ private:
   void operator=(const vtkEncodedGradientShader&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkFiniteDifferenceGradientEstimator.cxx b/Rendering/Volume/vtkFiniteDifferenceGradientEstimator.cxx
index c8e4dbf424b8ed9ce8a7c8b2a905aed798dcd132..5a67a347a091f808d1d0bbee96e5fc40c01865eb 100644
--- a/Rendering/Volume/vtkFiniteDifferenceGradientEstimator.cxx
+++ b/Rendering/Volume/vtkFiniteDifferenceGradientEstimator.cxx
@@ -32,6 +32,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFiniteDifferenceGradientEstimator);
 
 // This is the templated function that actually computes the EncodedNormal
@@ -363,3 +364,4 @@ void vtkFiniteDifferenceGradientEstimator::PrintSelf(ostream& os, vtkIndent inde
 
   os << indent << "Sample spacing in voxels: " << this->SampleSpacingInVoxels << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkFiniteDifferenceGradientEstimator.h b/Rendering/Volume/vtkFiniteDifferenceGradientEstimator.h
index 32ca62151db447eabae0bf3f02265cbbfce7861b..e4ccfe81710e3f2df8d5481d483486d960338e6f 100644
--- a/Rendering/Volume/vtkFiniteDifferenceGradientEstimator.h
+++ b/Rendering/Volume/vtkFiniteDifferenceGradientEstimator.h
@@ -42,6 +42,7 @@
 #include "vtkEncodedGradientEstimator.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGVOLUME_EXPORT vtkFiniteDifferenceGradientEstimator
   : public vtkEncodedGradientEstimator
 {
@@ -81,4 +82,5 @@ private:
   void operator=(const vtkFiniteDifferenceGradientEstimator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkFixedPointRayCastImage.cxx b/Rendering/Volume/vtkFixedPointRayCastImage.cxx
index 96e7b66fedd29a90936e3a38aea5d9a5a2382ae2..7741f283d032e231f4fda176dce0230e0a3c16a3 100644
--- a/Rendering/Volume/vtkFixedPointRayCastImage.cxx
+++ b/Rendering/Volume/vtkFixedPointRayCastImage.cxx
@@ -15,6 +15,7 @@
 #include "vtkFixedPointRayCastImage.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFixedPointRayCastImage);
 
 // Construct a new vtkFixedPointRayCastImage with default values
@@ -151,3 +152,4 @@ void vtkFixedPointRayCastImage::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "ZBuffer Size: " << this->ZBufferSize[0] << " " << this->ZBufferSize[1] << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkFixedPointRayCastImage.h b/Rendering/Volume/vtkFixedPointRayCastImage.h
index 9258b2d290942e044a5944bb2000b655a95248b7..2b45956a5baaca9ed85c4d58308b01eb428f32f9 100644
--- a/Rendering/Volume/vtkFixedPointRayCastImage.h
+++ b/Rendering/Volume/vtkFixedPointRayCastImage.h
@@ -36,6 +36,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGVOLUME_EXPORT vtkFixedPointRayCastImage : public vtkObject
 {
 public:
@@ -228,4 +229,5 @@ private:
   void operator=(const vtkFixedPointRayCastImage&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOHelper.cxx b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOHelper.cxx
index da3d3ae45a3e71d01027773796a112c540e75f4b..54d2df0c0d4b2c7351dff4ea3795229fc6bbbf3c 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOHelper.cxx
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOHelper.cxx
@@ -28,6 +28,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFixedPointVolumeRayCastCompositeGOHelper);
 
 // Construct a new vtkFixedPointVolumeRayCastCompositeGOHelper with default values
@@ -843,3 +844,4 @@ void vtkFixedPointVolumeRayCastCompositeGOHelper::PrintSelf(ostream& os, vtkInde
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOHelper.h b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOHelper.h
index aa566b5896d195fdc00593bebef7935e52b3e904..29da7672003532c14b23138c744fa355739be6f6 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOHelper.h
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOHelper.h
@@ -33,6 +33,7 @@
 #include "vtkFixedPointVolumeRayCastHelper.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFixedPointVolumeRayCastMapper;
 class vtkVolume;
 
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkFixedPointVolumeRayCastCompositeGOHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOShadeHelper.cxx b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOShadeHelper.cxx
index 09862d284ce3634e36124909a714079df3225b0f..f8c7496b2a2335b58e08043e46f725d92f66fd48 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOShadeHelper.cxx
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOShadeHelper.cxx
@@ -28,6 +28,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFixedPointVolumeRayCastCompositeGOShadeHelper);
 
 // Construct a new vtkFixedPointVolumeRayCastCompositeGOShadeHelper with default values
@@ -935,3 +936,4 @@ void vtkFixedPointVolumeRayCastCompositeGOShadeHelper::PrintSelf(ostream& os, vt
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOShadeHelper.h b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOShadeHelper.h
index a181c2006603775fb8579305b5d2d74ec805a4b0..824b23f1920062813c2d489a83a9a6d6bae91c45 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOShadeHelper.h
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeGOShadeHelper.h
@@ -33,6 +33,7 @@
 #include "vtkFixedPointVolumeRayCastHelper.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFixedPointVolumeRayCastMapper;
 class vtkVolume;
 
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkFixedPointVolumeRayCastCompositeGOShadeHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeHelper.cxx b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeHelper.cxx
index 0a6263669f1bdecab668afbf771365eb4fd9ffb4..524ef3ab6d96d4e0b7a9be1632302728cb783ca1 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeHelper.cxx
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeHelper.cxx
@@ -28,6 +28,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFixedPointVolumeRayCastCompositeHelper);
 
 // Construct a new vtkFixedPointVolumeRayCastCompositeHelper with default values
@@ -709,3 +710,4 @@ void vtkFixedPointVolumeRayCastCompositeHelper::PrintSelf(ostream& os, vtkIndent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeHelper.h b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeHelper.h
index 598bb537c666fe7895756b2f9e23638886fef225..07aa7b112c49211959efd224bcc7f1c7c3822fd7 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeHelper.h
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeHelper.h
@@ -33,6 +33,7 @@
 #include "vtkFixedPointVolumeRayCastHelper.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFixedPointVolumeRayCastMapper;
 class vtkVolume;
 
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkFixedPointVolumeRayCastCompositeHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeShadeHelper.cxx b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeShadeHelper.cxx
index 647f0b6b3e7833700b713db3fb46eb98114a7bf7..207ed9468f1867eda4e9ab90d3f115a6cefe1ace 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeShadeHelper.cxx
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeShadeHelper.cxx
@@ -28,6 +28,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFixedPointVolumeRayCastCompositeShadeHelper);
 
 // Construct a new vtkFixedPointVolumeRayCastCompositeShadeHelper with default values
@@ -787,3 +788,4 @@ void vtkFixedPointVolumeRayCastCompositeShadeHelper::PrintSelf(ostream& os, vtkI
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeShadeHelper.h b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeShadeHelper.h
index 673f17d3efa9eb32db6a2022f0854f3210d5d90d..59616b2dbf39fe23e98a6141cefa2cf7a2eb3601 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeShadeHelper.h
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastCompositeShadeHelper.h
@@ -33,6 +33,7 @@
 #include "vtkFixedPointVolumeRayCastHelper.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFixedPointVolumeRayCastMapper;
 class vtkVolume;
 
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkFixedPointVolumeRayCastCompositeShadeHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastHelper.cxx b/Rendering/Volume/vtkFixedPointVolumeRayCastHelper.cxx
index 1876067b5ded53d33b2498bf900a0f975e805171..bb755ee98e1bb8a0f43c25e09993bc85c520eead 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastHelper.cxx
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastHelper.cxx
@@ -17,6 +17,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFixedPointVolumeRayCastHelper);
 
 vtkFixedPointVolumeRayCastHelper::vtkFixedPointVolumeRayCastHelper() = default;
@@ -27,3 +28,4 @@ void vtkFixedPointVolumeRayCastHelper::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastHelper.h b/Rendering/Volume/vtkFixedPointVolumeRayCastHelper.h
index dd544891ca78e968a3b3a10c7838cccd4ad03dc2..d1d56742d78c8d7b01a54b90db3bbdffd1672af2 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastHelper.h
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastHelper.h
@@ -1291,6 +1291,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFixedPointVolumeRayCastMapper;
 class vtkVolume;
 
@@ -1312,4 +1313,5 @@ private:
   void operator=(const vtkFixedPointVolumeRayCastHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastMIPHelper.cxx b/Rendering/Volume/vtkFixedPointVolumeRayCastMIPHelper.cxx
index 533f8a680bb7cb4e08643e6c60dbfba50c1dac57..aee7b7cbfe8c901f2fddd1c0ee958739bac8ec81 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastMIPHelper.cxx
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastMIPHelper.cxx
@@ -27,6 +27,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFixedPointVolumeRayCastMIPHelper);
 
 // Construct a new vtkFixedPointVolumeRayCastMIPHelper with default values
@@ -666,3 +667,4 @@ void vtkFixedPointVolumeRayCastMIPHelper::PrintSelf(ostream& os, vtkIndent inden
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastMIPHelper.h b/Rendering/Volume/vtkFixedPointVolumeRayCastMIPHelper.h
index 5b59f6b5676284762b1cba83b727eabb7d7b6082..ce14d40f7376463a7b7198659d7b5ecc556d01aa 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastMIPHelper.h
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastMIPHelper.h
@@ -31,6 +31,7 @@
 #include "vtkFixedPointVolumeRayCastHelper.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFixedPointVolumeRayCastMapper;
 class vtkVolume;
 
@@ -54,4 +55,5 @@ private:
   void operator=(const vtkFixedPointVolumeRayCastMIPHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastMapper.cxx b/Rendering/Volume/vtkFixedPointVolumeRayCastMapper.cxx
index 75c9acc4f1ee1cdb31511f9607533d697f14b0ba..6c1564450b3f37d57452282b10f83d8de6c722b0 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastMapper.cxx
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastMapper.cxx
@@ -48,6 +48,7 @@
 #include <cmath>
 #include <exception>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkFixedPointVolumeRayCastMapper);
 vtkCxxSetObjectMacro(vtkFixedPointVolumeRayCastMapper, RayCastImage, vtkFixedPointRayCastImage);
 
@@ -3235,3 +3236,4 @@ void vtkFixedPointVolumeRayCastMapper::ReleaseGraphicsResources(vtkWindow* win)
     this->ImageDisplayHelper->ReleaseGraphicsResources(win);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkFixedPointVolumeRayCastMapper.h b/Rendering/Volume/vtkFixedPointVolumeRayCastMapper.h
index 4e486a81bb90f9935f9b54fc2de2e7b53b29b796..e735068378d157a5fe49512c1ce122b1e2a56537 100644
--- a/Rendering/Volume/vtkFixedPointVolumeRayCastMapper.h
+++ b/Rendering/Volume/vtkFixedPointVolumeRayCastMapper.h
@@ -65,6 +65,7 @@
 #define VTKKW_FP_MASK 0x7fff
 #define VTKKW_FP_SCALE 32767.0
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkMultiThreader;
 class vtkPlaneCollection;
@@ -741,4 +742,5 @@ inline int vtkFixedPointVolumeRayCastMapper::CheckIfCropped(unsigned int pos[3])
   return !(static_cast<unsigned int>(this->CroppingRegionFlags) & this->CroppingRegionMask[idx]);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkGPUVolumeRayCastMapper.cxx b/Rendering/Volume/vtkGPUVolumeRayCastMapper.cxx
index 20b23356267229491d0d56378a4997c6493afb43..aad5c083859475d3c6bdd1f0f20bbc07f9aa27bb 100644
--- a/Rendering/Volume/vtkGPUVolumeRayCastMapper.cxx
+++ b/Rendering/Volume/vtkGPUVolumeRayCastMapper.cxx
@@ -39,6 +39,7 @@
 #include <vtkVolumeProperty.h>
 
 // Return nullptr if no override is supplied.
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractObjectFactoryNewMacro(vtkGPUVolumeRayCastMapper);
 vtkCxxSetObjectMacro(vtkGPUVolumeRayCastMapper, MaskInput, vtkImageData);
 
@@ -859,3 +860,4 @@ int vtkGPUVolumeRayCastMapper::GetInputCount()
 {
   return static_cast<int>(this->Ports.size());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkGPUVolumeRayCastMapper.h b/Rendering/Volume/vtkGPUVolumeRayCastMapper.h
index 9e6f82822652df8932c91f5787f017f6ef067aea..f1f0d0b51604acbce1a214369839094d0dc2490e 100644
--- a/Rendering/Volume/vtkGPUVolumeRayCastMapper.h
+++ b/Rendering/Volume/vtkGPUVolumeRayCastMapper.h
@@ -35,6 +35,7 @@
 #include "vtkRenderingVolumeModule.h" // For export macro
 #include "vtkVolumeMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContourValues;
 class vtkRenderWindow;
 class vtkVolumeProperty;
@@ -642,4 +643,5 @@ private:
   void operator=(const vtkGPUVolumeRayCastMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkMultiVolume.cxx b/Rendering/Volume/vtkMultiVolume.cxx
index 4130917ef7b673818eba187993a32e4921a2e5c6..855160f9099cc225830f5e34fe86f31521b1bbad 100644
--- a/Rendering/Volume/vtkMultiVolume.cxx
+++ b/Rendering/Volume/vtkMultiVolume.cxx
@@ -24,6 +24,7 @@
 #include "vtkVectorOperators.h"
 #include "vtkVolumeProperty.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkMultiVolume::vtkMultiVolume()
   : TexToBBox(vtkSmartPointer<vtkMatrix4x4>::New())
 {
@@ -342,3 +343,4 @@ vtkVolumeProperty* vtkMultiVolume::GetProperty()
 
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkMultiVolume.h b/Rendering/Volume/vtkMultiVolume.h
index 2b6faf14ed9f888a2b6781a628192ea8fac63cec..c81e7e8c7b7f0e79290e9af0502cebcb18968aa5 100644
--- a/Rendering/Volume/vtkMultiVolume.h
+++ b/Rendering/Volume/vtkMultiVolume.h
@@ -42,6 +42,7 @@
 #include "vtkSmartPointer.h"          // For vtkSmartPointer
 #include "vtkVolume.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractVolumeMapper;
 class vtkBoundingBox;
 class vtkMatrix4x4;
@@ -178,4 +179,5 @@ private:
   vtkMultiVolume(const vtkMultiVolume&) = delete;
   void operator=(const vtkMultiVolume&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkOSPRayVolumeInterface.cxx b/Rendering/Volume/vtkOSPRayVolumeInterface.cxx
index 2c7d66827985665aa9c3d37234bba9020a1e32f6..702c3448954e7c7721145e28903fbfae47ad2024 100644
--- a/Rendering/Volume/vtkOSPRayVolumeInterface.cxx
+++ b/Rendering/Volume/vtkOSPRayVolumeInterface.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkObjectFactoryNewMacro(vtkOSPRayVolumeInterface);
 
 //------------------------------------------------------------------------------
@@ -35,3 +36,4 @@ void vtkOSPRayVolumeInterface::Render(vtkRenderer* vtkNotUsed(ren), vtkVolume* v
 {
   cerr << "Warning VTK is not linked to OSPRay so can not VolumeRender with it" << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkOSPRayVolumeInterface.h b/Rendering/Volume/vtkOSPRayVolumeInterface.h
index 24d1379c76bd20c93bc90a7d476b09470182ec32..01ff9d4986798f72f1eb5d2562fb019945494df7 100644
--- a/Rendering/Volume/vtkOSPRayVolumeInterface.h
+++ b/Rendering/Volume/vtkOSPRayVolumeInterface.h
@@ -27,6 +27,7 @@
 #include "vtkRenderingVolumeModule.h" // For export macro
 #include "vtkVolumeMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkVolume;
 
@@ -51,4 +52,5 @@ private:
   void operator=(const vtkOSPRayVolumeInterface&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkProjectedTetrahedraMapper.cxx b/Rendering/Volume/vtkProjectedTetrahedraMapper.cxx
index 0da9effc9d25ae4dd9acd50d91795b76f54a6298..75ddda61f8a56ab89fec28b6660de442e70740da 100644
--- a/Rendering/Volume/vtkProjectedTetrahedraMapper.cxx
+++ b/Rendering/Volume/vtkProjectedTetrahedraMapper.cxx
@@ -47,6 +47,7 @@
 #include <cmath>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkProjectedTetrahedraMapper, VisibilitySort, vtkVisibilitySort);
 
 //------------------------------------------------------------------------------
@@ -80,6 +81,7 @@ void vtkProjectedTetrahedraMapper::ReportReferences(vtkGarbageCollector* collect
   vtkGarbageCollectorReport(collector, this->VisibilitySort, "VisibilitySort");
 }
 
+VTK_ABI_NAMESPACE_END
 //------------------------------------------------------------------------------
 namespace
 {
@@ -157,6 +159,7 @@ struct TransformPointsWorker
 };
 } // end anon namespace
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 void vtkProjectedTetrahedraMapper::TransformPoints(vtkPoints* inPoints,
   const float projection_mat[16], const float modelview_mat[16], vtkFloatArray* outPoints)
@@ -171,10 +174,12 @@ void vtkProjectedTetrahedraMapper::TransformPoints(vtkPoints* inPoints,
   vtkArrayDispatch::Dispatch::Execute(inPoints->GetData(), worker);
 }
 
+VTK_ABI_NAMESPACE_END
 //------------------------------------------------------------------------------
 
 namespace vtkProjectedTetrahedraMapperNamespace
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename ColorArrayT, typename ScalarArrayT>
 void MapScalarsToColorsImpl(
   ColorArrayT* colors, vtkVolumeProperty* property, ScalarArrayT* scalars);
@@ -202,8 +207,10 @@ struct Worker
     MapScalarsToColorsImpl(colors, this->Property, scalars);
   }
 };
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkProjectedTetrahedraMapper::MapScalarsToColors(
   vtkDataArray* colors, vtkVolumeProperty* property, vtkDataArray* scalars)
 {
@@ -259,10 +266,12 @@ void vtkProjectedTetrahedraMapper::MapScalarsToColors(
     tmpColors->Delete();
   }
 }
+VTK_ABI_NAMESPACE_END
 
 //------------------------------------------------------------------------------
 namespace vtkProjectedTetrahedraMapperNamespace
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <typename ColorArrayT, typename ScalarArrayT>
 void MapScalarsToColorsImpl(ColorArrayT* colors, vtkVolumeProperty* property, ScalarArrayT* scalars)
 {
@@ -389,4 +398,5 @@ void Map4DependentComponents(ColorArrayT* colors, ScalarArrayT* scalars)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 }
diff --git a/Rendering/Volume/vtkProjectedTetrahedraMapper.h b/Rendering/Volume/vtkProjectedTetrahedraMapper.h
index 7f50a8fa5886655858f08e1bdff87ce500864076..3083b0f60406718b6046a0479b47fe5b318109c3 100644
--- a/Rendering/Volume/vtkProjectedTetrahedraMapper.h
+++ b/Rendering/Volume/vtkProjectedTetrahedraMapper.h
@@ -45,6 +45,7 @@
 #include "vtkRenderingVolumeModule.h" // For export macro
 #include "vtkUnstructuredGridVolumeMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 class vtkPoints;
 class vtkUnsignedCharArray;
@@ -91,4 +92,5 @@ private:
   void operator=(const vtkProjectedTetrahedraMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkRayCastImageDisplayHelper.cxx b/Rendering/Volume/vtkRayCastImageDisplayHelper.cxx
index b7ec504ca228c85f922013df0d4f96b7edf5d7e9..295f736911c29631f3cb2cec0d77306a2fcef781 100644
--- a/Rendering/Volume/vtkRayCastImageDisplayHelper.cxx
+++ b/Rendering/Volume/vtkRayCastImageDisplayHelper.cxx
@@ -17,6 +17,7 @@
 
 //------------------------------------------------------------------------------
 // Return nullptr if no override is supplied.
+VTK_ABI_NAMESPACE_BEGIN
 vtkAbstractObjectFactoryNewMacro(vtkRayCastImageDisplayHelper);
 //------------------------------------------------------------------------------
 
@@ -38,3 +39,4 @@ void vtkRayCastImageDisplayHelper::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Pixel Scale: " << this->PixelScale << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkRayCastImageDisplayHelper.h b/Rendering/Volume/vtkRayCastImageDisplayHelper.h
index 59792136b1b42608d335f64ab17971d25b91565b..385274c98927d6aee19d8830f6cc2f9639ed9a98 100644
--- a/Rendering/Volume/vtkRayCastImageDisplayHelper.h
+++ b/Rendering/Volume/vtkRayCastImageDisplayHelper.h
@@ -31,6 +31,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFixedPointRayCastImage;
 class vtkRenderer;
 class vtkVolume;
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkRayCastImageDisplayHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkRecursiveSphereDirectionEncoder.cxx b/Rendering/Volume/vtkRecursiveSphereDirectionEncoder.cxx
index 56b5777daac1eaed8402c65806367eee734e2165..11447d618be0761eb838cc42fce027f3d7a976c3 100644
--- a/Rendering/Volume/vtkRecursiveSphereDirectionEncoder.cxx
+++ b/Rendering/Volume/vtkRecursiveSphereDirectionEncoder.cxx
@@ -17,6 +17,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRecursiveSphereDirectionEncoder);
 
 // Construct the object. Initialize the index table which will be
@@ -352,3 +353,4 @@ void vtkRecursiveSphereDirectionEncoder::PrintSelf(ostream& os, vtkIndent indent
 
   os << indent << "Recursion depth: " << this->RecursionDepth << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkRecursiveSphereDirectionEncoder.h b/Rendering/Volume/vtkRecursiveSphereDirectionEncoder.h
index 28502aa89612e2d4fea8cae5e9272c1e3d48db6a..b644592fdb468b84a87d5c7fb92f0d71a44b3b68 100644
--- a/Rendering/Volume/vtkRecursiveSphereDirectionEncoder.h
+++ b/Rendering/Volume/vtkRecursiveSphereDirectionEncoder.h
@@ -32,6 +32,7 @@
 #include "vtkDirectionEncoder.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGVOLUME_EXPORT vtkRecursiveSphereDirectionEncoder : public vtkDirectionEncoder
 {
 public:
@@ -121,4 +122,5 @@ private:
   void operator=(const vtkRecursiveSphereDirectionEncoder&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkSphericalDirectionEncoder.cxx b/Rendering/Volume/vtkSphericalDirectionEncoder.cxx
index e9a3ab82b7374731387cf3fb1d16ccc6b005a09d..2f64e0552745617bc8c6eb65d168cdf5980b3096 100644
--- a/Rendering/Volume/vtkSphericalDirectionEncoder.cxx
+++ b/Rendering/Volume/vtkSphericalDirectionEncoder.cxx
@@ -18,6 +18,7 @@
 #include "vtkMath.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSphericalDirectionEncoder);
 
 float vtkSphericalDirectionEncoder::DecodedGradientTable[65536 * 3];
@@ -146,3 +147,4 @@ void vtkSphericalDirectionEncoder::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "Number of encoded directions: " << this->GetNumberOfEncodedDirections() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkSphericalDirectionEncoder.h b/Rendering/Volume/vtkSphericalDirectionEncoder.h
index 3d98874beaf10bcd904575cbbde176578f8c253f..e4c0bb354ae99bffccd4fdfdd77e8c0c3468b725 100644
--- a/Rendering/Volume/vtkSphericalDirectionEncoder.h
+++ b/Rendering/Volume/vtkSphericalDirectionEncoder.h
@@ -29,6 +29,7 @@
 #include "vtkDirectionEncoder.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGVOLUME_EXPORT vtkSphericalDirectionEncoder : public vtkDirectionEncoder
 {
 public:
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkSphericalDirectionEncoder&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkUnstructuredGridBunykRayCastFunction.cxx b/Rendering/Volume/vtkUnstructuredGridBunykRayCastFunction.cxx
index 48f4ffa49c8e1164c8072e5f0a57d9f8b02bc83c..f27052499ee62fe1b60877984ba1e7115be13e02 100644
--- a/Rendering/Volume/vtkUnstructuredGridBunykRayCastFunction.cxx
+++ b/Rendering/Volume/vtkUnstructuredGridBunykRayCastFunction.cxx
@@ -41,6 +41,7 @@
 #include <cassert>
 #include <cstdlib>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnstructuredGridBunykRayCastFunction);
 
 #define VTK_BUNYKRCF_NUMLISTS 100000
@@ -1191,3 +1192,4 @@ void vtkUnstructuredGridBunykRayCastFunction::PrintSelf(ostream& os, vtkIndent i
   // this->ScalarOpacityUnitDistance , or this->ImageOrigin - these are
   // internal ivar and not part of the public API for this class
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkUnstructuredGridBunykRayCastFunction.h b/Rendering/Volume/vtkUnstructuredGridBunykRayCastFunction.h
index 11a313ff20970570eb9e3ebd74d6106828dfb78d..21b6e7acb4c9d69b64f09e5a63018db8c64cb2f1 100644
--- a/Rendering/Volume/vtkUnstructuredGridBunykRayCastFunction.h
+++ b/Rendering/Volume/vtkUnstructuredGridBunykRayCastFunction.h
@@ -63,6 +63,7 @@
 #include "vtkRenderingVolumeModule.h" // For export macro
 #include "vtkUnstructuredGridVolumeRayCastFunction.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkVolume;
 class vtkUnstructuredGridVolumeRayCastMapper;
@@ -276,4 +277,5 @@ private:
   void operator=(const vtkUnstructuredGridBunykRayCastFunction&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkUnstructuredGridHomogeneousRayIntegrator.cxx b/Rendering/Volume/vtkUnstructuredGridHomogeneousRayIntegrator.cxx
index c5b196710bf98441d6d5a87787cd8fd566eeedf5..1903eb881ef8843263f3b53859fc1ba7c23b2761 100644
--- a/Rendering/Volume/vtkUnstructuredGridHomogeneousRayIntegrator.cxx
+++ b/Rendering/Volume/vtkUnstructuredGridHomogeneousRayIntegrator.cxx
@@ -37,6 +37,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnstructuredGridHomogeneousRayIntegrator);
 
 //------------------------------------------------------------------------------
@@ -290,3 +291,4 @@ void vtkUnstructuredGridHomogeneousRayIntegrator::Integrate(vtkDoubleArray* inte
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkUnstructuredGridHomogeneousRayIntegrator.h b/Rendering/Volume/vtkUnstructuredGridHomogeneousRayIntegrator.h
index 0d7160a65da4791ff03486c3318c1e64b0a3a828..1f3bc1ededc707fb27b05be5ad0afdbc4c4f1cd0 100644
--- a/Rendering/Volume/vtkUnstructuredGridHomogeneousRayIntegrator.h
+++ b/Rendering/Volume/vtkUnstructuredGridHomogeneousRayIntegrator.h
@@ -40,6 +40,7 @@
 #include "vtkRenderingVolumeModule.h" // For export macro
 #include "vtkUnstructuredGridVolumeRayIntegrator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVolumeProperty;
 
 class VTKRENDERINGVOLUME_EXPORT vtkUnstructuredGridHomogeneousRayIntegrator
@@ -90,4 +91,5 @@ private:
   void operator=(const vtkUnstructuredGridHomogeneousRayIntegrator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkUnstructuredGridHomogeneousRayIntegrator_h
diff --git a/Rendering/Volume/vtkUnstructuredGridLinearRayIntegrator.cxx b/Rendering/Volume/vtkUnstructuredGridLinearRayIntegrator.cxx
index f81dc7c341a785a4d06b27d733f6d7ea0d6a19d2..11500728f38489c904827adfe8bee95765349c37 100644
--- a/Rendering/Volume/vtkUnstructuredGridLinearRayIntegrator.cxx
+++ b/Rendering/Volume/vtkUnstructuredGridLinearRayIntegrator.cxx
@@ -53,6 +53,7 @@
 // VTK's native classes for defining transfer functions is actually slow to
 // access, so we have to cache it somehow.  This class is straightforward
 // copy of the transfer function.
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLinearRayIntegratorTransferFunction
 {
 public:
@@ -694,3 +695,4 @@ float vtkUnstructuredGridLinearRayIntegrator::Psi(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkUnstructuredGridLinearRayIntegrator.h b/Rendering/Volume/vtkUnstructuredGridLinearRayIntegrator.h
index 8b5bcd1a2aa8df91967055ff3c86f181b063c592..90988ce2fd1abfd494da72816de7e5e51aa30935 100644
--- a/Rendering/Volume/vtkUnstructuredGridLinearRayIntegrator.h
+++ b/Rendering/Volume/vtkUnstructuredGridLinearRayIntegrator.h
@@ -46,6 +46,7 @@
 #include "vtkRenderingVolumeModule.h" // For export macro
 #include "vtkUnstructuredGridVolumeRayIntegrator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkLinearRayIntegratorTransferFunction;
 class vtkVolumeProperty;
 
@@ -94,4 +95,5 @@ private:
   void operator=(const vtkUnstructuredGridLinearRayIntegrator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkUnstructuredGridLinearRayIntegrator_h
diff --git a/Rendering/Volume/vtkUnstructuredGridPartialPreIntegration.cxx b/Rendering/Volume/vtkUnstructuredGridPartialPreIntegration.cxx
index f6388615ef20b8287ad4e2d1d7ed0a2fe76c85a5..80de55428c9ef0b56d29b419d93e3018526179f5 100644
--- a/Rendering/Volume/vtkUnstructuredGridPartialPreIntegration.cxx
+++ b/Rendering/Volume/vtkUnstructuredGridPartialPreIntegration.cxx
@@ -42,6 +42,7 @@
 // VTK's native classes for defining transfer functions is actually slow to
 // access, so we have to cache it somehow.  This class is straightforward
 // copy of the transfer function.
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPartialPreIntegrationTransferFunction
 {
 public:
@@ -552,3 +553,4 @@ void vtkUnstructuredGridPartialPreIntegration::BuildPsiTable()
 
   vtkUnstructuredGridPartialPreIntegration::PsiTableBuilt = 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkUnstructuredGridPartialPreIntegration.h b/Rendering/Volume/vtkUnstructuredGridPartialPreIntegration.h
index 3807b05dc443539b06f0e7e637aa9d366494b94b..a53b9d305ce0418ad5e87f716173c8e9b2680af0 100644
--- a/Rendering/Volume/vtkUnstructuredGridPartialPreIntegration.h
+++ b/Rendering/Volume/vtkUnstructuredGridPartialPreIntegration.h
@@ -46,6 +46,7 @@
 #include "vtkRenderingVolumeModule.h" // For export macro
 #include "vtkUnstructuredGridVolumeRayIntegrator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPartialPreIntegrationTransferFunction;
 class vtkVolumeProperty;
 
@@ -159,4 +160,5 @@ inline void vtkUnstructuredGridPartialPreIntegration::IntegrateRay(double length
   color[3] += (1 - color[3]) * alpha;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkUnstructuredGridPartialPreIntegration_h
diff --git a/Rendering/Volume/vtkUnstructuredGridPreIntegration.cxx b/Rendering/Volume/vtkUnstructuredGridPreIntegration.cxx
index be9972af42169d919047d98231ef35d90a3fdec6..7130a3845773b1b436621d3044fc1cbc911a06d1 100644
--- a/Rendering/Volume/vtkUnstructuredGridPreIntegration.cxx
+++ b/Rendering/Volume/vtkUnstructuredGridPreIntegration.cxx
@@ -37,6 +37,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkUnstructuredGridPreIntegration);
 
 vtkCxxSetObjectMacro(
@@ -422,3 +423,4 @@ void vtkUnstructuredGridPreIntegration::Integrate(vtkDoubleArray* intersectionLe
     color[3] += newcolor[3] * coef;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkUnstructuredGridPreIntegration.h b/Rendering/Volume/vtkUnstructuredGridPreIntegration.h
index 505f5028f33346b3ca9d5a169af5e6dd777d7dc8..7a3cde3962ad233c368e314834bacbb1da3a9f44 100644
--- a/Rendering/Volume/vtkUnstructuredGridPreIntegration.h
+++ b/Rendering/Volume/vtkUnstructuredGridPreIntegration.h
@@ -47,6 +47,7 @@
 #include "vtkRenderingVolumeModule.h" // For export macro
 #include "vtkUnstructuredGridVolumeRayIntegrator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVolumeProperty;
 
 class VTKRENDERINGVOLUME_EXPORT vtkUnstructuredGridPreIntegration
@@ -195,4 +196,5 @@ inline float* vtkUnstructuredGridPreIntegration::GetTableEntry(
   return this->GetIndexedTableEntry(sfi, sbi, li, component);
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkUnstructuredGridPreIntegration_h
diff --git a/Rendering/Volume/vtkUnstructuredGridVolumeMapper.cxx b/Rendering/Volume/vtkUnstructuredGridVolumeMapper.cxx
index 0283ad29fc0102f866bc66b2bcebea6f73331334..ea3d16d57de14d5c73ef65ab902d1e0a1f684868 100644
--- a/Rendering/Volume/vtkUnstructuredGridVolumeMapper.cxx
+++ b/Rendering/Volume/vtkUnstructuredGridVolumeMapper.cxx
@@ -21,6 +21,7 @@
 
 // Construct a vtkUnstructuredGridVolumeMapper with empty scalar input and
 // clipping off.
+VTK_ABI_NAMESPACE_BEGIN
 vtkUnstructuredGridVolumeMapper::vtkUnstructuredGridVolumeMapper()
 {
   this->BlendMode = vtkUnstructuredGridVolumeMapper::COMPOSITE_BLEND;
@@ -72,3 +73,4 @@ int vtkUnstructuredGridVolumeMapper::FillInputPortInformation(
   info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkUnstructuredGridBase");
   return 1;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkUnstructuredGridVolumeMapper.h b/Rendering/Volume/vtkUnstructuredGridVolumeMapper.h
index 22c61485156025aa85a3535968f6319101e11fe2..c3fd5b4b550ac0f344b7621765614230d2578d69 100644
--- a/Rendering/Volume/vtkUnstructuredGridVolumeMapper.h
+++ b/Rendering/Volume/vtkUnstructuredGridVolumeMapper.h
@@ -31,6 +31,7 @@
 #include "vtkAbstractVolumeMapper.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkVolume;
 class vtkUnstructuredGridBase;
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkUnstructuredGridVolumeMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkUnstructuredGridVolumeRayCastFunction.cxx b/Rendering/Volume/vtkUnstructuredGridVolumeRayCastFunction.cxx
index 44ba613428dc910e79785c703cd429dd64c48d67..61703ef4046ed7d0e999a1381b6ce9b06c318860 100644
--- a/Rendering/Volume/vtkUnstructuredGridVolumeRayCastFunction.cxx
+++ b/Rendering/Volume/vtkUnstructuredGridVolumeRayCastFunction.cxx
@@ -15,7 +15,9 @@
 #include "vtkUnstructuredGridVolumeRayCastFunction.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkUnstructuredGridVolumeRayCastFunction::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkUnstructuredGridVolumeRayCastFunction.h b/Rendering/Volume/vtkUnstructuredGridVolumeRayCastFunction.h
index 4299064b90d71aeccc22fe9568ee14d96810f749..d78258a1d19bc643ff614d17fdc66285d0df23bf 100644
--- a/Rendering/Volume/vtkUnstructuredGridVolumeRayCastFunction.h
+++ b/Rendering/Volume/vtkUnstructuredGridVolumeRayCastFunction.h
@@ -31,6 +31,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkVolume;
 class vtkUnstructuredGridVolumeRayCastIterator;
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkUnstructuredGridVolumeRayCastFunction&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkUnstructuredGridVolumeRayCastIterator.cxx b/Rendering/Volume/vtkUnstructuredGridVolumeRayCastIterator.cxx
index 963e2a925ed8b9585c0f1f44db9acb83c7d5bfa6..a1327ac662febc632a8b3b760a81f07728dc0d39 100644
--- a/Rendering/Volume/vtkUnstructuredGridVolumeRayCastIterator.cxx
+++ b/Rendering/Volume/vtkUnstructuredGridVolumeRayCastIterator.cxx
@@ -18,6 +18,7 @@
 
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkUnstructuredGridVolumeRayCastIterator::vtkUnstructuredGridVolumeRayCastIterator()
 {
   this->Bounds[0] = 0.0;
@@ -35,3 +36,4 @@ void vtkUnstructuredGridVolumeRayCastIterator::PrintSelf(ostream& os, vtkIndent
   os << indent << "Bounds: [" << this->Bounds[0] << ", " << this->Bounds[1] << "]" << endl;
   os << indent << "MaxNumberOfIntersections: " << this->MaxNumberOfIntersections << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkUnstructuredGridVolumeRayCastIterator.h b/Rendering/Volume/vtkUnstructuredGridVolumeRayCastIterator.h
index 407044e6b7b14f634e312bff07df1763c302f9a9..5b492d4f97d67e9623e2f2f76a10fc3193af7ae9 100644
--- a/Rendering/Volume/vtkUnstructuredGridVolumeRayCastIterator.h
+++ b/Rendering/Volume/vtkUnstructuredGridVolumeRayCastIterator.h
@@ -36,6 +36,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkIdList;
 class vtkDoubleArray;
 class vtkDataArray;
@@ -96,4 +97,5 @@ private:
   void operator=(const vtkUnstructuredGridVolumeRayCastIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkUnstructuredGridRayCastIterator_h
diff --git a/Rendering/Volume/vtkUnstructuredGridVolumeRayCastMapper.cxx b/Rendering/Volume/vtkUnstructuredGridVolumeRayCastMapper.cxx
index 78500ea3d7b809a957771465695af490826c8f83..5375645e1930a202012817effaece9bfd064d332 100644
--- a/Rendering/Volume/vtkUnstructuredGridVolumeRayCastMapper.cxx
+++ b/Rendering/Volume/vtkUnstructuredGridVolumeRayCastMapper.cxx
@@ -40,6 +40,7 @@
 
 #include <cmath>
 
+VTK_ABI_NAMESPACE_BEGIN
 VTK_THREAD_RETURN_TYPE UnstructuredGridVolumeRayCastMapper_CastRays(void* arg);
 
 vtkStandardNewMacro(vtkUnstructuredGridVolumeRayCastMapper);
@@ -722,3 +723,4 @@ void vtkUnstructuredGridVolumeRayCastMapper::PrintSelf(ostream& os, vtkIndent in
   // methods for access from the ray cast function (not part of the public
   // API)
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkUnstructuredGridVolumeRayCastMapper.h b/Rendering/Volume/vtkUnstructuredGridVolumeRayCastMapper.h
index fea7c6e2c4b3a1a6a4883b71958965f3a31d2a19..bfb8f70111ad96cdb2f16181154cb7bbd2cf89cb 100644
--- a/Rendering/Volume/vtkUnstructuredGridVolumeRayCastMapper.h
+++ b/Rendering/Volume/vtkUnstructuredGridVolumeRayCastMapper.h
@@ -29,6 +29,7 @@
 #include "vtkRenderingVolumeModule.h" // For export macro
 #include "vtkUnstructuredGridVolumeMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkIdList;
 class vtkMultiThreader;
@@ -223,4 +224,5 @@ private:
   void operator=(const vtkUnstructuredGridVolumeRayCastMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkUnstructuredGridVolumeRayIntegrator.cxx b/Rendering/Volume/vtkUnstructuredGridVolumeRayIntegrator.cxx
index d3729ed899157211a27ec7ce84032144754eb8ad..00b660c307e7a867dc9816676de5ff16cbbbeb07 100644
--- a/Rendering/Volume/vtkUnstructuredGridVolumeRayIntegrator.cxx
+++ b/Rendering/Volume/vtkUnstructuredGridVolumeRayIntegrator.cxx
@@ -15,6 +15,7 @@
 #include "vtkUnstructuredGridVolumeRayIntegrator.h"
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkUnstructuredGridVolumeRayIntegrator::vtkUnstructuredGridVolumeRayIntegrator() = default;
 
 vtkUnstructuredGridVolumeRayIntegrator::~vtkUnstructuredGridVolumeRayIntegrator() = default;
@@ -23,3 +24,4 @@ void vtkUnstructuredGridVolumeRayIntegrator::PrintSelf(ostream& os, vtkIndent in
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkUnstructuredGridVolumeRayIntegrator.h b/Rendering/Volume/vtkUnstructuredGridVolumeRayIntegrator.h
index 2a82f03412d0aefc9c7a01a2362d446d9f01a206..81c1a5ff603dfa29bc3eba182d4682294da0a49d 100644
--- a/Rendering/Volume/vtkUnstructuredGridVolumeRayIntegrator.h
+++ b/Rendering/Volume/vtkUnstructuredGridVolumeRayIntegrator.h
@@ -34,6 +34,7 @@
 #include "vtkObject.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVolume;
 class vtkDoubleArray;
 class vtkDataArray;
@@ -70,4 +71,5 @@ private:
   void operator=(const vtkUnstructuredGridVolumeRayIntegrator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkUnstructuredGridVolumeZSweepMapper.cxx b/Rendering/Volume/vtkUnstructuredGridVolumeZSweepMapper.cxx
index 49eaffce83a593a08617a1c6879b3da8a91e82f6..86d09f2bdce24c120aa314fd012225679ad326cd 100644
--- a/Rendering/Volume/vtkUnstructuredGridVolumeZSweepMapper.cxx
+++ b/Rendering/Volume/vtkUnstructuredGridVolumeZSweepMapper.cxx
@@ -53,6 +53,7 @@
 // Put the internal classes in a namespace to avoid potential naming conflicts.
 namespace vtkUnstructuredGridVolumeZSweepMapperNamespace
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 enum
 {
@@ -2283,10 +2284,12 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 };
 
 using namespace vtkUnstructuredGridVolumeZSweepMapperNamespace;
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 // Implementation of the public class.
 
@@ -4328,3 +4331,4 @@ double vtkUnstructuredGridVolumeZSweepMapper::GetMinimumBoundsDepth(
 
   return minZ;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkUnstructuredGridVolumeZSweepMapper.h b/Rendering/Volume/vtkUnstructuredGridVolumeZSweepMapper.h
index 11b92b89c24b9c334c9dd194ebde51117059ff1f..d82936e5e7db62f2ac3980cdffc603017a8ebc65 100644
--- a/Rendering/Volume/vtkUnstructuredGridVolumeZSweepMapper.h
+++ b/Rendering/Volume/vtkUnstructuredGridVolumeZSweepMapper.h
@@ -38,6 +38,7 @@
 #include "vtkRenderingVolumeModule.h" // For export macro
 #include "vtkUnstructuredGridVolumeMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderer;
 class vtkVolume;
 class vtkRayCastImageDisplayHelper;
@@ -51,10 +52,12 @@ class vtkVolumeProperty;
 class vtkDoubleArray;
 class vtkUnstructuredGridVolumeRayIntegrator;
 class vtkRenderWindow;
+VTK_ABI_NAMESPACE_END
 
 // Internal classes
 namespace vtkUnstructuredGridVolumeZSweepMapperNamespace
 {
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScreenEdge;
 class vtkSpan;
 class vtkPixelListFrame;
@@ -64,8 +67,10 @@ class vtkSimpleScreenEdge;
 class vtkDoubleScreenEdge;
 class vtkVertexEntry;
 class vtkPixelListEntryMemory;
+VTK_ABI_NAMESPACE_END
 };
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGVOLUME_EXPORT vtkUnstructuredGridVolumeZSweepMapper
   : public vtkUnstructuredGridVolumeMapper
 {
@@ -365,4 +370,5 @@ private:
   void operator=(const vtkUnstructuredGridVolumeZSweepMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkVolumeMapper.cxx b/Rendering/Volume/vtkVolumeMapper.cxx
index 872dc742b598adcef9cdd01f58517db665cf165b..040ca312347a6384b339360cbf3811819b176266 100644
--- a/Rendering/Volume/vtkVolumeMapper.cxx
+++ b/Rendering/Volume/vtkVolumeMapper.cxx
@@ -24,6 +24,7 @@
 #include <cmath>
 
 // Construct a vtkVolumeMapper with empty scalar input and clipping off.
+VTK_ABI_NAMESPACE_BEGIN
 vtkVolumeMapper::vtkVolumeMapper()
 {
   int i;
@@ -198,3 +199,4 @@ double vtkVolumeMapper::SpacingAdjustedSampleDistance(double inputSpacing[3], in
 
   return dist;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkVolumeMapper.h b/Rendering/Volume/vtkVolumeMapper.h
index 9a3c4fa3f3d5ae49ea9818f6287a5edde614db90..8b9a77e355727bb8df72dd62186b0764279d992e 100644
--- a/Rendering/Volume/vtkVolumeMapper.h
+++ b/Rendering/Volume/vtkVolumeMapper.h
@@ -28,6 +28,7 @@
 #include "vtkAbstractVolumeMapper.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkImageData;
 class vtkRectilinearGrid;
 class vtkRenderer;
@@ -316,4 +317,5 @@ private:
   void operator=(const vtkVolumeMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkVolumeOutlineSource.cxx b/Rendering/Volume/vtkVolumeOutlineSource.cxx
index 010880bda1420b9a8f3c32a68b4d99b416127572..6eccf576edb6caab34062f8a7851fd331e19d1c4 100644
--- a/Rendering/Volume/vtkVolumeOutlineSource.cxx
+++ b/Rendering/Volume/vtkVolumeOutlineSource.cxx
@@ -32,6 +32,7 @@
 #include "vtkUnsignedCharArray.h"
 #include "vtkVolumeMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVolumeOutlineSource);
 
 vtkCxxSetObjectMacro(vtkVolumeOutlineSource, VolumeMapper, vtkVolumeMapper);
@@ -768,3 +769,4 @@ void vtkVolumeOutlineSource::CreateColorValues(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkVolumeOutlineSource.h b/Rendering/Volume/vtkVolumeOutlineSource.h
index 7dc751eb619ff5025923f6a16abe421796e2ef28..74266c9fb5fcb466d3a53af914e747a3862532fb 100644
--- a/Rendering/Volume/vtkVolumeOutlineSource.h
+++ b/Rendering/Volume/vtkVolumeOutlineSource.h
@@ -33,6 +33,7 @@
 #include "vtkPolyDataAlgorithm.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVolumeMapper;
 
 class VTKRENDERINGVOLUME_EXPORT vtkVolumeOutlineSource : public vtkPolyDataAlgorithm
@@ -160,4 +161,5 @@ private:
   void operator=(const vtkVolumeOutlineSource&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkVolumePicker.cxx b/Rendering/Volume/vtkVolumePicker.cxx
index 7ac7d1f3decabf71fbf38514a81323d1b56f97f1..97d9de3f18b32899420b9dfec74c499608f628f4 100644
--- a/Rendering/Volume/vtkVolumePicker.cxx
+++ b/Rendering/Volume/vtkVolumePicker.cxx
@@ -20,6 +20,7 @@
 #include "vtkVolume.h"
 #include "vtkVolumeMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVolumePicker);
 
 //------------------------------------------------------------------------------
@@ -413,3 +414,4 @@ int vtkVolumePicker::ClipLineWithCroppingRegion(const double bounds[6], const in
 
   return numSegments;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkVolumePicker.h b/Rendering/Volume/vtkVolumePicker.h
index 4c809975d63efb4eb93b5cde64513320cdef0f25..ca4ff88ca78c3a59363e1b6bd042765b5ebdbc9f 100644
--- a/Rendering/Volume/vtkVolumePicker.h
+++ b/Rendering/Volume/vtkVolumePicker.h
@@ -36,6 +36,7 @@
 #include "vtkCellPicker.h"
 #include "vtkRenderingVolumeModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKRENDERINGVOLUME_EXPORT vtkVolumePicker : public vtkCellPicker
 {
 public:
@@ -88,4 +89,5 @@ private:
   void operator=(const vtkVolumePicker&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/Volume/vtkVolumeRayCastSpaceLeapingImageFilter.cxx b/Rendering/Volume/vtkVolumeRayCastSpaceLeapingImageFilter.cxx
index d99f5eaa7a05f385972114aaa8084792ac284fb5..a8423b10703371f92bd901ff6afdaeb745d22962 100644
--- a/Rendering/Volume/vtkVolumeRayCastSpaceLeapingImageFilter.cxx
+++ b/Rendering/Volume/vtkVolumeRayCastSpaceLeapingImageFilter.cxx
@@ -35,6 +35,7 @@
 #define VTK_SL_BLK 4
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkVolumeRayCastSpaceLeapingImageFilter);
 vtkCxxSetObjectMacro(vtkVolumeRayCastSpaceLeapingImageFilter, CurrentScalars, vtkDataArray);
 
@@ -1165,3 +1166,4 @@ void vtkVolumeRayCastSpaceLeapingImageFilter ::WriteMinMaxVolume(
 }
 
 #endif
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/Volume/vtkVolumeRayCastSpaceLeapingImageFilter.h b/Rendering/Volume/vtkVolumeRayCastSpaceLeapingImageFilter.h
index 5d1a9750b172039ab9424c1672f56551c036c0a0..ed807ec2ac8911b4750960669f0064f5fd8a5f78 100644
--- a/Rendering/Volume/vtkVolumeRayCastSpaceLeapingImageFilter.h
+++ b/Rendering/Volume/vtkVolumeRayCastSpaceLeapingImageFilter.h
@@ -35,6 +35,7 @@
 #include "vtkRenderingVolumeModule.h" // For export macro
 #include "vtkThreadedImageAlgorithm.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 
 class VTKRENDERINGVOLUME_EXPORT vtkVolumeRayCastSpaceLeapingImageFilter
@@ -262,4 +263,5 @@ private:
   void operator=(const vtkVolumeRayCastSpaceLeapingImageFilter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VolumeAMR/vtkAMRVolumeMapper.cxx b/Rendering/VolumeAMR/vtkAMRVolumeMapper.cxx
index 4a16a0bc65069445dc414b48469bc9e3baceaa0f..d2d2f4bf838cdd7ecc61158f98ff1060b99cb78c 100644
--- a/Rendering/VolumeAMR/vtkAMRVolumeMapper.cxx
+++ b/Rendering/VolumeAMR/vtkAMRVolumeMapper.cxx
@@ -36,6 +36,7 @@
 #include "vtkNew.h"
 #include "vtkTimerLog.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkAMRVolumeMapper);
 
 // Construct a vtkAMRVolumeMapper
@@ -630,3 +631,4 @@ void vtkAMRVolumeMapper::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "FreezeFocalPoint: " << this->FreezeFocalPoint << "\n";
 }
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeAMR/vtkAMRVolumeMapper.h b/Rendering/VolumeAMR/vtkAMRVolumeMapper.h
index 21d9e24d15a71e9890b03d3eedf72c2bd19c5388..d4e34ee7d9d5f6ec090eff3954aa3ef4c0f6f8a1 100644
--- a/Rendering/VolumeAMR/vtkAMRVolumeMapper.h
+++ b/Rendering/VolumeAMR/vtkAMRVolumeMapper.h
@@ -30,6 +30,7 @@
 #include "vtkRenderingVolumeAMRModule.h" // For export macro
 #include "vtkVolumeMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAMRResampleFilter;
 class vtkCamera;
 class vtkImageData;
@@ -346,4 +347,5 @@ private:
   void operator=(const vtkAMRVolumeMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VolumeOpenGL2/vtkMultiBlockUnstructuredGridVolumeMapper.cxx b/Rendering/VolumeOpenGL2/vtkMultiBlockUnstructuredGridVolumeMapper.cxx
index 39d4def44f4196c8883233786b941d1cff38c53f..c935f5704ac9b2d0081fc48682341bdbc7e2f1b4 100644
--- a/Rendering/VolumeOpenGL2/vtkMultiBlockUnstructuredGridVolumeMapper.cxx
+++ b/Rendering/VolumeOpenGL2/vtkMultiBlockUnstructuredGridVolumeMapper.cxx
@@ -35,13 +35,16 @@
 
 namespace vtkBlockSortHelper
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <>
 inline void GetBounds(vtkProjectedTetrahedraMapper* first, double bds[6])
 {
   first->GetInput()->GetBounds(bds);
 }
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkMultiBlockUnstructuredGridVolumeMapper);
 
@@ -345,3 +348,4 @@ void vtkMultiBlockUnstructuredGridVolumeMapper::SetBlendMode(int mode)
   }
   this->Superclass::SetBlendMode(mode);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkMultiBlockUnstructuredGridVolumeMapper.h b/Rendering/VolumeOpenGL2/vtkMultiBlockUnstructuredGridVolumeMapper.h
index 85725a9f2f6fa2b8c82878a0c41ca623685e35eb..891df0556691063c1c42a726a576e6915b88ddf0 100644
--- a/Rendering/VolumeOpenGL2/vtkMultiBlockUnstructuredGridVolumeMapper.h
+++ b/Rendering/VolumeOpenGL2/vtkMultiBlockUnstructuredGridVolumeMapper.h
@@ -26,6 +26,7 @@
 #include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
 #include "vtkUnstructuredGridVolumeMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObjectTree;
 class vtkDataSet;
 class vtkMatrix4x4;
@@ -155,4 +156,5 @@ private:
   vtkMTimeType BlockLoadingTime;
   vtkMTimeType BoundsComputeTime;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VolumeOpenGL2/vtkMultiBlockVolumeMapper.cxx b/Rendering/VolumeOpenGL2/vtkMultiBlockVolumeMapper.cxx
index 744b6b9840f09d74cfd2aae7f8293b135f762eb7..c03ad9e533d6e683e78c0420a8043278bc56346a 100644
--- a/Rendering/VolumeOpenGL2/vtkMultiBlockVolumeMapper.cxx
+++ b/Rendering/VolumeOpenGL2/vtkMultiBlockVolumeMapper.cxx
@@ -39,13 +39,16 @@
 
 namespace vtkBlockSortHelper
 {
+VTK_ABI_NAMESPACE_BEGIN
 template <>
 inline void GetBounds(vtkSmartVolumeMapper* first, double bds[6])
 {
   first->GetInput()->GetBounds(bds);
 }
+VTK_ABI_NAMESPACE_END
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkStandardNewMacro(vtkMultiBlockVolumeMapper);
 
@@ -626,3 +629,4 @@ void vtkMultiBlockVolumeMapper::SetTransfer2DYAxisArray(const char* a)
   }
   this->Modified();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkMultiBlockVolumeMapper.h b/Rendering/VolumeOpenGL2/vtkMultiBlockVolumeMapper.h
index d72470f2d37a110320a0fc8ba21195f9bd2a42fa..c5b2aaeba9583cc7ddedca726b3720266fc03c2e 100644
--- a/Rendering/VolumeOpenGL2/vtkMultiBlockVolumeMapper.h
+++ b/Rendering/VolumeOpenGL2/vtkMultiBlockVolumeMapper.h
@@ -41,6 +41,7 @@
 #include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
 #include "vtkVolumeMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObjectTree;
 class vtkDataSet;
 class vtkImageData;
@@ -244,4 +245,5 @@ private:
 
   char* Transfer2DYAxisArray;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.cxx b/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.cxx
index 193a4387942251387d72ae36a44092da431292d2..81b0074d62def29e9d4b2c75a3576be8c31c8a36 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.cxx
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.cxx
@@ -101,6 +101,7 @@
 #include <sstream>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLGPUVolumeRayCastMapper);
 
 //------------------------------------------------------------------------------
@@ -4110,3 +4111,4 @@ void vtkOpenGLGPUVolumeRayCastMapper::SetShaderParametersRenderPass()
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.h b/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.h
index 7af02cedd1a4db941e0f1f162e61d02ae910ebaa..c259bfb9c05579a5cf9d75abf426d302c91fea09 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.h
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.h
@@ -67,6 +67,7 @@
 #include "vtkShader.h"                       // For methods
 #include "vtkSmartPointer.h"                 // For smartptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGenericOpenGLResourceFreeCallback;
 class vtkImplicitFunction;
 class vtkOpenGLCamera;
@@ -304,4 +305,5 @@ private:
   void operator=(const vtkOpenGLGPUVolumeRayCastMapper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLGPUVolumeRayCastMapper_h
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLProjectedTetrahedraMapper.cxx b/Rendering/VolumeOpenGL2/vtkOpenGLProjectedTetrahedraMapper.cxx
index 0be3d4e83d3578719fdd880ac2b227315c414717..4cc388b91a57d4cb01f4c160617778f0db3349a2 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLProjectedTetrahedraMapper.cxx
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLProjectedTetrahedraMapper.cxx
@@ -67,6 +67,7 @@
 #include "vtkglProjectedTetrahedraFS.h"
 #include "vtkglProjectedTetrahedraVS.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 void annotate(const std::string& message)
@@ -1115,3 +1116,4 @@ void vtkOpenGLProjectedTetrahedraMapper::GLSafeUpdateProgress(double, vtkOpenGLR
   vtkOpenGLCheckErrorMacro("failed after GLSafeUpdateProgress");
 #endif
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLProjectedTetrahedraMapper.h b/Rendering/VolumeOpenGL2/vtkOpenGLProjectedTetrahedraMapper.h
index 59ae987e85142d470cf094454750c483f45b9da6..8ccf88b9c4167836b0e07c04b4df236b2d443952 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLProjectedTetrahedraMapper.h
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLProjectedTetrahedraMapper.h
@@ -41,6 +41,7 @@
 #include "vtkProjectedTetrahedraMapper.h"
 #include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFloatArray;
 class vtkMatrix4x4;
 class vtkOpenGLFramebufferObject;
@@ -139,4 +140,5 @@ private:
   vtkInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLRayCastImageDisplayHelper.cxx b/Rendering/VolumeOpenGL2/vtkOpenGLRayCastImageDisplayHelper.cxx
index 2d0a08a197324075ff03dc43f19df975b90f8d6c..bbfd273515bda7241a8ce9e301627a45c8bb7ced 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLRayCastImageDisplayHelper.cxx
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLRayCastImageDisplayHelper.cxx
@@ -37,6 +37,7 @@
 
 #include "vtkTextureObjectVS.h" // a pass through shader
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLRayCastImageDisplayHelper);
 
 //------------------------------------------------------------------------------
@@ -244,3 +245,4 @@ void vtkOpenGLRayCastImageDisplayHelper::ReleaseGraphicsResources(vtkWindow* win
     this->ShaderProgram = nullptr;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLRayCastImageDisplayHelper.h b/Rendering/VolumeOpenGL2/vtkOpenGLRayCastImageDisplayHelper.h
index 209c441a66c649aae052acb782bd5263d07140e7..885ae04aeb8626d82fe8c7dcdab45d447408e14a 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLRayCastImageDisplayHelper.h
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLRayCastImageDisplayHelper.h
@@ -30,6 +30,7 @@
 #include "vtkRayCastImageDisplayHelper.h"
 #include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFixedPointRayCastImage;
 class vtkOpenGLHelper;
 class vtkRenderer;
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkOpenGLRayCastImageDisplayHelper&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeGradientOpacityTable.cxx b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeGradientOpacityTable.cxx
index 0c9d93e4fde816be5342b7924e743b600f005837..b4918ffb715bdcdbe8009859b68aff68650fbfed 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeGradientOpacityTable.cxx
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeGradientOpacityTable.cxx
@@ -19,6 +19,7 @@
 #include "vtkPiecewiseFunction.h"
 #include "vtkTextureObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLVolumeGradientOpacityTable);
 
 // Update opacity transfer function texture.
@@ -48,3 +49,4 @@ void vtkOpenGLVolumeGradientOpacityTable::PrintSelf(ostream& os, vtkIndent inden
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeGradientOpacityTable.h b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeGradientOpacityTable.h
index fd3d72a2e939648078d2b84c4bfaecf2e9cb5ba4..867341ce1272a0928bd69f869286f33ee53a2497 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeGradientOpacityTable.h
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeGradientOpacityTable.h
@@ -20,6 +20,7 @@
 #include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 
 //----------------------------------------------------------------------------
@@ -47,4 +48,5 @@ private:
   void operator=(const vtkOpenGLVolumeGradientOpacityTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLVolumeGradientOpacityTable_h
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTable.cxx b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTable.cxx
index 1bc57f0efb53e64082a0c08363eb06e03bb87016..5b8e226e50b1a7a9b95f9d3b7dd78e8eaca59ba0 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTable.cxx
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTable.cxx
@@ -25,6 +25,7 @@
 // vtkStandardNewMacro(vtkOpenGLVolumeLookupTable);
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkOpenGLVolumeLookupTable::~vtkOpenGLVolumeLookupTable()
 {
   if (this->TextureObject)
@@ -230,3 +231,4 @@ void vtkOpenGLVolumeLookupTable::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Last Range: (" << this->LastRange[0] << ", " << this->LastRange[1] << ")"
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTable.h b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTable.h
index 24ac943c7287c688444dcca0fb1179e34873b79c..57b323cc8d3e2b9803da3c3d4408c3f1fd582e42 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTable.h
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTable.h
@@ -28,6 +28,7 @@ Copyright and License information
 #include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 class vtkTextureObject;
 class vtkWindow;
@@ -120,4 +121,5 @@ private:
   void operator=(const vtkOpenGLVolumeLookupTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLVolumeLookupTable_h
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTables.h b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTables.h
index 45cfcd1205052094385028e44edaa1dd214f9eef..ceb5a0f22522452725903b207a2797a25cc06806 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTables.h
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTables.h
@@ -30,6 +30,7 @@ Copyright and License information
 #include <vector> // for std::vector
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWindow;
 
 template <class T>
@@ -72,6 +73,7 @@ private:
   void operator=(const vtkOpenGLVolumeLookupTables&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #include "vtkOpenGLVolumeLookupTables.txx" // template implementations
 
 #endif // vtkOpenGLVolumeLookupTables_h
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTables.txx b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTables.txx
index b41fe3ea2afcf60582bd308a55d561298dcc49cd..2075053cff65c88e25f110b6ea6bc56621dbc7f1 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTables.txx
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeLookupTables.txx
@@ -21,6 +21,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkWindow.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 template <class T>
 vtkStandardNewMacro(vtkOpenGLVolumeLookupTables<T>);
 
@@ -87,4 +88,5 @@ void vtkOpenGLVolumeLookupTables<T>::ReleaseGraphicsResources(vtkWindow* win)
   }
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLVolumeLookupTables_txx
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskGradientOpacityTransferFunction2D.cxx b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskGradientOpacityTransferFunction2D.cxx
index 792f9306eb67e72425832016c90d6086d4feb3f9..e815424dace530d45427f1fd9f2571b196a8861a 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskGradientOpacityTransferFunction2D.cxx
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskGradientOpacityTransferFunction2D.cxx
@@ -23,6 +23,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLVolumeMaskGradientOpacityTransferFunction2D);
 
 //------------------------------------------------------------------------------
@@ -95,3 +96,4 @@ void vtkOpenGLVolumeMaskGradientOpacityTransferFunction2D::PrintSelf(ostream& os
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskGradientOpacityTransferFunction2D.h b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskGradientOpacityTransferFunction2D.h
index 61f9aa7503b368b6a5992c15d1d045b38d893498..30729551133deb22d9dc4141f88ddb14e30c6af6 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskGradientOpacityTransferFunction2D.h
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskGradientOpacityTransferFunction2D.h
@@ -20,6 +20,7 @@
 #include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 
 /**
@@ -63,4 +64,5 @@ private:
   void operator=(const vtkOpenGLVolumeMaskGradientOpacityTransferFunction2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLVolumeMaskTransferFunction2D_h
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskTransferFunction2D.cxx b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskTransferFunction2D.cxx
index bd41dcb9867e9c0515060868fb8278d599c28b38..d24d662b740741d9b6e47ef696cb13650d275323 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskTransferFunction2D.cxx
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskTransferFunction2D.cxx
@@ -24,6 +24,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLVolumeMaskTransferFunction2D);
 
 //------------------------------------------------------------------------------
@@ -125,3 +126,4 @@ void vtkOpenGLVolumeMaskTransferFunction2D::PrintSelf(ostream& os, vtkIndent ind
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskTransferFunction2D.h b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskTransferFunction2D.h
index 44bf2a63cfaf4e6bd6a2f4e1e6a4676f01080cfa..622d179177f6081007e0901ac02f7e7419e268c0 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskTransferFunction2D.h
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeMaskTransferFunction2D.h
@@ -22,6 +22,7 @@
 #include "vtkNew.h" // for vtkNew
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 
 /**
@@ -64,4 +65,5 @@ private:
   void operator=(const vtkOpenGLVolumeMaskTransferFunction2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLVolumeMaskTransferFunction2D_h
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeOpacityTable.cxx b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeOpacityTable.cxx
index 032f3b647cc5366666409c6107da0e34d4a38d35..de9521c098044e4b5142539eed315ba38c0021ad 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeOpacityTable.cxx
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeOpacityTable.cxx
@@ -19,6 +19,7 @@
 #include "vtkPiecewiseFunction.h"
 #include "vtkTextureObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLVolumeOpacityTable);
 
 // Update opacity transfer function texture.
@@ -96,3 +97,4 @@ void vtkOpenGLVolumeOpacityTable::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Last Blend Mode: " << this->LastBlendMode << endl;
   os << indent << "Last Sample Distance: " << this->LastSampleDistance << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeOpacityTable.h b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeOpacityTable.h
index bb470974a5c8a7ce99a37060db8b189b27d2943d..07aa51320bcc86428afa37daa9786d6bdf88476b 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeOpacityTable.h
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeOpacityTable.h
@@ -22,6 +22,7 @@
 #include "vtkVolumeMapper.h" // for vtkVolumeMapper
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 
 //----------------------------------------------------------------------------
@@ -57,4 +58,5 @@ private:
   void operator=(const vtkOpenGLVolumeOpacityTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLVolumeOpacityTable_h
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeRGBTable.cxx b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeRGBTable.cxx
index 7b71b9cbf574795064c3462e4f4e0b8a59ed7b55..5d51bde5ab26c35b1e8e0a3c004129be1c7c0f31 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeRGBTable.cxx
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeRGBTable.cxx
@@ -20,6 +20,7 @@
 #include "vtkOpenGLRenderWindow.h"
 #include "vtkTextureObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLVolumeRGBTable);
 
 //------------------------------------------------------------------------------
@@ -51,3 +52,4 @@ void vtkOpenGLVolumeRGBTable::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeRGBTable.h b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeRGBTable.h
index 03ad8c54da1c47dcb73c0a70efb4b12680d63ce7..4da2b151b0c74592df12d9e0d96f452419455239 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeRGBTable.h
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeRGBTable.h
@@ -20,6 +20,7 @@
 #include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 
 //----------------------------------------------------------------------------
@@ -45,4 +46,5 @@ private:
   void operator=(const vtkOpenGLVolumeRGBTable&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLVolumeRGBTable_h
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeTransferFunction2D.cxx b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeTransferFunction2D.cxx
index 76cf8ccf55dee9f2f6af5acc1281cabb05ac0f58..a9a80b1cc4cbb139c10944df6ea99601ce996abb 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeTransferFunction2D.cxx
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeTransferFunction2D.cxx
@@ -23,6 +23,7 @@
 #include "vtkPointData.h"
 #include "vtkTextureObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkOpenGLVolumeTransferFunction2D);
 
 //------------------------------------------------------------------------------
@@ -84,3 +85,4 @@ void vtkOpenGLVolumeTransferFunction2D::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeTransferFunction2D.h b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeTransferFunction2D.h
index 5de3074c055444abf58f83d5c7c6f4f043b50d8a..61010d2b46c67d7fa059cf37e2b51cddbd09fdc2 100644
--- a/Rendering/VolumeOpenGL2/vtkOpenGLVolumeTransferFunction2D.h
+++ b/Rendering/VolumeOpenGL2/vtkOpenGLVolumeTransferFunction2D.h
@@ -23,6 +23,7 @@
 #include "vtkNew.h" // for vtkNew
 
 // Forward declarations
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLRenderWindow;
 
 /**
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkOpenGLVolumeTransferFunction2D&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkOpenGLTransferFunction2D_h
diff --git a/Rendering/VolumeOpenGL2/vtkSmartVolumeMapper.cxx b/Rendering/VolumeOpenGL2/vtkSmartVolumeMapper.cxx
index ddebacdf0bb81b0d8c94559e4a105e1221e16b97..1ebf0ded30589fb50c6f8ab49b8f452e2c751032 100644
--- a/Rendering/VolumeOpenGL2/vtkSmartVolumeMapper.cxx
+++ b/Rendering/VolumeOpenGL2/vtkSmartVolumeMapper.cxx
@@ -38,6 +38,7 @@
 #include "vtkVolume.h"
 #include "vtkVolumeProperty.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSmartVolumeMapper);
 
 //------------------------------------------------------------------------------
@@ -935,3 +936,4 @@ void vtkSmartVolumeMapper::SetVectorMode(int mode)
     this->Modified();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkSmartVolumeMapper.h b/Rendering/VolumeOpenGL2/vtkSmartVolumeMapper.h
index 0bc5b9932fc2e1d7dc643b19b4ebd94f168aa283..96e89576a9f6feeb03598a00c6ee221e9f1f0e9e 100644
--- a/Rendering/VolumeOpenGL2/vtkSmartVolumeMapper.h
+++ b/Rendering/VolumeOpenGL2/vtkSmartVolumeMapper.h
@@ -77,6 +77,7 @@
 #include "vtkRenderingVolumeOpenGL2Module.h" // For export macro
 #include "vtkVolumeMapper.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkFixedPointVolumeRayCastMapper;
 class vtkGPUVolumeRayCastMapper;
 class vtkImageResample;
@@ -596,4 +597,5 @@ private:
   vtkOSPRayVolumeInterface* OSPRayMapper;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VolumeOpenGL2/vtkVolumeInputHelper.cxx b/Rendering/VolumeOpenGL2/vtkVolumeInputHelper.cxx
index b756bb18263cdef981d68ea8d1ad819d7e4ffd69..3e096ba0261f1f53888c407f08e2d072a9f00c7a 100644
--- a/Rendering/VolumeOpenGL2/vtkVolumeInputHelper.cxx
+++ b/Rendering/VolumeOpenGL2/vtkVolumeInputHelper.cxx
@@ -18,6 +18,7 @@
 #include "vtkVolumeProperty.h"
 #include "vtkVolumeTexture.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkVolumeInputHelper::vtkVolumeInputHelper(vtkSmartPointer<vtkVolumeTexture> tex, vtkVolume* vol)
   : Texture(tex)
   , Volume(vol)
@@ -446,3 +447,4 @@ void vtkVolumeInputHelper::ForceTransferInit()
 {
   this->InitializeTransfer = true;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkVolumeInputHelper.h b/Rendering/VolumeOpenGL2/vtkVolumeInputHelper.h
index 17a6f428e4c7671bb5e53a124488595482a28d1a..068819ca9893fc4478655a9010a328995758f690 100644
--- a/Rendering/VolumeOpenGL2/vtkVolumeInputHelper.h
+++ b/Rendering/VolumeOpenGL2/vtkVolumeInputHelper.h
@@ -36,6 +36,7 @@
 #include "vtkSmartPointer.h"                 // For SmartPointer
 #include "vtkTimeStamp.h"                    // For TimeStamp
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkOpenGLVolumeGradientOpacityTable;
 class vtkOpenGLVolumeOpacityTable;
 class vtkOpenGLVolumeRGBTable;
@@ -131,5 +132,6 @@ protected:
   bool InitializeTransfer = true;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkVolumeInputHelper_h
 // VTK-HeaderTest-Exclude: vtkVolumeInputHelper.h
diff --git a/Rendering/VolumeOpenGL2/vtkVolumeMask.h b/Rendering/VolumeOpenGL2/vtkVolumeMask.h
index a0e424e133dd0025653546b7146a522544827708..03b8f1c697baa8aad301394d21dba8605745a4df 100644
--- a/Rendering/VolumeOpenGL2/vtkVolumeMask.h
+++ b/Rendering/VolumeOpenGL2/vtkVolumeMask.h
@@ -26,6 +26,7 @@
 #include <map> // STL required
 
 //----------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVolumeMask
 {
 public:
@@ -322,5 +323,6 @@ private:
   vtkMapMaskTextureId& operator=(const vtkMapMaskTextureId& other) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkVolumeMask_h
 // VTK-HeaderTest-Exclude: vtkVolumeMask.h
diff --git a/Rendering/VolumeOpenGL2/vtkVolumeShaderComposer.h b/Rendering/VolumeOpenGL2/vtkVolumeShaderComposer.h
index 3c4692886c1337f0ccd5de71154e2aea4283db68..3393f6827ddfea8035654b662a0be5f2a10068a3 100644
--- a/Rendering/VolumeOpenGL2/vtkVolumeShaderComposer.h
+++ b/Rendering/VolumeOpenGL2/vtkVolumeShaderComposer.h
@@ -87,6 +87,7 @@ const std::string ArrayBaseName(const std::string& arrayName)
 
 namespace vtkvolume
 {
+VTK_ABI_NAMESPACE_BEGIN
 //--------------------------------------------------------------------------
 std::string ComputeClipPositionImplementation(
   vtkRenderer* vtkNotUsed(ren), vtkVolumeMapper* vtkNotUsed(mapper), vtkVolume* vtkNotUsed(vol))
@@ -3908,6 +3909,7 @@ std::string ImageSampleImplementationFrag(
   shader += " return;\n";
   return shader;
 }
+VTK_ABI_NAMESPACE_END
 }
 
 #endif // vtkVolumeShaderComposer_h
diff --git a/Rendering/VolumeOpenGL2/vtkVolumeStateRAII.h b/Rendering/VolumeOpenGL2/vtkVolumeStateRAII.h
index c856f4ac32bff3e31b3bc830a0038a4f51c71d19..71a791fde9e5d04d25482c3e74166c8ed3540283 100644
--- a/Rendering/VolumeOpenGL2/vtkVolumeStateRAII.h
+++ b/Rendering/VolumeOpenGL2/vtkVolumeStateRAII.h
@@ -20,6 +20,7 @@
 // Only these states can be queries via glIsEnabled:
 // http://www.khronos.org/opengles/sdk/docs/man/
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVolumeStateRAII
 {
 public:
@@ -104,5 +105,6 @@ private:
   vtkOpenGLState* State;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkVolumeStateRAII_h
 // VTK-HeaderTest-Exclude: vtkVolumeStateRAII.h
diff --git a/Rendering/VolumeOpenGL2/vtkVolumeTexture.cxx b/Rendering/VolumeOpenGL2/vtkVolumeTexture.cxx
index 22995b7e61d1288f7cb080c94d8f56171885b413..3cd3cf14d6b3fa9a7392dbe58f8aad6b36ab8933 100644
--- a/Rendering/VolumeOpenGL2/vtkVolumeTexture.cxx
+++ b/Rendering/VolumeOpenGL2/vtkVolumeTexture.cxx
@@ -20,6 +20,7 @@
 #include "vtkVolumeTexture.h"
 #include "vtk_glew.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkVolumeTexture::vtkVolumeTexture()
   : HandleLargeDataTypes(false)
   , InterpolationType(vtkTextureObject::Linear)
@@ -1230,3 +1231,4 @@ vtkDataArray* vtkVolumeTexture::GetLoadedScalars()
 {
   return this->Scalars;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VolumeOpenGL2/vtkVolumeTexture.h b/Rendering/VolumeOpenGL2/vtkVolumeTexture.h
index 05733ab3153868b5e2ab834c9474b2fc1288fad3..899d5c4c03e03194e6e58617444071ede05dea85 100644
--- a/Rendering/VolumeOpenGL2/vtkVolumeTexture.h
+++ b/Rendering/VolumeOpenGL2/vtkVolumeTexture.h
@@ -75,6 +75,7 @@
 #include "vtkTimeStamp.h"                    // For UploadTime
 #include "vtkTuple.h"                        // For Size6 and Size3
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataArray;
 class vtkDataSet;
 class vtkImageData;
@@ -304,4 +305,5 @@ private:
   vtkDataArray* Scalars;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkVolumeTexture_h
diff --git a/Rendering/VtkJS/vtkVtkJSSceneGraphSerializer.cxx b/Rendering/VtkJS/vtkVtkJSSceneGraphSerializer.cxx
index 790c4c21a103ecb00df393c688135f9290aab512..f9ac21685dda78474f43e2cb37a5a5658610f59d 100644
--- a/Rendering/VtkJS/vtkVtkJSSceneGraphSerializer.cxx
+++ b/Rendering/VtkJS/vtkVtkJSSceneGraphSerializer.cxx
@@ -52,6 +52,7 @@
 #include <unordered_map>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 const std::array<char, 13> arrayTypes = {
@@ -1206,3 +1207,4 @@ void vtkVtkJSSceneGraphSerializer::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VtkJS/vtkVtkJSSceneGraphSerializer.h b/Rendering/VtkJS/vtkVtkJSSceneGraphSerializer.h
index c09ba349b54fcda7b623e60af89f1b505d279dda..f6b927255d05e5235d14c571387fc2ed2951cb2e 100644
--- a/Rendering/VtkJS/vtkVtkJSSceneGraphSerializer.h
+++ b/Rendering/VtkJS/vtkVtkJSSceneGraphSerializer.h
@@ -44,6 +44,7 @@
 #include "vtkObject.h"
 #include <vtk_jsoncpp.h> // For Json::Value
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkAlgorithm;
 class vtkCamera;
@@ -166,4 +167,5 @@ private:
   void extractRequiredFields(Json::Value& extractedFields, vtkMapper* mapper, vtkDataSet* dataSet);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Rendering/VtkJS/vtkVtkJSViewNodeFactory.cxx b/Rendering/VtkJS/vtkVtkJSViewNodeFactory.cxx
index c830b4410e3c518d9ad1353e712827d1fa9ccb86..005b369e35d002bb9ab0781f71bfdf8cbd947ac1 100644
--- a/Rendering/VtkJS/vtkVtkJSViewNodeFactory.cxx
+++ b/Rendering/VtkJS/vtkVtkJSViewNodeFactory.cxx
@@ -34,6 +34,7 @@
 
 #include <type_traits>
 
+VTK_ABI_NAMESPACE_BEGIN
 namespace
 {
 // A template for performing a compile-time check if a scene element inherits
@@ -135,3 +136,4 @@ void vtkVtkJSViewNodeFactory::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Rendering/VtkJS/vtkVtkJSViewNodeFactory.h b/Rendering/VtkJS/vtkVtkJSViewNodeFactory.h
index 2158da9ed0bd1f35795ee738c6540a40cf637b6d..6ea7d14e9d8c0e583d2d59e12efce77b219a87a0 100644
--- a/Rendering/VtkJS/vtkVtkJSViewNodeFactory.h
+++ b/Rendering/VtkJS/vtkVtkJSViewNodeFactory.h
@@ -34,6 +34,7 @@
 
 #include "vtkViewNodeFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkVtkJSSceneGraphSerializer;
 
 class VTKRENDERINGVTKJS_EXPORT vtkVtkJSViewNodeFactory : public vtkViewNodeFactory
@@ -62,4 +63,5 @@ private:
   void operator=(const vtkVtkJSViewNodeFactory&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/Core/vtkPermuteOptions.h b/Testing/Core/vtkPermuteOptions.h
index f964e290b285dfa9a16667e86a1b5474000b8588..b00b4ff11fc4fd2296b2a171b54fc32a0aaa2f87 100644
--- a/Testing/Core/vtkPermuteOptions.h
+++ b/Testing/Core/vtkPermuteOptions.h
@@ -119,6 +119,7 @@
  * returns false. E.g. the third iteration will be named
  * "ByteOrder.BigEndian-CompressorType.LZ4".
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <typename ObjType>
 class vtkPermuteOptions
 {
@@ -309,5 +310,6 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkPermuteOptions.h
diff --git a/Testing/Core/vtkTestConditionals.txx b/Testing/Core/vtkTestConditionals.txx
index 55e712b2554518bcc52551b92653f8eeefabcffe..43647428767cd7cb3547e9f9cb4628c25c7c7235 100644
--- a/Testing/Core/vtkTestConditionals.txx
+++ b/Testing/Core/vtkTestConditionals.txx
@@ -17,6 +17,7 @@
 
 namespace vtk
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 /**\brief Conditionals for use in unit tests.
  *
@@ -196,6 +197,7 @@ inline bool testNearlyEqual(
   return false;
 }
 
+VTK_ABI_NAMESPACE_END
 } // namespace vtk
 
 #endif // vtkTestConditionals_txx
diff --git a/Testing/Core/vtkTestErrorObserver.h b/Testing/Core/vtkTestErrorObserver.h
index 73ebda4e0b34412a8d6caf0bfc7a72b1d0ad4857..b08bd18fadc9ed9c6bc2b2d7dc0bdd9e638c7d7e 100644
--- a/Testing/Core/vtkTestErrorObserver.h
+++ b/Testing/Core/vtkTestErrorObserver.h
@@ -20,6 +20,7 @@
 
 namespace vtkTest
 {
+VTK_ABI_NAMESPACE_BEGIN
 class ErrorObserver : public ::vtkCommand
 {
 public:
@@ -120,6 +121,7 @@ private:
   std::string ErrorMessage;
   std::string WarningMessage;
 };
+VTK_ABI_NAMESPACE_END
 }
 #endif
 // VTK-HeaderTest-Exclude: vtkTestErrorObserver.h
diff --git a/Testing/Core/vtkTestUtilities.h b/Testing/Core/vtkTestUtilities.h
index 633fdb8552c1a081c1fdc9ba4c8cfeb03e93f6c4..ded756134c847d6f00af13b79f07ad1b4c4459fd 100644
--- a/Testing/Core/vtkTestUtilities.h
+++ b/Testing/Core/vtkTestUtilities.h
@@ -31,6 +31,7 @@
 #pragma warning(disable : 4996) // 'function': was declared deprecated
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkTestUtilities
 {
   /**
@@ -157,5 +158,6 @@ inline char* vtkTestUtilities::ExpandFileNameWithArgOrEnvOrDefault(const char* a
   return fullName;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTestUtilities_h
 // VTK-HeaderTest-Exclude: vtkTestUtilities.h
diff --git a/Testing/Core/vtkTestingColors.h b/Testing/Core/vtkTestingColors.h
index e4a796fcd478ec2efbdde6dc9ee9f6f98b03449d..d380ed1316d0a1629e6cadab83433059bafc2317 100644
--- a/Testing/Core/vtkTestingColors.h
+++ b/Testing/Core/vtkTestingColors.h
@@ -3,6 +3,7 @@
 
 // Standard colors used by many vtk scripts
 
+VTK_ABI_NAMESPACE_BEGIN
 static float vtk_antique_white[3] = { 0.9804, 0.9216, 0.8431 };
 static float vtk_azure[3] = { 0.9412, 1.0000, 1.0000 };
 static float vtk_bisque[3] = { 1.0000, 0.8941, 0.7686 };
@@ -215,5 +216,6 @@ static float vtk_violet_red[3] = { 0.8157, 0.1255, 0.5647 };
 static float vtk_violet_red_medium[3] = { 0.7804, 0.0824, 0.5216 };
 static float vtk_violet_red_pale[3] = { 0.8588, 0.4392, 0.5765 };
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkTestingColors_h
 // VTK-HeaderTest-Exclude: vtkTestingColors.h
diff --git a/Testing/Core/vtkWindowsTestUtilities.h b/Testing/Core/vtkWindowsTestUtilities.h
index bc91eacffb0363d749ad4c088dededa08b5c9816..6e218f8a9f875de978f9dbbfb528f77368e5d55f 100644
--- a/Testing/Core/vtkWindowsTestUtilities.h
+++ b/Testing/Core/vtkWindowsTestUtilities.h
@@ -24,6 +24,7 @@
 #include <sstream>
 #include <windows.h>
 
+VTK_ABI_NAMESPACE_BEGIN
 inline LONG WINAPI vtkWindowsTestUlititiesExceptionHandler(EXCEPTION_POINTERS* ExceptionInfo)
 {
   switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
@@ -104,11 +105,14 @@ inline void vtkWindowsTestUtilitiesSetupForTesting(void)
 {
   SetUnhandledExceptionFilter(vtkWindowsTestUlititiesExceptionHandler);
 }
+VTK_ABI_NAMESPACE_END
 #else
+VTK_ABI_NAMESPACE_BEGIN
 inline void vtkWindowsTestUtilitiesSetupForTesting(void)
 {
   return;
 }
+VTK_ABI_NAMESPACE_END
 #endif
 #endif
 // VTK-HeaderTest-Exclude: vtkWindowsTestUtilities.h
diff --git a/Testing/DataModel/vtkMappedUnstructuredGridGenerator.cxx b/Testing/DataModel/vtkMappedUnstructuredGridGenerator.cxx
index 5aa59d164a651bb9791057c136b21dde58a60049..0375fa80417920927f7d274a7efe9800fa65787e 100644
--- a/Testing/DataModel/vtkMappedUnstructuredGridGenerator.cxx
+++ b/Testing/DataModel/vtkMappedUnstructuredGridGenerator.cxx
@@ -304,6 +304,8 @@ vtkStandardNewMacro(MappedGrid);
 
 } // end anonymous namespace
 
+VTK_ABI_NAMESPACE_BEGIN
+
 void vtkMappedUnstructuredGridGenerator::GenerateUnstructuredGrid(vtkUnstructuredGrid** grid)
 {
   vtkNew<vtkPoints> points;
@@ -454,3 +456,4 @@ void vtkMappedUnstructuredGridGenerator::PrintSelf(ostream& os, vtkIndent indent
   this->Superclass::PrintSelf(os, indent);
   os << indent << "vtkMappedUnstructuredGridGenerator object";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/DataModel/vtkMappedUnstructuredGridGenerator.h b/Testing/DataModel/vtkMappedUnstructuredGridGenerator.h
index f538a2a6a113e9be3836d4aa5c826509d7e71e1c..8b66097ee895dec8b20badce83d5764ac328bf75 100644
--- a/Testing/DataModel/vtkMappedUnstructuredGridGenerator.h
+++ b/Testing/DataModel/vtkMappedUnstructuredGridGenerator.h
@@ -27,6 +27,7 @@
 #ifndef vtkMappedUnstructuredGridGenerator_h
 #define vtkMappedUnstructuredGridGenerator_h
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnstructuredGridBase;
 class vtkUnstructuredGrid;
 
@@ -60,4 +61,5 @@ protected:
   void operator=(const vtkMappedUnstructuredGridGenerator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgeAttribute.cxx b/Testing/GenericBridge/vtkBridgeAttribute.cxx
index 8792708ae7fcef5e52384ef04ab767d16876338d..3fdc31a988aa907a8beac3f286f880f50f759cb7 100644
--- a/Testing/GenericBridge/vtkBridgeAttribute.cxx
+++ b/Testing/GenericBridge/vtkBridgeAttribute.cxx
@@ -34,6 +34,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBridgeAttribute);
 
 void vtkBridgeAttribute::PrintSelf(ostream& os, vtkIndent indent)
@@ -498,3 +499,4 @@ void vtkBridgeAttribute::AllocateInternalTuple(int size)
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgeAttribute.h b/Testing/GenericBridge/vtkBridgeAttribute.h
index 8f2890d365724b08ac8408fb54927e626cb7b7e0..540d63df9fc9c13ad144a55ba021f1e23c79d975 100644
--- a/Testing/GenericBridge/vtkBridgeAttribute.h
+++ b/Testing/GenericBridge/vtkBridgeAttribute.h
@@ -28,6 +28,7 @@
 #include "vtkBridgeExport.h" //for module export macro
 #include "vtkGenericAttribute.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPointData;
 class vtkCellData;
 class vtkDataSetAttributes;
@@ -248,4 +249,5 @@ private:
   void operator=(const vtkBridgeAttribute&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgeCell.cxx b/Testing/GenericBridge/vtkBridgeCell.cxx
index fc355502fadba6cc504a5636af8f3796812af6cc..b815a9d920623c7c20b2f493b5dfab652a9a346f 100644
--- a/Testing/GenericBridge/vtkBridgeCell.cxx
+++ b/Testing/GenericBridge/vtkBridgeCell.cxx
@@ -66,6 +66,7 @@
 #include "vtkQuadraticTriangle.h"
 #include "vtkQuadraticWedge.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBridgeCell);
 
 //------------------------------------------------------------------------------
@@ -1035,3 +1036,4 @@ void vtkBridgeCell::InterpolationFunctions(const double pcoords[3], double* weig
 {
   this->Cell->InterpolateFunctions(pcoords, weights);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgeCell.h b/Testing/GenericBridge/vtkBridgeCell.h
index e840c0e68d60f0e84134055e68b3b21ca07c3be1..0c4e27238f3bc43b8506ca2d63342c5a9dbf5d77 100644
--- a/Testing/GenericBridge/vtkBridgeCell.h
+++ b/Testing/GenericBridge/vtkBridgeCell.h
@@ -28,6 +28,7 @@
 #include "vtkBridgeExport.h" //for module export macro
 #include "vtkGenericAdaptorCell.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkCell;
 class vtkBridgeDataSet;
 class vtkBridgeCellIterator;
@@ -532,4 +533,5 @@ private:
   void operator=(const vtkBridgeCell&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgeCellIterator.cxx b/Testing/GenericBridge/vtkBridgeCellIterator.cxx
index 682cd826dc58c728e45539f2370fcf51516d07de..0397cd59888adfaca597457bfcf6fbc95d919b23 100644
--- a/Testing/GenericBridge/vtkBridgeCellIterator.cxx
+++ b/Testing/GenericBridge/vtkBridgeCellIterator.cxx
@@ -33,6 +33,7 @@
 #include "vtkBridgeCellIteratorOnDataSet.h"
 #include "vtkBridgeCellIteratorOne.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBridgeCellIterator);
 
 //------------------------------------------------------------------------------
@@ -245,3 +246,4 @@ void vtkBridgeCellIterator::InitWithPoints(
   this->IteratorOneCell->InitWithPoints(coords, pts, dim, cellid);
   this->CurrentIterator = this->IteratorOneCell;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgeCellIterator.h b/Testing/GenericBridge/vtkBridgeCellIterator.h
index 4d4a8cb88d4dd0f908e8ea00c72d6ef9bb97f2a5..b8a9d9adce2ae082484da9dd2453b2d50b1f943c 100644
--- a/Testing/GenericBridge/vtkBridgeCellIterator.h
+++ b/Testing/GenericBridge/vtkBridgeCellIterator.h
@@ -27,6 +27,7 @@
 #include "vtkBridgeExport.h" //for module export macro
 #include "vtkGenericCellIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBridgeCell;
 class vtkBridgeDataSet;
 class vtkBridgeCell;
@@ -164,4 +165,5 @@ private:
   void operator=(const vtkBridgeCellIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgeCellIteratorOnCellBoundaries.cxx b/Testing/GenericBridge/vtkBridgeCellIteratorOnCellBoundaries.cxx
index 8ced90b1f45443ecc7cb0f5248d5ec235fdeffdf..4e2e2460cb3246e3a4e88afe8fa29288b02537af 100644
--- a/Testing/GenericBridge/vtkBridgeCellIteratorOnCellBoundaries.cxx
+++ b/Testing/GenericBridge/vtkBridgeCellIteratorOnCellBoundaries.cxx
@@ -28,6 +28,7 @@
 #include "vtkPoints.h"
 #include "vtkVertex.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBridgeCellIteratorOnCellBoundaries);
 
 //------------------------------------------------------------------------------
@@ -268,3 +269,4 @@ void vtkBridgeCellIteratorOnCellBoundaries::InitWithCellBoundaries(vtkBridgeCell
     this->NumberOfVertices = 0;
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgeCellIteratorOnCellBoundaries.h b/Testing/GenericBridge/vtkBridgeCellIteratorOnCellBoundaries.h
index 0bbcb4c30c73d0227ea329ac2e32b391f8065617..d0a428a7db74baf6274c42699bb9f7a23482cddf 100644
--- a/Testing/GenericBridge/vtkBridgeCellIteratorOnCellBoundaries.h
+++ b/Testing/GenericBridge/vtkBridgeCellIteratorOnCellBoundaries.h
@@ -26,6 +26,7 @@
 
 #include "vtkBridgeCellIteratorStrategy.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBridgeCell;
 class vtkBridgeDataSet;
 class vtkBridgeCell;
@@ -97,4 +98,5 @@ private:
   void operator=(const vtkBridgeCellIteratorOnCellBoundaries&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgeCellIteratorOnCellList.cxx b/Testing/GenericBridge/vtkBridgeCellIteratorOnCellList.cxx
index 469f4652cf32eb072fc85215eb47f807ac51d1e3..cd01ddaa0dee105bf930c448383aa026be29eb1d 100644
--- a/Testing/GenericBridge/vtkBridgeCellIteratorOnCellList.cxx
+++ b/Testing/GenericBridge/vtkBridgeCellIteratorOnCellList.cxx
@@ -28,6 +28,7 @@
 #include "vtkPoints.h"
 #include "vtkVertex.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBridgeCellIteratorOnCellList);
 
 //------------------------------------------------------------------------------
@@ -137,3 +138,4 @@ void vtkBridgeCellIteratorOnCellList::InitWithCells(vtkIdList* cells, vtkBridgeD
   vtkSetObjectBodyMacro(DataSet, vtkBridgeDataSet, ds);
   vtkSetObjectBodyMacro(Cells, vtkIdList, cells);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgeCellIteratorOnCellList.h b/Testing/GenericBridge/vtkBridgeCellIteratorOnCellList.h
index c8a38974336e5e32ffacb423fa952c14bb233204..a6ec10f493aea46acab4cb6b62bc62b62f955925 100644
--- a/Testing/GenericBridge/vtkBridgeCellIteratorOnCellList.h
+++ b/Testing/GenericBridge/vtkBridgeCellIteratorOnCellList.h
@@ -26,6 +26,7 @@
 
 #include "vtkBridgeCellIteratorStrategy.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBridgeCell;
 class vtkIdList;
 class vtkBridgeDataSet;
@@ -92,4 +93,5 @@ private:
   void operator=(const vtkBridgeCellIteratorOnCellList&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgeCellIteratorOnDataSet.cxx b/Testing/GenericBridge/vtkBridgeCellIteratorOnDataSet.cxx
index 81b7d4fe163508505e5673161bd86681226dbf22..2dc03854e26bc645c5154774bd594729b6755714 100644
--- a/Testing/GenericBridge/vtkBridgeCellIteratorOnDataSet.cxx
+++ b/Testing/GenericBridge/vtkBridgeCellIteratorOnDataSet.cxx
@@ -26,6 +26,7 @@
 #include "vtkDataSet.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBridgeCellIteratorOnDataSet);
 
 //------------------------------------------------------------------------------
@@ -151,3 +152,4 @@ void vtkBridgeCellIteratorOnDataSet::InitWithDataSet(vtkBridgeDataSet* ds, int d
   this->Size = ds->GetNumberOfCells();
   this->Id = this->Size; // at end
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgeCellIteratorOnDataSet.h b/Testing/GenericBridge/vtkBridgeCellIteratorOnDataSet.h
index 6afbbc0f75338a1febee8fb9f42566ef942cfbd2..a3c2c603ba5606f3df17f88f97f4404d2574effd 100644
--- a/Testing/GenericBridge/vtkBridgeCellIteratorOnDataSet.h
+++ b/Testing/GenericBridge/vtkBridgeCellIteratorOnDataSet.h
@@ -24,6 +24,7 @@
 
 #include "vtkBridgeCellIteratorStrategy.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBridgeCell;
 class vtkBridgeDataSet;
 class vtkBridgeCell;
@@ -93,4 +94,5 @@ private:
   void operator=(const vtkBridgeCellIteratorOnDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgeCellIteratorOne.cxx b/Testing/GenericBridge/vtkBridgeCellIteratorOne.cxx
index f34d2ba75d878181457ea36e11844c38f5fad530..0dad060ef583182a43a7aa572ccbe6f7358ae778 100644
--- a/Testing/GenericBridge/vtkBridgeCellIteratorOne.cxx
+++ b/Testing/GenericBridge/vtkBridgeCellIteratorOne.cxx
@@ -32,6 +32,7 @@
 #include "vtkTriangle.h"
 #include "vtkVertex.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBridgeCellIteratorOne);
 
 //------------------------------------------------------------------------------
@@ -272,3 +273,4 @@ void vtkBridgeCellIteratorOne::InitWithPoints(
   this->cIsAtEnd = 1;
   this->Cell->InitWithCell(this->InternalCell, this->Id);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgeCellIteratorOne.h b/Testing/GenericBridge/vtkBridgeCellIteratorOne.h
index 84d6be0534b67777ac4ae020df80d28cdd01d15c..a4ef21e8628675c3d7dae7dab71655f00d4eb440 100644
--- a/Testing/GenericBridge/vtkBridgeCellIteratorOne.h
+++ b/Testing/GenericBridge/vtkBridgeCellIteratorOne.h
@@ -24,6 +24,7 @@
 
 #include "vtkBridgeCellIteratorStrategy.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBridgeCell;
 class vtkBridgeDataSet;
 class vtkBridgeCell;
@@ -111,4 +112,5 @@ private:
   void operator=(const vtkBridgeCellIteratorOne&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgeCellIteratorStrategy.cxx b/Testing/GenericBridge/vtkBridgeCellIteratorStrategy.cxx
index beb111525da2111a374114a09e09fbc0653d21c6..725308d22c60457d2201f1b1b7584c661e05abb9 100644
--- a/Testing/GenericBridge/vtkBridgeCellIteratorStrategy.cxx
+++ b/Testing/GenericBridge/vtkBridgeCellIteratorStrategy.cxx
@@ -29,6 +29,7 @@
 #include <cassert>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 void vtkBridgeCellIteratorStrategy::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
@@ -43,3 +44,4 @@ vtkGenericAdaptorCell* vtkBridgeCellIteratorStrategy::NewCell()
   assert("check: should not be called: see vtkBridgeCellIterator::NewCell()" && 0);
   return nullptr;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgeCellIteratorStrategy.h b/Testing/GenericBridge/vtkBridgeCellIteratorStrategy.h
index dbbc2deb071319ea74eeb6422506e67b91dc2da8..e9c869da065f68f9a4b60957fc24148be6509b49 100644
--- a/Testing/GenericBridge/vtkBridgeCellIteratorStrategy.h
+++ b/Testing/GenericBridge/vtkBridgeCellIteratorStrategy.h
@@ -33,6 +33,7 @@
 #include "vtkBridgeExport.h" //for module export macro
 #include "vtkGenericCellIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBridgeCell;
 class vtkBridgeDataSet;
 class vtkBridgeCell;
@@ -59,4 +60,5 @@ private:
   void operator=(const vtkBridgeCellIteratorStrategy&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgeDataSet.cxx b/Testing/GenericBridge/vtkBridgeDataSet.cxx
index 4a75655638cf518dde2de0e29a60c8d1f71ff7e7..21e96adf8bad2069a50502af2774edd7b78bf92c 100644
--- a/Testing/GenericBridge/vtkBridgeDataSet.cxx
+++ b/Testing/GenericBridge/vtkBridgeDataSet.cxx
@@ -39,6 +39,7 @@
 #include "vtkPoints.h"
 #include "vtkSimpleCellTessellator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBridgeDataSet);
 
 //------------------------------------------------------------------------------
@@ -503,3 +504,4 @@ void vtkBridgeDataSet::ComputeBounds()
     this->ComputeTime.Modified();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgeDataSet.h b/Testing/GenericBridge/vtkBridgeDataSet.h
index 187fd60c7c79c6168529595b7aeff075ca9112b2..fae53bfe0d81c8d058f1e190167c76ea0c073027 100644
--- a/Testing/GenericBridge/vtkBridgeDataSet.h
+++ b/Testing/GenericBridge/vtkBridgeDataSet.h
@@ -26,6 +26,7 @@
 #include "vtkBridgeExport.h" //for module export macro
 #include "vtkGenericDataSet.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKTESTINGGENERICBRIDGE_EXPORT vtkBridgeDataSet : public vtkGenericDataSet
@@ -179,4 +180,5 @@ private:
   void operator=(const vtkBridgeDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgePointIterator.cxx b/Testing/GenericBridge/vtkBridgePointIterator.cxx
index e9956f1ce00fb678a49f01050e72708bbd366d92..37e148af3ee1e1d93f358ddd8ec5bba743c685e0 100644
--- a/Testing/GenericBridge/vtkBridgePointIterator.cxx
+++ b/Testing/GenericBridge/vtkBridgePointIterator.cxx
@@ -31,6 +31,7 @@
 #include "vtkBridgePointIteratorOnDataSet.h"
 #include "vtkBridgePointIteratorOne.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBridgePointIterator);
 
 //------------------------------------------------------------------------------
@@ -172,3 +173,4 @@ void vtkBridgePointIterator::InitWithCell(vtkBridgeCell* cell)
   this->IteratorOnCell->InitWithCell(cell);
   this->CurrentIterator = this->IteratorOnCell;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgePointIterator.h b/Testing/GenericBridge/vtkBridgePointIterator.h
index cd96ab4a5fa5fe771ea6ab6cb360ac0318fe36c4..d4e2f3bb52a55cfe3731a5974f57bf96f716fa60 100644
--- a/Testing/GenericBridge/vtkBridgePointIterator.h
+++ b/Testing/GenericBridge/vtkBridgePointIterator.h
@@ -28,6 +28,7 @@
 #include "vtkBridgeExport.h" //for module export macro
 #include "vtkGenericPointIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBridgeDataSet;
 class vtkBridgeCell;
 class vtkBridgePointIteratorOnDataSet;
@@ -119,4 +120,5 @@ private:
   void operator=(const vtkBridgePointIterator&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgePointIteratorOnCell.cxx b/Testing/GenericBridge/vtkBridgePointIteratorOnCell.cxx
index eb7df4dbbc6280286a02b77b00a1a3e3b6ee6f75..b29aec0523785f9f7116b508a3756f0ad954dd99 100644
--- a/Testing/GenericBridge/vtkBridgePointIteratorOnCell.cxx
+++ b/Testing/GenericBridge/vtkBridgePointIteratorOnCell.cxx
@@ -30,6 +30,7 @@
 #include "vtkIdList.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBridgePointIteratorOnCell);
 
 //------------------------------------------------------------------------------
@@ -134,3 +135,4 @@ void vtkBridgePointIteratorOnCell::InitWithCell(vtkBridgeCell* cell)
   vtkSetObjectBodyMacro(DataSet, vtkBridgeDataSet, cell->DataSet);
   this->PtIds = cell->Cell->GetPointIds();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgePointIteratorOnCell.h b/Testing/GenericBridge/vtkBridgePointIteratorOnCell.h
index 95a4ef32eb0dbdae9b84a6aaf83af85ab9c704a3..a208ba4d1b2b582fb543c6f4058e6bd2d7acb444 100644
--- a/Testing/GenericBridge/vtkBridgePointIteratorOnCell.h
+++ b/Testing/GenericBridge/vtkBridgePointIteratorOnCell.h
@@ -27,6 +27,7 @@
 #include "vtkBridgeExport.h" //for module export macro
 #include "vtkGenericPointIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBridgeDataSet;
 class vtkBridgeCell;
 class vtkIdList;
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkBridgePointIteratorOnCell&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgePointIteratorOnDataSet.cxx b/Testing/GenericBridge/vtkBridgePointIteratorOnDataSet.cxx
index f67213164d58572fccace06c359b8c01cda8d069..7329cbcd2324752d423d7e503a96a72411a0f484 100644
--- a/Testing/GenericBridge/vtkBridgePointIteratorOnDataSet.cxx
+++ b/Testing/GenericBridge/vtkBridgePointIteratorOnDataSet.cxx
@@ -27,6 +27,7 @@
 #include "vtkDataSet.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBridgePointIteratorOnDataSet);
 
 //------------------------------------------------------------------------------
@@ -128,3 +129,4 @@ void vtkBridgePointIteratorOnDataSet::InitWithDataSet(vtkBridgeDataSet* ds)
   vtkSetObjectBodyMacro(DataSet, vtkBridgeDataSet, ds);
   this->Size = ds->GetNumberOfPoints();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgePointIteratorOnDataSet.h b/Testing/GenericBridge/vtkBridgePointIteratorOnDataSet.h
index 09ce94aaa03de44cc8513c8fe6302016b4419051..a3e880b066530c5a81dc9e784d4cb3e99e9af908 100644
--- a/Testing/GenericBridge/vtkBridgePointIteratorOnDataSet.h
+++ b/Testing/GenericBridge/vtkBridgePointIteratorOnDataSet.h
@@ -28,6 +28,7 @@
 #include "vtkBridgeExport.h" //for module export macro
 #include "vtkGenericPointIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBridgeDataSet;
 
 class VTKTESTINGGENERICBRIDGE_EXPORT vtkBridgePointIteratorOnDataSet
@@ -101,4 +102,5 @@ private:
   void operator=(const vtkBridgePointIteratorOnDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/GenericBridge/vtkBridgePointIteratorOne.cxx b/Testing/GenericBridge/vtkBridgePointIteratorOne.cxx
index d50905e9fa67728f456091e385a1b7cfcfd73592..82f0a8f978eec1b4494a9e493bca2df97f5ad339 100644
--- a/Testing/GenericBridge/vtkBridgePointIteratorOne.cxx
+++ b/Testing/GenericBridge/vtkBridgePointIteratorOne.cxx
@@ -27,6 +27,7 @@
 #include "vtkDataSet.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkBridgePointIteratorOne);
 
 //------------------------------------------------------------------------------
@@ -130,3 +131,4 @@ void vtkBridgePointIteratorOne::InitWithOnePoint(vtkBridgeDataSet* ds, vtkIdType
   vtkSetObjectBodyMacro(DataSet, vtkBridgeDataSet, ds);
   this->Id = id;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/GenericBridge/vtkBridgePointIteratorOne.h b/Testing/GenericBridge/vtkBridgePointIteratorOne.h
index 37b9d97c30cde615dcc1475f04df14b48d65d8ec..97157d82cf921ea2e01665753053804d095e3e1f 100644
--- a/Testing/GenericBridge/vtkBridgePointIteratorOne.h
+++ b/Testing/GenericBridge/vtkBridgePointIteratorOne.h
@@ -25,6 +25,7 @@
 #include "vtkBridgeExport.h" //for module export macro
 #include "vtkGenericPointIterator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBridgeDataSet;
 
 class VTKTESTINGGENERICBRIDGE_EXPORT vtkBridgePointIteratorOne : public vtkGenericPointIterator
@@ -98,4 +99,5 @@ private:
   void operator=(const vtkBridgePointIteratorOne&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/IOSQL/DatabaseSchemaWith2Tables.cxx b/Testing/IOSQL/DatabaseSchemaWith2Tables.cxx
index 7df6a716a70c265c48ee38e5427245b1e31097da..f4cb41d8519c4152cd430d1033ce6e8601c31531 100644
--- a/Testing/IOSQL/DatabaseSchemaWith2Tables.cxx
+++ b/Testing/IOSQL/DatabaseSchemaWith2Tables.cxx
@@ -26,6 +26,7 @@
 
 #include "vtkSQLDatabaseSchema.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 DatabaseSchemaWith2Tables::DatabaseSchemaWith2Tables()
 {
   this->Create();
@@ -94,3 +95,4 @@ void DatabaseSchemaWith2Tables::Create()
   }
   cerr << " done." << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/IOSQL/DatabaseSchemaWith2Tables.h b/Testing/IOSQL/DatabaseSchemaWith2Tables.h
index dc84736be821b4d0ddc95efde3c5b04a0c162660..13222d7ff52b70820729a18aa4db09441fca1a1a 100644
--- a/Testing/IOSQL/DatabaseSchemaWith2Tables.h
+++ b/Testing/IOSQL/DatabaseSchemaWith2Tables.h
@@ -15,6 +15,7 @@
 
 #include "vtkTestingIOSQLModule.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkSQLDatabaseSchema;
 
 class VTKTESTINGIOSQL_EXPORT DatabaseSchemaWith2Tables
@@ -35,3 +36,4 @@ private:
 };
 
 // VTK-HeaderTest-Exclude: DatabaseSchemaWith2Tables.h
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/Rendering/vtkMultiBaselineRegressionTest.h b/Testing/Rendering/vtkMultiBaselineRegressionTest.h
index 69c8bc26ad512bdc2e21b3fcc20d300f24a0d9c2..6e56babedfad929879bbc6c2bc265a923886c94d 100644
--- a/Testing/Rendering/vtkMultiBaselineRegressionTest.h
+++ b/Testing/Rendering/vtkMultiBaselineRegressionTest.h
@@ -18,6 +18,7 @@
  * image (specified with "-V" on the command line) with the given \a img
  * value. The directory portion of the valid image path preceding is untouched.
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T>
 int RegressionTestWithImageName(
   int argc, char* argv[], T* rw, const std::string& img, double thresh = 10.)
@@ -60,5 +61,6 @@ int RegressionTestWithImageName(
   return vtkTesting::NOT_RUN;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkMultiBaselineRegressionTest.h
diff --git a/Testing/Rendering/vtkRegressionTestImage.h b/Testing/Rendering/vtkRegressionTestImage.h
index d5f26a99e91c2984f4d9c0ecba59a8dbd5ab4f84..cbfa4ffac5d72dcac032a5a9597e999088504d0f 100644
--- a/Testing/Rendering/vtkRegressionTestImage.h
+++ b/Testing/Rendering/vtkRegressionTestImage.h
@@ -21,6 +21,7 @@
 
 #include "vtkTesting.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRegressionTester : public vtkTesting
 {
 protected:
@@ -39,5 +40,6 @@ private:
 
 #define vtkRegressionTestImageThreshold(rw, t) vtkTesting::Test(argc, argv, rw, t)
 
+VTK_ABI_NAMESPACE_END
 #endif // vtkRegressionTestImage_h
 // VTK-HeaderTest-Exclude: vtkRegressionTestImage.h
diff --git a/Testing/Rendering/vtkTesting.cxx b/Testing/Rendering/vtkTesting.cxx
index c6de23ce0da920783f2a39913e289813633a8fe8..48fbdadcf63076ac85b69df8ec253263e061d917 100644
--- a/Testing/Rendering/vtkTesting.cxx
+++ b/Testing/Rendering/vtkTesting.cxx
@@ -40,6 +40,7 @@
 #include <sstream>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTesting);
 vtkCxxSetObjectMacro(vtkTesting, RenderWindow, vtkRenderWindow);
 
@@ -1001,3 +1002,4 @@ void vtkTesting::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "BorderOffset: " << this->GetBorderOffset() << endl;
   os << indent << "Verbose: " << this->GetVerbose() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/Rendering/vtkTesting.h b/Testing/Rendering/vtkTesting.h
index 13a7b5a9580a28b4549988b86bd213e9d5cb764a..6bf3b8af892d60bf13107ebb88e5f988b8a8b75c 100644
--- a/Testing/Rendering/vtkTesting.h
+++ b/Testing/Rendering/vtkTesting.h
@@ -67,6 +67,7 @@
 #include <string>                      // STL Header used for argv
 #include <vector>                      // STL Header used for argv
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithm;
 class vtkRenderWindow;
 class vtkImageData;
@@ -341,4 +342,5 @@ private:
   void operator=(const vtkTesting&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/Rendering/vtkTestingInteractor.cxx b/Testing/Rendering/vtkTestingInteractor.cxx
index 722858a49ad746476820d7daa6f3cb8bfd02c120..6f2deeeea8b58f36d4d72cd7af8ff7814b5d784e 100644
--- a/Testing/Rendering/vtkTestingInteractor.cxx
+++ b/Testing/Rendering/vtkTestingInteractor.cxx
@@ -18,6 +18,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkTesting.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTestingInteractor);
 
 int vtkTestingInteractor::TestReturnStatus = -1;
@@ -62,3 +63,4 @@ void vtkTestingInteractor::PrintSelf(ostream& os, vtkIndent indent)
   // Superclass typedef defined in vtkTypeMacro() found in vtkSetGet.h
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/Rendering/vtkTestingInteractor.h b/Testing/Rendering/vtkTestingInteractor.h
index 4176b5c65d14425c94fc5a2cbc86c38d997a85a9..7c959729ebfdf590e8a564bcc624b97fac5850be 100644
--- a/Testing/Rendering/vtkTestingInteractor.h
+++ b/Testing/Rendering/vtkTestingInteractor.h
@@ -33,6 +33,7 @@
 
 #include <string> // STL Header; Required for string
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKTESTINGRENDERING_EXPORT vtkTestingInteractor : public vtkRenderWindowInteractor
 {
 public:
@@ -65,4 +66,5 @@ private:
   void operator=(const vtkTestingInteractor&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Testing/Rendering/vtkTestingObjectFactory.cxx b/Testing/Rendering/vtkTestingObjectFactory.cxx
index 4ccc05185b0da931a534b498a220f2b63b2fb362..df449421232adf5067798347baf8965472269990 100644
--- a/Testing/Rendering/vtkTestingObjectFactory.cxx
+++ b/Testing/Rendering/vtkTestingObjectFactory.cxx
@@ -16,6 +16,7 @@
 #include "vtkTestingInteractor.h"
 #include "vtkVersion.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTestingObjectFactory);
 
 VTK_CREATE_CREATE_FUNCTION(vtkTestingInteractor);
@@ -36,3 +37,4 @@ void vtkTestingObjectFactory::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "Description: " << this->GetDescription() << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Testing/Rendering/vtkTestingObjectFactory.h b/Testing/Rendering/vtkTestingObjectFactory.h
index 14656f19c05183f230089e8cadf9b7903c209b01..814609b3fecd0653376d4b7e6153d43f28957e26 100644
--- a/Testing/Rendering/vtkTestingObjectFactory.h
+++ b/Testing/Rendering/vtkTestingObjectFactory.h
@@ -43,6 +43,7 @@
 #include "vtkTesting.h"           // Required for testing framework
 #include "vtkTestingInteractor.h" // Required for testing framework
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKTESTINGRENDERING_EXPORT vtkTestingObjectFactory : public vtkObjectFactory
 {
 public:
@@ -62,4 +63,5 @@ private:
   vtkTestingObjectFactory(const vtkTestingObjectFactory&) = delete;
   void operator=(const vtkTestingObjectFactory&) = delete;
 };
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Utilities/Benchmarks/vtkRenderTimingTests.h b/Utilities/Benchmarks/vtkRenderTimingTests.h
index ce9ab00f2637e9eeeeb8c173bec1727fe2b4e42a..7f0b74dd6d34a88258ee85013399a23e711c7821 100644
--- a/Utilities/Benchmarks/vtkRenderTimingTests.h
+++ b/Utilities/Benchmarks/vtkRenderTimingTests.h
@@ -45,6 +45,7 @@ Define a test for simple triangle mesh surfaces
 #include "vtkParametricFunctionSource.h"
 #include "vtkParametricTorus.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class surfaceTest : public vtkRTTest
 {
 public:
@@ -145,11 +146,13 @@ protected:
 /*=========================================================================
 Define a test for glyphing
 =========================================================================*/
+VTK_ABI_NAMESPACE_END
 #include "vtkElevationFilter.h"
 #include "vtkGlyph3DMapper.h"
 #include "vtkPlaneSource.h"
 #include "vtkSphereSource.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class glyphTest : public vtkRTTest
 {
 public:
@@ -245,12 +248,14 @@ protected:
 /*=========================================================================
 Define a test for molecules
 =========================================================================*/
+VTK_ABI_NAMESPACE_END
 #include "vtkBoxMuellerRandomSequence.h"
 #include "vtkMath.h"
 #include "vtkMolecule.h"
 #include "vtkMoleculeMapper.h"
 #include "vtkPointLocator.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class moleculeTest : public vtkRTTest
 {
 public:
@@ -392,6 +397,7 @@ protected:
 /*=========================================================================
 Define a test for volume rendering
 =========================================================================*/
+VTK_ABI_NAMESPACE_END
 #include "vtkColorTransferFunction.h"
 #include "vtkGPUVolumeRayCastMapper.h"
 #include "vtkPiecewiseFunction.h"
@@ -400,6 +406,7 @@ Define a test for volume rendering
 #include "vtkVolumeMapper.h"
 #include "vtkVolumeProperty.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class volumeTest : public vtkRTTest
 {
 public:
@@ -509,11 +516,13 @@ protected:
 /*=========================================================================
 Define a test for depth peeling transluscent geometry.
 =========================================================================*/
+VTK_ABI_NAMESPACE_END
 #include "vtkParametricFunctionSource.h"
 #include "vtkParametricTorus.h"
 #include "vtkProperty.h"
 #include "vtkTransform.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class depthPeelingTest : public vtkRTTest
 {
 public:
@@ -636,10 +645,12 @@ protected:
 /*=========================================================================
 Define a test for simple triangle mesh surfaces
 =========================================================================*/
+VTK_ABI_NAMESPACE_END
 #include "vtkParametricBoy.h"
 #include "vtkParametricFunctionSource.h"
 #include "vtkParametricTorus.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class manyActorTest : public vtkRTTest
 {
 public:
@@ -733,5 +744,6 @@ public:
 protected:
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkRenderTimingTests.h
diff --git a/Utilities/Benchmarks/vtkRenderTimings.cxx b/Utilities/Benchmarks/vtkRenderTimings.cxx
index 80462c95e44df4edb07326a4fd41229d2bb02416..862826f7d0ef43a6605806eb6aad95ad2ea04392 100644
--- a/Utilities/Benchmarks/vtkRenderTimings.cxx
+++ b/Utilities/Benchmarks/vtkRenderTimings.cxx
@@ -31,6 +31,7 @@
 #include "vtkRenderWindow.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 void vtkRTTestSequence::GetSequenceNumbers(int& xdim)
 {
   static int linearSequence[] = { 1, 2, 3, 5 };
@@ -397,3 +398,4 @@ int vtkRenderTimings::ParseCommandLineArguments(int argc, char* argv[])
 
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Utilities/Benchmarks/vtkRenderTimings.h b/Utilities/Benchmarks/vtkRenderTimings.h
index 56e6b4829cfa38d7563fa74fa623c199496cd25d..2a2bd90189fd161b1238ed17b47cc5845ec5464c 100644
--- a/Utilities/Benchmarks/vtkRenderTimings.h
+++ b/Utilities/Benchmarks/vtkRenderTimings.h
@@ -25,6 +25,7 @@
 #include <map>
 #include <vtksys/CommandLineArguments.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRTTestResult;
 class vtkRTTestSequence;
 class vtkRenderTimings;
@@ -189,5 +190,6 @@ private:
   int RenderHeight;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkRenderTimings.h
diff --git a/Utilities/DICOMParser/DICOMAppHelper.cxx b/Utilities/DICOMParser/DICOMAppHelper.cxx
index 91b019332da2a1605ca5983f106d3bcab6965fa9..419ba92fdf91a59087c7afdb1c71473c56703971 100644
--- a/Utilities/DICOMParser/DICOMAppHelper.cxx
+++ b/Utilities/DICOMParser/DICOMAppHelper.cxx
@@ -39,6 +39,7 @@
 
 //#define DEBUG_DICOM_APP_HELPER
 
+VTK_ABI_NAMESPACE_BEGIN
 class DICOMAppHelperImplementation
 {
 public:
@@ -1293,3 +1294,4 @@ void DICOMAppHelper::GantryAngleCallback(
 #ifdef _MSC_VER
 #pragma warning(pop)
 #endif
+VTK_ABI_NAMESPACE_END
diff --git a/Utilities/DICOMParser/DICOMAppHelper.h b/Utilities/DICOMParser/DICOMAppHelper.h
index df3c0f3438dfd7d92bbac4ada0875cb7b1653802..df15cfe77ab4ad3e98a981ef7068f653793b65a0 100644
--- a/Utilities/DICOMParser/DICOMAppHelper.h
+++ b/Utilities/DICOMParser/DICOMAppHelper.h
@@ -34,6 +34,7 @@
 #pragma warning(default : 4018)
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class DICOMParser;
 
 // Function object for sorting strings
@@ -413,4 +414,5 @@ private:
 #pragma warning(pop)
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Utilities/DICOMParser/DICOMCallback.h b/Utilities/DICOMParser/DICOMCallback.h
index fe3051cf3a225a044d215bbb4aa1be1823dd8fe1..765711dd0acef764397780ce9df0dbe41ef4ed42 100644
--- a/Utilities/DICOMParser/DICOMCallback.h
+++ b/Utilities/DICOMParser/DICOMCallback.h
@@ -40,6 +40,7 @@
 // the group, element, type, data, and data length.
 //
 
+VTK_ABI_NAMESPACE_BEGIN
 class DICOM_EXPORT DICOMCallback
 {
 public:
@@ -90,4 +91,5 @@ protected:
 #pragma warning(pop)
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Utilities/DICOMParser/DICOMConfig.h b/Utilities/DICOMParser/DICOMConfig.h
index 4183fbd09c4a1dd873bfeffe53a8b97c7535744a..03b876c1d327259eac8a5dd7aa4d67d2fe1cf2fa 100644
--- a/Utilities/DICOMParser/DICOMConfig.h
+++ b/Utilities/DICOMParser/DICOMConfig.h
@@ -17,6 +17,8 @@
 #ifndef __DICOM_CONFIG_H_
 #define __DICOM_CONFIG_H_
 
+#include "vtkABINamespace.h"
+
 //
 // CMake Hook
 //
diff --git a/Utilities/DICOMParser/DICOMFile.cxx b/Utilities/DICOMParser/DICOMFile.cxx
index 70718070f5a6ebc76780c3de5353e5fca0d338ed..257355cd32f51742e898be19bb74cc479ef73365 100644
--- a/Utilities/DICOMParser/DICOMFile.cxx
+++ b/Utilities/DICOMParser/DICOMFile.cxx
@@ -27,6 +27,7 @@
 #include <string.h>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 DICOMFile::DICOMFile()
 {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -273,3 +274,4 @@ char* DICOMFile::ReadAsciiCharArray(int len)
 #ifdef _MSC_VER
 #pragma warning(pop)
 #endif
+VTK_ABI_NAMESPACE_END
diff --git a/Utilities/DICOMParser/DICOMFile.h b/Utilities/DICOMParser/DICOMFile.h
index bb13604a6cad240ecf11c3e4447dad1e6156fa49..51b9d53a657c8e5273bac31f64fb6206941a8237 100644
--- a/Utilities/DICOMParser/DICOMFile.h
+++ b/Utilities/DICOMParser/DICOMFile.h
@@ -38,6 +38,7 @@
 // This should probably be cleaned up so that it
 // can be used to abstract a stream.
 //
+VTK_ABI_NAMESPACE_BEGIN
 class DICOM_EXPORT DICOMFile
 {
 public:
@@ -238,4 +239,5 @@ private:
 #pragma warning(pop)
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif // __DICOMFILE_H_
diff --git a/Utilities/DICOMParser/DICOMParser.cxx b/Utilities/DICOMParser/DICOMParser.cxx
index 451bf38a2345c39d76d70b4cda231471023b845b..44cb12454dc414a2e8ba553435b89e71052625b8 100644
--- a/Utilities/DICOMParser/DICOMParser.cxx
+++ b/Utilities/DICOMParser/DICOMParser.cxx
@@ -44,6 +44,7 @@
 
 #define DICOMPARSER_IGNORE_MAGIC_NUMBER
 
+VTK_ABI_NAMESPACE_BEGIN
 static const char* DICOM_MAGIC = "DICM";
 static const int OPTIONAL_SKIP = 128;
 
@@ -775,3 +776,4 @@ void DICOMParser::operator=(const DICOMParser&)
 #ifdef _MSC_VER
 #pragma warning(pop)
 #endif
+VTK_ABI_NAMESPACE_END
diff --git a/Utilities/DICOMParser/DICOMParser.h b/Utilities/DICOMParser/DICOMParser.h
index 048e68cdeb7f9dc243df9c72e957ae1652adf3e2..0e2f4a5651a9d42c1c02ec12c1c4cf251c8f5fcf 100644
--- a/Utilities/DICOMParser/DICOMParser.h
+++ b/Utilities/DICOMParser/DICOMParser.h
@@ -35,6 +35,7 @@
 #include "DICOMParserMap.h"
 #include "DICOMTypes.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class DICOMCallback;
 template <class T>
 class DICOMMemberCallback;
@@ -256,4 +257,5 @@ private:
 #pragma warning(pop)
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif // __DICOMParser_h_
diff --git a/Utilities/DICOMParser/DICOMParserMap.h b/Utilities/DICOMParser/DICOMParserMap.h
index b4b19c6866da50b92ca584059d8ed17c2e9e9a98..cac7b2a7cc995c42aac704ac7b48ae91ce5e87ec 100644
--- a/Utilities/DICOMParser/DICOMParserMap.h
+++ b/Utilities/DICOMParser/DICOMParserMap.h
@@ -31,6 +31,7 @@
 
 #include "DICOMConfig.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class DICOMCallback;
 
 //
@@ -136,4 +137,5 @@ class DICOMImplicitTypeMap
 #pragma warning(pop)
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Utilities/DICOMParser/vtk.module b/Utilities/DICOMParser/vtk.module
index 93dcc8980989288efcaa6f9fdf6ed1b96be33296..96ff9fe00eabbc5c6473bf715980690fa28555e5 100644
--- a/Utilities/DICOMParser/vtk.module
+++ b/Utilities/DICOMParser/vtk.module
@@ -5,5 +5,6 @@ LIBRARY_NAME
 LICENSE_FILES
   Copyright.txt
 PRIVATE_DEPENDS
+  VTK::CommonCore
   VTK::vtksys
 EXCLUDE_WRAP
diff --git a/Utilities/Java/vtkJavaAwt.h b/Utilities/Java/vtkJavaAwt.h
index f1b81db46740a188e4915978e3d0bd8b3d35fd4a..63bc327153dd755cf3714ab54fa02ab2cccba167 100644
--- a/Utilities/Java/vtkJavaAwt.h
+++ b/Utilities/Java/vtkJavaAwt.h
@@ -40,11 +40,16 @@
     H = E->CallIntMethod(C, mid);                                                                  \
   }
 #include "vtkWindows.h"
+VTK_ABI_NAMESPACE_BEGIN
 int WJLH_init_check = 0;
+VTK_ABI_NAMESPACE_END
 #include <map> // STL Header
+VTK_ABI_NAMESPACE_BEGIN
 std::map<int, int> WJLH_lock_map;
+VTK_ABI_NAMESPACE_END
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 extern "C" JNIEXPORT jint JNICALL Java_vtk_vtkPanel_RenderCreate(
   JNIEnv* env, jobject canvas, jobject id0)
 {
@@ -363,5 +368,6 @@ extern "C" JNIEXPORT jint JNICALL Java_vtk_vtkPanel_UnLock(JNIEnv* env, jobject
 #pragma GCC diagnostic pop
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkJavaAwt.h
diff --git a/Utilities/Java/vtkJavaUtil.cxx b/Utilities/Java/vtkJavaUtil.cxx
index 2916a5dcbeedf8d2ea37a5940e05688504a129b7..b2f9779f5c5d3396b0104c0e9af13f57a8e1301b 100644
--- a/Utilities/Java/vtkJavaUtil.cxx
+++ b/Utilities/Java/vtkJavaUtil.cxx
@@ -33,6 +33,7 @@
 #pragma GCC diagnostic ignored "-Wstrict-aliasing"
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 JNIEXPORT jlong vtkJavaGetId(JNIEnv* env, jobject obj)
 {
   jfieldID id;
diff --git a/Utilities/Java/vtkJavaUtil.h b/Utilities/Java/vtkJavaUtil.h
index 4f3b2a628ecca45e81aadc43e9fc3513bbce08ce..6d9bdef993b363b0ff0900297234560c4d7a483c 100644
--- a/Utilities/Java/vtkJavaUtil.h
+++ b/Utilities/Java/vtkJavaUtil.h
@@ -23,6 +23,7 @@
 
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 extern VTKJAVA_EXPORT void* vtkJavaGetPointerFromObject(JNIEnv* env, jobject obj);
 extern VTKJAVA_EXPORT char* vtkJavaUTF8ToChars(JNIEnv* env, jbyteArray bytes, jint length);
 extern VTKJAVA_EXPORT std::string vtkJavaUTF8ToString(JNIEnv* env, jbyteArray bytes, jint length);
@@ -73,5 +74,6 @@ protected:
   ~vtkJavaCommand();
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkJavaUtil.h
diff --git a/Utilities/Python/vtkPython.h b/Utilities/Python/vtkPython.h
index 4b59f2b129b392bb7b2200531ce104679f6d5e9a..3c50322d2630a46b7e4a258c0068064cbbc622d3 100644
--- a/Utilities/Python/vtkPython.h
+++ b/Utilities/Python/vtkPython.h
@@ -115,6 +115,7 @@ they are system headers.  Do NOT add any #undef lines here.  */
 // RAII class to manage Python threading using GIL (Global Interpreter Lock).
 // GIL is locked at object creation and unlocked at destruction.
 // Note: behaviour of this class depends on VTK_PYTHON_FULL_THREADSAFE.
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPythonScopeGilEnsurer
 {
 public:
@@ -157,6 +158,7 @@ private:
   void operator=(const vtkPythonScopeGilEnsurer&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // __cplusplus
 
 #endif
diff --git a/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.cxx b/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.cxx
index 49cef085eccc65195e7de9b9025e8dcc239d1d89..d782cb79908ae52168bf1aa142ea462d865dc0f2 100644
--- a/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.cxx
+++ b/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.cxx
@@ -22,6 +22,7 @@
 #include "vtkSmartPointer.h"
 
 #include <string>
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPythonInteractiveInterpreter::vtkInternals
 {
   PyObject* InteractiveConsole;
@@ -262,3 +263,4 @@ void vtkPythonInteractiveInterpreter::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.h b/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.h
index 1c52bf2db5b9e653e7754c0d01b54c647261d351..c4cdd825f5ff137fbbe3b126708c907d5cfa50d2 100644
--- a/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.h
+++ b/Utilities/PythonInterpreter/vtkPythonInteractiveInterpreter.h
@@ -39,6 +39,7 @@
 #include "vtkObject.h"
 #include "vtkPythonInterpreterModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkPythonInterpreter;
 
 class VTKPYTHONINTERPRETER_EXPORT vtkPythonInteractiveInterpreter : public vtkObject
@@ -99,4 +100,5 @@ private:
   vtkInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx b/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx
index b0cb63606c07340a5775c0ce31783e68fd7f9497..4343bfa0ec16eb9a6414c534cf9c0e9d2f4cc9df 100644
--- a/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx
+++ b/Utilities/PythonInterpreter/vtkPythonInterpreter.cxx
@@ -163,9 +163,9 @@ inline void vtkPrependPythonPath(const char* pathtoadd)
   }
   Py_DECREF(newpath);
 }
-
 }
 
+VTK_ABI_NAMESPACE_BEGIN
 // Schwarz counter idiom for GlobalInterpreters object
 static unsigned int vtkPythonInterpretersCounter;
 vtkPythonGlobalInterpreters::vtkPythonGlobalInterpreters()
@@ -909,3 +909,4 @@ vtkWideArgsConverter::~vtkWideArgsConverter()
   }
 }
 #endif
+VTK_ABI_NAMESPACE_END
diff --git a/Utilities/PythonInterpreter/vtkPythonInterpreter.h b/Utilities/PythonInterpreter/vtkPythonInterpreter.h
index 17b5f7c4c0e921b6177a727e14bd5d6c7fc5598b..c85bc5328cc934faca1036c3652c9cccf0f2f90d 100644
--- a/Utilities/PythonInterpreter/vtkPythonInterpreter.h
+++ b/Utilities/PythonInterpreter/vtkPythonInterpreter.h
@@ -65,6 +65,7 @@
 #include <vector> // for vtkWideArgsConverter
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKPYTHONINTERPRETER_EXPORT vtkPythonInterpreter : public vtkObject
 {
 public:
@@ -273,4 +274,5 @@ private:
 };
 #endif
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h b/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h
index 3487a15c4c139a3635fa45829864194cba544964..bac74b5bb1ad73e05da172c343983deeded0ce08 100644
--- a/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h
+++ b/Utilities/PythonInterpreter/vtkPythonStdStreamCaptureHelper.h
@@ -24,6 +24,7 @@
 #include "vtkPythonCompatibility.h"
 #include "vtkPythonInterpreter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkPythonStdStreamCaptureHelper
 {
   PyObject_HEAD
@@ -262,5 +263,6 @@ static vtkPythonStdStreamCaptureHelper* NewPythonStdStreamCaptureHelper(bool for
   return wrapper;
 }
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkPythonStdStreamCaptureHelper.h
diff --git a/Utilities/octree/octree/octree.h b/Utilities/octree/octree/octree.h
index 055d45749e04a7e35d2ac35518c63f976d12a429..f257046cd7a6f57ed101aed0e6df4389dbc109af 100644
--- a/Utilities/octree/octree/octree.h
+++ b/Utilities/octree/octree/octree.h
@@ -34,6 +34,7 @@
  * The octree_iterator class simply traverses the tree in depth-first order
  * and can be configured to visit only leaf nodes or to include all nodes.
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T_, int d_ = 3, typename A_ = std::allocator<T_>>
 class octree
 {
@@ -119,4 +120,5 @@ protected:
   double m_size;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // octree_h_
diff --git a/Utilities/octree/octree/octree.txx b/Utilities/octree/octree/octree.txx
index 0afd9c8d964ba04738d2daf269a86505136006fb..2edd5dbd5ef4a4df67d8fb33f952c66cb46be7a7 100644
--- a/Utilities/octree/octree/octree.txx
+++ b/Utilities/octree/octree/octree.txx
@@ -96,6 +96,7 @@
  * @param[in] x_center An array of coordinates specifying the center of the octree
  * @param[in] length The length (size) of each side of the octree
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T_, int d_, typename A_>
 octree<T_, d_, A_>::octree(const double* x_center, double length)
 {
@@ -194,3 +195,4 @@ size_t octree<T_, d_, A_>::size(bool only_leaves)
  *\brief The geometric length of each side of the hypercube defining the octree. Also called the
  *size of the node.
  */
+VTK_ABI_NAMESPACE_END
diff --git a/Utilities/octree/octree/octree_cursor.h b/Utilities/octree/octree/octree_cursor.h
index c267498c939f988f1976102fea50ddfbca05c04f..c875d67abefcb2f314007a93f1f9a06135b70775 100644
--- a/Utilities/octree/octree/octree_cursor.h
+++ b/Utilities/octree/octree/octree_cursor.h
@@ -14,6 +14,7 @@
  * A cursor contains no storage beyond its base class, octree_path, so you may assign to a
  * cursor from any descendant of octree_path including octree_iterator.
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T_, typename R_, typename P_, typename O_, typename OP_, int d_ = 3>
 class octree_cursor : public octree_path<T_, R_, P_, O_, OP_, d_>
 {
@@ -52,4 +53,5 @@ public:
   self_path& operator=(const const_path& it);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // octree_cursor_
diff --git a/Utilities/octree/octree/octree_cursor.txx b/Utilities/octree/octree/octree_cursor.txx
index d1fd30c5eeb812ba5208309624b28294015b84ef..88c8c4b94e01a48aa400e485854c1da33e3f9796 100644
--- a/Utilities/octree/octree/octree_cursor.txx
+++ b/Utilities/octree/octree/octree_cursor.txx
@@ -58,6 +58,7 @@
 
 /**\brief Default constructor. Not very useful since there's no way to indicate the octree.
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T_, typename R_, typename P_, typename O_, typename OP_, int d_>
 octree_cursor<T_, R_, P_, O_, OP_, d_>::octree_cursor()
 {
@@ -280,3 +281,4 @@ octree_path<T_, R_, P_, O_, OP_, d_>& octree_cursor<T_, R_, P_, O_, OP_, d_>::op
 {
   return this->octree_path<T_, R_, P_, O_, OP_, d_>::operator=(it);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Utilities/octree/octree/octree_iterator.h b/Utilities/octree/octree/octree_iterator.h
index 5334f2dccad749a9997a158cff3d8bb687b6a809..2fe062601e4f55fff704a757191b67fde86e01c3 100644
--- a/Utilities/octree/octree/octree_iterator.h
+++ b/Utilities/octree/octree/octree_iterator.h
@@ -15,6 +15,7 @@
  *
  *\bug Const octree iterators don't seem to work -- comparison operators aren't defined properly?
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T_, typename R_, typename P_, typename O_, typename OP_, int d_ = 3>
 class octree_iterator : public octree_path<T_, R_, P_, O_, OP_, d_>
 {
@@ -69,4 +70,5 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // octree_iterator_
diff --git a/Utilities/octree/octree/octree_iterator.txx b/Utilities/octree/octree/octree_iterator.txx
index fef2ce99c0f8c419fb77a99db9e797e4c5838a28..aac6adc48928e670a7a693867c55f47741322667 100644
--- a/Utilities/octree/octree/octree_iterator.txx
+++ b/Utilities/octree/octree/octree_iterator.txx
@@ -55,6 +55,7 @@
 
 /**\brief Default constructor.
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T_, typename R_, typename P_, typename O_, typename OP_, int d_>
 octree_iterator<T_, R_, P_, O_, OP_, d_>::octree_iterator()
 {
@@ -291,3 +292,4 @@ void octree_iterator<T_, R_, P_, O_, OP_, d_>::immediate_family(bool val)
  *    self_iterator  octree_iterator<T_,R_,P_,O_,OP_,d_>::operator -- ( int )
  *\brief Move to the previous node in the octree that satisfied the traversal criteria.
  */
+VTK_ABI_NAMESPACE_END
diff --git a/Utilities/octree/octree/octree_node.h b/Utilities/octree/octree/octree_node.h
index 8fe4f0c615b7f4676958e2b8d42dd81aca861a0a..473cd8de16dd3ba9b65f0432886121fa855f9f6d 100644
--- a/Utilities/octree/octree/octree_node.h
+++ b/Utilities/octree/octree/octree_node.h
@@ -3,6 +3,7 @@
 
 #include <iterator>
 
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T_, int d_, typename A_>
 class octree;
 
@@ -57,4 +58,5 @@ struct octree_node
   const_reference operator*() const { return m_data; }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // octree_node_
diff --git a/Utilities/octree/octree/octree_node.txx b/Utilities/octree/octree/octree_node.txx
index 9d4196c01ca09a1fee539770b71256dde8c8a4a8..5e90bc587dfeff17d00541997040e99c6fe17a28 100644
--- a/Utilities/octree/octree/octree_node.txx
+++ b/Utilities/octree/octree/octree_node.txx
@@ -65,6 +65,7 @@
  * The node will not have an owning octree -- which means that this constructor should never be used
  * except possibly for serialization.
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T_, int d_, typename A_>
 octree_node<T_, d_, A_>::octree_node()
 {
@@ -232,3 +233,4 @@ octree_node<T_, d_, A_>& octree_node<T_, d_, A_>::operator[](int child)
 /**\fn  template<typename T_, int d_=3, class A_> const_reference octree_node<T_,d_,A_>::operator *
  *() const \brief Provide read-only access to the application-specific data.
  */
+VTK_ABI_NAMESPACE_END
diff --git a/Utilities/octree/octree/octree_path.h b/Utilities/octree/octree/octree_path.h
index 3b338f30ad51dc5046cc6a7e9b7b7df7785eda1c..6c99dfccbda09c19a4b473d8cf8bee19b1b08c23 100644
--- a/Utilities/octree/octree/octree_path.h
+++ b/Utilities/octree/octree/octree_path.h
@@ -7,6 +7,7 @@
  *
  * A path is like an iterator without the capability to perform linear traversal.
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T_, typename R_, typename P_, typename O_, typename OP_, int d_ = 3>
 class octree_path
 {
@@ -56,4 +57,5 @@ public:
   }
 };
 
+VTK_ABI_NAMESPACE_END
 #endif // octree_path_
diff --git a/Utilities/octree/octree/octree_path.txx b/Utilities/octree/octree/octree_path.txx
index 354392d1eb5158d0a1f6a7f7020439bacb75c5c2..1b1cf90368b81008518cfff5691ce31d63e60bdb 100644
--- a/Utilities/octree/octree/octree_path.txx
+++ b/Utilities/octree/octree/octree_path.txx
@@ -68,6 +68,7 @@
 
 /**\brief Default constructor.
  */
+VTK_ABI_NAMESPACE_BEGIN
 template <typename T_, typename R_, typename P_, typename O_, typename OP_, int d_>
 octree_path<T_, R_, P_, O_, OP_, d_>::octree_path()
 {
@@ -165,3 +166,4 @@ octree_path<T_, R_, P_, O_, OP_, d_>::octree_path(
  * Iterators are considered equal iff they have the same octree and point to the same node
  *currently. The rest of the paths' state is ignored by the test.
  */
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Context2D/vtkContextInteractorStyle.cxx b/Views/Context2D/vtkContextInteractorStyle.cxx
index f2e6ef633ee02af635321941299abb5b8f197578..b701023d5be289a666c69ae9736029c1cab32a5a 100644
--- a/Views/Context2D/vtkContextInteractorStyle.cxx
+++ b/Views/Context2D/vtkContextInteractorStyle.cxx
@@ -25,6 +25,7 @@
 
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContextInteractorStyle);
 
 //------------------------------------------------------------------------------
@@ -492,3 +493,4 @@ inline void vtkContextInteractorStyle::ConstructMouseEvent(vtkContextMouseEvent&
     vtkVector2f(this->Interactor->GetEventPosition()[0], this->Interactor->GetEventPosition()[1]));
   event.SetButton(button);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Context2D/vtkContextInteractorStyle.h b/Views/Context2D/vtkContextInteractorStyle.h
index 4a780558c630ee788714211992b8a8519181602d..7021871091005e17de210f292fdb9c1fab160bfb 100644
--- a/Views/Context2D/vtkContextInteractorStyle.h
+++ b/Views/Context2D/vtkContextInteractorStyle.h
@@ -30,6 +30,7 @@
 #include "vtkViewsContext2DModule.h" // For export macro
 #include "vtkWeakPointer.h"          // For ivars
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContextMouseEvent;
 class vtkContextScene;
 
@@ -195,4 +196,5 @@ private:
   bool ProcessMousePress(const vtkContextMouseEvent& event);
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Context2D/vtkContextView.cxx b/Views/Context2D/vtkContextView.cxx
index 23d4d3e2ed8a691b9180cc6aa8ad0e0ca63b5393..80c6dc84d0280da30c461465bd93e54962442589 100644
--- a/Views/Context2D/vtkContextView.cxx
+++ b/Views/Context2D/vtkContextView.cxx
@@ -28,6 +28,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkContextView);
 
 vtkCxxSetObjectMacro(vtkContextView, Context, vtkContext2D);
@@ -82,3 +83,4 @@ void vtkContextView::PrintSelf(ostream& os, vtkIndent indent)
     this->Context->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Context2D/vtkContextView.h b/Views/Context2D/vtkContextView.h
index 62f6226524e62346fc8364e81d34cc0d3c6de114..3e347eadefaac28458f3f516677e7befaa939111 100644
--- a/Views/Context2D/vtkContextView.h
+++ b/Views/Context2D/vtkContextView.h
@@ -32,6 +32,7 @@
 #include "vtkSmartPointer.h"         // Needed for SP ivars
 #include "vtkViewsContext2DModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkContext2D;
 class vtkContextScene;
 
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkContextView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Core/vtkConvertSelectionDomain.cxx b/Views/Core/vtkConvertSelectionDomain.cxx
index 91bb9bc00c7da75dc9d72b5da8fb54a84fdbda0c..cd2f96f1488bc47ab7e6077b1cee40672861b19f 100644
--- a/Views/Core/vtkConvertSelectionDomain.cxx
+++ b/Views/Core/vtkConvertSelectionDomain.cxx
@@ -41,6 +41,7 @@
 
 #include <set>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkConvertSelectionDomain);
 //------------------------------------------------------------------------------
 vtkConvertSelectionDomain::vtkConvertSelectionDomain()
@@ -359,3 +360,4 @@ void vtkConvertSelectionDomain::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Core/vtkConvertSelectionDomain.h b/Views/Core/vtkConvertSelectionDomain.h
index 5fc2c508515d3e24e80ddf7825efc30a75147ef3..9aeb89812219920a28ef7e27e54255a173288dd7 100644
--- a/Views/Core/vtkConvertSelectionDomain.h
+++ b/Views/Core/vtkConvertSelectionDomain.h
@@ -44,6 +44,7 @@
 #include "vtkPassInputTypeAlgorithm.h"
 #include "vtkViewsCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAnnotation;
 
 class VTKVIEWSCORE_EXPORT vtkConvertSelectionDomain : public vtkPassInputTypeAlgorithm
@@ -68,4 +69,5 @@ private:
   void operator=(const vtkConvertSelectionDomain&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Core/vtkDataRepresentation.cxx b/Views/Core/vtkDataRepresentation.cxx
index 82c0f82b45f8e85b3315aab066622fdc8172f9c7..5bd17203a1c97822fb8cd0b95d892af4e3dd97af 100644
--- a/Views/Core/vtkDataRepresentation.cxx
+++ b/Views/Core/vtkDataRepresentation.cxx
@@ -43,6 +43,7 @@
 // vtkDataRepresentation::Internals
 //------------------------------------------------------------------------------
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataRepresentation::Internals
 {
 public:
@@ -359,3 +360,4 @@ void vtkDataRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     this->SelectionArrayNames->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Core/vtkDataRepresentation.h b/Views/Core/vtkDataRepresentation.h
index bb58ae1c5fa0c9f2c50a9f39ed029730d6f4f95e..41eda1c31f00545e69f44b60c4f7cf6f4e5e5f91 100644
--- a/Views/Core/vtkDataRepresentation.h
+++ b/Views/Core/vtkDataRepresentation.h
@@ -53,6 +53,7 @@
 #include "vtkPassInputTypeAlgorithm.h"
 #include "vtkViewsCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithmOutput;
 class vtkAnnotationLayers;
 class vtkAnnotationLink;
@@ -324,4 +325,5 @@ private:
   Internals* Implementation;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Core/vtkEmptyRepresentation.cxx b/Views/Core/vtkEmptyRepresentation.cxx
index 0c28c3d13917017d3a5a1b9841032b88585ee8bc..f3be1d7b10bc734c5c597ceb2f8d8c5da611b4d9 100644
--- a/Views/Core/vtkEmptyRepresentation.cxx
+++ b/Views/Core/vtkEmptyRepresentation.cxx
@@ -24,6 +24,7 @@
 #include "vtkConvertSelectionDomain.h"
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkEmptyRepresentation);
 
 vtkEmptyRepresentation::vtkEmptyRepresentation()
@@ -49,3 +50,4 @@ void vtkEmptyRepresentation::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Core/vtkEmptyRepresentation.h b/Views/Core/vtkEmptyRepresentation.h
index 9063fbc4b518006cc8b86297b261de8bdbcdb023..760cce998f9c2356d343e389a0ce277039a6596e 100644
--- a/Views/Core/vtkEmptyRepresentation.h
+++ b/Views/Core/vtkEmptyRepresentation.h
@@ -30,6 +30,7 @@
 #include "vtkSmartPointer.h"    // For SP ivars
 #include "vtkViewsCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkConvertSelectionDomain;
 
 class VTKVIEWSCORE_EXPORT vtkEmptyRepresentation : public vtkDataRepresentation
@@ -65,4 +66,5 @@ private:
   vtkSmartPointer<vtkConvertSelectionDomain> ConvertDomains;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Core/vtkRenderViewBase.cxx b/Views/Core/vtkRenderViewBase.cxx
index dff9900f8287b9baa76274f59d3942d60f5b5f7b..268147477351196feb5d24f60251c542c9b7bb4d 100644
--- a/Views/Core/vtkRenderViewBase.cxx
+++ b/Views/Core/vtkRenderViewBase.cxx
@@ -24,6 +24,7 @@
 #include "vtkRenderer.h"
 #include "vtkRendererCollection.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderViewBase);
 
 vtkRenderViewBase::vtkRenderViewBase()
@@ -180,3 +181,4 @@ void vtkRenderViewBase::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Core/vtkRenderViewBase.h b/Views/Core/vtkRenderViewBase.h
index d99b4e9c3e9635bb25b24a528c134bc10094c00f..b6a033ff754082618b7d6e50973f101e41bbeb99 100644
--- a/Views/Core/vtkRenderViewBase.h
+++ b/Views/Core/vtkRenderViewBase.h
@@ -33,6 +33,7 @@
 #include "vtkView.h"
 #include "vtkViewsCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkInteractorObserver;
 class vtkRenderer;
 class vtkRenderWindow;
@@ -110,4 +111,5 @@ private:
   void operator=(const vtkRenderViewBase&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Core/vtkView.cxx b/Views/Core/vtkView.cxx
index 42c0b00b3689b204774ec747f95790bea6ad151f..ad1290ee6660c72c5722f476a8c79f8536fe8e17 100644
--- a/Views/Core/vtkView.cxx
+++ b/Views/Core/vtkView.cxx
@@ -38,6 +38,7 @@
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 class vtkView::Command : public vtkCommand
 {
 public:
@@ -361,3 +362,4 @@ void vtkView::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Core/vtkView.h b/Views/Core/vtkView.h
index 668bd27784a0dd36a5b2f0ab25761ee52c512163..cb9dd68fcecdceecb81e1142272806eb463d864c 100644
--- a/Views/Core/vtkView.h
+++ b/Views/Core/vtkView.h
@@ -44,6 +44,7 @@
 #include "vtkObject.h"
 #include "vtkViewsCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAlgorithmOutput;
 class vtkCommand;
 class vtkDataObject;
@@ -251,4 +252,5 @@ private:
   vtkInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Core/vtkViewTheme.cxx b/Views/Core/vtkViewTheme.cxx
index 01288be7edd692b4e56b101fcd5c68c286bfb8a1..14695cb9c6814b921c293092a1ae09c007389217 100644
--- a/Views/Core/vtkViewTheme.cxx
+++ b/Views/Core/vtkViewTheme.cxx
@@ -24,6 +24,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkTextProperty.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkViewTheme);
 vtkCxxSetObjectMacro(vtkViewTheme, PointLookupTable, vtkScalarsToColors);
 vtkCxxSetObjectMacro(vtkViewTheme, CellLookupTable, vtkScalarsToColors);
@@ -678,3 +679,4 @@ void vtkViewTheme::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "ScalePointLookupTable: " << this->ScalePointLookupTable << endl;
   os << indent << "ScaleCellLookupTable: " << this->ScaleCellLookupTable << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Core/vtkViewTheme.h b/Views/Core/vtkViewTheme.h
index 97d42669c7d41f28b5ea830c3b7e2fd4262dbd81..ebd94d38a89c14e3f33c74331fec36780a86ea05 100644
--- a/Views/Core/vtkViewTheme.h
+++ b/Views/Core/vtkViewTheme.h
@@ -36,6 +36,7 @@
 #include "vtkObject.h"
 #include "vtkViewsCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScalarsToColors;
 class vtkTextProperty;
 
@@ -339,4 +340,5 @@ private:
   void operator=(const vtkViewTheme&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkApplyColors.cxx b/Views/Infovis/vtkApplyColors.cxx
index 88b01199e187b0d2ee320346dae2140b1cef59f3..19c19bacc1c6f49850efbfdd4a15020b498d04bf 100644
--- a/Views/Infovis/vtkApplyColors.cxx
+++ b/Views/Infovis/vtkApplyColors.cxx
@@ -35,6 +35,7 @@
 #include "vtkTable.h"
 #include "vtkUnsignedCharArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkApplyColors);
 vtkCxxSetObjectMacro(vtkApplyColors, PointLookupTable, vtkScalarsToColors);
 vtkCxxSetObjectMacro(vtkApplyColors, CellLookupTable, vtkScalarsToColors);
@@ -487,3 +488,4 @@ void vtkApplyColors::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "UseCurrentAnnotationColor: " << (this->UseCurrentAnnotationColor ? "on" : "off")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkApplyColors.h b/Views/Infovis/vtkApplyColors.h
index 61f90a0623a65d51515552ed75261dd0c5ad18b6..4c5e878069b8487bccc7b2b8be8256420447d515 100644
--- a/Views/Infovis/vtkApplyColors.h
+++ b/Views/Infovis/vtkApplyColors.h
@@ -80,6 +80,7 @@
 #include "vtkPassInputTypeAlgorithm.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkScalarsToColors;
 class vtkUnsignedCharArray;
 
@@ -294,4 +295,5 @@ private:
   void operator=(const vtkApplyColors&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkApplyIcons.cxx b/Views/Infovis/vtkApplyIcons.cxx
index f031e97092f8e5c84118577772d6f2109d463886..dad837a274ecb6e684f40042238502ca55b2e69b 100644
--- a/Views/Infovis/vtkApplyIcons.cxx
+++ b/Views/Infovis/vtkApplyIcons.cxx
@@ -37,6 +37,7 @@
 
 #include <map>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkApplyIcons);
 
 class vtkApplyIcons::Internals
@@ -294,3 +295,4 @@ void vtkApplyIcons::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "SelectionMode: " << this->SelectionMode << endl;
   os << indent << "AttributeType: " << this->AttributeType << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkApplyIcons.h b/Views/Infovis/vtkApplyIcons.h
index 69ca8811e562734f79e18acae68dd5afef50ddc4..8552d7aba6d22408b140bd75821e1806cba247ad 100644
--- a/Views/Infovis/vtkApplyIcons.h
+++ b/Views/Infovis/vtkApplyIcons.h
@@ -67,6 +67,7 @@
 #include "vtkVariant.h"            // For variant arguments.
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKVIEWSINFOVIS_EXPORT vtkApplyIcons : public vtkPassInputTypeAlgorithm
 {
 public:
@@ -189,4 +190,5 @@ private:
   void operator=(const vtkApplyIcons&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkDendrogramItem.cxx b/Views/Infovis/vtkDendrogramItem.cxx
index 11aa89fc937b8e2c83ed3780ddddcc04ca101520..ecb001ca1251ca62ec30af9595c34bf1577554b3 100644
--- a/Views/Infovis/vtkDendrogramItem.cxx
+++ b/Views/Infovis/vtkDendrogramItem.cxx
@@ -40,6 +40,7 @@
 #include <queue>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkDendrogramItem);
 
 //------------------------------------------------------------------------------
@@ -1484,3 +1485,4 @@ void vtkDendrogramItem::PrintSelf(ostream& os, vtkIndent indent)
     this->Tree->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkDendrogramItem.h b/Views/Infovis/vtkDendrogramItem.h
index 7fa9ec3a69c7d825577e438e9c109a6d15453703..ee3c6b031a4bea47b59a30185aeecf62539488bb 100644
--- a/Views/Infovis/vtkDendrogramItem.h
+++ b/Views/Infovis/vtkDendrogramItem.h
@@ -44,6 +44,7 @@
 #include "vtkStdString.h"    // For SetGet ivars
 #include "vtkVector.h"       // For vtkVector2f ivar
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkColorLegend;
 class vtkDoubleArray;
 class vtkGraphLayout;
@@ -419,4 +420,5 @@ private:
   vtkStdString VertexNameArrayName;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkGraphItem.cxx b/Views/Infovis/vtkGraphItem.cxx
index 40c39408c557f0980c6aa2ab226f65b10ce961fd..77ec37167b88ae587461f2ea2a608e44538202db 100644
--- a/Views/Infovis/vtkGraphItem.cxx
+++ b/Views/Infovis/vtkGraphItem.cxx
@@ -33,6 +33,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphItem);
 vtkCxxSetObjectMacro(vtkGraphItem, Graph, vtkGraph);
 
@@ -497,3 +498,4 @@ void vtkGraphItem::PrintSelf(ostream& os, vtkIndent indent)
   }
   os << "GraphBuildTime: " << this->GraphBuildTime << std::endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkGraphItem.h b/Views/Infovis/vtkGraphItem.h
index 2c6e0a36ef5b7bdc306fcb4712359e4a5844e969..c6334b5c103dc42b0f9a144c226575a446ce9dc0 100644
--- a/Views/Infovis/vtkGraphItem.h
+++ b/Views/Infovis/vtkGraphItem.h
@@ -35,6 +35,7 @@
 #include "vtkNew.h"    // For vtkNew ivars
 #include "vtkVector.h" // For vector types in API
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkGraph;
 class vtkImageData;
 class vtkIncrementalForceLayout;
@@ -229,4 +230,5 @@ private:
   vtkNew<vtkTooltipItem> Tooltip;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkGraphLayoutView.cxx b/Views/Infovis/vtkGraphLayoutView.cxx
index b0f686d7346499dc543edbe68eab779dba84aa4d..76a22f4a46fa07d1d3578589bdaa1bb8cb72f550 100644
--- a/Views/Infovis/vtkGraphLayoutView.cxx
+++ b/Views/Infovis/vtkGraphLayoutView.cxx
@@ -35,6 +35,7 @@
 #include "vtkSimple2DLayoutStrategy.h"
 #include "vtkTextProperty.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkGraphLayoutView);
 //------------------------------------------------------------------------------
 vtkGraphLayoutView::vtkGraphLayoutView()
@@ -519,3 +520,4 @@ void vtkGraphLayoutView::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkGraphLayoutView.h b/Views/Infovis/vtkGraphLayoutView.h
index 661aa9eca96b8c51992e21e26c6d7ae4ba090b0a..7c8da6a0654ab9c5fd0cdaa197ec0d52dbfd54b2 100644
--- a/Views/Infovis/vtkGraphLayoutView.h
+++ b/Views/Infovis/vtkGraphLayoutView.h
@@ -45,6 +45,7 @@
 #include "vtkRenderView.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkEdgeLayoutStrategy;
 class vtkGraphLayoutStrategy;
 class vtkRenderedGraphRepresentation;
@@ -402,4 +403,5 @@ private:
   bool EdgeLabelsRequested;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkHeatmapItem.cxx b/Views/Infovis/vtkHeatmapItem.cxx
index bb5bc4b27384e69515c3c58e628ca5d5479a3346..ed15884abb07b0aa750c511f15bc5238d67d24c8 100644
--- a/Views/Infovis/vtkHeatmapItem.cxx
+++ b/Views/Infovis/vtkHeatmapItem.cxx
@@ -38,6 +38,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHeatmapItem);
 
 //------------------------------------------------------------------------------
@@ -1229,3 +1230,4 @@ void vtkHeatmapItem::PrintSelf(ostream& os, vtkIndent indent)
     this->Table->PrintSelf(os, indent.GetNextIndent());
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkHeatmapItem.h b/Views/Infovis/vtkHeatmapItem.h
index a3662ba53544b06b182a3376f45e8efa0dffb9ea..e5274c41877cc27f408b74b9135f206a09585668 100644
--- a/Views/Infovis/vtkHeatmapItem.h
+++ b/Views/Infovis/vtkHeatmapItem.h
@@ -37,6 +37,7 @@
 #include <set>               // For blank row support
 #include <vector>            // For row mapping
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBitArray;
 class vtkCategoryLegend;
 class vtkColorLegend;
@@ -313,4 +314,5 @@ private:
   bool LegendPositionSet;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkHierarchicalGraphPipeline.cxx b/Views/Infovis/vtkHierarchicalGraphPipeline.cxx
index daaca35c20bde0c0d099851874eb30a8b3c946d4..2c9fe981f1b3c8f78184cf5f3acd2486e8790fc9 100644
--- a/Views/Infovis/vtkHierarchicalGraphPipeline.cxx
+++ b/Views/Infovis/vtkHierarchicalGraphPipeline.cxx
@@ -43,6 +43,7 @@
 #include "vtkTextProperty.h"
 #include "vtkViewTheme.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHierarchicalGraphPipeline);
 
 vtkHierarchicalGraphPipeline::vtkHierarchicalGraphPipeline()
@@ -291,3 +292,4 @@ void vtkHierarchicalGraphPipeline::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "HoverArrayName: " << (this->HoverArrayName ? this->HoverArrayName : "(none)")
      << "\n";
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkHierarchicalGraphPipeline.h b/Views/Infovis/vtkHierarchicalGraphPipeline.h
index ec9bedcd3c41cee7dc82435ced4b13f83db2bca6..2054f43f0d6e95aa84992add73e19554a6f74afd 100644
--- a/Views/Infovis/vtkHierarchicalGraphPipeline.h
+++ b/Views/Infovis/vtkHierarchicalGraphPipeline.h
@@ -34,6 +34,7 @@
 #include "vtkObject.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkActor2D;
 class vtkAlgorithmOutput;
@@ -204,4 +205,5 @@ private:
   void operator=(const vtkHierarchicalGraphPipeline&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkHierarchicalGraphView.cxx b/Views/Infovis/vtkHierarchicalGraphView.cxx
index ff6c5158c1bdac4af7ed428a8ef5ccc92af6fc3a..7cd708f5be18c55b502264ba2e52e874cfea700b 100644
--- a/Views/Infovis/vtkHierarchicalGraphView.cxx
+++ b/Views/Infovis/vtkHierarchicalGraphView.cxx
@@ -27,6 +27,7 @@
 #include "vtkTree.h"
 #include "vtkTrivialProducer.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkHierarchicalGraphView);
 //------------------------------------------------------------------------------
 vtkHierarchicalGraphView::vtkHierarchicalGraphView() = default;
@@ -200,3 +201,4 @@ void vtkHierarchicalGraphView::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkHierarchicalGraphView.h b/Views/Infovis/vtkHierarchicalGraphView.h
index 67024df734dd949f602aa87c582b09275165707a..3a7ae86fffe5e7792b93e33c7ba138cfd79d6c71 100644
--- a/Views/Infovis/vtkHierarchicalGraphView.h
+++ b/Views/Infovis/vtkHierarchicalGraphView.h
@@ -44,6 +44,7 @@
 #include "vtkGraphLayoutView.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderedHierarchyRepresentation;
 
 class VTKVIEWSINFOVIS_EXPORT vtkHierarchicalGraphView : public vtkGraphLayoutView
@@ -146,4 +147,5 @@ private:
   void operator=(const vtkHierarchicalGraphView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkIcicleView.cxx b/Views/Infovis/vtkIcicleView.cxx
index f597f75c5754d2486b0c90ad99d09b5177c8ebdb..ac30023bcabe4e7b11c6419dcda50185b4ea27a5 100644
--- a/Views/Infovis/vtkIcicleView.cxx
+++ b/Views/Infovis/vtkIcicleView.cxx
@@ -25,6 +25,7 @@
 #include "vtkStackedTreeLayoutStrategy.h"
 #include "vtkTreeMapToPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkIcicleView);
 //------------------------------------------------------------------------------
 vtkIcicleView::vtkIcicleView()
@@ -142,3 +143,4 @@ void vtkIcicleView::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkIcicleView.h b/Views/Infovis/vtkIcicleView.h
index d78135e442382b941a84987ff726c6b2f7b3ed9c..f4d2f8fbb6b30894819184f2fd84cef791a65a4d 100644
--- a/Views/Infovis/vtkIcicleView.h
+++ b/Views/Infovis/vtkIcicleView.h
@@ -34,6 +34,7 @@
 #include "vtkTreeAreaView.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKVIEWSINFOVIS_EXPORT vtkIcicleView : public vtkTreeAreaView
 {
 public:
@@ -84,4 +85,5 @@ private:
   void operator=(const vtkIcicleView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkInteractorStyleAreaSelectHover.cxx b/Views/Infovis/vtkInteractorStyleAreaSelectHover.cxx
index a9fa6020893bdbeb238359540b1b159c48647d45..cc56423afc3cce01525e88fdb4bcffc49b53509f 100644
--- a/Views/Infovis/vtkInteractorStyleAreaSelectHover.cxx
+++ b/Views/Infovis/vtkInteractorStyleAreaSelectHover.cxx
@@ -45,6 +45,7 @@
 #include "vtkSmartPointer.h"
 #define VTK_CREATE(type, name) vtkSmartPointer<type> name = vtkSmartPointer<type>::New()
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleAreaSelectHover);
 
 vtkCxxSetObjectMacro(vtkInteractorStyleAreaSelectHover, Layout, vtkAreaLayout);
@@ -339,3 +340,4 @@ double vtkInteractorStyleAreaSelectHover::GetHighLightWidth()
 {
   return this->HighlightActor->GetProperty()->GetLineWidth();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkInteractorStyleAreaSelectHover.h b/Views/Infovis/vtkInteractorStyleAreaSelectHover.h
index 6507c8ed12b67f94347ac2eac5c828a582e27d2c..69496baa66575f74a4bf6d112abd121853197897 100644
--- a/Views/Infovis/vtkInteractorStyleAreaSelectHover.h
+++ b/Views/Infovis/vtkInteractorStyleAreaSelectHover.h
@@ -37,6 +37,7 @@
 #include "vtkInteractorStyleRubberBand2D.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAreaLayout;
 class vtkBalloonRepresentation;
 class vtkPoints;
@@ -129,4 +130,5 @@ private:
   bool UseRectangularCoordinates;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkInteractorStyleTreeMapHover.cxx b/Views/Infovis/vtkInteractorStyleTreeMapHover.cxx
index a434a874bebbb34ec98b51119a4bc38f6cbbf51f..5c8ae0ee7238824428a3aab756a4fa67f0d52d4c 100644
--- a/Views/Infovis/vtkInteractorStyleTreeMapHover.cxx
+++ b/Views/Infovis/vtkInteractorStyleTreeMapHover.cxx
@@ -40,6 +40,7 @@
 #include "vtkVariant.h"
 #include "vtkWorldPointPicker.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkInteractorStyleTreeMapHover);
 
 //------------------------------------------------------------------------------
@@ -406,3 +407,4 @@ void vtkInteractorStyleTreeMapHover::HighLightCurrentSelectedItem()
     this->GetInteractor()->Render();
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkInteractorStyleTreeMapHover.h b/Views/Infovis/vtkInteractorStyleTreeMapHover.h
index 7f9c51054f420d244cc33fb18279af89441b79bc..43de3ffb65fcd6953ffa58c15723ebcaa86825c8 100644
--- a/Views/Infovis/vtkInteractorStyleTreeMapHover.h
+++ b/Views/Infovis/vtkInteractorStyleTreeMapHover.h
@@ -37,6 +37,7 @@
 #include "vtkInteractorStyleImage.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBalloonRepresentation;
 class vtkPoints;
 class vtkRenderer;
@@ -147,4 +148,5 @@ private:
   vtkIdType CurrentSelectedId;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkParallelCoordinatesHistogramRepresentation.cxx b/Views/Infovis/vtkParallelCoordinatesHistogramRepresentation.cxx
index dd084179db13f4205d24b33ce970fe4153587ade..2337302d0f7fb9973c6af5403af5857d04aeecd6 100644
--- a/Views/Infovis/vtkParallelCoordinatesHistogramRepresentation.cxx
+++ b/Views/Infovis/vtkParallelCoordinatesHistogramRepresentation.cxx
@@ -55,6 +55,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkUnsignedIntArray.h"
 #include "vtkViewTheme.h"
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParallelCoordinatesHistogramRepresentation);
 //------------------------------------------------------------------------------
 vtkParallelCoordinatesHistogramRepresentation::vtkParallelCoordinatesHistogramRepresentation()
@@ -574,3 +575,4 @@ vtkTable* vtkParallelCoordinatesHistogramRepresentation::GetOutlierData()
 {
   return this->OutlierFilter->GetOutputTable();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkParallelCoordinatesHistogramRepresentation.h b/Views/Infovis/vtkParallelCoordinatesHistogramRepresentation.h
index 57bae760e52df1c0914e72ecc4c4e9b31ecbff5d..945885f187d70e80e676b9c02162dafd5aa858c9 100644
--- a/Views/Infovis/vtkParallelCoordinatesHistogramRepresentation.h
+++ b/Views/Infovis/vtkParallelCoordinatesHistogramRepresentation.h
@@ -58,6 +58,7 @@
 #include "vtkParallelCoordinatesRepresentation.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkComputeHistogram2DOutliers;
 class vtkPairwiseExtractHistogram2D;
 class vtkExtractHistogram2D;
@@ -230,4 +231,5 @@ private:
   void operator=(const vtkParallelCoordinatesHistogramRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkParallelCoordinatesRepresentation.cxx b/Views/Infovis/vtkParallelCoordinatesRepresentation.cxx
index 174a50e53a1c80e6d39747f4b7c4f0e564a26530..09c8e382a1fcd6355b88736da8a552fac439b291 100644
--- a/Views/Infovis/vtkParallelCoordinatesRepresentation.cxx
+++ b/Views/Infovis/vtkParallelCoordinatesRepresentation.cxx
@@ -81,6 +81,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <sstream>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParallelCoordinatesRepresentation);
 
 //------------------------------------------------------------------------------
@@ -1986,3 +1987,4 @@ int vtkParallelCoordinatesRepresentation::GetNumberOfSelections()
 {
   return (int)this->I->SelectionActors.size();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkParallelCoordinatesRepresentation.h b/Views/Infovis/vtkParallelCoordinatesRepresentation.h
index 97304b4884a0c158c862e24378939d65f168d180..037fc7a2b1387cc6b66f2c3952712217b7efa353 100644
--- a/Views/Infovis/vtkParallelCoordinatesRepresentation.h
+++ b/Views/Infovis/vtkParallelCoordinatesRepresentation.h
@@ -53,6 +53,7 @@
 #include "vtkRenderedRepresentation.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkActor2D;
 class vtkArrayData;
@@ -396,4 +397,5 @@ private:
   void operator=(const vtkParallelCoordinatesRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkParallelCoordinatesView.cxx b/Views/Infovis/vtkParallelCoordinatesView.cxx
index 2db59b961e3cd91efbb2b047ca249a5fb4592d05..5a6ee1d88fe43281c9460f8f4b0c98df37d2a577 100644
--- a/Views/Infovis/vtkParallelCoordinatesView.cxx
+++ b/Views/Infovis/vtkParallelCoordinatesView.cxx
@@ -49,6 +49,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <cassert>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkParallelCoordinatesView);
 
 //------------------------------------------------------------------------------
@@ -929,3 +930,4 @@ void vtkParallelCoordinatesView::ApplyViewTheme(vtkViewTheme* theme)
   this->Balloon->GetFrameProperty()->SetColor(theme->GetBackgroundColor()); // CellColor());
   this->Balloon->GetTextProperty()->SetColor(theme->GetCellColor());        // BackgroundColor());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkParallelCoordinatesView.h b/Views/Infovis/vtkParallelCoordinatesView.h
index ff9813d1f8c7719b8c0bd5bdc07428a37996dba3..a0213d92e778b2580f1988bae056e13bc0b7726a 100644
--- a/Views/Infovis/vtkParallelCoordinatesView.h
+++ b/Views/Infovis/vtkParallelCoordinatesView.h
@@ -45,6 +45,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include "vtkRenderView.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 class vtkOutlineSource;
 class vtkParallelCoordinatesRepresentation;
@@ -180,4 +181,5 @@ private:
   void operator=(const vtkParallelCoordinatesView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkRenderView.cxx b/Views/Infovis/vtkRenderView.cxx
index 24ef2b8c8f05d20066a3362d2ff4a8f0b6d68a10..0d21dfcdfb4ead84e3987748146f629f1a66e689 100644
--- a/Views/Infovis/vtkRenderView.cxx
+++ b/Views/Infovis/vtkRenderView.cxx
@@ -60,6 +60,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderView);
 vtkCxxSetObjectMacro(vtkRenderView, Transform, vtkAbstractTransform);
 vtkCxxSetObjectMacro(vtkRenderView, IconTexture, vtkTexture);
@@ -739,3 +740,4 @@ void vtkRenderView::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "InteractionMode: " << this->InteractionMode << endl;
   os << indent << "RenderOnMouseMove: " << this->RenderOnMouseMove << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkRenderView.h b/Views/Infovis/vtkRenderView.h
index c42a8c6d3fcdacd4b405c53c2ae6ffc8ce01774c..8006dd07181e3ca927ad1c966a4e606b0d1d412c 100644
--- a/Views/Infovis/vtkRenderView.h
+++ b/Views/Infovis/vtkRenderView.h
@@ -38,6 +38,7 @@
 #include "vtkSmartPointer.h"       // For SP ivars
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAbstractTransform;
 class vtkActor2D;
 class vtkAlgorithmOutput;
@@ -304,4 +305,5 @@ private:
   void operator=(const vtkRenderView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkRenderedGraphRepresentation.cxx b/Views/Infovis/vtkRenderedGraphRepresentation.cxx
index 124d2d23141d868a09addf559fa24e817725b76a..9c88e54e42439d574f806f5853ab8689f9a21da7 100644
--- a/Views/Infovis/vtkRenderedGraphRepresentation.cxx
+++ b/Views/Infovis/vtkRenderedGraphRepresentation.cxx
@@ -84,6 +84,7 @@
 #include <algorithm>
 #include <cctype>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderedGraphRepresentation);
 
 vtkRenderedGraphRepresentation::vtkRenderedGraphRepresentation()
@@ -1445,3 +1446,4 @@ void vtkRenderedGraphRepresentation::PrintSelf(ostream& os, vtkIndent indent)
      << "HideEdgeLabelsOnInteraction: " << (this->HideEdgeLabelsOnInteraction ? "On" : "Off")
      << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkRenderedGraphRepresentation.h b/Views/Infovis/vtkRenderedGraphRepresentation.h
index d26bf91ce185a62a5be6dfcf973396f465caf3ca..9de262319d6032e22ed924e114ff646970d4f18d 100644
--- a/Views/Infovis/vtkRenderedGraphRepresentation.h
+++ b/Views/Infovis/vtkRenderedGraphRepresentation.h
@@ -30,6 +30,7 @@
 #include "vtkSmartPointer.h"       // for SP ivars
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkApplyColors;
 class vtkApplyIcons;
@@ -467,4 +468,5 @@ private:
   void operator=(const vtkRenderedGraphRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkRenderedHierarchyRepresentation.cxx b/Views/Infovis/vtkRenderedHierarchyRepresentation.cxx
index fcba8d25674ee0e598df8c3ae6789ff25fc1579e..c1e3453f1a895bca940eca08668596f380a0b7bc 100644
--- a/Views/Infovis/vtkRenderedHierarchyRepresentation.cxx
+++ b/Views/Infovis/vtkRenderedHierarchyRepresentation.cxx
@@ -43,6 +43,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderedHierarchyRepresentation::Internals
 {
 public:
@@ -313,3 +314,4 @@ void vtkRenderedHierarchyRepresentation::PrintSelf(ostream& os, vtkIndent indent
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkRenderedHierarchyRepresentation.h b/Views/Infovis/vtkRenderedHierarchyRepresentation.h
index 851da31ec5ae94ac4d1e660e8f5cdf9d67eb0098..bad76b986e7c35ec43258e09e34a84a834f20eed 100644
--- a/Views/Infovis/vtkRenderedHierarchyRepresentation.h
+++ b/Views/Infovis/vtkRenderedHierarchyRepresentation.h
@@ -29,6 +29,7 @@
 #include "vtkRenderedGraphRepresentation.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKVIEWSINFOVIS_EXPORT vtkRenderedHierarchyRepresentation
   : public vtkRenderedGraphRepresentation
 {
@@ -143,4 +144,5 @@ private:
   void operator=(const vtkRenderedHierarchyRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkRenderedRepresentation.cxx b/Views/Infovis/vtkRenderedRepresentation.cxx
index 079c14a8cca2baad16f1a6662212aa2d3ff9ab96..2b8d0751e528e4ba4be2d932a13115f6dc337a2e 100644
--- a/Views/Infovis/vtkRenderedRepresentation.cxx
+++ b/Views/Infovis/vtkRenderedRepresentation.cxx
@@ -32,6 +32,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderedRepresentation);
 
 class vtkRenderedRepresentation::Internals
@@ -106,3 +107,4 @@ void vtkRenderedRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << indent << "LabelRenderMode: " << this->LabelRenderMode << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkRenderedRepresentation.h b/Views/Infovis/vtkRenderedRepresentation.h
index 870cf969b727b9cf7b0ed2e336d74307c8d1c573..934d0e08693342d3a34e861afd0827846844c5f8 100644
--- a/Views/Infovis/vtkRenderedRepresentation.h
+++ b/Views/Infovis/vtkRenderedRepresentation.h
@@ -30,6 +30,7 @@
 #include "vtkSmartPointer.h"       // for SP ivars
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkApplyColors;
 class vtkProp;
 class vtkRenderView;
@@ -101,4 +102,5 @@ private:
   Internals* Implementation;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkRenderedSurfaceRepresentation.cxx b/Views/Infovis/vtkRenderedSurfaceRepresentation.cxx
index 4d04b2463f0e6a49932f30a8caae4b0154bb176f..762758f84bde5c9ac7c1a00bf09443f776f1bbd1 100644
--- a/Views/Infovis/vtkRenderedSurfaceRepresentation.cxx
+++ b/Views/Infovis/vtkRenderedSurfaceRepresentation.cxx
@@ -43,6 +43,7 @@
 #include "vtkTransformFilter.h"
 #include "vtkViewTheme.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkRenderedSurfaceRepresentation);
 //------------------------------------------------------------------------------
 vtkRenderedSurfaceRepresentation::vtkRenderedSurfaceRepresentation()
@@ -225,3 +226,4 @@ void vtkRenderedSurfaceRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Mapper:" << endl;
   this->Mapper->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkRenderedSurfaceRepresentation.h b/Views/Infovis/vtkRenderedSurfaceRepresentation.h
index de99ab4443a734f53436ea838e4fdae7a2623652..92fc2d0f41d5e16934ba48baffa71c616e585e7a 100644
--- a/Views/Infovis/vtkRenderedSurfaceRepresentation.h
+++ b/Views/Infovis/vtkRenderedSurfaceRepresentation.h
@@ -34,6 +34,7 @@
 #include "vtkRenderedRepresentation.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkAlgorithmOutput;
 class vtkApplyColors;
@@ -118,4 +119,5 @@ private:
   void operator=(const vtkRenderedSurfaceRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkRenderedTreeAreaRepresentation.cxx b/Views/Infovis/vtkRenderedTreeAreaRepresentation.cxx
index 105e8cf4d3ff0e2fe9b7b0f4f21d4866bcf254ca..d1dc06ac4c12c288f473399fc57c50296f982f77 100644
--- a/Views/Infovis/vtkRenderedTreeAreaRepresentation.cxx
+++ b/Views/Infovis/vtkRenderedTreeAreaRepresentation.cxx
@@ -76,6 +76,7 @@
 
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkRenderedTreeAreaRepresentation::Internals
 {
 public:
@@ -1041,3 +1042,4 @@ void vtkRenderedTreeAreaRepresentation::PrintSelf(ostream& os, vtkIndent indent)
     os << "(none)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkRenderedTreeAreaRepresentation.h b/Views/Infovis/vtkRenderedTreeAreaRepresentation.h
index cf95373b77330c044102fe5caa4bc1f86a29cabe..04aee32f086faa281e5827a447bbbcdd70353b67 100644
--- a/Views/Infovis/vtkRenderedTreeAreaRepresentation.h
+++ b/Views/Infovis/vtkRenderedTreeAreaRepresentation.h
@@ -29,6 +29,7 @@
 #include "vtkRenderedRepresentation.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkActor2D;
 class vtkAreaLayout;
@@ -366,4 +367,5 @@ private:
   Internals* Implementation;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkSCurveSpline.cxx b/Views/Infovis/vtkSCurveSpline.cxx
index ea0943054c749c0740f8cbea4045ceda77b78ad2..5a118d0ba9ccd7df62271c718aff960724c45f49 100644
--- a/Views/Infovis/vtkSCurveSpline.cxx
+++ b/Views/Infovis/vtkSCurveSpline.cxx
@@ -24,6 +24,7 @@ PURPOSE.  See the above copyright notice for more information.
 #include <algorithm> // for std::min()/std::max()
 #include <cassert>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkSCurveSpline);
 
 //------------------------------------------------------------------------------
@@ -246,3 +247,4 @@ void vtkSCurveSpline::PrintSelf(ostream& os, vtkIndent indent)
   this->Superclass::PrintSelf(os, indent);
   os << "NodeWeight: " << this->NodeWeight << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkSCurveSpline.h b/Views/Infovis/vtkSCurveSpline.h
index 81ffc9414520d70a6f2d0844e66c9754fa1e3ca7..2ae9c2dc92821cf2464a14e759e62fdf2771374a 100644
--- a/Views/Infovis/vtkSCurveSpline.h
+++ b/Views/Infovis/vtkSCurveSpline.h
@@ -36,6 +36,7 @@
 #include "vtkSpline.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKVIEWSINFOVIS_EXPORT vtkSCurveSpline : public vtkSpline
 {
 public:
@@ -73,4 +74,5 @@ private:
   void operator=(const vtkSCurveSpline&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkTanglegramItem.cxx b/Views/Infovis/vtkTanglegramItem.cxx
index 39a5f5bd9c35a9352bd481c9f5cdb744b3b2ec18..7f13d26050d60e9e44cac4a66e715e6bc051bd55 100644
--- a/Views/Infovis/vtkTanglegramItem.cxx
+++ b/Views/Infovis/vtkTanglegramItem.cxx
@@ -32,6 +32,7 @@
 
 #include <queue>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTanglegramItem);
 
 //------------------------------------------------------------------------------
@@ -718,3 +719,4 @@ void vtkTanglegramItem::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkTanglegramItem.h b/Views/Infovis/vtkTanglegramItem.h
index 6a6a874f76a8d445ae47b831fc2fd3d56c60c05d..ac0a7f0c2cd41791f3c8e871c8035781f40428d0 100644
--- a/Views/Infovis/vtkTanglegramItem.h
+++ b/Views/Infovis/vtkTanglegramItem.h
@@ -35,6 +35,7 @@
 #include "vtkSmartPointer.h" // For SmartPointer ivars
 #include "vtkTable.h"        // For get/set
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDendrogramItem;
 class vtkLookupTable;
 class vtkStringArray;
@@ -229,4 +230,5 @@ private:
   void operator=(const vtkTanglegramItem&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkTreeAreaView.cxx b/Views/Infovis/vtkTreeAreaView.cxx
index a73239cb050d99b3fb493c8a950fc9a63b5f9e09..9f5ed0ffe160d9ee523ece06dee74f4f691e0e5e 100644
--- a/Views/Infovis/vtkTreeAreaView.cxx
+++ b/Views/Infovis/vtkTreeAreaView.cxx
@@ -36,6 +36,7 @@
 #include "vtkTextProperty.h"
 #include "vtkTree.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeAreaView);
 //------------------------------------------------------------------------------
 vtkTreeAreaView::vtkTreeAreaView()
@@ -365,3 +366,4 @@ void vtkTreeAreaView::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkTreeAreaView.h b/Views/Infovis/vtkTreeAreaView.h
index 976c5c751b9fce791a3bfc98ea2f150df0965de6..46efbb8ff3c360f1d97c55f370b88750015afcf9 100644
--- a/Views/Infovis/vtkTreeAreaView.h
+++ b/Views/Infovis/vtkTreeAreaView.h
@@ -43,6 +43,7 @@
 #include "vtkRenderView.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAreaLayoutStrategy;
 class vtkGraph;
 class vtkLabeledDataMapper;
@@ -261,4 +262,5 @@ private:
   void operator=(const vtkTreeAreaView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkTreeHeatmapItem.cxx b/Views/Infovis/vtkTreeHeatmapItem.cxx
index 9a62367629bda89a631ed22275d042f9d0fde468..814f709c7626d8bf3922bfddba527658b610f8d3 100644
--- a/Views/Infovis/vtkTreeHeatmapItem.cxx
+++ b/Views/Infovis/vtkTreeHeatmapItem.cxx
@@ -25,6 +25,7 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeHeatmapItem);
 
 //------------------------------------------------------------------------------
@@ -614,3 +615,4 @@ void vtkTreeHeatmapItem::PrintSelf(ostream& os, vtkIndent indent)
   this->Dendrogram->PrintSelf(os, indent);
   this->Heatmap->PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkTreeHeatmapItem.h b/Views/Infovis/vtkTreeHeatmapItem.h
index a1c0a6eef8ece68bd677b88a372b54fb09cbd467..4b4113040b5d980c54b9e0c076a8f9b6df29ac10 100644
--- a/Views/Infovis/vtkTreeHeatmapItem.h
+++ b/Views/Infovis/vtkTreeHeatmapItem.h
@@ -44,6 +44,7 @@
 #include <map>               // For string lookup tables
 #include <vector>            // For lookup tables
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDendrogramItem;
 class vtkHeatmapItem;
 class vtkTable;
@@ -229,4 +230,5 @@ private:
   vtkMTimeType TreeHeatmapBuildTime;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkTreeMapView.cxx b/Views/Infovis/vtkTreeMapView.cxx
index 3a26cc005d0666212ae4406c0f1c6512bf20ff79..69746c57b3e7f25862b2efec1f414cde228a3af4 100644
--- a/Views/Infovis/vtkTreeMapView.cxx
+++ b/Views/Infovis/vtkTreeMapView.cxx
@@ -31,6 +31,7 @@
 #include "vtkTextProperty.h"
 #include "vtkTreeMapToPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeMapView);
 //------------------------------------------------------------------------------
 vtkTreeMapView::vtkTreeMapView()
@@ -131,3 +132,4 @@ void vtkTreeMapView::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkTreeMapView.h b/Views/Infovis/vtkTreeMapView.h
index c45036668a98e9009f1ae946cf10d0a379b34159..3b073dd167bd603b592693863ae39821828654cf 100644
--- a/Views/Infovis/vtkTreeMapView.h
+++ b/Views/Infovis/vtkTreeMapView.h
@@ -33,6 +33,7 @@
 #include "vtkTreeAreaView.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkBoxLayoutStrategy;
 class vtkSliceAndDiceLayoutStrategy;
 class vtkSquarifyLayoutStrategy;
@@ -76,4 +77,5 @@ private:
   void operator=(const vtkTreeMapView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkTreeRingView.cxx b/Views/Infovis/vtkTreeRingView.cxx
index 04f2630dd1f68a1618009fc0a4c8f1f2f8e03970..2fda6de5c9c23a22ef85c5dd62125bb7a0dff320 100644
--- a/Views/Infovis/vtkTreeRingView.cxx
+++ b/Views/Infovis/vtkTreeRingView.cxx
@@ -26,6 +26,7 @@
 #include "vtkStackedTreeLayoutStrategy.h"
 #include "vtkTreeRingToPolyData.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkTreeRingView);
 //------------------------------------------------------------------------------
 vtkTreeRingView::vtkTreeRingView() = default;
@@ -142,3 +143,4 @@ void vtkTreeRingView::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkTreeRingView.h b/Views/Infovis/vtkTreeRingView.h
index c515467046ba0a5b376f5bdadf72badbba177b3e..0fc7b3d059a186c7dc78aadd30a66d0d5e46e34f 100644
--- a/Views/Infovis/vtkTreeRingView.h
+++ b/Views/Infovis/vtkTreeRingView.h
@@ -42,6 +42,7 @@
 #include "vtkTreeAreaView.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKVIEWSINFOVIS_EXPORT vtkTreeRingView : public vtkTreeAreaView
 {
 public:
@@ -98,4 +99,5 @@ private:
   void operator=(const vtkTreeRingView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Infovis/vtkViewUpdater.cxx b/Views/Infovis/vtkViewUpdater.cxx
index 79ec8c965e528d4cebd173cf265a32f6f7f49605..5007307f60db9de8ac6776a8b5d7b7d6b98d964f 100644
--- a/Views/Infovis/vtkViewUpdater.cxx
+++ b/Views/Infovis/vtkViewUpdater.cxx
@@ -29,6 +29,7 @@
 #include <algorithm>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkViewUpdater);
 
 class vtkViewUpdater::vtkViewUpdaterInternals : public vtkCommand
@@ -86,3 +87,4 @@ void vtkViewUpdater::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Infovis/vtkViewUpdater.h b/Views/Infovis/vtkViewUpdater.h
index 4789c804e652ffacbf535e73e45ed0d002888277..c769e01519e2bac47e1afbc22562d09193f2486b 100644
--- a/Views/Infovis/vtkViewUpdater.h
+++ b/Views/Infovis/vtkViewUpdater.h
@@ -34,6 +34,7 @@
 #include "vtkObject.h"
 #include "vtkViewsInfovisModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAnnotationLink;
 class vtkView;
 
@@ -61,4 +62,5 @@ private:
   vtkViewUpdaterInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Qt/vtkQtAnnotationView.cxx b/Views/Qt/vtkQtAnnotationView.cxx
index 5fb97dc03b99f38297b8ef05aa58f50d603b6373..8db452346956d120aed4166c1163afa7b8f95184 100644
--- a/Views/Qt/vtkQtAnnotationView.cxx
+++ b/Views/Qt/vtkQtAnnotationView.cxx
@@ -48,6 +48,7 @@
 #include "vtkTable.h"
 #include "vtkVariantArray.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQtAnnotationView);
 
 //------------------------------------------------------------------------------
@@ -158,3 +159,4 @@ void vtkQtAnnotationView::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Qt/vtkQtAnnotationView.h b/Views/Qt/vtkQtAnnotationView.h
index 57b3db0a9c1a51306855da5c4a50a3d43e8eb405..08f7e0bb6b5eb605fe36c2f86619a2b0a5d65cd9 100644
--- a/Views/Qt/vtkQtAnnotationView.h
+++ b/Views/Qt/vtkQtAnnotationView.h
@@ -36,11 +36,12 @@
 
 #include <QPointer> // Needed to hold the view
 
-class vtkQtAnnotationLayersModelAdapter;
-
 class QItemSelection;
 class QTableView;
 
+VTK_ABI_NAMESPACE_BEGIN
+class vtkQtAnnotationLayersModelAdapter;
+
 class VTKVIEWSQT_EXPORT vtkQtAnnotationView : public vtkQtView
 {
   Q_OBJECT
@@ -80,4 +81,5 @@ private:
   void operator=(const vtkQtAnnotationView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Qt/vtkQtListView.cxx b/Views/Qt/vtkQtListView.cxx
index 8b4c57cbdbf06abaabae197cf7abe3bcc0d8ebd4..f89a22eb4299e94b73c1eaa4836a746d1ba9827f 100644
--- a/Views/Qt/vtkQtListView.cxx
+++ b/Views/Qt/vtkQtListView.cxx
@@ -49,6 +49,7 @@
 #include "vtkTable.h"
 #include "vtkViewTheme.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQtListView);
 
 //------------------------------------------------------------------------------
@@ -374,3 +375,4 @@ void vtkQtListView::PrintSelf(ostream& os, vtkIndent indent)
 
   os << indent << "ApplyRowColors: " << (this->ApplyRowColors ? "true" : "false") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Qt/vtkQtListView.h b/Views/Qt/vtkQtListView.h
index 47c144cb3cfb85b4ae740b6bda59ce36c4b1dc18..9c89d6ac5c3fe05515699ed8c91a0b6f80b882bd 100644
--- a/Views/Qt/vtkQtListView.h
+++ b/Views/Qt/vtkQtListView.h
@@ -39,11 +39,13 @@
 #include <QImage>            // Needed for the icon methods
 #include <QPointer>          // Needed for the internal list view
 
-class vtkApplyColors;
-class vtkDataObjectToTable;
 class QItemSelection;
 class QSortFilterProxyModel;
 class QListView;
+
+VTK_ABI_NAMESPACE_BEGIN
+class vtkApplyColors;
+class vtkDataObjectToTable;
 class vtkQtTableModelAdapter;
 
 class VTKVIEWSQT_EXPORT vtkQtListView : public vtkQtView
@@ -188,4 +190,5 @@ private:
   void operator=(const vtkQtListView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Qt/vtkQtRecordView.cxx b/Views/Qt/vtkQtRecordView.cxx
index 2e9d42641ce3ccad438f6c89efd9a126a92d7dc1..f5ddb985d4b6f72fdb9fd47c76a7fbee2f024197 100644
--- a/Views/Qt/vtkQtRecordView.cxx
+++ b/Views/Qt/vtkQtRecordView.cxx
@@ -37,6 +37,7 @@
 #include "vtkSmartPointer.h"
 #include "vtkTable.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQtRecordView);
 
 //------------------------------------------------------------------------------
@@ -162,3 +163,4 @@ void vtkQtRecordView::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Qt/vtkQtRecordView.h b/Views/Qt/vtkQtRecordView.h
index 53dada6b50df578a21ff4aee0e9c7365df35a5c9..d2e3c8a6d318c0d0966b3a5adcf6f516c691fa37 100644
--- a/Views/Qt/vtkQtRecordView.h
+++ b/Views/Qt/vtkQtRecordView.h
@@ -40,6 +40,8 @@
 #include <QPointer>           // Needed for the text widget member
 
 class QTextEdit;
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataObjectToTable;
 
 class VTKVIEWSQT_EXPORT vtkQtRecordView : public vtkQtView
@@ -110,4 +112,5 @@ private:
   vtkMTimeType LastMTime;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Qt/vtkQtTableRepresentation.cxx b/Views/Qt/vtkQtTableRepresentation.cxx
index cb9b05ab06657b7ab2672507868288ad791589a0..882fd8eef01cac6b4af96fa220e21b3983713ded 100644
--- a/Views/Qt/vtkQtTableRepresentation.cxx
+++ b/Views/Qt/vtkQtTableRepresentation.cxx
@@ -37,6 +37,7 @@
 //------------------------------------------------------------------------------
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkCxxSetObjectMacro(vtkQtTableRepresentation, ColorTable, vtkLookupTable);
 
 //------------------------------------------------------------------------------
@@ -266,3 +267,4 @@ void vtkQtTableRepresentation::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "Series color table: ";
   this->SeriesColors->PrintSelf(os, indent.GetNextIndent());
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Qt/vtkQtTableRepresentation.h b/Views/Qt/vtkQtTableRepresentation.h
index e852c0093d58950297b837fea22707649039a3c3..3beaf1e60a11be83fd84fe40d93eaa35a7965a86 100644
--- a/Views/Qt/vtkQtTableRepresentation.h
+++ b/Views/Qt/vtkQtTableRepresentation.h
@@ -55,6 +55,7 @@
 #include "vtkDataRepresentation.h"
 #include "vtkViewsQtModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDoubleArray;
 class vtkLookupTable;
 class vtkQtTableModelAdapter;
@@ -143,4 +144,5 @@ private:
   void operator=(const vtkQtTableRepresentation&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Qt/vtkQtTableView.cxx b/Views/Qt/vtkQtTableView.cxx
index 823a743fd233adc39a3ed49223af6bd711fcded3..0220a72708a4005ae05310f2bb6fc96cf1ce7d80 100644
--- a/Views/Qt/vtkQtTableView.cxx
+++ b/Views/Qt/vtkQtTableView.cxx
@@ -50,6 +50,7 @@
 #include "vtkTable.h"
 #include "vtkViewTheme.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQtTableView);
 
 //------------------------------------------------------------------------------
@@ -618,3 +619,4 @@ void vtkQtTableView::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "SortSelectionToTop: " << (this->SortSelectionToTop ? "true" : "false") << endl;
   os << indent << "ColumnName: " << (this->ColumnName ? this->ColumnName : "(none)") << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Qt/vtkQtTableView.h b/Views/Qt/vtkQtTableView.h
index 4b521e7c1364a0f7e22e7b1e34dfc0f4b0dc7a46..50fb86275124b67ebd55bc938286235ef59b6a99 100644
--- a/Views/Qt/vtkQtTableView.h
+++ b/Views/Qt/vtkQtTableView.h
@@ -38,13 +38,15 @@
 #include "vtkSmartPointer.h" // Needed for member variables
 #include <QPointer>          // Needed to hold the view
 
+class QItemSelection;
+class QSortFilterProxyModel;
+class QTableView;
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkAddMembershipArray;
 class vtkApplyColors;
 class vtkDataObjectToTable;
 class vtkIdTypeArray;
-class QItemSelection;
-class QSortFilterProxyModel;
-class QTableView;
 class vtkQtTableModelAdapter;
 
 class VTKVIEWSQT_EXPORT vtkQtTableView : public vtkQtView
@@ -250,4 +252,5 @@ private:
   void operator=(const vtkQtTableView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Qt/vtkQtTreeView.cxx b/Views/Qt/vtkQtTreeView.cxx
index 2720324e2f814978d91b3817833966fea04efa40..16c2dfa79cac85e78ac4229b1ee39c77105b632b 100644
--- a/Views/Qt/vtkQtTreeView.cxx
+++ b/Views/Qt/vtkQtTreeView.cxx
@@ -49,6 +49,7 @@
 #include "vtkTree.h"
 #include "vtkViewTheme.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkQtTreeView);
 
 //------------------------------------------------------------------------------
@@ -544,3 +545,4 @@ void vtkQtTreeView::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Qt/vtkQtTreeView.h b/Views/Qt/vtkQtTreeView.h
index de5fdd3c13f385c8a1e7ff064c8d5e7ab5662354..4489f5df768c828e7d9be15183a45b44ba91a8bf 100644
--- a/Views/Qt/vtkQtTreeView.h
+++ b/Views/Qt/vtkQtTreeView.h
@@ -41,15 +41,17 @@
 
 class QAbstractItemDelegate;
 class QAbstractItemView;
-class QFilterTreeProxyModel;
 class QColumnView;
 class QItemSelection;
 class QModelIndex;
 class QTreeView;
-class vtkApplyColors;
+class QItemSelectionModel;
 class QVBoxLayout;
+
+VTK_ABI_NAMESPACE_BEGIN
+class QFilterTreeProxyModel;
+class vtkApplyColors;
 class vtkQtTreeModelAdapter;
-class QItemSelectionModel;
 
 class VTKVIEWSQT_EXPORT vtkQtTreeView : public vtkQtView
 {
@@ -228,4 +230,5 @@ private:
   void operator=(const vtkQtTreeView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Views/Qt/vtkQtView.cxx b/Views/Qt/vtkQtView.cxx
index 4ea1d08e2e6f52c8a903316bc8807b930716b87d..3b1067db6934138f88e61ac7331f4a028e83a4fa 100644
--- a/Views/Qt/vtkQtView.cxx
+++ b/Views/Qt/vtkQtView.cxx
@@ -18,6 +18,7 @@
 #include <QWidget>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkQtView::vtkQtView() = default;
 
 //------------------------------------------------------------------------------
@@ -46,3 +47,4 @@ bool vtkQtView::SaveImage(const char* filename)
 {
   return this->GetWidget() != nullptr ? this->GetWidget()->grab().save(filename) : false;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Views/Qt/vtkQtView.h b/Views/Qt/vtkQtView.h
index 323cfb7470f1d754166cbb35eae042795a26ee03..5cb53f50db945eb1a99753ad9dfc5810ae9104c8 100644
--- a/Views/Qt/vtkQtView.h
+++ b/Views/Qt/vtkQtView.h
@@ -28,6 +28,7 @@
 
 #include <QObject> // Needed to hook into Qt
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKVIEWSQT_EXPORT vtkQtView
   : public QObject
   , public vtkView
@@ -74,5 +75,6 @@ private:
   void operator=(const vtkQtView&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
 // VTK-HeaderTest-Exclude: vtkQtView.h
diff --git a/Web/Core/vtkDataEncoder.cxx b/Web/Core/vtkDataEncoder.cxx
index b6bedb61f581280e7fc0d0b8e66ee73543e242dd..4f2c3450f8e9affc6e488b8c464e236850b1f304 100644
--- a/Web/Core/vtkDataEncoder.cxx
+++ b/Web/Core/vtkDataEncoder.cxx
@@ -40,6 +40,7 @@
 
 namespace detail
 {
+VTK_ABI_NAMESPACE_BEGIN
 
 struct vtkWork
 {
@@ -221,8 +222,10 @@ public:
     });
   }
 };
+VTK_ABI_NAMESPACE_END
 } // namespace detail
 
+VTK_ABI_NAMESPACE_BEGIN
 //****************************************************************************
 class vtkDataEncoder::vtkInternals
 {
@@ -338,3 +341,4 @@ void vtkDataEncoder::Finalize()
 {
   this->Internals.reset(new vtkDataEncoder::vtkInternals(0));
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Web/Core/vtkDataEncoder.h b/Web/Core/vtkDataEncoder.h
index d67a0d4b7a767bc3993fe879993ae6652207cd5b..00571560166064f3111df2d185433059c1e7f0b7 100644
--- a/Web/Core/vtkDataEncoder.h
+++ b/Web/Core/vtkDataEncoder.h
@@ -38,6 +38,7 @@
 #include "vtkWebCoreModule.h" // needed for exports
 #include <memory>             // for std::unique_ptr
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkUnsignedCharArray;
 class vtkImageData;
 
@@ -117,4 +118,5 @@ private:
   std::unique_ptr<vtkInternals> Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Web/Core/vtkObjectIdMap.cxx b/Web/Core/vtkObjectIdMap.cxx
index 404e10df12549fd2d3088834dde15b863b86fc3d..2cb9be7ce87fb71bc6b65c8ec58aac1f0587d7d7 100644
--- a/Web/Core/vtkObjectIdMap.cxx
+++ b/Web/Core/vtkObjectIdMap.cxx
@@ -22,6 +22,7 @@
 #include <set>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 struct vtkObjectIdMap::vtkInternals
 {
   std::map<vtkTypeUInt32, vtkSmartPointer<vtkObject>> Object;
@@ -131,3 +132,4 @@ bool vtkObjectIdMap::FreeObjectById(vtkTypeUInt32 id)
   }
   return found;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Web/Core/vtkObjectIdMap.h b/Web/Core/vtkObjectIdMap.h
index 580b30332f50e11a2f72f4f420e3a4b721bb807f..3e2b52e07c7bfdb6daa85f042510dd5d93838ba0 100644
--- a/Web/Core/vtkObjectIdMap.h
+++ b/Web/Core/vtkObjectIdMap.h
@@ -24,6 +24,7 @@
 #include "vtkObject.h"
 #include "vtkWebCoreModule.h" // needed for exports
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKWEBCORE_EXPORT vtkObjectIdMap : public vtkObject
 {
 public:
@@ -81,4 +82,5 @@ private:
   vtkInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Web/Core/vtkWebApplication.cxx b/Web/Core/vtkWebApplication.cxx
index e87193e79ad2474f6efd5beca33f6c29c800b827..f70d9c8b7c60d0ac3848ad037209a6b13791293d 100644
--- a/Web/Core/vtkWebApplication.cxx
+++ b/Web/Core/vtkWebApplication.cxx
@@ -41,6 +41,7 @@
 #include <map>
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkWebApplication::vtkInternals
 {
 public:
@@ -472,3 +473,4 @@ std::string vtkWebApplication::GetObjectId(vtkObject* obj)
   oss << std::hex << static_cast<void*>(obj);
   return oss.str();
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Web/Core/vtkWebApplication.h b/Web/Core/vtkWebApplication.h
index 3df88535fa6d3f7f0418d5a2a7954c65b6fd7fd6..1f6ab733a41947f05cc24d01f814f1c2abd38a17 100644
--- a/Web/Core/vtkWebApplication.h
+++ b/Web/Core/vtkWebApplication.h
@@ -28,6 +28,7 @@
 #include "vtkWebCoreModule.h" // needed for exports
 #include <string>             // needed for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkObjectIdMap;
 class vtkRenderWindow;
 class vtkUnsignedCharArray;
@@ -151,4 +152,5 @@ private:
   vtkInternals* Internals;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Web/Core/vtkWebInteractionEvent.cxx b/Web/Core/vtkWebInteractionEvent.cxx
index 0220850a99a238d27f67a92a46f6ba0ee8e6c29d..77ae8a2cd588203c63f6e5d15d8a15c4080504ab 100644
--- a/Web/Core/vtkWebInteractionEvent.cxx
+++ b/Web/Core/vtkWebInteractionEvent.cxx
@@ -16,6 +16,7 @@
 
 #include "vtkObjectFactory.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWebInteractionEvent);
 //------------------------------------------------------------------------------
 vtkWebInteractionEvent::vtkWebInteractionEvent()
@@ -44,3 +45,4 @@ void vtkWebInteractionEvent::PrintSelf(ostream& os, vtkIndent indent)
   os << indent << "RepeatCount: " << this->RepeatCount << endl;
   os << indent << "Scroll: " << this->Scroll << endl;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Web/Core/vtkWebInteractionEvent.h b/Web/Core/vtkWebInteractionEvent.h
index fe3737223586edc766091987c274fb54110d094e..938ea5fdfe01c077c4c4712d29960df4c78c325d 100644
--- a/Web/Core/vtkWebInteractionEvent.h
+++ b/Web/Core/vtkWebInteractionEvent.h
@@ -24,6 +24,7 @@
 #include "vtkObject.h"
 #include "vtkWebCoreModule.h" // needed for exports
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKWEBCORE_EXPORT vtkWebInteractionEvent : public vtkObject
 {
 public:
@@ -103,4 +104,5 @@ private:
   void operator=(const vtkWebInteractionEvent&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Web/Core/vtkWebUtilities.cxx b/Web/Core/vtkWebUtilities.cxx
index e7d830d69bf0ba097eb636ffc4f4c8b2ec477226..2f00704004f6de1b4e1ae79d7e307d332dd75343 100644
--- a/Web/Core/vtkWebUtilities.cxx
+++ b/Web/Core/vtkWebUtilities.cxx
@@ -26,6 +26,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWebUtilities);
 //------------------------------------------------------------------------------
 vtkWebUtilities::vtkWebUtilities() = default;
@@ -126,3 +127,4 @@ void vtkWebUtilities::ProcessRMIs(int reportError, int dont_loop)
 
   Py_END_ALLOW_THREADS
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Web/Core/vtkWebUtilities.h b/Web/Core/vtkWebUtilities.h
index 68f640f6efe867777ce4a472d6158b257120cae9..7c83b1ab855ec1ac34e11553772266739790e585 100644
--- a/Web/Core/vtkWebUtilities.h
+++ b/Web/Core/vtkWebUtilities.h
@@ -27,6 +27,7 @@
 #include "vtkWebCoreModule.h" // needed for exports
 #include <string>             // for std::string
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkDataSet;
 
 class VTKWEBCORE_EXPORT vtkWebUtilities : public vtkObject
@@ -59,4 +60,5 @@ private:
   void operator=(const vtkWebUtilities&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Web/WebGLExporter/vtkPVWebGLExporter.cxx b/Web/WebGLExporter/vtkPVWebGLExporter.cxx
index 7ced67c64d511773cd3aa83720c4727b8ef52bb2..8cb6283d08ecbdb408ac8770581ffab23a1951ee 100644
--- a/Web/WebGLExporter/vtkPVWebGLExporter.cxx
+++ b/Web/WebGLExporter/vtkPVWebGLExporter.cxx
@@ -31,6 +31,7 @@
 #include <vtksys/FStream.hxx>
 #include <vtksys/SystemTools.hxx>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkPVWebGLExporter);
 //------------------------------------------------------------------------------
 vtkPVWebGLExporter::vtkPVWebGLExporter()
@@ -133,3 +134,4 @@ void vtkPVWebGLExporter::PrintSelf(ostream& os, vtkIndent indent)
     os << indent << "FileName: (null)\n";
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Web/WebGLExporter/vtkPVWebGLExporter.h b/Web/WebGLExporter/vtkPVWebGLExporter.h
index 4a9a8234dd66cd1ac18773080d333b6d43ddf374..fe06a14b27c7c3840a911b39bca51ad9c06a43fa 100644
--- a/Web/WebGLExporter/vtkPVWebGLExporter.h
+++ b/Web/WebGLExporter/vtkPVWebGLExporter.h
@@ -18,6 +18,7 @@
 #include "vtkExporter.h"
 #include "vtkWebGLExporterModule.h" // needed for export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKWEBGLEXPORTER_EXPORT vtkPVWebGLExporter : public vtkExporter
 {
 public:
@@ -43,4 +44,5 @@ private:
   void operator=(const vtkPVWebGLExporter&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Web/WebGLExporter/vtkWebGLDataSet.cxx b/Web/WebGLExporter/vtkWebGLDataSet.cxx
index ad97b2b517a442d4841bd950ae2929b52ca14fa4..49e29d4bcb9be44e7ce73d7bdc3656eafb3483dc 100644
--- a/Web/WebGLExporter/vtkWebGLDataSet.cxx
+++ b/Web/WebGLExporter/vtkWebGLDataSet.cxx
@@ -18,6 +18,7 @@
 #include "vtkObjectFactory.h"
 #include "vtkWebGLExporter.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWebGLDataSet);
 
 std::string vtkWebGLDataSet::GetMD5()
@@ -243,3 +244,4 @@ void vtkWebGLDataSet::PrintSelf(ostream& os, vtkIndent indent)
 {
   this->Superclass::PrintSelf(os, indent);
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Web/WebGLExporter/vtkWebGLDataSet.h b/Web/WebGLExporter/vtkWebGLDataSet.h
index d68e80cb3c1460b5ab55eb6f1cd574d78e6e062e..0cc4370e4f65e05f6333ad13bf905b1949fc9317 100644
--- a/Web/WebGLExporter/vtkWebGLDataSet.h
+++ b/Web/WebGLExporter/vtkWebGLDataSet.h
@@ -26,6 +26,7 @@
 #include "vtkWebGLObject.h" // Needed for the enum
 #include <string>           // needed for md5
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKWEBGLEXPORTER_EXPORT vtkWebGLDataSet : public vtkObject
 {
 public:
@@ -75,4 +76,5 @@ private:
   void operator=(const vtkWebGLDataSet&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Web/WebGLExporter/vtkWebGLExporter.cxx b/Web/WebGLExporter/vtkWebGLExporter.cxx
index b6006cc49f628d56fe393dfb8e7c7c0ebc46f9ff..8c3f25a3ce8e665f62a35917cd19ad7e0974c82e 100644
--- a/Web/WebGLExporter/vtkWebGLExporter.cxx
+++ b/Web/WebGLExporter/vtkWebGLExporter.cxx
@@ -575,6 +575,7 @@ vtkTriangleFilter* vtkWebGLExporter::GetPolyData(vtkMapper* mapper, vtkMTimeType
     { "id": ,"LookAt": ,"Background1": ,"Background2":
     "Objects": [{"id": ,"md5": ,"parts": },  {"id": ,"md5": ,"parts": }] }
 */
+VTK_ABI_NAMESPACE_BEGIN
 const char* vtkWebGLExporter::GenerateMetadata()
 {
   double max = std::max(this->SceneSize[0], this->SceneSize[1]);
@@ -798,3 +799,4 @@ void vtkWebGLExporter::ComputeMD5(const unsigned char* content, int size, std::s
 
   hash = md5Hash;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Web/WebGLExporter/vtkWebGLExporter.h b/Web/WebGLExporter/vtkWebGLExporter.h
index d507e1bda9618bf6c32125b8c748fbefcd2daf02..15ec4f4c701eb8675d5b7df28a114aea6e284abe 100644
--- a/Web/WebGLExporter/vtkWebGLExporter.h
+++ b/Web/WebGLExporter/vtkWebGLExporter.h
@@ -20,6 +20,10 @@
 #ifndef vtkWebGLExporter_h
 #define vtkWebGLExporter_h
 
+#include "vtkObject.h"
+#include "vtkWebGLExporterModule.h" // needed for export macro
+
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkActor2D;
 class vtkCellData;
@@ -32,11 +36,11 @@ class vtkTriangleFilter;
 class vtkWebGLObject;
 class vtkWebGLPolyData;
 
-#include "vtkObject.h"
-#include "vtkWebGLExporterModule.h" // needed for export macro
+VTK_ABI_NAMESPACE_END
 
 #include <string> // needed for internal structure
 
+VTK_ABI_NAMESPACE_BEGIN
 typedef enum
 {
   VTK_ONLYCAMERA = 0,
@@ -105,4 +109,5 @@ private:
   vtkInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Web/WebGLExporter/vtkWebGLObject.cxx b/Web/WebGLExporter/vtkWebGLObject.cxx
index 377438e405ecced448e55cbbb381f9ad05291c66..162053649e8e7a6babb266b9404f734e31496041 100644
--- a/Web/WebGLExporter/vtkWebGLObject.cxx
+++ b/Web/WebGLExporter/vtkWebGLObject.cxx
@@ -21,11 +21,14 @@
 
 #include <algorithm>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWebGLObject);
+VTK_ABI_NAMESPACE_END
 #include <map>
 #include <vector>
 
 //------------------------------------------------------------------------------
+VTK_ABI_NAMESPACE_BEGIN
 vtkWebGLObject::vtkWebGLObject()
 {
   this->iswireframeMode = false;
@@ -207,3 +210,4 @@ int vtkWebGLObject::GetNumberOfParts()
 {
   return 0;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Web/WebGLExporter/vtkWebGLObject.h b/Web/WebGLExporter/vtkWebGLObject.h
index 7612ec651cef03dbf6b648dff16015e116b86bcb..d7439b2608a5d2a1c44ad26e5f2db0334085b722 100644
--- a/Web/WebGLExporter/vtkWebGLObject.h
+++ b/Web/WebGLExporter/vtkWebGLObject.h
@@ -25,6 +25,7 @@
 
 #include <string> // needed for ID and md5 storing
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkMatrix4x4;
 class vtkUnsignedCharArray;
 
@@ -99,4 +100,5 @@ private:
   void operator=(const vtkWebGLObject&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Web/WebGLExporter/vtkWebGLPolyData.cxx b/Web/WebGLExporter/vtkWebGLPolyData.cxx
index f8d01d83039e64179e8eab3c4b7abae13d20cc2d..69eb91fcf3e4ebe2efbf07680579af6699dca246 100644
--- a/Web/WebGLExporter/vtkWebGLPolyData.cxx
+++ b/Web/WebGLExporter/vtkWebGLPolyData.cxx
@@ -43,6 +43,7 @@
 #include <string>
 #include <vector>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWebGLPolyData);
 //*****************************************************************************
 class vtkWebGLPolyData::vtkInternal
@@ -792,3 +793,4 @@ void vtkWebGLPolyData::GetColorsFromPointData(
     }
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Web/WebGLExporter/vtkWebGLPolyData.h b/Web/WebGLExporter/vtkWebGLPolyData.h
index 80e31c4db2de5fae1529c1418cb263ba3a2bf139..889225ee5d71ff45bc39b71b922382960ad67687 100644
--- a/Web/WebGLExporter/vtkWebGLPolyData.h
+++ b/Web/WebGLExporter/vtkWebGLPolyData.h
@@ -23,6 +23,7 @@
 #include "vtkWebGLExporterModule.h" // needed for export macro
 #include "vtkWebGLObject.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor;
 class vtkMatrix4x4;
 class vtkMapper;
@@ -73,4 +74,5 @@ private:
   vtkInternal* Internal;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Web/WebGLExporter/vtkWebGLWidget.cxx b/Web/WebGLExporter/vtkWebGLWidget.cxx
index d3da532e155bd6b3264ed8b714d46c92ac50ec25..30739d4c7fef1a97ba1712af7e621ae730e19d1d 100644
--- a/Web/WebGLExporter/vtkWebGLWidget.cxx
+++ b/Web/WebGLExporter/vtkWebGLWidget.cxx
@@ -24,6 +24,7 @@
 
 #include <sstream>
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkStandardNewMacro(vtkWebGLWidget);
 
 vtkWebGLWidget::vtkWebGLWidget()
@@ -165,3 +166,4 @@ void vtkWebGLWidget::GetDataFromColorMap(vtkActor2D* actor)
   this->size[0] = siz[0];
   this->size[1] = siz[1]; // Widget Size
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Web/WebGLExporter/vtkWebGLWidget.h b/Web/WebGLExporter/vtkWebGLWidget.h
index a5a7d44f197a36d5eea191f6988037097fa84139..158d37ecf27d8f9fd00ae5ced8d48a29b3cbc87c 100644
--- a/Web/WebGLExporter/vtkWebGLWidget.h
+++ b/Web/WebGLExporter/vtkWebGLWidget.h
@@ -25,6 +25,7 @@
 
 #include <vector> // Needed to store colors
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkActor2D;
 
 class VTKWEBGLEXPORTER_EXPORT vtkWebGLWidget : public vtkWebGLObject
@@ -61,4 +62,5 @@ private:
   void operator=(const vtkWebGLWidget&) = delete;
 };
 
+VTK_ABI_NAMESPACE_END
 #endif
diff --git a/Wrapping/PythonCore/PyVTKEnum.cxx b/Wrapping/PythonCore/PyVTKEnum.cxx
index 3a26bb867aa5d46e258206e46507e8c10b0ad8cf..97f358e6ab4787ff63edc0ede397b9bdc7ff69e4 100644
--- a/Wrapping/PythonCore/PyVTKEnum.cxx
+++ b/Wrapping/PythonCore/PyVTKEnum.cxx
@@ -14,6 +14,7 @@
 =========================================================================*/
 
 #include "PyVTKEnum.h"
+#include "vtkABINamespace.h"
 #include "vtkPythonUtil.h"
 
 #include <cstddef>
diff --git a/Wrapping/PythonCore/PyVTKEnum.h b/Wrapping/PythonCore/PyVTKEnum.h
index 7324b9f745f51e94482233f20247b0523d2c35e2..92f31825d1c10033ce78e0ec19e37986cacf9b88 100644
--- a/Wrapping/PythonCore/PyVTKEnum.h
+++ b/Wrapping/PythonCore/PyVTKEnum.h
@@ -16,6 +16,7 @@
 #ifndef PyVTKEnum_h
 #define PyVTKEnum_h
 
+#include "vtkABINamespace.h"
 #include "vtkPython.h"
 #include "vtkSystemIncludes.h"
 #include "vtkWrappingPythonCoreModule.h" // For export macro
diff --git a/Wrapping/PythonCore/PyVTKExtras.cxx b/Wrapping/PythonCore/PyVTKExtras.cxx
index 92145161d7ecbd73737f77b3756ac859aa46de15..fe660d298e0e9bb35a6879a905c7c10886834b17 100644
--- a/Wrapping/PythonCore/PyVTKExtras.cxx
+++ b/Wrapping/PythonCore/PyVTKExtras.cxx
@@ -15,6 +15,7 @@
 
 #include "PyVTKExtras.h"
 #include "PyVTKReference.h"
+#include "vtkABINamespace.h"
 #include "vtkPythonCompatibility.h"
 
 // Silence warning like
diff --git a/Wrapping/PythonCore/PyVTKExtras.h b/Wrapping/PythonCore/PyVTKExtras.h
index bc2a47d31f36b2b2dd2fd03c2627c1ac8ecaee07..4d488f724ae8cc1c8949b7770e5a0393e3b76db7 100644
--- a/Wrapping/PythonCore/PyVTKExtras.h
+++ b/Wrapping/PythonCore/PyVTKExtras.h
@@ -23,6 +23,7 @@
 #ifndef PyVTKExtras_h
 #define PyVTKExtras_h
 
+#include "vtkABINamespace.h"
 #include "vtkPython.h"
 #include "vtkWrappingPythonCoreModule.h" // For export macro
 
diff --git a/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx b/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx
index a46a75867fa49d147e4083f2a9b3d923c99e1245..07537631f0e6ed65da35c41be87c90330eafeda8 100644
--- a/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx
+++ b/Wrapping/PythonCore/PyVTKMethodDescriptor.cxx
@@ -14,6 +14,7 @@
 =========================================================================*/
 
 #include "PyVTKMethodDescriptor.h"
+#include "vtkABINamespace.h"
 #include "vtkPythonUtil.h"
 
 #include <structmember.h> // a python header
diff --git a/Wrapping/PythonCore/PyVTKMethodDescriptor.h b/Wrapping/PythonCore/PyVTKMethodDescriptor.h
index 9e900a0ddb1214df5cc41d9aaa0b8c38f312e99c..4d63f3aa645d23f2c52a86d32c7add4014a8115b 100644
--- a/Wrapping/PythonCore/PyVTKMethodDescriptor.h
+++ b/Wrapping/PythonCore/PyVTKMethodDescriptor.h
@@ -24,6 +24,7 @@
 #ifndef PyVTKMethodDescriptor_h
 #define PyVTKMethodDescriptor_h
 
+#include "vtkABINamespace.h"
 #include "vtkPython.h"
 #include "vtkSystemIncludes.h"
 #include "vtkWrappingPythonCoreModule.h" // For export macro
diff --git a/Wrapping/PythonCore/PyVTKNamespace.cxx b/Wrapping/PythonCore/PyVTKNamespace.cxx
index 927eef14d36844c2e53352e5a5df92c4b76d6da0..460993128111b9c2a90f0279f8f219b65d9a9444 100644
--- a/Wrapping/PythonCore/PyVTKNamespace.cxx
+++ b/Wrapping/PythonCore/PyVTKNamespace.cxx
@@ -19,6 +19,7 @@
 -----------------------------------------------------------------------*/
 
 #include "PyVTKNamespace.h"
+#include "vtkABINamespace.h"
 #include "vtkPythonUtil.h"
 
 // Silence warning like
diff --git a/Wrapping/PythonCore/PyVTKNamespace.h b/Wrapping/PythonCore/PyVTKNamespace.h
index 2b04cc825cb4ab9c5004b57fff3563af35dff5c9..bcdfc42736e99f6c90fc9f67eeec46ff8b0b3729 100644
--- a/Wrapping/PythonCore/PyVTKNamespace.h
+++ b/Wrapping/PythonCore/PyVTKNamespace.h
@@ -21,6 +21,7 @@
 #ifndef PyVTKNamespace_h
 #define PyVTKNamespace_h
 
+#include "vtkABINamespace.h"
 #include "vtkPython.h"
 #include "vtkSystemIncludes.h"
 #include "vtkWrappingPythonCoreModule.h" // For export macro
diff --git a/Wrapping/PythonCore/PyVTKObject.cxx b/Wrapping/PythonCore/PyVTKObject.cxx
index e45dc19df0afc9ab525c0846df28391bcdb63657..4a948d9b8ef54085f27f1e66c0ac8eebe6c1ddb0 100644
--- a/Wrapping/PythonCore/PyVTKObject.cxx
+++ b/Wrapping/PythonCore/PyVTKObject.cxx
@@ -30,6 +30,7 @@
 
 #include "PyVTKObject.h"
 #include "PyVTKMethodDescriptor.h"
+#include "vtkABINamespace.h"
 #include "vtkDataArray.h"
 #include "vtkObjectBase.h"
 #include "vtkPythonCommand.h"
@@ -41,6 +42,7 @@
 // This will be set to the python type struct for vtkObjectBase
 static PyTypeObject* PyVTKObject_Type = nullptr;
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 PyVTKClass::PyVTKClass(
   PyTypeObject* typeobj, PyMethodDef* methods, const char* classname, vtknewfunc constructor)
@@ -50,6 +52,7 @@ PyVTKClass::PyVTKClass(
   this->vtk_name = classname;
   this->vtk_new = constructor;
 }
+VTK_ABI_NAMESPACE_END
 
 //------------------------------------------------------------------------------
 // Create a Python "override" method
diff --git a/Wrapping/PythonCore/PyVTKObject.h b/Wrapping/PythonCore/PyVTKObject.h
index 526fec135c3660a5215f86a7c2fbdd7bca4e167a..a612e5be8cf6145a2a00b0b00e0e22873cb6fa23 100644
--- a/Wrapping/PythonCore/PyVTKObject.h
+++ b/Wrapping/PythonCore/PyVTKObject.h
@@ -20,11 +20,14 @@
 #ifndef PyVTKObject_h
 #define PyVTKObject_h
 
+#include "vtkABINamespace.h"
 #include "vtkPython.h"
 #include "vtkSystemIncludes.h"
 #include "vtkWrappingPythonCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkObjectBase;
+VTK_ABI_NAMESPACE_END
 typedef vtkObjectBase* (*vtknewfunc)();
 
 // Flags for special properties or features
@@ -33,6 +36,7 @@ typedef vtkObjectBase* (*vtknewfunc)();
 // This class is used for defining new VTK wrapped classes.
 // It contains information such as the methods and docstring, as well
 // as extra info that can't easily be stored in the PyTypeObject.
+VTK_ABI_NAMESPACE_BEGIN
 class VTKWRAPPINGPYTHONCORE_EXPORT PyVTKClass
 {
 public:
@@ -66,6 +70,7 @@ struct PyVTKObject
   unsigned long* vtk_observers; // used to find our observers
   unsigned int vtk_flags;       // flags (see list above)
 };
+VTK_ABI_NAMESPACE_END
 
 extern VTKWRAPPINGPYTHONCORE_EXPORT PyGetSetDef PyVTKObject_GetSet[];
 extern VTKWRAPPINGPYTHONCORE_EXPORT PyBufferProcs PyVTKObject_AsBuffer;
diff --git a/Wrapping/PythonCore/PyVTKReference.cxx b/Wrapping/PythonCore/PyVTKReference.cxx
index 27345ad13f921293b98e1791ee827371b64801e8..b026199985e8133e44f56f4b888bddc3f6fea550 100644
--- a/Wrapping/PythonCore/PyVTKReference.cxx
+++ b/Wrapping/PythonCore/PyVTKReference.cxx
@@ -21,6 +21,7 @@
 -----------------------------------------------------------------------*/
 
 #include "PyVTKReference.h"
+#include "vtkABINamespace.h"
 #include "vtkPythonUtil.h"
 
 // Silence warning like
diff --git a/Wrapping/PythonCore/PyVTKReference.h b/Wrapping/PythonCore/PyVTKReference.h
index 071981876fd68e76a2032bb23bf772f7855ed5b6..03e6feb0df7f1d49c56fd0db84929a0bfbc7f3ce 100644
--- a/Wrapping/PythonCore/PyVTKReference.h
+++ b/Wrapping/PythonCore/PyVTKReference.h
@@ -22,6 +22,7 @@
 #ifndef PyVTKReference_h
 #define PyVTKReference_h
 
+#include "vtkABINamespace.h"
 #include "vtkPython.h"
 #include "vtkSystemIncludes.h"
 #include "vtkWrappingPythonCoreModule.h" // For export macro
diff --git a/Wrapping/PythonCore/PyVTKSpecialObject.cxx b/Wrapping/PythonCore/PyVTKSpecialObject.cxx
index a2581c197ec960ccda0f2cf05d46b78afbdfc724..a3ff3fcfd0fa924016a1be7465f610abf2c2130f 100644
--- a/Wrapping/PythonCore/PyVTKSpecialObject.cxx
+++ b/Wrapping/PythonCore/PyVTKSpecialObject.cxx
@@ -31,6 +31,7 @@
 
 #include "PyVTKSpecialObject.h"
 #include "PyVTKMethodDescriptor.h"
+#include "vtkABINamespace.h"
 #include "vtkPythonUtil.h"
 
 #include <sstream>
@@ -42,6 +43,7 @@
 #pragma GCC diagnostic ignored "-Wstrict-aliasing"
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 PyVTKSpecialType::PyVTKSpecialType(
   PyTypeObject* typeobj, PyMethodDef* cmethods, PyMethodDef* ccons, vtkcopyfunc copyfunc)
@@ -51,6 +53,7 @@ PyVTKSpecialType::PyVTKSpecialType(
   this->vtk_constructors = ccons;
   this->vtk_copy = copyfunc;
 }
+VTK_ABI_NAMESPACE_END
 
 //------------------------------------------------------------------------------
 // Object protocol
diff --git a/Wrapping/PythonCore/PyVTKSpecialObject.h b/Wrapping/PythonCore/PyVTKSpecialObject.h
index 912bda086124938a2e6f5e93a88cb1e436dadddc..9d46499e92b434a53e87508b25ea3cf8404c93c1 100644
--- a/Wrapping/PythonCore/PyVTKSpecialObject.h
+++ b/Wrapping/PythonCore/PyVTKSpecialObject.h
@@ -20,6 +20,7 @@
 #ifndef PyVTKSpecialObject_h
 #define PyVTKSpecialObject_h
 
+#include "vtkABINamespace.h"
 #include "vtkPython.h"
 #include "vtkSystemIncludes.h"
 #include "vtkWrappingPythonCoreModule.h" // For export macro
@@ -33,6 +34,7 @@ typedef void* (*vtkcopyfunc)(const void*);
 
 // Because the PyTypeObject can't hold all the typing information that we
 // need, we use this PyVTKSpecialType class to hold a bit of extra info.
+VTK_ABI_NAMESPACE_BEGIN
 class VTKWRAPPINGPYTHONCORE_EXPORT PyVTKSpecialType
 {
 public:
@@ -65,6 +67,7 @@ struct PyVTKSpecialObject
   void* vtk_ptr;
   long vtk_hash;
 };
+VTK_ABI_NAMESPACE_END
 
 extern "C"
 {
diff --git a/Wrapping/PythonCore/PyVTKTemplate.cxx b/Wrapping/PythonCore/PyVTKTemplate.cxx
index e0ff31e25c5db0924723a9554ec7d56203f324c6..5aa10392007049964541a0c329a9c33ef3772bd3 100644
--- a/Wrapping/PythonCore/PyVTKTemplate.cxx
+++ b/Wrapping/PythonCore/PyVTKTemplate.cxx
@@ -22,6 +22,7 @@
 -----------------------------------------------------------------------*/
 
 #include "PyVTKTemplate.h"
+#include "vtkABINamespace.h"
 #include "vtkPythonUtil.h"
 
 #include <string>
diff --git a/Wrapping/PythonCore/PyVTKTemplate.h b/Wrapping/PythonCore/PyVTKTemplate.h
index f4ad76715060cbdb9db0baba8c6cf4187e0e381c..3fb7716f0f8647f02903bfa737e5d80de1f43fc4 100644
--- a/Wrapping/PythonCore/PyVTKTemplate.h
+++ b/Wrapping/PythonCore/PyVTKTemplate.h
@@ -23,6 +23,7 @@
 #ifndef PyVTKTemplate_h
 #define PyVTKTemplate_h
 
+#include "vtkABINamespace.h"
 #include "vtkPython.h"
 #include "vtkSystemIncludes.h"
 #include "vtkWrappingPythonCoreModule.h" // For export macro
diff --git a/Wrapping/PythonCore/vtkPythonArgs.cxx b/Wrapping/PythonCore/vtkPythonArgs.cxx
index ebf98eeaeb6efeb1ca1a27751875283ac8fc229c..7ade7abd54f8da025149594437d364fbbed56510 100644
--- a/Wrapping/PythonCore/vtkPythonArgs.cxx
+++ b/Wrapping/PythonCore/vtkPythonArgs.cxx
@@ -26,11 +26,13 @@ resulting in wrapper code that is faster and more compact.
 
 #include "vtkPythonArgs.h"
 #include "PyVTKReference.h"
+#include "vtkABINamespace.h"
 #include "vtkPythonUtil.h"
 
 #include "vtkObject.h"
 #include "vtkSmartPointerBase.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 // Extract various C++ types from python objects.  The rules are
 // identical to PyArg_ParseTuple except that range checking is done
@@ -1715,3 +1717,4 @@ vtkPythonArgs::Array<T>::Array(size_t n)
 
 // Instantiate the Array class template over all types:
 vtkPythonArgsTemplateMacro(template class VTKWRAPPINGPYTHONCORE_EXPORT vtkPythonArgs::Array);
+VTK_ABI_NAMESPACE_END
diff --git a/Wrapping/PythonCore/vtkPythonArgs.h b/Wrapping/PythonCore/vtkPythonArgs.h
index 99256f723f2dddeb63e0ff7c91664ffc91282734..97e0b8d7774f393f0b5c34e094358ff297ec9507 100644
--- a/Wrapping/PythonCore/vtkPythonArgs.h
+++ b/Wrapping/PythonCore/vtkPythonArgs.h
@@ -31,6 +31,7 @@ resulting in wrapper code that is faster and more compact.
 #include "PyVTKEnum.h"
 #include "PyVTKObject.h"
 #include "PyVTKTemplate.h"
+#include "vtkABINamespace.h"
 #include "vtkPythonUtil.h"
 #include "vtkWrappingPythonCoreModule.h" // For export macro
 
@@ -40,6 +41,7 @@ resulting in wrapper code that is faster and more compact.
 #include <cstring>
 #include <string>
 
+VTK_ABI_NAMESPACE_BEGIN
 class vtkObjectBase;
 class vtkSmartPointerBase;
 
@@ -993,5 +995,7 @@ inline PyObject* vtkPythonArgs::BuildBytes(const char* a, size_t n)
 vtkPythonArgsTemplateMacro(extern template class VTKWRAPPINGPYTHONCORE_EXPORT vtkPythonArgs::Array);
 #endif
 
+VTK_ABI_NAMESPACE_END
+
 #endif
 // VTK-HeaderTest-Exclude: vtkPythonArgs.h
diff --git a/Wrapping/PythonCore/vtkPythonCommand.cxx b/Wrapping/PythonCore/vtkPythonCommand.cxx
index 1cf606c5fa63c4c7f48c6e1e9f1abbdf4c36463f..c92ba409b95e0040191e777b3dc079c2658b780e 100644
--- a/Wrapping/PythonCore/vtkPythonCommand.cxx
+++ b/Wrapping/PythonCore/vtkPythonCommand.cxx
@@ -14,9 +14,11 @@
 =========================================================================*/
 
 #include "vtkPythonCommand.h"
+#include "vtkABINamespace.h"
 #include "vtkObject.h"
 #include "vtkPythonUtil.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 vtkPythonCommand::vtkPythonCommand()
 {
   this->obj = nullptr;
@@ -259,3 +261,4 @@ void vtkPythonCommand::Execute(vtkObject* ptr, unsigned long eventtype, void* ca
   }
 #endif
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Wrapping/PythonCore/vtkPythonCommand.h b/Wrapping/PythonCore/vtkPythonCommand.h
index 7149517fa9bff73b6723628acc81aaf581e5719c..def128ce24b65c2e40d31d8afe32c7b93e03e6c6 100644
--- a/Wrapping/PythonCore/vtkPythonCommand.h
+++ b/Wrapping/PythonCore/vtkPythonCommand.h
@@ -16,10 +16,12 @@
 #ifndef vtkPythonCommand_h
 #define vtkPythonCommand_h
 
+#include "vtkABINamespace.h"
 #include "vtkCommand.h"
 #include "vtkPython.h"
 #include "vtkWrappingPythonCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 // To allow Python to use the vtkCommand features
 class VTKWRAPPINGPYTHONCORE_EXPORT vtkPythonCommand : public vtkCommand
 {
@@ -39,6 +41,7 @@ protected:
   vtkPythonCommand();
   ~vtkPythonCommand() override;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
 // VTK-HeaderTest-Exclude: vtkPythonCommand.h
diff --git a/Wrapping/PythonCore/vtkPythonOverload.cxx b/Wrapping/PythonCore/vtkPythonOverload.cxx
index 885d59b6e0ae2a84a670cc80e7d4664f201d2d98..83c8f72a1fba8bf70635f079393d37b3068fbed5 100644
--- a/Wrapping/PythonCore/vtkPythonOverload.cxx
+++ b/Wrapping/PythonCore/vtkPythonOverload.cxx
@@ -24,6 +24,7 @@
 
 #include "vtkPythonOverload.h"
 #include "PyVTKReference.h"
+#include "vtkABINamespace.h"
 #include "vtkPythonUtil.h"
 
 #include "vtkObject.h"
@@ -37,6 +38,7 @@
 // are reserved for checking how many generations a vtkObject arg is from
 // the requested arg type.
 
+VTK_ABI_NAMESPACE_BEGIN
 enum vtkPythonArgPenalties
 {
   VTK_PYTHON_EXACT_MATCH = 0,
@@ -996,3 +998,4 @@ PyMethodDef* vtkPythonOverload::FindConversionMethod(PyMethodDef* methods, PyObj
 
   return method;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Wrapping/PythonCore/vtkPythonOverload.h b/Wrapping/PythonCore/vtkPythonOverload.h
index deb00cd6e503088c1cd31ca503b97ce8a98b4a43..a1c4b81d5daa28cf8d4e7c135f008e1cca23c630 100644
--- a/Wrapping/PythonCore/vtkPythonOverload.h
+++ b/Wrapping/PythonCore/vtkPythonOverload.h
@@ -29,9 +29,11 @@
 #ifndef vtkPythonOverload_h
 #define vtkPythonOverload_h
 
+#include "vtkABINamespace.h"
 #include "vtkPython.h"
 #include "vtkWrappingPythonCoreModule.h" // For export macro
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKWRAPPINGPYTHONCORE_EXPORT vtkPythonOverload
 {
 public:
@@ -58,6 +60,7 @@ public:
   static PyMethodDef* FindConversionMethod(PyMethodDef* methods, PyObject* arg);
   ///@}
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
 // VTK-HeaderTest-Exclude: vtkPythonOverload.h
diff --git a/Wrapping/PythonCore/vtkPythonUtil.cxx b/Wrapping/PythonCore/vtkPythonUtil.cxx
index 9cfc3d5954e8163ca6595673db5aac07744411e6..960b62de677f6c0094078d9fb38d985b60f3ea1d 100644
--- a/Wrapping/PythonCore/vtkPythonUtil.cxx
+++ b/Wrapping/PythonCore/vtkPythonUtil.cxx
@@ -14,6 +14,7 @@
 =========================================================================*/
 
 #include "vtkPythonUtil.h"
+#include "vtkABINamespace.h"
 #include "vtkPythonOverload.h"
 
 #include "PyVTKMethodDescriptor.h"
@@ -42,6 +43,7 @@
 #include <cstdint>
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 // A ghost object, can be used to recreate a deleted PyVTKObject
 class PyVTKObjectGhost
@@ -1160,3 +1162,4 @@ void vtkPythonVoidFuncArgDelete(void* arg)
     Py_DECREF(func);
   }
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Wrapping/PythonCore/vtkPythonUtil.h b/Wrapping/PythonCore/vtkPythonUtil.h
index e4d306afe87a6f46b90bd5c388863a3e2b0cd06d..0afcb5ac6db86b649a4aad5bf3a8cbef72a83462 100644
--- a/Wrapping/PythonCore/vtkPythonUtil.h
+++ b/Wrapping/PythonCore/vtkPythonUtil.h
@@ -23,6 +23,7 @@
 #include "PyVTKNamespace.h"
 #include "PyVTKObject.h"
 #include "PyVTKSpecialObject.h"
+#include "vtkABINamespace.h"
 #include "vtkPython.h"
 #include "vtkPythonCompatibility.h"
 
@@ -31,6 +32,12 @@
 #pragma warning(disable : 4125)
 #endif
 
+extern "C" void vtkPythonUtilDelete();
+
+VTK_ABI_NAMESPACE_BEGIN
+class vtkStdString;
+class vtkUnicodeString;
+class vtkVariant;
 class vtkPythonClassMap;
 class vtkPythonClassNameMap;
 class vtkPythonCommand;
@@ -43,8 +50,6 @@ class vtkPythonEnumMap;
 class vtkPythonModuleList;
 class vtkVariant;
 
-extern "C" void vtkPythonUtilDelete();
-
 class VTKWRAPPINGPYTHONCORE_EXPORT vtkPythonUtil
 {
 public:
@@ -285,5 +290,7 @@ private:
 extern VTKWRAPPINGPYTHONCORE_EXPORT void vtkPythonVoidFunc(void*);
 extern VTKWRAPPINGPYTHONCORE_EXPORT void vtkPythonVoidFuncArgDelete(void*);
 
+VTK_ABI_NAMESPACE_END
+
 #endif
 // VTK-HeaderTest-Exclude: vtkPythonUtil.h
diff --git a/Wrapping/PythonCore/vtkSmartPyObject.cxx b/Wrapping/PythonCore/vtkSmartPyObject.cxx
index f86651e76a76fb5dec3b67c7cc1808dc70a5ee89..b49d8e91075cfe88a9c686d64dc0ec46dfcf2a89 100644
--- a/Wrapping/PythonCore/vtkSmartPyObject.cxx
+++ b/Wrapping/PythonCore/vtkSmartPyObject.cxx
@@ -14,6 +14,7 @@
 
 =========================================================================*/
 #include "vtkSmartPyObject.h"
+#include "vtkABINamespace.h"
 
 #if defined(_MSC_VER) // Visual studio
 // Ignore "constant expression" warnings from MSVC due to the "while (0)" in
@@ -21,6 +22,7 @@
 #pragma warning(disable : 4127)
 #endif
 
+VTK_ABI_NAMESPACE_BEGIN
 //------------------------------------------------------------------------------
 vtkSmartPyObject::vtkSmartPyObject(PyObject* obj)
   : Object(obj)
@@ -117,3 +119,4 @@ PyObject* vtkSmartPyObject::GetAndIncreaseReferenceCount()
   Py_XINCREF(this->Object);
   return this->Object;
 }
+VTK_ABI_NAMESPACE_END
diff --git a/Wrapping/PythonCore/vtkSmartPyObject.h b/Wrapping/PythonCore/vtkSmartPyObject.h
index 620035c26819838ee472054ffc1339ca9999c28e..e49adc071e690624737671b48bea41c406ac327b 100644
--- a/Wrapping/PythonCore/vtkSmartPyObject.h
+++ b/Wrapping/PythonCore/vtkSmartPyObject.h
@@ -22,10 +22,12 @@
 #define vtkSmartPyObject_h
 
 // this must be included first
+#include "vtkABINamespace.h"
 #include "vtkPython.h" // PyObject can't be forward declared
 
 #include "vtkWrappingPythonCoreModule.h"
 
+VTK_ABI_NAMESPACE_BEGIN
 class VTKWRAPPINGPYTHONCORE_EXPORT vtkSmartPyObject
 {
 public:
@@ -97,6 +99,7 @@ public:
 private:
   PyObject* Object;
 };
+VTK_ABI_NAMESPACE_END
 
 #endif
 // VTK-HeaderTest-Exclude: vtkSmartPyObject.h