Point Cloud Library (PCL)  1.9.1-dev
List of all members | Public Types | Public Member Functions
pcl::kinfuLS::WorldModel< PointT > Class Template Reference

WorldModel maintains a 3D point cloud that can be queried and updated via helper functions. More...

#include </__w/1/s/gpu/kinfu_large_scale/include/pcl/gpu/kinfu_large_scale/world_model.h>

Public Types

typedef boost::shared_ptr< WorldModel< PointT > > Ptr
 
typedef boost::shared_ptr< const WorldModel< PointT > > ConstPtr
 
typedef pcl::PointCloud< PointTPointCloud
 
typedef PointCloud::Ptr PointCloudPtr
 
typedef PointCloud::ConstPtr PointCloudConstPtr
 
typedef pcl::ConditionAnd< PointT >::Ptr ConditionAndPtr
 
typedef pcl::ConditionOr< PointT >::Ptr ConditionOrPtr
 
typedef pcl::FieldComparison< PointT >::ConstPtr FieldComparisonConstPtr
 
typedef pcl::traits::fieldList< PointT >::type FieldList
 

Public Member Functions

 WorldModel ()
 Default constructor for the WorldModel. More...
 
void reset ()
 Clear the world. More...
 
void addSlice (const PointCloudPtr new_cloud)
 Append a new point cloud (slice) to the world. More...
 
void getExistingData (const double previous_origin_x, const double previous_origin_y, const double previous_origin_z, const double offset_x, const double offset_y, const double offset_z, const double volume_x, const double volume_y, const double volume_z, pcl::PointCloud< PointT > &existing_slice)
 Retrieve existing data from the world model, after a shift. More...
 
void setSliceAsNans (const double origin_x, const double origin_y, const double origin_z, const double offset_x, const double offset_y, const double offset_z, const int size_x, const int size_y, const int size_z)
 Give nan values to the slice of the world. More...
 
void cleanWorldFromNans ()
 Remove points with nan values from the world. More...
 
PointCloudPtr getWorld ()
 Returns the world as a point cloud. More...
 
size_t getWorldSize ()
 Returns the number of points contained in the world. More...
 
void getWorldAsCubes (double size, std::vector< PointCloudPtr > &cubes, std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > &transforms, double overlap=0.0)
 Returns the world as two vectors of cubes of size "size" (pointclouds) and transforms. More...
 

Detailed Description

template<typename PointT>
class pcl::kinfuLS::WorldModel< PointT >

WorldModel maintains a 3D point cloud that can be queried and updated via helper functions.


The world is represented as a point cloud.
When new points are added to the world, we replace old ones by the newest ones. This is achieved by setting old points to nan (for speed)

Author
Raphael Favier

Definition at line 63 of file world_model.h.

Member Typedef Documentation

Definition at line 74 of file world_model.h.

template<typename PointT>
typedef pcl::ConditionOr<PointT>::Ptr pcl::kinfuLS::WorldModel< PointT >::ConditionOrPtr

Definition at line 75 of file world_model.h.

template<typename PointT>
typedef boost::shared_ptr<const WorldModel<PointT> > pcl::kinfuLS::WorldModel< PointT >::ConstPtr

Definition at line 68 of file world_model.h.

Definition at line 76 of file world_model.h.

template<typename PointT>
typedef pcl::traits::fieldList<PointT>::type pcl::kinfuLS::WorldModel< PointT >::FieldList

Definition at line 78 of file world_model.h.

template<typename PointT>
typedef pcl::PointCloud<PointT> pcl::kinfuLS::WorldModel< PointT >::PointCloud

Definition at line 70 of file world_model.h.

Definition at line 72 of file world_model.h.

template<typename PointT>
typedef PointCloud::Ptr pcl::kinfuLS::WorldModel< PointT >::PointCloudPtr

Definition at line 71 of file world_model.h.

template<typename PointT>
typedef boost::shared_ptr<WorldModel<PointT> > pcl::kinfuLS::WorldModel< PointT >::Ptr

Definition at line 67 of file world_model.h.

Constructor & Destructor Documentation

template<typename PointT>
pcl::kinfuLS::WorldModel< PointT >::WorldModel ( )
inline

Default constructor for the WorldModel.

Definition at line 82 of file world_model.h.

Member Function Documentation

template<typename PointT >
void pcl::kinfuLS::WorldModel< PointT >::addSlice ( const PointCloudPtr  new_cloud)

Append a new point cloud (slice) to the world.

Parameters
[in]new_cloudthe point cloud to add to the world

Definition at line 46 of file world_model.hpp.

Referenced by pcl::kinfuLS::WorldModel< pcl::pcl::PointXYZI >::reset().

template<typename PointT>
void pcl::kinfuLS::WorldModel< PointT >::cleanWorldFromNans ( )
inline

Remove points with nan values from the world.

Definition at line 138 of file world_model.h.

template<typename PointT>
void pcl::kinfuLS::WorldModel< PointT >::getExistingData ( const double  previous_origin_x,
const double  previous_origin_y,
const double  previous_origin_z,
const double  offset_x,
const double  offset_y,
const double  offset_z,
const double  volume_x,
const double  volume_y,
const double  volume_z,
pcl::PointCloud< PointT > &  existing_slice 
)

Retrieve existing data from the world model, after a shift.

Parameters
[in]previous_origin_xglobal origin of the cube on X axis, before the shift
[in]previous_origin_yglobal origin of the cube on Y axis, before the shift
[in]previous_origin_zglobal origin of the cube on Z axis, before the shift
[in]offset_xshift on X, in indices
[in]offset_yshift on Y, in indices
[in]offset_zshift on Z, in indices
[in]volume_xsize of the cube, X axis, in indices
[in]volume_ysize of the cube, Y axis, in indices
[in]volume_zsize of the cube, Z axis, in indices
[out]existing_slicethe extracted point cloud representing the slice

Definition at line 60 of file world_model.hpp.

References pcl::Filter< PointT >::filter(), pcl::ComparisonOps::GE, pcl::ComparisonOps::LT, pcl::PointCloud< PointT >::points, pcl::ConditionalRemoval< PointT >::setCondition(), pcl::PCLBase< PointT >::setInputCloud(), pcl::ConditionalRemoval< PointT >::setKeepOrganized(), and pcl::transformPointCloud().

Referenced by pcl::kinfuLS::WorldModel< pcl::pcl::PointXYZI >::reset().

template<typename PointT>
PointCloudPtr pcl::kinfuLS::WorldModel< PointT >::getWorld ( )
inline

Returns the world as a point cloud.

Definition at line 147 of file world_model.h.

template<typename PointT>
void pcl::kinfuLS::WorldModel< PointT >::getWorldAsCubes ( double  size,
std::vector< PointCloudPtr > &  cubes,
std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > &  transforms,
double  overlap = 0.0 
)

Returns the world as two vectors of cubes of size "size" (pointclouds) and transforms.

Parameters
[in]sizethe size of a 3D cube.
[out]cubesa vector of point clouds representing each cube (in their original world coordinates).
[out]transformsa vector containing the xyz position of each cube in world coordinates.
[in]overlapoptional overlap (in percent) between each cube (useful to create overlapped meshes).

Definition at line 133 of file world_model.hpp.

References pcl::Filter< PointT >::filter(), pcl::ComparisonOps::GE, pcl::getMinMax3D(), pcl::ComparisonOps::LT, pcl::removeNaNFromPointCloud(), pcl::ConditionalRemoval< PointT >::setCondition(), pcl::PCLBase< PointT >::setInputCloud(), and pcl::ConditionalRemoval< PointT >::setKeepOrganized().

Referenced by pcl::kinfuLS::WorldModel< pcl::pcl::PointXYZI >::getWorldSize().

template<typename PointT>
size_t pcl::kinfuLS::WorldModel< PointT >::getWorldSize ( )
inline

Returns the number of points contained in the world.

Definition at line 154 of file world_model.h.

template<typename PointT>
void pcl::kinfuLS::WorldModel< PointT >::reset ( )
inline

Clear the world.

Definition at line 90 of file world_model.h.

template<typename PointT >
void pcl::kinfuLS::WorldModel< PointT >::setSliceAsNans ( const double  origin_x,
const double  origin_y,
const double  origin_z,
const double  offset_x,
const double  offset_y,
const double  offset_z,
const int  size_x,
const int  size_y,
const int  size_z 
)

Give nan values to the slice of the world.

Parameters
[in]origin_xglobal origin of the cube on X axis, before the shift
[in]origin_yglobal origin of the cube on Y axis, before the shift
[in]origin_zglobal origin of the cube on Z axis, before the shift
[in]offset_xshift on X, in indices
[in]offset_yshift on Y, in indices
[in]offset_zshift on Z, in indices
[in]size_xsize of the cube, X axis, in indices
[in]size_ysize of the cube, Y axis, in indices
[in]size_zsize of the cube, Z axis, in indices

Definition at line 272 of file world_model.hpp.

References pcl::Filter< PointT >::filter(), pcl::ComparisonOps::GE, pcl::Filter< PointT >::getRemovedIndices(), pcl::ComparisonOps::LT, pcl::ConditionalRemoval< PointT >::setCondition(), pcl::PCLBase< PointT >::setInputCloud(), and pcl::ConditionalRemoval< PointT >::setKeepOrganized().

Referenced by pcl::kinfuLS::WorldModel< pcl::pcl::PointXYZI >::reset().


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