9 #ifndef SE_RAYCASTER_HPP 10 #define SE_RAYCASTER_HPP 28 const bool is_lhc =
false);
30 template<
typename MapT>
31 inline typename std::enable_if_t<MapT::fld_ == se::Field::Occupancy, std::optional<Eigen::Vector4f>>
33 const typename MapT::OctreeType& octree,
34 const Eigen::Vector3f& ray_origin_W,
35 const Eigen::Vector3f& ray_dir_W,
40 const float largestep);
42 template<
typename MapT>
43 inline typename std::enable_if_t<MapT::fld_ == se::Field::TSDF, std::optional<Eigen::Vector4f>>
45 const typename MapT::OctreeType& octree,
46 const Eigen::Vector3f& ray_origin_W,
47 const Eigen::Vector3f& ray_dir_W,
52 const float largestep);
54 template<
typename MapT,
typename SensorT>
59 const Eigen::Matrix4f& T_WS,
60 const SensorT& sensor);
63 const Eigen::Vector2i& volume_RGBA_image_res,
64 const Eigen::Vector3f& light_W,
65 const Eigen::Vector3f& ambient_W,
75 #include "impl/raycaster_impl.hpp" 77 #endif // SE_RAYCASTER_HPP std::enable_if_t< MapT::fld_==se::Field::Occupancy, std::optional< Eigen::Vector4f > > raycast(MapT &map, const typename MapT::OctreeType &octree, const Eigen::Vector3f &ray_origin_W, const Eigen::Vector3f &ray_dir_W, const float t_near, const float t_far, const float mu, const float step, const float largestep)
void render_volume_kernel(uint32_t *volume_RGBA_image_data, const Eigen::Vector2i &volume_RGBA_image_res, const Eigen::Vector3f &light_W, const Eigen::Vector3f &ambient_W, const se::Image< Eigen::Vector3f > &surface_point_cloud_W, const se::Image< Eigen::Vector3f > &surface_normals_W, const se::Image< int8_t > &surface_scale)
void point_cloud_to_normal(se::Image< Eigen::Vector3f > &normals, const se::Image< Eigen::Vector3f > &point_cloud, const bool is_lhc=false)
void raycast_volume(const MapT &map, se::Image< Eigen::Vector3f > &surface_point_cloud_W, se::Image< Eigen::Vector3f > &surface_normals_W, se::Image< int8_t > &surface_scale, const Eigen::Matrix4f &T_WS, const SensorT &sensor)
Helper wrapper to allocate and de-allocate octants in the octree.
Definition: colour_utils.hpp:17