]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/gil/extension/numeric/kernel.hpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / boost / gil / extension / numeric / kernel.hpp
index 3186180cf6a7ef153f70b6394f38d4556e8b9f02..5fc6419f0bfa5e371767d2f5df36a9df16952eda 100644 (file)
@@ -21,6 +21,7 @@
 #include <memory>
 #include <vector>
 #include <cmath>
+#include <stdexcept>
 
 namespace boost { namespace gil {
 
@@ -328,17 +329,32 @@ public:
 template <typename T, std::size_t Size>
 constexpr std::size_t kernel_2d_fixed<T, Size>::static_size;
 
-} //namespace detail
+template <typename Kernel>
+inline Kernel reverse_kernel_2d(Kernel const& kernel)
+{
+    Kernel result(kernel);
+    result.center_x() = kernel.lower_size();
+    result.center_y() = kernel.right_size();
+    std::reverse(result.begin(), result.end());
+    return result;
+}
 
-/// \brief reverse a kernel
-//template <typename Kernel>
-//inline Kernel reverse_kernel(Kernel const& kernel)
-//{
-//    Kernel result(kernel);
-//    result.center() = kernel.right_size();
-//    std::reverse(result.begin(), result.end());
-//    return result;
-//}
+
+/// \brief reverse a kernel_2d
+template<typename T, typename Allocator>
+inline kernel_2d<T, Allocator>  reverse_kernel(kernel_2d<T, Allocator> const& kernel)
+{
+   return reverse_kernel_2d(kernel);
+}
+
+/// \brief reverse a kernel_2d
+template<typename T, std::size_t Size>
+inline kernel_2d_fixed<T, Size> reverse_kernel(kernel_2d_fixed<T, Size> const& kernel)
+{
+   return reverse_kernel_2d(kernel);
+}
+
+} //namespace detail
 
 }} // namespace boost::gil