Thermal camera that produces temperature data. An object's temperature can be set through the Visual class using SetUserData with the key "temperature". Ambient temperature is returned for object that do not have this property set. Note that temperature variations for the environment and objects can be set using the Set*Range functions in this class. For simplicity, the variations are modeled as a function of depth (which is not how a real thermal sensor works). Ideally we support heatmaps for visuals in order to produce more realistic temperature output. More...
#include <ThermalCamera.hh>
Public Member Functions | |
virtual | ~ThermalCamera () |
Destructor. More... | |
virtual float | AmbientTemperature () const =0 |
Get the ambient temperature of the environment. More... | |
virtual float | AmbientTemperatureRange () const =0 |
Get the range of ambient temperature. More... | |
virtual gz::common::ConnectionPtr | ConnectNewThermalFrame (std::function< void(const uint16_t *, unsigned int, unsigned int, unsigned int, const std::string &)> _subscriber)=0 |
Connect to the new thermal image event. More... | |
virtual float | HeatSourceTemperatureRange () const =0 |
Get the range of temperature variation for all heat sources. More... | |
virtual float | LinearResolution () const =0 |
Get the temperature linear resolution. More... | |
virtual float | MaxTemperature () const =0 |
Get the maximum temperature the sensor can detect. More... | |
virtual float | MinTemperature () const =0 |
Get the minimum temperature the sensor can detect. More... | |
virtual void | SetAmbientTemperature (float _ambient)=0 |
Set the ambient temperature of the environment. More... | |
virtual void | SetAmbientTemperatureRange (float _range)=0 |
Set the range of ambient temperature. More... | |
virtual void | SetHeatSourceTemperatureRange (float _range)=0 |
Set the range of temperature variation for all heat sources. If set, the temperature reading of heat sources will vary within a temperature of +/- range/2 instead of returning a fixed uniform temperature for the entire heat source. More... | |
virtual void | SetLinearResolution (float _resolution)=0 |
Set the temperature linear resolution. The thermal image data returned will be temperature in kelvin / resolution. Typical values are 0.01 (10mK), 0.1 (100mK), or 0.04 to simulate 14 bit format. More... | |
virtual void | SetMaxTemperature (float _max)=0 |
Set the maximum temperature the sensor can detect. More... | |
virtual void | SetMinTemperature (float _min)=0 |
Set the minimum temperature the sensor can detect. More... | |
Public Member Functions inherited from Camera | |
virtual | ~Camera () |
Deconstructor. More... | |
virtual void | AddRenderPass (const RenderPassPtr &_pass)=0 |
Add a render pass to the camera. More... | |
virtual unsigned int | AntiAliasing () const =0 |
Get the level of anti-aliasing used during rendering. More... | |
virtual double | AspectRatio () const =0 |
Get the camera's aspect ratio. More... | |
virtual void | Capture (Image &_image)=0 |
Renders a new frame and writes the results to the given image. This is a convenience function for single-camera scenes. It wraps the pre-render, render, post-render, and get-image calls into a single function. This should be used in applications with multiple cameras or multiple consumers of a single camera's images. More... | |
virtual common::ConnectionPtr | ConnectNewImageFrame (NewFrameListener _listener)=0 |
Subscribes a new listener to this camera's new frame event. More... | |
virtual void | Copy (Image &_image) const =0 |
Writes the last rendered image to the given image buffer. This function can be called multiple times after PostRender has been called, without rendering the scene again. Calling this function before a single image has been rendered will have undefined behavior. More... | |
virtual Image | CreateImage () const =0 |
Created an empty image buffer for capturing images. The resulting image will have sufficient memory allocated for subsequent calls to this camera's Capture function. However, any changes to this cameras properties may invalidate the condition. More... | |
virtual RenderWindowPtr | CreateRenderWindow ()=0 |
Create a render window. More... | |
virtual double | FarClipPlane () const =0 |
Get the camera's far clipping plane distance. More... | |
virtual math::Vector3d | FollowOffset () const =0 |
Get the follow offset vector in the frame specified at the time the follow target is set. More... | |
virtual double | FollowPGain () const =0 |
Get the camera follow movement P gain. More... | |
virtual NodePtr | FollowTarget () const =0 |
Get the target node being followed. More... | |
virtual math::Angle | HFOV () const =0 |
Get the camera's horizontal field-of-view. More... | |
virtual PixelFormat | ImageFormat () const =0 |
Get the image pixel format. If the image pixel format has not been set with a valid value, PF_UNKNOWN will be returned. More... | |
virtual unsigned int | ImageHeight () const =0 |
Get the image height in pixels. More... | |
virtual unsigned int | ImageMemorySize () const =0 |
Get the total image memory size in bytes. More... | |
virtual unsigned int | ImageWidth () const =0 |
Get the image width in pixels. More... | |
virtual double | NearClipPlane () const =0 |
Get the camera's near clipping plane distance. More... | |
virtual void | PostRender ()=0 |
Preforms any necessary final rendering work. Once rendering is complete the camera will alert any listeners of the new frame event. This function should only be called after a call to Render has successfully been executed. More... | |
virtual math::Matrix4d | ProjectionMatrix () const =0 |
Get the projection matrix for this camera. More... | |
virtual void | RemoveRenderPass (const RenderPassPtr &_pass)=0 |
Remove a render pass from the camera. More... | |
virtual void | Render ()=0 |
Renders the current scene using this camera. This function assumes PreRender() has already been called on the parent Scene, allowing the camera and the scene itself to prepare for rendering. More... | |
virtual RenderPassPtr | RenderPassByIndex (unsigned int _index) const =0 |
Get a render passes by index. More... | |
virtual unsigned int | RenderPassCount () const =0 |
Get the number of render passes applied to the camera. More... | |
virtual unsigned int | RenderTextureGLId () const =0 |
Get the OpenGL texture id associated with the render texture used by this camera. A valid id is returned only if the underlying render engine is OpenGL based. More... | |
virtual bool | SaveFrame (const std::string &_name)=0 |
Writes the previously rendered frame to a file. This function can be called multiple times after PostRender has been called, without rendering the scene again. Calling this function before a single image has been rendered will have undefined behavior. More... | |
virtual void | SetAntiAliasing (const unsigned int _aa)=0 |
Set the level of anti-aliasing used during rendering. If a value of 0 is given, no anti-aliasing will be performed. Higher values can significantly slow-down rendering times, depending on the underlying render engine. More... | |
virtual void | SetAspectRatio (const double _ratio)=0 |
Set the camera's aspect ratio. This value determines the cameras vertical field-of-view. It is often the. More... | |
virtual void | SetFarClipPlane (const double _far)=0 |
Set the camera's far clipping plane distance. More... | |
virtual void | SetFollowOffset (const math::Vector3d &_offset)=0 |
Set offset of camera from target node being followed. The offset will be in the frame that is specified at the time the follow target is set. More... | |
virtual void | SetFollowPGain (const double _pGain)=0 |
Set follow P Gain. Determines how fast the camera moves to follow the target node. Valid range: [0-1]. More... | |
virtual void | SetFollowTarget (const NodePtr &_target, const math::Vector3d &_offset=math::Vector3d::Zero, const bool _worldFrame=false)=0 |
Set a node for camera to follow. The camera will automatically update its position to keep itself at the specified offset distance from the target being followed. If null is specified, camera follow is disabled. In contrast to SetTrackTarget, the camera does not change its orientation when following is enabled. More... | |
virtual void | SetHFOV (const math::Angle &_hfov)=0 |
Set the camera's horizontal field-of-view. More... | |
virtual void | SetImageFormat (PixelFormat _format)=0 |
Set the image pixel format. More... | |
virtual void | SetImageHeight (unsigned int _height)=0 |
Set the image height in pixels. More... | |
virtual void | SetImageWidth (unsigned int _width)=0 |
Set the image width in pixels. More... | |
virtual void | SetMaterial (const MaterialPtr &_material)=0 |
Set a material that the camera should see on all objects. More... | |
virtual void | SetNearClipPlane (const double _near)=0 |
Set the camera's near clipping plane distance. More... | |
virtual void | SetTrackOffset (const math::Vector3d &_offset)=0 |
Set track offset. Camera will track a point that's at an offset from the target node. The offset will be in the frame that is specified at the time the track target is set. More... | |
virtual void | SetTrackPGain (const double _pGain)=0 |
Set track P Gain. Determines how fast the camera rotates to look at the target node. Valid range: [0-1]. More... | |
virtual void | SetTrackTarget (const NodePtr &_target, const math::Vector3d &_offset=math::Vector3d::Zero, const bool _worldFrame=false)=0 |
Set a node for camera to track. The camera will automatically change its orientation to face the target being tracked. If null is specified, tracking is disabled. In contrast to SetFollowTarget the camera does not change its position when tracking is enabled. More... | |
virtual math::Vector3d | TrackOffset () const =0 |
Get the track offset vector in the frame specified at the time the track target is set. More... | |
virtual double | TrackPGain () const =0 |
Get the camera track rotation P gain. More... | |
virtual NodePtr | TrackTarget () const =0 |
Get the target node being tracked. More... | |
virtual void | Update ()=0 |
Renders a new frame. This is a convenience function for single-camera scenes. It wraps the pre-render, render, and post-render into a single function. This should be used in applications with multiple cameras or multiple consumers of a single camera's images. More... | |
virtual math::Matrix4d | ViewMatrix () const =0 |
Get the view matrix for this camera. More... | |
virtual VisualPtr | VisualAt (const gz::math::Vector2i &_mousePos)=0 |
Get the visual for a given mouse position param[in] _mousePos mouse position. More... | |
Public Member Functions inherited from Sensor | |
virtual | ~Sensor () |
Sensor. More... | |
Public Member Functions inherited from Node | |
virtual | ~Node () |
Deconstructor. More... | |
virtual void | AddChild (NodePtr _child)=0 |
Add the given node to this node. If the given node is already a child, no work will be done. More... | |
virtual NodePtr | ChildById (unsigned int _id) const =0 |
Get node with given ID. If no child exists with given ID, NULL will be returned. More... | |
virtual NodePtr | ChildByIndex (unsigned int _index) const =0 |
Get node at given index. If no child exists at given index, NULL will be returned. More... | |
virtual NodePtr | ChildByName (const std::string &_name) const =0 |
Get node with given name. If no child exists with given name, NULL will be returned. More... | |
virtual unsigned int | ChildCount () const =0 |
Get number of child nodes. More... | |
virtual bool | HasChild (ConstNodePtr _child) const =0 |
Determine if given node is an attached child. More... | |
virtual bool | HasChildId (unsigned int _id) const =0 |
Determine if node with given ID is an attached child. More... | |
virtual bool | HasChildName (const std::string &_name) const =0 |
Determine if node with given name is an attached child. More... | |
virtual bool | HasParent () const =0 |
Determine if this Node is attached to another Node. More... | |
virtual bool | InheritScale () const =0 |
Determine if this visual inherits scale from this parent. More... | |
virtual math::Pose3d | LocalPose () const =0 |
Get the local pose. More... | |
virtual math::Vector3d | LocalPosition () const =0 |
Get the local position. More... | |
virtual math::Quaterniond | LocalRotation () const =0 |
Get the local rotation. More... | |
virtual math::Vector3d | LocalScale () const =0 |
Get the local scale. More... | |
virtual math::Vector3d | Origin () const =0 |
Get position of origin. More... | |
virtual NodePtr | Parent () const =0 |
Get the parent Node. More... | |
virtual NodePtr | RemoveChild (NodePtr _child)=0 |
Remove (detach) the given node from this node. If the given node is not a child of this node, no work will be done. More... | |
virtual NodePtr | RemoveChildById (unsigned int _id)=0 |
Remove (detach) the node with the given ID from this node. If the specified node is not a child of this node, no work will be done. More... | |
virtual NodePtr | RemoveChildByIndex (unsigned int _index)=0 |
Remove (detach) the node at the given index from this node. If the specified node is not a child of this node, no work will be done. More... | |
virtual NodePtr | RemoveChildByName (const std::string &_name)=0 |
Remove (detach) the node with the given name from this node. If the specified node is not a child of this node, no work will be done. More... | |
virtual void | RemoveChildren ()=0 |
Remove all child nodes from this node This detaches all the child nodes but does not destroy them. More... | |
virtual void | RemoveParent ()=0 |
Detach this Node from its parent. If this Node does not have a parent, no work will be done. More... | |
virtual void | Scale (const math::Vector3d &_scale)=0 |
Scale the current scale by the given scalars. More... | |
virtual void | Scale (double _scale)=0 |
Scale the current scale by the given scalar. The given scalar will be assigned to the x, y, and z coordinates. More... | |
virtual void | Scale (double _x, double _y, double _z)=0 |
Scale the current scale by the given scalars. More... | |
virtual void | SetInheritScale (bool _inherit)=0 |
Specify if this visual inherits scale from its parent. More... | |
virtual void | SetLocalPose (const math::Pose3d &_pose)=0 |
Set the local pose. More... | |
virtual void | SetLocalPosition (const math::Vector3d &_position)=0 |
Set the local position. More... | |
virtual void | SetLocalPosition (double _x, double _y, double _z)=0 |
Set the local position. More... | |
virtual void | SetLocalRotation (const math::Quaterniond &_rotation)=0 |
Set the local rotation. More... | |
virtual void | SetLocalRotation (double _r, double _p, double _y)=0 |
Set the local rotation. More... | |
virtual void | SetLocalRotation (double _w, double _x, double _y, double _z)=0 |
Set the local rotation. More... | |
virtual void | SetLocalScale (const math::Vector3d &_scale)=0 |
Set the local scale. More... | |
virtual void | SetLocalScale (double _scale)=0 |
Set the local scale. The given scale will be assigned to the x, y, and z coordinates. More... | |
virtual void | SetLocalScale (double _x, double _y, double _z)=0 |
Set the local scale. More... | |
virtual void | SetOrigin (const math::Vector3d &_origin)=0 |
Set position of origin. The position should be relative to the original origin of the geometry. More... | |
virtual void | SetOrigin (double _x, double _y, double _z)=0 |
Set position of origin. The position should be relative to the original origin of the geometry. More... | |
virtual void | SetWorldPose (const math::Pose3d &_pose)=0 |
Set the world pose. More... | |
virtual void | SetWorldPosition (const math::Vector3d &_position)=0 |
Set the world position. More... | |
virtual void | SetWorldPosition (double _x, double _y, double _z)=0 |
Set the world position. More... | |
virtual void | SetWorldRotation (const math::Quaterniond &_rotation)=0 |
Set the world rotation. More... | |
virtual void | SetWorldRotation (double _r, double _p, double _y)=0 |
Set the world rotation. More... | |
virtual void | SetWorldRotation (double _w, double _x, double _y, double _z)=0 |
Set the world rotation. More... | |
virtual void | SetWorldScale (const math::Vector3d &_scale)=0 |
Set the world scale. More... | |
virtual void | SetWorldScale (double _scale)=0 |
Set the world scale. The given scale will be assigned to the x, y, and z coordinates. More... | |
virtual void | SetWorldScale (double _x, double _y, double _z)=0 |
Set the world scale. More... | |
virtual math::Pose3d | WorldPose () const =0 |
Get the world pose. More... | |
virtual math::Vector3d | WorldPosition () const =0 |
Get the world position. More... | |
virtual math::Quaterniond | WorldRotation () const =0 |
Get the world rotation. More... | |
virtual math::Vector3d | WorldScale () const =0 |
Get the world scale. More... | |
virtual math::Pose3d | WorldToLocal (const math::Pose3d &_pose) const =0 |
Convert given world pose to local pose. More... | |
Public Member Functions inherited from Object | |
virtual | ~Object () |
Destructor. More... | |
virtual void | Destroy ()=0 |
Destroy any resources associated with this object. Invoking any other functions after destroying an object will result in undefined behavior. More... | |
virtual unsigned int | Id () const =0 |
Get the object ID. This ID will be unique across all objects inside a given scene, but necessarily true for objects across different scenes. More... | |
virtual std::string | Name () const =0 |
Get the object name. This name will be unique across all objects inside a given scene, but necessarily true for objects across different scenes. More... | |
virtual void | PreRender ()=0 |
Prepare this object and any of its children for rendering. This should be called for each object in a scene just before rendering, which can be achieved by a single call to Scene::PreRender. More... | |
virtual ScenePtr | Scene () const =0 |
Get the Scene that created this object. More... | |
Additional Inherited Members | |
Public Types inherited from Camera | |
typedef std::function< void(const void *, unsigned int, unsigned int, unsigned int, const std::string &)> | NewFrameListener |
Callback function for new frame render event listeners. More... | |
Detailed Description
Thermal camera that produces temperature data. An object's temperature can be set through the Visual class using SetUserData with the key "temperature". Ambient temperature is returned for object that do not have this property set. Note that temperature variations for the environment and objects can be set using the Set*Range functions in this class. For simplicity, the variations are modeled as a function of depth (which is not how a real thermal sensor works). Ideally we support heatmaps for visuals in order to produce more realistic temperature output.
Constructor & Destructor Documentation
◆ ~ThermalCamera()
|
inlinevirtual |
Destructor.
Member Function Documentation
◆ AmbientTemperature()
|
pure virtual |
Get the ambient temperature of the environment.
- Returns
- Ambient temperature in kelvin
- See also
- SetAmbientTemperature
Implemented in BaseThermalCamera< T >.
◆ AmbientTemperatureRange()
|
pure virtual |
Get the range of ambient temperature.
- Returns
- The ambient temperature range. Ambient temperature ranges from (ambient - range/2) to (ambient - range/2)
- See also
- SetAmbientTemperatureRange
Implemented in BaseThermalCamera< T >.
◆ ConnectNewThermalFrame()
|
pure virtual |
Connect to the new thermal image event.
- Parameters
-
[in] _subscriber Subscriber callback function. The callback function arguments are: <thermal data, width, height, depth, format>
- Returns
- Pointer to the new Connection. This must be kept in scope
Implemented in OgreThermalCamera, BaseThermalCamera< T >, BaseThermalCamera< Ogre2Sensor >, BaseThermalCamera< OgreSensor >, and Ogre2ThermalCamera.
◆ HeatSourceTemperatureRange()
|
pure virtual |
Get the range of temperature variation for all heat sources.
- Returns
- Temperature variation range
- See also
- SetHeatSourceTemperatureRange
Implemented in BaseThermalCamera< T >.
◆ LinearResolution()
|
pure virtual |
Get the temperature linear resolution.
- Returns
- Temperature linear resolution
- See also
- SetLinearResolution
Implemented in BaseThermalCamera< T >.
◆ MaxTemperature()
|
pure virtual |
Get the maximum temperature the sensor can detect.
- Returns
- Max temperature in kelvin
- See also
- SetMaxTemperature
Implemented in BaseThermalCamera< T >.
◆ MinTemperature()
|
pure virtual |
Get the minimum temperature the sensor can detect.
- Returns
- Min temperature in kelvin
- See also
- SetMinTemperature
Implemented in BaseThermalCamera< T >.
◆ SetAmbientTemperature()
|
pure virtual |
Set the ambient temperature of the environment.
- Parameters
-
[in] _ambient Ambient temperature in kelvin
- See also
- AmbientTemperature
Implemented in BaseThermalCamera< T >, BaseThermalCamera< Ogre2Sensor >, and BaseThermalCamera< OgreSensor >.
◆ SetAmbientTemperatureRange()
|
pure virtual |
Set the range of ambient temperature.
- Parameters
-
[in] _range The ambient temperature ranges from (ambient - range/2) to (ambient + range/2).
- See also
- AmbientTemperatureRange
Implemented in BaseThermalCamera< T >, BaseThermalCamera< Ogre2Sensor >, and BaseThermalCamera< OgreSensor >.
◆ SetHeatSourceTemperatureRange()
|
pure virtual |
Set the range of temperature variation for all heat sources. If set, the temperature reading of heat sources will vary within a temperature of +/- range/2 instead of returning a fixed uniform temperature for the entire heat source.
- Parameters
-
[in] _range Temperature variation range
- See also
- HeatSourceTemperatureRange
Implemented in BaseThermalCamera< T >, BaseThermalCamera< Ogre2Sensor >, and BaseThermalCamera< OgreSensor >.
◆ SetLinearResolution()
|
pure virtual |
Set the temperature linear resolution. The thermal image data returned will be temperature in kelvin / resolution. Typical values are 0.01 (10mK), 0.1 (100mK), or 0.04 to simulate 14 bit format.
- Parameters
-
[in] _resolution Temperature linear resolution
- See also
- LinearResolution
Implemented in BaseThermalCamera< T >, BaseThermalCamera< Ogre2Sensor >, and BaseThermalCamera< OgreSensor >.
◆ SetMaxTemperature()
|
pure virtual |
Set the maximum temperature the sensor can detect.
- Parameters
-
[in] _max Max temperature in kelvin
- See also
- MaxTemperature
Implemented in BaseThermalCamera< T >, BaseThermalCamera< Ogre2Sensor >, and BaseThermalCamera< OgreSensor >.
◆ SetMinTemperature()
|
pure virtual |
Set the minimum temperature the sensor can detect.
- Parameters
-
[in] _min Min temperature in kelvin
- See also
- MinTemperature
Implemented in BaseThermalCamera< T >, BaseThermalCamera< Ogre2Sensor >, and BaseThermalCamera< OgreSensor >.
The documentation for this class was generated from the following file: