efl/src/lib/evas/canvas/evas_3d_camera.eo

128 lines
4.2 KiB
Plaintext

class Evas_3D_Camera (Evas_3D_Object, Evas.Common_Interface)
{
legacy_prefix: null;
data: Evas_3D_Camera_Data;
methods {
projection_matrix_set {
/*@
Set the projection matrix of the given camera.
@param camera The given camera.
@param matrix Pointer to the array of 16 Evas_Real values in column major order.
Default projection matrix is identity matrix.
@see evas_3d_camera_projection_perspective_set()
@see evas_3d_camera_projection_ortho_set()
@see evas_3d_camera_projection_frustum_set()
@ingroup Evas_3D_Camera
*/
params {
@in const(Evas_Real)* matrix; /*@ Projection Matrix */
}
}
projection_matrix_get @const {
/*@
Get the projection matrix of the given camera.
@param camera The given camera.
@param matrix Pointer to receive the 16 Evas_Real values in column major order.
@see evas_3d_camera_projection_matrix_set()
@ingroup Evas_3D_Camera
*/
params {
@out Evas_Real matrix; /*@ Projection Matrix */
}
}
projection_perspective_set {
/*@
Set the projection matrix of the given camera with perspective projection.
@param camera The given camera.
@param fovy Field of view angle in Y direction.
@param aspect Aspect ratio.
@param dnear Distance to near clipping plane.
@param dfar Distance to far clipping plane.
@see evas_3d_camera_projection_matrix_set()
@ingroup Evas_3D_Camera
*/
params {
Evas_Real fovy; /*@ Field of view angle in Y direction. */
Evas_Real aspect; /*@ Aspect ratio.*/
Evas_Real dnear; /*@ Distance to near clipping plane. */
Evas_Real dfar; /*@ Distance to far clipping plane. */
}
}
projection_frustum_set {
/*@
Set the projection matrix of the given camera with frustum projection.
@see evas_3d_camera_projection_matrix_set()
@ingroup Evas_3D_Camera
*/
params {
Evas_Real left; /*@ Left X coordinate of the near clipping plane. */
Evas_Real right; /*@ Right X coordinate of the near clipping plane..*/
Evas_Real bottom; /*@ Bottom Y coordinate of the near clipping plane. */
Evas_Real top; /*@ Top Y coordinate of the near clipping plane */
Evas_Real dnear; /*@ Distance to near clipping plane. */
Evas_Real dfar; /*@ Distance to far clipping plane. */
}
}
projection_ortho_set {
/*@
Set the projection matrix of the given camera with orthogonal projection.
@see evas_3d_camera_projection_matrix_set()
@ingroup Evas_3D_Camera
*/
params {
Evas_Real left; /*@ Left X coordinate of the near clipping plane. */
Evas_Real right; /*@ Right X coordinate of the near clipping plane..*/
Evas_Real bottom; /*@ Bottom Y coordinate of the near clipping plane. */
Evas_Real top; /*@ Top Y coordinate of the near clipping plane */
Evas_Real dnear; /*@ Distance to near clipping plane. */
Evas_Real dfar; /*@ Distance to far clipping plane. */
}
}
node_visible_get {
/*@
Check is bounding sphere of given node inside frustum of camera node.
*
* @param camera The given camera node.
* @param node The given node.
* @return @c EINA_TRUE in frustum, @c EINA_FALSE otherwise
* If the nodes are @ NULL or nodes type mismatch error wrong type of nodes will be generated and returned @ EINA_FALSE.
* @ingroup Evas_3D_Camera
*/
return: bool;
params {
@in Evas_3D_Node *camera_node;
@in Evas_3D_Node *node;
@in Evas_3D_Frustum_Mode key;
}
}
}
implements {
Eo.Base.constructor;
Eo.Base.destructor;
Evas_3D_Object.update_notify;
Evas_3D_Object.change_notify;
}
}