selfdriving
RenderOptions.h
Go to the documentation of this file.
1 /* -------------------------------------------------------------------------
2  * SelfDriving C++ library based on PTGs and mrpt-nav
3  * Copyright (C) 2019-2022 Jose Luis Blanco, University of Almeria
4  * See LICENSE for license information.
5  * ------------------------------------------------------------------------- */
6 
7 #pragma once
8 
9 #include <mrpt/graphs/TNodeID.h>
10 #include <mrpt/img/TColor.h>
11 #include <mrpt/maps/CPointsMap.h>
12 #include <mrpt/math/TPoint3D.h>
13 #include <mrpt/math/TPose2D.h>
14 
15 #include <optional>
16 #include <string>
17 
18 namespace mpp
19 {
20 /** Options for render_tree() */
22 {
23  RenderOptions() = default;
24  ~RenderOptions() = default;
25 
26  /// If set, highlight the path from root towards this node (e.g. the target)
27  std::optional<mrpt::graphs::TNodeID> highlight_path_to_node_id;
28 
30 
31  /// Draw one out of N vehicle shapes along the highlighted
33 
34  std::optional<mrpt::math::TPose2D> x_rand_pose;
35  std::optional<mrpt::math::TPose2D> new_state;
36 
37  std::optional<mrpt::math::TPose2D> x_nearest_pose;
38  std::optional<const mrpt::maps::CPointsMap*> local_obs_from_nearest_pose;
39 
40  /// A scale factor to all XYZ corners (default=auto from vehicle shape)
41  std::optional<double> xyzcorners_scale;
42 
43  /// 0:disable, not assigned: auto
44  std::optional<double> ground_xy_grid_frequency;
45 
46  /// If !=0, represent different headings as different heights:
47  double phi2z_scale = 1.0;
48 
49  // RGB + A colors:
50  mrpt::img::TColor color_vehicle{0xff0000, 0xff};
51  mrpt::img::TColor color_obstacles{0x0000ff, 0x40};
52  mrpt::img::TColor color_local_obstacles{0x0000ff, 0xff};
53  mrpt::img::TColor color_start{0x000000, 0xff};
54  mrpt::img::TColor color_goal{0x000000, 0xff};
55  mrpt::img::TColor color_ground_xy_grid{0xffffff, 0xff};
56  mrpt::img::TColor color_normal_edge{0x222222, 0x40};
57  mrpt::img::TColor color_last_edge{0xffff00, 0xff};
58  mrpt::img::TColor color_optimal_edge{0x000000, 0xff};
59 
60  float width_last_edge = 3.f; //!< 0=hidden
61  float width_normal_edge = 1.f; //!< 0=hidden
62  float width_optimal_edge = 4.f; //!< 0=hidden
63  float point_size_obstacles = 5.f;
65 
66  /** (Default=0.01) Height (Z coordinate) for the vehicle shapes. Helps
67  * making it in the "first plane" */
68  double vehicle_shape_z = 0.01;
69 
70  /** Robot line width for visualization - default 2.0 */
71  double vehicle_line_width = 2.0;
72 
73  bool draw_obstacles = true;
74 
75  bool draw_twist = true;
76  double linVelScale = 0.25;
77  double angVelScale = 0.25;
78  double twistArrowsRadius = 0.01;
79 
80  bool showEdgeCosts = false;
81  double edgeCostLabelSize = 0.025;
82 
83  std::string log_msg;
84  mrpt::math::TPoint3D log_msg_position;
85  double log_msg_scale = 0.2;
86 };
87 
88 } // namespace mpp
std::optional< const mrpt::maps::CPointsMap * > local_obs_from_nearest_pose
Definition: RenderOptions.h:38
double vehicle_shape_z
Definition: RenderOptions.h:68
std::optional< double > ground_xy_grid_frequency
0:disable, not assigned: auto
Definition: RenderOptions.h:44
mrpt::img::TColor color_last_edge
Definition: RenderOptions.h:57
double log_msg_scale
Definition: RenderOptions.h:85
mrpt::img::TColor color_obstacles
Definition: RenderOptions.h:51
std::optional< mrpt::math::TPose2D > x_rand_pose
Definition: RenderOptions.h:34
double linVelScale
Definition: RenderOptions.h:76
Definition: bestTrajectory.h:15
Definition: RenderOptions.h:21
double edgeCostLabelSize
Definition: RenderOptions.h:81
double angVelScale
Definition: RenderOptions.h:77
RenderOptions()=default
double phi2z_scale
If !=0, represent different headings as different heights:
Definition: RenderOptions.h:47
double twistArrowsRadius
Definition: RenderOptions.h:78
bool highlight_last_added_edge
Definition: RenderOptions.h:29
float width_last_edge
0=hidden
Definition: RenderOptions.h:60
mrpt::img::TColor color_goal
Definition: RenderOptions.h:54
bool showEdgeCosts
Definition: RenderOptions.h:80
bool draw_twist
Definition: RenderOptions.h:75
mrpt::img::TColor color_local_obstacles
Definition: RenderOptions.h:52
std::optional< mrpt::math::TPose2D > new_state
Definition: RenderOptions.h:35
double vehicle_line_width
Definition: RenderOptions.h:71
float point_size_local_obstacles
Definition: RenderOptions.h:64
std::optional< mrpt::math::TPose2D > x_nearest_pose
Definition: RenderOptions.h:37
mrpt::img::TColor color_normal_edge
Definition: RenderOptions.h:56
float width_normal_edge
0=hidden
Definition: RenderOptions.h:61
mrpt::img::TColor color_ground_xy_grid
Definition: RenderOptions.h:55
mrpt::math::TPoint3D log_msg_position
Definition: RenderOptions.h:84
float width_optimal_edge
0=hidden
Definition: RenderOptions.h:62
mrpt::img::TColor color_vehicle
Definition: RenderOptions.h:50
~RenderOptions()=default
mrpt::img::TColor color_start
Definition: RenderOptions.h:53
bool draw_obstacles
Definition: RenderOptions.h:73
size_t draw_shape_decimation
Draw one out of N vehicle shapes along the highlighted.
Definition: RenderOptions.h:32
std::optional< double > xyzcorners_scale
A scale factor to all XYZ corners (default=auto from vehicle shape)
Definition: RenderOptions.h:41
float point_size_obstacles
Definition: RenderOptions.h:63
std::optional< mrpt::graphs::TNodeID > highlight_path_to_node_id
If set, highlight the path from root towards this node (e.g. the target)
Definition: RenderOptions.h:27
mrpt::img::TColor color_optimal_edge
Definition: RenderOptions.h:58
std::string log_msg
Definition: RenderOptions.h:83