12 #include <mrpt/obs/CObservation2DRangeScan.h>
13 #include <mrpt/opengl/CFBORender.h>
14 #include <mrpt/opengl/CPlanarLaserScan.h>
15 #include <mrpt/poses/CPose2D.h>
16 #include <mvsim/Sensors/SensorBase.h>
44 void simulateOn3DScene(mrpt::opengl::COpenGLScene& gl_scene)
override;
45 void freeOpenGLResources()
override;
50 virtual void internalGuiUpdate(
51 const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& viz,
52 const mrpt::optional_ref<mrpt::opengl::COpenGLScene>& physical,
bool childrenOnly)
override;
54 void notifySimulableSetPose(
const mrpt::math::TPose3D& newPose)
override;
58 return scan_model_.sensorPose.asTPose();
62 scan_model_.setSensorPose(mrpt::poses::CPose3D(p));
66 void internal_simulate_lidar_2d_mode(
const TSimulContext& context);
70 double rangeStdNoise_ = 0.01;
71 double angleStdNoise_ = mrpt::DEG2RAD(0.01);
80 bool ignore_parent_body_ =
false;
82 bool viz_visiblePlane_ =
false;
83 bool viz_visibleLines_ =
true;
84 bool viz_visiblePoints_ =
false;
85 float viz_pointSize_ = 3.0f;
86 mrpt::img::TColor viz_pointsColor_ = {0xff, 0x00, 0x00, 0x80};
87 mrpt::img::TColor viz_planeColor_ = {0x00, 0x00, 0xff, 0x10};
91 mrpt::obs::CObservation2DRangeScan scan_model_;
93 std::mutex last_scan_cs_;
96 mrpt::obs::CObservation2DRangeScan::Ptr last_scan2gui_;
102 mrpt::opengl::CPlanarLaserScan::Ptr gl_scan_;
103 mrpt::opengl::CSetOfObjects::Ptr gl_sensor_origin_, gl_sensor_origin_corner_;
104 mrpt::opengl::CSetOfObjects::Ptr gl_sensor_fov_;
106 std::optional<TSimulContext> has_to_render_;
107 std::mutex has_to_render_mtx_;
109 std::shared_ptr<mrpt::opengl::CFBORender> fbo_renderer_depth_;
111 std::vector<size_t> angleIdx2pixelIdx_;
112 std::vector<float> angleIdx2secant_;
Definition: LaserScanner.h:32
bool see_fixtures_
Definition: LaserScanner.h:74
virtual void simul_pre_timestep(const TSimulContext &context) override
virtual void simul_post_timestep(const TSimulContext &context) override
int z_order_
to help rendering multiple scans
Definition: LaserScanner.h:68
void setRelativePose(const mrpt::math::TPose3D &p) override
Definition: LaserScanner.h:60
mrpt::math::TPose3D getRelativePose() const override
Definition: LaserScanner.h:56
bool gui_uptodate_
Definition: LaserScanner.h:100
mrpt::obs::CObservation2DRangeScan::Ptr last_scan_
Definition: LaserScanner.h:95
bool raytrace_3d_
Definition: LaserScanner.h:78
virtual void loadConfigFrom(const rapidxml::xml_node< char > *root) override
Virtual base class for all sensors.
Definition: SensorBase.h:35
Definition: Simulable.h:40
Definition: basic_types.h:58