40 #include <pcl/memory.h>
41 #include <pcl/pcl_macros.h>
42 #include <pcl/point_types.h>
43 #include <pcl/gpu/containers/device_array.h>
44 #include <pcl/gpu/kinfu/pixel_rgb.h>
45 #include <Eigen/Geometry>
59 using Ptr = shared_ptr<RayCaster>;
76 RayCaster(
int rows = 480,
int cols = 640,
float fx = 525.f,
float fy = 525.f,
float cx = -1,
float cy = -1);
81 setIntrinsics(
float fx = 525.f,
float fy = 525.f,
float cx = -1,
float cy = -1);
88 run(
const TsdfVolume& volume,
const Eigen::Affine3f& camera_pose);
94 generateSceneView(
View& view)
const;
101 generateSceneView(
View& view,
const Eigen::Vector3f& light_source_pose)
const;
107 generateDepthImage(
Depth& depth)
const;
111 getVertexMap()
const;
115 getNormalMap()
const;
119 float fx_, fy_, cx_, cy_;
137 Eigen::Affine3f camera_pose_;
140 Eigen::Vector3f volume_size_;
147 template<
typename Po
intType>
shared_ptr< const RayCaster > ConstPtr
Class that performs raycasting for TSDF volume.
shared_ptr< RayCaster > Ptr
#define PCL_MAKE_ALIGNED_OPERATOR_NEW
Macro to signal a class requires a custom allocator.
void convertMapToOranizedCloud(const RayCaster::MapArr &map, DeviceArray2D< PointType > &cloud)
Converts from map representation to organized not-dence point cloud.