CameraSensor.hh
Go to the documentation of this file.
1/*
2 * Copyright (C) 2012 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 GAZEBO_SENSORS_CAMERASENSOR_HH_
18#define GAZEBO_SENSORS_CAMERASENSOR_HH_
19
20#include <memory>
21#include <string>
22#include <ignition/transport/Node.hh>
23
27#include "gazebo/util/system.hh"
28
29namespace gazebo
30{
31 namespace sensors
32 {
33 // Forward declare private data class
34 class CameraSensorPrivate;
35
38
43 class GZ_SENSORS_VISIBLE CameraSensor : public Sensor
44 {
46 public: CameraSensor();
47
49 public: virtual ~CameraSensor();
50
54 public: virtual void Load(const std::string &_worldName,
55 sdf::ElementPtr _sdf);
56
59 public: virtual void Load(const std::string &_worldName);
60
62 public: virtual void Init();
63
66 public: virtual std::string Topic() const;
67
70 public: std::string TopicIgn() const;
71
75
78 public: unsigned int ImageWidth() const;
79
82 public: unsigned int ImageHeight() const;
83
86 public: const unsigned char *ImageData() const;
87
91 public: bool SaveFrame(const std::string &_filename);
92
93 // Documentation inherited
94 public: virtual bool IsActive() const;
95
96 // Documentation inherited
97 protected: virtual bool UpdateImpl(const bool _force);
98
100 protected: virtual void Fini();
101
103 protected: virtual void Render();
104
106 protected: bool Rendered() const;
107
110 protected: void SetRendered(const bool _value);
111
114
117
119 protected: ignition::transport::Node::Publisher imagePubIgn;
120
123 private: std::unique_ptr<CameraSensorPrivate> dataPtr;
124 };
126 }
127}
128#endif
sensors
Definition SensorManager.hh:35
Forward declarations for transport.
Basic camera sensor.
Definition CameraSensor.hh:44
virtual void Render()
Handle the render event.
unsigned int ImageWidth() const
Gets the width of the image in pixels.
virtual void Fini()
Finalize the camera.
virtual void Init()
Initialize the camera.
transport::PublisherPtr imagePub
Publisher of image messages.
Definition CameraSensor.hh:116
const unsigned char * ImageData() const
Gets the raw image data from the sensor.
rendering::CameraPtr Camera() const
Returns a pointer to the rendering::Camera.
unsigned int ImageHeight() const
Gets the height of the image in pixels.
ignition::transport::Node::Publisher imagePubIgn
Publisher of image messages.
Definition CameraSensor.hh:119
virtual void Load(const std::string &_worldName, sdf::ElementPtr _sdf)
Load the sensor with SDF parameters.
virtual void Load(const std::string &_worldName)
Load the sensor with default parameters.
virtual ~CameraSensor()
Destructor.
bool Rendered() const
Get the value of the rendered flag.
virtual bool IsActive() const
Returns true if sensor generation is active.
virtual std::string Topic() const
Gets the topic name of the sensor.
virtual bool UpdateImpl(const bool _force)
This gets overwritten by derived sensor types.
void SetRendered(const bool _value)
Set the value of the rendered flag.
std::string TopicIgn() const
Gets the ignition topic name of the sensor.
rendering::CameraPtr camera
Pointer to the camera.
Definition CameraSensor.hh:113
bool SaveFrame(const std::string &_filename)
Saves the image to the disk.
Base class for sensors.
Definition Sensor.hh:53
boost::shared_ptr< Camera > CameraPtr
Definition RenderTypes.hh:90
boost::shared_ptr< Publisher > PublisherPtr
Definition TransportTypes.hh:49
Forward declarations for the common classes.
Definition Animation.hh:27