CARLA
CarlaRGBCameraPublisher.h
Go to the documentation of this file.
1 // Copyright (c) 2022 Computer Vision Center (CVC) at the Universitat Autonoma de Barcelona (UAB).
2 // This work is licensed under the terms of the MIT license.
3 // For a copy, see <https://opensource.org/licenses/MIT>.
4 
5 #pragma once
6 #define _GLIBCXX_USE_CXX11_ABI 0
7 
8 #include <memory>
9 #include <vector>
10 
11 #include "CarlaPublisher.h"
12 
13 namespace carla {
14 namespace ros2 {
15 
16  struct CarlaRGBCameraPublisherImpl;
17  struct CarlaCameraInfoPublisherImpl;
18 
20  public:
21  CarlaRGBCameraPublisher(const char* ros_name = "", const char* parent = "");
27 
28  bool Init();
29  void InitInfoData(uint32_t x_offset, uint32_t y_offset, uint32_t height, uint32_t width, float fov, bool do_rectify);
30  bool Publish();
31 
32  bool HasBeenInitialized() const;
33  void SetImageData(int32_t seconds, uint32_t nanoseconds, uint32_t height, uint32_t width, const uint8_t* data);
34  void SetCameraInfoData(int32_t seconds, uint32_t nanoseconds);
35  const char* type() const override { return "rgb camera"; }
36 
37  private:
38  bool InitImage();
39  bool InitInfo();
40  bool PublishImage();
41  bool PublishInfo();
42 
43  void SetImageData(int32_t seconds, uint32_t nanoseconds, uint32_t height, uint32_t width, std::vector<uint8_t>&& data);
44  void SetInfoRegionOfInterest(uint32_t x_offset, uint32_t y_offset, uint32_t height, uint32_t width, bool do_rectify);
45 
46  private:
47  std::shared_ptr<CarlaRGBCameraPublisherImpl> _impl;
48  std::shared_ptr<CarlaCameraInfoPublisherImpl> _impl_info;
49  };
50 }
51 }
void SetInfoRegionOfInterest(uint32_t x_offset, uint32_t y_offset, uint32_t height, uint32_t width, bool do_rectify)
CarlaRGBCameraPublisher(const char *ros_name="", const char *parent="")
This file contains definitions of common data structures used in traffic manager. ...
Definition: Carla.cpp:133
std::shared_ptr< CarlaCameraInfoPublisherImpl > _impl_info
CarlaRGBCameraPublisher & operator=(const CarlaRGBCameraPublisher &)
void InitInfoData(uint32_t x_offset, uint32_t y_offset, uint32_t height, uint32_t width, float fov, bool do_rectify)
std::shared_ptr< CarlaRGBCameraPublisherImpl > _impl
const std::string & parent() const
void SetImageData(int32_t seconds, uint32_t nanoseconds, uint32_t height, uint32_t width, const uint8_t *data)
void SetCameraInfoData(int32_t seconds, uint32_t nanoseconds)