Point Cloud Library (PCL) 1.15.0
Loading...
Searching...
No Matches
pcl::BoxClipper3D< PointT > Class Template Reference

Implementation of a box clipper in 3D. Actually it allows affine transformations, thus any parallelepiped in general pose. The affine transformation is used to transform the point before clipping it using a cube centered at origin and with an extend of -1 to +1 in each dimension. More...

#include <pcl/filters/box_clipper3D.h>

Inheritance diagram for pcl::BoxClipper3D< PointT >:
Collaboration diagram for pcl::BoxClipper3D< PointT >:

Public Types

using Ptr = shared_ptr<BoxClipper3D<PointT> >
using ConstPtr = shared_ptr<const BoxClipper3D<PointT> >
Public Types inherited from pcl::Clipper3D< PointT >
using Ptr = shared_ptr<Clipper3D<PointT> >
using ConstPtr = shared_ptr<const Clipper3D<PointT> >

Public Member Functions

 BoxClipper3D (const Eigen::Affine3f &transformation)
 Constructor taking an affine transformation matrix, which allows also shearing of the clipping area.
 BoxClipper3D (const Eigen::Vector3f &rodrigues, const Eigen::Vector3f &translation, const Eigen::Vector3f &box_size)
 creates a BoxClipper object with a scaled box in general pose
void setTransformation (const Eigen::Affine3f &transformation)
 Set the affine transformation.
void setTransformation (const Eigen::Vector3f &rodrigues, const Eigen::Vector3f &translation, const Eigen::Vector3f &box_size)
 sets the box in general pose given by the orientation position and size
 ~BoxClipper3D () noexcept override
 virtual destructor
bool clipPoint3D (const PointT &point) const override
 interface to clip a single point
bool clipLineSegment3D (PointT &from, PointT &to) const override
void clipPlanarPolygon3D (std::vector< PointT, Eigen::aligned_allocator< PointT > > &polygon) const override
void clipPlanarPolygon3D (const std::vector< PointT, Eigen::aligned_allocator< PointT > > &polygon, std::vector< PointT, Eigen::aligned_allocator< PointT > > &clipped_polygon) const override
void clipPointCloud3D (const pcl::PointCloud< PointT > &cloud_in, Indices &clipped, const Indices &indices=Indices()) const override
 interface to clip a point cloud
Clipper3D< PointT > * clone () const override
 polymorphic method to clone the underlying clipper with its parameters.
Public Member Functions inherited from pcl::Clipper3D< PointT >
virtual ~Clipper3D () noexcept=default
 virtual destructor.

Protected Member Functions

float getDistance (const PointT &point) const
void transformPoint (const PointT &pointIn, PointT &pointOut) const

Detailed Description

template<typename PointT>
class pcl::BoxClipper3D< PointT >

Implementation of a box clipper in 3D. Actually it allows affine transformations, thus any parallelepiped in general pose. The affine transformation is used to transform the point before clipping it using a cube centered at origin and with an extend of -1 to +1 in each dimension.

Author
Suat Gedikli gedik.nosp@m.li@w.nosp@m.illow.nosp@m.gara.nosp@m.ge.co.nosp@m.m
See also
CropBox

Definition at line 54 of file box_clipper3D.h.

Member Typedef Documentation

◆ ConstPtr

template<typename PointT>
using pcl::BoxClipper3D< PointT >::ConstPtr = shared_ptr<const BoxClipper3D<PointT> >

Definition at line 59 of file box_clipper3D.h.

◆ Ptr

template<typename PointT>
using pcl::BoxClipper3D< PointT >::Ptr = shared_ptr<BoxClipper3D<PointT> >

Definition at line 58 of file box_clipper3D.h.

Constructor & Destructor Documentation

◆ BoxClipper3D() [1/2]

template<typename PointT>
pcl::BoxClipper3D< PointT >::BoxClipper3D ( const Eigen::Affine3f & transformation)

Constructor taking an affine transformation matrix, which allows also shearing of the clipping area.

Author
Suat Gedikli gedik.nosp@m.li@w.nosp@m.illow.nosp@m.gara.nosp@m.ge.co.nosp@m.m
Parameters
[in]transformationthe 3 dimensional affine transformation that is used to describe the cube ([-1; +1] in each dimension). The transformation is applied to the point(s)!

Definition at line 41 of file box_clipper3D.hpp.

Referenced by clone(), and setTransformation().

◆ BoxClipper3D() [2/2]

template<typename PointT>
pcl::BoxClipper3D< PointT >::BoxClipper3D ( const Eigen::Vector3f & rodrigues,
const Eigen::Vector3f & translation,
const Eigen::Vector3f & box_size )

creates a BoxClipper object with a scaled box in general pose

Parameters
[in]rodriguesthe rotation axis and angle given by the vector direction and length respectively
[in]translationthe position of the box center
[in]box_sizethe size of the box for each dimension

Definition at line 48 of file box_clipper3D.hpp.

References setTransformation().

◆ ~BoxClipper3D()

template<typename PointT>
pcl::BoxClipper3D< PointT >::~BoxClipper3D ( )
overridedefaultnoexcept

Member Function Documentation

◆ clipLineSegment3D()

template<typename PointT>
bool pcl::BoxClipper3D< PointT >::clipLineSegment3D ( PointT & from,
PointT & to ) const
overridevirtual
Attention
untested code

Implements pcl::Clipper3D< PointT >.

Definition at line 119 of file box_clipper3D.hpp.

Referenced by ~BoxClipper3D().

◆ clipPlanarPolygon3D() [1/2]

template<typename PointT>
void pcl::BoxClipper3D< PointT >::clipPlanarPolygon3D ( const std::vector< PointT, Eigen::aligned_allocator< PointT > > & polygon,
std::vector< PointT, Eigen::aligned_allocator< PointT > > & clipped_polygon ) const
overridevirtual
Attention
untested code

Implements pcl::Clipper3D< PointT >.

Definition at line 173 of file box_clipper3D.hpp.

◆ clipPlanarPolygon3D() [2/2]

template<typename PointT>
void pcl::BoxClipper3D< PointT >::clipPlanarPolygon3D ( std::vector< PointT, Eigen::aligned_allocator< PointT > > & polygon) const
overridevirtual
Attention
untested code

Implements pcl::Clipper3D< PointT >.

Definition at line 185 of file box_clipper3D.hpp.

Referenced by ~BoxClipper3D().

◆ clipPoint3D()

template<typename PointT>
bool pcl::BoxClipper3D< PointT >::clipPoint3D ( const PointT & point) const
overridevirtual

interface to clip a single point

Parameters
[in]pointthe point to check against
Returns
true, it point still exists, false if its clipped

Implements pcl::Clipper3D< PointT >.

Definition at line 107 of file box_clipper3D.hpp.

Referenced by clipPointCloud3D(), and ~BoxClipper3D().

◆ clipPointCloud3D()

template<typename PointT>
void pcl::BoxClipper3D< PointT >::clipPointCloud3D ( const pcl::PointCloud< PointT > & cloud_in,
Indices & clipped,
const Indices & indices = Indices() ) const
overridevirtual

interface to clip a point cloud

Parameters
[in]cloud_ininput point cloud
[out]clippedindices of points that remain after clipping the input cloud
[in]indicesthe indices of points in the point cloud to be clipped.
Returns
list of indices of remaining points after clipping.

Implements pcl::Clipper3D< PointT >.

Definition at line 195 of file box_clipper3D.hpp.

References clipPoint3D(), and pcl::PointCloud< PointT >::size().

Referenced by ~BoxClipper3D().

◆ clone()

template<typename PointT>
pcl::Clipper3D< PointT > * pcl::BoxClipper3D< PointT >::clone ( ) const
overridevirtual

polymorphic method to clone the underlying clipper with its parameters.

Returns
the new clipper object from the specific subclass with all its parameters.

Implements pcl::Clipper3D< PointT >.

Definition at line 74 of file box_clipper3D.hpp.

References BoxClipper3D().

Referenced by ~BoxClipper3D().

◆ getDistance()

template<typename PointT>
float pcl::BoxClipper3D< PointT >::getDistance ( const PointT & point) const
protected

◆ setTransformation() [1/2]

template<typename PointT>
void pcl::BoxClipper3D< PointT >::setTransformation ( const Eigen::Affine3f & transformation)

Set the affine transformation.

Parameters
[in]transformationapplied to the point(s)

Definition at line 60 of file box_clipper3D.hpp.

References BoxClipper3D(), and setTransformation().

Referenced by BoxClipper3D(), and setTransformation().

◆ setTransformation() [2/2]

template<typename PointT>
void pcl::BoxClipper3D< PointT >::setTransformation ( const Eigen::Vector3f & rodrigues,
const Eigen::Vector3f & translation,
const Eigen::Vector3f & box_size )

sets the box in general pose given by the orientation position and size

Parameters
[in]rodriguesthe rotation axis and angle given by the vector direction and length respectively
[in]translationthe position of the box center
[in]box_sizethe size of the box for each dimension

Definition at line 67 of file box_clipper3D.hpp.

◆ transformPoint()

template<typename PointT>
void pcl::BoxClipper3D< PointT >::transformPoint ( const PointT & pointIn,
PointT & pointOut ) const
protected

Definition at line 81 of file box_clipper3D.hpp.

Referenced by getDistance().


The documentation for this class was generated from the following files: