examples: fix changes in Evas.Canvas3D namespace.

This commit is contained in:
Cedric BAIL 2015-06-22 12:30:11 +02:00
parent 5583a93c6d
commit 356220f6d7
7 changed files with 525 additions and 525 deletions

View File

@ -74,17 +74,17 @@ static Evas_Object *menu = NULL;
static Elm_Object_Item *menu_it = NULL;
static Ecore_Animator *animator = NULL;
static Evas_3D_Scene *scene = NULL;
static Evas_3D_Node *root_node = NULL;
static Evas_3D_Node *camera_node = NULL;
static Evas_3D_Camera *camera = NULL;
static Evas_3D_Node *light_node = NULL;
static Evas_3D_Light *light = NULL;
static Evas_3D_Node *mesh_node = NULL;
static Evas_3D_Mesh *mesh = NULL;
static Evas_3D_Material *material = NULL;
static Evas_3D_Texture *texture_diffuse = NULL;
static Evas_3D_Texture *texture_normal = NULL;
static Evas_Canvas3D_Scene *scene = NULL;
static Evas_Canvas3D_Node *root_node = NULL;
static Evas_Canvas3D_Node *camera_node = NULL;
static Evas_Canvas3D_Camera *camera = NULL;
static Evas_Canvas3D_Node *light_node = NULL;
static Evas_Canvas3D_Light *light = NULL;
static Evas_Canvas3D_Node *mesh_node = NULL;
static Evas_Canvas3D_Mesh *mesh = NULL;
static Evas_Canvas3D_Material *material = NULL;
static Evas_Canvas3D_Texture *texture_diffuse = NULL;
static Evas_Canvas3D_Texture *texture_normal = NULL;
static int vertex_count = 0;
static int index_count = 0;
@ -225,8 +225,8 @@ animate_scene(void *data)
angle += 0.05;
eo_do((Evas_3D_Node *)data,
evas_3d_node_orientation_angle_axis_set(angle, 0.0, 1.0, 0.0));
eo_do((Evas_Canvas3D_Node *)data,
evas_canvas3d_node_orientation_angle_axis_set(angle, 0.0, 1.0, 0.0));
/* Rotate */
if (angle > 360.0)
@ -382,7 +382,7 @@ change_to_2d_map(void)
elm_map_zoom_mode_set(map, ELM_MAP_ZOOM_MODE_MANUAL);
elm_map_paused_set(map, EINA_TRUE);
eo_do(texture_diffuse, evas_3d_texture_source_visible_set(EINA_TRUE));
eo_do(texture_diffuse, evas_canvas3d_texture_source_visible_set(EINA_TRUE));
evas_object_hide(image);
@ -416,8 +416,8 @@ zoom_factor_set(double new_zoom_factor)
double s, t;
double lon, lat;
vec3 camera_pos_unit_vec;
Evas_3D_Node *n;
Evas_3D_Mesh *m;
Evas_Canvas3D_Node *n;
Evas_Canvas3D_Mesh *m;
Evas_Coord src_x, src_y;
Evas_Coord src_size;
@ -433,7 +433,7 @@ zoom_factor_set(double new_zoom_factor)
if (cur_zoom_factor < MIN_2D_ZOOM_FACTOR)
{
zoom_factor = MIN_2D_ZOOM_FACTOR;
eo_do(scene, evas_3d_scene_pick(IMG_SIZE / 2, IMG_SIZE / 2,
eo_do(scene, evas_canvas3d_scene_pick(IMG_SIZE / 2, IMG_SIZE / 2,
&n, &m, &s, &t));
src_size = IMG_SIZE * cur_zoom_factor;
src_x = (Evas_Coord)(src_size * s);
@ -465,13 +465,13 @@ zoom_factor_set(double new_zoom_factor)
evas_object_resize(map, src_size, src_size);
/* Apply updated texture source. */
texture_diffuse = eo_add(EVAS_3D_TEXTURE_CLASS, evas);
texture_diffuse = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, evas);
eo_do(texture_diffuse,
evas_3d_texture_source_set(map),
evas_3d_texture_source_visible_set(EINA_FALSE));
evas_canvas3d_texture_source_set(map),
evas_canvas3d_texture_source_visible_set(EINA_FALSE));
eo_do(material,
evas_3d_material_texture_set(EVAS_3D_MATERIAL_DIFFUSE, texture_diffuse));
evas_canvas3d_material_texture_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, texture_diffuse));
/* Update camera position. */
vec3_normalize(&camera_pos_unit_vec, &camera_pos);
@ -480,7 +480,7 @@ zoom_factor_set(double new_zoom_factor)
camera_pos.z = (camera_pos_unit_vec.z * MAX_CAMERA_DISTANCE) / zoom_factor;
eo_do(camera_node,
evas_3d_node_position_set(camera_pos.x, camera_pos.y, camera_pos.z));
evas_canvas3d_node_position_set(camera_pos.x, camera_pos.y, camera_pos.z));
}
/* Update zoom slider. */
@ -510,14 +510,14 @@ zoom_to_2d_map_cb(void *data,
{
double s, t;
double lon, lat;
Evas_3D_Node *n;
Evas_3D_Mesh *m;
Evas_Canvas3D_Node *n;
Evas_Canvas3D_Mesh *m;
Evas_Coord src_x, src_y;
Evas_Coord src_size;
if (map_dimension_state == MAP_DIMENSION_STATE_2D) return;
eo_do(scene, evas_3d_scene_pick(mouse_down_pos.x, mouse_down_pos.y, &n, &m, &s, &t));
eo_do(scene, evas_canvas3d_scene_pick(mouse_down_pos.x, mouse_down_pos.y, &n, &m, &s, &t));
src_size = (Evas_Coord)(IMG_SIZE * zoom_factor);
src_x = (Evas_Coord)(src_size * s);
src_y = (Evas_Coord)(src_size * t);
@ -555,8 +555,8 @@ submenu_info_add(Elm_Object_Item *parent)
char buf[50];
double s, t;
double lon, lat;
Evas_3D_Node *n;
Evas_3D_Mesh *m;
Evas_Canvas3D_Node *n;
Evas_Canvas3D_Mesh *m;
Evas_Coord src_x, src_y;
Evas_Coord src_size;
@ -564,7 +564,7 @@ submenu_info_add(Elm_Object_Item *parent)
if (map_dimension_state == MAP_DIMENSION_STATE_3D)
{
eo_do(scene, evas_3d_scene_pick(mouse_down_pos.x, mouse_down_pos.y, &n, &m, &s, &t));
eo_do(scene, evas_canvas3d_scene_pick(mouse_down_pos.x, mouse_down_pos.y, &n, &m, &s, &t));
src_size = (Evas_Coord) (IMG_SIZE * zoom_factor);
src_x = (Evas_Coord)(src_size * s);
src_y = (Evas_Coord)(src_size * t);
@ -611,8 +611,8 @@ map_mouse_down_cb(void *data,
int scene_w, scene_h;
double scene_x, scene_y;
double s, t;
Evas_3D_Node *n;
Evas_3D_Mesh *m;
Evas_Canvas3D_Node *n;
Evas_Canvas3D_Mesh *m;
Eina_Bool pick;
mouse_down_pos.x = ev->canvas.x;
@ -623,12 +623,12 @@ map_mouse_down_cb(void *data,
obj_x = ev->canvas.x - x;
obj_y = ev->canvas.y - y;
eo_do(scene, evas_3d_scene_size_get(&scene_w, &scene_h));
eo_do(scene, evas_canvas3d_scene_size_get(&scene_w, &scene_h));
scene_x = obj_x * scene_w / (double)w;
scene_y = obj_y * scene_h / (double)h;
eo_do(scene, pick = evas_3d_scene_pick(scene_x, scene_y, &n, &m, &s, &t));
eo_do(scene, pick = evas_canvas3d_scene_pick(scene_x, scene_y, &n, &m, &s, &t));
if (pick)
printf("Picked : ");
else
@ -674,8 +674,8 @@ mouse_down_cb(void *data,
int scene_w, scene_h;
double scene_x, scene_y;
double s, t;
Evas_3D_Node *n;
Evas_3D_Mesh *m;
Evas_Canvas3D_Node *n;
Evas_Canvas3D_Mesh *m;
Eina_Bool pick;
mouse_down_pos.x = ev->canvas.x;
@ -693,12 +693,12 @@ mouse_down_cb(void *data,
obj_x = ev->canvas.x - x;
obj_y = ev->canvas.y - y;
eo_do(scene, evas_3d_scene_size_get(&scene_w, &scene_h));
eo_do(scene, evas_canvas3d_scene_size_get(&scene_w, &scene_h));
scene_x = obj_x * scene_w / (double)w;
scene_y = obj_y * scene_h / (double)h;
eo_do(scene, pick = evas_3d_scene_pick(scene_x, scene_y, &n, &m, &s, &t));
eo_do(scene, pick = evas_canvas3d_scene_pick(scene_x, scene_y, &n, &m, &s, &t));
if (pick)
printf("Picked : ");
else
@ -764,17 +764,17 @@ mouse_move_cb(void *data,
vec3_scale(&camera_pos, &camera_pos_unit_vec, distance_to_origin);
eo_do(camera_node,
evas_3d_node_position_set(camera_pos.x, camera_pos.y, camera_pos.z),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, camera_up_vec.x, camera_up_vec.y, camera_up_vec.z));
evas_canvas3d_node_position_set(camera_pos.x, camera_pos.y, camera_pos.z),
evas_canvas3d_node_look_at_set(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));
if (elm_check_state_get(light_toggle))
{
/* Update light position as the same as camera position. */
eo_do(light_node,
evas_3d_node_position_set(camera_pos.x, camera_pos.y, camera_pos.z),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, camera_up_vec.x, camera_up_vec.y, camera_up_vec.z));
evas_canvas3d_node_position_set(camera_pos.x, camera_pos.y, camera_pos.z),
evas_canvas3d_node_look_at_set(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));
}
}
}
@ -791,8 +791,8 @@ mouse_up_cb(void *data,
int scene_w, scene_h;
double scene_x, scene_y;
double s, t;
Evas_3D_Node *n;
Evas_3D_Mesh *m;
Evas_Canvas3D_Node *n;
Evas_Canvas3D_Mesh *m;
Eina_Bool pick;
evas_object_geometry_get(o, &x, &y, &w, &h);
@ -800,12 +800,12 @@ mouse_up_cb(void *data,
obj_x = ev->canvas.x - x;
obj_y = ev->canvas.y - y;
eo_do(scene, evas_3d_scene_size_get(&scene_w, &scene_h));
eo_do(scene, evas_canvas3d_scene_size_get(&scene_w, &scene_h));
scene_x = obj_x * scene_w / (double)w;
scene_y = obj_y * scene_h / (double)h;
eo_do(scene, pick = evas_3d_scene_pick(scene_x, scene_y, &n, &m, &s, &t));
eo_do(scene, pick = evas_canvas3d_scene_pick(scene_x, scene_y, &n, &m, &s, &t));
if (pick)
printf("Picked : ");
else
@ -848,29 +848,29 @@ mouse_wheel_cb(void *data,
static void
skybox_setup(void)
{
Evas_3D_Node *skybox_mesh_node;
Evas_3D_Mesh *skybox_mesh;
Evas_3D_Material *skybox_material;
Evas_3D_Texture *skybox_texture_diffuse;
Evas_Canvas3D_Node *skybox_mesh_node;
Evas_Canvas3D_Mesh *skybox_mesh;
Evas_Canvas3D_Material *skybox_material;
Evas_Canvas3D_Texture *skybox_texture_diffuse;
Evas_Object *skybox_image;
char buf[PATH_MAX];
skybox_mesh = eo_add(EVAS_3D_MESH_CLASS, evas);
skybox_mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
eo_do(skybox_mesh,
evas_3d_mesh_vertex_count_set(24),
evas_3d_mesh_frame_add(0),
evas_canvas3d_mesh_vertex_count_set(24),
evas_canvas3d_mesh_frame_add(0),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_POSITION,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_POSITION,
12 * sizeof(float), &skybox_vertices[0]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_NORMAL,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_NORMAL,
12 * sizeof(float), &skybox_vertices[3]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_COLOR,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_COLOR,
12 * sizeof(float), &skybox_vertices[6]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TEXCOORD,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_TEXCOORD,
12 * sizeof(float), &skybox_vertices[10]),
evas_3d_mesh_index_data_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT, 36, &skybox_indices[0]),
evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES));
evas_canvas3d_mesh_index_data_set(EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT, 36, &skybox_indices[0]),
evas_canvas3d_mesh_vertex_assembly_set(EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES));
/* Set skybox texture source image. */
skybox_image = elm_image_add(win);
@ -880,32 +880,32 @@ skybox_setup(void)
evas_object_show(skybox_image);
/* Set skybox texture material. */
skybox_material = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
eo_do(skybox_mesh, evas_3d_mesh_frame_material_set(0, skybox_material));
skybox_material = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
eo_do(skybox_mesh, evas_canvas3d_mesh_frame_material_set(0, skybox_material));
skybox_texture_diffuse = eo_add(EVAS_3D_TEXTURE_CLASS, evas);
skybox_texture_diffuse = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, evas);
eo_do(skybox_texture_diffuse,
evas_3d_texture_source_set(skybox_image),
evas_3d_texture_source_visible_set(EINA_FALSE));
evas_canvas3d_texture_source_set(skybox_image),
evas_canvas3d_texture_source_visible_set(EINA_FALSE));
eo_do(skybox_material,
evas_3d_material_texture_set(EVAS_3D_MATERIAL_DIFFUSE, skybox_texture_diffuse),
evas_canvas3d_material_texture_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, skybox_texture_diffuse),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.1, 0.1, 0.1, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 1.0, 1.0, 1.0, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 0.1, 0.1, 0.1, 1.0),
evas_3d_material_shininess_set(50.0));
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, 0.1, 0.1, 0.1, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, 1.0, 1.0, 1.0, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, 0.1, 0.1, 0.1, 1.0),
evas_canvas3d_material_shininess_set(50.0));
skybox_mesh_node = eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH));
eo_do(root_node, evas_3d_node_member_add(skybox_mesh_node));
eo_do(skybox_mesh_node, evas_3d_node_mesh_add(skybox_mesh));
eo_do(skybox_mesh, evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_DIFFUSE));
skybox_mesh_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_MESH));
eo_do(root_node, evas_canvas3d_node_member_add(skybox_mesh_node));
eo_do(skybox_mesh_node, evas_canvas3d_node_mesh_add(skybox_mesh));
eo_do(skybox_mesh, evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_DIFFUSE));
}
static void
@ -943,8 +943,8 @@ static void
camera_setup(void)
{
/* Add the camera. */
camera = eo_add(EVAS_3D_CAMERA_CLASS, evas);
eo_do(camera, evas_3d_camera_projection_perspective_set(60.0, 1.0, 1.0, 100.0));
camera = eo_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
eo_do(camera, evas_canvas3d_camera_projection_perspective_set(60.0, 1.0, 1.0, 100.0));
/* Set camera position. */
camera_pos.x = 0.0;
@ -961,33 +961,33 @@ camera_setup(void)
camera_right_vec.y = 0.0;
camera_right_vec.z = 0.0;
camera_node = eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_CAMERA));
camera_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_CAMERA));
eo_do(camera_node,
evas_3d_node_camera_set(camera),
evas_3d_node_position_set(camera_pos.x, camera_pos.y, camera_pos.z),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, camera_up_vec.x, camera_up_vec.y, camera_up_vec.z));
eo_do(root_node, evas_3d_node_member_add(camera_node));
evas_canvas3d_node_camera_set(camera),
evas_canvas3d_node_position_set(camera_pos.x, camera_pos.y, camera_pos.z),
evas_canvas3d_node_look_at_set(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));
eo_do(root_node, evas_canvas3d_node_member_add(camera_node));
}
static void
light_setup(void)
{
light = eo_add(EVAS_3D_LIGHT_CLASS, evas);
light = eo_add(EVAS_CANVAS3D_LIGHT_CLASS, evas);
eo_do(light,
evas_3d_light_ambient_set(0.2, 0.2, 0.2, 1.0),
evas_3d_light_diffuse_set(1.0, 1.0, 1.0, 1.0),
evas_3d_light_specular_set(0.2, 0.2, 0.2, 1.0));
evas_canvas3d_light_ambient_set(0.2, 0.2, 0.2, 1.0),
evas_canvas3d_light_diffuse_set(1.0, 1.0, 1.0, 1.0),
evas_canvas3d_light_specular_set(0.2, 0.2, 0.2, 1.0));
light_node = eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_LIGHT));
light_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_LIGHT));
eo_do(light_node,
evas_3d_node_light_set(light),
evas_3d_node_position_set(0.0, 0.0, MAX_CAMERA_DISTANCE),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(root_node, evas_3d_node_member_add(light_node));
evas_canvas3d_node_light_set(light),
evas_canvas3d_node_position_set(0.0, 0.0, MAX_CAMERA_DISTANCE),
evas_canvas3d_node_look_at_set(EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(root_node, evas_canvas3d_node_member_add(light_node));
}
static void
@ -996,57 +996,57 @@ mesh_setup(void)
/* Create a sphere mesh. */
sphere_init(50);
mesh = eo_add(EVAS_3D_MESH_CLASS, evas);
mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
eo_do(mesh,
evas_3d_mesh_vertex_count_set(vertex_count),
evas_3d_mesh_frame_add(0),
evas_canvas3d_mesh_vertex_count_set(vertex_count),
evas_canvas3d_mesh_frame_add(0),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_POSITION,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_POSITION,
sizeof(vertex), &vertices[0].position),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_NORMAL,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_NORMAL,
sizeof(vertex), &vertices[0].normal),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TANGENT,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_TANGENT,
sizeof(vertex), &vertices[0].tangent),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_COLOR,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_COLOR,
sizeof(vertex), &vertices[0].color),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TEXCOORD,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_TEXCOORD,
sizeof(vertex), &vertices[0].texcoord),
evas_3d_mesh_index_data_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT, index_count, &indices[0]),
evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES));
evas_canvas3d_mesh_index_data_set(EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT, index_count, &indices[0]),
evas_canvas3d_mesh_vertex_assembly_set(EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES));
material = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
eo_do(mesh, evas_3d_mesh_frame_material_set(0, material));
material = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
eo_do(mesh, evas_canvas3d_mesh_frame_material_set(0, material));
texture_diffuse = eo_add(EVAS_3D_TEXTURE_CLASS, evas);
texture_diffuse = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, evas);
eo_do(texture_diffuse,
evas_3d_texture_source_set(map),
evas_3d_texture_source_visible_set(EINA_FALSE));
evas_canvas3d_texture_source_set(map),
evas_canvas3d_texture_source_visible_set(EINA_FALSE));
texture_normal = eo_add(EVAS_3D_TEXTURE_CLASS, evas);
texture_normal = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, evas);
eo_do(texture_normal,
evas_3d_texture_source_set(normal_map),
evas_3d_texture_source_visible_set(EINA_FALSE));
evas_canvas3d_texture_source_set(normal_map),
evas_canvas3d_texture_source_visible_set(EINA_FALSE));
eo_do(material,
evas_3d_material_texture_set(EVAS_3D_MATERIAL_DIFFUSE, texture_diffuse),
evas_3d_material_texture_set(EVAS_3D_MATERIAL_NORMAL, texture_normal),
evas_canvas3d_material_texture_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, texture_diffuse),
evas_canvas3d_material_texture_set(EVAS_CANVAS3D_MATERIAL_NORMAL, texture_normal),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_NORMAL, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_NORMAL, EINA_TRUE),
evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.1, 0.1, 0.1, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 1.0, 1.0, 1.0, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 0.1, 0.1, 0.1, 1.0),
evas_3d_material_shininess_set(50.0));
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, 0.1, 0.1, 0.1, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, 1.0, 1.0, 1.0, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, 0.1, 0.1, 0.1, 1.0),
evas_canvas3d_material_shininess_set(50.0));
mesh_node = eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH));
eo_do(root_node, evas_3d_node_member_add(mesh_node));
eo_do(mesh_node, evas_3d_node_mesh_add(mesh));
eo_do(mesh, evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_NORMAL_MAP));
mesh_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_MESH));
eo_do(root_node, evas_canvas3d_node_member_add(mesh_node));
eo_do(mesh_node, evas_canvas3d_node_mesh_add(mesh));
eo_do(mesh, evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_NORMAL_MAP));
}
static void
@ -1117,17 +1117,17 @@ light_toggle_changed_cb(void *data,
{
/* Set light position as the same as camera position. */
eo_do(light_node,
evas_3d_node_position_set(camera_pos.x, camera_pos.y, camera_pos.z),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, camera_up_vec.x, camera_up_vec.y, camera_up_vec.z));
evas_canvas3d_node_position_set(camera_pos.x, camera_pos.y, camera_pos.z),
evas_canvas3d_node_look_at_set(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));
}
else
{
/* Set light position to default position. */
eo_do(light_node,
evas_3d_node_position_set(0.0, 0.0, MAX_CAMERA_DISTANCE),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0));
evas_canvas3d_node_position_set(0.0, 0.0, MAX_CAMERA_DISTANCE),
evas_canvas3d_node_look_at_set(EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0));
}
}
@ -1212,11 +1212,11 @@ elm_main(int argc, char **argv)
evas_object_event_callback_add(image, EVAS_CALLBACK_MOUSE_WHEEL, mouse_wheel_cb, NULL);
/* Add a scene object. */
scene = eo_add(EVAS_3D_SCENE_CLASS, evas);
scene = eo_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
/* Add a root node for the scene. */
root_node = eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_NODE));
root_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_NODE));
skybox_setup();
texture_source_setup();
@ -1226,9 +1226,9 @@ elm_main(int argc, char **argv)
/* Set up scene. */
eo_do(scene,
evas_3d_scene_root_node_set(root_node),
evas_3d_scene_camera_node_set(camera_node),
evas_3d_scene_size_set(WIDTH, HEIGHT));
evas_canvas3d_scene_root_node_set(root_node),
evas_canvas3d_scene_camera_node_set(camera_node),
evas_canvas3d_scene_size_set(WIDTH, HEIGHT));
eo_do(image, evas_obj_image_scene_set(scene));
/* Add a layout for controlers. */

View File

@ -106,8 +106,8 @@ _stop_scene(void *data,
void *event_info)
{
Evas_Event_Mouse_Down *ev = event_info;
Evas_3D_Node *n;
Evas_3D_Mesh *m;
Evas_Canvas3D_Node *n;
Evas_Canvas3D_Mesh *m;
Evas_Real s, t;
Scene_Data *d = (Scene_Data *)data;
@ -116,11 +116,11 @@ _stop_scene(void *data,
Eina_Bool ret;
if (eo_do_ret(d->scene, ret,
evas_3d_scene_pick(ev->canvas.x, ev->canvas.y, &n, &m, &s, &t)))
evas_canvas3d_scene_pick(ev->canvas.x, ev->canvas.y, &n, &m, &s, &t)))
{
d_angle = 0.0;
elm_object_signal_emit(btn, "mouse,down,1", "event");
eo_do(d->mesh_node, evas_3d_node_position_set(0.0, 0.0, -0.2));
eo_do(d->mesh_node, evas_canvas3d_node_position_set(0.0, 0.0, -0.2));
}
}
}
@ -135,7 +135,7 @@ _play_scene(void *data,
d_angle = 0.5;
elm_object_signal_emit(btn, "mouse,up,1", "event");
eo_do(d->mesh_node, evas_3d_node_position_set(0.0, 0.0, 0.0));
eo_do(d->mesh_node, evas_canvas3d_node_position_set(0.0, 0.0, 0.0));
}
@ -148,7 +148,7 @@ _animate_scene(void *data)
angle += d_angle;
eo_do(scene->mesh_node,
evas_3d_node_orientation_angle_axis_set(angle, 1.0, 1.0, 1.0));
evas_canvas3d_node_orientation_angle_axis_set(angle, 1.0, 1.0, 1.0));
/* Rotate */
if (angle > 360.0) angle -= 360.0f;
@ -159,113 +159,113 @@ _animate_scene(void *data)
static void
_camera_setup(Scene_Data *data)
{
data->camera = eo_add(EVAS_3D_CAMERA_CLASS, evas);
data->camera = eo_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
eo_do(data->camera,
evas_3d_camera_projection_perspective_set(20.0, 1.0, 2.0, 50.0));
evas_canvas3d_camera_projection_perspective_set(20.0, 1.0, 2.0, 50.0));
data->camera_node =
eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_CAMERA));
eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_CAMERA));
eo_do(data->camera_node,
evas_3d_node_camera_set(data->camera),
evas_3d_node_position_set(0.0, 0.0, 15.0),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, 0.0, -1.0, 0.0));
eo_do(data->root_node, evas_3d_node_member_add(data->camera_node));
evas_canvas3d_node_camera_set(data->camera),
evas_canvas3d_node_position_set(0.0, 0.0, 15.0),
evas_canvas3d_node_look_at_set(EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_CANVAS3D_SPACE_PARENT, 0.0, -1.0, 0.0));
eo_do(data->root_node, evas_canvas3d_node_member_add(data->camera_node));
}
static void
_light_setup(Scene_Data *data)
{
data->light = eo_add(EVAS_3D_LIGHT_CLASS, evas);
data->light = eo_add(EVAS_CANVAS3D_LIGHT_CLASS, evas);
eo_do(data->light,
evas_3d_light_ambient_set(0.2, 0.2, 0.2, 1.0),
evas_3d_light_diffuse_set(1.0, 1.0, 1.0, 1.0),
evas_3d_light_specular_set(1.0, 1.0, 1.0, 1.0));
evas_canvas3d_light_ambient_set(0.2, 0.2, 0.2, 1.0),
evas_canvas3d_light_diffuse_set(1.0, 1.0, 1.0, 1.0),
evas_canvas3d_light_specular_set(1.0, 1.0, 1.0, 1.0));
data->light_node =
eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_LIGHT));
eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_LIGHT));
eo_do(data->light_node,
evas_3d_node_light_set(data->light),
evas_3d_node_position_set(0.0, 0.0, 10.0),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(data->root_node, evas_3d_node_member_add(data->light_node));
evas_canvas3d_node_light_set(data->light),
evas_canvas3d_node_position_set(0.0, 0.0, 10.0),
evas_canvas3d_node_look_at_set(EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(data->root_node, evas_canvas3d_node_member_add(data->light_node));
}
static void
_mesh_setup(Scene_Data *data)
{
/* Setup material and texture as widget button. */
data->material = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
data->texture = eo_add(EVAS_3D_TEXTURE_CLASS, evas);
data->material = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
data->texture = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, evas);
eo_do(data->texture,
evas_3d_texture_source_set(btn),
evas_3d_texture_source_visible_set(EINA_FALSE));
evas_canvas3d_texture_source_set(btn),
evas_canvas3d_texture_source_visible_set(EINA_FALSE));
eo_do(data->material,
evas_3d_material_texture_set(EVAS_3D_MATERIAL_DIFFUSE, data->texture),
evas_canvas3d_material_texture_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, data->texture),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0),
evas_3d_material_shininess_set(100.0));
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0),
evas_canvas3d_material_shininess_set(100.0));
/* Setup mesh. */
data->mesh = eo_add(EVAS_3D_MESH_CLASS, evas);
data->mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
eo_do(data->mesh,
evas_3d_mesh_vertex_count_set(24),
evas_3d_mesh_frame_add(0),
evas_canvas3d_mesh_vertex_count_set(24),
evas_canvas3d_mesh_frame_add(0),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_POSITION,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_POSITION,
12 * sizeof(float), &cube_vertices[ 0]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_NORMAL,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_NORMAL,
12 * sizeof(float), &cube_vertices[ 3]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_COLOR,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_COLOR,
12 * sizeof(float), &cube_vertices[ 6]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TEXCOORD,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_TEXCOORD,
12 * sizeof(float), &cube_vertices[10]),
evas_3d_mesh_index_data_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT,
evas_canvas3d_mesh_index_data_set(EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT,
36, &cube_indices[0]),
evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_canvas3d_mesh_vertex_assembly_set(EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG),
evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_PHONG),
evas_3d_mesh_frame_material_set(0, data->material));
evas_canvas3d_mesh_frame_material_set(0, data->material));
data->mesh_node =
eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH));
eo_do(data->root_node, evas_3d_node_member_add(data->mesh_node));
eo_do(data->mesh_node, evas_3d_node_mesh_add(data->mesh));
eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_MESH));
eo_do(data->root_node, evas_canvas3d_node_member_add(data->mesh_node));
eo_do(data->mesh_node, evas_canvas3d_node_mesh_add(data->mesh));
}
static void
_scene_setup(Scene_Data *data)
{
data->scene = eo_add(EVAS_3D_SCENE_CLASS, evas);
data->scene = eo_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
eo_do(data->scene,
evas_3d_scene_size_set(WIDTH, HEIGHT);
evas_3d_scene_background_color_set(0.0, 0.0, 0.0, 0.0));
evas_canvas3d_scene_size_set(WIDTH, HEIGHT);
evas_canvas3d_scene_background_color_set(0.0, 0.0, 0.0, 0.0));
data->root_node =
eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_NODE));
eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_NODE));
_camera_setup(data);
_light_setup(data);
_mesh_setup(data);
eo_do(data->scene,
evas_3d_scene_root_node_set(data->root_node),
evas_3d_scene_camera_node_set(data->camera_node));
evas_canvas3d_scene_root_node_set(data->root_node),
evas_canvas3d_scene_camera_node_set(data->camera_node));
}
static void

View File

@ -110,7 +110,7 @@ _animate_scene(void *data)
angle += d_angle;
eo_do(scene->mesh_node,
evas_3d_node_orientation_angle_axis_set(angle, 1.0, 1.0, 1.0));
evas_canvas3d_node_orientation_angle_axis_set(angle, 1.0, 1.0, 1.0));
/* Rotate */
if (angle > 360.0) angle -= 360.0f;
@ -121,111 +121,111 @@ _animate_scene(void *data)
static void
_camera_setup(Scene_Data *data)
{
data->camera = eo_add(EVAS_3D_CAMERA_CLASS, evas);
data->camera = eo_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
eo_do(data->camera,
evas_3d_camera_projection_perspective_set(60.0, 1.0, 2.0, 50.0));
evas_canvas3d_camera_projection_perspective_set(60.0, 1.0, 2.0, 50.0));
data->camera_node =
eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_CAMERA));
eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_CAMERA));
eo_do(data->camera_node,
evas_3d_node_camera_set(data->camera),
evas_3d_node_position_set(0.0, 0.0, 10.0),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(data->root_node, evas_3d_node_member_add(data->camera_node));
evas_canvas3d_node_camera_set(data->camera),
evas_canvas3d_node_position_set(0.0, 0.0, 10.0),
evas_canvas3d_node_look_at_set(EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(data->root_node, evas_canvas3d_node_member_add(data->camera_node));
}
static void
_light_setup(Scene_Data *data)
{
data->light = eo_add(EVAS_3D_LIGHT_CLASS, evas);
data->light = eo_add(EVAS_CANVAS3D_LIGHT_CLASS, evas);
eo_do(data->light,
evas_3d_light_ambient_set(0.2, 0.2, 0.2, 1.0),
evas_3d_light_diffuse_set(1.0, 1.0, 1.0, 1.0),
evas_3d_light_specular_set(1.0, 1.0, 1.0, 1.0));
evas_canvas3d_light_ambient_set(0.2, 0.2, 0.2, 1.0),
evas_canvas3d_light_diffuse_set(1.0, 1.0, 1.0, 1.0),
evas_canvas3d_light_specular_set(1.0, 1.0, 1.0, 1.0));
data->light_node =
eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_LIGHT));
eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_LIGHT));
eo_do(data->light_node,
evas_3d_node_light_set(data->light),
evas_3d_node_position_set(0.0, 0.0, 10.0),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(data->root_node, evas_3d_node_member_add(data->light_node));
evas_canvas3d_node_light_set(data->light),
evas_canvas3d_node_position_set(0.0, 0.0, 10.0),
evas_canvas3d_node_look_at_set(EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(data->root_node, evas_canvas3d_node_member_add(data->light_node));
}
static void
_mesh_setup(Scene_Data *data)
{
/* Setup material. */
data->material = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
data->material = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
eo_do(data->material,
evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT,
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_AMBIENT,
0.2, 0.2, 0.2, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE,
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE,
0.8, 0.8, 0.8, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR,
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_SPECULAR,
1.0, 1.0, 1.0, 1.0),
evas_3d_material_shininess_set(100.0));
evas_canvas3d_material_shininess_set(100.0));
/* Setup mesh. */
data->mesh = eo_add(EVAS_3D_MESH_CLASS, evas);
data->mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
eo_do(data->mesh,
evas_3d_mesh_vertex_count_set(24),
evas_3d_mesh_frame_add(0),
evas_canvas3d_mesh_vertex_count_set(24),
evas_canvas3d_mesh_frame_add(0),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_POSITION,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_POSITION,
12 * sizeof(float),
&cube_vertices[ 0]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_NORMAL,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_NORMAL,
12 * sizeof(float),
&cube_vertices[ 3]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_COLOR,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_COLOR,
12 * sizeof(float),
&cube_vertices[ 6]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TEXCOORD,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_TEXCOORD,
12 * sizeof(float),
&cube_vertices[10]),
evas_3d_mesh_index_data_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT,
evas_canvas3d_mesh_index_data_set(EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT,
36, &cube_indices[0]),
evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG),
evas_3d_mesh_frame_material_set(0, data->material));
evas_canvas3d_mesh_vertex_assembly_set(EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_PHONG),
evas_canvas3d_mesh_frame_material_set(0, data->material));
data->mesh_node =
eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH));
eo_do(data->root_node, evas_3d_node_member_add(data->mesh_node));
eo_do(data->mesh_node, evas_3d_node_mesh_add(data->mesh));
eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_MESH));
eo_do(data->root_node, evas_canvas3d_node_member_add(data->mesh_node));
eo_do(data->mesh_node, evas_canvas3d_node_mesh_add(data->mesh));
}
static void
_scene_setup(Scene_Data *data)
{
data->scene = eo_add(EVAS_3D_SCENE_CLASS, evas);
data->scene = eo_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
eo_do(data->scene,
evas_3d_scene_size_set(WIDTH - d_w, HEIGHT - d_h);
evas_3d_scene_background_color_set(0.0, 0.0, 0.0, 0.0));
evas_canvas3d_scene_size_set(WIDTH - d_w, HEIGHT - d_h);
evas_canvas3d_scene_background_color_set(0.0, 0.0, 0.0, 0.0));
data->root_node =
eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_NODE));
eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_NODE));
_camera_setup(data);
_light_setup(data);
_mesh_setup(data);
eo_do(data->scene,
evas_3d_scene_root_node_set(data->root_node),
evas_3d_scene_camera_node_set(data->camera_node));
evas_canvas3d_scene_root_node_set(data->root_node),
evas_canvas3d_scene_camera_node_set(data->camera_node));
}
static void
@ -238,14 +238,14 @@ _stop_scene(void *data,
Scene_Data *d = (Scene_Data *)data;
eo_do(d->mesh_node,
evas_3d_node_scale_set(0.97, 0.97, 0.97));
evas_canvas3d_node_scale_set(0.97, 0.97, 0.97));
if (ev->button == 1)
{
Evas_3D_Node *ret;
Evas_Canvas3D_Node *ret;
if (eo_do_ret(d->scene, ret,
evas_3d_scene_exist((ev->canvas.x - (d_w / 2)),
evas_canvas3d_scene_exist((ev->canvas.x - (d_w / 2)),
(ev->canvas.y - (d_h / 2)),
d->mesh_node)))
{
@ -265,7 +265,7 @@ _play_scene(void *data,
d_angle = 0.5;
eo_do(d->mesh_node,
evas_3d_node_scale_set(1.0, 1.0, 1.0));
evas_canvas3d_node_scale_set(1.0, 1.0, 1.0));
}
int

View File

@ -101,7 +101,7 @@ init_panel_camera_light(Evas_Object *win, Eo *camera_node, Eo *light_node, doubl
evas_object_show(spZ);
evas_object_smart_callback_add(spZ, "changed", _camera_light_changeZ_cb, camera_node);
eo_do(camera_node, evas_3d_node_position_get(EVAS_3D_SPACE_PARENT, &px, &py, &pz));
eo_do(camera_node, evas_canvas3d_node_position_get(EVAS_CANVAS3D_SPACE_PARENT, &px, &py, &pz));
elm_spinner_value_set(spX, px);
elm_spinner_value_set(spY, py);
elm_spinner_value_set(spZ, pz);
@ -173,7 +173,7 @@ init_panel_camera_light(Evas_Object *win, Eo *camera_node, Eo *light_node, doubl
evas_object_show(splZ);
evas_object_smart_callback_add(splZ, "changed", _camera_light_changeZ_cb, light_node);
eo_do(light_node, evas_3d_node_position_get(EVAS_3D_SPACE_PARENT, &px, &py, &pz));
eo_do(light_node, evas_canvas3d_node_position_get(EVAS_CANVAS3D_SPACE_PARENT, &px, &py, &pz));
elm_spinner_value_set(splX, px);
elm_spinner_value_set(splY, py);
elm_spinner_value_set(splZ, pz);
@ -229,9 +229,9 @@ _camera_light_changeX_cb(void *data, Evas_Object *obj, void *event_info)
if ((Eo*)data)
{
eo_do((Eo*)data, evas_3d_node_position_get(EVAS_3D_SPACE_PARENT, NULL, &y, &z));
eo_do((Eo*)data, evas_canvas3d_node_position_get(EVAS_CANVAS3D_SPACE_PARENT, NULL, &y, &z));
x = elm_spinner_value_get(obj);
eo_do((Eo*)data, evas_3d_node_position_set(x, y, z));
eo_do((Eo*)data, evas_canvas3d_node_position_set(x, y, z));
}
}
static void
@ -241,9 +241,9 @@ _camera_light_changeY_cb(void *data, Evas_Object *obj, void *event_info)
if ((Eo*)data)
{
eo_do((Eo*)data, evas_3d_node_position_get(EVAS_3D_SPACE_PARENT, &x, NULL, &z));
eo_do((Eo*)data, evas_canvas3d_node_position_get(EVAS_CANVAS3D_SPACE_PARENT, &x, NULL, &z));
y = elm_spinner_value_get(obj);
eo_do((Eo*)data, evas_3d_node_position_set(x, y, z));
eo_do((Eo*)data, evas_canvas3d_node_position_set(x, y, z));
}
}
static void
@ -253,9 +253,9 @@ _camera_light_changeZ_cb(void *data, Evas_Object *obj, void *event_info)
if ((Eo*)data)
{
eo_do((Eo*)data, evas_3d_node_position_get(EVAS_3D_SPACE_PARENT, &x, &y, NULL));
eo_do((Eo*)data, evas_canvas3d_node_position_get(EVAS_CANVAS3D_SPACE_PARENT, &x, &y, NULL));
z = elm_spinner_value_get(obj);
eo_do((Eo*)data, evas_3d_node_position_set(x, y, z));
eo_do((Eo*)data, evas_canvas3d_node_position_set(x, y, z));
}
}
static void
@ -267,7 +267,7 @@ _camera_light_angle_change_cb(void *data, Evas_Object *obj, void *event_info)
{
aw = elm_spinner_value_get(obj);
aw = cos(aw * M_PI / 360.0);
eo_do(((Eo*)data), evas_3d_node_orientation_set(key->x, key->y, key->z, aw));
eo_do(((Eo*)data), evas_canvas3d_node_orientation_set(key->x, key->y, key->z, aw));
}
}
static void

View File

@ -248,47 +248,47 @@ void _init_bounding()
20, 21, 22, 22, 21, 23
};
globalGraphical.material_box = eo_add(EVAS_3D_MATERIAL_CLASS, globalGraphical.evas);
globalGraphical.material_box = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, globalGraphical.evas);
eo_do(globalGraphical.material_box,
evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0),
evas_3d_material_shininess_set(100.0));
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0),
evas_canvas3d_material_shininess_set(100.0));
/* Setup mesh. */
globalGraphical.mesh_box = eo_add(EVAS_3D_MESH_CLASS, globalGraphical.evas);
globalGraphical.mesh_box = eo_add(EVAS_CANVAS3D_MESH_CLASS, globalGraphical.evas);
eo_do(globalGraphical.mesh_box,
evas_3d_mesh_vertex_count_set(24),
evas_3d_mesh_frame_add(0),
evas_canvas3d_mesh_vertex_count_set(24),
evas_canvas3d_mesh_frame_add(0),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_POSITION,
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_POSITION,
12 * sizeof(float), &cube_vertices[ 0]),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_NORMAL,
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_NORMAL,
12 * sizeof(float), &cube_vertices[ 3]),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_COLOR,
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_COLOR,
12 * sizeof(float), &cube_vertices[ 6]),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_TEXCOORD,
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_TEXCOORD,
12 * sizeof(float), &cube_vertices[10]),
evas_3d_mesh_index_data_copy_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT,
evas_canvas3d_mesh_index_data_copy_set(EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT,
36, &cube_indices[0]),
evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_canvas3d_mesh_vertex_assembly_set(EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG),
evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_PHONG),
evas_3d_mesh_frame_material_set(0, globalGraphical.material_box));
evas_canvas3d_mesh_frame_material_set(0, globalGraphical.material_box));
globalGraphical.mesh_nodebox =
eo_add(EVAS_3D_NODE_CLASS, globalGraphical.evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH),
evas_3d_node_position_set(0, -30.0, 0.0));
eo_do(globalGraphical.root_node, evas_3d_node_member_add(globalGraphical.mesh_nodebox));
eo_do(globalGraphical.mesh_nodebox, evas_3d_node_mesh_add(globalGraphical.mesh_box));
eo_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_MESH),
evas_canvas3d_node_position_set(0, -30.0, 0.0));
eo_do(globalGraphical.root_node, evas_canvas3d_node_member_add(globalGraphical.mesh_nodebox));
eo_do(globalGraphical.mesh_nodebox, evas_canvas3d_node_mesh_add(globalGraphical.mesh_box));
}
static void
_change_scene_setup()
@ -298,13 +298,13 @@ _change_scene_setup()
int i = 0;
int quantity = (globalGraphical.count + 1) * (globalGraphical.count + 1);
eo_do(globalGraphical.camera,
evas_3d_camera_projection_perspective_set(globalGraphical.angle, 1.0, 2.0, 1000));
evas_canvas3d_camera_projection_perspective_set(globalGraphical.angle, 1.0, 2.0, 1000));
EINA_LIST_FOREACH (globalGraphical.list_nodes, l, node)
{
eo_do(globalGraphical.root_node, evas_3d_node_member_del(node));
eo_do(globalGraphical.root_node, evas_canvas3d_node_member_del(node));
globalGraphical.list_nodes = eina_list_remove(globalGraphical.list_nodes, node);
/*eo_del(node);Unless evas_3d_destructors work properly*/
/*eo_del(node);Unless evas_canvas3d_destructors work properly*/
}
eina_list_free(globalGraphical.list_nodes);
eina_list_free(l);
@ -313,7 +313,7 @@ _change_scene_setup()
EINA_LIST_FOREACH (globalGraphical.list_meshes, l, m)
{
globalGraphical.list_meshes = eina_list_remove(globalGraphical.list_meshes, m);
/*eo_del(m); Unless evas_3d_destructors work properly*/
/*eo_del(m); Unless evas_canvas3d_destructors work properly*/
}
eina_list_free(globalGraphical.list_meshes);
eina_list_free(l);
@ -322,62 +322,62 @@ _change_scene_setup()
_sphere_init(globalGraphical.precision);
for (i = 0; i < quantity; i++)
{
globalGraphical.mesh = eo_add(EVAS_3D_MESH_CLASS, globalGraphical.evas);
globalGraphical.mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, globalGraphical.evas);
if (!globalGraphical.model_path)
{
eo_do(globalGraphical.mesh,
evas_3d_mesh_vertex_count_set(globalGraphical.vertex_count),
evas_3d_mesh_frame_add(0),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_POSITION,
evas_canvas3d_mesh_vertex_count_set(globalGraphical.vertex_count),
evas_canvas3d_mesh_frame_add(0),
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_POSITION,
sizeof(vertex),
&globalGraphical.vertices[0].position),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_NORMAL,
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_NORMAL,
sizeof(vertex),
&globalGraphical.vertices[0].normal),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_TANGENT,
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_TANGENT,
sizeof(vertex),
&globalGraphical.vertices[0].tangent),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_COLOR,
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_COLOR,
sizeof(vertex), &globalGraphical.vertices[0].color),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_TEXCOORD,
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_TEXCOORD,
sizeof(vertex),
&globalGraphical.vertices[0].texcoord),
evas_3d_mesh_index_data_copy_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT,
evas_canvas3d_mesh_index_data_copy_set(EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT,
globalGraphical.index_count, &globalGraphical.indices[0]),
evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG));
evas_canvas3d_mesh_vertex_assembly_set(EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_PHONG));
}
else
{
eo_do(globalGraphical.mesh,
efl_file_set(globalGraphical.model_path, NULL),
evas_3d_mesh_frame_material_set(0, globalGraphical.material),
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG));
evas_canvas3d_mesh_frame_material_set(0, globalGraphical.material),
evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_PHONG));
}
if (globalGraphical.flags.fog_enable)
{
eo_do(globalGraphical.mesh, evas_3d_mesh_fog_enable_set(EINA_TRUE), evas_3d_mesh_fog_color_set(FOG_COLOR, FOG_FACTOR));
eo_do(globalGraphical.mesh, evas_canvas3d_mesh_fog_enable_set(EINA_TRUE), evas_canvas3d_mesh_fog_color_set(FOG_COLOR, FOG_FACTOR));
}
else
{
eo_do(globalGraphical.mesh, evas_3d_mesh_fog_enable_set(EINA_FALSE));
eo_do(globalGraphical.mesh, evas_canvas3d_mesh_fog_enable_set(EINA_FALSE));
}
if (globalGraphical.flags.colorpick_enable)
eo_do(globalGraphical.mesh, evas_3d_mesh_color_pick_enable_set(EINA_TRUE));
eo_do(globalGraphical.mesh, evas_canvas3d_mesh_color_pick_enable_set(EINA_TRUE));
else
eo_do(globalGraphical.mesh, evas_3d_mesh_color_pick_enable_set(EINA_FALSE));
eo_do(globalGraphical.mesh, evas_canvas3d_mesh_color_pick_enable_set(EINA_FALSE));
if (globalGraphical.flags.blend_enable)
{
eo_do(globalGraphical.mesh, evas_3d_mesh_blending_enable_set(EINA_TRUE),
evas_3d_mesh_blending_func_set(EVAS_3D_BLEND_SRC_ALPHA, EVAS_3D_BLEND_ONE_MINUS_SRC_ALPHA));
eo_do(globalGraphical.mesh, evas_canvas3d_mesh_blending_enable_set(EINA_TRUE),
evas_canvas3d_mesh_blending_func_set(EVAS_CANVAS3D_BLEND_SRC_ALPHA, EVAS_CANVAS3D_BLEND_ONE_MINUS_SRC_ALPHA));
}
else
eo_do(globalGraphical.mesh, evas_3d_mesh_blending_enable_set(EINA_FALSE));
eo_do(globalGraphical.mesh, evas_canvas3d_mesh_blending_enable_set(EINA_FALSE));
eo_do(globalGraphical.mesh, evas_3d_mesh_frame_material_set(0, globalGraphical.material));
eo_do(globalGraphical.mesh, evas_canvas3d_mesh_frame_material_set(0, globalGraphical.material));
globalGraphical.list_meshes = eina_list_append(globalGraphical.list_meshes, globalGraphical.mesh);
}
@ -386,15 +386,15 @@ _change_scene_setup()
for (i = 0; i < quantity; i++)
{
globalGraphical.mesh_node =
eo_add(EVAS_3D_NODE_CLASS, globalGraphical.evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH),
evas_3d_node_position_set(globalGraphical.places[i].position.x * 20,
eo_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_MESH),
evas_canvas3d_node_position_set(globalGraphical.places[i].position.x * 20,
globalGraphical.places[i].position.y * 20,
globalGraphical.places[i].position.z * 20));
if (globalGraphical.model_path)
eo_do(globalGraphical.mesh_node, evas_3d_node_scale_set(0.2, 0.2, 0.2));
eo_do(globalGraphical.root_node, evas_3d_node_member_add(globalGraphical.mesh_node));
eo_do(globalGraphical.mesh_node, evas_3d_node_mesh_add((Eo*)eina_list_nth(globalGraphical.list_meshes, i)));
eo_do(globalGraphical.mesh_node, evas_canvas3d_node_scale_set(0.2, 0.2, 0.2));
eo_do(globalGraphical.root_node, evas_canvas3d_node_member_add(globalGraphical.mesh_node));
eo_do(globalGraphical.mesh_node, evas_canvas3d_node_mesh_add((Eo*)eina_list_nth(globalGraphical.list_meshes, i)));
globalGraphical.list_nodes = eina_list_append(globalGraphical.list_nodes, globalGraphical.mesh_node);
}
@ -405,16 +405,16 @@ _change_scene_setup()
ecore_animator_frametime_set(0.0001);
if (globalGraphical.flags.shadow_enable)
eo_do(globalGraphical.scene, evas_3d_scene_shadows_enable_set(EINA_TRUE));
eo_do(globalGraphical.scene, evas_canvas3d_scene_shadows_enable_set(EINA_TRUE));
else
eo_do(globalGraphical.scene, evas_3d_scene_shadows_enable_set(EINA_FALSE));
eo_do(globalGraphical.scene, evas_canvas3d_scene_shadows_enable_set(EINA_FALSE));
if (globalGraphical.flags.colorpick_enable)
{
eo_do(globalGraphical.scene, evas_3d_scene_color_pick_enable_set(EINA_TRUE));
eo_do(globalGraphical.scene, evas_canvas3d_scene_color_pick_enable_set(EINA_TRUE));
}
else
eo_do(globalGraphical.scene, evas_3d_scene_color_pick_enable_set(EINA_FALSE));
eo_do(globalGraphical.scene, evas_canvas3d_scene_color_pick_enable_set(EINA_FALSE));
}
static void
@ -425,105 +425,105 @@ _init_scene(Evas_Object *img)
/*Allocate memory - eina_mempool*/
/* Add a scene object .*/
globalGraphical.scene = eo_add(EVAS_3D_SCENE_CLASS, globalGraphical.evas);
globalGraphical.scene = eo_add(EVAS_CANVAS3D_SCENE_CLASS, globalGraphical.evas);
/* Add the root node for the scene. */
globalGraphical.root_node = eo_add(EVAS_3D_NODE_CLASS, globalGraphical.evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_NODE));
globalGraphical.root_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_NODE));
/* Add the camera. */
globalGraphical.camera = eo_add(EVAS_3D_CAMERA_CLASS, globalGraphical.evas);
globalGraphical.camera = eo_add(EVAS_CANVAS3D_CAMERA_CLASS, globalGraphical.evas);
eo_do(globalGraphical.camera,
evas_3d_camera_projection_perspective_set(globalGraphical.angle, 1.0, 2.0, 1000.0));
evas_canvas3d_camera_projection_perspective_set(globalGraphical.angle, 1.0, 2.0, 1000.0));
globalGraphical.camera_node =
eo_add(EVAS_3D_NODE_CLASS, globalGraphical.evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_CAMERA));
eo_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_CAMERA));
eo_do(globalGraphical.camera_node,
evas_3d_node_camera_set(globalGraphical.camera),
evas_3d_node_position_set(0.0, 0.0, 25.0),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(globalGraphical.root_node, evas_3d_node_member_add(globalGraphical.camera_node));
evas_canvas3d_node_camera_set(globalGraphical.camera),
evas_canvas3d_node_position_set(0.0, 0.0, 25.0),
evas_canvas3d_node_look_at_set(EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(globalGraphical.root_node, evas_canvas3d_node_member_add(globalGraphical.camera_node));
globalGraphical.light = eo_add(EVAS_3D_LIGHT_CLASS, globalGraphical.evas);
globalGraphical.light = eo_add(EVAS_CANVAS3D_LIGHT_CLASS, globalGraphical.evas);
eo_do(globalGraphical.light,
evas_3d_light_ambient_set(1.0, 1.0, 1.0, 1.0),
evas_3d_light_diffuse_set(1.0, 1.0, 1.0, 1.0),
evas_3d_light_specular_set(1.0, 1.0, 1.0, 1.0),
evas_3d_light_projection_perspective_set(globalGraphical.angle / 5, 1.0, 1.0, 1000.0),
/*evas_3d_light_projection_perspective_set(value, ...) =>
evas_3d_light_spot_cutoff_set(~(value / 3))*/
evas_3d_light_spot_cutoff_set(globalGraphical.angle / 15));
evas_canvas3d_light_ambient_set(1.0, 1.0, 1.0, 1.0),
evas_canvas3d_light_diffuse_set(1.0, 1.0, 1.0, 1.0),
evas_canvas3d_light_specular_set(1.0, 1.0, 1.0, 1.0),
evas_canvas3d_light_projection_perspective_set(globalGraphical.angle / 5, 1.0, 1.0, 1000.0),
/*evas_canvas3d_light_projection_perspective_set(value, ...) =>
evas_canvas3d_light_spot_cutoff_set(~(value / 3))*/
evas_canvas3d_light_spot_cutoff_set(globalGraphical.angle / 15));
globalGraphical.light_node =
eo_add(EVAS_3D_NODE_CLASS, globalGraphical.evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_LIGHT));
eo_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_LIGHT));
eo_do(globalGraphical.light_node,
evas_3d_node_light_set(globalGraphical.light),
evas_3d_node_position_set(0.0, 100.0, 1.0),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(globalGraphical.root_node, evas_3d_node_member_add(globalGraphical.light_node));
evas_canvas3d_node_light_set(globalGraphical.light),
evas_canvas3d_node_position_set(0.0, 100.0, 1.0),
evas_canvas3d_node_look_at_set(EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(globalGraphical.root_node, evas_canvas3d_node_member_add(globalGraphical.light_node));
globalGraphical.material = eo_add(EVAS_3D_MATERIAL_CLASS, globalGraphical.evas);
globalGraphical.texture = eo_add(EVAS_3D_TEXTURE_CLASS, globalGraphical.evas);
globalGraphical.material = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, globalGraphical.evas);
globalGraphical.texture = eo_add(EVAS_CANVAS3D_TEXTURE_CLASS, globalGraphical.evas);
eo_do(globalGraphical.texture,
evas_3d_texture_file_set("target_texture.png", NULL),
evas_3d_texture_filter_set(EVAS_3D_TEXTURE_FILTER_LINEAR,
EVAS_3D_TEXTURE_FILTER_LINEAR),
evas_3d_texture_wrap_set(EVAS_3D_WRAP_MODE_REPEAT,
EVAS_3D_WRAP_MODE_REPEAT));
evas_canvas3d_texture_file_set("target_texture.png", NULL),
evas_canvas3d_texture_filter_set(EVAS_CANVAS3D_TEXTURE_FILTER_LINEAR,
EVAS_CANVAS3D_TEXTURE_FILTER_LINEAR),
evas_canvas3d_texture_wrap_set(EVAS_CANVAS3D_WRAP_MODE_REPEAT,
EVAS_CANVAS3D_WRAP_MODE_REPEAT));
eo_do(globalGraphical.material,
evas_3d_material_texture_set(EVAS_3D_MATERIAL_DIFFUSE, globalGraphical.texture),
evas_3d_material_texture_set(EVAS_3D_MATERIAL_AMBIENT, globalGraphical.texture),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_NORMAL, EINA_TRUE),
evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 1.0, 0.2, 0.2, 0.2),
evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 1.0, 0.0, 0.0, 0.2),
evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 0.2));
evas_canvas3d_material_texture_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, globalGraphical.texture),
evas_canvas3d_material_texture_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, globalGraphical.texture),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_NORMAL, EINA_TRUE),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, 1.0, 0.2, 0.2, 0.2),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, 1.0, 0.0, 0.0, 0.2),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 0.2));
/* Add the mesh with target precision */
_sphere_init(globalGraphical.precision);
for (i = 0; i < quantity; i++)
{
globalGraphical.mesh = eo_add(EVAS_3D_MESH_CLASS, globalGraphical.evas);
globalGraphical.mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, globalGraphical.evas);
if (!globalGraphical.model_path)
{
eo_do(globalGraphical.mesh,
evas_3d_mesh_vertex_count_set(globalGraphical.vertex_count),
evas_3d_mesh_frame_add(0),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_POSITION,
evas_canvas3d_mesh_vertex_count_set(globalGraphical.vertex_count),
evas_canvas3d_mesh_frame_add(0),
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_POSITION,
sizeof(vertex),
&globalGraphical.vertices[0].position),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_NORMAL,
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_NORMAL,
sizeof(vertex),
&globalGraphical.vertices[0].normal),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_TANGENT,
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_TANGENT,
sizeof(vertex),
&globalGraphical.vertices[0].tangent),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_COLOR,
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_COLOR,
sizeof(vertex), &globalGraphical.vertices[0].color),
evas_3d_mesh_frame_vertex_data_copy_set(0, EVAS_3D_VERTEX_TEXCOORD,
evas_canvas3d_mesh_frame_vertex_data_copy_set(0, EVAS_CANVAS3D_VERTEX_TEXCOORD,
sizeof(vertex),
&globalGraphical.vertices[0].texcoord),
evas_3d_mesh_index_data_copy_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT,
evas_canvas3d_mesh_index_data_copy_set(EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT,
globalGraphical.index_count, &globalGraphical.indices[0]),
evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG));
evas_canvas3d_mesh_vertex_assembly_set(EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_PHONG));
}
else
{
eo_do(globalGraphical.mesh,
efl_file_set(globalGraphical.model_path, NULL),
evas_3d_mesh_frame_material_set(0, globalGraphical.material),
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG));
evas_canvas3d_mesh_frame_material_set(0, globalGraphical.material),
evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_PHONG));
}
eo_do(globalGraphical.mesh, evas_3d_mesh_frame_material_set(0, globalGraphical.material));
eo_do(globalGraphical.mesh, evas_canvas3d_mesh_frame_material_set(0, globalGraphical.material));
globalGraphical.list_meshes = eina_list_append(globalGraphical.list_meshes, globalGraphical.mesh);
}
@ -533,24 +533,24 @@ _init_scene(Evas_Object *img)
for (i = 0; i < quantity; i++)
{
globalGraphical.mesh_node =
eo_add(EVAS_3D_NODE_CLASS, globalGraphical.evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH),
evas_3d_node_position_set(globalGraphical.places[i].position.x * 20,
eo_add(EVAS_CANVAS3D_NODE_CLASS, globalGraphical.evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_MESH),
evas_canvas3d_node_position_set(globalGraphical.places[i].position.x * 20,
globalGraphical.places[i].position.y * 20,
globalGraphical.places[i].position.z * 20));
if (globalGraphical.model_path)
eo_do(globalGraphical.mesh_node, evas_3d_node_scale_set(0.2, 0.2, 0.2));
eo_do(globalGraphical.root_node, evas_3d_node_member_add(globalGraphical.mesh_node));
eo_do(globalGraphical.mesh_node, evas_3d_node_mesh_add((Eo*)eina_list_nth(globalGraphical.list_meshes, i)));
eo_do(globalGraphical.mesh_node, evas_canvas3d_node_scale_set(0.2, 0.2, 0.2));
eo_do(globalGraphical.root_node, evas_canvas3d_node_member_add(globalGraphical.mesh_node));
eo_do(globalGraphical.mesh_node, evas_canvas3d_node_mesh_add((Eo*)eina_list_nth(globalGraphical.list_meshes, i)));
globalGraphical.list_nodes = eina_list_append(globalGraphical.list_nodes, globalGraphical.mesh_node);
}
_init_bounding();
evas_object_geometry_get(img, &x, &y, &w, &h);
eo_do(globalGraphical.scene,
evas_3d_scene_root_node_set(globalGraphical.root_node),
evas_3d_scene_camera_node_set(globalGraphical.camera_node),
evas_3d_scene_size_set(w, h));
evas_canvas3d_scene_root_node_set(globalGraphical.root_node),
evas_canvas3d_scene_camera_node_set(globalGraphical.camera_node),
evas_canvas3d_scene_size_set(w, h));
ecore_animator_frametime_set(1.0 / (globalGraphical.speed));
}

View File

@ -80,18 +80,18 @@ static Eina_Bool
_animate_scene(void *data)
{
Eina_List *l;
Evas_3D_Node *node;
Evas_Canvas3D_Node *node;
static float angle = 0.0f;
angle += 0.03;
eo_do((Evas_3D_Node *)data,
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 8 * sin(angle), 0.0, 8 * cos(angle),
EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do((Evas_Canvas3D_Node *)data,
evas_canvas3d_node_look_at_set(EVAS_CANVAS3D_SPACE_PARENT, 8 * sin(angle), 0.0, 8 * cos(angle),
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0));
EINA_LIST_FOREACH (globalGraphical.list_nodes, l, node)
{
eo_do(node, evas_3d_node_orientation_angle_axis_set(10 * angle, 1.0, 1.0, 0.0));
eo_do(node, evas_canvas3d_node_orientation_angle_axis_set(10 * angle, 1.0, 1.0, 0.0));
}
/* Rotate */
@ -113,8 +113,8 @@ _on_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj,
int scene_w, scene_h;
Evas_Real scene_x, scene_y;
Evas_Real s, t;
Evas_3D_Node *n;
Evas_3D_Mesh *m;
Evas_Canvas3D_Node *n;
Evas_Canvas3D_Mesh *m;
Eina_Bool pick;
clock_t time;
float diff_sec;
@ -132,7 +132,7 @@ _on_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj,
obj_x = ev->canvas.x - x;
obj_y = ev->canvas.y - y;
eo_do(globalGraphical.scene, evas_3d_scene_size_get(&scene_w, &scene_h));
eo_do(globalGraphical.scene, evas_canvas3d_scene_size_get(&scene_w, &scene_h));
scene_x = obj_x * scene_w / (Evas_Real)w;
scene_y = obj_y * scene_h / (Evas_Real)h;
@ -140,29 +140,29 @@ _on_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj,
time = clock();
if (globalGraphical.flags.colorpick_enable)
{
eo_do(globalGraphical.scene, pick = evas_3d_scene_color_pick_enable_set(EINA_TRUE));
eo_do(globalGraphical.scene, pick = evas_canvas3d_scene_color_pick_enable_set(EINA_TRUE));
eo_do(globalGraphical.scene,
pick = evas_3d_scene_pick(ev->canvas.x, ev->canvas.y, &n, &m, NULL, NULL));
pick = evas_canvas3d_scene_pick(ev->canvas.x, ev->canvas.y, &n, &m, NULL, NULL));
time = clock() - time;
diff_sec = ((float)time) / CLOCKS_PER_SEC / 10;
if (pick)
{
fprintf(stdout, "Boom! Color pick time expended for pick: %2.7f \n", diff_sec);
if (n != globalGraphical.mesh_nodebox)
eo_do(n, evas_3d_node_scale_set(0.5, 0.5, 0.5));
eo_do(n, evas_canvas3d_node_scale_set(0.5, 0.5, 0.5));
}
}
else
{
eo_do(globalGraphical.scene, pick = evas_3d_scene_color_pick_enable_set(EINA_FALSE));
eo_do(globalGraphical.scene, pick = evas_3d_scene_pick(scene_x, scene_y, &n, &m, &s, &t));
eo_do(globalGraphical.scene, pick = evas_canvas3d_scene_color_pick_enable_set(EINA_FALSE));
eo_do(globalGraphical.scene, pick = evas_canvas3d_scene_pick(scene_x, scene_y, &n, &m, &s, &t));
time = clock() - time;
diff_sec = ((float)time) / CLOCKS_PER_SEC / 10;
if (pick)
{
fprintf(stdout, "Boom! Geometry pick time expended for pick: %2.7f, TexCoord (%f, %f)\n", diff_sec, s, t);
if (n != globalGraphical.mesh_nodebox)
eo_do(n, evas_3d_node_scale_set(0.5, 0.5, 0.5));
eo_do(n, evas_canvas3d_node_scale_set(0.5, 0.5, 0.5));
}
}
}
@ -200,16 +200,16 @@ _node_orientation_change_cb(void *data, Evas_Object *obj, void *event_info)
{
Elm_Object_Item *it;
Eina_List *l;
Evas_3D_Node *node;
Evas_Canvas3D_Node *node;
it = elm_flipselector_selected_item_get((Evas_Object*)data);
const char *str = elm_object_item_text_get(it);
if (str && !strcmp(str, "root node"))
eo_do(globalGraphical.root_node, evas_3d_node_orientation_angle_axis_set(15, 1.0, 1.0, 1.0));
eo_do(globalGraphical.root_node, evas_canvas3d_node_orientation_angle_axis_set(15, 1.0, 1.0, 1.0));
else
{
EINA_LIST_FOREACH (globalGraphical.list_nodes, l, node)
{
eo_do((Eo*)node, evas_3d_node_orientation_angle_axis_set(15, 1.0, 1.0, 1.0));
eo_do((Eo*)node, evas_canvas3d_node_orientation_angle_axis_set(15, 1.0, 1.0, 1.0));
}
}
}
@ -218,16 +218,16 @@ _node_position_change_cb(void *data, Evas_Object *obj, void *event_info)
{
Elm_Object_Item *it;
Eina_List *l;
Evas_3D_Node *node;
Evas_Canvas3D_Node *node;
it = elm_flipselector_selected_item_get((Evas_Object*)data);
const char *str = elm_object_item_text_get(it);
if (str && !strcmp(str, "root node"))
eo_do(globalGraphical.root_node, evas_3d_node_position_set(10.0, 1.0, 1.0));
eo_do(globalGraphical.root_node, evas_canvas3d_node_position_set(10.0, 1.0, 1.0));
else
{
EINA_LIST_FOREACH (globalGraphical.list_nodes, l, node)
{
eo_do((Eo*)node, evas_3d_node_position_set(1.0, 1.0, 1.0));
eo_do((Eo*)node, evas_canvas3d_node_position_set(1.0, 1.0, 1.0));
}
}
}
@ -236,16 +236,16 @@ _node_scale_change_cb(void *data, Evas_Object *obj, void *event_info)
{
Elm_Object_Item *it;
Eina_List *l;
Evas_3D_Node *node;
Evas_Canvas3D_Node *node;
it = elm_flipselector_selected_item_get((Evas_Object*)data);
const char *str = elm_object_item_text_get(it);
if (str && !strcmp(str, "root node"))
eo_do(globalGraphical.root_node, evas_3d_node_scale_set(1.0, 1.0, 1.0));
eo_do(globalGraphical.root_node, evas_canvas3d_node_scale_set(1.0, 1.0, 1.0));
else
{
EINA_LIST_FOREACH (globalGraphical.list_nodes, l, node)
{
eo_do((Eo*)node, evas_3d_node_scale_set(1.0, 1.0, 1.0));
eo_do((Eo*)node, evas_canvas3d_node_scale_set(1.0, 1.0, 1.0));
}
}
}

View File

@ -352,7 +352,7 @@ _restart_level(void *data, Evas_Object *btn, void *ev)
EINA_LIST_FOREACH(scene->items, l, item)
{
eo_do(scene->root_node,
evas_3d_node_member_del(item));
evas_canvas3d_node_member_del(item));
scene->items = eina_list_remove_list(scene->items, l);
}
@ -361,7 +361,7 @@ _restart_level(void *data, Evas_Object *btn, void *ev)
EINA_LIST_FOREACH(scene->items, l, item)
eo_do(scene->root_node,
evas_3d_node_member_add(item));
evas_canvas3d_node_member_add(item));
ball_position_x = 0.0;
ball_position_y = -1.0;
@ -456,19 +456,19 @@ _quit_game(void *data EINA_UNUSED, Evas_Object *btn EINA_UNUSED, void *ev EINA_U
static void
_camera_setup(Scene_Data *data)
{
data->camera = eo_add(EVAS_3D_CAMERA_CLASS, evas);
data->camera = eo_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
eo_do(data->camera,
evas_3d_camera_projection_perspective_set(50.0, 1.0, 1.0, 1000.0));
evas_canvas3d_camera_projection_perspective_set(50.0, 1.0, 1.0, 1000.0));
data->camera_node = eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_CAMERA));
data->camera_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_CAMERA));
eo_do(data->camera_node,
evas_3d_node_camera_set(data->camera),
evas_3d_node_position_set(0.0, 40, 70),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0));
evas_canvas3d_node_camera_set(data->camera),
evas_canvas3d_node_position_set(0.0, 40, 70),
evas_canvas3d_node_look_at_set(EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(data->root_node,
evas_3d_node_member_add(data->camera_node));
evas_canvas3d_node_member_add(data->camera_node));
}
static Eina_Bool
@ -477,7 +477,7 @@ _animate_camera(void *data)
Scene_Data *scene = (Scene_Data *)data;
eo_do(scene->camera_node,
evas_3d_node_position_set(0.0, camera_y, camera_z));
evas_canvas3d_node_position_set(0.0, camera_y, camera_z));
return EINA_TRUE;
}
@ -485,55 +485,55 @@ _animate_camera(void *data)
static void
_light_setup(Scene_Data *data)
{
data->light = eo_add(EVAS_3D_LIGHT_CLASS, evas);
data->light = eo_add(EVAS_CANVAS3D_LIGHT_CLASS, evas);
eo_do(data->light,
evas_3d_light_ambient_set(0.2, 0.2, 0.2, 1.0),
evas_3d_light_diffuse_set(1.0, 1.0, 1.0, 1.0),
evas_3d_light_specular_set(1.0, 1.0, 1.0, 1.0),
evas_3d_light_projection_perspective_set(100.0, 1.0, 1.0, 1000.0));
evas_canvas3d_light_ambient_set(0.2, 0.2, 0.2, 1.0),
evas_canvas3d_light_diffuse_set(1.0, 1.0, 1.0, 1.0),
evas_canvas3d_light_specular_set(1.0, 1.0, 1.0, 1.0),
evas_canvas3d_light_projection_perspective_set(100.0, 1.0, 1.0, 1000.0));
data->light_node = eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_LIGHT));
data->light_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_LIGHT));
eo_do(data->light_node,
evas_3d_node_light_set(data->light),
evas_3d_node_position_set(0.1, 25.0, 0.1),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_3D_SPACE_PARENT, 0.0, 1.0, 0.0));
evas_canvas3d_node_light_set(data->light),
evas_canvas3d_node_position_set(0.1, 25.0, 0.1),
evas_canvas3d_node_look_at_set(EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 1.0, 0.0));
eo_do(data->root_node,
evas_3d_node_member_add(data->light_node));
evas_canvas3d_node_member_add(data->light_node));
}
static void
_mesh_cube_setup(Scene_Data *data)
{
data->mesh_cube = eo_add(EVAS_3D_MESH_CLASS, evas);
data->material_cube = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
data->mesh_cube = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
data->material_cube = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
eo_do(data->material_cube,
evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0),
evas_3d_material_shininess_set(50.0));
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0),
evas_canvas3d_material_shininess_set(50.0));
eo_do(data->mesh_cube,
evas_3d_mesh_vertex_count_set(24),
evas_3d_mesh_frame_add(0),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_POSITION,
evas_canvas3d_mesh_vertex_count_set(24),
evas_canvas3d_mesh_frame_add(0),
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_POSITION,
12 * sizeof(float), &cube_vertices[ 0]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_NORMAL,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_NORMAL,
12 * sizeof(float), &cube_vertices[ 3]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_COLOR,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_COLOR,
12 * sizeof(float), &cube_vertices[ 6]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TEXCOORD,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_TEXCOORD,
12 * sizeof(float), &cube_vertices[10]),
evas_3d_mesh_index_data_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT,
evas_canvas3d_mesh_index_data_set(EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT,
36, &cube_indices[0]),
evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG),
evas_3d_mesh_frame_material_set(0, data->material_cube));
evas_canvas3d_mesh_vertex_assembly_set(EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_PHONG),
evas_canvas3d_mesh_frame_material_set(0, data->material_cube));
}
static void
@ -543,51 +543,51 @@ _create_bondar(Scene_Data *data, Evas_Real scale_x, Evas_Real scale_y, Evas_Real
Eo *node = NULL;
Eo *material = NULL;
mesh = eo_add(EVAS_3D_MESH_CLASS, evas);
material = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
node = eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH));
mesh = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
material = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_MESH));
eo_do(material,
evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.0, 1.0, 1.0, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0),
evas_3d_material_shininess_set(50.0));
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, 0.0, 1.0, 1.0, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0),
evas_canvas3d_material_shininess_set(50.0));
if (color)
eo_do(material,
evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.0, 0.7, 1.0, 1.0));
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, 0.0, 0.7, 1.0, 1.0));
else
eo_do(material,
evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.0, 1.0, 1.0, 1.0));
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, 0.0, 1.0, 1.0, 1.0));
eo_do(mesh,
evas_3d_mesh_vertex_count_set(24),
evas_3d_mesh_frame_add(0),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_POSITION,
evas_canvas3d_mesh_vertex_count_set(24),
evas_canvas3d_mesh_frame_add(0),
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_POSITION,
12 * sizeof(float), &cube_vertices[ 0]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_NORMAL,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_NORMAL,
12 * sizeof(float), &cube_vertices[ 3]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_COLOR,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_COLOR,
12 * sizeof(float), &cube_vertices[ 6]),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TEXCOORD,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_TEXCOORD,
12 * sizeof(float), &cube_vertices[10]),
evas_3d_mesh_index_data_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT,
evas_canvas3d_mesh_index_data_set(EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT,
36, &cube_indices[0]),
evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG),
evas_3d_mesh_frame_material_set(0, material));
evas_canvas3d_mesh_vertex_assembly_set(EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_PHONG),
evas_canvas3d_mesh_frame_material_set(0, material));
eo_do(data->root_node,
evas_3d_node_member_add(node));
evas_canvas3d_node_member_add(node));
eo_do(node,
evas_3d_node_mesh_add(mesh),
evas_3d_node_position_set(x, y, z);
evas_3d_node_scale_set(scale_x, scale_y, scale_z));
evas_canvas3d_node_mesh_add(mesh),
evas_canvas3d_node_position_set(x, y, z);
evas_canvas3d_node_scale_set(scale_x, scale_y, scale_z));
}
static void
@ -605,16 +605,16 @@ _create_cubes(Scene_Data *data, Evas_Real r, int count)
Eo *node = NULL;
alpha = d_alpha * i * M_PI / 180;
node = eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH));
node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_MESH));
eo_do(node,
evas_3d_node_mesh_add(data->mesh_cube),
evas_3d_node_position_set(r * sin(alpha), 2.0 + (r / 4 * sin(alpha)), r * cos(alpha));
evas_3d_node_scale_set(1.0, 1.0, 1.0));
evas_canvas3d_node_mesh_add(data->mesh_cube),
evas_canvas3d_node_position_set(r * sin(alpha), 2.0 + (r / 4 * sin(alpha)), r * cos(alpha));
evas_canvas3d_node_scale_set(1.0, 1.0, 1.0));
eo_do(data->root_node,
evas_3d_node_member_add(node));
evas_canvas3d_node_member_add(node));
data->items = eina_list_append(data->items, node);
}
@ -625,45 +625,45 @@ _mesh_ball_setup(Scene_Data *data)
{
_sphere_init(100);
data->mesh_ball = eo_add(EVAS_3D_MESH_CLASS, evas);
data->material_ball = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
data->mesh_node_ball = eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH));
data->mesh_ball = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
data->material_ball = eo_add(EVAS_CANVAS3D_MATERIAL_CLASS, evas);
data->mesh_node_ball = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_MESH));
/* Setup material for ball. */
eo_do(data->material_ball,
evas_3d_material_enable_set(EVAS_3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_3d_material_enable_set(EVAS_3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_3d_material_color_set(EVAS_3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0),
evas_3d_material_color_set(EVAS_3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0),
evas_3d_material_shininess_set(50.0));
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, EINA_TRUE),
evas_canvas3d_material_enable_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, EINA_TRUE),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_AMBIENT, 0.2, 0.2, 0.2, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_DIFFUSE, 0.8, 0.8, 0.8, 1.0),
evas_canvas3d_material_color_set(EVAS_CANVAS3D_MATERIAL_SPECULAR, 1.0, 1.0, 1.0, 1.0),
evas_canvas3d_material_shininess_set(50.0));
/* Setup mesh for ball. */
eo_do(data->mesh_ball,
evas_3d_mesh_vertex_count_set(vertex_count),
evas_3d_mesh_frame_add(0),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_POSITION,
evas_canvas3d_mesh_vertex_count_set(vertex_count),
evas_canvas3d_mesh_frame_add(0),
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_POSITION,
sizeof(vertex), &vertices[0].position),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_NORMAL,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_NORMAL,
sizeof(vertex), &vertices[0].normal),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TANGENT,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_TANGENT,
sizeof(vertex), &vertices[0].tangent),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_COLOR,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_COLOR,
sizeof(vertex), &vertices[0].color),
evas_3d_mesh_frame_vertex_data_set(0, EVAS_3D_VERTEX_TEXCOORD,
evas_canvas3d_mesh_frame_vertex_data_set(0, EVAS_CANVAS3D_VERTEX_TEXCOORD,
sizeof(vertex), &vertices[0].texcoord),
evas_3d_mesh_index_data_set(EVAS_3D_INDEX_FORMAT_UNSIGNED_SHORT, index_count, &indices[0]),
evas_3d_mesh_vertex_assembly_set(EVAS_3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG),
evas_3d_mesh_frame_material_set(0, data->material_ball));
evas_canvas3d_mesh_index_data_set(EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT, index_count, &indices[0]),
evas_canvas3d_mesh_vertex_assembly_set(EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES),
evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_PHONG),
evas_canvas3d_mesh_frame_material_set(0, data->material_ball));
eo_do(data->root_node,
evas_3d_node_member_add(data->mesh_node_ball));
evas_canvas3d_node_member_add(data->mesh_node_ball));
eo_do(data->mesh_node_ball,
evas_3d_node_mesh_add(data->mesh_ball));
evas_canvas3d_node_mesh_add(data->mesh_ball));
}
static void
@ -671,16 +671,16 @@ _scene_setup(Scene_Data *data, Evas_Real r, int count)
{
Eina_List *l = NULL;
Eo *item = NULL;
data->scene = eo_add(EVAS_3D_SCENE_CLASS, evas);
data->scene = eo_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
/* Add the root node for the scene. */
data->root_node = eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_NODE));
data->root_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas,
evas_canvas3d_node_constructor(EVAS_CANVAS3D_NODE_TYPE_NODE));
eo_do(data->scene,
evas_3d_scene_size_set(WIDTH, HEIGHT),
evas_3d_scene_shadows_enable_set(EINA_TRUE),
evas_3d_scene_background_color_set(0.0, 0.0, 0.0, 0.0));
evas_canvas3d_scene_size_set(WIDTH, HEIGHT),
evas_canvas3d_scene_shadows_enable_set(EINA_TRUE),
evas_canvas3d_scene_background_color_set(0.0, 0.0, 0.0, 0.0));
_camera_setup(data);
_light_setup(data);
@ -698,8 +698,8 @@ _scene_setup(Scene_Data *data, Evas_Real r, int count)
nodes = eina_list_append(nodes, item);
eo_do(data->scene,
evas_3d_scene_root_node_set(data->root_node),
evas_3d_scene_camera_node_set(data->camera_node));
evas_canvas3d_scene_root_node_set(data->root_node),
evas_canvas3d_scene_camera_node_set(data->camera_node));
}
char score_buffer[32];
@ -738,7 +738,7 @@ _animate_ball(void *data)
elm_object_signal_emit(layout, "play", "efl_game");
eo_do(scene->mesh_node_ball,
evas_3d_node_position_set(ball_position_x, ball_position_y, ball_position_z));
evas_canvas3d_node_position_set(ball_position_x, ball_position_y, ball_position_z));
if ((ball_position_x < -21.0) || (ball_position_x > 21.0) || (ball_position_z < -21.0) || (ball_position_z > 21.0))
{
@ -792,12 +792,12 @@ _animate_ball(void *data)
}
eo_do(scene->mesh_node_ball,
evas_3d_node_position_get(EVAS_3D_SPACE_PARENT, &x, &y, &z));
evas_canvas3d_node_position_get(EVAS_CANVAS3D_SPACE_PARENT, &x, &y, &z));
EINA_LIST_FOREACH(scene->items, l, node)
{
eo_do(node,
evas_3d_node_position_get(EVAS_3D_SPACE_PARENT, &xx, &yy, &zz));
evas_canvas3d_node_position_get(EVAS_CANVAS3D_SPACE_PARENT, &xx, &yy, &zz));
d_x = xx - x;
d_y = yy - y;
@ -806,7 +806,7 @@ _animate_ball(void *data)
if (d_x < 2.0 && d_x > -2.0 && d_y < 2.0 && d_y > -2.0 && d_z < 2.0 && d_z > -2.0)
{
eo_do(scene->root_node,
evas_3d_node_member_del(node));
evas_canvas3d_node_member_del(node));
scene->items = eina_list_remove_list(scene->items, l);
i--;
@ -839,7 +839,7 @@ _animate_cubes(void *data)
EINA_LIST_FOREACH(scene->items, l, cube)
eo_do(cube,
evas_3d_node_orientation_angle_axis_set(angle, 1.0, 1.0, 1.0));
evas_canvas3d_node_orientation_angle_axis_set(angle, 1.0, 1.0, 1.0));
/* Rotate */
if (angle > 360.0)