Gazebo Rendering

API Reference

10.1.0
Image.hh
Go to the documentation of this file.
1/*
2 * Copyright (C) 2015 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_IMAGE_HH_
18#define GZ_RENDERING_IMAGE_HH_
19
20#include <memory>
21
22#include <gz/utils/ImplPtr.hh>
23
24#include "gz/rendering/config.hh"
26#include "gz/rendering/Export.hh"
27
28namespace gz
29{
30 namespace rendering
31 {
32 inline namespace GZ_RENDERING_VERSION_NAMESPACE {
33 //
34 class Camera;
35 class PixelBuffer;
36
39 class GZ_RENDERING_VISIBLE Image
40 {
42 public: Image();
43
48 public: Image(unsigned int _width, unsigned int _height,
49 PixelFormat _format);
50
52 public: virtual ~Image();
53
56 public: unsigned int Width() const;
57
60 public: unsigned int Height() const;
61
64 public: PixelFormat Format() const;
65
68 public: unsigned int Depth() const;
69
72 public: unsigned int MemorySize() const;
73
76 public: const void *Data() const;
77
80 public: void *Data();
81
85 public: template <typename T>
86 const T *Data() const;
87
91 public: template <typename T>
92 T *Data();
93
100 private: explicit Image(const PixelBuffer &_buffer);
101
103 private: friend class Camera;
104
105 GZ_UTILS_IMPL_PTR(dataPtr)
106 };
107
109 template <typename T>
110 const T *Image::Data() const
111 {
112 return static_cast<const T *>(this->Data());
113 }
114
116 template <typename T>
118 {
119 return static_cast<T *>(this->Data());
120 }
121 }
122 }
123}
124#endif