supereight
Loading...
Searching...
No Matches
Namespaces | Functions
raycaster.hpp File Reference
#include <optional>
#include <se/common/eigen_utils.hpp>
#include <se/common/math_util.hpp>
#include <se/image/image.hpp>
#include <se/map/octree/visitor.hpp>
#include <se/map/octree/voxel_block_ray_iterator.hpp>
#include "impl/raycaster_impl.hpp"
Include dependency graph for raycaster.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  se
 Helper wrapper to allocate and de-allocate octants in the octree.
 
namespace  se::raycaster
 

Functions

void se::raycaster::point_cloud_to_normal (se::Image< Eigen::Vector3f > &normals, const se::Image< Eigen::Vector3f > &point_cloud, const bool is_lhc=false)
 
template<typename MapT >
std::enable_if_t< MapT::fld_==se::Field::Occupancy, std::optional< Eigen::Vector4f > > se::raycaster::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)
 
template<typename MapT >
std::enable_if_t< MapT::fld_==se::Field::TSDF, std::optional< Eigen::Vector4f > > se::raycaster::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)
 
template<typename MapT , typename SensorT >
void se::raycaster::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)
 
template<typename GetDiffuseColourF >
void se::raycaster::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 se::raycaster::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, coloured using the scale from surface_scale.
 
void se::raycaster::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, coloured using the colours from surface_colour.