Typedefs | Functions
Camera Object

A camera object is used for taking a picture of a scene graph. More...

Typedefs

typedef Eo Evas_3D_Camera
 Camera object handle. More...
 

Functions

EOAPI void evas_3d_camera_projection_matrix_set (const Evas_Real *matrix)
 Set the projection matrix of the given camera. More...
 
EOAPI void evas_3d_camera_projection_matrix_get (Evas_Real *matrix)
 Get the projection matrix of the given camera. More...
 
EOAPI void evas_3d_camera_projection_perspective_set (Evas_Real fovy, Evas_Real aspect, Evas_Real dnear, Evas_Real dfar)
 Set the projection matrix of the given camera with perspective projection. More...
 
EOAPI void evas_3d_camera_projection_frustum_set (Evas_Real left, Evas_Real right, Evas_Real bottom, Evas_Real top, Evas_Real dnear, Evas_Real dfar)
 Set the projection matrix of the given camera with frustum projection. More...
 
EOAPI void evas_3d_camera_projection_ortho_set (Evas_Real left, Evas_Real right, Evas_Real bottom, Evas_Real top, Evas_Real dnear, Evas_Real dfar)
 Set the projection matrix of the given camera with orthogonal projection. More...
 
EOAPI Eina_Bool evas_3d_camera_node_visible_get (Evas_3D_Node *camera_node, Evas_3D_Node *node, Evas_3D_Frustum_Mode key)
 Check is bounding sphere of given node inside frustum of camera node. More...
 
void eo_cxx::evas_3d_camera::projection_matrix_set (const Evas_Real *matrix_) const
 Set the projection matrix of the given camera. More...
 
void eo_cxx::evas_3d_camera::projection_matrix_get (Evas_Real *matrix_) const
 Get the projection matrix of the given camera. More...
 
void eo_cxx::evas_3d_camera::projection_perspective_set (Evas_Real fovy_, Evas_Real aspect_, Evas_Real dnear_, Evas_Real dfar_) const
 Set the projection matrix of the given camera with perspective projection. More...
 
void eo_cxx::evas_3d_camera::projection_frustum_set (Evas_Real left_, Evas_Real right_, Evas_Real bottom_, Evas_Real top_, Evas_Real dnear_, Evas_Real dfar_) const
 Set the projection matrix of the given camera with frustum projection. More...
 
void eo_cxx::evas_3d_camera::projection_ortho_set (Evas_Real left_, Evas_Real right_, Evas_Real bottom_, Evas_Real top_, Evas_Real dnear_, Evas_Real dfar_) const
 Set the projection matrix of the given camera with orthogonal projection. More...
 
bool eo_cxx::evas_3d_camera::node_visible_get (Evas_3D_Node *camera_node_, Evas_3D_Node *node_, Evas_3D_Frustum_Mode key_) const
 Check is bounding sphere of given node inside frustum of camera node. More...
 
void evas_3d_camera::projection_matrix_set (const Evas_Real *matrix_) const
 Set the projection matrix of the given camera. More...
 
void evas_3d_camera::projection_matrix_get (Evas_Real *matrix_) const
 Get the projection matrix of the given camera. More...
 
void evas_3d_camera::projection_perspective_set (Evas_Real fovy_, Evas_Real aspect_, Evas_Real dnear_, Evas_Real dfar_) const
 Set the projection matrix of the given camera with perspective projection. More...
 
void evas_3d_camera::projection_frustum_set (Evas_Real left_, Evas_Real right_, Evas_Real bottom_, Evas_Real top_, Evas_Real dnear_, Evas_Real dfar_) const
 Set the projection matrix of the given camera with frustum projection. More...
 
void evas_3d_camera::projection_ortho_set (Evas_Real left_, Evas_Real right_, Evas_Real bottom_, Evas_Real top_, Evas_Real dnear_, Evas_Real dfar_) const
 Set the projection matrix of the given camera with orthogonal projection. More...
 
bool evas_3d_camera::node_visible_get (Evas_3D_Node *camera_node_, Evas_3D_Node *node_, Evas_3D_Frustum_Mode key_) const
 Check is bounding sphere of given node inside frustum of camera node. More...
 

Detailed Description

A camera object is used for taking a picture of a scene graph.

A camera object itself is just a set of properties on how the camera should take the picture (like focus length and film size of the real world cameras). To be able to take a shot of the scene, a camera should be located in the scene, so that it has its viewing position and direction. It is done by containing the camera on a node. If one wants to locate several cameras having same properties, instead of creating multiple cameras, just create one camera and multiple nodes containing the camera and locate them at each desired position and direction. Just for convinience, use evas_3d_node_position_set() to move the camera to desired position and use evas_3d_node_look_at_set() to adjust the viewing direction of the camera.

Typedef Documentation

Camera object handle.

Since
1.10

Function Documentation

EOAPI void evas_3d_camera_projection_matrix_set ( const Evas_Real matrix)

Set the projection matrix of the given camera.

Parameters
cameraThe given camera.
matrixPointer to the array of 16 Evas_Real values in column major order.

Default projection matrix is identity matrix.

See also
evas_3d_camera_projection_perspective_set()
evas_3d_camera_projection_ortho_set()
evas_3d_camera_projection_frustum_set()
Parameters
[in]matrixProjection Matrix

Referenced by eo_cxx::evas_3d_camera::projection_matrix_set(), and evas_3d_camera::projection_matrix_set().

EOAPI void evas_3d_camera_projection_matrix_get ( Evas_Real matrix)

Get the projection matrix of the given camera.

Parameters
cameraThe given camera.
matrixPointer to receive the 16 Evas_Real values in column major order.
See also
evas_3d_camera_projection_matrix_set()
Parameters
[out]matrixProjection Matrix

Referenced by eo_cxx::evas_3d_camera::projection_matrix_get(), and evas_3d_camera::projection_matrix_get().

EOAPI void evas_3d_camera_projection_perspective_set ( Evas_Real  fovy,
Evas_Real  aspect,
Evas_Real  dnear,
Evas_Real  dfar 
)

Set the projection matrix of the given camera with perspective projection.

Parameters
cameraThe given camera.
fovyField of view angle in Y direction.
aspectAspect ratio.
dnearDistance to near clipping plane.
dfarDistance to far clipping plane.
See also
evas_3d_camera_projection_matrix_set()
Parameters
[in]fovyField of view angle in Y direction.
[in]aspectAspect ratio.
[in]dnearDistance to near clipping plane.
[in]dfarDistance to far clipping plane.

Referenced by eo_cxx::evas_3d_camera::projection_perspective_set(), and evas_3d_camera::projection_perspective_set().

EOAPI void evas_3d_camera_projection_frustum_set ( Evas_Real  left,
Evas_Real  right,
Evas_Real  bottom,
Evas_Real  top,
Evas_Real  dnear,
Evas_Real  dfar 
)

Set the projection matrix of the given camera with frustum projection.

See also
evas_3d_camera_projection_matrix_set()
Parameters
[in]leftLeft X coordinate of the near clipping plane.
[in]rightRight X coordinate of the near clipping plane..
[in]bottomBottom Y coordinate of the near clipping plane.
[in]topTop Y coordinate of the near clipping plane
[in]dnearDistance to near clipping plane.
[in]dfarDistance to far clipping plane.

Referenced by eo_cxx::evas_3d_camera::projection_frustum_set(), and evas_3d_camera::projection_frustum_set().

EOAPI void evas_3d_camera_projection_ortho_set ( Evas_Real  left,
Evas_Real  right,
Evas_Real  bottom,
Evas_Real  top,
Evas_Real  dnear,
Evas_Real  dfar 
)

Set the projection matrix of the given camera with orthogonal projection.

See also
evas_3d_camera_projection_matrix_set()
Parameters
[in]leftLeft X coordinate of the near clipping plane.
[in]rightRight X coordinate of the near clipping plane..
[in]bottomBottom Y coordinate of the near clipping plane.
[in]topTop Y coordinate of the near clipping plane
[in]dnearDistance to near clipping plane.
[in]dfarDistance to far clipping plane.

Referenced by eo_cxx::evas_3d_camera::projection_ortho_set(), and evas_3d_camera::projection_ortho_set().

EOAPI Eina_Bool evas_3d_camera_node_visible_get ( Evas_3D_Node camera_node,
Evas_3D_Node node,
Evas_3D_Frustum_Mode  key 
)

Check is bounding sphere of given node inside frustum of camera node.

  • Parameters
    cameraThe given camera node.
  • Parameters
    nodeThe given node.
  • Returns
    EINA_TRUE in frustum, EINA_FALSE otherwise
  • If the nodes are @ NULL or nodes type mismatch error wrong type of nodes will be generated and returned @ EINA_FALSE.
Parameters
[in]camera_nodeNo description supplied.
[in]nodeNo description supplied.
[in]keyNo description supplied.

Referenced by eo_cxx::evas_3d_camera::node_visible_get(), and evas_3d_camera::node_visible_get().

void evas_3d_camera::projection_matrix_set ( const Evas_Real matrix_) const
inline

Set the projection matrix of the given camera.

Parameters
cameraThe given camera.
matrixPointer to the array of 16 Evas_Real values in column major order.

Default projection matrix is identity matrix.

See also
evas_3d_camera_projection_perspective_set()
evas_3d_camera_projection_ortho_set()
evas_3d_camera_projection_frustum_set()
Parameters
matrixProjection Matrix

References evas_3d_camera_projection_matrix_set().

void evas_3d_camera::projection_matrix_get ( Evas_Real matrix_) const
inline

Get the projection matrix of the given camera.

Parameters
cameraThe given camera.
matrixPointer to receive the 16 Evas_Real values in column major order.
See also
evas_3d_camera_projection_matrix_set()
Parameters
[out]matrixProjection Matrix

References evas_3d_camera_projection_matrix_get().

void evas_3d_camera::projection_perspective_set ( Evas_Real  fovy_,
Evas_Real  aspect_,
Evas_Real  dnear_,
Evas_Real  dfar_ 
) const
inline

Set the projection matrix of the given camera with perspective projection.

Parameters
cameraThe given camera.
fovyField of view angle in Y direction.
aspectAspect ratio.
dnearDistance to near clipping plane.
dfarDistance to far clipping plane.
See also
evas_3d_camera_projection_matrix_set()
Parameters
fovyField of view angle in Y direction.
aspectAspect ratio.
dnearDistance to near clipping plane.
dfarDistance to far clipping plane.

References evas_3d_camera_projection_perspective_set().

void evas_3d_camera::projection_frustum_set ( Evas_Real  left_,
Evas_Real  right_,
Evas_Real  bottom_,
Evas_Real  top_,
Evas_Real  dnear_,
Evas_Real  dfar_ 
) const
inline

Set the projection matrix of the given camera with frustum projection.

See also
evas_3d_camera_projection_matrix_set()
Parameters
leftLeft X coordinate of the near clipping plane.
rightRight X coordinate of the near clipping plane..
bottomBottom Y coordinate of the near clipping plane.
topTop Y coordinate of the near clipping plane
dnearDistance to near clipping plane.
dfarDistance to far clipping plane.

References evas_3d_camera_projection_frustum_set().

void evas_3d_camera::projection_ortho_set ( Evas_Real  left_,
Evas_Real  right_,
Evas_Real  bottom_,
Evas_Real  top_,
Evas_Real  dnear_,
Evas_Real  dfar_ 
) const
inline

Set the projection matrix of the given camera with orthogonal projection.

See also
evas_3d_camera_projection_matrix_set()
Parameters
leftLeft X coordinate of the near clipping plane.
rightRight X coordinate of the near clipping plane..
bottomBottom Y coordinate of the near clipping plane.
topTop Y coordinate of the near clipping plane
dnearDistance to near clipping plane.
dfarDistance to far clipping plane.

References evas_3d_camera_projection_ortho_set().

bool evas_3d_camera::node_visible_get ( Evas_3D_Node camera_node_,
Evas_3D_Node node_,
Evas_3D_Frustum_Mode  key_ 
) const
inline

Check is bounding sphere of given node inside frustum of camera node.

  • Parameters
    cameraThe given camera node.
  • Parameters
    nodeThe given node.
  • Returns
    EINA_TRUE in frustum, EINA_FALSE otherwise
  • If the nodes are @ NULL or nodes type mismatch error wrong type of nodes will be generated and returned @ EINA_FALSE.
Parameters
camera_node
node
key

References evas_3d_camera_node_visible_get().

void evas_3d_camera::projection_matrix_set ( const Evas_Real matrix_) const
inline

Set the projection matrix of the given camera.

Parameters
cameraThe given camera.
matrixPointer to the array of 16 Evas_Real values in column major order.

Default projection matrix is identity matrix.

See also
evas_3d_camera_projection_perspective_set()
evas_3d_camera_projection_ortho_set()
evas_3d_camera_projection_frustum_set()
Parameters
matrixProjection Matrix

References evas_3d_camera_projection_matrix_set().

void evas_3d_camera::projection_matrix_get ( Evas_Real matrix_) const
inline

Get the projection matrix of the given camera.

Parameters
cameraThe given camera.
matrixPointer to receive the 16 Evas_Real values in column major order.
See also
evas_3d_camera_projection_matrix_set()
Parameters
[out]matrixProjection Matrix

References evas_3d_camera_projection_matrix_get().

void evas_3d_camera::projection_perspective_set ( Evas_Real  fovy_,
Evas_Real  aspect_,
Evas_Real  dnear_,
Evas_Real  dfar_ 
) const
inline

Set the projection matrix of the given camera with perspective projection.

Parameters
cameraThe given camera.
fovyField of view angle in Y direction.
aspectAspect ratio.
dnearDistance to near clipping plane.
dfarDistance to far clipping plane.
See also
evas_3d_camera_projection_matrix_set()
Parameters
fovyField of view angle in Y direction.
aspectAspect ratio.
dnearDistance to near clipping plane.
dfarDistance to far clipping plane.

References evas_3d_camera_projection_perspective_set().

void evas_3d_camera::projection_frustum_set ( Evas_Real  left_,
Evas_Real  right_,
Evas_Real  bottom_,
Evas_Real  top_,
Evas_Real  dnear_,
Evas_Real  dfar_ 
) const
inline

Set the projection matrix of the given camera with frustum projection.

See also
evas_3d_camera_projection_matrix_set()
Parameters
leftLeft X coordinate of the near clipping plane.
rightRight X coordinate of the near clipping plane..
bottomBottom Y coordinate of the near clipping plane.
topTop Y coordinate of the near clipping plane
dnearDistance to near clipping plane.
dfarDistance to far clipping plane.

References evas_3d_camera_projection_frustum_set().

void evas_3d_camera::projection_ortho_set ( Evas_Real  left_,
Evas_Real  right_,
Evas_Real  bottom_,
Evas_Real  top_,
Evas_Real  dnear_,
Evas_Real  dfar_ 
) const
inline

Set the projection matrix of the given camera with orthogonal projection.

See also
evas_3d_camera_projection_matrix_set()
Parameters
leftLeft X coordinate of the near clipping plane.
rightRight X coordinate of the near clipping plane..
bottomBottom Y coordinate of the near clipping plane.
topTop Y coordinate of the near clipping plane
dnearDistance to near clipping plane.
dfarDistance to far clipping plane.

References evas_3d_camera_projection_ortho_set().

bool evas_3d_camera::node_visible_get ( Evas_3D_Node camera_node_,
Evas_3D_Node node_,
Evas_3D_Frustum_Mode  key_ 
) const
inline

Check is bounding sphere of given node inside frustum of camera node.

  • Parameters
    cameraThe given camera node.
  • Parameters
    nodeThe given node.
  • Returns
    EINA_TRUE in frustum, EINA_FALSE otherwise
  • If the nodes are @ NULL or nodes type mismatch error wrong type of nodes will be generated and returned @ EINA_FALSE.
Parameters
camera_node
node
key

References evas_3d_camera_node_visible_get().