80 :
public rviz_common::MessageFilterDisplay<navmap_ros_interfaces::msg::NavMap>
84 using MFDClass = rviz_common::MessageFilterDisplay<navmap_ros_interfaces::msg::NavMap>;
85 using NavMapMsg = navmap_ros_interfaces::msg::NavMap;
86 using NavMapLayerMsg = navmap_ros_interfaces::msg::NavMapLayer;
93 void reset()
override;
101 void updateLayerUpdateTopic();
102 void onLayerSelectionChanged();
103 void onDrawNormalsChanged();
104 void onAlphaChanged();
105 void onNormalScaleChanged();
106 void onColorSchemeChanged();
110 void subscribeToLayerTopic();
111 void unsubscribeToLayerTopic();
112 void incomingLayer(
const NavMapLayerMsg::ConstSharedPtr & msg);
115 void rebuildLayerIndex_();
116 std::string currentSelectedLayer_()
const;
117 void repopulateLayerEnum_();
118 void applyOrCacheLayer_(
const NavMapLayerMsg & layer);
121 void updateGeometry_();
122 void updateNormals_();
123 void updateColorSchemeOptions_();
126 void ensureMeshBuilt_();
128 void updateColorsOnly_();
132 rviz_common::properties::EnumProperty * layer_property_{
nullptr};
133 rviz_common::properties::RosTopicProperty * layer_topic_property_{
nullptr};
134 rviz_common::properties::QosProfileProperty * layer_profile_property_{
nullptr};
135 rviz_common::properties::EnumProperty * color_scheme_property_{
nullptr};
136 rviz_common::properties::BoolProperty * draw_normals_property_{
nullptr};
137 rviz_common::properties::FloatProperty * normal_scale_property_{
nullptr};
138 rviz_common::properties::FloatProperty * alpha_property_{
nullptr};
139 rviz_common::properties::StringProperty * info_property_{
nullptr};
142 rclcpp::QoS layer_profile_{rclcpp::QoS(5)};
143 rclcpp::Subscription<NavMapLayerMsg>::SharedPtr layer_subscription_;
144 rclcpp::Time layer_subscription_start_time_;
147 std::uint64_t navmap_msg_count_{0};
148 std::uint64_t layer_update_count_{0};
149 rclcpp::Time last_navmap_stamp_;
150 rclcpp::Time last_layer_stamp_;
153 NavMapMsg::SharedPtr last_msg_;
154 std::unordered_map<std::string, const NavMapLayerMsg *> layers_by_name_;
157 Ogre::SceneNode * root_node_{
nullptr};
158 Ogre::ManualObject * normals_obj_{
nullptr};
161 Ogre::Entity * entity_{
nullptr};
162 Ogre::SharedPtr<Ogre::Mesh> mesh_;
163 Ogre::HardwareVertexBufferSharedPtr colour_vbuf_;
164 unsigned short colour_vbuf_source_{0};
165 bool mesh_built_{
false};
Main container for navigable surfaces, geometry, and layers.
Definition NavMap.hpp:465