Gazebo Rendering

API Reference

7.4.2
gz/rendering/base/BaseBoundingBoxCamera.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 #ifndef GZ_RENDERING_BASE_BASEBOUNDINGBOXCAMERA_HH_
18 #define GZ_RENDERING_BASE_BASEBOUNDINGBOXCAMERA_HH_
19 
20 #include <vector>
21 
22 #include <gz/common/Event.hh>
23 #include <gz/math/Color.hh>
24 
27 
28 namespace gz
29 {
30  namespace rendering
31  {
32  inline namespace GZ_RENDERING_VERSION_NAMESPACE {
33 
34  template <class T>
36  public virtual BoundingBoxCamera,
37  public virtual BaseCamera<T>,
38  public virtual T
39  {
41  protected: BaseBoundingBoxCamera();
42 
44  public: virtual ~BaseBoundingBoxCamera();
45 
46  // Documentation inherited
47  public: virtual const std::vector<BoundingBox> &BoundingBoxData() const;
48 
49  // Documentation inherited
50  public: virtual gz::common::ConnectionPtr ConnectNewBoundingBoxes(
51  std::function<void(const std::vector<BoundingBox> &)> _subscriber) = 0;
52 
53  // Documentation inherited
54  public: virtual void SetBoundingBoxType(BoundingBoxType _type);
55 
56  // Documentation inherited
57  public: virtual BoundingBoxType Type() const;
58 
59  // Documentation inherited
60  public: virtual void DrawBoundingBox(unsigned char *_data,
61  const math::Color &_color, const BoundingBox &_box) const = 0;
62 
65 
68  };
69 
71  template <class T>
73  {
74  }
75 
77  template <class T>
79  {
80  }
81 
83  template <class T>
86  {
87  return this->boundingBoxes;
88  }
89 
91  template <class T>
93  {
94  this->type = _type;
95  }
96 
98  template <class T>
100  {
101  return this->type;
102  }
103  }
104  }
105 }
106 #endif