aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/evas/canvas/evas_canvas3d_node.eo
diff options
context:
space:
mode:
authorOleksandr Shcherbina <o.shcherbina@samsung.com>2015-06-17 16:31:14 +0200
committerCedric BAIL <cedric@osg.samsung.com>2015-06-17 17:52:17 +0200
commitd409df1caa38ae7eac87f85ff4113484bc5b2099 (patch)
tree2adcbeadf2f4b2e7f4e7ba327a574c6620c23663 /src/lib/evas/canvas/evas_canvas3d_node.eo
parenteina: add eina_quaternion_set (diff)
downloadefl-d409df1caa38ae7eac87f85ff4113484bc5b2099.tar.gz
evas: change interface evas_3d to evas_canvas3d
Summary: Regard to https://phab.enlightenment.org/T2479 it is need for right generation Eolian files Reviewers: cedric Subscribers: cedric, tasn Differential Revision: https://phab.enlightenment.org/D2711 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Diffstat (limited to 'src/lib/evas/canvas/evas_canvas3d_node.eo')
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_node.eo616
1 files changed, 616 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_canvas3d_node.eo b/src/lib/evas/canvas/evas_canvas3d_node.eo
new file mode 100644
index 0000000000..1fee5f4680
--- /dev/null
+++ b/src/lib/evas/canvas/evas_canvas3d_node.eo
@@ -0,0 +1,616 @@
+class Evas_Canvas3D_Node (Evas_Canvas3D_Object, Evas.Common_Interface)
+{
+ legacy_prefix: null;
+ data: Evas_Canvas3D_Node_Data;
+ methods {
+ constructor {
+ /*@ Constructor. */
+ legacy: null;
+ params {
+ @in type: Evas_Canvas3D_Node_Type;
+ }
+ }
+ type_get @const {
+ /*@
+ Get the type of the given node.
+
+ @return The type of the given node.
+
+ @see evas_canvas3d_node_add()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ return: Evas_Canvas3D_Node_Type ;
+ }
+ member_add {
+ /*@
+ Add a member node to the given node.
+
+ Nodes can be constructed into N-ary tree structure like other ordinary scene
+ graph. Basically a node inherit transforms from its parent.
+
+ @see evas_canvas3d_node_parent_get()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+
+ params {
+ @in member: Evas_Canvas3D_Node *; /*@ Node object to be added. */
+ }
+ }
+ member_del {
+ /*@
+ Delete a member node from the given node.
+
+ @see evas_canvas3d_node_member_add()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+
+ params {
+ @in member: Evas_Canvas3D_Node *; /*@ Member node to be deleted from the given node. */
+ }
+ }
+
+ parent_get @const {
+ /*@
+ Get the parent node of the given node.
+
+ @return The parent node of the given node.
+
+ @see evas_canvas3d_node_member_add()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ return: Evas_Canvas3D_Node *;
+ }
+
+ member_list_get @const {
+ /*@
+ Get the list of member nodes of the given node.
+
+ @return The list of member nodes if any or @c NULL if there are none.
+
+ @see evas_canvas3d_node_member_add()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ return: const(list<Evas_Canvas3D_Node *>)*;
+ }
+ position_set {
+ /*@
+ Set the position of the given node.
+
+ According to the inheritance flag, (x, y, z) can be a world space position or
+ parent space position.
+
+ Default position is (0.0, 0.0, 0.0).
+
+ @see evas_canvas3d_node_position_inherit_set()
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ params {
+ @in x: Evas_Real; /*@ X coordinate of the position. */
+ @in y: Evas_Real; /*@ Y coordinate of the position. */
+ @in z: Evas_Real; /*@ Z coordinate of the position. */
+ }
+ }
+ orientation_set {
+ /*@
+ Set the orientation of the given node using quaternion.
+
+ According the the inheritance flag, (w, x, y, z) can be a world space
+ orientation or parent space orientation.
+
+ Default orientation is (1.0, 0.0, 0.0, 0.0) (identity quaternion).
+
+ @see evas_canvas3d_node_orientation_inherit_set()
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ params {
+ @in x: Evas_Real; /*@ X term of the orientation quaternion (w, x, y, z) */
+ @in y: Evas_Real; /*@ Y term of the orientation quaternion (w, x, y, z) */
+ @in z: Evas_Real; /*@ Z term of the orientation quaternion (w, x, y, z) */
+ @in w: Evas_Real; /*@ W term of the orientation quaternion (w, x, y, z) */
+ }
+ }
+
+ orientation_angle_axis_set {
+ /*@
+ Set the orientation of the given node using axis-angle.
+
+ @param node The given node.
+ @param angle Rotation angle.
+ @param x X term of the rotation axis.
+ @param y Y term of the rotation axis.
+ @param z Z term of the rotation axis.
+
+ @see evas_canvas3d_node_orientation_set()
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ params {
+ @in angle: Evas_Real; /*@ Rotation angle.*/
+ @in x: Evas_Real; /*@ X term of the rotation axis.*/
+ @in y: Evas_Real; /*@ Y term of the rotation axis.*/
+ @in z: Evas_Real; /*@ Z term of the rotation axis.*/
+ }
+ }
+
+ scale_set {
+ /*@
+ Set the scale of the given node.
+
+ @param node The given node.
+ @param x Scale factor along X-axis.
+ @param y Scale factor along Y-axis.
+ @param z Scale factor along Z-axis.
+
+ According to the inheritance flag, (x, y, z) can be a world space scale or
+ parent space scale. Be careful when using non-uniform scale factor with
+ inheritance, each transform attributes are not affected by other attributes.
+
+ Default scale is (1.0, 1.0, 1.0).
+
+ @see evas_canvas3d_node_scale_inherit_set()
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ params {
+ @in x: Evas_Real; /*@ Scale factor along X-axis.*/
+ @in y: Evas_Real; /*@ Scale factor along Y-axis.*/
+ @in z: Evas_Real; /*@ Scale factor along Z-axis.*/
+ }
+ }
+
+ position_get @const {
+ /*@
+ Get the position of the given node.
+
+ @param node The given node.
+ @param x Pointer to receive X coordinate of the position.
+ @param y Pointer to receive Y coordinate of the position.
+ @param z Pointer to receive Z coordinate of the position.
+
+ @see evas_canvas3d_node_position_set()
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ params {
+ @in space: Evas_Canvas3D_Space; /*@ */
+ @out x: Evas_Real; /*@ Pointer to receive X coordinate of the position.*/
+ @out y: Evas_Real; /*@ Pointer to receive Y coordinate of the position.*/
+ @out z: Evas_Real; /*@ Pointer to receive Z coordinate of the position.*/
+ }
+ }
+
+ orientation_get @const {
+ /*@
+ Get the orientation of the given node as quaternion.
+
+ @param node The given node.
+ @param x Pointer to receive X term of the orientation quaternion.
+ @param y Pointer to receive Y term of the orientation quaternion.
+ @param z Pointer to receive Z term of the orientation quaternion.
+ @param w Pointer to receive W term of the orientation quaternion.
+
+ @see evas_canvas3d_node_orientation_set()
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ params {
+ @in space: Evas_Canvas3D_Space; /*@ */
+ @out x: Evas_Real; /*@ Pointer to receive X term of the orientation quaternion.*/
+ @out y: Evas_Real; /*@ Pointer to receive Y term of the orientation quaternion.*/
+ @out z: Evas_Real; /*@ Pointer to receive Z term of the orientation quaternion.*/
+ @out w: Evas_Real; /*@ Pointer to receive W term of the orientation quaternion.*/
+ }
+ }
+
+ scale_get @const {
+ /*@
+ Get the scale of the given node.
+
+ @param node The given node.
+ @param x Pointer to receive Scale factor along X-axis.
+ @param y Pointer to receive Scale factor along Y-axis.
+ @param z Pointer to receive Scale factor along Z-axis.
+
+ @see evas_canvas3d_node_scale_get()
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ params {
+ @in space: Evas_Canvas3D_Space; /*@ */
+ @out x: Evas_Real; /*@ Pointer to receive Scale factor along X-axis.*/
+ @out y: Evas_Real; /*@ Pointer to receive Scale factor along X-axis.*/
+ @out z: Evas_Real; /*@ Pointer to receive Scale factor along X-axis.*/
+ }
+ }
+
+ look_at_set {
+ /*@
+ Rotate the given node to look at desired position.
+
+ @param node The given node.
+ @param target_space Space where the target position belongs to.
+ @param x X coordinate of the target position.
+ @param y Y coordinate of the target position.
+ @param z Z coordinate of the target position.
+ @param up_space Space where the up vector belongs to.
+ @param ux X term of the up vector.
+ @param uy Y term of the up vector.
+ @param uz Z term of the up vector.
+
+ This function rotate the given node so that its forward vector (negative
+ Z-axis) points to the desired position and the up vector coincide with the
+ given up vector.
+
+ @see evas_canvas3d_node_orientation_set()
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+
+ params {
+ @in target_space: Evas_Canvas3D_Space; /*@ Space where the target position belongs to. */
+ @in x: Evas_Real; /*@ X coordinate of the target position. */
+ @in y: Evas_Real; /*@ Y coordinate of the target position. */
+ @in z: Evas_Real; /*@ Z coordinate of the target position. */
+ @in up_space: Evas_Canvas3D_Space; /*@ Space where the up vector belongs to. */
+ @in ux: Evas_Real; /*@ X term of the up vector. */
+ @in uy: Evas_Real; /*@ Y term of the up vector. */
+ @in uz: Evas_Real; /*@ Z term of the up vector. */
+ }
+ }
+
+ mesh_add {
+ /*@
+ Add a mesh to the given node.
+
+ @param node The given node.
+ @param mesh The mesh to be added.
+
+ If the node is not of type EVAS_CANVAS3D_NODE_TYPE_MESH, error message will be
+ generated and nothing happens.
+
+ @see evas_canvas3d_node_add()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ params {
+ @in mesh: Evas_Canvas3D_Mesh *; /*@ The mesh to be added.*/
+ }
+ }
+
+ mesh_del {
+ /*@
+ Delete a mesh from the given node.
+
+ @param node The given node.
+ @param mesh The mesh to be deleted.
+
+ If the node is not of type EVAS_CANVAS3D_NODE_TYPE_MESH or the given mesh does not
+ belong to the given node, error message will be gnerated and nothing happens.
+
+ @see evas_canvas3d_node_mesh_add()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ params {
+ @in mesh: Evas_Canvas3D_Mesh *; /*@ The mesh to be deleted.*/
+ }
+ }
+
+ mesh_list_get @const {
+ /*@
+ Get the list of meshes of the given node.
+
+ @param node The given node.
+ @return The list of meshes if any, or @c NULL if there're none.
+
+ If the node is not of type EVAS_CANVAS3D_NODE_TYPE_MESH, error message will be
+ generated and @c NULL will be returned. If there're no meshes in the given
+ node, @c NULL will be returned.
+
+ @see evas_canvas3d_node_mesh_add()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ return: const(list<Evas_Canvas3D_Mesh *>)*;
+ }
+
+ bounding_box_get{
+ /*@
+ Get axis-aligned bounding box (AABB) of the given node.
+ *
+ * @param node The given node.
+ * @param x Pointer to receive X coordinate of the first point of AABB.
+ * @param y Pointer to receive Y coordinate of the first point of AABB.
+ * @param z Pointer to receive Z coordinate of the first point of AABB.
+ * @param x2 Pointer to receive X coordinate of the second point of AABB.
+ * @param y2 Pointer to receive Y coordinate of the second point of AABB.
+ * @param z2 Pointer to receive Z coordinate of the second point of AABB.
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ params {
+ @in x: Evas_Real *; /*@ Coordinates of vector.*/
+ @in y: Evas_Real *;
+ @in z: Evas_Real *;
+ @in x2: Evas_Real *;
+ @in y2: Evas_Real *;
+ @in z2: Evas_Real *;
+ }
+ }
+
+ bounding_sphere_get {
+ /*@
+ Get bounding sphere of the given node.
+ *
+ * @param node The given node.
+
+ * @param x Pointer to receive X coordinate of the center of sphere.
+ * @param y Pointer to receive Y coordinate of the center of sphere.
+ * @param z Pointer to receive Z coordinate of center of sphere.
+ * @param r Pointer to receive radius of center of sphere.
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ params {
+
+ @in x: Evas_Real *; /*@ Coordinates of vector.*/
+ @in y: Evas_Real *;
+ @in z: Evas_Real *;
+ @in r: Evas_Real *;
+ }
+ }
+
+ @property position_inherit {
+ set {
+ /*@
+ Set the position inheritance flag of the given node.
+
+ @param node The given node.
+ @param inherit Whether to inherit parent position @c EINA_TRUE or not @c EINA_FALSE.
+
+ When inheritance is enabled, a node's world space position is determined by
+ adding the parent node's world position and the node's position, otherwise,
+ the node's position will be the world space position.
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ }
+ get {
+ /*@
+ Get the position inheritance flag of the given node.
+
+ @param node The given node.
+ @return @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not.
+
+ @see evas_canvas3d_node_position_inherit_set()
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ }
+ values {
+ inherit: bool; /*@ Whether to inherit parent position*/
+ }
+ }
+
+ @property orientation_inherit {
+ set {
+ /*@
+ Set the orientation inheritance flag of the given node.
+
+ @param node The given node.
+ @param inherit Whether to inherit parent orientation @c EINA_TRUE or not @c EINA_FALSE.
+
+ When inheritance is enabled, a node's world space orientation is determined
+ by multiplying the parent node's world orientation and the node's
+ orientation, otherwise, the node's orientation will be the world space
+ orientation.
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ }
+ get {
+ /*@
+ Get the orientation inheritance flag of the given node.
+
+ @param node The given node.
+ @return @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not.
+
+ @see evas_canvas3d_node_orientation_inherit_set()
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ }
+ values {
+ inherit: bool; /*@ Whether to inherit parent orientation*/
+ }
+ }
+
+ @property scale_inherit {
+ set {
+ /*@
+ Set the scale inheritance flag of the given node.
+
+ @param node The given node.
+ @param inherit Whether to inherit parent scale @c EINA_TRUE or not @c EINA_FALSE.
+
+ When inheritance is enabled, a node's world space scale is determined by
+ multiplying the parent node's world scale and the node's scale, otherwise,
+ the node's scale will be the world space scale.
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ }
+ get {
+ /*@
+ Get the scale inheritance flag of the given node.
+
+ @param node The given node.
+ @return @c EINA_TRUE if inheritance is enabled, or @c EINA_FALSE if not.
+
+ @see evas_canvas3d_node_scale_inherit_set()
+
+ @ingroup Evas_Canvas3D_Node_Transform
+ */
+ }
+ values {
+ inherit: bool; /*@ Whether to inherit parent scale*/
+ }
+ }
+
+ @property camera {
+ set {
+ /*@
+ Set a camera to the given node.
+
+ @param node The given node.
+ @param camera The camera to be set.
+
+ If the node is not of type EVAS_CANVAS3D_NODE_TYPE_CAMERA, error message will be
+ generated and nothing happens.
+
+ @see evas_canvas3d_node_add()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ }
+ get {
+ /*@
+ Get the camera of the given node.
+
+ @param node The given node.
+ @return The camera of the given node if any, or @c NULL if there're none.
+
+ @see evas_canvas3d_node_camera_set()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ }
+ values {
+ // FIXME: Evas_Canvas3D_Camera is necessary, but that introduces a cycle
+ camera: Evas_Canvas3D_Object *; /*@ The camera */
+ }
+ }
+
+ @property light {
+ set {
+ /*@
+ Set the light of the given node.
+
+ @param node The given node.
+ @param light The light to be set.
+
+ If the node is not of type EVAS_CANVAS3D_NODE_TYPE_LIGHT, error message will be
+ generated and nothing happens.
+
+ @see evas_canvas3d_node_add()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ }
+ get {
+ /*@
+ Get the light of the given node.
+
+ @param node The given node.
+ @return The light of the given node if any, or @c NULL if there're none.
+
+ @see evas_canvas3d_node_light_set()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ }
+ values {
+ light: Evas_Canvas3D_Light *; /*@ The light */
+ }
+ }
+
+ @property mesh_frame {
+ set {
+ /*@
+ Set the animation frame number of the given node for the given mesh.
+
+ @param node The given node.
+ @param mesh The given mesh.
+ @param frame The animation frame number.
+
+ If the node is not of type EVAS_CANVAS3D_NODE_TYPE_MESH or the given mesh does not
+ belong to the given mesh error mesh will be generated and nothing happens.
+
+ Default mesh frame is 0.
+
+ @see evas_canvas3d_node_mesh_add()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ }
+ get {
+ /*@
+ Set the animation frame number of the given node for the given mesh.
+
+ @param node The given node.
+ @param mesh The given mesh.
+ @param frame The animation frame number.
+
+ If the node is not of type EVAS_CANVAS3D_NODE_TYPE_MESH or the given mesh does not
+ belong to the given mesh error mesh will be generated and nothing happens.
+
+ @see evas_canvas3d_node_mesh_add()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ }
+ keys {
+ mesh: Evas_Canvas3D_Mesh *; /*@ The given mesh.*/
+ }
+ values {
+ frame: int; /*@ The animation frame number.*/
+ }
+ }
+
+ @property billboard_target {
+ set {
+ /*@
+ Set behavior of node like billboard object.
+
+ @param node The given node.
+ @param billboard Pointer to target node for given node.
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ }
+ get {
+ /*@
+ Get the target node for billboard object.
+
+ @param node The given node.
+ @return The pointer to target node for billboard object,
+ or @c NULL if there're none.
+
+ @see evas_canvas3d_node_billboard_set()
+
+ @ingroup Evas_Canvas3D_Node
+ */
+ }
+ values {
+ target: Eo *; /*@ Target node.*/
+ }
+ }
+ }
+ implements {
+ Eo.Base.destructor;
+ Evas_Canvas3D_Object.update_notify;
+ Evas_Canvas3D_Object.change_notify;
+ Evas_Canvas3D_Object.callback_register;
+ Evas_Canvas3D_Object.callback_unregister;
+ }
+ constructors {
+ .constructor;
+ }
+}