Gazebo logo

Camera Class Reference

Basic camera sensor. More...

#include <Camera.hh>

Inheritance diagram for Camera:

Sensor List of all members.

Public Member Functions

 Camera (World *world)
virtual ~Camera ()
int Init (int width, int height, double hfov, double minDepth, double maxDepth, const char *method, int zBufferDepth)
 Initialize the sensor.
void InitContext (GLContext &context)
int Fini ()
 Finalize the sensor.
void Update ()
 Update the sensor information.
void SetPose (GzPose pose)
 Set the pose of the camera (global cs).
GzPose GetPose ()
 Get the camera pose (global cs).
void SetFOV (double fov)
 Set the camera FOV (horizontal).
double GetFOV () const
 Get the camera FOV (horizontal).
void SetRenderOptions (const RenderOptions *opt)
 Set the rendering options.
void GetRenderOptions (RenderOptions *opt) const
 Get the rendering options.
void GetImageSize (int *w, int *h)
 Get the image dimensions.
const unsigned char * GetImageData () const
 Get a pointer to the image data.
double GetZValue (int x, int y)
 Get the Z-buffer value at the given image coordinate.
GzPose CalcCameraDelta (int mode, GzVector a, GzVector b)
 Compute the change in pose based on two image points.
void SetSavePath (const char *pathname)
 Set the path for saved frames.
void EnableSaveFrame (bool enable)
 Enable or disable saving.

Detailed Description

Basic camera sensor.

This sensor is used for simulating standard monocular cameras; is is used by both camera models (e.g., SonyVID30) and user interface models (e.g., ObserverCam).


Constructor & Destructor Documentation

Camera::Camera World world  ) 
 

Camera::~Camera  )  [virtual]
 


Member Function Documentation

int Camera::Init int  width,
int  height,
double  hfov,
double  minDepth,
double  maxDepth,
const char *  method,
int  zBufferDepth
 

Initialize the sensor.

Parameters:
width,height image width and height (pixels)
hfov horizontal field of view (radians)
minDepth,maxDepth near and far depth clipping planes (m); minDepth must be greater than zero; maxDepth must be greater than minDepth.
method Prefered rendering method: SGIX, GLX or XLIB.
zBufferDepth Z buffer depth (in bits) used for rendering (useful for some nvidia cards that do not support other depths than 24 bits)
Returns:
Zero on success.

void Camera::InitContext GLContext context  ) 
 

int Camera::Fini  ) 
 

Finalize the sensor.

void Camera::Update  ) 
 

Update the sensor information.

void Camera::SetPose GzPose  pose  ) 
 

Set the pose of the camera (global cs).

GzPose Camera::GetPose  ) 
 

Get the camera pose (global cs).

void Camera::SetFOV double  fov  ) 
 

Set the camera FOV (horizontal).

double Camera::GetFOV  )  const
 

Get the camera FOV (horizontal).

void Camera::SetRenderOptions const RenderOptions opt  ) 
 

Set the rendering options.

void Camera::GetRenderOptions RenderOptions opt  )  const
 

Get the rendering options.

void Camera::GetImageSize int *  w,
int *  h
 

Get the image dimensions.

const unsigned char* Camera::GetImageData  )  const [inline]
 

Get a pointer to the image data.

double Camera::GetZValue int  x,
int  y
 

Get the Z-buffer value at the given image coordinate.

Parameters:
x,y Image coordinate; (0, 0) specifies the top-left corner.
Returns:
Image z value; note that this is abitrarily scaled and is not the same as the depth value.

GzPose Camera::CalcCameraDelta int  mode,
GzVector  a,
GzVector  b
 

Compute the change in pose based on two image points.

This function provides natural feedback when using a mouse to control the camera pose. The function computes a change in camera pose, such that the initial image coordinate a and final coordinate b map both to the same global coordinate. Thus, it is possible to "grab" a piece of the terrain and "drag" it to a new location.

Naturally, with only two image coordinates the solution is under-determined (4 constraints and 6 DOF). We therefore provide a mode argument specify what kind of transformation should be affected; the supported modes are translating, zooming and rotating.

Parameters:
mode Solution method: 0 = translate; 1 = zoom; 2 = rotate.
a,b Initial and final image points; the z value on a must be specified (use GetZValue() for this).
Returns:
Change in pose (camera frame; post-multiply with current global pose).

void Camera::SetSavePath const char *  pathname  ) 
 

Set the path for saved frames.

void Camera::EnableSaveFrame bool  enable  ) 
 

Enable or disable saving.


The documentation for this class was generated from the following files:

Last updated 12 September 2005 21:38:45