.. _program_listing_file__tmp_ws_src_ign_rviz_ign_rviz_common_include_ignition_rviz_common_frame_manager.hpp: Program Listing for File frame_manager.hpp ========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/ign_rviz/ign_rviz_common/include/ignition/rviz/common/frame_manager.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // Copyright (c) 2020 Open Source Robotics Foundation, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #ifndef IGNITION__RVIZ__COMMON__FRAME_MANAGER_HPP_ #define IGNITION__RVIZ__COMMON__FRAME_MANAGER_HPP_ #include #include #include #include #include #include #include #include #include #include #include namespace ignition { namespace rviz { namespace common { class FrameManager : public QObject { Q_OBJECT public: explicit FrameManager(rclcpp::Node::SharedPtr _node); void setFixedFrame(const std::string & _fixedFrame); bool getFramePose(const std::string & _frame, ignition::math::Pose3d & _pose); bool getParentPose(const std::string & _child, ignition::math::Pose3d & _pose); void getFrames(std::vector & _frames); std::string getFixedFrame(); protected: void tf_callback(const tf2_msgs::msg::TFMessage::SharedPtr _msg); private: rclcpp::Node::SharedPtr node; std::mutex tf_mutex_; std::string fixedFrame; std::shared_ptr tfBuffer; std::shared_ptr tfListener; rclcpp::Subscription::SharedPtr subscriber; std::unordered_map tfTree; tf2::TimePoint timePoint; unsigned int frameCount; }; } // namespace common } // namespace rviz } // namespace ignition #endif // IGNITION__RVIZ__COMMON__FRAME_MANAGER_HPP_