42 #ifndef PCL_FILTERS_FAST_BILATERAL_H_
43 #define PCL_FILTERS_FAST_BILATERAL_H_
45 #include <pcl/filters/filter.h>
57 template<
typename Po
intT>
66 typedef boost::shared_ptr< FastBilateralFilter<PointT> >
Ptr;
67 typedef boost::shared_ptr< const FastBilateralFilter<PointT> >
ConstPtr;
120 Array3D (
const size_t width,
const size_t height,
const size_t depth)
125 v_ = std::vector<Eigen::Vector2f> (width*height*depth, Eigen::Vector2f (0.0f, 0.0f));
128 inline Eigen::Vector2f&
130 {
return v_[(x * y_dim_ + y) * z_dim_ + z]; }
132 inline const Eigen::Vector2f&
133 operator () (
const size_t x,
const size_t y,
const size_t z)
const
134 {
return v_[(x * y_dim_ + y) * z_dim_ + z]; }
137 resize (
const size_t width,
const size_t height,
const size_t depth)
142 v_.resize (x_dim_ * y_dim_ * z_dim_);
151 clamp (
const size_t min_value,
152 const size_t max_value,
167 inline std::vector<Eigen::Vector2f >::iterator
169 {
return v_.begin (); }
171 inline std::vector<Eigen::Vector2f >::iterator
173 {
return v_.end (); }
175 inline std::vector<Eigen::Vector2f >::const_iterator
177 {
return v_.begin (); }
179 inline std::vector<Eigen::Vector2f >::const_iterator
181 {
return v_.end (); }
184 std::vector<Eigen::Vector2f > v_;
185 size_t x_dim_, y_dim_, z_dim_;
192 #ifdef PCL_NO_PRECOMPILE
193 #include <pcl/filters/impl/fast_bilateral.hpp>
195 #define PCL_INSTANTIATE_FastBilateralFilter(T) template class PCL_EXPORTS pcl::FastBilateralFilter<T>;