Class SimulationWorld

Class Documentation

class SimulationWorld

Public Functions

SimulationWorld()
virtual ~SimulationWorld()
void addObject(std::unique_ptr<Object> object)

=== Creating an environment ===

void addGroundLevel(FloatingPoint height)

Convenience functions for setting up bounded areas.

Ground level can also be used for ceiling. ;)

void addPlaneBoundaries(FloatingPoint x_min, FloatingPoint x_max, FloatingPoint y_min, FloatingPoint y_max)

Add 4 walls (infinite planes) bounding the space.

In case this is not the desired behavior, can use addObject to add walls manually one by one. If infinite walls are undesirable, then use cubes.

void clear()

Deletes all objects!

void getPointcloudFromViewpoint(const Point &view_origin, const Point &view_direction, const Eigen::Vector2i &camera_res, FloatingPoint fov_h_rad, FloatingPoint max_dist, Pointcloud *ptcloud, Colors *colors) const

=== Generating synthetic data from environment === Generates a synthetic view Assumes square pixels for ease…

Takes in FoV in radians.

void getPointcloudFromTransform(const Transformation &pose, const Eigen::Vector2i &camera_res, FloatingPoint fov_h_rad, FloatingPoint max_dist, Pointcloud *ptcloud, Colors *colors) const
void getNoisyPointcloudFromViewpoint(const Point &view_origin, const Point &view_direction, const Eigen::Vector2i &camera_res, FloatingPoint fov_h_rad, FloatingPoint max_dist, FloatingPoint noise_sigma, Pointcloud *ptcloud, Colors *colors)

Same thing as getPointcloudFromViewpoint, but also adds a noise in the distance of the measurement, given by noise_sigma (Gaussian noise).

No noise in the bearing.

void getNoisyPointcloudFromTransform(const Transformation &pose, const Eigen::Vector2i &camera_res, FloatingPoint fov_h_rad, FloatingPoint max_dist, FloatingPoint noise_sigma, Pointcloud *ptcloud, Colors *colors)
template <typename VoxelType>
void generateSdfFromWorld(FloatingPoint max_dist, Layer<VoxelType> *layer) const
FloatingPoint getDistanceToPoint(const Point &coords, FloatingPoint max_dist) const
void setBounds(const Point &min_bound, const Point &max_bound)

Set and get the map generation and display bounds.

Point getMinBound() const
Point getMaxBound() const
template <>
void setVoxel(FloatingPoint dist, const Color &color, TsdfVoxel *voxel) const
template <>
void setVoxel(FloatingPoint dist, const Color&, EsdfVoxel *voxel) const