9#ifndef SE_RAYCASTER_HPP
10#define SE_RAYCASTER_HPP
26 const bool is_lhc =
false);
28template<
typename MapT>
29inline typename std::enable_if_t<MapT::fld_ == se::Field::Occupancy, std::optional<Eigen::Vector4f>>
31 const typename MapT::OctreeType&
octree,
40template<
typename MapT>
41inline typename std::enable_if_t<MapT::fld_ == se::Field::TSDF, std::optional<Eigen::Vector4f>>
43 const typename MapT::OctreeType&
octree,
52template<
typename MapT,
typename SensorT>
55 const Eigen::Isometry3f&
T_WS,
77template<
typename GetDiffuseColourF>
109#include "impl/raycaster_impl.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_colour(se::Image< RGBA > &render, const se::Image< Eigen::Vector3f > &surface_points_W, const se::Image< Eigen::Vector3f > &surface_normals_W, const se::Image< RGB > &surface_colour, const Eigen::Vector3f &light_source_W=Eigen::Vector3f::Zero(), const RGB ambient_light=RGB{0x1A, 0x1A, 0x1A})
Render the surface represented by surface_points_W and surface_normals_W into render,...
void render_volume(se::Image< RGBA > &render, const se::Image< Eigen::Vector3f > &surface_points_W, const se::Image< Eigen::Vector3f > &surface_normals_W, const GetDiffuseColourF get_diffuse_colour, const Eigen::Vector3f &light_source_W=Eigen::Vector3f::Zero(), const RGB ambient_light=RGB{0x1A, 0x1A, 0x1A})
Render the surface represented by surface_points_W and surface_normals_W into render.
void render_volume_scale(se::Image< RGBA > &render, const se::Image< Eigen::Vector3f > &surface_points_W, const se::Image< Eigen::Vector3f > &surface_normals_W, const se::Image< int8_t > &surface_scale, const Eigen::Vector3f &light_source_W=Eigen::Vector3f::Zero(), const RGB ambient_light=RGB{0x1A, 0x1A, 0x1A})
Render the surface represented by surface_points_W and surface_normals_W into render,...
void raycast_volume(const MapT &map, const SensorT &sensor, const Eigen::Isometry3f &T_WS, se::Image< Eigen::Vector3f > &surface_point_cloud_W, se::Image< Eigen::Vector3f > &surface_normals_W, se::Image< int8_t > &surface_scale, se::Image< colour_t > *surface_colour=nullptr)
void point_cloud_to_normal(se::Image< Eigen::Vector3f > &normals, const se::Image< Eigen::Vector3f > &point_cloud, const bool is_lhc=false)
Helper wrapper to allocate and de-allocate octants in the octree.
Definition bounded_vector.hpp:14
A colour represented as a Red-Green-Blue tuple with 8-bits per channel.
Definition rgb.hpp:18