discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=27ae060633fdc5d950410492fec14806e2d4b9f3

commit 27ae060633fdc5d950410492fec14806e2d4b9f3
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Mon Feb 12 14:29:20 2018 -0500

    evas3d: use a type setter function with finalize instead of a custom 
constructor
    
    resolves a conflict with the 'constructor' method name
---
 src/examples/elementary/evas3d_map_example.c       | 10 ++---
 .../elementary/evas3d_object_on_button_example.c   |  8 ++--
 .../elementary/evas3d_scene_on_button_example.c    |  8 ++--
 src/examples/elementary/performance/graphical.c    | 12 +++---
 .../sphere_hunter/evas_3d_sphere_hunter.c          | 12 +++---
 src/examples/evas/evas-3d-aabb.c                   | 10 ++---
 src/examples/evas/evas-3d-blending.c               | 10 ++---
 src/examples/evas/evas-3d-colorpick.c              |  8 ++--
 src/examples/evas/evas-3d-cube-rotate.c            |  8 ++--
 src/examples/evas/evas-3d-cube.c                   |  8 ++--
 src/examples/evas/evas-3d-cube2.c                  |  8 ++--
 src/examples/evas/evas-3d-eet.c                    | 10 ++---
 src/examples/evas/evas-3d-fog.c                    | 12 +++---
 src/examples/evas/evas-3d-frustum.c                | 10 ++---
 src/examples/evas/evas-3d-hull.c                   | 12 +++---
 src/examples/evas/evas-3d-md2.c                    |  8 ++--
 src/examples/evas/evas-3d-mmap-set.c               |  8 ++--
 src/examples/evas/evas-3d-obj.c                    |  8 ++--
 src/examples/evas/evas-3d-parallax-occlusion.c     |  8 ++--
 src/examples/evas/evas-3d-pick.c                   |  6 +--
 src/examples/evas/evas-3d-ply.c                    |  8 ++--
 src/examples/evas/evas-3d-proxy.c                  |  8 ++--
 src/examples/evas/evas-3d-shadows.c                | 24 ++++++------
 src/examples/evas/evas-3d-static-lod.c             | 12 +++---
 src/examples/evas/shooter/evas-3d-shooter-header.c |  6 +--
 src/examples/evas/shooter/evas-3d-shooter.c        |  4 +-
 src/lib/edje/edje_load.c                           |  8 ++--
 src/lib/evas/canvas/evas_canvas3d_node.c           | 43 ++++++++++++++--------
 src/lib/evas/canvas/evas_canvas3d_node.eo          | 24 ++++++------
 29 files changed, 166 insertions(+), 155 deletions(-)

diff --git a/src/examples/elementary/evas3d_map_example.c 
b/src/examples/elementary/evas3d_map_example.c
index d71017858a..5426d30966 100644
--- a/src/examples/elementary/evas3d_map_example.c
+++ b/src/examples/elementary/evas3d_map_example.c
@@ -881,7 +881,7 @@ skybox_setup(void)
    evas_canvas3d_material_color_set(skybox_material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, 0.1, 0.1, 0.1, 1.0);
    evas_canvas3d_material_shininess_set(skybox_material, 50.0);
 
-   skybox_mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   skybox_mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(root_node, skybox_mesh_node);
    evas_canvas3d_node_mesh_add(skybox_mesh_node, skybox_mesh);
    evas_canvas3d_mesh_shader_mode_set(skybox_mesh, 
EVAS_CANVAS3D_SHADER_MODE_DIFFUSE);
@@ -940,7 +940,7 @@ camera_setup(void)
    camera_right_vec.y = 0.0;
    camera_right_vec.z = 0.0;
 
-   camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(camera_node, camera);
    evas_canvas3d_node_position_set(camera_node, camera_pos.x, camera_pos.y, 
camera_pos.z);
    evas_canvas3d_node_look_at_set(camera_node, EVAS_CANVAS3D_SPACE_PARENT, 
0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, camera_up_vec.x, camera_up_vec.y, 
camera_up_vec.z);
@@ -955,7 +955,7 @@ light_setup(void)
    evas_canvas3d_light_diffuse_set(light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_specular_set(light, 0.2, 0.2, 0.2, 1.0);
 
-   light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(light_node, light);
    evas_canvas3d_node_position_set(light_node, 0.0, 0.0, MAX_CAMERA_DISTANCE);
    evas_canvas3d_node_look_at_set(light_node, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0);
@@ -1001,7 +1001,7 @@ mesh_setup(void)
    evas_canvas3d_material_color_set(material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, 0.1, 0.1, 0.1, 1.0);
    evas_canvas3d_material_shininess_set(material, 50.0);
 
-   mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(root_node, mesh_node);
    evas_canvas3d_node_mesh_add(mesh_node, mesh);
    evas_canvas3d_mesh_shader_mode_set(mesh, 
EVAS_CANVAS3D_SHADER_MODE_NORMAL_MAP);
@@ -1169,7 +1169,7 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
    scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
    /* Add a root node for the scene. */
-   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    skybox_setup();
    texture_source_setup();
diff --git a/src/examples/elementary/evas3d_object_on_button_example.c 
b/src/examples/elementary/evas3d_object_on_button_example.c
index c3866b78fe..7be8f601cd 100644
--- a/src/examples/elementary/evas3d_object_on_button_example.c
+++ b/src/examples/elementary/evas3d_object_on_button_example.c
@@ -164,7 +164,7 @@ _camera_setup(Scene_Data *data)
    evas_canvas3d_camera_projection_perspective_set(data->camera, 20.0, 1.0, 
2.0, 50.0);
 
    data->camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 15.0);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
-1.0, 0.0);
@@ -180,7 +180,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
    data->light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -220,7 +220,7 @@ _mesh_setup(Scene_Data *data)
    evas_canvas3d_mesh_color_pick_enable_set(data->mesh, EINA_TRUE);
 
    data->mesh_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node);
    evas_canvas3d_node_mesh_add(data->mesh_node, data->mesh);
 }
@@ -233,7 +233,7 @@ _scene_setup(Scene_Data *data)
    evas_canvas3d_scene_background_color_set(data->scene, 0.0, 0.0, 0.0, 0.0);
 
    data->root_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
diff --git a/src/examples/elementary/evas3d_scene_on_button_example.c 
b/src/examples/elementary/evas3d_scene_on_button_example.c
index f2c64a86df..ffcc4b2db0 100644
--- a/src/examples/elementary/evas3d_scene_on_button_example.c
+++ b/src/examples/elementary/evas3d_scene_on_button_example.c
@@ -125,7 +125,7 @@ _camera_setup(Scene_Data *data)
    evas_canvas3d_camera_projection_perspective_set(data->camera, 60.0, 1.0, 
2.0, 50.0);
 
    data->camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -141,7 +141,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
    data->light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -175,7 +175,7 @@ _mesh_setup(Scene_Data *data)
    evas_canvas3d_mesh_frame_material_set(data->mesh, 0, data->material);
 
    data->mesh_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node);
    evas_canvas3d_node_mesh_add(data->mesh_node, data->mesh);
 }
@@ -188,7 +188,7 @@ _scene_setup(Scene_Data *data)
    evas_canvas3d_scene_background_color_set(data->scene, 0.0, 0.0, 0.0, 0.0);
 
    data->root_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
diff --git a/src/examples/elementary/performance/graphical.c 
b/src/examples/elementary/performance/graphical.c
index de4acb9473..06959ea2e7 100644
--- a/src/examples/elementary/performance/graphical.c
+++ b/src/examples/elementary/performance/graphical.c
@@ -272,7 +272,7 @@ void _init_bounding()
    evas_canvas3d_mesh_frame_material_set(globalGraphical.mesh_box, 0, 
globalGraphical.material_box);
 
    globalGraphical.mesh_nodebox =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(efl_added, 0, -30.0, 0.0));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(efl_added, 0, -30.0, 0.0));
    evas_canvas3d_node_member_add(globalGraphical.root_node, 
globalGraphical.mesh_nodebox);
    evas_canvas3d_node_mesh_add(globalGraphical.mesh_nodebox, 
globalGraphical.mesh_box);
 }
@@ -359,7 +359,7 @@ _change_scene_setup()
    for (i = 0; i < quantity; i++)
      {
         globalGraphical.mesh_node =
-           efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(efl_added, globalGraphical.places[i].position.x 
* 20, globalGraphical.places[i].position.y * 20, 
globalGraphical.places[i].position.z * 20));
+           efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(efl_added, globalGraphical.places[i].position.x 
* 20, globalGraphical.places[i].position.y * 20, 
globalGraphical.places[i].position.z * 20));
         if (globalGraphical.model_path)
           evas_canvas3d_node_scale_set(globalGraphical.mesh_node, 0.2, 0.2, 
0.2);
         evas_canvas3d_node_member_add(globalGraphical.root_node, 
globalGraphical.mesh_node);
@@ -397,14 +397,14 @@ _init_scene(Evas_Object *img)
    globalGraphical.scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, 
globalGraphical.evas);
 
    /* Add the root node for the scene. */
-   globalGraphical.root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, 
globalGraphical.evas, evas_canvas3d_node_constructor(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_NODE));
+   globalGraphical.root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, 
globalGraphical.evas, evas_canvas3d_node_type_set(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    /* Add the camera. */
    globalGraphical.camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, 
globalGraphical.evas);
    evas_canvas3d_camera_projection_perspective_set(globalGraphical.camera, 
globalGraphical.angle, 1.0, 2.0, 1000.0);
 
    globalGraphical.camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(globalGraphical.camera_node, 
globalGraphical.camera);
    evas_canvas3d_node_position_set(globalGraphical.camera_node, 0.0, 0.0, 
25.0);
    evas_canvas3d_node_look_at_set(globalGraphical.camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -418,7 +418,7 @@ _init_scene(Evas_Object *img)
    evas_canvas3d_light_spot_cutoff_set(globalGraphical.light, 
globalGraphical.angle / 15);
 
    globalGraphical.light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(globalGraphical.light_node, 
globalGraphical.light);
    evas_canvas3d_node_position_set(globalGraphical.light_node, 0.0, 100.0, 
1.0);
    evas_canvas3d_node_look_at_set(globalGraphical.light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -474,7 +474,7 @@ _init_scene(Evas_Object *img)
    for (i = 0; i < quantity; i++)
      {
         globalGraphical.mesh_node =
-           efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(efl_added, globalGraphical.places[i].position.x 
* 20, globalGraphical.places[i].position.y * 20, 
globalGraphical.places[i].position.z * 20));
+           efl_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(efl_added, globalGraphical.places[i].position.x 
* 20, globalGraphical.places[i].position.y * 20, 
globalGraphical.places[i].position.z * 20));
         if (globalGraphical.model_path)
           evas_canvas3d_node_scale_set(globalGraphical.mesh_node, 0.2, 0.2, 
0.2);
         evas_canvas3d_node_member_add(globalGraphical.root_node, 
globalGraphical.mesh_node);
diff --git a/src/examples/elementary/sphere_hunter/evas_3d_sphere_hunter.c 
b/src/examples/elementary/sphere_hunter/evas_3d_sphere_hunter.c
index 7127919eba..59e0ebedac 100644
--- a/src/examples/elementary/sphere_hunter/evas_3d_sphere_hunter.c
+++ b/src/examples/elementary/sphere_hunter/evas_3d_sphere_hunter.c
@@ -437,7 +437,7 @@ _camera_setup(Scene_Data *data)
    data->camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(data->camera, 50.0, 1.0, 
1.0, 1000.0);
 
-   data->camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   data->camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 40, 70);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -465,7 +465,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_projection_perspective_set(data->light, 100.0, 1.0, 
1.0, 1000.0);
 
-   data->light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   data->light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.1, 25.0, 0.1);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -507,7 +507,7 @@ _create_bondar(Scene_Data *data, Evas_Real scale_x, 
Evas_Real scale_y, Evas_Real
 
    mesh = efl_add(EVAS_CANVAS3D_MESH_CLASS, evas);
    material = efl_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
-   node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    evas_canvas3d_material_enable_set(material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, EINA_TRUE);
    evas_canvas3d_material_enable_set(material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, EINA_TRUE);
@@ -555,7 +555,7 @@ _create_cubes(Scene_Data *data, Evas_Real r, int count)
         Eo *node = NULL;
 
         alpha = d_alpha * i * M_PI / 180;
-        node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+        node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
         evas_canvas3d_node_mesh_add(node, data->mesh_cube);
         evas_canvas3d_node_position_set(node, r * sin(alpha), 2.0 + (r / 4 * 
sin(alpha)), r * cos(alpha));
@@ -574,7 +574,7 @@ _mesh_ball_setup(Scene_Data *data)
 
    data->mesh_ball = efl_add(EVAS_CANVAS3D_MESH_CLASS, evas);
    data->material_ball = efl_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
-   data->mesh_node_ball = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   data->mesh_node_ball = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    /* Setup material for ball. */
    evas_canvas3d_material_enable_set(data->material_ball, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, EINA_TRUE);
@@ -611,7 +611,7 @@ _scene_setup(Scene_Data *data, Evas_Real r, int count)
    data->scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
    /* Add the root node for the scene. */
-   data->root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   data->root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    evas_canvas3d_scene_size_set(data->scene, WIDTH, HEIGHT);
    evas_canvas3d_scene_shadows_enable_set(data->scene, EINA_TRUE);
diff --git a/src/examples/evas/evas-3d-aabb.c b/src/examples/evas/evas-3d-aabb.c
index 8531665a82..5278999f27 100644
--- a/src/examples/evas/evas-3d-aabb.c
+++ b/src/examples/evas/evas-3d-aabb.c
@@ -143,13 +143,13 @@ main(void)
 
    scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
-   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(camera, 60.0, 1.0, 1.0, 
500.0);
 
    camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(camera_node, camera);
    evas_canvas3d_node_member_add(root_node, camera_node);
    evas_canvas3d_node_position_set(camera_node, 100.0, 50.0, 20.0);
@@ -161,7 +161,7 @@ main(void)
    evas_canvas3d_light_directional_set(light, EINA_TRUE);
 
    light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(light_node, light);
    evas_canvas3d_node_position_set(light_node, 1000.0, 0.0, 1000.0);
    evas_canvas3d_node_look_at_set(light_node, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0);
@@ -188,8 +188,8 @@ main(void)
    evas_canvas3d_material_color_set(material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_material_shininess_set(material, 50.0);
 
-   mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
-   mesh_box_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   mesh_box_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    material_box = efl_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
    evas_canvas3d_material_enable_set(material_box, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, EINA_TRUE);
diff --git a/src/examples/evas/evas-3d-blending.c 
b/src/examples/evas/evas-3d-blending.c
index 84f042ace1..531c8fa2a6 100644
--- a/src/examples/evas/evas-3d-blending.c
+++ b/src/examples/evas/evas-3d-blending.c
@@ -153,7 +153,7 @@ _camera_setup(Scene_Data *data)
    evas_canvas3d_camera_projection_perspective_set(data->camera, 60.0, 1.0, 
2.0, 50.0);
 
    data->camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
 
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 10.0);
@@ -171,7 +171,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
    data->light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -220,13 +220,13 @@ _mesh_setup(Scene_Data *data)
    _set_ball(data->mesh1, data->sphere, data->material1);
 
    data->mesh_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node);
    evas_canvas3d_node_mesh_add(data->mesh_node, data->mesh);
 
    data->mesh_node1 =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node1);
    evas_canvas3d_node_mesh_add(data->mesh_node1, data->mesh1);
@@ -248,7 +248,7 @@ _scene_setup(Scene_Data *data)
    evas_canvas3d_scene_background_color_set(data->scene, 0.5, 0.5, 0.5, 1);
 
    data->root_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
diff --git a/src/examples/evas/evas-3d-colorpick.c 
b/src/examples/evas/evas-3d-colorpick.c
index 80c392a5f9..381ac834de 100644
--- a/src/examples/evas/evas-3d-colorpick.c
+++ b/src/examples/evas/evas-3d-colorpick.c
@@ -281,13 +281,13 @@ _init_scene(const char *texture)
 
    globalscene.scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
-   globalscene.root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   globalscene.root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    globalscene.camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(globalscene.camera, 30.0, 
1.0, 1.0, 1000.0);
 
    globalscene.camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(globalscene.camera_node, globalscene.camera);
    evas_canvas3d_node_member_add(globalscene.root_node, 
globalscene.camera_node);
    evas_canvas3d_node_position_set(globalscene.camera_node, 0.0, 30.0, 800.0);
@@ -299,7 +299,7 @@ _init_scene(const char *texture)
    evas_canvas3d_light_directional_set(globalscene.light, EINA_TRUE);
 
    globalscene.light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(globalscene.light_node, globalscene.light);
    evas_canvas3d_node_position_set(globalscene.light_node, 100.0, 50.0, 300.0);
    evas_canvas3d_node_look_at_set(globalscene.light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 1.0, 
1.0, 1.0);
@@ -321,7 +321,7 @@ _init_scene(const char *texture)
              m->material = spheretmp->material;
              m->texture = spheretmp->texture;
           }
-        m->node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+        m->node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
         m->speed = tmp;
         m->sphere_animate = _animate_sphere;
         m->animate = ecore_timer_add(m->speed, m->sphere_animate, m);
diff --git a/src/examples/evas/evas-3d-cube-rotate.c 
b/src/examples/evas/evas-3d-cube-rotate.c
index 16efb7c548..10b6a1305e 100644
--- a/src/examples/evas/evas-3d-cube-rotate.c
+++ b/src/examples/evas/evas-3d-cube-rotate.c
@@ -157,7 +157,7 @@ _camera_setup(Scene_Data *data)
    data->camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(data->camera, 20.0, 1.0, 
2.0, 50.0);
 
-   data->camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   data->camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 3.0, 3.0, 10.0);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -174,7 +174,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_diffuse_set(data->light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
-   data->light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   data->light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
 
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 5.0, 5.0, 10.0);
@@ -207,7 +207,7 @@ _mesh_setup(Scene_Data *data)
    evas_canvas3d_mesh_shader_mode_set(data->mesh, 
EVAS_CANVAS3D_SHADER_MODE_PHONG);
    evas_canvas3d_mesh_frame_material_set(data->mesh, 0, data->material);
 
-   data->mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   data->mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node);
    evas_canvas3d_node_mesh_add(data->mesh_node, data->mesh);
 }
@@ -216,7 +216,7 @@ static void
 _scene_setup(Scene_Data *data)
 {
    scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
-   data->root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   data->root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    evas_canvas3d_scene_size_set(scene, WIDTH, HEIGHT);
    evas_canvas3d_scene_background_color_set(scene, 0.0, 0.0, 0.0, 0.0);
diff --git a/src/examples/evas/evas-3d-cube.c b/src/examples/evas/evas-3d-cube.c
index 7a2cdcfd18..5fff887b14 100644
--- a/src/examples/evas/evas-3d-cube.c
+++ b/src/examples/evas/evas-3d-cube.c
@@ -142,7 +142,7 @@ _camera_setup(Scene_Data *data)
    evas_canvas3d_camera_projection_perspective_set(data->camera, 60.0, 1.0, 
2.0, 50.0);
 
    data->camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -158,7 +158,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
    data->light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -192,7 +192,7 @@ _mesh_setup(Scene_Data *data)
    evas_canvas3d_mesh_frame_material_set(data->mesh, 0, data->material);
 
    data->mesh_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node);
    evas_canvas3d_node_mesh_add(data->mesh_node, data->mesh);
 }
@@ -205,7 +205,7 @@ _scene_setup(Scene_Data *data)
    evas_canvas3d_scene_background_color_set(data->scene, 0.0, 0.0, 0.0, 0.0);
 
    data->root_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
diff --git a/src/examples/evas/evas-3d-cube2.c 
b/src/examples/evas/evas-3d-cube2.c
index c07e530485..0b1d31c8eb 100644
--- a/src/examples/evas/evas-3d-cube2.c
+++ b/src/examples/evas/evas-3d-cube2.c
@@ -114,7 +114,7 @@ _camera_setup(Scene_Data *data)
    evas_canvas3d_camera_projection_perspective_set(data->camera, 60.0, 1.0, 
2.0, 50.0);
 
    data->camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 3.0);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -130,7 +130,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
    data->light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -187,7 +187,7 @@ _mesh_setup(Scene_Data *data)
    evas_canvas3d_mesh_shader_mode_set(data->mesh, 
EVAS_CANVAS3D_SHADER_MODE_NORMAL_MAP);
 
    data->mesh_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node);
    evas_canvas3d_node_mesh_add(data->mesh_node, data->mesh);
 }
@@ -200,7 +200,7 @@ _scene_setup(Scene_Data *data)
    evas_canvas3d_scene_background_color_set(data->scene, 0.0, 0.0, 0.0, 0.0);
 
    data->root_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
diff --git a/src/examples/evas/evas-3d-eet.c b/src/examples/evas/evas-3d-eet.c
index 01c9c768f5..b9b7f6dbc8 100644
--- a/src/examples/evas/evas-3d-eet.c
+++ b/src/examples/evas/evas-3d-eet.c
@@ -117,13 +117,13 @@ main(void)
    scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
    /* Add the root node for the scene. */
-   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    /* Add the camera. */
    camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(camera, 60.0, 1.0, 1.0, 
500.0);
 
-   camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(camera_node, camera);
    evas_canvas3d_node_member_add(root_node, camera_node);
    evas_canvas3d_node_position_set(camera_node, 200.0, 0.0, 40.0);
@@ -135,7 +135,7 @@ main(void)
    evas_canvas3d_light_specular_set(light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_directional_set(light, EINA_TRUE);
 
-   light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(light_node, light);
    evas_canvas3d_node_position_set(light_node, 1000.0, 0.0, 1000.0);
    evas_canvas3d_node_look_at_set(light_node, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0);
@@ -168,13 +168,13 @@ main(void)
    efl_file_set(mesh2, output_model_path, NULL);
    evas_canvas3d_mesh_shader_mode_set(mesh2, EVAS_CANVAS3D_SHADER_MODE_PHONG);
 
-   mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    evas_canvas3d_node_member_add(root_node, mesh_node);
    evas_canvas3d_node_mesh_add(mesh_node, mesh);
    evas_canvas3d_node_position_set(mesh_node, 0.0, -40.0, 0.0);
 
-   mesh_node2 = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   mesh_node2 = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(root_node, mesh_node2);
    evas_canvas3d_node_mesh_add(mesh_node2, mesh2);
    evas_canvas3d_node_position_set(mesh_node2, 0.0, 40.0, 0.0);
diff --git a/src/examples/evas/evas-3d-fog.c b/src/examples/evas/evas-3d-fog.c
index 38a3d632da..e9e01449c7 100644
--- a/src/examples/evas/evas-3d-fog.c
+++ b/src/examples/evas/evas-3d-fog.c
@@ -88,7 +88,7 @@ _camera_setup(Scene_Data *data)
    evas_canvas3d_camera_projection_perspective_set(data->camera, 60.0, 1.0, 
2.0, 50.0);
 
    data->camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
 
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 7.0);
@@ -106,7 +106,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
    data->light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -145,10 +145,10 @@ _mesh_setup(Scene_Data *data)
    _set_ball(data->mesh1, data->sphere, data->material);
 
    data->animation_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    data->mesh_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    evas_canvas3d_node_member_add(data->animation_node, data->mesh_node);
    evas_canvas3d_node_member_add(data->root_node, data->animation_node);
@@ -156,7 +156,7 @@ _mesh_setup(Scene_Data *data)
    evas_canvas3d_node_position_set(data->mesh_node, 0.0, 0.0, 3.0);
 
    data->mesh_node1 =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node1);
    evas_canvas3d_node_mesh_add(data->mesh_node1, data->mesh1);
@@ -177,7 +177,7 @@ _scene_setup(Scene_Data *data)
    evas_canvas3d_scene_background_color_set(data->scene, FOG_COLOR, 1);
 
    data->root_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
diff --git a/src/examples/evas/evas-3d-frustum.c 
b/src/examples/evas/evas-3d-frustum.c
index 776e61c364..02f5bba05e 100644
--- a/src/examples/evas/evas-3d-frustum.c
+++ b/src/examples/evas/evas-3d-frustum.c
@@ -281,7 +281,7 @@ static void
 _camera_setup(Scene_Data *data)
 {
    data->camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
-   data->camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   data->camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 300.0);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -299,7 +299,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_diffuse_set(data->light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
-   data->light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   data->light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.0, 0.0, 200.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
0.0, 1.0);
@@ -340,7 +340,7 @@ _mesh_setup(Scene_Data *data)
    evas_canvas3d_mesh_frame_material_set(data->mesh_sphere, 0, data->material);
 
    data->mesh_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node);
    evas_canvas3d_node_mesh_add(data->mesh_node, data->mesh_aabb);
 }
@@ -377,13 +377,13 @@ _scene_setup(Scene_Data *data)
 {
    data->scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
-   data->root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   data->root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _light_setup(data);
    _mesh_setup_model(data);
    _camera_setup(data);
 
-   data->mesh_node_model = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   data->mesh_node_model = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_position_set(data->mesh_node_model, obj_x, obj_y, obj_z);
    evas_canvas3d_node_orientation_angle_axis_set(data->mesh_node_model, -90, 
1.0, 0.0, 0.0);
    evas_canvas3d_node_scale_set(data->mesh_node_model, obj_sc_x, obj_sc_y, 
obj_sc_z);
diff --git a/src/examples/evas/evas-3d-hull.c b/src/examples/evas/evas-3d-hull.c
index 52c121fe9f..7e5705680f 100644
--- a/src/examples/evas/evas-3d-hull.c
+++ b/src/examples/evas/evas-3d-hull.c
@@ -262,7 +262,7 @@ _camera_setup(Scene_Data *data)
    evas_canvas3d_camera_projection_perspective_set(data->camera, 60.0, 1.0, 
2.0, 50.0);
 
    data->camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -278,7 +278,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
    data->light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -356,7 +356,7 @@ _mesh_setup(Scene_Data *data)
    MODEL_MESH_INIT(blender_test_sonic, sonic_test, DIFFUSE)
 
    data->mesh_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node);
    evas_canvas3d_node_mesh_add(data->mesh_node, data->mesh_sphere);
    evas_canvas3d_node_scale_set(data->mesh_node, SCALE_SPHERE, SCALE_SPHERE, 
SCALE_SPHERE);
@@ -374,14 +374,14 @@ _mesh_setup(Scene_Data *data)
    _print_result(data->mesh_sphere_ch, data->mesh_blender_test_sphere);
 
    data->mesh_node_convex_hull =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node_convex_hull);
    evas_canvas3d_node_position_set(data->mesh_node_convex_hull, 0.0, 0.0, 0.0);
    evas_canvas3d_node_scale_set(data->mesh_node_convex_hull, SCALE_SPHERE, 
SCALE_SPHERE, SCALE_SPHERE);
    evas_canvas3d_node_mesh_add(data->mesh_node_convex_hull, 
data->mesh_sphere_ch);
 
    data->mesh_node_blender =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node_blender);
    evas_canvas3d_node_position_set(data->mesh_node_blender, -3.0, 0.0, 0.0);
    evas_canvas3d_node_scale_set(data->mesh_node_blender, SCALE_SPHERE, 
SCALE_SPHERE, SCALE_SPHERE);
@@ -396,7 +396,7 @@ _scene_setup(Scene_Data *data)
    evas_canvas3d_scene_background_color_set(data->scene, 0.0, 0.0, 0.0, 0.0);
 
    data->root_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
diff --git a/src/examples/evas/evas-3d-md2.c b/src/examples/evas/evas-3d-md2.c
index aed2781b07..527d856802 100644
--- a/src/examples/evas/evas-3d-md2.c
+++ b/src/examples/evas/evas-3d-md2.c
@@ -94,14 +94,14 @@ main(void)
    scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
    /* Add the root node for the scene. */
-   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    /* Add the camera. */
    camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(camera, 60.0, 1.0, 1.0, 
500.0);
 
    camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(camera_node, camera);
    evas_canvas3d_node_member_add(root_node, camera_node);
    evas_canvas3d_node_position_set(camera_node, 100.0, 0.0, 20.0);
@@ -114,7 +114,7 @@ main(void)
    evas_canvas3d_light_directional_set(light, EINA_TRUE);
 
    light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(light_node, light);
    evas_canvas3d_node_position_set(light_node, 1000.0, 0.0, 1000.0);
    evas_canvas3d_node_look_at_set(light_node, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0);
@@ -142,7 +142,7 @@ main(void)
    evas_canvas3d_material_color_set(material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_material_shininess_set(material, 50.0);
 
-   mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(root_node, mesh_node);
    evas_canvas3d_node_mesh_add(mesh_node, mesh);
 
diff --git a/src/examples/evas/evas-3d-mmap-set.c 
b/src/examples/evas/evas-3d-mmap-set.c
index fed41fa7d8..570e7d3c79 100644
--- a/src/examples/evas/evas-3d-mmap-set.c
+++ b/src/examples/evas/evas-3d-mmap-set.c
@@ -36,7 +36,7 @@
    efl_file_mmap_set(mesh_##extention, extention##_file, NULL); \
    evas_canvas3d_mesh_frame_material_set(mesh_##extention, 0, material); \
    evas_canvas3d_mesh_shader_mode_set(mesh_##extention, 
EVAS_CANVAS3D_SHADER_MODE_PHONG);                      \
-   node_##extention = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));       
   \
+   node_##extention = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));          
\
    evas_canvas3d_node_member_add(root_node, node_##extention);                 
      \
    evas_canvas3d_node_mesh_add(node_##extention, mesh_##extention); \
    evas_canvas3d_node_position_set(node_##extention, initial_node_data[number 
* 10], \
@@ -184,14 +184,14 @@ main(void)
    scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
    /* Add the root node for the scene. */
-   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    /* Add the camera. */
    camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(camera, 10.0, 1.0, 1.0, 
500.0);
 
    camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(camera_node, camera);
    evas_canvas3d_node_member_add(root_node, camera_node);
    evas_canvas3d_node_position_set(camera_node, 0.0, 0.0, 100.0);
@@ -204,7 +204,7 @@ main(void)
    evas_canvas3d_light_directional_set(light, EINA_TRUE);
 
    light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(light_node, light);
    evas_canvas3d_node_position_set(light_node, 1.0, 0.0, 100.0);
    evas_canvas3d_node_look_at_set(light_node, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0);
diff --git a/src/examples/evas/evas-3d-obj.c b/src/examples/evas/evas-3d-obj.c
index 5f3454c3ba..b00d6e5d40 100644
--- a/src/examples/evas/evas-3d-obj.c
+++ b/src/examples/evas/evas-3d-obj.c
@@ -50,7 +50,7 @@
    efl_file_set(mesh[num], full_file_path, NULL); \
    evas_canvas3d_mesh_frame_material_set(mesh[num], 0, name_of_material); \
    evas_canvas3d_mesh_shader_mode_set(mesh[num], shade_mode);                  
              \
-   mesh_node[num] = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));   \
+   mesh_node[num] = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));   \
    evas_canvas3d_node_member_add(root_node, mesh_node[num]);                   
             \
    evas_canvas3d_node_mesh_add(mesh_node[num], mesh[num]); \
    evas_canvas3d_node_position_set(mesh_node[num], 0, Y, Z);                   
                  \
@@ -162,14 +162,14 @@ main(void)
    scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
    /* Add the root node for the scene. */
-   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    /* Add the camera. */
    camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(camera, 20.0, 1.0, 1.0, 
500.0);
 
    camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(camera_node, camera);
    evas_canvas3d_node_member_add(root_node, camera_node);
    evas_canvas3d_node_position_set(camera_node, 100.0, 0.0, 0.0);
@@ -182,7 +182,7 @@ main(void)
    evas_canvas3d_light_directional_set(light, EINA_TRUE);
 
    light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(light_node, light);
    evas_canvas3d_node_position_set(light_node, 10.0, 0.0, 0.0);
    evas_canvas3d_node_look_at_set(light_node, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0);
diff --git a/src/examples/evas/evas-3d-parallax-occlusion.c 
b/src/examples/evas/evas-3d-parallax-occlusion.c
index ec98f94d39..c888653a8e 100644
--- a/src/examples/evas/evas-3d-parallax-occlusion.c
+++ b/src/examples/evas/evas-3d-parallax-occlusion.c
@@ -108,7 +108,7 @@ _camera_setup(Scene_Data *data)
 
    evas_canvas3d_camera_projection_perspective_set(data->camera, 30.0, 1.0, 
2.0, 50.0);
 
-   data->camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   data->camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -123,7 +123,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_diffuse_set(data->light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
-   data->light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   data->light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, -20.0, 20.0, 50.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -191,7 +191,7 @@ _mesh_setup(Scene_Data *data)
 
    evas_canvas3d_mesh_frame_material_set(data->mesh, 100, data->material_wood);
 
-   data->mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   data->mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node);
    evas_canvas3d_node_mesh_add(data->mesh_node, data->mesh);
    evas_canvas3d_node_scale_set(data->mesh_node, 3, 3, 3);
@@ -204,7 +204,7 @@ _scene_setup(Scene_Data *data)
    evas_canvas3d_scene_size_set(data->scene, WIDTH, HEIGHT);
    evas_canvas3d_scene_background_color_set(data->scene, 0.0, 0.0, 0.0, 0.0);
 
-   data->root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   data->root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
diff --git a/src/examples/evas/evas-3d-pick.c b/src/examples/evas/evas-3d-pick.c
index 2129722add..177cfb4607 100644
--- a/src/examples/evas/evas-3d-pick.c
+++ b/src/examples/evas/evas-3d-pick.c
@@ -120,14 +120,14 @@ main(void)
    scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
    /* Add the root node for the scene. */
-   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    /* Add the camera. */
    camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(camera, 30.0, 1.0, 1.0, 
100.0);
 
    camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(camera_node, camera);
    evas_canvas3d_node_position_set(camera_node, 0.0, 0.0, 2.5);
    evas_canvas3d_node_look_at_set(camera_node, EVAS_CANVAS3D_SPACE_PARENT, 
0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0);
@@ -154,7 +154,7 @@ main(void)
    evas_canvas3d_material_color_set(material, 
EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_material_shininess_set(material, 50.0);
 
-   mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   mesh_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    evas_canvas3d_node_member_add(root_node, mesh_node);
    evas_canvas3d_node_mesh_add(mesh_node, mesh);
diff --git a/src/examples/evas/evas-3d-ply.c b/src/examples/evas/evas-3d-ply.c
index d0e396c536..6de10dc91d 100644
--- a/src/examples/evas/evas-3d-ply.c
+++ b/src/examples/evas/evas-3d-ply.c
@@ -133,13 +133,13 @@ main(void)
    scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
 
    /* Add the root node for the scene. */
-   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    /* Add the camera. */
    camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(camera, 60.0, 1.0, 1.0, 
500.0);
 
-   camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(camera_node, camera);
    evas_canvas3d_node_member_add(root_node, camera_node);
    evas_canvas3d_node_position_set(camera_node, 15.0, 0.0, 0.0);
@@ -151,7 +151,7 @@ main(void)
    evas_canvas3d_light_specular_set(light, 1.0, 1.0, 1.0, 1.0);
    evas_canvas3d_light_directional_set(light, EINA_TRUE);
 
-   light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(light_node, light);
    evas_canvas3d_node_position_set(light_node, 1000.0, 0.0, 1000.0);
    evas_canvas3d_node_look_at_set(light_node, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0);
@@ -196,7 +196,7 @@ main(void)
              evas_canvas3d_mesh_shader_mode_set(mesh[i], draw_mode[(i % 8)]);
           }
 
-        mesh_node[i] = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+        mesh_node[i] = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
         evas_canvas3d_node_member_add(root_node, mesh_node[i]);
         evas_canvas3d_node_mesh_add(mesh_node[i], mesh[i]);
         evas_canvas3d_node_position_set(mesh_node[i], 0, ((i % 4) * 4) + ((i / 
16) * 1) - 6.5, (((i % 16) / 4) * 4) - 6);
diff --git a/src/examples/evas/evas-3d-proxy.c 
b/src/examples/evas/evas-3d-proxy.c
index 4ee8091a96..1c6cad6875 100644
--- a/src/examples/evas/evas-3d-proxy.c
+++ b/src/examples/evas/evas-3d-proxy.c
@@ -121,7 +121,7 @@ _camera_setup(Scene_Data *data)
    evas_canvas3d_camera_projection_perspective_set(data->camera, 30.0, 1.0, 
2.0, 50.0);
 
    data->camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 5.0);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -137,7 +137,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_specular_set(data->light, 1.0, 1.0, 1.0, 1.0);
 
    data->light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.0, 0.0, 10.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
@@ -174,7 +174,7 @@ _mesh_setup(Scene_Data *data)
    evas_canvas3d_mesh_frame_material_set(data->mesh, 0, data->material);
 
    data->mesh_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    evas_canvas3d_node_member_add(data->root_node, data->mesh_node);
    evas_canvas3d_node_mesh_add(data->mesh_node, data->mesh);
@@ -188,7 +188,7 @@ _scene_setup(Scene_Data *data)
    evas_canvas3d_scene_background_color_set(data->scene, 0.0, 0.0, 0.0, 0.0);
 
    data->root_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
diff --git a/src/examples/evas/evas-3d-shadows.c 
b/src/examples/evas/evas-3d-shadows.c
index 5571384456..9fd1e5441e 100644
--- a/src/examples/evas/evas-3d-shadows.c
+++ b/src/examples/evas/evas-3d-shadows.c
@@ -214,7 +214,7 @@ _sphere_setup(Body_3D *sphere)
 
    _body_material_set(sphere, 1, 0.0, 0.0);
 
-   sphere->node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(efl_added, 3.0, 3.0, 0.0));
+   sphere->node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH), 
evas_canvas3d_node_position_set(efl_added, 3.0, 3.0, 0.0));
    evas_canvas3d_node_mesh_add(sphere->node, sphere->mesh);
 }
 
@@ -231,7 +231,7 @@ _cone_setup(Body_3D *cone)
    _body_material_set(cone, 0.8, 0.5, 0.5);
 
    cone->node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_mesh_add(cone->node, cone->mesh);
    evas_canvas3d_node_orientation_angle_axis_set(cone->node, -90.0, 1.0, 0.0, 
0.0);
    evas_canvas3d_node_position_set(cone->node, -4.0, 0.0, -3.0);
@@ -250,7 +250,7 @@ _cylinder_setup(Body_3D *cylinder)
    _body_material_set(cylinder, 0.0, 0.0, 1.0);
 
    cylinder->node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_mesh_add(cylinder->node, cylinder->mesh);
    evas_canvas3d_node_orientation_angle_axis_set(cylinder->node, -90.0, 1.0, 
0.0, 0.0);
    evas_canvas3d_node_position_set(cylinder->node, -2.0, 3.0, 1.0);
@@ -298,7 +298,7 @@ _fence_setup(Body_3D *fence)
    evas_canvas3d_mesh_alpha_test_enable_set(fence->mesh, EINA_TRUE);
    evas_canvas3d_mesh_shader_mode_set(fence->mesh, 
EVAS_CANVAS3D_SHADER_MODE_NORMAL_MAP);
    fence->node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_mesh_add(fence->node, fence->mesh);
    evas_canvas3d_node_orientation_angle_axis_set(fence->node, -90.0, 1.0, 0.0, 
0.0);
    evas_canvas3d_node_scale_set(fence->node, 10.0, 10.0, 5.0);
@@ -317,7 +317,7 @@ _square_setup(Body_3D *square)
    _body_material_set(square, 0.4, 0.4, 0.4);
 
    square->node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_mesh_add(square->node, square->mesh);
    evas_canvas3d_node_position_set(square->node, 0.0, -1.0, 0.0);
    evas_canvas3d_node_scale_set(square->node, 30.0, 30.0, 30.0);
@@ -335,7 +335,7 @@ _box_setup(Body_3D *box)
 
    _body_material_set(box, 0, 1, 0);
 
-   box->node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   box->node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_mesh_add(box->node, box->mesh);
    evas_canvas3d_node_position_set(box->node, 3.0, 0.0, -3.0);
 }
@@ -363,7 +363,7 @@ _model_setup(Body_3D *model)
    evas_canvas3d_mesh_shader_mode_set(model->mesh, 
EVAS_CANVAS3D_SHADER_MODE_PHONG);
 
    model->node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_mesh_add(model->node, model->mesh);
    evas_canvas3d_node_scale_set(model->node, 0.1, 0.1, 0.1);
    evas_canvas3d_node_orientation_angle_axis_set(model->node, 120.0, -0.577, 
-0.577, -0.577);
@@ -394,7 +394,7 @@ _billboard_setup(Scene_Data *data)
    evas_canvas3d_mesh_blending_enable_set(data->billboard.mesh, EINA_TRUE);
    evas_canvas3d_mesh_blending_func_set(data->billboard.mesh, 
EVAS_CANVAS3D_BLEND_FUNC_SRC_ALPHA, 
EVAS_CANVAS3D_BLEND_FUNC_ONE_MINUS_SRC_ALPHA);
 
-   data->billboard.node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   data->billboard.node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_mesh_add(data->billboard.node, data->billboard.mesh);
    evas_canvas3d_node_position_set(data->billboard.node, 0.0, 2.0, 0.0);
    evas_canvas3d_node_scale_set(data->billboard.node, 2.2, 4.6, 4.0);
@@ -406,12 +406,12 @@ static void
 _camera_setup(Scene_Data *data)
 {
    data->camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
-   data->mediator = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   data->mediator = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    evas_canvas3d_camera_projection_perspective_set(data->camera, 50.0, 1.0, 
2.0, 100.0);
 
   data->camera_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
 
   evas_canvas3d_node_camera_set(data->camera_node, data->camera);
 
@@ -434,7 +434,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_projection_perspective_set(data->light, 40.0, 1.0, 2.0, 
1000.0);
 
    data->light_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 50.0, 50.0, 70.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 15.0, 0.0, -5.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
0.0, 1.0);
@@ -452,7 +452,7 @@ _scene_setup(Scene_Data *data)
    evas_canvas3d_scene_background_color_set(data->scene, BG_COLOR, 1);
 
    data->root_node =
-      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+      efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
 
    _camera_setup(data);
diff --git a/src/examples/evas/evas-3d-static-lod.c 
b/src/examples/evas/evas-3d-static-lod.c
index 4e3c3994e0..4db601c8d0 100644
--- a/src/examples/evas/evas-3d-static-lod.c
+++ b/src/examples/evas/evas-3d-static-lod.c
@@ -117,7 +117,7 @@ _camera_setup(Scene_Data *data)
 
    data->camera_node =
       efl_add(EVAS_CANVAS3D_NODE_CLASS, evas,
-                    evas_canvas3d_node_constructor(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+                    evas_canvas3d_node_type_set(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_CAMERA));
    evas_canvas3d_node_camera_set(data->camera_node, data->camera);
    evas_canvas3d_node_position_set(data->camera_node, 0.0, 0.0, 300.0);
    evas_canvas3d_node_look_at_set(data->camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0,
@@ -135,7 +135,7 @@ _light_setup(Scene_Data *data)
 
    data->light_node =
       efl_add(EVAS_CANVAS3D_NODE_CLASS, evas,
-                    evas_canvas3d_node_constructor(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+                    evas_canvas3d_node_type_set(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_LIGHT));
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, 0.0, 0.0, 300.0);
    evas_canvas3d_node_look_at_set(data->light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0,
@@ -161,16 +161,16 @@ _mesh_setup(Scene_Data *data)
 
    data->lod_mesh_node1 =
          efl_add(EVAS_CANVAS3D_NODE_CLASS, evas,
-                evas_canvas3d_node_constructor(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_MESH));
+                evas_canvas3d_node_type_set(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_MESH));
    evas_canvas3d_node_position_set(data->lod_mesh_node1, 2.0, 0.0, 0.0);
 
    data->lod_mesh_node2 =
          efl_add(EVAS_CANVAS3D_NODE_CLASS, evas,
-                evas_canvas3d_node_constructor(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_MESH));
+                evas_canvas3d_node_type_set(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    data->complex_node =
          efl_add(EVAS_CANVAS3D_NODE_CLASS, evas,
-                evas_canvas3d_node_constructor(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_NODE));
+                evas_canvas3d_node_type_set(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_NODE));
    evas_canvas3d_node_scale_set(data->complex_node, 30.0, 30.0, 30.0);
 
    /* Setup mesh. One model, two meshes object with different lod distances.*/
@@ -210,7 +210,7 @@ _scene_setup(Scene_Data *data)
 
    data->root_node =
       efl_add(EVAS_CANVAS3D_NODE_CLASS, evas,
-                    evas_canvas3d_node_constructor(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_NODE));
+                    evas_canvas3d_node_type_set(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
diff --git a/src/examples/evas/shooter/evas-3d-shooter-header.c 
b/src/examples/evas/shooter/evas-3d-shooter-header.c
index 5c3dfaf8de..8053f53cbb 100644
--- a/src/examples/evas/shooter/evas-3d-shooter-header.c
+++ b/src/examples/evas/shooter/evas-3d-shooter-header.c
@@ -29,8 +29,8 @@ _camera_setup(Scene_Data *data)
    data->camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
    evas_canvas3d_camera_projection_perspective_set(data->camera, 65.0, 1.0, 
1.0, 300.0);
 
-   data->mediator_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
-   data->camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   data->mediator_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   data->camera_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
 
    evas_canvas3d_node_member_add(data->root_node, data->mediator_node);
    evas_canvas3d_node_member_add(data->mediator_node, data->camera_node);
@@ -50,7 +50,7 @@ _light_setup(Scene_Data *data)
    evas_canvas3d_light_specular_set(data->light, 0.2, 0.2, 0.2, 1.0);
    evas_canvas3d_light_projection_perspective_set(data->light, 100.0, 1.0, 
1.0, 200.0);
 
-   data->light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   data->light_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
 
    evas_canvas3d_node_light_set(data->light_node, data->light);
    evas_canvas3d_node_position_set(data->light_node, -30.0, 70.0, 0.0);
diff --git a/src/examples/evas/shooter/evas-3d-shooter.c 
b/src/examples/evas/shooter/evas-3d-shooter.c
index 74f6584be9..ae6bedee7f 100644
--- a/src/examples/evas/shooter/evas-3d-shooter.c
+++ b/src/examples/evas/shooter/evas-3d-shooter.c
@@ -1004,7 +1004,7 @@ _scene_setup(Scene_Data *data)
    evas_canvas3d_scene_size_set(global_scene, WIDTH, HEIGHT);
    evas_canvas3d_scene_background_color_set(global_scene, 0.5, 0.5, 0.9, 0.0);
 
-   data->root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   data->root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    _camera_setup(data);
    _light_setup(data);
@@ -1069,7 +1069,7 @@ _scene_setup(Scene_Data *data)
           }
      }
 
-   data->carp_mediator_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
+   data->carp_mediator_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_type_set(efl_added, EVAS_CANVAS3D_NODE_TYPE_MESH));
 
    evas_canvas3d_node_member_add(data->carp_mediator_node, 
data->mesh_node_carpet);
 
diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c
index 34492c847b..a458b77970 100644
--- a/src/lib/edje/edje_load.c
+++ b/src/lib/edje/edje_load.c
@@ -1086,7 +1086,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const 
Eina_File *file, const ch
                           Evas_Canvas3D_Material *material = NULL;
                           Edje_Part_Description_Mesh_Node *pd_mesh_node;
 
-                          rp->node = efl_add(EVAS_CANVAS3D_NODE_CLASS, 
ed->base.evas, evas_canvas3d_node_constructor(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_MESH));
+                          rp->node = efl_add(EVAS_CANVAS3D_NODE_CLASS, 
ed->base.evas, evas_canvas3d_node_type_set(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_MESH));
 
                           mesh = efl_add(EVAS_CANVAS3D_MESH_CLASS, 
ed->base.evas);
                           evas_canvas3d_node_mesh_add(rp->node, mesh);
@@ -1119,7 +1119,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const 
Eina_File *file, const ch
                        {
                           Evas_Canvas3D_Light *light = NULL;
 
-                          rp->node = efl_add(EVAS_CANVAS3D_NODE_CLASS, 
ed->base.evas, evas_canvas3d_node_constructor(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+                          rp->node = efl_add(EVAS_CANVAS3D_NODE_CLASS, 
ed->base.evas, evas_canvas3d_node_type_set(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_LIGHT));
                           light = efl_add(EVAS_CANVAS3D_LIGHT_CLASS, 
ed->base.evas);
                           evas_canvas3d_node_light_set(rp->node, light);
 
@@ -1131,7 +1131,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const 
Eina_File *file, const ch
                        {
                           Evas_Canvas3D_Camera *camera = NULL;
 
-                          rp->node = efl_add(EVAS_CANVAS3D_NODE_CLASS, 
ed->base.evas, evas_canvas3d_node_constructor(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+                          rp->node = efl_add(EVAS_CANVAS3D_NODE_CLASS, 
ed->base.evas, evas_canvas3d_node_type_set(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_CAMERA));
                           camera = efl_add(EVAS_CANVAS3D_CAMERA_CLASS, 
ed->base.evas);
                           evas_canvas3d_node_camera_set(rp->node, camera);
 
@@ -2670,7 +2670,7 @@ edje_3d_object_add(Evas_Object *obj, Eo **root_node, Eo 
*scene)
 
    if (*root_node == NULL)
      *root_node = efl_add(EVAS_CANVAS3D_NODE_CLASS, ed->base.evas,
-                                 evas_canvas3d_node_constructor(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_NODE));
+                                 evas_canvas3d_node_type_set(efl_added, 
EVAS_CANVAS3D_NODE_TYPE_NODE));
 
    if (scene == NULL)
      scene = efl_add(EVAS_CANVAS3D_SCENE_CLASS, ed->base.evas);
diff --git a/src/lib/evas/canvas/evas_canvas3d_node.c 
b/src/lib/evas/canvas/evas_canvas3d_node.c
index 0760b231be..9e194397a2 100644
--- a/src/lib/evas/canvas/evas_canvas3d_node.c
+++ b/src/lib/evas/canvas/evas_canvas3d_node.c
@@ -1025,11 +1025,27 @@ evas_canvas3d_node_add(Evas *e, Evas_Canvas3D_Node_Type 
type)
    MAGIC_CHECK(e, Evas, MAGIC_EVAS);
    return NULL;
    MAGIC_CHECK_END();
-   return efl_add(MY_CLASS, e, evas_canvas3d_node_constructor(efl_added, 
type));
+   return efl_add(MY_CLASS, e, evas_canvas3d_node_type_set(efl_added, type));
 }
 
-EOLIAN static void
-_evas_canvas3d_node_constructor(Eo *obj, Evas_Canvas3D_Node_Data *pd, 
Evas_Canvas3D_Node_Type type)
+EOLIAN static Efl_Object *
+_evas_canvas3d_node_efl_object_finalize(Eo *obj, Evas_Canvas3D_Node_Data *pd)
+{
+   if (pd->type == EVAS_CANVAS3D_NODE_TYPE_MESH)
+     {
+        pd->data.mesh.node_meshes = 
eina_hash_pointer_new(_node_mesh_free_func);
+        if (pd->data.mesh.node_meshes == NULL)
+          {
+             ERR("Failed to create node mesh table.");
+             _node_free(obj);
+             return NULL;
+          }
+     }
+   return obj;
+}
+
+EOLIAN static Efl_Object *
+_evas_canvas3d_node_efl_object_constructor(Eo *obj, Evas_Canvas3D_Node_Data 
*pd)
 {
    evas_canvas3d_object_type_set(obj, EVAS_CANVAS3D_OBJECT_TYPE_NODE);
 
@@ -1049,18 +1065,7 @@ _evas_canvas3d_node_constructor(Eo *obj, 
Evas_Canvas3D_Node_Data *pd, Evas_Canva
    pd->lod = EINA_FALSE;
 
    evas_box3_set(&pd->aabb, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
-
-   pd->type = type;
-
-   if (type == EVAS_CANVAS3D_NODE_TYPE_MESH)
-     {
-        pd->data.mesh.node_meshes = 
eina_hash_pointer_new(_node_mesh_free_func);
-        if (pd->data.mesh.node_meshes == NULL)
-          {
-             ERR("Failed to create node mesh table.");
-             _node_free(obj);
-          }
-     }
+   return obj;
 }
 
 EOLIAN static void
@@ -1072,12 +1077,18 @@ _evas_canvas3d_node_efl_object_destructor(Eo *obj, 
Evas_Canvas3D_Node_Data *pd E
 }
 
 EOLIAN static Evas_Canvas3D_Node_Type
-_evas_canvas3d_node_type_get(const Eo *obj EINA_UNUSED, 
Evas_Canvas3D_Node_Data *pd)
+_evas_canvas3d_node_node_type_get(Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data 
*pd)
 {
    return pd->type;
 }
 
 EOLIAN static void
+_evas_canvas3d_node_node_type_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data 
*pd, Evas_Canvas3D_Node_Type type)
+{
+   pd->type = type;
+}
+
+EOLIAN static void
 _evas_canvas3d_node_member_add(Eo *obj, Evas_Canvas3D_Node_Data *pd, 
Evas_Canvas3D_Node *member)
 {
    if (obj == member)
diff --git a/src/lib/evas/canvas/evas_canvas3d_node.eo 
b/src/lib/evas/canvas/evas_canvas3d_node.eo
index ca4e155824..98f27483f4 100644
--- a/src/lib/evas/canvas/evas_canvas3d_node.eo
+++ b/src/lib/evas/canvas/evas_canvas3d_node.eo
@@ -5,18 +5,19 @@ class Evas.Canvas3D.Node (Evas.Canvas3D.Object)
    [[Evas 3D canvas node class]]
    data: Evas_Canvas3D_Node_Data;
    methods {
-      constructor {
-         [[Constructor.]]
-         legacy: null;
-         params {
-            @in type: Evas.Canvas3D.Node_Type; [[Node type]]
-         }
-      }
-      type_get @const {
+      @property node_type {
          [[Get the type of the given node.
 
            See also @Evas.Canvas3D.Node.member_add.]]
-         return: Evas.Canvas3D.Node_Type ; [[The type of the given node.]]
+         set {
+            [[Type can only be set before finalize.]]
+         }
+         get {
+            [[If the object is not node object, returns $unknown.]]
+         }
+         values {
+            type: Evas.Canvas3D.Node_Type(Evas.Canvas3D.Node_Type.unknown); 
[[Node type]]
+         }
       }
       member_add {
          [[Add a member node to the given node.
@@ -383,13 +384,12 @@ class Evas.Canvas3D.Node (Evas.Canvas3D.Object)
       }
    }
    implements {
+      Efl.Object.constructor;
       Efl.Object.destructor;
+      Efl.Object.finalize;
       Evas.Canvas3D.Object.update_notify;
       Evas.Canvas3D.Object.change_notify;
       Evas.Canvas3D.Object.callback_register;
       Evas.Canvas3D.Object.callback_unregister;
    }
-   constructors {
-      .constructor;
-   }
 }

-- 


Reply via email to