Overview | Modules | Class Hierarchy | Classes | Members

# tlp::Camera Class Reference

`#include <Camera.h>`

Collaboration diagram for tlp::Camera:

[legend]
List of all members.

## Public Member Functions

- Camera (GlScene *scene, Coord center=Coord(0, 0, 0), Coord eyes=Coord(0, 0, 10), Coord up=Coord(0,-1, 0), double zoomFactor=0.5, double sceneRadius=10)
- Camera (GlScene *scene, bool d3)
- void setScene (GlScene *scene)
- GlScene * getScene ()
- void move (float speed)
- void strafeLeftRight (float speed)
- void strafeUpDown (float speed)
- void rotate (float angle, float x, float y, float z)
- bool is3D ()
- Vector< int, 4 > getViewport ()
- void initGl ()
- void initLight ()
- void initProjection (const Vector< int, 4 > &viewport, bool reset=true)
- void initProjection (bool reset=true)
- void initModelView ()
- void setSceneRadius (double sceneRadius)
- double getSceneRadius ()
- void setZoomFactor (double zoomFactor)
- double getZoomFactor ()
- void setEyes (const Coord &eyes)
- Coord getEyes ()
- void setCenter (const Coord &center)
- Coord getCenter ()
- void setUp (const Coord &up)
- Coord getUp ()
- void addObjectTransformation (const Coord &translation, const Coord &scale, const Coord &baseCoord)
- void getObjectTransformation (std::vector< Coord > &translation, std::vector< Coord > &scale, std::vector< Coord > &objectCoord)
- bool haveObjectTransformation ()
- void getModelviewMatrix (Matrix< float, 4 > &modelviewMatrix)
- void getProjectionMatrix (Matrix< float, 4 > &projectionMatrix)
- void getTransformMatrix (Matrix< float, 4 > &transformMatrix)
- void getProjAndMVMatrix (const Vector< int, 4 > &viewport, Matrix< float, 4 > &projectionMatrix, Matrix< float, 4 > &modelviewMatrix)
- void getTransformMatrix (const Vector< int, 4 > &viewport, Matrix< float, 4 > &transformMatrix)
- Coord screenTo3DWorld (const Coord &point)
- Coord worldTo2DScreen (const Coord &obj)
- void getXML (xmlNodePtr rootNode)
- void setWithXML (xmlNodePtr rootNode)

## Constructor & Destructor Documentation

tlp::Camera::Camera | ( | GlScene * | scene,
|  | Coord | center = `Coord(0, 0, 0)`,
|  | Coord | eyes = `Coord(0, 0, 10)`,
|  | Coord | up = `Coord(0,-1, 0)`,
|  | double | zoomFactor = `0.5`,
|  | double | sceneRadius = `10`
| ) |

| Constructor

tlp::Camera::Camera | ( | GlScene * | scene,
|  | bool | d3
| ) |

| Constructor : use for 2D camera

## Member Function Documentation

void tlp::Camera::addObjectTransformation | ( | const Coord & | translation,
|  | const Coord & | scale,
|  | const Coord & | baseCoord
| ) |

| Set translate/scale transformation of object It use to compute lod of nodes/edges in metanodes

Coord tlp::Camera::getCenter | ( |  | ) | `[inline]`

| Return the center

Coord tlp::Camera::getEyes | ( |  | ) | `[inline]`

| Return the eyes

void tlp::Camera::getModelviewMatrix | ( | Matrix< float, 4 > & | modelviewMatrix | ) | `[inline]`

| Get the modelview matrix

void tlp::Camera::getObjectTransformation | ( | std::vector< Coord > & | translation,
|  | std::vector< Coord > & | scale,
|  | std::vector< Coord > & | objectCoord
| ) |

| Get translate/scale transformation of object It use to compute lod of nodes/edges in metanodes

void tlp::Camera::getProjAndMVMatrix | ( | const Vector< int, 4 > & | viewport,
|  | Matrix< float, 4 > & | projectionMatrix,
|  | Matrix< float, 4 > & | modelviewMatrix
| ) |

| Get the projection and the modelview matrix generated with the given viewport

void tlp::Camera::getProjectionMatrix | ( | Matrix< float, 4 > & | projectionMatrix | ) | `[inline]`

| Get the projection matrix

GlScene* tlp::Camera::getScene | ( |  | ) | `[inline]`

| Return the camera's scene

double tlp::Camera::getSceneRadius | ( |  | ) | `[inline]`

| Return the scene radius

void tlp::Camera::getTransformMatrix | ( | const Vector< int, 4 > & | viewport,
|  | Matrix< float, 4 > & | transformMatrix
| ) |

| Get the transform matrix generated with the given viewport

void tlp::Camera::getTransformMatrix | ( | Matrix< float, 4 > & | transformMatrix | ) | `[inline]`

| Get the transform matrix : transformMatrix = projectionMatrix * modelviewMatrix

Coord tlp::Camera::getUp | ( |  | ) | `[inline]`

| Return the up vector

Vector<int, 4> tlp::Camera::getViewport | ( |  | ) |

| Return the viewport of the attached scene

void tlp::Camera::getXML | ( | xmlNodePtr | rootNode | ) |

| Get the camera's data in XML form

double tlp::Camera::getZoomFactor | ( |  | ) | `[inline]`

| Return the zoom factor

bool tlp::Camera::haveObjectTransformation | ( |  | ) |

| Return true if object transformation is set

void tlp::Camera::initGl | ( |  | ) |

| Init Gl parameters

void tlp::Camera::initLight | ( |  | ) |

| Init light

void tlp::Camera::initModelView | ( |  | ) |

| Init modelview

void tlp::Camera::initProjection | ( | bool | reset = `true` | ) |

| Init projection with the scene viewport. Load identity matrix if reset is set as true

void tlp::Camera::initProjection | ( | const Vector< int, 4 > & | viewport,
|  | bool | reset = `true`
| ) |

| Init projection with the gived viewport. Load identity matrix if reset is set as true

bool tlp::Camera::is3D | ( |  | ) | `[inline]`

| Return if the camera is a 3D one

void tlp::Camera::move | ( | float | speed | ) |

| This moves the camera forward or backward depending on the speed

void tlp::Camera::rotate | ( | float | angle,
|  | float | x,
|  | float | y,
|  | float | z
| ) |

| This rotates the camera's eyes around the center depending on the values passed in.

Coord tlp::Camera::screenTo3DWorld | ( | const Coord & | point | ) |

| Return the 3D world coordinate for the givedn screen point

void tlp::Camera::setCenter | ( | const Coord & | center | ) | `[inline]`

| Set the center

void tlp::Camera::setEyes | ( | const Coord & | eyes | ) | `[inline]`

| Set the eye

void tlp::Camera::setScene | ( | GlScene * | scene | ) |

| Set the camera's scene : the viewport is store in the scene, so we must attach camera to a scene

void tlp::Camera::setSceneRadius | ( | double | sceneRadius | ) | `[inline]`

| Set the scene radius

void tlp::Camera::setUp | ( | const Coord & | up | ) | `[inline]`

| Set the up vector

void tlp::Camera::setWithXML | ( | xmlNodePtr | rootNode | ) |

| Set the camera's data with XML

void tlp::Camera::setZoomFactor | ( | double | zoomFactor | ) | `[inline]`

| Set the zoom factor

void tlp::Camera::strafeLeftRight | ( | float | speed | ) |

| This strafes the camera left and right depending on the speed (-/+)

void tlp::Camera::strafeUpDown | ( | float | speed | ) |

| This strafes the camera up and down depending on the speed (-/+)

Coord tlp::Camera::worldTo2DScreen | ( | const Coord & | obj | ) |

| Return the screen position for the given 3D coordinate

Tulip Software by LaBRI Visualization Team 2001 - 2010