summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHermet Park <chuneon.park@samsung.com>2020-03-25 19:14:02 +0900
committerHermet Park <chuneon.park@samsung.com>2020-03-25 19:14:02 +0900
commit476e2b0521df500776ef0e88f3f28bb5f6b26e78 (patch)
tree8b455b1e731c16efca7f4a4352e7b369e3cc1349
parentd4e6303d9e14c38f2d901b571261f27fe544b1de (diff)
downloadefl-476e2b0521df500776ef0e88f3f28bb5f6b26e78.tar.gz
canvas 3d: remove all canvas3d features across efl.
Reviewers: jsuya, kimcinoo, bu5hm4n, raster Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11552
-rw-r--r--src/bin/edje/edje_cc_handlers.c65
-rw-r--r--src/bin/edje/edje_cc_out.c7
-rw-r--r--src/lib/edje/edje_data.c2
-rw-r--r--src/lib/edje/edje_private.h11
-rw-r--r--src/lib/evas/Evas_Eo.h212
-rw-r--r--src/lib/evas/canvas/efl_canvas_scene3d.c310
-rw-r--r--src/lib/evas/canvas/efl_canvas_scene3d.eo20
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_camera.c203
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_camera.eo89
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_eet.c211
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_light.c309
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_light.eo249
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_material.c206
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_material.eo116
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_mesh.c1172
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_mesh.eo421
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_node.c1695
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_node.eo368
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_node_callback.h36
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_object.c101
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_object.eo77
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_primitive.c152
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_primitive.eo130
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_scene.c839
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_scene.eo168
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_texture.c606
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_texture.eo159
-rw-r--r--src/lib/evas/canvas/evas_canvas3d_types.eot293
-rw-r--r--src/lib/evas/canvas/evas_image_legacy.c2
-rw-r--r--src/lib/evas/canvas/evas_image_private.h6
-rw-r--r--src/lib/evas/canvas/evas_main.c5
-rw-r--r--src/lib/evas/canvas/evas_object_image.c43
-rw-r--r--src/lib/evas/canvas/evas_object_main.c32
-rw-r--r--src/lib/evas/canvas/evas_render.c14
-rw-r--r--src/lib/evas/canvas/meson.build23
-rw-r--r--src/lib/evas/common3d/meson.build2
-rw-r--r--src/lib/evas/common3d/primitives/meson.build5
-rw-r--r--src/lib/evas/common3d/primitives/primitive_common.c203
-rw-r--r--src/lib/evas/common3d/primitives/primitive_common.h62
-rw-r--r--src/lib/evas/common3d/primitives/solids_of_revolution/cone.c140
-rw-r--r--src/lib/evas/common3d/primitives/solids_of_revolution/cylinder.c136
-rw-r--r--src/lib/evas/common3d/primitives/solids_of_revolution/meson.build6
-rw-r--r--src/lib/evas/common3d/primitives/solids_of_revolution/sphere.c189
-rw-r--r--src/lib/evas/common3d/primitives/solids_of_revolution/torus.c67
-rw-r--r--src/lib/evas/common3d/primitives/surfaces/meson.build4
-rw-r--r--src/lib/evas/common3d/primitives/surfaces/surface.c91
-rw-r--r--src/lib/evas/common3d/primitives/surfaces/terrain.c86
-rw-r--r--src/lib/evas/common3d/primitives/tabulated_primitives/cube.c57
-rw-r--r--src/lib/evas/common3d/primitives/tabulated_primitives/meson.build4
-rw-r--r--src/lib/evas/common3d/primitives/tabulated_primitives/square.c18
-rw-r--r--src/lib/evas/common3d/save_load/evas_model_load.c82
-rw-r--r--src/lib/evas/common3d/save_load/evas_model_load_save_common.c230
-rw-r--r--src/lib/evas/common3d/save_load/evas_model_load_save_common.h62
-rw-r--r--src/lib/evas/common3d/save_load/evas_model_save.c34
-rw-r--r--src/lib/evas/common3d/save_load/meson.build6
-rw-r--r--src/lib/evas/include/evas_3d_utils.h1698
-rw-r--r--src/lib/evas/include/evas_common_private.h3
-rw-r--r--src/lib/evas/include/evas_inline.x2
-rw-r--r--src/lib/evas/include/evas_private.h509
-rw-r--r--src/lib/evas/meson.build23
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_3d.c1494
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_3d_common.h40
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_3d_private.h183
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_3d_renderer.c428
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_3d_shader.c751
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_common.h2
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_define.h1
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/color_pick_frag.shd15
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/color_pick_vert.shd11
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/diffuse_frag.shd16
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/diffuse_vert.shd13
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x2198
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/flat_frag.shd64
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/flat_vert.shd92
-rwxr-xr-xsrc/modules/evas/engines/gl_common/shader_3d/gen_shaders_3d.sh68
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/include.shd254
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/normal_map_frag.shd147
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/normal_map_vert.shd128
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_frag.shd240
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_vert.shd88
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/phong_frag.shd103
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/phong_vert.shd51
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_frag.shd63
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_vert.shd12
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/shadow_map_frag.shd60
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/shadow_map_vert.shd21
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/vertex_color_frag.shd17
-rw-r--r--src/modules/evas/engines/gl_common/shader_3d/vertex_color_vert.shd24
-rw-r--r--src/modules/evas/engines/gl_generic/Evas_Engine_GL_Generic.h2
-rw-r--r--src/modules/evas/engines/gl_generic/evas_engine.c204
-rw-r--r--src/modules/evas/engines/gl_generic/meson.build5
-rw-r--r--src/modules/evas/engines/software_generic/evas_engine.c19
-rw-r--r--src/modules/evas/meson.build2
-rw-r--r--src/modules/evas/model_loaders/eet/evas_model_load_eet.c111
-rw-r--r--src/modules/evas/model_loaders/md2/evas_model_load_md2.c423
-rw-r--r--src/modules/evas/model_loaders/meson.build1
-rw-r--r--src/modules/evas/model_loaders/obj/evas_model_load_obj.c461
-rw-r--r--src/modules/evas/model_loaders/ply/evas_model_load_ply.c252
-rw-r--r--src/modules/evas/model_savers/eet/evas_model_save_eet.c205
-rw-r--r--src/modules/evas/model_savers/meson.build1
-rw-r--r--src/modules/evas/model_savers/obj/evas_model_save_obj.c241
-rw-r--r--src/modules/evas/model_savers/ply/evas_model_save_ply.c91
-rw-r--r--src/tests/evas/evas_suite.c5
-rw-r--r--src/tests/evas/evas_suite.h5
-rw-r--r--src/tests/evas/evas_test_matrix.c42
-rw-r--r--src/tests/evas/evas_test_mesh.c202
-rw-r--r--src/tests/evas/meshes/md2/sonic.md2bin660576 -> 0 bytes
-rw-r--r--src/tests/evas/meshes/obj/man_mesh.obj2493
-rw-r--r--src/tests/evas/meshes/obj/sweet_home.obj107
-rw-r--r--src/tests/evas/meshes/ply/NoNormal_NoUVs_Colors.ply1679
-rw-r--r--src/tests/evas/meshes/ply/NoNormal_NoUVs_NoColors.ply1676
-rw-r--r--src/tests/evas/meshes/ply/NoNormal_UVs_Colors.ply1681
-rw-r--r--src/tests/evas/meshes/ply/NoNormal_UVs_NoColors.ply1678
-rw-r--r--src/tests/evas/meshes/ply/Normal_NoUVs_Colors.ply1682
-rw-r--r--src/tests/evas/meshes/ply/Normal_NoUVs_NoColors.ply1679
-rw-r--r--src/tests/evas/meshes/ply/Normal_UVs_Colors.ply1684
-rw-r--r--src/tests/evas/meshes/ply/Normal_UVs_NoColors.ply1681
-rw-r--r--src/tests/evas/meson.build2
118 files changed, 9 insertions, 36960 deletions
diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index 8a1f36b47c..3c9d997930 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -270,7 +270,6 @@ static void st_collections_group_script_recursion(void);
static void st_collections_group_alias(void);
static void st_collections_group_min(void);
static void st_collections_group_max(void);
-static void st_collections_group_scene_size(void);
static void st_collections_group_broadcast_signal(void);
static void st_collections_group_data_item(void);
static void st_collections_group_orientation(void);
@@ -680,7 +679,6 @@ New_Statement_Handler statement_handlers[] =
{"collections.group.alias", st_collections_group_alias},
{"collections.group.min", st_collections_group_min},
{"collections.group.max", st_collections_group_max},
- {"collections.group.scene_size", st_collections_group_scene_size},
{"collections.group.broadcast_signal", st_collections_group_broadcast_signal},
{"collections.group.orientation", st_collections_group_orientation},
{"collections.group.mouse_events", st_collections_group_mouse_events},
@@ -4126,9 +4124,6 @@ ob_collections_group(void)
pcp->default_mouse_events = 1;
pcp->inherit_script = EINA_FALSE;
- pc->scene_size.width = 0;
- pc->scene_size.height = 0;
-
#ifdef HAVE_EPHYSICS
pc->physics.world.gravity.x = 0;
pc->physics.world.gravity.y = 294;
@@ -4317,18 +4312,6 @@ _parts_count_update(unsigned int type, int inc)
current_de->count.PROXY += inc;
break;
- case EDJE_PART_TYPE_MESH_NODE:
- current_de->count.MESH_NODE += inc;
- break;
-
- case EDJE_PART_TYPE_LIGHT:
- current_de->count.LIGHT += inc;
- break;
-
- case EDJE_PART_TYPE_CAMERA:
- current_de->count.CAMERA += inc;
- break;
-
case EDJE_PART_TYPE_SPACER:
current_de->count.SPACER += inc;
break;
@@ -5183,30 +5166,6 @@ st_collections_group_max(void)
}
/**
- @page edcref
- @property
- scene_size
- @parameters
- [width] [height]
- @effect
- Size of scene.
-
- Defaults: 0.0 0.0
- @endproperty
- */
-static void
-st_collections_group_scene_size(void)
-{
- Edje_Part_Collection *pc;
-
- check_arg_count(2);
-
- pc = eina_list_data_get(eina_list_last(edje_collections));
- pc->scene_size.width = parse_float(0);
- pc->scene_size.height = parse_float(1);
-}
-
-/**
@page edcref
@property
broadcast_signal
@@ -6524,9 +6483,6 @@ st_collections_group_parts_part_name(void)
@li BOX
@li TABLE
@li EXTERNAL
- @li MESH_NODE
- @li CAMERA
- @li LIGHT
@li PROXY
@li SPACER
@li SNAPSHOT
@@ -6538,9 +6494,6 @@ static void
st_collections_group_parts_part_type(void)
{
unsigned int type;
- unsigned int i = 0;
-
- Edje_Part_Collection *pc;
check_arg_count(1);
@@ -6556,29 +6509,11 @@ st_collections_group_parts_part_type(void)
"TABLE", EDJE_PART_TYPE_TABLE,
"EXTERNAL", EDJE_PART_TYPE_EXTERNAL,
"PROXY", EDJE_PART_TYPE_PROXY,
- "MESH_NODE", EDJE_PART_TYPE_MESH_NODE,
- "LIGHT", EDJE_PART_TYPE_LIGHT,
- "CAMERA", EDJE_PART_TYPE_CAMERA,
"SPACER", EDJE_PART_TYPE_SPACER,
"SNAPSHOT", EDJE_PART_TYPE_SNAPSHOT,
"VECTOR", EDJE_PART_TYPE_VECTOR,
NULL);
- pc = eina_list_data_get(eina_list_last(edje_collections));
-
- if (type == EDJE_PART_TYPE_CAMERA)
- {
- for (i = 0; i < (pc->parts_count - 1); i++)
- {
- if (pc->parts[i]->type == EDJE_PART_TYPE_CAMERA)
- {
- WRN("parse error %s:%i. more then one part of type CAMERA in scene.",
- file_in, line - 1);
- exit(-1);
- }
- }
- }
-
_part_type_set(type);
}
diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c
index 0dcde387e9..64f6cec29d 100644
--- a/src/bin/edje/edje_cc_out.c
+++ b/src/bin/edje/edje_cc_out.c
@@ -715,13 +715,6 @@ check_program(Edje_Part_Collection *pc, Edje_Program *ep, Eet_File *ef)
Edje_Program_Target *et;
Eina_List *l;
unsigned int i = 0;
- int camera_id = -1;
-
- for (i = 0; (i < pc->parts_count) && (camera_id < 0); i++)
- {
- if (pc->parts[i]->type == EDJE_PART_TYPE_CAMERA)
- camera_id = i;
- }
if ((!ep->targets) && (ep->action == EDJE_ACTION_TYPE_SIGNAL_EMIT))
{
diff --git a/src/lib/edje/edje_data.c b/src/lib/edje/edje_data.c
index 8b07c9dc13..a4b3f90a94 100644
--- a/src/lib/edje/edje_data.c
+++ b/src/lib/edje/edje_data.c
@@ -1297,8 +1297,6 @@ _edje_edd_init(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "id", id, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_HASH_STRING(_edje_edd_edje_part_collection, Edje_Part_Collection, "alias", alias);
EET_DATA_DESCRIPTOR_ADD_HASH_STRING(_edje_edd_edje_part_collection, Edje_Part_Collection, "aliased", aliased);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "scene_size.width", scene_size.width, EDJE_T_FLOAT);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "scene_size.height", scene_size.height, EDJE_T_FLOAT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "prop.min.w", prop.min.w, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "prop.min.h", prop.min.h, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "prop.max.w", prop.max.w, EET_T_INT);
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index fa2d921212..03e288c567 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -897,9 +897,6 @@ struct _Edje_Limit
TYPE TABLE; \
TYPE SPACER; \
TYPE EXTERNAL; \
- TYPE MESH_NODE; \
- TYPE LIGHT; \
- TYPE CAMERA; \
TYPE SNAPSHOT; \
TYPE VECTOR;
@@ -1149,11 +1146,6 @@ struct _Edje_Part_Collection
} patterns;
/* *** *** */
- struct {
- Evas_Real height;
- Evas_Real width;
- } scene_size;
-
unsigned char lua_script_only;
unsigned char broadcast_signal;
unsigned char physics_enabled; /* will be 1 if a body is declared */
@@ -2368,9 +2360,6 @@ EAPI extern Eina_Mempool *_emp_BOX;
EAPI extern Eina_Mempool *_emp_TABLE;
EAPI extern Eina_Mempool *_emp_EXTERNAL;
EAPI extern Eina_Mempool *_emp_SPACER;
-EAPI extern Eina_Mempool *_emp_MESH_NODE;
-EAPI extern Eina_Mempool *_emp_LIGHT;
-EAPI extern Eina_Mempool *_emp_CAMERA;
EAPI extern Eina_Mempool *_emp_SNAPSHOT;
EAPI extern Eina_Mempool *_emp_part;
EAPI extern Eina_Mempool *_emp_VECTOR;
diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h
index 046f2c55d6..aefbe144f7 100644
--- a/src/lib/evas/Evas_Eo.h
+++ b/src/lib/evas/Evas_Eo.h
@@ -119,218 +119,6 @@ struct _Efl_Canvas_Object_Animation_Event
#include "canvas/efl_canvas_object_animation.eo.h"
#include "canvas/efl_canvas_event_grabber.eo.h"
- /**
- * @defgroup Evas_3D Evas 3D Extensions
- *
- * Evas extension to support 3D rendering.
- *
- * @ingroup Evas
- */
-
-#include "canvas/evas_canvas3d_types.eot.h"
-
-/**
- * @page evas_canvas3d_main Evas 3D
- *
- * @since 1.10
- *
- * @section evas_canvas3d_toc Table of Contents
- *
- * @li @ref evas_canvas3d_intro
- * @li @ref evas_canvas3d_example
- *
- * @section evas_canvas3d_intro Introduction
- *
- * Evas 3D is an extension to support 3D scene graph rendering into 2D Evas
- * canvases, with tree-based scene graph manipulation and other typical 3D
- * rendering techniques.
- *
- * 3D objects are used to describe three dimensional scenes and to provide
- * interfaces to connect the scene to an Evas image object for rendering.
- *
- * Scenes are constructed by locating cameras and lights and selecting desired
- * meshes, and organizing Node objects into hierarchical n-ary tree data structures.
- * The scene is stacked on the canvas with existing Evas objects, which permits
- * intermingling 3D rendered content in existing 2D application layouts.
- *
- * Rendering techniques supported by Evas 3D include flat and phong
- * shading, normal and texture mapping, and triangle meshes. Existing
- * Evas objects may also be used as textures inside the 3D scene,
- * including EFL widgets and even application windows. This latter
- * capability makes it possible to create a 3D version of an arbitrary
- * EFL application with minimal code changes.
- *
- * @section evas_canvas3d_example Introductory Example
- *
- * @include evas-3d-cube.c
- */
-
-/**
- * @defgroup Evas_Canvas3D_Types Types & Enums
- * @ingroup Evas_3D
- *
- * Primitive type definitions and enumerations.
- */
-
-/**
- * @defgroup Evas_Canvas3D_Object Generic 3D Object Descriptions
- * @ingroup Evas_3D
- *
- * The Evas_Canvas3D_Object structure is an abstract base for other Evas
- * 3D objects (scenes, nodes, lights, meshes, textures, and materials)
- * with reference counting and propagation of modifications via
- * reference tracking. This permits, for example, when a scene object
- * is modified (marked dirty), a number of image objects rendering that
- * object to be notified to update themselves, without needing to call
- * update functions manually.
- */
-
-/**
- * @defgroup Evas_Canvas3D_Scene Scene Object
- * @ingroup Evas_3D
- *
- * The Evas_Canvas3D_Scene structure represents a captured image of a
- * scene graph through its viewing camera. A scene can be associated
- * with an image object for canvas display via the
- * evas_object_image_scene_set() function.
- */
-
-/**
- * @defgroup Evas_Canvas3D_Node Node Object
- * @ingroup Evas_3D
- *
- * The Evas_Canvas3D_Node structure defines the position, orientation,
- * and scale of canvas objects (cameras, lights, meshes, etc.) in a 3D
- * space. These nodes can be organized into a hierarchical n-ary tree
- * structure to construct a scene graph.
- */
-
-/**
- * @defgroup Evas_Canvas3D_Camera Camera Object
- * @ingroup Evas_3D
- *
- * The Evas_Canvas3D_Camera structure defines properties used to
- * generate 2D pictures of a given scene graph, similar in concept to
- * focus length and film size for a real world camera.
- *
- * A given camera definition can be used to take multiple pictures of
- * the scene by establishing multiple nodes for the
- * Evas_Canvas3D_Camera, each of which are located at different
- * positions and with different orientations. Convenience routines
- * evas_canvas3d_node_position_set() and
- * evas_canvas3d_node_look_at_set() are provided to adjust the position
- * and viewing direction for these nodes.
- */
-
-/**
- * @defgroup Evas_Canvas3D_Light Light Object
- * @ingroup Evas_3D
- *
- * The Evas_Canvas3D_Light structure defines various light source
- * properties. Reflection models include: Ambient, diffuse, and
- * specular. Light models include directional, point, and spot. The
- * position and direction for the light is tracked by the node that
- * contains the light.
- */
-
-/**
- * @defgroup Evas_Canvas3D_Mesh Mesh Object
- * @ingroup Evas_3D
- *
- * The Evas_Canvas3D_Mesh structure manages key-frame based mesh
- * animations for geometrical objects like character models, terrain,
- * buildings, and other such visible objects. Each mesh frame can have
- * its own material and geometric data. Blending functions, fog
- * effects, level of detail boundaries, and shadow properties are also
- * supported.
- *
- * Like other data objects, a mesh definition is located and oriented in
- * the canvas with one or more nodes, with the mesh transformed from its
- * modeling coordinate space to the node's coordinate space. The frame
- * number is also tracked by the node, permitting creation of multiple
- * nodes in the canvas each set to a different animation frame, for
- * example.
- *
- * Unlike camera and light objects, multiple meshes can be contained in
- * a single node.
- */
-
-/**
- * @defgroup Evas_Canvas3D_Primitive Primitive Object
- * @ingroup Evas_3D
- *
- * The Evas_Canvas3D_Primitive structure defines the data for
- * generating meshes for various types of primitive shapes such as
- * cubes, cylinders, spheres, surfaces, terrain, etc. Use the
- * evas_canvas3d_mesh_from_primitive_set() function to generate a
- * mesh's frame of this primitive.
- */
-
-/**
- * @defgroup Evas_Canvas3D_Texture Texture Object
- * @ingroup Evas_3D
- *
- * The Evas_Canvas3D_Texture structure associates a 2D bitmap image to a
- * material for a surface. Image data for the texture can be loaded
- * from memory, a file, or an Evas_Object. Use the
- * evas_canvas3d_material_texture_set() function to add the texture to
- * an Evas_Canvas3DMaterial's slot.
- */
-
-/**
- * @defgroup Evas_Canvas3D_Material Material Object
- * @ingroup Evas_3D
- *
- * The Evas_Canvas3D_Material structure defines a set of material
- * attributes used for determining the color of mesh surfaces. Each
- * attribute is defined by a color value and texture map. The five
- * attributes are: ambient, diffuse, specular, emission, and normal.
- */
-
-/**
- * @typedef Evas_Canvas3D_Surface_Func
- *
- * The Evas_Canvas3D_Surface_Func type of functions are used to
- * create parametric surfaces as primitives. These compute the
- * vertex x,y,z values for given v,u values.
- *
- * @param out_x The x component of the calculated value.
- * @param out_y The y component of the calculated value.
- * @param out_z The z component of the calculated value.
- * @param a is the v value.
- * @param b is the u value.
-
- * @see Evas_Canvas3D_Primitive
- *
- * @since 1.15
- * @ingroup Evas_Canvas3D_Primitive
- */
-typedef void (Evas_Canvas3D_Surface_Func)(Evas_Real *out_x,
- Evas_Real *out_y,
- Evas_Real *out_z,
- Evas_Real a,
- Evas_Real b);
-
-#include "canvas/evas_canvas3d_object.eo.h"
-
-#include "canvas/evas_canvas3d_texture.eo.h"
-
-#include "canvas/evas_canvas3d_material.eo.h"
-
-#include "canvas/evas_canvas3d_light.eo.h"
-
-#include "canvas/evas_canvas3d_primitive.eo.h"
-
-#include "canvas/evas_canvas3d_mesh.eo.h"
-
-#include "canvas/evas_canvas3d_node.eo.h"
-
-#include "canvas/evas_canvas3d_camera.eo.h"
-
-#include "canvas/evas_canvas3d_scene.eo.h"
-
-#include "canvas/efl_canvas_scene3d.eo.h"
-
#include "canvas/efl_canvas_image_internal.eo.h"
#include "canvas/efl_canvas_image.eo.h"
#include "canvas/efl_canvas_snapshot.eo.h"
diff --git a/src/lib/evas/canvas/efl_canvas_scene3d.c b/src/lib/evas/canvas/efl_canvas_scene3d.c
deleted file mode 100644
index 513a68ba94..0000000000
--- a/src/lib/evas/canvas/efl_canvas_scene3d.c
+++ /dev/null
@@ -1,310 +0,0 @@
-#include "evas_image_private.h"
-#include "efl_canvas_scene3d.eo.h"
-
-#define MY_CLASS EFL_CANVAS_SCENE3D_CLASS
-
-EOLIAN static void
-_efl_canvas_scene3d_scene3d_set(Eo *eo_obj, void *pd EINA_UNUSED, Evas_Canvas3D_Scene *scene)
-{
- Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
- Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
- Evas_Image_Load_Opts lo;
- int load_error;
-
- if (o->cur->scene == scene) return;
-
- evas_object_async_block(obj);
- _evas_image_init_set(NULL, NULL, eo_obj, obj, o, &lo);
- o->engine_data = ENFN->image_mmap(ENC, o->cur->f, o->cur->key, &load_error, &lo);
- o->load_error = _evas_load_error_to_efl_gfx_image_load_error(load_error);
- _evas_image_done_set(eo_obj, obj, o);
-
- if (scene) _evas_image_3d_set(eo_obj, scene);
- else _evas_image_3d_unset(eo_obj, obj, o);
-}
-
-EOLIAN static Evas_Canvas3D_Scene *
-_efl_canvas_scene3d_scene3d_get(const Eo *eo_obj, void *pd EINA_UNUSED)
-{
- Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
- return o->cur->scene;
-}
-
-void
-_evas_image_3d_render(Evas *eo_e, Evas_Object *eo_obj,
- Evas_Object_Protected_Data *obj, Evas_Image_Data *o EINA_UNUSED,
- Evas_Canvas3D_Scene *scene, void *engine, void *output)
-{
- Evas_Public_Data *e;
- Eina_Bool need_native_set = EINA_FALSE;
- Evas_Canvas3D_Scene_Public_Data scene_data;
- Evas_Canvas3D_Scene_Data *pd_scene = NULL;
-
- pd_scene = efl_data_scope_get(scene, EVAS_CANVAS3D_SCENE_CLASS);
-
- if ((pd_scene->w == 0) || (pd_scene->h == 0)) return;
- if (!pd_scene->camera_node)
- {
- WRN("Camera has not been set to scene(%p)", scene);
- return;
- }
-
- e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
-
- if (pd_scene->surface)
- {
- int w = 0;
- int h = 0;
-
- if (e->engine.func->drawable_size_get)
- {
- e->engine.func->drawable_size_get(engine,
- pd_scene->surface, &w, &h);
- }
- if ((w != pd_scene->w) || (h != pd_scene->h))
- {
- if (e->engine.func->drawable_free)
- {
- e->engine.func->drawable_free(engine,
- pd_scene->surface);
- }
- pd_scene->surface = NULL;
- need_native_set = EINA_TRUE;
- }
- }
- else
- {
- /* TODO: Hard-coded alpha on. */
- if (e->engine.func->drawable_new)
- {
- pd_scene->surface =
- e->engine.func->drawable_new(engine,
- pd_scene->w, pd_scene->h, 1);
- }
- need_native_set = EINA_TRUE;
- }
-
- EINA_COW_WRITE_BEGIN(evas_object_3d_cow, obj->data_3d, Evas_Object_3D_Data,
- data)
- {
- if (need_native_set)
- {
- if (e->engine.func->image_drawable_set)
- {
- data->surface =
- e->engine.func->image_drawable_set(engine,
- data->surface,
- pd_scene->surface);
- }
- }
- data->w = pd_scene->w;
- data->h = pd_scene->h;
- }
- EINA_COW_WRITE_END(evas_object_3d_cow, obj->data_3d, data);
-
- evas_canvas3d_scene_data_init(&scene_data);
-
- scene_data.bg_color = pd_scene->bg_color;
- scene_data.shadows_enabled = pd_scene->shadows_enabled;
- scene_data.camera_node = pd_scene->camera_node;
- scene_data.depth_offset = pd_scene->depth_offset;
- scene_data.depth_constant = pd_scene->depth_constant;
- if (evas_object_anti_alias_get(eo_obj))
- {
- /*Use post processing render*/
- scene_data.post_processing = EINA_TRUE;
- scene_data.color_pick_enabled = EINA_FALSE;
- scene_data.render_to_texture = EINA_TRUE;
- scene_data.post_processing_type = EVAS_CANVAS3D_SHADER_MODE_POST_PROCESSING_FXAA;
- }
- /* Phase 1 - Update scene graph tree. */
- evas_canvas3d_object_update(scene);
-
- /* Phase 2 - Do frustum culling and get visible model nodes. */
- evas_canvas3d_node_tree_traverse(pd_scene->root_node,
- EVAS_CANVAS3D_TREE_TRAVERSE_LEVEL_ORDER, EINA_TRUE,
- evas_canvas3d_node_mesh_collect, &scene_data);
-
- /* Phase 3 - Collect active light nodes in the scene graph tree. */
- evas_canvas3d_node_tree_traverse(pd_scene->root_node,
- EVAS_CANVAS3D_TREE_TRAVERSE_ANY_ORDER, EINA_FALSE,
- evas_canvas3d_node_light_collect, &scene_data);
-
- /* Phase 5 - Draw the scene. */
- if (e->engine.func->drawable_scene_render)
- {
- e->engine.func->drawable_scene_render(engine, output,
- pd_scene->surface, &scene_data);
- }
- /* Clean up temporary resources. */
- evas_canvas3d_scene_data_fini(&scene_data);
-}
-
-void
-_evas_image_3d_set(Evas_Object *eo_obj, Evas_Canvas3D_Scene *scene)
-{
- Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
- Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
- Evas_Canvas3D_Scene_Data *pd_scene = efl_data_scope_get(scene,
- EVAS_CANVAS3D_SCENE_CLASS);
- EINA_COW_WRITE_BEGIN(evas_object_3d_cow, obj->data_3d, Evas_Object_3D_Data,
- data)
- {
- data->surface = NULL;
- data->w = 0;
- data->h = 0;
- efl_ref(scene);
- }
- EINA_COW_WRITE_END(evas_object_3d_cow, obj->data_3d, data);
-
- EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
- {
- state_write->scene = scene;
- }
- EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
-
- pd_scene->images = eina_list_append(pd_scene->images, eo_obj);
-}
-
-void
-_evas_image_3d_unset(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj,
- Evas_Image_Data *o)
-{
- Evas_Public_Data *e;
-
- if (!o->cur->scene) return;
-
- Evas_Canvas3D_Scene_Data *pd_scene =
- efl_data_scope_get(o->cur->scene, EVAS_CANVAS3D_SCENE_CLASS);
-
- EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
- {
- pd_scene->images = eina_list_remove(pd_scene->images, eo_obj);
- efl_unref(state_write->scene);
- state_write->scene = NULL;
- }
- EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
-
- if (o->cur->defmap)
- {
- EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
- {
- evas_map_free(state_write->defmap);
- state_write->defmap = NULL;
- }
- EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
- }
-
- EINA_COW_WRITE_BEGIN(evas_object_3d_cow, obj->data_3d, Evas_Object_3D_Data,
- data)
- {
- e = obj->layer->evas;
-
- if (data->surface)
- e->engine.func->image_free(_evas_engine_context(e), data->surface);
-
- data->surface = NULL;
- data->w = 0;
- data->h = 0;
- }
- EINA_COW_WRITE_END(evas_object_3d_cow, obj->data_3d, data);
-}
-
-EOLIAN static Eina_Rw_Slice
-_efl_canvas_scene3d_efl_gfx_buffer_buffer_map(Eo *eo_obj, void *_pd EINA_UNUSED,
- Efl_Gfx_Buffer_Access_Mode mode,
- const Eina_Rect *region,
- Efl_Gfx_Colorspace cspace, int plane,
- int *stride)
-{
- Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
- Evas_Public_Data *e;
- Evas_Canvas3D_Object_Data *pd_parent;
- Evas_Canvas3D_Scene_Data *pd_scene;
- int width = -1, height = -1, ntex = -1;
- unsigned char *pixels = NULL;
- Eina_Rw_Slice slice = {};
- int x, y, w, h;
- size_t len = 0;
-
- if (!o->cur->scene)
- {
- ERR("invalid scene data");
- return slice;
- }
- if (mode & EFL_GFX_BUFFER_ACCESS_MODE_WRITE)
- {
- ERR("invalid map access mode");
- return slice;
- }
- if (cspace != EFL_GFX_COLORSPACE_ARGB8888)
- {
- ERR("invalid map colorspace. Only ARGB is supported");
- return slice;
- }
-
- pd_parent = efl_data_scope_get(o->cur->scene, EVAS_CANVAS3D_OBJECT_CLASS);
- e = efl_data_scope_get(pd_parent->evas, EVAS_CANVAS_CLASS);
- pd_scene = efl_data_scope_get(o->cur->scene, EVAS_CANVAS3D_SCENE_CLASS);
-
- if (e->engine.func->drawable_size_get)
- {
- e->engine.func->drawable_size_get(_evas_engine_context(e),
- pd_scene->surface, &width, &height);
- }
-
- if (region)
- {
- x = region->x;
- y = region->y;
- w = region->w;
- h = region->h;
- }
- else
- {
- x = y = 0;
- w = width;
- h = height;
- }
-
- if ((x < 0) || (y < 0) || (w <= 0) || (h <= 0) || ((x + w) > width) || ((y + h) > height))
- {
- ERR("Invalid map dimensions : %dx%d +%d,%d. Image is %dx%d.",
- w, h, x, y, width, height);
- return slice;
- }
-
- if (e->engine.func->drawable_texture_target_id_get)
- {
- ntex = e->engine.func->drawable_texture_target_id_get(pd_scene->surface);
-
- if (e->engine.func->drawable_texture_rendered_pixels_get)
- {
- len = w * h * sizeof(DATA32); //four component texture
- pixels = malloc(len + sizeof(slice) + 8);
- e->engine.func->drawable_texture_rendered_pixels_get(ntex, x, y, w, h,
- pd_scene->surface, pixels);
- }
- else
- return slice;
- }
- else
- return slice;
-
- if (stride) *stride = w * sizeof(DATA32);
- slice.mem = pixels;
- slice.len = len;
- DBG("map(%p, %d,%d %dx%d plane:%d) -> " EINA_SLICE_FMT,
- eo_obj, x, y, w, h, plane, EINA_SLICE_PRINT(slice));
-
- return slice;
-}
-EOLIAN static Eina_Bool
-_efl_canvas_scene3d_efl_gfx_buffer_buffer_unmap(Eo *eo_obj EINA_UNUSED, void *_pd EINA_UNUSED,
- const Eina_Rw_Slice slice)
-{
- free(slice.mem);
- return EINA_TRUE;
-}
-
-#include "efl_canvas_scene3d.eo.c"
diff --git a/src/lib/evas/canvas/efl_canvas_scene3d.eo b/src/lib/evas/canvas/efl_canvas_scene3d.eo
deleted file mode 100644
index 8d506be64c..0000000000
--- a/src/lib/evas/canvas/efl_canvas_scene3d.eo
+++ /dev/null
@@ -1,20 +0,0 @@
-class @beta Efl.Canvas.Scene3d extends Efl.Canvas.Image_Internal
-{
- [[A UI view for EFL Canvas 3D.]]
- data: null;
- methods {
- @property scene3d {
- [[The 3d scene to display in this view.
- ]]
- set {}
- get {}
- values {
- scene: Evas.Canvas3D.Scene; [[3D scene.]]
- }
- }
- }
- implements {
- Efl.Gfx.Buffer.buffer_map;
- Efl.Gfx.Buffer.buffer_unmap;
- }
-}
diff --git a/src/lib/evas/canvas/evas_canvas3d_camera.c b/src/lib/evas/canvas/evas_canvas3d_camera.c
deleted file mode 100644
index 97f0576431..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_camera.c
+++ /dev/null
@@ -1,203 +0,0 @@
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-#define MY_CLASS EVAS_CANVAS3D_CAMERA_CLASS
-
-static Eina_Bool
-_camera_node_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
- void *data EINA_UNUSED, void *fdata)
-{
- Evas_Canvas3D_Node *n = *(Evas_Canvas3D_Node **)key;
- evas_canvas3d_object_change(n, EVAS_CANVAS3D_STATE_NODE_CAMERA, (Evas_Canvas3D_Object *)fdata);
- return EINA_TRUE;
-}
-
-EOLIAN static void
-_evas_canvas3d_camera_evas_canvas3d_object_change_notify(Eo *obj,Evas_Canvas3D_Camera_Data *pd, Evas_Canvas3D_State state EINA_UNUSED, Evas_Canvas3D_Object *ref EINA_UNUSED)
-{
- if (pd->nodes) eina_hash_foreach(pd->nodes, _camera_node_change_notify, obj);
-}
-
-EOLIAN static void
-_evas_canvas3d_camera_evas_canvas3d_object_update_notify(Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Camera_Data *pd EINA_UNUSED)
-{
-
-}
-
-void
-evas_canvas3d_camera_node_add(Evas_Canvas3D_Camera *camera, Evas_Canvas3D_Node *node)
-{
- Evas_Canvas3D_Camera_Data *pd = efl_data_scope_get(camera, MY_CLASS);
- int count = 0;
-
- if (!pd->nodes)
- {
- pd->nodes = eina_hash_pointer_new(NULL);
-
- if (!pd->nodes)
- {
- ERR("Failed to create hash table. camera(%p)", camera);
- return;
- }
- }
- else count = (int)(uintptr_t)eina_hash_find(pd->nodes, &node);
- eina_hash_set(pd->nodes, &node, (const void *)(uintptr_t)(count + 1));
-}
-
-void
-evas_canvas3d_camera_node_del(Evas_Canvas3D_Camera *camera, Evas_Canvas3D_Node *node)
-{
- Evas_Canvas3D_Camera_Data *pd = efl_data_scope_get(camera, MY_CLASS);
- int count = 0;
-
- if (!pd->nodes)
- {
- ERR("No node to delete.");
- return;
- }
-
- count = (int)(uintptr_t)eina_hash_find(pd->nodes, &node);
- if (count == 1) eina_hash_del(pd->nodes, &node, NULL);
- else eina_hash_set(pd->nodes, &node, (const void *)(uintptr_t)(count - 1));
-}
-
-EOLIAN static Eo *
-_evas_canvas3d_camera_efl_object_constructor(Eo *obj,
- Evas_Canvas3D_Camera_Data *pd EINA_UNUSED)
-{
- obj = efl_constructor(efl_super(obj, MY_CLASS));
- evas_canvas3d_object_type_set(obj, EVAS_CANVAS3D_OBJECT_TYPE_CAMERA);
-
- return obj;
-}
-
-EOLIAN static void
-_evas_canvas3d_camera_efl_object_destructor(Eo *obj,
- Evas_Canvas3D_Camera_Data *pd)
-{
- Eina_Iterator *it = NULL;
- void *data = NULL;
- Evas_Canvas3D_Node_Data *node = NULL;
-
- if (pd->nodes)
- {
- it = eina_hash_iterator_key_new(pd->nodes);
- while (eina_iterator_next(it, &data))
- {
- node = efl_data_scope_get(data, EVAS_CANVAS3D_NODE_CLASS);
- node->data.camera.camera = NULL;
- }
-
- eina_hash_free(pd->nodes);
- }
-
- efl_destructor(efl_super(obj, MY_CLASS));
-}
-
-EAPI Evas_Canvas3D_Camera *
-evas_canvas3d_camera_add(Evas *e)
-{
- MAGIC_CHECK(e, Evas, MAGIC_EVAS);
- return NULL;
- MAGIC_CHECK_END();
- return efl_add(MY_CLASS, e);
-}
-
-EOLIAN static void
-_evas_canvas3d_camera_projection_matrix_set(Eo *obj, Evas_Canvas3D_Camera_Data *pd,
- const Evas_Real *matrix)
-{
- eina_matrix4_array_set(&pd->projection, matrix);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_CAMERA_PROJECTION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_camera_projection_matrix_get(const Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Camera_Data *pd,
- Evas_Real *matrix)
-{
- memcpy(matrix, &pd->projection.xx, sizeof(Evas_Real) * 16);
-}
-
-EOLIAN static void
-_evas_canvas3d_camera_projection_perspective_set(Eo *obj, Evas_Canvas3D_Camera_Data *pd,
- Evas_Real fovy, Evas_Real aspect,
- Evas_Real dnear, Evas_Real dfar)
-{
- Evas_Real xmax;
- Evas_Real ymax;
-
- ymax = dnear * (Evas_Real)tan((double)fovy * M_PI / 360.0);
- xmax = ymax * aspect;
-
- evas_mat4_frustum_set(&pd->projection, -xmax, xmax, -ymax, ymax, dnear, dfar);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_CAMERA_PROJECTION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_camera_projection_frustum_set(Eo *obj, Evas_Canvas3D_Camera_Data *pd,
- Evas_Real left, Evas_Real right,
- Evas_Real bottom, Evas_Real top,
- Evas_Real dnear, Evas_Real dfar)
-{
- evas_mat4_frustum_set(&pd->projection, left, right, bottom, top, dnear, dfar);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_CAMERA_PROJECTION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_camera_projection_ortho_set(Eo *obj, Evas_Canvas3D_Camera_Data *pd,
- Evas_Real left, Evas_Real right,
- Evas_Real bottom, Evas_Real top,
- Evas_Real dnear, Evas_Real dfar)
-{
- eina_matrix4_ortho_set(&pd->projection, left, right, bottom, top, dnear, dfar);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_CAMERA_PROJECTION, NULL);
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_camera_node_visible_get(Eo *obj EINA_UNUSED, Evas_Canvas3D_Camera_Data *pd, Evas_Canvas3D_Node *camera_node, Evas_Canvas3D_Node *node, Evas_Canvas3D_Frustum_Mode key)
-{
- Eina_Matrix4 matrix_vp;
- Eina_Quaternion planes[6];
- Evas_Canvas3D_Node_Data *pd_node = efl_data_scope_get(node, EVAS_CANVAS3D_NODE_CLASS);
- Evas_Canvas3D_Node_Data *pd_camera = efl_data_scope_get(camera_node, EVAS_CANVAS3D_NODE_CLASS);
- Eina_Vector3 central_point;
-
- if (!node || pd_node->type != EVAS_CANVAS3D_NODE_TYPE_MESH)
- {
- ERR("Mesh node %p type mismatch.", node);
- return EINA_FALSE;
- }
-
- if (!camera_node || pd_camera->type != EVAS_CANVAS3D_NODE_TYPE_CAMERA)
- {
- ERR("Camera node %p type mismatch.", camera_node);
- return EINA_FALSE;
- }
-
- /*get need matrix like multiply projection matrix with view matrix*/
- eina_matrix4_multiply(&matrix_vp, &pd->projection, &pd_camera->data.camera.matrix_world_to_eye);
-
- evas_frustum_calculate(planes, &matrix_vp);
-
- if (key == EVAS_CANVAS3D_FRUSTUM_MODE_BSPHERE)
- return evas_is_sphere_in_frustum(&pd_node->bsphere, planes);
- else if (key == EVAS_CANVAS3D_FRUSTUM_MODE_AABB)
- return evas_is_box_in_frustum(&pd_node->aabb, planes);
- else if (key == EVAS_CANVAS3D_FRUSTUM_MODE_CENTRAL_POINT)
- {
- central_point.x = (pd_node->aabb.p0.x + pd_node->aabb.p1.x) / 2;
- central_point.y = (pd_node->aabb.p0.y + pd_node->aabb.p1.y) / 2;
- central_point.z = (pd_node->aabb.p0.z + pd_node->aabb.p1.z) / 2;
- return evas_is_point_in_frustum(&central_point, planes);
- }
- else
- {
- ERR("Unknown frustun mode.");
- return EINA_TRUE;
- }
-}
-
-#include "canvas/evas_canvas3d_camera.eo.c"
-
diff --git a/src/lib/evas/canvas/evas_canvas3d_camera.eo b/src/lib/evas/canvas/evas_canvas3d_camera.eo
deleted file mode 100644
index 9cd98007f2..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_camera.eo
+++ /dev/null
@@ -1,89 +0,0 @@
-import evas_canvas3d_types;
-
-class @beta Evas.Canvas3D.Camera extends Evas.Canvas3D.Object
-{
- [[Evas 3D canvas camera class]]
- data: Evas_Canvas3D_Camera_Data;
- methods {
- projection_matrix_set {
- [[Set the projection matrix of the given camera.
-
- Default projection matrix is identity matrix.
-
- See also @.projection_perspective_set, @.projection_ortho_set and @.projection_frustum_set.]]
- params {
- @in matrix: ptr(const(Evas.Real)); [[Projection Matrix]]
- }
- }
-
- projection_matrix_get @const {
- [[Get the projection matrix of the given camera.
-
- See also @.projection_matrix_set.]]
- params {
- @out matrix: Evas.Real; [[Projection Matrix]]
- }
- }
-
- projection_perspective_set {
- [[Set the projection matrix of the given camera with perspective projection.
-
- See also @.projection_matrix_set.]]
-
- params {
- fovy: Evas.Real; [[Field of view angle in Y direction.]]
- aspect: Evas.Real; [[Aspect ratio.]]
- dnear: Evas.Real; [[Distance to near clipping plane.]]
- dfar: Evas.Real; [[Distance to far clipping plane.]]
- }
- }
-
- projection_frustum_set {
- [[Set the projection matrix of the given camera with frustum projection.
-
- See also @.projection_matrix_set.]]
- params {
- left: Evas.Real; [[Left X coordinate of the near clipping plane.]]
- right: Evas.Real; [[Right X coordinate of the near clipping plane..]]
- bottom: Evas.Real; [[Bottom Y coordinate of the near clipping plane.]]
- top: Evas.Real; [[Top Y coordinate of the near clipping plane]]
- dnear: Evas.Real; [[Distance to near clipping plane.]]
- dfar: Evas.Real; [[Distance to far clipping plane.]]
- }
- }
- projection_ortho_set {
- [[Set the projection matrix of the given camera with orthogonal projection.
-
- See also @.projection_matrix_set.]]
- params {
- left: Evas.Real; [[Left X coordinate of the near clipping plane.]]
- right: Evas.Real; [[Right X coordinate of the near clipping plane..]]
- bottom: Evas.Real; [[Bottom Y coordinate of the near clipping plane.]]
- top: Evas.Real; [[Top Y coordinate of the near clipping plane]]
- dnear: Evas.Real; [[Distance to near clipping plane.]]
- dfar: Evas.Real; [[Distance to far clipping plane.]]
- }
- }
- node_visible_get {
- [[Check is bounding sphere of given node inside frustum of camera node.
-
- If the nodes are $null or nodes type mismatch error wrong type of nodes will be generated and returned $false.]]
- return: bool; [[$true in frustum, $false otherwise]]
- params {
- @in camera_node: Evas.Canvas3D.Node; [[The given camera node.]]
- @in node: Evas.Canvas3D.Node; [[The given node.]]
- @in key: Evas.Canvas3D.Frustum_Mode; [[The given key]]
- }
- }
- }
-
- implements {
- Efl.Object.constructor;
- Efl.Object.destructor;
- Evas.Canvas3D.Object.update_notify;
- Evas.Canvas3D.Object.change_notify;
- @empty Evas.Canvas3D.Object.callback_register;
- @empty Evas.Canvas3D.Object.callback_unregister;
- }
-
-}
diff --git a/src/lib/evas/canvas/evas_canvas3d_eet.c b/src/lib/evas/canvas/evas_canvas3d_eet.c
deleted file mode 100644
index ca24450626..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_eet.c
+++ /dev/null
@@ -1,211 +0,0 @@
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-static Eet_Data_Descriptor *_vec2_descriptor = NULL;
-static Eet_Data_Descriptor *_vec3_descriptor = NULL;
-static Eet_Data_Descriptor *_vertex_descriptor = NULL;
-static Eet_Data_Descriptor *_geometry_descriptor = NULL;
-static Eet_Data_Descriptor *_color_descriptor = NULL;
-static Eet_Data_Descriptor *_material_descriptor = NULL;
-static Eet_Data_Descriptor *_frame_descriptor = NULL;
-static Eet_Data_Descriptor *_mesh_descriptor = NULL;
-static Eet_Data_Descriptor *_header_descriptor = NULL;
-static Eet_Data_Descriptor *_file_descriptor = NULL;
-
-Evas_Canvas3D_File_Eet *
-_evas_canvas3d_eet_file_new(void)
-{
- Evas_Canvas3D_File_Eet *creating_file = calloc(1, sizeof(Evas_Canvas3D_File_Eet));
-
- if (!creating_file)
- {
- ERR("Could not calloc Evas_Canvas3D_File_Eet");
- return NULL;
- }
-
- return creating_file;
-}
-
-Eet_Data_Descriptor*
-_evas_canvas3d_eet_file_get(void)
-{
- if(_file_descriptor == NULL)
- _evas_canvas3d_eet_file_init();
-
- return _file_descriptor;
-}
-void
-_evas_canvas3d_eet_file_init(void)
-{
-/* initialization of bonding between structure units in eet file */
- Eet_Data_Descriptor_Class eddc;
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Evas_Canvas3D_Vec2_Eet);
- _vec2_descriptor = eet_data_descriptor_file_new(&eddc);
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Evas_Canvas3D_Vec3_Eet);
- _vec3_descriptor = eet_data_descriptor_file_new(&eddc);
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Evas_Canvas3D_Vertex_Eet);
- _vertex_descriptor = eet_data_descriptor_file_new(&eddc);
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Evas_Canvas3D_Geometry_Eet);
- _geometry_descriptor = eet_data_descriptor_file_new(&eddc);
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Evas_Canvas3D_Color_Eet);
- _color_descriptor = eet_data_descriptor_file_new(&eddc);
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Evas_Canvas3D_Frame_Eet);
- _frame_descriptor = eet_data_descriptor_file_new(&eddc);
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Evas_Canvas3D_Material_Eet);
- _material_descriptor = eet_data_descriptor_file_new(&eddc);
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Evas_Canvas3D_Mesh_Eet);
- _mesh_descriptor = eet_data_descriptor_file_new(&eddc);
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Evas_Canvas3D_Header_Eet);
- _header_descriptor = eet_data_descriptor_file_new(&eddc);
- EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Evas_Canvas3D_File_Eet);
- _file_descriptor = eet_data_descriptor_file_new(&eddc);
-
-/* Vec_2 */
-#define ADD_BASIC(member, eet_type) EET_DATA_DESCRIPTOR_ADD_BASIC \
- (_vec2_descriptor, Evas_Canvas3D_Vec3_Eet, # member, member, eet_type);
- ADD_BASIC(x, EET_T_FLOAT);
- ADD_BASIC(y, EET_T_FLOAT);
-#undef ADD_BASIC
-
-/* Vec_3 */
-#define ADD_BASIC(member, eet_type) EET_DATA_DESCRIPTOR_ADD_BASIC \
- (_vec3_descriptor, Evas_Canvas3D_Vec3_Eet, # member, member, eet_type);
- ADD_BASIC(x, EET_T_FLOAT);
- ADD_BASIC(y, EET_T_FLOAT);
- ADD_BASIC(z, EET_T_FLOAT);
-#undef ADD_BASIC
-
-/* Vertex */
- EET_DATA_DESCRIPTOR_ADD_SUB_NESTED(_vertex_descriptor, Evas_Canvas3D_Vertex_Eet,
- "position", position, _vec3_descriptor);
- EET_DATA_DESCRIPTOR_ADD_SUB_NESTED(_vertex_descriptor, Evas_Canvas3D_Vertex_Eet,
- "normal", normal, _vec3_descriptor);
- EET_DATA_DESCRIPTOR_ADD_SUB_NESTED(_vertex_descriptor, Evas_Canvas3D_Vertex_Eet,
- "texcoord", texcoord, _vec2_descriptor);
-
-/* Geometry */
- EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(_geometry_descriptor, Evas_Canvas3D_Geometry_Eet,
- "vertices", vertices, _vertex_descriptor);
-#define ADD_BASIC(member, eet_type) \
- EET_DATA_DESCRIPTOR_ADD_BASIC \
- (_geometry_descriptor, Evas_Canvas3D_Geometry_Eet, # member, member, eet_type);
- ADD_BASIC(vertices_count, EET_T_UINT);
- ADD_BASIC(id, EET_T_UINT);
-#undef ADD_BASIC
-
-/* Color */
-#define ADD_BASIC(member, eet_type) EET_DATA_DESCRIPTOR_ADD_BASIC \
- (_color_descriptor, Evas_Canvas3D_Color_Eet, # member, member, eet_type);
- ADD_BASIC(r, EET_T_FLOAT);
- ADD_BASIC(g, EET_T_FLOAT);
- ADD_BASIC(b, EET_T_FLOAT);
- ADD_BASIC(a, EET_T_FLOAT);
-#undef ADD_BASIC
-
-/* Material */
- EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(_material_descriptor, Evas_Canvas3D_Material_Eet,
- "colors", colors, _color_descriptor);
-#define ADD_BASIC(member, eet_type) \
- EET_DATA_DESCRIPTOR_ADD_BASIC \
- (_material_descriptor, Evas_Canvas3D_Material_Eet, # member, member, eet_type);
- ADD_BASIC(id, EET_T_UINT);
- ADD_BASIC(colors_count, EET_T_UINT);
- ADD_BASIC(shininess, EET_T_FLOAT);
-#undef ADD_BASIC
-
-/* Frame */
-#define ADD_BASIC(member, eet_type) EET_DATA_DESCRIPTOR_ADD_BASIC \
- (_frame_descriptor, Evas_Canvas3D_Frame_Eet, # member, member, eet_type);
- ADD_BASIC(id, EET_T_UINT);
- ADD_BASIC(geometry_id, EET_T_UINT);
- ADD_BASIC(material_id, EET_T_UINT);
-#undef ADD_BASIC
-
-/* Mesh */
- EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(_mesh_descriptor, Evas_Canvas3D_Mesh_Eet,
- "frames", frames, _frame_descriptor);
- EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(_mesh_descriptor, Evas_Canvas3D_Mesh_Eet,
- "geometries", geometries, _geometry_descriptor);
- EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(_mesh_descriptor, Evas_Canvas3D_Mesh_Eet,
- "materials", materials, _material_descriptor);
-#define ADD_BASIC(member, eet_type) \
- EET_DATA_DESCRIPTOR_ADD_BASIC \
- (_mesh_descriptor, Evas_Canvas3D_Mesh_Eet, # member, member, eet_type);
- ADD_BASIC(materials_count, EET_T_UINT);
- ADD_BASIC(frames_count, EET_T_UINT);
- ADD_BASIC(geometries_count, EET_T_UINT);
-#undef ADD_BASIC
-
-/* Header */
- EET_DATA_DESCRIPTOR_ADD_BASIC_VAR_ARRAY(_header_descriptor, Evas_Canvas3D_Header_Eet,
- "materials", materials, EET_T_UINT);
- EET_DATA_DESCRIPTOR_ADD_BASIC_VAR_ARRAY(_header_descriptor, Evas_Canvas3D_Header_Eet,
- "geometries", geometries, EET_T_UINT);
-#define ADD_BASIC(member, eet_type) \
- EET_DATA_DESCRIPTOR_ADD_BASIC \
- (_header_descriptor, Evas_Canvas3D_Header_Eet, # member, member, eet_type);
- ADD_BASIC(version, EET_T_UINT);
- ADD_BASIC(materials_count, EET_T_UINT);
- ADD_BASIC(frames, EET_T_UINT);
- ADD_BASIC(geometries_count, EET_T_UINT);
-#undef ADD_BASIC
-
-/* File */
- EET_DATA_DESCRIPTOR_ADD_SUB(_file_descriptor, Evas_Canvas3D_File_Eet,
- "mesh", mesh, _mesh_descriptor);
- EET_DATA_DESCRIPTOR_ADD_SUB(_file_descriptor, Evas_Canvas3D_File_Eet,
- "header", header, _header_descriptor);
-}
-
-void
-_evas_canvas3d_eet_descriptor_shutdown(void)
-{
- eet_data_descriptor_free(_geometry_descriptor);
- _geometry_descriptor = NULL;
- eet_data_descriptor_free(_vertex_descriptor);
- _vertex_descriptor = NULL;
- eet_data_descriptor_free(_vec2_descriptor);
- _vec2_descriptor = NULL;
- eet_data_descriptor_free(_vec3_descriptor);
- _vec3_descriptor = NULL;
- eet_data_descriptor_free(_color_descriptor);
- _color_descriptor = NULL;
- eet_data_descriptor_free(_material_descriptor);
- _material_descriptor = NULL;
- eet_data_descriptor_free(_frame_descriptor);
- _frame_descriptor = NULL;
- eet_data_descriptor_free(_mesh_descriptor);
- _mesh_descriptor = NULL;
- eet_data_descriptor_free(_header_descriptor);
- _header_descriptor = NULL;
- eet_data_descriptor_free(_file_descriptor);
- _file_descriptor = NULL;
-}
-
-void
-_evas_canvas3d_eet_file_free(Evas_Canvas3D_File_Eet* eet_file)
-{
- if (eet_file)
- {
- if (eet_file->mesh)
- {
- free(eet_file->mesh->geometries[0].vertices);
- free(eet_file->mesh->geometries);
- free(eet_file->mesh->frames);
- free(eet_file->mesh->materials[0].colors);
- free(eet_file->mesh->materials);
- free(eet_file->mesh);
- }
-
- if (eet_file->header)
- {
- free(eet_file->header->materials);
- free(eet_file->header->geometries);
- free(eet_file->header);
- }
-
- free(eet_file);
- }
-
- _evas_canvas3d_eet_descriptor_shutdown();
-}
diff --git a/src/lib/evas/canvas/evas_canvas3d_light.c b/src/lib/evas/canvas/evas_canvas3d_light.c
deleted file mode 100644
index 887f3abb6c..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_light.c
+++ /dev/null
@@ -1,309 +0,0 @@
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-#define MY_CLASS EVAS_CANVAS3D_LIGHT_CLASS
-
-static Eina_Bool
-_light_node_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
- void *data EINA_UNUSED, void *fdata)
-{
- Evas_Canvas3D_Node *n = *(Evas_Canvas3D_Node **)key;
- evas_canvas3d_object_change(n, EVAS_CANVAS3D_STATE_NODE_LIGHT, (Evas_Canvas3D_Object *)fdata);
- return EINA_TRUE;
-}
-
-EOLIAN static void
-_evas_canvas3d_light_evas_canvas3d_object_change_notify(Eo *obj, Evas_Canvas3D_Light_Data *pd, Evas_Canvas3D_State state EINA_UNUSED, Evas_Canvas3D_Object *ref EINA_UNUSED)
-{
- if (pd->nodes)
- eina_hash_foreach(pd->nodes, _light_node_change_notify, obj);
-}
-
-EOLIAN static void
-_evas_canvas3d_light_evas_canvas3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_Canvas3D_Light_Data *pd EINA_UNUSED)
-{
-
-}
-
-void
-evas_canvas3d_light_node_add(Evas_Canvas3D_Light *light, Evas_Canvas3D_Node *node)
-{
- int count = 0;
- Evas_Canvas3D_Light_Data *pd = efl_data_scope_get(light, MY_CLASS);
- if (pd->nodes == NULL)
- {
- pd->nodes = eina_hash_pointer_new(NULL);
-
- if (pd->nodes == NULL)
- {
- ERR("Failed to create hash table.");
- return;
- }
- }
- else
- count = (int)(uintptr_t)eina_hash_find(pd->nodes, &node);
-
- eina_hash_set(pd->nodes, &node, (const void *)(uintptr_t)(count + 1));
-}
-
-void
-evas_canvas3d_light_node_del(Evas_Canvas3D_Light *light, Evas_Canvas3D_Node *node)
-{
- int count = 0;
- Evas_Canvas3D_Light_Data *pd = efl_data_scope_get(light, MY_CLASS);
- if (pd->nodes == NULL)
- {
- ERR("No node to delete.");
- return;
- }
-
- count = (int)(uintptr_t)eina_hash_find(pd->nodes, &node);
-
- if (count == 1)
- eina_hash_del(pd->nodes, &node, NULL);
- else
- eina_hash_set(pd->nodes, &node, (const void *)(uintptr_t)(count - 1));
-}
-
-
-EAPI Evas_Canvas3D_Light *
-evas_canvas3d_light_add(Evas *e)
-{
- MAGIC_CHECK(e, Evas, MAGIC_EVAS);
- return NULL;
- MAGIC_CHECK_END();
- return efl_add(MY_CLASS, e);
-}
-
-EOLIAN static Eo *
-_evas_canvas3d_light_efl_object_constructor(Eo *obj, Evas_Canvas3D_Light_Data *pd)
-{
- obj = efl_constructor(efl_super(obj, MY_CLASS));
- evas_canvas3d_object_type_set(obj, EVAS_CANVAS3D_OBJECT_TYPE_LIGHT);
- evas_color_set(&pd->ambient, 0.0, 0.0, 0.0, 1.0);
- evas_color_set(&pd->diffuse, 1.0, 1.0, 1.0, 1.0);
- evas_color_set(&pd->specular, 1.0, 1.0, 1.0, 1.0);
-
- pd->spot_exp = 0.0;
- pd->spot_cutoff = 180.0;
- pd->spot_cutoff_cos = -1.0;
-
- pd->atten_const = 1.0;
- pd->atten_linear = 0.0;
- pd->atten_quad = 0.0;
-
- return obj;
-}
-
-EOLIAN static void
-_evas_canvas3d_light_efl_object_destructor(Eo *obj, Evas_Canvas3D_Light_Data *pd)
-{
- Eina_Iterator *it = NULL;
- void *data = NULL;
- Evas_Canvas3D_Node_Data *node = NULL;
-
- if (pd->nodes)
- {
- it = eina_hash_iterator_key_new(pd->nodes);
- while (eina_iterator_next(it, &data))
- {
- node = efl_data_scope_get(data, EVAS_CANVAS3D_NODE_CLASS);
- node->data.light.light = NULL;
- }
-
- eina_hash_free(pd->nodes);
- }
-
- efl_destructor(efl_super(obj, MY_CLASS));
-}
-
-
-EOLIAN static void
-_evas_canvas3d_light_directional_set(Eo *obj, Evas_Canvas3D_Light_Data *pd, Eina_Bool directional)
-{
- if (pd->directional != directional)
- {
- pd->directional = directional;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_ANY, NULL);
- }
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_light_directional_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Light_Data *pd)
-{
- return pd->directional;
-}
-
-EOLIAN static void
-_evas_canvas3d_light_ambient_set(Eo *obj, Evas_Canvas3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
-{
- pd->ambient.r = r;
- pd->ambient.g = g;
- pd->ambient.b = b;
- pd->ambient.a = a;
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_LIGHT_AMBIENT, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_light_ambient_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Light_Data *pd, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
-{
- if (r) *r = pd->ambient.r;
- if (g) *g = pd->ambient.g;
- if (b) *b = pd->ambient.b;
- if (a) *a = pd->ambient.a;
-}
-
-EOLIAN static void
-_evas_canvas3d_light_diffuse_set(Eo *obj, Evas_Canvas3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
-{
- pd->diffuse.r = r;
- pd->diffuse.g = g;
- pd->diffuse.b = b;
- pd->diffuse.a = a;
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_LIGHT_DIFFUSE, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_light_diffuse_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Light_Data *pd, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
-{
- if (r) *r = pd->diffuse.r;
- if (g) *g = pd->diffuse.g;
- if (b) *b = pd->diffuse.b;
- if (a) *a = pd->diffuse.a;
-}
-
-EOLIAN static void
-_evas_canvas3d_light_specular_set(Eo *obj, Evas_Canvas3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
-{
- pd->specular.r = r;
- pd->specular.g = g;
- pd->specular.b = b;
- pd->specular.a = a;
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_LIGHT_SPECULAR, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_light_specular_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Light_Data *pd, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
-{
- if (r) *r = pd->specular.r;
- if (g) *g = pd->specular.g;
- if (b) *b = pd->specular.b;
- if (a) *a = pd->specular.a;
-}
-
-EOLIAN static void
-_evas_canvas3d_light_spot_exponent_set(Eo *obj, Evas_Canvas3D_Light_Data *pd, Evas_Real exponent)
-{
- pd->spot_exp = exponent;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_LIGHT_SPOT_EXP, NULL);
-}
-
-EOLIAN static Evas_Real
-_evas_canvas3d_light_spot_exponent_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Light_Data *pd)
-{
- return pd->spot_exp;
-}
-
-EOLIAN static void
-_evas_canvas3d_light_spot_cutoff_set(Eo *obj, Evas_Canvas3D_Light_Data *pd, Evas_Real cutoff)
-{
- pd->spot_cutoff = cutoff;
- pd->spot_cutoff_cos = cos(cutoff * M_PI / 180.0);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_LIGHT_SPOT_CUTOFF, NULL);
-}
-
-EOLIAN static Evas_Real
-_evas_canvas3d_light_spot_cutoff_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Light_Data *pd)
-{
- return pd->spot_cutoff;
-}
-
-EOLIAN static void
-_evas_canvas3d_light_attenuation_set(Eo *obj, Evas_Canvas3D_Light_Data *pd, Evas_Real constant, Evas_Real linear, Evas_Real quadratic)
-{
- pd->atten_const = constant;
- pd->atten_linear = linear;
- pd->atten_quad = quadratic;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_LIGHT_ATTENUATION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_light_attenuation_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Light_Data *pd, Evas_Real *constant, Evas_Real *linear, Evas_Real *quadratic)
-{
- if (constant) *constant = pd->atten_const;
- if (linear) *linear = pd->atten_linear;
- if (quadratic) *quadratic = pd->atten_quad;
-}
-
-EOLIAN static void
-_evas_canvas3d_light_attenuation_enable_set(Eo *obj, Evas_Canvas3D_Light_Data *pd, Eina_Bool enable)
-{
- if (pd->enable_attenuation != enable)
- {
- pd->enable_attenuation = enable;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_LIGHT_ATTENUATION, NULL);
- }
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_light_attenuation_enable_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Light_Data *pd)
-{
- return pd->enable_attenuation;
-}
-
-EOLIAN static void
-_evas_canvas3d_light_projection_matrix_set(Eo *obj, Evas_Canvas3D_Light_Data *pd,
- const Evas_Real *matrix)
-{
- eina_matrix4_array_set(&pd->projection, matrix);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_LIGHT_PROJECTION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_light_projection_matrix_get(const Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Light_Data *pd,
- Evas_Real *matrix)
-{
- memcpy(matrix, &pd->projection.xx, sizeof(Evas_Real) * 16);
-}
-
-EOLIAN static void
-_evas_canvas3d_light_projection_perspective_set(Eo *obj, Evas_Canvas3D_Light_Data *pd,
- Evas_Real fovy, Evas_Real aspect,
- Evas_Real dnear, Evas_Real dfar)
-{
- Evas_Real xmax;
- Evas_Real ymax;
-
- ymax = dnear * (Evas_Real)tan((double)fovy * M_PI / 360.0);
- xmax = ymax * aspect;
-
- evas_mat4_frustum_set(&pd->projection, -xmax, xmax, -ymax, ymax, dnear, dfar);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_LIGHT_PROJECTION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_light_projection_frustum_set(Eo *obj, Evas_Canvas3D_Light_Data *pd,
- Evas_Real left, Evas_Real right,
- Evas_Real bottom, Evas_Real top,
- Evas_Real dnear, Evas_Real dfar)
-{
- evas_mat4_frustum_set(&pd->projection, left, right, bottom, top, dnear, dfar);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_LIGHT_PROJECTION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_light_projection_ortho_set(Eo *obj, Evas_Canvas3D_Light_Data *pd,
- Evas_Real left, Evas_Real right,
- Evas_Real bottom, Evas_Real top,
- Evas_Real dnear, Evas_Real dfar)
-{
- eina_matrix4_ortho_set(&pd->projection, left, right, bottom, top, dnear, dfar);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_LIGHT_PROJECTION, NULL);
-}
-
-
-#include "canvas/evas_canvas3d_light.eo.c"
diff --git a/src/lib/evas/canvas/evas_canvas3d_light.eo b/src/lib/evas/canvas/evas_canvas3d_light.eo
deleted file mode 100644
index f15a088f17..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_light.eo
+++ /dev/null
@@ -1,249 +0,0 @@
-import evas_canvas3d_types;
-
-class @beta Evas.Canvas3D.Light extends Evas.Canvas3D.Object
-{
- [[Evas 3D canvas light class]]
-
- data: Evas_Canvas3D_Light_Data;
-
- methods {
- @property directional {
- [[The directional flag of the given light.
-
- Directional light is a type of light which is infinitely far away with no
- attenuation. The light direction is determined by the containing node's
- forward vector (negative Z-axis).
-
- By default, directional is not enabled.
-
- \@ref evas_canvas3d_node_look_at_set]]
- set {
- }
- get {
- }
- values {
- directional: bool; [[Whether the light is directional ($true), or not ($false).]]
- }
- }
-
- @property spot_exponent {
- [[The spot exponent of the given light.
-
- Higher spot exponent means intensity at the center of the cone is relatively
- stronger. Zero exponent means the light intensity is evenly distributed. The
- spot exponent has no effect when the light is not spot light (spot cutoff
- angle is less than 180 degree).
-
- Default spot exponent is 0.
-
- See also @.spot_cutoff.set]]
- set {
- }
- get {
- }
- values {
- exponent: Evas.Real; [[Spot exponent value.]]
- }
- }
-
- @property spot_cutoff {
- [[The spot cutoff angle of the given light.
-
- Only angle less than 180 degree will make it spot light, so that other spot
- light attribute will take effect.
-
- Default spot cutoff angle is 180.]]
- set {
- }
- get {
- }
- values {
- cutoff: Evas.Real; [[Cutoff angle in degree..]]
- }
- }
-
- @property attenuation_enable {
- [[The attenuation enable flag of the given light.
-
- By default, light attenuation is not enabled.
-
- See also @.attenuation_set]]
- set {
- }
- get {
- }
- values {
- enable: bool; [[Whether to enable attenuation ($true), or not ($false)..]]
- }
- }
-
- ambient_set {
- [[Set the ambient color of the given light.
-
- Default ambient color is (0.0, 0.0, 0.0, 1.0).]]
- params {
- @in r: Evas.Real; [[Red component of the ambient color between [0.0, 1.0].]]
- @in g: Evas.Real; [[Green component of the ambient color between [0.0, 1.0].]]
- @in b: Evas.Real; [[Blue component of the ambient color between [0.0, 1.0].]]
- @in a: Evas.Real; [[Alpha component of the ambient color between [0.0, 1.0].]]
- }
- }
- ambient_get @const {
- [[Get the ambient color of the given light.
-
- See also @.ambient_set]]
- params {
- @out r: Evas.Real; [[Red component of the ambient color between [0.0, 1.0].]]
- @out g: Evas.Real; [[Green component of the ambient color between [0.0, 1.0].]]
- @out b: Evas.Real; [[Blue component of the ambient color between [0.0, 1.0].]]
- @out a: Evas.Real; [[Alpha component of the ambient color between [0.0, 1.0].]]
- }
- }
-
- diffuse_set {
- [[Set the diffuse color of the given light.
-
- Default diffuse color is (1.0, 1.0, 1.0, 1.0).]]
- params {
- @in r: Evas.Real; [[Red component of the diffuse color between [0.0, 1.0].]]
- @in g: Evas.Real; [[Green component of the diffuse color between [0.0, 1.0].]]
- @in b: Evas.Real; [[Blue component of the diffuse color between [0.0, 1.0].]]
- @in a: Evas.Real; [[Alpha component of the diffuse color between [0.0, 1.0].]]
- }
- }
- diffuse_get @const {
- [[Get the diffuse color of the given light.
-
- See also @.diffuse_set]]
- params {
- @out r: Evas.Real; [[Red component of the diffuse color between [0.0, 1.0].]]
- @out g: Evas.Real; [[Green component of the diffuse color between [0.0, 1.0].]]
- @out b: Evas.Real; [[Blue component of the diffuse color between [0.0, 1.0].]]
- @out a: Evas.Real; [[Alpha component of the diffuse color between [0.0, 1.0].]]
- }
- }
-
- specular_set {
- [[Set the specular color of the given light.
-
- Default specular color is (1.0, 1.0, 1.0, 1.0).]]
- params {
- @in r: Evas.Real; [[Red component of the specular color between [0.0, 1.0].]]
- @in g: Evas.Real; [[Green component of the specular color between [0.0, 1.0].]]
- @in b: Evas.Real; [[Blue component of the specular color between [0.0, 1.0].]]
- @in a: Evas.Real; [[Alpha component of the specular color between [0.0, 1.0].]]
- }
- }
- specular_get @const {
- [[Get the specular color of the given light.
-
- See also @.specular_set]]
- params {
- @out r: Evas.Real; [[Red component of the specular color between [0.0, 1.0].]]
- @out g: Evas.Real; [[Green component of the specular color between [0.0, 1.0].]]
- @out b: Evas.Real; [[Blue component of the specular color between [0.0, 1.0].]]
- @out a: Evas.Real; [[Alpha component of the specular color between [0.0, 1.0].]]
- }
- }
-
- attenuation_set {
- [[Set the attenuation of the given light.
-
- Light attenuation has no effect with directional light. And the attenuation
- should be enabled first to take effect. The attenuation factor is calculated
- as follows.
-
- atten = 1.0 / constant + linear * distance + quadratic * distance * distance
-
- Default attenuation is constant = 1.0, linear = 0.0, quadratic = 0.0.
-
- See also @.attenuation_enable.set]]
- params {
- @in constant: Evas.Real; [[Constant attenuation term..]]
- @in linear: Evas.Real; [[Linear attenuation term..]]
- @in quadratic: Evas.Real; [[Quadratic attenuation term..]]
- }
- }
-
- attenuation_get @const {
- [[Get the attenuation of the given light.
-
- See also @.attenuation_set]]
- params {
- @out constant: Evas.Real; [[Constant attenuation term..]]
- @out linear: Evas.Real; [[Linear attenuation term..]]
- @out quadratic: Evas.Real; [[Quadratic attenuation term..]]
- }
- }
-
- projection_matrix_set {
- [[Set the projection matrix of the given light source.
-
- Default projection matrix is identity matrix.
-
- See also @.projection_perspective_set, @.projection_ortho_set and @.projection_frustum_set]]
- params {
- @in matrix: ptr(const(Evas.Real)); [[Projection Matrix. Pointer to the array of 16 Evas.Real values in column major order.]]
- }
- }
-
- projection_matrix_get @const {
- [[Get the projection matrix of the given light source.
-
- See also @.projection_matrix_set]]
- params {
- @out matrix: Evas.Real; [[Projection Matrix]]
- }
- }
-
- projection_perspective_set {
- [[Set the projection matrix of the given light source with perspective projection.
-
- See also @.projection_matrix_set]]
-
- params {
- fovy: Evas.Real; [[Field of view angle in Y direction.]]
- aspect: Evas.Real; [[Aspect ratio.]]
- dnear: Evas.Real; [[Distance to near clipping plane.]]
- dfar: Evas.Real; [[Distance to far clipping plane.]]
- }
- }
-
- projection_frustum_set {
- [[Set the projection matrix of the given light source with frustum projection.
-
- @Evas.Canvas3D.Light.projection_matrix_set]]
- params {
- left: Evas.Real; [[Left X coordinate of the near clipping plane.]]
- right: Evas.Real; [[Right X coordinate of the near clipping plane.]]
- bottom: Evas.Real; [[Bottom Y coordinate of the near clipping plane.]]
- top: Evas.Real; [[Top Y coordinate of the near clipping plane]]
- dnear: Evas.Real; [[Distance to near clipping plane.]]
- dfar: Evas.Real; [[Distance to far clipping plane.]]
- }
- }
- projection_ortho_set {
- [[Set the projection matrix of the given light source with orthogonal projection.
-
- See also @.projection_matrix_set]]
- params {
- left: Evas.Real; [[Left X coordinate of the near clipping plane.]]
- right: Evas.Real; [[Right X coordinate of the near clipping plane.]]
- bottom: Evas.Real; [[Bottom Y coordinate of the near clipping plane.]]
- top: Evas.Real; [[Top Y coordinate of the near clipping plane]]
- dnear: Evas.Real; [[Distance to near clipping plane.]]
- dfar: Evas.Real; [[Distance to far clipping plane.]]
- }
- }
- }
-
- implements {
- Efl.Object.constructor;
- Efl.Object.destructor;
- Evas.Canvas3D.Object.update_notify;
- Evas.Canvas3D.Object.change_notify;
- @empty Evas.Canvas3D.Object.callback_register;
- @empty Evas.Canvas3D.Object.callback_unregister;
- }
-
-}
diff --git a/src/lib/evas/canvas/evas_canvas3d_material.c b/src/lib/evas/canvas/evas_canvas3d_material.c
deleted file mode 100644
index 48f6ce1e5a..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_material.c
+++ /dev/null
@@ -1,206 +0,0 @@
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-#define MY_CLASS EVAS_CANVAS3D_MATERIAL_CLASS
-
-static Eina_Bool
-_material_mesh_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
- void *data EINA_UNUSED, void *fdata)
-{
- Evas_Canvas3D_Mesh *m = *(Evas_Canvas3D_Mesh **)key;
- evas_canvas3d_object_change(m, EVAS_CANVAS3D_STATE_MESH_MATERIAL, (Evas_Canvas3D_Object *)fdata);
- return EINA_TRUE;
-}
-
-EOLIAN static void
-_evas_canvas3d_material_evas_canvas3d_object_change_notify(Eo *obj, Evas_Canvas3D_Material_Data *pd, Evas_Canvas3D_State state EINA_UNUSED, Evas_Canvas3D_Object *ref EINA_UNUSED)
-{
- if (pd->meshes)
- eina_hash_foreach(pd->meshes, _material_mesh_change_notify, obj);
-}
-
-EOLIAN static void
-_evas_canvas3d_material_evas_canvas3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_Canvas3D_Material_Data *pd)
-{
- int i;
- for (i = 0; i < EVAS_CANVAS3D_MATERIAL_ATTRIB_COUNT; i++)
- {
- if (pd->attribs[i].enable)
- {
- if (pd->attribs[i].texture)
- {
- evas_canvas3d_object_update(pd->attribs[i].texture);
- }
- }
- }
-}
-
-void
-evas_canvas3d_material_mesh_add(Evas_Canvas3D_Material *material, Evas_Canvas3D_Mesh *mesh)
-{
- int count = 0;
- Evas_Canvas3D_Material_Data *pd = efl_data_scope_get(material, MY_CLASS);
-
- if (pd->meshes == NULL)
- {
- pd->meshes = eina_hash_pointer_new(NULL);
-
- if (pd->meshes == NULL)
- {
- ERR("Failed to create hash table.");
- return;
- }
- }
- else
- count = (int)(uintptr_t)eina_hash_find(pd->meshes, &mesh);
-
- eina_hash_set(pd->meshes, &mesh, (const void *)(uintptr_t)(count + 1));
-}
-
-void
-evas_canvas3d_material_mesh_del(Evas_Canvas3D_Material *material, Evas_Canvas3D_Mesh *mesh)
-{
- int count = 0;
- Evas_Canvas3D_Material_Data *pd = efl_data_scope_get(material, MY_CLASS);
-
- if (pd->meshes == NULL)
- {
- ERR("No mesh to delete.");
- return;
- }
-
- count = (int)(uintptr_t)eina_hash_find(pd->meshes, &mesh);
-
- if (count == 1)
- eina_hash_del(pd->meshes, &mesh, NULL);
- else
- eina_hash_set(pd->meshes, &mesh, (const void *)(uintptr_t)(count - 1));
-}
-
-
-EAPI Evas_Canvas3D_Material *
-evas_canvas3d_material_add(Evas *e)
-{
- MAGIC_CHECK(e, Evas, MAGIC_EVAS);
- return NULL;
- MAGIC_CHECK_END();
- return efl_add(MY_CLASS, e);
-}
-
-EOLIAN static Eo *
-_evas_canvas3d_material_efl_object_constructor(Eo *obj EINA_UNUSED, Evas_Canvas3D_Material_Data *pd)
-{
- obj = efl_constructor(efl_super(obj, MY_CLASS));
- evas_canvas3d_object_type_set(obj, EVAS_CANVAS3D_OBJECT_TYPE_MATERIAL);
-
- evas_color_set(&pd->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT].color, 0.2, 0.2, 0.2, 1.0);
- evas_color_set(&pd->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE].color, 0.8, 0.8, 0.8, 1.0);
- evas_color_set(&pd->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR].color, 1.0, 1.0, 1.0, 1.0);
- evas_color_set(&pd->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_EMISSION].color, 0.0, 0.0, 0.0, 1.0);
- pd->shininess = 150.0;
-
- return obj;
-}
-
-EOLIAN static void
-_evas_canvas3d_material_efl_object_destructor(Eo *obj, Evas_Canvas3D_Material_Data *pd)
-{
- int i = 0;
- Eina_Iterator *it = NULL;
- void *data = NULL;
- Evas_Canvas3D_Mesh_Data *mesh = NULL;
- Eina_List *l = NULL;
- Evas_Canvas3D_Mesh_Frame *f = NULL;
-
- if (pd->meshes)
- {
- it = eina_hash_iterator_key_new(pd->meshes);
- while (eina_iterator_next(it, &data))
- {
- mesh = efl_data_scope_get(data, EVAS_CANVAS3D_MESH_CLASS);
- if (mesh->frames)
- {
- EINA_LIST_FOREACH(mesh->frames, l, f)
- f->material = NULL;
- }
- }
- eina_iterator_free(it);
- eina_hash_free(pd->meshes);
- }
-
- for (i = 0; i < EVAS_CANVAS3D_MATERIAL_ATTRIB_COUNT; i++)
- {
- if (pd->attribs[i].texture)
- {
- evas_canvas3d_texture_material_del(pd->attribs[i].texture, obj);
- }
- }
- efl_destructor(efl_super(obj, MY_CLASS));
-}
-
-EOLIAN static void
-_evas_canvas3d_material_enable_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Material_Data *pd, Evas_Canvas3D_Material_Attrib attrib, Eina_Bool enable)
-{
- pd->attribs[attrib].enable = enable;
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_material_enable_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Material_Data *pd, Evas_Canvas3D_Material_Attrib attrib)
-{
- return pd->attribs[attrib].enable;
-}
-
-EOLIAN static void
-_evas_canvas3d_material_color_set(Eo *obj, Evas_Canvas3D_Material_Data *pd, Evas_Canvas3D_Material_Attrib attrib, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
-{
- evas_color_set(&pd->attribs[attrib].color, r, g, b, a);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MATERIAL_COLOR, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_material_color_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Material_Data *pd, Evas_Canvas3D_Material_Attrib attrib, Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
-{
- if (r) *r = pd->attribs[attrib].color.r;
- if (g) *g = pd->attribs[attrib].color.g;
- if (b) *b = pd->attribs[attrib].color.b;
- if (a) *a = pd->attribs[attrib].color.a;
-}
-
-EOLIAN static void
-_evas_canvas3d_material_shininess_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Material_Data *pd, Evas_Real shininess)
-{
- pd->shininess = shininess;
-}
-
-EOLIAN static Evas_Real
-_evas_canvas3d_material_shininess_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Material_Data *pd)
-{
- return pd->shininess;
-}
-
-EOLIAN static void
-_evas_canvas3d_material_texture_set(Eo *obj, Evas_Canvas3D_Material_Data *pd, Evas_Canvas3D_Material_Attrib attrib, Evas_Canvas3D_Texture *texture)
-{
- if (pd->attribs[attrib].texture != texture)
- {
- if (pd->attribs[attrib].texture)
- {
- evas_canvas3d_texture_material_del(pd->attribs[attrib].texture, obj);
- efl_unref(pd->attribs[attrib].texture);
- }
-
- pd->attribs[attrib].texture = texture;
- evas_canvas3d_texture_material_add(texture, obj);
- efl_ref(texture);
- }
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MATERIAL_TEXTURE, NULL);
-}
-
-EOLIAN static Evas_Canvas3D_Texture *
-_evas_canvas3d_material_texture_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Material_Data *pd, Evas_Canvas3D_Material_Attrib attrib)
-{
- return pd->attribs[attrib].texture;
-}
-
-#include "canvas/evas_canvas3d_material.eo.c"
diff --git a/src/lib/evas/canvas/evas_canvas3d_material.eo b/src/lib/evas/canvas/evas_canvas3d_material.eo
deleted file mode 100644
index 3576de1dcc..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_material.eo
+++ /dev/null
@@ -1,116 +0,0 @@
-class @beta Evas.Canvas3D.Material extends Evas.Canvas3D.Object
-{
- [[Evas 3D canvas material class]]
- data: Evas_Canvas3D_Material_Data;
- methods {
- color_set {
- [[Set the material attribute color of the given material.
-
- Material color is used also when texture map is enabled. The colors
- will be modulated (multiplied). To control the color contribution
- of a material attribute, use gray color. Setting color value for
- normal attribute has no effect.
-
- Default color is as follows.
-
- Ambient : (0.2, 0.2, 0.2, 1.0)
- Diffuse : (0.8, 0.8, 0.8, 1.0)
- Specular : (1.0, 1.0, 1.0, 1.0)
- Emission : (0.0, 0.0, 0.0, 1.0)
- Normal : Not used
- ]]
-
- params {
- @in attrib: Evas.Canvas3D.Material_Attrib; [[Material attribute ID.]]
- @in r: Evas.Real; [[Red component of the color.]]
- @in g: Evas.Real; [[Green component of the color.]]
- @in b: Evas.Real; [[Blue component of the color.]]
- @in a: Evas.Real; [[Alpha component of the color.]]
- }
- }
-
- color_get @const {
- [[Get the material attribute color of the given material.
-
- See also @.color_set.
- ]]
- params {
- @in attrib: Evas.Canvas3D.Material_Attrib; [[Material attribute ID.]]
- @out r: Evas.Real; [[Pointer to receive red component of the color.]]
- @out g: Evas.Real; [[Pointer to receive green component of the color.]]
- @out b: Evas.Real; [[Pointer to receive blue component of the color.]]
- @out a: Evas.Real; [[Pointer to receive alpha component of the color.]]
- }
- }
-
- @property enable {
- [[The material attribute enable flag of the given material.
-
- You might want to disable some material reflection contribution.
- For example, Emission attribute is rarely used. Disabling unused
- attributes might help the shading less complex so that can get
- speed up.
-
- By default, diffuse and specular is enabled.
- ]]
- set {
- }
- get {
- }
- keys {
- attrib: Evas.Canvas3D.Material_Attrib; [[Material attribute ID.]]
- }
- values {
- enable: bool; [[Whether to enable the attribute or not.]]
- }
- }
-
- @property shininess {
- [[The shininess of the given material.
-
- Shininess is only used when specular attribute is enabled. Higher shininess
- value will make the object more shiny.
-
- Default shininess value is 150.0.
-
- See also @.enable.set.
- ]]
- set {
- }
- get {
- }
- values {
- shininess: Evas.Real; [[Shininess value.]]
- }
- }
-
- @property texture {
- [[The texture of the given material.
-
- You have to enable the desired attribute first.
-
- See also @.enable.set.
- ]]
- set {
- }
- get {
- }
-
- keys {
- attrib: Evas.Canvas3D.Material_Attrib; [[Material attribute ID.]]
- }
- values {
- texture: Evas.Canvas3D.Texture; [[The texture set to the attribute.]]
- }
- }
- }
- implements {
- Efl.Object.constructor;
- Efl.Object.destructor;
- Evas.Canvas3D.Object.update_notify;
- Evas.Canvas3D.Object.change_notify;
- @empty Evas.Canvas3D.Object.callback_register;
- @empty Evas.Canvas3D.Object.callback_unregister;
- }
-
-}
diff --git a/src/lib/evas/canvas/evas_canvas3d_mesh.c b/src/lib/evas/canvas/evas_canvas3d_mesh.c
deleted file mode 100644
index 0bea10eb21..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_mesh.c
+++ /dev/null
@@ -1,1172 +0,0 @@
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-#define MY_CLASS EVAS_CANVAS3D_MESH_CLASS
-
-static Evas_Canvas3D_Mesh_Frame *
-evas_canvas3d_mesh_frame_new(Evas_Canvas3D_Mesh *mesh)
-{
- Evas_Canvas3D_Mesh_Frame *frame = NULL;
- frame = (Evas_Canvas3D_Mesh_Frame *)calloc(1, sizeof(Evas_Canvas3D_Mesh_Frame));
-
- if (frame == NULL)
- {
- ERR("Failed to allocate memory.");
- return NULL;
- }
-
- frame->mesh = mesh;
- evas_box3_empty_set(&frame->aabb);
-
- return frame;
-}
-
-static void
-evas_canvas3d_mesh_frame_free(Evas_Canvas3D_Mesh_Frame *frame)
-{
- int i;
-
- if (frame->material)
- evas_canvas3d_material_mesh_del(frame->material, frame->mesh);
-
- for (i = 0; i < EVAS_CANVAS3D_VERTEX_ATTRIB_COUNT; i++)
- {
- if (frame->vertices[i].owns_data)
- free(frame->vertices[i].data);
- }
-
- free(frame);
-}
-
-Evas_Canvas3D_Mesh_Frame *
-evas_canvas3d_mesh_frame_find(Evas_Canvas3D_Mesh_Data *pd, int frame)
-{
- Eina_List *l;
- Evas_Canvas3D_Mesh_Frame *f;
-
- EINA_LIST_FOREACH(pd->frames, l, f)
- {
- if (f->frame == frame)
- return f;
- }
-
- return NULL;
-}
-
-Eina_Bool
-evas_canvas3d_mesh_aabb_add_to_frame(Evas_Canvas3D_Mesh_Data *pd, int frame, int stride)
-{
- Evas_Canvas3D_Mesh_Frame *curframe = evas_canvas3d_mesh_frame_find(pd, frame);
- int i = 0, j = 0, step = 0, size = 0, max;
- float vxmin, vymin, vzmin, vxmax, vymax, vzmax;
- float *minmaxdata = NULL;
- Evas_Box3 box3;
-
- if (stride <= 0) return EINA_FALSE;
-
- if (!curframe)
- {
- ERR("Invalid frame %i.", frame);
- return EINA_FALSE;
- }
-
- step = curframe->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].element_count;
- size = curframe->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].size;
- minmaxdata = (float *)curframe->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].data;
-
- if (!minmaxdata)
- {
- ERR("Invalid vertex data.");
- return EINA_FALSE;
- }
-
- vxmax = vxmin = minmaxdata[0];
- vymax = vymin = minmaxdata[1];
- vzmax = vzmin = minmaxdata[2];
- j += step;
-
- max = size / stride;
- for (i = 1; i < max; ++i)
- {
- vxmin > minmaxdata[j] ? vxmin = minmaxdata[j] : 0;
- vxmax < minmaxdata[j] ? vxmax = minmaxdata[j] : 0;
- vymin > minmaxdata[j + 1] ? vymin = minmaxdata[j + 1] : 0;
- vymax < minmaxdata[j + 1] ? vymax = minmaxdata[j + 1] : 0;
- vzmin > minmaxdata[j + 2] ? vzmin = minmaxdata[j + 2] : 0;
- vzmax < minmaxdata[j + 2] ? vzmax = minmaxdata[j + 2] : 0;
- j += step;
- }
-
- evas_box3_empty_set(&box3);
- evas_box3_set(&box3, vxmin, vymin, vzmin, vxmax, vymax, vzmax);
- curframe->aabb = box3;
- return EINA_TRUE;
-}
-
-static inline void
-_mesh_init(Evas_Canvas3D_Mesh_Data *pd)
-{
- pd->vertex_count = 0;
- pd->frame_count = 0;
- pd->frames = NULL;
-
- pd->index_format = EVAS_CANVAS3D_INDEX_FORMAT_NONE;
- pd->index_count = 0;
- pd->indices = NULL;
- pd->owns_indices = EINA_FALSE;
- pd->assembly = EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES;
-
- pd->nodes = NULL;
- pd->blend_sfactor = EVAS_CANVAS3D_BLEND_FUNC_ONE;
- pd->blend_dfactor = EVAS_CANVAS3D_BLEND_FUNC_ZERO;
- pd->blending = EINA_FALSE;
-
- pd->alpha_comparison = EVAS_CANVAS3D_COMPARISON_ALWAYS;
- pd->alpha_ref_value = 0.0f;
- pd->alpha_test_enabled = EINA_FALSE;
-
- pd->color_pick_key.r = 0.0;
- pd->color_pick_key.g = 0.0;
- pd->color_pick_key.b = 0.0;
- pd->color_pick_enabled = EINA_FALSE;
-
- pd->shadows_edges_filtering_level = 4;
- pd->shadows_edges_size = 300.0;
- pd->shadows_constant_bias = 0.00015;
- pd->near_lod_boundary = 0.0;
- pd->far_lod_boundary = 0.0;
-}
-
-static inline void
-_mesh_fini(Evas_Canvas3D_Mesh_Data *pd)
-{
- Eina_List *l;
- Evas_Canvas3D_Mesh_Frame *f;
-
- if (pd->frames)
- {
- EINA_LIST_FOREACH(pd->frames, l, f)
- {
- evas_canvas3d_mesh_frame_free(f);
- }
-
- eina_list_free(pd->frames);
- }
-
- if (pd->indices && pd->owns_indices)
- {
- free(pd->indices);
- pd->indices = NULL;
- }
-
- if (pd->nodes)
- eina_hash_free(pd->nodes);
-}
-
-static Eina_Bool
-_mesh_node_geometry_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
- void *data EINA_UNUSED, void *fdata)
-{
- Evas_Canvas3D_Node *n = *(Evas_Canvas3D_Node **)key;
- evas_canvas3d_object_change(n, EVAS_CANVAS3D_STATE_NODE_MESH_GEOMETRY, (Evas_Canvas3D_Object *)fdata);
- return EINA_TRUE;
-}
-
-static Eina_Bool
-_mesh_node_material_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
- void *data EINA_UNUSED, void *fdata)
-{
- Evas_Canvas3D_Node *n = *(Evas_Canvas3D_Node **)key;
- evas_canvas3d_object_change(n, EVAS_CANVAS3D_STATE_NODE_MESH_MATERIAL, (Evas_Canvas3D_Object *)fdata);
- return EINA_TRUE;
-}
-
-static void
-_evas_canvas3d_mesh_evas_canvas3d_object_change_notify(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, Evas_Canvas3D_State state, Evas_Canvas3D_Object *ref EINA_UNUSED)
-{
- if (state == EVAS_CANVAS3D_STATE_MESH_MATERIAL)
- {
- if (pd->nodes)
- eina_hash_foreach(pd->nodes, _mesh_node_material_change_notify, obj);
- }
- else
- {
- if (pd->nodes)
- eina_hash_foreach(pd->nodes, _mesh_node_geometry_change_notify, obj);
- }
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_evas_canvas3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- Eina_List *l;
- Evas_Canvas3D_Mesh_Frame *f;
-
- EINA_LIST_FOREACH(pd->frames, l, f)
- {
- if (f->material)
- {
- evas_canvas3d_object_update(f->material);
- }
- }
-}
-
-
-void
-evas_canvas3d_mesh_node_add(Evas_Canvas3D_Mesh *mesh, Evas_Canvas3D_Node *node)
-{
- int count = 0;
- Evas_Canvas3D_Mesh_Data *pd = efl_data_scope_get(mesh, MY_CLASS);
- if (pd->nodes == NULL)
- {
- pd->nodes = eina_hash_pointer_new(NULL);
-
- if (pd->nodes == NULL)
- {
- ERR("Failed to create hash table.");
- return;
- }
- }
- else
- count = (int)(uintptr_t)eina_hash_find(pd->nodes, &node);
-
- eina_hash_set(pd->nodes, &node, (const void *)(uintptr_t)(count + 1));
-}
-
-void
-evas_canvas3d_mesh_node_del(Evas_Canvas3D_Mesh *mesh, Evas_Canvas3D_Node *node)
-{
- int count = 0;
- Evas_Canvas3D_Mesh_Data *pd = efl_data_scope_get(mesh, MY_CLASS);
- if (pd->nodes == NULL)
- {
- ERR("No node to delete.");
- return;
- }
-
- count = (int)(uintptr_t)eina_hash_find(pd->nodes, &node);
-
- if (count == 1)
- eina_hash_del(pd->nodes, &node, NULL);
- else
- eina_hash_set(pd->nodes, &node, (const void *)(uintptr_t)(count - 1));
-}
-
-
-EAPI Evas_Canvas3D_Mesh *
-evas_canvas3d_mesh_add(Evas *e)
-{
- MAGIC_CHECK(e, Evas, MAGIC_EVAS);
- return NULL;
- MAGIC_CHECK_END();
- return efl_add(MY_CLASS, e);
-}
-
-EOLIAN static Eo *
-_evas_canvas3d_mesh_efl_object_constructor(Eo *obj, Evas_Canvas3D_Mesh_Data *pd)
-{
- obj = efl_constructor(efl_super(obj, MY_CLASS));
- evas_canvas3d_object_type_set(obj, EVAS_CANVAS3D_OBJECT_TYPE_MESH);
- _mesh_init(pd);
-
- return obj;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_efl_object_destructor(Eo *obj, Evas_Canvas3D_Mesh_Data *pd)
-{
- _mesh_fini(pd);
- efl_destructor(efl_super(obj, MY_CLASS));
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_shader_mode_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd, Evas_Canvas3D_Shader_Mode mode)
-{
- if (pd->shader_mode != mode)
- {
- pd->shader_mode = mode;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_SHADER_MODE, NULL);
- }
-}
-
-EOLIAN static Evas_Canvas3D_Shader_Mode
-_evas_canvas3d_mesh_shader_mode_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- return pd->shader_mode;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_vertex_count_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, unsigned int count)
-{
- pd->vertex_count = count;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_VERTEX_COUNT, NULL);
-}
-
-EOLIAN static unsigned int
-_evas_canvas3d_mesh_vertex_count_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- return pd->vertex_count;
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_mesh_frame_exist(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd, int frame)
-{
- Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, frame);
-
- if (f)
- return EINA_TRUE;
-
- return EINA_FALSE;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_frame_add(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, int frame)
-{
- Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, frame);
-
- if (f != NULL)
- {
- ERR("Already existing frame.");
- return;
- }
-
- f = evas_canvas3d_mesh_frame_new(obj);
-
- if (f == NULL)
- return;
-
- f->frame = frame;
- pd->frames = eina_list_append(pd->frames, f);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_FRAME, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_frame_del(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, int frame)
-{
- Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, frame);
-
- if (f == NULL)
- {
- ERR("Not existing mesh frame.");
- return;
- }
-
- pd->frames = eina_list_remove(pd->frames, f);
- evas_canvas3d_mesh_frame_free(f);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_FRAME, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_frame_material_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, int frame, Evas_Canvas3D_Material *material)
-{
- Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, frame);
-
- if (f == NULL)
- {
- ERR("Not existing mesh frame.");
- return;
- }
-
- if (f->material == material)
- return;
-
- if (f->material)
- {
- evas_canvas3d_material_mesh_del(f->material, obj);
- efl_unref(f->material);
- }
-
- f->material = material;
- efl_ref(material);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_MATERIAL, NULL);
- evas_canvas3d_material_mesh_add(material, obj);
-}
-
-EOLIAN static Evas_Canvas3D_Material *
-_evas_canvas3d_mesh_frame_material_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd, int frame)
-{
- Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, frame);
-
- if (f == NULL)
- {
- ERR("Not existing mesh frame.");
- return NULL;
- }
-
- return f->material;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_frame_vertex_data_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, int frame, Evas_Canvas3D_Vertex_Attrib attrib, int stride, const void *data)
-{
- Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, frame);
- int element_count;
-
- if (f == NULL)
- {
- ERR("Not existing mesh frame.");
- return;
- }
-
- if (stride < (int)sizeof(float))
- {
- ERR("Stride too small");
- return;
- }
-
- if (attrib == EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION)
- {
- int i = 0, j = 0, size = stride/sizeof(float);
- float vxmin, vymin, vzmin, vxmax, vymax, vzmax;
- float *minmaxdata = (float *)data;
- Evas_Box3 box3;
-
- element_count = 3;
-
- if (minmaxdata)
- {
- vxmax = vxmin = minmaxdata[0];
- vymax = vymin = minmaxdata[1];
- vzmax = vzmin = minmaxdata[2];
- j += size;
-
- for (i = 1; i < size; ++i)
- {
- vxmin > minmaxdata[j] ? vxmin = minmaxdata[j] : 0;
- vxmax < minmaxdata[j] ? vxmax = minmaxdata[j] : 0;
- vymin > minmaxdata[j + 1] ? vymin = minmaxdata[j + 1] : 0;
- vymax < minmaxdata[j + 1] ? vymax = minmaxdata[j + 1] : 0;
- vzmin > minmaxdata[j + 2] ? vzmin = minmaxdata[j + 2] : 0;
- vzmax < minmaxdata[j + 2] ? vzmax = minmaxdata[j + 2] : 0;
- j += size;
- }
-
- evas_box3_empty_set(&box3);
- evas_box3_set(&box3, vxmin, vymin, vzmin, vxmax, vymax, vzmax);
- f->aabb = box3;
- }
- else
- {
- ERR("Axis-Aligned Bounding Box wasn't added in frame %d ", frame);
- }
- }
- else if (attrib == EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL)
- {
- element_count = 3;
- }
- else if (attrib == EVAS_CANVAS3D_VERTEX_ATTRIB_TANGENT)
- {
- element_count = 3;
- }
- else if (attrib == EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR)
- {
- element_count = 4;
- }
- else if (attrib == EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD)
- {
- element_count = 2;
- }
- else
- {
- ERR("Invalid vertex attrib.");
- return;
- }
-
- if (f->vertices[attrib].owns_data && f->vertices[attrib].data)
- free(f->vertices[attrib].data);
-
- f->vertices[attrib].size = 0;
- f->vertices[attrib].stride = stride;
- f->vertices[attrib].data = (void *)data;
- f->vertices[attrib].owns_data = EINA_FALSE;
- f->vertices[attrib].element_count = element_count;
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_VERTEX_DATA, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_frame_vertex_data_copy_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, int frame, Evas_Canvas3D_Vertex_Attrib attrib, int stride, const void *data)
-{
- Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, frame);
- Evas_Canvas3D_Vertex_Buffer *vb;
- int size, element_count;
-
- if (f == NULL)
- {
- ERR("Not existing mesh frame.");
- return;
- }
-
- if (attrib == EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION)
- {
- element_count = 3;
- }
- else if (attrib == EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL)
- {
- element_count = 3;
- }
- else if (attrib == EVAS_CANVAS3D_VERTEX_ATTRIB_TANGENT)
- {
- element_count = 3;
- }
- else if (attrib == EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR)
- {
- element_count = 4;
- }
- else if (attrib == EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD)
- {
- element_count = 2;
- }
- else
- {
- ERR("Invalid vertex attrib.");
- return;
- }
-
- vb = &f->vertices[attrib];
- size = element_count * sizeof(float) * pd->vertex_count;
-
- if (!vb->owns_data || vb->size < size)
- {
- if (vb->owns_data && vb->data)
- free(vb->data);
-
- vb->data = malloc(size);
-
- if (vb->data == NULL)
- {
- vb->element_count = 0;
- vb->size = 0;
- vb->stride = 0;
- vb->owns_data = EINA_FALSE;
-
- ERR("Failed to allocate memory.");
- return;
- }
-
- vb->size = size;
- vb->owns_data = EINA_TRUE;
- }
-
- vb->element_count = element_count;
- vb->stride = 0;
-
- if (data == NULL)
- return;
-
- if (stride == 0 || stride == (int)(element_count * sizeof(float)))
- {
- memcpy(vb->data, data, size);
- }
- else
- {
- int i;
- float *dst = (float *)vb->data;
- float *src = (float *)data;
-
- if (element_count == 2)
- {
- for (i = 0; i <pd->vertex_count; i++)
- {
- *dst++ = src[0];
- *dst++ = src[1];
-
- src = (float *)((char *)src + stride);
- }
- }
- else if (element_count == 3)
- {
- for (i = 0; i <pd->vertex_count; i++)
- {
- *dst++ = src[0];
- *dst++ = src[1];
- *dst++ = src[2];
-
- src = (float *)((char *)src + stride);
- }
- }
- else if (element_count == 4)
- {
- for (i = 0; i <pd->vertex_count; i++)
- {
- *dst++ = src[0];
- *dst++ = src[1];
- *dst++ = src[2];
- *dst++ = src[3];
-
- src = (float *)((char *)src + stride);
- }
- }
- }
-
- if (attrib == EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION &&
- !evas_canvas3d_mesh_aabb_add_to_frame(pd, frame, stride))
- {
- ERR("Axis-Aligned Bounding Box wasn't added in frame %d ", frame);
- }
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_VERTEX_DATA, NULL);
-}
-
-EOLIAN static void *
-_evas_canvas3d_mesh_frame_vertex_data_map(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd, int frame, Evas_Canvas3D_Vertex_Attrib attrib)
-{
- Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, frame);
-
- if (f == NULL)
- {
- ERR("Not existing mesh frame.");
- return NULL;
- }
-
- if (f->vertices[attrib].mapped)
- {
- ERR("Try to map already mapped data.");
- return NULL;
- }
-
- f->vertices[attrib].mapped = EINA_TRUE;
- return f->vertices[attrib].data;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_frame_vertex_data_unmap(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd, int frame, Evas_Canvas3D_Vertex_Attrib attrib)
-{
- Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, frame);
-
- if (f == NULL)
- {
- ERR("Not existing mesh frame.");
- return;
- }
-
- if (!f->vertices[attrib].mapped)
- {
- ERR("Try to unmap data which is not mapped yet.");
- return;
- }
-
- f->vertices[attrib].mapped = EINA_FALSE;
-}
-
-EOLIAN static int
-_evas_canvas3d_mesh_frame_vertex_stride_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd, int frame, Evas_Canvas3D_Vertex_Attrib attrib)
-{
- Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, frame);
-
- if (f == NULL)
- {
- ERR("Not existing mesh frame.");
- return 0;
- }
-
- return f->vertices[attrib].stride;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_index_data_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, Evas_Canvas3D_Index_Format format, int count, const void *indices)
-{
- if (pd->owns_indices && pd->indices)
- free(pd->indices);
-
- pd->index_format = format;
- pd->index_count = count;
- pd->index_size = 0;
- pd->indices = (void *)indices;
- pd->owns_indices = EINA_FALSE;
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_INDEX_DATA, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_index_data_copy_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd, Evas_Canvas3D_Index_Format format, int count, const void *indices)
-{
- int size;
-
- if (format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_BYTE)
- {
- size = count * sizeof(unsigned char);
- }
- else if (format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT)
- {
- size = count * sizeof(unsigned short);
- }
- else
- {
- ERR("Invalid index format.");
- return;
- }
-
- if (!pd->owns_indices || pd->index_size < size)
- {
- if (pd->owns_indices && pd->indices)
- free(pd->indices);
-
- pd->indices = malloc(size);
-
- if (pd->indices == NULL)
- {
- ERR("Failed to allocate memory.");
- return;
- }
-
- pd->index_size = size;
- pd->owns_indices = EINA_TRUE;
- }
-
- pd->index_format = format;
- pd->index_count = count;
-
- if (indices)
- memcpy(pd->indices, indices, size);
-}
-
-EOLIAN static Evas_Canvas3D_Index_Format
-_evas_canvas3d_mesh_index_format_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- return pd->index_format;
-}
-
-EOLIAN static int
-_evas_canvas3d_mesh_index_count_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- return pd->index_count;
-}
-
-EOLIAN static void *
-_evas_canvas3d_mesh_index_data_map(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- if (pd->index_mapped)
- {
- ERR("Try to map already mapped data.");
- return NULL;
- }
-
- pd->index_mapped = EINA_TRUE;
- return pd->indices;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_index_data_unmap(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- if (!pd->index_mapped)
- {
- ERR("Try to unmap data which is not mapped yet.");
- return;
- }
-
- pd->index_mapped = EINA_FALSE;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_vertex_assembly_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, Evas_Canvas3D_Vertex_Assembly assembly)
-{
- pd->assembly = assembly;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_VERTEX_ASSEMBLY, NULL);
-}
-
-EOLIAN static Evas_Canvas3D_Vertex_Assembly
-_evas_canvas3d_mesh_vertex_assembly_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- return pd->assembly;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_fog_color_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
-{
- evas_color_set(&pd->fog_color, r, g, b, a);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_FOG, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_fog_color_get(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd,
- Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
-{
- if (r) *r = pd->fog_color.r;
- if (g) *g = pd->fog_color.g;
- if (b) *b = pd->fog_color.b;
- if (a) *a = pd->fog_color.a;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_fog_enable_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, Eina_Bool enabled)
-{
- pd->fog_enabled = enabled;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_FOG, NULL);
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_mesh_fog_enable_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- return pd->fog_enabled;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_blending_enable_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, Eina_Bool blending)
-{
- pd->blending = blending;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_BLENDING, NULL);
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_mesh_blending_enable_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- return pd->blending;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_blending_func_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, Evas_Canvas3D_Blend_Func sfactor, Evas_Canvas3D_Blend_Func dfactor)
-{
- pd->blend_sfactor = sfactor;
- pd->blend_dfactor = dfactor;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_BLENDING, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_blending_func_get(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd,
- Evas_Canvas3D_Blend_Func *sfactor, Evas_Canvas3D_Blend_Func *dfactor)
-{
- if (sfactor) *sfactor = pd->blend_sfactor;
- if (dfactor) *dfactor = pd->blend_dfactor;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_alpha_func_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, Evas_Canvas3D_Comparison comparison,
- Evas_Real ref_value)
-{
- if (pd->alpha_comparison == comparison &&
- (EINA_DBL_EQ(pd->alpha_ref_value, ref_value)))
- return;
- pd->alpha_comparison = comparison;
- pd->alpha_ref_value = ref_value;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_ALPHA_TEST, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_alpha_func_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd,
- Evas_Canvas3D_Comparison *comparison,
- Evas_Real *ref_value)
-{
- if (comparison) *comparison = pd->alpha_comparison;
- if (ref_value) *ref_value = pd->alpha_ref_value;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_alpha_test_enable_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, Eina_Bool enabled)
-{
- pd->alpha_test_enabled = enabled;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_ALPHA_TEST, NULL);
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_mesh_alpha_test_enable_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- return pd->alpha_test_enabled;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_efl_file_unload(Eo *obj, Evas_Canvas3D_Mesh_Data *pd)
-{
- efl_file_unload(efl_super(obj, MY_CLASS));
- _mesh_fini(pd);
-}
-
-EOLIAN static Eina_Error
-_evas_canvas3d_mesh_efl_file_load(Eo *obj, Evas_Canvas3D_Mesh_Data *pd)
-{
- const Eina_File *f;
- Eina_Error err;
-
- if (efl_file_loaded_get(obj)) return 0;
-
- err = efl_file_load(efl_super(obj, MY_CLASS));
- if (err) return err;
-
- _mesh_fini(pd);
- _mesh_init(pd);
-
- f = efl_file_mmap_get(obj);
- if (f == NULL) return EFL_GFX_IMAGE_LOAD_ERROR_DOES_NOT_EXIST;
-
- evas_common_load_model_from_eina_file(obj, f);
-
- return 0;
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_mesh_efl_file_save_save(const Eo *obj, Evas_Canvas3D_Mesh_Data *pd,
- const char *file,
- const char *key EINA_UNUSED,
- const Efl_File_Save_Info *info EINA_UNUSED)
-{
- if ((file == NULL) || (obj == NULL) || (pd == NULL)) return EINA_FALSE;
-
- Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, 0);
-
- if (f == NULL)
- {
- ERR("Not existing mesh frame.");
- return EINA_FALSE;
- }
-
- evas_common_save_model_to_file(obj, file, f);
- return EINA_TRUE;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_from_primitive_set(Eo *obj,
- Evas_Canvas3D_Mesh_Data *pd EINA_UNUSED,
- int frame,
- Eo *primitive)
-{
- if ((primitive == NULL) || (obj == NULL)) return;
-
- Evas_Canvas3D_Primitive_Data *ppd = efl_data_scope_get(primitive, EVAS_CANVAS3D_PRIMITIVE_CLASS);
-
- evas_common_set_model_from_primitive(obj, frame, ppd);
-}
-
-void
-evas_canvas3d_mesh_interpolate_position_get(Eina_Vector3 *out, const Evas_Canvas3D_Vertex_Buffer *pos0, const Evas_Canvas3D_Vertex_Buffer *pos1,
- Evas_Real weight, int index)
-{
- if (pos1->data == NULL)
- {
- float *ptr;
-
- if (pos0->stride != 0)
- ptr = (float *)((char *)pos0->data + pos0->stride * index);
- else
- ptr = (float *)pos0->data + 3 * index;
-
- out->x = ptr[0];
- out->y = ptr[1];
- out->z = ptr[2];
- }
- else
- {
- float *ptr0, *ptr1;
-
- if (pos0->stride != 0)
- ptr0 = (float *)((char *)pos0->data + pos0->stride * index);
- else
- ptr0 = (float *)pos0->data + 3 * index;
-
- if (pos1->stride != 0)
- ptr1 = (float *)((char *)pos1->data + pos1->stride * index);
- else
- ptr1 = (float *)pos1->data + 3 * index;
-
- out->x = ptr0[0] * weight + ptr1[0] * (1.0 - weight);
- out->y = ptr0[1] * weight + ptr1[1] * (1.0 - weight);
- out->z = ptr0[2] * weight + ptr1[2] * (1.0 - weight);
- }
-}
-
-static inline void
-_mesh_frame_find(Evas_Canvas3D_Mesh *mesh, int frame,
- Eina_List **l, Eina_List **r)
-{
- Eina_List *left, *right;
- Evas_Canvas3D_Mesh_Frame *f0 = NULL, *f1;
- Evas_Canvas3D_Mesh_Data *pdmesh = efl_data_scope_get(mesh, EVAS_CANVAS3D_MESH_CLASS);
-
- left = pdmesh->frames;
- right = eina_list_next(left);
-
- while (right)
- {
- f0 = (Evas_Canvas3D_Mesh_Frame *)eina_list_data_get(left);
- f1 = (Evas_Canvas3D_Mesh_Frame *)eina_list_data_get(right);
-
- if (frame >= f0->frame && frame <= f1->frame)
- break;
-
- left = right;
- right = eina_list_next(left);
- }
-
- if (right == NULL)
- {
- if (f0 && frame <= f0->frame)
- {
- *l = NULL;
- *r = left;
- }
- else
- {
- *l = left;
- *r = NULL;
- }
- return;
- }
-
- *l = left;
- *r = right;
-}
-
-void
-evas_canvas3d_mesh_interpolate_vertex_buffer_get(Evas_Canvas3D_Mesh *mesh, int frame,
- Evas_Canvas3D_Vertex_Attrib attrib,
- Evas_Canvas3D_Vertex_Buffer *buf0,
- Evas_Canvas3D_Vertex_Buffer *buf1,
- Evas_Real *weight)
-{
- Eina_List *l, *r;
- const Evas_Canvas3D_Mesh_Frame *f0 = NULL, *f1 = NULL;
- _mesh_frame_find(mesh, frame, &l, &r);
-
- while (l)
- {
- f0 = (const Evas_Canvas3D_Mesh_Frame *)eina_list_data_get(l);
-
- if (f0->vertices[attrib].data != NULL)
- break;
-
- l = eina_list_prev(l);
- f0 = NULL;
- }
-
- while (r)
- {
- f1 = (const Evas_Canvas3D_Mesh_Frame *)eina_list_data_get(r);
-
- if (f1->vertices[attrib].data != NULL)
- break;
-
- r = eina_list_next(r);
- f1 = NULL;
- }
-
- if (f0 == NULL && f1 == NULL)
- return;
-
- if (f0 == NULL)
- {
- f0 = f1;
- }
- else if (f1 != NULL)
- {
- if (frame == f0->frame)
- {
- f1 = NULL;
- }
- else if (frame == f1->frame)
- {
- f0 = f1;
- f1 = NULL;
- }
- }
-
- buf0->data = f0->vertices[attrib].data;
- buf0->stride = f0->vertices[attrib].stride;
- buf0->size = f0->vertices[attrib].size;
-
- if (f1)
- {
- buf1->data = f1->vertices[attrib].data;
- buf1->stride = f1->vertices[attrib].stride;
- buf1->size = f1->vertices[attrib].size;
-
- *weight = (f1->frame - frame) / (Evas_Real)(f1->frame - f0->frame);
- }
- else
- {
- buf1->data = NULL;
- buf1->stride = 0;
- buf1->size = 0;
-
- *weight = 1.0;
- }
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_mesh_color_pick_enable_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- return pd->color_pick_enabled;
-}
-EOLIAN static void
-_evas_canvas3d_mesh_color_pick_enable_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd, Eina_Bool enabled)
-{
- if (pd->color_pick_enabled != enabled)
- pd->color_pick_enabled = enabled;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_COLOR_PICK, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_shadows_edges_filtering_set(Eo *obj, Evas_Canvas3D_Mesh_Data *pd,
- int blur_level, Evas_Real edges_size)
-{
- if (blur_level > 0)
- pd->shadows_edges_filtering_level = blur_level;
- if (edges_size >= 0)
- pd->shadows_edges_size = edges_size;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_SHADOWS_EDGES_FILTERING, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_shadows_edges_filtering_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd,
- int *blur_level, Evas_Real *edges_size)
-{
- if (blur_level) *blur_level = pd->shadows_edges_filtering_level;
- if (edges_size) *edges_size = pd->shadows_edges_size;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_shadows_constant_bias_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd,
- Evas_Real bias)
-{
- if (!EINA_DBL_EQ(pd->shadows_constant_bias, bias))
- {
- pd->shadows_constant_bias = bias;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_MESH_SHADOWS_CONSTANT_BIAS, NULL);
- }
-}
-
-EOLIAN static Evas_Real
-_evas_canvas3d_mesh_shadows_constant_bias_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd)
-{
- return pd->shadows_constant_bias;
-}
-EOLIAN static void
-_evas_canvas3d_mesh_convex_hull_data_get(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd,
- int frame, Eina_Inarray *vertex, Eina_Inarray *index)
-{
- int stride;
-
- Evas_Canvas3D_Mesh_Frame *f = evas_canvas3d_mesh_frame_find(pd, frame);
-
- if (!f)
- {
- ERR("Not existing mesh frame %d %s", __LINE__, __FILE__);
- return;
- }
-
- if (f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].stride != 0)
- stride = f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].stride / sizeof(float);
- else
- stride = 3;
-
- float *data = (float *)f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].data;
-
- evas_convex_hull_get(data, pd->vertex_count, stride, vertex, index);
-
- return;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_lod_boundary_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd,
- Evas_Real near_lod, Evas_Real far_lod)
-{
- pd->near_lod_boundary = near_lod;
- pd->far_lod_boundary = far_lod;
-}
-
-EOLIAN static void
-_evas_canvas3d_mesh_lod_boundary_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Mesh_Data *pd,
- Evas_Real *near_lod, Evas_Real *far_lod)
-{
- *near_lod = pd->near_lod_boundary;
- *far_lod = pd->far_lod_boundary;
-}
-#include "canvas/evas_canvas3d_mesh.eo.c"
diff --git a/src/lib/evas/canvas/evas_canvas3d_mesh.eo b/src/lib/evas/canvas/evas_canvas3d_mesh.eo
deleted file mode 100644
index 364390d18f..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_mesh.eo
+++ /dev/null
@@ -1,421 +0,0 @@
-import evas_canvas3d_types;
-
-struct @beta @extern Eina.Inarray; [[Eina inarray data structure]]
-
-class @beta Evas.Canvas3D.Mesh extends Evas.Canvas3D.Object implements Efl.File, Efl.File_Save
-{
- [[Evas 3D canvas mesh class]]
- data: Evas_Canvas3D_Mesh_Data;
-
- methods {
- frame_vertex_data_set {
- [[Set the vertex data of the key frame of the given mesh.
-
- This function make evas read from the given buffer whenever it
- requires. If you want to release the buffer after calling this
- function, use @.frame_vertex_data_copy_set instead.
-
- After setting the vertex data, further modifications should be
- protected by map/unmap pair.
-
- See also @.frame_vertex_data_map, @.frame_vertex_data_unmap.
- ]]
- params {
- @in frame: int; [[The number of the key frame.]]
- @in attrib: Evas.Canvas3D.Vertex_Attrib; [[Vertex attribute ID.]]
- @in stride: int; [[Stride to go to the next vertex (in bytes).]]
- @in data: const(void_ptr); [[Pointer to the vertex data buffer.]]
- }
- }
-
- frame_vertex_data_copy_set {
- [[Set the vertex data of the key frame of the given mesh by copying
- from a buffer. This function allocates internal vertex buffer and
- copy from the given buffer. So you can release the buffer. If you
- want to modify the vertex data use @.frame_vertex_data_map. After
- finishing the modifications, you should call @.frame_vertex_data_unmap.
-
- See also @.frame_vertex_data_set.
- ]]
- params {
- @in frame: int; [[The number of the key frame.]]
- @in attrib: Evas.Canvas3D.Vertex_Attrib; [[Vertex attribute ID.]]
- @in stride: int; [[Stride to go to the next vertex (in bytes).]]
- @in data: const(void_ptr); [[Pointer to the vertex data buffer.]]
- }
- }
-
- frame_vertex_data_map {
- [[Map the vertex buffer of the key frame of the given mesh.
-
- After manipulating the mapped buffer, @.frame_vertex_data_unmap
- should be called to properly download the data to the engine. If
- the data was set using @.frame_vertex_data_set, pointer to the
- original buffer will be returned. Otherwise, the returned pointer
- can differ every time calling this function.
- ]]
- return: void_ptr; [[Starting address of the mapped vertex buffer.]]
- params {
- @in frame: int; [[The number of the key frame.]]
- @in attrib: Evas.Canvas3D.Vertex_Attrib; [[Vertex attribute ID.]]
- }
- }
-
- frame_vertex_data_unmap {
- [[Unmap the vertex buffer of the key frame of the given mesh.
-
- See also @.frame_vertex_data_map.
- ]]
- params {
- @in frame: int; [[The number of the key frame.]]
- @in attrib: Evas.Canvas3D.Vertex_Attrib; [[Vertex attribute ID.]]
- }
- }
-
- frame_vertex_stride_get @const {
- [[Get the vertex buffer stride of the key frame of the given mesh.
-
- This function returns valid stride only when the vertex buffer
- is mapped. If the data was set with @.frame_vertex_data_set, the
- original stride will be returned unchanged.
- ]]
- return: int; [[Stride to go to the next vertex (in bytes).]]
- params {
- @in frame: int; [[The number of the key frame.]]
- @in attrib: Evas.Canvas3D.Vertex_Attrib; [[Vertex attribute ID.]]
- }
- }
-
- index_data_set {
- [[Set the vertex index data of the given mesh.
-
- When the index data is set, Evas 3D assembles vertices using the
- index data. If you want to free the data buffer, use
- @.index_data_copy_set. Further modifications should be made
- within map/unmap pair.
- ]]
- params {
- @in format: Evas.Canvas3D.Index_Format; [[Vertex index data format.]]
- @in count: int; [[Vertex index count.]]
- @in indices: const(void_ptr); [[Pointer to the index data.]]
- }
- }
-
- convex_hull_data_get {
- [[Get the vertex and index data of convex hull around the given mesh.
- ]]
- params {
- @in frame: int; [[ The number of the key frame.]]
- @in vertex: ptr(Eina.Inarray); [[Vertex data pointer]]
- @in index: ptr(Eina.Inarray); [[Index data pointer]]
- }
- }
-
- index_data_copy_set {
- [[Set the vertex index data of the given mesh by copying from a
- buffer.
-
- This function allocates internal index buffer any copy data from
- the given buffer. Further modifications can be made within
- map/unmap pair.
-
- See also @.index_data_set.
- ]]
- params {
- @in format: Evas.Canvas3D.Index_Format; [[Vertex index data format.]]
- @in count: int; [[Vertex index count.]]
- @in indices: const(void_ptr); [[Pointer to the index data.]]
- }
- }
-
- index_format_get @const {
- [[Get the format of the index data of the given mesh.
-
- Returns valid format only when the index buffer is mapped. First
- map the index buffer and then query the properties of the mapped
- buffer. If the index data was set by @.index_data_set, the
- original format will be returned. Otherwise the format can differ
- every time you call the @.index_data_map function.
- ]]
- return: Evas.Canvas3D.Index_Format; [[Format of the index data.]]
- }
-
- index_count_get @const {
- [[Get the count of the index data of the given mesh.
-
- This function returns the index count of the last called data_set
- function.
- ]]
- return: int; [[Index data count.]]
- }
-
- index_data_map {
- [[Map the index buffer of the given mesh.
-
- @.index_data_unmap should be called after modifications. If the
- data was set using @.index_data_set, the original pointer will
- be returned, otherwise, the returned pointer may differ every
- time you call this function.
- ]]
- return: void_ptr; [[Pointer to the mapped buffer.]]
- }
-
- index_data_unmap {
- [[Unmap the index buffer of the given mesh.
-
- See also @.index_data_map.
- ]]
- }
-
- frame_exist {
- [[Returns $true if frame was added and $false in other case.]]
- params {
- @in frame: int; [[Frame number.]]
- }
- return: bool; [[$true ifr frame was added, $false otherwise]]
- }
-
- frame_add {
- [[Add a key frame to the given mesh.
-
- If specified frame is already exist, error message will be generated.
- ]]
- params {
- @in frame: int; [[The number of the key frame to be added.]]
- }
- }
-
- frame_del {
- [[Delete a key frame from the given mesh.]]
- params {
- @in frame: int; [[The number of the key frame to be added.]]
- }
- }
-
- fog_color_set {
- [[Set the fog color and density for the given mesh.]]
- params {
- @in r: Evas.Real; [[The red component of the fog color.]]
- @in g: Evas.Real; [[The green component of the fog color.]]
- @in b: Evas.Real; [[The blue component of the fog color.]]
- @in a: Evas.Real; [[The transparency of fog.]]
- }
- }
- fog_color_get {
- [[Set the fog color and density for the given mesh.]]
- params {
- @out r: Evas.Real; [[Pointer to receive red component of the fog color.]]
- @out g: Evas.Real; [[Pointer to receive green component of the fog color.]]
- @out b: Evas.Real; [[Pointer to receive blue component of the fog color.]]
- @out a: Evas.Real; [[Pointer to receive transparency of fog.]]
- }
- }
- blending_func_set {
- [[Set the blending function for given mesh.]]
- params {
- @in sfactor: Evas.Canvas3D.Blend_Func; [[Specifies how the red, green, blue,
- and alpha source blending factors
- are computed.
- ]]
- @in dfactor: Evas.Canvas3D.Blend_Func; [[Specifies how the red, green, blue,
- and alpha destination blending
- factors are computed.
- ]]
- }
- }
- blending_func_get {
- [[Get blending function for given mesh.]]
- params {
- @out sfactor: Evas.Canvas3D.Blend_Func; [[Pointer to receive source blending factors key.]]
- @out dfactor: Evas.Canvas3D.Blend_Func; [[Pointer to receive destination blending factors key.]]
- }
- }
- from_primitive_set {
- [[Set the data of given mesh frame from the given primitive.]]
- params {
- @in frame: int; [[Specifies data of which frame of given mesh will be set.]]
- @in primitive: Evas.Canvas3D.Primitive; [[Specifies which data will be set.]]
- }
- }
- @property shader_mode {
- [[Set the shader mode of the given mesh.
-
- Default shader mode is EVAS_CANVAS3D_SHADER_MODE_VERTEX_COLOR.
- ]]
- set {
- }
- get {
- }
- values {
- mode: Evas.Canvas3D.Shader_Mode; [[The shader mode.]]
- }
- }
- @property color_pick_enable {
- [[Set possibility color picking.]]
- set {
- }
- get {
- }
- values {
- enabled: bool; [[Possibility flag.]]
- }
- }
- @property vertex_count {
- [[The vertex count of the given mesh.
-
- Each key frame should have same vertex count to be properly
- interpolated. Key frames have their own vertex data and the
- data should have more vertices than the mesh's vertex count.
-
- Default vertex count is 0.
- ]]
- set {
- }
- get {
- }
- values {
- count: uint; [[Vertex count.]]
- }
- }
- @property fog_enable {
- [[Enable or disable fog effect for given mesh.
-
- Default fog is disabled.
- ]]
- set {
- }
- get {
- }
- values {
- enabled: bool; [[Fog enabled status.]]
- }
- }
-
- @property alpha_test_enable {
- [[The enable status of alpha test for given mesh.
-
- Default alpha test disabled.
- ]]
- set {
- }
- get {
- [[Get the enable status of alpha test for given mesh.]]
- }
- values {
- enabled: bool; [[The alpha test status.]]
- }
- }
-
- @property alpha_func {
- [[The alpha function.
-
- The alpha test discards fragments depending on the outcome of
- a comparison between an incoming fragment's alpha value and a
- constant reference value. This function specifies the reference
- value and the comparison function.
- ]]
- set {
- }
- get {
- }
- values {
- comparison_func: Evas.Canvas3D.Comparison; [[The alpha comparison function.]]
- ref_value: Evas.Real; [[The reference value that incoming alpha values are compared to.]]
- }
- }
-
- @property blending_enable {
- [[Enable or disable blending for given mesh.]]
- set {
- }
- get {
- }
- values {
- blending: bool; [[The blending state.]]
- }
- }
-
- @property frame_material {
- [[The material of the key frame of the given mesh.
-
- Setting different materials for each key frame is useful for
- doing animations like GIF images or color changing animations.
- ]]
- set {
- }
- get {
- }
- keys {
- frame: int; [[The number of the key frame.]]
- }
- values {
- material: Evas.Canvas3D.Material; [[The material to be set to the key frame.]]
- }
- }
-
- @property vertex_assembly {
- [[The vertex assembly of the given mesh.
-
- Vertex assembly defines how the engine organizes vertices into
- geometric primitives.
-
- Default vertex assembly is EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES.
- ]]
- set {
- }
- get {
- }
- values {
- assembly: Evas.Canvas3D.Vertex_Assembly; [[The vertex assembly.]]
- }
- }
- @property shadows_edges_filtering {
- [[The shadow edges blur parameters.
-
- The averaging values in window is used for blurring.
- User can set the size of window and num of points in window.
- ]]
- set {
- }
- get {
- }
- values {
- blur_level: int; [[Number of points within a bluring radius.]]
- edges_size: Evas.Real; [[The bluring radius.]]
- }
- }
- @property shadows_constant_bias {
- [[The offset shadow toward object.]]
- set {
- }
- get {
- }
- values {
- bias: Evas.Real; [[Offset.]]
- }
- }
- @property lod_boundary {
- [[The LOD boundary distances.]]
- set {
- }
- get {
- }
- values {
- near_lod: Evas.Real; [[Up boundary]]
- far_lod: Evas.Real; [[Down boundary]]
- }
- }
- }
- implements {
- Efl.Object.constructor;
- Efl.Object.destructor;
- Evas.Canvas3D.Object.update_notify;
- Evas.Canvas3D.Object.change_notify;
- Efl.File.load;
- Efl.File.unload;
- Efl.File_Save.save;
- @empty Evas.Canvas3D.Object.callback_register;
- @empty Evas.Canvas3D.Object.callback_unregister;
- }
-
-}
diff --git a/src/lib/evas/canvas/evas_canvas3d_node.c b/src/lib/evas/canvas/evas_canvas3d_node.c
deleted file mode 100644
index 98492fa502..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_node.c
+++ /dev/null
@@ -1,1695 +0,0 @@
-#include "eo_internal.h"
-#include "evas_common_private.h"
-#include "evas_private.h"
-#include "evas_canvas3d_node_callback.h"
-
-#define MY_CLASS EVAS_CANVAS3D_NODE_CLASS
-#define MY_CLASS_NAME "Evas_Canvas3D_Node"
-
-Evas_Canvas3D_Mesh_Frame *evas_canvas3d_mesh_frame_find(Evas_Canvas3D_Mesh_Data *pd, int frame);
-
-static void
-_look_at_set(Evas_Canvas3D_Node_Data *pd, Eina_Vector3 *target, Eina_Vector3 *up);
-
-static Eina_Stringshare *
-_generate_unic_color_key(Evas_Color *color, Evas_Color *bg_color, Evas_Canvas3D_Node *node, Evas_Canvas3D_Mesh *mesh,
- Eina_Bool init)
-{
- static unsigned char red = 0;
- static unsigned char green = 0;
- static unsigned char blue = 0;
- if (init) red = green = blue = 0;
-
-#define GET_NEXT_COLOR \
- red++; \
- if (red == 255) \
- { \
- red = 0; \
- green++; \
- if (green == 255) \
- { \
- green = 0; \
- blue++; \
- } \
- }
-
- GET_NEXT_COLOR
- /*Get another color if color equal with background color*/
- if ((EINA_DBL_EQ(bg_color->r, (double)red)) &&
- (EINA_DBL_EQ(bg_color->g, (double)green)) &&
- (EINA_DBL_EQ(bg_color->b, (double)blue)))
- {
- GET_NEXT_COLOR
- }
-
- color->r = (double)red / 255;
- color->g = (double)green / 255;
- color->b = (double)blue / 255;
-
-#undef GET_NEXT_COLOR
-
- return eina_stringshare_printf("%p %p", node, mesh);
-}
-
-static void
-_evas_canvas3d_node_private_callback_collision(void *data, const Efl_Event *event)
-{
- Eina_List *collision_list = NULL, *l = NULL;
- Evas_Canvas3D_Node *target_node = NULL, *n = NULL;
- Evas_Canvas3D_Node_Data *pd_target = NULL, *pd = NULL;
- const Efl_Event_Description *eo_desc = NULL;
- Eina_Bool ret = EINA_FALSE;
-
- target_node = (Evas_Canvas3D_Node *)event->info;
- pd_target = efl_data_scope_get(target_node, EVAS_CANVAS3D_NODE_CLASS);
- collision_list = (Eina_List *)data;
- eo_desc = efl_object_legacy_only_event_description_get("collision");
-
- if (collision_list)
- {
- EINA_LIST_FOREACH(collision_list, l, n)
- {
- pd = efl_data_scope_get(n, EVAS_CANVAS3D_NODE_CLASS);
- if (box_intersection_box(&pd_target->aabb, &pd->aabb))
- ret = efl_event_callback_legacy_call(target_node, eo_desc, n);
- }
- if (!ret)
- {
- /* XXX: Putting it like this because that's how the logic was,
- * but it seems absolutely wrong that it only checks the last
- * and decides based on that. */
- efl_event_callback_stop(event->object);
- }
- }
-}
-static void
-_evas_canvas3d_node_private_callback_clicked(void *data EINA_UNUSED, const Efl_Event *event)
-{
- Eina_Bool ret = EINA_FALSE;
- const Efl_Event_Description *eo_desc = efl_object_legacy_only_event_description_get("clicked");
- ret = efl_event_callback_legacy_call((Eo *)event->info, eo_desc, event->info);
-
- if (!ret)
- efl_event_callback_stop(event->object);
-}
-
-static inline Evas_Canvas3D_Node_Mesh *
-_node_mesh_new(Evas_Canvas3D_Node *node, Evas_Canvas3D_Mesh *mesh)
-{
- Evas_Canvas3D_Node_Mesh *nm = (Evas_Canvas3D_Node_Mesh *)malloc(sizeof(Evas_Canvas3D_Node_Mesh));
-
- if (nm == NULL)
- {
- ERR("Failed to allocate memory.");
- return NULL;
- }
-
- nm->node = node;
- nm->mesh = mesh;
- nm->frame = 0;
-
- return nm;
-}
-
-static inline void
-_node_mesh_free(Evas_Canvas3D_Node_Mesh *nm)
-{
- free(nm);
-}
-
-static void
-_node_mesh_free_func(void *data)
-{
- _node_mesh_free((Evas_Canvas3D_Node_Mesh *)data);
-}
-
-static Eina_Bool
-_node_scene_root_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
- void *data EINA_UNUSED, void *fdata)
-{
- Evas_Canvas3D_Scene *s = *(Evas_Canvas3D_Scene **)key;
- evas_canvas3d_object_change(s, EVAS_CANVAS3D_STATE_SCENE_ROOT_NODE, (Evas_Canvas3D_Object *)fdata);
- return EINA_TRUE;
-}
-
-static Eina_Bool
-_node_scene_camera_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
- void *data EINA_UNUSED, void *fdata)
-{
- Evas_Canvas3D_Scene *s = *(Evas_Canvas3D_Scene **)key;
- evas_canvas3d_object_change(s, EVAS_CANVAS3D_STATE_SCENE_CAMERA_NODE, (Evas_Canvas3D_Object *)fdata);
- return EINA_TRUE;
-}
-
-EOLIAN static void
-_evas_canvas3d_node_evas_canvas3d_object_change_notify(Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Canvas3D_State state EINA_UNUSED , Evas_Canvas3D_Object *ref EINA_UNUSED)
-{
- Eina_List *l;
- Evas_Canvas3D_Node *n;
- Eina_Bool orientation;
- Eina_Bool position;
- Eina_Bool scale;
- Eina_Bool parent_change;
-
- /* Notify all scenes using this node that it has changed. */
- if (pd->scenes_root)
- eina_hash_foreach(pd->scenes_root, _node_scene_root_change_notify, obj);
-
- if (pd->scenes_camera)
- eina_hash_foreach(pd->scenes_camera, _node_scene_camera_change_notify, obj);
-
- parent_change = (state == EVAS_CANVAS3D_STATE_NODE_PARENT_ORIENTATION)
- || (state == EVAS_CANVAS3D_STATE_NODE_PARENT_POSITION)
- || (state == EVAS_CANVAS3D_STATE_NODE_PARENT_SCALE);
-
- /* Notify parent that a member has changed. */
- if (pd->parent && !parent_change)
- {
- evas_canvas3d_object_change(pd->parent, EVAS_CANVAS3D_STATE_NODE_MEMBER, obj);
- }
-
- orientation = (state == EVAS_CANVAS3D_STATE_NODE_TRANSFORM_ORIENTATION)
- || (state == EVAS_CANVAS3D_STATE_NODE_PARENT_ORIENTATION);
- position = (state == EVAS_CANVAS3D_STATE_NODE_TRANSFORM_POSITION)
- || (state == EVAS_CANVAS3D_STATE_NODE_PARENT_POSITION);
- scale = (state == EVAS_CANVAS3D_STATE_NODE_TRANSFORM_SCALE)
- || (state == EVAS_CANVAS3D_STATE_NODE_PARENT_SCALE);
-
- /* Notify members that the parent has changed. */
- if (scale)
- EINA_LIST_FOREACH(pd->members, l, n)
- {
- evas_canvas3d_object_change(n, EVAS_CANVAS3D_STATE_NODE_PARENT_SCALE, obj);
- }
- if (orientation && !(pd->billboard_target))
- EINA_LIST_FOREACH(pd->members, l, n)
- {
- /*Skip change orientation if node is billboard*/
- Evas_Canvas3D_Node_Data *pdm = efl_data_scope_get(n, EVAS_CANVAS3D_NODE_CLASS);
- if (pdm->billboard_target)
- continue;
- evas_canvas3d_object_change(n, EVAS_CANVAS3D_STATE_NODE_PARENT_ORIENTATION, obj);
- }
- if (position)
- EINA_LIST_FOREACH(pd->members, l, n)
- {
- evas_canvas3d_object_change(n, EVAS_CANVAS3D_STATE_NODE_PARENT_POSITION, obj);
- }
-}
-
-EOLIAN static void
-_evas_canvas3d_node_evas_canvas3d_object_callback_register(Eo *obj, Evas_Canvas3D_Node_Data *pd EINA_UNUSED,
- const char *event, const void *data)
-{
- Evas_Canvas3D_Node_Private_Callback_Type tcb;
-
- GET_CALLBACK_TYPE(tcb, event)
-
- if (tcb != PRIVATE_CALLBACK_NONE)
- efl_event_callback_add(obj, &evas_canvas3d_node_private_event_desc[tcb], evas_canvas3d_node_private_callback_functions[tcb], data);
-
-}
-
-EOLIAN static void
-_evas_canvas3d_node_evas_canvas3d_object_callback_unregister(Eo *obj, Evas_Canvas3D_Node_Data *pd EINA_UNUSED,
- const char *event)
-{
- Evas_Canvas3D_Node_Private_Callback_Type tcb;
-
- GET_CALLBACK_TYPE(tcb, event)
-
- if (tcb != PRIVATE_CALLBACK_NONE)
- efl_event_callback_del(obj, &evas_canvas3d_node_private_event_desc[tcb], evas_canvas3d_node_private_callback_functions[tcb], NULL);
-}
-
-static Eina_Bool
-_node_transform_update(Evas_Canvas3D_Node *node, void *data EINA_UNUSED)
-{
- Evas_Canvas3D_Node_Data *pd = efl_data_scope_get(node, MY_CLASS);
- Eina_Bool transform_dirty = EINA_FALSE, parent_dirty = EINA_FALSE;
-
- transform_dirty = evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_ORIENTATION);
- transform_dirty|= evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_POSITION);
- transform_dirty|= evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_SCALE);
- parent_dirty = evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_PARENT_ORIENTATION);
- parent_dirty |= evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_PARENT_POSITION);
- parent_dirty |= evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_PARENT_SCALE);
-
- if (transform_dirty || parent_dirty)
- {
- if (pd->parent)
- {
- Evas_Canvas3D_Node_Data *pdparent = efl_data_scope_get(pd->parent, MY_CLASS);
- const Eina_Vector3 *scale_parent = &pdparent->scale_world;
- const Eina_Quaternion *orientation_parent = &pdparent->orientation_world;
-
- /* Orienatation */
- if (pd->orientation_inherit)
- {
- eina_quaternion_mul(&pd->orientation_world,
- orientation_parent, &pd->orientation);
- }
- else
- {
- pd->orientation_world = pd->orientation;
- }
-
- /* Scale */
- if (pd->scale_inherit)
- eina_vector3_multiply(&pd->scale_world, scale_parent, &pd->scale);
- else
- pd->scale_world = pd->scale;
-
- /* Position */
- if (pd->position_inherit)
- {
- eina_vector3_multiply(&pd->position_world, &pd->position, scale_parent);
- eina_vector3_quaternion_rotate(&pd->position_world, &pd->position_world,
- orientation_parent);
- eina_vector3_add(&pd->position_world, &pd->position_world,
- &pdparent->position_world);
- }
- else
- {
- pd->position_world = pd->position;
- }
- }
- else
- {
- pd->position_world = pd->position;
- pd->orientation_world = pd->orientation;
- pd->scale_world = pd->scale;
- }
-
- if (pd->type == EVAS_CANVAS3D_NODE_TYPE_CAMERA)
- {
- evas_mat4_inverse_build(&pd->data.camera.matrix_world_to_eye,
- &pd->position_world, &pd->orientation_world,
- &pd->scale_world);
- }
- else if (pd->type == EVAS_CANVAS3D_NODE_TYPE_LIGHT)
- {
- }
- else if (pd->type == EVAS_CANVAS3D_NODE_TYPE_MESH)
- {
- evas_mat4_build(&pd->data.mesh.matrix_local_to_world,
- &pd->position_world, &pd->orientation_world, &pd->scale_world);
- }
-/*
- if (pd->parent)
- {
- evas_mat4_nocheck_multiply(&pd->matrix_local_to_world,
- &pd->parent->matrix_local_to_world,
- &pd->matrix_local_to_parent);
- }
- else
- {
- evas_mat4_copy(&pd->matrix_local_to_world, &pd->matrix_local_to_parent);
- }*/
- }
-
- return EINA_TRUE;
-}
-
-static Eina_Bool
-_node_billboard_update(Evas_Canvas3D_Node *node, void *data EINA_UNUSED)
-{
- Eina_Vector3 target;
- Eina_Vector3 up;
- Evas_Canvas3D_Node_Data *pd_node = efl_data_scope_get(node, MY_CLASS);
- if (pd_node->billboard_target)
- {
- Evas_Canvas3D_Node_Data *pd_target = efl_data_scope_get(pd_node->billboard_target,
- MY_CLASS);
- eina_vector3_set(&target, pd_target->position.x, pd_target->position.y,
- pd_target->position.z);
- eina_vector3_set(&up, 0, 1, 0);
-
- _look_at_set(pd_node, &target, &up);
-
- if (pd_node->type == EVAS_CANVAS3D_NODE_TYPE_MESH)
- {
- evas_mat4_build(&pd_node->data.mesh.matrix_local_to_world,
- &pd_node->position, &pd_node->orientation,
- &pd_node->scale);
- }
- else if (pd_node->type == EVAS_CANVAS3D_NODE_TYPE_LIGHT)
- {
- evas_mat4_build(&pd_node->data.light.matrix_local_to_world,
- &pd_node->position, &pd_node->orientation,
- &pd_node->scale);
- }
- else if (pd_node->type == EVAS_CANVAS3D_NODE_TYPE_CAMERA)
- {
- evas_mat4_inverse_build(&pd_node->data.light.matrix_local_to_world,
- &pd_node->position, &pd_node->orientation,
- &pd_node->scale);
- }
- else
- ERR("Not supported type of node: line %d in file %s", __LINE__ , __FILE__);
- }
- return EINA_TRUE;
-}
-
-static Eina_Bool
-_node_item_update(Evas_Canvas3D_Node *node, void *data EINA_UNUSED)
-{
- Evas_Canvas3D_Node_Data *pd = efl_data_scope_get(node, EVAS_CANVAS3D_NODE_CLASS);
- if (pd->type == EVAS_CANVAS3D_NODE_TYPE_CAMERA)
- {
- if (pd->data.camera.camera)
- {
- evas_canvas3d_object_update(pd->data.camera.camera);
- }
- }
- else if (pd->type == EVAS_CANVAS3D_NODE_TYPE_LIGHT)
- {
- if (pd->data.light.light)
- {
- evas_canvas3d_object_update(pd->data.light.light);
- }
- }
- else if (pd->type == EVAS_CANVAS3D_NODE_TYPE_MESH)
- {
- Eina_List *l;
- Evas_Canvas3D_Mesh *m;
- EINA_LIST_FOREACH(pd->data.mesh.meshes, l, m)
- {
- evas_canvas3d_object_update(m);
- }
- }
-
- return EINA_TRUE;
-}
-
-static void
-_pack_meshes_vertex_data(Evas_Canvas3D_Node *node, Eina_Vector3 **vertices, int *count)
-{
- const Eina_List *m, *l;
- Evas_Canvas3D_Mesh *mesh;
- int j;
- int frame;
- Eina_Vector3 *it;
- Evas_Canvas3D_Vertex_Buffer pos0, pos1;
- Evas_Real pos_weight;
-
- *count = 0;
- m = (Eina_List *)evas_canvas3d_node_mesh_list_get(node);
- EINA_LIST_FOREACH(m, l, mesh)
- {
- frame = evas_canvas3d_node_mesh_frame_get(node, mesh);
- evas_canvas3d_mesh_interpolate_vertex_buffer_get(mesh, frame, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION,
- &pos0, &pos1, &pos_weight);
- if(!pos0.data) continue;
- if(!pos0.stride)
- {
- *count += pos0.size / (sizeof(float) * 3);
- }
- else
- {
- *count += pos0.size / pos0.stride;
- }
- }
- *vertices = (Eina_Vector3*)malloc(*count * sizeof(Eina_Vector3));
- it = *vertices;
- if(!*vertices)
- {
- ERR("Not enough memory.");
- return;
- }
-
- EINA_LIST_FOREACH(m, l, mesh)
- {
- frame = evas_canvas3d_node_mesh_frame_get(node, mesh);
- evas_canvas3d_mesh_interpolate_vertex_buffer_get(mesh, frame, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION,
- &pos0, &pos1, &pos_weight);
- if(!pos0.data) continue;
- int stride = 0;
- if(!pos0.stride)
- {
- stride = sizeof(float) * 3;
- }
- else
- {
- stride = pos0.stride;
- }
- for (j = 0; j < pos0.size / stride; j++)
- {
- evas_canvas3d_mesh_interpolate_position_get(it, &pos0, &pos1, pos_weight, j);
- it++;
- }
- }
-}
-
-static void
-_update_node_shapes(Evas_Canvas3D_Node *node)
-{
- int i;
- int count;
- Eina_Vector3 *vertices = NULL;
- Evas_Canvas3D_Node_Data *pd = efl_data_scope_get(node, EVAS_CANVAS3D_NODE_CLASS);
- Eina_Bool transform_orientation_dirty;
- Eina_Bool transform_position_dirty;
- Eina_Bool transform_scale_dirty;
- Eina_Bool mesh_geom_dirty;
- Eina_Vector3 position = pd->position_world;
-
- if (pd->type != EVAS_CANVAS3D_NODE_TYPE_MESH)
- {
- pd->aabb.p0 = position;
- pd->aabb.p1 = position;
- pd->obb.p0 = position;
- pd->obb.p1 = position;
- pd->bsphere.radius = 0;
- pd->bsphere.center = position;
- return;
- }
-
- transform_orientation_dirty = evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_ORIENTATION);
- transform_orientation_dirty |= evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_PARENT_ORIENTATION);
- transform_position_dirty = evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_POSITION);
- transform_position_dirty |= evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_PARENT_POSITION);
- transform_scale_dirty = evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_SCALE);
- transform_scale_dirty |= evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_PARENT_SCALE);
- mesh_geom_dirty = evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_MESH_GEOMETRY);
- mesh_geom_dirty |= evas_canvas3d_object_dirty_get(node, EVAS_CANVAS3D_STATE_NODE_MESH_FRAME);
-
-
- _pack_meshes_vertex_data(node, &vertices, &count);
- if (count > 0)
- {
- calculate_box(&pd->obb, count, vertices);
- for (i = 0; i < count; i++)
- {
- eina_vector3_homogeneous_position_transform(&vertices[i], &pd->data.mesh.matrix_local_to_world, &vertices[i]);
- }
- calculate_box(&pd->aabb, count, vertices);
- if (transform_position_dirty || transform_scale_dirty || mesh_geom_dirty)
- {
- calculate_sphere(&pd->bsphere, count, vertices);
- }
- eina_vector3_homogeneous_position_transform(&pd->obb.p0, &pd->data.mesh.matrix_local_to_world, &pd->obb.p0);
- eina_vector3_homogeneous_position_transform(&pd->obb.p0, &pd->data.mesh.matrix_local_to_world, &pd->obb.p0);
- }
- free(vertices);
-
-}
-
-Eina_Bool
-node_aabb_update(Evas_Canvas3D_Node *node, void *data EINA_UNUSED)
-{
- Evas_Canvas3D_Node_Data *pd = efl_data_scope_get(node, EVAS_CANVAS3D_NODE_CLASS);
- Eina_List *current;
- Evas_Canvas3D_Node *datanode;
- const Efl_Event_Description *eo_desc = NULL;
- if (pd->type != EVAS_CANVAS3D_NODE_TYPE_MESH &&
- pd->type != EVAS_CANVAS3D_NODE_TYPE_NODE)
- return EINA_TRUE;
- _update_node_shapes(node);
- EINA_LIST_FOREACH(pd->members, current, datanode)
- {
- Evas_Canvas3D_Node_Data *datapd = efl_data_scope_get(datanode, EVAS_CANVAS3D_NODE_CLASS);
- evas_box3_union(&pd->obb, &pd->obb, &datapd->obb);
- evas_box3_union(&pd->aabb, &pd->aabb, &datapd->aabb);
- }
-
- evas_build_sphere(&pd->aabb, &pd->bsphere);
- eo_desc = efl_object_legacy_only_event_description_get("collision,private");
- efl_event_callback_legacy_call(node, eo_desc, (void *)node);
-
- return EINA_TRUE;
-}
-
-static Eina_Bool
-_node_update_done(Evas_Canvas3D_Node *obj, void *data EINA_UNUSED)
-{
- //@FIXME
- Evas_Canvas3D_Object_Data *pdobject = efl_data_scope_get(obj, EVAS_CANVAS3D_OBJECT_CLASS);
- memset(&pdobject->dirty[0], 0x00, sizeof(Eina_Bool) * EVAS_CANVAS3D_STATE_MAX);
- return EINA_TRUE;
-}
-
-EOLIAN static void
-_evas_canvas3d_node_evas_canvas3d_object_update_notify(Eo *obj, Evas_Canvas3D_Node_Data *pd EINA_UNUSED)
-{
- /* Update transform. */
- evas_canvas3d_node_tree_traverse(obj, EVAS_CANVAS3D_TREE_TRAVERSE_LEVEL_ORDER, EINA_FALSE,
- _node_transform_update, NULL);
- /*Update billboard*/
- evas_canvas3d_node_tree_traverse(obj, EVAS_CANVAS3D_TREE_TRAVERSE_ANY_ORDER, EINA_FALSE,
- _node_billboard_update, NULL);
- /* Update AABB. */
- if(efl_object_legacy_only_event_description_get("collision,private"))
- {
- evas_canvas3d_node_tree_traverse(obj, EVAS_CANVAS3D_TREE_TRAVERSE_POST_ORDER, EINA_FALSE,
- node_aabb_update, NULL);
- }
-
- /* Update node item. */
- evas_canvas3d_node_tree_traverse(obj, EVAS_CANVAS3D_TREE_TRAVERSE_ANY_ORDER, EINA_FALSE,
- _node_item_update, NULL);
-
- /* Mark all nodes in the tree as up-to-date. */
- evas_canvas3d_node_tree_traverse(obj, EVAS_CANVAS3D_TREE_TRAVERSE_ANY_ORDER, EINA_FALSE,
- _node_update_done, NULL);
-}
-
-static void
-_node_free(Evas_Canvas3D_Object *obj)
-{
- Evas_Canvas3D_Node_Data *pd = efl_data_scope_get(obj, MY_CLASS);
-
- if (pd->members)
- {
- Eina_List *l;
- Evas_Canvas3D_Node *n;
-
- EINA_LIST_FOREACH(pd->members, l, n)
- {
- efl_unref(n);
- }
-
- eina_list_free(pd->members);
- }
-
- if (pd->parent)
- {
- evas_canvas3d_node_member_del(pd->parent, obj);
- }
-
- if (pd->type == EVAS_CANVAS3D_NODE_TYPE_MESH && pd->data.mesh.meshes)
- {
- Eina_List *l;
- Evas_Canvas3D_Mesh *m;
-
- EINA_LIST_FOREACH(pd->data.mesh.meshes, l, m)
- {
- efl_unref(m);
- }
-
- eina_list_free(pd->data.mesh.meshes);
-
- if (pd->data.mesh.node_meshes)
- eina_hash_free(pd->data.mesh.node_meshes);
- }
-
- if (pd->scenes_root)
- eina_hash_free(pd->scenes_root);
-
- if (pd->scenes_camera)
- eina_hash_free(pd->scenes_camera);
-}
-
-void
-evas_canvas3d_node_scene_root_add(Evas_Canvas3D_Node *node, Evas_Canvas3D_Scene *scene)
-{
- int count = 0;
- Evas_Canvas3D_Node_Data *pd = efl_data_scope_get(node, MY_CLASS);
- if (pd->scenes_root == NULL)
- {
- pd->scenes_root = eina_hash_pointer_new(NULL);
-
- if (pd->scenes_root == NULL)
- {
- ERR("Failed to create hash table.");
- return;
- }
- }
- else
- count = (int)(uintptr_t)eina_hash_find(pd->scenes_root, &scene);
-
- eina_hash_set(pd->scenes_root, &scene, (const void *)(uintptr_t)(count + 1));
-}
-
-void
-evas_canvas3d_node_scene_root_del(Evas_Canvas3D_Node *node, Evas_Canvas3D_Scene *scene)
-{
- int count = 0;
- Evas_Canvas3D_Node_Data *pd = efl_data_scope_get(node, MY_CLASS);
- if (pd->scenes_root == NULL)
- {
- ERR("No scene to delete.");
- return;
- }
-
- count = (int)(uintptr_t)eina_hash_find(pd->scenes_root, &scene);
-
- if (count == 1)
- eina_hash_del(pd->scenes_root, &scene, NULL);
- else
- eina_hash_set(pd->scenes_root, &scene, (const void *)(uintptr_t)(count - 1));
-}
-
-EOLIAN static Eina_Hash*
-_evas_canvas3d_node_scene_root_get(Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd)
-{
- return pd->scenes_root;
-}
-
-void
-evas_canvas3d_node_scene_camera_add(Evas_Canvas3D_Node *node, Evas_Canvas3D_Scene *scene)
-{
- int count = 0;
- Evas_Canvas3D_Node_Data *pd = efl_data_scope_get(node, MY_CLASS);
- if (pd->scenes_camera == NULL)
- {
- pd->scenes_camera = eina_hash_pointer_new(NULL);
-
- if (pd->scenes_camera == NULL)
- {
- ERR("Failed to create hash table.");
- return;
- }
- }
- else
- count = (int)(uintptr_t)eina_hash_find(pd->scenes_camera, &scene);
-
- eina_hash_set(pd->scenes_camera, &scene, (const void *)(uintptr_t)(count + 1));
-}
-
-void
-evas_canvas3d_node_scene_camera_del(Evas_Canvas3D_Node *node, Evas_Canvas3D_Scene *scene)
-{
- int count = 0;
- Evas_Canvas3D_Node_Data *pd = efl_data_scope_get(node, MY_CLASS);
- if (pd->scenes_camera == NULL)
- {
- ERR("No scene to delete.");
- return;
- }
-
- count = (int)(uintptr_t)eina_hash_find(pd->scenes_camera, &scene);
-
- if (count == 1)
- eina_hash_del(pd->scenes_camera, &scene, NULL);
- else
- eina_hash_set(pd->scenes_camera, &scene, (const void *)(uintptr_t)(count - 1));
-}
-
-void
-evas_canvas3d_node_traverse(Evas_Canvas3D_Node *from, Evas_Canvas3D_Node *to, Evas_Canvas3D_Node_Traverse_Type type,
- Eina_Bool skip, Evas_Canvas3D_Node_Func func, void *data)
-{
- Eina_List *nodes = NULL, *n;
- Evas_Canvas3D_Node *node = NULL;
-
- if (from == NULL || func == NULL)
- goto error;
-
- if (type == EVAS_CANVAS3D_NODE_TRAVERSE_DOWNWARD)
- {
- if (to == NULL)
- goto error;
-
- node = to;
-
- do {
- nodes = eina_list_prepend(nodes, (const void *)node);
-
- if (node == from)
- break;
- Evas_Canvas3D_Node_Data *pdnode = efl_data_scope_get(node, MY_CLASS);
- node = pdnode->parent;
-
- if (node == NULL)
- goto error;
- } while (1);
- }
- else if (type == EVAS_CANVAS3D_NODE_TRAVERSE_UPWARD)
- {
- node = from;
-
- do {
- nodes = eina_list_append(nodes, (const void *)node);
-
- if (node == to)
- break;
- Evas_Canvas3D_Node_Data *pdnode = efl_data_scope_get(node, MY_CLASS);
- node = pdnode->parent;
-
- if (node == NULL)
- {
- if (to == NULL)
- break;
-
- goto error;
- }
- } while (1);
- }
-
- EINA_LIST_FOREACH(nodes, n, node)
- {
- if (!func(node, data) && skip)
- break;
- }
-
- eina_list_free(nodes);
- return;
-
-error:
- ERR("Node traverse error.");
-
- if (nodes)
- eina_list_free(nodes);
-}
-
-void
-evas_canvas3d_node_tree_traverse(Evas_Canvas3D_Node *root, Evas_Canvas3D_Tree_Traverse_Type type,
- Eina_Bool skip, Evas_Canvas3D_Node_Func func, void *data)
-{
- Eina_List *nodes = NULL, *l;
- Evas_Canvas3D_Node *node = NULL, *n, *last;
-
- if (root == NULL || func == NULL)
- return;
-
- if (type == EVAS_CANVAS3D_TREE_TRAVERSE_LEVEL_ORDER)
- {
- /* Put the root node in the queue. */
- nodes = eina_list_append(nodes, root);
-
- while (eina_list_count(nodes) > 0)
- {
- /* Dequeue a node. */
- node = eina_list_data_get(nodes);
- Evas_Canvas3D_Node_Data *pdnode = efl_data_scope_get(node, MY_CLASS);
-
- nodes = eina_list_remove_list(nodes, nodes);
-
- /* Call node function on the node. */
- if (func(node, data) || !skip)
- {
- /* Enqueue member nodes. */
- EINA_LIST_FOREACH(pdnode->members, l, n)
- {
- nodes = eina_list_append(nodes, n);
- }
- }
- }
- }
- else if (type == EVAS_CANVAS3D_TREE_TRAVERSE_PRE_ORDER)
- {
- /* Put the root node in the stack. */
- nodes = eina_list_append(nodes, root);
-
- while (eina_list_count(nodes) > 0)
- {
- /* Pop a node from the stack. */
- node = eina_list_data_get(nodes);
- Evas_Canvas3D_Node_Data *pdnode = efl_data_scope_get(node, MY_CLASS);
- nodes = eina_list_remove_list(nodes, nodes);
-
- /* Call node function on the node. */
- if (func(node, data) || !skip)
- {
- /* Push member nodes into the stack. */
- EINA_LIST_REVERSE_FOREACH(pdnode->members, l, n)
- {
- nodes = eina_list_prepend(nodes, n);
- }
- }
- }
- }
- else if (type == EVAS_CANVAS3D_TREE_TRAVERSE_POST_ORDER)
- {
- if (skip)
- {
- ERR("Using skip with post order traversal has no effect.");
- return;
- }
-
- /* Put the root node in the stack. */
- nodes = eina_list_append(nodes, root);
- last = NULL;
-
- while (eina_list_count(nodes) > 0)
- {
- /* Peek a node from the stack. */
- node = eina_list_data_get(nodes);
- Evas_Canvas3D_Node_Data *pdnode = efl_data_scope_get(node, MY_CLASS);
- if (eina_list_count(pdnode->members) == 0)
- {
- /* The peeked node is a leaf node,
- * so visit it and pop from the stack. */
- func(node, data);
- nodes = eina_list_remove_list(nodes, nodes);
-
- /* Save the last visited node. */
- last = node;
- }
- else
- {
- /* If the peeked node is not a leaf node,
- * there can be only two possible cases.
- *
- * 1. the parent of the last visited node.
- * 2. a sibling of the last visited node.
- *
- * If the last visited node is a direct child of the peeked node,
- * we have no unvisted child nodes for the peeked node, so we have to visit
- * the peeked node and pop from the stack.
- *
- * Otherwise it should be a sibling of the peeked node, so we have to push
- * its childs into the stack. */
- Evas_Canvas3D_Node_Data *pdlast;
- if (last )
- pdlast= efl_data_scope_get(last, MY_CLASS);
- if (last && pdlast->parent == node)
- {
- /* Visit the node as it doesn't have any unvisited child node. */
- func(node, data);
- nodes = eina_list_remove_list(nodes, nodes);
-
- /* Save the last visited node. */
- last = node;
- }
- else
- {
- /* Push child nodes into the stack. */
- EINA_LIST_REVERSE_FOREACH(pdnode->members, l, n)
- {
- nodes = eina_list_prepend(nodes, n);
- }
- }
- }
- }
- }
-
- if (nodes != NULL)
- eina_list_free(nodes);
-}
-
-Eina_Bool
-_node_is_visible(Evas_Canvas3D_Node *node EINA_UNUSED, Evas_Canvas3D_Node *camera_node EINA_UNUSED)
-{
- /* TODO: */
- return EINA_TRUE;
-}
-
-Eina_Bool
-evas_canvas3d_node_mesh_collect(Evas_Canvas3D_Node *node, void *data)
-{
- Eina_List *list_meshes, *l;
- Evas_Canvas3D_Mesh *mesh = NULL;
- Evas_Canvas3D_Mesh_Data *mesh_pd;
- Evas_Canvas3D_Mesh_Frame *f;
- Evas_Canvas3D_Scene_Public_Data *scene_data = (Evas_Canvas3D_Scene_Public_Data *)data;
- Evas_Canvas3D_Node_Data *pd = efl_data_scope_get(node, MY_CLASS);
- unsigned short int *index;
- int stride, tex_stride, normal_stride;
-
- if (pd->type == EVAS_CANVAS3D_NODE_TYPE_MESH)
- {
- scene_data->mesh_nodes = eina_list_append(scene_data->mesh_nodes, node);
- /*In case LOD calculate distance to the camera node*/
- if (pd->lod)
- {
- Evas_Canvas3D_Node_Data *pd_camera = efl_data_scope_get(scene_data->camera_node, MY_CLASS);
- scene_data->lod_distance = eina_vector3_distance_get(&pd_camera->position, &pd->position_world);
- }
- /* calculation of tangent space for all meshes */
- list_meshes = (Eina_List *)evas_canvas3d_node_mesh_list_get(node);
- EINA_LIST_FOREACH(list_meshes, l, mesh)
- {
- mesh_pd = efl_data_scope_get(mesh, MY_CLASS);
- f = evas_canvas3d_mesh_frame_find(mesh_pd, 0);
- if (!f)
- {
- ERR("Not existing mesh frame.");
- continue;
- }
-
- float *tangent_data = (float *)f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_TANGENT].data;
- if (!tangent_data && ((mesh_pd->shader_mode == EVAS_CANVAS3D_SHADER_MODE_NORMAL_MAP) ||
- (mesh_pd->shader_mode == EVAS_CANVAS3D_SHADER_MODE_PARALLAX_OCCLUSION)))
- {
- index = (unsigned short int *)mesh_pd->indices;
- tangent_data = (float*) malloc((3 * mesh_pd->vertex_count) * sizeof(float));
-
- float *vertex_data = (float *)f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].data;
- if (f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].stride != 0)
- stride = f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].stride / sizeof(float);
- else
- stride = 3;
-
- float *tex_data = (float *)f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD].data;
- if (f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD].stride != 0)
- tex_stride = f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD].stride / sizeof(float);
- else
- tex_stride = 2;
-
- float *normal_data = (float *)f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL].data;
- if (f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL].stride != 0)
- normal_stride = f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL].stride / sizeof(float);
- else
- normal_stride = 2;
-
- evas_tangent_space_get(vertex_data, tex_data, normal_data, index, mesh_pd->vertex_count,
- mesh_pd->index_count, stride, tex_stride, normal_stride, &tangent_data);
-
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TANGENT, 3 * sizeof(float), tangent_data);
- free(tangent_data);
- }
- }
- }
- if (!_node_is_visible(node, scene_data->camera_node))
- {
- /* Skip entire sub-tree of this node. */
- return EINA_FALSE;
- }
-
- return EINA_TRUE;
-}
-
-Eina_Bool
-evas_canvas3d_node_color_node_mesh_collect(Evas_Canvas3D_Node *node, void *data)
-{
- Evas_Canvas3D_Scene_Public_Data *scene_data = (Evas_Canvas3D_Scene_Public_Data *)data;
- Evas_Canvas3D_Node_Data *pd = efl_data_scope_get(node, MY_CLASS);
- Evas_Canvas3D_Node_Data *pd_camera = efl_data_scope_get(scene_data->camera_node, MY_CLASS);
- Evas_Canvas3D_Camera *camera = (Evas_Canvas3D_Camera*)pd_camera->data.camera.camera;
-
- Eina_List *list_meshes, *l;
- Evas_Canvas3D_Mesh *mesh;
- Eina_Stringshare *key, *datakey;
- Evas_Color *color;
- Eina_Bool visible = EINA_FALSE;
- Eina_Array *arr;
- if (pd->type == EVAS_CANVAS3D_NODE_TYPE_MESH)
- {
- visible = evas_canvas3d_camera_node_visible_get(camera, scene_data->camera_node, node, EVAS_CANVAS3D_FRUSTUM_MODE_BSPHERE);
- if (visible)
- {
- list_meshes = (Eina_List *)evas_canvas3d_node_mesh_list_get(node);
- EINA_LIST_FOREACH(list_meshes, l, mesh)
- {
- if (evas_canvas3d_mesh_color_pick_enable_get(mesh))
- {
- color = calloc(1, sizeof(Evas_Color));
-
- if (!eina_hash_population(scene_data->node_mesh_colors))
- key = _generate_unic_color_key(color, &scene_data->bg_color,
- node, mesh, EINA_TRUE);
- else
- key = _generate_unic_color_key(color, &scene_data->bg_color,
- node, mesh, EINA_FALSE);
-
- datakey = eina_stringshare_printf("%f %f %f", color->r, color->g, color->b);
- eina_hash_add(scene_data->node_mesh_colors, key, color);
- arr = eina_array_new(2);
- eina_array_push(arr, (void *)node);
- eina_array_push(arr, (void *)mesh);
- eina_hash_add(scene_data->colors_node_mesh, datakey, arr);
- }
- }
- }
- else
- return EINA_FALSE;
- }
- return EINA_TRUE;
-}
-
-Eina_Bool
-evas_canvas3d_node_light_collect(Evas_Canvas3D_Node *node, void *data)
-{
- Evas_Canvas3D_Scene_Public_Data *scene_data = (Evas_Canvas3D_Scene_Public_Data *)data;
- Evas_Canvas3D_Node_Data *pd = efl_data_scope_get(node, MY_CLASS);
- if (pd->type == EVAS_CANVAS3D_NODE_TYPE_LIGHT)
- scene_data->light_nodes = eina_list_append(scene_data->light_nodes, node);
-
- return EINA_TRUE;
-}
-
-EAPI Evas_Canvas3D_Node *
-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_type_set(efl_added, 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)
-{
- efl_constructor(efl_super(obj, MY_CLASS));
- evas_canvas3d_object_type_set(obj, EVAS_CANVAS3D_OBJECT_TYPE_NODE);
-
- eina_vector3_set(&pd->position, 0.0, 0.0, 0.0);
- eina_quaternion_set(&pd->orientation, 0.0, 0.0, 0.0, 1.0);
- eina_vector3_set(&pd->scale, 1.0, 1.0, 1.0);
-
- eina_vector3_set(&pd->position_world, 0.0, 0.0, 0.0);
- eina_quaternion_set(&pd->orientation_world, 0.0, 0.0, 0.0, 1.0);
- eina_vector3_set(&pd->scale_world, 1.0, 1.0, 1.0);
-
- pd->position_inherit = EINA_TRUE;
- pd->orientation_inherit = EINA_TRUE;
- pd->scale_inherit = EINA_TRUE;
- pd->data.mesh.node_meshes = 0;
- pd->billboard_target = NULL;
- pd->lod = EINA_FALSE;
-
- evas_box3_set(&pd->aabb, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
- return obj;
-}
-
-EOLIAN static void
-_evas_canvas3d_node_efl_object_destructor(Eo *obj, Evas_Canvas3D_Node_Data *pd EINA_UNUSED)
-{
- _node_free(obj);
-
- efl_destructor(efl_super(obj, MY_CLASS));
-}
-
-EOLIAN static Evas_Canvas3D_Node_Type
-_evas_canvas3d_node_node_type_get(const 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)
- {
- ERR("Failed to add a member node (adding to itself).");
- return;
- }
- Evas_Canvas3D_Node_Data *pdmember = efl_data_scope_get(member, MY_CLASS);
- if (!pdmember || pdmember->parent == obj)
- return;
-
- if (pdmember->parent)
- {
- /* Detaching from previous parent. */
- Evas_Canvas3D_Node_Data *pdmemberparent = efl_data_scope_get(pdmember->parent, MY_CLASS);
- pdmemberparent->members = eina_list_remove(pdmemberparent->members, member);
-
- /* Mark changed. */
- evas_canvas3d_object_change(pdmember->parent, EVAS_CANVAS3D_STATE_NODE_MEMBER, NULL);
- }
- else
- {
- /* Should get a new reference. */
- efl_ref(member);
- }
-
- /* Add the member node. */
- pd->members = eina_list_append(pd->members, (const void *)member);
- pdmember->parent = obj;
-
- /* Mark changed. */
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_MEMBER, NULL);
- evas_canvas3d_object_change(member, EVAS_CANVAS3D_STATE_NODE_PARENT_ORIENTATION, NULL);
- evas_canvas3d_object_change(member, EVAS_CANVAS3D_STATE_NODE_PARENT_POSITION, NULL);
- evas_canvas3d_object_change(member, EVAS_CANVAS3D_STATE_NODE_PARENT_SCALE, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_node_member_del(Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Canvas3D_Node *member)
-{
- Evas_Canvas3D_Node_Data *pdmember = efl_data_scope_get(member, MY_CLASS);
- if (!pdmember || pdmember->parent != obj)
- {
- ERR("Failed to delete a member node (not a member of the given node)");
- return;
- }
-
- /* Delete the member node. */
- pd->members = eina_list_remove(pd->members, member);
- pdmember->parent = NULL;
-
- /* Mark modified object as changed. */
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_MEMBER, NULL);
- evas_canvas3d_object_change(member, EVAS_CANVAS3D_STATE_NODE_PARENT_ORIENTATION, NULL);
- evas_canvas3d_object_change(member, EVAS_CANVAS3D_STATE_NODE_PARENT_POSITION, NULL);
- evas_canvas3d_object_change(member, EVAS_CANVAS3D_STATE_NODE_PARENT_SCALE, NULL);
-
- /* Decrease reference count. */
- efl_unref(member);
-}
-
-EOLIAN static Evas_Canvas3D_Node *
-_evas_canvas3d_node_parent_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd)
-{
- return pd->parent;
-}
-
-EOLIAN static const Eina_List *
-_evas_canvas3d_node_member_list_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd)
-{
- return pd->members;
-}
-
-EOLIAN static void
-_evas_canvas3d_node_position_set(Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z)
-{
- pd->position.x = x;
- pd->position.y = y;
- pd->position.z = z;
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_POSITION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_node_orientation_set(Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z, Evas_Real w)
-{
- pd->orientation.x = x;
- pd->orientation.y = y;
- pd->orientation.z = z;
- pd->orientation.w = w;
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_ORIENTATION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_node_orientation_angle_axis_set(Eo *obj, Evas_Canvas3D_Node_Data *pd,
- Evas_Real angle, Evas_Real x, Evas_Real y, Evas_Real z)
-{
- Evas_Real half_angle = 0.5 * DEGREE_TO_RADIAN(angle);
- Evas_Real s = sin(half_angle);
- Eina_Vector3 axis;
-
- eina_vector3_set(&axis, x, y, z);
- eina_vector3_normalize(&axis, &axis);
-
- pd->orientation.w = cos(half_angle);
- pd->orientation.x = s * axis.x;
- pd->orientation.y = s * axis.y;
- pd->orientation.z = s * axis.z;
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_ORIENTATION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_node_scale_set(Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z)
-{
- pd->scale.x = x;
- pd->scale.y = y;
- pd->scale.z = z;
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_SCALE, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_node_position_get(const Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Canvas3D_Space space,
- Evas_Real *x, Evas_Real *y, Evas_Real *z)
-{
- if (space == EVAS_CANVAS3D_SPACE_LOCAL)
- {
- if (x) *x = 0.0;
- if (y) *y = 0.0;
- if (z) *z = 0.0;
- }
- else if (space == EVAS_CANVAS3D_SPACE_PARENT)
- {
- if (x) *x = pd->position.x;
- if (y) *y = pd->position.y;
- if (z) *z = pd->position.z;
- }
- else if (space == EVAS_CANVAS3D_SPACE_WORLD)
- {
- evas_canvas3d_object_update((Eo *) obj);
-
- if (x) *x = pd->position_world.x;
- if (y) *y = pd->position_world.y;
- if (z) *z = pd->position_world.z;
- }
-}
-
-EOLIAN static void
-_evas_canvas3d_node_orientation_get(const Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Canvas3D_Space space,
- Evas_Real *x, Evas_Real *y, Evas_Real *z, Evas_Real *w)
-{
- if (space == EVAS_CANVAS3D_SPACE_LOCAL)
- {
- if (x) *x = 0.0;
- if (y) *y = 0.0;
- if (z) *z = 0.0;
- if (w) *w = 0.0;
- }
- else if (space == EVAS_CANVAS3D_SPACE_PARENT)
- {
- if (x) *x = pd->orientation.x;
- if (y) *y = pd->orientation.y;
- if (z) *z = pd->orientation.z;
- if (w) *w = pd->orientation.w;
- }
- else if (space == EVAS_CANVAS3D_SPACE_WORLD)
- {
- evas_canvas3d_object_update((Eo *) obj);
-
- if (x) *x = pd->orientation_world.x;
- if (y) *y = pd->orientation_world.y;
- if (z) *z = pd->orientation_world.z;
- if (w) *w = pd->orientation_world.w;
- }
-
-}
-
-EOLIAN static void
-_evas_canvas3d_node_scale_get(const Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Canvas3D_Space space,
- Evas_Real *x, Evas_Real *y, Evas_Real *z)
-{
- if (space == EVAS_CANVAS3D_SPACE_LOCAL)
- {
- if (x) *x = 0.0;
- if (y) *y = 0.0;
- if (z) *z = 0.0;
- }
- else if (space == EVAS_CANVAS3D_SPACE_PARENT)
- {
- if (x) *x = pd->scale.x;
- if (y) *y = pd->scale.y;
- if (z) *z = pd->scale.z;
- }
- else if (space == EVAS_CANVAS3D_SPACE_WORLD)
- {
- evas_canvas3d_object_update((Eo *) obj);
-
- if (x) *x = pd->scale_world.x;
- if (y) *y = pd->scale_world.y;
- if (z) *z = pd->scale_world.z;
- }
-}
-
-EOLIAN static void
-_evas_canvas3d_node_position_inherit_set(Eo *obj, Evas_Canvas3D_Node_Data *pd, Eina_Bool inherit)
-{
- pd->position_inherit = inherit;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_POSITION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_node_orientation_inherit_set(Eo *obj, Evas_Canvas3D_Node_Data *pd, Eina_Bool inherit)
-{
- pd->orientation_inherit = inherit;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_ORIENTATION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_node_scale_inherit_set(Eo *obj, Evas_Canvas3D_Node_Data *pd, Eina_Bool inherit)
-{
- pd->scale_inherit = inherit;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_SCALE, NULL);
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_node_position_inherit_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd)
-{
- return pd->position_inherit;
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_node_orientation_inherit_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd)
-{
- return pd->orientation_inherit;
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_node_scale_inherit_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd)
-{
- return pd->scale_inherit;
-}
-
-static void
-_look_at_set(Evas_Canvas3D_Node_Data *pd, Eina_Vector3 *target, Eina_Vector3 *up)
-{
- Eina_Vector3 x, y, z;
-
- eina_vector3_subtract(&z, &pd->position, target);
- eina_vector3_normalize(&z, &z);
-
- eina_vector3_cross_product(&x, up, &z);
- eina_vector3_normalize(&x, &x);
-
- eina_vector3_cross_product(&y, &z, &x);
- eina_vector3_normalize(&y, &y);
-
- /* Below matrix to quaternion conversion code taken from
- * http://fabiensanglard.net/doom3_documentation/37726-293748.pdf
- * When any license issue occurs, use ken shoemake's algorithm instead.
- */
-
- if (x.x + y.y + z.z > 0.0)
- {
- Evas_Real t = x.x + y.y + z.z + 1.0;
- Evas_Real s = evas_reciprocal_sqrt(t) * 0.5;
-
- pd->orientation.w = s * t;
- pd->orientation.z = (x.y - y.x) * s;
- pd->orientation.y = (z.x - x.z) * s;
- pd->orientation.x = (y.z - z.y) * s;
- }
- else if (x.x > y.y && x.x > z.z)
- {
- Evas_Real t = x.x - y.y - z.z + 1.0;
- Evas_Real s = evas_reciprocal_sqrt(t) * 0.5;
-
- pd->orientation.x = s * t;
- pd->orientation.y = (x.y + y.x) * s;
- pd->orientation.z = (z.x + x.z) * s;
- pd->orientation.w = (y.z - z.y) * s;
- }
- else if (y.y > z.z)
- {
- Evas_Real t = -x.x + y.y - z.z + 1.0;
- Evas_Real s = evas_reciprocal_sqrt(t) * 0.5;
-
- pd->orientation.y = s * t;
- pd->orientation.x = (x.y + y.x) * s;
- pd->orientation.w = (z.x - x.z) * s;
- pd->orientation.z = (y.z + z.y) * s;
- }
- else
- {
- Evas_Real t = -x.x - y.y + z.z + 1.0;
- Evas_Real s = evas_reciprocal_sqrt(t) * 0.5;
-
- pd->orientation.z = s * t;
- pd->orientation.w = (x.y - y.x) * s;
- pd->orientation.x = (z.x + x.z) * s;
- pd->orientation.y = (y.z + z.y) * s;
- }
-}
-
-EOLIAN static void
-_evas_canvas3d_node_look_at_set(Eo *obj, Evas_Canvas3D_Node_Data *pd,
- Evas_Canvas3D_Space target_space, Evas_Real tx, Evas_Real ty, Evas_Real tz,
- Evas_Canvas3D_Space up_space, Evas_Real ux, Evas_Real uy, Evas_Real uz)
-{
- Eina_Vector3 target;
- Eina_Vector3 up;
-
- /* Target position in parent space. */
- if (target_space == EVAS_CANVAS3D_SPACE_LOCAL)
- {
- ERR("TODO:");
- return;
- }
- else if (target_space == EVAS_CANVAS3D_SPACE_PARENT)
- {
- eina_vector3_set(&target, tx, ty, tz);
- }
- else if (target_space == EVAS_CANVAS3D_SPACE_WORLD)
- {
- ERR("TODO:");
- return;
-
- }
- else
- {
- ERR("Invalid coordinate space.");
- return;
- }
-
- if (up_space == EVAS_CANVAS3D_SPACE_LOCAL)
- {
- eina_vector3_set(&up, ux, uy, uz);
- //ERR("TODO:");
- //return;
- }
- else if (up_space == EVAS_CANVAS3D_SPACE_PARENT)
- {
- eina_vector3_set(&up, ux, uy, uz);
- }
- else if (up_space == EVAS_CANVAS3D_SPACE_WORLD)
- {
- ERR("TODO:");
- return;
- }
- else
- {
- ERR("Invalid coordinate space.");
- return;
- }
-
- _look_at_set(pd, &target, &up);
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_TRANSFORM_ORIENTATION, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_node_camera_set(Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Canvas3D_Camera *camera)
-{
- if (pd->type != EVAS_CANVAS3D_NODE_TYPE_CAMERA)
- {
- ERR("Node type mismatch.");
- return;
- }
-
- if (pd->data.camera.camera == camera)
- return;
-
- if (pd->data.camera.camera)
- {
- /* Detach previous camera object. */
- evas_canvas3d_camera_node_del(pd->data.camera.camera, obj);
- efl_unref(pd->data.camera.camera);
- }
-
- pd->data.camera.camera = camera;
- efl_ref(camera);
-
- /* Register change notification on the camera for this node. */
- evas_canvas3d_camera_node_add(camera, obj);
-
- /* Mark changed. */
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_CAMERA, NULL);
-}
-
-EOLIAN static Evas_Canvas3D_Camera *
-_evas_canvas3d_node_camera_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd)
-{
- return pd->data.camera.camera;
-}
-
-EOLIAN static void
-_evas_canvas3d_node_light_set(Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Canvas3D_Light *light)
-{
- if (pd->type != EVAS_CANVAS3D_NODE_TYPE_LIGHT)
- {
- ERR("Node type mismatch.");
- return;
- }
-
- if (pd->data.light.light == light)
- return;
-
- if (pd->data.light.light)
- {
- /* Detach previous light object. */
- evas_canvas3d_light_node_del(pd->data.light.light, obj);
- efl_unref(pd->data.light.light);
- }
-
- pd->data.light.light = light;
- efl_ref(light);
-
- /* Register change notification on the light for this node. */
- evas_canvas3d_light_node_add(light, obj);
-
- /* Mark changed. */
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_LIGHT, NULL);
-}
-
-EOLIAN static Evas_Canvas3D_Light *
-_evas_canvas3d_node_light_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd)
-{
- return pd->data.light.light;
-}
-
-EOLIAN static void
-_evas_canvas3d_node_mesh_add(Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Canvas3D_Mesh *mesh)
-{
- Evas_Canvas3D_Node_Mesh *nm = NULL;
-
- if (pd->type != EVAS_CANVAS3D_NODE_TYPE_MESH)
- {
- ERR("Node type mismatch.");
- return;
- }
-
- if (eina_hash_find(pd->data.mesh.node_meshes, &mesh) != NULL)
- {
- ERR("The mesh is already added to the node.");
- return;
- }
-
- if ((nm = _node_mesh_new(obj, mesh)) == NULL)
- {
- ERR("Failed to create node mesh.");
- return;
- }
-
- /* TODO: Find node mesh and add if it does not exist. */
- if (!eina_hash_add(pd->data.mesh.node_meshes, &mesh, nm))
- {
- ERR("Failed to add a mesh to mesh table.");
- _node_mesh_free(nm);
- return;
- }
-
- pd->data.mesh.meshes = eina_list_append(pd->data.mesh.meshes, mesh);
- efl_ref(mesh);
-
- /* Register change notification. */
- evas_canvas3d_mesh_node_add(mesh, obj);
-
- /* Mark changed. */
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_MESH_GEOMETRY, NULL);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_MESH_MATERIAL, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_node_mesh_del(Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Canvas3D_Mesh *mesh)
-{
- if (pd->type != EVAS_CANVAS3D_NODE_TYPE_MESH)
- {
- ERR("Node type mismatch.");
- return;
- }
-
- if (!eina_hash_del(pd->data.mesh.node_meshes, &mesh, NULL))
- {
- ERR("The given mesh doesn't belong to this node.");
- return;
- }
-
- pd->data.mesh.meshes = eina_list_remove(pd->data.mesh.meshes, mesh);
- evas_canvas3d_mesh_node_del(mesh, obj);
- efl_unref(mesh);
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_MESH_GEOMETRY, NULL);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_MESH_MATERIAL, NULL);
-}
-
-EOLIAN static const Eina_List *
-_evas_canvas3d_node_mesh_list_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd)
-{
- return pd->data.mesh.meshes;
-}
-
-EOLIAN static void
-_evas_canvas3d_node_mesh_frame_set(Eo *obj, Evas_Canvas3D_Node_Data *pd, Evas_Canvas3D_Mesh *mesh, int frame)
-{
- Evas_Canvas3D_Node_Mesh *nm = NULL;
-
- if (pd->type != EVAS_CANVAS3D_NODE_TYPE_MESH)
- {
- ERR("Node type mismatch.");
- return;
- }
-
- if ((nm = eina_hash_find(pd->data.mesh.node_meshes, &mesh)) == NULL)
- {
- ERR("The given mesh doesn't belongs to this node.");
- return;
- }
-
- nm->frame = frame;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_MESH_FRAME, NULL);
-}
-
-EOLIAN static int
-_evas_canvas3d_node_mesh_frame_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd, Evas_Canvas3D_Mesh *mesh)
-{
- Evas_Canvas3D_Node_Mesh *nm = NULL;
-
- if (pd->type != EVAS_CANVAS3D_NODE_TYPE_MESH)
- {
- ERR("Node type mismatch.");
- return 0;
- }
-
- if ((nm = eina_hash_find(pd->data.mesh.node_meshes, &mesh)) == NULL)
- {
- ERR("The given mesh doesn't belongs to this node.");
- return 0;
- }
-
- return nm->frame;
-}
-
-EOLIAN static void
-_evas_canvas3d_node_bounding_box_get(Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd, Evas_Real *x, Evas_Real *y, Evas_Real *z, Evas_Real *x2, Evas_Real *y2, Evas_Real *z2)
-{
- evas_canvas3d_object_update(obj);
- evas_canvas3d_node_tree_traverse(obj, EVAS_CANVAS3D_TREE_TRAVERSE_LEVEL_ORDER, EINA_FALSE,
- node_aabb_update, NULL);
-
- if (x) *x = pd->aabb.p0.x;
- if (y) *y = pd->aabb.p0.y;
- if (z) *z = pd->aabb.p0.z;
- if (x2) *x2 = pd->aabb.p1.x;
- if (y2) *y2 = pd->aabb.p1.y;
- if (z2) *z2 = pd->aabb.p1.z;
-}
-
-EOLIAN static void
-_evas_canvas3d_node_bounding_sphere_get(Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd, Evas_Real *x, Evas_Real *y, Evas_Real *z, Evas_Real *r)
-{
- evas_canvas3d_object_update(obj);
- evas_canvas3d_node_tree_traverse(obj, EVAS_CANVAS3D_TREE_TRAVERSE_LEVEL_ORDER, EINA_FALSE,
- node_aabb_update, NULL);
-
- if (x) *x = pd->bsphere.center.x;
- if (y) *y = pd->bsphere.center.y;
- if (z) *z = pd->bsphere.center.z;
- if (r) *r = pd->bsphere.radius;
-}
-
-EOLIAN static void
-_evas_canvas3d_node_billboard_target_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd,
- Eo *target)
-{
- if (pd->billboard_target != target)
- {
- pd->billboard_target = target;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_PARENT_BILLBOARD, NULL);
- }
-}
-
-EOLIAN static Evas_Canvas3D_Node *
-_evas_canvas3d_node_billboard_target_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd)
-{
- return pd->billboard_target;
-}
-
-EOLIAN static void
-_evas_canvas3d_node_lod_enable_set(Eo *obj, Evas_Canvas3D_Node_Data *pd,
- Eina_Bool enable)
-{
- pd->lod = enable;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_NODE_LOD, NULL);
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_node_lod_enable_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Node_Data *pd)
-{
- return pd->lod;
-}
-#include "canvas/evas_canvas3d_node.eo.c"
diff --git a/src/lib/evas/canvas/evas_canvas3d_node.eo b/src/lib/evas/canvas/evas_canvas3d_node.eo
deleted file mode 100644
index 900bbd6b53..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_node.eo
+++ /dev/null
@@ -1,368 +0,0 @@
-import evas_canvas3d_types;
-
-class @beta Evas.Canvas3D.Node extends Evas.Canvas3D.Object
-{
- [[Evas 3D canvas node class]]
- data: Evas_Canvas3D_Node_Data;
- methods {
- @property node_type {
- [[Get the type of the given node.
-
- See also @Evas.Canvas3D.Node.member_add.]]
- 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.
-
- Nodes can be constructed into N-ary tree structure like other ordinary scene
- graphs. A node inherit transforms from its parent.
-
- See also @Evas.Canvas3D.Node.parent_get.]]
-
- params {
- @in member: Evas.Canvas3D.Node; [[Node object to be added.]]
- }
- }
- member_del {
- [[Delete a member node from the given node.
-
- See also @Evas.Canvas3D.Node.member_add.]]
- params {
- @in member: Evas.Canvas3D.Node; [[Member node to be deleted from the given node.]]
- }
- }
-
- parent_get @const {
- [[Get the parent node of the given node.
-
- See also @Evas.Canvas3D.Node.member_add.]]
- return: Evas.Canvas3D.Node; [[The parent node of the given node.]]
- }
-
- member_list_get @const {
- [[Get the list of member nodes of the given node.
-
- See also @Evas.Canvas3D.Node.member_add.]]
- return: const(list<Evas.Canvas3D.Node>); [[The list of member nodes if any or $null if there are none.]]
- }
- scene_root_get {
- [[Get hash table of scenes using this node as root.]]
- /* FIXME: void_ptr is actually uintptr and that is also wrong */
- return: hash<Evas.Canvas3D.Object, void_ptr>; [[ scenes using this node as root. FIXME: Actually a scene, not object.]]
- }
- position_set {
- [[Set the position of the given node.
-
- According to the inheritance flag, (x, y, z) can be a world space position or
- parent space position.
-
- Default position is (0.0, 0.0, 0.0).
-
- See also @Evas.Canvas3D.Node.position_inherit.set.]]
- params {
- @in x: Evas.Real; [[X coordinate of the position.]]
- @in y: Evas.Real; [[Y coordinate of the position.]]
- @in z: Evas.Real; [[Z coordinate of the position.]]
- }
- }
- orientation_set {
- [[Set the orientation of the given node using quaternion.
-
- According the the inheritance flag, (w, x, y, z) can be a world space
- orientation or parent space orientation.
-
- Default orientation is (1.0, 0.0, 0.0, 0.0) (identity quaternion).
-
- See also @Evas.Canvas3D.Node.orientation_inherit.set.]]
- params {
- @in x: Evas.Real; [[X term of the orientation quaternion (w, x, y, z.]]
- @in y: Evas.Real; [[Y term of the orientation quaternion (w, x, y, z.]]
- @in z: Evas.Real; [[Z term of the orientation quaternion (w, x, y, z.]]
- @in w: Evas.Real; [[W term of the orientation quaternion (w, x, y, z.]]
- }
- }
-
- orientation_angle_axis_set {
- [[Set the orientation of the given node using axis-angle.
-
- See also @Evas.Canvas3D.Node.orientation_set.]]
- params {
- @in angle: Evas.Real; [[Rotation angle.]]
- @in x: Evas.Real; [[X term of the rotation axis.]]
- @in y: Evas.Real; [[Y term of the rotation axis.]]
- @in z: Evas.Real; [[Z term of the rotation axis.]]
- }
- }
-
- scale_set {
- [[Set the scale of the given node.
-
- According to the inheritance flag, (x, y, z) can be a world space scale or
- parent space scale. Be careful when using non-uniform scale factor with
- inheritance, each transform attributes are not affected by other attributes.
-
- Default scale is (1.0, 1.0, 1.0).
-
- See also @Evas.Canvas3D.Node.scale_inherit.set.]]
- params {
- @in x: Evas.Real; [[Scale factor along X-axis.]]
- @in y: Evas.Real; [[Scale factor along Y-axis.]]
- @in z: Evas.Real; [[Scale factor along Z-axis.]]
- }
- }
-
- position_get @const {
- [[Get the position of the given node.
-
- See also @Evas.Canvas3D.Node.position_set.]]
- params {
- @in space: Evas.Canvas3D.Space; [[The given node.]]
- @out x: Evas.Real; [[Pointer to receive X coordinate of the position.]]
- @out y: Evas.Real; [[Pointer to receive Y coordinate of the position.]]
- @out z: Evas.Real; [[Pointer to receive Z coordinate of the position.]]
- }
- }
-
- orientation_get @const {
- [[Get the orientation of the given node as quaternion.
-
- See also @Evas.Canvas3D.Node.orientation_set.]]
- params {
- @in space: Evas.Canvas3D.Space; [[The given node.]]
- @out x: Evas.Real; [[Pointer to receive X term of the orientation quaternion.]]
- @out y: Evas.Real; [[Pointer to receive Y term of the orientation quaternion.]]
- @out z: Evas.Real; [[Pointer to receive Z term of the orientation quaternion.]]
- @out w: Evas.Real; [[Pointer to receive W term of the orientation quaternion.]]
- }
- }
-
- scale_get @const {
- [[Get the scale of the given node.
-
- See also @Evas.Canvas3D.Node.scale_get.]]
- params {
- @in space: Evas.Canvas3D.Space; [[The given node.]]
- @out x: Evas.Real; [[Pointer to receive Scale factor along X-axis.]]
- @out y: Evas.Real; [[Pointer to receive Scale factor along X-axis.]]
- @out z: Evas.Real; [[Pointer to receive Scale factor along X-axis.]]
- }
- }
-
- look_at_set {
- [[Rotate the given node to look at desired position.
-
- This function rotate the given node so that its forward vector (negative
- Z-axis) points to the desired position and the up vector coincide with the
- given up vector.
-
- See also @Evas.Canvas3D.Node.orientation_set.]]
- params {
- @in target_space: Evas.Canvas3D.Space; [[Space where the target position belongs to.]]
- @in x: Evas.Real; [[X coordinate of the target position.]]
- @in y: Evas.Real; [[Y coordinate of the target position.]]
- @in z: Evas.Real; [[Z coordinate of the target position.]]
- @in up_space: Evas.Canvas3D.Space; [[Space where the up vector belongs to.]]
- @in ux: Evas.Real; [[X term of the up vector.]]
- @in uy: Evas.Real; [[Y term of the up vector.]]
- @in uz: Evas.Real; [[Z term of the up vector.]]
- }
- }
-
- mesh_add {
- [[Add a mesh to the given node.
-
- If the node is not of type EVAS_CANVAS3D_NODE_TYPE_MESH, error message will be
- generated and nothing happens.
-
- See also @Evas.Canvas3D.Node.member_add.]]
- params {
- @in mesh: Evas.Canvas3D.Mesh; [[The mesh to be added.]]
- }
- }
-
- mesh_del {
- [[Delete a mesh from the given node.
-
- If the node is not of type EVAS_CANVAS3D_NODE_TYPE_MESH or the given mesh does not
- belong to the given node, error message will be gnerated and nothing happens.
-
- See also @Evas.Canvas3D.Node.mesh_add.]]
- params {
- @in mesh: Evas.Canvas3D.Mesh; [[The mesh to be deleted.]]
- }
- }
-
- mesh_list_get @const {
- [[Get the list of meshes of the given node.
-
- If the node is not of type EVAS_CANVAS3D_NODE_TYPE_MESH, error message will be
- generated and $null will be returned. If there're no meshes in the given
- node, $null will be returned.
-
- See also @Evas.Canvas3D.Node.mesh_add.]]
- return: const(list<Evas.Canvas3D.Mesh>); [[The list of meshes if any, or $null if there're none.]]
- }
-
- bounding_box_get{
- [[Get axis-aligned bounding box (AABB) of the given node.]]
- params {
- @in x: ptr(Evas.Real); [[Pointer to receive X coordinate of the first point of AABB.]]
- @in y: ptr(Evas.Real); [[Pointer to receive Y coordinate of the first point of AABB.]]
- @in z: ptr(Evas.Real); [[Pointer to receive Z coordinate of the first point of AABB.]]
- @in x2: ptr(Evas.Real); [[Pointer to receive X coordinate of the second point of AABB.]]
- @in y2: ptr(Evas.Real); [[Pointer to receive Y coordinate of the second point of AABB.]]
- @in z2: ptr(Evas.Real); [[Pointer to receive Z coordinate of the second point of AABB.]]
- }
- }
-
- bounding_sphere_get {
- [[Get bounding sphere of the given node.]]
- params {
-
- @in x: ptr(Evas.Real); [[Pointer to receive X coordinate of the center of sphere.]]
- @in y: ptr(Evas.Real); [[Pointer to receive Y coordinate of the center of sphere.]]
- @in z: ptr(Evas.Real); [[Pointer to receive Z coordinate of center of sphere.]]
- @in r: ptr(Evas.Real); [[Pointer to receive radius of center of sphere.]]
- }
- }
-
- @property position_inherit {
- [[The position inheritance flag of the given node.
-
- When inheritance is enabled, a node's world space position is determined by
- adding the parent node's world position and the node's position. Otherwise
- the node's position will be the world space position.]]
- set {
- }
- get {
- }
- values {
- inherit: bool; [[Whether to inherit parent position.]]
- }
- }
-
- @property orientation_inherit {
- [[The orientation inheritance flag of the given node.
-
- When inheritance is enabled, a node's world space orientation is determined
- by multiplying the parent node's world orientation and the node's
- orientation. Otherwise the node's orientation will be the world space
- orientation.]]
- set {
- }
- get {
- }
- values {
- inherit: bool; [[Whether to inherit parent orientation.]]
- }
- }
-
- @property scale_inherit {
- [[The scale inheritance flag of the given node.
-
- When inheritance is enabled, a node's world space scale is determined by
- multiplying the parent node's world scale and the node's scale. Otherwise
- the node's scale will be the world space scale.]]
- set {
- }
- get {
- }
- values {
- inherit: bool; [[Whether to inherit parent scale.]]
- }
- }
-
- @property camera {
- [[A camera attached to the given node.
-
- If the node is not of type EVAS_CANVAS3D_NODE_TYPE_CAMERA, error message will be
- generated and nothing happens.
-
- See also @Evas.Canvas3D.Node.member_add.]]
- set {
- }
- get {
- }
- values {
- // FIXME: Evas_Canvas3D_Camera is necessary, but that introduces a cycle
- camera: Evas.Canvas3D.Object; [[The camera of the given node if any, or $null if there're none.]]
- }
- }
-
- @property light {
- [[A light attached to the given node.
-
- If the node is not of type EVAS_CANVAS3D_NODE_TYPE_LIGHT, error message will be
- generated and nothing happens.
-
- See also @Evas.Canvas3D.Node.member_add.]]
- set {
- }
- get {
- }
- values {
- light: Evas.Canvas3D.Light; [[The light of the given node if any, or $null if there're none.]]
- }
- }
-
- @property mesh_frame {
- [[The animation frame number of the given node for the given mesh.
-
- If the node is not of type EVAS_CANVAS3D_NODE_TYPE_MESH or the given mesh does not
- belong to the given mesh error mesh will be generated and nothing happens.
-
- Default mesh frame is 0.
-
- See also @Evas.Canvas3D.Node.mesh_add.]]
- set {
- }
- get {
- }
- keys {
- mesh: Evas.Canvas3D.Mesh; [[The given mesh.]]
- }
- values {
- frame: int; [[The animation frame number.]]
- }
- }
-
- @property billboard_target {
- [[Set behavior of node like billboard object.]]
- set {
- }
- get {
- }
- values {
- target: Evas.Canvas3D.Node; [[The pointer to target node for billboard object,
- or $null if there're none.]]
- }
- }
- @property lod_enable {
- [[Enable behavior of node like LOD object.]]
- set {
- }
- get {
- }
- values {
- enable: bool; [[status property (true/false)]]
- }
- }
- }
- 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;
- }
-}
diff --git a/src/lib/evas/canvas/evas_canvas3d_node_callback.h b/src/lib/evas/canvas/evas_canvas3d_node_callback.h
deleted file mode 100644
index d310ade12a..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_node_callback.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*Type of events and callbacks for object Evas_Canvas3D_Node*/
-
-#define GET_CALLBACK_TYPE(check, type) \
- if (!(strcmp(type, "clicked"))) \
- check = PRIVATE_CALLBACK_CLICKED; \
- else if (!(strcmp(type, "collision"))) \
- check = PRIVATE_CALLBACK_COLLISION; \
- else \
- check = PRIVATE_CALLBACK_NONE;
-
-typedef enum _Evas_Canvas3D_Node_Private_Callback_Type
-{
- PRIVATE_CALLBACK_CLICKED = 0,
- PRIVATE_CALLBACK_COLLISION,
- /*Insert here new type of callback*/
- PRIVATE_CALLBACK_NONE
-} Evas_Canvas3D_Node_Private_Callback_Type;
-
-const Efl_Event_Description evas_canvas3d_node_private_event_desc[] =
-{
- EFL_EVENT_DESCRIPTION("clicked,private"),
- EFL_EVENT_DESCRIPTION("collision,private")
-};
-
-/*Private callbacks */
-static void
-_evas_canvas3d_node_private_callback_clicked(void *data, const Efl_Event *event);
-static void
-_evas_canvas3d_node_private_callback_collision(void *data, const Efl_Event *event);
-
-Efl_Event_Cb evas_canvas3d_node_private_callback_functions[] =
-{
- _evas_canvas3d_node_private_callback_clicked,
- _evas_canvas3d_node_private_callback_collision,
-};
-
diff --git a/src/lib/evas/canvas/evas_canvas3d_object.c b/src/lib/evas/canvas/evas_canvas3d_object.c
deleted file mode 100644
index aca9839e51..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_object.c
+++ /dev/null
@@ -1,101 +0,0 @@
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-#define MY_CLASS EVAS_CANVAS3D_OBJECT_CLASS
-
-EOLIAN static Eo *
-_evas_canvas3d_object_efl_object_constructor(Eo *obj, Evas_Canvas3D_Object_Data *pd)
-{
- Eo *e = NULL;
- obj = efl_constructor(efl_super(obj, MY_CLASS));
- e = efl_parent_get(obj);
- pd->evas = e;
- pd->type = EVAS_CANVAS3D_OBJECT_TYPE_INVALID;
- memset(&pd->dirty[0], 0x00, sizeof(Eina_Bool) * EVAS_CANVAS3D_STATE_MAX);
-
- return obj;
-}
-
-EOLIAN static Evas *
- _evas_canvas3d_object_efl_object_provider_find(const Eo *obj, Evas_Canvas3D_Object_Data *pd, const Efl_Class *klass)
-{
- if (klass == EVAS_CANVAS_CLASS)
- return pd->evas;
- return efl_provider_find(efl_super(obj, MY_CLASS), klass);
-}
-
-EOLIAN static void
-_evas_canvas3d_object_type_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Object_Data *pd, Evas_Canvas3D_Object_Type type)
-{
- pd->type = type;
-}
-
-EOLIAN static Evas_Canvas3D_Object_Type
-_evas_canvas3d_object_type_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Object_Data *pd)
-{
- return pd->type;
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_object_dirty_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Object_Data *pd, Evas_Canvas3D_State state)
-{
- return pd->dirty[state];
-}
-
-EOLIAN static void
-_evas_canvas3d_object_change(Eo *obj, Evas_Canvas3D_Object_Data *pd, Evas_Canvas3D_State state, Evas_Canvas3D_Object *ref)
-{
- /* Skip already dirty properties. */
- if (pd->dirty[state])
- return;
-
- pd->dirty[state] = EINA_TRUE;
- pd->dirty[EVAS_CANVAS3D_STATE_ANY] = EINA_TRUE;
-
- evas_canvas3d_object_change_notify(obj, state, ref);
-}
-
-EOLIAN static void
-_evas_canvas3d_object_update(Eo *obj, Evas_Canvas3D_Object_Data *pd)
-{
- if (!pd->dirty[EVAS_CANVAS3D_STATE_ANY])
- return;
-
- evas_canvas3d_object_update_notify(obj);
-
- memset(&pd->dirty[0], 0x00, sizeof(Eina_Bool) * EVAS_CANVAS3D_STATE_MAX);
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_object_efl_object_event_callback_priority_add(Eo *obj,
- Evas_Canvas3D_Object_Data *pd EINA_UNUSED,
- const Efl_Event_Description *desc,
- Efl_Callback_Priority priority,
- Efl_Event_Cb func,
- const void *user_data)
-{
- Eina_Bool r = EINA_FALSE;
-
- r = efl_event_callback_priority_add(efl_super(obj, MY_CLASS), desc, priority, func, user_data);
- evas_canvas3d_object_callback_register(obj, desc->name, user_data);
-
- return r;
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_object_efl_object_event_callback_del(Eo *obj, Evas_Canvas3D_Object_Data *pd EINA_UNUSED,
- const Efl_Event_Description *desc,
- Efl_Event_Cb func,
- const void *user_data)
-{
- Eina_Bool r = EINA_FALSE;
- r = efl_event_callback_del(efl_super(obj, MY_CLASS), desc, func, user_data);
- if (r) evas_canvas3d_object_callback_unregister(obj, desc->name);
- return r;
-}
-
-#define EVAS_CANVAS3D_OBJECT_EXTRA_OPS \
- EFL_OBJECT_OP_FUNC(efl_event_callback_priority_add, _evas_canvas3d_object_efl_object_event_callback_priority_add), \
- EFL_OBJECT_OP_FUNC(efl_event_callback_del, _evas_canvas3d_object_efl_object_event_callback_del)
-
-#include "canvas/evas_canvas3d_object.eo.c"
diff --git a/src/lib/evas/canvas/evas_canvas3d_object.eo b/src/lib/evas/canvas/evas_canvas3d_object.eo
deleted file mode 100644
index c058cda77f..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_object.eo
+++ /dev/null
@@ -1,77 +0,0 @@
-import evas_canvas3d_types;
-
-abstract @beta Evas.Canvas3D.Object extends Efl.Object
-{
- [[Evas 3D canvas object class]]
- data: Evas_Canvas3D_Object_Data;
- methods {
- change {
- [[Notify the object regarding its state change.]]
- params {
- @in state: Evas.Canvas3D.State; [[State that is changed.]]
- @in ref: Evas.Canvas3D.Object; [[The Object that caused the change.]]
- }
- }
- type_get @const {
- [[Returns the type of the object.]]
- return: Evas.Canvas3D.Object_Type; [[Object type]]
- }
-
- type_set {
- [[Sets the type of the object.]]
- params{
- @in type: Evas.Canvas3D.Object_Type; [[Object type]]
- }
- }
-
- dirty_get @const {
- [[Returns the status of a particular state of the object.]]
- return: bool; [[$true if the status is dirty, $false otherwise]]
- params {
- @in state: Evas.Canvas3D.State; [[State whose status is being asked.]]
- }
- }
-
- update {
- [[Update request for the object.]]
- }
- update_notify @pure_virtual {
- [[Pure virtual update_notify function.
-
- Update request for the object.]]
- }
-
- change_notify @pure_virtual {
- [[Pure virtual change_notify function.
-
- Update request for the object.]]
- params {
- @in state: Evas.Canvas3D.State; [[State that is changed.]]
- @in ref: Evas.Canvas3D.Object; [[The Object that caused the change.]]
- }
- }
- callback_register @pure_virtual {
- [[Pure virtual register samrt callback function.]]
- params {
- @in event: string; [[Event type.]]
- @in data: const(void_ptr); [[User data.]]
- }
- }
- callback_unregister @pure_virtual {
- [[Pure virtual unregister smart callback function.]]
- params {
- @in event: string; [[Event type.]]
- }
- }
- }
-
- implements {
- Efl.Object.constructor;
- Efl.Object.provider_find;
- }
- events {
- /* FIXME: Make sure that these two events are actually being emitted */
- clicked: Evas.Canvas3D.Node; [[Clicked Event.]]
- collision: Evas.Canvas3D.Node; [[Collision Event.]]
- }
-}
diff --git a/src/lib/evas/canvas/evas_canvas3d_primitive.c b/src/lib/evas/canvas/evas_canvas3d_primitive.c
deleted file mode 100644
index 45625df424..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_primitive.c
+++ /dev/null
@@ -1,152 +0,0 @@
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-#define MY_CLASS EVAS_CANVAS3D_PRIMITIVE_CLASS
-
-static inline void
-_primitive_init(Evas_Canvas3D_Primitive_Data *pd)
-{
- pd->form = EVAS_CANVAS3D_MESH_PRIMITIVE_NONE;
- pd->ratio = 3.0;
- pd->precision = 10;
- pd->surface = NULL;
- pd->tex_scale.x = 1.0;
- pd->tex_scale.y = 1.0;
-}
-
-EAPI Evas_Canvas3D_Primitive *
-evas_canvas3d_primitive_add(Evas *e)
-{
- MAGIC_CHECK(e, Evas, MAGIC_EVAS);
- return NULL;
- MAGIC_CHECK_END();
- return efl_add(MY_CLASS, e);
-}
-
-EOLIAN static Eo *
-_evas_canvas3d_primitive_efl_object_constructor(Eo *obj, Evas_Canvas3D_Primitive_Data *pd)
-{
- obj = efl_constructor(efl_super(obj, MY_CLASS));
- evas_canvas3d_object_type_set(obj, EVAS_CANVAS3D_OBJECT_TYPE_PRIMITIVE);
- _primitive_init(pd);
-
- return obj;
-}
-
-EOLIAN static void
-_evas_canvas3d_primitive_efl_object_destructor(Eo *obj, Evas_Canvas3D_Primitive_Data *pd EINA_UNUSED)
-{
- efl_destructor(efl_super(obj, MY_CLASS));
-}
-
-EOLIAN static void
-_evas_canvas3d_primitive_form_set(Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Primitive_Data *pd,
- Evas_Canvas3D_Mesh_Primitive form)
-{
- if (form >= EVAS_CANVAS3D_MESH_PRIMITIVE_COUNT)
- {
- ERR("Wrong form of primitive.");
- return;
- }
-
- if (pd->form != form)
- pd->form = form;
-}
-
-EOLIAN static Evas_Canvas3D_Mesh_Primitive
-_evas_canvas3d_primitive_form_get(const Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Primitive_Data *pd)
-{
- return pd->form;
-}
-
-EOLIAN static void
-_evas_canvas3d_primitive_mode_set(Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Primitive_Data *pd,
- Evas_Canvas3D_Primitive_Mode mode)
-{
- if (pd->mode != mode)
- pd->mode = mode;
-}
-
-EOLIAN static Evas_Canvas3D_Primitive_Mode
-_evas_canvas3d_primitive_mode_get(const Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Primitive_Data *pd)
-{
- return pd->mode;
-}
-
-EOLIAN static void
-_evas_canvas3d_primitive_ratio_set(Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Primitive_Data *pd,
- Evas_Real ratio)
-{
- pd->ratio = ratio;
-}
-
-EOLIAN static Evas_Real
-_evas_canvas3d_primitive_ratio_get(const Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Primitive_Data *pd)
-{
- return pd->ratio;
-}
-
-EOLIAN static void
-_evas_canvas3d_primitive_precision_set(Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Primitive_Data *pd,
- int precision)
-{
- if ((precision < 3))
- {
- ERR("Precision of Evas_Canvas3D_Primitive cannot be less than 3.");
- return;
- }
-
- if ((precision >= 100))
- {
- ERR("%s\n%s",
- "Be careful with precision of Evas_Canvas3D_Primitive more than 100.",
- "It can give unacceptable result.");
- }
-
- if (pd->precision != precision)
- pd->precision = precision;
-}
-
-EOLIAN static int
-_evas_canvas3d_primitive_precision_get(const Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Primitive_Data *pd)
-{
- return pd->precision;
-}
-
-EOLIAN static void
-_evas_canvas3d_primitive_surface_set(Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Primitive_Data *pd,
- Evas_Canvas3D_Surface_Func surface_func)
-{
- pd->surface = surface_func;
-}
-
-EOLIAN static void
-_evas_canvas3d_primitive_tex_scale_set(Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Primitive_Data *pd,
- Evas_Real x,
- Evas_Real y)
-{
- if (!EINA_DBL_EQ(x, 0.0)) pd->tex_scale.x = x;
- if (!EINA_DBL_EQ(y, 0.0)) pd->tex_scale.y = y;
-}
-
-EOLIAN static void
-_evas_canvas3d_primitive_tex_scale_get(const Eo *obj EINA_UNUSED,
- Evas_Canvas3D_Primitive_Data *pd,
- Evas_Real *x,
- Evas_Real *y)
-{
- if (x) *x = pd->tex_scale.x;
- if (y) *y = pd->tex_scale.y;
-}
-
-#include "canvas/evas_canvas3d_primitive.eo.c"
diff --git a/src/lib/evas/canvas/evas_canvas3d_primitive.eo b/src/lib/evas/canvas/evas_canvas3d_primitive.eo
deleted file mode 100644
index 3e21f0e4d5..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_primitive.eo
+++ /dev/null
@@ -1,130 +0,0 @@
-import evas_canvas3d_types;
-
-class @beta Evas.Canvas3D.Primitive extends Evas.Canvas3D.Object
-{
- [[Evas 3D canvas primitive class]]
- data: Evas_Canvas3D_Primitive_Data;
-
- methods {
- @property form {
- [[The form of the given primitive.
-
- Form defines which function will be chosen to set data to mesh
- on call of evas_canvas3d_mesh_primitive_set.
-
- Now available next forms of primitives are tabulated primitives (SQUARE and CUBE),
- solids of revolution (CYLINDER, CONE, SPHERE and TORUS) and surfaces (SURFACE and TERRAIN).
-
- Default form is EVAS_CANVAS3D_MESH_PRIMITIVE_NONE.]]
- set {
- }
- get {
- }
- values {
- form: Evas.Canvas3D.Mesh_Primitive; [[Form of primitive.]]
- }
- }
- @property mode {
- [[The mode of the given primitive.
-
- Mode defines which function will be chosen to set data to mesh
- on call of evas_canvas3d_mesh_primitive_set. It helps to choose
- an alternative algorithm for primitives with a given form,
- such as a cone without a base or sphere textured in alternative way.
-
- Mods of primitives are now available
- without base (bases) (supported for cylinder and cone) and
- with alternative UV (supported by sphere).
-
- Default form is EVAS_CANVAS3D_PRIMITIVE_MODE_DEFAULT.]]
- set {
- }
- get {
- }
- values {
- mode: Evas.Canvas3D.Primitive_Mode; [[Mode of primitive.]]
- }
- }
- @property ratio {
- [[The ratio of the given primitive.
-
- Ratio is used only in torus as the ratio of the
- major radius and minor radius. For this usage
- Available values is from 1.0 to infinity.
- If ratio for torus has a bad value,
- 3.0 will be used as the ratio.
-
- Default ratio is 3.0.]]
- set {
- }
- get {
- }
- values {
- ratio: Evas.Real; [[Ratio of primitive.]]
- }
- }
- @property precision {
- [[The precision of the given primitive.
-
- Precision is used in all non tabulated primitives and defines
- the precision of created primitives.
- Available values range from 3 to infinity.
- If the value is more than 100, you may see a warning
- about possibility of incorrect values or slow processing.
-
- Default ratio is 10.]]
- set {
- }
- get {
- }
- values {
- precision: int; [[Precision of primitive.]]
- }
- }
- @property surface {
- [[The surface of the given primitive.
-
- Surface is used only in surface primitives and defines
- the equation of filling mesh data on call of
- evas_canvas3d_mesh_primitive_set.
-
- This allows you to create customers primitives like
- shell, heart, hyperbolic paraboloid etc. See _shell_func in
- examples/evas/evas-3d-visual-test.c or _perlin_terrain in
- modules/evas/primitives/surfaces/terrain.c for usage examples.
-
- Default surface is $null]]
- set {
- }
- values {
- surface: ptr(Evas.Canvas3D.Surface_Func); [[Pointer to customers surface function.]]
- }
- }
- @property tex_scale {
- [[The texture scale of the given primitive.
-
- Texture scale uses in all non tabulated primitives
- and defines scale of texture coordinates or primitives.
-
- It uses to create periodical textured meshes.
-
- Default tex_scale is {1.0, 1.0}]]
- set {
- }
- get {
- }
- values {
- tex_scale_x: Evas.Real; [[Texture scale X coordinate]]
- tex_scale_y: Evas.Real; [[Texture scale Y coordinate]]
- }
- }
- }
- implements {
- Efl.Object.constructor;
- Efl.Object.destructor;
- @empty Evas.Canvas3D.Object.update_notify;
- @empty Evas.Canvas3D.Object.change_notify;
- @empty Evas.Canvas3D.Object.callback_register;
- @empty Evas.Canvas3D.Object.callback_unregister;
- }
-}
diff --git a/src/lib/evas/canvas/evas_canvas3d_scene.c b/src/lib/evas/canvas/evas_canvas3d_scene.c
deleted file mode 100644
index 725996ee96..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_scene.c
+++ /dev/null
@@ -1,839 +0,0 @@
-#include "eo_internal.h"
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-#define MY_CLASS EVAS_CANVAS3D_SCENE_CLASS
-
-void
-evas_canvas3d_scene_data_init(Evas_Canvas3D_Scene_Public_Data *data)
-{
- data->camera_node = NULL;
- data->light_nodes = NULL;
- data->mesh_nodes = NULL;
- data->node_mesh_colors = NULL;
- data->colors_node_mesh = NULL;
- data->render_to_texture = EINA_FALSE;
- data->lod_distance = 0;
- data->post_processing = EINA_FALSE;
- data->post_processing_type = EVAS_CANVAS3D_SHADER_MODE_POST_PROCESSING_FXAA;
-}
-
-void
-evas_canvas3d_scene_data_fini(Evas_Canvas3D_Scene_Public_Data *data)
-{
- if (data->light_nodes)
- eina_list_free(data->light_nodes);
-
- if (data->mesh_nodes)
- eina_list_free(data->mesh_nodes);
-}
-
-EOLIAN static void
-_evas_canvas3d_scene_evas_canvas3d_object_change_notify(Eo *eo_obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd,
- Evas_Canvas3D_State state EINA_UNUSED,
- Evas_Canvas3D_Object *ref EINA_UNUSED)
-{
- Eina_List *l;
- Evas_Object *eo;
-
- EINA_LIST_FOREACH(pd->images, l, eo)
- {
- Evas_Object_Protected_Data *obj = efl_data_scope_get(eo, EFL_CANVAS_OBJECT_CLASS);
- evas_object_change(eo, obj);
- }
-}
-
-EOLIAN static void
-_evas_canvas3d_scene_evas_canvas3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd)
-{
- if (pd->root_node)
- {
- evas_canvas3d_object_update(pd->root_node);
- }
-
- if (pd->camera_node)
- {
- evas_canvas3d_object_update(pd->camera_node);
- }
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_SCENE_UPDATED, NULL);
-}
-
-EAPI Evas_Canvas3D_Scene *
-evas_canvas3d_scene_add(Evas *e)
-{
- MAGIC_CHECK(e, Evas, MAGIC_EVAS);
- return NULL;
- MAGIC_CHECK_END();
- return efl_add(MY_CLASS, e);
-}
-
-EOLIAN static Eo *
-_evas_canvas3d_scene_efl_object_constructor(Eo *obj, Evas_Canvas3D_Scene_Data *pd)
-{
- obj = efl_constructor(efl_super(obj, MY_CLASS));
- evas_canvas3d_object_type_set(obj, EVAS_CANVAS3D_OBJECT_TYPE_SCENE);
- evas_color_set(&pd->bg_color, 0.0, 0.0, 0.0, 0.0);
- pd->shadows_enabled = EINA_FALSE;
- pd->color_pick_enabled = EINA_FALSE;
- pd->node_mesh_colors = NULL;
- pd->colors_node_mesh = NULL;
- pd->depth_offset = 4.0;
- pd->depth_constant = 100.0;
- return obj;
-}
-
-EOLIAN static void
-_evas_canvas3d_scene_root_node_set(Eo *obj, Evas_Canvas3D_Scene_Data *pd, Evas_Canvas3D_Node *node)
-{
- if (pd->root_node == node)
- return;
-
- if (pd->root_node)
- {
- evas_canvas3d_node_scene_root_del(pd->root_node, obj);
- efl_unref(pd->root_node);
- }
-
- pd->root_node = node;
-
- if (node)
- {
- efl_ref(node);
- evas_canvas3d_node_scene_root_add(node, obj);
- }
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_SCENE_ROOT_NODE, NULL);
-}
-
-EOLIAN static Evas_Canvas3D_Node *
-_evas_canvas3d_scene_root_node_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd)
-{
- return pd->root_node;
-}
-
-EOLIAN static void
-_evas_canvas3d_scene_camera_node_set(Eo *obj, Evas_Canvas3D_Scene_Data *pd, Evas_Canvas3D_Node *node)
-{
- if (pd->camera_node == node)
- return;
-
- if (pd->camera_node)
- {
- evas_canvas3d_node_scene_camera_del(pd->camera_node, obj);
- }
-
- pd->camera_node = node;
-
- if (node)
- {
- evas_canvas3d_node_scene_camera_add(node, obj);
- }
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_SCENE_CAMERA_NODE, NULL);
-}
-
-EOLIAN static Evas_Canvas3D_Node *
-_evas_canvas3d_scene_camera_node_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd)
-{
- return pd->camera_node;
-}
-
-EOLIAN static void
-_evas_canvas3d_scene_size_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd, int w, int h)
-{
- pd->w = w;
- pd->h = h;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_SCENE_SIZE, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_scene_size_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd, int *w, int *h)
-{
- if (w) *w = pd->w;
- if (h) *h = pd->h;
-}
-
-EOLIAN static void
-_evas_canvas3d_scene_background_color_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd,
- Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
-{
- evas_color_set(&pd->bg_color, r, g, b, a);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_SCENE_BACKGROUND_COLOR, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_scene_background_color_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd,
- Evas_Real *r, Evas_Real *g, Evas_Real *b, Evas_Real *a)
-{
- if (r) *r = pd->bg_color.r;
- if (g) *g = pd->bg_color.g;
- if (b) *b = pd->bg_color.b;
- if (a) *a = pd->bg_color.a;
-}
-
-static inline Eina_Bool
-_pick_data_triangle_add(Evas_Canvas3D_Pick_Data *data, const Evas_Ray3 *ray,
- const Evas_Triangle3 *tri)
-{
- Eina_Vector3 e1, e2, tvec, pvec, qvec;
- Evas_Real det, inv_det, u, v, t;
-
- eina_vector3_subtract(&e1, &tri->p1, &tri->p0);
- eina_vector3_subtract(&e2, &tri->p2, &tri->p0);
-
- eina_vector3_cross_product(&pvec, &ray->dir, &e2);
- det = eina_vector3_dot_product(&e1, &pvec);
-
- /* If determinant is near zero, ray lies in plane of triangle. */
- if (det > -0.0000001 && det < 0.0000001)
- return EINA_FALSE;
-
- inv_det = 1.0 / det;
-
- /* Calculate distance from p0 to ray origin. */
- eina_vector3_subtract(&tvec, &ray->org, &tri->p0);
-
- /* Calculate U parameter and test bounds. */
- u = eina_vector3_dot_product(&tvec, &pvec) * inv_det;
-
- if (u < 0.0 || u > 1.0)
- return EINA_FALSE;
-
- /* Prepare to tst V parameter. */
- eina_vector3_cross_product(&qvec, &tvec, &e1);
-
- /* Calculate V parameter and test bounds. */
- v = eina_vector3_dot_product(&ray->dir, &qvec) * inv_det;
-
- if (v < 0.0 || u + v > 1.0)
- return EINA_FALSE;
-
- /* Calculate T parameter and test bounds. */
- t = eina_vector3_dot_product(&e2, &qvec) * inv_det;
-
- if (t >= 0.0 && t <= 1.0)
- {
- if (!data->picked || t < data->z)
- {
- data->picked = EINA_TRUE;
- data->z = t;
- data->u = u;
- data->v = v;
- return EINA_TRUE;
- }
- }
-
- return EINA_FALSE;
-}
-
-static inline void
-_pick_data_texcoord_update(Evas_Canvas3D_Pick_Data *data,
- const Evas_Canvas3D_Vertex_Buffer *tex0, const Evas_Canvas3D_Vertex_Buffer *tex1,
- Evas_Real weight, unsigned int i0, unsigned int i1, unsigned int i2)
-{
- Evas_Real s0, s1, s2;
- Evas_Real t0, t1, t2;
-
- if (tex1->data == NULL)
- {
- float *ptr;
-
- ptr = (float *)((char *)tex0->data + tex0->stride * i0);
-
- s0 = ptr[0];
- t0 = ptr[1];
-
- ptr = (float *)((char *)tex0->data + tex0->stride * i1);
-
- s1 = ptr[0];
- t1 = ptr[1];
-
- ptr = (float *)((char *)tex0->data + tex0->stride * i2);
-
- s2 = ptr[0];
- t2 = ptr[1];
- }
- else
- {
- float *ptr0, *ptr1;
-
- ptr0 = (float *)((char *)tex0->data + tex0->stride * i0);
- ptr1 = (float *)((char *)tex1->data + tex1->stride * i0);
-
- s0 = ptr0[0] * weight + ptr1[0] * (1.0 - weight);
- t0 = ptr0[1] * weight + ptr1[1] * (1.0 - weight);
-
- ptr0 = (float *)((char *)tex0->data + tex0->stride * i1);
- ptr1 = (float *)((char *)tex1->data + tex1->stride * i1);
-
- s1 = ptr0[0] * weight + ptr1[0] * (1.0 - weight);
- t1 = ptr0[1] * weight + ptr1[1] * (1.0 - weight);
-
- ptr0 = (float *)((char *)tex0->data + tex0->stride * i2);
- ptr1 = (float *)((char *)tex1->data + tex1->stride * i2);
-
- s2 = ptr0[0] * weight + ptr1[0] * (1.0 - weight);
- t2 = ptr0[1] * weight + ptr1[1] * (1.0 - weight);
- }
-
- data->s = s0 * (1 - data->u - data->v) + s1 * data->u + s2 * data->v;
- data->t = t0 * (1 - data->u - data->v) + t1 * data->u + t2 * data->v;
-}
-
-
-static inline Eina_Bool
-_pick_data_mesh_add(Evas_Canvas3D_Pick_Data *data, const Evas_Ray3 *ray,
- Evas_Canvas3D_Mesh *mesh, int frame, Evas_Canvas3D_Node *node)
-{
- Evas_Canvas3D_Vertex_Buffer pos0, pos1, tex0, tex1;
- Evas_Real pos_weight, tex_weight;
- Evas_Triangle3 tri;
- int i;
-
- memset(&pos0, 0x00, sizeof(Evas_Canvas3D_Vertex_Buffer));
- memset(&pos1, 0x00, sizeof(Evas_Canvas3D_Vertex_Buffer));
- memset(&tex0, 0x00, sizeof(Evas_Canvas3D_Vertex_Buffer));
- memset(&tex1, 0x00, sizeof(Evas_Canvas3D_Vertex_Buffer));
-
- evas_canvas3d_mesh_interpolate_vertex_buffer_get(mesh, frame, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION,
- &pos0, &pos1, &pos_weight);
-
- evas_canvas3d_mesh_interpolate_vertex_buffer_get(mesh, frame, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD,
- &tex0, &tex1, &tex_weight);
- Evas_Canvas3D_Mesh_Data *pdmesh = efl_data_scope_get(mesh, EVAS_CANVAS3D_MESH_CLASS);
- if (pdmesh->indices)
- {
- unsigned int i0, i1, i2;
-
- if (pdmesh->assembly == EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES)
- {
- for (i = 0; i < pdmesh->index_count; i += 3)
- {
- if (pdmesh->index_format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT)
- {
- i0 = ((unsigned short *)pdmesh->indices)[i];
- i1 = ((unsigned short *)pdmesh->indices)[i + 1];
- i2 = ((unsigned short *)pdmesh->indices)[i + 2];
- }
- else
- {
- i0 = ((unsigned char *)pdmesh->indices)[i];
- i1 = ((unsigned char *)pdmesh->indices)[i + 1];
- i2 = ((unsigned char *)pdmesh->indices)[i + 2];
- }
-
- evas_canvas3d_mesh_interpolate_position_get(&tri.p0, &pos0, &pos1, pos_weight, i0);
- evas_canvas3d_mesh_interpolate_position_get(&tri.p1, &pos0, &pos1, pos_weight, i1);
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, i2);
-
- if (_pick_data_triangle_add(data, ray, &tri))
- {
- if (tex0.data)
- _pick_data_texcoord_update(data, &tex0, &tex1, tex_weight, i0, i1, i2);
- data->mesh = mesh;
- data->node = node;
- return EINA_TRUE;
- }
- }
- }
- else if (pdmesh->assembly == EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLE_STRIP)
- {
- if (pdmesh->index_format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT)
- {
- i1 = ((unsigned short *)pdmesh->indices)[0];
- i2 = ((unsigned short *)pdmesh->indices)[1];
- }
- else
- {
- i1 = ((unsigned char *)pdmesh->indices)[0];
- i2 = ((unsigned char *)pdmesh->indices)[1];
- }
-
- evas_canvas3d_mesh_interpolate_position_get(&tri.p1, &pos0, &pos1, pos_weight, i1);
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, i2);
-
- for (i = 0; i < pdmesh->index_count - 2; i++)
- {
- tri.p0 = tri.p1;
- tri.p1 = tri.p2;
-
- if (pdmesh->index_format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT)
- i2 = ((unsigned short *)pdmesh->indices)[i + 2];
- else
- i2 = ((unsigned char *)pdmesh->indices)[i + 2];
-
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, i2);
-
- if (_pick_data_triangle_add(data, ray, &tri))
- {
- if (pdmesh->index_format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT)
- {
- i0 = ((unsigned short *)pdmesh->indices)[i];
- i1 = ((unsigned short *)pdmesh->indices)[i + 1];
- }
- else
- {
- i0 = ((unsigned char *)pdmesh->indices)[i];
- i1 = ((unsigned char *)pdmesh->indices)[i + 1];
- }
-
- if (tex0.data)
- _pick_data_texcoord_update(data, &tex0, &tex1, tex_weight, i0, i1, i2);
- data->mesh = mesh;
- data->node = node;
- return EINA_TRUE;
- }
- }
- }
- else if (pdmesh->assembly == EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLE_FAN)
- {
- if (pdmesh->index_format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT)
- {
- i0 = ((unsigned short *)pdmesh->indices)[0];
- i2 = ((unsigned short *)pdmesh->indices)[1];
- }
- else
- {
- i0 = ((unsigned char *)pdmesh->indices)[0];
- i2 = ((unsigned char *)pdmesh->indices)[1];
- }
-
- evas_canvas3d_mesh_interpolate_position_get(&tri.p0, &pos0, &pos1, pos_weight, i0);
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, i2);
-
- for (i = 1; i < pdmesh->index_count - 1; i++)
- {
- tri.p1 = tri.p2;
-
- if (pdmesh->index_format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT)
- i2 = ((unsigned short *)pdmesh->indices)[i + 1];
- else
- i2 = ((unsigned char *)pdmesh->indices)[i + 1];
-
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, i2);
-
- if (_pick_data_triangle_add(data, ray, &tri))
- {
- if (pdmesh->index_format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT)
- i1 = ((unsigned short *)pdmesh->indices)[i];
- else
- i1 = ((unsigned char *)pdmesh->indices)[i];
-
- if (tex0.data)
- _pick_data_texcoord_update(data, &tex0, &tex1, tex_weight, i0, i1, i2);
- data->mesh = mesh;
- data->node = node;
- }
- }
- }
- }
- else if (pdmesh->index_format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_BYTE)
- {
- if (pdmesh->assembly == EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES)
- {
- for (i = 0; i < pdmesh->index_count; i += 3)
- {
- evas_canvas3d_mesh_interpolate_position_get(&tri.p0, &pos0, &pos1, pos_weight, i);
- evas_canvas3d_mesh_interpolate_position_get(&tri.p1, &pos0, &pos1, pos_weight, i + 1);
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, i + 2);
-
- if (_pick_data_triangle_add(data, ray, &tri))
- {
- if (tex0.data)
- _pick_data_texcoord_update(data, &tex0, &tex1, tex_weight, i, i + 1, i + 2);
- data->mesh = mesh;
- data->node = node;
- }
- }
- }
- else if (pdmesh->assembly == EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLE_STRIP)
- {
- evas_canvas3d_mesh_interpolate_position_get(&tri.p1, &pos0, &pos1, pos_weight, 0);
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, 1);
-
- for (i = 0; i < pdmesh->index_count - 2; i++)
- {
- tri.p0 = tri.p1;
- tri.p1 = tri.p2;
-
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, i + 2);
-
- if (_pick_data_triangle_add(data, ray, &tri))
- {
- if (tex0.data)
- _pick_data_texcoord_update(data, &tex0, &tex1, tex_weight, i, i + 1, i + 2);
- data->mesh = mesh;
- data->node = node;
- }
- }
- }
- else if (pdmesh->assembly == EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLE_FAN)
- {
- evas_canvas3d_mesh_interpolate_position_get(&tri.p0, &pos0, &pos1, pos_weight, 0);
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, 1);
-
- for (i = 1; i < pdmesh->index_count - 1; i++)
- {
- tri.p1 = tri.p2;
-
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, i + 1);
-
- if (_pick_data_triangle_add(data, ray, &tri))
- {
- if (tex0.data)
- _pick_data_texcoord_update(data, &tex0, &tex1, tex_weight, 0, i, i + 1);
- data->mesh = mesh;
- data->node = node;
- }
- }
- }
- }
- else if ((EINA_DBL_EQ(pdmesh->index_count, 0.0)) &&
- pdmesh->vertex_count != 0)
- {
- if (pdmesh->assembly == EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES)
- {
- for (i = 0; i < pdmesh->vertex_count; i += 3)
- {
- evas_canvas3d_mesh_interpolate_position_get(&tri.p0, &pos0, &pos1, pos_weight, i);
- evas_canvas3d_mesh_interpolate_position_get(&tri.p1, &pos0, &pos1, pos_weight, i + 1);
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, i + 2);
-
- if (_pick_data_triangle_add(data, ray, &tri))
- {
- if (tex0.data)
- _pick_data_texcoord_update(data, &tex0, &tex1, tex_weight, i, i + 1, i + 2);
- data->mesh = mesh;
- data->node = node;
- }
- }
- }
- else if (pdmesh->assembly == EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLE_STRIP)
- {
- evas_canvas3d_mesh_interpolate_position_get(&tri.p1, &pos0, &pos1, pos_weight, 0);
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, 1);
-
- for (i = 0; i < pdmesh->vertex_count - 2; i++)
- {
- tri.p0 = tri.p1;
- tri.p1 = tri.p2;
-
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, i + 2);
-
- if (_pick_data_triangle_add(data, ray, &tri))
- {
- if (tex0.data)
- _pick_data_texcoord_update(data, &tex0, &tex1, tex_weight, i, i + 1, i + 2);
- data->mesh = mesh;
- data->node = node;
- return EINA_TRUE;
- }
- }
- }
- else if (pdmesh->assembly == EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLE_FAN)
- {
- evas_canvas3d_mesh_interpolate_position_get(&tri.p0, &pos0, &pos1, pos_weight, 0);
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, 1);
-
- for (i = 1; i < pdmesh->vertex_count - 1; i++)
- {
- tri.p1 = tri.p2;
-
- evas_canvas3d_mesh_interpolate_position_get(&tri.p2, &pos0, &pos1, pos_weight, i + 1);
-
- if (_pick_data_triangle_add(data, ray, &tri))
- {
- if (tex0.data)
- _pick_data_texcoord_update(data, &tex0, &tex1, tex_weight, 0, i, i + 1);
- data->mesh = mesh;
- data->node = node;
- return EINA_TRUE;
- }
- }
- }
- }
- return EINA_FALSE;
-}
-
-Eina_Bool
-_node_pick(Evas_Canvas3D_Node *node, void *data)
-{
- Evas_Ray3 ray;
- Evas_Canvas3D_Pick_Data *pick = (Evas_Canvas3D_Pick_Data *)data;
- Eina_Matrix4 mvp;
- Evas_Canvas3D_Node_Data *pd_node = efl_data_scope_get(node, EVAS_CANVAS3D_NODE_CLASS);
-
- evas_canvas3d_node_tree_traverse(node, EVAS_CANVAS3D_TREE_TRAVERSE_POST_ORDER, EINA_FALSE,
- node_aabb_update, NULL);
-
- if (! evas_box3_ray3_intersect(&pd_node->aabb, &pick->ray_world))
- {
- /* Skip entire subtree. */
- return EINA_FALSE;
- }
-
- if (pd_node->type == EVAS_CANVAS3D_NODE_TYPE_MESH)
- {
- Eina_Iterator *itr;
- void *ptr;
-
- /* Transform ray into local coordinate space. */
- eina_matrix4_multiply(&mvp, &pick->matrix_vp, &pd_node->data.mesh.matrix_local_to_world);
- evas_ray3_init(&ray, pick->x, pick->y, &mvp);
-
- itr = eina_hash_iterator_data_new(pd_node->data.mesh.node_meshes);
-
- while (eina_iterator_next(itr, &ptr))
- {
- Evas_Canvas3D_Node_Mesh *nm = (Evas_Canvas3D_Node_Mesh *)ptr;
- if(_pick_data_mesh_add(pick, &ray, nm->mesh, nm->frame, node))
- break;
- }
- }
-
- return EINA_TRUE;
-}
-
-static void _node_mesh_colors_free_cb(void *data)
-{
- if (data) free(data);
-}
-
-static inline void
-_pick_data_init(Evas_Canvas3D_Pick_Data *data, Evas_Public_Data *e, Evas_Real x, Evas_Real y)
-{
- data->x = ((x * 2.0) / ((Evas_Real)e->viewport.w)) - 1.0;
- data->y = ((((Evas_Real)e->viewport.h - y - 1) * 2.0) / ((Evas_Real)e->viewport.h)) - 1.0;
- data->picked = EINA_FALSE;
- data->z = 1.0;
- data->node = NULL;
- data->mesh = NULL;
- data->s = 0.0;
- data->t = 0.0;
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_scene_pick(const Eo *obj, Evas_Canvas3D_Scene_Data *pd, Evas_Real x, Evas_Real y,
- Evas_Canvas3D_Node **node, Evas_Canvas3D_Mesh **mesh,
- Evas_Real *s, Evas_Real *t)
-{
- Evas_Canvas3D_Pick_Data data;
- Evas_Canvas3D_Node_Data *pd_camera_node;
- Evas_Canvas3D_Camera_Data *pd_camera;
- Evas_Canvas3D_Object_Data *pd_parent;
- Evas_Public_Data *e;
- int tex = 0, px, py;;
- Evas_Color color = {0.0, 0.0, 0.0, 0.0};
- Eina_Stringshare *tmp;
- Eina_Array *arr = NULL;
- Eina_Bool update_scene = EINA_FALSE;
- Evas_Canvas3D_Node *picked_node = NULL;
- const Efl_Event_Description *eo_desc = NULL;
-
- pd_parent = efl_data_scope_get(obj, EVAS_CANVAS3D_OBJECT_CLASS);
- e = efl_data_scope_get(pd_parent->evas, EVAS_CANVAS_CLASS);
-
- _pick_data_init(&data, e, x, y);
- px = round(x * pd->w / e->viewport.w);
- py = round((pd->h - (y * pd->h / e->viewport.h) - 1));
-
- /*Use color pick mechanism finding node and mesh*/
- if (pd->color_pick_enabled)
- {
- Evas_Canvas3D_Scene_Public_Data scene_data;
-
- scene_data.bg_color = pd->bg_color;
- scene_data.shadows_enabled = pd->shadows_enabled;
- scene_data.camera_node = pd->camera_node;
- scene_data.color_pick_enabled = pd->color_pick_enabled;
- update_scene = evas_canvas3d_object_dirty_get(obj, EVAS_CANVAS3D_STATE_SCENE_UPDATED);
- scene_data.post_processing = EINA_FALSE;
- if (update_scene)
- {
- if (pd->node_mesh_colors)
- {
- eina_hash_free(pd->node_mesh_colors);
- eina_hash_free(pd->colors_node_mesh);
- pd->node_mesh_colors = NULL;
- pd->colors_node_mesh = NULL;
- }
- pd->node_mesh_colors = eina_hash_stringshared_new(_node_mesh_colors_free_cb);
- pd->colors_node_mesh = eina_hash_stringshared_new(_node_mesh_colors_free_cb);
- }
- scene_data.node_mesh_colors = pd->node_mesh_colors;
- scene_data.colors_node_mesh = pd->colors_node_mesh;
- evas_canvas3d_node_tree_traverse(pd->root_node,
- EVAS_CANVAS3D_TREE_TRAVERSE_LEVEL_ORDER, EINA_TRUE,
- evas_canvas3d_node_color_node_mesh_collect, &scene_data);
-
- if (e->engine.func->drawable_scene_render_to_texture)
- {
- if (e->engine.func->drawable_scene_render_to_texture(_evas_engine_context(e),
- pd->surface, &scene_data))
- {
- if (e->engine.func->drawable_texture_color_pick_id_get)
- tex = e->engine.func->drawable_texture_color_pick_id_get(pd->surface);
- if (e->engine.func->drawable_texture_pixel_color_get)
- {
- e->engine.func->drawable_texture_pixel_color_get(tex, px, py, &color, pd->surface);
- tmp = eina_stringshare_printf("%f %f %f", color.r, color.g, color.b);
- arr = (Eina_Array *)eina_hash_find(pd->colors_node_mesh, tmp);
- if (arr)
- {
- picked_node = (Evas_Canvas3D_Node *)eina_array_data_get(arr, 0);
- if (mesh) *mesh = (Evas_Canvas3D_Mesh *)eina_array_data_get(arr, 1);
- if (node) *node = picked_node;
- eina_stringshare_del(tmp);
-
- /*Calling callback clicked*/
- eo_desc = efl_object_legacy_only_event_description_get("clicked,private");
- efl_event_callback_legacy_call(picked_node, eo_desc, picked_node);
-
- return EINA_TRUE;
- }
- else
- {
- eina_stringshare_del(tmp);
- if (mesh) *mesh = NULL;
- if (node) *node = NULL;
- }
- }
- }
- }
- return EINA_FALSE;
- }
- /* Update the scene graph. */
- evas_canvas3d_object_update((Eo *) obj);
- pd_camera_node = efl_data_scope_get(pd->camera_node, EVAS_CANVAS3D_NODE_CLASS);
- pd_camera = efl_data_scope_get(pd_camera_node->data.camera.camera, EVAS_CANVAS3D_CAMERA_CLASS);
- eina_matrix4_multiply(&data.matrix_vp,
- &pd_camera->projection,
- &pd_camera_node->data.camera.matrix_world_to_eye);
-
- evas_ray3_init(&data.ray_world, data.x, data.y, &data.matrix_vp);
-
- /* Traverse tree while adding meshes into pick data structure. */
- evas_canvas3d_node_tree_traverse(pd->root_node, EVAS_CANVAS3D_TREE_TRAVERSE_LEVEL_ORDER, EINA_TRUE,
- _node_pick, &data);
-
- if (!data.picked)
- return EINA_FALSE;
-
- if (s) *s = data.s;
- if (t) *t = data.t;
- if (node) *node = data.node;
- if (mesh) *mesh = data.mesh;
-
- /*Calling callback clicked*/
- eo_desc = efl_object_legacy_only_event_description_get("clicked,private");
- efl_event_callback_legacy_call(data.node, eo_desc, data.node);
-
- return EINA_TRUE;
-}
-
-EOLIAN static Evas_Canvas3D_Node *
-_evas_canvas3d_scene_exist(const Eo *obj, Evas_Canvas3D_Scene_Data *pd, Evas_Real x, Evas_Real y, Evas_Canvas3D_Node *node)
-{
- Evas_Canvas3D_Pick_Data data;
- Evas_Canvas3D_Node_Data *pd_camera_node;
- Evas_Canvas3D_Camera_Data *pd_camera;
- Evas_Canvas3D_Object_Data *pd_parent;
- Evas_Public_Data *e;
-
- pd_parent = efl_data_scope_get(obj, EVAS_CANVAS3D_OBJECT_CLASS);
- e = efl_data_scope_get(pd_parent->evas, EVAS_CANVAS_CLASS);
-
- _pick_data_init(&data, e, x, y);
-
- /* Update the scene graph. */
- evas_canvas3d_object_update((Eo *) obj);
- pd_camera_node = efl_data_scope_get(pd->camera_node, EVAS_CANVAS3D_NODE_CLASS);
- pd_camera = efl_data_scope_get(pd_camera_node->data.camera.camera, EVAS_CANVAS3D_CAMERA_CLASS);
- eina_matrix4_multiply(&data.matrix_vp,
- &pd_camera->projection,
- &pd_camera_node->data.camera.matrix_world_to_eye);
-
- evas_ray3_init(&data.ray_world, data.x, data.y, &data.matrix_vp);
-
- /* Check pick for given node. */
- _node_pick(node, &data);
-
- if (!data.picked || data.node != node) node = NULL;
-
- return node;
-}
-
-EOLIAN static Eina_List *
-_evas_canvas3d_scene_pick_member_list_get(const Eo *obj, Evas_Canvas3D_Scene_Data *pd, Evas_Real x, Evas_Real y)
-{
- const Eina_List *list = NULL, *l = NULL;
- Eina_List *picked_nodes = NULL;
- void *node;
- Eina_Bool pick = EINA_FALSE;
-
- /* Check pick for given scene. */
- pick = evas_canvas3d_scene_pick(obj, x, y, NULL, NULL, NULL, NULL);
-
- if (!pick)
- return NULL;
-
- /* Get all members from root node. */
- list = evas_canvas3d_node_member_list_get(pd->root_node);
-
- EINA_LIST_FOREACH(list, l, node)
- {
- if (evas_canvas3d_scene_exist(obj, x, y, node))
- picked_nodes = eina_list_append(picked_nodes, l);
- }
-
- return picked_nodes;
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_scene_shadows_enable_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd)
-{
- return pd->shadows_enabled;
-}
-
-EOLIAN static void
-_evas_canvas3d_scene_shadows_enable_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd, Eina_Bool _shadows_enabled)
-{
- pd->shadows_enabled = _shadows_enabled;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_SCENE_SHADOWS_ENABLED, NULL);
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_scene_color_pick_enable_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd)
-{
- return pd->color_pick_enabled;
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_scene_color_pick_enable_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd, Eina_Bool _enabled)
-{
- if (pd->color_pick_enabled != _enabled)
- pd->color_pick_enabled = _enabled;
-
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_SCENE_UPDATED, NULL);
- return EINA_TRUE;
-}
-
-EOLIAN static void
-_evas_canvas3d_scene_shadows_depth_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd,
- Evas_Real depth_offset, Evas_Real depth_constant)
-{
- pd->depth_offset = depth_offset;
- pd->depth_constant = depth_constant;
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_SCENE_SHADOWS_DEPTH, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_scene_shadows_depth_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Scene_Data *pd,
- Evas_Real *depth_offset, Evas_Real *depth_constant)
-{
- if (depth_offset) *depth_offset = pd->depth_offset;
- if (depth_constant) *depth_constant = pd->depth_constant;
-}
-
-#include "canvas/evas_canvas3d_scene.eo.c"
diff --git a/src/lib/evas/canvas/evas_canvas3d_scene.eo b/src/lib/evas/canvas/evas_canvas3d_scene.eo
deleted file mode 100644
index 86b14ecd8d..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_scene.eo
+++ /dev/null
@@ -1,168 +0,0 @@
-import evas_canvas3d_types;
-
-class @beta Evas.Canvas3D.Scene extends Evas.Canvas3D.Object
-{
- [[Efl 3D canvas scene class]]
- data: Evas_Canvas3D_Scene_Data;
- methods {
- size_set {
- [[Set the resolution of a scene.
-
- A scene should be rendered to be displayed through image
- objects. The resolution defines the size of the internal surface
- holding the rendered result.
- ]]
- params {
- @in w: int; [[Width of the resolution.]]
- @in h: int; [[Height of the resolution.]]
- }
- }
-
- size_get @const {
- [[Get the internal resolution of a scene.]]
- params {
- @out w: int; [[Pointer to receive width of the resolution.]]
- @out h: int; [[Pointer to receive height of the resolution.]]
- }
- }
-
- background_color_set {
- [[Set the background color of a scene.
-
- Background color defines the initial color of pixels before a scene
- is rendered. If you want to display a scene with background evas
- objects as if they're part of the background, set
- the alpha term to 0.0.
-
- Default background color is (0.0, 0.0, 0.0, 0.0).
- ]]
- params {
- @in r: Evas.Real; [[Red component of the background color.]]
- @in g: Evas.Real; [[Green component of the background color.]]
- @in b: Evas.Real; [[Blue component of the background color.]]
- @in a: Evas.Real; [[Alpha component of the background color.]]
- }
- }
-
- background_color_get @const {
- [[Get the background color of a scene.]]
- params {
- @out r: Evas.Real; [[Pointer to receive red component of the background color.]]
- @out g: Evas.Real; [[Pointer to receive green component of the background color.]]
- @out b: Evas.Real; [[Pointer to receive blue component of the background color.]]
- @out a: Evas.Real; [[Pointer to receive alpha component of the background color.]]
- }
- }
-
- pick @const {
- [[Get information on the most front visible mesh for the given
- position.
-
- (x, y) is the screen coordinate of the given scene. That is,
- left-top is (0, 0) and right-bottom is (w, h) where (w, h) is
- the size of the scene. The texture coordinate is useful when
- using proxy texture source.
- ]]
- return: bool; [[$true on success, $false otherwise]]
- params {
- @in x: Evas.Real; [[X coordinate of the picking position.]]
- @in y: Evas.Real; [[Y coordinate of the picking position.]]
- @out node: Evas.Canvas3D.Node; [[Pointer to receive the node contains the picked mesh.]]
- @out mesh: Evas.Canvas3D.Mesh; [[Pointer to receive the picked mesh.]]
- @out s: Evas.Real; [[Pointer to receive the texture "s" coordinate.]]
- @out t: Evas.Real; [[Pointer to receive the texture "t" coordinate.]]
- }
- }
-
- exist @const {
- [[Search given node in the given position.]]
- return: Evas.Canvas3D.Node; [[Node at the given position]]
- params {
- @in x: Evas.Real; [[X coordinate of the picking position.]]
- @in y: Evas.Real; [[Y coordinate of the picking position.]]
- @in node: Evas.Canvas3D.Node; [[Node for search.]]
- }
- }
-
- pick_member_list_get @const {
- [[Get list of the all root members from scene in the given position.]]
- return: list<Evas.Canvas3D.Node>; [[List of all root members from scene]]
- params {
- @in x: Evas.Real; [[X coordinate of the picking position.]]
- @in y: Evas.Real; [[Y coordinate of the picking position.]]
- }
- }
- shadows_enable_set {
- [[Enable or disable shadows on given scene
-
- If shadows_enabled is $true, the objects in the scene can throw
- shadow to another objects located behind them. The depth map used
- for shading. Directed and projective light sources are supported.
- ]]
- params {
- @in shadows_enabled: bool; [[Shadows enabled status.]]
- }
- }
-
- shadows_enable_get @const {
- [[Get shadows enabled status for given scene.]]
- return: bool; [[The shadows enabled status.]]
- }
- color_pick_enable_get @const {
- [[Get status of color picking of the scene.]]
- return: bool; [[The pick enabled status]]
- }
- color_pick_enable_set {
- [[Set possibility color picking.]]
- return: bool; [[$true on success, $false otherwise]]
- params {
- @in color_pick: bool; [[Possibility flag]]
- }
- }
-
- @property root_node {
- [[The root node of a scene.]]
- set {
- }
- get {
- }
- values {
- node: Evas.Canvas3D.Node; [[A node which will be used as a
- root node for the scene.]]
- }
- }
-
- @property camera_node {
- [[The camera node of a scene.]]
- set {
- }
- get {
- }
- values {
- node: Evas.Canvas3D.Node; [[A node which will be used as a
- camera node for the scene.]]
- }
- }
- @property shadows_depth {
- [[Scale and units used to calculate depth values.]]
- set {
- }
- get {
- }
- values {
- depth_offset: Evas.Real; [[Scale factor that is used to
- create a variable depth offset
- for each polygon.]]
- depth_constant: Evas.Real; [[Value to create a constant
- depth offset]]
- }
- }
-}
- implements {
- Efl.Object.constructor;
- Evas.Canvas3D.Object.update_notify;
- Evas.Canvas3D.Object.change_notify;
- @empty Evas.Canvas3D.Object.callback_register;
- @empty Evas.Canvas3D.Object.callback_unregister;
- }
-}
diff --git a/src/lib/evas/canvas/evas_canvas3d_texture.c b/src/lib/evas/canvas/evas_canvas3d_texture.c
deleted file mode 100644
index 0381c87275..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_texture.c
+++ /dev/null
@@ -1,606 +0,0 @@
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-#define MY_CLASS EVAS_CANVAS3D_TEXTURE_CLASS
-
-static inline void
-_texture_proxy_set(Evas_Canvas3D_Texture *texture, Evas_Object *eo_src, Evas_Object_Protected_Data *src)
-{
- Evas_Canvas3D_Texture_Data *pd = efl_data_scope_get(texture, MY_CLASS);
- EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src->proxy, Evas_Object_Proxy_Data, proxy_src)
- {
- proxy_src->proxy_textures = eina_list_append(proxy_src->proxy_textures, texture);
- proxy_src->redraw = EINA_TRUE;
- }
- EINA_COW_WRITE_END(evas_object_proxy_cow, src->proxy, proxy_src);
-
- pd->source = eo_src;
-}
-
-static inline void
-_texture_proxy_unset(Evas_Canvas3D_Texture_Data *texture)
-{
- Evas_Object_Protected_Data *src = efl_data_scope_get(texture->source, EFL_CANVAS_OBJECT_CLASS);
-
- EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src->proxy, Evas_Object_Proxy_Data, proxy_src);
- {
- proxy_src->proxy_textures = eina_list_remove(proxy_src->proxy_textures, texture);
-
- if (eina_list_count(proxy_src->proxy_textures) == 0 &&
- eina_list_count(proxy_src->proxies) == 0 &&
- proxy_src->surface != NULL)
- {
- Evas_Public_Data *e = src->layer->evas;
- e->engine.func->image_free(_evas_engine_context(e), proxy_src->surface);
- proxy_src->surface = NULL;
- }
-
- if (proxy_src->src_invisible)
- {
- proxy_src->src_invisible = EINA_FALSE;
- src->changed_src_visible = EINA_TRUE;
- evas_object_change(texture->source, src);
- evas_object_smart_member_cache_invalidate(texture->source,
- EINA_FALSE, EINA_FALSE, EINA_TRUE);
- }
- }
- EINA_COW_WRITE_END(evas_object_proxy_cow, src->proxy, proxy_src);
-
- texture->source = NULL;
-}
-
-static inline void
-_texture_proxy_subrender(Evas_Canvas3D_Texture *obj, void *engine)
-{
- /* Code taken from _proxy_subrender() in file evas_object_image.c */
- Eo *evas = NULL;
- evas = evas_object_evas_get(obj);
- Evas_Public_Data *e = efl_data_scope_get(evas, EVAS_CANVAS_CLASS);
- Evas_Canvas3D_Texture_Data *pd = efl_data_scope_get(obj, MY_CLASS);
- Evas_Object_Protected_Data *source;
- void *ctx;
- int w, h;
- Eina_Bool is_image;
-
- if (!pd->source)
- return;
-
- // TODO: replace this function by evas_render_proxy_subrender (as appropriate)
-
- source = efl_data_scope_get(pd->source, EFL_CANVAS_OBJECT_CLASS);
-
- is_image = efl_isa(pd->source, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
-
- EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, source->proxy, Evas_Object_Proxy_Data, proxy_write)
- {
- proxy_write->redraw = EINA_FALSE;
-
- if (is_image)
- {
- void *image = source->func->engine_data_get(pd->source);
- e->engine.func->image_size_get(engine, image, &w, &h);
- }
- else
- {
- w = source->cur->geometry.w;
- h = source->cur->geometry.h;
- }
-
- /* We need to redraw surface then */
- if ((proxy_write->surface) &&
- ((proxy_write->w != w) || (proxy_write->h != h)))
- {
- e->engine.func->image_free(engine, proxy_write->surface);
- proxy_write->surface = NULL;
- }
-
- /* FIXME: Hardcoded alpha 'on' */
- /* FIXME (cont): Should see if the object has alpha */
- if (!proxy_write->surface)
- {
- proxy_write->surface = e->engine.func->image_map_surface_new
- (engine, w, h, 1);
- if (!proxy_write->surface) goto end;
- proxy_write->w = w;
- proxy_write->h = h;
- }
-
- ctx = e->engine.func->context_new(engine);
- e->engine.func->context_color_set(engine, ctx, 0, 0,
- 0, 0);
- e->engine.func->context_render_op_set(engine, ctx,
- EVAS_RENDER_COPY);
- e->engine.func->rectangle_draw(engine, _evas_default_output_get(e), ctx,
- proxy_write->surface, 0, 0, w, h,
- EINA_FALSE);
- e->engine.func->context_free(engine, ctx);
-
- ctx = e->engine.func->context_new(engine);
-
- if (is_image)
- {
- void *image = source->func->engine_data_get(pd->source);
-
- if (image)
- {
- int imagew, imageh;
- e->engine.func->image_size_get(engine, image,
- &imagew, &imageh);
- e->engine.func->image_draw(engine, _evas_default_output_get(e), ctx,
- proxy_write->surface, image,
- 0, 0, imagew, imageh, 0, 0, w, h, 0, EINA_FALSE);
- }
- }
- else
- {
- Evas_Proxy_Render_Data proxy_render_data = {
- .eo_proxy = NULL,
- .proxy_obj = NULL,
- .eo_src = pd->source,
- .src_obj = source,
- .source_clip = EINA_FALSE
- };
-
- evas_render_mapped(e, pd->source, source, ctx,
- _evas_default_output_get(e),
- proxy_write->surface,
- -source->cur->geometry.x,
- -source->cur->geometry.y,
- 2, 0, 0, e->output.w, e->output.h,
- &proxy_render_data, 1, EINA_FALSE);
- }
-
- e->engine.func->context_free(engine, ctx);
- proxy_write->surface = e->engine.func->image_dirty_region
- (engine, proxy_write->surface, 0, 0, w, h);
- }
- end:
- EINA_COW_WRITE_END(evas_object_proxy_cow, source->proxy, proxy_write);
-}
-
-static void
-_texture_fini(Evas_Canvas3D_Texture *obj)
-{
- Eo *evas = NULL;
- int i = 0;
- Eina_Iterator *it = NULL;
- void *data = NULL;
- Evas_Canvas3D_Material_Data *material = NULL;
-
- evas = evas_object_evas_get(obj);
- Evas_Canvas3D_Texture_Data *pd = efl_data_scope_get(obj, MY_CLASS);
-
- if (pd->engine_data)
- {
- Evas_Public_Data *e = efl_data_scope_get(evas, EVAS_CANVAS_CLASS);
- if (e->engine.func->texture_free)
- e->engine.func->texture_free(_evas_engine_context(e), pd->engine_data);
- pd->engine_data = NULL;
- }
-
- if (pd->materials)
- {
- it = eina_hash_iterator_key_new(pd->materials);
- EINA_ITERATOR_FOREACH(it, data)
- {
- material = efl_data_scope_get(data, EVAS_CANVAS3D_MATERIAL_CLASS);
- if (!material) continue;
- for (i = 0; i < EVAS_CANVAS3D_MATERIAL_ATTRIB_COUNT; i++)
- {
- if (material->attribs[i].texture)
- evas_canvas3d_texture_material_del(material->attribs[i].texture, data);
- }
- }
- eina_iterator_free(it);
-
- eina_hash_free(pd->materials);
- pd->materials = NULL;
- }
-
- if (pd->source)
- {
- _texture_proxy_unset(pd);
- }
-}
-
-static Eina_Bool
-_texture_material_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
- void *data EINA_UNUSED, void *fdata)
-{
- Evas_Canvas3D_Material *m = *(Evas_Canvas3D_Material **)key;
- evas_canvas3d_object_change(m, EVAS_CANVAS3D_STATE_MATERIAL_TEXTURE, (Evas_Canvas3D_Object *)fdata);
- return EINA_TRUE;
-}
-
-EOLIAN static void
-_evas_canvas3d_texture_evas_canvas3d_object_change_notify(Eo *obj, Evas_Canvas3D_Texture_Data *pd, Evas_Canvas3D_State state EINA_UNUSED, Evas_Canvas3D_Object *ref EINA_UNUSED)
-{
-
- if (pd->materials)
- eina_hash_foreach(pd->materials, _texture_material_change_notify, obj);
-}
-
-/* FIXME: This code is problematic as it actually does rendering and rely on the output before we start rendering. */
-EOLIAN static void
-_evas_canvas3d_texture_evas_canvas3d_object_update_notify(Eo *obj, Evas_Canvas3D_Texture_Data *pd)
-{
- if (pd->source)
- {
- Eo *evas = NULL;
- evas = evas_object_evas_get(obj);
- Evas_Public_Data *e = efl_data_scope_get(evas, EVAS_CANVAS_CLASS);
- Evas_Object_Protected_Data *src = efl_data_scope_get(pd->source, EFL_CANVAS_OBJECT_CLASS);
-
- if (pd->engine_data == NULL)
- {
- if (e->engine.func->texture_new)
- {
- pd->engine_data =
- e->engine.func->texture_new(_evas_engine_context(e), pd->atlas_enable);
- }
-
- if (pd->engine_data == NULL)
- {
- ERR("Failed to create engine-side texture object.");
- return;
- }
- }
-
- if (src->proxy->surface && !src->proxy->redraw)
- {
- if (e->engine.func->texture_image_set)
- {
- e->engine.func->texture_image_set(_evas_engine_context(e),
- pd->engine_data,
- src->proxy->surface);
- }
- return;
-
- }
-
- pd->proxy_rendering = EINA_TRUE;
- _texture_proxy_subrender(obj, _evas_engine_context(e));
-
- if (e->engine.func->texture_image_set)
- e->engine.func->texture_image_set(_evas_engine_context(e),
- pd->engine_data,
- src->proxy->surface);
- pd->proxy_rendering = EINA_FALSE;
- }
-}
-
-void
-evas_canvas3d_texture_material_add(Evas_Canvas3D_Texture *texture, Evas_Canvas3D_Material *material)
-{
- int count = 0;
- Evas_Canvas3D_Texture_Data *pd = efl_data_scope_get(texture, MY_CLASS);
- if (pd->materials == NULL)
- {
- pd->materials = eina_hash_pointer_new(NULL);
-
- if (pd->materials == NULL)
- {
- ERR("Failed to create hash table.");
- return;
- }
- }
- else
- count = (int)(uintptr_t)eina_hash_find(pd->materials, &material);
-
- /* Increase reference count or add new one if not exist. */
- eina_hash_set(pd->materials, &material, (const void *)(uintptr_t)(count + 1));
-}
-
-void
-evas_canvas3d_texture_material_del(Evas_Canvas3D_Texture *texture, Evas_Canvas3D_Material *material)
-{
- int count = 0;
- Evas_Canvas3D_Texture_Data *pd = efl_data_scope_get(texture, MY_CLASS);
- if (pd->materials == NULL)
- {
- ERR("No material to delete.");
- return;
- }
-
- count = (int)(uintptr_t)eina_hash_find(pd->materials, &material);
-
- if (count == 1)
- eina_hash_del(pd->materials, &material, NULL);
- else
- eina_hash_set(pd->materials, &material, (const void *)(uintptr_t)(count - 1));
-}
-
-EAPI Evas_Canvas3D_Texture *
-evas_canvas3d_texture_add(Evas *e)
-{
- MAGIC_CHECK(e, Evas, MAGIC_EVAS);
- return NULL;
- MAGIC_CHECK_END();
- return efl_add(MY_CLASS, e);
-}
-
-
-EOLIAN static Eo *
-_evas_canvas3d_texture_efl_object_constructor(Eo *obj, Evas_Canvas3D_Texture_Data *pd EINA_UNUSED)
-{
- obj = efl_constructor(efl_super(obj, MY_CLASS));
- pd->atlas_enable = EINA_TRUE;
-
- evas_canvas3d_object_type_set(obj, EVAS_CANVAS3D_OBJECT_TYPE_TEXTURE);
-
- return obj;
-}
-
-EOLIAN static void
-_evas_canvas3d_texture_efl_object_destructor(Eo *obj, Evas_Canvas3D_Texture_Data *pd)
-{
- eina_file_close(pd->f); // close matching open (matches open in _evas_canvas3d_texture_efl_file_load) OK
- pd->f = NULL;
- _texture_fini(obj);
- efl_destructor(efl_super(obj, MY_CLASS));
-}
-
-EOLIAN static void
-_evas_canvas3d_texture_data_set(Eo *obj, Evas_Canvas3D_Texture_Data *pd,
- Evas_Colorspace color_format,
- int w, int h, const void *data)
-{
- Eo *evas = NULL;
- void *image = NULL;
- evas = evas_object_evas_get(obj);
- Evas_Public_Data *e = efl_data_scope_get(evas, EVAS_CANVAS_CLASS);
-
- if (!pd->engine_data && e->engine.func->texture_new)
- pd->engine_data = e->engine.func->texture_new(_evas_engine_context(e), pd->atlas_enable);
- if (!data)
- {
- ERR("Failure, image data is empty");
- return;
- }
-
- image = e->engine.func->image_new_from_data(_evas_engine_context(e), w, h, (DATA32 *)data, EINA_TRUE, color_format);
- if (!image)
- {
- ERR("Can't load image from data");
- return;
- }
-
- if (e->engine.func->texture_image_set)
- e->engine.func->texture_image_set(_evas_engine_context(e),
- pd->engine_data,
- image);
- e->engine.func->image_free(_evas_engine_context(e), image);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_TEXTURE_DATA, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_texture_efl_file_unload(Eo *obj, Evas_Canvas3D_Texture_Data *pd)
-{
- efl_file_unload(efl_super(obj, MY_CLASS));
- eina_file_close(pd->f); // close matching open (matches open in _evas_canvas3d_texture_efl_file_load) OK
- pd->f = NULL;
- _texture_fini(obj);
-}
-
-EOLIAN static Eina_Error
-_evas_canvas3d_texture_efl_file_load(Eo *obj, Evas_Canvas3D_Texture_Data *pd)
-{
- Evas_Image_Load_Opts lo;
- int load_error;
- Eo *evas = NULL;
- void *image;
- const Eina_File *f;
- const char *key;
-
- if (efl_file_loaded_get(obj)) return 0;
-
- evas = evas_object_evas_get(obj);
- Evas_Public_Data *e = efl_data_scope_get(evas, EVAS_CANVAS_CLASS);
-
- Eina_Error err = efl_file_load(efl_super(obj, MY_CLASS));
- if (err) return err;
-
- f = efl_file_mmap_get(obj);
- key = efl_file_key_get(obj);
-
- if (!pd->engine_data && e->engine.func->texture_new)
- pd->engine_data = e->engine.func->texture_new(_evas_engine_context(e), pd->atlas_enable);
-
- memset(&lo, 0x0, sizeof(Evas_Image_Load_Opts));
- image = e->engine.func->image_mmap(_evas_engine_context(e),
- (Eina_File *) f, key, &load_error, &lo);
- if (!image)
- {
- ERR("Can't load image from file");
- return EINA_FALSE;
- }
-
- if (e->engine.func->texture_image_set)
- e->engine.func->texture_image_set(_evas_engine_context(e),
- pd->engine_data,
- image);
-
- e->engine.func->image_free(_evas_engine_context(e), image);
-
- pd->f = eina_file_dup(f);
- pd->key = eina_stringshare_add(key);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_TEXTURE_DATA, NULL);
-
- return EINA_TRUE;
-}
-
-EAPI void
-_evas_canvas3d_texture_source_set(Eo *obj , Evas_Canvas3D_Texture_Data *pd, Evas_Object *source)
-{
- Eo *evas = NULL;
- evas = evas_object_evas_get(obj);
- Evas_Public_Data *e = efl_data_scope_get(evas, EVAS_CANVAS_CLASS);
- Evas_Object_Protected_Data *src;
-
- if (source == pd->source)
- return;
-
- _texture_fini(obj);
-
- if (source == NULL)
- return;
-
- if (evas_object_evas_get(source) != evas)
- {
- ERR("Not matching canvas.");
- return;
- }
-
- src = efl_data_scope_get(source, EFL_CANVAS_OBJECT_CLASS);
-
- if (src->delete_me)
- {
- ERR("Source object is deleted.");
- return;
- }
-
- if (src->layer == NULL)
- {
- ERR("No evas surface associated with the source object.");
- return;
- }
- if (!pd->engine_data && e->engine.func->texture_new)
- pd->engine_data = e->engine.func->texture_new(_evas_engine_context(e), pd->atlas_enable);
-
- _texture_proxy_set(obj, source, src);
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_TEXTURE_DATA, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_texture_source_visible_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Texture_Data *pd, Eina_Bool visible)
-{
- Evas_Object_Protected_Data *src_obj;
-
- if (pd->source == NULL)
- return;
-
- src_obj = efl_data_scope_get(pd->source, EFL_CANVAS_OBJECT_CLASS);
-
- if (src_obj->proxy->src_invisible == !visible)
- return;
-
- EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src_obj->proxy, Evas_Object_Proxy_Data, proxy_write)
- proxy_write->src_invisible = !visible;
- EINA_COW_WRITE_END(evas_object_proxy_cow, src_obj->proxy, proxy_write);
-
- src_obj->changed_src_visible = EINA_TRUE;
- evas_object_smart_member_cache_invalidate(pd->source, EINA_FALSE, EINA_FALSE, EINA_TRUE);
- evas_object_change(pd->source, src_obj);
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_texture_source_visible_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Texture_Data *pd)
-{
- Evas_Object_Protected_Data *src_obj;
-
- if (pd->source == NULL)
- return EINA_FALSE;
-
- src_obj = efl_data_scope_get(pd->source, EFL_CANVAS_OBJECT_CLASS);
- return !src_obj->proxy->src_invisible;
-}
-
-EOLIAN static Evas_Colorspace
-_evas_canvas3d_texture_color_format_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Texture_Data *pd)
-{
- Evas_Colorspace format = -1;
- Eo *evas = NULL;
- evas = evas_object_evas_get(obj);
- Evas_Public_Data *e = efl_data_scope_get(evas, EVAS_CANVAS_CLASS);
-
- if (e->engine.func->image_colorspace_get &&
- e->engine.func->texture_image_get)
- {
- void *image;
-
- image = e->engine.func->texture_image_get(_evas_engine_context(e), pd->engine_data);
- format = e->engine.func->image_colorspace_get(_evas_engine_context(e), image);
- }
-
- return format;
-}
-
-EOLIAN static void
-_evas_canvas3d_texture_size_get(const Eo *obj, Evas_Canvas3D_Texture_Data *pd, int *w, int *h)
-{
- Eo *evas = NULL;
- evas = evas_object_evas_get(obj);
- Evas_Public_Data *e = efl_data_scope_get(evas, EVAS_CANVAS_CLASS);
- if (e->engine.func->texture_size_get)
- {
- e->engine.func->texture_size_get(_evas_engine_context(e),
- pd->engine_data, w, h);
- }
-}
-
-EOLIAN static void
-_evas_canvas3d_texture_wrap_set(Eo *obj, Evas_Canvas3D_Texture_Data *pd, Evas_Canvas3D_Wrap_Mode s, Evas_Canvas3D_Wrap_Mode t)
-{
- Eo *evas = NULL;
- evas = evas_object_evas_get(obj);
- Evas_Public_Data *e = efl_data_scope_get(evas, EVAS_CANVAS_CLASS);
- if (e->engine.func->texture_wrap_set)
- {
- e->engine.func->texture_wrap_set(_evas_engine_context(e),
- pd->engine_data, s, t);
- }
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_TEXTURE_WRAP, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_texture_wrap_get(Eo *obj, Evas_Canvas3D_Texture_Data *pd, Evas_Canvas3D_Wrap_Mode *s, Evas_Canvas3D_Wrap_Mode *t)
-{
- Eo *evas = NULL;
- evas = evas_object_evas_get(obj);
- Evas_Public_Data *e = efl_data_scope_get(evas, EVAS_CANVAS_CLASS);
- if (e->engine.func->texture_wrap_set)
- {
- e->engine.func->texture_wrap_get(_evas_engine_context(e),
- pd->engine_data, s, t);
- }
-}
-
-EOLIAN static void
-_evas_canvas3d_texture_filter_set(Eo *obj, Evas_Canvas3D_Texture_Data *pd, Evas_Canvas3D_Texture_Filter min, Evas_Canvas3D_Texture_Filter mag)
-{
- Eo *evas = NULL;
- evas = evas_object_evas_get(obj);
- Evas_Public_Data *e = efl_data_scope_get(evas, EVAS_CANVAS_CLASS);
- if (e->engine.func->texture_filter_set)
- {
- e->engine.func->texture_filter_set(_evas_engine_context(e),
- pd->engine_data, min, mag);
- }
- evas_canvas3d_object_change(obj, EVAS_CANVAS3D_STATE_TEXTURE_FILTER, NULL);
-}
-
-EOLIAN static void
-_evas_canvas3d_texture_filter_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Texture_Data *pd, Evas_Canvas3D_Texture_Filter *min, Evas_Canvas3D_Texture_Filter *mag)
-{
- Eo *evas = NULL;
- evas = evas_object_evas_get(obj);
- Evas_Public_Data *e = efl_data_scope_get(evas, EVAS_CANVAS_CLASS);
- if (e->engine.func->texture_filter_get)
- {
- e->engine.func->texture_filter_get(_evas_engine_context(e),
- pd->engine_data, min, mag);
- }
-}
-
-EOLIAN static void
-_evas_canvas3d_texture_atlas_enable_set(Eo *obj EINA_UNUSED, Evas_Canvas3D_Texture_Data *pd, Eina_Bool use_atlas)
-{
- if (pd->atlas_enable != use_atlas) pd->atlas_enable = use_atlas;
-}
-
-EOLIAN static Eina_Bool
-_evas_canvas3d_texture_atlas_enable_get(const Eo *obj EINA_UNUSED, Evas_Canvas3D_Texture_Data *pd)
-{
- return pd->atlas_enable;
-}
-#include "canvas/evas_canvas3d_texture.eo.c"
diff --git a/src/lib/evas/canvas/evas_canvas3d_texture.eo b/src/lib/evas/canvas/evas_canvas3d_texture.eo
deleted file mode 100644
index a680d299cc..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_texture.eo
+++ /dev/null
@@ -1,159 +0,0 @@
-type @beta @extern Evas_Colorspace: int; [[Evas colorspace type]] /* FIXME: Need to get emile migrated. */
-
-class @beta Evas.Canvas3D.Texture extends Evas.Canvas3D.Object implements Efl.File
-{
- [[Evas 3d canvas texture class]]
- data : Evas_Canvas3D_Texture_Data;
- methods {
- @property source_visible {
- [[The visibility flag of the source evas object of the given
- texture.
-
- Call \@ref evas_object_show on the source object
- and control the visibility using this function.
-
- By default the source object is visible.
-
- See also @.source_set.
- ]]
- set {
- }
- get {
- }
- values {
- visible: bool; [[$true for visible, $false for invisible.]]
- }
- }
- @property atlas_enable {
- [[Enable flag to generation texture unit with support atlas.
-
- Use this flag only when you cannot normalize texture coordinates.
-
- By default it is enabled.
- ]]
- set {
- }
- get {
- }
- values {
- use_atlas: bool; [[$true for enable, $false for disable.]]
- }
- }
- data_set {
- [[Set the data of the given texture.
-
- See also @Efl.File.file.set.
- ]]
-
- params {
- @in color_format: Evas_Colorspace; [[Color format of the texture.]]
- @in w: int; [[Width of the data.]]
- @in h: int; [[Height of the data.]]
- @in data: const(void_ptr); [[Pointer to the data.]]
- }
- }
-
- source_set {
- [[Set the data of the given texture from an evas object.
-
- Evas 3D support using existing evas object as a texture source.
- This feature make it possible using any existing evas object
- inside 3D scene.
-
- See also @.source_visible.set.
- ]]
-
- params {
- @in source: Efl.Canvas.Object; [[Source evas object to be used as
- the texture data.]]
- }
- }
-
- color_format_get @const {
- [[Get the color format of the given texture.
-
- EVAS_CANVAS3D_COLOR_FORMAT_RGBA will be returned if the texture
- has source object. Otherwise, the color format of the data will
- be returned.
-
- See also @.data_set, @Efl.File.file.set, @.source_set.
- ]]
- return: Evas_Colorspace; [[Color format of the given texture]]
- }
-
- size_get @const {
- [[Get the size of the given texture.
-
- If the texture has a source object, the size of the source object
- will be returned. Otherwise the size of the data (or image file)
- will be returned.
-
- See also @.data_set, @Efl.File.file.set, @.source_set.
- ]]
- params {
- @out w: int; [[Pointer to receive the width of the texture size.]]
- @out h: int; [[Pointer to receive the height of the texture size.]]
- }
- }
-
- wrap_set {
- [[Set the wrap mode of the given texture.
-
- If the texture coordinate exceed range [0.0, 1.0] the values are
- modified according to the wrap mode.
-
- Default wrap modes are both EVAS_CANVAS3D_WRAP_MODE_CLAMP for s and t.
- ]]
- params {
- @in s: Evas.Canvas3D.Wrap_Mode; [[Wrap mode for S-axis.]]
- @in t: Evas.Canvas3D.Wrap_Mode; [[Wrap mode for T-axis.]]
- }
- }
-
- wrap_get {
- [[Get the wrap mode of the given texture.
-
- See also @.wrap_set.
- ]]
- params {
- @out s: Evas.Canvas3D.Wrap_Mode; [[Pointer to receive S-axis wrap mode.]]
- @out t: Evas.Canvas3D.Wrap_Mode; [[Pointer to receive T-axis wrap mode.]]
- }
- }
-
- filter_set {
- [[Set the filter of the given texture.
-
- Default filters are both EVAS_CANVAS3D_TEXTURE_FILTER_NEAREST for
- s and t.
- ]]
-
- params {
- @in min: Evas.Canvas3D.Texture_Filter; [[Minification filter used when down-scaling.]]
- @in mag: Evas.Canvas3D.Texture_Filter; [[Magnification filter used when up-scaling.]]
- }
- }
-
- filter_get @const {
- [[Get the filter of the given texture.
-
- See also @.filter_set.
- ]]
- params {
- @out min: Evas.Canvas3D.Texture_Filter; [[Pointer to receive the minification filter.]]
- @out mag: Evas.Canvas3D.Texture_Filter; [[Pointer to receive the magnification filter.]]
- }
- }
- }
-
- implements {
- Efl.Object.constructor;
- Efl.Object.destructor;
- Evas.Canvas3D.Object.update_notify;
- Evas.Canvas3D.Object.change_notify;
- Efl.File.load;
- Efl.File.unload;
- @empty Evas.Canvas3D.Object.callback_register;
- @empty Evas.Canvas3D.Object.callback_unregister;
- }
-}
diff --git a/src/lib/evas/canvas/evas_canvas3d_types.eot b/src/lib/evas/canvas/evas_canvas3d_types.eot
deleted file mode 100644
index 81e3030e19..0000000000
--- a/src/lib/evas/canvas/evas_canvas3d_types.eot
+++ /dev/null
@@ -1,293 +0,0 @@
-// ----------------------------------------------------------------------------
-// All the below types are for Evas 3D
-
-type @beta Evas.Real: double; [[A type for floating value]]
-
-enum @beta Evas.Canvas3D.Object_Type
-{
- [[Type of 3D Object
-
- @since 1.10]]
- invalid = 0, [[Evas 3D type: invalid]]
- scene, [[Evas 3D type: scene]]
- node, [[Evas 3D type: node]]
- camera, [[Evas 3D type: camera]]
- light, [[Evas 3D type: light]]
- model, [[Evas 3D type: model]]
- mesh, [[Evas 3D type: mesh]]
- texture, [[Evas 3D type: texture]]
- material, [[Evas 3D type: material]]
- primitive [[Evas 3D type: primitive
- @since 1.15]]
-}
-
-enum @beta Evas.Canvas3D.State
-{
- [[State of the Evas 3D
-
- @since 1.10]]
- max = 16, [[Evas 3D state: max]]
-
- any = 0, [[Evas 3D state: any]]
-
- scene_root_node = 1, [[Evas 3D state: scene root node]]
- scene_camera_node, [[Evas 3D state: scene camera node]]
- scene_background_color, [[Evas 3D state: scene background color]]
- scene_size, [[Evas 3D state: scene size]]
- scene_shadows_enabled, [[Evas 3D state: scene shadows enabled]]
- scene_updated, [[Evas 3D state: scene updated
- @since 1.14]]
- scene_shadows_depth, [[Evas 3D state: scene shadows depth]]
- scene_render_to_texture, [[Evas 3D state: scene render to texture]]
-
- texture_data = 1, [[Evas 3D state: texture data]]
- texture_wrap, [[Evas 3D state: texture wrap]]
- texture_filter, [[Evas 3D state: texture filter]]
-
- material_id = 1, [[Evas 3D state: material ID]]
- material_color, [[Evas 3D state: material color]]
- material_texture, [[Evas 3D state: material texture]]
-
- mesh_vertex_count = 1, [[Evas 3D state: mesh vertex count]]
- mesh_frame, [[Evas 3D state: mesh frame]]
- mesh_material, [[Evas 3D state: mesh material]]
- mesh_transform, [[Evas 3D state: mesh transform]]
- mesh_vertex_data, [[Evas 3D state: mesh vertex data]]
- mesh_index_data, [[Evas 3D state: mesh index data]]
- mesh_vertex_assembly, [[Evas 3D state: mesh vertex assembly]]
- mesh_shader_mode, [[Evas 3D state: mesh shader mode]]
- mesh_fog, [[Evas 3D state: mesh fog]]
- mesh_blending, [[Evas 3D state: mesh blending]]
- mesh_alpha_test, [[Evas 3D state: mesh alpha test]]
- mesh_color_pick, [[Evas 3D state: mesh color pick]]
- mesh_shadows_edges_filtering, [[Evas 3D state: mesh shadows edges filtering]]
- mesh_shadows_constant_bias, [[Evas 3D state: mesh shadows constant bias]]
-
- camera_projection = 1, [[Evas 3D state: camera projection]]
-
- light_ambient = 1, [[Evas 3D state: light ambient]]
- light_diffuse, [[Evas 3D state: light diffuse]]
- light_specular, [[Evas 3D state: light specular]]
- light_spot_dir, [[Evas 3D state: light spot dir]]
- light_spot_exp, [[Evas 3D state: light spot exp]]
- light_spot_cutoff, [[Evas 3D state: light spot cutoff]]
- light_attenuation, [[Evas 3D state: light attenuation]]
- light_projection, [[Evas 3D state: light projection]]
-
- node_transform_position = 1, [[Evas 3D state: node transform position]]
- node_transform_orientation, [[Evas 3D state: node transform orientation]]
- node_transform_scale, [[Evas 3D state: node transform scale]]
- node_mesh_geometry, [[Evas 3D state: node mesh geometry]]
- node_mesh_material, [[Evas 3D state: node mesh material]]
- node_mesh_frame, [[Evas 3D state: node mesh frame]]
- node_mesh_shader_mode, [[Evas 3D state: node mesh shader mode]]
- node_mesh_material_id, [[Evas 3D state: node mesh material ID]]
- node_light, [[Evas 3D state: node light]]
- node_camera, [[Evas 3D state: node camera]]
- node_parent_position, [[Evas 3D state: node parent position]]
- node_parent_orientation, [[Evas 3D state: node parent orientation]]
- node_parent_scale, [[Evas 3D state: node parent scale]]
- node_member, [[Evas 3D state: node member]]
- node_parent_billboard, [[Evas 3D state: node parent billboard
- @since 1.14]]
- node_lod [[Evas 3D state: node lod
- @since 1.18]]
-}
-
-enum @beta Evas.Canvas3D.Space
-{
- [[Transform space
-
- @since 1.10]]
- local = 0, [[Local coordinate space]]
- parent, [[Parent coordinate space]]
- world [[World coordinate space]]
-}
-
-enum @beta Evas.Canvas3D.Node_Type
-{
- [[Types of a node
-
- @since 1.10]]
- unknown = -1, [[Unknown node type @since 1.21]]
- node = 0, [[Node with no items]]
- camera, [[Node which can contain camera object]]
- light, [[Node which can contain light object]]
- mesh [[Node which can contain mesh objects]]
-}
-
-enum @beta Evas.Canvas3D.Node_Orientation_Type
-{
- [[Types of node orientation
-
- @since 1.13]]
- none = 0, [[Node with no orientation properties]]
- look_at, [[Node orientation is given as a point to look at and a vector that indicates the angle at which the subject is looking at the point]]
- look_to, [[Node orientation is given as id of another part to look at and a vector that indicates the angle at which the subject is looking at the part]]
- angle_axis, [[Node orientation is given as an angle and an axis to rotate around]]
- quaternion [[Node orientation is given as a quaternion]]
-}
-
-enum @beta Evas.Canvas3D.Index_Format
-{
- [[Index formats
-
- @since 1.10]]
- none = 0, [[Indexing is not used]]
- unsigned_byte, [[Index is of type unsigned byte]]
- unsigned_short [[Index is of type unsigned short]]
-}
-
-enum @beta Evas.Canvas3D.Frustum_Mode
-{
- [[Frustum modes
-
- @since 1.12]]
- bsphere, [[Bounding sphere]]
- aabb, [[Axis-aligned bounding box]]
- central_point [[Central point]]
-}
-
-enum @beta Evas.Canvas3D.Vertex_Assembly
-{
- [[Vertex assembly modes. Vertex assembly represents how the vertices are organized into geometric primitives.
-
- @since 1.10]]
- points = 0, [[A vertex is rendered as a point]]
- lines, [[Two vertices are organized as a line]]
- line_strip, [[Vertices are organized as a connected line path]]
- line_loop, [[Vertices are organized as a closed line path]]
- triangles, [[Three vertices are organized as a triangle]]
- triangle_strip, [[Vertices are organized as connected triangles]]
- triangle_fan [[Vertices are organized as a triangle fan]]
-}
-
-enum @beta Evas.Canvas3D.Comparison
-{
- [[Comparsion functions for testing(alpha, depth, stencil) in fragment shader
-
- @since 1.14]]
- never, [[Never passes]]
- less, [[Passes if the incoming value is less than the reference value]]
- equal, [[Passes if the incoming value is equal to the reference value]]
- lequal, [[Passes if the incoming value is less than or equal to the reference value]]
- greater, [[Passes if the incoming value is greater than the reference value]]
- notequal, [[Passes if the incoming value is not equal to the reference value]]
- gequal, [[Passes if the incoming value is greater than or equal to the reference value]]
- always [[Always passes (initial value)]]
-}
-
-enum @beta Evas.Canvas3D.Wrap_Mode
-{
- [[Wrap modes for texture units
-
- @since 1.14]]
- clamp = 0, [[Values will be clamped to be in range (min, max)]]
- repeat, [[Values will be repeated]]
- reflect [[Values will be repeated in a reflected manner]]
-}
-
-enum @beta Evas.Canvas3D.Texture_Filter
-{
- [[Filters for texture units
-
- @since 1.14]]
- nearest = 0, [[Samples nearest texel]]
- linear, [[Lineary interpolate nearby texels]]
- nearest_mipmap_nearest, [[Nearest sampling mipmap]]
- linear_mipmap_nearest, [[Nearest sampling mipmap and interpolate]]
- nearest_mipmap_linear, [[Linear sampling in nearest mipmap]]
- linear_mipmap_linear [[Linear sampling in mipmap and interpolate]]
-}
-
-enum @beta Evas.Canvas3D.Mesh_Primitive
-{
- [[Mesh primitive
-
- @since 1.12]]
- none = 0, [[An empty space]]
- square, [[One sided square]]
- cube, [[Cube primitive]]
- cylinder, [[Cylinder (can use precision and texture scale)]]
- cone, [[Cone (can use precision and texture scale)]]
- sphere, [[Sphere (can use precision and texture scale)]]
- torus, [[Torus (can use ratio, precision and texture scale)]]
- surface, [[Custom surface (can use pointer to users function, precision and texture scale)]]
- terrain, [[Terrain as surface with pointer to perlin's noise function]]
- count [[Sentinel value to indicate last enum field during iteration]]
-}
-
-enum @beta Evas.Canvas3D.Primitive_Mode
-{
- [[Mode of mesh primitive
-
- @since 1.15]]
- default = 0, [[Default mode of primitive]]
- without_base, [[Primitive without base (supported for cylinder and cone)]]
- alternative_uv [[Ptimitive with alternative uv (supported for sphere)]]
-}
-
-enum @beta Evas.Canvas3D.Shader_Mode
-{
- [[Shader shade modes
-
- @since 1.10]]
- vertex_color = 0, [[Shaded using vertex color attribute]]
- diffuse, [[Shaded using material diffuse term]]
- flat, [[Per-vertex flat lighting]]
- phong, [[Per-pixel phong shading]]
- normal_map, [[Per-pixel normal map shading]]
- shadow_map_render, [[Fragment color is defined by its z-coord]]
- color_pick, [[Rendering to additional frame bufer]]
- parallax_occlusion, [[Per-pixel parallax occlusion map shading]]
- post_processing_FXAA [[Render full screen quard]]
-}
-
-enum @beta Evas.Canvas3D.Vertex_Attrib
-{
- [[Vertex attribute IDs
-
- @since 1.10]]
- position = 0, [[vertex position]]
- normal, [[vertex normal]]
- tangent, [[vertex tangent (for normal mapping)]]
- color, [[vertex color]]
- texcoord [[vertex texture coordinate]]
-}
-
-enum @beta Evas.Canvas3D.Blend_Func
-{
- [[Blending function
-
- @since 1.14]]
-
- zero = 0, [[The scale factors for color components is (0, 0, 0, 0)]]
- one, [[The scale factors for color components is (1, 1, 1, 1)]]
- src_color, [[The scale factors for color components is (rs/kr, gs/kg, bs/kb, as/ka)]]
- one_minus_src_color, [[The scale factors for color components is (1, 1, 1, 1) - (rs/kr, gs/kg, bs/kb, as/ka)]]
- dst_color, [[The scale factors for color components is (rd/kr, gd/kg, bd/kb, ad/ka)]]
- one_minus_dst_color, [[The scale factors for color components is (1, 1, 1, 1) - (rd/kr, gd/kg, bd/kb, ad/ka)]]
- src_alpha, [[The scale factors for color components is (as/ka, as/ka, as/ka, as/ka)]]
- one_minus_src_alpha, [[The scale factors for color components is (1, 1, 1, 1) - (as/ka, as/ka, as/ka, as/ka)]]
- dst_alpha, [[The scale factors for color components is (ad/ka, ad/ka, ad/ka, ad/ka)]]
- one_minus_dst_alpha, [[The scale factors for color components is (1, 1, 1, 1) - (ad/ka, ad/ka, ad/ka, ad/ka)]]
- constant_color, [[The scale factors for color components is (rc, gc, bc, ac)]]
- one_minus_constant_color, [[The scale factors for color components is (1, 1, 1, 1) - (rc, gc, bc, ac)]]
- constant_alpha, [[The scale factors for color components is (ac, ac, ac, ac)]]
- one_minus_constant_alpha, [[The scale factors for color components is (1, 1, 1, 1) - (ac, ac, ac, ac)]]
- src_alpha_saturate [[The scale factors for color components is (i, i, i, 1) where i = min(as, ka, ad)/ka]]
-}
-
-enum @beta Evas.Canvas3D.Material_Attrib
-{
- [[Material attributes
-
- @since 1.10]]
- ambient = 0, [[ambient term]]
- diffuse, [[diffuse term]]
- specular, [[specular term]]
- emission, [[emission term]]
- normal [[Normal map term]]
-}
-
-type @beta Evas.Canvas3D.Surface_Func: __undefined_type; [[Evas 3D canvas surface function type]]
diff --git a/src/lib/evas/canvas/evas_image_legacy.c b/src/lib/evas/canvas/evas_image_legacy.c
index 12d53a4a10..f58dd3870c 100644
--- a/src/lib/evas/canvas/evas_image_legacy.c
+++ b/src/lib/evas/canvas/evas_image_legacy.c
@@ -853,8 +853,6 @@ evas_object_image_size_set(Evas_Object *eo_obj, int w, int h)
Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
int stride = 0;
- if (o->cur->scene) return;
-
evas_object_async_block(obj);
_evas_image_cleanup(eo_obj, obj, o);
if (w < 1) w = 1;
diff --git a/src/lib/evas/canvas/evas_image_private.h b/src/lib/evas/canvas/evas_image_private.h
index 310d91236b..693125fb84 100644
--- a/src/lib/evas/canvas/evas_image_private.h
+++ b/src/lib/evas/canvas/evas_image_private.h
@@ -82,7 +82,6 @@ struct _Evas_Object_Image_State
Evas_Object *source;
Evas_Map *defmap;
- Evas_Canvas3D_Scene *scene;
Eina_File *f;
const char *key;
@@ -213,11 +212,6 @@ Eina_Bool _evas_image_proxy_source_clip_get(const Eo *eo_obj);
void _evas_image_proxy_source_events_set(Eo *eo_obj, Eina_Bool source_events);
Eina_Bool _evas_image_proxy_source_events_get(const Eo *eo_obj);
-/* Efl.Canvas.Scene3d */
-void _evas_image_3d_render(Evas *eo_e, Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Image_Data *o, Evas_Canvas3D_Scene *scene, void *engine, void *output);
-void _evas_image_3d_set(Evas_Object *eo_obj, Evas_Canvas3D_Scene *scene);
-void _evas_image_3d_unset(Evas_Object *eo_obj, Evas_Object_Protected_Data *image, Evas_Image_Data *o);
-
/* Efl.Canvas.Surface */
Eina_Bool _evas_image_native_surface_set(Eo *eo_obj, Evas_Native_Surface *surf);
Evas_Native_Surface *_evas_image_native_surface_get(const Evas_Object *eo_obj);
diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c
index 9aa455553d..deb1905626 100644
--- a/src/lib/evas/canvas/evas_main.c
+++ b/src/lib/evas/canvas/evas_main.c
@@ -1077,9 +1077,6 @@ _image_data_unset(Evas_Object_Protected_Data *obj, Eina_List **list)
data->engine_data =
obj->layer->evas->engine.func->polygon_points_clear(ENC,
data->engine_data))
- else CHECK(EVAS_CANVAS3D_TEXTURE_CLASS, Evas_Canvas3D_Texture_Data,
- if (obj->layer->evas->engine.func->texture_free)
- obj->layer->evas->engine.func->texture_free(ENC, data->engine_data))
else return;
#undef CHECK
evas_object_ref(obj->object);
@@ -1136,10 +1133,8 @@ _image_data_regenerate(Evas_Object *eo_obj)
}
CHECK(EFL_CANVAS_IMAGE_INTERNAL_CLASS, Evas_Image_Data, _image_image_data_regenerate(eo_obj, obj, data))
else CHECK(EFL_CANVAS_IMAGE_CLASS, Evas_Image_Data, _image_image_data_regenerate(eo_obj, obj, data))
- else CHECK(EFL_CANVAS_SCENE3D_CLASS, Evas_Image_Data, _image_image_data_regenerate(eo_obj, obj, data))
//else CHECK(EFL_CANVAS_VG_OBJECT_CLASS, Efl_Canvas_Vg_Object_Data,)
//else CHECK(EFL_CANVAS_POLYGON_CLASS, Efl_Canvas_Polygon_Data,)
- //else CHECK(EVAS_CANVAS3D_TEXTURE_CLASS, Evas_Canvas3D_Texture_Data,
}
EAPI void
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index 32939b769c..8d714035a6 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -96,7 +96,7 @@ static const Evas_Object_Image_State default_state = {
{ 0, 0, 0 }, // image
{ 1.0, 0, 0, 0, 0, 1 }, // border
{ { NULL, 0, 0 }, { NULL, 0, 0 } },
- NULL, NULL, NULL, //source, defmap, scene
+ NULL, NULL, //source, defmap
NULL, //f
NULL, //key
0, //frame
@@ -171,7 +171,6 @@ _evas_image_cleanup(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_I
ENFN->image_data_preload_cancel(ENC, o->engine_data, eo_obj, EINA_FALSE);
}
if (o->cur->source) _evas_image_proxy_unset(eo_obj, obj, o);
- if (o->cur->scene) _evas_image_3d_unset(eo_obj, obj, o);
}
static Eina_Bool
@@ -252,7 +251,6 @@ _evas_image_init_set(const Eina_File *f, const char *key,
Evas_Image_Load_Opts *lo)
{
if (o->cur->source) _evas_image_proxy_unset(eo_obj, obj, o);
- if (o->cur->scene) _evas_image_3d_unset(eo_obj, obj, o);
EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
{
@@ -1033,22 +1031,15 @@ _efl_canvas_image_internal_efl_gfx_image_image_size_get(const Eo *eo_obj EINA_UN
}
EOLIAN static Eina_Size2D
-_efl_canvas_image_internal_efl_gfx_view_view_size_get(const Eo *eo_obj, Evas_Image_Data *o)
+_efl_canvas_image_internal_efl_gfx_view_view_size_get(const Eo *eo_obj EINA_UNUSED, Evas_Image_Data *o)
{
int uvw, uvh;
Evas_Object_Protected_Data *source = NULL;
- Evas_Object_Protected_Data *obj;
- obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
if (o->cur->source)
source = efl_data_scope_get(o->cur->source, EFL_CANVAS_OBJECT_CLASS);
- if (o->cur->scene)
- {
- uvw = obj->data_3d->w;
- uvh = obj->data_3d->h;
- }
- else if (!o->cur->source)
+ if (!o->cur->source)
{
uvw = o->cur->image.w;
uvh = o->cur->image.h;
@@ -1732,13 +1723,6 @@ evas_object_image_free(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
state_write->source = NULL;
EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
}
- if (o->cur->scene)
- {
- _evas_image_3d_unset(eo_obj, obj, o);
- EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
- state_write->scene = NULL;
- EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
- }
if (o->cur->f)
{
eina_file_close(o->cur->f); // close matching open (dup in _evas_image_init_set) OK
@@ -2318,15 +2302,6 @@ _evas_image_pixels_get(Eo *eo_obj, Evas_Object_Protected_Data *obj,
*uvw = *imagew;
*uvh = *imageh;
}
- else if (o->cur->scene)
- {
- _evas_image_3d_render(obj->layer->evas->evas, eo_obj, obj, o, o->cur->scene, engine, output);
- pixels = obj->data_3d->surface;
- *imagew = obj->data_3d->w;
- *imageh = obj->data_3d->h;
- *uvw = *imagew;
- *uvh = *imageh;
- }
else if (obj->cur->snapshot)
{
pixels = o->engine_data;
@@ -2868,18 +2843,6 @@ evas_object_image_render_pre(Evas_Object *eo_obj,
goto done;
}
}
- else if (o->cur->scene)
- {
- Evas_Canvas3D_Scene *scene = o->cur->scene;
- Eina_Bool dirty;
-
- dirty = evas_canvas3d_object_dirty_get(scene, EVAS_CANVAS3D_STATE_ANY);
- if (dirty)
- {
- evas_object_render_pre_prev_cur_add(&e->clip_changes, eo_obj, obj);
- goto done;
- }
- }
/* now figure what changed and add draw rects */
/* if it just became visible or invisible */
diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c
index 82eee8aad2..eb4b9952ab 100644
--- a/src/lib/evas/canvas/evas_object_main.c
+++ b/src/lib/evas/canvas/evas_object_main.c
@@ -13,7 +13,7 @@ EVAS_MEMPOOL(_mp_sh);
/* evas internal stuff */
static const Evas_Object_Proxy_Data default_proxy = {
- NULL, NULL, NULL, 0, 0, NULL, 0, 0, 0, 0
+ NULL, NULL, 0, 0, NULL, 0, 0, 0, 0
};
static const Evas_Object_Map_Data default_map = {
{ NULL, NULL, 0, 0 }, { NULL, NULL, 0, 0 }, NULL, 0, 0, NULL, NULL
@@ -34,7 +34,6 @@ static const Evas_Object_Events_Data default_events = {
Eina_Cow *evas_object_proxy_cow = NULL;
Eina_Cow *evas_object_map_cow = NULL;
Eina_Cow *evas_object_state_cow = NULL;
-Eina_Cow *evas_object_3d_cow = NULL;
Eina_Cow *evas_object_mask_cow = NULL;
Eina_Cow *evas_object_events_cow = NULL;
@@ -49,29 +48,26 @@ typedef struct _Event_Animation
static Eina_Bool
_init_cow(void)
{
- if (evas_object_map_cow && evas_object_proxy_cow && evas_object_state_cow && evas_object_3d_cow) return EINA_TRUE;
+ if (evas_object_map_cow && evas_object_proxy_cow && evas_object_state_cow) return EINA_TRUE;
evas_object_proxy_cow = eina_cow_add("Evas Object Proxy", sizeof (Evas_Object_Proxy_Data), 8, &default_proxy, EINA_TRUE);
evas_object_map_cow = eina_cow_add("Evas Object Map", sizeof (Evas_Object_Map_Data), 8, &default_map, EINA_TRUE);
evas_object_state_cow = eina_cow_add("Evas Object State", sizeof (Evas_Object_Protected_State), 64, &default_state, EINA_FALSE);
- evas_object_3d_cow = eina_cow_add("Evas Object 3D", sizeof (Evas_Object_3D_Data), 8, &default_proxy, EINA_TRUE);
evas_object_mask_cow = eina_cow_add("Evas Mask Data", sizeof (Evas_Object_Mask_Data), 8, &default_mask, EINA_TRUE);
evas_object_events_cow = eina_cow_add("Evas Events Data", sizeof (Evas_Object_Events_Data), 8, &default_events, EINA_TRUE);
if (!(evas_object_map_cow && evas_object_proxy_cow && evas_object_state_cow &&
- evas_object_3d_cow && evas_object_mask_cow && evas_object_events_cow))
+ evas_object_mask_cow && evas_object_events_cow))
{
eina_cow_del(evas_object_proxy_cow);
eina_cow_del(evas_object_map_cow);
eina_cow_del(evas_object_state_cow);
- eina_cow_del(evas_object_3d_cow);
eina_cow_del(evas_object_mask_cow);
eina_cow_del(evas_object_events_cow);
evas_object_proxy_cow = NULL;
evas_object_map_cow = NULL;
evas_object_state_cow = NULL;
- evas_object_3d_cow = NULL;
evas_object_mask_cow = NULL;
evas_object_events_cow = NULL;
@@ -206,7 +202,6 @@ _efl_canvas_object_efl_object_constructor(Eo *eo_obj, Evas_Object_Protected_Data
obj->map = eina_cow_alloc(evas_object_map_cow);
obj->cur = eina_cow_alloc(evas_object_state_cow);
obj->prev = eina_cow_alloc(evas_object_state_cow);
- obj->data_3d = eina_cow_alloc(evas_object_3d_cow);
obj->mask = eina_cow_alloc(evas_object_mask_cow);
obj->events = eina_cow_alloc(evas_object_events_cow);
@@ -519,7 +514,6 @@ evas_object_free(Evas_Object_Protected_Data *obj, Eina_Bool clean_layer)
eina_cow_free(evas_object_map_cow, (const Eina_Cow_Data**) &obj->map);
eina_cow_free(evas_object_state_cow, (const Eina_Cow_Data**) &obj->cur);
eina_cow_free(evas_object_state_cow, (const Eina_Cow_Data**) &obj->prev);
- eina_cow_free(evas_object_3d_cow, (const Eina_Cow_Data**) &obj->data_3d);
eina_cow_free(evas_object_mask_cow, (const Eina_Cow_Data**) &obj->mask);
eina_cow_free(evas_object_events_cow, (const Eina_Cow_Data**) &obj->events);
@@ -539,7 +533,6 @@ evas_object_change(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *
Evas_Object_Protected_Data *obj2;
Evas_Object *eo_obj2;
Eina_Bool movch = EINA_FALSE;
- Evas_Canvas3D_Texture *texture;
if ((!obj->layer) || (!obj->layer->evas)) return;
if (obj->layer->evas->nochange) return;
@@ -570,10 +563,6 @@ evas_object_change(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *
if (!obj2) continue;
evas_object_change(eo_obj2, obj2);
}
- EINA_LIST_FOREACH(obj->proxy->proxy_textures, l, texture)
- {
- evas_canvas3d_object_change(texture, EVAS_CANVAS3D_STATE_TEXTURE_DATA, NULL);
- }
if (obj->smart.parent)
{
Evas_Object_Protected_Data *smart_parent = efl_data_scope_get(obj->smart.parent, MY_CLASS);
@@ -1103,21 +1092,6 @@ _efl_canvas_object_efl_object_invalidate(Eo *eo_obj, Evas_Object_Protected_Data
if (efl_isa(proxy, EFL_GFX_FILTER_INTERFACE))
efl_gfx_filter_source_set(proxy, NULL, eo_obj);
}
-
- /* Eina_Cow has no way to know if we are going to really change something
- or not. So before calling the cow, let's check if we want to do something */
- if (obj->proxy->proxy_textures)
- {
- EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, obj->proxy,
- Evas_Object_Proxy_Data, proxy_src)
- {
- Evas_Canvas3D_Texture *texture;
-
- EINA_LIST_FREE(proxy_src->proxy_textures, texture)
- evas_canvas3d_texture_source_set(texture, NULL);
- }
- EINA_COW_WRITE_END_NOGC(evas_object_proxy_cow, obj->proxy, proxy_src);
- }
}
if (obj->cur)
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index 08252d2326..6a0d7fab0f 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -389,15 +389,6 @@ _evas_proxy_redraw_set(Evas_Public_Data *e, Evas_Object_Protected_Data *obj,
//Update the proxies recursively.
_evas_proxy_redraw_set(e, proxy, render);
}
-
- if (obj->proxy->proxy_textures)
- {
- /* Flag need redraw on proxy texture source */
- EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, obj->proxy,
- Evas_Object_Proxy_Data, source)
- source->redraw = EINA_TRUE;
- EINA_COW_WRITE_END(evas_object_proxy_cow, obj->proxy, source);
- }
}
/* sets the mask redraw flag for all the objects clipped by this mask */
@@ -466,7 +457,7 @@ _evas_render_phase1_direct(Evas_Public_Data *e,
EINA_PREFETCH(&(obj->cur->clipper));
if (obj->changed) evas_object_clip_recalc(obj);
- if (obj->proxy->proxies || obj->proxy->proxy_textures)
+ if (obj->proxy->proxies)
{
/* is proxy source */
if (_evas_render_object_changed_get(obj))
@@ -498,7 +489,7 @@ _evas_render_phase1_direct(Evas_Public_Data *e,
if (!obj->smart.smart || evas_object_smart_changed_get(obj))
{
/* proxy sources */
- if (obj->proxy->proxies || obj->proxy->proxy_textures)
+ if (obj->proxy->proxies)
{
EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, obj->proxy,
Evas_Object_Proxy_Data, proxy_write)
@@ -2313,7 +2304,6 @@ end:
* Render the source object when a proxy is set.
* Used to force a draw if necessary, else just makes sure it's available.
* Called from: image objects and text with filters.
- * TODO: 3d objects subrender should probably be merged here as well.
*/
void
evas_render_proxy_subrender(Evas *eo_e, void *output, Evas_Object *eo_source, Evas_Object *eo_proxy,
diff --git a/src/lib/evas/canvas/meson.build b/src/lib/evas/canvas/meson.build
index a7a6d06385..291695bf67 100644
--- a/src/lib/evas/canvas/meson.build
+++ b/src/lib/evas/canvas/meson.build
@@ -2,19 +2,9 @@
pub_eo_files = [
'efl_canvas_polygon.eo',
'efl_canvas_image_internal.eo',
- 'evas_canvas3d_camera.eo',
- 'evas_canvas3d_texture.eo',
- 'evas_canvas3d_material.eo',
- 'evas_canvas3d_light.eo',
- 'evas_canvas3d_mesh.eo',
- 'evas_canvas3d_primitive.eo',
- 'evas_canvas3d_node.eo',
- 'evas_canvas3d_scene.eo',
- 'evas_canvas3d_object.eo',
'efl_canvas_image.eo',
'efl_canvas_snapshot.eo',
'efl_canvas_proxy.eo',
- 'efl_canvas_scene3d.eo',
'efl_canvas_surface.eo',
'efl_canvas_surface_tbm.eo',
'efl_canvas_surface_x11.eo',
@@ -80,7 +70,6 @@ endforeach
pub_eo_types_files = [
- 'evas_canvas3d_types.eot',
'efl_canvas_animation_types.eot',
'efl_input_types.eot',
]
@@ -166,7 +155,6 @@ evas_src += files([
'efl_canvas_event_grabber.c',
'efl_canvas_proxy.c',
'efl_canvas_snapshot.c',
- 'efl_canvas_scene3d.c',
'efl_canvas_surface.c',
'efl_canvas_surface_tbm.c',
'efl_canvas_surface_x11.c',
@@ -198,17 +186,6 @@ evas_src += files([
'efl_canvas_vg_shape.c',
'efl_canvas_vg_image.c',
'evas_filter_mixin.c',
- 'evas_canvas3d_object.c',
- 'evas_canvas3d_scene.c',
- 'evas_canvas3d_node.c',
- 'evas_canvas3d_camera.c',
- 'evas_canvas3d_light.c',
- 'evas_canvas3d_mesh.c',
- 'evas_canvas3d_texture.c',
- 'evas_canvas3d_material.c',
- 'evas_canvas3d_primitive.c',
- 'evas_canvas3d_node_callback.h',
- 'evas_canvas3d_eet.c',
'efl_canvas_object_animation.c',
'efl_text_cursor.c',
'efl_text_formatter.c'
diff --git a/src/lib/evas/common3d/meson.build b/src/lib/evas/common3d/meson.build
deleted file mode 100644
index 22341b4a84..0000000000
--- a/src/lib/evas/common3d/meson.build
+++ /dev/null
@@ -1,2 +0,0 @@
-subdir('primitives')
-subdir('save_load') \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/meson.build b/src/lib/evas/common3d/primitives/meson.build
deleted file mode 100644
index 2888869bf8..0000000000
--- a/src/lib/evas/common3d/primitives/meson.build
+++ /dev/null
@@ -1,5 +0,0 @@
-subdir('solids_of_revolution')
-subdir('surfaces')
-subdir('tabulated_primitives')
-
-evas_src += files(['primitive_common.c']) \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/primitive_common.c b/src/lib/evas/common3d/primitives/primitive_common.c
deleted file mode 100644
index 1bea0682c6..0000000000
--- a/src/lib/evas/common3d/primitives/primitive_common.c
+++ /dev/null
@@ -1,203 +0,0 @@
-#include "primitive_common.h"
-
-void _set_vertex_data_from_array(Evas_Canvas3D_Mesh *mesh,
- int frame,
- const float *data,
- Evas_Canvas3D_Vertex_Attrib attr,
- int start,
- int attr_count,
- int line,
- int vcount)
-{
- float *address, *out;
- int stride, i, j;
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, frame, attr, 0, NULL);
- address = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, frame, attr);
- stride = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, frame, attr);
- if (stride == 0) stride = sizeof(float) * attr_count;
- for (i = 0; i < vcount; i++)
- {
- out = (float *)((char *)address + stride * i);
- for (j = 0; j < attr_count; j++)
- out[j] = data[start + (line * i) + j];
- }
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, frame, attr);
-}
-
-void
-_set_vec3_vertex_data(Evas_Canvas3D_Mesh *mesh,
- int frame,
- int vcount,
- Eina_Vector3 *data,
- Evas_Canvas3D_Vertex_Attrib attr)
-{
- float *address, *out;
- int stride, i;
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, frame, attr, 0, NULL);
- address = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, frame, attr);
- stride = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, frame, attr);
- if (stride == 0) stride = sizeof(float) * 3;
- for (i = 0; i < vcount; i++)
- {
- out = (float *)((char *)address + stride * i);
- out[0] = data[i].x;
- out[1] = data[i].y;
- out[2] = data[i].z;
- }
- free(data);
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, frame, attr);
-}
-
-void
-_set_vec2_vertex_data(Evas_Canvas3D_Mesh *mesh,
- int frame,
- int vcount,
- Eina_Vector2 *data,
- Evas_Canvas3D_Vertex_Attrib attr)
-{
- float *address, *out;
- int stride, i;
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, frame, attr, 0, NULL);
- address = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, frame, attr);
- stride = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, frame, attr);
- if (stride == 0) stride = sizeof(float) * 2;
- for (i = 0; i < vcount; i++)
- {
- out = (float *)((char *)address + stride * i);
- out[0] = data[i].x;
- out[1] = data[i].y;
- }
- free(data);
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, frame, attr);
-}
-
-void
-_generate_indices(unsigned short *indices, int a, int b)
-{
- int i, j, a1 = a + 1;
- unsigned short *index = &indices[0];
-
- for (i = 0; i < b; i++)
- {
- for (j = 0; j < a; j++)
- {
- *index++ = j + a1 * i;
- *index++ = j + a1 * (i + 1);
- *index++ = j + 1 + a1 * (i + 1);
-
- *index++ = j + a1 * i;
- *index++ = j + 1 + a1 * i;
- *index++ = j + a1 * (i + 1) + 1;
- }
- }
-}
-
-void
-_primitives_vec3_copy(Eina_Vector3 *dst, const Eina_Vector3 *src)
-{
- dst->x = src->x;
- dst->y = src->y;
- dst->z = src->z;
-}
-
-void
-_primitives_vec3_subtract(Eina_Vector3 *out, const Eina_Vector3 *a, const Eina_Vector3 *b)
-{
- out->x = a->x - b->x;
- out->y = a->y - b->y;
- out->z = a->z - b->z;
-}
-
-void
-_primitives_vec3_cross_product(Eina_Vector3 *out, const Eina_Vector3 *a, const Eina_Vector3 *b)
-{
- Eina_Vector3 tmp;
-
- tmp.x = a->y * b->z - a->z * b->y;
- tmp.y = a->z * b->x - a->x * b->z;
- tmp.z = a->x * b->y - a->y * b->x;
-
- _primitives_vec3_copy(out, &tmp);
-}
-
-void
-_primitives_vec3_normalize(Eina_Vector3 *out)
-{
- Evas_Real size = out->x * out->x + out->y *out->y + out->z * out->z;
- size = sqrt(size);
- out->x /= size;
- out->y /= size;
- out->z /= size;
-}
-
-void
-evas_common_set_model_from_primitive(Evas_Canvas3D_Mesh *model,
- int frame,
- Evas_Canvas3D_Primitive_Data *primitive)
-{
- Evas_Real ratio = primitive->ratio;
- int precision = primitive->precision;
- Evas_Canvas3D_Surface_Func *surface = primitive->surface;
- Eina_Vector2 tex_scale = primitive->tex_scale;
- Evas_Canvas3D_Primitive_Mode mode = primitive->mode;
-
- switch (primitive->form)
- {
- case EVAS_CANVAS3D_MESH_PRIMITIVE_NONE:
- case EVAS_CANVAS3D_MESH_PRIMITIVE_COUNT:
- {
- ERR("Primitive with this type cannot be set to mesh.");
- break;
- }
- case EVAS_CANVAS3D_MESH_PRIMITIVE_SQUARE:
- {
- evas_model_set_from_square_primitive(model, frame);
- break;
- }
- case EVAS_CANVAS3D_MESH_PRIMITIVE_CUBE:
- {
- evas_model_set_from_cube_primitive(model, frame);
- break;
- }
- case EVAS_CANVAS3D_MESH_PRIMITIVE_CYLINDER:
- {
- evas_model_set_from_cylinder_primitive(model, frame, mode,
- precision, tex_scale);
- break;
- }
- case EVAS_CANVAS3D_MESH_PRIMITIVE_CONE:
- {
- evas_model_set_from_cone_primitive(model, frame, mode,
- precision, tex_scale);
- break;
- }
- case EVAS_CANVAS3D_MESH_PRIMITIVE_SPHERE:
- {
- evas_model_set_from_sphere_primitive(model, frame, mode,
- precision, tex_scale);
- break;
- }
- case EVAS_CANVAS3D_MESH_PRIMITIVE_TORUS:
- {
- evas_model_set_from_torus_primitive(model, frame,
- ratio, precision, tex_scale);
- break;
- }
- case EVAS_CANVAS3D_MESH_PRIMITIVE_SURFACE:
- {
- evas_model_set_from_surface_primitive(model, frame,
- surface, precision, tex_scale);
- break;
- }
- case EVAS_CANVAS3D_MESH_PRIMITIVE_TERRAIN:
- {
- evas_model_set_from_terrain_primitive(model, frame,
- precision, tex_scale);
- break;
- }
- default:
- {
- ERR("Unknown type of primitive");
- }
- }
-}
diff --git a/src/lib/evas/common3d/primitives/primitive_common.h b/src/lib/evas/common3d/primitives/primitive_common.h
deleted file mode 100644
index 1cf4d916fb..0000000000
--- a/src/lib/evas/common3d/primitives/primitive_common.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif //HAVE_CONFIG_H
-
-#ifndef PRIMITIVE_COMMON
-#define PRIMITIVE_COMMON
-#include "evas_options.h"
-
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-#define ALLOCATE_VERTEX_DATA \
- Eina_Vector3 *vertices = malloc(sizeof(Eina_Vector3) * vcount); \
- Eina_Vector3 *normals = malloc(sizeof(Eina_Vector3) * vcount); \
- Eina_Vector2 *tex_coord = malloc(sizeof(Eina_Vector2) * vcount); \
- Eina_Vector3 *tangents = malloc(sizeof(Eina_Vector3) * vcount); \
- unsigned short *indices = malloc(sizeof(short) * icount);
-
-#define SET_VERTEX_DATA(frame) \
- Eina_Bool frame_exist; \
- frame_exist = evas_canvas3d_mesh_frame_exist(mesh, frame); \
- if (!frame_exist) \
- evas_canvas3d_mesh_frame_add(mesh, frame); \
- evas_canvas3d_mesh_vertex_count_set(mesh, vcount); \
- evas_canvas3d_mesh_index_data_copy_set(mesh, EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT, \
- icount, &indices[0]); \
- _set_vec3_vertex_data(mesh, frame, vcount, vertices, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION); \
- _set_vec3_vertex_data(mesh, frame, vcount, normals, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL); \
- _set_vec2_vertex_data(mesh, frame, vcount, tex_coord, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD); \
- _set_vec3_vertex_data(mesh, frame, vcount, tangents, EVAS_CANVAS3D_VERTEX_ATTRIB_TANGENT); \
- free(indices);
-
-#define SET_VERTEX_DATA_FROM_ARRAY(mesh, frame, varray, vcount, indices, icount) \
- Eina_Bool frame_exist; \
- frame_exist = evas_canvas3d_mesh_frame_exist(mesh, frame); \
- if (!frame_exist) \
- evas_canvas3d_mesh_frame_add(mesh, frame); \
- evas_canvas3d_mesh_vertex_count_set(mesh, vcount); \
- evas_canvas3d_mesh_index_data_copy_set(mesh, EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT, \
- icount, &indices[0]); \
- _set_vertex_data_from_array(mesh, frame, varray, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, \
- 0, 3, 15, vcount); \
- _set_vertex_data_from_array(mesh, frame, varray, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL, \
- 3, 3, 15, vcount); \
- _set_vertex_data_from_array(mesh, frame, varray, EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR, \
- 6, 4, 15, vcount); \
- _set_vertex_data_from_array(mesh, frame, varray, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD, \
- 10, 2, 15, vcount); \
- _set_vertex_data_from_array(mesh, frame, varray, EVAS_CANVAS3D_VERTEX_ATTRIB_TANGENT, \
- 12, 3, 15, vcount);
-
-void _generate_indices(unsigned short *indices, int count, int width);
-void _set_vec3_vertex_data(Evas_Canvas3D_Mesh *mesh, int frame, int vcount, Eina_Vector3 *data, Evas_Canvas3D_Vertex_Attrib attr);
-void _set_vec2_vertex_data(Evas_Canvas3D_Mesh *mesh, int frame, int vcount, Eina_Vector2 *data, Evas_Canvas3D_Vertex_Attrib attr);
-void _set_vertex_data_from_array(Evas_Canvas3D_Mesh *mesh, int frame, const float *data, Evas_Canvas3D_Vertex_Attrib attr, int start, int attr_count, int line, int vcount);
-
-void _primitives_vec3_copy(Eina_Vector3 *dst, const Eina_Vector3 *src);
-void _primitives_vec3_subtract(Eina_Vector3 *out, const Eina_Vector3 *a, const Eina_Vector3 *b);
-void _primitives_vec3_cross_product(Eina_Vector3 *out, const Eina_Vector3 *a, const Eina_Vector3 *b);
-void _primitives_vec3_normalize(Eina_Vector3 *out);
-
-#endif //PRIMITIVE_COMMON
diff --git a/src/lib/evas/common3d/primitives/solids_of_revolution/cone.c b/src/lib/evas/common3d/primitives/solids_of_revolution/cone.c
deleted file mode 100644
index a2852bb374..0000000000
--- a/src/lib/evas/common3d/primitives/solids_of_revolution/cone.c
+++ /dev/null
@@ -1,140 +0,0 @@
-#include "../primitive_common.h"
-
-void
-_set_default_cone(Evas_Canvas3D_Mesh *mesh,
- int frame,
- int p,
- Eina_Vector2 tex_scale)
-{
- int vcount, icount, vccount, i, j, num;
- double dfi, fi, sinfi, cosfi, nplane, nz;
-
- icount = p * 18;
- vccount = p + 1;
- vcount = 4 * vccount;
-
- dfi = 2.0 * M_PI / p;
- nz = sqrt(1.0 / 3.0);
- nplane = sqrt(2.0 / 3.0);
-
- ALLOCATE_VERTEX_DATA
-
- for (i = 0; i < vccount; i++)
- {
- fi = i * dfi;
- sinfi = sin(fi);
- cosfi = cos(fi);
-
- vertices[i].x = 0.0;
- vertices[i].y = 0.0;
- vertices[i].z = -0.5;
- vertices[i + vccount].x = sinfi / 2.0;
- vertices[i + vccount].y = cosfi / 2.0;
- vertices[i + vccount].z = -0.5;
- vertices[i + 2 * vccount] = vertices[i + vccount];
- vertices[i + 3 * vccount].x = 0.0;
- vertices[i + 3 * vccount].y = 0.0;
- vertices[i + 3 * vccount].z = 0.5;
-
- normals[i].x = normals[i].y = 0.0;
- normals[i].z = -1.0;
- normals[i + vccount] = normals[i];
- normals[i + 2 * vccount].x = sinfi * nplane;
- normals[i + 2 * vccount].y = cosfi * nplane;
- normals[i + 2 * vccount].z = nz;
- normals[i + 3 * vccount] = normals[i + 2 * vccount];
-
- for (j = 0; j < 4; j++)
- {
- num = i + j * vccount;
-
- tangents[num].x = cosfi;
- tangents[num].y = -sinfi;
- tangents[num].z = 0.0;
-
- tex_coord[num].x = i / (float)(vccount - 1) * tex_scale.x;
- tex_coord[num].y = ((j + 1) / 2.0) * tex_scale.y / 2.0;
- }
- }
-
- _generate_indices(indices, p, 3);
-
- SET_VERTEX_DATA(frame)
-}
-
-void
-_set_cone_without_base(Evas_Canvas3D_Mesh *mesh,
- int frame,
- int p,
- Eina_Vector2 tex_scale)
-{
- int vcount, icount, vccount, i;
- double dfi, fi, sinfi, cosfi, nplane, nz;
-
- icount = p * 6;
- vccount = p + 1;
- vcount = 2 * vccount;
-
- dfi = 2.0 * M_PI / p;
- nz = sqrt(1.0 / 3.0);
- nplane = sqrt(2.0 / 3.0);
-
- ALLOCATE_VERTEX_DATA
-
- for (i = 0; i < vccount; i++)
- {
- fi = i * dfi;
- sinfi = sin(fi);
- cosfi = cos(fi);
- vertices[i].x = sinfi / 2.0;
- vertices[i].y = cosfi / 2.0;
- vertices[i].z = -0.5;
- vertices[i + vccount].x = 0;
- vertices[i + vccount].y = 0;
- vertices[i + vccount].z = 0.5;
-
- normals[i + vccount].x = normals[i].x = sinfi * nplane;
- normals[i + vccount].y = normals[i].y = cosfi * nplane;
- normals[i + vccount].z = normals[i].z = nz;
-
- tangents[i + vccount].x = tangents[i].x = cosfi;
- tangents[i + vccount].y = tangents[i].y = -sinfi;
- tangents[i + vccount].z = tangents[i].z = 0;
-
- tex_coord[i].x = i / (float)(vccount - 1) * tex_scale.x;
- tex_coord[i].y = 0;
- tex_coord[i + vccount].x = tex_coord[i].x;
- tex_coord[i + vccount].y = tex_scale.y;
- }
-
- _generate_indices(indices, p, 1);
-
- SET_VERTEX_DATA(frame)
-}
-
-void
-evas_model_set_from_cone_primitive(Evas_Canvas3D_Mesh *mesh,
- int frame,
- Evas_Canvas3D_Primitive_Mode mode,
- int p,
- Eina_Vector2 tex_scale)
-{
- switch (mode)
- {
- case EVAS_CANVAS3D_PRIMITIVE_MODE_DEFAULT:
- case EVAS_CANVAS3D_PRIMITIVE_MODE_ALTERNATIVE_UV:
- {
- _set_default_cone(mesh, frame, p, tex_scale);
- break;
- }
- case EVAS_CANVAS3D_PRIMITIVE_MODE_WITHOUT_BASE:
- {
- _set_cone_without_base(mesh, frame, p, tex_scale);
- break;
- }
- default:
- {
- ERR("Unknown mode of primitive");
- }
- }
-}
diff --git a/src/lib/evas/common3d/primitives/solids_of_revolution/cylinder.c b/src/lib/evas/common3d/primitives/solids_of_revolution/cylinder.c
deleted file mode 100644
index fc0d3d1d92..0000000000
--- a/src/lib/evas/common3d/primitives/solids_of_revolution/cylinder.c
+++ /dev/null
@@ -1,136 +0,0 @@
-#include "../primitive_common.h"
-
-void
-_set_default_cylinder(Evas_Canvas3D_Mesh *mesh,
- int frame,
- int p,
- Eina_Vector2 tex_scale)
-{
- int vcount, icount, vccount, i, j, num;
- icount = p * 30;
- vccount = p + 1;
- vcount = 6 * vccount;
-
- ALLOCATE_VERTEX_DATA
-
- double dfi, fi, sinfi, cosfi;
- dfi = 2 * M_PI / p;
-
- for (i = 0; i < vccount; i++)
- {
- fi = i * dfi;
- sinfi = sin(fi);
- cosfi = cos(fi);
-
- for (j = 0; j < 6; j++)
- {
- num = i + j * vccount;
-
- vertices[num].z = -0.5 + j / 3.0;
- if ((j == 0) || (j == 5))
- {
- vertices[num].x = vertices[num].y = 0.0;
- }
- else
- {
- vertices[num].x = sinfi / 2.0;
- vertices[num].y = cosfi / 2.0;
- }
-
- if ((j == 2) || (j == 3))
- {
- normals[num].x = sinfi;
- normals[num].y = cosfi;
- normals[num].z = 0.0;
- }
- else
- {
- normals[num].x = normals[num].y = 0.0;
- normals[num].z = -1.0 + j / 2.0;
- }
-
- tangents[num].x = cosfi;
- tangents[num].y = -sinfi;
- tangents[num].z = 0.0;
-
- tex_coord[num].x = i / (float)(vccount - 1) * tex_scale.x;
- tex_coord[num].y = ((j + 1) / 2.0) * tex_scale.y / 3.0;
- }
- }
-
- _generate_indices(indices, p, 5);
-
- SET_VERTEX_DATA(frame)
-}
-
-void
-_set_cylinder_without_bases(Evas_Canvas3D_Mesh *mesh,
- int frame,
- int p,
- Eina_Vector2 tex_scale)
-{
- int vcount, icount, vccount, i;
- icount = p * 6;
- vccount = p + 1;
- vcount = 2 * vccount;
-
- ALLOCATE_VERTEX_DATA
-
- double dfi, fi, sinfi, cosfi;
- dfi = 2 * M_PI / p;
-
- for (i = 0; i < vccount; i++)
- {
- fi = i * dfi;
- sinfi = sin(fi);
- cosfi = cos(fi);
- vertices[i + vccount].x = vertices[i].x = sinfi / 2.0;
- vertices[i + vccount].y = vertices[i].y = cosfi / 2.0;
- vertices[i].z = -0.5;
- vertices[i + vccount].z = 0.5;
-
- normals[i + vccount].x = normals[i].x = sinfi;
- normals[i + vccount].y = normals[i].y = cosfi;
- normals[i + vccount].z = normals[i].z = 0;
-
- tangents[i + vccount].x = tangents[i].x = cosfi;
- tangents[i + vccount].y = tangents[i].y = -sinfi;
- tangents[i + vccount].z = tangents[i].z = 0;
-
- tex_coord[i].x = i / (float)(vccount - 1) * tex_scale.x;
- tex_coord[i].y = 0;
- tex_coord[i + vccount].x = i / (float)(vccount - 1) * tex_scale.x;
- tex_coord[i + vccount].y = tex_scale.y;
- }
-
- _generate_indices(indices, p, 1);
-
- SET_VERTEX_DATA(frame)
-}
-
-void
-evas_model_set_from_cylinder_primitive(Evas_Canvas3D_Mesh *mesh,
- int frame,
- Evas_Canvas3D_Primitive_Mode mode,
- int p,
- Eina_Vector2 tex_scale)
-{
- switch (mode)
- {
- case EVAS_CANVAS3D_PRIMITIVE_MODE_DEFAULT:
- case EVAS_CANVAS3D_PRIMITIVE_MODE_ALTERNATIVE_UV:
- {
- _set_default_cylinder(mesh, frame, p, tex_scale);
- break;
- }
- case EVAS_CANVAS3D_PRIMITIVE_MODE_WITHOUT_BASE:
- {
- _set_cylinder_without_bases(mesh, frame, p, tex_scale);
- break;
- }
- default:
- {
- ERR("Unknown mode of primitive");
- }
- }
-}
diff --git a/src/lib/evas/common3d/primitives/solids_of_revolution/meson.build b/src/lib/evas/common3d/primitives/solids_of_revolution/meson.build
deleted file mode 100644
index ac35b05093..0000000000
--- a/src/lib/evas/common3d/primitives/solids_of_revolution/meson.build
+++ /dev/null
@@ -1,6 +0,0 @@
-evas_src += files([
- 'cone.c',
- 'cylinder.c',
- 'sphere.c',
- 'torus.c'
-]) \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/solids_of_revolution/sphere.c b/src/lib/evas/common3d/primitives/solids_of_revolution/sphere.c
deleted file mode 100644
index f2e81b0bf5..0000000000
--- a/src/lib/evas/common3d/primitives/solids_of_revolution/sphere.c
+++ /dev/null
@@ -1,189 +0,0 @@
-#include "../primitive_common.h"
-
-void
-_set_default_sphere(Evas_Canvas3D_Mesh *mesh,
- int frame,
- int p,
- Eina_Vector2 tex_scale)
-{
- int vcount, icount, vccount, i, j;
- icount = p * p * 6;
- vccount = p + 1;
- vcount = vccount * vccount;
-
- ALLOCATE_VERTEX_DATA
-
- double dtheta, dfi, sinth, costh, fi, theta, sinfi, cosfi;
- dtheta = M_PI / p;
- dfi = 2 * M_PI / p;
-
- for (j = 0; j < vccount; j++)
- {
- theta = j * dtheta;
- sinth = sin(theta);
- costh = cos(theta);
- for (i = 0; i < vccount; i++)
- {
- fi = i * dfi;
- sinfi = sin(fi);
- cosfi = cos(fi);
- normals[i + j * vccount].x = sinth * sinfi;
- normals[i + j * vccount].y = sinth * cosfi;
- normals[i + j * vccount].z = costh;
-
- vertices[i + j * vccount].x = normals[i + j * vccount].x / 2;
- vertices[i + j * vccount].y = normals[i + j * vccount].y / 2;
- vertices[i + j * vccount].z = normals[i + j * vccount].z / 2;
-
- tangents[i + j * vccount].x = -sinth * cosfi;
- tangents[i + j * vccount].y = sinth * sinfi;
- tangents[i + j * vccount].z = 0;
-
- _primitives_vec3_normalize(&tangents[i + j * vccount]);
-
- tex_coord[i + j * vccount].x = i / (float)(vccount - 1) * tex_scale.x;
- tex_coord[i + j *vccount].y = tex_scale.y - j / (float)(vccount - 1) * tex_scale.y;
- }
- }
-
- _generate_indices(indices, p, p);
-
- SET_VERTEX_DATA(frame)
-}
-
-void
-_set_sphere_with_alternative_uv(Evas_Canvas3D_Mesh *mesh,
- int frame,
- int p,
- Eina_Vector2 tex_scale)
-{
- int vcount, icount, vccount, i, j;
-
- vccount = p + 1;
- vcount = vccount * vccount;
- icount = p * p * 6;
-
- ALLOCATE_VERTEX_DATA
-
- /* Calculate vertices position of the sphere mesh by using
- splitting of sphere by latitude and longitude. */
- for (i = 0; i <= p; i++)
- {
- double lati, z, r, point_r;
-
- point_r = 0.00001;//non-zero little value for correct tangents calculation.
-
- lati = ((M_PI - 2 * point_r) * (double)i) / (double)p;
- z = cos(lati + point_r);
- r = fabs(sin(lati + point_r));
-
- for (j = 0; j <= p; j++)
- {
- double longi;
- int num = (i * (p + 1)) + j;
-
- longi = (M_PI * 2.0 * (double)j) / (double)p;
-
- normals[num].x = r * sin(longi);
- normals[num].y = r * cos(longi);
- normals[num].z = z;
-
- vertices[num].x = normals[num].x / 2;
- vertices[num].y = normals[num].y / 2;
- vertices[num].z = normals[num].z / 2;
-
- if (vertices[num].x > 0.0)
- {
- tangents[num].x = -normals[num].z;
- tangents[num].y = normals[num].y;
- tangents[num].z = normals[num].x;
- }
- else
- {
- tangents[num].x = normals[num].z;
- tangents[num].y = normals[num].y;
- tangents[num].z = -normals[num].x;
- }
-
- tex_coord[num].x = i / (float)(vccount - 1) * tex_scale.x;
- tex_coord[num].y = tex_scale.y - j / (float)(vccount - 1) * tex_scale.y;
- }
- }
-
- _generate_indices(indices, p, p);
-
- /* Triangulation of sphere mesh in appliance with buffer of indices. */
- for (i = 0; i < icount; i += 3)
- {
- Eina_Vector3 e1, e2;
- float du1, du2, dv1, dv2, f;
- Eina_Vector3 tangent;
- int num0, num1, num2;
-
- num0 = indices[i + 0];
- num1 = indices[i + 1];
- num2 = indices[i + 2];
-
- e1.x = vertices[num1].x - vertices[num0].x;
- e1.y = vertices[num1].y - vertices[num0].y;
- e1.z = vertices[num1].z - vertices[num0].z;
-
- e2.x = vertices[num2].x - vertices[num0].x;
- e2.y = vertices[num2].y - vertices[num0].y;
- e2.z = vertices[num2].z - vertices[num0].z;
-
- du1 = tex_coord[num1].x - tex_coord[num0].x;
- dv1 = tex_coord[num1].y - tex_coord[num0].y;
-
- du2 = tex_coord[num2].x - tex_coord[num0].x;
- dv2 = tex_coord[num2].y - tex_coord[num0].y;
-
- f = 1.0 / ((du1 * dv2) - (du2 * dv1));
-
- tangent.x = f * ((dv2 * e1.x) - (dv1 * e2.x));
- tangent.y = f * ((dv2 * e1.y) - (dv1 * e2.y));
- tangent.z = f * ((dv2 * e1.z) - (dv1 * e2.z));
-
- tangents[num0] = tangent;
- }
-
- /* Coupling between vertices by calculation of tangent parametr correct value. */
- for (i = 0; i <= p; i++)
- {
- for (j = 0; j <= p; j++)
- {
- if (j == p)
- {
- tangents[(i * (p + 1)) + j] = tangents[i * (p + 1)];
- }
- }
- }
- SET_VERTEX_DATA(frame)
-}
-
-void
-evas_model_set_from_sphere_primitive(Evas_Canvas3D_Mesh *mesh,
- int frame,
- Evas_Canvas3D_Primitive_Mode mode,
- int p,
- Eina_Vector2 tex_scale)
-{
- switch (mode)
- {
- case EVAS_CANVAS3D_PRIMITIVE_MODE_DEFAULT:
- case EVAS_CANVAS3D_PRIMITIVE_MODE_WITHOUT_BASE:
- {
- _set_default_sphere(mesh, frame, p, tex_scale);
- break;
- }
- case EVAS_CANVAS3D_PRIMITIVE_MODE_ALTERNATIVE_UV:
- {
- _set_sphere_with_alternative_uv(mesh, frame, p, tex_scale);
- break;
- }
- default:
- {
- ERR("Unknown mode of primitive");
- }
- }
-}
diff --git a/src/lib/evas/common3d/primitives/solids_of_revolution/torus.c b/src/lib/evas/common3d/primitives/solids_of_revolution/torus.c
deleted file mode 100644
index 99016c620a..0000000000
--- a/src/lib/evas/common3d/primitives/solids_of_revolution/torus.c
+++ /dev/null
@@ -1,67 +0,0 @@
-#include "../primitive_common.h"
-
-void
-evas_model_set_from_torus_primitive(Evas_Canvas3D_Mesh *mesh,
- int frame,
- Evas_Real ratio,
- int p,
- Eina_Vector2 tex_scale)
-{
- int vcount, icount, vccount, i, j;
- icount = p * p * 6;
- vccount = p + 1;
- vcount = vccount * vccount;
-
- ALLOCATE_VERTEX_DATA
-
- double d, sinth, costh, fi, theta, sinfi, cosfi;
-
- d = 2 * M_PI / p;
-
- float rratio;
-
- if ((ratio < 1.0))
- {
- printf("Ratio of torus should be greater than or equal 1.0.\n");
- printf("Ratio = %f is a bad value, so 3.0 is used like default ratio.\n",
- ratio);
- rratio = 1.0 / 3.0;
- }
- else
- {
- rratio = 1.0 / ratio;
- }
-
- for (j = 0; j < vccount; j++)
- {
- theta = j * d;
- sinth = sin(theta);
- costh = cos(theta);
- for (i = 0; i < vccount; i++)
- {
- fi = i * d;
- sinfi = sin(fi);
- cosfi = cos(fi);
- vertices[i + j * vccount].x = (1.0 - rratio + rratio * cosfi) * costh * 0.5;
- vertices[i + j * vccount].y = (1.0 - rratio + rratio * cosfi) * sinth * 0.5;
- vertices[i + j * vccount].z = rratio * sinfi * 0.5;
-
- normals[i + j * vccount].x = cosfi * costh;
- normals[i + j * vccount].y = cosfi * sinth;
- normals[i + j * vccount].z = sinfi;
-
- tangents[i + j * vccount].x = -sinfi * costh;
- tangents[i + j * vccount].y = -sinfi * sinth;
- tangents[i + j * vccount].z = cosfi;
-
- _primitives_vec3_normalize(&normals[i + j * vccount]);
-
- tex_coord[i + j * vccount].x = i / (float)(vccount - 1) * tex_scale.x;
- tex_coord[i + j *vccount].y = tex_scale.y - j / (float)(vccount - 1) * tex_scale.y;
- }
- }
-
- _generate_indices(indices, p, p);
-
- SET_VERTEX_DATA(frame)
-}
diff --git a/src/lib/evas/common3d/primitives/surfaces/meson.build b/src/lib/evas/common3d/primitives/surfaces/meson.build
deleted file mode 100644
index 398996f148..0000000000
--- a/src/lib/evas/common3d/primitives/surfaces/meson.build
+++ /dev/null
@@ -1,4 +0,0 @@
-evas_src += files([
- 'surface.c',
- 'terrain.c'
-]) \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/surfaces/surface.c b/src/lib/evas/common3d/primitives/surfaces/surface.c
deleted file mode 100644
index 7698ba5fb6..0000000000
--- a/src/lib/evas/common3d/primitives/surfaces/surface.c
+++ /dev/null
@@ -1,91 +0,0 @@
-#include "../primitive_common.h"
-
-Eina_Vector3 _get_func_normal(Evas_Canvas3D_Surface_Func *func, Evas_Real x, Evas_Real y)
-{
- Eina_Vector3 v00, v01, v10, d1, d2, normal;
-
- func(&v00.x, &v00.y, &v00.z, x, y);
- func(&v01.x, &v01.y, &v01.z, x, y + 0.01);
- func(&v10.x, &v10.y, &v10.z, x + 0.01, y);
- _primitives_vec3_subtract(&d1, &v00, &v01);
- _primitives_vec3_subtract(&d2, &v01, &v10);
-
- _primitives_vec3_cross_product(&normal, &d1, &d2);
-
- _primitives_vec3_normalize(&normal);
-
- return normal;
-}
-
-void
-_normalize(Eina_Vector3 *vertices, Eina_Vector3 *normals, int vcount)
-{
- int i;
- Eina_Vector3 min, max;
- min = max = vertices[0];
-
-#define CHECK_MIN_AND_MAX(coord) \
- if (min.coord > vertices[i].coord) \
- min.coord = vertices[i].coord; \
- else if (max.coord < vertices[i].coord) \
- max.coord = vertices[i].coord;
- for (i = 1; i < vcount; i++)
- {
- CHECK_MIN_AND_MAX(x)
- CHECK_MIN_AND_MAX(y)
- CHECK_MIN_AND_MAX(z)
- }
-#undef CHECK_MIN_AND_MAX
-
- for (i = 0; i < vcount; i++)
- {
- vertices[i].x = (vertices[i].x - min.x) / (max.x - min.x) - 0.5;
- vertices[i].y = (vertices[i].y - min.y) / (max.y - min.y) - 0.5;
- vertices[i].z = (vertices[i].z - min.z) / (max.z - min.z) - 0.5;
-
- normals[i].x = normals[i].x / (max.x - min.x);
- normals[i].y = normals[i].y / (max.y - min.y);
- normals[i].z = normals[i].z / (max.z - min.z);
- }
-}
-
-void
-evas_model_set_from_surface_primitive(Evas_Canvas3D_Mesh *mesh,
- int frame,
- Evas_Canvas3D_Surface_Func func,
- int p,
- Eina_Vector2 tex_scale)
-{
- int vcount, icount, vccount, i, j, num;
- icount = p * p * 6;
- vccount = p + 1;
- vcount = vccount * vccount;
-
- ALLOCATE_VERTEX_DATA
-
- Evas_Real v, u, d = 1.0 / p;
-
- for (j = 0; j < vccount; j++)
- {
- u = j * d - 0.5;
- for (i = 0; i < vccount; i++)
- {
- v = i * d - 0.5;
- num = i + j * vccount;
- func(&vertices[num].x,
- &vertices[num].y,
- &vertices[num].z,
- v, u);
- normals[num] = _get_func_normal(func, v, u);
-
- tangents[num].x = tangents[num].y = tangents[num].z = 0;
-
- tex_coord[num].x = i / ((vccount - 1) * tex_scale.x);
- tex_coord[num].y = tex_scale.y - j / ((vccount - 1) * tex_scale.y);
- }
- }
-
- _normalize(vertices, normals, vcount);
- _generate_indices(indices, p, p);
- SET_VERTEX_DATA(frame)
-}
diff --git a/src/lib/evas/common3d/primitives/surfaces/terrain.c b/src/lib/evas/common3d/primitives/surfaces/terrain.c
deleted file mode 100644
index 1f83c089ef..0000000000
--- a/src/lib/evas/common3d/primitives/surfaces/terrain.c
+++ /dev/null
@@ -1,86 +0,0 @@
-#include "../primitive_common.h"
-
-static Evas_Real
-_random(int x, int y)
-{
- int k = x + y * 57;
- k = (k << 13) ^ k;
- return (1.0f - ((k * (k * k * 15731 + 789221) + 1376312589) & 0x7fffffff) /
- 1073741824.0f);
-}
-
-static Evas_Real
-_smooth(Evas_Real x, Evas_Real y)
-{
- Evas_Real res;
- res = (_random(x - 1, y - 1) + _random(x + 1, y - 1) +
- _random(x - 1, y + 1) + _random(x + 1, y + 1)) / 16;
- res += (_random(x - 1, y) + _random(x + 1, y) +
- _random(x, y - 1) + _random(x, y + 1)) / 8;
- res += _random(x, y) / 4;
- return res;
-}
-
-static Evas_Real
-_interpolate(Evas_Real a, Evas_Real b, Evas_Real x)
-{
- Evas_Real ft = x * M_PI;
- Evas_Real f = (1 - cosf(ft)) * 0.5;
- return a * (1 - f) + b * f;
-}
-
-static Evas_Real _noise(Evas_Real x, Evas_Real y)
-{
- Evas_Real ix = (int)(x);
- Evas_Real fx = x - ix;
- Evas_Real iy = (int)(y);
- Evas_Real fy = y - iy;
-
- Evas_Real v1 = _smooth(ix, iy);
- Evas_Real v2 = _smooth(ix + 1, iy);
- Evas_Real v3 = _smooth(ix, iy + 1);
- Evas_Real v4 = _smooth(ix + 1, iy + 1);
-
- Evas_Real i1 = _interpolate(v1, v2, fx);
- Evas_Real i2 = _interpolate(v3, v4, fx);
-
- return _interpolate(i1, i2, fy);
-}
-
-static void
-_perlin_terrain(Evas_Real *out_x,
- Evas_Real *out_y,
- Evas_Real *out_z,
- Evas_Real x,
- Evas_Real y)
-{
- Evas_Real persistence = 0.5f;
- Evas_Real frequency = 5;
- Evas_Real amplitude = 1;
- int i = 0;
- int octaves = 5;
-
- *out_x = x;
- x += 0.5;
- *out_y = y;
- y += 0.5;
- *out_z = 0;
-
- for(i = 0; i < octaves; i++)
- {
- *out_z += _noise(x * frequency, y * frequency) * amplitude;
-
- amplitude *= persistence;
- frequency *= 2;
- }
-}
-
-void
-evas_model_set_from_terrain_primitive(Evas_Canvas3D_Mesh *mesh,
- int frame,
- int p,
- Eina_Vector2 tex_scale)
-{
- evas_model_set_from_surface_primitive(mesh, frame, _perlin_terrain, p, tex_scale);
-}
-
diff --git a/src/lib/evas/common3d/primitives/tabulated_primitives/cube.c b/src/lib/evas/common3d/primitives/tabulated_primitives/cube.c
deleted file mode 100644
index 85d49beaaa..0000000000
--- a/src/lib/evas/common3d/primitives/tabulated_primitives/cube.c
+++ /dev/null
@@ -1,57 +0,0 @@
-#include "../primitive_common.h"
-
-const float vertices_of_cube[] =
-{
- /* positions normals vertex_color tex_coords tangents */
- /* Front */
- 0.5, -0.5, 0.5, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, -1.0, 0.0, 0.0,
- -0.5, -0.5, 0.5, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, -1.0, 0.0, 0.0,
- -0.5, -0.5, -0.5, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 0.0, 0.0,
- 0.5, -0.5, -0.5, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, -1.0, 0.0, 0.0,
-
- /* Left */
- -0.5, -0.5, 0.5, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0,
- -0.5, 0.5, 0.5, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0,
- -0.5, 0.5, -0.5, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0,
- -0.5, -0.5, -0.5, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0,
-
- /* Back */
- -0.5, 0.5, 0.5, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,
- 0.5, 0.5, 0.5, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0,
- 0.5, 0.5, -0.5, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0,
- -0.5, 0.5, -0.5, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0,
-
- /* Right */
- 0.5, 0.5, 0.5, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, -1.0,
- 0.5, -0.5, 0.5, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, -1.0,
- 0.5, -0.5, -0.5, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, -1.0,
- 0.5, 0.5, -0.5, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, -1.0,
-
- /* Top */
- -0.5, -0.5, 0.5, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,
- -0.5, 0.5, 0.5, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0,
- 0.5, 0.5, 0.5, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0,
- 0.5, -0.5, 0.5, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0,
-
- /* Bottom */
- -0.5, -0.5, -0.5, 0.0, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, -1.0, 0.0, 0.0,
- -0.5, 0.5, -0.5, 0.0, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, -1.0, 0.0, 0.0,
- 0.5, 0.5, -0.5, 0.0, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, -1.0, 0.0, 0.0,
- 0.5, -0.5, -0.5, 0.0, 0.0, -1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, -1.0, 0.0, 0.0,
-};
-
-const unsigned short indices_of_cube[] =
-{
- 0, 1, 2, 6, 7, 4,
- 4, 5, 6, 10, 11, 8,
- 8, 9, 10, 14, 15, 12,
- 12, 13, 14, 2, 3, 0,
- 19, 16, 17, 17, 18, 19,
- 23, 20, 21, 21, 22, 23
-};
-
-void
-evas_model_set_from_cube_primitive(Evas_Canvas3D_Mesh *mesh, int frame)
-{
- SET_VERTEX_DATA_FROM_ARRAY(mesh, frame, vertices_of_cube, 24, indices_of_cube, 36)
-}
diff --git a/src/lib/evas/common3d/primitives/tabulated_primitives/meson.build b/src/lib/evas/common3d/primitives/tabulated_primitives/meson.build
deleted file mode 100644
index a24df304d1..0000000000
--- a/src/lib/evas/common3d/primitives/tabulated_primitives/meson.build
+++ /dev/null
@@ -1,4 +0,0 @@
-evas_src += files([
- 'cube.c',
- 'square.c'
-]) \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/tabulated_primitives/square.c b/src/lib/evas/common3d/primitives/tabulated_primitives/square.c
deleted file mode 100644
index e34e2b0dbb..0000000000
--- a/src/lib/evas/common3d/primitives/tabulated_primitives/square.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "../primitive_common.h"
-
-const float vertices_of_square[] =
-{
- /* positions normals vertex_color tex_coords tangents */
- -0.5, 0.5, 0.0, 0.0, 0.0, -1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0,
- 0.5, 0.5, 0.0, 0.0, 0.0, -1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0,
- -0.5, -0.5, 0.0, 0.0, 0.0, -1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0,
- 0.5, -0.5, 0.0, 0.0, 0.0, -1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0,
-};
-
-const unsigned short indices_of_square[] = {0, 1, 2, 2, 1, 3};
-
-void
-evas_model_set_from_square_primitive(Evas_Canvas3D_Mesh *mesh, int frame)
-{
- SET_VERTEX_DATA_FROM_ARRAY(mesh, frame, vertices_of_square, 4, indices_of_square, 6)
-}
diff --git a/src/lib/evas/common3d/save_load/evas_model_load.c b/src/lib/evas/common3d/save_load/evas_model_load.c
deleted file mode 100644
index 7987140d53..0000000000
--- a/src/lib/evas/common3d/save_load/evas_model_load.c
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include "evas_options.h"
-
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-void
-_evas_common_load_model(Evas_Canvas3D_Mesh *model,
- Eina_File *file,
- const char *file_path)
-{
- char *p;
- char *loader_type = NULL;
-
- p = strrchr(file_path, '.');
- if (p)
- {
- p++;
-#define CHECK_EXTENTION_BY_FILE_NAME(extention) \
- if (!strcasecmp(p, #extention)) \
- { \
- evas_model_load_file_##extention(model, file); \
- loader_type = #extention; \
- }
- CHECK_EXTENTION_BY_FILE_NAME(eet)
- CHECK_EXTENTION_BY_FILE_NAME(md2)
- CHECK_EXTENTION_BY_FILE_NAME(obj)
- CHECK_EXTENTION_BY_FILE_NAME(ply)
-#undef CHECK_EXTENTION_BY_FILE_NAME
- }
- if (!loader_type) ERR("Invalid mesh file type.");
-}
-
-void
-evas_common_load_model_from_file(Evas_Canvas3D_Mesh *model, const char *file)
-{
- Eina_File *tmp_file = eina_file_open(file, 0);
-
- if (tmp_file == NULL)
- {
- ERR("Failed to open file %s", file);
- ERR("Failed to initialize loader.");
- return;
- }
-
- Eina_File *e_file = eina_file_dup(tmp_file);
-
- if (e_file == NULL)
- {
- eina_file_close(tmp_file);
- file = NULL;
- ERR("Failed to initialize loader.");
- return;
- }
-
- eina_file_close(tmp_file);
-
- _evas_common_load_model(model, e_file, file);
-
- eina_file_close(e_file);
- e_file = NULL;
-}
-
-void
-evas_common_load_model_from_eina_file(Evas_Canvas3D_Mesh *model, const Eina_File *file)
-{
- Eina_File *e_file = eina_file_dup(file);
-
- if (e_file == NULL)
- {
- ERR("Failed to initialize loader.");
- return;
- }
-
- _evas_common_load_model(model, e_file, eina_file_filename_get(e_file));
-
- eina_file_close(e_file);
- e_file = NULL;
-}
diff --git a/src/lib/evas/common3d/save_load/evas_model_load_save_common.c b/src/lib/evas/common3d/save_load/evas_model_load_save_common.c
deleted file mode 100644
index 309b8435cc..0000000000
--- a/src/lib/evas/common3d/save_load/evas_model_load_save_common.c
+++ /dev/null
@@ -1,230 +0,0 @@
-#include "evas_model_load_save_common.h"
-
-# define SAVE_MESH_INDICES_COPY \
- if (header.indices_count) \
- { \
- data->indices = malloc(header.indices_count \
- * sizeof(unsigned short)); \
- if (pd->index_format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_BYTE) \
- { \
- for (i = 0; i < header.indices_count; i++) \
- data->indices[i] = ((unsigned char*)(pd->indices))[i]; \
- } \
- else \
- { \
- for (i = 0; i < header.indices_count; i++) \
- data->indices[i] = ((unsigned short*)(pd->indices))[i]; \
- } \
- } \
- else \
- { \
- data->indices = malloc(header.vertices_count * 3 \
- * sizeof(unsigned short)); \
- for (i = 0; i < header.vertices_count * 3; i++) \
- data->indices[i] = (unsigned short)i; \
- }
-
-/* create new header */
-Evas_Model_Load_Save_Header
-evas_model_load_save_header_new(void)
-{
- Evas_Model_Load_Save_Header header;
-
- header.vertices_count = 0;
- header.indices_count = 0;
- header.existence_of_positions = EINA_FALSE;
- header.existence_of_normals = EINA_FALSE;
- header.existence_of_tex_coords = EINA_FALSE;
- header.existence_of_colors = EINA_FALSE;
-
- return header;
-}
-
-void
-evas_model_load_vertex_data_unmap(Evas_Canvas3D_Mesh *mesh,
- int frame,
- Evas_Model_Load_Save_Header header)
-{
-#define UNMAP_IF_EXIST(existence, vertex_data_type) \
- if (existence) \
- { \
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, frame, \
- vertex_data_type); \
- }
- UNMAP_IF_EXIST(header.existence_of_positions, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION)
- UNMAP_IF_EXIST(header.existence_of_normals, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL)
- UNMAP_IF_EXIST(header.existence_of_tex_coords, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD)
- UNMAP_IF_EXIST(header.existence_of_colors, EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR)
-#undef UNMAP_IF_EXIST
-}
-
-void
-evas_model_load_save_data_free(Evas_Model_Load_Save_Header header,
- Evas_Model_Load_Save_Data *data)
-{
- if (header.existence_of_positions) free(data->positions);
- if (header.existence_of_normals) free(data->normals);
- if (header.existence_of_tex_coords) free(data->tex_coords);
- if (header.existence_of_colors) free(data->colors);
- free(data->indices);
-}
-
-void
-evas_model_load_vertex_data_to_mesh(Evas_Canvas3D_Mesh *mesh,
- Evas_Model_Load_Save_Header header,
- Evas_Model_Load_Save_Data data,
- Evas_Model_Load_Save_Stride *stride)
-{
- Evas_Model_Load_Save_Data map;
- int i, j;
-
- evas_canvas3d_mesh_vertex_count_set(mesh, header.vertices_count);
- evas_canvas3d_mesh_vertex_assembly_set(mesh, EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES);
- evas_canvas3d_mesh_frame_add(mesh, 0);
-
-#define VERTEX_DATA_MAP(name, vertex_data_type, default_size) \
- if (header.existence_of_##name) \
- { \
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, 0, vertex_data_type, 0, NULL); \
- map.name = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, 0, vertex_data_type); \
- stride->name = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, 0, vertex_data_type); \
- if (stride->name == 0) stride->name = sizeof(float) * default_size; \
- }
- VERTEX_DATA_MAP(positions, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, 3)
- VERTEX_DATA_MAP(normals, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL, 3)
- VERTEX_DATA_MAP(tex_coords, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD, 2)
- VERTEX_DATA_MAP(colors, EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR, 4)
-#undef VERTEX_DATA_MAP
-
- for (i = 0; i < header.vertices_count; i++)
- {
- Evas_Model_Load_Save_Data current_pointer;
-
-#define FILL_VERTEX_DATA(name, size) \
- if (header.existence_of_##name) \
- { \
- current_pointer.name = (float *)((char *)map.name + stride->name * i); \
- for (j = 0; j < size; j++) \
- current_pointer.name[j] = ARRAY_2D(data.name, i, j, size); \
- }
- FILL_VERTEX_DATA(positions, 3)
- FILL_VERTEX_DATA(normals, 3)
- FILL_VERTEX_DATA(tex_coords, 2)
- FILL_VERTEX_DATA(colors, 3)
-#undef FILL_VERTEX_DATA
-
- if (header.existence_of_colors) current_pointer.colors[3] = 1.0;
- }
-}
-
-void
-evas_model_load_indices_data_to_mesh(Evas_Canvas3D_Mesh *mesh,
- Evas_Model_Load_Save_Header header,
- Evas_Model_Load_Save_Data data)
-{
- evas_canvas3d_mesh_index_data_copy_set(mesh, EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT, header.indices_count, data.indices);
-}
-
-Eina_Bool
-evas_model_load_allocate_data_due_to_header(Evas_Model_Load_Save_Header header,
- Evas_Model_Load_Save_Data *data)
-{
- if (header.existence_of_positions)
- data->positions = malloc(header.vertices_count * 3 * sizeof(float));
- if (header.existence_of_normals)
- data->normals = malloc(header.vertices_count * 3 * sizeof(float));
- if (header.existence_of_tex_coords)
- data->tex_coords = malloc(header.vertices_count * 2 * sizeof(float));
- if (header.existence_of_colors)
- data->colors = malloc(header.vertices_count * 3 * sizeof(float));
- data->indices = malloc(header.indices_count * sizeof(unsigned short));
-
- if ((header.existence_of_positions && (data->positions == NULL)) ||
- (header.existence_of_normals && (data->normals == NULL)) ||
- (header.existence_of_tex_coords && (data->tex_coords == NULL)) ||
- (header.existence_of_colors && (data->colors == NULL)) ||
- (data->indices == NULL))
- {
- free(data->positions);
- free(data->normals);
- free(data->tex_coords);
- free(data->colors);
- free(data->indices);
- return EINA_FALSE;
- }
- return EINA_TRUE;
-}
-
-void
-evas_model_load_aabb_add_to_frame(Evas_Canvas3D_Mesh *mesh,
- int frame,
- Evas_Model_Load_Save_Stride stride)
-{
- Evas_Canvas3D_Mesh_Data *pd;
- pd = efl_data_scope_get(mesh, EVAS_CANVAS3D_MESH_CLASS);
-
- if (!evas_canvas3d_mesh_aabb_add_to_frame(pd, frame, stride.positions))
- {
- ERR("Axis-Aligned Bounding Box wasn't added in frame %d ", 0);
- }
-}
-
-Eina_Bool
-evas_model_save_header_from_mesh(Evas_Canvas3D_Mesh_Data *pd,
- Evas_Canvas3D_Mesh_Frame *f,
- Evas_Model_Load_Save_Header *header)
-{
- header->indices_count = pd->index_count;
- if (header->indices_count % 3 != 0)
- {
- printf("Index count is %d. It cannot be divided to triangles correctly.\n",
- header->indices_count);
- return EINA_FALSE;
- }
-
- header->existence_of_positions = (f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].data != NULL);
- header->existence_of_normals = (f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL].data != NULL);
- header->existence_of_tex_coords = (f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD].data != NULL);
- header->existence_of_colors = (f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR].data != NULL);
- header->vertices_count = pd->vertex_count;
-
- return EINA_TRUE;
-}
-
-void
-evas_model_save_data_from_mesh(Evas_Canvas3D_Mesh_Data *pd,
- Evas_Canvas3D_Mesh_Frame *f,
- Evas_Model_Load_Save_Header header,
- Evas_Model_Load_Save_Data *data)
-{
- int i;
- if (header.existence_of_positions)
- data->positions = (float*)(&f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION])->data;
- if (header.existence_of_normals)
- data->normals = (float*)(&f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL])->data;
- if (header.existence_of_tex_coords)
- data->tex_coords = (float*)(&f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD])->data;
- if (header.existence_of_colors)
- data->colors = (float*)(&f->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR])->data;
- SAVE_MESH_INDICES_COPY
-}
-
-void
-evas_model_save_data_copy_from_mesh(Evas_Canvas3D_Mesh_Data *pd,
- Evas_Canvas3D_Mesh_Frame *f,
- Evas_Model_Load_Save_Header header,
- Evas_Model_Load_Save_Data *data)
-{
- int i;
-#define SAVE_MESH_VERTICES_COPY(name, vertex_data_type) \
- if (header.existence_of_##name) \
- memcpy(data->name, \
- (&f->vertices[vertex_data_type])->data, \
- header.vertices_count);
- SAVE_MESH_VERTICES_COPY(positions, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION)
- SAVE_MESH_VERTICES_COPY(normals, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL)
- SAVE_MESH_VERTICES_COPY(tex_coords, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD)
- SAVE_MESH_VERTICES_COPY(colors, EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR)
-#undef SAVE_MESH_VERTICES_COPY
- SAVE_MESH_INDICES_COPY
-}
diff --git a/src/lib/evas/common3d/save_load/evas_model_load_save_common.h b/src/lib/evas/common3d/save_load/evas_model_load_save_common.h
deleted file mode 100644
index be8dbae397..0000000000
--- a/src/lib/evas/common3d/save_load/evas_model_load_save_common.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifndef MODEL_LOAD_COMMON
-#define MODEL_LOAD_COMMON
-
-#include <stdlib.h>
-#include <time.h>
-#include "stdio.h"
-#include "evas_common_private.h"
-#include "evas_private.h"
-#include <Eina.h>
-
-/* set value to position [x][y] to array name which have. */
-#define ARRAY_2D(name, x, y, count_y) (*(name + x * count_y + y))
-
-/* Structures for reading data from file. */
-typedef struct _Evas_Model_Load_Save_Header Evas_Model_Load_Save_Header;
-typedef struct _Evas_Model_Load_Save_Data Evas_Model_Load_Save_Data;
-typedef struct _Evas_Model_Load_Save_Stride Evas_Model_Load_Save_Stride;
-
-struct _Evas_Model_Load_Save_Header
-{
- int vertices_count;
- int indices_count;
- Eina_Bool existence_of_positions;
- Eina_Bool existence_of_normals;
- Eina_Bool existence_of_tex_coords;
- Eina_Bool existence_of_colors;
-};
-
-struct _Evas_Model_Load_Save_Data
-{
- float *positions;
- float *normals;
- float *tex_coords;
- float *colors;
- unsigned short *indices;
-};
-
-struct _Evas_Model_Load_Save_Stride
-{
- int positions;
- int normals;
- int tex_coords;
- int colors;
-};
-
-/* create new header */
-Evas_Model_Load_Save_Header evas_model_load_save_header_new(void);
-void evas_model_load_vertex_data_unmap(Evas_Canvas3D_Mesh *mesh, int frame, Evas_Model_Load_Save_Header header);
-void evas_model_load_save_data_free(Evas_Model_Load_Save_Header header, Evas_Model_Load_Save_Data *data);
-void evas_model_load_vertex_data_to_mesh(Evas_Canvas3D_Mesh *mesh, Evas_Model_Load_Save_Header header, Evas_Model_Load_Save_Data data, Evas_Model_Load_Save_Stride *stride);
-void evas_model_load_indices_data_to_mesh(Evas_Canvas3D_Mesh *mesh, Evas_Model_Load_Save_Header header, Evas_Model_Load_Save_Data data);
-Eina_Bool evas_model_load_allocate_data_due_to_header(Evas_Model_Load_Save_Header header, Evas_Model_Load_Save_Data *data);
-void evas_model_load_aabb_add_to_frame(Evas_Canvas3D_Mesh *mesh, int frame, Evas_Model_Load_Save_Stride stride);
-Eina_Bool evas_model_save_header_from_mesh(Evas_Canvas3D_Mesh_Data *pd, Evas_Canvas3D_Mesh_Frame *f, Evas_Model_Load_Save_Header *header);
-void evas_model_save_data_from_mesh(Evas_Canvas3D_Mesh_Data *pd, Evas_Canvas3D_Mesh_Frame *f, Evas_Model_Load_Save_Header header, Evas_Model_Load_Save_Data *data);
-void evas_model_save_data_copy_from_mesh(Evas_Canvas3D_Mesh_Data *pd, Evas_Canvas3D_Mesh_Frame *f, Evas_Model_Load_Save_Header header, Evas_Model_Load_Save_Data *data);
-
-#endif //MODEL_LOAD_COMMON
diff --git a/src/lib/evas/common3d/save_load/evas_model_save.c b/src/lib/evas/common3d/save_load/evas_model_save.c
deleted file mode 100644
index caf72ca400..0000000000
--- a/src/lib/evas/common3d/save_load/evas_model_save.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include "evas_options.h"
-
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-void
-evas_common_save_model_to_file(const Evas_Canvas3D_Mesh *model,
- const char *file,
- Evas_Canvas3D_Mesh_Frame *f)
-{
- char *p;
- char *saver = NULL;
-
- p = strrchr(file, '.');
- if (p)
- {
- p++;
-#define CHECK_EXTENTION_BY_FILE_NAME(extention) \
- if (!strcasecmp(p, #extention)) \
- { \
- evas_model_save_file_##extention(model, file, f); \
- saver = #extention; \
- }
- CHECK_EXTENTION_BY_FILE_NAME(eet)
- CHECK_EXTENTION_BY_FILE_NAME(obj)
- CHECK_EXTENTION_BY_FILE_NAME(ply)
-#undef CHECK_EXTENTION_BY_FILE_NAME
- }
- if (!saver) ERR("Invalid mesh file type.");
-}
diff --git a/src/lib/evas/common3d/save_load/meson.build b/src/lib/evas/common3d/save_load/meson.build
deleted file mode 100644
index 72f430d31e..0000000000
--- a/src/lib/evas/common3d/save_load/meson.build
+++ /dev/null
@@ -1,6 +0,0 @@
-evas_src += files([
- 'evas_model_load.c',
- 'evas_model_load_save_common.c',
- 'evas_model_load_save_common.h',
- 'evas_model_save.c',
-]) \ No newline at end of file
diff --git a/src/lib/evas/include/evas_3d_utils.h b/src/lib/evas/include/evas_3d_utils.h
deleted file mode 100644
index 219032306c..0000000000
--- a/src/lib/evas/include/evas_3d_utils.h
+++ /dev/null
@@ -1,1698 +0,0 @@
-#ifndef EVAS_PRIVATE_H
-# error You shall not include this header directly
-#endif
-
-#include <math.h>
-#include <float.h>
-
-#define DEGREE_TO_RADIAN(x) (((x) * M_PI) / 180.0)
-#define EVAS_MATRIX_IS_IDENTITY 0x00000001
-#define MIN_DIFF 0.00000000001
-
-typedef struct _Evas_Color Evas_Color;
-typedef struct _Evas_Box2 Evas_Box2;
-typedef struct _Evas_Box3 Evas_Box3;
-typedef struct _Evas_Line3 Evas_Line3;
-typedef struct _Evas_Triangle3 Evas_Triangle3;
-typedef struct _Evas_Ray3 Evas_Ray3;
-typedef struct _Evas_Sphere Evas_Sphere;
-
-struct _Evas_Color
-{
- Evas_Real r;
- Evas_Real g;
- Evas_Real b;
- Evas_Real a;
-};
-
-struct _Evas_Box2
-{
- Eina_Vector2 p0;
- Eina_Vector2 p1;
-};
-
-struct _Evas_Box3
-{
- Eina_Vector3 p0;
- Eina_Vector3 p1;
-};
-
-struct _Evas_Line3
-{
- Eina_Vector3 point;
- Eina_Vector3 direction;
-};
-
-struct _Evas_Triangle3
-{
- Eina_Vector3 p0;
- Eina_Vector3 p1;
- Eina_Vector3 p2;
-};
-
-struct _Evas_Ray3
-{
- Eina_Vector3 org;
- Eina_Vector3 dir;
-};
-
-struct _Evas_Sphere
-{
- Eina_Vector3 center;
- Evas_Real radius;
-};
-
-static inline void
-evas_triangle3_set(Evas_Triangle3 *v, Eina_Vector3 *a, Eina_Vector3 *b, Eina_Vector3 *c)
-{
- eina_vector3_copy(&v->p0, a);
- eina_vector3_copy(&v->p1, b);
- eina_vector3_copy(&v->p2, c);
-}
-
-static inline Eina_Bool
-evas_triangle3_is_line(Evas_Triangle3 *v)
-{
- if (eina_vector3_equivalent(&v->p0, &v->p1) ||
- eina_vector3_equivalent(&v->p0, &v->p2) ||
- eina_vector3_equivalent(&v->p1, &v->p2))
- return EINA_TRUE;
-
- return EINA_FALSE;
-}
-
-static inline Eina_Bool
-convex_hull_triangle3_not_first_edje(Evas_Triangle3 *v, Eina_Vector3 *a, Eina_Vector3 *b)
-{
- if ((EINA_DBL_EQ(v->p1.x, a->x) && EINA_DBL_EQ(v->p1.y, a->y) && EINA_DBL_EQ(v->p1.z, a->z)) &&
- (EINA_DBL_EQ(v->p2.x, b->x) && EINA_DBL_EQ(v->p2.y, b->y) && EINA_DBL_EQ(v->p2.z, b->z)))
- return EINA_TRUE;
- else if ((EINA_DBL_EQ(v->p2.x, a->x) && EINA_DBL_EQ(v->p2.y, a->y) && EINA_DBL_EQ(v->p2.z, a->z)) &&
- (EINA_DBL_EQ(v->p1.x, b->x) && EINA_DBL_EQ(v->p1.y, b->y) && EINA_DBL_EQ(v->p1.z, b->z)))
- return EINA_TRUE;
-
- return EINA_FALSE;
-}
-
-static inline Eina_Bool
-convex_hull_triangle3_first_edje(Evas_Triangle3 *v, Eina_Vector3 *a, Eina_Vector3 *b)
-{
- if ((!EINA_FLT_EQ(v->p0.x, a->x) && !EINA_FLT_EQ(v->p0.y, a->y) &&
- !EINA_FLT_EQ(v->p0.z, a->z)) && (!EINA_FLT_EQ(v->p1.x, b->x) &&
- !EINA_FLT_EQ(v->p1.y, b->y) && !EINA_FLT_EQ(v->p1.z, b->z)))
- return EINA_TRUE;
- else if ((!EINA_FLT_EQ(v->p1.x, a->x) && !EINA_FLT_EQ(v->p1.y, a->y) &&
- !EINA_FLT_EQ(v->p1.z, a->z)) && (!EINA_FLT_EQ(v->p0.x, b->x) &&
- !EINA_FLT_EQ(v->p0.y, b->y) && !EINA_FLT_EQ(v->p0.z, b->z)))
- return EINA_TRUE;
-
- return EINA_FALSE;
-}
-
-static inline Eina_Bool
-convex_hull_triangle3_first_point(Evas_Triangle3 *v, Eina_Vector3 *a)
-{
- return (EINA_DBL_EQ(v->p0.x, a->x) && EINA_DBL_EQ(v->p0.y, a->y) && EINA_DBL_EQ(v->p0.z, a->z));
-}
-
-static inline Eina_Bool
-eina_vector3_equivalent_as_triangle(Eina_Vector3 *v0, Eina_Vector3 *v1, Eina_Vector3 *v2,
- Eina_Vector3 *w0, Eina_Vector3 *w1, Eina_Vector3 *w2)
-{
- if ((EINA_DBL_EQ(v0->x, w0->x) && EINA_DBL_EQ(v0->y, w0->y) && EINA_DBL_EQ(v0->z, w0->z)) &&
- (EINA_DBL_EQ(v1->x, w1->x) && EINA_DBL_EQ(v1->y, w1->y) && EINA_DBL_EQ(v1->z, w1->z)) &&
- (EINA_DBL_EQ(v2->x, w2->x) && EINA_DBL_EQ(v2->y, w2->y) && EINA_DBL_EQ(v2->z, w2->z)))
- return EINA_TRUE;
-
- return EINA_FALSE;
-}
-
-static inline Eina_Bool
-evas_triangle3_equivalent(Evas_Triangle3 *a, Evas_Triangle3 *b)
-{
- /* to compare two triangles there are six permutations
- to test because vertices are unordered */
- if (eina_vector3_equivalent_as_triangle(&a->p0, &a->p1, &a->p2, &b->p0, &b->p1, &b->p2) ||
- eina_vector3_equivalent_as_triangle(&a->p0, &a->p1, &a->p2, &b->p0, &b->p2, &b->p1) ||
- eina_vector3_equivalent_as_triangle(&a->p0, &a->p1, &a->p2, &b->p1, &b->p0, &b->p2) ||
- eina_vector3_equivalent_as_triangle(&a->p0, &a->p1, &a->p2, &b->p1, &b->p2, &b->p0) ||
- eina_vector3_equivalent_as_triangle(&a->p0, &a->p1, &a->p2, &b->p2, &b->p0, &b->p1) ||
- eina_vector3_equivalent_as_triangle(&a->p0, &a->p1, &a->p2, &b->p2, &b->p1, &b->p0))
- return EINA_TRUE;
-
- return EINA_FALSE;
-}
-
-static inline void
-evas_mat4_look_at_set(Eina_Matrix4 *m,
- const Eina_Vector3 *pos, const Eina_Vector3 *center, const Eina_Vector3 *up)
-{
- Eina_Vector3 x, y, z;
-
- eina_vector3_subtract(&z, pos, center);
- eina_vector3_normalize(&z, &z);
-
- eina_vector3_cross_product(&x, up, &z);
- eina_vector3_normalize(&x, &x);
-
- eina_vector3_cross_product(&y, &z, &x);
- eina_vector3_normalize(&y, &y);
-
- m->xx = x.x;
- m->xy = y.x;
- m->xz = z.x;
- m->xw = 0.0;
-
- m->yx = x.y;
- m->yy = y.y;
- m->yz = z.y;
- m->yw = 0.0;
-
- m->zx = x.z;
- m->zy = y.z;
- m->zz = z.z;
- m->zw = 0.0;
-
- m->wx = -eina_vector3_dot_product(&x, pos);
- m->wy = -eina_vector3_dot_product(&y, pos);
- m->wz = -eina_vector3_dot_product(&z, pos);
- m->ww = 1.0;
-}
-
-static inline void
-evas_mat4_frustum_set(Eina_Matrix4 *m,
- Evas_Real left, Evas_Real right, Evas_Real bottom, Evas_Real top,
- Evas_Real dnear, Evas_Real dfar)
-{
- Evas_Real w = right - left;
- Evas_Real h = top - bottom;
- Evas_Real depth = dnear - dfar;
- Evas_Real near_2 = 2.0f * dnear;
-
- m->xx = near_2 / w;
- m->xy = 0.0f;
- m->xz = 0.0f;
- m->xw = 0.0f;
-
- m->yx = 0.0f;
- m->yy = near_2 / h;
- m->yz = 0.0f;
- m->yw = 0.0f;
-
- m->zx = (right + left) / w;
- m->zy = (top + bottom) / h;
- m->zz = (dfar + dnear) / depth;
- m->zw = -1.0f;
-
- m->wx = 0.0f;
- m->wy = 0.0f;
- m->wz = near_2 * dfar / depth;
- m->ww = 0.0f;
-}
-
-static inline void
-evas_box2_set(Evas_Box2 *box, Evas_Real x0, Evas_Real y0, Evas_Real x1,
- Evas_Real y1)
-{
- box->p0.x = x0;
- box->p0.y = y0;
- box->p1.x = x1;
- box->p1.y = y1;
-}
-
-static inline void
-evas_box3_set(Evas_Box3 *box, Evas_Real x0, Evas_Real y0, Evas_Real z0,
- Evas_Real x1, Evas_Real y1, Evas_Real z1)
-{
- box->p0.x = x0;
- box->p0.y = y0;
- box->p0.z = z0;
- box->p1.x = x1;
- box->p1.y = y1;
- box->p1.z = z1;
-}
-
-static inline void
-evas_box3_empty_set(Evas_Box3 *box)
-{
- eina_vector3_set(&box->p0, 0.0, 0.0, 0.0);
- eina_vector3_set(&box->p1, 0.0, 0.0, 0.0);
-}
-
-static inline void
-evas_box3_copy(Evas_Box3 *dst, const Evas_Box3 *src)
-{
- eina_vector3_copy(&dst->p0, &src->p0);
- eina_vector3_copy(&dst->p1, &src->p1);
-}
-
-static inline void
-evas_box3_union(Evas_Box3 *out, const Evas_Box3 *a, const Evas_Box3 *b)
-{
- eina_vector3_set(&out->p0, MIN(a->p0.x, b->p0.x), MIN(a->p0.y, b->p0.y), MIN(a->p0.z, b->p0.z));
- eina_vector3_set(&out->p1, MAX(a->p1.x, b->p1.x), MAX(a->p1.y, b->p1.y), MAX(a->p1.z, b->p1.z));
-}
-
-static inline void
-evas_box3_transform(Evas_Box3 *out EINA_UNUSED, const Evas_Box3 *box EINA_UNUSED, const Eina_Matrix4 *mat EINA_UNUSED)
-{
- /* TODO: */
-}
-
-static inline void
-evas_mat4_position_get(const Eina_Matrix4 *matrix, Eina_Quaternion *position)
-{
- Eina_Quaternion pos;
-
- pos.x = 0.0;
- pos.y = 0.0;
- pos.z = 0.0;
- pos.w = 1.0;
-
- eina_quaternion_transform(position, &pos, matrix);
-}
-
-static inline void
-evas_mat4_direction_get(const Eina_Matrix4 *matrix, Eina_Vector3 *direction)
-{
- /* TODO: Check correctness. */
-
- Eina_Quaternion dir;
-
- dir.x = 0.0;
- dir.y = 0.0;
- dir.z = 1.0;
- dir.w = 1.0;
-
- eina_quaternion_transform(&dir, &dir, matrix);
-
- direction->x = dir.x;
- direction->y = dir.y;
- direction->z = dir.z;
-}
-
-static inline void
-evas_mat4_build(Eina_Matrix4 *out,
- const Eina_Vector3 *position, const Eina_Quaternion *orientation, const Eina_Vector3 *scale)
-{
- Eina_Matrix3 rot;
-
- eina_quaternion_rotation_matrix3_get(&rot, orientation);
-
- out->xx = scale->x * rot.xx;
- out->xy = scale->x * rot.xy;
- out->xz = scale->x * rot.xz;
- out->xw = 0.0;
-
- out->yx = scale->y * rot.yx;
- out->yy = scale->y * rot.yy;
- out->yz = scale->y * rot.yz;
- out->yw = 0.0;
-
- out->zx = scale->z * rot.zx;
- out->zy = scale->z * rot.zy;
- out->zz = scale->z * rot.zz;
- out->zw = 0.0;
-
- out->wx = position->x;
- out->wy = position->y;
- out->wz = position->z;
- out->ww = 1.0;
-}
-
-static inline void
-evas_mat4_inverse_build(Eina_Matrix4 *out, const Eina_Vector3 *position,
- const Eina_Quaternion *orientation, const Eina_Vector3 *scale)
-{
- Eina_Quaternion inv_rotation;
- Eina_Vector3 inv_scale;
- Eina_Vector3 inv_translate;
-
- Eina_Matrix3 rot;
-
- /* Inverse scale. */
- eina_vector3_set(&inv_scale, 1.0 / scale->x, 1.0 / scale->y, 1.0 / scale->z);
-
- /* Inverse rotation. */
- eina_quaternion_inverse(&inv_rotation, orientation);
-
- /* Inverse translation. */
- eina_vector3_negate(&inv_translate, position);
- eina_vector3_quaternion_rotate(&inv_translate, &inv_translate, &inv_rotation);
- eina_vector3_multiply(&inv_translate, &inv_translate, &inv_scale);
-
- /* Get 3x3 rotation matrix. */
- eina_quaternion_rotation_matrix3_get(&rot, &inv_rotation);
-
- out->xx = inv_scale.x * rot.xx;
- out->xy = inv_scale.x * rot.xy;
- out->xz = inv_scale.x * rot.xz;
- out->xw = 0.0;
-
- out->yx = inv_scale.y * rot.yx;
- out->yy = inv_scale.y * rot.yy;
- out->yz = inv_scale.y * rot.yz;
- out->yw = 0.0;
-
- out->zx = inv_scale.z * rot.zx;
- out->zy = inv_scale.z * rot.zy;
- out->zz = inv_scale.z * rot.zz;
- out->zw = 0.0;
-
- out->wx = inv_translate.x;
- out->wy = inv_translate.y;
- out->wz = inv_translate.z;
- out->ww = 1.0;
-}
-
-static inline void
-evas_color_set(Evas_Color *color, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
-{
- color->r = r;
- color->g = g;
- color->b = b;
- color->a = a;
-}
-
-static inline void
-evas_color_blend(Evas_Color *dst, const Evas_Color *c0, const Evas_Color *c1, Evas_Real w)
-{
- dst->r = c0->r * w + c1->r * (1.0 - w);
- dst->g = c0->g * w + c1->g * (1.0 - w);
- dst->b = c0->b * w + c1->b * (1.0 - w);
- dst->a = c0->a * w + c1->a * (1.0 - w);
-}
-
-static inline void
-evas_ray3_init(Evas_Ray3 *ray, Evas_Real x, Evas_Real y, const Eina_Matrix4 *mvp)
-{
- Eina_Matrix4 mat;
- Eina_Quaternion dnear, dfar;
-
- memset(&mat, 0, sizeof (mat));
-
- /* Get the matrix which transforms from normalized device coordinate to
- modeling coodrinate. */
- eina_matrix4_inverse(&mat, mvp);
-
- /* Transform near point. */
- dnear.x = x;
- dnear.y = y;
- dnear.z = -1.0;
- dnear.w = 1.0;
-
- eina_quaternion_transform(&dnear, &dnear, &mat);
-
- dnear.w = 1.0 / dnear.w;
- dnear.x *= dnear.w;
- dnear.y *= dnear.w;
- dnear.z *= dnear.w;
-
- eina_vector3_set(&ray->org, dnear.x, dnear.y, dnear.z);
-
- /* Transform far point. */
- dfar.x = x;
- dfar.y = y;
- dfar.z = 1.0;
- dfar.w = 1.0;
-
- eina_quaternion_transform(&dfar, &dfar, &mat);
-
- dfar.w = 1.0 / dfar.w;
- dfar.x *= dfar.w;
- dfar.y *= dfar.w;
- dfar.z *= dfar.w;
-
- eina_vector3_set(&ray->dir, dfar.x - dnear.x, dfar.y - dnear.y, dfar.z - dnear.z);
-}
-
-static inline Eina_Bool
-evas_box2_intersect_2d(const Evas_Box2 *box, const Eina_Vector2 *org, const Eina_Vector2 *dir)
-{
- Evas_Real t1, t2, t_near = FLT_MIN, t_far = FLT_MAX;
- /* ray intersects box if its begins in */
- if ((org->x >= box->p0.x) && (org->x <= box->p1.x) &&
- (org->y >= box->p0.y) && (org->y <= box->p1.y))
- {
- return EINA_TRUE;
- }
- /* minmax algorithm of ray and box intersection */
- if (!EINA_DBL_EQ(dir->x, 0.0) && !EINA_DBL_EQ(dir->y, 0.0))
- {
- t1 = (box->p0.x - org->x) / dir->x;
- t2 = (box->p1.x - org->x) / dir->x;
-
- if (t1 > t2)
- {
- Evas_Real tmp = t1;
- t1 = t2;
- t2 = tmp;
- }
-
- if (t1 > t_near) t_near = t1;
- if (t2 < t_far) t_far = t2;
-
- if (t_far < 0.0f)
- return EINA_FALSE;
-
- t1 = (box->p0.y - org->y) / dir->y;
- t2 = (box->p1.y - org->y) / dir->y;
-
- if (t1 > t2)
- {
- Evas_Real tmp = t1;
- t1 = t2;
- t2 = tmp;
- }
-
- if (t1 > t_near) t_near = t1;
- if (t2 < t_far) t_far = t2;
-
- if ((t_near > t_far) || (t_far < 0.0f))
- return EINA_FALSE;
- }
- /* case when ray is parallel to one of axes */
- else if (EINA_DBL_EQ(dir->x, 0.0))
- {
- if ((org->x < box->p0.x) && (org->x > box->p1.x))
- return EINA_FALSE;
- }
- else if (org->y < box->p0.y && org->y > box->p1.y)
- return EINA_FALSE;
-
- return EINA_TRUE;
-}
-
-static inline Evas_Real
-evas_determinant_3D(Evas_Real matrix[3][3])
-{
- return (matrix[0][0] * matrix[1][1] * matrix[2][2]) +
- (matrix[0][1] * matrix[1][2] * matrix[2][0]) +
- (matrix[0][2] * matrix[1][0] * matrix[2][1]) -
- (matrix[0][2] * matrix[1][1] * matrix[2][0]) -
- (matrix[0][1] * matrix[1][0] * matrix[2][2]) -
- (matrix[0][0] * matrix[1][2] * matrix[2][1]);
-}
-
-static inline Eina_Bool
-evas_box3_ray3_intersect(const Evas_Box3 *box, const Evas_Ray3 *ray)
-{
- Evas_Real t1, t2, t_near = FLT_MIN, t_far = FLT_MAX;
- Evas_Box2 box2;
- Eina_Vector2 org2;
- Eina_Vector2 dir2;
- Eina_Bool intersect = EINA_FALSE;
-
- /* ray intersects box if its begins in */
- if ((ray->org.x >= box->p0.x) && (ray->org.x <= box->p1.x) &&
- (ray->org.y >= box->p0.y) && (ray->org.y <= box->p1.y) &&
- (ray->org.z >= box->p0.z) && (ray->org.z <= box->p1.z))
- {
- return EINA_TRUE;
- }
- /* minmax algorithm of ray and box intersection */
- if (!EINA_DBL_EQ(ray->dir.x, 0.0) && !EINA_DBL_EQ(ray->dir.y, 0.0) && !EINA_DBL_EQ(ray->dir.z, 0.0))
- {
- t1 = (box->p0.x - ray->org.x) / ray->dir.x;
- t2 = (box->p1.x - ray->org.x) / ray->dir.x;
-
- if (t1 > t2)
- {
- Evas_Real tmp = t1;
- t1 = t2;
- t2 = tmp;
- }
-
- if (t1 > t_near) t_near = t1;
- if (t2 < t_far) t_far = t2;
-
- if (t_far < 0.0f)
- return EINA_FALSE;
-
- t1 = (box->p0.y - ray->org.y) / ray->dir.y;
- t2 = (box->p1.y - ray->org.y) / ray->dir.y;
-
- if (t1 > t2)
- {
- Evas_Real tmp = t1;
- t1 = t2;
- t2 = tmp;
- }
-
- if (t1 > t_near) t_near = t1;
- if (t2 < t_far) t_far = t2;
-
- if ((t_near > t_far) || (t_far < 0.0f))
- return EINA_FALSE;
-
- t1 = (box->p0.z - ray->org.z) / ray->dir.z;
- t2 = (box->p1.z - ray->org.z) / ray->dir.z;
-
- if (t1 > t2)
- {
- Evas_Real tmp = t1;
- t1 = t2;
- t2 = tmp;
- }
-
- if (t1 > t_near) t_near = t1;
- if (t2 < t_far) t_far = t2;
-
- if ((t_near > t_far) || (t_far < 0.0f))
- return EINA_FALSE;
-
- intersect = EINA_TRUE;
- }
- /* case when ray is parallel to one of axes */
- else
- {
- /* use two-dimensional version here */
- if (EINA_DBL_EQ(ray->dir.x, 0.0))
- {
- if ((ray->org.x < box->p0.x) || (ray->org.x > box->p1.x))
- return EINA_FALSE;
- else
- {
- eina_vector2_set(&org2, ray->org.y, ray->org.z);
- eina_vector2_set(&dir2, ray->dir.y, ray->dir.z);
- evas_box2_set(&box2, box->p0.y, box->p0.z, box->p1.y, box->p1.z);
- intersect = evas_box2_intersect_2d(&box2, &org2, &dir2);
- }
- }
-
- if (EINA_DBL_EQ(ray->dir.y, 0.0))
- {
- if ((ray->org.y < box->p0.y) || (ray->org.y > box->p1.y))
- return EINA_FALSE;
- else
- {
- eina_vector2_set(&org2, ray->org.x, ray->org.z);
- eina_vector2_set(&dir2, ray->dir.x, ray->dir.z);
- evas_box2_set(&box2, box->p0.x, box->p0.z, box->p1.x, box->p1.z);
- intersect = evas_box2_intersect_2d(&box2, &org2, &dir2);
- }
- }
-
- if (EINA_DBL_EQ(ray->dir.z, 0.0))
- {
- if (ray->org.z < box->p0.z || ray->org.z > box->p1.z)
- return EINA_FALSE;
- else
- {
- eina_vector2_set(&org2, ray->org.x, ray->org.y);
- eina_vector2_set(&dir2, ray->dir.x, ray->dir.y);
- evas_box2_set(&box2, box->p0.x, box->p0.y, box->p1.x, box->p1.y);
- intersect = evas_box2_intersect_2d(&box2, &org2, &dir2);
- }
- }
- }
-
- return intersect;
-}
-
-static inline Evas_Real
-evas_reciprocal_sqrt(Evas_Real x)
-{
- union {
- float f;
- long i;
- } u;
-
- u.f = x;
- u.i = 0x5f3759df - (u.i >> 1);
- return u.f * (1.5f - u.f * u.f * x * 0.5f);
-}
-
-static inline void
-evas_build_sphere(const Evas_Box3 *box, Evas_Sphere *sphere)
-{
- Eina_Vector3 tmp;
-
- eina_vector3_set(&sphere->center, (0.5 * (box->p0.x + box->p1.x)), (0.5 * (box->p0.y + box->p1.y)), (0.5 * (box->p0.z + box->p1.z)));
- eina_vector3_set(&tmp, sphere->center.x - box->p0.x, sphere->center.y - box->p0.y, sphere->center.z - box->p0.z);
-
- sphere->radius = sqrtf(eina_vector3_dot_product(&tmp, &tmp));
-}
-
-static inline void
-evas_sphere_empty_set(Evas_Sphere *dst)
-{
- dst->radius = 0;
- dst->center.x = 0;
- dst->center.y = 0;
- dst->center.z = 0;
-}
-
-static inline void
-evas_plane_normalize(Eina_Quaternion *plane)
-{
- Eina_Vector3 tmp;
- Evas_Real length;
- eina_vector3_set(&tmp, plane->x, plane->y, plane->z);
- length = eina_vector3_length_get(&tmp);
- plane->x = plane->x / length;
- plane->y = plane->y / length;
- plane->z = plane->z / length;
- plane->w = plane->w / length;
-}
-
-static inline Eina_Bool
-evas_intersection_line_of_two_plains(Evas_Line3 *line, Eina_Quaternion *plane1, Eina_Quaternion *plane2)
-{
- //TODO:parallel case
- Eina_Vector3 planes3D[2];
-
- eina_vector3_set(&planes3D[0], plane1->x, plane1->y, plane1->z);
- eina_vector3_set(&planes3D[1], plane2->x, plane2->y, plane2->z);
-
- eina_vector3_cross_product(&line->direction, &planes3D[0], &planes3D[1]);
-
-#define SOLVE_EQUATION(x, y, z) \
- line->point.x = 0; \
- line->point.y = (plane2->w * plane1->z - plane1->w * plane2->z) / line->direction.x; \
- line->point.z = (plane2->y * plane1->w - plane1->y * plane2->w) / line->direction.x;
-
- if (!EINA_DBL_EQ(line->direction.x, 0.0) && !EINA_DBL_EQ(plane1->z, 0.0))
- {
- SOLVE_EQUATION(x, y, z)
- }
- else if (!EINA_DBL_EQ(line->direction.y, 0.0) && !EINA_DBL_EQ(plane1->x, 0.0))
- {
- SOLVE_EQUATION(y, z, x)
- }
- else
- {
- SOLVE_EQUATION(z, x, y)
- }
-#undef SOLVE_EQUATION
-
- return EINA_TRUE;
-}
-
-static inline Eina_Bool
-evas_intersection_point_of_three_plains(Eina_Vector3 *point, Eina_Quaternion *plane1, Eina_Quaternion *plane2, Eina_Quaternion *plane3)
-{
- //TODO:parallel case
- int i;
- Evas_Real delta, deltax, deltay, deltaz;
- Evas_Real matrix_to_det[3][3];
- Eina_Quaternion planes[3];
-
- planes[0] = *plane1;
- planes[1] = *plane2;
- planes[2] = *plane3;
-
- for (i = 0; i < 3; i++)
- {
- matrix_to_det[0][i] = planes[i].x;
- matrix_to_det[1][i] = planes[i].y;
- matrix_to_det[2][i] = planes[i].z;
- }
- delta = evas_determinant_3D(matrix_to_det);
-
- for (i = 0; i < 3; i++)
- matrix_to_det[0][i] = planes[i].w;
- deltax = evas_determinant_3D(matrix_to_det);
-
- for (i = 0; i < 3; i++)
- {
- matrix_to_det[0][i] = planes[i].x;
- matrix_to_det[1][i] = planes[i].w;
- }
- deltay = evas_determinant_3D(matrix_to_det);
-
- for (i = 0; i < 3; i++)
- {
- matrix_to_det[1][i] = planes[i].y;
- matrix_to_det[2][i] = planes[i].w;
- }
- deltaz = evas_determinant_3D(matrix_to_det);
-
- eina_vector3_set(point, -deltax/delta, -deltay/delta, -deltaz/delta);
-
- return EINA_TRUE;
-}
-
-static inline Evas_Real
-evas_point_plane_distance(Eina_Vector3 *point, Eina_Quaternion *plane)
-{
- return plane->x * point->x + plane->y * point->y + plane->z * point->z + plane->w;
-}
-
-static inline Evas_Real
-evas_point_line_distance(Eina_Vector3 *point, Evas_Line3 *line)
-{
- Eina_Vector3 temp, sub;
-
- eina_vector3_subtract(&sub, point, &line->point);
- eina_vector3_cross_product(&temp, &sub, &line->direction);
-
- return eina_vector3_length_get(&temp) / eina_vector3_length_get(&line->direction);
-}
-
-static inline Eina_Bool
-evas_is_sphere_in_frustum(Evas_Sphere *bsphere, Eina_Quaternion *planes)
-{
- int i;
- Evas_Line3 line;
- Eina_Vector3 point, sub;
- Evas_Real distances[6] = {0};
- int intersected_plains[3];
- int intersected_plains_count = 0;
-
- for (i = 0; i < 6; i++)
- distances[i] = evas_point_plane_distance(&bsphere->center, &planes[i]);
-
- for (i = 0; i < 6; i++)
- {
- if (distances[i] <= -bsphere->radius)
- {
- return EINA_FALSE;
- }
- else if (distances[i] <= 0)
- {
- intersected_plains[intersected_plains_count] = i;
- intersected_plains_count++;
- }
- }
-
- switch (intersected_plains_count)
- {
- case 2:
- evas_intersection_line_of_two_plains(&line,
- &planes[intersected_plains[0]],
- &planes[intersected_plains[1]]);
- return (evas_point_line_distance(&bsphere->center, &line) <
- bsphere->radius) ? EINA_TRUE : EINA_FALSE;
- case 3:
- evas_intersection_point_of_three_plains(&point,
- &planes[intersected_plains[0]],
- &planes[intersected_plains[1]],
- &planes[intersected_plains[2]]);
- eina_vector3_subtract(&sub, &point, &bsphere->center);
- return (eina_vector3_length_get(&sub) < bsphere->radius) ? EINA_TRUE : EINA_FALSE;
- default:
- return EINA_TRUE;
- }
-}
-
-static inline Eina_Bool
-evas_is_point_in_frustum(Eina_Vector3 *point, Eina_Quaternion *planes)
-{
- int i;
- for (i = 0; i < 6; i++)
- if (evas_point_plane_distance(point, &planes[i]) <= 0) return EINA_FALSE;
- return EINA_TRUE;
-}
-
-static inline Eina_Bool
-evas_is_box_in_frustum(Evas_Box3 *box, Eina_Quaternion *planes)
-{
- int i;
- for (i = 0; i < 6; i++)
- {
- if (planes[i].x * box->p0.x + planes[i].y * box->p0.y + planes[i].z * box->p0.z + planes[i].w > 0)
- continue;
- if (planes[i].x * box->p1.x + planes[i].y * box->p0.y + planes[i].z * box->p0.z + planes[i].w > 0)
- continue;
- if (planes[i].x * box->p1.x + planes[i].y * box->p1.y + planes[i].z * box->p0.z + planes[i].w > 0)
- continue;
- if (planes[i].x * box->p0.x + planes[i].y * box->p1.y + planes[i].z * box->p0.z + planes[i].w > 0)
- continue;
- if (planes[i].x * box->p0.x + planes[i].y * box->p0.y + planes[i].z * box->p1.z + planes[i].w > 0)
- continue;
- if (planes[i].x * box->p1.x + planes[i].y * box->p0.y + planes[i].z * box->p1.z + planes[i].w > 0)
- continue;
- if (planes[i].x * box->p1.x + planes[i].y * box->p1.y + planes[i].z * box->p1.z + planes[i].w > 0)
- continue;
- if (planes[i].x * box->p0.x + planes[i].y * box->p1.y + planes[i].z * box->p1.z + planes[i].w > 0)
- continue;
- return EINA_FALSE;
- }
-
- return EINA_TRUE;
-}
-
-static inline void
-evas_frustum_calculate(Eina_Quaternion *planes, Eina_Matrix4 *matrix_vp)
-{
- int i;
-
- eina_quaternion_set(&planes[0], matrix_vp->xw - matrix_vp->xx,
- matrix_vp->yw - matrix_vp->yx,
- matrix_vp->zw - matrix_vp->zx,
- matrix_vp->ww - matrix_vp->wx);
- eina_quaternion_set(&planes[1], matrix_vp->xw - matrix_vp->xx,
- matrix_vp->yw - matrix_vp->yx,
- matrix_vp->zw - matrix_vp->zx,
- matrix_vp->ww - matrix_vp->wx);
- eina_quaternion_set(&planes[2], matrix_vp->xw - matrix_vp->xx,
- matrix_vp->yw - matrix_vp->yx,
- matrix_vp->zw - matrix_vp->zx,
- matrix_vp->ww - matrix_vp->wx);
- eina_quaternion_set(&planes[3], matrix_vp->xw - matrix_vp->xx,
- matrix_vp->yw - matrix_vp->yx,
- matrix_vp->zw - matrix_vp->zx,
- matrix_vp->ww - matrix_vp->wx);
- eina_quaternion_set(&planes[4], matrix_vp->xw - matrix_vp->xx,
- matrix_vp->yw - matrix_vp->yx,
- matrix_vp->zw - matrix_vp->zx,
- matrix_vp->ww - matrix_vp->wx);
- eina_quaternion_set(&planes[5], matrix_vp->xw - matrix_vp->xx,
- matrix_vp->yw - matrix_vp->yx,
- matrix_vp->zw - matrix_vp->zx,
- matrix_vp->ww - matrix_vp->wx);
-
- for (i = 0; i < 6; i++)
- {
- evas_plane_normalize(&planes[i]);
- }
-}
-
-static inline Eina_Bool
-box_intersection_box(Evas_Box3 *v1, Evas_Box3 *v2)
-{
- if ((v1->p1.x < v2->p0.x) || (v1->p0.x > v2->p1.x)
- || (v1->p1.y < v2->p0.y) || (v1->p0.y > v2->p1.y)
- || (v1->p1.z < v2->p0.z) || (v1->p0.z > v2->p1.z))
- return EINA_FALSE;
- else
- return EINA_TRUE;
-}
-
-static inline void
-tangent_new_basis(Eina_Vector3 *out, Evas_Triangle3 *triangle,
- Eina_Vector2 *a, Eina_Vector2 *b, Eina_Vector2 *c)
-{
- Eina_Vector2 new1, new2;
- Eina_Vector3 old1, old2;
- eina_vector3_set(out, 0, 0, 0);
-
- eina_vector2_subtract(&new1, b, a);
- eina_vector2_subtract(&new2, c, a);
- eina_vector3_subtract(&old1, &(triangle->p1), &(triangle->p0));
- eina_vector3_subtract(&old2, &(triangle->p2), &(triangle->p0));
-
-
- /* calculation of new basis(in system coordinates of texturing) by solution of system of equations */
- if (!EINA_DBL_EQ(new2.y, 0.0))
- {
- eina_vector3_scale(&old2, &old2, (new1.y / new2.y));
- eina_vector2_scale(&new2, &new2, (new1.y / new2.y));
-
- eina_vector2_subtract(&new1, &new1, &new2);
- eina_vector3_subtract(&old1, &old1, &old2);
-
- eina_vector3_scale(out, &old1, 1 / new1.x);
- }
-
- else if (!EINA_DBL_EQ(new1.y, 0.0))
- {
- eina_vector3_scale(&old1, &old1, (new2.y / new1.y));
- eina_vector2_scale(&new1, &new1, (new2.y / new1.y));
-
- eina_vector2_subtract(&new2, &new2, &new1);
- eina_vector3_subtract(&old2, &old2, &old1);
-
- eina_vector3_scale(out, &old2, 1 / new2.x);
- }
-
- return;
-}
-
-static inline void
-convex_hull_vertex_set(Evas_Triangle3 *el, unsigned short int *vertex_count, float **vertex,
- unsigned short int **index, unsigned int k, int *leader, int coord)
-{
- int color_coords, normal_coords;
- Eina_Vector3 vect = {0, 0, 0};
- switch (coord)
- {
- case 0:
- vect = el->p0;
- break;
- case 1:
- vect = el->p1;
- break;
- case 2:
- vect = el->p2;
- break;
- }
-
- (*vertex_count)++;
- *vertex = (float*) realloc(*vertex, (10 * (*vertex_count)) * sizeof(float));
-
- (*vertex)[10 * (*vertex_count) - 10] = vect.x;
- (*vertex)[10 * (*vertex_count) - 9] = vect.y;
- (*vertex)[10 * (*vertex_count) - 8] = vect.z;
- /* set alpha channel */
- (*vertex)[10 * (*vertex_count) - 1] = 1.0;
- /* set color */
- for (color_coords = 2; color_coords < 5; color_coords++)
- (*vertex)[10 * (*vertex_count) - color_coords] = (float) rand() / RAND_MAX;
- /* set normal coords */
- for (normal_coords = 5; normal_coords < 8; normal_coords++)
- (*vertex)[10 * (*vertex_count) - normal_coords] = 1.0;
- (*index)[3 * k + coord] = *leader;
- (*leader)++;
-}
-
-static inline Evas_Triangle3
-convex_hull_first_tr_get(float *data, int count, int stride)
-{
- Evas_Triangle3 out;
-
- Eina_Vector3 triangle1;
- Eina_Vector3 triangle2, triangle2_candidate;
- Eina_Vector3 triangle3, triangle3_candidate;
- Eina_Vector3 first, diagonal, complanar1, complanar2, candidate;
- Eina_Quaternion normal_a, normal_b;
-
- Evas_Real cos = 0.0, new_cos = 0.0, sin = 0.0, new_sin = 0.0, cos_2d = 0.0, new_cos_2d = 0.0;
- int first_num = 0;
- int i = 0, j = 0;
-
- eina_vector3_set(&triangle1, data[0], data[1], data[2]);
-
- for (i = 1, j = stride; i < count; i++, j += stride)
- {
- if ((triangle1.z > data[j + 2]) ||
- ((EINA_FLT_EQ(triangle1.z, data[j + 2])) && (triangle1.y > data[j + 1])) ||
- ((EINA_FLT_EQ(triangle1.z, data[j + 2])) && (EINA_FLT_EQ(triangle1.y, data[j + 1])) && (triangle1.x > data[j])))
- {
- eina_vector3_set(&triangle1, data[j], data[j + 1], data[j + 2]);
- first_num = i;
- }
- }
-
- if (first_num)
- eina_vector3_set(&triangle2, data[0], data[1], data[2]);
- else
- eina_vector3_set(&triangle2, data[3], data[4], data[5]);
-
- eina_vector3_subtract(&diagonal, &triangle2, &triangle1);
- sin = fabs(triangle2.z - triangle1.z) / eina_vector3_length_get(&diagonal);
-
-#define COMPARE_ANGLES(trigonom, triangle, previous, big, little) \
- if (little > big + FLT_EPSILON) \
- { \
- trigonom = new_##trigonom; \
- cos_2d = new_cos_2d; \
- eina_vector3_set(&triangle, data[j], data[j + 1], data[j + 2]); \
- } \
- else if(!EINA_FLT_EQ(little, big) && \
- (eina_vector3_distance_get(&triangle##_candidate, &previous) > \
- eina_vector3_distance_get(&triangle, &previous))) \
- { \
- eina_vector3_set(&triangle, data[j], data[j + 1], data[j + 2]); \
- }
- eina_vector3_set(&complanar1, 1, 0, 0);
- for (i = 0, j = 0; i < count; i++, j += stride)
- {
- if (EINA_FLT_EQ(data[j], triangle1.x) ||
- EINA_FLT_EQ(data[j + 1], triangle1.y) ||
- EINA_FLT_EQ(data[j + 2], triangle1.z))
- {
- eina_vector3_set(&triangle2_candidate, data[j], data[j + 1], data[j + 2]);
- eina_vector3_subtract(&diagonal, &triangle2_candidate, &triangle1);
- new_sin = fabs(data[j + 2] - triangle1.z) / eina_vector3_length_get(&diagonal);
-
- if (sin > new_sin + FLT_EPSILON)
- {
- sin = new_sin;
- eina_vector3_set(&triangle2, data[j], data[j + 1], data[j + 2]);
- eina_vector3_subtract(&diagonal, &triangle2, &triangle1);
- cos_2d = eina_vector3_angle_get(&complanar1, &diagonal);
- }
- else if (!EINA_FLT_EQ(sin, new_sin))
- {
- eina_vector3_subtract(&diagonal, &triangle2_candidate, &triangle1);
- new_cos_2d = eina_vector3_angle_get(&complanar1, &diagonal);
-
- COMPARE_ANGLES(cos, triangle2, triangle1, cos_2d, new_cos_2d)
- }
- }
- }
-
- eina_vector3_set(&complanar1, triangle1.x + 1, triangle1.y, triangle1.z);
- eina_vector3_set(&complanar2, triangle1.x, triangle1.y + 1, triangle1.z);
- eina_vector3_plane_by_points(&normal_a, &triangle1, &complanar1, &complanar2);
-
- if (normal_a.z < 0)
- eina_quaternion_scale(&normal_a, &normal_a, -1);
-
- eina_vector3_set(&triangle3, data[0], data[1], data[2]);
-
- cos = -1.0;
- cos_2d = 1.0;
-
- for (i = 0, j = 0; i < count; i++, j += stride)
- {
- eina_vector3_set(&candidate, data[j], data[j + 1], data[j + 2]);
-
- if ((EINA_FLT_EQ(data[j], triangle1.x) ||
- EINA_FLT_EQ(data[j + 1], triangle1.y) ||
- EINA_FLT_EQ(data[j + 2], triangle1.z)) &&
- (EINA_FLT_EQ(data[j], triangle2.x) ||
- EINA_FLT_EQ(data[j + 1], triangle2.y) ||
- EINA_FLT_EQ(data[j + 2], triangle2.z)))
- {
- eina_vector3_plane_by_points(&normal_b, &triangle1, &candidate, &triangle2);
-
- if (normal_b.z < 0)
- eina_quaternion_scale(&normal_b, &normal_b, -1);
-
- new_cos = eina_quaternion_angle_plains(&normal_a, &normal_b);
-
- if (new_cos > cos + FLT_EPSILON)
- {
- eina_vector3_set(&triangle3_candidate, data[j], data[j + 1], data[j + 2]);
- eina_vector3_subtract(&first, &triangle2, &triangle1);
- eina_vector3_subtract(&diagonal, &triangle3, &triangle1);
- cos = new_cos;
- eina_vector3_set(&triangle3, data[j], data[j + 1], data[j + 2]);
- cos_2d = eina_vector3_angle_get(&diagonal, &first);
- }
- else if (!EINA_FLT_EQ(new_cos, cos))
- {
- eina_vector3_set(&triangle3_candidate, data[j], data[j + 1], data[j + 2]);
- eina_vector3_subtract(&first, &triangle1, &triangle2);
- eina_vector3_subtract(&diagonal, &triangle3_candidate, &triangle2);
- new_cos_2d = eina_vector3_angle_get(&first, &diagonal);
-
- COMPARE_ANGLES(cos, triangle3, triangle2, new_cos_2d, cos_2d)
- }
- }
- }
-
- evas_triangle3_set(&out, &triangle1, &triangle2, &triangle3);
-
-#undef COMPARE_ANGLES
- return out;
-}
-
-static inline void
-evas_convex_hull_get(float *data, int count, int stride, Eina_Inarray *vertex,
- Eina_Inarray *index)
-{
- Evas_Triangle3 first_elem, second_elem, *third_elem = NULL, *el = NULL;
-
- Eina_Vector3 *next = NULL, *best = NULL, *next_2d = NULL, *el_vec3 = NULL;
- Eina_Vector3 tmp1, tmp2;
- Eina_Quaternion normal_a, normal_b;
-
- Eina_Array arr_elems;
- Eina_Array arr_triangles;
- Eina_Array arr_candidates;
- Eina_Array arr_ch;
- Eina_Array_Iterator iterator;
-
- Evas_Real cos = 0.0, new_cos = 0.0, cos_2d = 0.0;
- float *found_vertex = NULL;
- int i = 0, j = 0, new_stride = 0, leader = 0;
- int if_two = 0, first_exist_twice = 0, second_exist_twice = 0;
- unsigned int k = 0;
- unsigned short int *found_index = NULL, index_count, vertex_count = 0;
-
- Eina_Bool exist1 = EINA_FALSE, pushed;
- Eina_Bool equivalent_triangle = EINA_FALSE, triangle_chain = EINA_FALSE;
- Eina_Bool on_plane = EINA_FALSE, right = EINA_FALSE;
-
- eina_array_step_set(&arr_elems, sizeof(Eina_Array), 1);
- eina_array_step_set(&arr_triangles, sizeof(Eina_Array), 1);
- eina_array_step_set(&arr_candidates, sizeof(Eina_Array), 1);
- eina_array_step_set(&arr_ch, sizeof(Eina_Array), 1);
-
- /* Finding of first triangle in convex hull */
- first_elem = convex_hull_first_tr_get(data, count, stride);
-
- eina_array_push(&arr_triangles, &first_elem);
- eina_array_push(&arr_elems, &first_elem);
-
- evas_triangle3_set(&second_elem, &first_elem.p1, &first_elem.p2, &first_elem.p0);
- eina_array_push(&arr_elems, &second_elem);
- eina_array_push(&arr_triangles, &second_elem);
-
- third_elem = malloc(sizeof(Evas_Triangle3));
- evas_triangle3_set(third_elem, &first_elem.p2, &first_elem.p0, &first_elem.p1);
- eina_array_push(&arr_elems, third_elem);
- eina_array_push(&arr_triangles, third_elem);
- eina_array_push(&arr_ch, third_elem);
-
- el = eina_array_data_get(&arr_elems, 0);
-
- /* arr_ellems is an array of triangles, in fact it is a queue of edjes
- because vertices in triangles are ordered, every edje in this queue
- should have a conjugate edje in some other triangle */
- while (eina_array_count(&arr_elems) > 0)
- {
- Evas_Triangle3 *new_elem1 = NULL, *new_elem2 = NULL;
-
- Evas_Triangle3 *elem = eina_array_pop(&arr_elems);
-
- cos = -1.0;
-
- /* searching of next triangle in convex hull as given conjugate edje
- and one new vertex, all vertices should be checked */
- for (i = 0, j = 0; i < count; i++, j += stride)
- {
- if ((EINA_FLT_EQ(elem->p0.x, data[j]) || EINA_FLT_EQ(elem->p0.y, data[j + 1]) ||
- EINA_FLT_EQ(elem->p0.z, data[j + 2])) && (EINA_FLT_EQ(elem->p1.x, data[j]) ||
- EINA_FLT_EQ(elem->p1.y, data[j + 1]) || EINA_FLT_EQ(elem->p1.z, data[j + 2])) &&
- (EINA_FLT_EQ(elem->p2.x, data[j]) || EINA_FLT_EQ(elem->p2.y, data[j + 1]) ||
- EINA_FLT_EQ(elem->p2.z, data[j + 2])))
- {
- next = malloc(sizeof(Eina_Vector3));
- eina_vector3_set(next, data[j], data[j + 1], data[j + 2]);
- pushed = EINA_FALSE;
-
- /* something like the dihedral angle between the triangles
- is a determining factor in searching the necessary points */
-
- eina_vector3_plane_by_points(&normal_a, &elem->p0, &elem->p1, &elem->p2);
- eina_vector3_plane_by_points(&normal_b, &elem->p0, &elem->p1, next);
-
- /* MIN_DIFF because vertices that belong to plain shouldn't be included */
- if (fabs(normal_a.x * data[j] + normal_a.y * data[j + 1] + normal_a.z * data[j + 2] + normal_a.w) < MIN_DIFF)
- {
- /* based on the construction of triangles, parallel but not collinear normal
- means that the triangles overlap, which is the worst case */
- if ((normal_a.x * normal_b.x <= 0) && (normal_a.y * normal_b.y <= 0) && (normal_a.z * normal_b.z <= 0) &&
- ((fabs(normal_a.x) > DBL_EPSILON) || (fabs(normal_a.y) > DBL_EPSILON) || (fabs(normal_a.z) > DBL_EPSILON)) &&
- ((fabs(normal_b.x) > DBL_EPSILON) || (fabs(normal_b.y) > DBL_EPSILON) || (fabs(normal_b.z) > DBL_EPSILON)))
- new_cos = 1.0;
- else new_cos = -1.0;
- }
-
- else
- {
- if (normal_a.x * data[j] + normal_a.y * data[j+1] + normal_a.z * data[j+2] + normal_a.w < 0)
- eina_quaternion_scale(&normal_a, &normal_a, -1);
- if (normal_b.x * elem->p2.x + normal_b.y * elem->p2.y + normal_b.z * elem->p2.z + normal_b.w < 0)
- eina_quaternion_scale(&normal_b, &normal_b, -1);
-
- new_cos = eina_quaternion_angle_plains(&normal_a, &normal_b);
- }
-
- /* MIN_DIFF is more useful for dihedral angles apparently */
- if (new_cos > cos + MIN_DIFF)
- {
- cos = new_cos;
- EINA_ARRAY_ITER_NEXT(&arr_candidates, k, el_vec3, iterator)
- free(el_vec3);
-
- /* Vertex gets into arr_candidates if the corresponding cosine is the maximum */
- eina_array_flush(&arr_candidates);
- eina_array_step_set(&arr_candidates, sizeof(Eina_Array), 1);
- eina_array_push(&arr_candidates, next);
- pushed = EINA_TRUE;
- }
- else if (fabs(new_cos - cos) < MIN_DIFF)
- {
- exist1 = EINA_FALSE;
-
- for (k = 0; (k < eina_array_count(&arr_candidates)) && !exist1; k++)
- {
- next_2d = eina_array_data_get(&arr_candidates, k);
- exist1 = eina_vector3_equivalent(next, next_2d);
- }
- if (!exist1)
- {
- eina_array_push(&arr_candidates, next);
- pushed = EINA_TRUE;
- }
- }
-
- if (!pushed)
- free(next);
- }
- }
-
- on_plane = EINA_FALSE;
- right = EINA_FALSE;
-
- /* The case when several points are found, is discussed below.
- This case is interesting because the convex hull in the
- two-dimensional subspace should be filled further */
- if ((!EINA_FLT_EQ(cos, 1.0)) && (1 < eina_array_count(&arr_candidates)))
- {
- Eina_Vector3 angle_from, angle_to;
- next_2d = eina_array_data_get(&arr_candidates, 0);
- eina_vector3_plane_by_points(&normal_b, &elem->p1, &elem->p0, next_2d);
-
- if (normal_b.x * elem->p2.x + normal_b.y * elem->p2.y + normal_b.z * elem->p2.z + normal_b.w > 0)
- {
- eina_vector3_subtract(&angle_from, &elem->p0, &elem->p1);
- right = EINA_TRUE;
- }
- else
- eina_vector3_subtract(&angle_from, &elem->p1, &elem->p0);
-
- cos_2d = -1.0;
-
- EINA_ARRAY_ITER_NEXT(&arr_candidates, k, next_2d, iterator)
- {
- /* Selection of the required vertex occurs on the basis of a specific angle */
- if (right)
- eina_vector3_subtract(&angle_to, next_2d, &elem->p0);
- else
- eina_vector3_subtract(&angle_to, next_2d, &elem->p1);
-
- new_cos = eina_vector3_dot_product(&angle_from, &angle_to) /
- (eina_vector3_length_get(&angle_from) * eina_vector3_length_get(&angle_to));
- if (new_cos > cos_2d + FLT_EPSILON)
- {
- cos_2d = new_cos;
- best = eina_array_data_get(&arr_candidates, k);
- }
- else if (!EINA_FLT_EQ(new_cos, cos_2d))
- {
- if ((right && (eina_vector3_distance_get(best, &elem->p0) < eina_vector3_length_get(&angle_from))) ||
- (!right && (eina_vector3_distance_get(best, &elem->p1) < eina_vector3_length_get(&angle_from))))
- best = eina_array_data_get(&arr_candidates, k);
- }
- }
- }
-
- /* This event will take place after the previous,
- in fact, choice of first triangle in a new two-dimensional
- convex hull allows to fill it fan counterclockwise when viewed from the inside */
- else if ((EINA_FLT_EQ(cos, 1.0)) && (1 < eina_array_count(&arr_candidates)))
- {
- Eina_Vector3 angle_from, angle_to;
- eina_vector3_subtract(&angle_from, &elem->p0, &elem->p1);
- cos_2d = -1.0;
- EINA_ARRAY_ITER_NEXT(&arr_candidates, k, next_2d, iterator)
- {
- eina_vector3_subtract(&angle_to, next_2d, &elem->p0);
-
- eina_vector3_plane_by_points(&normal_a, &elem->p0, &elem->p1, &elem->p2);
- eina_vector3_plane_by_points(&normal_b, &elem->p0, &elem->p1, next_2d);
- if ((normal_a.x * normal_b.x <= 0) && (normal_a.y * normal_b.y <= 0) && (normal_a.z * normal_b.z <= 0))
- {
- new_cos = eina_vector3_dot_product(&angle_from, &angle_to) /
- (eina_vector3_length_get(&angle_from) * eina_vector3_length_get(&angle_to));
- if (new_cos > cos_2d + FLT_EPSILON)
- {
- cos_2d = new_cos;
- best = eina_array_data_get(&arr_candidates, k);
- }
- else if (!EINA_FLT_EQ(new_cos, cos_2d))
- {
- if (eina_vector3_distance_get(best, &elem->p0) < eina_vector3_length_get(&angle_to))
- best = eina_array_data_get(&arr_candidates, k);
- }
- on_plane = EINA_TRUE;
- }
- }
- }
-
- else
- best = eina_array_data_get(&arr_candidates, 0);
-
- eina_vector3_plane_by_points(&normal_b, &elem->p0, &elem->p1, best);
-
- if_two = 0;
- first_exist_twice = 0;
- second_exist_twice = 0;
- equivalent_triangle = EINA_FALSE;
- triangle_chain = EINA_FALSE;
- eina_vector3_copy(&tmp1, &elem->p0);
- eina_vector3_copy(&tmp2, &elem->p1);
- new_elem1 = malloc(sizeof(Evas_Triangle3));
- evas_triangle3_set(new_elem1, best, &tmp1, &tmp2);
- pushed = EINA_FALSE;
-
- /* verification that the edje has not been found previously */
- EINA_ARRAY_ITER_NEXT(&arr_triangles, k, el, iterator)
- {
- if (convex_hull_triangle3_first_edje(el, &elem->p0, &elem->p1))
- if_two++;
- if (evas_triangle3_equivalent(el, new_elem1))
- equivalent_triangle++;
- }
-
-
- EINA_ARRAY_ITER_NEXT(&arr_triangles, k, el, iterator)
- {
- if ((k > 2) && (convex_hull_triangle3_not_first_edje(el, &elem->p0, best) ||
- convex_hull_triangle3_not_first_edje(el, &elem->p1, best)))
- triangle_chain = EINA_TRUE;
- }
-
- /* There is a specific order according to which the edjes are entered in arr_elems */
- if (!on_plane && !right)
- {
- if ((!equivalent_triangle) && (!second_exist_twice) && (!triangle_chain) && (if_two < 2))
- {
- new_elem2 = malloc(sizeof(Evas_Triangle3));
- evas_triangle3_set(new_elem2, best, &tmp2, &tmp1);
- eina_array_push(&arr_elems, new_elem2);
-
- /* triangles whose edges have been found should be entered into the arr_triangles
- to optimize the algorithm */
- if ((first_exist_twice < 2) && (second_exist_twice < 2))
- eina_array_push(&arr_triangles, eina_array_data_get(&arr_elems, eina_array_count(&arr_elems) - 1));
- }
- if ((!equivalent_triangle) && (!first_exist_twice) && (!triangle_chain) && (if_two < 2))
- {
- eina_array_push(&arr_elems, new_elem1);
- if ((first_exist_twice < 2) && (second_exist_twice < 2))
- {
- pushed = EINA_TRUE;
-
- /* eina_ch is the resultant vector of all triangles in convex hull */
- eina_array_push(&arr_ch, eina_array_data_get(&arr_elems, eina_array_count(&arr_elems) - 1));
- eina_array_push(&arr_triangles, eina_array_data_get(&arr_elems, eina_array_count(&arr_elems) - 1));
- }
- }
- }
-
- else
- {
- if ((!equivalent_triangle) && (!first_exist_twice) && (!triangle_chain) && (if_two < 2))
- {
- eina_array_push(&arr_elems, new_elem1);
- if ((first_exist_twice < 2) && (second_exist_twice < 2))
- {
- pushed = EINA_TRUE;
- eina_array_push(&arr_ch, eina_array_data_get(&arr_elems, eina_array_count(&arr_elems) - 1));
- eina_array_push(&arr_triangles, eina_array_data_get(&arr_elems, eina_array_count(&arr_elems) - 1));
- }
- }
-
- if ((!equivalent_triangle) && (!second_exist_twice) && (!triangle_chain) && (if_two < 2))
- {
- new_elem2 = malloc(sizeof(Evas_Triangle3));
- evas_triangle3_set(new_elem2, best, &tmp2, &tmp1);
- eina_array_push(&arr_elems, new_elem2);
-
- if ((first_exist_twice < 2) && (second_exist_twice < 2))
- eina_array_push(&arr_triangles, eina_array_data_get(&arr_elems, eina_array_count(&arr_elems)-1));
- }
- }
- if (!pushed)
- free (new_elem1);
- }
-
- index_count = 3 * eina_array_count(&arr_ch);
-
- found_vertex = (float*) malloc(10 * sizeof(float));
- found_index = (unsigned short int*) malloc(index_count * sizeof(unsigned short int));
- j = 0;
-
-#define CHECK_AND_SET_VERTEX(coord) \
- exist1 = EINA_FALSE; \
- for (i = 0, new_stride = 0; (i < vertex_count) && !exist1; i++, new_stride += 10) \
- { \
- if ((k > 0) && !EINA_FLT_EQ(el->p##coord.x, found_vertex[new_stride]) && \
- !EINA_FLT_EQ(el->p##coord.y, found_vertex[new_stride + 1]) && \
- !EINA_FLT_EQ(el->p##coord.z, found_vertex[new_stride + 2])) \
- { \
- exist1 = EINA_TRUE; \
- found_index[3 * k + coord] = i; \
- } \
- } \
- if (!exist1) \
- convex_hull_vertex_set(el, &vertex_count, &found_vertex, \
- &found_index, k, &leader, coord);
-
- EINA_ARRAY_ITER_NEXT(&arr_ch, k, el, iterator)
- {
- CHECK_AND_SET_VERTEX(0)
- CHECK_AND_SET_VERTEX(1)
- CHECK_AND_SET_VERTEX(2)
-
- j += 30;
- }
-
- for (i = 0; i < 10 * (vertex_count); i++)
- eina_inarray_push(vertex, &found_vertex[i]);
-
- for (i = 0; i < index_count; i++)
- eina_inarray_push(index, &found_index[i]);
-
- free(found_vertex);
-
- free(found_index);
-
- EINA_ARRAY_ITER_NEXT(&arr_triangles, k, el, iterator)
- {
- if (k > 2)
- free(el);
- }
-
- free(third_elem);
-
- EINA_ARRAY_ITER_NEXT(&arr_candidates, k, el_vec3, iterator)
- free(el_vec3);
-
- eina_array_flush(&arr_candidates);
- eina_array_flush(&arr_ch);
- eina_array_flush(&arr_elems);
- eina_array_flush(&arr_triangles);
-
-#undef CHECK_AND_SET_VERTEX
-
- return;
-}
-
-static inline void
-tangent_space_weighted_sum(Eina_Vector3 *big_t, Eina_Vector3 *little_t,
- Evas_Real *big_angle, Evas_Real little_angle)
-{
- /* one way to calculate tangent in vertex that is found in many triangles */
- eina_vector3_scale(big_t, big_t, *big_angle / (*big_angle + little_angle));
- eina_vector3_scale(little_t, little_t, little_angle / (*big_angle + little_angle));
- eina_vector3_add(big_t, big_t, little_t);
- *big_angle += little_angle;
- return;
-}
-
-
-static inline Evas_Real
-tangent_space_triangle_angle_get(Eina_Vector3 *first, Eina_Vector3 *second, Eina_Vector3 *third)
-{
- Eina_Vector3 a, b, c;
- Evas_Real cos, arccos;
-
- eina_vector3_subtract(&a, second, third);
- eina_vector3_subtract(&b, third, first);
- eina_vector3_subtract(&c, first, second);
-
- cos = -(eina_vector3_length_square_get(&a) - eina_vector3_length_square_get(&b) -
- eina_vector3_length_square_get(&c)) / (2 * eina_vector3_length_get(&b) *
- eina_vector3_length_get(&c));
- arccos = acos(cos);
-
- return arccos;
-}
-
-static inline void
-evas_tangent_space_get(float *data, float *tex_data, float *normal_data, unsigned short int *index, int vertex_count,
- int index_count, int stride, int tex_stride, int normal_stride, float **tangent)
-{
- Eina_Bool if_not_primitive = EINA_FALSE;
- Evas_Real big_angle, little_angle;
- Evas_Triangle3 triangle;
- Eina_Vector2 tex1, tex2, tex3;
- Eina_Vector3 big_tangent, little_tangent, normal;
- Eina_Quaternion *plain = NULL;
- int i, j, k, l, m, found_index = 0;
- int indexes[3];
-
- if (!tex_data)
- {
- ERR("Impossible to calculate tangent space, texture coordinates not found %d %s", __LINE__, __FILE__);
- return;
- }
-
- if (!(*tangent))
- {
- ERR("Failed to allocate memory %d %s", __LINE__, __FILE__);
- return;
- }
-
- float *tmp_tangent = (float*) malloc((3 * vertex_count) * sizeof(float));
- if (tmp_tangent == NULL)
- {
- ERR("Failed to allocate memory %d %s", __LINE__, __FILE__);
- return;
- }
-
- if (index_count == 0)
- {
- if_not_primitive = EINA_TRUE;
- index_count = vertex_count;
- }
-
- for (i = 0, j = 0, k = 0; i < vertex_count; i++, j += stride, k += normal_stride)
- {
- eina_vector3_set(&big_tangent, 0.0, 0.0, 0.0);
- big_angle = 0.0;
- for (l = 0, m = 0; l < vertex_count; l++, m += stride)
- {
- /* tangent for vertex is calculating in each triangle in which the vertex is found */
- if ((fabs(data[j] - data[m]) < FLT_EPSILON) &&
- (fabs(data[j + 1] - data[m + 1]) < FLT_EPSILON) &&
- (fabs(data[j + 2] - data[m + 2]) < FLT_EPSILON) &&
- ((m == j) || ((!EINA_FLT_EQ(tex_data[i * tex_stride], 0.0)) &&
- !EINA_FLT_EQ(tex_data[i * tex_stride + 1], 0.0) &&
- !EINA_FLT_EQ(tex_data[i * tex_stride], 1.0) &&
- !EINA_FLT_EQ(tex_data[i * tex_stride + 1], 1.0))))
- {
- found_index = l;
- for (k = 0; k < index_count; k += 3)
- {
- /* there is no index count and indexes , for models that are not a primitive,
- so we use the vertex count and an ordered array instead of them */
- if (if_not_primitive)
- {
- indexes[0] = k;
- indexes[1] = k + 1;
- indexes[2] = k + 2;
- }
- else
- {
- indexes[0] = index[k];
- indexes[1] = index[k + 1];
- indexes[2] = index[k + 2];
- }
-
- if ((found_index == indexes[0]) ||
- (found_index == indexes[1]) ||
- (found_index == indexes[2]))
- {
- eina_vector3_set(&triangle.p0, data[indexes[0] * stride], data[indexes[0] * stride + 1], data[indexes[0] * stride + 2]);
- eina_vector3_set(&triangle.p1, data[indexes[1] * stride], data[indexes[1] * stride + 1], data[indexes[1] * stride + 2]);
- eina_vector3_set(&triangle.p2, data[indexes[2] * stride], data[indexes[2] * stride + 1], data[indexes[2] * stride + 2]);
- if (plain)
- free(plain);
- plain = malloc(sizeof(Eina_Quaternion));
-
- eina_vector3_plane_by_points(plain, &triangle.p0, &triangle.p1, &triangle.p2);
- tex1.x = tex_data[indexes[0] * tex_stride];
- tex1.y = tex_data[indexes[0] * tex_stride + 1];
- tex2.x = tex_data[indexes[1] * tex_stride];
- tex2.y = tex_data[indexes[1] * tex_stride + 1];
- tex3.x = tex_data[indexes[2] * tex_stride];
- tex3.y = tex_data[indexes[2] * tex_stride + 1];
-
- /* calculate the tangent */
- tangent_new_basis(&little_tangent, &triangle,
- &tex1, &tex2, &tex3);
- eina_vector3_normalize(&little_tangent, &little_tangent);
-
- /* founding the angle in triangle in founded vertex */
- if (found_index == indexes[0])
- little_angle = tangent_space_triangle_angle_get(&triangle.p0, &triangle.p1, &triangle.p2);
-
- else if (found_index == indexes[1])
- little_angle = tangent_space_triangle_angle_get(&triangle.p1, &triangle.p0, &triangle.p2);
-
- else
- little_angle = tangent_space_triangle_angle_get(&triangle.p2, &triangle.p0, &triangle.p1);
-
- if (evas_triangle3_is_line(&triangle))
- eina_vector3_set(&big_tangent, 1.0, 0.0, 0.0);
-
- else
- tangent_space_weighted_sum(&big_tangent, &little_tangent, &big_angle, little_angle);
- }
- }
- }
- }
- eina_vector3_set(&normal, normal_data[j], normal_data[j + 1], normal_data[j + 2]);
- eina_vector3_orthogonal_projection_on_plane(&big_tangent, &big_tangent, &normal);
- eina_vector3_normalize(&big_tangent, &big_tangent);
- tmp_tangent[i * 3] = big_tangent.x;
- tmp_tangent[i * 3 + 1] = big_tangent.y;
- tmp_tangent[i * 3 + 2] = big_tangent.z;
- }
-
-
- memcpy(*tangent, tmp_tangent, (3 * vertex_count) * sizeof(float));
- free(tmp_tangent);
- free(plain);
-
- return;
-}
-
-static inline void
-calculate_box(Evas_Box3 *box3, int vertex_count, Eina_Vector3 *vertex_position)
-{
- int i = 0;
- float vxmin, vymin, vzmin, vxmax, vymax, vzmax;
-
- vxmax = vxmin = vertex_position[0].x;
- vymax = vymin = vertex_position[0].y;
- vzmax = vzmin = vertex_position[0].z;
-
- for (i = 1; i < vertex_count; ++i)
- {
- if (vxmin > vertex_position[i].x) vxmin = vertex_position[i].x;
- if (vxmax < vertex_position[i].x) vxmax = vertex_position[i].x;
- if (vymin > vertex_position[i].y) vymin = vertex_position[i].y;
- if (vymax < vertex_position[i].y) vymax = vertex_position[i].y;
- if (vzmin > vertex_position[i].z) vzmin = vertex_position[i].z;
- if (vzmax < vertex_position[i].z) vzmax = vertex_position[i].z;
- }
- evas_box3_set(box3, vxmin, vymin, vzmin, vxmax, vymax, vzmax);
-}
-
-static inline void
-calculate_sphere(Evas_Sphere *sphere, int vertex_count, Eina_Vector3 *vertex_position)
-{
- float radius = 0.0001f;
- Eina_Vector3 center, pos, diff;
- float len, alpha, alpha2;
- int i, k;
-
- // shuffle array for averaging algorithms error
- for (i = 0; i < vertex_count; i++)
- {
- k = i + rand()%(vertex_count-i);
- pos = vertex_position[i];
- vertex_position[i] = vertex_position[k];
- vertex_position[k] = pos;
- }
-
- center = vertex_position[0];
-
- for (k = 0; k < 2; k++)
- {
- for (i = 0; i < vertex_count; ++i)
- {
- pos = vertex_position[i];
- eina_vector3_subtract(&diff, &pos, &center);
- len = eina_vector3_length_get(&diff);
- if (len > radius)
- {
- alpha = len / radius;
- alpha2 = alpha * alpha;
- radius = 0.5f * (alpha + 1 / alpha) * radius;
- eina_vector3_scale(&pos, &pos, 1 - 1 / alpha2);
- eina_vector3_scale(&center, &center, (1 + 1 / alpha2));
- eina_vector3_add(&center, &center, &pos);
- eina_vector3_scale(&center, &center, 0.5f);
- }
- }
- }
-
- for (i = 0; i < vertex_count; ++i)
- {
- pos = vertex_position[i];
- eina_vector3_subtract(&diff, &pos, &center);
- len = eina_vector3_length_get(&diff);
-
- if (len > radius)
- {
- radius = (radius + len) / 2.0f;
- eina_vector3_scale(&diff, &diff, (len - radius) / len);
- eina_vector3_add(&center, &center, &diff);
- }
- }
-
- sphere->radius = radius;
- sphere->center = center;
-}
diff --git a/src/lib/evas/include/evas_common_private.h b/src/lib/evas/include/evas_common_private.h
index b2d63476a2..0190b27163 100644
--- a/src/lib/evas/include/evas_common_private.h
+++ b/src/lib/evas/include/evas_common_private.h
@@ -85,9 +85,6 @@
#define lround(x) (((x) < 0) ? (long int)ceil((x) - 0.5) : (long int)floor((x) + 0.5))
#endif
-/*macro to be used in eet loader/saver*/
-#define EVAS_CANVAS3D_FILE_CACHE_FILE_ENTRY "evas_3d file"
-
/* macros needed to log message through eina_log */
extern EAPI int _evas_log_dom_global;
#ifdef _EVAS_DEFAULT_LOG_DOM
diff --git a/src/lib/evas/include/evas_inline.x b/src/lib/evas/include/evas_inline.x
index a67616e47c..9905d49f28 100644
--- a/src/lib/evas/include/evas_inline.x
+++ b/src/lib/evas/include/evas_inline.x
@@ -166,7 +166,7 @@ evas_object_is_source_invisible(Evas_Object *eo_obj EINA_UNUSED, Evas_Object_Pro
{
if (obj->parent_cache.src_invisible_valid)
return obj->parent_cache.src_invisible;
- if ((obj->proxy->proxies || obj->proxy->proxy_textures) && obj->proxy->src_invisible) return 1;
+ if (obj->proxy->proxies && obj->proxy->src_invisible) return 1;
if (!obj->smart.parent) return 0;
if (obj->mask->is_mask) return 0;
Evas_Object_Protected_Data *smart_parent_pd =
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index 3aa70bf3f8..036ef71ca9 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -15,8 +15,6 @@
#include "../file/evas_module.h"
#include "../file/evas_path.h"
-#include "evas_3d_utils.h"
-
#ifdef EAPI
# undef EAPI
@@ -84,7 +82,6 @@ typedef struct _Evas_Object_Proxy_Data Evas_Object_Proxy_Data;
typedef struct _Evas_Object_Map_Data Evas_Object_Map_Data;
typedef struct _Evas_Object_Events_Data Evas_Object_Events_Data;
typedef struct _Evas_Proxy_Render_Data Evas_Proxy_Render_Data;
-typedef struct _Evas_Object_3D_Data Evas_Object_3D_Data;
typedef struct _Evas_Object_Mask_Data Evas_Object_Mask_Data;
typedef struct _Evas_Object_Pointer_Data Evas_Object_Pointer_Data;
@@ -104,405 +101,10 @@ typedef struct _Evas_Pointer_Data Evas_Pointer_Data;
typedef struct _Evas_Filter_Command Evas_Filter_Command;
typedef enum _Evas_Filter_Support Evas_Filter_Support;
-// 3D stuff
-
-#define EVAS_CANVAS3D_VERTEX_ATTRIB_COUNT 5
-#define EVAS_CANVAS3D_MATERIAL_ATTRIB_COUNT 5
-
-typedef struct _Evas_Canvas3D_Object Evas_Canvas3D_Object_Data;
-typedef struct _Evas_Canvas3D_Scene_Public_Data Evas_Canvas3D_Scene_Public_Data;
-typedef struct _Evas_Canvas3D_Vertex_Buffer Evas_Canvas3D_Vertex_Buffer;
-typedef struct _Evas_Canvas3D_Mesh_Frame Evas_Canvas3D_Mesh_Frame;
-typedef struct _Evas_Canvas3D_Node_Mesh Evas_Canvas3D_Node_Mesh;
-typedef struct _Evas_Canvas3D_Object_Func Evas_Canvas3D_Object_Func;
-typedef struct _Evas_Canvas3D_Pick_Data Evas_Canvas3D_Pick_Data;
-typedef struct _Evas_Canvas3D_Interpolate_Vertex_Buffer Evas_Canvas3D_Interpolate_Vertex_Buffer;
-
-typedef struct _Evas_Canvas3D_Scene Evas_Canvas3D_Scene_Data;
-typedef struct _Evas_Canvas3D_Node Evas_Canvas3D_Node_Data;
-typedef struct _Evas_Canvas3D_Mesh Evas_Canvas3D_Mesh_Data;
-typedef struct _Evas_Canvas3D_Camera Evas_Canvas3D_Camera_Data;
-typedef struct _Evas_Canvas3D_Light Evas_Canvas3D_Light_Data;
-typedef struct _Evas_Canvas3D_Material Evas_Canvas3D_Material_Data;
-typedef struct _Evas_Canvas3D_Texture Evas_Canvas3D_Texture_Data;
-typedef struct _Evas_Canvas3D_Primitive Evas_Canvas3D_Primitive_Data;
-
-/* Structs for mesh eet saver/loader */
-typedef struct _Evas_Canvas3D_Vec2_Eet Evas_Canvas3D_Vec2_Eet;
-typedef struct _Evas_Canvas3D_Vec3_Eet Evas_Canvas3D_Vec3_Eet;
-typedef struct _Evas_Canvas3D_Vertex_Eet Evas_Canvas3D_Vertex_Eet;
-typedef struct _Evas_Canvas3D_Geometry_Eet Evas_Canvas3D_Geometry_Eet;
-typedef struct _Evas_Canvas3D_Color_Eet Evas_Canvas3D_Color_Eet;
-typedef struct _Evas_Canvas3D_Material_Eet Evas_Canvas3D_Material_Eet;
-typedef struct _Evas_Canvas3D_Frame_Eet Evas_Canvas3D_Frame_Eet;
-typedef struct _Evas_Canvas3D_Mesh_Eet Evas_Canvas3D_Mesh_Eet;
-typedef struct _Evas_Canvas3D_Header_Eet Evas_Canvas3D_Header_Eet;
-typedef struct _Evas_Canvas3D_File_Eet Evas_Canvas3D_File_Eet;
-
typedef struct _Vg_File_Data Vg_File_Data;
typedef struct _Vg_File_Anim_Data Vg_File_Anim_Data;
typedef struct _Vg_File_Anim_Data_Marker Vg_File_Anim_Data_Marker;
-struct _Evas_Canvas3D_Vec2_Eet
-{
- float x;
- float y;
-};
-
-struct _Evas_Canvas3D_Vec3_Eet
-{
- float x;
- float y;
- float z;
-};
-
-struct _Evas_Canvas3D_Vertex_Eet
-{
- Evas_Canvas3D_Vec3_Eet position;
- Evas_Canvas3D_Vec3_Eet normal;
- Evas_Canvas3D_Vec2_Eet texcoord;
-};//one point of mesh
-
-struct _Evas_Canvas3D_Geometry_Eet
-{
- unsigned int id;
- int vertices_count;
- Evas_Canvas3D_Vertex_Eet *vertices;
-};//contain array of vertices and id for using in Evas_Canvas3D_Frame_Eet in future
-
-struct _Evas_Canvas3D_Color_Eet
-{
- float r;
- float g;
- float b;
- float a;
-};
-
-struct _Evas_Canvas3D_Material_Eet
-{
- int id;
- float shininess;
- int colors_count;
- Evas_Canvas3D_Color_Eet *colors;//Color per attribute (ambient, diffuse, specular etc.)
-};
-
-struct _Evas_Canvas3D_Frame_Eet
-{
- int id;
- int geometry_id;
- int material_id;
-};//only ids to prevent of spending of memory when animation will change only geometry or only material
-
-struct _Evas_Canvas3D_Mesh_Eet
-{
- int materials_count;
- int frames_count;
- int geometries_count;
- Evas_Canvas3D_Material_Eet *materials;
- Evas_Canvas3D_Frame_Eet *frames;
- Evas_Canvas3D_Geometry_Eet *geometries;
-};//contain materials, geometries and bounding between it (frames)
-
-struct _Evas_Canvas3D_Header_Eet
-{
- int version;
- int *materials;//colors_count
- int materials_count;
- int *geometries;//vertices_count
- int geometries_count;
- int frames;
-};//can be use for fast allocating of memory
-
-struct _Evas_Canvas3D_File_Eet
-{
- Evas_Canvas3D_Mesh_Eet *mesh;
- Evas_Canvas3D_Header_Eet *header;
-};//contain mesh data and information about mesh size
-
-typedef Eina_Bool (*Evas_Canvas3D_Node_Func)(Evas_Canvas3D_Node *, void *data);
-
-
-typedef enum _Evas_Canvas3D_Node_Traverse_Type
-{
- EVAS_CANVAS3D_NODE_TRAVERSE_DOWNWARD,
- EVAS_CANVAS3D_NODE_TRAVERSE_UPWARD,
-} Evas_Canvas3D_Node_Traverse_Type;
-
-typedef enum _Evas_Canvas3D_Tree_Traverse_Type
-{
- EVAS_CANVAS3D_TREE_TRAVERSE_PRE_ORDER,
- EVAS_CANVAS3D_TREE_TRAVERSE_ANY_ORDER = EVAS_CANVAS3D_TREE_TRAVERSE_PRE_ORDER,
- EVAS_CANVAS3D_TREE_TRAVERSE_POST_ORDER,
- EVAS_CANVAS3D_TREE_TRAVERSE_LEVEL_ORDER,
-} Evas_Canvas3D_Tree_Traverse_Type;
-
-
-struct _Evas_Canvas3D_Object
-{
- Evas *evas;
- Evas_Canvas3D_Object_Type type;
-
- Eina_Bool dirty[EVAS_CANVAS3D_STATE_MAX];
-};
-
-struct _Evas_Canvas3D_Scene
-{
- Evas_Canvas3D_Node *root_node;
- Evas_Canvas3D_Node *camera_node;
- Evas_Color bg_color;
- Eina_Bool shadows_enabled :1;
- Eina_Bool color_pick_enabled :1;
-
- void *surface;
- int w, h;
- Eina_List *images;
-
- Eina_Hash *node_mesh_colors;
- Eina_Hash *colors_node_mesh;
- /*sets constant for shadow rendering*/
- Evas_Real depth_offset;
- Evas_Real depth_constant;
-};
-
-struct _Evas_Canvas3D_Node_Mesh
-{
- Evas_Canvas3D_Node *node;
- Evas_Canvas3D_Mesh *mesh;
- int frame;
-};
-
-struct _Evas_Canvas3D_Node
-{
- Eina_List *members;
- Evas_Canvas3D_Node *parent;
- Evas_Canvas3D_Node *billboard_target;
-
- Eina_Vector3 position;
- Eina_Quaternion orientation;
- Eina_Vector3 scale;
-
- Eina_Vector3 position_world;
- Eina_Quaternion orientation_world;
- Eina_Vector3 scale_world;
-
- Evas_Box3 aabb;
- Evas_Box3 obb;
- Evas_Sphere bsphere;
-
- Evas_Canvas3D_Node_Type type;
-
- /* Camera node. */
- union {
- struct {
- Evas_Canvas3D_Camera *camera;
- Eina_Matrix4 matrix_world_to_eye;
- } camera;
-
- struct {
- Evas_Canvas3D_Light *light;
- Eina_Matrix4 matrix_local_to_world;
- } light;
-
- struct {
- Eina_List *meshes;
- Eina_Hash *node_meshes;
- Eina_Matrix4 matrix_local_to_world;
- } mesh;
- } data;
-
- /* Scene using this node as root. */
- Eina_Hash *scenes_root;
-
- /* Scene using this node as camera. */
- Eina_Hash *scenes_camera;
-
- Eina_Bool position_inherit : 1;
- Eina_Bool orientation_inherit : 1;
- Eina_Bool scale_inherit : 1;
- Eina_Bool lod : 1;
-};
-
-struct _Evas_Canvas3D_Camera
-{
- Eina_Matrix4 projection;
- Eina_Hash *nodes;
-};
-
-struct _Evas_Canvas3D_Light
-{
- Evas_Color ambient;
- Evas_Color diffuse;
- Evas_Color specular;
-
- Eina_Bool directional;
- Evas_Real spot_exp;
- Evas_Real spot_cutoff;
- Evas_Real spot_cutoff_cos;
-
- Eina_Bool enable_attenuation;
- Evas_Real atten_const;
- Evas_Real atten_linear;
- Evas_Real atten_quad;
- Eina_Matrix4 projection;
-
- Eina_Hash *nodes;
-};
-
-struct _Evas_Canvas3D_Vertex_Buffer
-{
- int element_count;
- int stride;
- void *data;
- int size;
- Eina_Bool owns_data;
- Eina_Bool mapped;
-};
-
-struct _Evas_Canvas3D_Interpolate_Vertex_Buffer
-{
- void *data0;
- int stride0;
- int size0;
-
- void *data1;
- int stride1;
- int size1;
-
- Evas_Real weight;
-};
-
-struct _Evas_Canvas3D_Mesh_Frame
-{
- Evas_Canvas3D_Mesh *mesh;
-
- int frame;
- Evas_Canvas3D_Material *material;
- Evas_Box3 aabb;
-
- Evas_Canvas3D_Vertex_Buffer vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_COUNT];
-};
-
-struct _Evas_Canvas3D_Mesh
-{
- Evas_Canvas3D_Shader_Mode shader_mode;
-
- int vertex_count;
- int frame_count;
- Eina_List *frames;
-
- Evas_Canvas3D_Index_Format index_format;
- int index_count;
- void *indices;
- int index_size;
- Eina_Bool owns_indices;
- Eina_Bool index_mapped;
-
- Evas_Canvas3D_Vertex_Assembly assembly;
-
- Eina_Hash *nodes;
- Eina_Bool shadowed;
-
- Eina_Bool blending :1;
- Evas_Canvas3D_Blend_Func blend_sfactor;
- Evas_Canvas3D_Blend_Func blend_dfactor;
-
- Evas_Canvas3D_Comparison alpha_comparison;
- Evas_Real alpha_ref_value;
- Eina_Bool alpha_test_enabled :1;
-
- Evas_Color fog_color;
- Eina_Bool fog_enabled :1;
- Evas_Color color_pick_key;
- Eina_Bool color_pick_enabled :1;
- /*sets of the quality and offsets for shadow rendering*/
- int shadows_edges_filtering_level;
- Evas_Real shadows_edges_size;
- Evas_Real shadows_constant_bias;
- Evas_Real near_lod_boundary;
- Evas_Real far_lod_boundary;
-};
-
-struct _Evas_Canvas3D_Texture
-{
- /* List of materials using this texture. */
- Eina_Hash *materials;
-
- /* Proxy data. */
- Evas_Object *source;
- Eina_Bool proxy_rendering;
- void *proxy_surface;
- /* Engine-side object. */
- void *engine_data;
-
- Eina_File *f;
- const char *key;
-
- /*Use atlases, @EINA_TRUE by default*/
- Eina_Bool atlas_enable :1;
-};
-
-struct _Evas_Canvas3D_Material
-{
- struct {
- Eina_Bool enable;
- Evas_Color color;
- Evas_Canvas3D_Texture *texture;
- } attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_COUNT];
-
- Evas_Real shininess;
-
- Eina_Hash *meshes;
-};
-
-struct _Evas_Canvas3D_Primitive
-{
- Evas_Canvas3D_Mesh_Primitive form;
- Evas_Canvas3D_Primitive_Mode mode;
- Evas_Real ratio;
- int precision;
- Evas_Canvas3D_Surface_Func *surface;
-
- Eina_Vector2 tex_scale;
-};
-
-struct _Evas_Canvas3D_Scene_Public_Data
-{
- Evas_Color bg_color;
- Evas_Canvas3D_Node *camera_node;
- Eina_List *light_nodes;
- Eina_List *mesh_nodes;
- Eina_Bool shadows_enabled :1;
- Eina_Bool color_pick_enabled :1;
- Eina_Hash *node_mesh_colors;
- Eina_Hash *colors_node_mesh;
-
- /*sets constant for shadow rendering*/
- Evas_Real depth_offset;
- Evas_Real depth_constant;
- Eina_Bool render_to_texture;
-
- unsigned int lod_distance;
-
- Eina_Bool post_processing :1;
- Evas_Canvas3D_Shader_Mode post_processing_type;
-};
-
-struct _Evas_Canvas3D_Pick_Data
-{
- /* Input */
- Evas_Real x, y;
- Eina_Matrix4 matrix_vp;
- Evas_Ray3 ray_world;
-
- /* Output */
- Eina_Bool picked;
- Evas_Real z;
- Evas_Canvas3D_Node *node;
- Evas_Canvas3D_Mesh *mesh;
- Evas_Real u, v;
- Evas_Real s, t;
-};
-
/* General types - used for script type chceking */
#define OPAQUE_TYPE(type) struct __##type { int a; }; \
typedef struct __##type type
@@ -1005,7 +607,6 @@ struct _Evas_Map
struct _Evas_Object_Proxy_Data
{
Eina_List *proxies;
- Eina_List *proxy_textures;
void *surface;
int w,h;
Eina_List *src_event_in;
@@ -1033,12 +634,6 @@ struct _Evas_Object_Map_Data
RGBA_Map *spans;
};
-struct _Evas_Object_3D_Data
-{
- void *surface;
- int w, h;
-};
-
// Mask clipper information
struct _Evas_Object_Mask_Data
{
@@ -1142,7 +737,6 @@ struct _Evas_Object_Protected_Data
// Eina_Cow pointer be careful when writing to it
const Evas_Object_Proxy_Data *proxy;
const Evas_Object_Map_Data *map;
- const Evas_Object_3D_Data *data_3d;
const Evas_Object_Mask_Data *mask;
const Evas_Object_Events_Data *events;
@@ -1490,29 +1084,6 @@ struct _Evas_Func
void (*context_flush) (void *engine);
- /* 3D features */
- void *(*drawable_new) (void *engine, int w, int h, int alpha);
- void (*drawable_free) (void *engine, void *drawable);
- void (*drawable_size_get) (void *engine, void *drawable, int *w, int *h);
- void *(*image_drawable_set) (void *engine, void *image, void *drawable);
- void (*drawable_texture_rendered_pixels_get) (unsigned int tex, int x, int y, int w, int h, void *drawable EINA_UNUSED, void *data);
- void (*drawable_scene_render) (void *engine, void *data, void *drawable, void *scene_data);
- Eina_Bool (*drawable_scene_render_to_texture) (void *engine, void *drawable, void *scene_data);
-
- int (*drawable_texture_color_pick_id_get) (void *drawable);
- int (*drawable_texture_target_id_get) (void *drawable);
- void (*drawable_texture_pixel_color_get) (unsigned int tex EINA_UNUSED, int x, int y, Evas_Color *color, void *drawable);
-
- void *(*texture_new) (void *engine, Eina_Bool use_atlas);
- void (*texture_free) (void *engine, void *texture);
- void (*texture_size_get) (void *engine, void *texture, int *w, int *h);
- void (*texture_wrap_set) (void *engine, void *texture, Evas_Canvas3D_Wrap_Mode s, Evas_Canvas3D_Wrap_Mode t);
- void (*texture_wrap_get) (void *engine, void *texture, Evas_Canvas3D_Wrap_Mode *s, Evas_Canvas3D_Wrap_Mode *t);
- void (*texture_filter_set) (void *engine, void *texture, Evas_Canvas3D_Texture_Filter min, Evas_Canvas3D_Texture_Filter mag);
- void (*texture_filter_get) (void *engine, void *texture, Evas_Canvas3D_Texture_Filter *min, Evas_Canvas3D_Texture_Filter *mag);
- void (*texture_image_set) (void *engine, void *texture, void *image);
- void *(*texture_image_get) (void *engine, void *texture);
-
Ector_Surface *(*ector_create) (void *engine);
void (*ector_destroy) (void *engine, Ector_Surface *surface);
Ector_Buffer *(*ector_buffer_wrap) (void *engine, Evas *e, void *engine_image);
@@ -1730,61 +1301,6 @@ Eina_Bool _efl_canvas_object_efl_gfx_entity_size_set_block(Eo *eo_obj, Evas_Obje
void _evas_focus_device_invalidate_cb(void *data, const Efl_Event *ev);
-/* Node functions. */
-void evas_canvas3d_node_traverse(Evas_Canvas3D_Node *from, Evas_Canvas3D_Node *to, Evas_Canvas3D_Node_Traverse_Type type, Eina_Bool skip, Evas_Canvas3D_Node_Func func, void *data);
-void evas_canvas3d_node_tree_traverse(Evas_Canvas3D_Node *root, Evas_Canvas3D_Tree_Traverse_Type type, Eina_Bool skip, Evas_Canvas3D_Node_Func func, void *data);
-Eina_Bool evas_canvas3d_node_mesh_collect(Evas_Canvas3D_Node *node, void *data);
-Eina_Bool evas_canvas3d_node_color_node_mesh_collect(Evas_Canvas3D_Node *node, void *data);
-Eina_Bool evas_canvas3d_node_light_collect(Evas_Canvas3D_Node *node, void *data);
-void evas_canvas3d_node_scene_root_add(Evas_Canvas3D_Node *node, Evas_Canvas3D_Scene *scene);
-void evas_canvas3d_node_scene_root_del(Evas_Canvas3D_Node *node, Evas_Canvas3D_Scene *scene);
-void evas_canvas3d_node_scene_camera_add(Evas_Canvas3D_Node *node, Evas_Canvas3D_Scene *scene);
-void evas_canvas3d_node_scene_camera_del(Evas_Canvas3D_Node *node, Evas_Canvas3D_Scene *scene);
-Eina_Bool node_aabb_update(Evas_Canvas3D_Node *node, void *data EINA_UNUSED);
-
-/* Camera functions. */
-void evas_canvas3d_camera_node_add(Evas_Canvas3D_Camera *camera, Evas_Canvas3D_Node *node);
-void evas_canvas3d_camera_node_del(Evas_Canvas3D_Camera *camera, Evas_Canvas3D_Node *node);
-
-/* Light functions. */
-void evas_canvas3d_light_node_add(Evas_Canvas3D_Light *light, Evas_Canvas3D_Node *node);
-void evas_canvas3d_light_node_del(Evas_Canvas3D_Light *light, Evas_Canvas3D_Node *node);
-
-/* Mesh functions. */
-void evas_canvas3d_mesh_node_add(Evas_Canvas3D_Mesh *mesh, Evas_Canvas3D_Node *node);
-void evas_canvas3d_mesh_node_del(Evas_Canvas3D_Mesh *mesh, Evas_Canvas3D_Node *node);
-void evas_canvas3d_mesh_interpolate_position_get(Eina_Vector3 *out, const Evas_Canvas3D_Vertex_Buffer *pos0, const Evas_Canvas3D_Vertex_Buffer *pos1, Evas_Real weight, int index);
-void evas_canvas3d_mesh_interpolate_vertex_buffer_get(Evas_Canvas3D_Mesh *mesh, int frame, Evas_Canvas3D_Vertex_Attrib attrib, Evas_Canvas3D_Vertex_Buffer *buffer0, Evas_Canvas3D_Vertex_Buffer *buffer1, Evas_Real *weight);
-void evas_canvas3d_mesh_file_md2_set(Evas_Canvas3D_Mesh *mesh, const char *file);
-void evas_canvas3d_mesh_save_obj(Evas_Canvas3D_Mesh *mesh, const char *file, Evas_Canvas3D_Mesh_Frame *f);
-void evas_canvas3d_mesh_file_obj_set(Evas_Canvas3D_Mesh *mesh, const char *file);
-Eina_Bool evas_canvas3d_mesh_aabb_add_to_frame(Evas_Canvas3D_Mesh_Data *pd, int frame, int stride);
-void evas_canvas3d_mesh_file_eet_set(Evas_Canvas3D_Mesh *mesh, const char *file);
-void evas_canvas3d_mesh_save_eet(Evas_Canvas3D_Mesh *mesh, const char *file, Evas_Canvas3D_Mesh_Frame *f);
-void evas_canvas3d_mesh_file_ply_set(Evas_Canvas3D_Mesh *mesh, const char *file);
-void evas_canvas3d_mesh_save_ply(Evas_Canvas3D_Mesh *mesh, const char *file, Evas_Canvas3D_Mesh_Frame *f);
-
-/* Texture functions. */
-void evas_canvas3d_texture_material_add(Evas_Canvas3D_Texture *texture, Evas_Canvas3D_Material *material);
-void evas_canvas3d_texture_material_del(Evas_Canvas3D_Texture *texture, Evas_Canvas3D_Material *material);
-
-
-/* Material functions. */
-void evas_canvas3d_material_mesh_add(Evas_Canvas3D_Material *material, Evas_Canvas3D_Mesh *mesh);
-void evas_canvas3d_material_mesh_del(Evas_Canvas3D_Material *material, Evas_Canvas3D_Mesh *mesh);
-
-/* Scene functions. */
-void evas_canvas3d_scene_data_init(Evas_Canvas3D_Scene_Public_Data *data);
-void evas_canvas3d_scene_data_fini(Evas_Canvas3D_Scene_Public_Data *data);
-
-/* Eet saver/loader functions */
-Evas_Canvas3D_File_Eet *_evas_canvas3d_eet_file_new(void);
-Eet_Data_Descriptor* _evas_canvas3d_eet_file_get();
-void _evas_canvas3d_eet_file_init();
-void _evas_canvas3d_eet_descriptor_shutdown();
-void _evas_canvas3d_eet_file_free(Evas_Canvas3D_File_Eet* eet_file);
-
-
/* Filters */
void evas_filter_init(void);
void evas_filter_shutdown(void);
@@ -1797,29 +1313,6 @@ void _efl_gfx_mapping_update(Eo *eo_obj);
/* Ector */
Ector_Surface *evas_ector_get(Evas_Public_Data *evas);
-/* Temporary save/load functions */
-void evas_common_load_model_from_file(Evas_Canvas3D_Mesh *model, const char *file);
-void evas_common_load_model_from_eina_file(Evas_Canvas3D_Mesh *model, const Eina_File *file);
-void evas_common_save_model_to_file(const Evas_Canvas3D_Mesh *model, const char *file, Evas_Canvas3D_Mesh_Frame *f);
-void evas_model_load_file_eet(Evas_Canvas3D_Mesh *mesh, Eina_File *file);
-void evas_model_load_file_md2(Evas_Canvas3D_Mesh *mesh, Eina_File *file);
-void evas_model_load_file_obj(Evas_Canvas3D_Mesh *mesh, Eina_File *file);
-void evas_model_load_file_ply(Evas_Canvas3D_Mesh *mesh, Eina_File *file);
-void evas_model_save_file_eet(const Evas_Canvas3D_Mesh *mesh, const char *file, Evas_Canvas3D_Mesh_Frame *f);
-void evas_model_save_file_obj(const Evas_Canvas3D_Mesh *mesh, const char *file, Evas_Canvas3D_Mesh_Frame *f);
-void evas_model_save_file_ply(const Evas_Canvas3D_Mesh *mesh, const char *file, Evas_Canvas3D_Mesh_Frame *f);
-
-/* Primitives functions */
-void evas_common_set_model_from_primitive(Evas_Canvas3D_Mesh *model, int frame, Evas_Canvas3D_Primitive_Data *primitive);
-void evas_model_set_from_square_primitive(Evas_Canvas3D_Mesh *mesh, int frame);
-void evas_model_set_from_cube_primitive(Evas_Canvas3D_Mesh *mesh, int frame);
-void evas_model_set_from_cylinder_primitive(Evas_Canvas3D_Mesh *mesh, int frame, Evas_Canvas3D_Primitive_Mode mode, int precision, Eina_Vector2 tex_scale);
-void evas_model_set_from_cone_primitive(Evas_Canvas3D_Mesh *mesh, int frame, Evas_Canvas3D_Primitive_Mode mode, int precision, Eina_Vector2 tex_scale);
-void evas_model_set_from_sphere_primitive(Evas_Canvas3D_Mesh *mesh, int frame, Evas_Canvas3D_Primitive_Mode mode, int precision, Eina_Vector2 tex_scale);
-void evas_model_set_from_torus_primitive(Evas_Canvas3D_Mesh *mesh, int frame, Evas_Real ratio, int precision, Eina_Vector2 tex_scale);
-void evas_model_set_from_surface_primitive(Evas_Canvas3D_Mesh *mesh, int frame, Evas_Canvas3D_Surface_Func func, int precision, Eina_Vector2 tex_scale);
-void evas_model_set_from_terrain_primitive(Evas_Canvas3D_Mesh *mesh, int frame, int precision, Eina_Vector2 tex_scale);
-
/* Filter functions */
Eina_Bool evas_filter_object_render(Eo *eo_obj, Evas_Object_Protected_Data *obj, void *engine, void *output, void *context, void *surface, int x, int y, Eina_Bool do_async, Eina_Bool alpha);
@@ -1963,8 +1456,6 @@ extern Eina_Cow *evas_object_proxy_cow;
extern Eina_Cow *evas_object_map_cow;
extern Eina_Cow *evas_object_state_cow;
-extern Eina_Cow *evas_object_3d_cow;
-
extern Eina_Cow *evas_object_image_pixels_cow;
extern Eina_Cow *evas_object_image_load_opts_cow;
extern Eina_Cow *evas_object_image_state_cow;
diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build
index 94f81ae0a5..a83a5e73e0 100644
--- a/src/lib/evas/meson.build
+++ b/src/lib/evas/meson.build
@@ -47,10 +47,6 @@ evas_vg_loaders_file = [
evas_vg_savers_file = ['eet', 'svg']
-evas_model_savers_file = ['eet', 'obj', 'ply']
-
-evas_model_loaders_file = ['eet', 'md2', 'obj', 'ply']
-
rel_evas_modules = join_paths('..', '..', '..', 'modules', 'evas', 'engines', 'software_generic')
evas_deps = [eo, eet, eina, efl, emile, ector, ecore, buildsystem, intl]
pub_eo_file_target = []
@@ -130,8 +126,6 @@ evas_header_src = [
evas_include_directories += [
include_directories('.'),
include_directories('common'),
- include_directories('common3d'),
- include_directories(join_paths('common3d', 'save_load')),
include_directories('include'),
include_directories('filters'),
vg_common_inc_dir
@@ -181,7 +175,6 @@ subdir('canvas')
subdir('gesture')
subdir('filters')
subdir('cache')
-subdir('common3d')
subdir('file')
subdir('vg')
@@ -286,22 +279,6 @@ foreach loader : evas_vg_savers_file
endif
endforeach
-foreach loader : evas_model_loaders_file
- file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'model_loaders', loader, 'evas_model_load_'+loader+'.c')
-
- evas_static_list += [declare_dependency(
- sources: file,
- )]
-endforeach
-
-foreach loader : evas_model_savers_file
- file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'model_savers', loader, 'evas_model_save_'+loader+'.c')
-
- evas_static_list += [declare_dependency(
- sources: file,
- )]
-endforeach
-
evas_lib = library('evas',
include_directories: evas_include_directories + [vg_common_inc_dir],
sources : [evas_src, pub_eo_file_target, priv_eo_file_target],
diff --git a/src/modules/evas/engines/gl_common/evas_gl_3d.c b/src/modules/evas/engines/gl_common/evas_gl_3d.c
deleted file mode 100644
index 83cc0738ee..0000000000
--- a/src/modules/evas/engines/gl_common/evas_gl_3d.c
+++ /dev/null
@@ -1,1494 +0,0 @@
-#include "evas_gl_private.h"
-#include "evas_gl_3d_private.h"
-
-#define CHECK_LOD_DISTANCE \
- if (pd_mesh_node->lod) \
- { \
- if (pdmesh->near_lod_boundary > data->lod_distance) \
- continue; \
- else if ((pdmesh->near_lod_boundary < data->lod_distance) && \
- (pdmesh->far_lod_boundary < data->lod_distance)) \
- continue; \
- }
-
-#define RENDER_MESH_NODE_ITERATE_BEGIN(param) \
- Eina_Matrix4 matrix_mv; \
- Eina_Matrix4 matrix_mvp; \
- Eina_Iterator *it; \
- void *ptr; \
- eina_matrix4_multiply(&matrix_mv, matrix_##param, &pd_mesh_node->data.mesh.matrix_local_to_world); \
- eina_matrix4_multiply(&matrix_mvp, &pd->projection, &matrix_mv); \
- it = eina_hash_iterator_data_new(pd_mesh_node->data.mesh.node_meshes); \
- while (eina_iterator_next(it, &ptr)) \
- { \
- Evas_Canvas3D_Node_Mesh *nm = (Evas_Canvas3D_Node_Mesh *)ptr; \
- Evas_Canvas3D_Mesh_Data *pdmesh = efl_data_scope_get(nm->mesh, EVAS_CANVAS3D_MESH_CLASS); \
- CHECK_LOD_DISTANCE
-
-#define RENDER_MESH_NODE_ITERATE_END \
- } \
- eina_iterator_free(it);
-
-void
-e3d_texture_param_update(E3D_Texture *texture)
-{
- if (texture->wrap_dirty)
- {
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, texture->wrap_s);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, texture->wrap_t);
- texture->wrap_dirty = EINA_FALSE;
- }
-
- if (texture->filter_dirty)
- {
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, texture->filter_min);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, texture->filter_mag);
- texture->filter_dirty = EINA_FALSE;
- }
-}
-
-E3D_Texture *
-e3d_texture_new(Eina_Bool use_atlas)
-{
- E3D_Texture *texture = NULL;
-
- texture = (E3D_Texture *)malloc(sizeof(E3D_Texture));
-
- if (texture == NULL)
- {
- ERR("Failed to allocate memory.");
- return NULL;
- }
-
- eina_matrix3_identity(&texture->trans);
-
- texture->w = 0;
- texture->h = 0;
- texture->x = 0;
- texture->y = 0;
-
- texture->tex = 0;
-
- texture->wrap_dirty = EINA_TRUE;
- texture->wrap_s = GL_CLAMP_TO_EDGE;
- texture->wrap_t = GL_CLAMP_TO_EDGE;
-
- texture->filter_dirty = EINA_TRUE;
- texture->filter_min = GL_NEAREST;
- texture->filter_mag = GL_NEAREST;
-
- texture->atlas_enable = use_atlas;
-
- return texture;
-}
-
-void
-e3d_texture_free(E3D_Texture *texture)
-{
- if (texture)
- {
- if (texture->surface)
- evas_gl_common_image_unref(texture->surface);
- }
- free(texture);
-}
-
-void
-e3d_texture_size_get(const E3D_Texture *texture, int *w, int *h)
-{
- if (w) *w = texture->w;
- if (h) *h = texture->h;
-}
-
-void
-e3d_texture_set(Evas_Engine_GL_Context *gc,
- E3D_Texture *texture,
- Evas_GL_Image *im)
-{
- Eina_Matrix3 pt,st;
- Evas_Real pt_x, pt_y, st_x, st_y;
-
- texture->surface = im;
- evas_gl_common_image_ref(im);
- im->disable_atlas = !texture->atlas_enable;
- evas_gl_common_image_update(gc, im);
-
- texture->tex = im->tex->pt->texture;
- texture->w = im->w;
- texture->h = im->h;
- texture->x = im->tex->x;
- texture->y = im->tex->y;
- if (texture->atlas_enable)
- {
- pt_x = im->tex->pt->w ? (im->tex->x/(Evas_Real)im->tex->pt->w) : 0;
- pt_y = im->tex->pt->h ? (im->tex->y/(Evas_Real)im->tex->pt->h) : 0;
-
- st_x = im->tex->pt->w ? (im->w/(Evas_Real)im->tex->pt->w) : 1.0;
- st_y = im->tex->pt->h ? (im->h/(Evas_Real)im->tex->pt->h) : 1.0;
- /*Build adjusting matrix for texture unit coordinates*/
- eina_matrix3_position_transform_set(&pt, pt_x, pt_y);
- eina_matrix3_scale_transform_set(&st, st_x, st_y);
- eina_matrix3_multiply(&texture->trans, &pt, &st);
- }
-}
-
-Evas_GL_Image *
-e3d_texture_get(E3D_Texture *texture)
-{
- return texture ? texture->surface : NULL;
-}
-
-static inline GLenum
-_to_gl_texture_wrap(Evas_Canvas3D_Wrap_Mode wrap)
-{
- switch (wrap)
- {
- case EVAS_CANVAS3D_WRAP_MODE_CLAMP:
- return GL_CLAMP_TO_EDGE;
- case EVAS_CANVAS3D_WRAP_MODE_REFLECT:
- return GL_MIRRORED_REPEAT;
- case EVAS_CANVAS3D_WRAP_MODE_REPEAT:
- return GL_REPEAT;
- default:
- break;
- }
-
- ERR("Invalid texture wrap mode.");
- return GL_CLAMP_TO_EDGE;
-}
-
-static inline Evas_Canvas3D_Wrap_Mode
-_to_e3d_texture_wrap(GLenum wrap)
-{
- switch (wrap)
- {
- case GL_CLAMP_TO_EDGE:
- return EVAS_CANVAS3D_WRAP_MODE_CLAMP;
- case GL_MIRRORED_REPEAT:
- return EVAS_CANVAS3D_WRAP_MODE_REFLECT;
- case GL_REPEAT:
- return EVAS_CANVAS3D_WRAP_MODE_REPEAT;
- default:
- break;
- }
-
- ERR("Invalid texture wrap mode.");
- return EVAS_CANVAS3D_WRAP_MODE_CLAMP;
-}
-
-static inline GLenum
-_to_gl_texture_filter(Evas_Canvas3D_Texture_Filter filter)
-{
- switch (filter)
- {
- case EVAS_CANVAS3D_TEXTURE_FILTER_NEAREST:
- return GL_NEAREST;
- case EVAS_CANVAS3D_TEXTURE_FILTER_LINEAR:
- return GL_LINEAR;
- case EVAS_CANVAS3D_TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST:
- return GL_NEAREST_MIPMAP_NEAREST;
- case EVAS_CANVAS3D_TEXTURE_FILTER_NEAREST_MIPMAP_LINEAR:
- return GL_NEAREST_MIPMAP_LINEAR;
- case EVAS_CANVAS3D_TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST:
- return GL_LINEAR_MIPMAP_NEAREST;
- case EVAS_CANVAS3D_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR:
- return GL_LINEAR_MIPMAP_LINEAR;
- default:
- break;
- }
-
- ERR("Invalid texture wrap mode.");
- return GL_NEAREST;
-}
-
-static inline Evas_Canvas3D_Texture_Filter
-_to_e3d_texture_filter(GLenum filter)
-{
- switch (filter)
- {
- case GL_NEAREST:
- return EVAS_CANVAS3D_TEXTURE_FILTER_NEAREST;
- case GL_LINEAR:
- return EVAS_CANVAS3D_TEXTURE_FILTER_LINEAR;
- case GL_NEAREST_MIPMAP_NEAREST:
- return EVAS_CANVAS3D_TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST;
- case GL_NEAREST_MIPMAP_LINEAR:
- return EVAS_CANVAS3D_TEXTURE_FILTER_NEAREST_MIPMAP_LINEAR;
- case GL_LINEAR_MIPMAP_NEAREST:
- return EVAS_CANVAS3D_TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST;
- case GL_LINEAR_MIPMAP_LINEAR:
- return EVAS_CANVAS3D_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR;
- default:
- break;
- }
-
- ERR("Invalid texture wrap mode.");
- return EVAS_CANVAS3D_TEXTURE_FILTER_NEAREST;
-}
-
-void
-e3d_texture_wrap_set(E3D_Texture *texture, Evas_Canvas3D_Wrap_Mode s, Evas_Canvas3D_Wrap_Mode t)
-{
- GLenum gl_s, gl_t;
-
- gl_s = _to_gl_texture_wrap(s);
- gl_t = _to_gl_texture_wrap(t);
-
- if (gl_s == texture->wrap_s && gl_t == texture->wrap_t)
- return;
-
- texture->wrap_s = gl_s;
- texture->wrap_t = gl_t;
- texture->wrap_dirty = EINA_TRUE;
-}
-
-void
-e3d_texture_wrap_get(const E3D_Texture *texture, Evas_Canvas3D_Wrap_Mode *s, Evas_Canvas3D_Wrap_Mode *t)
-{
- if (s)
- *s = _to_e3d_texture_wrap(texture->wrap_s);
-
- if (t)
- *t = _to_e3d_texture_wrap(texture->wrap_t);
-}
-
-void
-e3d_texture_filter_set(E3D_Texture *texture, Evas_Canvas3D_Texture_Filter min, Evas_Canvas3D_Texture_Filter mag)
-{
- GLenum gl_min, gl_mag;
-
- gl_min = _to_gl_texture_filter(min);
- gl_mag = _to_gl_texture_filter(mag);
-
- if (gl_min == texture->filter_min && gl_mag == texture->filter_mag)
- return;
-
- texture->filter_min = gl_min;
- texture->filter_mag = gl_mag;
- texture->filter_dirty = EINA_TRUE;
-}
-
-void
-e3d_texture_filter_get(const E3D_Texture *texture,
- Evas_Canvas3D_Texture_Filter *min, Evas_Canvas3D_Texture_Filter *mag)
-{
- if (min)
- *min = _to_e3d_texture_filter(texture->filter_min);
-
- if (mag)
- *mag = _to_e3d_texture_filter(texture->filter_mag);
-}
-
-static void
-_gen_texture_2d(GLuint *texture, GLenum wrap_type, GLfloat filter_type)
-{
- glGenTextures(1, texture);
- glBindTexture(GL_TEXTURE_2D, *texture);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, wrap_type);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, wrap_type);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter_type);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter_type);
-}
-
-static void
-_gen_depth_stencil_buffer(GLuint *buffer, GLenum format, GLenum attach,
- int size_w, int size_h)
-{
- glGenRenderbuffers(1, buffer);
- glBindRenderbuffer(GL_RENDERBUFFER, *buffer);
- glRenderbufferStorage(GL_RENDERBUFFER, format, size_w, size_h);
- glFramebufferRenderbuffer(GL_FRAMEBUFFER, attach, GL_RENDERBUFFER, *buffer);
-}
-
-E3D_Drawable *
-e3d_drawable_new(int w, int h, int alpha, GLenum depth_format, GLenum stencil_format)
-{
- E3D_Drawable *drawable = NULL;
- GLuint tex, fbo, texDepth, texcolorpick, color_pick_fb_id;
- GLuint depth_stencil_buf = 0;
- GLuint depth_buf = 0;
- GLuint stencil_buf = 0;
- Eina_Bool depth_stencil = EINA_FALSE;
-
- _gen_texture_2d(&tex, GL_CLAMP_TO_EDGE, GL_NEAREST);
- if (alpha)
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
- else
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, w, h, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
-
- _gen_texture_2d(&texDepth, GL_CLAMP_TO_EDGE, GL_NEAREST);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
-
- glGenFramebuffers(1, &color_pick_fb_id);
- _gen_texture_2d(&texcolorpick, GL_CLAMP_TO_EDGE, GL_NEAREST);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
-
- glGenFramebuffers(1, &fbo);
- glBindFramebuffer(GL_FRAMEBUFFER, fbo);
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex, 0);
-
-#ifdef GL_GLES
- if (depth_format == GL_DEPTH_STENCIL_OES)
- {
- _gen_texture_2d(&depth_stencil_buf, GL_CLAMP_TO_EDGE, GL_NEAREST);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_STENCIL_OES, w, h, 0,
- GL_DEPTH_STENCIL_OES, GL_UNSIGNED_INT_24_8_OES, NULL);
-
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
- GL_TEXTURE_2D, depth_stencil_buf, 0);
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
- GL_TEXTURE_2D, depth_stencil_buf, 0);
-
- depth_stencil = EINA_TRUE;
- }
-#else
- if (depth_format == GL_DEPTH24_STENCIL8)
- {
- _gen_depth_stencil_buffer(&depth_stencil_buf, GL_DEPTH24_STENCIL8,
- GL_DEPTH_STENCIL_ATTACHMENT, w, h);
- depth_stencil = EINA_TRUE;
- }
-#endif
-
- if ((!depth_stencil) && (depth_format))
- _gen_depth_stencil_buffer(&depth_buf, depth_format, GL_DEPTH_ATTACHMENT, w, h);
-
- if ((!depth_stencil) && (stencil_format))
- _gen_depth_stencil_buffer(&stencil_buf, stencil_format, GL_STENCIL_ATTACHMENT, w, h);
-
- if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
- goto error;
-
- drawable = (E3D_Drawable *)calloc(1, sizeof(E3D_Drawable));
- if (drawable == NULL)
- goto error;
-
- drawable->w = w;
- drawable->h = h;
- drawable->alpha = alpha;
-
- if (alpha)
- drawable->format = GL_RGBA;
- else
- drawable->format = GL_RGB;
-
- drawable->depth_format = depth_format;
- drawable->stencil_format = stencil_format;
- drawable->tex = tex;
- drawable->fbo = fbo;
- drawable->texcolorpick = texcolorpick;
- drawable->color_pick_fb_id = color_pick_fb_id;
- drawable->depth_stencil_buf = depth_stencil_buf;
- drawable->depth_buf = depth_buf;
- drawable->stencil_buf = stencil_buf;
- drawable->texDepth = texDepth;
-
- return drawable;
-
-error:
- ERR("Drawable creation failed.");
-
- if (tex)
- glDeleteTextures(1, &tex);
- if (texcolorpick)
- glDeleteTextures(1, &texcolorpick);
- if (texDepth)
- glDeleteTextures(1, &texDepth);
-
- if (fbo)
- glDeleteFramebuffers(1, &fbo);
- if (color_pick_fb_id)
- glDeleteFramebuffers(1, &color_pick_fb_id);
-
- if (depth_stencil_buf)
- {
-#ifdef GL_GLES
- glDeleteTextures(1, &depth_stencil_buf);
-#else
- glDeleteRenderbuffers(1, &depth_stencil_buf);
-#endif
- }
-
- if (depth_buf)
- glDeleteRenderbuffers(1, &depth_buf);
-
- if (stencil_buf)
- glDeleteRenderbuffers(1, &stencil_buf);
-
-
- return NULL;
-}
-
-void
-e3d_drawable_free(E3D_Drawable *drawable)
-{
- if (drawable == NULL)
- return;
-
- if (drawable->tex)
- glDeleteTextures(1, &drawable->tex);
-
- if (drawable->fbo)
- glDeleteFramebuffers(1, &drawable->fbo);
-
- if (drawable->depth_stencil_buf)
- {
-#ifdef GL_GLES
- glDeleteTextures(1, &drawable->depth_stencil_buf);
-#else
- glDeleteRenderbuffers(1, &drawable->depth_stencil_buf);
-#endif
- }
-
- if (drawable->depth_buf)
- glDeleteRenderbuffers(1, &drawable->depth_buf);
-
- if (drawable->stencil_buf)
- glDeleteRenderbuffers(1, &drawable->stencil_buf);
-
- free(drawable);
-}
-
-void
-e3d_drawable_size_get(E3D_Drawable *drawable, int *w, int *h)
-{
- if (drawable)
- {
- if (w) *w = drawable->w;
- if (h) *h = drawable->h;
- }
- else
- {
- if (w) *w = 0;
- if (h) *h = 0;
- }
-}
-
-GLuint
-e3d_drawable_texture_id_get(E3D_Drawable *drawable)
-{
- return drawable->tex;
-}
-
-GLuint
-e3d_drawable_texture_color_pick_id_get(E3D_Drawable *drawable)
-{
- return drawable->texcolorpick;
-}
-
-GLenum
-e3d_drawable_format_get(E3D_Drawable *drawable)
-{
- return drawable->format;
-}
-
-static inline void
-_mesh_frame_find(Evas_Canvas3D_Mesh *mesh, int frame,
- Eina_List **l, Eina_List **r)
-{
- Eina_List *left, *right;
- Evas_Canvas3D_Mesh_Frame *f0 = NULL, *f1;
- Evas_Canvas3D_Mesh_Data *pdmesh = efl_data_scope_get(mesh, EVAS_CANVAS3D_MESH_CLASS);
-
- left = pdmesh->frames;
- right = eina_list_next(left);
-
- while (right)
- {
- f0 = (Evas_Canvas3D_Mesh_Frame *)eina_list_data_get(left);
- f1 = (Evas_Canvas3D_Mesh_Frame *)eina_list_data_get(right);
-
- if (frame >= f0->frame && frame <= f1->frame)
- break;
-
- left = right;
- right = eina_list_next(left);
- }
-
- if (right == NULL)
- {
- if (f0 && frame <= f0->frame)
- {
- *l = NULL;
- *r = left;
- }
- else
- {
- *l = left;
- *r = NULL;
- }
- }
-
- *l = left;
- *r = right;
-}
-
-static inline void
-_vertex_attrib_flag_add(E3D_Draw_Data *data,
- Evas_Canvas3D_Vertex_Attrib attrib,
- Eina_Bool blend)
-{
- switch (attrib)
- {
- case EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION:
- data->flags |= E3D_SHADER_FLAG_VERTEX_POSITION;
-
- if (blend)
- data->flags |= E3D_SHADER_FLAG_VERTEX_POSITION_BLEND;
- break;
- case EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL:
- data->flags |= E3D_SHADER_FLAG_VERTEX_NORMAL;
-
- if (blend)
- data->flags |= E3D_SHADER_FLAG_VERTEX_NORMAL_BLEND;
- break;
- case EVAS_CANVAS3D_VERTEX_ATTRIB_TANGENT:
- data->flags |= E3D_SHADER_FLAG_VERTEX_TANGENT;
-
- if (blend)
- data->flags |= E3D_SHADER_FLAG_VERTEX_TANGENT_BLEND;
- break;
- case EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR:
- data->flags |= E3D_SHADER_FLAG_VERTEX_COLOR;
-
- if (blend)
- data->flags |= E3D_SHADER_FLAG_VERTEX_COLOR_BLEND;
- break;
- case EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD:
- data->flags |= E3D_SHADER_FLAG_VERTEX_TEXCOORD;
-
- if (blend)
- data->flags |= E3D_SHADER_FLAG_VERTEX_TEXCOORD_BLEND;
- break;
- default:
- ERR("Invalid vertex attrib.");
- break;
- }
-}
-
-static inline void
-_material_color_flag_add(E3D_Draw_Data *data, Evas_Canvas3D_Material_Attrib attrib)
-{
- switch (attrib)
- {
- case EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT:
- data->flags |= E3D_SHADER_FLAG_AMBIENT;
- break;
- case EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE:
- data->flags |= E3D_SHADER_FLAG_DIFFUSE;
- break;
- case EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR:
- data->flags |= E3D_SHADER_FLAG_SPECULAR;
- break;
- case EVAS_CANVAS3D_MATERIAL_ATTRIB_EMISSION:
- data->flags |= E3D_SHADER_FLAG_EMISSION;
- break;
- case EVAS_CANVAS3D_MATERIAL_ATTRIB_NORMAL:
- ERR("Material attribute normal should not be used with color values.");
- break;
- default:
- ERR("Invalid material attrib.");
- break;
- }
-}
-
-static inline void
-_material_texture_flag_add(E3D_Draw_Data *data, Evas_Canvas3D_Material_Attrib attrib, Eina_Bool blend)
-{
- switch (attrib)
- {
- case EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT:
- data->flags |= E3D_SHADER_FLAG_AMBIENT;
- data->flags |= E3D_SHADER_FLAG_AMBIENT_TEXTURE;
-
- if (blend)
- data->flags |= E3D_SHADER_FLAG_AMBIENT_TEXTURE_BLEND;
- break;
- case EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE:
- data->flags |= E3D_SHADER_FLAG_DIFFUSE;
- data->flags |= E3D_SHADER_FLAG_DIFFUSE_TEXTURE;
-
- if (blend)
- data->flags |= E3D_SHADER_FLAG_DIFFUSE_TEXTURE_BLEND;
- break;
- case EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR:
- data->flags |= E3D_SHADER_FLAG_SPECULAR;
- data->flags |= E3D_SHADER_FLAG_SPECULAR_TEXTURE;
-
- if (blend)
- data->flags |= E3D_SHADER_FLAG_SPECULAR_TEXTURE_BLEND;
- break;
- case EVAS_CANVAS3D_MATERIAL_ATTRIB_EMISSION:
- data->flags |= E3D_SHADER_FLAG_EMISSION;
- data->flags |= E3D_SHADER_FLAG_EMISSION_TEXTURE;
-
- if (blend)
- data->flags |= E3D_SHADER_FLAG_EMISSION_TEXTURE_BLEND;
- break;
- case EVAS_CANVAS3D_MATERIAL_ATTRIB_NORMAL:
- data->flags |= E3D_SHADER_FLAG_NORMAL_TEXTURE;
-
- if (blend)
- data->flags |= E3D_SHADER_FLAG_NORMAL_TEXTURE_BLEND;
- break;
- default:
- ERR("Invalid material attrib.");
- break;
- }
-}
-
-static inline Eina_Bool
-_vertex_attrib_build(E3D_Draw_Data *data, int frame,
- const Eina_List *l, const Eina_List *r,
- Evas_Canvas3D_Vertex_Attrib attrib)
-{
- const Evas_Canvas3D_Mesh_Frame *f0 = NULL, *f1 = NULL;
-
- while (l)
- {
- f0 = (const Evas_Canvas3D_Mesh_Frame *)eina_list_data_get(l);
-
- if (f0->vertices[attrib].data != NULL)
- break;
-
- l = eina_list_prev(l);
- f0 = NULL;
- }
-
- while (r)
- {
- f1 = (const Evas_Canvas3D_Mesh_Frame *)eina_list_data_get(r);
-
- if (f1->vertices[attrib].data != NULL)
- break;
-
- r = eina_list_next(r);
- f1 = NULL;
- }
-
- if (f0 == NULL && f1 == NULL)
- return EINA_FALSE;
-
- if (f0 == NULL)
- {
- f0 = f1;
- f1 = NULL;
- }
- else if (f1 != NULL)
- {
- if (frame == f0->frame)
- {
- f1 = NULL;
- }
- else if (frame == f1->frame)
- {
- f0 = f1;
- f1 = NULL;
- }
- }
-
- data->vertices[attrib].vertex0 = f0->vertices[attrib];
- data->vertices[attrib].vertex0.owns_data = EINA_FALSE;
-
- if (f1)
- {
- data->vertices[attrib].vertex1 = f1->vertices[attrib];
- data->vertices[attrib].vertex1.owns_data = EINA_FALSE;
- data->vertices[attrib].weight = (f1->frame - frame) / (Evas_Real)(f1->frame - f0->frame);
- _vertex_attrib_flag_add(data, attrib, EINA_TRUE);
- }
- else
- {
- _vertex_attrib_flag_add(data, attrib, EINA_FALSE);
- }
-
- return EINA_TRUE;
-}
-
-static inline Eina_Bool
-_material_color_build(E3D_Draw_Data *data, int frame,
- const Eina_List *l, const Eina_List *r,
- Evas_Canvas3D_Material_Attrib attrib)
-{
- const Evas_Canvas3D_Mesh_Frame *f0 = NULL, *f1 = NULL;
-
- while (l)
- {
- f0 = (const Evas_Canvas3D_Mesh_Frame *)eina_list_data_get(l);
-
- if (f0->material)
- {
- Evas_Canvas3D_Material_Data *pdm = efl_data_scope_get(f0->material, EVAS_CANVAS3D_MATERIAL_CLASS);
- if (pdm->attribs[attrib].enable)
- break;
- }
-
- l = eina_list_prev(l);
- f0 = NULL;
- }
-
- while (r)
- {
- f1 = (const Evas_Canvas3D_Mesh_Frame *)eina_list_data_get(r);
-
- if (f1->material)
- {
- Evas_Canvas3D_Material_Data *pdm = efl_data_scope_get(f1->material, EVAS_CANVAS3D_MATERIAL_CLASS);
- if (pdm->attribs[attrib].enable)
- break;
- }
-
- r = eina_list_next(r);
- f1 = NULL;
- }
-
- if (f0 == NULL && f1 == NULL)
- return EINA_FALSE;
-
- if (f0 == NULL)
- {
- f0 = f1;
- f1 = NULL;
- }
- else if (f1 != NULL)
- {
- if (frame == f0->frame)
- {
- f1 = NULL;
- }
- else if (frame == f1->frame)
- {
- f0 = f1;
- f1 = NULL;
- }
- }
- Evas_Canvas3D_Material_Data *pdmf0 = efl_data_scope_get(f0->material, EVAS_CANVAS3D_MATERIAL_CLASS);
- if (f1 == NULL)
- {
- data->materials[attrib].color = pdmf0->attribs[attrib].color;
-
- if (attrib == EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR)
- data->shininess = pdmf0->shininess;
- }
- else
- {
- Evas_Real weight;
- Evas_Canvas3D_Material_Data *pdmf1 = efl_data_scope_get(f1->material, EVAS_CANVAS3D_MATERIAL_CLASS);
-
- weight = (f1->frame - frame) / (Evas_Real)(f1->frame - f0->frame);
- evas_color_blend(&data->materials[attrib].color,
- &pdmf0->attribs[attrib].color,
- &pdmf0->attribs[attrib].color,
- weight);
-
- if (attrib == EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR)
- {
- data->shininess = pdmf0->shininess * weight +
- pdmf1->shininess * (1.0 - weight);
- }
- }
-
- _material_color_flag_add(data, attrib);
- return EINA_TRUE;
-}
-
-static inline Eina_Bool
-_material_texture_build(E3D_Draw_Data *data, int frame,
- const Eina_List *l, const Eina_List *r,
- Evas_Canvas3D_Material_Attrib attrib)
-{
- const Evas_Canvas3D_Mesh_Frame *f0 = NULL, *f1 = NULL;
-
- while (l)
- {
- f0 = (const Evas_Canvas3D_Mesh_Frame *)eina_list_data_get(l);
-
- if (f0->material)
- {
- Evas_Canvas3D_Material_Data *pdm = efl_data_scope_get(f0->material, EVAS_CANVAS3D_MATERIAL_CLASS);
- if (pdm->attribs[attrib].enable && pdm->attribs[attrib].texture != NULL)
- break;
- }
-
- l = eina_list_prev(l);
- f0 = NULL;
- }
-
- while (r)
- {
- f1 = (const Evas_Canvas3D_Mesh_Frame *)eina_list_data_get(r);
-
- if (f1->material)
- {
- Evas_Canvas3D_Material_Data *pdm = efl_data_scope_get(f1->material, EVAS_CANVAS3D_MATERIAL_CLASS);
- if (pdm->attribs[attrib].enable && pdm->attribs[attrib].texture != NULL)
- break;
- }
-
- r = eina_list_next(r);
- f1 = NULL;
- }
-
- if (f0 == NULL && f1 == NULL)
- return EINA_FALSE;
-
- if (f0 == NULL)
- {
- f0 = f1;
- f1 = NULL;
- }
- else if (f1 != NULL)
- {
- if (frame == f0->frame)
- {
- f1 = NULL;
- }
- else if (frame == f1->frame)
- {
- f0 = f1;
- f1 = NULL;
- }
- }
-
- Evas_Canvas3D_Material_Data *pdmf0 = efl_data_scope_get(f0->material, EVAS_CANVAS3D_MATERIAL_CLASS);
- data->materials[attrib].sampler0 = data->texture_count++;
- Evas_Canvas3D_Texture_Data *pd = efl_data_scope_get(pdmf0->attribs[attrib].texture, EVAS_CANVAS3D_TEXTURE_CLASS);
- data->materials[attrib].tex0 = (E3D_Texture *)pd->engine_data;
-
- if (f1)
- {
- Evas_Canvas3D_Material_Data *pdmf1 = efl_data_scope_get(f1->material, EVAS_CANVAS3D_MATERIAL_CLASS);
- Evas_Real weight = (f1->frame - frame) / (Evas_Real)(f1->frame - f0->frame);
-
- data->materials[attrib].sampler1 = data->texture_count++;
- pd = efl_data_scope_get(pdmf1->attribs[attrib].texture, EVAS_CANVAS3D_TEXTURE_CLASS);
- data->materials[attrib].tex1 = (E3D_Texture *)pd->engine_data;
-
- data->materials[attrib].texture_weight = weight;
-
- if (attrib == EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR)
- {
- data->shininess = pdmf0->shininess * weight +
- pdmf1->shininess * (1.0 - weight);
- }
-
- _material_texture_flag_add(data, attrib, EINA_TRUE);
- }
- else
- {
- if (attrib == EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR)
- data->shininess = pdmf0->shininess;
-
- _material_texture_flag_add(data, attrib, EINA_FALSE);
- }
-
- return EINA_TRUE;
-}
-
-static inline void
-_light_build(E3D_Draw_Data *data,
- const Evas_Canvas3D_Node *light,
- const Eina_Matrix4 *matrix_eye)
-{
- Evas_Canvas3D_Node_Data *pd_light_node = efl_data_scope_get(light, EVAS_CANVAS3D_NODE_CLASS);
- Evas_Canvas3D_Light *l = pd_light_node ? pd_light_node->data.light.light : NULL;
- Evas_Canvas3D_Light_Data *pdl = l ? efl_data_scope_get(l, EVAS_CANVAS3D_LIGHT_CLASS) : NULL;
- Eina_Vector3 pos, dir;
-
- if (pdl == NULL)
- return;
-
- /* Get light node's position. */
- if (pdl->directional)
- {
- data->flags |= E3D_SHADER_FLAG_LIGHT_DIRECTIONAL;
-
- /* Negative Z. */
- eina_vector3_set(&dir, 0.0, 0.0, 1.0);
- eina_vector3_quaternion_rotate(&dir, &dir, &pd_light_node->orientation);
-
- /* Transform to eye space. */
- eina_vector3_homogeneous_direction_transform(&dir, matrix_eye, &dir);
- eina_vector3_normalize(&dir, &dir);
-
- data->light.position.x = dir.x;
- data->light.position.y = dir.y;
- data->light.position.z = dir.z;
- data->light.position.w = 0.0;
- }
- else
- {
- eina_vector3_copy(&pos, &pd_light_node->position_world);
- eina_vector3_homogeneous_position_transform(&pos, matrix_eye, &pos);
-
- data->light.position.x = pos.x;
- data->light.position.y = pos.y;
- data->light.position.z = pos.z;
- data->light.position.w = 1.0;
-
- if (pdl->enable_attenuation)
- {
- data->flags |= E3D_SHADER_FLAG_LIGHT_ATTENUATION;
-
- data->light.atten.x = pdl->atten_const;
- data->light.atten.y = pdl->atten_linear;
- data->light.atten.z = pdl->atten_quad;
- }
-
- if (pdl->spot_cutoff < 180.0)
- {
- data->flags |= E3D_SHADER_FLAG_LIGHT_SPOT;
- eina_vector3_set(&dir, 0.0, 0.0, -1.0);
- eina_vector3_quaternion_rotate(&dir, &dir, &pd_light_node->orientation);
- eina_vector3_homogeneous_direction_transform(&dir, matrix_eye, &dir);
-
- data->light.spot_dir = dir;
- data->light.spot_exp = pdl->spot_exp;
- data->light.spot_cutoff_cos = pdl->spot_cutoff_cos;
- }
- }
-
- data->light.ambient = pdl->ambient;
- data->light.diffuse = pdl->diffuse;
- data->light.specular = pdl->specular;
-}
-
-static inline Eina_Bool
-_mesh_draw_data_build(E3D_Draw_Data *data,
- Evas_Canvas3D_Mesh *mesh, int frame,
- const Eina_Matrix4 *matrix_eye,
- const Eina_Matrix4 *matrix_mv,
- const Eina_Matrix4 *matrix_mvp,
- const Eina_Matrix4 *matrix_light,
- const Evas_Canvas3D_Node *light)
-{
- Eina_List *l, *r;
- Evas_Canvas3D_Mesh_Data *pdmesh = efl_data_scope_get(mesh, EVAS_CANVAS3D_MESH_CLASS);
-
- if (pdmesh->frames == NULL)
- return EINA_FALSE;
-
- if (pdmesh->fog_enabled)
- {
- data->flags |= E3D_SHADER_FLAG_FOG_ENABLED;
- data->fog_color = pdmesh->fog_color;
- }
- if (pdmesh->alpha_test_enabled)
- data->flags |= E3D_SHADER_FLAG_ALPHA_TEST_ENABLED;
-
- if (pdmesh->shadowed)
- {
- data->flags |= E3D_SHADER_FLAG_SHADOWED;
- data->pcf_size = 1 / pdmesh->shadows_edges_size;
- data->pcf_step = (Evas_Real)pdmesh->shadows_edges_filtering_level;
- data->constant_bias = pdmesh->shadows_constant_bias;
- }
-
- if (pdmesh->color_pick_enabled)
- data->color_pick_key = pdmesh->color_pick_key;
-
- data->alpha_comparison = pdmesh->alpha_comparison;
- data->alpha_ref_value = pdmesh->alpha_ref_value;
- data->alpha_test_enabled =pdmesh->alpha_test_enabled;
-
- data->blending = pdmesh->blending;
- data->blend_sfactor = pdmesh->blend_sfactor;
- data->blend_dfactor = pdmesh->blend_dfactor;
- data->mode = pdmesh->shader_mode;
- data->assembly = pdmesh->assembly;
- data->vertex_count = pdmesh->vertex_count;
- data->index_count = pdmesh->index_count;
- data->index_format = pdmesh->index_format;
- data->indices = pdmesh->indices;
-
- eina_matrix4_copy(&data->matrix_mvp, matrix_mvp);
- eina_matrix4_copy(&data->matrix_mv, matrix_mv);
- if (matrix_light != NULL)
- eina_matrix4_copy(&data->matrix_light, matrix_light);
-
- _mesh_frame_find(mesh, frame, &l, &r);
-
-#define BUILD(type, arg, check) \
- do { \
- Eina_Bool ret = _##type##_build(data, frame, l, r, EVAS_CANVAS3D_##arg); \
- if (check && !ret) \
- { \
- ERR("Missing attribute : " #arg); \
- return EINA_FALSE; \
- } \
- } while (0)
-
- if (pdmesh->shader_mode == EVAS_CANVAS3D_SHADER_MODE_VERTEX_COLOR)
- {
- BUILD(vertex_attrib, VERTEX_ATTRIB_POSITION, EINA_TRUE);
- BUILD(vertex_attrib, VERTEX_ATTRIB_COLOR, EINA_TRUE);
- }
- else if (pdmesh->shader_mode == EVAS_CANVAS3D_SHADER_MODE_SHADOW_MAP_RENDER)
- {
- BUILD(vertex_attrib, VERTEX_ATTRIB_POSITION, EINA_TRUE);
- if (pdmesh->alpha_test_enabled)
- {
- BUILD(material_texture, MATERIAL_ATTRIB_DIFFUSE, EINA_FALSE);
-
- if (_flags_need_tex_coord(data->flags))
- BUILD(vertex_attrib, VERTEX_ATTRIB_TEXCOORD, EINA_FALSE);
- }
- }
- else if (pdmesh->shader_mode == EVAS_CANVAS3D_SHADER_MODE_COLOR_PICK)
- {
- BUILD(vertex_attrib, VERTEX_ATTRIB_POSITION, EINA_TRUE);
- }
- else if (pdmesh->shader_mode == EVAS_CANVAS3D_SHADER_MODE_DIFFUSE)
- {
- BUILD(vertex_attrib, VERTEX_ATTRIB_POSITION, EINA_TRUE);
- BUILD(material_color, MATERIAL_ATTRIB_DIFFUSE, EINA_TRUE);
- BUILD(material_texture, MATERIAL_ATTRIB_DIFFUSE, EINA_FALSE);
-
- if (_flags_need_tex_coord(data->flags))
- BUILD(vertex_attrib, VERTEX_ATTRIB_TEXCOORD, EINA_FALSE);
- }
- else if (pdmesh->shader_mode == EVAS_CANVAS3D_SHADER_MODE_FLAT)
- {
- BUILD(vertex_attrib, VERTEX_ATTRIB_POSITION, EINA_TRUE);
- BUILD(vertex_attrib, VERTEX_ATTRIB_NORMAL, EINA_TRUE);
-
- BUILD(material_color, MATERIAL_ATTRIB_AMBIENT, EINA_FALSE);
- BUILD(material_color, MATERIAL_ATTRIB_DIFFUSE, EINA_FALSE);
- BUILD(material_color, MATERIAL_ATTRIB_SPECULAR, EINA_FALSE);
- BUILD(material_color, MATERIAL_ATTRIB_EMISSION, EINA_FALSE);
-
- BUILD(material_texture, MATERIAL_ATTRIB_AMBIENT, EINA_FALSE);
- BUILD(material_texture, MATERIAL_ATTRIB_DIFFUSE, EINA_FALSE);
- BUILD(material_texture, MATERIAL_ATTRIB_SPECULAR, EINA_FALSE);
- BUILD(material_texture, MATERIAL_ATTRIB_EMISSION, EINA_FALSE);
-
- _light_build(data, light, matrix_eye);
- eina_normal3_matrix_get(&data->matrix_normal, matrix_mv);
-
- if (_flags_need_tex_coord(data->flags))
- BUILD(vertex_attrib, VERTEX_ATTRIB_TEXCOORD, EINA_FALSE);
- }
- else if (pdmesh->shader_mode == EVAS_CANVAS3D_SHADER_MODE_PHONG)
- {
- BUILD(vertex_attrib, VERTEX_ATTRIB_POSITION, EINA_TRUE);
- BUILD(vertex_attrib, VERTEX_ATTRIB_NORMAL, EINA_TRUE);
-
- BUILD(material_color, MATERIAL_ATTRIB_AMBIENT, EINA_FALSE);
- BUILD(material_color, MATERIAL_ATTRIB_DIFFUSE, EINA_FALSE);
- BUILD(material_color, MATERIAL_ATTRIB_SPECULAR, EINA_FALSE);
- BUILD(material_color, MATERIAL_ATTRIB_EMISSION, EINA_FALSE);
-
- BUILD(material_texture, MATERIAL_ATTRIB_AMBIENT, EINA_FALSE);
- BUILD(material_texture, MATERIAL_ATTRIB_DIFFUSE, EINA_FALSE);
- BUILD(material_texture, MATERIAL_ATTRIB_SPECULAR, EINA_FALSE);
- BUILD(material_texture, MATERIAL_ATTRIB_EMISSION, EINA_FALSE);
-
- _light_build(data, light, matrix_eye);
- eina_normal3_matrix_get(&data->matrix_normal, matrix_mv);
-
- if (_flags_need_tex_coord(data->flags))
- BUILD(vertex_attrib, VERTEX_ATTRIB_TEXCOORD, EINA_FALSE);
- }
- else if ((pdmesh->shader_mode == EVAS_CANVAS3D_SHADER_MODE_NORMAL_MAP) ||
- (pdmesh->shader_mode == EVAS_CANVAS3D_SHADER_MODE_PARALLAX_OCCLUSION))
- {
- BUILD(vertex_attrib, VERTEX_ATTRIB_POSITION, EINA_TRUE);
- BUILD(vertex_attrib, VERTEX_ATTRIB_NORMAL, EINA_TRUE);
- BUILD(vertex_attrib, VERTEX_ATTRIB_TEXCOORD, EINA_TRUE);
- BUILD(material_texture, MATERIAL_ATTRIB_NORMAL, EINA_TRUE);
- BUILD(vertex_attrib, VERTEX_ATTRIB_TANGENT, EINA_FALSE);
-
-
- if (pdmesh->shader_mode == EVAS_CANVAS3D_SHADER_MODE_NORMAL_MAP)
- BUILD(vertex_attrib, VERTEX_ATTRIB_TANGENT, EINA_FALSE);
- else BUILD(vertex_attrib, VERTEX_ATTRIB_TANGENT, EINA_TRUE);
-
- BUILD(material_color, MATERIAL_ATTRIB_AMBIENT, EINA_FALSE);
- BUILD(material_color, MATERIAL_ATTRIB_DIFFUSE, EINA_FALSE);
- BUILD(material_color, MATERIAL_ATTRIB_SPECULAR, EINA_FALSE);
- BUILD(material_color, MATERIAL_ATTRIB_EMISSION, EINA_FALSE);
-
- BUILD(material_texture, MATERIAL_ATTRIB_AMBIENT, EINA_FALSE);
- BUILD(material_texture, MATERIAL_ATTRIB_DIFFUSE, EINA_FALSE);
- BUILD(material_texture, MATERIAL_ATTRIB_SPECULAR, EINA_FALSE);
- BUILD(material_texture, MATERIAL_ATTRIB_EMISSION, EINA_FALSE);
-
- _light_build(data, light, matrix_eye);
- eina_normal3_matrix_get(&data->matrix_normal, matrix_mv);
- }
- /*Check possible quantity of texture units*/
- int num, count = 0;
- glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &num);
- data->smap_sampler = num - 1;
-
- if (data->render_to_texture)
- {
- count++;
- data->colortex_sampler = num - (count + 1);
- }
- if (data->texture_count + count >= num)
- if ((data->flags & E3D_SHADER_FLAG_SHADOWED) ||
- (data->texture_count + count > num))
- {
- ERR("Too many textures for your graphics configuration.");
- return EINA_FALSE;
- }
-
- return EINA_TRUE;
-}
-
-static inline void
-_mesh_draw(E3D_Renderer *renderer, Evas_Canvas3D_Mesh *mesh, int frame, Evas_Canvas3D_Node *light,
- const Eina_Matrix4 *matrix_eye, const Eina_Matrix4 *matrix_mv, const Eina_Matrix4 *matrix_mvp, const Eina_Matrix4 *matrix_light)
-{
- E3D_Draw_Data data;
-
- memset(&data, 0x00, sizeof(E3D_Draw_Data));
- data.render_to_texture = e3d_renderer_rendering_to_texture_get(renderer);
-
- if (_mesh_draw_data_build(&data, mesh, frame, matrix_eye, matrix_mv, matrix_mvp, matrix_light, light))
- e3d_renderer_draw(renderer, &data);
-}
-
-void _shadowmap_render(E3D_Drawable *drawable, E3D_Renderer *renderer,
- Evas_Canvas3D_Scene_Public_Data *data, Eina_Matrix4 *matrix_light_eye,
- Evas_Canvas3D_Node *light)
-{
- Eina_List *l;
- Evas_Canvas3D_Node *n;
- Evas_Canvas3D_Shader_Mode shader_mode;
- Eina_Bool blend_enabled;
- Evas_Color c = {1.0, 1.0, 1.0, 1.0};
- Eina_Matrix4 matrix_vp;
-
- glEnable(GL_POLYGON_OFFSET_FILL);
- glPolygonOffset(data->depth_offset, data->depth_constant);
-
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
- drawable->texDepth, 0);
-
- e3d_renderer_clear(renderer, &c);
-
- Evas_Canvas3D_Node_Data *pd_light_node = efl_data_scope_get(light, EVAS_CANVAS3D_NODE_CLASS);
- Evas_Canvas3D_Light_Data *pd = efl_data_scope_get(pd_light_node->data.light.light,
- EVAS_CANVAS3D_LIGHT_CLASS);
-
- Eina_Quaternion planes[6];
- eina_matrix4_multiply(&matrix_vp, &pd->projection, matrix_light_eye);
- evas_frustum_calculate(planes, &matrix_vp);
-
- EINA_LIST_FOREACH(data->mesh_nodes, l, n)
- {
- Evas_Canvas3D_Node_Data *pd_mesh_node = efl_data_scope_get(n, EVAS_CANVAS3D_NODE_CLASS);
-
- if (evas_is_sphere_in_frustum(&pd_mesh_node->bsphere, planes))
- {
- RENDER_MESH_NODE_ITERATE_BEGIN(light_eye)
- {
- shader_mode = pdmesh->shader_mode;
- blend_enabled = pdmesh->blending;
- pdmesh->blending = EINA_FALSE;
- pdmesh->shader_mode = EVAS_CANVAS3D_SHADER_MODE_SHADOW_MAP_RENDER;
- _mesh_draw(renderer, nm->mesh, nm->frame, light, matrix_light_eye,
- &matrix_mv, &matrix_mvp, &matrix_mvp);
- pdmesh->shader_mode = shader_mode;
- pdmesh->blending = blend_enabled;
- }
- RENDER_MESH_NODE_ITERATE_END
- }
- }
-
- glDisable(GL_POLYGON_OFFSET_FILL);
-
- if (data->render_to_texture)
- {
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
- drawable->texcolorpick, 0);
- e3d_renderer_clear(renderer, &data->bg_color);
- }
- else
- {
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
- drawable->tex, 0);
- e3d_renderer_clear(renderer, &data->bg_color);
- }
-}
-
-void
-_scene_render(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_Canvas3D_Scene_Public_Data *data)
-{
- Eina_List *l;
- Evas_Canvas3D_Node *n;
- const Eina_Matrix4 *matrix_eye;
- Evas_Canvas3D_Node *light;
- Eina_Matrix4 matrix_light_eye, matrix_vp;;
- Evas_Canvas3D_Light_Data *ld = NULL;
- Evas_Canvas3D_Node_Data *pd_light_node;
- Eina_Quaternion planes[6];
-
- /* Get eye matrix. */
- Evas_Canvas3D_Node_Data *pd_camera_node = efl_data_scope_get(data->camera_node, EVAS_CANVAS3D_NODE_CLASS);
- matrix_eye = &pd_camera_node->data.camera.matrix_world_to_eye;
-
- Evas_Canvas3D_Camera_Data *pd = efl_data_scope_get(pd_camera_node->data.camera.camera, EVAS_CANVAS3D_CAMERA_CLASS);
-
- light = eina_list_data_get(data->light_nodes);
-
- if (data->shadows_enabled)
- {
- pd_light_node = efl_data_scope_get(light, EVAS_CANVAS3D_NODE_CLASS);
- evas_mat4_inverse_build(&matrix_light_eye,
- &pd_light_node->position_world, &pd_light_node->orientation_world, &pd_light_node->scale_world);
- ld = efl_data_scope_get(pd_light_node->data.light.light, EVAS_CANVAS3D_LIGHT_CLASS);
- _shadowmap_render(drawable, renderer, data, &matrix_light_eye, light);
- }
-
- eina_matrix4_multiply(&matrix_vp, &pd->projection, matrix_eye);
- evas_frustum_calculate(planes, &matrix_vp);
-
- EINA_LIST_FOREACH(data->mesh_nodes, l, n)
- {
- Eina_Matrix4 matrix_mv;
- Eina_Matrix4 matrix_light;
- Eina_Matrix4 matrix_mvp;
- Eina_Iterator *it;
- void *ptr;
- Evas_Canvas3D_Node_Data *pd_mesh_node = efl_data_scope_get(n, EVAS_CANVAS3D_NODE_CLASS);
-
- // TODO Add other frustum shapes
- if (evas_is_sphere_in_frustum(&pd_mesh_node->bsphere, planes))
- {
-
- if (data->shadows_enabled)
- {
- eina_matrix4_multiply(&matrix_mv, &matrix_light_eye,
- &pd_mesh_node->data.mesh.matrix_local_to_world);
- eina_matrix4_multiply(&matrix_light, &ld->projection,
- &matrix_mv);
- }
-
- eina_matrix4_multiply(&matrix_mv, matrix_eye, &pd_mesh_node->data.mesh.matrix_local_to_world);
- eina_matrix4_multiply(&matrix_mvp, &pd->projection,
- &matrix_mv);
-
- it = eina_hash_iterator_data_new(pd_mesh_node->data.mesh.node_meshes);
- while (eina_iterator_next(it, &ptr))
- {
- Evas_Canvas3D_Node_Mesh *nm = (Evas_Canvas3D_Node_Mesh *)ptr;
- Evas_Canvas3D_Mesh_Data *pdmesh = efl_data_scope_get(nm->mesh, EVAS_CANVAS3D_MESH_CLASS);
- /*In case LOD enable pass in render only LOD meshes in dependences of the
- distance to the camera node:
- near_boundary <= distance <= far_boundary*/
- CHECK_LOD_DISTANCE
- if (data->shadows_enabled)
- {
- pdmesh->shadowed = EINA_TRUE;
- _mesh_draw(renderer, nm->mesh, nm->frame, light, matrix_eye, &matrix_mv, &matrix_mvp, &matrix_light);
- pdmesh->shadowed = EINA_FALSE;
- }
- else _mesh_draw(renderer, nm->mesh, nm->frame, light, matrix_eye, &matrix_mv, &matrix_mvp, NULL);
- }
- eina_iterator_free(it);
- }
- }
- e3d_renderer_flush(renderer);
-}
-
-void
-e3d_drawable_scene_render(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_Canvas3D_Scene_Public_Data *data)
-{
- /* Set up render target. */
- e3d_renderer_target_set(renderer, drawable);
- e3d_renderer_clear(renderer, &data->bg_color);
-
- if (data->post_processing)
- e3d_drawable_scene_render_to_texture(drawable, renderer, data);//Render to additional texture
- else
- _scene_render(drawable, renderer, data);//Common main render
-}
-
-void
-_scene_post_render(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_Canvas3D_Scene_Public_Data *data)
-{
- E3D_Draw_Data drawable_data;
- float vertices_of_square[] = {-1.0, 1.0, 0.0, 1.0, 1.0, 0.0,
- -1.0, -1.0, 0.0, 1.0, -1.0, 0.0};
- unsigned short indices_of_square[] = {0, 1, 2, 2, 1, 3};
-
- memset(&drawable_data, 0x00, sizeof(E3D_Draw_Data));
-
- drawable_data.flags |= E3D_SHADER_FLAG_VERTEX_POSITION;
- drawable_data.mode = data->post_processing_type;
- drawable_data.assembly = EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES;
- drawable_data.indices = indices_of_square;
- drawable_data.vertex_count = 4;
- drawable_data.index_count = 6;
- drawable_data.index_format = EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT;
- eina_matrix4_identity(&drawable_data.matrix_mv);
- eina_matrix4_identity(&drawable_data.matrix_mvp);
- drawable_data.frame_size_h = (Evas_Real)drawable->h;
- drawable_data.frame_size_w = (Evas_Real)drawable->w;
- /*Initialize Evas_Canvas3D_Vertex_Buffer for full screen quard*/
- drawable_data.vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].vertex0.data = (void *)vertices_of_square;
- drawable_data.vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].vertex0.element_count = 3;
- drawable_data.vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].vertex0.stride = 3 * sizeof(float);
- drawable_data.vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].vertex0.owns_data = EINA_FALSE;
- drawable_data.vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].vertex0.size = 0;
-
- e3d_renderer_clear(renderer, &data->bg_color);
-
- /*Initialize texture units*/
- drawable_data.smap_sampler = e3d_renderer_sampler_shadowmap_get(renderer);
- drawable_data.colortex_sampler = e3d_renderer_sampler_colortexture_get(renderer);
-
- /*Render full screen quard with color pick texture unit*/
- e3d_renderer_draw(renderer, &drawable_data);
- e3d_renderer_flush(renderer);
-}
-
-Eina_Bool
-e3d_drawable_scene_render_to_texture(E3D_Drawable *drawable, E3D_Renderer *renderer,
- Evas_Canvas3D_Scene_Public_Data *data)
-{
- const Eina_Matrix4 *matrix_eye;
- Evas_Canvas3D_Shader_Mode shader_mode;
- Eina_Stringshare *tmp;
- Eina_Iterator *itmn;
- void *ptrmn;
- Eina_List *repeat_node = NULL;
- Evas_Color *unic_color = NULL;
-
- e3d_renderer_color_pick_target_set(renderer, drawable);
- e3d_renderer_clear(renderer, &data->bg_color);
-
- if (data->color_pick_enabled) //Use rendering to texture in color pick mechanism
- {
- Evas_Canvas3D_Node_Data *pd_camera_node = efl_data_scope_get(data->camera_node, EVAS_CANVAS3D_NODE_CLASS);
- matrix_eye = &pd_camera_node->data.camera.matrix_world_to_eye;
- Evas_Canvas3D_Camera_Data *pd = efl_data_scope_get(pd_camera_node->data.camera.camera, EVAS_CANVAS3D_CAMERA_CLASS);
-
- itmn = eina_hash_iterator_data_new(data->colors_node_mesh);
-
- while (eina_iterator_next(itmn, &ptrmn))
- {
- Evas_Canvas3D_Node *n;
- Eina_Array *arr = NULL;
-
- arr = (Eina_Array *)ptrmn;
- n = (Evas_Canvas3D_Node *)eina_array_data_get(arr, 0);
- /*To avoid repeatedly render mesh*/
- if (!repeat_node)
- repeat_node = eina_list_append(repeat_node, (void*)n);
- else
- {
- if (eina_list_data_find(repeat_node, (void *)n))
- continue;
- else
- repeat_node = eina_list_append(repeat_node, (void *)n);
- }
- Evas_Canvas3D_Node_Data *pd_mesh_node = efl_data_scope_get(n, EVAS_CANVAS3D_NODE_CLASS);
- RENDER_MESH_NODE_ITERATE_BEGIN(eye)
- {
- if (pdmesh->color_pick_enabled)
- {
- tmp = eina_stringshare_printf("%p %p", n, nm->mesh);
- unic_color = (Evas_Color *)eina_hash_find(data->node_mesh_colors, tmp);
- if (unic_color)
- {
- pdmesh->color_pick_key.r = unic_color->r;
- pdmesh->color_pick_key.g = unic_color->g;
- pdmesh->color_pick_key.b = unic_color->b;
- shader_mode = pdmesh->shader_mode;
- pdmesh->shader_mode = EVAS_CANVAS3D_SHADER_MODE_COLOR_PICK;
- _mesh_draw(renderer, nm->mesh, nm->frame, NULL, matrix_eye, &matrix_mv,
- &matrix_mvp, NULL);
- pdmesh->shader_mode = shader_mode;
- }
- eina_stringshare_del(tmp);
- }
- }
- RENDER_MESH_NODE_ITERATE_END
- }
- eina_iterator_free(itmn);
- eina_list_free(repeat_node);
- }
- else
- {
- _scene_render(drawable, renderer, data); //Just render scene in texture
- glBindFramebuffer(GL_FRAMEBUFFER, drawable->fbo);
- /*Render full screen quard*/
- if (data->post_processing)
- _scene_post_render(drawable, renderer, data);
- }
-
- return EINA_TRUE;
-}
-
-void
-e3d_drawable_texture_pixel_color_get(GLuint tex EINA_UNUSED, int x, int y,
- Evas_Color *color, void *drawable)
-{
- E3D_Drawable *d = (E3D_Drawable *)drawable;
-
- glBindFramebuffer(GL_FRAMEBUFFER, d->color_pick_fb_id);
-
- GLubyte pixel[4] = {0, 0, 0, 0};
- glReadPixels(x, y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixel);
- color->r = (double)pixel[0] / 255;
- color->g = (double)pixel[1] / 255;
- color->b = (double)pixel[2] / 255;
-
- glBindFramebuffer(GL_FRAMEBUFFER, d->fbo);
-}
-
-void
-e3d_drawable_texture_rendered_pixels_get(GLuint tex EINA_UNUSED, int x, int y, int w, int h,
- void *drawable EINA_UNUSED, void *data)
-{
- DATA32 *buffer = (DATA32 *)data;
- DATA32 *datarowup = NULL, *datarowlow = NULL;
- DATA32 pixel;
- int i, j, width = 0, up, bellow;
-
- glReadPixels(x, y, w, h, GL_RGBA, GL_UNSIGNED_BYTE, (GLubyte *)buffer);
-
- /*Due to returned pixels buffer filled as from the
- bottom left of the screen going up to the top right*/
- datarowup = malloc(w * sizeof(DATA32));
- datarowlow = malloc(w * sizeof(DATA32));
-
- if (!datarowup || !datarowlow)
- {
- ERR("Not enough memory");
- if (datarowup) free(datarowup);
- if (datarowlow) free(datarowlow);
- return;
- }
- for (j = 0; j < h / 2; j++)
- {
- bellow = h * w - width;
- up = w + width;
-
- for (i = w - 1; i >= 0; i--)
- {
- pixel = buffer[bellow];
- datarowlow[i] = ((pixel & 0x000000ff) << 16) +
- ((pixel & 0x00ff0000) >> 16) +
- ((pixel & 0xff00ff00));
- pixel = buffer[up];
- datarowup[i] = ((pixel & 0x000000ff) << 16) +
- ((pixel & 0x00ff0000) >> 16) +
- ((pixel & 0xff00ff00));
- bellow--;
- up--;
- }
- memcpy(buffer + width, datarowlow, w * sizeof(DATA32));
- width += w;
- memcpy(buffer + (h * w - width), datarowup, w * sizeof(DATA32));
- }
- free(datarowup);
- free(datarowlow);
-}
-#undef CHECK_LOD_DISTANCE
-#undef RENDER_MESH_NODE_ITERATE_BEGIN
-#undef RENDER_MESH_NODE_ITERATE_END
diff --git a/src/modules/evas/engines/gl_common/evas_gl_3d_common.h b/src/modules/evas/engines/gl_common/evas_gl_3d_common.h
deleted file mode 100644
index 6f01d1adb3..0000000000
--- a/src/modules/evas/engines/gl_common/evas_gl_3d_common.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef EVAS_GL_COMMON_H
-# error You shall not include this header directly
-#endif
-
-typedef struct _E3D_Texture E3D_Texture;
-typedef struct _E3D_Drawable E3D_Drawable;
-typedef struct _E3D_Renderer E3D_Renderer;
-
-/* Texture */
-E3D_Texture *e3d_texture_new(Eina_Bool use_atlas);
-void e3d_texture_free(E3D_Texture *texture);
-
-void e3d_texture_size_get(const E3D_Texture *texture, int *w, int *h);
-void e3d_texture_set(Evas_Engine_GL_Context *gc, E3D_Texture *texture, Evas_GL_Image *im);
-Evas_GL_Image *e3d_texture_get(E3D_Texture *texture);
-
-void e3d_texture_import(E3D_Texture *texture, GLuint tex);
-Eina_Bool e3d_texture_is_imported_get(const E3D_Texture *texture);
-
-void e3d_texture_wrap_set(E3D_Texture *texture, Evas_Canvas3D_Wrap_Mode s, Evas_Canvas3D_Wrap_Mode t);
-void e3d_texture_wrap_get(const E3D_Texture *texture, Evas_Canvas3D_Wrap_Mode *s, Evas_Canvas3D_Wrap_Mode *t);
-
-void e3d_texture_filter_set(E3D_Texture *texture, Evas_Canvas3D_Texture_Filter min, Evas_Canvas3D_Texture_Filter mag);
-void e3d_texture_filter_get(const E3D_Texture *texture, Evas_Canvas3D_Texture_Filter *min, Evas_Canvas3D_Texture_Filter *mag);
-
-/* Drawable */
-E3D_Drawable *e3d_drawable_new(int w, int h, int alpha, GLenum depth_format, GLenum stencil_format);
-void e3d_drawable_free(E3D_Drawable *drawable);
-void e3d_drawable_scene_render(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_Canvas3D_Scene_Public_Data *data);
-Eina_Bool e3d_drawable_scene_render_to_texture(E3D_Drawable *drawable, E3D_Renderer *renderer, Evas_Canvas3D_Scene_Public_Data *data);
-void e3d_drawable_size_get(E3D_Drawable *drawable, int *w, int *h);
-GLuint e3d_drawable_texture_id_get(E3D_Drawable *drawable);
-GLuint e3d_drawable_texture_color_pick_id_get(E3D_Drawable *drawable);
-void e3d_drawable_texture_pixel_color_get(GLuint tex EINA_UNUSED, int x, int y, Evas_Color *color, void *drawable);
-GLenum e3d_drawable_format_get(E3D_Drawable *drawable);
-void e3d_drawable_texture_rendered_pixels_get(GLuint tex EINA_UNUSED, int x, int y, int w, int h,
- void *drawable EINA_UNUSED, void *data);
-/* Renderer */
-E3D_Renderer *e3d_renderer_new(void);
-void e3d_renderer_free(E3D_Renderer *renderer);
diff --git a/src/modules/evas/engines/gl_common/evas_gl_3d_private.h b/src/modules/evas/engines/gl_common/evas_gl_3d_private.h
deleted file mode 100644
index 1c4d2adfac..0000000000
--- a/src/modules/evas/engines/gl_common/evas_gl_3d_private.h
+++ /dev/null
@@ -1,183 +0,0 @@
-#ifndef EVAS_GL_3D_PRIVATE_H
-#define EVAS_GL_3D_PRIVATE_H
-
-#include "evas_gl_common.h"
-
-typedef struct _E3D_Program E3D_Program;
-typedef struct _E3D_Draw_Data E3D_Draw_Data;
-typedef unsigned long E3D_Shader_Flag;
-
-// NOTE: order here should be equal with flag names in file evas_gl_3d_shader.c
-#define E3D_SHADER_FLAG_NORMALIZE_NORMALS (1 << 0)
-#define E3D_SHADER_FLAG_VERTEX_POSITION (1 << 1)
-#define E3D_SHADER_FLAG_VERTEX_POSITION_BLEND (1 << 2)
-#define E3D_SHADER_FLAG_VERTEX_NORMAL (1 << 3)
-#define E3D_SHADER_FLAG_VERTEX_NORMAL_BLEND (1 << 4)
-#define E3D_SHADER_FLAG_VERTEX_TANGENT (1 << 5)
-#define E3D_SHADER_FLAG_VERTEX_TANGENT_BLEND (1 << 6)
-#define E3D_SHADER_FLAG_VERTEX_COLOR (1 << 7)
-#define E3D_SHADER_FLAG_VERTEX_COLOR_BLEND (1 << 8)
-#define E3D_SHADER_FLAG_VERTEX_TEXCOORD (1 << 9)
-#define E3D_SHADER_FLAG_VERTEX_TEXCOORD_BLEND (1 << 10)
-#define E3D_SHADER_FLAG_LIGHT_DIRECTIONAL (1 << 11)
-#define E3D_SHADER_FLAG_LIGHT_SPOT (1 << 12)
-#define E3D_SHADER_FLAG_LIGHT_ATTENUATION (1 << 13)
-#define E3D_SHADER_FLAG_AMBIENT (1 << 14)
-#define E3D_SHADER_FLAG_DIFFUSE (1 << 15)
-#define E3D_SHADER_FLAG_SPECULAR (1 << 16)
-#define E3D_SHADER_FLAG_EMISSION (1 << 17)
-#define E3D_SHADER_FLAG_DIFFUSE_TEXTURE (1 << 18)
-#define E3D_SHADER_FLAG_AMBIENT_TEXTURE (1 << 19)
-#define E3D_SHADER_FLAG_SPECULAR_TEXTURE (1 << 20)
-#define E3D_SHADER_FLAG_EMISSION_TEXTURE (1 << 21)
-#define E3D_SHADER_FLAG_NORMAL_TEXTURE (1 << 22)
-#define E3D_SHADER_FLAG_DIFFUSE_TEXTURE_BLEND (1 << 23)
-#define E3D_SHADER_FLAG_AMBIENT_TEXTURE_BLEND (1 << 24)
-#define E3D_SHADER_FLAG_SPECULAR_TEXTURE_BLEND (1 << 25)
-#define E3D_SHADER_FLAG_EMISSION_TEXTURE_BLEND (1 << 26)
-#define E3D_SHADER_FLAG_NORMAL_TEXTURE_BLEND (1 << 27)
-#define E3D_SHADER_FLAG_FOG_ENABLED (1 << 28)
-#define E3D_SHADER_FLAG_ALPHA_TEST_ENABLED (1 << 29)
-#define E3D_SHADER_FLAG_SHADOWED (1 << 30)
-#define E3D_SHADER_FLAG_COUNT 31
-
-static inline Eina_Bool
-_flags_need_tex_coord(E3D_Shader_Flag flags)
-{
- return (flags & E3D_SHADER_FLAG_AMBIENT_TEXTURE) ||
- (flags & E3D_SHADER_FLAG_DIFFUSE_TEXTURE) ||
- (flags & E3D_SHADER_FLAG_SPECULAR_TEXTURE) ||
- (flags & E3D_SHADER_FLAG_EMISSION_TEXTURE) ||
- (flags & E3D_SHADER_FLAG_NORMAL_TEXTURE);
-}
-
-struct _E3D_Draw_Data
-{
- E3D_Shader_Flag flags;
- Evas_Canvas3D_Shader_Mode mode;
-
- Eina_Matrix4 matrix_mvp;
- Eina_Matrix4 matrix_mv;
- Eina_Matrix3 matrix_normal;
- Eina_Matrix4 matrix_light;
-
- struct {
- Evas_Canvas3D_Vertex_Buffer vertex0;
- Evas_Canvas3D_Vertex_Buffer vertex1;
- Evas_Real weight;
- } vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_COUNT];
-
- Evas_Canvas3D_Vertex_Assembly assembly;
- int vertex_count;
- int index_count;
- Evas_Canvas3D_Index_Format index_format;
- const void *indices;
-
- GLint texture_count;
-
- struct {
- Evas_Color color;
- GLint sampler0;
- GLint sampler1;
- E3D_Texture *tex0;
- E3D_Texture *tex1;
- Evas_Real texture_weight;
- } materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_COUNT];
-
- Evas_Real shininess;
-
- GLint smap_sampler;
- GLint colortex_sampler;
- Evas_Canvas3D_Blend_Func blend_sfactor;
- Evas_Canvas3D_Blend_Func blend_dfactor;
- Eina_Bool blending : 1;
-
- Evas_Canvas3D_Comparison alpha_comparison;
- Evas_Real alpha_ref_value;
- Eina_Bool alpha_test_enabled :1;
-
- struct {
- Eina_Quaternion position;
- Eina_Vector3 spot_dir;
- Evas_Real spot_exp;
- Evas_Real spot_cutoff_cos;
- Eina_Vector3 atten;
- Evas_Color ambient;
- Evas_Color diffuse;
- Evas_Color specular;
- } light;
- Evas_Color fog_color;
- Evas_Color color_pick_key;
- /*Sets of the quality of shadow rendering*/
- Evas_Real pcf_step;
- Evas_Real pcf_size;
- Evas_Real constant_bias;
-
- Eina_Bool render_to_texture;
-
- Evas_Real frame_size_h;
- Evas_Real frame_size_w;
-};
-
-struct _E3D_Texture
-{
- /*Offset for atlasses*/
- int x, y;
- int w, h;
-
- Evas_GL_Image *surface;
- /*Tranformation matrix, use it for adjusting texture unit coordinates*/
- Eina_Matrix3 trans;
-
- GLuint tex;
-
- Eina_Bool wrap_dirty;
- GLenum wrap_s;
- GLenum wrap_t;
-
- Eina_Bool filter_dirty;
- GLenum filter_min;
- GLenum filter_mag;
- /*Use atlas for generation texture unit, @EINA_TRUE by default*/
- Eina_Bool atlas_enable;
-};
-
-struct _E3D_Drawable
-{
- int w, h;
- int alpha;
- GLenum format;
- GLenum depth_format;
- GLenum stencil_format;
- GLuint tex;
- GLuint fbo;
- GLuint depth_stencil_buf;
- GLuint depth_buf;
- GLuint stencil_buf;
- GLuint texDepth;
- GLuint texcolorpick;
- GLuint color_pick_fb_id;
-};
-
-/* Texture internal functions. */
-void e3d_texture_param_update(E3D_Texture *texture);
-
-/* Program */
-E3D_Program *e3d_program_new(Evas_Canvas3D_Shader_Mode mode, E3D_Shader_Flag flags);
-void e3d_program_free(E3D_Program *program);
-GLuint e3d_program_id_get(const E3D_Program *program);
-Evas_Canvas3D_Shader_Mode e3d_program_shader_mode_get(const E3D_Program *program);
-E3D_Shader_Flag e3d_program_shader_flags_get(const E3D_Program *program);
-void e3d_program_uniform_upload(E3D_Program *program, const E3D_Draw_Data *data);
-
-/* Renderer */
-void e3d_renderer_target_set(E3D_Renderer *renderer, E3D_Drawable *target);
-void e3d_renderer_viewport_set(E3D_Renderer *renderer, int x, int y, int w, int h);
-void e3d_renderer_clear(E3D_Renderer *renderer, const Evas_Color *color);
-void e3d_renderer_draw(E3D_Renderer *renderer, E3D_Draw_Data *data);
-void e3d_renderer_flush(E3D_Renderer *renderer);
-void e3d_renderer_color_pick_target_set(E3D_Renderer *renderer, E3D_Drawable *drawable);
-Eina_Bool e3d_renderer_rendering_to_texture_get(E3D_Renderer *renderer);
-GLint e3d_renderer_sampler_colortexture_get(E3D_Renderer *renderer);
-GLint e3d_renderer_sampler_shadowmap_get(E3D_Renderer *renderer);
-#endif /* EVAS_GL_3D_PRIVATE_H */
diff --git a/src/modules/evas/engines/gl_common/evas_gl_3d_renderer.c b/src/modules/evas/engines/gl_common/evas_gl_3d_renderer.c
deleted file mode 100644
index 2e4f885b77..0000000000
--- a/src/modules/evas/engines/gl_common/evas_gl_3d_renderer.c
+++ /dev/null
@@ -1,428 +0,0 @@
-#include "evas_gl_private.h"
-#include "evas_gl_3d_private.h"
-
-#define E3D_MAX_TEXTURE_COUNT 8
-#define E3D_MAX_VERTEX_ATTRIB_COUNT 8
-
-struct _E3D_Renderer
-{
- Eina_List *programs;
-
- GLuint fbo;
- GLuint program;
- E3D_Texture *textures[E3D_MAX_TEXTURE_COUNT];
-
- Eina_Bool vertex_attrib_enable[E3D_MAX_VERTEX_ATTRIB_COUNT];
- Eina_Bool depth_test_enable;
- GLuint texDepth;
- GLint smap_sampler;
- Eina_Bool render_to_texture;
- GLuint texcolorpick;
- GLint colortex_sampler;
-};
-
-static inline GLenum
-_gl_assembly_get(Evas_Canvas3D_Vertex_Assembly assembly)
-{
- switch (assembly)
- {
- case EVAS_CANVAS3D_VERTEX_ASSEMBLY_POINTS:
- return GL_POINTS;
- case EVAS_CANVAS3D_VERTEX_ASSEMBLY_LINES:
- return GL_LINES;
- case EVAS_CANVAS3D_VERTEX_ASSEMBLY_LINE_STRIP:
- return GL_LINE_STRIP;
- case EVAS_CANVAS3D_VERTEX_ASSEMBLY_LINE_LOOP:
- return GL_LINE_LOOP;
- case EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES:
- return GL_TRIANGLES;
- case EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLE_STRIP:
- return GL_TRIANGLE_STRIP;
- case EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLE_FAN:
- return GL_TRIANGLE_FAN;
- default:
- return GL_NONE;
- }
-}
-
-static inline GLenum
-_gl_blend_func_get(Evas_Canvas3D_Blend_Func blend_func)
-{
- switch (blend_func)
- {
- case EVAS_CANVAS3D_BLEND_FUNC_ZERO:
- return GL_ZERO;
- case EVAS_CANVAS3D_BLEND_FUNC_ONE:
- return GL_ONE;
- case EVAS_CANVAS3D_BLEND_FUNC_SRC_COLOR:
- return GL_SRC_COLOR;
- case EVAS_CANVAS3D_BLEND_FUNC_ONE_MINUS_SRC_COLOR:
- return GL_ONE_MINUS_SRC_COLOR;
- case EVAS_CANVAS3D_BLEND_FUNC_DST_COLOR:
- return GL_DST_COLOR;
- case EVAS_CANVAS3D_BLEND_FUNC_ONE_MINUS_DST_COLOR:
- return GL_ONE_MINUS_DST_COLOR;
- case EVAS_CANVAS3D_BLEND_FUNC_SRC_ALPHA:
- return GL_SRC_ALPHA;
- case EVAS_CANVAS3D_BLEND_FUNC_ONE_MINUS_SRC_ALPHA:
- return GL_ONE_MINUS_SRC_ALPHA;
- case EVAS_CANVAS3D_BLEND_FUNC_DST_ALPHA:
- return GL_DST_ALPHA;
- case EVAS_CANVAS3D_BLEND_FUNC_ONE_MINUS_DST_ALPHA:
- return GL_ONE_MINUS_DST_ALPHA;
- case EVAS_CANVAS3D_BLEND_FUNC_CONSTANT_COLOR:
- return GL_CONSTANT_COLOR;
- case EVAS_CANVAS3D_BLEND_FUNC_ONE_MINUS_CONSTANT_COLOR:
- return GL_ONE_MINUS_CONSTANT_COLOR;
- case EVAS_CANVAS3D_BLEND_FUNC_CONSTANT_ALPHA:
- return GL_CONSTANT_ALPHA;
- case EVAS_CANVAS3D_BLEND_FUNC_ONE_MINUS_CONSTANT_ALPHA:
- return GL_ONE_MINUS_CONSTANT_ALPHA;
- case EVAS_CANVAS3D_BLEND_FUNC_SRC_ALPHA_SATURATE:
- return GL_SRC_ALPHA_SATURATE;
- default:
- return GL_ZERO;
- }
-}
-
-#ifndef GL_GLES
-static inline GLenum
-_gl_comparison_func_get(Evas_Canvas3D_Comparison comparison_func)
-{
- switch (comparison_func)
- {
- case EVAS_CANVAS3D_COMPARISON_NEVER:
- return GL_NEVER;
- case EVAS_CANVAS3D_COMPARISON_LESS:
- return GL_LESS;
- case EVAS_CANVAS3D_COMPARISON_EQUAL:
- return GL_EQUAL;
- case EVAS_CANVAS3D_COMPARISON_LEQUAL:
- return GL_LEQUAL;
- case EVAS_CANVAS3D_COMPARISON_GREATER:
- return GL_GREATER;
- case EVAS_CANVAS3D_COMPARISON_NOTEQUAL:
- return GL_NOTEQUAL;
- case EVAS_CANVAS3D_COMPARISON_GEQUAL:
- return GL_GEQUAL;
- case EVAS_CANVAS3D_COMPARISON_ALWAYS:
- return GL_ALWAYS;
- default:
- return GL_ALWAYS;
- }
-}
-#endif
-
-static inline void
-_renderer_vertex_attrib_array_enable(E3D_Renderer *renderer, int index)
-{
- if (renderer->vertex_attrib_enable[index])
- return;
-
- glEnableVertexAttribArray(index);
- renderer->vertex_attrib_enable[index] = EINA_TRUE;
-}
-
-static inline void
-_renderer_vertex_attrib_array_disable(E3D_Renderer *renderer, int index)
-{
- if (!renderer->vertex_attrib_enable[index])
- return;
-
- glDisableVertexAttribArray(index);
- renderer->vertex_attrib_enable[index] = EINA_FALSE;
-}
-
-static inline void
-_renderer_vertex_attrib_pointer_set(E3D_Renderer *renderer EINA_UNUSED, int index,
- const Evas_Canvas3D_Vertex_Buffer *buffer)
-{
- glVertexAttribPointer(index, buffer->element_count, GL_FLOAT,
- GL_FALSE, buffer->stride, buffer->data);
-}
-
-static inline void
-_renderer_elements_draw(E3D_Renderer *renderer EINA_UNUSED, Evas_Canvas3D_Vertex_Assembly assembly,
- int count, Evas_Canvas3D_Index_Format format, const void *indices)
-{
- GLenum mode = _gl_assembly_get(assembly);
-
- if (format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_BYTE)
- glDrawElements(mode, count, GL_UNSIGNED_BYTE, indices);
- else if (format == EVAS_CANVAS3D_INDEX_FORMAT_UNSIGNED_SHORT)
- glDrawElements(mode, count, GL_UNSIGNED_SHORT, indices);
-}
-
-static inline void
-_renderer_array_draw(E3D_Renderer *renderer EINA_UNUSED,
- Evas_Canvas3D_Vertex_Assembly assembly, int count)
-{
- GLenum mode = _gl_assembly_get(assembly);
-
- glDrawArrays(mode, 0, count);
-}
-
-static inline void
-_renderer_program_use(E3D_Renderer *renderer ,E3D_Program *program)
-{
- GLuint prog = e3d_program_id_get(program);
-
- if (renderer->program != prog)
- {
- glUseProgram(prog);
- renderer->program = prog;
- }
-}
-
-static inline void
-_renderer_texture_bind(E3D_Renderer *renderer, E3D_Draw_Data *data)
-{
- int i;
-
- for (i = 0; i < EVAS_CANVAS3D_MATERIAL_ATTRIB_COUNT; i++)
- {
- if (data->materials[i].tex0)
- {
- if (renderer->textures[data->materials[i].sampler0] != data->materials[i].tex0)
- {
- glActiveTexture(GL_TEXTURE0 + data->materials[i].sampler0);
- glBindTexture(GL_TEXTURE_2D, data->materials[i].tex0->tex);
- e3d_texture_param_update(data->materials[i].tex0);
-
- renderer->textures[data->materials[i].sampler0] = data->materials[i].tex0;
- }
- }
-
- if (data->materials[i].tex1)
- {
- if (renderer->textures[data->materials[i].sampler1] != data->materials[i].tex1)
- {
- glActiveTexture(GL_TEXTURE0 + data->materials[i].sampler1);
- glBindTexture(GL_TEXTURE_2D, data->materials[i].tex1->tex);
- e3d_texture_param_update(data->materials[i].tex1);
-
- renderer->textures[data->materials[i].sampler1] = data->materials[i].tex1;
- }
- }
- }
- if ((data->flags & E3D_SHADER_FLAG_SHADOWED) && (renderer->smap_sampler != data->smap_sampler))
- {
- glActiveTexture(GL_TEXTURE0 + data->smap_sampler);
- glBindTexture(GL_TEXTURE_2D, renderer->texDepth);
- renderer->smap_sampler = data->smap_sampler;
- }
- if (renderer->render_to_texture)
- {
- glActiveTexture(GL_TEXTURE0 + data->colortex_sampler);
- glBindTexture(GL_TEXTURE_2D, renderer->texcolorpick);
- renderer->colortex_sampler = data->colortex_sampler;
- }
-}
-
-static inline void
-_renderer_depth_test_enable(E3D_Renderer *renderer, Eina_Bool enable)
-{
- if (renderer->depth_test_enable != enable)
- {
- if (enable)
- {
- glEnable(GL_DEPTH_TEST);
- /* Use default depth func. */
- }
- else
- {
- glDisable(GL_DEPTH_TEST);
- }
-
- renderer->depth_test_enable = enable;
- }
-}
-
-E3D_Renderer *
-e3d_renderer_new(void)
-{
- E3D_Renderer *renderer = NULL;
-
- renderer = (E3D_Renderer *)calloc(1, sizeof(E3D_Renderer));
-
- if (renderer == NULL)
- {
- ERR("Failed to allocate memory.");
- return NULL;
- }
-
- return renderer;
-}
-
-void
-e3d_renderer_free(E3D_Renderer *renderer)
-{
- Eina_List *l;
- E3D_Program *p;
-
- EINA_LIST_FOREACH(renderer->programs, l, p)
- {
- e3d_program_free(p);
- }
-
- eina_list_free(renderer->programs);
-}
-
-void
-e3d_renderer_target_set(E3D_Renderer *renderer, E3D_Drawable *target)
-{
- if (renderer->fbo == target->fbo)
- return;
-
- glBindFramebuffer(GL_FRAMEBUFFER, target->fbo);
- glViewport(0, 0, target->w, target->h);
- renderer->fbo = target->fbo;
- renderer->texDepth = target->texDepth;
- renderer->texcolorpick = target->texcolorpick;
- renderer->render_to_texture = EINA_FALSE;
-}
-
-void
-e3d_renderer_color_pick_target_set(E3D_Renderer *renderer, E3D_Drawable *drawable)
-{
- glBindFramebuffer(GL_FRAMEBUFFER, drawable->color_pick_fb_id);
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
- GL_TEXTURE_2D, drawable->texcolorpick, 0);
-#ifdef GL_GLES
- glBindRenderbuffer(GL_RENDERBUFFER, drawable->depth_stencil_buf);
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
- GL_TEXTURE_2D, drawable->depth_stencil_buf, 0);
-#else
- glBindRenderbuffer(GL_RENDERBUFFER, drawable->depth_stencil_buf);
- glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT,
- GL_RENDERBUFFER, drawable->depth_stencil_buf);
-#endif
- glViewport(0, 0, drawable->w, drawable->h);
- renderer->texDepth = drawable->texDepth;
- renderer->texcolorpick = drawable->texcolorpick;
- renderer->render_to_texture = EINA_TRUE;
-}
-
-Eina_Bool
-e3d_renderer_rendering_to_texture_get(E3D_Renderer *renderer)
-{
- return renderer->render_to_texture;
-}
-
-void
-e3d_renderer_clear(E3D_Renderer *renderer EINA_UNUSED, const Evas_Color *color)
-{
- glClearColor(color->r, color->g, color->b, color->a);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-}
-
-void
-e3d_renderer_draw(E3D_Renderer *renderer, E3D_Draw_Data *data)
-{
- Eina_List *l;
- E3D_Program *program = NULL, *p;
- int i, index = 0;
-
- _renderer_depth_test_enable(renderer, EINA_TRUE);
-
- EINA_LIST_FOREACH(renderer->programs, l, p)
- {
- if (e3d_program_shader_mode_get(p) == data->mode &&
- e3d_program_shader_flags_get(p) == data->flags)
- {
- program = p;
- break;
- }
- }
-
- if (program == NULL)
- {
- program = e3d_program_new(data->mode, data->flags);
-
- if (program == NULL)
- {
- ERR("Failed to create shader program.");
- return;
- }
-
- renderer->programs = eina_list_append(renderer->programs, program);
- }
-
- _renderer_program_use(renderer, program);
- e3d_program_uniform_upload(program, data);
- _renderer_texture_bind(renderer, data);
-
- /* Set up vertex attrib pointers. */
- index = 0;
-
- for (i = 0; i < EVAS_CANVAS3D_VERTEX_ATTRIB_COUNT; i++)
- {
- const Evas_Canvas3D_Vertex_Buffer *buffer;
-
- buffer = &data->vertices[i].vertex0;
-
- if (buffer->data != NULL)
- {
- _renderer_vertex_attrib_array_enable(renderer, index);
- _renderer_vertex_attrib_pointer_set(renderer, index, buffer);
- index++;
- }
-
- buffer = &data->vertices[i].vertex1;
-
- if (buffer->data != NULL)
- {
- _renderer_vertex_attrib_array_enable(renderer, index);
- _renderer_vertex_attrib_pointer_set(renderer, index, buffer);
- index++;
- }
- }
-
- while (index < E3D_MAX_VERTEX_ATTRIB_COUNT)
- _renderer_vertex_attrib_array_disable(renderer, index++);
-
- if (data->blending)
- {
- glEnable(GL_BLEND);
- glBlendFunc(_gl_blend_func_get(data->blend_sfactor), _gl_blend_func_get(data->blend_dfactor));
- }
- else glDisable(GL_BLEND);
-
-#ifndef GL_GLES
- if (data->alpha_test_enabled)
- {
- glEnable(GL_ALPHA_TEST);
- glAlphaFunc(_gl_comparison_func_get(data->alpha_comparison),
- (GLclampf)data->alpha_ref_value);
- }
- else glDisable(GL_ALPHA_TEST);
-#endif
-
- if (data->indices)
- {
- _renderer_elements_draw(renderer, data->assembly, data->index_count,
- data->index_format, data->indices);
- }
- else
- {
- _renderer_array_draw(renderer, data->assembly, data->vertex_count);
- }
-}
-
-void
-e3d_renderer_flush(E3D_Renderer *renderer EINA_UNUSED)
-{
- glFlush();
-}
-
-GLint
-e3d_renderer_sampler_colortexture_get(E3D_Renderer *renderer)
-{
- return renderer->colortex_sampler;
-}
-
-GLint
-e3d_renderer_sampler_shadowmap_get(E3D_Renderer *renderer)
-{
- return renderer->smap_sampler;
-}
diff --git a/src/modules/evas/engines/gl_common/evas_gl_3d_shader.c b/src/modules/evas/engines/gl_common/evas_gl_3d_shader.c
deleted file mode 100644
index 95be4a63fa..0000000000
--- a/src/modules/evas/engines/gl_common/evas_gl_3d_shader.c
+++ /dev/null
@@ -1,751 +0,0 @@
-#include "evas_gl_3d_private.h"
-#include "shader_3d/evas_gl_3d_shaders.x"
-
-typedef enum _E3D_Uniform
-{
- E3D_UNIFORM_MATRIX_MVP,
- E3D_UNIFORM_MATRIX_MV,
- E3D_UNIFORM_MATRIX_NORMAL,
- E3D_UNIFORM_MATRIX_LIGHT,
-
- E3D_UNIFORM_POSITION_WEIGHT,
- E3D_UNIFORM_NORMAL_WEIGHT,
- E3D_UNIFORM_TANGENT_WEIGHT,
- E3D_UNIFORM_COLOR_WEIGHT,
- E3D_UNIFORM_TEXCOORD_WEIGHT,
-
- E3D_UNIFORM_TEXTURE_WEIGHT_AMBIENT,
- E3D_UNIFORM_TEXTURE_WEIGHT_DIFFUSE,
- E3D_UNIFORM_TEXTURE_WEIGHT_SPECULAR,
- E3D_UNIFORM_TEXTURE_WEIGHT_EMISSION,
- E3D_UNIFORM_TEXTURE_WEIGHT_NORMAL,
-
- E3D_UNIFORM_TEXTURE_AMBIENT0,
- E3D_UNIFORM_TEXTURE_DIFFUSE0,
- E3D_UNIFORM_TEXTURE_SPECULAR0,
- E3D_UNIFORM_TEXTURE_EMISSION0,
- E3D_UNIFORM_TEXTURE_NORMAL0,
-
- E3D_UNIFORM_TEXTURE_AMBIENT1,
- E3D_UNIFORM_TEXTURE_DIFFUSE1,
- E3D_UNIFORM_TEXTURE_SPECULAR1,
- E3D_UNIFORM_TEXTURE_EMISSION1,
- E3D_UNIFORM_TEXTURE_NORMAL1,
-
- E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_AMBIENT0,
- E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_DIFFUSE0,
- E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_SPECULAR0,
- E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_EMISSION0,
- E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_NORMAL0,
-
- E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_AMBIENT1,
- E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_DIFFUSE1,
- E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_SPECULAR1,
- E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_EMISSION1,
- E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_NORMAL1,
-
- E3D_UNIFORM_SHADOWMAP,
- E3D_UNIFORM_SHADOWS_PCF_STEP,
- E3D_UNIFORM_SHADOWS_PCF_SIZE,
- E3D_UNIFORM_SHADOWS_CONSTANT_BIAS,
-
- E3D_UNIFORM_LIGHT_POSITION,
- E3D_UNIFORM_LIGHT_SPOT_DIR,
- E3D_UNIFORM_LIGHT_SPOT_EXP,
- E3D_UNIFORM_LIGHT_SPOT_CUTOFF_COS,
- E3D_UNIFORM_LIGHT_ATTENUATION,
- E3D_UNIFORM_LIGHT_AMBIENT,
- E3D_UNIFORM_LIGHT_DIFFUSE,
- E3D_UNIFORM_LIGHT_SPECULAR,
-
- E3D_UNIFORM_MATERIAL_AMBIENT,
- E3D_UNIFORM_MATERIAL_DIFFUSE,
- E3D_UNIFORM_MATERIAL_SPECULAR,
- E3D_UNIFORM_MATERIAL_EMISSION,
- E3D_UNIFORM_MATERIAL_SHININESS,
- E3D_UNIFORM_FOG_FACTOR,
- E3D_UNIFORM_FOG_COLOR,
- E3D_UNIFORM_COLOR_PICK,
- E3D_UNIFORM_ALPHATEST_COMPARISON,
- E3D_UNIFORM_ALPHATEST_REFVALUE,
- E3D_UNIFORM_RENDER_TO_TEXTURE,
- E3D_UNIFORM_FRAME_SIZE_H,
- E3D_UNIFORM_FRAME_SIZE_W,
- E3D_UNIFORM_COUNT,
-} E3D_Uniform;
-
-static const char *shader_flag_names[] =
-{
- "NORMALIZE_NORMALS",
- "VERTEX_POSITION",
- "VERTEX_POSITION_BLEND",
- "VERTEX_NORMAL",
- "VERTEX_NORMAL_BLEND",
- "VERTEX_TANGENT",
- "VERTEX_TANGENT_BLEND",
- "VERTEX_COLOR",
- "VERTEX_COLOR_BLEND",
- "VERTEX_TEXCOORD",
- "VERTEX_TEXCOORD_BLEND",
- "LIGHT_DIRECTIONAL",
- "LIGHT_SPOT",
- "LIGHT_ATTENUATION",
- "AMBIENT",
- "DIFFUSE",
- "SPECULAR",
- "EMISSION",
- "DIFFUSE_TEXTURE",
- "AMBIENT_TEXTURE",
- "SPECULAR_TEXTURE",
- "EMISSION_TEXTURE",
- "NORMAL_TEXTURE",
- "DIFFUSE_TEXTURE_BLEND",
- "AMBIENT_TEXTURE_BLEND",
- "SPECULAR_TEXTURE_BLEND",
- "EMISSION_TEXTURE_BLEND",
- "NORMAL_TEXTURE_BLEND",
- "FOG_ENABLED",
- "ALPHA_TEST_ENABLED",
- "SHADOWED"
-};
-
-typedef struct _E3D_Shader_String
-{
- char *str;
- int size;
- int count;
-} E3D_Shader_String;
-
-struct _E3D_Program
-{
- GLuint vert;
- GLuint frag;
- GLuint prog;
-
- E3D_Shader_Flag flags;
- Evas_Canvas3D_Shader_Mode mode;
-
- GLint uniform_locations[E3D_UNIFORM_COUNT];
-};
-
-static void _shader_string_init(E3D_Shader_String *string)
-{
- string->str = NULL;
- string->size = 0;
- string->count = 0;
-}
-
-static void _shader_string_fini(E3D_Shader_String *string)
-{
- if (string->str)
- {
- free(string->str);
- _shader_string_init(string);
- }
-}
-
-void _shader_string_add(E3D_Shader_String *shader, const char *str)
-{
- int len;
-
- if (str == NULL)
- return;
-
- len = strlen(str);
-
- if ((shader->size - shader->count) < len)
- {
- int new_size = (shader->count + len) * 2;
- char *new_buf = (char *)malloc(new_size + 1);
-
- if (shader->str)
- {
- memcpy(new_buf, shader->str, sizeof(char) * shader->count);
- free(shader->str);
- }
-
- shader->str = new_buf;
- shader->size = new_size;
- }
-
- memcpy(&shader->str[shader->count], str, len + 1);
- shader->count += len;
-}
-
-void _shader_flags_add(E3D_Shader_String *shader, E3D_Shader_Flag flags)
-{
- int i;
-
- for (i = 0; i < E3D_SHADER_FLAG_COUNT; i++)
- if (flags & (1 << i))
- {
- int len = strlen("#define ") + strlen(shader_flag_names[i]) + 2;
- char str[len];
- snprintf(str, len, "#define %s\n", shader_flag_names[i]);
- _shader_string_add(shader, str);
- }
-
- if(_flags_need_tex_coord(flags))
- _shader_string_add(shader, "#define NEED_TEX_COORD\n");
-}
-
-static inline Eina_Bool
-_shader_compile(GLuint shader, const char *src)
-{
- GLint ok = 0;
-
- glShaderSource(shader, 1, &src, NULL);
- glCompileShader(shader);
- glGetShaderiv(shader, GL_COMPILE_STATUS, &ok);
-
- if (!ok)
- {
- GLchar *log_str;
- GLint len;
- GLsizei info_len;
-
- glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &len);
- log_str = (GLchar *)malloc(len);
- glGetShaderInfoLog(shader, len, &info_len, log_str);
- ERR("Shader compilation failed: %s", log_str);
- DBG("Shader source was:\n%s", src);
- free(log_str);
-
- return EINA_FALSE;
- }
-
- return EINA_TRUE;
-}
-
-static inline void
-_program_vertex_attrib_bind(E3D_Program *program)
-{
- GLint index = 0;
-
- if (program->flags & E3D_SHADER_FLAG_VERTEX_POSITION)
- glBindAttribLocation(program->prog, index++, "aPosition0");
-
- if (program->flags & E3D_SHADER_FLAG_VERTEX_POSITION_BLEND)
- glBindAttribLocation(program->prog, index++, "aPosition1");
-
- if (program->flags & E3D_SHADER_FLAG_VERTEX_NORMAL)
- glBindAttribLocation(program->prog, index++, "aNormal0");
-
- if (program->flags & E3D_SHADER_FLAG_VERTEX_NORMAL_BLEND)
- glBindAttribLocation(program->prog, index++, "aNormal1");
-
- if (program->flags & E3D_SHADER_FLAG_VERTEX_TANGENT)
- glBindAttribLocation(program->prog, index++, "aTangent0");
-
- if (program->flags & E3D_SHADER_FLAG_VERTEX_TANGENT_BLEND)
- glBindAttribLocation(program->prog, index++, "aTangent1");
-
- if (program->flags & E3D_SHADER_FLAG_VERTEX_COLOR)
- glBindAttribLocation(program->prog, index++, "aColor0");
-
- if (program->flags & E3D_SHADER_FLAG_VERTEX_COLOR_BLEND)
- glBindAttribLocation(program->prog, index++, "aColor1");
-
- if (program->flags & E3D_SHADER_FLAG_VERTEX_TEXCOORD)
- glBindAttribLocation(program->prog, index++, "aTexCoord0");
-
- if (program->flags & E3D_SHADER_FLAG_VERTEX_TEXCOORD_BLEND)
- glBindAttribLocation(program->prog, index++, "aTexCoord1");
-}
-
-static inline Eina_Bool
-_program_build(E3D_Program *program, const char *vert_src, const char *frag_src)
-{
- GLint ok = 0;
-
- /* Create OpenGL vertex & fragment shader object. */
- program->vert = glCreateShader(GL_VERTEX_SHADER);
- program->frag = glCreateShader(GL_FRAGMENT_SHADER);
-
- /* Commpile vertex shader. */
- if (!_shader_compile(program->vert, vert_src))
- {
- ERR("Faield to compile vertex shader.");
- return EINA_FALSE;
- }
-
- /* Compile fragment shader. */
- if (!_shader_compile(program->frag, frag_src))
- {
- ERR("Failed to compile fragment shader.");
- return EINA_FALSE;
- }
-
- /* Create OpenGL program object. */
- program->prog = glCreateProgram();
-
- /* Attach shaders. */
- glAttachShader(program->prog, program->vert);
- glAttachShader(program->prog, program->frag);
-
- _program_vertex_attrib_bind(program);
- /* Link program. */
- glLinkProgram(program->prog);
-
- /* Check link status. */
- glGetProgramiv(program->prog, GL_LINK_STATUS, &ok);
-
- if (!ok)
- {
- GLchar *log_str;
- GLint len = 0;
- GLsizei info_len;
-
- glGetProgramiv(program->prog, GL_INFO_LOG_LENGTH, &len);
- log_str = (GLchar *)malloc(len);
- glGetProgramInfoLog(program->prog, len, &info_len, log_str);
- ERR("Shader link failed.\n%s", log_str);
- free(log_str);
- return EINA_FALSE;
- }
-
- return EINA_TRUE;
-}
-
-static const char *uniform_names[] =
-{
- "uMatrixMvp",
- "uMatrixModelview",
- "uMatrixNormal",
- "uMatrixLight",
- "uPositionWeight",
- "uNormalWeight",
- "uTangentWeight",
- "uColorWeight",
- "uTexCoordWeight",
- "uTextureAmbientWeight",
- "uTextureDiffuseWeight",
- "uTextureSpecularWeight",
- "uTextureEmissionWeight",
- "uTextureNormalWeight",
- "uTextureAmbient0",
- "uTextureDiffuse0",
- "uTextureSpecular0",
- "uTextureEmission0",
- "uTextureNormal0",
- "uTextureAmbient1",
- "uTextureDiffuse1",
- "uTextureSpecular1",
- "uTextureEmission1",
- "uTextureNormal1",
- "uTextureMatrixTransformAmbient0",
- "uTextureMatrixTransformDiffuse0",
- "uTextureMatrixTransformSpecular0",
- "uTextureMatrixTransformEmission0",
- "uTextureMatrixTransformNormal0",
- "uTextureMatrixTransformAmbient1",
- "uTextureMatrixTransformDiffuse1",
- "uTextureMatrixTransformSpecular1",
- "uTextureMatrixTransformEmission1",
- "uTextureMatrixTransformNormal1",
- "uShadowMap",
- "uShadowsPCFStep",
- "uShadowsPCFSize",
- "uShadowsConstantBias",
- "uLightPosition",
- "uLightSpotDir",
- "uLightSpotExp",
- "uLightSpotCutoffCos",
- "uLightAtten",
- "uLightAmbient",
- "uLightDiffuse",
- "uLightSpecular",
- "uMaterialAmbient",
- "uMaterialDiffuse",
- "uMaterialSpecular",
- "uMaterialEmission",
- "uMaterialShininess",
- "uFogFactor",
- "uFogColor",
- "uColorPick",
- "uAlphaTestComparison",
- "uAlphaTestRefValue",
- "uColorTexture",
- "uFrameSizeH",
- "uFrameSizeW"
-};
-
-static inline void
-_program_uniform_init(E3D_Program *program)
-{
- int i;
- for (i = 0; i < E3D_UNIFORM_COUNT; i++)
- {
- program->uniform_locations[i] = glGetUniformLocation(program->prog, uniform_names[i]);
- }
-}
-
-#define UNIFORM_MATRIX3_FOREACH(m, data) \
- m[0] = data.xx; \
- m[1] = data.xy; \
- m[2] = data.xz; \
- m[3] = data.yx; \
- m[4] = data.yy; \
- m[5] = data.yz; \
- m[6] = data.zx; \
- m[7] = data.zy; \
- m[8] = data.zz;
-
-#define UNIFORM_MATRIX4_FOREACH(m, data) \
- m[0] = data.xx; \
- m[1] = data.xy; \
- m[2] = data.xz; \
- m[3] = data.xw; \
- m[4] = data.yx; \
- m[5] = data.yy; \
- m[6] = data.yz; \
- m[7] = data.yw; \
- m[8] = data.zx; \
- m[9] = data.zy; \
- m[10] = data.zz; \
- m[11] = data.zw; \
- m[12] = data.wx; \
- m[13] = data.wy; \
- m[14] = data.wz; \
- m[15] = data.ww;
-
-static inline void
-_uniform_upload(E3D_Uniform u, GLint loc, const E3D_Draw_Data *data)
-{
-#define SET_TEX_COORD_TRANSFORM_MATRIX(attrib, tn) \
- if (data->materials[attrib].tex##tn) \
- { \
- float m[9]; \
- UNIFORM_MATRIX3_FOREACH(m, data->materials[attrib].tex##tn->trans); \
- glUniformMatrix3fv(loc, 1, EINA_FALSE, &m[0]); \
- }
-
- switch (u)
- {
- case E3D_UNIFORM_MATRIX_MVP: {
- float m[16];
- UNIFORM_MATRIX4_FOREACH(m, data->matrix_mvp);
- glUniformMatrix4fv(loc, 1, EINA_FALSE, &m[0]);
- break;
- }
- case E3D_UNIFORM_MATRIX_MV: {
- float m[16];
- UNIFORM_MATRIX4_FOREACH(m, data->matrix_mv);
- glUniformMatrix4fv(loc, 1, EINA_FALSE, &m[0]);
- break;
- }
- case E3D_UNIFORM_MATRIX_NORMAL: {
- float m[9];
- UNIFORM_MATRIX3_FOREACH(m, data->matrix_normal);
- glUniformMatrix3fv(loc, 1, EINA_FALSE, &m[0]);
- break;
- }
- case E3D_UNIFORM_MATRIX_LIGHT: {
- float m[16];
- UNIFORM_MATRIX4_FOREACH(m, data->matrix_light);
- glUniformMatrix4fv(loc, 1, EINA_FALSE, &m[0]);
- break;
- }
- case E3D_UNIFORM_POSITION_WEIGHT:
- glUniform1f(loc, data->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION].weight);
- break;
- case E3D_UNIFORM_NORMAL_WEIGHT:
- glUniform1f(loc, data->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL].weight);
- break;
- case E3D_UNIFORM_TANGENT_WEIGHT:
- glUniform1f(loc, data->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_TANGENT].weight);
- break;
- case E3D_UNIFORM_COLOR_WEIGHT:
- glUniform1f(loc, data->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_COLOR].weight);
- break;
- case E3D_UNIFORM_TEXCOORD_WEIGHT:
- glUniform1f(loc, data->vertices[EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD].weight);
- break;
- case E3D_UNIFORM_TEXTURE_WEIGHT_AMBIENT:
- glUniform1f(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT].texture_weight);
- break;
- case E3D_UNIFORM_TEXTURE_WEIGHT_DIFFUSE:
- glUniform1f(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE].texture_weight);
- break;
- case E3D_UNIFORM_TEXTURE_WEIGHT_SPECULAR:
- glUniform1f(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR].texture_weight);
- break;
- case E3D_UNIFORM_TEXTURE_WEIGHT_EMISSION:
- glUniform1f(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_EMISSION].texture_weight);
- break;
- case E3D_UNIFORM_TEXTURE_WEIGHT_NORMAL:
- glUniform1f(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_NORMAL].texture_weight);
- break;
- case E3D_UNIFORM_TEXTURE_AMBIENT0:
- glUniform1i(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT].sampler0);
- break;
- case E3D_UNIFORM_TEXTURE_DIFFUSE0:
- glUniform1i(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE].sampler0);
- break;
- case E3D_UNIFORM_TEXTURE_SPECULAR0:
- glUniform1i(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR].sampler0);
- break;
- case E3D_UNIFORM_TEXTURE_EMISSION0:
- glUniform1i(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_EMISSION].sampler0);
- break;
- case E3D_UNIFORM_TEXTURE_NORMAL0:
- glUniform1i(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_NORMAL].sampler0);
- break;
- case E3D_UNIFORM_TEXTURE_AMBIENT1:
- glUniform1i(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT].sampler1);
- break;
- case E3D_UNIFORM_TEXTURE_DIFFUSE1:
- glUniform1i(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE].sampler1);
- break;
- case E3D_UNIFORM_TEXTURE_SPECULAR1:
- glUniform1i(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR].sampler1);
- break;
- case E3D_UNIFORM_TEXTURE_EMISSION1:
- glUniform1i(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_EMISSION].sampler1);
- break;
- case E3D_UNIFORM_TEXTURE_NORMAL1:
- glUniform1i(loc, data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_NORMAL].sampler1);
- break;
- case E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_AMBIENT0: {
- SET_TEX_COORD_TRANSFORM_MATRIX(EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, 0)
- break;
- }
- case E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_DIFFUSE0: {
- SET_TEX_COORD_TRANSFORM_MATRIX(EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, 0)
- break;
- }
- case E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_SPECULAR0: {
- SET_TEX_COORD_TRANSFORM_MATRIX(EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, 0)
- break;
- }
- case E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_EMISSION0: {
- SET_TEX_COORD_TRANSFORM_MATRIX(EVAS_CANVAS3D_MATERIAL_ATTRIB_EMISSION, 0)
- break;
- }
- case E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_NORMAL0: {
- SET_TEX_COORD_TRANSFORM_MATRIX(EVAS_CANVAS3D_MATERIAL_ATTRIB_NORMAL, 0)
- break;
- }
- case E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_AMBIENT1: {
- SET_TEX_COORD_TRANSFORM_MATRIX(EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, 1)
- break;
- }
- case E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_DIFFUSE1: {
- SET_TEX_COORD_TRANSFORM_MATRIX(EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, 1)
- break;
- }
- case E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_SPECULAR1: {
- SET_TEX_COORD_TRANSFORM_MATRIX(EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, 1)
- break;
- }
- case E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_EMISSION1: {
- SET_TEX_COORD_TRANSFORM_MATRIX(EVAS_CANVAS3D_MATERIAL_ATTRIB_EMISSION, 1)
- break;
- }
- case E3D_UNIFORM_TEXTURE_MATRIX_TRANSFORM_NORMAL1: {
- SET_TEX_COORD_TRANSFORM_MATRIX(EVAS_CANVAS3D_MATERIAL_ATTRIB_NORMAL, 1)
- break;
- }
- case E3D_UNIFORM_SHADOWMAP:
- glUniform1i(loc, data->smap_sampler);
- break;
- case E3D_UNIFORM_SHADOWS_PCF_STEP:
- glUniform1f(loc, data->pcf_step);
- break;
- case E3D_UNIFORM_SHADOWS_PCF_SIZE:
- glUniform1f(loc, data->pcf_size);
- break;
- case E3D_UNIFORM_SHADOWS_CONSTANT_BIAS:
- glUniform1f(loc, data->constant_bias);
- break;
- case E3D_UNIFORM_LIGHT_POSITION:
- glUniform4f(loc, data->light.position.x, data->light.position.y,
- data->light.position.z, data->light.position.w);
- break;
- case E3D_UNIFORM_LIGHT_SPOT_DIR:
- glUniform3f(loc, data->light.spot_dir.x, data->light.spot_dir.y, data->light.spot_dir.z);
- break;
- case E3D_UNIFORM_LIGHT_SPOT_EXP:
- glUniform1f(loc, data->light.spot_exp);
- break;
- case E3D_UNIFORM_LIGHT_SPOT_CUTOFF_COS:
- glUniform1f(loc, data->light.spot_cutoff_cos);
- break;
- case E3D_UNIFORM_LIGHT_ATTENUATION:
- glUniform3f(loc, data->light.atten.x, data->light.atten.y, data->light.atten.z);
- break;
- case E3D_UNIFORM_LIGHT_AMBIENT:
- glUniform4f(loc,
- data->light.ambient.r, data->light.ambient.g,
- data->light.ambient.b, data->light.ambient.a);
- break;
- case E3D_UNIFORM_LIGHT_DIFFUSE:
- glUniform4f(loc,
- data->light.diffuse.r, data->light.diffuse.g,
- data->light.diffuse.b, data->light.diffuse.a);
- break;
- case E3D_UNIFORM_LIGHT_SPECULAR:
- glUniform4f(loc,
- data->light.specular.r, data->light.specular.g,
- data->light.specular.b, data->light.specular.a);
- break;
- case E3D_UNIFORM_MATERIAL_AMBIENT:
- glUniform4f(loc,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT].color.r,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT].color.g,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT].color.b,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT].color.a);
- break;
- case E3D_UNIFORM_MATERIAL_DIFFUSE:
- glUniform4f(loc,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE].color.r,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE].color.g,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE].color.b,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE].color.a);
- break;
- case E3D_UNIFORM_MATERIAL_SPECULAR:
- glUniform4f(loc,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR].color.r,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR].color.g,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR].color.b,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR].color.a);
- break;
- case E3D_UNIFORM_MATERIAL_EMISSION:
- glUniform4f(loc,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_EMISSION].color.r,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_EMISSION].color.g,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_EMISSION].color.b,
- data->materials[EVAS_CANVAS3D_MATERIAL_ATTRIB_EMISSION].color.a);
- break;
- case E3D_UNIFORM_MATERIAL_SHININESS:
- glUniform1f(loc, data->shininess);
- break;
- case E3D_UNIFORM_FOG_FACTOR:
- glUniform1f(loc, data->fog_color.a);
- break;
- case E3D_UNIFORM_FOG_COLOR:
- glUniform4f(loc, data->fog_color.r, data->fog_color.g, data->fog_color.b, 1);
- break;
- case E3D_UNIFORM_COLOR_PICK:
- glUniform4f(loc, data->color_pick_key.r, data->color_pick_key.g,
- data->color_pick_key.b, 1.0);
- break;
- case E3D_UNIFORM_ALPHATEST_COMPARISON:
- glUniform1i(loc,
- (data->alpha_comparison ? data->alpha_comparison : EVAS_CANVAS3D_COMPARISON_GREATER));
- break;
- case E3D_UNIFORM_ALPHATEST_REFVALUE:
- glUniform1f(loc, (data->alpha_ref_value ? data->alpha_ref_value : 0.0));
- break;
- case E3D_UNIFORM_RENDER_TO_TEXTURE:
- glUniform1i(loc, data->colortex_sampler);
- break;
- case E3D_UNIFORM_FRAME_SIZE_H:
- glUniform1f(loc, data->frame_size_h);
- break;
- case E3D_UNIFORM_FRAME_SIZE_W:
- glUniform1f(loc, data->frame_size_w);
- break;
- default:
- ERR("Invalid uniform ID.");
- break;
- }
-#undef SET_TEX_SHIFT
-}
-
-void
-e3d_program_uniform_upload(E3D_Program *program, const E3D_Draw_Data *data)
-{
- int i;
- for (i = 0; i < E3D_UNIFORM_COUNT; i++)
- {
- if (program->uniform_locations[i] != -1)
- {
- _uniform_upload(i, program->uniform_locations[i], data);
- }
- }
-}
-
-E3D_Program *
-e3d_program_new(Evas_Canvas3D_Shader_Mode mode, E3D_Shader_Flag flags)
-{
- E3D_Shader_String vert, frag;
- E3D_Program *program = NULL;
-
- _shader_string_init(&vert);
- _shader_string_init(&frag);
-
- program = (E3D_Program *)calloc(1, sizeof(E3D_Program));
-
- if (program == NULL)
- {
- ERR("Failed to allocate memory.");
- return NULL;
- }
-
- program->prog = glCreateProgram();
- program->vert = glCreateShader(GL_VERTEX_SHADER);
- program->frag = glCreateShader(GL_FRAGMENT_SHADER);
- program->mode = mode;
- program->flags = flags;
-
- _shader_flags_add(&vert, flags);
- _shader_string_add(&frag, vert.str);
-
- _shader_string_add(&vert, vertex_shaders[mode]);
- _shader_string_add(&frag, fragment_shaders[mode]);
-
- if (! _program_build(program, vert.str, frag.str))
- goto error;
-
- _program_uniform_init(program);
-
- _shader_string_fini(&vert);
- _shader_string_fini(&frag);
-
- return program;
-
-error:
- if (program->prog)
- glDeleteProgram(program->prog);
-
- if (program->vert)
- glDeleteShader(program->vert);
-
- if (program->frag)
- glDeleteShader(program->frag);
-
- _shader_string_fini(&vert);
- _shader_string_fini(&frag);
-
- free(program);
-
- return NULL;
-}
-
-void
-e3d_program_free(E3D_Program *program)
-{
- glDeleteProgram(program->prog);
- glDeleteShader(program->vert);
- glDeleteShader(program->frag);
- free(program);
-}
-
-GLuint
-e3d_program_id_get(const E3D_Program *program)
-{
- return program->prog;
-}
-
-Evas_Canvas3D_Shader_Mode
-e3d_program_shader_mode_get(const E3D_Program *program)
-{
- return program->mode;
-}
-
-E3D_Shader_Flag
-e3d_program_shader_flags_get(const E3D_Program *program)
-{
- return program->flags;
-}
diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h b/src/modules/evas/engines/gl_common/evas_gl_common.h
index e902cd6b47..bcd131a146 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_common.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_common.h
@@ -979,8 +979,6 @@ _comp_tex_sub_2d(Evas_Engine_GL_Context *gc, int x, int y, int w, int h, int fmt
#endif
-#include "evas_gl_3d_common.h"
-
#undef EAPI
#define EAPI
diff --git a/src/modules/evas/engines/gl_common/evas_gl_define.h b/src/modules/evas/engines/gl_common/evas_gl_define.h
index 87502505e4..609fa957aa 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_define.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_define.h
@@ -285,7 +285,6 @@ Much of it is from Mesa, so their copyright is included as well.
#ifndef EGL_PLATFORM_X11_KHR
# define EGL_PLATFORM_X11_KHR 0x31D5
#endif
-// Evas_3d require GL_BGR, but that's an extention and will not be necessary once we move to Evas_GL_Image
#ifndef GL_BGR
#define GL_BGR 0x80E0
#endif
diff --git a/src/modules/evas/engines/gl_common/shader_3d/color_pick_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/color_pick_frag.shd
deleted file mode 100644
index faf43304c0..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/color_pick_frag.shd
+++ /dev/null
@@ -1,15 +0,0 @@
-uniform vec4 uColorPick;
-
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-void main()
-{
- vec4 color = uColorPick;
-
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-#else
- gl_FragColor = color;
-#endif //ALPHA_TEST_ENABLED
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/color_pick_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/color_pick_vert.shd
deleted file mode 100644
index 62de54f149..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/color_pick_vert.shd
+++ /dev/null
@@ -1,11 +0,0 @@
-uniform mat4 uMatrixMvp;
-
-VERTEX_SHADER_USE_POSITION
-
-void main()
-{
- VERTEX_SHADER_POSITION
-
- gl_Position = uMatrixMvp * position;
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/diffuse_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/diffuse_frag.shd
deleted file mode 100644
index 9faa357ec2..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/diffuse_frag.shd
+++ /dev/null
@@ -1,16 +0,0 @@
-FRAGMENT_SHADER_USE_TEX_COORD
-FRAGMENT_SHADER_USE_FOG
-FRAGMENT_SHADER_USE_DIFFUSE_TERM
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-void main() {
- vec4 color;
- FRAGMENT_SHADER_TEXTURE_BLEND(DIFFUSE, Diffuse)
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-#else
- gl_FragColor = color;
-#endif //ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_FOG_APPLY
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/diffuse_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/diffuse_vert.shd
deleted file mode 100644
index 1a68155577..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/diffuse_vert.shd
+++ /dev/null
@@ -1,13 +0,0 @@
-uniform mat4 uMatrixMvp;
-
-VERTEX_SHADER_USE_POSITION
-VERTEX_SHADER_USE_TEXCOORD
-VERTEX_SHADER_NEED_TEX_COORD
-
-void main()
-{
- VERTEX_SHADER_POSITION
- VERTEX_SHADER_TEXCOORD
-
- gl_Position = uMatrixMvp * position;
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x b/src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x
deleted file mode 100644
index 12664a04ca..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/evas_gl_3d_shaders.x
+++ /dev/null
@@ -1,2198 +0,0 @@
-/* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED */
-/* IF IT IS CHANGED PLEASE COMMIT THE CHANGES */
-
-static const char vertex_color_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "varying vec4 vColor;\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_COLOR\n"
- "attribute vec4 aColor0;\n"
- "#endif //VERTEX_COLOR\n"
- "#ifdef VERTEX_COLOR_BLEND\n"
- "attribute vec4 aColor1;\n"
- "uniform float uColorWeight;\n"
- "#endif //VERTEX_COLOR_BLEND\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_COLOR_BLEND\n"
- " vec4 color = aColor0 * uColorWeight + aColor1 * (1.0 - uColorWeight);\n"
- "#else\n"
- "#ifdef VERTEX_COLOR\n"
- " vec4 color = aColor0;\n"
- "#endif //VERTEX_COLOR\n"
- "#endif //VERTEX_COLOR_BLEND\n"
- " vColor = color;\n"
- " gl_Position = uMatrixMvp * position;\n"
- "}\n";
-
-static const char vertex_color_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "varying vec4 vColor;\n"
- "#ifdef FOG_ENABLED\n"
- "uniform float uFogFactor;\n"
- "uniform vec4 uFogColor;\n"
- "#endif //FOG_ENABLED\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "void main()\n"
- "{\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(vColor.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = vColor;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = vColor;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = vColor;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = vColor;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = vColor;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = vColor;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = vColor;\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- " \n"
- "#ifdef FOG_ENABLED\n"
- " float z = gl_FragCoord.z / gl_FragCoord.w;\n"
- " float fogFactor = exp2(-uFogFactor * uFogFactor * z * z * 1.44);\n"
- " fogFactor = clamp(fogFactor, 0.0, 1.0);\n"
- " gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);\n"
- "#endif //FOG_ENABLED\n"
- "}\n";
-
-static const char diffuse_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_TEXCOORD\n"
- "attribute vec4 aTexCoord0;\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#ifdef VERTEX_TEXCOORD_BLEND\n"
- "attribute vec4 aTexCoord1;\n"
- "uniform float uTexCoordWeight;\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //NEED_TEX_COORD\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " #ifdef VERTEX_TEXCOORD_BLEND\n"
- " vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n"
- " vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);\n"
- "#else\n"
- "#ifdef VERTEX_TEXCOORD\n"
- " vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- "}\n";
-
-static const char diffuse_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //TEX_COORD\n"
- "#ifdef FOG_ENABLED\n"
- "uniform float uFogFactor;\n"
- "uniform vec4 uFogColor;\n"
- "#endif //FOG_ENABLED\n"
- "#ifdef DIFFUSE\n"
- "uniform vec4 uMaterialDiffuse;\n"
- "uniform vec4 uLightDiffuse;\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- "uniform sampler2D uTextureDiffuse0;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse0;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureDiffuse1;\n"
- "uniform float uTextureDiffuseWeight;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse1;\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#endif //DIFFUSE\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "void main() {\n"
- " vec4 color;\n"
- " \n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1;\n"
- " color = mix(texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)),\n"
- " texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)), uTextureDiffuseWeight);\n"
- " color *= uMaterialDiffuse;\n"
- "#else\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) * uMaterialDiffuse;\n"
- "#else\n"
- " color = uMaterialDiffuse;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = color;\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- " \n"
- "#ifdef FOG_ENABLED\n"
- " float z = gl_FragCoord.z / gl_FragCoord.w;\n"
- " float fogFactor = exp2(-uFogFactor * uFogFactor * z * z * 1.44);\n"
- " fogFactor = clamp(fogFactor, 0.0, 1.0);\n"
- " gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);\n"
- "#endif //FOG_ENABLED\n"
- "}\n";
-
-static const char flat_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "uniform mat3 uMatrixNormal;\n"
- "uniform mat4 uMatrixModelview;\n"
- "uniform vec4 uLightPosition;\n"
- "varying vec2 vFactor;\n"
- "#ifdef SHADOWED\n"
- "uniform mat4 uMatrixLight;\n"
- "varying vec4 vLightPosition;\n"
- "#endif //SHADOWED\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_NORMAL\n"
- "attribute vec4 aNormal0;\n"
- "#endif //VERTEX_NORMAL\n"
- "#ifdef VERTEX_NORMAL_BLEND\n"
- "attribute vec4 aNormal1;\n"
- "uniform float uNormalWeight;\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- "#ifdef VERTEX_TEXCOORD\n"
- "attribute vec4 aTexCoord0;\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#ifdef VERTEX_TEXCOORD_BLEND\n"
- "attribute vec4 aTexCoord1;\n"
- "uniform float uTexCoordWeight;\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //NEED_TEX_COORD\n"
- "#ifdef LIGHT_SPOT\n"
- "uniform vec3 uLightSpotDir;\n"
- "uniform float uLightSpotExp;\n"
- "uniform float uLightSpotCutoffCos;\n"
- "#endif //LIGHT_SPOT\n"
- "#ifdef SPECULAR\n"
- "uniform float uMaterialShininess;\n"
- "#endif //SPECULAR\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "uniform vec3 uLightAtten;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "void vertexFlat(vec4 position, vec3 normal)\n"
- "{\n"
- " vec3 lv;\n"
- " float factor;\n"
- " normal = uMatrixNormal * normal;\n"
- " position = uMatrixModelview * position;\n"
- "#ifdef NORMALIZE_NORMALS\n"
- " normal = normalize(normal);\n"
- "#endif //NORMALIZE_NORMALS\n"
- "#ifdef LIGHT_DIRECTIONAL\n"
- " lv = uLightPosition.xyz;\n"
- "#else\n"
- " lv = uLightPosition.xyz - position.xyz;\n"
- " lv = normalize(lv);\n"
- "#endif //LIGHT_DIRECTIONAL\n"
- " factor = max(dot(lv, normal), 0.0);\n"
- "#ifdef LIGHT_SPOT\n"
- " float f = dot(-lv, uLightSpotDir);\n"
- " if (f > uLightSpotCutoffCos)\n"
- " factor *= pow(f, uLightSpotExp);\n"
- " else\n"
- " factor = 0.0;\n"
- "#endif //LIGHT_SPOT\n"
- " if (factor > 0.0)\n"
- " {\n"
- "#ifdef DIFFUSE\n"
- " vFactor.x = factor;\n"
- "#else\n"
- " vFactor.x = 0.0;\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- " vec3 hv = normalize(normalize(-position.xyz) + lv);\n"
- " factor = pow(max(dot(hv, normal), 0.0), uMaterialShininess);\n"
- " vFactor.y = factor;\n"
- "#endif //SPECULAR\n"
- " }\n"
- " else\n"
- " vFactor = vec2(0.0, 0.0);\n"
- " /* Light attenuation. */\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " float dist = length(lv);\n"
- " vFactor /= dot(uLightAtten, vec3(1.0, dist, dist * dist));\n"
- "#endif //LIGHT_ATTENUATION\n"
- "}\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " #ifdef VERTEX_NORMAL_BLEND\n"
- " vec3 normal = mix(aNormal1.xyz, aNormal0.xyz, uNormalWeight);\n"
- "#else\n"
- "#ifdef VERTEX_NORMAL\n"
- " vec3 normal = aNormal0.xyz;\n"
- "#endif //VERTEX_NORMAL\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- " #ifdef VERTEX_TEXCOORD_BLEND\n"
- " vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n"
- " vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);\n"
- "#else\n"
- "#ifdef VERTEX_TEXCOORD\n"
- " vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- " vertexFlat(position, normal);\n"
- " #ifdef SHADOWED\n"
- " vLightPosition = uMatrixLight * position;\n"
- "#endif //SHADOWED\n"
- "}\n";
-
-static const char flat_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "varying vec2 vFactor;\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //TEX_COORD\n"
- "#ifdef FOG_ENABLED\n"
- "uniform float uFogFactor;\n"
- "uniform vec4 uFogColor;\n"
- "#endif //FOG_ENABLED\n"
- "#ifdef SHADOWED\n"
- "varying vec4 vLightPosition;\n"
- "uniform sampler2D uShadowMap;\n"
- "uniform float uShadowsPCFStep;\n"
- "uniform float uShadowsPCFSize;\n"
- "uniform float uShadowsConstantBias;\n"
- "float shadow;\n"
- "float pcf(vec4 lpos)\n"
- "{\n"
- " vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;\n"
- " float i, j, shadow, q, c;\n"
- " q = floor(uShadowsPCFStep * 2.0);\n"
- " c = floor(uShadowsPCFStep * uShadowsPCFStep * 4.0);\n"
- " shadow = 0.0;\n"
- " const vec4 unpack = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n"
- " for (i = -uShadowsPCFStep; i < uShadowsPCFStep; i += 1.0)\n"
- " for (j = -uShadowsPCFStep; j < uShadowsPCFStep; j += 1.0)\n"
- " {\n"
- " vec4 zvalue = texture2D(uShadowMap, smcoord.xy + vec2(i / q, j / q) * uShadowsPCFSize);\n"
- " shadow += float(smcoord.z < dot(zvalue, unpack) + uShadowsConstantBias);\n"
- " }\n"
- " return shadow / c;\n"
- "}\n"
- "#endif //SHADOWED\n"
- "#ifdef DIFFUSE\n"
- "uniform vec4 uMaterialDiffuse;\n"
- "uniform vec4 uLightDiffuse;\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- "uniform sampler2D uTextureDiffuse0;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse0;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureDiffuse1;\n"
- "uniform float uTextureDiffuseWeight;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse1;\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- "uniform vec4 uLightSpecular;\n"
- "uniform float uMaterialShininess;\n"
- "uniform vec4 uMaterialSpecular;\n"
- "#ifdef SPECULAR_TEXTURE\n"
- "uniform sampler2D uTextureSpecular0;\n"
- "uniform mat3 uTextureMatrixTransformSpecular0;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureSpecular1;\n"
- "uniform float uTextureSpecularWeight;\n"
- "uniform mat3 uTextureMatrixTransformSpecular1;\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- "#endif //SPECULAR\n"
- "#ifdef AMBIENT\n"
- "uniform vec4 uMaterialAmbient;\n"
- "uniform vec4 uLightAmbient;\n"
- "#ifdef AMBIENT_TEXTURE\n"
- "uniform sampler2D uTextureAmbient0;\n"
- "uniform mat3 uTextureMatrixTransformAmbient0;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureAmbient1;\n"
- "uniform float uTextureAmbientWeight;\n"
- "uniform mat3 uTextureMatrixTransformAmbient1;\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- "#endif //AMBIENT\n"
- "#ifdef EMISSION\n"
- "uniform vec4 uMaterialEmission;\n"
- "#ifdef EMISSION_TEXTURE\n"
- "uniform sampler2D uTextureEmission0;\n"
- "uniform mat3 uTextureMatrixTransformEmission0;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureEmission1;\n"
- "uniform float uTextureEmissionWeight;\n"
- "uniform mat3 uTextureMatrixTransformEmission1;\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- "#endif //EMISSION\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "vec4 fragmentFlat()\n"
- "{\n"
- " vec4 color;\n"
- " vec4 fragcolor;\n"
- "#ifdef DIFFUSE\n"
- " \n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1;\n"
- " color = mix(texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)),\n"
- " texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)), uTextureDiffuseWeight);\n"
- " color *= uMaterialDiffuse;\n"
- "#else\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) * uMaterialDiffuse;\n"
- "#else\n"
- " color = uMaterialDiffuse;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- " fragcolor = uLightDiffuse * color * vFactor.x;\n"
- "#else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- " \n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- " vec3 Tex0CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular0;\n"
- " vec3 Tex1CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular1;\n"
- " color = mix(texture2D(uTextureSpecular1, vec2(Tex1CoordSpecular)),\n"
- " texture2D(uTextureSpecular0, vec2(Tex0CoordSpecular)), uTextureSpecularWeight);\n"
- " color *= uMaterialSpecular;\n"
- "#else\n"
- "#ifdef SPECULAR_TEXTURE\n"
- " vec3 Tex0CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular0;\n"
- " color = texture2D(uTextureSpecular0, vec2(Tex0CoordSpecular)) * uMaterialSpecular;\n"
- "#else\n"
- " color = uMaterialSpecular;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- " fragcolor += uLightSpecular * color * vFactor.y;\n"
- "#endif //SPECULAR\n"
- "#ifdef SHADOWED\n"
- " fragcolor *= shadow;\n"
- "#endif //SHADOWED\n"
- "#ifdef AMBIENT\n"
- " \n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- " vec3 Tex0CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient0;\n"
- " vec3 Tex1CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient1;\n"
- " color = mix(texture2D(uTextureAmbient1, vec2(Tex1CoordAmbient)),\n"
- " texture2D(uTextureAmbient0, vec2(Tex0CoordAmbient)), uTextureAmbientWeight);\n"
- " color *= uMaterialAmbient;\n"
- "#else\n"
- "#ifdef AMBIENT_TEXTURE\n"
- " vec3 Tex0CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient0;\n"
- " color = texture2D(uTextureAmbient0, vec2(Tex0CoordAmbient)) * uMaterialAmbient;\n"
- "#else\n"
- " color = uMaterialAmbient;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- " fragcolor += uLightAmbient * color;\n"
- "#endif //AMBIENT\n"
- "#ifdef EMISSION\n"
- " \n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- " vec3 Tex0CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission0;\n"
- " vec3 Tex1CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission1;\n"
- " color = mix(texture2D(uTextureEmission1, vec2(Tex1CoordEmission)),\n"
- " texture2D(uTextureEmission0, vec2(Tex0CoordEmission)), uTextureEmissionWeight);\n"
- " color *= uMaterialEmission;\n"
- "#else\n"
- "#ifdef EMISSION_TEXTURE\n"
- " vec3 Tex0CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission0;\n"
- " color = texture2D(uTextureEmission0, vec2(Tex0CoordEmission)) * uMaterialEmission;\n"
- "#else\n"
- " color = uMaterialEmission;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- " fragcolor += color;\n"
- "#endif //EMISSION\n"
- " return fragcolor;\n"
- "}\n"
- "void main() {\n"
- " vec4 color;\n"
- "#ifdef SHADOWED\n"
- " shadow = pcf(vLightPosition);\n"
- "#endif //SHADOWED\n"
- " color = fragmentFlat();\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = color;\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- " \n"
- "#ifdef FOG_ENABLED\n"
- " float z = gl_FragCoord.z / gl_FragCoord.w;\n"
- " float fogFactor = exp2(-uFogFactor * uFogFactor * z * z * 1.44);\n"
- " fogFactor = clamp(fogFactor, 0.0, 1.0);\n"
- " gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);\n"
- "#endif //FOG_ENABLED\n"
- "}\n";
-
-static const char phong_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "uniform mat3 uMatrixNormal;\n"
- "uniform mat4 uMatrixModelview;\n"
- "uniform vec4 uLightPosition;\n"
- "varying vec3 vLightVector;\n"
- "varying vec3 vLightHalfVector;\n"
- "varying vec3 vNormal;\n"
- "#ifdef SHADOWED\n"
- "uniform mat4 uMatrixLight;\n"
- "varying vec4 vLightPosition;\n"
- "#endif //SHADOWED\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_NORMAL\n"
- "attribute vec4 aNormal0;\n"
- "#endif //VERTEX_NORMAL\n"
- "#ifdef VERTEX_NORMAL_BLEND\n"
- "attribute vec4 aNormal1;\n"
- "uniform float uNormalWeight;\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- "#ifdef VERTEX_TEXCOORD\n"
- "attribute vec4 aTexCoord0;\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#ifdef VERTEX_TEXCOORD_BLEND\n"
- "attribute vec4 aTexCoord1;\n"
- "uniform float uTexCoordWeight;\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //NEED_TEX_COORD\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "varying float vLightDist;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "void vertexPhong(vec4 position, vec3 normal)\n"
- "{\n"
- " normal = uMatrixNormal * normal;\n"
- " position = uMatrixModelview * position;\n"
- "#ifdef NORMALIZE_NORMALS\n"
- " normal = normalize(normal);\n"
- "#endif //NORMALIZE_NORMALS\n"
- "#ifdef LIGHT_DIRECTIONAL\n"
- " vLightVector = uLightPosition.xyz;\n"
- "#else\n"
- " vLightVector = uLightPosition.xyz - position.xyz;\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " vLightDist = length(vLightVector);\n"
- "#endif //LIGHT_ATTENUATION\n"
- " vLightVector = normalize(vLightVector);\n"
- "#endif //LIGHT_DIRECTIONAL\n"
- " vLightHalfVector = normalize(normalize(-position.xyz) + vLightVector);\n"
- " vNormal = normal;\n"
- "}\n"
- "void main() {\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " #ifdef VERTEX_NORMAL_BLEND\n"
- " vec3 normal = mix(aNormal1.xyz, aNormal0.xyz, uNormalWeight);\n"
- "#else\n"
- "#ifdef VERTEX_NORMAL\n"
- " vec3 normal = aNormal0.xyz;\n"
- "#endif //VERTEX_NORMAL\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- " #ifdef VERTEX_TEXCOORD_BLEND\n"
- " vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n"
- " vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);\n"
- "#else\n"
- "#ifdef VERTEX_TEXCOORD\n"
- " vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- " vertexPhong(position, normal);\n"
- " #ifdef SHADOWED\n"
- " vLightPosition = uMatrixLight * position;\n"
- "#endif //SHADOWED\n"
- "}\n";
-
-static const char phong_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "varying vec3 vLightVector;\n"
- "varying vec3 vLightHalfVector;\n"
- "varying vec3 vNormal;\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //TEX_COORD\n"
- "#ifdef FOG_ENABLED\n"
- "uniform float uFogFactor;\n"
- "uniform vec4 uFogColor;\n"
- "#endif //FOG_ENABLED\n"
- "#ifdef SHADOWED\n"
- "varying vec4 vLightPosition;\n"
- "uniform sampler2D uShadowMap;\n"
- "uniform float uShadowsPCFStep;\n"
- "uniform float uShadowsPCFSize;\n"
- "uniform float uShadowsConstantBias;\n"
- "float shadow;\n"
- "float pcf(vec4 lpos)\n"
- "{\n"
- " vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;\n"
- " float i, j, shadow, q, c;\n"
- " q = floor(uShadowsPCFStep * 2.0);\n"
- " c = floor(uShadowsPCFStep * uShadowsPCFStep * 4.0);\n"
- " shadow = 0.0;\n"
- " const vec4 unpack = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n"
- " for (i = -uShadowsPCFStep; i < uShadowsPCFStep; i += 1.0)\n"
- " for (j = -uShadowsPCFStep; j < uShadowsPCFStep; j += 1.0)\n"
- " {\n"
- " vec4 zvalue = texture2D(uShadowMap, smcoord.xy + vec2(i / q, j / q) * uShadowsPCFSize);\n"
- " shadow += float(smcoord.z < dot(zvalue, unpack) + uShadowsConstantBias);\n"
- " }\n"
- " return shadow / c;\n"
- "}\n"
- "#endif //SHADOWED\n"
- "#ifdef DIFFUSE\n"
- "uniform vec4 uMaterialDiffuse;\n"
- "uniform vec4 uLightDiffuse;\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- "uniform sampler2D uTextureDiffuse0;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse0;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureDiffuse1;\n"
- "uniform float uTextureDiffuseWeight;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse1;\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- "uniform vec4 uLightSpecular;\n"
- "uniform float uMaterialShininess;\n"
- "uniform vec4 uMaterialSpecular;\n"
- "#ifdef SPECULAR_TEXTURE\n"
- "uniform sampler2D uTextureSpecular0;\n"
- "uniform mat3 uTextureMatrixTransformSpecular0;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureSpecular1;\n"
- "uniform float uTextureSpecularWeight;\n"
- "uniform mat3 uTextureMatrixTransformSpecular1;\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- "#endif //SPECULAR\n"
- "#ifdef AMBIENT\n"
- "uniform vec4 uMaterialAmbient;\n"
- "uniform vec4 uLightAmbient;\n"
- "#ifdef AMBIENT_TEXTURE\n"
- "uniform sampler2D uTextureAmbient0;\n"
- "uniform mat3 uTextureMatrixTransformAmbient0;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureAmbient1;\n"
- "uniform float uTextureAmbientWeight;\n"
- "uniform mat3 uTextureMatrixTransformAmbient1;\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- "#endif //AMBIENT\n"
- "#ifdef EMISSION\n"
- "uniform vec4 uMaterialEmission;\n"
- "#ifdef EMISSION_TEXTURE\n"
- "uniform sampler2D uTextureEmission0;\n"
- "uniform mat3 uTextureMatrixTransformEmission0;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureEmission1;\n"
- "uniform float uTextureEmissionWeight;\n"
- "uniform mat3 uTextureMatrixTransformEmission1;\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- "#endif //EMISSION\n"
- "#ifdef LIGHT_SPOT\n"
- "uniform vec3 uLightSpotDir;\n"
- "uniform float uLightSpotExp;\n"
- "uniform float uLightSpotCutoffCos;\n"
- "#endif //LIGHT_SPOT\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "varying float vLightDist;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "vec4 fragmentPhong()\n"
- "{\n"
- " vec3 normal = normalize(vNormal);\n"
- " vec3 lv = normalize(vLightVector);\n"
- " float factor = dot(lv, normal);\n"
- " vec4 color;\n"
- " vec4 fragcolor;\n"
- "#ifdef LIGHT_SPOT\n"
- " float f = dot(-lv, normalize(uLightSpotDir));\n"
- " if (f > uLightSpotCutoffCos)\n"
- " factor *= pow(f, uLightSpotExp);\n"
- " else\n"
- " factor = 0.0;\n"
- "#endif //LIGHT_SPOT\n"
- " if (factor > 0.0)\n"
- " {\n"
- " /* Diffuse term. */\n"
- "#ifdef DIFFUSE\n"
- " \n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1;\n"
- " color = mix(texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)),\n"
- " texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)), uTextureDiffuseWeight);\n"
- " color *= uMaterialDiffuse;\n"
- "#else\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) * uMaterialDiffuse;\n"
- "#else\n"
- " color = uMaterialDiffuse;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- " fragcolor = uLightDiffuse * color * factor;\n"
- "#else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#endif //DIFFUSE\n"
- " /* Specular term. */\n"
- "#ifdef SPECULAR\n"
- " factor = dot(normalize(vLightHalfVector), normal);\n"
- " if (factor > 0.0)\n"
- " {\n"
- " factor = pow(factor, uMaterialShininess);\n"
- " \n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- " vec3 Tex0CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular0;\n"
- " vec3 Tex1CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular1;\n"
- " color = mix(texture2D(uTextureSpecular1, vec2(Tex1CoordSpecular)),\n"
- " texture2D(uTextureSpecular0, vec2(Tex0CoordSpecular)), uTextureSpecularWeight);\n"
- " color *= uMaterialSpecular;\n"
- "#else\n"
- "#ifdef SPECULAR_TEXTURE\n"
- " vec3 Tex0CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular0;\n"
- " color = texture2D(uTextureSpecular0, vec2(Tex0CoordSpecular)) * uMaterialSpecular;\n"
- "#else\n"
- " color = uMaterialSpecular;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- " fragcolor += uLightSpecular * color * factor;\n"
- " }\n"
- "#endif\n"
- " }\n"
- " else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#ifdef SHADOWED\n"
- " fragcolor *= shadow;\n"
- "#endif //SHADOWED\n"
- "#ifdef AMBIENT\n"
- " \n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- " vec3 Tex0CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient0;\n"
- " vec3 Tex1CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient1;\n"
- " color = mix(texture2D(uTextureAmbient1, vec2(Tex1CoordAmbient)),\n"
- " texture2D(uTextureAmbient0, vec2(Tex0CoordAmbient)), uTextureAmbientWeight);\n"
- " color *= uMaterialAmbient;\n"
- "#else\n"
- "#ifdef AMBIENT_TEXTURE\n"
- " vec3 Tex0CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient0;\n"
- " color = texture2D(uTextureAmbient0, vec2(Tex0CoordAmbient)) * uMaterialAmbient;\n"
- "#else\n"
- " color = uMaterialAmbient;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- " fragcolor += uLightAmbient * color;\n"
- "#endif\n"
- " /* Light attenuation. */\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " fragcolor /= dot(uLightAtten, vec3(1.0, vLightDist, vLightDist * vLightDist));\n"
- "#endif\n"
- " /* Emission term. */\n"
- "#ifdef EMISSION\n"
- " \n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- " vec3 Tex0CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission0;\n"
- " vec3 Tex1CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission1;\n"
- " color = mix(texture2D(uTextureEmission1, vec2(Tex1CoordEmission)),\n"
- " texture2D(uTextureEmission0, vec2(Tex0CoordEmission)), uTextureEmissionWeight);\n"
- " color *= uMaterialEmission;\n"
- "#else\n"
- "#ifdef EMISSION_TEXTURE\n"
- " vec3 Tex0CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission0;\n"
- " color = texture2D(uTextureEmission0, vec2(Tex0CoordEmission)) * uMaterialEmission;\n"
- "#else\n"
- " color = uMaterialEmission;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- " fragcolor += color;\n"
- "#endif\n"
- " return fragcolor;\n"
- "}\n"
- "void main()\n"
- "{\n"
- " vec4 color;\n"
- "#ifdef SHADOWED\n"
- " shadow = pcf(vLightPosition);\n"
- "#endif //SHADOWED\n"
- " color = fragmentPhong();\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = color;\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- " \n"
- "#ifdef FOG_ENABLED\n"
- " float z = gl_FragCoord.z / gl_FragCoord.w;\n"
- " float fogFactor = exp2(-uFogFactor * uFogFactor * z * z * 1.44);\n"
- " fogFactor = clamp(fogFactor, 0.0, 1.0);\n"
- " gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);\n"
- "#endif //FOG_ENABLED\n"
- "}\n";
-
-static const char normal_map_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "uniform mat3 uMatrixNormal;\n"
- "uniform mat4 uMatrixModelview;\n"
- "uniform vec4 uLightPosition;\n"
- "varying vec3 vLightVector;\n"
- "varying vec3 vLightHalfVector;\n"
- "varying vec3 vEyeVector;\n"
- "#ifndef VERTEX_TANGENT\n"
- "varying vec3 vNormal;\n"
- "#endif //VERTEX_TANGENT\n"
- "#ifdef SHADOWED\n"
- "uniform mat4 uMatrixLight;\n"
- "varying vec4 vLightPosition;\n"
- "#endif //SHADOWED\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_NORMAL\n"
- "attribute vec4 aNormal0;\n"
- "#endif //VERTEX_NORMAL\n"
- "#ifdef VERTEX_NORMAL_BLEND\n"
- "attribute vec4 aNormal1;\n"
- "uniform float uNormalWeight;\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- "#ifdef VERTEX_TANGENT\n"
- "attribute vec4 aTangent0;\n"
- "#endif //VERTEX_TANGENT\n"
- "#ifdef VERTEX_TANGENT_BLEND\n"
- "attribute vec4 aTangent1;\n"
- "uniform float uTangentWeight;\n"
- "#endif //VERTEX_TANGENT_BLEND\n"
- "#ifdef VERTEX_TEXCOORD\n"
- "attribute vec4 aTexCoord0;\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#ifdef VERTEX_TEXCOORD_BLEND\n"
- "attribute vec4 aTexCoord1;\n"
- "uniform float uTexCoordWeight;\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //NEED_TEX_COORD\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "varying float vLightDist;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "#ifndef VERTEX_TANGENT\n"
- "void vertexNormalMap(vec4 position, vec3 normal)\n"
- "{\n"
- " normal = uMatrixNormal * normal;\n"
- " position = uMatrixModelview * position;\n"
- " vEyeVector = normalize(-position.xyz);\n"
- "#ifdef NORMALIZE_NORMALS\n"
- " normal = normalize(normal);\n"
- "#endif //NORMALIZE_NORMALS\n"
- "#ifdef LIGHT_DIRECTIONAL\n"
- " vLightVector = uLightPosition.xyz;\n"
- "#else\n"
- " vLightVector = uLightPosition.xyz - position.xyz;\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " vLightDist = length(vLightVector);\n"
- "#endif //LIGHT_ATTENUATION\n"
- " vLightVector = normalize(vLightVector);\n"
- "#endif //LIGHT_DIRECTIONAL\n"
- " vLightHalfVector = normalize(vEyeVector + vLightVector);\n"
- " vNormal = normal;\n"
- "}\n"
- "#else\n"
- "void vertexNormalMap(vec4 position, vec3 normal, vec3 tangent)\n"
- "{\n"
- " vec3 n = normalize(uMatrixNormal * normal);\n"
- " vec3 t = normalize(uMatrixNormal * tangent);\n"
- " vec3 b = cross(n, t);\n"
- " vec3 tmp;\n"
- " position = uMatrixModelview * position;\n"
- "#ifdef LIGHT_DIRECTIONAL\n"
- " vec3 lightDir = uLightPosition.xyz;\n"
- "#else\n"
- " vec3 lightDir = uLightPosition.xyz - position.xyz;\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " vLightDist = length(lightDir);\n"
- "#endif //LIGHT_ATTENUATION\n"
- " lightDir = normalize(lightDir);\n"
- "#endif //LIGHT_DIRECTIONAL\n"
- " tmp.x = dot(lightDir, t);\n"
- " tmp.y = dot(lightDir, b);\n"
- " tmp.z = dot(lightDir, n);\n"
- " vLightVector = tmp;\n"
- " tmp.x = dot(position.xyz, t);\n"
- " tmp.y = dot(position.xyz, b);\n"
- " tmp.z = dot(position.xyz, n);\n"
- " vEyeVector = normalize(tmp);\n"
- " vec3 hv = normalize(normalize(-position.xyz) + lightDir);\n"
- " tmp.x = dot(hv, t);\n"
- " tmp.y = dot(hv, b);\n"
- " tmp.z = dot(hv, n);\n"
- " vLightHalfVector = tmp;\n"
- "}\n"
- "#endif //VERTEX_TANGENT\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " #ifdef VERTEX_NORMAL_BLEND\n"
- " vec3 normal = mix(aNormal1.xyz, aNormal0.xyz, uNormalWeight);\n"
- "#else\n"
- "#ifdef VERTEX_NORMAL\n"
- " vec3 normal = aNormal0.xyz;\n"
- "#endif //VERTEX_NORMAL\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- "#ifdef VERTEX_TANGENT_BLEND\n"
- " vec3 tangent = aTangent0.xyz * uTangentWeight +\n"
- " aTangent1.xyz * (1.0 - uTangentWeight);\n"
- "#else\n"
- "#ifdef VERTEX_TANGENT\n"
- " vec3 tangent = aTangent0.xyz;\n"
- "#endif //VERTEX_TANGENT\n"
- "#endif //VERTEX_TANGENT_BLEND\n"
- " #ifdef VERTEX_TEXCOORD_BLEND\n"
- " vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n"
- " vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);\n"
- "#else\n"
- "#ifdef VERTEX_TEXCOORD\n"
- " vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- "#ifdef VERTEX_TANGENT\n"
- " vertexNormalMap(position, normal, tangent);\n"
- "#else\n"
- " vertexNormalMap(position, normal);\n"
- "#endif //VERTEX_TANGENT\n"
- "#ifdef SHADOWED\n"
- " vLightPosition = uMatrixLight * position;\n"
- "#endif\n"
- "}\n";
-
-static const char normal_map_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "varying vec3 vLightVector;\n"
- "varying vec3 vLightHalfVector;\n"
- "varying vec3 vEyeVector;\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //TEX_COORD\n"
- "#ifdef FOG_ENABLED\n"
- "uniform float uFogFactor;\n"
- "uniform vec4 uFogColor;\n"
- "#endif //FOG_ENABLED\n"
- "#ifdef SHADOWED\n"
- "varying vec4 vLightPosition;\n"
- "uniform sampler2D uShadowMap;\n"
- "uniform float uShadowsPCFStep;\n"
- "uniform float uShadowsPCFSize;\n"
- "uniform float uShadowsConstantBias;\n"
- "float shadow;\n"
- "float pcf(vec4 lpos)\n"
- "{\n"
- " vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;\n"
- " float i, j, shadow, q, c;\n"
- " q = floor(uShadowsPCFStep * 2.0);\n"
- " c = floor(uShadowsPCFStep * uShadowsPCFStep * 4.0);\n"
- " shadow = 0.0;\n"
- " const vec4 unpack = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n"
- " for (i = -uShadowsPCFStep; i < uShadowsPCFStep; i += 1.0)\n"
- " for (j = -uShadowsPCFStep; j < uShadowsPCFStep; j += 1.0)\n"
- " {\n"
- " vec4 zvalue = texture2D(uShadowMap, smcoord.xy + vec2(i / q, j / q) * uShadowsPCFSize);\n"
- " shadow += float(smcoord.z < dot(zvalue, unpack) + uShadowsConstantBias);\n"
- " }\n"
- " return shadow / c;\n"
- "}\n"
- "#endif //SHADOWED\n"
- "#ifdef NORMAL_TEXTURE\n"
- "uniform sampler2D uTextureNormal0;\n"
- "uniform mat3 uTextureMatrixTransformNormal0;\n"
- "#endif //NORMAL_TEXTURE\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureNormal1;\n"
- "uniform float uTextureNormalWeight;\n"
- "uniform mat3 uTextureMatrixTransformNormal1;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "#ifndef VERTEX_TANGENT\n"
- "varying vec3 vNormal;\n"
- "#endif //VERTEX_TANGENT\n"
- "#ifdef DIFFUSE\n"
- "uniform vec4 uMaterialDiffuse;\n"
- "uniform vec4 uLightDiffuse;\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- "uniform sampler2D uTextureDiffuse0;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse0;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureDiffuse1;\n"
- "uniform float uTextureDiffuseWeight;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse1;\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- "uniform vec4 uLightSpecular;\n"
- "uniform float uMaterialShininess;\n"
- "uniform vec4 uMaterialSpecular;\n"
- "#ifdef SPECULAR_TEXTURE\n"
- "uniform sampler2D uTextureSpecular0;\n"
- "uniform mat3 uTextureMatrixTransformSpecular0;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureSpecular1;\n"
- "uniform float uTextureSpecularWeight;\n"
- "uniform mat3 uTextureMatrixTransformSpecular1;\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- "#endif //SPECULAR\n"
- "#ifdef AMBIENT\n"
- "uniform vec4 uMaterialAmbient;\n"
- "uniform vec4 uLightAmbient;\n"
- "#ifdef AMBIENT_TEXTURE\n"
- "uniform sampler2D uTextureAmbient0;\n"
- "uniform mat3 uTextureMatrixTransformAmbient0;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureAmbient1;\n"
- "uniform float uTextureAmbientWeight;\n"
- "uniform mat3 uTextureMatrixTransformAmbient1;\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- "#endif //AMBIENT\n"
- "#ifdef EMISSION\n"
- "uniform vec4 uMaterialEmission;\n"
- "#ifdef EMISSION_TEXTURE\n"
- "uniform sampler2D uTextureEmission0;\n"
- "uniform mat3 uTextureMatrixTransformEmission0;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureEmission1;\n"
- "uniform float uTextureEmissionWeight;\n"
- "uniform mat3 uTextureMatrixTransformEmission1;\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- "#endif //EMISSION\n"
- "#ifdef LIGHT_SPOT\n"
- "uniform vec3 uLightSpotDir;\n"
- "uniform float uLightSpotExp;\n"
- "uniform float uLightSpotCutoffCos;\n"
- "#endif //LIGHT_SPOT\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "varying float vLightDist;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "#ifndef VERTEX_TANGENT\n"
- "mat3 cotangent_frame(vec3 n, vec3 p, vec2 uv)\n"
- "{\n"
- " vec3 dp1 = dFdx(p);\n"
- " vec3 dp2 = dFdy(p);\n"
- " vec2 duv1 = dFdx(uv);\n"
- " vec2 duv2 = dFdy(uv);\n"
- " vec3 dp2perp = cross(dp2, n);\n"
- " vec3 dp1perp = cross(n, dp1);\n"
- " vec3 t = dp2perp * duv1.x + dp1perp * duv2.x;\n"
- " vec3 b = dp2perp * duv1.y + dp1perp * duv2.y;\n"
- " float invmax = inversesqrt(max(dot(t, t), dot(b, b)));\n"
- " return mat3(t * invmax, b * invmax, n);\n"
- "}\n"
- "vec3 perturb_normal(vec3 normal)\n"
- "{\n"
- " mat3 tbn = cotangent_frame(vNormal, -vEyeVector, vTexCoord);\n"
- " return normalize(tbn * normal);\n"
- "}\n"
- "#endif //VERTEX_TANGENT\n"
- "vec4 fragmentNormalMap()\n"
- "{\n"
- " float factor;\n"
- " vec3 normal;\n"
- " vec4 color;\n"
- " vec4 fragcolor;\n"
- " vec3 Tex0CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal0;\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- " vec3 Tex1CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal1;\n"
- " normal = texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).rgb * uTextureNormalWeight / texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).a;\n"
- " normal += texture2D(uTextureNormal1, vec2(Tex1CoordNormal)).rgb / texture2D(uTextureNormal1, vec2(Tex1CoordNormal)).a *\n"
- " (1.0 - uTextureNormalWeight);\n"
- "#else\n"
- " normal = texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).rgb / texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).a;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- " normal = 2.0 * normal - 1.0;\n"
- "#ifndef VERTEX_TANGENT\n"
- " normal = perturb_normal(normal);\n"
- "#endif //VERTEX_TANGENT\n"
- " vec3 lv = normalize(vLightVector);\n"
- " normal = normalize(normal);\n"
- " factor = dot(lv, normal);\n"
- "#ifdef LIGHT_SPOT\n"
- " float f = dot(-lv, normalize(uLightSpotDir));\n"
- " if (f > uLightSpotCutoffCos)\n"
- " factor *= pow(f, uLightSpotExp);\n"
- " else\n"
- " factor = 0.0;\n"
- "#endif //LIGHT_SPOT\n"
- " if (factor > 0.0)\n"
- " {\n"
- "#ifdef DIFFUSE\n"
- " \n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1;\n"
- " color = mix(texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)),\n"
- " texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)), uTextureDiffuseWeight);\n"
- " color *= uMaterialDiffuse;\n"
- "#else\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) * uMaterialDiffuse;\n"
- "#else\n"
- " color = uMaterialDiffuse;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- " fragcolor = uLightDiffuse * color * factor;\n"
- "#else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- " factor = dot(normalize(vLightHalfVector), normal);\n"
- " if (factor > 0.0)\n"
- " {\n"
- " factor = pow(factor, uMaterialShininess);\n"
- " \n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- " vec3 Tex0CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular0;\n"
- " vec3 Tex1CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular1;\n"
- " color = mix(texture2D(uTextureSpecular1, vec2(Tex1CoordSpecular)),\n"
- " texture2D(uTextureSpecular0, vec2(Tex0CoordSpecular)), uTextureSpecularWeight);\n"
- " color *= uMaterialSpecular;\n"
- "#else\n"
- "#ifdef SPECULAR_TEXTURE\n"
- " vec3 Tex0CoordSpecular = vec3(vTexCoord, 1.0) * uTextureMatrixTransformSpecular0;\n"
- " color = texture2D(uTextureSpecular0, vec2(Tex0CoordSpecular)) * uMaterialSpecular;\n"
- "#else\n"
- " color = uMaterialSpecular;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- " fragcolor += uLightSpecular * color * factor;\n"
- " }\n"
- "#endif //SPECULAR\n"
- "#ifdef SHADOWED\n"
- " fragcolor *= shadow;\n"
- "#endif //SHADOWED\n"
- " }\n"
- " else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#ifdef AMBIENT\n"
- " \n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- " vec3 Tex0CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient0;\n"
- " vec3 Tex1CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient1;\n"
- " color = mix(texture2D(uTextureAmbient1, vec2(Tex1CoordAmbient)),\n"
- " texture2D(uTextureAmbient0, vec2(Tex0CoordAmbient)), uTextureAmbientWeight);\n"
- " color *= uMaterialAmbient;\n"
- "#else\n"
- "#ifdef AMBIENT_TEXTURE\n"
- " vec3 Tex0CoordAmbient = vec3(vTexCoord, 1.0) * uTextureMatrixTransformAmbient0;\n"
- " color = texture2D(uTextureAmbient0, vec2(Tex0CoordAmbient)) * uMaterialAmbient;\n"
- "#else\n"
- " color = uMaterialAmbient;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- " fragcolor += uLightAmbient * color;\n"
- "#endif //AMBIENT\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " fragcolor /= dot(uLightAtten, vec3(1.0, vLightDist, vLightDist * vLightDist));\n"
- "#endif //LIGHT_ATTENUATION\n"
- "#ifdef EMISSION\n"
- " \n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- " vec3 Tex0CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission0;\n"
- " vec3 Tex1CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission1;\n"
- " color = mix(texture2D(uTextureEmission1, vec2(Tex1CoordEmission)),\n"
- " texture2D(uTextureEmission0, vec2(Tex0CoordEmission)), uTextureEmissionWeight);\n"
- " color *= uMaterialEmission;\n"
- "#else\n"
- "#ifdef EMISSION_TEXTURE\n"
- " vec3 Tex0CoordEmission = vec3(vTexCoord, 1.0) * uTextureMatrixTransformEmission0;\n"
- " color = texture2D(uTextureEmission0, vec2(Tex0CoordEmission)) * uMaterialEmission;\n"
- "#else\n"
- " color = uMaterialEmission;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- " fragcolor += color;\n"
- "#endif //EMISSION\n"
- " return fragcolor;\n"
- "}\n"
- "void main() {\n"
- " vec4 color;\n"
- "#ifdef SHADOWED\n"
- " shadow = pcf(vLightPosition);\n"
- "#endif //SHADOWED\n"
- " color = fragmentNormalMap();\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = color;\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- "#ifdef FOG_ENABLED\n"
- " float z = gl_FragCoord.z / gl_FragCoord.w;\n"
- " float fogFactor = exp2(-uFogFactor * uFogFactor * z * z * 1.44);\n"
- " fogFactor = clamp(fogFactor, 0.0, 1.0);\n"
- " gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);\n"
- "#endif //FOG_ENABLED\n"
- "}\n";
-
-static const char shadow_map_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "varying vec4 shadowmapposition;\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- "#ifdef VERTEX_TEXCOORD\n"
- "attribute vec4 aTexCoord0;\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#ifdef VERTEX_TEXCOORD_BLEND\n"
- "attribute vec4 aTexCoord1;\n"
- "uniform float uTexCoordWeight;\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //NEED_TEX_COORD\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- "void main()\n"
- "{\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " #ifdef VERTEX_TEXCOORD_BLEND\n"
- " vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n"
- " vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);\n"
- "#else\n"
- "#ifdef VERTEX_TEXCOORD\n"
- " vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- " gl_Position = uMatrixMvp * position;\n"
- " shadowmapposition = gl_Position;\n"
- "}\n";
-
-static const char shadow_map_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "varying vec4 shadowmapposition;\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //TEX_COORD\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "#ifdef DIFFUSE\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- "uniform sampler2D uTextureDiffuse0;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse0;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureDiffuse1;\n"
- "uniform float uTextureDiffuseWeight;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse1;\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#endif //DIFFUSE\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- "void main() {\n"
- " vec4 color;\n"
- "#ifndef NEED_TEX_COORD\n"
- " gl_FragColor = vec4(1);\n"
- "#endif\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- " vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1;\n"
- " color = (texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) *\n"
- " uTextureDiffuseWeight + texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)) *\n"
- " (1.0 - uTextureDiffuseWeight));\n"
- "#else\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- " vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;\n"
- " color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse));\n"
- "#else\n"
- " color = vec4(1);\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- " const vec4 pack = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n"
- " const vec4 mask = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n"
- " vec4 depthcolor;\n"
- " float normdist = shadowmapposition.z / shadowmapposition.w;\n"
- " normdist = ((normdist + 1.0) / 2.0);\n"
- " depthcolor = vec4(fract(pack * normdist));\n"
- " depthcolor -= depthcolor.xxyz * mask;\n"
- " gl_FragColor = depthcolor;\n"
- "}\n";
-
-static const char color_pick_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- "}\n";
-
-static const char color_pick_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform vec4 uColorPick;\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "void main()\n"
- "{\n"
- " vec4 color = uColorPick;\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = color;\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- "}\n";
-
-static const char parallax_occlusion_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "uniform mat3 uMatrixNormal;\n"
- "uniform mat4 uMatrixModelview;\n"
- "uniform vec4 uLightPosition;\n"
- "varying vec3 vLightVector;\n"
- "varying vec3 vLightHalfVector;\n"
- "varying vec3 vEyeVector;\n"
- "#ifdef SHADOWED\n"
- "uniform mat4 uMatrixLight;\n"
- "varying vec4 vLightPosition;\n"
- "#endif //SHADOWED\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "#ifdef VERTEX_NORMAL\n"
- "attribute vec4 aNormal0;\n"
- "#endif //VERTEX_NORMAL\n"
- "#ifdef VERTEX_NORMAL_BLEND\n"
- "attribute vec4 aNormal1;\n"
- "uniform float uNormalWeight;\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- "#ifdef VERTEX_TANGENT\n"
- "attribute vec4 aTangent0;\n"
- "#endif //VERTEX_TANGENT\n"
- "#ifdef VERTEX_TANGENT_BLEND\n"
- "attribute vec4 aTangent1;\n"
- "uniform float uTangentWeight;\n"
- "#endif //VERTEX_TANGENT_BLEND\n"
- "#ifdef VERTEX_TEXCOORD\n"
- "attribute vec4 aTexCoord0;\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#ifdef VERTEX_TEXCOORD_BLEND\n"
- "attribute vec4 aTexCoord1;\n"
- "uniform float uTexCoordWeight;\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "#endif //NEED_TEX_COORD\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "varying float vLightDist;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "void vertexParallaxOcclusion(vec4 position, vec3 normal, vec3 tangent)\n"
- "{\n"
- " vec3 n = normalize(uMatrixNormal * normal);\n"
- " vec3 t = normalize(uMatrixNormal * tangent);\n"
- " vec3 b = cross(n, t);\n"
- " vec3 tmp;\n"
- " position = uMatrixModelview * position;\n"
- "#ifdef LIGHT_DIRECTIONAL\n"
- " vec3 lightDir = uLightPosition.xyz;\n"
- "#else\n"
- " vec3 lightDir = uLightPosition.xyz - position.xyz;\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " vLightDist = length(lightDir);\n"
- "#endif //LIGHT_ATTENUATION\n"
- " lightDir = normalize(lightDir);\n"
- "#endif //LIGHT_DIRECTIONAL\n"
- " tmp.x = dot(lightDir, t);\n"
- " tmp.y = dot(lightDir, b);\n"
- " tmp.z = dot(lightDir, n);\n"
- " vLightVector = tmp;\n"
- " tmp.x = dot(position.xyz, t);\n"
- " tmp.y = dot(position.xyz, b);\n"
- " tmp.z = dot(position.xyz, n);\n"
- " vEyeVector = normalize(tmp);\n"
- " vec3 hv = normalize(normalize(-position.xyz) + lightDir);\n"
- " tmp.x = dot(hv, t);\n"
- " tmp.y = dot(hv, b);\n"
- " tmp.z = dot(hv, n);\n"
- " vLightHalfVector = tmp;\n"
- "}\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " #ifdef VERTEX_NORMAL_BLEND\n"
- " vec3 normal = mix(aNormal1.xyz, aNormal0.xyz, uNormalWeight);\n"
- "#else\n"
- "#ifdef VERTEX_NORMAL\n"
- " vec3 normal = aNormal0.xyz;\n"
- "#endif //VERTEX_NORMAL\n"
- "#endif //VERTEX_NORMAL_BLEND\n"
- "#ifdef VERTEX_TANGENT_BLEND\n"
- " vec3 tangent = aTangent0.xyz * uTangentWeight +\n"
- " aTangent1.xyz * (1.0 - uTangentWeight);\n"
- "#else\n"
- "#ifdef VERTEX_TANGENT\n"
- " vec3 tangent = aTangent0.xyz;\n"
- "#endif //VERTEX_TANGENT\n"
- "#endif //VERTEX_TANGENT_BLEND\n"
- " #ifdef VERTEX_TEXCOORD_BLEND\n"
- " vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),\n"
- " vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);\n"
- "#else\n"
- "#ifdef VERTEX_TEXCOORD\n"
- " vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);\n"
- "#endif //VERTEX_TEXCOORD\n"
- "#endif //VERTEX_TEXCOORD_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- " vertexParallaxOcclusion(position, normal, tangent);\n"
- " #ifdef SHADOWED\n"
- " vLightPosition = uMatrixLight * position;\n"
- "#endif //SHADOWED\n"
- "}\n";
-
-static const char parallax_occlusion_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "varying vec3 vLightVector;\n"
- "varying vec3 vLightHalfVector;\n"
- "varying vec3 vEyeVector;\n"
- "uniform sampler2D uTextureNormal0;\n"
- "uniform mat3 uTextureMatrixTransformNormal0;\n"
- "#ifdef NEED_TEX_COORD\n"
- "varying vec2 vTexCoord;\n"
- "vec3 Tex0CoordNormal;\n"
- "#endif //TEX_COORD\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureNormal1;\n"
- "uniform float uTextureNormalWeight;\n"
- "uniform mat3 uTextureMatrixTransformNormal1;\n"
- "vec3 Tex1CoordNormal;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- "#ifdef FOG_ENABLED\n"
- "uniform float uFogFactor;\n"
- "uniform vec4 uFogColor;\n"
- "#endif //FOG_ENABLED\n"
- "#ifdef SHADOWED\n"
- "varying vec4 vLightPosition;\n"
- "uniform sampler2D uShadowMap;\n"
- "uniform float uShadowsPCFStep;\n"
- "uniform float uShadowsPCFSize;\n"
- "uniform float uShadowsConstantBias;\n"
- "float shadow;\n"
- "float pcf(vec4 lpos)\n"
- "{\n"
- " vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;\n"
- " float i, j, shadow, q, c;\n"
- " q = floor(uShadowsPCFStep * 2.0);\n"
- " c = floor(uShadowsPCFStep * uShadowsPCFStep * 4.0);\n"
- " shadow = 0.0;\n"
- " const vec4 unpack = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n"
- " for (i = -uShadowsPCFStep; i < uShadowsPCFStep; i += 1.0)\n"
- " for (j = -uShadowsPCFStep; j < uShadowsPCFStep; j += 1.0)\n"
- " {\n"
- " vec4 zvalue = texture2D(uShadowMap, smcoord.xy + vec2(i / q, j / q) * uShadowsPCFSize);\n"
- " shadow += float(smcoord.z < dot(zvalue, unpack) + uShadowsConstantBias);\n"
- " }\n"
- " return shadow / c;\n"
- "}\n"
- "#endif //SHADOWED\n"
- "#ifdef DIFFUSE\n"
- "uniform vec4 uMaterialDiffuse;\n"
- "uniform vec4 uLightDiffuse;\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- "uniform sampler2D uTextureDiffuse0;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse0;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureDiffuse1;\n"
- "uniform float uTextureDiffuseWeight;\n"
- "uniform mat3 uTextureMatrixTransformDiffuse1;\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- "uniform vec4 uLightSpecular;\n"
- "uniform float uMaterialShininess;\n"
- "uniform vec4 uMaterialSpecular;\n"
- "#ifdef SPECULAR_TEXTURE\n"
- "uniform sampler2D uTextureSpecular0;\n"
- "uniform mat3 uTextureMatrixTransformSpecular0;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureSpecular1;\n"
- "uniform float uTextureSpecularWeight;\n"
- "uniform mat3 uTextureMatrixTransformSpecular1;\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- "#endif //SPECULAR\n"
- "#ifdef AMBIENT\n"
- "uniform vec4 uMaterialAmbient;\n"
- "uniform vec4 uLightAmbient;\n"
- "#ifdef AMBIENT_TEXTURE\n"
- "uniform sampler2D uTextureAmbient0;\n"
- "uniform mat3 uTextureMatrixTransformAmbient0;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureAmbient1;\n"
- "uniform float uTextureAmbientWeight;\n"
- "uniform mat3 uTextureMatrixTransformAmbient1;\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- "#endif //AMBIENT\n"
- "#ifdef EMISSION\n"
- "uniform vec4 uMaterialEmission;\n"
- "#ifdef EMISSION_TEXTURE\n"
- "uniform sampler2D uTextureEmission0;\n"
- "uniform mat3 uTextureMatrixTransformEmission0;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- "uniform sampler2D uTextureEmission1;\n"
- "uniform float uTextureEmissionWeight;\n"
- "uniform mat3 uTextureMatrixTransformEmission1;\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- "#endif //EMISSION\n"
- "#ifdef LIGHT_SPOT\n"
- "uniform vec3 uLightSpotDir;\n"
- "uniform float uLightSpotExp;\n"
- "uniform float uLightSpotCutoffCos;\n"
- "#endif //LIGHT_SPOT\n"
- "#ifdef LIGHT_ATTENUATION\n"
- "varying float vLightDist;\n"
- "#endif //LIGHT_ATTENUATION\n"
- "uniform int uAlphaTestComparison;\n"
- "uniform float uAlphaTestRefValue;\n"
- "const float parallaxScale = 0.2;\n"
- "vec2 parallaxMapping(in vec3 view, in vec2 tex, out float parallaxHeight)\n"
- "{\n"
- " const float numLayers = 15.0;\n"
- " vec2 texStep = parallaxScale * view.xy / view.z / numLayers;\n"
- " float layerHeight = 1.0 / numLayers;\n"
- " float curLayerHeight = 0.0;\n"
- " vec2 dtex = parallaxScale * view.xy / view.z / numLayers;\n"
- " vec2 currentTextureCoords = tex;\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- " float heightFromTexture = (1.0 - texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).a) * uTextureNormalWeight;\n"
- " heightFromTexture += (1.0 - texture2D(uTextureNormal1, vec2(Tex1CoordNormal)).a) *\n"
- " (1.0 - uTextureNormalWeight);\n"
- "#else\n"
- " float heightFromTexture = 1.0 - texture2D(uTextureNormal0, currentTextureCoords).a;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- " while(heightFromTexture > curLayerHeight)\n"
- " {\n"
- " curLayerHeight += layerHeight;\n"
- " currentTextureCoords -= dtex;\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- " heightFromTexture = (1.0 - texture2D(uTextureNormal0, currentTextureCoords).a) * uTextureNormalWeight;\n"
- " heightFromTexture += (1.0 - texture2D(uTextureNormal1, currentTextureCoords).a) *\n"
- " (1.0 - uTextureNormalWeight);\n"
- "#else\n"
- " heightFromTexture = 1.0 - texture2D(uTextureNormal0, currentTextureCoords).a;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- " }\n"
- " vec2 prevTCoords = currentTextureCoords + texStep;\n"
- " float nextH = heightFromTexture - curLayerHeight;\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- " float prevH = (1.0 - texture2D(uTextureNormal0, prevTCoords).a\n"
- " - curLayerHeight + layerHeight) * uTextureNormalWeight;\n"
- " prevH += (1.0 - texture2D(uTextureNormal1, prevTCoords).a\n"
- " - curLayerHeight + layerHeight) * (1.0 - uTextureNormalWeight);\n"
- "#else\n"
- " float prevH = 1.0 - texture2D(uTextureNormal0, prevTCoords).a\n"
- " - curLayerHeight + layerHeight;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- " float weight = nextH / (nextH - prevH);\n"
- " vec2 finalTexCoords = prevTCoords * weight + currentTextureCoords * (1.0-weight);\n"
- " parallaxHeight = curLayerHeight + prevH * weight + nextH * (1.0 - weight);\n"
- " return finalTexCoords;\n"
- "}\n"
- "vec4 fragmentParallaxMap()\n"
- "{\n"
- " float factor;\n"
- " vec3 normal;\n"
- " vec4 color;\n"
- " vec4 fragcolor;\n"
- " float parallaxHeight;\n"
- " vec2 tex = parallaxMapping(vEyeVector, vec2(Tex0CoordNormal), parallaxHeight);\n"
- " vec3 lv = normalize(vLightVector);\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- " normal = texture2D(uTextureNormal0, tex).rgb * uTextureNormalWeight / texture2D(uTextureNormal0, tex).a;\n"
- " normal += texture2D(uTextureNormal1, tex).rgb *\n"
- " (1.0 - uTextureNormalWeight) / texture2D(uTextureNormal1, tex).a;\n"
- "#else\n"
- " normal = texture2D(uTextureNormal0, tex).rgb / texture2D(uTextureNormal0, tex).a;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- " normal = 2.0 * normal - 1.0;\n"
- " normal = normalize(normal);\n"
- " factor = dot(lv, normal);\n"
- "#ifdef LIGHT_SPOT\n"
- " float f = dot(-lv, normalize(uLightSpotDir));\n"
- " if (f > uLightSpotCutoffCos)\n"
- " factor *= pow(f, uLightSpotExp);\n"
- " else\n"
- " factor = 0.0;\n"
- "#endif //LIGHT_SPOT\n"
- " if (factor > 0.0)\n"
- " {\n"
- "#ifdef DIFFUSE\n"
- "#ifdef DIFFUSE_TEXTURE_BLEND\n"
- " color = texture2D(uTextureDiffuse0, tex) * uTextureDiffuseWeight +\n"
- " texture2D(uTextureDiffuse1, tex) * (1.0 - uTextureDiffuseWeight);\n"
- "#else\n"
- "#ifdef DIFFUSE_TEXTURE\n"
- " color = texture2D(uTextureDiffuse0, tex);\n"
- "#else\n"
- " color = uMaterialDiffuse;\n"
- "#endif //DIFFUSE_TEXTURE\n"
- "#endif //DIFFUSE_TEXTURE_BLEND\n"
- " fragcolor = uLightDiffuse * color * factor;\n"
- "#else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#endif //DIFFUSE\n"
- "#ifdef SPECULAR\n"
- " factor = dot(normalize(vLightHalfVector), normal);\n"
- " if (factor > 0.0)\n"
- " {\n"
- " factor = pow(factor, uMaterialShininess);\n"
- "#ifdef SPECULAR_TEXTURE_BLEND\n"
- " color = texture2D(uTextureSpecular0, tex) * uTextureSpecularWeight +\n"
- " texture2D(uTextureSpecular1, tex) * (1.0 - uTextureSpecularWeight);\n"
- "#else\n"
- "#ifdef SPECULAR_TEXTURE\n"
- " color = texture2D(uTextureSpecular0, tex);\n"
- "#else\n"
- " color = uMaterialSpecular;\n"
- "#endif //SPECULAR_TEXTURE\n"
- "#endif //SPECULAR_TEXTURE_BLEND\n"
- " fragcolor += uLightSpecular * color * factor;\n"
- " }\n"
- "#endif //SPECULAR\n"
- "#ifdef SHADOWED\n"
- " fragcolor *= shadow;\n"
- "#endif //SHADOWED\n"
- " }\n"
- " else\n"
- " fragcolor = vec4(0.0, 0.0, 0.0, 0.0);\n"
- "#ifdef AMBIENT\n"
- "#ifdef AMBIENT_TEXTURE_BLEND\n"
- " color = texture2D(uTextureAmbient0, tex) * uTextureAmbientWeight +\n"
- " texture2D(uTextureAmbient1, tex) * (1.0 - uTextureAmbientWeight);\n"
- "#else\n"
- "#ifdef AMBIENT_TEXTURE\n"
- " color = texture2D(uTextureAmbient0, tex);\n"
- "#else\n"
- " color = uMaterialAmbient;\n"
- "#endif //AMBIENT_TEXTURE\n"
- "#endif //AMBIENT_TEXTURE_BLEND\n"
- " fragcolor += uLightAmbient * color;\n"
- "#endif //AMBIENT\n"
- "#ifdef LIGHT_ATTENUATION\n"
- " fragcolor /= dot(uLightAtten, vec3(1.0, vLightDist, vLightDist * vLightDist));\n"
- "#endif //LIGHT_ATTENUATION\n"
- "#ifdef EMISSION\n"
- "#ifdef EMISSION_TEXTURE_BLEND\n"
- " color = texture2D(uTextureEmission0, tex) * uTextureEmissionWeight +\n"
- " texture2D(uTextureEmission1, tex) * (1.0 - uTextureEmissionWeight);\n"
- "#else\n"
- "#ifdef EMISSION_TEXTURE\n"
- " color = texture2D(uTextureEmission0, tex);\n"
- "#else\n"
- " color = uMaterialEmission;\n"
- "#endif //EMISSION_TEXTURE\n"
- "#endif //EMISSION_TEXTURE_BLEND\n"
- " fragcolor += color;\n"
- "#endif //EMISSION\n"
- " return fragcolor;\n"
- "}\n"
- "void main() {\n"
- " vec4 color;\n"
- "#ifdef NEED_TEX_COORD\n"
- " Tex0CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal0;\n"
- "#endif // NEED_TEX_COORD\n"
- "#ifdef NORMAL_TEXTURE_BLEND\n"
- " Tex1CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal1;\n"
- "#endif //NORMAL_TEXTURE_BLEND\n"
- "#ifdef SHADOWED\n"
- " shadow = pcf(vLightPosition);\n"
- "#endif //SHADOWED\n"
- " color = fragmentParallaxMap();\n"
- "#ifdef ALPHA_TEST_ENABLED\n"
- " /*uAlphaTestComparison is value of the Evas_3D_Comparison type*/\n"
- " const float p = 1000000.0;\n"
- " float acolor = floor(color.a * p);\n"
- " float refvalue = floor(uAlphaTestRefValue * p);\n"
- " if (uAlphaTestComparison == 0) discard;\n"
- " else if (uAlphaTestComparison == 1)\n"
- " {\n"
- " if (acolor < refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 2)\n"
- " {\n"
- " if (acolor == refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 3)\n"
- " {\n"
- " if (acolor <= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 4)\n"
- " {\n"
- " if (acolor > refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 5)\n"
- " {\n"
- " if (acolor != refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 6)\n"
- " {\n"
- " if (acolor >= refvalue) gl_FragColor = color;\n"
- " else discard;\n"
- " }\n"
- " else if (uAlphaTestComparison == 7) ;\n"
- "#else\n"
- " gl_FragColor = color;\n"
- "#endif //ALPHA_TEST_ENABLED\n"
- " \n"
- "#ifdef FOG_ENABLED\n"
- " float z = gl_FragCoord.z / gl_FragCoord.w;\n"
- " float fogFactor = exp2(-uFogFactor * uFogFactor * z * z * 1.44);\n"
- " fogFactor = clamp(fogFactor, 0.0, 1.0);\n"
- " gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);\n"
- "#endif //FOG_ENABLED\n"
- "}\n";
-
-static const char post_processing_fxaa_vert_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "uniform mat4 uMatrixMvp;\n"
- "#ifdef VERTEX_POSITION\n"
- "attribute vec4 aPosition0;\n"
- "#endif //VERTEX_POSITION\n"
- "#ifdef VERTEX_POSITION_BLEND\n"
- "attribute vec4 aPosition1;\n"
- "uniform float uPositionWeight;\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- "varying vec2 tc0;\n"
- "void main()\n"
- "{\n"
- " #ifdef VERTEX_POSITION_BLEND\n"
- " vec4 position = mix(aPosition1, aPosition0, uPositionWeight);\n"
- " position = vec4(position.xyz, 1.0);\n"
- "#else\n"
- "#ifdef VERTEX_POSITION\n"
- " vec4 position = vec4(aPosition0.xyz, 1.0);\n"
- "#endif // VERTEX_POSITION\n"
- "#endif //VERTEX_POSITION_BLEND\n"
- " gl_Position = uMatrixMvp * position;\n"
- " tc0 = position.xy * 0.5 + 0.5;\n"
- "}\n";
-
-static const char post_processing_fxaa_frag_glsl[] =
- "#ifdef GL_ES\n"
- "precision mediump float;\n"
- "precision mediump int;\n"
- "precision lowp sampler2D;\n"
- "#endif\n"
- "//FXAA fragment shader by Timothy Lottes\n"
- "//http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf\n"
- "//modified and adapted to www.enlightenment.org by Oleksander Shcherbina\n"
- "uniform sampler2D uColorTexture;\n"
- "uniform float uFrameSizeH;\n"
- "uniform float uFrameSizeW;\n"
- "varying vec2 tc0;\n"
- "vec4 fxaa()\n"
- "{\n"
- " float _SPAN_MAX_ = 8.0;\n"
- " float _REDUCE_MUL_ = (1.0/8.0);\n"
- " float _REDUCE_MIN_ = (1.0/128.0);\n"
- " vec4 l = vec4(0.299, 0.587, 0.114, 0.0);\n"
- " vec2 frameBufSize = vec2(uFrameSizeW, uFrameSizeH);\n"
- " vec2 direction;\n"
- " vec4 colorNW = texture2D(uColorTexture, tc0 + (vec2(-1.0, -1.0)/frameBufSize));\n"
- " vec4 colorNE = texture2D(uColorTexture, tc0 + (vec2(1.0, -1.0)/frameBufSize));\n"
- " vec4 colorSW = texture2D(uColorTexture, tc0 + (vec2(-1.0, 1.0)/frameBufSize));\n"
- " vec4 colorSE = texture2D(uColorTexture, tc0 + (vec2(1.0, 1.0)/frameBufSize));\n"
- " vec4 colorM = texture2D(uColorTexture,tc0);\n"
- " float lNW = dot(colorNW, l);\n"
- " float lNE = dot(colorNE, l);\n"
- " float lSW = dot(colorSW, l);\n"
- " float lSE = dot(colorSE, l);\n"
- " float lM = dot(colorM, l);\n"
- " float lMin = min(lM, min(min(lNW, lNE), min(lSW, lSE)));\n"
- " float lMax = max(lM, max(max(lNW, lNE), max(lSW, lSE)));\n"
- " direction.x = -((lNW + lNE) - (lSW + lSE));\n"
- " direction.y = ((lNW + lSW) - (lNE + lSE));\n"
- " float directionReduce = max(\n"
- " (lNW + lNE + lSW + lSE) * (0.25 * _REDUCE_MUL_),\n"
- " _REDUCE_MIN_);\n"
- " float rcpDirMin = 1.0/(min(abs(direction.x), abs(direction.y)) + directionReduce);\n"
- " direction = min(vec2(_SPAN_MAX_, _SPAN_MAX_),\n"
- " max(vec2(-_SPAN_MAX_, -_SPAN_MAX_),\n"
- " direction * rcpDirMin)) / frameBufSize;\n"
- " vec4 colorA = 0.5 * (\n"
- " texture2D(uColorTexture, tc0.xy + direction * (1.0/3.0 - 0.5)) +\n"
- " texture2D(uColorTexture, tc0.xy + direction * (2.0/3.0 - 0.5)));\n"
- " vec4 colorB = colorA * 0.5 + 0.25 * (\n"
- " texture2D(uColorTexture, tc0.xy + direction * (- 0.5)) +\n"
- " texture2D(uColorTexture, tc0.xy + direction * 0.5));\n"
- " float lB = dot(colorB, l);\n"
- " if((lB < lMin) || (lB > lMax))\n"
- " return colorA;\n"
- " else\n"
- " return colorB;\n"
- "}\n"
- "void main()\n"
- "{\n"
- " gl_FragColor = fxaa();\n"
- "}\n";
-
-static const char *vertex_shaders[] =
-{
- vertex_color_vert_glsl,
- diffuse_vert_glsl,
- flat_vert_glsl,
- phong_vert_glsl,
- normal_map_vert_glsl,
- shadow_map_vert_glsl,
- color_pick_vert_glsl,
- parallax_occlusion_vert_glsl,
- post_processing_fxaa_vert_glsl,
-};
-
-static const char *fragment_shaders[] =
-{
- vertex_color_frag_glsl,
- diffuse_frag_glsl,
- flat_frag_glsl,
- phong_frag_glsl,
- normal_map_frag_glsl,
- shadow_map_frag_glsl,
- color_pick_frag_glsl,
- parallax_occlusion_frag_glsl,
- post_processing_fxaa_frag_glsl,
-};
diff --git a/src/modules/evas/engines/gl_common/shader_3d/flat_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/flat_frag.shd
deleted file mode 100644
index 863bac1e1a..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/flat_frag.shd
+++ /dev/null
@@ -1,64 +0,0 @@
-varying vec2 vFactor;
-
-FRAGMENT_SHADER_USE_TEX_COORD
-FRAGMENT_SHADER_USE_FOG
-FRAGMENT_SHADER_USE_SHADOWS
-FRAGMENT_SHADER_USE_DIFFUSE_TERM
-FRAGMENT_SHADER_USE_SPECULAR_TERM
-FRAGMENT_SHADER_USE_AMBIENT_TERM
-FRAGMENT_SHADER_USE_EMISSION_TERM
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-vec4 fragmentFlat()
-{
- vec4 color;
- vec4 fragcolor;
-#ifdef DIFFUSE
-
- FRAGMENT_SHADER_TEXTURE_BLEND(DIFFUSE, Diffuse)
- fragcolor = uLightDiffuse * color * vFactor.x;
-#else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-#endif //DIFFUSE
-
-#ifdef SPECULAR
-
- FRAGMENT_SHADER_TEXTURE_BLEND(SPECULAR, Specular)
- fragcolor += uLightSpecular * color * vFactor.y;
-
-#endif //SPECULAR
-
-#ifdef SHADOWED
- fragcolor *= shadow;
-#endif //SHADOWED
-
-#ifdef AMBIENT
-
- FRAGMENT_SHADER_TEXTURE_BLEND(AMBIENT, Ambient)
- fragcolor += uLightAmbient * color;
-#endif //AMBIENT
-
-#ifdef EMISSION
-
- FRAGMENT_SHADER_TEXTURE_BLEND(EMISSION, Emission)
- fragcolor += color;
-#endif //EMISSION
- return fragcolor;
-}
-
-void main() {
- vec4 color;
-#ifdef SHADOWED
- shadow = pcf(vLightPosition);
-#endif //SHADOWED
-
- color = fragmentFlat();
-
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-#else
- gl_FragColor = color;
-#endif //ALPHA_TEST_ENABLED
-
- FRAGMENT_SHADER_FOG_APPLY
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/flat_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/flat_vert.shd
deleted file mode 100644
index 10b9493304..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/flat_vert.shd
+++ /dev/null
@@ -1,92 +0,0 @@
-uniform mat4 uMatrixMvp;
-uniform mat3 uMatrixNormal;
-uniform mat4 uMatrixModelview;
-uniform vec4 uLightPosition;
-varying vec2 vFactor;
-
-VERTEX_SHADER_USE_SHADOWS
-VERTEX_SHADER_USE_POSITION
-VERTEX_SHADER_USE_NORMALS
-VERTEX_SHADER_USE_TEXCOORD
-VERTEX_SHADER_NEED_TEX_COORD
-
-#ifdef LIGHT_SPOT
-uniform vec3 uLightSpotDir;
-uniform float uLightSpotExp;
-uniform float uLightSpotCutoffCos;
-#endif //LIGHT_SPOT
-
-#ifdef SPECULAR
-uniform float uMaterialShininess;
-#endif //SPECULAR
-
-#ifdef LIGHT_ATTENUATION
-uniform vec3 uLightAtten;
-#endif //LIGHT_ATTENUATION
-
-void vertexFlat(vec4 position, vec3 normal)
-{
- vec3 lv;
- float factor;
- normal = uMatrixNormal * normal;
- position = uMatrixModelview * position;
-
-#ifdef NORMALIZE_NORMALS
- normal = normalize(normal);
-#endif //NORMALIZE_NORMALS
-
-#ifdef LIGHT_DIRECTIONAL
- lv = uLightPosition.xyz;
-#else
- lv = uLightPosition.xyz - position.xyz;
- lv = normalize(lv);
-#endif //LIGHT_DIRECTIONAL
-
- factor = max(dot(lv, normal), 0.0);
-
-#ifdef LIGHT_SPOT
- float f = dot(-lv, uLightSpotDir);
- if (f > uLightSpotCutoffCos)
- factor *= pow(f, uLightSpotExp);
- else
- factor = 0.0;
-#endif //LIGHT_SPOT
-
- if (factor > 0.0)
- {
-
-#ifdef DIFFUSE
- vFactor.x = factor;
-#else
- vFactor.x = 0.0;
-#endif //DIFFUSE
-
-#ifdef SPECULAR
- vec3 hv = normalize(normalize(-position.xyz) + lv);
- factor = pow(max(dot(hv, normal), 0.0), uMaterialShininess);
- vFactor.y = factor;
-#endif //SPECULAR
-
- }
- else
- vFactor = vec2(0.0, 0.0);
-
- /* Light attenuation. */
-#ifdef LIGHT_ATTENUATION
- float dist = length(lv);
- vFactor /= dot(uLightAtten, vec3(1.0, dist, dist * dist));
-#endif //LIGHT_ATTENUATION
-}
-
-void main()
-{
-
- VERTEX_SHADER_POSITION
- VERTEX_SHADER_NORMAL
- VERTEX_SHADER_TEXCOORD
-
- gl_Position = uMatrixMvp * position;
- vertexFlat(position, normal);
-
- VERTEX_SHADER_SHADOWED
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/gen_shaders_3d.sh b/src/modules/evas/engines/gl_common/shader_3d/gen_shaders_3d.sh
deleted file mode 100755
index f31880fda0..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/gen_shaders_3d.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/sh
-
-# This script will generate a C file containing all the shaders used by Evas_3D
-
-DIR=`dirname $0`
-cd $DIR/../../../../../
-
-OUTPUT="$DIR/evas_gl_3d_shaders.x"
-
-# Skip generation during make distcheck
-if [ "${top_distdir}" != "" ] ; then exit 0; fi
-
-# Skip generation if file can not be written to
-if [ -e ${OUTPUT} ] && [ ! -w ${OUTPUT} ] ; then exit 0; fi
-
-# Skip generation if there is no diff (or no git)
-if ! git rev-parse 2>> /dev/null >> /dev/null ; then exit 0 ; fi
-if git diff --quiet --exit-code -- "$DIR"
-then
- touch "$OUTPUT"
- exit 0
-fi
-
-exec 1<&-
-exec 1>"$OUTPUT"
-
-SHADERS=$@
-VERT_SHADERS_SOURCE=""
-FRAG_SHADERS_SOURCE=""
-
-# Write header
-printf "/* DO NOT MODIFY THIS FILE AS IT IS AUTO-GENERATED */\n"
-printf "/* IF IT IS CHANGED PLEASE COMMIT THE CHANGES */\n\n"
-
-for SHD in $SHADERS ; do
- LNAME=`basename "$SHD" .shd`
-
- if echo "$LNAME" | grep _vert 2>&1 >> /dev/null ; then
- VERT_SHADERS_SOURCE="$VERT_SHADERS_SOURCE "$LNAME"_glsl,\n"
- fi
- if echo "$LNAME" | grep _frag 2>&1 >> /dev/null ; then
- FRAG_SHADERS_SOURCE="$FRAG_SHADERS_SOURCE "$LNAME"_glsl,\n"
- fi
-
- m4 "$DIR/include.shd" "$SHD" > "$SHD.tmp"
-
- OIFS="$IFS"
- IFS=`printf '\n+'`
- IFS=${IFS%+}
- printf "static const char "$LNAME"_glsl[] ="
- for LINE in `cat "$SHD.tmp"` ; do
- printf "\n \"$LINE\\\n\""
- done
- printf ";\n\n"
- IFS="$OIFS"
-
- rm "$SHD.tmp"
-done
-
-printf "static const char *vertex_shaders[] =
-{\n"
- printf "$VERT_SHADERS_SOURCE"
-printf "};\n\n"
-
-printf "static const char *fragment_shaders[] =
-{\n"
- printf "$FRAG_SHADERS_SOURCE"
-printf "};\n"
diff --git a/src/modules/evas/engines/gl_common/shader_3d/include.shd b/src/modules/evas/engines/gl_common/shader_3d/include.shd
deleted file mode 100644
index 2897589c17..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/include.shd
+++ /dev/null
@@ -1,254 +0,0 @@
-`#ifdef GL_ES
-precision mediump float;
-precision mediump int;
-precision lowp sampler2D;
-#endif'
-
-define(`FRAGMENT_SHADER_USE_TEX_COORD',`
-#ifdef NEED_TEX_COORD
-varying vec2 vTexCoord;
-#endif //TEX_COORD')
-
-define(`FRAGMENT_SHADER_USE_TEXTURE', `
-#ifdef $1_TEXTURE
-uniform sampler2D uTexture$2`0';
-uniform mat3 uTextureMatrixTransform$2`0';
-#endif //$1_TEXTURE
-#ifdef $1_TEXTURE_BLEND
-uniform sampler2D uTexture$2`1';
-uniform float uTexture$2Weight;
-uniform mat3 uTextureMatrixTransform$2`1';
-#endif //$1_TEXTURE_BLEND')
-
-define(`FRAGMENT_SHADER_USE_FOG', `
-#ifdef FOG_ENABLED
-uniform float uFogFactor;
-uniform vec4 uFogColor;
-#endif //FOG_ENABLED')
-define(`FRAGMENT_SHADER_USE_ALPHA_TEST_GLES',
-uniform int uAlphaTestComparison;
-uniform float uAlphaTestRefValue;)
-
-define(`FRAGMENT_SHADER_USE_SHADOWS', `
-#ifdef SHADOWED
-varying vec4 vLightPosition;
-uniform sampler2D uShadowMap;
-uniform float uShadowsPCFStep;
-uniform float uShadowsPCFSize;
-uniform float uShadowsConstantBias;
-float shadow;
-float pcf(vec4 lpos)
-{
- vec3 smcoord = lpos.xyz / lpos.w * 0.5 + 0.5;
- float i, j, shadow, q, c;
- q = floor(uShadowsPCFStep * 2.0);
- c = floor(uShadowsPCFStep * uShadowsPCFStep * 4.0);
- shadow = 0.0;
- const vec4 unpack = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);
- for (i = -uShadowsPCFStep; i < uShadowsPCFStep; i += 1.0)
- for (j = -uShadowsPCFStep; j < uShadowsPCFStep; j += 1.0)
- {
- vec4 zvalue = texture2D(uShadowMap, smcoord.xy + vec2(i / q, j / q) * uShadowsPCFSize);
- shadow += float(smcoord.z < dot(zvalue, unpack) + uShadowsConstantBias);
- }
- return shadow / c;
-}
-#endif //SHADOWED')
-
-define(`FRAGMENT_SHADER_FOG_APPLY', `
-#ifdef FOG_ENABLED
- float z = gl_FragCoord.z / gl_FragCoord.w;
- float fogFactor = exp2(-uFogFactor * uFogFactor * z * z * 1.44);
- fogFactor = clamp(fogFactor, 0.0, 1.0);
- gl_FragColor = mix(uFogColor, gl_FragColor, fogFactor);
-#endif //FOG_ENABLED')
-
-define(`FRAGMENT_SHADER_USE_LIGHT', `
-#ifdef LIGHT_SPOT
-uniform vec3 uLightSpotDir;
-uniform float uLightSpotExp;
-uniform float uLightSpotCutoffCos;
-#endif //LIGHT_SPOT
-#ifdef LIGHT_ATTENUATION
-varying float vLightDist;
-#endif //LIGHT_ATTENUATION')
-
-define(`FRAGMENT_SHADER_TEXTURE_BLEND', `
-#ifdef $1_TEXTURE_BLEND
- vec3 Tex0Coord$2 = vec3(vTexCoord, 1.0) * uTextureMatrixTransform$2`0';
- vec3 Tex1Coord$2 = vec3(vTexCoord, 1.0) * uTextureMatrixTransform$2`1';
- color = mix(texture2D(uTexture$2`1', vec2(Tex1Coord$2)),
- texture2D(uTexture$2`0', vec2(Tex0Coord$2)), uTexture$2Weight);
- color *= uMaterial$2;
-#else
-#ifdef $1_TEXTURE
- vec3 Tex0Coord$2 = vec3(vTexCoord, 1.0) * uTextureMatrixTransform$2`0';
- color = texture2D(uTexture$2`0', vec2(Tex0Coord$2)) * uMaterial$2;
-#else
- color = uMaterial$2;
-#endif //$1_TEXTURE
-#endif //$1_TEXTURE_BLEND')
-
-define(`FRAGMENT_SHADER_USE_EMISSION_TERM',
-`#ifdef EMISSION'
-uniform vec4 uMaterialEmission;
-FRAGMENT_SHADER_USE_TEXTURE(EMISSION, Emission)
-`#endif //EMISSION')
-
-define(`FRAGMENT_SHADER_USE_SPECULAR_TERM',
-`#ifdef SPECULAR'
-uniform vec4 uLightSpecular;
-uniform float uMaterialShininess;
-uniform vec4 uMaterialSpecular;
-FRAGMENT_SHADER_USE_TEXTURE(SPECULAR, Specular)
-`#endif //SPECULAR')
-
-define(`FRAGMENT_SHADER_USE_AMBIENT_TERM',
-`#ifdef AMBIENT'
-uniform vec4 uMaterialAmbient;
-uniform vec4 uLightAmbient;
-FRAGMENT_SHADER_USE_TEXTURE(AMBIENT, Ambient)
-`#endif //AMBIENT')
-
-define(`FRAGMENT_SHADER_USE_DIFFUSE_TERM',
-`#ifdef DIFFUSE'
-uniform vec4 uMaterialDiffuse;
-uniform vec4 uLightDiffuse;
-FRAGMENT_SHADER_USE_TEXTURE(DIFFUSE, Diffuse)
-`#endif //DIFFUSE')
-
-define(`FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY',
-/*uAlphaTestComparison is value of the Evas_3D_Comparison type*/
- const float p = 1000000.0;
- float acolor = floor($1.a * p);
- float refvalue = floor(uAlphaTestRefValue * p);
- if (uAlphaTestComparison == 0) discard;
- else if (uAlphaTestComparison == 1)
- {
- if (acolor < refvalue) gl_FragColor = $1;
- else discard;
- }
- else if (uAlphaTestComparison == 2)
- {
- if (acolor == refvalue) gl_FragColor = $1;
- else discard;
- }
- else if (uAlphaTestComparison == 3)
- {
- if (acolor <= refvalue) gl_FragColor = $1;
- else discard;
- }
- else if (uAlphaTestComparison == 4)
- {
- if (acolor > refvalue) gl_FragColor = $1;
- else discard;
- }
- else if (uAlphaTestComparison == 5)
- {
- if (acolor != refvalue) gl_FragColor = $1;
- else discard;
- }
- else if (uAlphaTestComparison == 6)
- {
- if (acolor >= refvalue) gl_FragColor = $1;
- else discard;
- }
- else if (uAlphaTestComparison == 7) ;)
-
-
-define(`VERTEX_SHADER_NEED_TEX_COORD',
-`#ifdef NEED_TEX_COORD'
-varying vec2 vTexCoord;
-`#endif //NEED_TEX_COORD')
-
-define(`VERTEX_SHADER_USE_LIGHT_ATTENUATION',
-`#ifdef LIGHT_ATTENUATION'
-varying float vLightDist;
-`#endif //LIGHT_ATTENUATION')
-
-define(`VERTEX_SHADER_USE_SHADOWS',
-`#ifdef SHADOWED'
-uniform mat4 uMatrixLight;
-varying vec4 vLightPosition;
-`#endif //SHADOWED')
-
-define(`VERTEX_SHADER_USE_POSITION',
-`#ifdef VERTEX_POSITION'
-attribute vec4 aPosition0;
-`#endif //VERTEX_POSITION'
-
-`#ifdef VERTEX_POSITION_BLEND'
-attribute vec4 aPosition1;
-uniform float uPositionWeight;
-`#endif //VERTEX_POSITION_BLEND')
-
-define(`VERTEX_SHADER_USE_NORMALS',
-`#ifdef VERTEX_NORMAL'
-attribute vec4 aNormal0;
-`#endif //VERTEX_NORMAL'
-
-`#ifdef VERTEX_NORMAL_BLEND'
-attribute vec4 aNormal1;
-uniform float uNormalWeight;
-`#endif //VERTEX_NORMAL_BLEND'
-)
-
-define(`VERTEX_SHADER_USE_TEXCOORD',
-`#ifdef VERTEX_TEXCOORD'
-attribute vec4 aTexCoord0;
-`#endif //VERTEX_TEXCOORD'
-
-`#ifdef VERTEX_TEXCOORD_BLEND'
-attribute vec4 aTexCoord1;
-uniform float uTexCoordWeight;
-`#endif //VERTEX_TEXCOORD_BLEND'
-)
-
-define(`VERTEX_SHADER_USE_COLOR',
-`#ifdef VERTEX_COLOR'
-attribute vec4 aColor0;
-`#endif //VERTEX_COLOR'
-
-`#ifdef VERTEX_COLOR_BLEND'
-attribute vec4 aColor1;
-uniform float uColorWeight;
-`#endif //VERTEX_COLOR_BLEND')
-
-define(`VERTEX_SHADER_POSITION',
-`#ifdef VERTEX_POSITION_BLEND'
- vec4 position = mix(aPosition1, aPosition0, uPositionWeight);
- position = vec4(position.xyz, 1.0);
-`#else'
-
-`#ifdef VERTEX_POSITION'
- vec4 position = vec4(aPosition0.xyz, 1.0);
-`#endif // VERTEX_POSITION'
-
-`#endif //VERTEX_POSITION_BLEND')
-
-define(`VERTEX_SHADER_NORMAL',
-`#ifdef VERTEX_NORMAL_BLEND'
- vec3 normal = mix(aNormal1.xyz, aNormal0.xyz, uNormalWeight);
-`#else'
-
-`#ifdef VERTEX_NORMAL'
- vec3 normal = aNormal0.xyz;
-`#endif //VERTEX_NORMAL'
-`#endif //VERTEX_NORMAL_BLEND')
-
-define(`VERTEX_SHADER_TEXCOORD',
-`#ifdef VERTEX_TEXCOORD_BLEND'
- vTexCoord = mix(vec2(aTexCoord1.s, 1.0 - aTexCoord1.t),
- vec2(aTexCoord0.s, 1.0 - aTexCoord0.t), uTexCoordWeight);
-`#else'
-
-`#ifdef VERTEX_TEXCOORD'
- vTexCoord = vec2(aTexCoord0.s, 1.0 - aTexCoord0.t);
-`#endif //VERTEX_TEXCOORD'
-
-`#endif //VERTEX_TEXCOORD_BLEND')
-
-define(`VERTEX_SHADER_SHADOWED',
-`#ifdef SHADOWED'
- vLightPosition = uMatrixLight * position;
-`#endif //SHADOWED')
diff --git a/src/modules/evas/engines/gl_common/shader_3d/normal_map_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/normal_map_frag.shd
deleted file mode 100644
index ad2b64f4f8..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/normal_map_frag.shd
+++ /dev/null
@@ -1,147 +0,0 @@
-varying vec3 vLightVector;
-varying vec3 vLightHalfVector;
-varying vec3 vEyeVector;
-
-FRAGMENT_SHADER_USE_TEX_COORD
-FRAGMENT_SHADER_USE_FOG
-FRAGMENT_SHADER_USE_SHADOWS
-FRAGMENT_SHADER_USE_TEXTURE(NORMAL, Normal)
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-#ifndef VERTEX_TANGENT
-varying vec3 vNormal;
-#endif //VERTEX_TANGENT
-
-FRAGMENT_SHADER_USE_DIFFUSE_TERM
-FRAGMENT_SHADER_USE_SPECULAR_TERM
-FRAGMENT_SHADER_USE_AMBIENT_TERM
-FRAGMENT_SHADER_USE_EMISSION_TERM
-FRAGMENT_SHADER_USE_LIGHT
-
-#ifndef VERTEX_TANGENT
-
-mat3 cotangent_frame(vec3 n, vec3 p, vec2 uv)
-{
- vec3 dp1 = dFdx(p);
- vec3 dp2 = dFdy(p);
- vec2 duv1 = dFdx(uv);
- vec2 duv2 = dFdy(uv);
- vec3 dp2perp = cross(dp2, n);
- vec3 dp1perp = cross(n, dp1);
- vec3 t = dp2perp * duv1.x + dp1perp * duv2.x;
- vec3 b = dp2perp * duv1.y + dp1perp * duv2.y;
- float invmax = inversesqrt(max(dot(t, t), dot(b, b)));
- return mat3(t * invmax, b * invmax, n);
-}
-
-vec3 perturb_normal(vec3 normal)
-{
- mat3 tbn = cotangent_frame(vNormal, -vEyeVector, vTexCoord);
- return normalize(tbn * normal);
-}
-#endif //VERTEX_TANGENT
-
-vec4 fragmentNormalMap()
-{
- float factor;
- vec3 normal;
- vec4 color;
- vec4 fragcolor;
-
- vec3 Tex0CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal0;
-#ifdef NORMAL_TEXTURE_BLEND
- vec3 Tex1CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal1;
- normal = texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).rgb * uTextureNormalWeight / texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).a;
- normal += texture2D(uTextureNormal1, vec2(Tex1CoordNormal)).rgb / texture2D(uTextureNormal1, vec2(Tex1CoordNormal)).a *
- (1.0 - uTextureNormalWeight);
-#else
- normal = texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).rgb / texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).a;
-#endif //NORMAL_TEXTURE_BLEND
-
- normal = 2.0 * normal - 1.0;
-
-#ifndef VERTEX_TANGENT
- normal = perturb_normal(normal);
-#endif //VERTEX_TANGENT
-
- vec3 lv = normalize(vLightVector);
- normal = normalize(normal);
-
- factor = dot(lv, normal);
-
-#ifdef LIGHT_SPOT
- float f = dot(-lv, normalize(uLightSpotDir));
-
- if (f > uLightSpotCutoffCos)
- factor *= pow(f, uLightSpotExp);
- else
- factor = 0.0;
-#endif //LIGHT_SPOT
-
- if (factor > 0.0)
- {
-
-#ifdef DIFFUSE
-
- FRAGMENT_SHADER_TEXTURE_BLEND(DIFFUSE, Diffuse)
- fragcolor = uLightDiffuse * color * factor;
-
-#else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-#endif //DIFFUSE
-
-#ifdef SPECULAR
-
- factor = dot(normalize(vLightHalfVector), normal);
- if (factor > 0.0)
- {
- factor = pow(factor, uMaterialShininess);
- FRAGMENT_SHADER_TEXTURE_BLEND(SPECULAR, Specular)
- fragcolor += uLightSpecular * color * factor;
- }
-
-#endif //SPECULAR
-
-#ifdef SHADOWED
- fragcolor *= shadow;
-#endif //SHADOWED
-
- }
- else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-
-#ifdef AMBIENT
- FRAGMENT_SHADER_TEXTURE_BLEND(AMBIENT, Ambient)
- fragcolor += uLightAmbient * color;
-#endif //AMBIENT
-
-#ifdef LIGHT_ATTENUATION
- fragcolor /= dot(uLightAtten, vec3(1.0, vLightDist, vLightDist * vLightDist));
-#endif //LIGHT_ATTENUATION
-
-#ifdef EMISSION
-
- FRAGMENT_SHADER_TEXTURE_BLEND(EMISSION, Emission)
- fragcolor += color;
-
-#endif //EMISSION
- return fragcolor;
-}
-
-void main() {
- vec4 color;
-#ifdef SHADOWED
- shadow = pcf(vLightPosition);
-#endif //SHADOWED
-
- color = fragmentNormalMap();
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-#else
- gl_FragColor = color;
-#endif //ALPHA_TEST_ENABLED
-
-FRAGMENT_SHADER_FOG_APPLY
-
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/normal_map_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/normal_map_vert.shd
deleted file mode 100644
index 0c9e557390..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/normal_map_vert.shd
+++ /dev/null
@@ -1,128 +0,0 @@
-uniform mat4 uMatrixMvp;
-uniform mat3 uMatrixNormal;
-uniform mat4 uMatrixModelview;
-uniform vec4 uLightPosition;
-varying vec3 vLightVector;
-varying vec3 vLightHalfVector;
-varying vec3 vEyeVector;
-
-#ifndef VERTEX_TANGENT
-varying vec3 vNormal;
-#endif //VERTEX_TANGENT
-
-VERTEX_SHADER_USE_SHADOWS
-VERTEX_SHADER_USE_POSITION
-VERTEX_SHADER_USE_NORMALS
-
-#ifdef VERTEX_TANGENT
-attribute vec4 aTangent0;
-#endif //VERTEX_TANGENT
-
-#ifdef VERTEX_TANGENT_BLEND
-attribute vec4 aTangent1;
-uniform float uTangentWeight;
-#endif //VERTEX_TANGENT_BLEND
-
-VERTEX_SHADER_USE_TEXCOORD
-VERTEX_SHADER_NEED_TEX_COORD
-VERTEX_SHADER_USE_LIGHT_ATTENUATION
-
-#ifndef VERTEX_TANGENT
-void vertexNormalMap(vec4 position, vec3 normal)
-{
- normal = uMatrixNormal * normal;
- position = uMatrixModelview * position;
- vEyeVector = normalize(-position.xyz);
-
-#ifdef NORMALIZE_NORMALS
- normal = normalize(normal);
-#endif //NORMALIZE_NORMALS
-
-#ifdef LIGHT_DIRECTIONAL
- vLightVector = uLightPosition.xyz;
-#else
- vLightVector = uLightPosition.xyz - position.xyz;
-
-#ifdef LIGHT_ATTENUATION
- vLightDist = length(vLightVector);
-#endif //LIGHT_ATTENUATION
-
- vLightVector = normalize(vLightVector);
-#endif //LIGHT_DIRECTIONAL
-
- vLightHalfVector = normalize(vEyeVector + vLightVector);
- vNormal = normal;
-}
-
-#else
-
-void vertexNormalMap(vec4 position, vec3 normal, vec3 tangent)
-{
- vec3 n = normalize(uMatrixNormal * normal);
- vec3 t = normalize(uMatrixNormal * tangent);
- vec3 b = cross(n, t);
- vec3 tmp;
-
- position = uMatrixModelview * position;
-
-#ifdef LIGHT_DIRECTIONAL
- vec3 lightDir = uLightPosition.xyz;
-#else
- vec3 lightDir = uLightPosition.xyz - position.xyz;
-
-#ifdef LIGHT_ATTENUATION
- vLightDist = length(lightDir);
-#endif //LIGHT_ATTENUATION
-
- lightDir = normalize(lightDir);
-#endif //LIGHT_DIRECTIONAL
-
- tmp.x = dot(lightDir, t);
- tmp.y = dot(lightDir, b);
- tmp.z = dot(lightDir, n);
- vLightVector = tmp;
-
- tmp.x = dot(position.xyz, t);
- tmp.y = dot(position.xyz, b);
- tmp.z = dot(position.xyz, n);
- vEyeVector = normalize(tmp);
-
- vec3 hv = normalize(normalize(-position.xyz) + lightDir);
- tmp.x = dot(hv, t);
- tmp.y = dot(hv, b);
- tmp.z = dot(hv, n);
- vLightHalfVector = tmp;
-}
-#endif //VERTEX_TANGENT
-
-void main()
-{
-
- VERTEX_SHADER_POSITION
- VERTEX_SHADER_NORMAL
-
-#ifdef VERTEX_TANGENT_BLEND
- vec3 tangent = aTangent0.xyz * uTangentWeight +
- aTangent1.xyz * (1.0 - uTangentWeight);
-#else
-
-#ifdef VERTEX_TANGENT
- vec3 tangent = aTangent0.xyz;
-#endif //VERTEX_TANGENT
-
-#endif //VERTEX_TANGENT_BLEND
-
- VERTEX_SHADER_TEXCOORD
-
- gl_Position = uMatrixMvp * position;
-
-#ifdef VERTEX_TANGENT
- vertexNormalMap(position, normal, tangent);
-#else
- vertexNormalMap(position, normal);
-#endif //VERTEX_TANGENT
-
-#ifdef SHADOWED
- vLightPosition = uMatrixLight * position;
-#endif
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_frag.shd
deleted file mode 100644
index aedafe4bdd..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_frag.shd
+++ /dev/null
@@ -1,240 +0,0 @@
-varying vec3 vLightVector;
-varying vec3 vLightHalfVector;
-varying vec3 vEyeVector;
-uniform sampler2D uTextureNormal0;
-uniform mat3 uTextureMatrixTransformNormal0;
-
-#ifdef NEED_TEX_COORD
-varying vec2 vTexCoord;
-vec3 Tex0CoordNormal;
-#endif //TEX_COORD
-
-#ifdef NORMAL_TEXTURE_BLEND
-uniform sampler2D uTextureNormal1;
-uniform float uTextureNormalWeight;
-uniform mat3 uTextureMatrixTransformNormal1;
-vec3 Tex1CoordNormal;
-#endif //NORMAL_TEXTURE_BLEND
-
-FRAGMENT_SHADER_USE_FOG
-FRAGMENT_SHADER_USE_SHADOWS
-FRAGMENT_SHADER_USE_DIFFUSE_TERM
-FRAGMENT_SHADER_USE_SPECULAR_TERM
-FRAGMENT_SHADER_USE_AMBIENT_TERM
-FRAGMENT_SHADER_USE_EMISSION_TERM
-FRAGMENT_SHADER_USE_LIGHT
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-const float parallaxScale = 0.2;
-
-vec2 parallaxMapping(in vec3 view, in vec2 tex, out float parallaxHeight)
-{
- const float numLayers = 15.0;
- vec2 texStep = parallaxScale * view.xy / view.z / numLayers;
-
- float layerHeight = 1.0 / numLayers;
- float curLayerHeight = 0.0;
- vec2 dtex = parallaxScale * view.xy / view.z / numLayers;
-
- vec2 currentTextureCoords = tex;
-
-#ifdef NORMAL_TEXTURE_BLEND
- float heightFromTexture = (1.0 - texture2D(uTextureNormal0, vec2(Tex0CoordNormal)).a) * uTextureNormalWeight;
- heightFromTexture += (1.0 - texture2D(uTextureNormal1, vec2(Tex1CoordNormal)).a) *
- (1.0 - uTextureNormalWeight);
-#else
- float heightFromTexture = 1.0 - texture2D(uTextureNormal0, currentTextureCoords).a;
-#endif //NORMAL_TEXTURE_BLEND
-
- while(heightFromTexture > curLayerHeight)
- {
- curLayerHeight += layerHeight;
- currentTextureCoords -= dtex;
-
-#ifdef NORMAL_TEXTURE_BLEND
- heightFromTexture = (1.0 - texture2D(uTextureNormal0, currentTextureCoords).a) * uTextureNormalWeight;
- heightFromTexture += (1.0 - texture2D(uTextureNormal1, currentTextureCoords).a) *
- (1.0 - uTextureNormalWeight);
-#else
- heightFromTexture = 1.0 - texture2D(uTextureNormal0, currentTextureCoords).a;
-#endif //NORMAL_TEXTURE_BLEND
- }
-
- vec2 prevTCoords = currentTextureCoords + texStep;
- float nextH = heightFromTexture - curLayerHeight;
-
-#ifdef NORMAL_TEXTURE_BLEND
- float prevH = (1.0 - texture2D(uTextureNormal0, prevTCoords).a
- - curLayerHeight + layerHeight) * uTextureNormalWeight;
- prevH += (1.0 - texture2D(uTextureNormal1, prevTCoords).a
- - curLayerHeight + layerHeight) * (1.0 - uTextureNormalWeight);
-#else
- float prevH = 1.0 - texture2D(uTextureNormal0, prevTCoords).a
- - curLayerHeight + layerHeight;
-#endif //NORMAL_TEXTURE_BLEND
-
- float weight = nextH / (nextH - prevH);
- vec2 finalTexCoords = prevTCoords * weight + currentTextureCoords * (1.0-weight);
- parallaxHeight = curLayerHeight + prevH * weight + nextH * (1.0 - weight);
-
- return finalTexCoords;
-}
-
-vec4 fragmentParallaxMap()
-{
- float factor;
- vec3 normal;
- vec4 color;
- vec4 fragcolor;
- float parallaxHeight;
- vec2 tex = parallaxMapping(vEyeVector, vec2(Tex0CoordNormal), parallaxHeight);
-
- vec3 lv = normalize(vLightVector);
-
-#ifdef NORMAL_TEXTURE_BLEND
- normal = texture2D(uTextureNormal0, tex).rgb * uTextureNormalWeight / texture2D(uTextureNormal0, tex).a;
- normal += texture2D(uTextureNormal1, tex).rgb *
- (1.0 - uTextureNormalWeight) / texture2D(uTextureNormal1, tex).a;
-#else
- normal = texture2D(uTextureNormal0, tex).rgb / texture2D(uTextureNormal0, tex).a;
-#endif //NORMAL_TEXTURE_BLEND
-
- normal = 2.0 * normal - 1.0;
-
- normal = normalize(normal);
-
- factor = dot(lv, normal);
-
-#ifdef LIGHT_SPOT
- float f = dot(-lv, normalize(uLightSpotDir));
-
- if (f > uLightSpotCutoffCos)
- factor *= pow(f, uLightSpotExp);
- else
- factor = 0.0;
-#endif //LIGHT_SPOT
-
- if (factor > 0.0)
- {
-
-#ifdef DIFFUSE
-
-#ifdef DIFFUSE_TEXTURE_BLEND
- color = texture2D(uTextureDiffuse0, tex) * uTextureDiffuseWeight +
- texture2D(uTextureDiffuse1, tex) * (1.0 - uTextureDiffuseWeight);
-#else
-
-#ifdef DIFFUSE_TEXTURE
- color = texture2D(uTextureDiffuse0, tex);
-#else
- color = uMaterialDiffuse;
-#endif //DIFFUSE_TEXTURE
-
-#endif //DIFFUSE_TEXTURE_BLEND
-
- fragcolor = uLightDiffuse * color * factor;
-
-#else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-#endif //DIFFUSE
-
-#ifdef SPECULAR
-
- factor = dot(normalize(vLightHalfVector), normal);
- if (factor > 0.0)
- {
- factor = pow(factor, uMaterialShininess);
-
-#ifdef SPECULAR_TEXTURE_BLEND
- color = texture2D(uTextureSpecular0, tex) * uTextureSpecularWeight +
- texture2D(uTextureSpecular1, tex) * (1.0 - uTextureSpecularWeight);
-#else
-#ifdef SPECULAR_TEXTURE
- color = texture2D(uTextureSpecular0, tex);
-#else
- color = uMaterialSpecular;
-#endif //SPECULAR_TEXTURE
-
-#endif //SPECULAR_TEXTURE_BLEND
-
- fragcolor += uLightSpecular * color * factor;
- }
-
-#endif //SPECULAR
-
-#ifdef SHADOWED
- fragcolor *= shadow;
-#endif //SHADOWED
-
- }
- else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-
-#ifdef AMBIENT
-#ifdef AMBIENT_TEXTURE_BLEND
- color = texture2D(uTextureAmbient0, tex) * uTextureAmbientWeight +
- texture2D(uTextureAmbient1, tex) * (1.0 - uTextureAmbientWeight);
-#else
-
-#ifdef AMBIENT_TEXTURE
- color = texture2D(uTextureAmbient0, tex);
-#else
- color = uMaterialAmbient;
-#endif //AMBIENT_TEXTURE
-
-#endif //AMBIENT_TEXTURE_BLEND
-
- fragcolor += uLightAmbient * color;
-#endif //AMBIENT
-
-#ifdef LIGHT_ATTENUATION
- fragcolor /= dot(uLightAtten, vec3(1.0, vLightDist, vLightDist * vLightDist));
-#endif //LIGHT_ATTENUATION
-
-#ifdef EMISSION
-
-#ifdef EMISSION_TEXTURE_BLEND
- color = texture2D(uTextureEmission0, tex) * uTextureEmissionWeight +
- texture2D(uTextureEmission1, tex) * (1.0 - uTextureEmissionWeight);
-#else
-
-#ifdef EMISSION_TEXTURE
- color = texture2D(uTextureEmission0, tex);
-#else
- color = uMaterialEmission;
-#endif //EMISSION_TEXTURE
-
-#endif //EMISSION_TEXTURE_BLEND
-
- fragcolor += color;
-#endif //EMISSION
- return fragcolor;
-}
-
-void main() {
- vec4 color;
-
-#ifdef NEED_TEX_COORD
- Tex0CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal0;
-#endif // NEED_TEX_COORD
-
-#ifdef NORMAL_TEXTURE_BLEND
- Tex1CoordNormal = vec3(vTexCoord, 1.0) * uTextureMatrixTransformNormal1;
-#endif //NORMAL_TEXTURE_BLEND
-
-#ifdef SHADOWED
- shadow = pcf(vLightPosition);
-#endif //SHADOWED
-
- color = fragmentParallaxMap();
-
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-#else
- gl_FragColor = color;
-#endif //ALPHA_TEST_ENABLED
-
- FRAGMENT_SHADER_FOG_APPLY
-
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_vert.shd
deleted file mode 100644
index dff4ff75d4..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/parallax_occlusion_vert.shd
+++ /dev/null
@@ -1,88 +0,0 @@
-uniform mat4 uMatrixMvp;
-uniform mat3 uMatrixNormal;
-uniform mat4 uMatrixModelview;
-uniform vec4 uLightPosition;
-varying vec3 vLightVector;
-varying vec3 vLightHalfVector;
-varying vec3 vEyeVector;
-
-VERTEX_SHADER_USE_SHADOWS
-VERTEX_SHADER_USE_POSITION
-VERTEX_SHADER_USE_NORMALS
-
-#ifdef VERTEX_TANGENT
-attribute vec4 aTangent0;
-#endif //VERTEX_TANGENT
-
-#ifdef VERTEX_TANGENT_BLEND
-attribute vec4 aTangent1;
-uniform float uTangentWeight;
-#endif //VERTEX_TANGENT_BLEND
-
-VERTEX_SHADER_USE_TEXCOORD
-VERTEX_SHADER_NEED_TEX_COORD
-VERTEX_SHADER_USE_LIGHT_ATTENUATION
-
-void vertexParallaxOcclusion(vec4 position, vec3 normal, vec3 tangent)
-{
- vec3 n = normalize(uMatrixNormal * normal);
- vec3 t = normalize(uMatrixNormal * tangent);
- vec3 b = cross(n, t);
- vec3 tmp;
-
- position = uMatrixModelview * position;
-
-#ifdef LIGHT_DIRECTIONAL
- vec3 lightDir = uLightPosition.xyz;
-#else
- vec3 lightDir = uLightPosition.xyz - position.xyz;
-
-#ifdef LIGHT_ATTENUATION
- vLightDist = length(lightDir);
-#endif //LIGHT_ATTENUATION
-
- lightDir = normalize(lightDir);
-#endif //LIGHT_DIRECTIONAL
-
- tmp.x = dot(lightDir, t);
- tmp.y = dot(lightDir, b);
- tmp.z = dot(lightDir, n);
- vLightVector = tmp;
-
- tmp.x = dot(position.xyz, t);
- tmp.y = dot(position.xyz, b);
- tmp.z = dot(position.xyz, n);
- vEyeVector = normalize(tmp);
-
- vec3 hv = normalize(normalize(-position.xyz) + lightDir);
- tmp.x = dot(hv, t);
- tmp.y = dot(hv, b);
- tmp.z = dot(hv, n);
- vLightHalfVector = tmp;
-}
-
-void main()
-{
-
- VERTEX_SHADER_POSITION
- VERTEX_SHADER_NORMAL
-
-#ifdef VERTEX_TANGENT_BLEND
- vec3 tangent = aTangent0.xyz * uTangentWeight +
- aTangent1.xyz * (1.0 - uTangentWeight);
-#else
-
-#ifdef VERTEX_TANGENT
- vec3 tangent = aTangent0.xyz;
-#endif //VERTEX_TANGENT
-
-#endif //VERTEX_TANGENT_BLEND
-
- VERTEX_SHADER_TEXCOORD
-
- gl_Position = uMatrixMvp * position;
-
- vertexParallaxOcclusion(position, normal, tangent);
-
- VERTEX_SHADER_SHADOWED
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/phong_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/phong_frag.shd
deleted file mode 100644
index 78a867b96a..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/phong_frag.shd
+++ /dev/null
@@ -1,103 +0,0 @@
-varying vec3 vLightVector;
-varying vec3 vLightHalfVector;
-varying vec3 vNormal;
-
-FRAGMENT_SHADER_USE_TEX_COORD
-FRAGMENT_SHADER_USE_FOG
-FRAGMENT_SHADER_USE_SHADOWS
-FRAGMENT_SHADER_USE_DIFFUSE_TERM
-FRAGMENT_SHADER_USE_SPECULAR_TERM
-FRAGMENT_SHADER_USE_AMBIENT_TERM
-FRAGMENT_SHADER_USE_EMISSION_TERM
-FRAGMENT_SHADER_USE_LIGHT
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-vec4 fragmentPhong()
-{
- vec3 normal = normalize(vNormal);
- vec3 lv = normalize(vLightVector);
- float factor = dot(lv, normal);
- vec4 color;
- vec4 fragcolor;
-
-#ifdef LIGHT_SPOT
- float f = dot(-lv, normalize(uLightSpotDir));
-
- if (f > uLightSpotCutoffCos)
- factor *= pow(f, uLightSpotExp);
- else
- factor = 0.0;
-#endif //LIGHT_SPOT
-
- if (factor > 0.0)
- {
-
- /* Diffuse term. */
-#ifdef DIFFUSE
-
- FRAGMENT_SHADER_TEXTURE_BLEND(DIFFUSE, Diffuse)
-
- fragcolor = uLightDiffuse * color * factor;
-#else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-#endif //DIFFUSE
-
- /* Specular term. */
-#ifdef SPECULAR
- factor = dot(normalize(vLightHalfVector), normal);
- if (factor > 0.0)
- {
- factor = pow(factor, uMaterialShininess);
-
- FRAGMENT_SHADER_TEXTURE_BLEND(SPECULAR, Specular)
-
- fragcolor += uLightSpecular * color * factor;
- }
-#endif
-
- }
- else
- fragcolor = vec4(0.0, 0.0, 0.0, 0.0);
-
-#ifdef SHADOWED
- fragcolor *= shadow;
-#endif //SHADOWED
-
-#ifdef AMBIENT
- FRAGMENT_SHADER_TEXTURE_BLEND(AMBIENT, Ambient)
-
- fragcolor += uLightAmbient * color;
-#endif
-
- /* Light attenuation. */
-#ifdef LIGHT_ATTENUATION
- fragcolor /= dot(uLightAtten, vec3(1.0, vLightDist, vLightDist * vLightDist));
-#endif
-
- /* Emission term. */
-#ifdef EMISSION
-
- FRAGMENT_SHADER_TEXTURE_BLEND(EMISSION, Emission)
- fragcolor += color;
-#endif
- return fragcolor;
-}
-
-void main()
-{
- vec4 color;
-#ifdef SHADOWED
- shadow = pcf(vLightPosition);
-#endif //SHADOWED
-
- color = fragmentPhong();
-
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-#else
- gl_FragColor = color;
-#endif //ALPHA_TEST_ENABLED
-
- FRAGMENT_SHADER_FOG_APPLY
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/phong_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/phong_vert.shd
deleted file mode 100644
index ee9eed9c47..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/phong_vert.shd
+++ /dev/null
@@ -1,51 +0,0 @@
-uniform mat4 uMatrixMvp;
-uniform mat3 uMatrixNormal;
-uniform mat4 uMatrixModelview;
-uniform vec4 uLightPosition;
-varying vec3 vLightVector;
-varying vec3 vLightHalfVector;
-varying vec3 vNormal;
-
-VERTEX_SHADER_USE_SHADOWS
-VERTEX_SHADER_USE_POSITION
-VERTEX_SHADER_USE_NORMALS
-VERTEX_SHADER_USE_TEXCOORD
-VERTEX_SHADER_NEED_TEX_COORD
-VERTEX_SHADER_USE_LIGHT_ATTENUATION
-
-void vertexPhong(vec4 position, vec3 normal)
-{
- normal = uMatrixNormal * normal;
- position = uMatrixModelview * position;
-
-#ifdef NORMALIZE_NORMALS
- normal = normalize(normal);
-#endif //NORMALIZE_NORMALS
-
-#ifdef LIGHT_DIRECTIONAL
- vLightVector = uLightPosition.xyz;
-#else
- vLightVector = uLightPosition.xyz - position.xyz;
-
-#ifdef LIGHT_ATTENUATION
- vLightDist = length(vLightVector);
-#endif //LIGHT_ATTENUATION
-
- vLightVector = normalize(vLightVector);
-#endif //LIGHT_DIRECTIONAL
-
- vLightHalfVector = normalize(normalize(-position.xyz) + vLightVector);
- vNormal = normal;
-}
-
-void main() {
-
- VERTEX_SHADER_POSITION
- VERTEX_SHADER_NORMAL
- VERTEX_SHADER_TEXCOORD
-
- gl_Position = uMatrixMvp * position;
- vertexPhong(position, normal);
-
- VERTEX_SHADER_SHADOWED
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_frag.shd
deleted file mode 100644
index b78a09177b..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_frag.shd
+++ /dev/null
@@ -1,63 +0,0 @@
-//FXAA fragment shader by Timothy Lottes
-//http://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf
-//modified and adapted to www.enlightenment.org by Oleksander Shcherbina
-uniform sampler2D uColorTexture;
-uniform float uFrameSizeH;
-uniform float uFrameSizeW;
-varying vec2 tc0;
-
-vec4 fxaa()
-{
- float _SPAN_MAX_ = 8.0;
- float _REDUCE_MUL_ = (1.0/8.0);
- float _REDUCE_MIN_ = (1.0/128.0);
- vec4 l = vec4(0.299, 0.587, 0.114, 0.0);
- vec2 frameBufSize = vec2(uFrameSizeW, uFrameSizeH);
- vec2 direction;
-
- vec4 colorNW = texture2D(uColorTexture, tc0 + (vec2(-1.0, -1.0)/frameBufSize));
- vec4 colorNE = texture2D(uColorTexture, tc0 + (vec2(1.0, -1.0)/frameBufSize));
- vec4 colorSW = texture2D(uColorTexture, tc0 + (vec2(-1.0, 1.0)/frameBufSize));
- vec4 colorSE = texture2D(uColorTexture, tc0 + (vec2(1.0, 1.0)/frameBufSize));
- vec4 colorM = texture2D(uColorTexture,tc0);
-
- float lNW = dot(colorNW, l);
- float lNE = dot(colorNE, l);
- float lSW = dot(colorSW, l);
- float lSE = dot(colorSE, l);
- float lM = dot(colorM, l);
-
- float lMin = min(lM, min(min(lNW, lNE), min(lSW, lSE)));
- float lMax = max(lM, max(max(lNW, lNE), max(lSW, lSE)));
-
- direction.x = -((lNW + lNE) - (lSW + lSE));
- direction.y = ((lNW + lSW) - (lNE + lSE));
-
- float directionReduce = max(
- (lNW + lNE + lSW + lSE) * (0.25 * _REDUCE_MUL_),
- _REDUCE_MIN_);
-
- float rcpDirMin = 1.0/(min(abs(direction.x), abs(direction.y)) + directionReduce);
-
- direction = min(vec2(_SPAN_MAX_, _SPAN_MAX_),
- max(vec2(-_SPAN_MAX_, -_SPAN_MAX_),
- direction * rcpDirMin)) / frameBufSize;
-
- vec4 colorA = 0.5 * (
- texture2D(uColorTexture, tc0.xy + direction * (1.0/3.0 - 0.5)) +
- texture2D(uColorTexture, tc0.xy + direction * (2.0/3.0 - 0.5)));
- vec4 colorB = colorA * 0.5 + 0.25 * (
- texture2D(uColorTexture, tc0.xy + direction * (- 0.5)) +
- texture2D(uColorTexture, tc0.xy + direction * 0.5));
- float lB = dot(colorB, l);
-
- if((lB < lMin) || (lB > lMax))
- return colorA;
- else
- return colorB;
-}
-
-void main()
-{
- gl_FragColor = fxaa();
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_vert.shd
deleted file mode 100644
index 8464fdcc82..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/post_processing_fxaa_vert.shd
+++ /dev/null
@@ -1,12 +0,0 @@
-uniform mat4 uMatrixMvp;
-
-VERTEX_SHADER_USE_POSITION
-
-varying vec2 tc0;
-void main()
-{
- VERTEX_SHADER_POSITION
-
- gl_Position = uMatrixMvp * position;
- tc0 = position.xy * 0.5 + 0.5;
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/shadow_map_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/shadow_map_frag.shd
deleted file mode 100644
index a66f47acf8..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/shadow_map_frag.shd
+++ /dev/null
@@ -1,60 +0,0 @@
-varying vec4 shadowmapposition;
-#ifdef ALPHA_TEST_ENABLED
-FRAGMENT_SHADER_USE_TEX_COORD
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-#ifdef DIFFUSE
-
-#ifdef DIFFUSE_TEXTURE
-uniform sampler2D uTextureDiffuse0;
-uniform mat3 uTextureMatrixTransformDiffuse0;
-#endif //DIFFUSE_TEXTURE
-
-#ifdef DIFFUSE_TEXTURE_BLEND
-uniform sampler2D uTextureDiffuse1;
-uniform float uTextureDiffuseWeight;
-uniform mat3 uTextureMatrixTransformDiffuse1;
-#endif //DIFFUSE_TEXTURE_BLEND
-
-#endif //DIFFUSE
-
-#endif //ALPHA_TEST_ENABLED
-
-void main() {
-
- vec4 color;
-#ifndef NEED_TEX_COORD
- gl_FragColor = vec4(1);
-#endif
-
-#ifdef ALPHA_TEST_ENABLED
-
-#ifdef DIFFUSE_TEXTURE_BLEND
- vec3 Tex1CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse1;
- color = (texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse)) *
- uTextureDiffuseWeight + texture2D(uTextureDiffuse1, vec2(Tex1CoordDiffuse)) *
- (1.0 - uTextureDiffuseWeight));
-#else
-
-#ifdef DIFFUSE_TEXTURE
- vec3 Tex0CoordDiffuse = vec3(vTexCoord, 1.0) * uTextureMatrixTransformDiffuse0;
- color = texture2D(uTextureDiffuse0, vec2(Tex0CoordDiffuse));
-#else
- color = vec4(1);
-#endif //DIFFUSE_TEXTURE
-
-#endif //DIFFUSE_TEXTURE_BLEND
-
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(color)
-
-#endif //ALPHA_TEST_ENABLED
-
- const vec4 pack = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);
- const vec4 mask = vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);
- vec4 depthcolor;
- float normdist = shadowmapposition.z / shadowmapposition.w;
- normdist = ((normdist + 1.0) / 2.0);
- depthcolor = vec4(fract(pack * normdist));
- depthcolor -= depthcolor.xxyz * mask;
- gl_FragColor = depthcolor;
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/shadow_map_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/shadow_map_vert.shd
deleted file mode 100644
index 66ce4f3d62..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/shadow_map_vert.shd
+++ /dev/null
@@ -1,21 +0,0 @@
-uniform mat4 uMatrixMvp;
-varying vec4 shadowmapposition;
-VERTEX_SHADER_USE_POSITION
-
-#ifdef ALPHA_TEST_ENABLED
-VERTEX_SHADER_USE_TEXCOORD
-VERTEX_SHADER_NEED_TEX_COORD
-#endif //ALPHA_TEST_ENABLED
-
-void main()
-{
-
-VERTEX_SHADER_POSITION
-
-#ifdef ALPHA_TEST_ENABLED
- VERTEX_SHADER_TEXCOORD
-#endif //ALPHA_TEST_ENABLED
-
- gl_Position = uMatrixMvp * position;
- shadowmapposition = gl_Position;
-}
diff --git a/src/modules/evas/engines/gl_common/shader_3d/vertex_color_frag.shd b/src/modules/evas/engines/gl_common/shader_3d/vertex_color_frag.shd
deleted file mode 100644
index 1b85057b66..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/vertex_color_frag.shd
+++ /dev/null
@@ -1,17 +0,0 @@
-varying vec4 vColor;
-
-FRAGMENT_SHADER_USE_FOG
-FRAGMENT_SHADER_USE_ALPHA_TEST_GLES
-
-void main()
-{
-
-#ifdef ALPHA_TEST_ENABLED
- FRAGMENT_SHADER_ALPHA_TEST_GLES_APPLY(vColor)
-#else
- gl_FragColor = vColor;
-#endif //ALPHA_TEST_ENABLED
-
- FRAGMENT_SHADER_FOG_APPLY
-}
-
diff --git a/src/modules/evas/engines/gl_common/shader_3d/vertex_color_vert.shd b/src/modules/evas/engines/gl_common/shader_3d/vertex_color_vert.shd
deleted file mode 100644
index 6daeacfc1f..0000000000
--- a/src/modules/evas/engines/gl_common/shader_3d/vertex_color_vert.shd
+++ /dev/null
@@ -1,24 +0,0 @@
-uniform mat4 uMatrixMvp;
-varying vec4 vColor;
-
-VERTEX_SHADER_USE_POSITION
-VERTEX_SHADER_USE_COLOR
-
-void main()
-{
- VERTEX_SHADER_POSITION
-
-#ifdef VERTEX_COLOR_BLEND
- vec4 color = aColor0 * uColorWeight + aColor1 * (1.0 - uColorWeight);
-#else
-
-#ifdef VERTEX_COLOR
- vec4 color = aColor0;
-#endif //VERTEX_COLOR
-
-#endif //VERTEX_COLOR_BLEND
-
- vColor = color;
- gl_Position = uMatrixMvp * position;
-}
-
diff --git a/src/modules/evas/engines/gl_generic/Evas_Engine_GL_Generic.h b/src/modules/evas/engines/gl_generic/Evas_Engine_GL_Generic.h
index 56a0cf3cad..d48b82199b 100644
--- a/src/modules/evas/engines/gl_generic/Evas_Engine_GL_Generic.h
+++ b/src/modules/evas/engines/gl_generic/Evas_Engine_GL_Generic.h
@@ -44,7 +44,6 @@ struct _Render_Output_GL_Generic
Window_GL_Context_Use window_gl_context_use;
Context_3D *context_3d;
- E3D_Renderer *renderer_3d;
const EVGL_Interface *evgl_funcs;
};
@@ -95,7 +94,6 @@ evas_render_engine_gl_generic_init(Render_Engine_Software_Generic *engine,
re->window_gl_context_use = window_gl_context_use;
re->context_3d = NULL;
- re->renderer_3d = NULL;
re->evgl_funcs = evgl_funcs;
evas_render_engine_software_generic_tile_strict_set(&re->software, EINA_TRUE);
diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c
index e73c486073..c0b0dca539 100644
--- a/src/modules/evas/engines/gl_generic/evas_engine.c
+++ b/src/modules/evas/engines/gl_generic/evas_engine.c
@@ -2378,187 +2378,6 @@ eng_context_dup(void *engine EINA_UNUSED, void *context)
return ctx;
}
-static void
-eng_context_3d_use(void *output)
-{
- Render_Output_GL_Generic *re = output;
-
- if (!re->context_3d)
- re->context_3d = re->window_gl_context_new(re->software.ob);
- if (re->context_3d) re->window_gl_context_use(re->context_3d);
-}
-
-static E3D_Renderer *
-eng_renderer_3d_get(void *output)
-{
- Render_Output_GL_Generic *re = output;
-
- if (!re->renderer_3d)
- re->renderer_3d = e3d_renderer_new();
- return re->renderer_3d;
-}
-
-static void *
-eng_drawable_new(void *engine, int w, int h, int alpha)
-{
- eng_context_3d_use(gl_generic_output_find(engine));
-#ifdef GL_GLES
- return e3d_drawable_new(w, h, alpha, GL_DEPTH_STENCIL_OES, GL_NONE);
-#else
- return e3d_drawable_new(w, h, alpha, GL_DEPTH24_STENCIL8, GL_NONE);
-#endif
-}
-
-static void
-eng_drawable_free(void *engine, void *drawable)
-{
- eng_context_3d_use(gl_generic_output_find(engine));
- e3d_drawable_free(drawable);
-}
-
-static void
-eng_drawable_size_get(void *engine EINA_UNUSED, void *drawable, int *w, int *h)
-{
- e3d_drawable_size_get((E3D_Drawable *)drawable, w, h);
-}
-
-static void *
-eng_image_drawable_set(void *engine, void *image, void *drawable)
-{
- E3D_Drawable *d = drawable;
- Evas_Native_Surface ns;
- int w, h;
-
- ns.type = EVAS_NATIVE_SURFACE_OPENGL;
- ns.data.opengl.texture_id = e3d_drawable_texture_id_get(d);
- ns.data.opengl.framebuffer_id = 0;
- ns.data.opengl.internal_format = e3d_drawable_format_get(d);
- ns.data.opengl.format = e3d_drawable_format_get(d);
- ns.data.opengl.x = 0;
- ns.data.opengl.y = 0;
- e3d_drawable_size_get(d, &w, &h);
- ns.data.opengl.w = w;
- ns.data.opengl.h = h;
-
- return eng_image_native_set(engine, image, &ns);
-}
-
-static void
-eng_drawable_scene_render(void *engine, void *data, void *drawable, void *scene_data)
-{
- Evas_Engine_GL_Context *gl_context;
- E3D_Renderer *renderer = NULL;
-
- gl_context = gl_generic_context_get(data, 1);
- evas_gl_common_context_flush(gl_context);
-
- eng_context_3d_use(gl_generic_output_find(engine));
- renderer = eng_renderer_3d_get(data);
- e3d_drawable_scene_render(drawable, renderer, scene_data);
-}
-
-static int
-eng_drawable_texture_target_id_get(void *drawable)
-{
- return e3d_drawable_texture_id_get((E3D_Drawable *)drawable);
-}
-
-static int
-eng_drawable_texture_color_pick_id_get(void *drawable)
-{
- return e3d_drawable_texture_color_pick_id_get((E3D_Drawable *)drawable);
-}
-
-static void
-eng_drawable_texture_pixel_color_get(GLuint tex EINA_UNUSED, int x, int y,
- Evas_Color *color, void *drawable)
-{
- return e3d_drawable_texture_pixel_color_get(tex, x, y, color, drawable);
-}
-
-static Eina_Bool
-eng_drawable_scene_render_to_texture(void *engine, void *drawable, void *scene_data)
-{
- Evas_Engine_GL_Context *gl_context;
- E3D_Renderer *renderer = NULL;
-
- gl_context = gl_generic_context_get(engine, 1);
- evas_gl_common_context_flush(gl_context);
-
- eng_context_3d_use(gl_generic_output_find(engine));
- renderer = eng_renderer_3d_get(engine);
-
- return e3d_drawable_scene_render_to_texture((E3D_Drawable *)drawable, renderer, scene_data);
-}
-
-static void
-eng_drawable_texture_rendered_pixels_get(GLuint tex EINA_UNUSED, int x, int y,
- int w, int h, void *drawable EINA_UNUSED, void *engine)
-{
- e3d_drawable_texture_rendered_pixels_get(tex, x, y, w, h, drawable, engine);
-}
-static void *
-eng_texture_new(void *engine EINA_UNUSED, Eina_Bool use_atlas)
-{
- return e3d_texture_new(use_atlas);
-}
-
-static void
-eng_texture_free(void *engine EINA_UNUSED, void *texture)
-{
- e3d_texture_free((E3D_Texture *)texture);
-}
-
-static void
-eng_texture_size_get(void *engine EINA_UNUSED, void *texture, int *w, int *h)
-{
- e3d_texture_size_get((E3D_Texture *)texture, w, h);
-}
-
-static void
-eng_texture_wrap_set(void *engine EINA_UNUSED, void *texture,
- Evas_Canvas3D_Wrap_Mode s, Evas_Canvas3D_Wrap_Mode t)
-{
- e3d_texture_wrap_set((E3D_Texture *)texture, s, t);
-}
-
-static void
-eng_texture_wrap_get(void *engine EINA_UNUSED, void *texture,
- Evas_Canvas3D_Wrap_Mode *s, Evas_Canvas3D_Wrap_Mode *t)
-{
- e3d_texture_wrap_get((E3D_Texture *)texture, s, t);
-}
-
-static void
-eng_texture_filter_set(void *engine EINA_UNUSED, void *texture,
- Evas_Canvas3D_Texture_Filter min, Evas_Canvas3D_Texture_Filter mag)
-{
- e3d_texture_filter_set((E3D_Texture *)texture, min, mag);
-}
-
-static void
-eng_texture_filter_get(void *engine EINA_UNUSED, void *texture,
- Evas_Canvas3D_Texture_Filter *min, Evas_Canvas3D_Texture_Filter *mag)
-{
- e3d_texture_filter_get((E3D_Texture *)texture, min, mag);
-}
-
-static void
-eng_texture_image_set(void *engine, void *texture, void *image)
-{
- Evas_Engine_GL_Context *gl_context;
-
- gl_context = gl_generic_context_find(engine, 1);
-
- e3d_texture_set(gl_context, (E3D_Texture *)texture, (Evas_GL_Image *)image);
-}
-
-static void *
-eng_texture_image_get(void *engine EINA_UNUSED, void *texture)
-{
- return e3d_texture_get((E3D_Texture *)texture);
-}
-
static Eina_Bool use_gl = EINA_FALSE;
static Ector_Surface *
@@ -3331,29 +3150,6 @@ module_open(Evas_Module *em)
ORD(context_flush);
- /* 3D features */
- ORD(drawable_new);
- ORD(drawable_free);
- ORD(drawable_size_get);
- ORD(image_drawable_set);
-
- ORD(drawable_scene_render);
-
- ORD(drawable_texture_color_pick_id_get);
- ORD(drawable_texture_target_id_get);
- ORD(drawable_texture_pixel_color_get);
- ORD(drawable_scene_render_to_texture);
- ORD(drawable_texture_rendered_pixels_get);
- ORD(texture_new);
- ORD(texture_free);
- ORD(texture_size_get);
- ORD(texture_wrap_set);
- ORD(texture_wrap_get);
- ORD(texture_filter_set);
- ORD(texture_filter_get);
- ORD(texture_image_set);
- ORD(texture_image_get);
-
ORD(ector_create);
ORD(ector_destroy);
ORD(ector_buffer_wrap);
diff --git a/src/modules/evas/engines/gl_generic/meson.build b/src/modules/evas/engines/gl_generic/meson.build
index 6f7e9dc259..68163b5711 100644
--- a/src/modules/evas/engines/gl_generic/meson.build
+++ b/src/modules/evas/engines/gl_generic/meson.build
@@ -39,11 +39,6 @@ common_engine_src = [
'evas_gl_api_gles1.c',
'evas_gl_api_gles3_def.h',
'evas_gl_api_ext.c',
- 'evas_gl_3d_common.h',
- 'evas_gl_3d_private.h',
- 'evas_gl_3d.c',
- 'evas_gl_3d_renderer.c',
- 'evas_gl_3d_shader.c',
]
foreach src : common_engine_src
diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c
index a56708fc98..0309d620e9 100644
--- a/src/modules/evas/engines/software_generic/evas_engine.c
+++ b/src/modules/evas/engines/software_generic/evas_engine.c
@@ -4794,25 +4794,6 @@ static Evas_Func func =
eng_multi_font_draw,
eng_pixel_alpha_get,
NULL, // eng_context_flush - software doesn't use it
- NULL, // eng_drawable_new
- NULL, // eng_drawable_free
- NULL, // eng_drawable_size_get
- NULL, // eng_image_drawable_set
- NULL, // eng_drawable_scene_render
- NULL, // eng_drawable_scene_render_to_texture
- NULL, // eng_drawable_texture_color_pick_id_get
- NULL, // eng_drawable_texture_target_id_get
- NULL, // eng_drawable_texture_pixel_color_get
- NULL, // eng_drawable_texture_rendered_pixels_get
- NULL, // eng_texture_new
- NULL, // eng_texture_free
- NULL, // eng_texture_size_get
- NULL, // eng_texture_wrap_set
- NULL, // eng_texture_wrap_get
- NULL, // eng_texture_filter_set
- NULL, // eng_texture_filter_get
- NULL, // eng_texture_image_set
- NULL, // eng_texture_image_get
eng_ector_create,
eng_ector_destroy,
eng_ector_buffer_wrap,
diff --git a/src/modules/evas/meson.build b/src/modules/evas/meson.build
index a8ce54ea78..6564da0cc9 100644
--- a/src/modules/evas/meson.build
+++ b/src/modules/evas/meson.build
@@ -2,8 +2,6 @@
subdir('image_savers')
subdir('image_loaders')
-subdir('model_savers')
-subdir('model_loaders')
subdir('vg_savers')
subdir('vg_loaders')
subdir('engines')
diff --git a/src/modules/evas/model_loaders/eet/evas_model_load_eet.c b/src/modules/evas/model_loaders/eet/evas_model_load_eet.c
deleted file mode 100644
index 7ff40b9b25..0000000000
--- a/src/modules/evas/model_loaders/eet/evas_model_load_eet.c
+++ /dev/null
@@ -1,111 +0,0 @@
-#ifdef HAVE_CONFIG_H
- #include "config.h"
-#endif
-
-#include <Eo.h>
-#include <Eet.h>
-#include <stdio.h>
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-static void
-_set_geometry_to_mesh_from_eet_file(Evas_Canvas3D_Mesh *mesh,
- Evas_Canvas3D_Mesh_Eet *eet_mesh)
-{
- float *pos, *nor, *tex;
- int stride_pos, stride_nor, stride_tex, j;
-
- evas_canvas3d_mesh_vertex_count_set(mesh, eet_mesh->geometries->vertices_count);
- evas_canvas3d_mesh_vertex_assembly_set(mesh, EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES);
- evas_canvas3d_mesh_frame_add(mesh, 0);
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, 0, NULL);
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL, 0, NULL);
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD, 0, NULL);
- pos = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION);
- nor = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL);
- tex = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD);
- stride_pos = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION);
- stride_nor = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL);
- stride_tex = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD);
-
- if (stride_pos == 0) stride_pos = sizeof(float) * 3;
- if (stride_nor == 0) stride_nor = sizeof(float) * 3;
- if (stride_tex == 0) stride_tex = sizeof(float) * 2;
-
- /* set data to vertex buffer */
- for (j = 0; j < eet_mesh->geometries->vertices_count; j++)
- {
- float *p, *n, *t;
-
- p = (float *)((char *)pos + stride_pos * j);
- n = (float *)((char *)nor + stride_nor * j);
- t = (float *)((char *)tex + stride_tex * j);
-
- p[0] = eet_mesh->geometries->vertices[j].position.x;
- p[1] = eet_mesh->geometries->vertices[j].position.y;
- p[2] = eet_mesh->geometries->vertices[j].position.z;
-
- n[0] = eet_mesh->geometries->vertices[j].normal.x;
- n[1] = eet_mesh->geometries->vertices[j].normal.y;
- n[2] = eet_mesh->geometries->vertices[j].normal.z;
-
- t[0] = eet_mesh->geometries->vertices[j].texcoord.x;
- t[1] = eet_mesh->geometries->vertices[j].texcoord.y;
- }
-
- /* unmap vertex buffer */
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION);
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL);
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD);
-}
-
-static void
-_set_material_to_mesh_from_eet_file(Evas_Canvas3D_Mesh *mesh,
- Evas_Canvas3D_Mesh_Eet *eet_mesh)
-{
- Evas_Canvas3D_Object_Data *pd = efl_data_scope_get(mesh, EVAS_CANVAS3D_OBJECT_CLASS);
- Eo *material = NULL;
- material = efl_add(EVAS_CANVAS3D_MATERIAL_CLASS, pd->evas);
-
- evas_canvas3d_material_enable_set(material, EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, !!(eet_mesh->materials->colors[0].a > 0));
- evas_canvas3d_material_enable_set(material, EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, !!(eet_mesh->materials->colors[1].a > 0));
- evas_canvas3d_material_enable_set(material, EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, !!(eet_mesh->materials->colors[2].a > 0));
- evas_canvas3d_material_enable_set(material, EVAS_CANVAS3D_MATERIAL_ATTRIB_NORMAL, EINA_TRUE);
- evas_canvas3d_material_color_set(material, EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT, eet_mesh->materials->colors[0].r, eet_mesh->materials->colors[0].g, eet_mesh->materials->colors[0].b, eet_mesh->materials->colors[0].a);
- evas_canvas3d_material_color_set(material, EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE, eet_mesh->materials->colors[1].r, eet_mesh->materials->colors[1].g, eet_mesh->materials->colors[1].b, eet_mesh->materials->colors[1].a);
- evas_canvas3d_material_color_set(material, EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR, eet_mesh->materials->colors[2].r, eet_mesh->materials->colors[2].g, eet_mesh->materials->colors[2].b, eet_mesh->materials->colors[2].a);
- evas_canvas3d_material_shininess_set(material, eet_mesh->materials->shininess);
-
- evas_canvas3d_mesh_frame_material_set(mesh, 0, material);
-}
-
-void
-evas_model_load_file_eet(Evas_Canvas3D_Mesh *mesh, Eina_File *file)
-{
- Eet_File *ef;
- Evas_Canvas3D_File_Eet* eet_file;
- Eet_Data_Descriptor *_file_descriptor;
-
- eet_init();
-
- _file_descriptor = _evas_canvas3d_eet_file_get();
- ef = eet_mmap(file);
- eet_file = eet_data_read(ef,
- _file_descriptor,
- EVAS_CANVAS3D_FILE_CACHE_FILE_ENTRY);
-
- eet_close(ef);
-
- if (!eet_file || !eet_file->mesh || !eet_file->header)
- {
- ERR("Failed to read model file");
- goto on_error;
- }
-
- _set_geometry_to_mesh_from_eet_file(mesh, eet_file->mesh);
- _set_material_to_mesh_from_eet_file(mesh, eet_file->mesh);
-
- on_error:
- _evas_canvas3d_eet_file_free(eet_file);
- eet_shutdown();
-}
diff --git a/src/modules/evas/model_loaders/md2/evas_model_load_md2.c b/src/modules/evas/model_loaders/md2/evas_model_load_md2.c
deleted file mode 100644
index 16dd330813..0000000000
--- a/src/modules/evas/model_loaders/md2/evas_model_load_md2.c
+++ /dev/null
@@ -1,423 +0,0 @@
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-#define PACKED __attribute__((__packed__))
-
-#define MD2_MAGIC_NUMBER 844121161
-#define MD2_VERSION 8
-#define MD2_FRAME_SCALE 256
-
-/* Structures for reading data from file. */
-typedef struct _MD2_Header MD2_Header;
-typedef struct _MD2_Vertex MD2_Vertex;
-typedef struct _MD2_Frame MD2_Frame;
-typedef struct _MD2_Triangle MD2_Triangle;
-typedef struct _MD2_Texcoord MD2_Texcoord;
-
-struct PACKED _MD2_Header
-{
- int magic;
- int version;
-
- int skin_width;
- int skin_height;
-
- int frame_size;
-
- int skins_count;
- int vertex_count;
- int texcoord_count;
- int triangle_count;
- int glcmd_count;
- int frame_count;
-
- int offset_skins;
- int offset_texcoords;
- int offset_triangles;
- int offset_frames;
- int offset_glcmds;
- int offset_end;
-};
-
-struct PACKED _MD2_Vertex
-{
- unsigned char pos[3];
- unsigned char normal_idx;
-};
-
-struct PACKED _MD2_Frame
-{
- float scale[3];
- float trans[3];
- char name[16];
- MD2_Vertex vertices[1];
-};
-
-struct PACKED _MD2_Triangle
-{
- unsigned short vertex_idx[3];
- unsigned short texcoord_idx[3];
-};
-
-struct PACKED _MD2_Texcoord
-{
- short s;
- short t;
-};
-
-typedef struct _MD2_Loader
-{
- char *map;
- int size;
-
- int skin_width;
- int skin_height;
-
- int frame_count;
- int frame_size;
- char *frames;
-
- int vertex_count;
- int triangle_count;
- int texcoord_count;
-
- MD2_Triangle *triangles;
- MD2_Texcoord *texcoords;
-} MD2_Loader;
-
-static const float normal_table[162][3] =
-{
- {-0.525731f, 0.000000f, 0.850651f},
- {-0.442863f, 0.238856f, 0.864188f},
- {-0.295242f, 0.000000f, 0.955423f},
- {-0.309017f, 0.500000f, 0.809017f},
- {-0.162460f, 0.262866f, 0.951056f},
- { 0.000000f, 0.000000f, 1.000000f},
- { 0.000000f, 0.850651f, 0.525731f},
- {-0.147621f, 0.716567f, 0.681718f},
- { 0.147621f, 0.716567f, 0.681718f},
- { 0.000000f, 0.525731f, 0.850651f},
- { 0.309017f, 0.500000f, 0.809017f},
- { 0.525731f, 0.000000f, 0.850651f},
- { 0.295242f, 0.000000f, 0.955423f},
- { 0.442863f, 0.238856f, 0.864188f},
- { 0.162460f, 0.262866f, 0.951056f},
- {-0.681718f, 0.147621f, 0.716567f},
- {-0.809017f, 0.309017f, 0.500000f},
- {-0.587785f, 0.425325f, 0.688191f},
- {-0.850651f, 0.525731f, 0.000000f},
- {-0.864188f, 0.442863f, 0.238856f},
- {-0.716567f, 0.681718f, 0.147621f},
- {-0.688191f, 0.587785f, 0.425325f},
- {-0.500000f, 0.809017f, 0.309017f},
- {-0.238856f, 0.864188f, 0.442863f},
- {-0.425325f, 0.688191f, 0.587785f},
- {-0.716567f, 0.681718f, -0.147621f},
- {-0.500000f, 0.809017f, -0.309017f},
- {-0.525731f, 0.850651f, 0.000000f},
- { 0.000000f, 0.850651f, -0.525731f},
- {-0.238856f, 0.864188f, -0.442863f},
- { 0.000000f, 0.955423f, -0.295242f},
- {-0.262866f, 0.951056f, -0.162460f},
- { 0.000000f, 1.000000f, 0.000000f},
- { 0.000000f, 0.955423f, 0.295242f},
- {-0.262866f, 0.951056f, 0.162460f},
- { 0.238856f, 0.864188f, 0.442863f},
- { 0.262866f, 0.951056f, 0.162460f},
- { 0.500000f, 0.809017f, 0.309017f},
- { 0.238856f, 0.864188f, -0.442863f},
- { 0.262866f, 0.951056f, -0.162460f},
- { 0.500000f, 0.809017f, -0.309017f},
- { 0.850651f, 0.525731f, 0.000000f},
- { 0.716567f, 0.681718f, 0.147621f},
- { 0.716567f, 0.681718f, -0.147621f},
- { 0.525731f, 0.850651f, 0.000000f},
- { 0.425325f, 0.688191f, 0.587785f},
- { 0.864188f, 0.442863f, 0.238856f},
- { 0.688191f, 0.587785f, 0.425325f},
- { 0.809017f, 0.309017f, 0.500000f},
- { 0.681718f, 0.147621f, 0.716567f},
- { 0.587785f, 0.425325f, 0.688191f},
- { 0.955423f, 0.295242f, 0.000000f},
- { 1.000000f, 0.000000f, 0.000000f},
- { 0.951056f, 0.162460f, 0.262866f},
- { 0.850651f, -0.525731f, 0.000000f},
- { 0.955423f, -0.295242f, 0.000000f},
- { 0.864188f, -0.442863f, 0.238856f},
- { 0.951056f, -0.162460f, 0.262866f},
- { 0.809017f, -0.309017f, 0.500000f},
- { 0.681718f, -0.147621f, 0.716567f},
- { 0.850651f, 0.000000f, 0.525731f},
- { 0.864188f, 0.442863f, -0.238856f},
- { 0.809017f, 0.309017f, -0.500000f},
- { 0.951056f, 0.162460f, -0.262866f},
- { 0.525731f, 0.000000f, -0.850651f},
- { 0.681718f, 0.147621f, -0.716567f},
- { 0.681718f, -0.147621f, -0.716567f},
- { 0.850651f, 0.000000f, -0.525731f},
- { 0.809017f, -0.309017f, -0.500000f},
- { 0.864188f, -0.442863f, -0.238856f},
- { 0.951056f, -0.162460f, -0.262866f},
- { 0.147621f, 0.716567f, -0.681718f},
- { 0.309017f, 0.500000f, -0.809017f},
- { 0.425325f, 0.688191f, -0.587785f},
- { 0.442863f, 0.238856f, -0.864188f},
- { 0.587785f, 0.425325f, -0.688191f},
- { 0.688191f, 0.587785f, -0.425325f},
- {-0.147621f, 0.716567f, -0.681718f},
- {-0.309017f, 0.500000f, -0.809017f},
- { 0.000000f, 0.525731f, -0.850651f},
- {-0.525731f, 0.000000f, -0.850651f},
- {-0.442863f, 0.238856f, -0.864188f},
- {-0.295242f, 0.000000f, -0.955423f},
- {-0.162460f, 0.262866f, -0.951056f},
- { 0.000000f, 0.000000f, -1.000000f},
- { 0.295242f, 0.000000f, -0.955423f},
- { 0.162460f, 0.262866f, -0.951056f},
- {-0.442863f, -0.238856f, -0.864188f},
- {-0.309017f, -0.500000f, -0.809017f},
- {-0.162460f, -0.262866f, -0.951056f},
- { 0.000000f, -0.850651f, -0.525731f},
- {-0.147621f, -0.716567f, -0.681718f},
- { 0.147621f, -0.716567f, -0.681718f},
- { 0.000000f, -0.525731f, -0.850651f},
- { 0.309017f, -0.500000f, -0.809017f},
- { 0.442863f, -0.238856f, -0.864188f},
- { 0.162460f, -0.262866f, -0.951056f},
- { 0.238856f, -0.864188f, -0.442863f},
- { 0.500000f, -0.809017f, -0.309017f},
- { 0.425325f, -0.688191f, -0.587785f},
- { 0.716567f, -0.681718f, -0.147621f},
- { 0.688191f, -0.587785f, -0.425325f},
- { 0.587785f, -0.425325f, -0.688191f},
- { 0.000000f, -0.955423f, -0.295242f},
- { 0.000000f, -1.000000f, 0.000000f},
- { 0.262866f, -0.951056f, -0.162460f},
- { 0.000000f, -0.850651f, 0.525731f},
- { 0.000000f, -0.955423f, 0.295242f},
- { 0.238856f, -0.864188f, 0.442863f},
- { 0.262866f, -0.951056f, 0.162460f},
- { 0.500000f, -0.809017f, 0.309017f},
- { 0.716567f, -0.681718f, 0.147621f},
- { 0.525731f, -0.850651f, 0.000000f},
- {-0.238856f, -0.864188f, -0.442863f},
- {-0.500000f, -0.809017f, -0.309017f},
- {-0.262866f, -0.951056f, -0.162460f},
- {-0.850651f, -0.525731f, 0.000000f},
- {-0.716567f, -0.681718f, -0.147621f},
- {-0.716567f, -0.681718f, 0.147621f},
- {-0.525731f, -0.850651f, 0.000000f},
- {-0.500000f, -0.809017f, 0.309017f},
- {-0.238856f, -0.864188f, 0.442863f},
- {-0.262866f, -0.951056f, 0.162460f},
- {-0.864188f, -0.442863f, 0.238856f},
- {-0.809017f, -0.309017f, 0.500000f},
- {-0.688191f, -0.587785f, 0.425325f},
- {-0.681718f, -0.147621f, 0.716567f},
- {-0.442863f, -0.238856f, 0.864188f},
- {-0.587785f, -0.425325f, 0.688191f},
- {-0.309017f, -0.500000f, 0.809017f},
- {-0.147621f, -0.716567f, 0.681718f},
- {-0.425325f, -0.688191f, 0.587785f},
- {-0.162460f, -0.262866f, 0.951056f},
- { 0.442863f, -0.238856f, 0.864188f},
- { 0.162460f, -0.262866f, 0.951056f},
- { 0.309017f, -0.500000f, 0.809017f},
- { 0.147621f, -0.716567f, 0.681718f},
- { 0.000000f, -0.525731f, 0.850651f},
- { 0.425325f, -0.688191f, 0.587785f},
- { 0.587785f, -0.425325f, 0.688191f},
- { 0.688191f, -0.587785f, 0.425325f},
- {-0.955423f, 0.295242f, 0.000000f},
- {-0.951056f, 0.162460f, 0.262866f},
- {-1.000000f, 0.000000f, 0.000000f},
- {-0.850651f, 0.000000f, 0.525731f},
- {-0.955423f, -0.295242f, 0.000000f},
- {-0.951056f, -0.162460f, 0.262866f},
- {-0.864188f, 0.442863f, -0.238856f},
- {-0.951056f, 0.162460f, -0.262866f},
- {-0.809017f, 0.309017f, -0.500000f},
- {-0.864188f, -0.442863f, -0.238856f},
- {-0.951056f, -0.162460f, -0.262866f},
- {-0.809017f, -0.309017f, -0.500000f},
- {-0.681718f, 0.147621f, -0.716567f},
- {-0.681718f, -0.147621f, -0.716567f},
- {-0.850651f, 0.000000f, -0.525731f},
- {-0.688191f, 0.587785f, -0.425325f},
- {-0.587785f, 0.425325f, -0.688191f},
- {-0.425325f, 0.688191f, -0.587785f},
- {-0.425325f, -0.688191f, -0.587785f},
- {-0.587785f, -0.425325f, -0.688191f},
- {-0.688191f, -0.587785f, -0.425325f},
-};
-
-static inline Eina_Bool
-_md2_loader_init(MD2_Loader *loader, Eina_File *file)
-{
- MD2_Header header;
-
- memset(loader, 0x00, sizeof(MD2_Loader));
-
- loader->map = eina_file_map_all(file, EINA_FILE_SEQUENTIAL);
-
- if (loader->map == NULL)
- {
- ERR("Failed to create map from file %s\n", eina_file_filename_get(file));
- goto error;
- }
-
- /* Check file size. We require a file larger than MD2 header size. */
- loader->size = eina_file_size_get(file);
-
- if (loader->size < (int)sizeof(MD2_Header))
- goto error;
-
- /* Read header. */
- memcpy(&header, loader->map, sizeof(MD2_Header));
-
- /* Check identity */
- if (header.magic != MD2_MAGIC_NUMBER || header.version != MD2_VERSION)
- goto error;
-
- /* Check offsets */
- if (header.offset_skins > header.offset_end)
- goto error;
-
- if (header.offset_texcoords > header.offset_end)
- goto error;
-
- if (header.offset_triangles > header.offset_end)
- goto error;
-
- if (header.offset_frames > header.offset_end)
- goto error;
-
- if (header.offset_glcmds > header.offset_end)
- goto error;
-
- if (header.offset_end > loader->size)
- goto error;
-
- loader->skin_width = header.skin_width;
- loader->skin_height = header.skin_height;
-
- loader->frame_count = header.frame_count;
- loader->frame_size = header.frame_size;
- loader->frames = loader->map + header.offset_frames;
-
- loader->vertex_count = header.vertex_count;
- loader->triangle_count = header.triangle_count;
- loader->texcoord_count = header.texcoord_count;
-
- loader->triangles = (MD2_Triangle *)(loader->map + header.offset_triangles);
- loader->texcoords = (MD2_Texcoord *)(loader->map + header.offset_texcoords);
- return EINA_TRUE;
-
-error:
- return EINA_FALSE;
-}
-
-void
-evas_model_load_file_md2(Evas_Canvas3D_Mesh *mesh, Eina_File *file)
-{
- MD2_Loader loader;
- int i, j, k;
- float *pos, *nor, *tex;
- int stride_pos, stride_nor, stride_tex;
- float s_scale, t_scale;
- Evas_Canvas3D_Mesh_Data *pd;
-
- /* Initialize MD2 loader (Open file and read MD2 head ant etc) */
- if (!_md2_loader_init(&loader, file))
- {
- ERR("Failed to initialize MD2 loader.");
- return;
- }
-
- s_scale = 1.0 / (float)(loader.skin_width - 1);
- t_scale = 1.0 / (float)(loader.skin_height - 1);
-
- evas_canvas3d_mesh_vertex_count_set(mesh, loader.triangle_count * 3);
- evas_canvas3d_mesh_vertex_assembly_set(mesh, EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES);
-
- /* Load frames */
- for (i = 0; i < loader.frame_count; i++)
- {
- const MD2_Frame *frame = (const MD2_Frame *)(loader.frames + loader.frame_size * i);
- int f = i * MD2_FRAME_SCALE;
-
- /* Add a mesh frame. */
- evas_canvas3d_mesh_frame_add(mesh, f);
-
- /* Allocate vertex buffer for the frame. */
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, f, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, 0, NULL);
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, f, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL, 0, NULL);
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, f, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD, 0, NULL);
-
- /* Map vertex buffer. */
- pos = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, f, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION);
- nor = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, f, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL);
- tex = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, f, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD);
-
- stride_pos = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, f, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION);
- stride_nor = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, f, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL);
- stride_tex = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, f, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD);
-
- if (stride_pos == 0)
- stride_pos = sizeof(float) * 3;
-
- if (stride_nor == 0)
- stride_nor = sizeof(float) * 3;
-
- if (stride_tex == 0)
- stride_tex = sizeof(float) * 2;
-
- for (j = 0; j < loader.triangle_count; j++)
- {
- const MD2_Triangle *tri = &loader.triangles[j];
-
- for (k = 0; k < 3; k++)
- {
- unsigned int tidx, vidx;
- float *p, *n, *t;
-
- tidx = tri->texcoord_idx[k];
- vidx = tri->vertex_idx[k];
-
- p = (float *)((char *)pos + stride_pos * (j * 3 + k));
- n = (float *)((char *)nor + stride_nor * (j * 3 + k));
- t = (float *)((char *)tex + stride_tex * (j * 3 + k));
-
- p[0] = frame->vertices[vidx].pos[0] * frame->scale[0] + frame->trans[0];
- p[1] = frame->vertices[vidx].pos[1] * frame->scale[1] + frame->trans[1];
- p[2] = frame->vertices[vidx].pos[2] * frame->scale[2] + frame->trans[2];
-
- n[0] = normal_table[frame->vertices[vidx].normal_idx][0];
- n[1] = normal_table[frame->vertices[vidx].normal_idx][1];
- n[2] = normal_table[frame->vertices[vidx].normal_idx][2];
-
- t[0] = loader.texcoords[tidx].s * s_scale;
- t[1] = 1.0 - loader.texcoords[tidx].t * t_scale;
- }
- }
-
- /* Unmap vertex buffer. */
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, f, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION);
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, f, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL);
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, f, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD);
-
- pd = efl_data_scope_get(mesh, EVAS_CANVAS3D_MESH_CLASS);
-
- if (!evas_canvas3d_mesh_aabb_add_to_frame(pd, f, stride_pos))
- {
- ERR("Axis-Aligned Bounding Box wasn't added in frame %d ", f);
- }
- }
-
- if (loader.map)
- {
- eina_file_map_free(file, loader.map);
- loader.map = NULL;
- }
-}
-
diff --git a/src/modules/evas/model_loaders/meson.build b/src/modules/evas/model_loaders/meson.build
deleted file mode 100644
index fd7ce398fb..0000000000
--- a/src/modules/evas/model_loaders/meson.build
+++ /dev/null
@@ -1 +0,0 @@
-#all the loaders here are build statically, the build instructions are in src/lib/evas/meson.build
diff --git a/src/modules/evas/model_loaders/obj/evas_model_load_obj.c b/src/modules/evas/model_loaders/obj/evas_model_load_obj.c
deleted file mode 100644
index bb2dae308a..0000000000
--- a/src/modules/evas/model_loaders/obj/evas_model_load_obj.c
+++ /dev/null
@@ -1,461 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <stdlib.h>
-#include "stdio.h"
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-//TODO Increase of stability (reading .obj file saved with any flags).
-/* set value to position [x][y] to array name which have. */
-#define ARRAY_2D(name, x, y, count_y) (*(name + x * count_y + y))
-
-/* read 3 float values in string and put it in array */
-#define PUT_DATA_TO_ARRAY(array_name, name) \
- sscanf (current,"%f %f %f", \
- &ARRAY_2D(_##array_name##_obj, counts.current_##name##_counter, 0, 3), \
- &ARRAY_2D(_##array_name##_obj, counts.current_##name##_counter, 1, 3), \
- &ARRAY_2D(_##array_name##_obj, counts.current_##name##_counter, 2, 3)); \
- counts.current_##name##_counter++;
-
-#define AFTER_NEXT_SPACE(pointer)\
- do \
- { \
- pointer++; \
- i++; \
- } \
- while (*pointer != ' ');
-
-/* Structures for reading data from file. */
-typedef struct _OBJ_Counts OBJ_Counts;
-
-struct _OBJ_Counts
-{
- int _vertex_counter;
- int _normal_counter;
- int _texture_point_counter;
- int _triangles_counter;
-
- int current_vertex_counter;
- int current_normal_counter;
- int current_texture_point_counter;
- int current_triangles_counter;
-
- Eina_Bool existence_of_normal;
- Eina_Bool existence_of_tex_point;
-};
-
-/* create new counter */
-static inline OBJ_Counts
-_new_count_elements(void)
-{
- OBJ_Counts counts;
-
- counts._vertex_counter = 0;
- counts._normal_counter = 0;
- counts._texture_point_counter = 0;
- counts._triangles_counter = 0;
-
- counts.current_vertex_counter = 0;
- counts.current_normal_counter = 0;
- counts.current_texture_point_counter = 0;
- counts.current_triangles_counter = 0;
-
- counts.existence_of_normal = EINA_FALSE;
- counts.existence_of_tex_point = EINA_FALSE;
- return counts;
-}
-
-/* count triangles in face */
-static void
-_analyze_face_line(char * face_analyzer,
- int * count_of_triangles_in_line)
-{
- int polygon_checker = -2;
- Eina_Bool previous_is_space = EINA_TRUE;
- while ((*face_analyzer != '\n') && (*face_analyzer != '#'))
- {
- if (*face_analyzer == ' ')
- {
- previous_is_space = EINA_TRUE;
- }
- else if ((previous_is_space) && (*face_analyzer >= '0') && (*face_analyzer <= '9'))
- {
- polygon_checker++;
- previous_is_space = EINA_FALSE;
- }
- face_analyzer++;
- }
- *count_of_triangles_in_line = polygon_checker;
-}
-
-static inline OBJ_Counts
-_count_elements(char *map)//count elements of mesh in .obj
-{
- OBJ_Counts counts = _new_count_elements();
-
- char *current = map;
- int polygon_checker = -2;//polygons with n vertices can be represented as n-2 triangles
- Eina_Bool will_check_next_char = EINA_FALSE;
- Eina_Bool first_char_is_v = EINA_FALSE;
- Eina_Bool first_char_is_f = EINA_FALSE;
- Eina_Bool previous_is_space = EINA_FALSE;
-
- long i = 0;
- /* count elements of mesh in .obj */
- for (; *current != '\00'; i++)
- {
- if (will_check_next_char)
- {
- if (first_char_is_v)
- {
- switch (*current)
- {
- case ' ':
- counts._vertex_counter++;
- break;
- case 't':
- counts._texture_point_counter++;
- counts.existence_of_tex_point = EINA_TRUE;
- break;
- case 'n':
- counts._normal_counter++;
- counts.existence_of_normal = EINA_TRUE;
- break;
- default:
- break;
- }
- first_char_is_v = EINA_FALSE;
- will_check_next_char = EINA_FALSE;
- }
- else if (first_char_is_f)
- {
- switch (*current)
- {
- case '\n':
- first_char_is_f = EINA_FALSE;
- counts._triangles_counter += polygon_checker;
- polygon_checker = -2;
- previous_is_space = EINA_FALSE;
- break;
- case '#':
- first_char_is_f = EINA_FALSE;
- counts._triangles_counter += polygon_checker;
- polygon_checker = -2;
- previous_is_space = EINA_FALSE;
- break;
- case ' ':
- previous_is_space = EINA_TRUE;
- break;
- default:
- if ((previous_is_space) && (*current >= '0') && (*current <= '9'))
- {
- polygon_checker++;
- previous_is_space = EINA_FALSE;
- }
- break;
- }
- }
- else
- {
- switch (*current)
- {
- case 'v':
- first_char_is_v = EINA_TRUE;
- break;
- case 'f':
- first_char_is_f = EINA_TRUE;
- break;
- case 'm':
- will_check_next_char = EINA_FALSE;
- break;
- default:
- will_check_next_char = EINA_FALSE;
- break;
- }
- }
- }
- if (*current == '\n')
- {
- will_check_next_char = EINA_TRUE;
- }
- current++;
- }
- return counts;
-}
-
-static void
-_read_point(int *triangles,
- int num,
- OBJ_Counts counts,
- int num_cur,
- char *pointer)
-{
- if (counts.existence_of_normal)
- {
- if (counts.existence_of_tex_point)
- sscanf(pointer, "%i/%i/%i",
- &ARRAY_2D(triangles, num_cur, (num - 1) * 3, 9),
- &ARRAY_2D(triangles, num_cur, (num - 1) * 3 + 1, 9),
- &ARRAY_2D(triangles, num_cur, (num - 1) * 3 + 2, 9));
- else
- sscanf(pointer, "%i//%i",
- &ARRAY_2D(triangles, num_cur, (num - 1) * 3, 9),
- &ARRAY_2D(triangles, num_cur, (num - 1) * 3 + 2, 9));
- }
- else
- {
- if (counts.existence_of_tex_point)
- sscanf(pointer, "%i/%i",
- &ARRAY_2D(triangles, num_cur, (num - 1) * 3, 9),
- &ARRAY_2D(triangles, num_cur, (num - 1) * 3 + 1, 9));
- else
- sscanf(pointer, "%i",
- &ARRAY_2D(triangles, num_cur, (num - 1) * 3, 9));
- }
-}
-
-void
-evas_model_load_file_obj(Evas_Canvas3D_Mesh *mesh, Eina_File *file)
-{
- long i;
- OBJ_Counts counts;//count elements of mesh in .obj
- Eina_Bool will_check_next_char = EINA_FALSE;
- Eina_Bool first_char_is_v = EINA_FALSE;
- Eina_Bool first_char_is_f = EINA_FALSE;
- float *pos = NULL, *nor = NULL, *tex = NULL;
- int stride_pos = 0, stride_nor = 0, stride_tex = 0;
- int j, k, data_for_one_point;
- char *current, *map;
- float *_vertices_obj = NULL, *_normales_obj = NULL, *_tex_coords_obj = NULL;
- int *_triangles;
-
- map = eina_file_map_all(file, EINA_FILE_SEQUENTIAL);
-
- if (map == NULL)
- {
- ERR("Failed to create map from file %s\n", eina_file_filename_get(file));
- return;
- }
-
- counts = _count_elements(map);
- _vertices_obj = malloc(counts._vertex_counter * 3 * sizeof(float));
- data_for_one_point = 1;
- if (counts.existence_of_normal)
- {
- data_for_one_point++;
- _normales_obj = malloc(counts._normal_counter * 3 * sizeof(float));
- }
- if (counts.existence_of_tex_point)
- {
- data_for_one_point++;
- _tex_coords_obj = malloc(counts._texture_point_counter * 3 * sizeof(float));
- }
- _triangles = malloc(counts._triangles_counter * 9 * sizeof(int));
-
- if ((map == NULL) || (_vertices_obj == NULL) || (_triangles == NULL) ||
- ((counts.existence_of_normal) && (_normales_obj == NULL)) ||
- ((counts.existence_of_tex_point) && (_tex_coords_obj == NULL)))
- {
- ERR("Allocate memory is failed.");
- free(_vertices_obj);
- free(_triangles);
- if (counts.existence_of_normal)
- free(_normales_obj);
- if (counts.existence_of_tex_point)
- free(_tex_coords_obj);
- return;
- }
-
- current = map;
- i = 0;
- /* put data to arrays */
- for (; *current != '\00'; i++)
- {
- if (will_check_next_char)
- {
- if (first_char_is_v)
- {
- switch (*current)
- {
- case ' ':
- PUT_DATA_TO_ARRAY(vertices, vertex)
- i--;
- break;
- case 't':
- current++;
- if (counts.existence_of_tex_point)
- {
- PUT_DATA_TO_ARRAY(tex_coords, texture_point)
- }
- break;
- case 'n':
- current++;
- if (counts.existence_of_normal)
- {
- PUT_DATA_TO_ARRAY(normales, normal)
- }
- break;
- default:
- break;
- }
- first_char_is_v = EINA_FALSE;
- will_check_next_char = EINA_FALSE;
- }
- else if (first_char_is_f)
- {
- char *auxiliary_pointer = current;
- int count_of_triangles_in_line;
- int the_first_point = counts.current_triangles_counter;
-
- _analyze_face_line(auxiliary_pointer,
- &count_of_triangles_in_line);
- current++;
- i++;
- _read_point(_triangles, 1, counts,
- the_first_point,
- current);
-
- AFTER_NEXT_SPACE(current)
-
- for (j = 0; j < count_of_triangles_in_line; j++)
- {
- auxiliary_pointer = current;
- if (counts.current_triangles_counter != the_first_point)
- {
- ARRAY_2D(_triangles, counts.current_triangles_counter, 0, 9) = \
- ARRAY_2D(_triangles, the_first_point, 0, 9);
- ARRAY_2D(_triangles, counts.current_triangles_counter, 1, 9) = \
- ARRAY_2D(_triangles, the_first_point, 1, 9);
- ARRAY_2D(_triangles, counts.current_triangles_counter, 2, 9) = \
- ARRAY_2D(_triangles, the_first_point, 2, 9);
- }
-
- _read_point(_triangles, 2, counts,
- counts.current_triangles_counter,
- auxiliary_pointer);
- AFTER_NEXT_SPACE(auxiliary_pointer);
- _read_point(_triangles, 3, counts,
- counts.current_triangles_counter,
- auxiliary_pointer);
- AFTER_NEXT_SPACE(current);
-
- counts.current_triangles_counter++;
- }
- first_char_is_f = EINA_FALSE;
- }
- else
- {
- switch (*current)
- {
- case 'v':
- first_char_is_v = EINA_TRUE;
- break;
- case 'f':
- first_char_is_f = EINA_TRUE;
- break;
- case 'm':
- will_check_next_char = EINA_FALSE;
- break;
- default:
- will_check_next_char = EINA_FALSE;
- break;
- }
- }
- }
- if (*current == '\n')
- {
- will_check_next_char = EINA_TRUE;
- }
- current++;
- }
-
- /* prepare of mesh and take pointers to data which must be read */
- evas_canvas3d_mesh_vertex_count_set(mesh, counts._triangles_counter * 3);
- evas_canvas3d_mesh_vertex_assembly_set(mesh, EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES);
- evas_canvas3d_mesh_frame_add(mesh, 0);
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, 0, NULL);
- pos = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION);
- stride_pos = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION);
-
- if (counts.existence_of_normal)
- {
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL, 0, NULL);
- nor = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL);
- stride_nor = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL);
- }
-
- if (counts.existence_of_tex_point)
- {
- evas_canvas3d_mesh_frame_vertex_data_copy_set(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD, 0, NULL);
- tex = (float *)evas_canvas3d_mesh_frame_vertex_data_map(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD);
- stride_tex = evas_canvas3d_mesh_frame_vertex_stride_get(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD);
- }
-
- if (stride_pos == 0) stride_pos = sizeof(float) * 3;
- if ((counts.existence_of_normal) && (stride_nor == 0))
- stride_nor = sizeof(float) * 3;
- if ((counts.existence_of_tex_point) && (stride_tex == 0))
- stride_tex = sizeof(float) * 2;
-
- for (j = 0; j < counts._triangles_counter; j++)
- {
- for (k = 0; k < 3; k++)
- {
- float *p, *n, *t;
-
- n = NULL;
- t = NULL;
- p = (float *)((char *)pos + stride_pos * (j * 3 + k));
- if (counts.existence_of_normal)
- n = (float *)((char *)nor + stride_nor * (j * 3 + k));
- if (counts.existence_of_tex_point)
- t = (float *)((char *)tex + stride_tex * (j * 3 + k));
-
- p[0] = ARRAY_2D(_vertices_obj, (ARRAY_2D(_triangles, j, (3 * k), 9) - 1), 0, 3);
- p[1] = ARRAY_2D(_vertices_obj, (ARRAY_2D(_triangles, j, (3 * k), 9) - 1), 1, 3);
- p[2] = ARRAY_2D(_vertices_obj, (ARRAY_2D(_triangles, j, (3 * k), 9) - 1), 2, 3);
-
- if (n)
- {
- n[0] = ARRAY_2D(_normales_obj, (ARRAY_2D(_triangles, j, (3 * k + 2), 9) - 1), 0, 3);
- n[1] = ARRAY_2D(_normales_obj, (ARRAY_2D(_triangles, j, (3 * k + 2), 9) - 1), 1, 3);
- n[2] = ARRAY_2D(_normales_obj, (ARRAY_2D(_triangles, j, (3 * k + 2), 9) - 1), 2, 3);
- }
-
- if (t)
- {
- t[0] = ARRAY_2D(_tex_coords_obj, (ARRAY_2D(_triangles, j, (3 * k + 1), 9) - 1), 0, 3);
- t[1] = ARRAY_2D(_tex_coords_obj, (ARRAY_2D(_triangles, j, (3 * k + 1), 9) - 1), 1, 3);
- }
- }
- }
-
- free(_vertices_obj);
- if (counts.existence_of_normal)
- free(_normales_obj);
- if (counts.existence_of_tex_point)
- free(_tex_coords_obj);
- free(_triangles);
-
- /* Unmap vertex buffer. */
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION);
- if (counts.existence_of_normal)
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL);
- if (counts.existence_of_tex_point)
- evas_canvas3d_mesh_frame_vertex_data_unmap(mesh, 0, EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD);
-
- Evas_Canvas3D_Mesh_Data *pd = efl_data_scope_get(mesh, EVAS_CANVAS3D_MESH_CLASS);
-
- if (!evas_canvas3d_mesh_aabb_add_to_frame(pd, 0, stride_pos))
- {
- ERR("Axis-Aligned Bounding Box wasn't added in frame %d ", 0);
- }
-
- if (map)
- {
- eina_file_map_free(file, map);
- map = NULL;
- }
-}
diff --git a/src/modules/evas/model_loaders/ply/evas_model_load_ply.c b/src/modules/evas/model_loaders/ply/evas_model_load_ply.c
deleted file mode 100644
index 20a9f69e68..0000000000
--- a/src/modules/evas/model_loaders/ply/evas_model_load_ply.c
+++ /dev/null
@@ -1,252 +0,0 @@
-#include "evas_model_load_save_common.h"
-
-static inline char *
-_to_next_line(char *current)
-{
- while (*current != '\n') current++;
- current++;
- return current;
-}
-
-static inline char *
-_to_begin_of_line(char *current)
-{
- while (*current != '\n') current--;
- current++;
- return current;
-}
-
-static inline char *
-_to_next_number(char *current, int count)
-{
- int i;
- for (i = 0; i < count; i++)
- {
- while (*current != ' ') current++;
- current++;
- }
- return current;
-}
-
-static inline char *
-_read_data(float *array, int place, int count, char *current, float divider)
-{
- int i;
- for (i = 0; i < count; i++)
- {
- sscanf (current,"%f", &ARRAY_2D(array, place, i, count));
- ARRAY_2D(array, place, i, count) /= divider;
- current = _to_next_number(current, 1);
- }
- return current;
-}
-
-static inline Eina_Bool
-_read_ply_header(char *map, Evas_Model_Load_Save_Header *header, const char *filename)
-{
- Eina_Bool reading_vertices = EINA_TRUE, check_next_char = EINA_FALSE;
- int vertex_lines, triangles = 0, vertices_in_current_face = 0;
- char **helping_pointer;
- char *current;
-
- helping_pointer = eina_str_split(map, "vertex ", 0);
-
- if (helping_pointer == NULL)
- {
- ERR("PLY file doesn't contain the required keyword 'vertex': %s", filename);
- return EINA_FALSE;
- }
-
- sscanf(helping_pointer[1], "%d", &header->vertices_count);
-
- free(helping_pointer[0]);
- free(helping_pointer);
-
- helping_pointer = eina_str_split(map, "end_header\n", 0);
-
- if (helping_pointer == NULL)
- {
- ERR("PLY file doesn't contain the required keyword 'end_header': %s", filename);
- return EINA_FALSE;
- }
-
- current = helping_pointer[1];
-
- vertex_lines = header->vertices_count;
- while (*current != '\0')
- {
- if (vertex_lines == 1)
- reading_vertices = EINA_FALSE;
- if (*current == '\n')
- {
- if (reading_vertices)
- vertex_lines--;
- else
- check_next_char = EINA_TRUE;
- }
- if (check_next_char)
- {
- if ((*current <= '9') && (*current >= '0'))
- vertices_in_current_face = (vertices_in_current_face * 10) + (*current - '0');
- else if (*current >= ' ')
- {
- triangles += (vertices_in_current_face - 2);
- vertices_in_current_face = 0;
- check_next_char = EINA_FALSE;
- }
- }
- current++;
- }
-
- header->indices_count = 3 * triangles;
-
- free(helping_pointer[0]);
- free(helping_pointer);
-
- /* analyse flags used when file was saved in blender */
- helping_pointer = eina_str_split(map, "property float ", 0);
-
- if (helping_pointer == NULL)
- {
- ERR("PLY file doesn't contain any float properties: %s", filename);
- return EINA_FALSE;
- }
-
- if ((helping_pointer[1] != NULL) && (*helping_pointer[1] == 'x') &&
- (helping_pointer[2] != NULL) && (*helping_pointer[2] == 'y') &&
- (helping_pointer[3] != NULL) && (*helping_pointer[3] == 'z'))
- header->existence_of_positions = EINA_TRUE;
- else
- {
- ERR("PLY file doesn't start with x,y,z float fields, they are required: %s", filename);
- free(helping_pointer[0]);
- free(helping_pointer);
- return EINA_FALSE;
- }
-
- if ((helping_pointer[4] != NULL) && (*helping_pointer[4] == 'n') &&
- (helping_pointer[5] != NULL) && (*helping_pointer[5] == 'n') &&
- (helping_pointer[6] != NULL) && (*helping_pointer[6] == 'n'))
- header->existence_of_normals = EINA_TRUE;
-
- if ((header->existence_of_normals &&
- ((helping_pointer[7] != NULL) && (*helping_pointer[7] == 's') &&
- (helping_pointer[8] != NULL) && (*helping_pointer[8] == 't'))) ||
- (!header->existence_of_normals &&
- ((helping_pointer[4] != NULL) && (*helping_pointer[4] == 's') &&
- (helping_pointer[5] != NULL) && (*helping_pointer[5] == 't'))))
- header->existence_of_tex_coords = EINA_TRUE;
-
- free(helping_pointer[0]);
- free(helping_pointer);
-
- helping_pointer = eina_str_split(map, "property uchar ", 0);
-
- if (helping_pointer == NULL)
- {
- ERR("PLY file doesn't contain any uchar properties: %s", filename);
- return EINA_FALSE;
- }
-
- if ((helping_pointer[1] != NULL) && (*helping_pointer[1] == 'r') &&
- (helping_pointer[2] != NULL) && (*helping_pointer[2] == 'g') &&
- (helping_pointer[3] != NULL) && (*helping_pointer[3] == 'b'))
- header->existence_of_colors = EINA_TRUE;
-
- free(helping_pointer[0]);
- free(helping_pointer);
-
- return EINA_TRUE;
-}
-
-static inline void
-_read_ply_vertex_data(Evas_Model_Load_Save_Header header,
- char **current,
- Evas_Model_Load_Save_Data data)
-{
- int i;
- for (i = 0; i < header.vertices_count; i++)
- {
- *current = _read_data(data.positions, i, 3, *current, 1.0);
- if (header.existence_of_normals)
- *current = _read_data(data.normals, i, 3, *current, 1.0);
- if (header.existence_of_tex_coords)
- *current = _read_data(data.tex_coords, i, 2, *current, 1.0);
- if (header.existence_of_colors)
- *current = _read_data(data.colors, i, 3, *current, 255.0);
- *current = _to_begin_of_line(*current);
- }
-}
-
-static inline void
-_read_ply_indices_data(Evas_Model_Load_Save_Header header,
- char **current,
- Evas_Model_Load_Save_Data data)
-{
- int i, j, count_of_triangles_in_line = 0;
-
- for (i = 0; i < header.indices_count;)
- {
- sscanf (*current,"%d", &count_of_triangles_in_line);
- count_of_triangles_in_line -= 2;
- *current = _to_next_number(*current, 1);
-
- sscanf (*current,"%hu", data.indices + i);
-
- for (j = 0; j < count_of_triangles_in_line; j++)
- {
- if (j > 0)
- data.indices[i] = data.indices[i - 3];
- *current = _to_next_number(*current, 1);
- sscanf (*current,"%hu %hu",
- data.indices + i + 1,
- data.indices + i + 2);
- i+=3;
- }
- *current = _to_next_line(*current);
- }
-}
-
-void
-evas_model_load_file_ply(Evas_Canvas3D_Mesh *mesh, Eina_File *file)
-{
- char *current = NULL, *map = NULL, **split_of_map = NULL;
- Evas_Model_Load_Save_Header header = { 0, 0, 0, 0, 0, 0 };
- Evas_Model_Load_Save_Data data = { NULL, NULL, NULL, NULL, NULL };
- Evas_Model_Load_Save_Stride stride = { 0, 0, 0, 0 };
-
- map = eina_file_map_all(file, EINA_FILE_SEQUENTIAL);
- if (map == NULL)
- {
- ERR("Failed to create map from file %s\n", eina_file_filename_get(file));
- return;
- }
-
- header = evas_model_load_save_header_new();
- if(!_read_ply_header(map, &header, eina_file_filename_get(file))) return;
-
- if (!evas_model_load_allocate_data_due_to_header(header, &data))
- {
- ERR("Memory allocation is failed.");
- return;
- }
-
- split_of_map = eina_str_split(map, "end_header\n", 0);
- current = split_of_map[1];
- _read_ply_vertex_data(header, &current, data);
- _read_ply_indices_data(header, &current, data);
- evas_model_load_vertex_data_to_mesh(mesh, header, data, &stride);
- evas_model_load_indices_data_to_mesh(mesh, header, data);
- evas_model_load_vertex_data_unmap(mesh, 0, header);
- evas_model_load_aabb_add_to_frame(mesh, 0, stride);
-
- free(split_of_map[0]);
- free(split_of_map);
- if (map)
- {
- eina_file_map_free(file, map);
- map = NULL;
- }
-
- evas_model_load_save_data_free(header, &data);
-}
diff --git a/src/modules/evas/model_savers/eet/evas_model_save_eet.c b/src/modules/evas/model_savers/eet/evas_model_save_eet.c
deleted file mode 100644
index d659e411f9..0000000000
--- a/src/modules/evas/model_savers/eet/evas_model_save_eet.c
+++ /dev/null
@@ -1,205 +0,0 @@
-#ifdef HAVE_CONFIG_H
- #include "config.h"
-#endif
-
-#include <Eet.h>
-#include <stdio.h>
-#include "evas_common_private.h"
-#include "evas_private.h"
-
-#define COMPONENT_OF_DEFAULT_GREY_COLOR 0.3
-#define TRANSPARENCY_OF_DEFAULT_GREY_COLOR 0.5
-
-static void
-_set_geometry_to_eet_file_from_mesh(Evas_Canvas3D_Mesh_Data *mesh,
- Evas_Canvas3D_Mesh_Eet *eet_mesh,
- Evas_Canvas3D_Header_Eet *eet_header,
- Evas_Canvas3D_Mesh_Frame *f)
-{
- Evas_Canvas3D_Vertex_Buffer *vb;
- int i;
- float *src;
- Evas_Canvas3D_Vertex_Eet *vertices =
- calloc(1, sizeof(Evas_Canvas3D_Vertex_Eet) * mesh->vertex_count);
- Evas_Canvas3D_Geometry_Eet *geometry =
- calloc(1, sizeof(Evas_Canvas3D_Geometry_Eet));
- int *geometries = malloc(sizeof(int));
-
- if ((vertices == NULL) || (geometry == NULL))
- {
- ERR("Allocating of memory is failed.");
- free(vertices);
- free(geometry);
- free(geometries);
- return;
- }
-
- geometry->vertices_count = mesh->vertex_count;
- geometries[0] = mesh->vertex_count;
-
-#define SAVE_GEOMETRICS(a, component, command_for_z_component)\
- vb = &f->vertices[a];\
- if (vb->data == NULL)\
- {\
- ERR("Failed to read geometrics for '%s'.", #component);\
- }\
- else\
- {\
- src = (float *)vb->data;\
- for (i = 0; i < mesh->vertex_count; i++)\
- {\
- vertices[i].component.x = src[0];\
- vertices[i].component.y = src[1];\
- command_for_z_component\
- src += f->vertices[a].element_count;\
- }\
- }
- geometry->vertices = vertices;
- SAVE_GEOMETRICS(EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, position, vertices[i].position.z = src[2];)
- SAVE_GEOMETRICS(EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL, normal, vertices[i].normal.z = src[2];)
- SAVE_GEOMETRICS(EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD, texcoord,)
-#undef SAVE_GEOMETRICS
-
- eet_mesh->geometries = geometry;
- eet_header->geometries = geometries;
-}
-
-static void
-_set_material_to_eet_file_from_mesh(Evas_Canvas3D_Mesh_Eet *eet_mesh,
- Evas_Canvas3D_Header_Eet *eet_header,
- Evas_Canvas3D_Mesh_Frame *f)
-{
- int i;
- Evas_Canvas3D_Material_Data *material =
- efl_data_scope_get(f->material, EVAS_CANVAS3D_MATERIAL_CLASS);
- Evas_Canvas3D_Material_Eet *saved_materials =
- malloc(sizeof(Evas_Canvas3D_Material_Eet));
- Evas_Canvas3D_Color_Eet *saved_colors =
- malloc(sizeof(Evas_Canvas3D_Color_Eet) * EVAS_CANVAS3D_MATERIAL_ATTRIB_COUNT);
- int *materials = malloc(sizeof(int));
-
- if ((saved_materials == NULL) || (saved_colors == NULL))
- {
- ERR("Allocating of memory is failed.");
- free(material);
- free(saved_materials);
- free(saved_colors);
- free(materials);
- return;
- }
-
- if (material == NULL)
- {
- ERR("Material is set to the default values, because no custom material "
- "was saved earlier by evas_3d_mesh_save.");
-
- for (i = 0; i < 5; i++)
- {
- saved_colors[i].r = COMPONENT_OF_DEFAULT_GREY_COLOR;
- saved_colors[i].g = COMPONENT_OF_DEFAULT_GREY_COLOR;
- saved_colors[i].b = COMPONENT_OF_DEFAULT_GREY_COLOR;
- saved_colors[i].a = TRANSPARENCY_OF_DEFAULT_GREY_COLOR;
- }
-
- saved_materials->shininess = 50;
- }
- else
- {
-
- for (i = 0; i < 5; i++)
- {
- saved_colors[i].r = material->attribs[i].color.r;
- saved_colors[i].g = material->attribs[i].color.g;
- saved_colors[i].b = material->attribs[i].color.b;
- saved_colors[i].a = material->attribs[i].color.a;
- }
-
- saved_materials->shininess = material->shininess;
- }
-
- saved_materials->colors_count = EVAS_CANVAS3D_MATERIAL_ATTRIB_COUNT;
- materials[0] = EVAS_CANVAS3D_MATERIAL_ATTRIB_COUNT;
- saved_materials->id = 1;
- saved_materials->colors = saved_colors;
- eet_mesh->materials = saved_materials;
- eet_header->materials = materials;
-}
-
-static void
-_set_frame_to_eet_file_from_mesh(Evas_Canvas3D_Mesh_Eet *eet_mesh)
-{
- eet_mesh->frames = malloc(sizeof(Evas_Canvas3D_Frame_Eet));
-
- if (eet_mesh->frames == NULL)
- {
- ERR("Allocating of memory is failed.");
- return;
- }
-
- eet_mesh->frames->id = 1;
- eet_mesh->frames->geometry_id = 1;
- eet_mesh->frames->material_id = 1;
-}
-
-void
-evas_model_save_file_eet(const Evas_Canvas3D_Mesh *mesh,
- const char *file,
- Evas_Canvas3D_Mesh_Frame *f)
-{
- Evas_Canvas3D_Mesh_Data *pd = efl_data_scope_get(mesh, EVAS_CANVAS3D_MESH_CLASS);
- Eet_File *ef;
- Evas_Canvas3D_Mesh_Eet* eet_mesh = malloc(sizeof(Evas_Canvas3D_Mesh_Eet));
- Evas_Canvas3D_Header_Eet* eet_header = malloc(sizeof(Evas_Canvas3D_Header_Eet));
- Eet_Data_Descriptor *_file_descriptor;
- Evas_Canvas3D_File_Eet *eet_file;
-
- eet_init();
-
- ef = eet_open(file, EET_FILE_MODE_WRITE);
- if (ef == NULL)
- {
- ERR("Opening of file is failed.");
- free(eet_mesh);
- free(eet_header);
- eet_shutdown();
- return;
- }
-
- _file_descriptor = _evas_canvas3d_eet_file_get();
-
- eet_file = _evas_canvas3d_eet_file_new();
-
- if (!eet_file)
- {
- free(eet_mesh);
- free(eet_header);
- eet_shutdown();
- return;
- }
-
- eet_mesh->materials_count = 1;
- eet_header->materials_count = 1;
- eet_mesh->frames_count = 1;
- eet_header->frames = 1;
- eet_mesh->geometries_count = 1;
- eet_header->geometries_count = 1;
- eet_header->version = 1;
-
- _set_geometry_to_eet_file_from_mesh(pd, eet_mesh, eet_header, f);
- _set_material_to_eet_file_from_mesh(eet_mesh, eet_header, f);
- _set_frame_to_eet_file_from_mesh(eet_mesh);
-
- eet_file->mesh = eet_mesh;
- eet_file->header = eet_header;
-
- eet_data_write(ef,
- _file_descriptor,
- EVAS_CANVAS3D_FILE_CACHE_FILE_ENTRY,
- eet_file,
- EINA_TRUE);
- eet_close(ef);
-
- _evas_canvas3d_eet_file_free(eet_file);
-
- eet_shutdown();
-}
diff --git a/src/modules/evas/model_savers/meson.build b/src/modules/evas/model_savers/meson.build
deleted file mode 100644
index fd7ce398fb..0000000000
--- a/src/modules/evas/model_savers/meson.build
+++ /dev/null
@@ -1 +0,0 @@
-#all the loaders here are build statically, the build instructions are in src/lib/evas/meson.build
diff --git a/src/modules/evas/model_savers/obj/evas_model_save_obj.c b/src/modules/evas/model_savers/obj/evas_model_save_obj.c
deleted file mode 100644
index f8b5491b2c..0000000000
--- a/src/modules/evas/model_savers/obj/evas_model_save_obj.c
+++ /dev/null
@@ -1,241 +0,0 @@
-#include "evas_model_load_save_common.h"
-
-static unsigned short*
-_init_obj_indices_data(Evas_Model_Load_Save_Header header)
-{
- unsigned short *i_data;
- int i = 0;
-
- if (header.existence_of_positions) i++;
- if (header.existence_of_normals) i++;
- if (header.existence_of_tex_coords) i++;
- i_data = calloc(header.vertices_count * i, sizeof(unsigned short));
-
- return i_data;
-}
-
-static void
-_vertex_data_free_cb(void *data)
-{
- eina_stringshare_del(data);
-}
-
-static void
-_write_point(FILE *obj_file,
- int num,
- int num_of_point,
- Evas_Model_Load_Save_Header header,
- unsigned short *i_data)
-{
- if (num_of_point == 0)
- fprintf(obj_file, "f ");
-
- if (header.existence_of_normals)
- {
- if (header.existence_of_tex_coords)
- fprintf(obj_file, "%hu/%hu/%hu ", i_data[num],
- i_data[num + header.vertices_count],
- i_data[num + 2 * header.vertices_count]);
- else
- fprintf(obj_file, "%hu//%hu ", i_data[num],
- i_data[num + header.vertices_count]);
- }
- else
- {
- if (header.existence_of_tex_coords)
- fprintf(obj_file, "%hu/%hu ", i_data[num],
- i_data[num + header.vertices_count]);
- else
- fprintf(obj_file, "%hu ", i_data[num]);
- }
-
- if (num_of_point == 2)
- fprintf(obj_file, "\n");
-}
-
-static inline Eina_Bool
-_write_obj_header(FILE *file,
- const char *_mtl_file_name)
-{
- time_t current_time;
- char* c_time_string;
-
- current_time = time(NULL);
-
- if (current_time == ((time_t)-1))
- {
- ERR("Failure to compute the current time.");
- return EINA_FALSE;
- }
-
- c_time_string = ctime(&current_time);
-
- if (c_time_string == NULL)
- {
- ERR("Failure to convert the current time.");
- return EINA_FALSE;
- }
-
- fprintf(file, "# Evas_Canvas3D saver OBJ v0.03 \n");
- fprintf(file, "# Current time is %s \n", c_time_string);
- fprintf(file, "mtllib %s \n\n", _mtl_file_name);
-
- return EINA_TRUE;
-}
-
-static inline void
-_write_obj_vertex_data(FILE *file,
- Evas_Model_Load_Save_Header header,
- Evas_Model_Load_Save_Data data,
- unsigned short *i_data)
-{
- int i, j;
- int v = -1;
- Eina_Stringshare *str, *cur_str, *cur_index;
- unsigned short cur_hu;
-
- Eina_Hash *vb;
-#define WRITE_OBJ_VERTEX_DATA(name, num, format) \
- if (header.existence_of_##name) \
- { \
- cur_hu = 0; \
- v++; \
- vb = eina_hash_string_superfast_new(_vertex_data_free_cb); \
- for (i = 0; i < header.vertices_count; i++) \
- { \
- str = eina_stringshare_printf(" "); \
- for (j = 0; j < num; j++) \
- str = eina_stringshare_printf("%s %f", str, \
- data.name[i * num + j]); \
- cur_index = eina_hash_find(vb, str); \
- if (!cur_index) \
- { \
- cur_hu++; \
- cur_str = eina_stringshare_printf("%hu", cur_hu); \
- eina_hash_add(vb, str, cur_str); \
- i_data[v * header.vertices_count + i] = cur_hu; \
- fprintf(file, "%s%s\n", format, str); \
- } \
- else sscanf(cur_index, "%hu", \
- i_data + v * header.vertices_count + i); \
- } \
- eina_hash_free(vb); \
- }
- WRITE_OBJ_VERTEX_DATA(positions, 3, "v")
- WRITE_OBJ_VERTEX_DATA(tex_coords, 2, "vt")
- WRITE_OBJ_VERTEX_DATA(normals, 3, "vn")
-#undef WRITE_OBJ_VERTEX_DATA
-}
-
-static inline void
-_write_obj_index_data(FILE *file,
- Evas_Model_Load_Save_Header header,
- Evas_Model_Load_Save_Data data,
- unsigned short *i_data)
-{
- int i;
- int ic;
- ic = header.indices_count ? header.indices_count : header.vertices_count;
- for (i = 0; i < ic; i++)
- _write_point(file, data.indices[i], i % 3, header, i_data);
-}
-
-static void
-_save_mesh(Evas_Canvas3D_Mesh_Data *pd,
- const char *_obj_file_name,
- const char *_mtl_file_name,
- Evas_Canvas3D_Mesh_Frame *f)
-{
- Evas_Model_Load_Save_Header header;
- Evas_Model_Load_Save_Data data;
- unsigned short *index_data;
-
- if (!evas_model_save_header_from_mesh(pd, f, &header)) return;
-
- index_data = _init_obj_indices_data(header);
- if (index_data == NULL)
- {
- ERR("Allocation of index data is failed.");
- return;
- }
-
- evas_model_save_data_from_mesh(pd, f, header, &data);
-
- FILE * _obj_file = fopen(_obj_file_name, "w+");
- if (!_obj_file)
- {
- ERR("File open '%s' for save failed", _obj_file_name);
- free(index_data);
- return;
- }
-
- if (!_write_obj_header(_obj_file, _mtl_file_name))
- {
- fclose(_obj_file);
- free(index_data);
- return;
- }
-
- _write_obj_vertex_data(_obj_file, header, data, index_data);
- fprintf(_obj_file,"usemtl Material\n s off\n");
- _write_obj_index_data(_obj_file, header, data, index_data);
- fclose(_obj_file);
- free(index_data);
- free(data.indices);
-}
-
-static void
-_save_material(Evas_Canvas3D_Mesh_Data *pd EINA_UNUSED,
- const char *_mtl_file_name,
- Evas_Canvas3D_Material_Data *mat)
-{
- FILE * _mtl_file = fopen(_mtl_file_name, "w+");
- if (!_mtl_file)
- {
- ERR("File open '%s' for save failed", _mtl_file_name);
- return;
- }
- fprintf(_mtl_file, "# Evas_Canvas3D saver OBJ v0.03 \n");//_mtl_file created in macro
- fprintf(_mtl_file, "# Material Count: 1 \n\n");
- fprintf(_mtl_file, "newmtl Material \n");
- fprintf(_mtl_file, "Ns 1.000000 \n");//exp factor for specular highlight
- fprintf(_mtl_file, "Ka %.6f %.6f %.6f \n",
- (float)mat->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT].color.r,
- (float)mat->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT].color.g,
- (float)mat->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_AMBIENT].color.b);
- fprintf(_mtl_file, "Kd %.6f %.6f %.6f \n",
- (float)mat->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE].color.r,
- (float)mat->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE].color.g,
- (float)mat->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_DIFFUSE].color.b);
- fprintf(_mtl_file, "Ks %.6f %.6f %.6f \n",
- (float)mat->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR].color.r,
- (float)mat->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR].color.g,
- (float)mat->attribs[EVAS_CANVAS3D_MATERIAL_ATTRIB_SPECULAR].color.b);
- fprintf(_mtl_file, "Ni 1.000000 \n");//optical density
- fprintf(_mtl_file, "d 1.000000 \n");//a factor d of 1.0 is fully opaque material
- fprintf(_mtl_file, "illum 2 \n");//illumination properties
-
- fclose(_mtl_file);
-}
-
-void
-evas_model_save_file_obj(const Evas_Canvas3D_Mesh *mesh,
- const char *_obj_file_name,
- Evas_Canvas3D_Mesh_Frame *f)
-{
- int len;
- char *_mtl_file_name, *_without_extention;
- Evas_Canvas3D_Material_Data *mat;
-
- len = strlen(_obj_file_name);
- _without_extention = alloca(len - 3);
- _mtl_file_name = alloca(len + 1);
- eina_strlcpy(_without_extention, _obj_file_name, len - 3);
- eina_str_join(_mtl_file_name, len + 1, '.', _without_extention, "mtl");
-
- Evas_Canvas3D_Mesh_Data *pd = efl_data_scope_get(mesh, EVAS_CANVAS3D_MESH_CLASS);
- mat = efl_data_scope_get(f->material, EVAS_CANVAS3D_MATERIAL_CLASS);
-
- if (mat != NULL) _save_material(pd, _mtl_file_name, mat);
- _save_mesh(pd, _obj_file_name, _mtl_file_name, f);
-}
diff --git a/src/modules/evas/model_savers/ply/evas_model_save_ply.c b/src/modules/evas/model_savers/ply/evas_model_save_ply.c
deleted file mode 100644
index a805baaa05..0000000000
--- a/src/modules/evas/model_savers/ply/evas_model_save_ply.c
+++ /dev/null
@@ -1,91 +0,0 @@
-#include "evas_model_load_save_common.h"
-
-static inline void
-_write_ply_header(FILE *file, Evas_Model_Load_Save_Header header)
-{
- const char *pf = "property float", *puc = "property uchar";
- fprintf(file, "ply\n" \
- "format ascii 1.0\n" \
- "comment Created by EFL evas_canvas3d_mesh_saver_ply.c version 2 " \
- "(sub 0) - www.enlightenment.org, source file: ''\n");
- fprintf(file, "element vertex %d\n", header.vertices_count);
-
- if (header.existence_of_positions)
- fprintf(file, "%s x\n%s y\n%s z\n", pf, pf, pf);
- if (header.existence_of_normals)
- fprintf(file, "%s nx\n%s ny\n%s nz\n", pf, pf, pf);
- if (header.existence_of_tex_coords)
- fprintf(file, "%s s\n%s t\n", pf, pf);
- if (header.existence_of_colors)
- fprintf(file, "%s red\n%s green\n%s blue\n", puc, puc, puc);
-
- fprintf(file, "element face %d\n" \
- "property list uchar uint vertex_indices\n" \
- "end_header\n", header.indices_count / 3);
-}
-
-static inline void
-_write_ply_vertex_data(FILE *file,
- Evas_Model_Load_Save_Header header,
- Evas_Model_Load_Save_Data data)
-{
- int i, j;
- for (i = 0; i < header.vertices_count; i++)
- {
-#define WRITE_PLY_VERTEX_DATA(name, num)\
- if (header.existence_of_##name)\
- for (j = 0; j < num; j++, data.name++)\
- fprintf(file, "%f ", data.name[0]);
- WRITE_PLY_VERTEX_DATA(positions, 3)
- WRITE_PLY_VERTEX_DATA(normals, 3)
- WRITE_PLY_VERTEX_DATA(tex_coords, 2)
-#undef WRITE_PLY_VERTEX_DATA
-
- if (header.existence_of_colors)
- {
- for (j = 0; j < 3; j++, data.colors++)
- fprintf(file, "%.0f ", round(data.colors[0] * 255));
- data.colors++;
- }
- fprintf(file, "\n");
- }
-}
-
-static inline void
-_write_ply_index_data(FILE *file,
- Evas_Model_Load_Save_Header header,
- Evas_Model_Load_Save_Data data)
-{
- int i, triangles_count = header.indices_count / 3;
- for (i = 0; i < triangles_count; i++, data.indices += 3)
- fprintf(file, "3 %d %d %d\n", data.indices[0],
- data.indices[1],
- data.indices[2]);
-}
-
-void
-evas_model_save_file_ply(const Evas_Canvas3D_Mesh *mesh,
- const char *file,
- Evas_Canvas3D_Mesh_Frame *f)
-{
- Evas_Model_Load_Save_Header header;
- Evas_Model_Load_Save_Data data;
-
- Evas_Canvas3D_Mesh_Data *pd = efl_data_scope_get(mesh, EVAS_CANVAS3D_MESH_CLASS);
- if (!evas_model_save_header_from_mesh(pd, f, &header)) return;
- evas_model_save_data_from_mesh(pd, f, header, &data);
-
- FILE *_ply_file = fopen(file, "w+");
- if (!_ply_file)
- {
- ERR("File open '%s' for save failed", file);
- return;
- }
-
- _write_ply_header(_ply_file, header);
- _write_ply_vertex_data(_ply_file, header, data);
- _write_ply_index_data(_ply_file, header, data);
-
- free(data.indices);
- fclose(_ply_file);
-}
diff --git a/src/tests/evas/evas_suite.c b/src/tests/evas/evas_suite.c
index eded3ae08f..523c10dc76 100644
--- a/src/tests/evas/evas_suite.c
+++ b/src/tests/evas/evas_suite.c
@@ -20,14 +20,9 @@ static const Efl_Test_Case etc[] = {
{ "Filters", evas_test_filters },
{ "Images", evas_test_image_object },
{ "Images", evas_test_image_object2 },
- { "Meshes", evas_test_mesh },
- { "Meshes", evas_test_mesh1 },
- { "Meshes", evas_test_mesh2 },
- { "Meshes", evas_test_mesh3 },
{ "Masking", evas_test_mask },
{ "Evas GL", evas_test_evasgl },
{ "Object Smart", evas_test_object_smart },
- { "Matrix", evas_test_matrix },
{ "Events", evas_test_events },
{ "Efl Canvas Animation", efl_test_canvas_animation },
{ NULL, NULL }
diff --git a/src/tests/evas/evas_suite.h b/src/tests/evas/evas_suite.h
index 90a7ac0860..ec106315b5 100644
--- a/src/tests/evas/evas_suite.h
+++ b/src/tests/evas/evas_suite.h
@@ -14,14 +14,9 @@ void evas_test_render_engines(TCase *tc);
void evas_test_filters(TCase *tc);
void evas_test_image_object(TCase *tc);
void evas_test_image_object2(TCase *tc);
-void evas_test_mesh(TCase *tc);
-void evas_test_mesh1(TCase *tc);
-void evas_test_mesh2(TCase *tc);
-void evas_test_mesh3(TCase *tc);
void evas_test_mask(TCase *tc);
void evas_test_evasgl(TCase *tc);
void evas_test_object_smart(TCase *tc);
-void evas_test_matrix(TCase *tc);
void evas_test_events(TCase *tc);
void efl_test_canvas_animation(TCase *tc);
diff --git a/src/tests/evas/evas_test_matrix.c b/src/tests/evas/evas_test_matrix.c
deleted file mode 100644
index 0f0fb2e4bc..0000000000
--- a/src/tests/evas/evas_test_matrix.c
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#include "../../lib/evas/include/evas_common_private.h"
-#include "../../lib/evas/include/evas_private.h"
-
-#include "evas_suite.h"
-#include "evas_tests_helpers.h"
-
-EFL_START_TEST(evas_matrix)
-{
- Eina_Vector3 position;
- Eina_Quaternion orientation;
- Eina_Vector3 scale;
- Eina_Matrix4 mat;
-
- eina_vector3_set(&position, 5.0, 3.0, 2.0);
- eina_quaternion_set(&orientation, 30.0, 1.0, 0.0, 0.0);
- eina_vector3_set(&scale, 1.0, 2.0, 1.0);
-
- evas_mat4_build(&mat, &position, &orientation, &scale);
- fail_if((mat.xx != -1) || (mat.xy != 60) ||
- (mat.wx != 5) || (mat.wy != 3) ||
- (mat.wz != 2) || (mat.ww != 1));
-
- evas_mat4_inverse_build(&mat, &position, &orientation, &scale);
- fail_if((mat.xx - 0.99 < DBL_EPSILON) || (mat.xy - 0.0 < DBL_EPSILON) ||
- (mat.yx -0.0 < DBL_EPSILON) || (mat.yy -0.49 < DBL_EPSILON));
-}
-EFL_END_TEST
-
-void evas_test_matrix(TCase *tc)
-{
- (void) _setup_evas;
- tcase_add_test(tc, evas_matrix);
-}
diff --git a/src/tests/evas/evas_test_mesh.c b/src/tests/evas/evas_test_mesh.c
deleted file mode 100644
index 3bf3c3032d..0000000000
--- a/src/tests/evas/evas_test_mesh.c
+++ /dev/null
@@ -1,202 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <stdio.h>
-#include <unistd.h>
-
-#include "../../lib/evas/include/evas_common_private.h"
-#include "../../lib/evas/include/evas_private.h"
-
-#include "evas_suite.h"
-#include "evas_tests_helpers.h"
-
-#define TESTS_MESH_DIR TESTS_SRC_DIR"/meshes"
-#define TESTS_OBJ_MESH_DIR TESTS_MESH_DIR"/obj"
-#define TESTS_MD2_MESH_DIR TESTS_MESH_DIR"/md2"
-#define TESTS_PLY_MESH_DIR TESTS_MESH_DIR"/ply"
-
-#define COMPARE_GEOMETRICS(a) \
- vb1 = &f1->vertices[a]; \
- vb2 = &f2->vertices[a]; \
- if ((a == EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION) && \
- ((vb1->data == NULL) || (vb2->data == NULL))) \
- return 1; \
- if ((vb1->data != NULL) && (vb2->data != NULL)) \
- { \
- src1 = (float *)vb1->data; \
- src2 = (float *)vb2->data; \
- for (i = 0; i < pd1->vertex_count; i++) \
- { \
- if ((src1[0] != src2[0]) || (src1[1] != src2[1])) \
- return 1; \
- if (a != EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD) \
- if (src1[2] != src2[2]) \
- return 1; \
- src1 += f1->vertices[a].element_count; \
- src2 += f2->vertices[a].element_count; \
- } \
- }
-
-static Evas_Canvas3D_Mesh_Frame *
-return_zero_frame(Evas_Canvas3D_Mesh_Data *pd)
-{
- Eina_List *l;
- Evas_Canvas3D_Mesh_Frame *f;
-
- if (!pd) return NULL;
- EINA_LIST_FOREACH(pd->frames, l, f)
- {
- if (f->frame == 0)
- return f;
- }
-
- return NULL;
-}
-
-static int _compare_meshes(Evas_Canvas3D_Mesh *mesh1, Evas_Canvas3D_Mesh *mesh2)
-{
- Evas_Canvas3D_Mesh_Data *pd1, *pd2;
- Evas_Canvas3D_Mesh_Frame *f1, *f2;
- int i;
- float *src1, *src2;
- Evas_Canvas3D_Vertex_Buffer *vb1, *vb2;
-
- pd1 = efl_data_scope_get(mesh1, EVAS_CANVAS3D_MESH_CLASS);
- f1 = return_zero_frame(pd1);
- if ((pd1 == NULL) || (f1 == NULL))
- return 1;
-
- pd2 = efl_data_scope_get(mesh2, EVAS_CANVAS3D_MESH_CLASS);
- f2 = return_zero_frame(pd2);
- if ((pd2 == NULL) || (f2 == NULL))
- return 1;
-
- if ((pd1->vertex_count) != (pd2->vertex_count))
- return 1;
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wtautological-compare"
-#endif
-
- COMPARE_GEOMETRICS(EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION)
- COMPARE_GEOMETRICS(EVAS_CANVAS3D_VERTEX_ATTRIB_NORMAL)
- COMPARE_GEOMETRICS(EVAS_CANVAS3D_VERTEX_ATTRIB_TEXCOORD)
-
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
- return 0;
-}
-
-static void
-check_meshes_in_folder(Eina_Tmpstr *tmp, const char *folder, const char *loadext, const char *ext)
-{
- char buffer[PATH_MAX];
- Evas *e = _setup_evas();
- Eo *mesh, *mesh2;
- Eina_Iterator *it;
- int res = 0;
- const Eina_File_Direct_Info *file;
- it = eina_file_direct_ls(folder);
- EINA_ITERATOR_FOREACH(it, file)
- {
- int set_ok, save_ok;
- Eina_File *f;
- const Eina_File *f_get = NULL;
- const char *filename = NULL;
- const char *key = NULL;
- if (file->path[file->name_start] == '.') continue; //some hidden git file or whatever
- if (!eina_str_has_extension(file->path + file->name_start, loadext)) continue; //some other file
- mesh = efl_add(EVAS_CANVAS3D_MESH_CLASS, e);
- mesh2 = efl_add(EVAS_CANVAS3D_MESH_CLASS, e);
- fail_if(mesh == NULL);
- fail_if(mesh2 == NULL);
- snprintf(buffer, PATH_MAX, "%s%s", tmp, ext);
- set_ok = efl_file_simple_load(mesh, file->path, NULL);
- fail_if(!set_ok);
- save_ok = efl_file_save(mesh, buffer, NULL, NULL);
- fail_if(!save_ok);
- set_ok = efl_file_simple_load(mesh2, buffer, NULL);
- fail_if(!set_ok);
- efl_file_simple_get(mesh2, &filename, &key);
- fail_if(!filename);
- fail_if(!!key);
- res = _compare_meshes(mesh, mesh2);
- fail_if(res == 1);
- f = eina_file_open(file->path, 0);
- fail_if(!f);
- set_ok = efl_file_simple_mmap_load(mesh, f, NULL);
- efl_file_simple_mmap_get(mesh, &f_get, &key);
- fail_if(!f_get);
- fail_if(!!key);
- eina_file_close(f);
- save_ok = efl_file_save(mesh, buffer, NULL, NULL);
- fail_if(!set_ok);
- fail_if(!save_ok);
- f = eina_file_open(buffer, 0);
- fail_if(!f);
- set_ok = efl_file_simple_mmap_load(mesh2, f, NULL);
- eina_file_close(f);
- fail_if(!set_ok);
- res = _compare_meshes(mesh, mesh2);
- fail_if(res == 1);
- efl_del(mesh2);
- efl_del(mesh);
- unlink(buffer);
- }
- eina_iterator_free(it);
- evas_free(e);
-}
-EFL_START_TEST(evas_object_mesh_loader_saver)
-{
- Eina_Tmpstr *tmp;
- char *file_mask = strdup("evas_test_mesh_XXXXXX");
- int tmpfd;
- struct
- {
- const char *dir;
- const char *loadfmt;
- const char *savefmt;
- } values[4] =
- {
- { TESTS_OBJ_MESH_DIR, ".obj", ".eet" },
- { TESTS_MD2_MESH_DIR, ".md2", ".eet" },
- { TESTS_PLY_MESH_DIR, ".ply", ".eet" },
- { TESTS_PLY_MESH_DIR, ".ply", ".ply" },
- };
-
- /* create tmp file name, assume tmp.eet and tmp.ply also work */
- tmpfd = eina_file_mkstemp(file_mask, &tmp);
- fail_if(tmpfd == -1);
- fail_if(!!close(tmpfd));
-
- check_meshes_in_folder(tmp, values[_i].dir, values[_i].loadfmt, values[_i].savefmt);
-
- unlink(tmp);
-
- free(file_mask);
-}
-EFL_END_TEST
-
-void evas_test_mesh(TCase *tc)
-{
- tcase_add_loop_test(tc, evas_object_mesh_loader_saver, 0, 1);
-}
-
-void evas_test_mesh1(TCase *tc)
-{
- tcase_add_loop_test(tc, evas_object_mesh_loader_saver, 1, 2);
-}
-
-void evas_test_mesh2(TCase *tc)
-{
- tcase_add_loop_test(tc, evas_object_mesh_loader_saver, 2, 3);
-}
-
-void evas_test_mesh3(TCase *tc)
-{
- tcase_add_loop_test(tc, evas_object_mesh_loader_saver, 3, 4);
-}
diff --git a/src/tests/evas/meshes/md2/sonic.md2 b/src/tests/evas/meshes/md2/sonic.md2
deleted file mode 100644
index 228edb9fb7..0000000000
--- a/src/tests/evas/meshes/md2/sonic.md2
+++ /dev/null
Binary files differ
diff --git a/src/tests/evas/meshes/obj/man_mesh.obj b/src/tests/evas/meshes/obj/man_mesh.obj
deleted file mode 100644
index 9e1f6d42ea..0000000000
--- a/src/tests/evas/meshes/obj/man_mesh.obj
+++ /dev/null
@@ -1,2493 +0,0 @@
-# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware
-# File Created: 28.03.2014 15:19:59
-
-mtllib man_mesh.mtl
-
-#
-# object man_zbrush002
-#
-
-v 0.0000 47.2875 1.0942
-v 0.0000 50.0378 -9.4137
-v 0.0000 55.9506 -7.2501
-v 0.0000 24.1321 -0.3567
-v -4.6498 14.9457 -8.7856
-v -3.2526 0.0016 -8.5910
-v -1.7126 0.0249 -9.1957
-v -2.0203 14.6106 -8.2788
-v -4.0894 2.6330 -5.0313
-v -5.3088 13.9109 -3.7387
-v -1.5536 3.0595 -4.1735
-v -3.0616 3.5378 -3.4617
-v -1.7669 13.7549 -2.9187
-v -0.6260 0.0317 -8.3362
-v -0.9714 14.6448 -6.7064
-v -5.9192 37.6191 -4.5703
-v -5.4957 46.0431 -6.7324
-v -6.0295 46.1888 -3.9560
-v -4.6857 36.6641 -1.6164
-v -4.2985 47.0011 -0.0589
-v -7.2525 54.5245 -7.6150
-v -6.7758 50.2065 -7.5345
-v 0.0000 53.7381 -8.9868
-v -8.7478 53.7702 -7.3533
-v -6.6241 53.5298 -2.6537
-v -8.1843 53.1087 -3.3204
-v -9.8277 52.9897 -7.1885
-v -9.5084 52.4031 -3.6727
-v -15.6368 49.7151 -4.0157
-v -14.9891 50.5653 -7.2972
-v -2.3212 55.4710 -5.5708
-v -3.7738 51.0936 -1.0343
-v -7.8131 49.3427 -3.8869
-v -16.1362 50.0240 -7.5462
-v -14.8850 46.9747 -7.9460
-v -13.7795 47.4172 -7.7153
-v -14.9771 45.6892 -4.8210
-v -8.9272 49.1285 -4.1282
-v -8.7565 49.3211 -7.6329
-v -17.2082 49.4777 -7.5122
-v -16.8101 49.1399 -3.9288
-v -22.3487 46.9322 -2.8224
-v -22.5852 48.3277 -7.5944
-v -21.9364 43.0552 -3.7336
-v -16.1922 44.9604 -4.8771
-v -23.3377 47.2682 -6.9450
-v -22.1051 44.1196 -7.0740
-v -21.0612 44.1836 -7.6112
-v -15.8846 46.5205 -7.8558
-v -5.5985 31.8229 -1.4054
-v -7.4539 29.9108 -4.7820
-v -7.1743 32.8153 -5.1680
-v -4.9700 33.0828 -8.8713
-v -5.5953 29.7616 -8.4911
-v -6.8277 20.8590 -3.0514
-v -6.1947 19.5763 -3.4925
-v -5.4260 21.3413 -8.1311
-v -0.8999 21.4104 -8.3427
-v -0.8356 22.8539 -8.2030
-v -5.3178 22.9368 -8.0146
-v -1.8530 19.1642 -1.3853
-v -1.9574 20.6208 -1.2177
-v -5.2596 15.4904 -9.5994
-v -0.2944 16.1695 -7.9627
-v -1.2218 14.4504 -2.0041
-v -6.4987 14.6430 -4.0006
-v -1.4357 55.0574 -2.8845
-v -0.5960 60.2687 -0.2559
-v -0.1638 60.6728 0.4053
-v -0.2263 59.6318 0.7170
-v -0.6054 59.4536 0.0068
-v -0.7935 58.6118 -0.0224
-v -1.3407 61.3435 -1.0249
-v -2.2253 60.3012 -1.3344
-v -2.2095 61.2305 -1.5150
-v -0.4741 61.2949 -0.6078
-v -0.7854 61.5398 -0.0488
-v -0.1799 61.2747 0.0585
-v -1.7921 61.5632 -0.6482
-v -1.9014 62.8989 -1.2625
-v -2.5058 61.4136 -3.3339
-v -2.0718 58.0803 -1.8376
-v -2.3616 58.6526 -3.4054
-v -2.0435 58.6944 -1.7220
-v -1.4804 57.2878 -3.1674
-v -2.4848 60.6680 -2.0783
-v -0.8603 57.3392 -0.3453
-v -1.5075 57.9788 -4.8067
-v -0.5095 56.8628 -2.0812
-v -2.1892 21.9879 -1.4818
-v -6.5423 35.4806 -4.9028
-v -5.2832 35.9529 -7.8146
-v -3.7985 31.5525 -0.3863
-v -1.5687 1.9817 -0.6271
-v -3.7356 1.8169 0.2284
-v -1.8252 -0.0241 0.6012
-v -3.7693 -0.0090 1.1329
-v -5.3903 1.5682 -1.6703
-v -5.1768 -0.0250 -0.5983
-v -6.8240 22.1939 -3.2543
-v -0.8451 29.8910 -9.4915
-v -23.2655 44.2902 -3.6142
-v -23.3230 46.2280 -3.4252
-v -23.8813 46.2678 -5.9955
-v -23.2731 44.4791 -6.1705
-v -24.4461 44.0991 -3.0395
-v -24.9354 45.7429 -3.2888
-v -25.9827 45.6412 -5.9747
-v -25.7189 44.4079 -5.9891
-v -27.0580 43.7331 -1.4711
-v -26.7755 43.0070 -1.4929
-v -27.6379 42.3212 -1.9844
-v -27.1027 45.3202 -5.7351
-v -26.2463 42.9014 -5.3836
-v -26.7539 45.3983 -2.8586
-v -28.3806 42.3305 -3.0566
-v -28.6979 44.2382 -3.4775
-v -28.1009 44.1773 -2.4700
-v -28.5438 44.1780 -4.6514
-v -25.5872 43.5577 -2.0387
-v -26.1177 44.4879 -2.1987
-v -25.4919 42.8273 -2.3701
-v -3.4637 23.8728 -0.3567
-v -0.3403 31.4007 -9.9220
-v -0.4256 30.0691 -1.5036
-v -2.1628 35.7435 -9.5999
-v 0.0000 37.0098 0.5507
-v 0.0000 50.8802 0.1100
-v 0.0000 45.2358 -8.5163
-v 0.0000 59.3759 0.2727
-v 0.0000 62.7759 -0.3557
-v 0.0000 61.9130 -0.0480
-v 0.0000 56.8628 -2.0812
-v -2.8276 38.1718 -8.0883
-v -0.0000 31.5470 -9.9391
-v -28.2928 42.5431 -4.4468
-v 0.0000 38.2216 -8.0733
-v 4.6209 14.9457 -8.5161
-v 1.4564 14.6106 -8.6951
-v 1.7126 0.0249 -9.1957
-v 3.2526 0.0016 -8.5910
-v 4.0894 2.6330 -5.0313
-v 5.3088 13.9109 -3.7387
-v 1.5536 3.0595 -4.1735
-v 1.7669 13.7549 -2.9187
-v 3.0616 3.5378 -3.4617
-v 0.6260 0.0317 -8.3362
-v 1.2398 14.6448 -6.4653
-v 5.9192 37.6191 -4.5703
-v 6.0295 46.1888 -3.9560
-v 5.4957 46.0431 -6.7324
-v 2.8276 38.1718 -8.0883
-v 4.6857 36.6641 -1.6164
-v 4.2985 47.0011 -0.0589
-v 7.2525 54.5245 -7.6150
-v 6.7758 50.2065 -7.5345
-v 8.7478 53.7702 -7.3533
-v 8.1843 53.1087 -3.3204
-v 6.6241 53.5298 -2.6537
-v 9.8277 52.9897 -7.1885
-v 14.9891 50.5653 -7.2972
-v 15.6368 49.7151 -4.0157
-v 9.5084 52.4031 -3.6727
-v 2.3212 55.4710 -5.5708
-v 7.8131 49.3427 -3.8869
-v 3.7738 51.0936 -1.0343
-v 16.1362 50.0240 -7.5462
-v 13.7795 47.4172 -7.7153
-v 14.8850 46.9747 -7.9460
-v 8.7565 49.3211 -7.6329
-v 8.9272 49.1285 -4.1282
-v 14.9771 45.6892 -4.8210
-v 17.2082 49.4777 -7.5122
-v 22.5852 48.3277 -7.5944
-v 22.3487 46.9322 -2.8224
-v 16.8101 49.1399 -3.9288
-v 21.9364 43.0552 -3.7336
-v 16.1922 44.9604 -4.8771
-v 23.3377 47.2682 -6.9450
-v 21.0612 44.1836 -7.6112
-v 22.1051 44.1196 -7.0740
-v 15.8846 46.5205 -7.8558
-v 5.5985 31.8229 -1.4043
-v 7.1743 32.8153 -5.1673
-v 7.4539 29.9108 -4.7801
-v 4.9700 33.0828 -8.8719
-v 5.5953 29.7616 -8.4925
-v 6.8277 20.8590 -3.0448
-v 5.4260 21.3413 -8.1326
-v 6.1947 19.5763 -3.4786
-v 0.8999 21.4104 -8.3494
-v 5.3178 22.9368 -8.0162
-v 0.8356 22.8539 -8.2107
-v 1.9574 20.6208 -1.2115
-v 1.8530 19.1642 -1.3716
-v 0.1341 16.1695 -9.1747
-v 5.1172 15.4904 -9.6797
-v 1.7167 14.4504 -2.4592
-v 6.0692 14.6430 -3.7623
-v 0.0000 54.5221 -2.1876
-v 1.4357 55.0574 -2.8845
-v 0.5960 60.2687 -0.2559
-v 0.6054 59.4536 0.0068
-v 0.2263 59.6318 0.7170
-v 0.1638 60.6728 0.4053
-v 0.7935 58.6118 -0.0224
-v 0.0000 58.7353 0.2373
-v 1.3407 61.3435 -1.0249
-v 2.2095 61.2305 -1.5150
-v 2.2253 60.3012 -1.3344
-v 0.4741 61.2949 -0.6078
-v 0.1799 61.2747 0.0585
-v 0.7854 61.5398 -0.0488
-v 1.9014 62.8989 -1.2625
-v 1.7921 61.5632 -0.6482
-v 2.5058 61.4136 -3.3339
-v 2.0718 58.0803 -1.8376
-v 2.0435 58.6944 -1.7220
-v 2.3616 58.6526 -3.4054
-v 1.4804 57.2878 -3.1674
-v 2.4848 60.6680 -2.0783
-v 0.8603 57.3392 -0.3453
-v 0.0000 57.3204 0.1903
-v 1.5075 57.9788 -4.8067
-v 0.5095 56.8628 -2.0812
-v 2.1892 21.9879 -1.4837
-v 6.5423 35.4806 -4.9028
-v 5.2832 35.9529 -7.8146
-v 3.7985 31.5525 -0.3889
-v 3.7356 1.8169 0.2284
-v 1.5687 1.9817 -0.6271
-v 1.8252 -0.0241 0.6012
-v 3.7693 -0.0090 1.1329
-v 5.1768 -0.0250 -0.5983
-v 5.3903 1.5682 -1.6703
-v 6.8240 22.1939 -3.2515
-v 0.8451 29.8910 -9.4989
-v 23.3230 46.2280 -3.4252
-v 23.2655 44.2902 -3.6142
-v 23.2731 44.4791 -6.1705
-v 23.8813 46.2678 -5.9955
-v 24.9354 45.7429 -3.2888
-v 24.4461 44.0991 -3.0395
-v 25.7189 44.4079 -5.9891
-v 25.9827 45.6412 -5.9747
-v 0.0000 31.5525 0.1285
-v 27.0580 43.7331 -1.4711
-v 28.1009 44.1773 -2.4700
-v 27.6379 42.3212 -1.9844
-v 26.7755 43.0070 -1.4929
-v 26.2463 42.9014 -5.3836
-v 27.1027 45.3202 -5.7351
-v 26.7539 45.3983 -2.8586
-v 28.3806 42.3305 -3.0566
-v 28.6979 44.2382 -3.4775
-v 28.2928 42.5431 -4.4468
-v 28.5438 44.1780 -4.6514
-v 26.1177 44.4879 -2.1987
-v 25.5872 43.5577 -2.0387
-v 25.4919 42.8273 -2.3701
-v 3.4637 23.8728 -0.3567
-v 0.3403 31.4007 -9.9280
-v 0.4256 30.0691 -1.5075
-v 2.1628 35.7435 -9.5999
-v -0.0000 30.2154 -1.5220
-v 0.0000 35.7952 -9.5999
-v 0.7069 62.5386 -0.2897
-v 1.8382 62.2558 -0.8026
-v 1.9014 63.5323 -1.2476
-v 0.6723 63.4859 -0.4218
-v 3.1942 60.5972 -3.4604
-v 2.7587 63.5323 -3.3488
-v 3.0106 63.5323 -5.8687
-v 2.1305 53.6286 -1.3592
-v 4.0888 54.8798 -3.4604
-v 4.3407 55.2343 -6.2104
-v 2.3368 60.5972 -1.0725
-v 3.4460 60.5972 -5.9803
-v 1.9321 63.5323 -7.3112
-v 2.9903 54.4963 -8.2460
-v 2.5172 60.5972 -7.8792
-v 1.1714 65.0579 -2.2055
-v 1.7956 65.0579 -4.8061
-v 0.0000 63.5323 -8.1745
-v 0.0000 62.5386 -0.1403
-v 1.1873 53.6286 -3.1647
-v 1.3937 60.5972 -3.1647
-v -0.7069 62.5386 -0.2897
-v -1.8382 62.2558 -0.8026
-v -1.9014 63.5323 -1.2476
-v -0.6723 63.4859 -0.4218
-v -3.1942 60.5972 -3.4604
-v -2.7587 63.5323 -3.3488
-v -3.4460 60.5972 -5.9803
-v -3.0106 63.5323 -5.8687
-v -2.3368 60.5972 -1.0725
-v -2.1305 53.6286 -1.3592
-v -4.0888 54.8798 -3.4604
-v -4.3407 55.2343 -6.2104
-v -2.5172 60.5972 -7.8792
-v -1.9321 63.5323 -7.3112
-v -2.9903 54.4963 -8.2460
-v 0.0000 60.5972 -8.8128
-v 0.0000 54.0508 -8.7827
-v -1.1714 65.0579 -2.2055
-v -1.7956 65.0579 -4.8061
-v 0.0000 65.0579 -6.4214
-v 0.0000 65.5609 -4.0584
-v -1.3937 60.5972 -3.1647
-v -1.1873 53.6286 -3.1647
-v 5.7780 35.9947 -1.7731
-v 5.1150 35.7826 -2.0517
-v 5.7434 36.0196 -3.9959
-v 6.4636 36.2234 -3.7049
-v 8.5039 27.4359 -5.6703
-v 7.4519 27.2103 -3.5044
-v 6.5979 27.3323 -3.6902
-v 7.6499 27.5580 -5.8561
-v 8.7043 24.9057 -6.0365
-v 7.9848 25.1277 -6.1774
-v 2.7647 62.4556 -4.1284
-v 2.9040 62.4556 -5.7005
-v 4.8719 55.7996 -6.7654
-v 4.7366 55.7996 -5.1539
-v 4.0724 55.7996 -5.0402
-v 4.2078 55.7996 -6.6517
-v 4.5130 55.0077 -5.9098
-v 4.2911 55.0989 -5.8718
-# 328 vertices
-
-vn -0.0217 0.0232 -0.9995
-vn -0.0217 0.0232 -0.9995
-vn -0.0217 0.0232 -0.9995
-vn -0.0217 0.0232 -0.9995
-vn -0.9838 -0.0917 -0.1540
-vn -0.9838 -0.0917 -0.1540
-vn -0.9838 -0.0917 -0.1540
-vn -0.9838 -0.0917 -0.1540
-vn 0.3989 -0.0990 0.9116
-vn 0.3989 -0.0990 0.9116
-vn 0.3989 -0.0990 0.9116
-vn 0.9772 -0.0026 0.2125
-vn 0.9772 -0.0026 0.2125
-vn 0.9772 -0.0026 0.2125
-vn 0.9772 -0.0026 0.2125
-vn -0.8610 -0.0854 -0.5014
-vn -0.8610 -0.0854 -0.5014
-vn -0.8610 -0.0854 -0.5014
-vn -0.8610 -0.0854 -0.5014
-vn -0.9175 -0.0321 0.3964
-vn -0.9175 -0.0321 0.3964
-vn -0.9175 -0.0321 0.3964
-vn -0.9175 -0.0321 0.3964
-vn -0.2238 0.0288 -0.9742
-vn -0.2238 0.0288 -0.9742
-vn -0.2238 0.0288 -0.9742
-vn -0.2238 0.0288 -0.9742
-vn -0.3754 0.9014 0.2157
-vn -0.3754 0.9014 0.2157
-vn -0.3754 0.9014 0.2157
-vn -0.3754 0.9014 0.2157
-vn -0.4122 0.8952 0.1693
-vn -0.4122 0.8952 0.1693
-vn -0.4122 0.8952 0.1693
-vn -0.4122 0.8952 0.1693
-vn -0.3397 -0.0890 0.9363
-vn -0.3397 -0.0890 0.9363
-vn -0.3397 -0.0890 0.9363
-vn -0.3397 -0.0890 0.9363
-vn -0.1393 0.8417 -0.5216
-vn -0.1393 0.8417 -0.5216
-vn -0.1393 0.8417 -0.5216
-vn -0.1393 0.8417 -0.5216
-vn -0.5100 -0.1901 0.8389
-vn -0.5100 -0.1901 0.8389
-vn -0.5100 -0.1901 0.8389
-vn -0.5100 -0.1901 0.8389
-vn -0.9099 0.2029 0.3618
-vn -0.9099 0.2029 0.3618
-vn -0.9099 0.2029 0.3618
-vn -0.2668 0.2552 0.9293
-vn -0.2668 0.2552 0.9293
-vn -0.2668 0.2552 0.9293
-vn -0.2668 0.2552 0.9293
-vn 0.1291 0.1799 -0.9752
-vn 0.1291 0.1799 -0.9752
-vn 0.1291 0.1799 -0.9752
-vn 0.1291 0.1799 -0.9752
-vn 0.4379 -0.8826 -0.1713
-vn 0.4379 -0.8826 -0.1713
-vn 0.4379 -0.8826 -0.1713
-vn 0.4379 -0.8826 -0.1713
-vn -0.2686 0.9389 0.2152
-vn -0.2686 0.9389 0.2152
-vn -0.2686 0.9389 0.2152
-vn -0.2686 0.9389 0.2152
-vn 0.2569 -0.1860 0.9484
-vn 0.2569 -0.1860 0.9484
-vn 0.2569 -0.1860 0.9484
-vn 0.2569 -0.1860 0.9484
-vn -0.4719 -0.1610 -0.8668
-vn -0.4719 -0.1610 -0.8668
-vn -0.4719 -0.1610 -0.8668
-vn -0.4719 -0.1610 -0.8668
-vn 0.3121 -0.9015 -0.2997
-vn 0.3121 -0.9015 -0.2997
-vn 0.3121 -0.9015 -0.2997
-vn 0.3121 -0.9015 -0.2997
-vn -0.8992 0.1416 0.4139
-vn -0.8992 0.1416 0.4139
-vn -0.8992 0.1416 0.4139
-vn -0.8753 0.0683 -0.4787
-vn -0.8753 0.0683 -0.4787
-vn -0.8753 0.0683 -0.4787
-vn -0.8753 0.0683 -0.4787
-vn -0.8956 -0.3457 -0.2800
-vn -0.8956 -0.3457 -0.2800
-vn -0.8956 -0.3457 -0.2800
-vn -0.0441 0.0864 -0.9953
-vn -0.0441 0.0864 -0.9953
-vn -0.0441 0.0864 -0.9953
-vn -0.0441 0.0864 -0.9953
-vn 0.9869 0.0532 0.1524
-vn 0.9869 0.0532 0.1524
-vn 0.9869 0.0532 0.1524
-vn -0.3931 -0.2991 0.8695
-vn -0.3931 -0.2991 0.8695
-vn -0.3931 -0.2991 0.8695
-vn -0.3931 -0.2991 0.8695
-vn 0.1394 0.1063 -0.9845
-vn 0.1394 0.1063 -0.9845
-vn 0.1394 0.1063 -0.9845
-vn 0.1394 0.1063 -0.9845
-vn 0.9770 0.1171 0.1782
-vn 0.9770 0.1171 0.1782
-vn 0.9770 0.1171 0.1782
-vn 0.9770 0.1171 0.1782
-vn -0.3960 -0.1198 0.9104
-vn -0.3960 -0.1198 0.9104
-vn -0.3960 -0.1198 0.9104
-vn -0.3960 -0.1198 0.9104
-vn -0.9824 0.0457 -0.1810
-vn -0.9824 0.0457 -0.1810
-vn -0.9824 0.0457 -0.1810
-vn -0.9824 0.0457 -0.1810
-vn -0.8812 -0.3950 -0.2597
-vn -0.8812 -0.3950 -0.2597
-vn -0.8812 -0.3950 -0.2597
-vn -0.8812 -0.3950 -0.2597
-vn 0.3416 -0.9364 -0.0806
-vn 0.3416 -0.9364 -0.0806
-vn 0.3416 -0.9364 -0.0806
-vn 0.3416 -0.9364 -0.0806
-vn -0.2950 -0.2184 -0.9302
-vn -0.2950 -0.2184 -0.9302
-vn -0.2950 -0.2184 -0.9302
-vn -0.2950 -0.2184 -0.9302
-vn -0.2179 0.5180 0.8271
-vn -0.2179 0.5180 0.8271
-vn -0.2179 0.5180 0.8271
-vn -0.2179 0.5180 0.8271
-vn -0.8781 0.1721 0.4464
-vn -0.8781 0.1721 0.4464
-vn -0.8781 0.1721 0.4464
-vn -0.8781 0.1721 0.4464
-vn -0.3519 0.0039 0.9360
-vn -0.3519 0.0039 0.9360
-vn -0.3519 0.0039 0.9360
-vn -0.3519 0.0039 0.9360
-vn -0.5009 0.1733 0.8480
-vn -0.5009 0.1733 0.8480
-vn -0.5009 0.1733 0.8480
-vn -0.4195 -0.8939 0.1582
-vn -0.4195 -0.8939 0.1582
-vn -0.4195 -0.8939 0.1582
-vn -0.8797 0.2347 0.4135
-vn -0.8797 0.2347 0.4135
-vn -0.8797 0.2347 0.4135
-vn -0.8797 0.2347 0.4135
-vn -0.4054 0.4008 0.8216
-vn -0.4054 0.4008 0.8216
-vn -0.4054 0.4008 0.8216
-vn -0.4054 0.4008 0.8216
-vn -0.9589 0.1397 0.2470
-vn -0.9589 0.1397 0.2470
-vn -0.9589 0.1397 0.2470
-vn -0.9589 0.1397 0.2470
-vn -0.9826 0.0104 0.1854
-vn -0.9826 0.0104 0.1854
-vn -0.9826 0.0104 0.1854
-vn -0.8356 -0.5474 -0.0454
-vn -0.8356 -0.5474 -0.0454
-vn -0.8356 -0.5474 -0.0454
-vn -0.9624 -0.1782 0.2052
-vn -0.9624 -0.1782 0.2052
-vn -0.9624 -0.1782 0.2052
-vn -0.9624 -0.1782 0.2052
-vn -0.5693 0.1809 0.8020
-vn -0.5693 0.1809 0.8020
-vn -0.5693 0.1809 0.8020
-vn -0.5693 0.1809 0.8020
-vn -0.4248 -0.1131 0.8982
-vn -0.4248 -0.1131 0.8982
-vn -0.4248 -0.1131 0.8982
-vn -0.4248 -0.1131 0.8982
-vn -0.8013 -0.5559 -0.2211
-vn -0.8013 -0.5559 -0.2211
-vn -0.8013 -0.5559 -0.2211
-vn -0.6057 -0.0427 0.7945
-vn -0.6057 -0.0427 0.7945
-vn -0.6057 -0.0427 0.7945
-vn -0.6057 -0.0427 0.7945
-vn -0.9625 0.1322 0.2368
-vn -0.9625 0.1322 0.2368
-vn -0.9625 0.1322 0.2368
-vn -0.9625 0.1322 0.2368
-vn 0.3299 -0.1772 -0.9272
-vn 0.3299 -0.1772 -0.9272
-vn 0.3299 -0.1772 -0.9272
-vn 0.9234 -0.3825 0.0334
-vn 0.9234 -0.3825 0.0334
-vn 0.9234 -0.3825 0.0334
-vn -0.2812 -0.5012 0.8184
-vn -0.2812 -0.5012 0.8184
-vn -0.2812 -0.5012 0.8184
-vn -0.2812 -0.5012 0.8184
-vn -0.4657 -0.8535 -0.2339
-vn -0.4657 -0.8535 -0.2339
-vn -0.4657 -0.8535 -0.2339
-vn -0.4657 -0.8535 -0.2339
-vn 0.9816 0.0664 0.1789
-vn 0.9816 0.0664 0.1789
-vn 0.9816 0.0664 0.1789
-vn 0.9816 0.0664 0.1789
-vn -0.8820 0.1569 -0.4443
-vn -0.8820 0.1569 -0.4443
-vn -0.8820 0.1569 -0.4443
-vn -0.8820 0.1569 -0.4443
-vn -0.8922 0.1699 0.4185
-vn -0.8922 0.1699 0.4185
-vn -0.8922 0.1699 0.4185
-vn -0.4741 0.1274 0.8712
-vn -0.4741 0.1274 0.8712
-vn -0.4741 0.1274 0.8712
-vn -0.9265 0.0869 0.3661
-vn -0.9265 0.0869 0.3661
-vn -0.9265 0.0869 0.3661
-vn -0.1743 -0.1645 0.9709
-vn -0.1743 -0.1645 0.9709
-vn -0.1743 -0.1645 0.9709
-vn -0.1743 -0.1645 0.9709
-vn -0.5265 0.8267 0.1983
-vn -0.5265 0.8267 0.1983
-vn -0.5265 0.8267 0.1983
-vn -0.5265 0.8267 0.1983
-vn -0.1549 -0.0355 -0.9873
-vn -0.1549 -0.0355 -0.9873
-vn -0.1549 -0.0355 -0.9873
-vn 0.0017 -0.1699 0.9855
-vn 0.0017 -0.1699 0.9855
-vn 0.0017 -0.1699 0.9855
-vn 0.0017 -0.1699 0.9855
-vn -0.2158 0.8144 0.5387
-vn -0.2158 0.8144 0.5387
-vn -0.2158 0.8144 0.5387
-vn -0.2158 0.8144 0.5387
-vn -0.2761 0.9321 0.2345
-vn -0.2761 0.9321 0.2345
-vn -0.2761 0.9321 0.2345
-vn -0.9428 0.2795 0.1817
-vn -0.9428 0.2795 0.1817
-vn -0.9428 0.2795 0.1817
-vn -0.9986 -0.0518 -0.0141
-vn -0.9986 -0.0518 -0.0141
-vn -0.9986 -0.0518 -0.0141
-vn -0.1080 -0.9096 0.4012
-vn -0.1080 -0.9096 0.4012
-vn -0.1080 -0.9096 0.4012
-vn 0.2345 0.8990 0.3700
-vn 0.2345 0.8990 0.3700
-vn 0.2345 0.8990 0.3700
-vn 0.2345 0.8990 0.3700
-vn 0.9921 0.0722 0.1030
-vn 0.9921 0.0722 0.1030
-vn 0.9921 0.0722 0.1030
-vn 0.9921 0.0722 0.1030
-vn -0.0022 -1.0000 -0.0050
-vn -0.0022 -1.0000 -0.0050
-vn -0.0022 -1.0000 -0.0050
-vn -0.0022 -1.0000 -0.0050
-vn 0.7487 0.0742 -0.6587
-vn 0.7487 0.0742 -0.6587
-vn 0.7487 0.0742 -0.6587
-vn 0.7487 0.0742 -0.6587
-vn 0.2703 0.4526 0.8498
-vn 0.2703 0.4526 0.8498
-vn 0.2703 0.4526 0.8498
-vn 0.2703 0.4526 0.8498
-vn -0.9574 -0.0737 -0.2791
-vn -0.9574 -0.0737 -0.2791
-vn -0.9574 -0.0737 -0.2791
-vn -0.9574 -0.0737 -0.2791
-vn -0.7381 0.3081 0.6002
-vn -0.7381 0.3081 0.6002
-vn -0.7381 0.3081 0.6002
-vn -0.7381 0.3081 0.6002
-vn -0.5607 0.8117 0.1637
-vn -0.5607 0.8117 0.1637
-vn -0.5607 0.8117 0.1637
-vn -0.5607 0.8117 0.1637
-vn -0.4525 -0.0743 0.8887
-vn -0.4525 -0.0743 0.8887
-vn -0.4525 -0.0743 0.8887
-vn -0.4525 -0.0743 0.8887
-vn 0.0015 -0.8305 -0.5570
-vn 0.0015 -0.8305 -0.5570
-vn 0.0015 -0.8305 -0.5570
-vn 0.6496 -0.6341 -0.4195
-vn 0.6496 -0.6341 -0.4195
-vn 0.6496 -0.6341 -0.4195
-vn -0.9596 0.0284 -0.2800
-vn -0.9596 0.0284 -0.2800
-vn -0.9596 0.0284 -0.2800
-vn -0.9596 0.0284 -0.2800
-vn -0.1260 -0.1279 -0.9838
-vn -0.1260 -0.1279 -0.9838
-vn -0.1260 -0.1279 -0.9838
-vn -0.1260 -0.1279 -0.9838
-vn -0.3463 0.1313 0.9289
-vn -0.3463 0.1313 0.9289
-vn -0.3463 0.1313 0.9289
-vn -0.3463 0.1313 0.9289
-vn -0.2764 -0.8870 0.3700
-vn -0.2764 -0.8870 0.3700
-vn -0.2764 -0.8870 0.3700
-vn -0.2451 -0.1993 0.9488
-vn -0.2451 -0.1993 0.9488
-vn -0.2451 -0.1993 0.9488
-vn -0.2451 -0.1993 0.9488
-vn -0.6807 -0.2106 -0.7016
-vn -0.6807 -0.2106 -0.7016
-vn -0.6807 -0.2106 -0.7016
-vn -0.6807 -0.2106 -0.7016
-vn -0.7106 0.6739 0.2021
-vn -0.7106 0.6739 0.2021
-vn -0.7106 0.6739 0.2021
-vn -0.7106 0.6739 0.2021
-vn -0.5757 -0.8031 -0.1535
-vn -0.5757 -0.8031 -0.1535
-vn -0.5757 -0.8031 -0.1535
-vn -0.5757 -0.8031 -0.1535
-vn 0.2345 0.0522 0.9707
-vn 0.2345 0.0522 0.9707
-vn 0.2345 0.0522 0.9707
-vn 0.2345 0.0522 0.9707
-vn -0.0517 0.0476 -0.9975
-vn -0.0517 0.0476 -0.9975
-vn -0.0517 0.0476 -0.9975
-vn -0.0517 0.0476 -0.9975
-vn -0.2831 0.9562 0.0752
-vn -0.2831 0.9562 0.0752
-vn -0.2831 0.9562 0.0752
-vn -0.2831 0.9562 0.0752
-vn 0.0507 -0.9935 -0.1016
-vn 0.0507 -0.9935 -0.1016
-vn 0.0507 -0.9935 -0.1016
-vn 0.0507 -0.9935 -0.1016
-vn -0.3028 0.0473 0.9519
-vn -0.3028 0.0473 0.9519
-vn -0.3028 0.0473 0.9519
-vn -0.3028 0.0473 0.9519
-vn -0.6130 -0.0352 0.7893
-vn -0.6130 -0.0352 0.7893
-vn -0.6130 -0.0352 0.7893
-vn -0.6130 -0.0352 0.7893
-vn -0.2884 -0.1753 -0.9413
-vn -0.2884 -0.1753 -0.9413
-vn -0.2884 -0.1753 -0.9413
-vn -0.2884 -0.1753 -0.9413
-vn -0.2159 0.9761 0.0226
-vn -0.2159 0.9761 0.0226
-vn -0.2159 0.9761 0.0226
-vn -0.2159 0.9761 0.0226
-vn 0.8065 -0.4408 -0.3941
-vn 0.8065 -0.4408 -0.3941
-vn 0.8065 -0.4408 -0.3941
-vn -0.8405 -0.0442 0.5400
-vn -0.8405 -0.0442 0.5400
-vn -0.8405 -0.0442 0.5400
-vn -0.8405 -0.0442 0.5400
-vn -0.9791 -0.1752 -0.1028
-vn -0.9791 -0.1752 -0.1028
-vn -0.9791 -0.1752 -0.1028
-vn -0.9791 -0.1752 -0.1028
-vn -0.5602 0.7378 0.3766
-vn -0.5602 0.7378 0.3766
-vn -0.5602 0.7378 0.3766
-vn 0.4841 0.3212 0.8139
-vn 0.4841 0.3212 0.8139
-vn 0.4841 0.3212 0.8139
-vn 0.4841 0.3212 0.8139
-vn 0.7657 -0.6427 -0.0248
-vn 0.7657 -0.6427 -0.0248
-vn 0.7657 -0.6427 -0.0248
-vn 0.7657 -0.6427 -0.0248
-vn 0.0687 0.6166 0.7843
-vn 0.0687 0.6166 0.7843
-vn 0.0687 0.6166 0.7843
-vn -0.0696 -0.0316 0.9971
-vn -0.0696 -0.0316 0.9971
-vn -0.0696 -0.0316 0.9971
-vn -0.0696 -0.0316 0.9971
-vn -0.7898 -0.2268 0.5698
-vn -0.7898 -0.2268 0.5698
-vn -0.7898 -0.2268 0.5698
-vn -0.8001 -0.0972 0.5919
-vn -0.8001 -0.0972 0.5919
-vn -0.8001 -0.0972 0.5919
-vn -0.8001 -0.0972 0.5919
-vn -0.5940 -0.7913 0.1450
-vn -0.5940 -0.7913 0.1450
-vn -0.5940 -0.7913 0.1450
-vn -0.5940 -0.7913 0.1450
-vn -0.0906 0.1887 0.9778
-vn -0.0906 0.1887 0.9778
-vn -0.0906 0.1887 0.9778
-vn -0.0984 0.0806 -0.9919
-vn -0.0984 0.0806 -0.9919
-vn -0.0984 0.0806 -0.9919
-vn -0.0984 0.0806 -0.9919
-vn -0.4368 0.8892 0.1359
-vn -0.4368 0.8892 0.1359
-vn -0.4368 0.8892 0.1359
-vn -0.4368 0.8892 0.1359
-vn 0.4359 -0.8263 -0.3567
-vn 0.4359 -0.8263 -0.3567
-vn 0.4359 -0.8263 -0.3567
-vn 0.4359 -0.8263 -0.3567
-vn 0.1164 -0.1902 0.9748
-vn 0.1164 -0.1902 0.9748
-vn 0.1164 -0.1902 0.9748
-vn 0.1164 -0.1902 0.9748
-vn -0.0304 0.1155 -0.9928
-vn -0.0304 0.1155 -0.9928
-vn -0.0304 0.1155 -0.9928
-vn -0.0304 0.1155 -0.9928
-vn -0.4473 0.8833 0.1406
-vn -0.4473 0.8833 0.1406
-vn -0.4473 0.8833 0.1406
-vn 0.4096 -0.8479 -0.3367
-vn 0.4096 -0.8479 -0.3367
-vn 0.4096 -0.8479 -0.3367
-vn 0.7771 -0.6292 0.0154
-vn 0.7771 -0.6292 0.0154
-vn 0.7771 -0.6292 0.0154
-vn 0.3745 0.2581 0.8906
-vn 0.3745 0.2581 0.8906
-vn 0.3745 0.2581 0.8906
-vn 0.3745 0.2581 0.8906
-vn 0.3866 -0.6109 0.6909
-vn 0.3866 -0.6109 0.6909
-vn 0.3866 -0.6109 0.6909
-vn 0.3866 -0.6109 0.6909
-vn -0.2026 0.7986 0.5667
-vn -0.2026 0.7986 0.5667
-vn -0.2026 0.7986 0.5667
-vn -0.3472 -0.1729 0.9217
-vn -0.3472 -0.1729 0.9217
-vn -0.3472 -0.1729 0.9217
-vn -0.0557 0.0627 -0.9965
-vn -0.0557 0.0627 -0.9965
-vn -0.0557 0.0627 -0.9965
-vn -0.0557 0.0627 -0.9965
-vn -0.5625 0.8268 -0.0012
-vn -0.5625 0.8268 -0.0012
-vn -0.5625 0.8268 -0.0012
-vn -0.5625 0.8268 -0.0012
-vn 0.1065 -0.9839 -0.1437
-vn 0.1065 -0.9839 -0.1437
-vn 0.1065 -0.9839 -0.1437
-vn -0.1926 0.4841 0.8535
-vn -0.1926 0.4841 0.8535
-vn -0.1926 0.4841 0.8535
-vn 0.0135 -0.9999 -0.0004
-vn 0.0135 -0.9999 -0.0004
-vn 0.0135 -0.9999 -0.0004
-vn 0.0135 -0.9999 -0.0004
-vn -0.1584 0.3315 0.9300
-vn -0.1584 0.3315 0.9300
-vn -0.1584 0.3315 0.9300
-vn 0.9439 -0.3276 -0.0423
-vn 0.9439 -0.3276 -0.0423
-vn 0.9439 -0.3276 -0.0423
-vn 0.0000 -0.0454 0.9990
-vn 0.0000 -0.0454 0.9990
-vn 0.0000 -0.0454 0.9990
-vn -0.0985 -0.9710 0.2177
-vn -0.0985 -0.9710 0.2177
-vn -0.0985 -0.9710 0.2177
-vn -0.0985 -0.9710 0.2177
-vn -0.8813 0.0215 0.4721
-vn -0.8813 0.0215 0.4721
-vn -0.8813 0.0215 0.4721
-vn -0.9212 -0.1090 -0.3736
-vn -0.9212 -0.1090 -0.3736
-vn -0.9212 -0.1090 -0.3736
-vn -0.9212 -0.1090 -0.3736
-vn -0.4028 -0.1467 0.9035
-vn -0.4028 -0.1467 0.9035
-vn -0.4028 -0.1467 0.9035
-vn -0.4028 -0.1467 0.9035
-vn -0.2295 -0.1086 -0.9672
-vn -0.2295 -0.1086 -0.9672
-vn -0.2295 -0.1086 -0.9672
-vn -0.2295 -0.1086 -0.9672
-vn 0.9922 -0.1101 0.0579
-vn 0.9922 -0.1101 0.0579
-vn 0.9922 -0.1101 0.0579
-vn 0.9922 -0.1101 0.0579
-vn -0.3243 0.0841 -0.9422
-vn -0.3243 0.0841 -0.9422
-vn -0.3243 0.0841 -0.9422
-vn -0.3243 0.0841 -0.9422
-vn -0.8896 0.3112 -0.3342
-vn -0.8896 0.3112 -0.3342
-vn -0.8896 0.3112 -0.3342
-vn -0.8826 0.1867 0.4314
-vn -0.8826 0.1867 0.4314
-vn -0.8826 0.1867 0.4314
-vn -0.8826 0.1867 0.4314
-vn -0.4908 0.2558 0.8329
-vn -0.4908 0.2558 0.8329
-vn -0.4908 0.2558 0.8329
-vn -0.4908 0.2558 0.8329
-vn -0.1991 -0.9326 0.3009
-vn -0.1991 -0.9326 0.3009
-vn -0.1991 -0.9326 0.3009
-vn -0.1991 -0.9326 0.3009
-vn -0.2058 0.0231 -0.9783
-vn -0.2058 0.0231 -0.9783
-vn -0.2058 0.0231 -0.9783
-vn -0.2058 0.0231 -0.9783
-vn 0.2897 -0.0607 0.9552
-vn 0.2897 -0.0607 0.9552
-vn 0.2897 -0.0607 0.9552
-vn 0.3472 -0.9265 -0.1448
-vn 0.3472 -0.9265 -0.1448
-vn 0.3472 -0.9265 -0.1448
-vn 0.3472 -0.9265 -0.1448
-vn -0.0284 0.0393 -0.9988
-vn -0.0284 0.0393 -0.9988
-vn -0.0284 0.0393 -0.9988
-vn -0.0284 0.0393 -0.9988
-vn -0.7231 0.6525 0.2267
-vn -0.7231 0.6525 0.2267
-vn -0.7231 0.6525 0.2267
-vn -0.0951 -0.9499 -0.2979
-vn -0.0951 -0.9499 -0.2979
-vn -0.0951 -0.9499 -0.2979
-vn 0.0000 -0.8666 0.4991
-vn 0.0000 -0.8666 0.4991
-vn 0.0000 -0.8666 0.4991
-vn 0.0000 0.2868 0.9580
-vn 0.0000 0.2868 0.9580
-vn 0.0000 0.2868 0.9580
-vn 0.0000 0.2868 0.9580
-vn -0.0127 0.0741 -0.9972
-vn -0.0127 0.0741 -0.9972
-vn -0.0127 0.0741 -0.9972
-vn -0.0127 0.0741 -0.9972
-vn -0.5617 0.5448 -0.6226
-vn -0.5617 0.5448 -0.6226
-vn -0.5617 0.5448 -0.6226
-vn -0.5617 0.5448 -0.6226
-vn -0.4104 -0.2331 -0.8816
-vn -0.4104 -0.2331 -0.8816
-vn -0.4104 -0.2331 -0.8816
-vn -0.4104 -0.2331 -0.8816
-vn 0.2017 -0.9682 -0.1481
-vn 0.2017 -0.9682 -0.1481
-vn 0.2017 -0.9682 -0.1481
-vn 0.1853 -0.9802 -0.0705
-vn 0.1853 -0.9802 -0.0705
-vn 0.1853 -0.9802 -0.0705
-vn 0.0000 0.4993 0.8664
-vn 0.0000 0.4993 0.8664
-vn 0.0000 0.4993 0.8664
-vn 0.0000 0.4993 0.8664
-vn 0.0000 0.1646 0.9864
-vn 0.0000 0.1646 0.9864
-vn 0.0000 0.1646 0.9864
-vn -0.0082 0.5297 -0.8482
-vn -0.0082 0.5297 -0.8482
-vn -0.0082 0.5297 -0.8482
-vn -0.0082 0.5297 -0.8482
-vn 0.1634 0.0131 -0.9865
-vn 0.1634 0.0131 -0.9865
-vn 0.1634 0.0131 -0.9865
-vn 0.1634 0.0131 -0.9865
-vn 0.9827 -0.0885 -0.1628
-vn 0.9827 -0.0885 -0.1628
-vn 0.9827 -0.0885 -0.1628
-vn 0.9827 -0.0885 -0.1628
-vn -0.3989 -0.0990 0.9116
-vn -0.3989 -0.0990 0.9116
-vn -0.3989 -0.0990 0.9116
-vn -0.9831 0.0095 0.1829
-vn -0.9831 0.0095 0.1829
-vn -0.9831 0.0095 0.1829
-vn -0.9831 0.0095 0.1829
-vn 0.8610 -0.0854 -0.5014
-vn 0.8610 -0.0854 -0.5014
-vn 0.8610 -0.0854 -0.5014
-vn 0.8610 -0.0854 -0.5014
-vn 0.9175 -0.0321 0.3964
-vn 0.9175 -0.0321 0.3964
-vn 0.9175 -0.0321 0.3964
-vn 0.9175 -0.0321 0.3964
-vn 0.2238 0.0288 -0.9742
-vn 0.2238 0.0288 -0.9742
-vn 0.2238 0.0288 -0.9742
-vn 0.2238 0.0288 -0.9742
-vn 0.3754 0.9014 0.2157
-vn 0.3754 0.9014 0.2157
-vn 0.3754 0.9014 0.2157
-vn 0.3754 0.9014 0.2157
-vn 0.4122 0.8952 0.1693
-vn 0.4122 0.8952 0.1693
-vn 0.4122 0.8952 0.1693
-vn 0.4122 0.8952 0.1693
-vn 0.3397 -0.0890 0.9363
-vn 0.3397 -0.0890 0.9363
-vn 0.3397 -0.0890 0.9363
-vn 0.3397 -0.0890 0.9363
-vn 0.1393 0.8417 -0.5216
-vn 0.1393 0.8417 -0.5216
-vn 0.1393 0.8417 -0.5216
-vn 0.1393 0.8417 -0.5216
-vn 0.7724 -0.0229 0.6347
-vn 0.7724 -0.0229 0.6347
-vn 0.7724 -0.0229 0.6347
-vn 0.7724 -0.0229 0.6347
-vn 0.3000 -0.1901 0.9348
-vn 0.3000 -0.1901 0.9348
-vn 0.3000 -0.1901 0.9348
-vn 0.2668 0.2552 0.9293
-vn 0.2668 0.2552 0.9293
-vn 0.2668 0.2552 0.9293
-vn 0.2668 0.2552 0.9293
-vn -0.1291 0.1799 -0.9752
-vn -0.1291 0.1799 -0.9752
-vn -0.1291 0.1799 -0.9752
-vn -0.1291 0.1799 -0.9752
-vn -0.4379 -0.8826 -0.1713
-vn -0.4379 -0.8826 -0.1713
-vn -0.4379 -0.8826 -0.1713
-vn -0.4379 -0.8826 -0.1713
-vn 0.2686 0.9389 0.2152
-vn 0.2686 0.9389 0.2152
-vn 0.2686 0.9389 0.2152
-vn 0.2686 0.9389 0.2152
-vn -0.2569 -0.1860 0.9484
-vn -0.2569 -0.1860 0.9484
-vn -0.2569 -0.1860 0.9484
-vn -0.2569 -0.1860 0.9484
-vn 0.4719 -0.1610 -0.8668
-vn 0.4719 -0.1610 -0.8668
-vn 0.4719 -0.1610 -0.8668
-vn 0.4719 -0.1610 -0.8668
-vn -0.3121 -0.9015 -0.2997
-vn -0.3121 -0.9015 -0.2997
-vn -0.3121 -0.9015 -0.2997
-vn -0.3121 -0.9015 -0.2997
-vn 0.8992 0.1417 0.4139
-vn 0.8992 0.1417 0.4139
-vn 0.8992 0.1417 0.4139
-vn 0.8754 0.0683 -0.4785
-vn 0.8754 0.0683 -0.4785
-vn 0.8754 0.0683 -0.4785
-vn 0.8754 0.0683 -0.4785
-vn 0.8951 -0.3473 -0.2795
-vn 0.8951 -0.3473 -0.2795
-vn 0.8951 -0.3473 -0.2795
-vn 0.0453 0.0861 -0.9953
-vn 0.0453 0.0861 -0.9953
-vn 0.0453 0.0861 -0.9953
-vn 0.0453 0.0861 -0.9953
-vn -0.9869 0.0540 0.1522
-vn -0.9869 0.0540 0.1522
-vn -0.9869 0.0540 0.1522
-vn 0.3933 -0.2947 0.8709
-vn 0.3933 -0.2947 0.8709
-vn 0.3933 -0.2947 0.8709
-vn 0.3933 -0.2947 0.8709
-vn -0.0131 0.2104 -0.9775
-vn -0.0131 0.2104 -0.9775
-vn -0.0131 0.2104 -0.9775
-vn -0.0131 0.2104 -0.9775
-vn -0.9792 0.0511 0.1961
-vn -0.9792 0.0511 0.1961
-vn -0.9792 0.0511 0.1961
-vn -0.9792 0.0511 0.1961
-vn 0.3700 -0.1406 0.9183
-vn 0.3700 -0.1406 0.9183
-vn 0.3700 -0.1406 0.9183
-vn 0.3700 -0.1406 0.9183
-vn 0.9865 -0.0120 -0.1635
-vn 0.9865 -0.0120 -0.1635
-vn 0.9865 -0.0120 -0.1635
-vn 0.9865 -0.0120 -0.1635
-vn 0.8812 -0.3950 -0.2597
-vn 0.8812 -0.3950 -0.2597
-vn 0.8812 -0.3950 -0.2597
-vn 0.8812 -0.3950 -0.2597
-vn -0.3416 -0.9364 -0.0806
-vn -0.3416 -0.9364 -0.0806
-vn -0.3416 -0.9364 -0.0806
-vn -0.3416 -0.9364 -0.0806
-vn 0.2950 -0.2184 -0.9302
-vn 0.2950 -0.2184 -0.9302
-vn 0.2950 -0.2184 -0.9302
-vn 0.2950 -0.2184 -0.9302
-vn 0.2179 0.5180 0.8271
-vn 0.2179 0.5180 0.8271
-vn 0.2179 0.5180 0.8271
-vn 0.2179 0.5180 0.8271
-vn 0.8781 0.1721 0.4464
-vn 0.8781 0.1721 0.4464
-vn 0.8781 0.1721 0.4464
-vn 0.8781 0.1721 0.4464
-vn 0.3519 0.0039 0.9360
-vn 0.3519 0.0039 0.9360
-vn 0.3519 0.0039 0.9360
-vn 0.3519 0.0039 0.9360
-vn 0.5009 0.1733 0.8480
-vn 0.5009 0.1733 0.8480
-vn 0.5009 0.1733 0.8480
-vn 0.4195 -0.8939 0.1582
-vn 0.4195 -0.8939 0.1582
-vn 0.4195 -0.8939 0.1582
-vn 0.8797 0.2347 0.4135
-vn 0.8797 0.2347 0.4135
-vn 0.8797 0.2347 0.4135
-vn 0.8797 0.2347 0.4135
-vn 0.4054 0.4008 0.8216
-vn 0.4054 0.4008 0.8216
-vn 0.4054 0.4008 0.8216
-vn 0.4054 0.4008 0.8216
-vn 0.9589 0.1397 0.2470
-vn 0.9589 0.1397 0.2470
-vn 0.9589 0.1397 0.2470
-vn 0.9589 0.1397 0.2470
-vn 0.9826 0.0104 0.1854
-vn 0.9826 0.0104 0.1854
-vn 0.9826 0.0104 0.1854
-vn 0.8356 -0.5474 -0.0454
-vn 0.8356 -0.5474 -0.0454
-vn 0.8356 -0.5474 -0.0454
-vn 0.9624 -0.1782 0.2052
-vn 0.9624 -0.1782 0.2052
-vn 0.9624 -0.1782 0.2052
-vn 0.9624 -0.1782 0.2052
-vn 0.5693 0.1809 0.8020
-vn 0.5693 0.1809 0.8020
-vn 0.5693 0.1809 0.8020
-vn 0.5693 0.1809 0.8020
-vn 0.4248 -0.1131 0.8982
-vn 0.4248 -0.1131 0.8982
-vn 0.4248 -0.1131 0.8982
-vn 0.4248 -0.1131 0.8982
-vn 0.8013 -0.5559 -0.2211
-vn 0.8013 -0.5559 -0.2211
-vn 0.8013 -0.5559 -0.2211
-vn 0.6057 -0.0427 0.7945
-vn 0.6057 -0.0427 0.7945
-vn 0.6057 -0.0427 0.7945
-vn 0.6057 -0.0427 0.7945
-vn 0.9625 0.1322 0.2368
-vn 0.9625 0.1322 0.2368
-vn 0.9625 0.1322 0.2368
-vn 0.9625 0.1322 0.2368
-vn -0.1464 -0.4023 -0.9037
-vn -0.1464 -0.4023 -0.9037
-vn -0.1464 -0.4023 -0.9037
-vn -0.8689 -0.4884 0.0797
-vn -0.8689 -0.4884 0.0797
-vn -0.8689 -0.4884 0.0797
-vn 0.2547 -0.3961 0.8821
-vn 0.2547 -0.3961 0.8821
-vn 0.2547 -0.3961 0.8821
-vn 0.2547 -0.3961 0.8821
-vn 0.5805 -0.7821 -0.2267
-vn 0.5805 -0.7821 -0.2267
-vn 0.5805 -0.7821 -0.2267
-vn 0.5805 -0.7821 -0.2267
-vn -0.9816 0.0670 0.1787
-vn -0.9816 0.0670 0.1787
-vn -0.9816 0.0670 0.1787
-vn -0.9816 0.0670 0.1787
-vn 0.8821 0.1569 -0.4442
-vn 0.8821 0.1569 -0.4442
-vn 0.8821 0.1569 -0.4442
-vn 0.8821 0.1569 -0.4442
-vn 0.8922 0.1700 0.4184
-vn 0.8922 0.1700 0.4184
-vn 0.8922 0.1700 0.4184
-vn 0.4727 0.1273 0.8720
-vn 0.4727 0.1273 0.8720
-vn 0.4727 0.1273 0.8720
-vn 0.9265 0.0869 0.3661
-vn 0.9265 0.0869 0.3661
-vn 0.9265 0.0869 0.3661
-vn 0.1743 -0.1645 0.9709
-vn 0.1743 -0.1645 0.9709
-vn 0.1743 -0.1645 0.9709
-vn 0.1743 -0.1645 0.9709
-vn 0.5265 0.8267 0.1983
-vn 0.5265 0.8267 0.1983
-vn 0.5265 0.8267 0.1983
-vn 0.5265 0.8267 0.1983
-vn 0.1549 -0.0355 -0.9873
-vn 0.1549 -0.0355 -0.9873
-vn 0.1549 -0.0355 -0.9873
-vn -0.0017 -0.1699 0.9855
-vn -0.0017 -0.1699 0.9855
-vn -0.0017 -0.1699 0.9855
-vn -0.0017 -0.1699 0.9855
-vn 0.2158 0.8144 0.5387
-vn 0.2158 0.8144 0.5387
-vn 0.2158 0.8144 0.5387
-vn 0.2158 0.8144 0.5387
-vn 0.2761 0.9321 0.2345
-vn 0.2761 0.9321 0.2345
-vn 0.2761 0.9321 0.2345
-vn 0.9428 0.2795 0.1817
-vn 0.9428 0.2795 0.1817
-vn 0.9428 0.2795 0.1817
-vn 0.9986 -0.0518 -0.0141
-vn 0.9986 -0.0518 -0.0141
-vn 0.9986 -0.0518 -0.0141
-vn 0.1080 -0.9096 0.4012
-vn 0.1080 -0.9096 0.4012
-vn 0.1080 -0.9096 0.4012
-vn -0.2345 0.8990 0.3700
-vn -0.2345 0.8990 0.3700
-vn -0.2345 0.8990 0.3700
-vn -0.2345 0.8990 0.3700
-vn -0.9921 0.0722 0.1030
-vn -0.9921 0.0722 0.1030
-vn -0.9921 0.0722 0.1030
-vn -0.9921 0.0722 0.1030
-vn 0.0022 -1.0000 -0.0050
-vn 0.0022 -1.0000 -0.0050
-vn 0.0022 -1.0000 -0.0050
-vn 0.0022 -1.0000 -0.0050
-vn -0.9203 0.0429 -0.3888
-vn -0.9203 0.0429 -0.3888
-vn -0.9203 0.0429 -0.3888
-vn -0.9203 0.0429 -0.3888
-vn -0.2703 0.4526 0.8498
-vn -0.2703 0.4526 0.8498
-vn -0.2703 0.4526 0.8498
-vn -0.2703 0.4526 0.8498
-vn 0.9574 -0.0737 -0.2791
-vn 0.9574 -0.0737 -0.2791
-vn 0.9574 -0.0737 -0.2791
-vn 0.9574 -0.0737 -0.2791
-vn 0.7381 0.3081 0.6002
-vn 0.7381 0.3081 0.6002
-vn 0.7381 0.3081 0.6002
-vn 0.7381 0.3081 0.6002
-vn 0.5607 0.8117 0.1637
-vn 0.5607 0.8117 0.1637
-vn 0.5607 0.8117 0.1637
-vn 0.5607 0.8117 0.1637
-vn 0.4525 -0.0743 0.8887
-vn 0.4525 -0.0743 0.8887
-vn 0.4525 -0.0743 0.8887
-vn 0.4525 -0.0743 0.8887
-vn 0.1186 -0.9178 -0.3790
-vn 0.1186 -0.9178 -0.3790
-vn 0.1186 -0.9178 -0.3790
-vn -0.7515 -0.6568 -0.0629
-vn -0.7515 -0.6568 -0.0629
-vn -0.7515 -0.6568 -0.0629
-vn 0.9597 0.0281 -0.2798
-vn 0.9597 0.0281 -0.2798
-vn 0.9597 0.0281 -0.2798
-vn 0.9597 0.0281 -0.2798
-vn 0.1273 -0.1278 -0.9836
-vn 0.1273 -0.1278 -0.9836
-vn 0.1273 -0.1278 -0.9836
-vn 0.1273 -0.1278 -0.9836
-vn 0.3455 0.1354 0.9286
-vn 0.3455 0.1354 0.9286
-vn 0.3455 0.1354 0.9286
-vn 0.3455 0.1354 0.9286
-vn 0.2764 -0.8870 0.3700
-vn 0.2764 -0.8870 0.3700
-vn 0.2764 -0.8870 0.3700
-vn 0.2451 -0.1993 0.9488
-vn 0.2451 -0.1993 0.9488
-vn 0.2451 -0.1993 0.9488
-vn 0.2451 -0.1993 0.9488
-vn 0.6807 -0.2106 -0.7016
-vn 0.6807 -0.2106 -0.7016
-vn 0.6807 -0.2106 -0.7016
-vn 0.6807 -0.2106 -0.7016
-vn 0.7106 0.6739 0.2021
-vn 0.7106 0.6739 0.2021
-vn 0.7106 0.6739 0.2021
-vn 0.7106 0.6739 0.2021
-vn 0.5757 -0.8031 -0.1535
-vn 0.5757 -0.8031 -0.1535
-vn 0.5757 -0.8031 -0.1535
-vn 0.5757 -0.8031 -0.1535
-vn -0.2345 0.0522 0.9707
-vn -0.2345 0.0522 0.9707
-vn -0.2345 0.0522 0.9707
-vn -0.2345 0.0522 0.9707
-vn 0.0517 0.0476 -0.9975
-vn 0.0517 0.0476 -0.9975
-vn 0.0517 0.0476 -0.9975
-vn 0.0517 0.0476 -0.9975
-vn 0.2831 0.9562 0.0752
-vn 0.2831 0.9562 0.0752
-vn 0.2831 0.9562 0.0752
-vn 0.2831 0.9562 0.0752
-vn -0.0507 -0.9935 -0.1016
-vn -0.0507 -0.9935 -0.1016
-vn -0.0507 -0.9935 -0.1016
-vn -0.0507 -0.9935 -0.1016
-vn 0.3031 0.0471 0.9518
-vn 0.3031 0.0471 0.9518
-vn 0.3031 0.0471 0.9518
-vn 0.3031 0.0471 0.9518
-vn 0.6130 -0.0352 0.7893
-vn 0.6130 -0.0352 0.7893
-vn 0.6130 -0.0352 0.7893
-vn 0.6130 -0.0352 0.7893
-vn 0.2884 -0.1753 -0.9413
-vn 0.2884 -0.1753 -0.9413
-vn 0.2884 -0.1753 -0.9413
-vn 0.2884 -0.1753 -0.9413
-vn 0.2159 0.9761 0.0226
-vn 0.2159 0.9761 0.0226
-vn 0.2159 0.9761 0.0226
-vn 0.2159 0.9761 0.0226
-vn -0.8065 -0.4408 -0.3941
-vn -0.8065 -0.4408 -0.3941
-vn -0.8065 -0.4408 -0.3941
-vn 0.8405 -0.0442 0.5400
-vn 0.8405 -0.0442 0.5400
-vn 0.8405 -0.0442 0.5400
-vn 0.8405 -0.0442 0.5400
-vn 0.9791 -0.1752 -0.1028
-vn 0.9791 -0.1752 -0.1028
-vn 0.9791 -0.1752 -0.1028
-vn 0.9791 -0.1752 -0.1028
-vn 0.5602 0.7378 0.3766
-vn 0.5602 0.7378 0.3766
-vn 0.5602 0.7378 0.3766
-vn -0.4841 0.3212 0.8139
-vn -0.4841 0.3212 0.8139
-vn -0.4841 0.3212 0.8139
-vn -0.4841 0.3212 0.8139
-vn -0.7657 -0.6427 -0.0248
-vn -0.7657 -0.6427 -0.0248
-vn -0.7657 -0.6427 -0.0248
-vn -0.7657 -0.6427 -0.0248
-vn -0.0687 0.6166 0.7843
-vn -0.0687 0.6166 0.7843
-vn -0.0687 0.6166 0.7843
-vn 0.0699 -0.0315 0.9971
-vn 0.0699 -0.0315 0.9971
-vn 0.0699 -0.0315 0.9971
-vn 0.0699 -0.0315 0.9971
-vn 0.7898 -0.2268 0.5698
-vn 0.7898 -0.2268 0.5698
-vn 0.7898 -0.2268 0.5698
-vn 0.8001 -0.0972 0.5919
-vn 0.8001 -0.0972 0.5919
-vn 0.8001 -0.0972 0.5919
-vn 0.8001 -0.0972 0.5919
-vn 0.5940 -0.7913 0.1450
-vn 0.5940 -0.7913 0.1450
-vn 0.5940 -0.7913 0.1450
-vn 0.5940 -0.7913 0.1450
-vn 0.0906 0.1887 0.9778
-vn 0.0906 0.1887 0.9778
-vn 0.0906 0.1887 0.9778
-vn 0.0984 0.0806 -0.9919
-vn 0.0984 0.0806 -0.9919
-vn 0.0984 0.0806 -0.9919
-vn 0.0984 0.0806 -0.9919
-vn 0.4368 0.8892 0.1359
-vn 0.4368 0.8892 0.1359
-vn 0.4368 0.8892 0.1359
-vn 0.4368 0.8892 0.1359
-vn -0.4359 -0.8263 -0.3567
-vn -0.4359 -0.8263 -0.3567
-vn -0.4359 -0.8263 -0.3567
-vn -0.4359 -0.8263 -0.3567
-vn -0.1164 -0.1902 0.9748
-vn -0.1164 -0.1902 0.9748
-vn -0.1164 -0.1902 0.9748
-vn -0.1164 -0.1902 0.9748
-vn 0.0304 0.1155 -0.9928
-vn 0.0304 0.1155 -0.9928
-vn 0.0304 0.1155 -0.9928
-vn 0.0304 0.1155 -0.9928
-vn 0.4473 0.8833 0.1406
-vn 0.4473 0.8833 0.1406
-vn 0.4473 0.8833 0.1406
-vn -0.4096 -0.8479 -0.3367
-vn -0.4096 -0.8479 -0.3367
-vn -0.4096 -0.8479 -0.3367
-vn -0.9835 -0.1436 0.1101
-vn -0.9835 -0.1436 0.1101
-vn -0.9835 -0.1436 0.1101
-vn -0.3745 0.2581 0.8906
-vn -0.3745 0.2581 0.8906
-vn -0.3745 0.2581 0.8906
-vn -0.3745 0.2581 0.8906
-vn -0.3866 -0.6109 0.6909
-vn -0.3866 -0.6109 0.6909
-vn -0.3866 -0.6109 0.6909
-vn -0.3866 -0.6109 0.6909
-vn 0.2026 0.7986 0.5667
-vn 0.2026 0.7986 0.5667
-vn 0.2026 0.7986 0.5667
-vn 0.3472 -0.1729 0.9217
-vn 0.3472 -0.1729 0.9217
-vn 0.3472 -0.1729 0.9217
-vn 0.0557 0.0627 -0.9965
-vn 0.0557 0.0627 -0.9965
-vn 0.0557 0.0627 -0.9965
-vn 0.0557 0.0627 -0.9965
-vn 0.5625 0.8268 -0.0012
-vn 0.5625 0.8268 -0.0012
-vn 0.5625 0.8268 -0.0012
-vn 0.5625 0.8268 -0.0012
-vn -0.1065 -0.9839 -0.1437
-vn -0.1065 -0.9839 -0.1437
-vn -0.1065 -0.9839 -0.1437
-vn 0.1926 0.4841 0.8535
-vn 0.1926 0.4841 0.8535
-vn 0.1926 0.4841 0.8535
-vn -0.0135 -0.9999 -0.0004
-vn -0.0135 -0.9999 -0.0004
-vn -0.0135 -0.9999 -0.0004
-vn -0.0135 -0.9999 -0.0004
-vn 0.1584 0.3315 0.9300
-vn 0.1584 0.3315 0.9300
-vn 0.1584 0.3315 0.9300
-vn -0.9439 -0.3276 -0.0423
-vn -0.9439 -0.3276 -0.0423
-vn -0.9439 -0.3276 -0.0423
-vn 0.0000 -0.0454 0.9990
-vn 0.0000 -0.0454 0.9990
-vn 0.0000 -0.0454 0.9990
-vn 0.0985 -0.9710 0.2177
-vn 0.0985 -0.9710 0.2177
-vn 0.0985 -0.9710 0.2177
-vn 0.0985 -0.9710 0.2177
-vn 0.8813 0.0216 0.4721
-vn 0.8813 0.0216 0.4721
-vn 0.8813 0.0216 0.4721
-vn 0.9213 -0.1090 -0.3733
-vn 0.9213 -0.1090 -0.3733
-vn 0.9213 -0.1090 -0.3733
-vn 0.9213 -0.1090 -0.3733
-vn 0.4018 -0.1466 0.9039
-vn 0.4018 -0.1466 0.9039
-vn 0.4018 -0.1466 0.9039
-vn 0.4018 -0.1466 0.9039
-vn 0.2305 -0.1079 -0.9671
-vn 0.2305 -0.1079 -0.9671
-vn 0.2305 -0.1079 -0.9671
-vn 0.2305 -0.1079 -0.9671
-vn -0.9922 -0.1101 0.0578
-vn -0.9922 -0.1101 0.0578
-vn -0.9922 -0.1101 0.0578
-vn -0.9922 -0.1101 0.0578
-vn 0.3247 0.0848 -0.9420
-vn 0.3247 0.0848 -0.9420
-vn 0.3247 0.0848 -0.9420
-vn 0.3247 0.0848 -0.9420
-vn 0.8896 0.3112 -0.3342
-vn 0.8896 0.3112 -0.3342
-vn 0.8896 0.3112 -0.3342
-vn 0.8826 0.1868 0.4314
-vn 0.8826 0.1868 0.4314
-vn 0.8826 0.1868 0.4314
-vn 0.8826 0.1868 0.4314
-vn 0.4908 0.2558 0.8329
-vn 0.4908 0.2558 0.8329
-vn 0.4908 0.2558 0.8329
-vn 0.4908 0.2558 0.8329
-vn 0.1991 -0.9326 0.3009
-vn 0.1991 -0.9326 0.3009
-vn 0.1991 -0.9326 0.3009
-vn 0.1991 -0.9326 0.3009
-vn 0.2058 0.0231 -0.9783
-vn 0.2058 0.0231 -0.9783
-vn 0.2058 0.0231 -0.9783
-vn 0.2058 0.0231 -0.9783
-vn -0.2901 -0.0605 0.9551
-vn -0.2901 -0.0605 0.9551
-vn -0.2901 -0.0605 0.9551
-vn -0.3489 -0.9259 -0.1447
-vn -0.3489 -0.9259 -0.1447
-vn -0.3489 -0.9259 -0.1447
-vn -0.3489 -0.9259 -0.1447
-vn 0.0284 0.0393 -0.9988
-vn 0.0284 0.0393 -0.9988
-vn 0.0284 0.0393 -0.9988
-vn 0.0284 0.0393 -0.9988
-vn 0.7231 0.6525 0.2267
-vn 0.7231 0.6525 0.2267
-vn 0.7231 0.6525 0.2267
-vn 0.0951 -0.9499 -0.2979
-vn 0.0951 -0.9499 -0.2979
-vn 0.0951 -0.9499 -0.2979
-vn 0.0104 0.0752 -0.9971
-vn 0.0104 0.0752 -0.9971
-vn 0.0104 0.0752 -0.9971
-vn 0.0104 0.0752 -0.9971
-vn 0.5617 0.5448 -0.6226
-vn 0.5617 0.5448 -0.6226
-vn 0.5617 0.5448 -0.6226
-vn 0.5617 0.5448 -0.6226
-vn 0.4104 -0.2331 -0.8816
-vn 0.4104 -0.2331 -0.8816
-vn 0.4104 -0.2331 -0.8816
-vn 0.4104 -0.2331 -0.8816
-vn -0.2017 -0.9682 -0.1481
-vn -0.2017 -0.9682 -0.1481
-vn -0.2017 -0.9682 -0.1481
-vn -0.1853 -0.9802 -0.0705
-vn -0.1853 -0.9802 -0.0705
-vn -0.1853 -0.9802 -0.0705
-vn 0.0082 0.5297 -0.8482
-vn 0.0082 0.5297 -0.8482
-vn 0.0082 0.5297 -0.8482
-vn 0.0082 0.5297 -0.8482
-vn 0.4981 0.2118 0.8409
-vn 0.4981 0.2118 0.8409
-vn 0.4981 0.2118 0.8409
-vn 0.4981 0.2118 0.8409
-vn 0.9154 0.1115 0.3868
-vn 0.9154 0.1115 0.3868
-vn 0.9154 0.1115 0.3868
-vn 0.9154 0.1115 0.3868
-vn 0.9849 0.1424 0.0984
-vn 0.9849 0.1424 0.0984
-vn 0.9849 0.1424 0.0984
-vn 0.9849 0.1424 0.0984
-vn 0.9176 0.2222 0.3295
-vn 0.9176 0.2222 0.3295
-vn 0.9176 0.2222 0.3295
-vn 0.8424 0.0336 0.5378
-vn 0.8424 0.0336 0.5378
-vn 0.8424 0.0336 0.5378
-vn 0.8424 0.0336 0.5378
-vn 0.9822 0.1564 0.1044
-vn 0.9822 0.1564 0.1044
-vn 0.9822 0.1564 0.1044
-vn 0.9822 0.1564 0.1044
-vn 0.8392 0.2042 -0.5041
-vn 0.8392 0.2042 -0.5041
-vn 0.8392 0.2042 -0.5041
-vn 0.8392 0.2042 -0.5041
-vn 0.8476 0.1279 -0.5150
-vn 0.8476 0.1279 -0.5150
-vn 0.8476 0.1279 -0.5150
-vn 0.8476 0.1279 -0.5150
-vn 0.3651 0.2222 -0.9041
-vn 0.3651 0.2222 -0.9041
-vn 0.3651 0.2222 -0.9041
-vn 0.3651 0.2222 -0.9041
-vn 0.2551 0.0353 -0.9663
-vn 0.2551 0.0353 -0.9663
-vn 0.2551 0.0353 -0.9663
-vn 0.2551 0.0353 -0.9663
-vn 0.4221 0.6183 0.6630
-vn 0.4221 0.6183 0.6630
-vn 0.4221 0.6183 0.6630
-vn 0.7567 0.6087 0.2385
-vn 0.7567 0.6087 0.2385
-vn 0.7567 0.6087 0.2385
-vn 0.7567 0.6087 0.2385
-vn 0.8063 0.5860 0.0806
-vn 0.8063 0.5860 0.0806
-vn 0.8063 0.5860 0.0806
-vn 0.4688 0.7655 -0.4407
-vn 0.4688 0.7655 -0.4407
-vn 0.4688 0.7655 -0.4407
-vn 0.4688 0.7655 -0.4407
-vn 0.2815 0.7238 -0.6299
-vn 0.2815 0.7238 -0.6299
-vn 0.2815 0.7238 -0.6299
-vn 0.2964 0.9524 0.0712
-vn 0.2964 0.9524 0.0712
-vn 0.2964 0.9524 0.0712
-vn 0.1841 0.9614 -0.2047
-vn 0.1841 0.9614 -0.2047
-vn 0.1841 0.9614 -0.2047
-vn 0.0000 0.7502 0.6612
-vn 0.0000 0.7502 0.6612
-vn 0.0000 0.7502 0.6612
-vn 0.0000 0.7502 0.6612
-vn 0.2047 0.1425 0.9684
-vn 0.2047 0.1425 0.9684
-vn 0.2047 0.1425 0.9684
-vn 0.0000 0.2848 0.9586
-vn 0.0000 0.2848 0.9586
-vn 0.0000 0.2848 0.9586
-vn -0.9000 0.0177 0.4355
-vn -0.9000 0.0177 0.4355
-vn -0.9000 0.0177 0.4355
-vn -0.9000 0.0177 0.4355
-vn -0.4981 0.2118 0.8409
-vn -0.4981 0.2118 0.8409
-vn -0.4981 0.2118 0.8409
-vn -0.4981 0.2118 0.8409
-vn -0.9154 0.1115 0.3868
-vn -0.9154 0.1115 0.3868
-vn -0.9154 0.1115 0.3868
-vn -0.9154 0.1115 0.3868
-vn -0.9849 0.1424 0.0984
-vn -0.9849 0.1424 0.0984
-vn -0.9849 0.1424 0.0984
-vn -0.9849 0.1424 0.0984
-vn -0.9176 0.2222 0.3295
-vn -0.9176 0.2222 0.3295
-vn -0.9176 0.2222 0.3295
-vn -0.8424 0.0336 0.5378
-vn -0.8424 0.0336 0.5378
-vn -0.8424 0.0336 0.5378
-vn -0.8424 0.0336 0.5378
-vn -0.9822 0.1564 0.1044
-vn -0.9822 0.1564 0.1044
-vn -0.9822 0.1564 0.1044
-vn -0.9822 0.1564 0.1044
-vn -0.8392 0.2042 -0.5041
-vn -0.8392 0.2042 -0.5041
-vn -0.8392 0.2042 -0.5041
-vn -0.8392 0.2042 -0.5041
-vn -0.8476 0.1279 -0.5150
-vn -0.8476 0.1279 -0.5150
-vn -0.8476 0.1279 -0.5150
-vn -0.8476 0.1279 -0.5150
-vn -0.3651 0.2222 -0.9041
-vn -0.3651 0.2222 -0.9041
-vn -0.3651 0.2222 -0.9041
-vn -0.3651 0.2222 -0.9041
-vn -0.2551 0.0353 -0.9663
-vn -0.2551 0.0353 -0.9663
-vn -0.2551 0.0353 -0.9663
-vn -0.2551 0.0353 -0.9663
-vn -0.4221 0.6183 0.6630
-vn -0.4221 0.6183 0.6630
-vn -0.4221 0.6183 0.6630
-vn -0.7568 0.6087 0.2385
-vn -0.7568 0.6087 0.2385
-vn -0.7568 0.6087 0.2385
-vn -0.7568 0.6087 0.2385
-vn -0.8063 0.5860 0.0806
-vn -0.8063 0.5860 0.0806
-vn -0.8063 0.5860 0.0806
-vn -0.4688 0.7655 -0.4407
-vn -0.4688 0.7655 -0.4407
-vn -0.4688 0.7655 -0.4407
-vn -0.4688 0.7655 -0.4407
-vn -0.2815 0.7238 -0.6299
-vn -0.2815 0.7238 -0.6299
-vn -0.2815 0.7238 -0.6299
-vn -0.2964 0.9524 0.0712
-vn -0.2964 0.9524 0.0712
-vn -0.2964 0.9524 0.0712
-vn -0.1841 0.9614 -0.2047
-vn -0.1841 0.9614 -0.2047
-vn -0.1841 0.9614 -0.2047
-vn 0.0000 0.9651 0.2620
-vn 0.0000 0.9651 0.2620
-vn 0.0000 0.9651 0.2620
-vn -0.2047 0.1425 0.9684
-vn -0.2047 0.1425 0.9684
-vn -0.2047 0.1425 0.9684
-vn 0.9000 0.0177 0.4355
-vn 0.9000 0.0177 0.4355
-vn 0.9000 0.0177 0.4355
-vn 0.9000 0.0177 0.4355
-vn 0.2337 0.1582 -0.9593
-vn 0.2337 0.1582 -0.9593
-vn 0.2337 0.1582 -0.9593
-vn 0.2337 0.1582 -0.9593
-vn 0.9108 0.1087 0.3983
-vn 0.9108 0.1087 0.3983
-vn 0.9108 0.1087 0.3983
-vn 0.9108 0.1087 0.3983
-vn -0.2721 -0.2324 0.9338
-vn -0.2721 -0.2324 0.9338
-vn -0.2721 -0.2324 0.9338
-vn -0.2721 -0.2324 0.9338
-vn 0.2667 0.2664 -0.9262
-vn 0.2667 0.2664 -0.9262
-vn 0.2667 0.2664 -0.9262
-vn 0.2667 0.2664 -0.9262
-vn -0.2859 -0.7827 0.5528
-vn -0.2859 -0.7827 0.5528
-vn -0.2859 -0.7827 0.5528
-vn -0.2859 -0.7827 0.5528
-vn 0.8992 0.0079 0.4376
-vn 0.8992 0.0079 0.4376
-vn 0.8992 0.0079 0.4376
-vn -0.2937 0.9558 0.0153
-vn -0.2937 0.9558 0.0153
-vn -0.2937 0.9558 0.0153
-vn -0.2937 0.9558 0.0153
-vn -0.1893 -0.7092 -0.6791
-vn -0.1893 -0.7092 -0.6791
-vn -0.1893 -0.7092 -0.6791
-vn -0.1893 -0.7092 -0.6791
-vn 0.9591 0.2709 0.0827
-vn 0.9591 0.2709 0.0827
-vn 0.9591 0.2709 0.0827
-vn 0.9591 0.2709 0.0827
-vn 0.1679 -0.1013 0.9806
-vn 0.1679 -0.1013 0.9806
-vn 0.1679 -0.1013 0.9806
-vn -0.1678 0.1072 -0.9800
-vn -0.1678 0.1072 -0.9800
-vn -0.1678 0.1072 -0.9800
-vn 0.0422 -0.7280 0.6843
-vn 0.0422 -0.7280 0.6843
-vn 0.0422 -0.7280 0.6843
-vn 0.0422 -0.7280 0.6843
-vn 0.9372 -0.3398 0.0787
-vn 0.9372 -0.3398 0.0787
-vn 0.9372 -0.3398 0.0787
-# 1312 vertex normals
-
-vt 0.3107 0.8057 0.0000
-vt 0.0418 0.8273 0.0000
-vt 0.0224 0.9163 0.0000
-vt 0.3107 0.4728 0.0000
-vt 0.1035 0.2227 0.0000
-vt 0.1074 0.0253 0.0000
-vt 0.0899 0.0232 0.0000
-vt 0.0636 0.2210 0.0000
-vt 0.1450 0.0577 0.0000
-vt 0.1687 0.2207 0.0000
-vt 0.1815 0.0586 0.0000
-vt 0.1640 0.0674 0.0000
-vt 0.2169 0.2236 0.0000
-vt 0.2201 0.0170 0.0000
-vt 0.2532 0.2123 0.0000
-vt 0.1832 0.6616 0.0000
-vt 0.1399 0.7884 0.0000
-vt 0.1833 0.7921 0.0000
-vt 0.2391 0.6616 0.0000
-vt 0.2493 0.8024 0.0000
-vt 0.1804 0.9648 0.0000
-vt 0.1341 0.8526 0.0000
-vt 0.0281 0.8778 0.0000
-vt 0.8077 0.9449 0.0000
-vt 0.7460 0.9866 0.0000
-vt 0.7460 0.9449 0.0000
-vt 0.8055 0.9227 0.0000
-vt 0.7460 0.9227 0.0000
-vt 0.7460 0.8094 0.0000
-vt 0.8053 0.8344 0.0000
-vt 0.2595 0.9680 0.0000
-vt 0.2566 0.8644 0.0000
-vt 0.1810 0.8442 0.0000
-vt 0.8086 0.8094 0.0000
-vt 0.8795 0.8094 0.0000
-vt 0.8795 0.8344 0.0000
-vt 0.6800 0.8094 0.0000
-vt 0.6889 0.9227 0.0000
-vt 0.6269 0.9227 0.0000
-vt 0.8108 0.7884 0.0000
-vt 0.7460 0.7884 0.0000
-vt 0.7460 0.6802 0.0000
-vt 0.8127 0.7051 0.0000
-vt 0.6918 0.6802 0.0000
-vt 0.6777 0.7884 0.0000
-vt 0.8099 0.6802 0.0000
-vt 0.8622 0.6802 0.0000
-vt 0.8795 0.7051 0.0000
-vt 0.8795 0.7884 0.0000
-vt 0.1854 0.4365 0.0000
-vt 0.1439 0.4087 0.0000
-vt 0.1364 0.4405 0.0000
-vt 0.0869 0.4366 0.0000
-vt 0.0973 0.3997 0.0000
-vt 0.1665 0.2975 0.0000
-vt 0.1634 0.2856 0.0000
-vt 0.1066 0.2975 0.0000
-vt 0.0549 0.2975 0.0000
-vt 0.0533 0.3137 0.0000
-vt 0.1055 0.3137 0.0000
-vt 0.2216 0.2810 0.0000
-vt 0.2243 0.2975 0.0000
-vt 0.0907 0.2286 0.0000
-vt 0.2823 0.2237 0.0000
-vt 0.2203 0.2369 0.0000
-vt 0.1517 0.2329 0.0000
-vt 0.2858 0.9314 0.0000
-vt 0.5026 0.1853 0.0000
-vt 0.5291 0.2009 0.0000
-vt 0.5298 0.1673 0.0000
-vt 0.5088 0.1569 0.0000
-vt 0.5062 0.1298 0.0000
-vt 0.4678 0.2318 0.0000
-vt 0.4344 0.1874 0.0000
-vt 0.4309 0.2270 0.0000
-vt 0.4999 0.2272 0.0000
-vt 0.5055 0.2476 0.0000
-vt 0.5256 0.2239 0.0000
-vt 0.4643 0.2508 0.0000
-vt 0.4516 0.2875 0.0000
-vt 0.3672 0.2403 0.0000
-vt 0.4357 0.0900 0.0000
-vt 0.3761 0.1116 0.0000
-vt 0.4347 0.1190 0.0000
-vt 0.3880 0.0541 0.0000
-vt 0.4096 0.1930 0.0000
-vt 0.5070 0.0878 0.0000
-vt 0.2699 0.9825 0.0000
-vt 0.3078 0.9535 0.0000
-vt 0.2255 0.3137 0.0000
-vt 0.1336 0.4715 0.0000
-vt 0.0941 0.4709 0.0000
-vt 0.2576 0.5822 0.0000
-vt 0.3084 0.0404 0.0000
-vt 0.2902 0.0307 0.0000
-vt 0.3135 0.0238 0.0000
-vt 0.7658 0.0409 0.0000
-vt 0.2740 0.0396 0.0000
-vt 0.2662 0.0236 0.0000
-vt 0.1657 0.3137 0.0000
-vt 0.0417 0.3958 0.0000
-vt 0.7109 0.6619 0.0000
-vt 0.7460 0.6619 0.0000
-vt 0.8009 0.6619 0.0000
-vt 0.8356 0.6619 0.0000
-vt 0.7232 0.6305 0.0000
-vt 0.7460 0.6305 0.0000
-vt 0.7962 0.6305 0.0000
-vt 0.8121 0.6305 0.0000
-vt 0.7839 0.5279 0.0000
-vt 0.7997 0.5230 0.0000
-vt 0.7802 0.5027 0.0000
-vt 0.7063 0.5876 0.0000
-vt 0.6631 0.5538 0.0000
-vt 0.7660 0.5742 0.0000
-vt 0.7416 0.4982 0.0000
-vt 0.7379 0.5389 0.0000
-vt 0.7561 0.5372 0.0000
-vt 0.7186 0.5457 0.0000
-vt 0.8063 0.5569 0.0000
-vt 0.7882 0.5651 0.0000
-vt 0.8133 0.5545 0.0000
-vt 0.2610 0.4728 0.0000
-vt 0.3489 0.3960 0.0000
-vt 0.2513 0.4119 0.0000
-vt 0.0526 0.4653 0.0000
-vt 0.3107 0.6616 0.0000
-vt 0.3107 0.8605 0.0000
-vt 0.0614 0.7628 0.0000
-vt 0.5338 0.1538 0.0000
-vt 0.5339 0.2868 0.0000
-vt 0.5338 0.2544 0.0000
-vt 0.3105 0.9531 0.0000
-vt 0.1145 0.6616 0.0000
-vt 0.3499 0.4002 0.0000
-vt 0.7042 0.5143 0.0000
-vt 0.0732 0.6616 0.0000
-vt 0.9122 0.1756 0.0000
-vt 0.9434 0.1756 0.0000
-vt 0.9254 0.0319 0.0000
-vt 0.9094 0.0329 0.0000
-vt 0.8739 0.0600 0.0000
-vt 0.8590 0.1756 0.0000
-vt 0.8411 0.0589 0.0000
-vt 0.8242 0.1756 0.0000
-vt 0.8563 0.0678 0.0000
-vt 0.8086 0.0196 0.0000
-vt 0.7953 0.1756 0.0000
-vt 0.1834 0.6616 0.0000
-vt 0.1835 0.7921 0.0000
-vt 0.1401 0.7884 0.0000
-vt 0.1147 0.6616 0.0000
-vt 0.2393 0.6616 0.0000
-vt 0.2495 0.8024 0.0000
-vt 0.1806 0.9648 0.0000
-vt 0.1343 0.8526 0.0000
-vt 0.5286 0.9420 0.0000
-vt 0.4699 0.9420 0.0000
-vt 0.4699 0.9778 0.0000
-vt 0.5264 0.9164 0.0000
-vt 0.5262 0.8281 0.0000
-vt 0.4699 0.8031 0.0000
-vt 0.4699 0.9164 0.0000
-vt 0.2597 0.9680 0.0000
-vt 0.1812 0.8442 0.0000
-vt 0.2568 0.8644 0.0000
-vt 0.5295 0.8031 0.0000
-vt 0.5908 0.8281 0.0000
-vt 0.5908 0.8031 0.0000
-vt 0.3478 0.9164 0.0000
-vt 0.4098 0.9164 0.0000
-vt 0.4009 0.8031 0.0000
-vt 0.5317 0.7821 0.0000
-vt 0.5336 0.6988 0.0000
-vt 0.4699 0.6747 0.0000
-vt 0.4699 0.7821 0.0000
-vt 0.4127 0.6747 0.0000
-vt 0.3986 0.7821 0.0000
-vt 0.5308 0.6747 0.0000
-vt 0.5908 0.6988 0.0000
-vt 0.5831 0.6747 0.0000
-vt 0.5908 0.7821 0.0000
-vt 0.8479 0.4132 0.0000
-vt 0.8933 0.4142 0.0000
-vt 0.8848 0.3854 0.0000
-vt 0.9389 0.4095 0.0000
-vt 0.9275 0.3759 0.0000
-vt 0.8589 0.2861 0.0000
-vt 0.9142 0.2821 0.0000
-vt 0.8602 0.2774 0.0000
-vt 0.9628 0.2861 0.0000
-vt 0.9164 0.3016 0.0000
-vt 0.9643 0.3016 0.0000
-vt 0.8047 0.2861 0.0000
-vt 0.8051 0.2742 0.0000
-vt 0.7326 0.2071 0.0000
-vt 0.9173 0.2208 0.0000
-vt 0.8086 0.2361 0.0000
-vt 0.8594 0.2278 0.0000
-vt 0.3107 0.9196 0.0000
-vt 0.2860 0.9314 0.0000
-vt 0.5651 0.1853 0.0000
-vt 0.5589 0.1569 0.0000
-vt 0.5378 0.1673 0.0000
-vt 0.5385 0.2009 0.0000
-vt 0.5615 0.1298 0.0000
-vt 0.5338 0.1344 0.0000
-vt 0.5999 0.2317 0.0000
-vt 0.6368 0.2281 0.0000
-vt 0.6332 0.1874 0.0000
-vt 0.5678 0.2272 0.0000
-vt 0.5421 0.2239 0.0000
-vt 0.5622 0.2476 0.0000
-vt 0.6161 0.2875 0.0000
-vt 0.6034 0.2508 0.0000
-vt 0.7005 0.2402 0.0000
-vt 0.6320 0.0899 0.0000
-vt 0.6330 0.1190 0.0000
-vt 0.6916 0.1116 0.0000
-vt 0.6796 0.0540 0.0000
-vt 0.6581 0.1930 0.0000
-vt 0.5606 0.0878 0.0000
-vt 0.5338 0.0953 0.0000
-vt 0.2701 0.9825 0.0000
-vt 0.3080 0.9535 0.0000
-vt 0.8045 0.3016 0.0000
-vt 0.8972 0.4428 0.0000
-vt 0.9339 0.4413 0.0000
-vt 0.2578 0.5822 0.0000
-vt 0.2902 0.0307 0.0000
-vt 0.2740 0.0396 0.0000
-vt 0.2662 0.0236 0.0000
-vt 0.7658 0.0409 0.0000
-vt 0.3135 0.0238 0.0000
-vt 0.3084 0.0404 0.0000
-vt 0.8604 0.3016 0.0000
-vt 0.9785 0.3695 0.0000
-vt 0.4699 0.6556 0.0000
-vt 0.4318 0.6556 0.0000
-vt 0.5566 0.6556 0.0000
-vt 0.5218 0.6556 0.0000
-vt 0.4699 0.6242 0.0000
-vt 0.4441 0.6242 0.0000
-vt 0.5330 0.6242 0.0000
-vt 0.5171 0.6242 0.0000
-vt 0.3107 0.5822 0.0000
-vt 0.7839 0.5279 0.0000
-vt 0.7561 0.5372 0.0000
-vt 0.7802 0.5027 0.0000
-vt 0.7997 0.5230 0.0000
-vt 0.6631 0.5538 0.0000
-vt 0.7063 0.5876 0.0000
-vt 0.7660 0.5742 0.0000
-vt 0.7416 0.4982 0.0000
-vt 0.7379 0.5389 0.0000
-vt 0.7042 0.5143 0.0000
-vt 0.7186 0.5457 0.0000
-vt 0.7882 0.5651 0.0000
-vt 0.8063 0.5569 0.0000
-vt 0.8133 0.5545 0.0000
-vt 0.2612 0.4728 0.0000
-vt 0.6949 0.3842 0.0000
-vt 0.7856 0.3933 0.0000
-vt 0.9724 0.4336 0.0000
-vt 0.2524 0.4170 0.0000
-vt 0.0275 0.4648 0.0000
-vt 0.4091 0.5386 0.0000
-vt 0.4300 0.5070 0.0000
-vt 0.4515 0.5314 0.0000
-vt 0.4263 0.5527 0.0000
-vt 0.4920 0.4514 0.0000
-vt 0.4997 0.5187 0.0000
-vt 0.5542 0.5118 0.0000
-vt 0.4167 0.2972 0.0000
-vt 0.4868 0.3160 0.0000
-vt 0.5424 0.3315 0.0000
-vt 0.4341 0.4607 0.0000
-vt 0.5521 0.4459 0.0000
-vt 0.5911 0.5193 0.0000
-vt 0.6084 0.2977 0.0000
-vt 0.6010 0.4502 0.0000
-vt 0.4820 0.5643 0.0000
-vt 0.5386 0.5567 0.0000
-vt 0.6348 0.5377 0.0000
-vt 0.3982 0.5591 0.0000
-vt 0.3690 0.3002 0.0000
-vt 0.3803 0.4634 0.0000
-vt 0.4091 0.5386 0.0000
-vt 0.4300 0.5071 0.0000
-vt 0.4515 0.5315 0.0000
-vt 0.4161 0.5817 0.0000
-vt 0.4920 0.4515 0.0000
-vt 0.4997 0.5188 0.0000
-vt 0.5521 0.4459 0.0000
-vt 0.5542 0.5119 0.0000
-vt 0.4340 0.4608 0.0000
-vt 0.4166 0.2973 0.0000
-vt 0.4867 0.3161 0.0000
-vt 0.5424 0.3315 0.0000
-vt 0.6010 0.4503 0.0000
-vt 0.5911 0.5193 0.0000
-vt 0.6083 0.2977 0.0000
-vt 0.6618 0.4642 0.0000
-vt 0.6823 0.3086 0.0000
-vt 0.4667 0.6076 0.0000
-vt 0.5386 0.5567 0.0000
-vt 0.5889 0.5821 0.0000
-vt 0.5237 0.6033 0.0000
-vt 0.3802 0.4635 0.0000
-vt 0.3690 0.3003 0.0000
-vt 0.0756 0.0215 0.0000
-vt 0.0284 0.2165 0.0000
-vt 0.2315 0.5822 0.0000
-vt 0.3072 0.2975 0.0000
-vt 0.3066 0.3137 0.0000
-vt 0.0396 0.2418 0.0000
-vt 0.1823 0.6318 0.0000
-vt 0.1420 0.6318 0.0000
-vt 0.2109 0.4334 0.0000
-vt 0.3394 0.3798 0.0000
-vt 0.0336 0.4139 0.0000
-vt 0.0965 0.6318 0.0000
-vt 0.0296 0.4154 0.0000
-vt 0.9386 0.0312 0.0000
-vt 0.9744 0.1756 0.0000
-vt 0.2317 0.5822 0.0000
-vt 0.7265 0.2821 0.0000
-vt 0.7289 0.3016 0.0000
-vt 0.9699 0.2253 0.0000
-vt 0.1825 0.6318 0.0000
-vt 0.1422 0.6318 0.0000
-vt 0.8240 0.4114 0.0000
-vt 0.7027 0.3682 0.0000
-vt 0.9868 0.3852 0.0000
-vt 0.0967 0.6318 0.0000
-vt 0.0681 0.6318 0.0000
-vt 0.9955 0.4316 0.0000
-vt 0.9906 0.3863 0.0000
-vt 0.6942 0.3882 0.0000
-vt 0.7850 0.3981 0.0000
-vt 0.0420 0.8273 0.0000
-vt 0.0226 0.9163 0.0000
-vt 0.0283 0.8778 0.0000
-vt 0.0616 0.7629 0.0000
-vt 0.0734 0.6616 0.0000
-vt 0.0683 0.6318 0.0000
-vt 0.5332 0.9778 0.0000
-vt 0.3478 0.9420 0.0000
-vt 0.2104 0.9004 0.0000
-vt 0.4077 0.9420 0.0000
-vt 0.8123 0.9817 0.0000
-vt 0.6269 0.9449 0.0000
-vt 0.2102 0.9004 0.0000
-vt 0.6868 0.9449 0.0000
-vt 0.6269 0.8094 0.0000
-vt 0.6269 0.8294 0.0000
-vt 0.8795 0.9227 0.0000
-vt 0.6417 0.6802 0.0000
-vt 0.6269 0.6997 0.0000
-vt 0.6269 0.7884 0.0000
-vt 0.6659 0.6619 0.0000
-vt 0.6771 0.6305 0.0000
-vt 0.8801 0.5699 0.0000
-vt 0.3478 0.8231 0.0000
-vt 0.3478 0.8031 0.0000
-vt 0.5908 0.9164 0.0000
-vt 0.3478 0.6934 0.0000
-vt 0.3626 0.6747 0.0000
-vt 0.3478 0.7821 0.0000
-vt 0.3868 0.6556 0.0000
-vt 0.3980 0.6242 0.0000
-vt 0.8801 0.5699 0.0000
-vt 0.5908 0.9420 0.0000
-vt 0.8795 0.9449 0.0000
-vt 0.4971 0.0267 0.0000
-vt 0.5338 0.0190 0.0000
-vt 0.5705 0.0266 0.0000
-vt 0.2936 0.9628 0.0000
-vt 0.2938 0.9628 0.0000
-vt 0.1264 0.9132 0.0000
-vt 0.0539 0.9410 0.0000
-vt 0.1261 0.9132 0.0000
-vt 0.0537 0.9410 0.0000
-vt 0.3272 0.0717 0.0000
-vt 0.7404 0.0716 0.0000
-vt 0.9766 0.5071 0.0000
-vt 0.9671 0.4662 0.0000
-vt 0.9664 0.4646 0.0000
-vt 0.9935 0.5066 0.0000
-vt 0.9620 0.7107 0.0000
-vt 0.9222 0.7170 0.0000
-vt 0.9300 0.5164 0.0000
-vt 0.9160 0.7257 0.0000
-vt 0.9130 0.5155 0.0000
-vt 0.9711 0.7189 0.0000
-vt 0.9572 0.7753 0.0000
-vt 0.9353 0.7593 0.0000
-vt 0.9323 0.7553 0.0000
-vt 0.9675 0.7689 0.0000
-vt 0.9543 0.9680 0.0000
-vt 0.9099 0.9758 0.0000
-vt 0.9197 0.7813 0.0000
-vt 0.9041 0.7777 0.0000
-vt 0.7839 0.0501 0.0000
-vt 0.2897 0.0124 0.0000
-vt 0.7483 0.0551 0.0000
-vt 0.2897 0.0124 0.0000
-vt 0.8150 0.5993 0.0000
-vt 0.7740 0.6165 0.0000
-vt 0.7014 0.6099 0.0000
-vt 0.6747 0.5920 0.0000
-vt 0.8859 0.6072 0.0000
-vt 0.8162 0.5073 0.0000
-vt 0.8535 0.5070 0.0000
-vt 0.8162 0.5073 0.0000
-vt 0.8535 0.5070 0.0000
-vt 0.7740 0.6165 0.0000
-vt 0.8150 0.5993 0.0000
-vt 0.8794 0.5231 0.0000
-vt 0.6747 0.5920 0.0000
-vt 0.7014 0.6099 0.0000
-vt 0.8859 0.6072 0.0000
-vt 0.8794 0.5231 0.0000
-vt 0.7483 0.0551 0.0000
-vt 0.7651 0.1471 0.0000
-vt 0.7510 0.1380 0.0000
-vt 0.7779 0.1398 0.0000
-vt 0.9144 0.2153 0.0000
-vt 0.9497 0.2075 0.0000
-vt 0.7466 0.1838 0.0000
-vt 0.8550 0.2181 0.0000
-vt 0.8099 0.2158 0.0000
-vt 0.7741 0.2049 0.0000
-vt 0.3453 0.0972 0.0000
-vt 0.2385 0.1030 0.0000
-vt 0.3104 0.0739 0.0000
-vt 0.2755 0.0719 0.0000
-vt 0.2902 0.0717 0.0000
-vt 0.0944 0.1858 0.0000
-vt 0.0600 0.1858 0.0000
-vt 0.1541 0.1858 0.0000
-vt 0.1933 0.1858 0.0000
-vt 0.2252 0.1858 0.0000
-vt 0.0259 0.1858 0.0000
-vt 0.7779 0.1398 0.0000
-vt 0.7651 0.1471 0.0000
-vt 0.7839 0.0501 0.0000
-vt 0.7510 0.1380 0.0000
-vt 0.2385 0.1030 0.0000
-vt 0.2755 0.0719 0.0000
-vt 0.3104 0.0739 0.0000
-vt 0.2902 0.0717 0.0000
-vt 0.3453 0.0972 0.0000
-vt 0.3627 0.2127 0.0000
-vt 0.7049 0.2127 0.0000
-vt 0.4357 0.0229 0.0000
-vt 0.6319 0.0228 0.0000
-vt 0.6348 0.5377 0.0000
-vt 0.6618 0.4642 0.0000
-vt 0.6823 0.3086 0.0000
-vt 0.5890 0.5821 0.0000
-vt 0.3982 0.5592 0.0000
-vt 0.4263 0.5528 0.0000
-vt 0.4820 0.5644 0.0000
-vt 0.5237 0.6034 0.0000
-vt 0.4678 0.2318 0.0000
-vt 0.4309 0.2270 0.0000
-vt 0.4999 0.2272 0.0000
-vt 0.5055 0.2476 0.0000
-vt 0.5256 0.2239 0.0000
-vt 0.4643 0.2508 0.0000
-vt 0.5338 0.2544 0.0000
-vt 0.5999 0.2317 0.0000
-vt 0.6368 0.2281 0.0000
-vt 0.5678 0.2272 0.0000
-vt 0.5421 0.2239 0.0000
-vt 0.5622 0.2476 0.0000
-vt 0.6034 0.2508 0.0000
-# 478 texture coords
-
-g man_zbrush002
-usemtl Material__44
-f 5/439/1 8/440/2 7/7/3 6/6/4
-f 9/9/5 10/441/6 5/439/7 6/6/8
-f 11/11/9 13/442/10 12/12/11
-f 11/11/12 14/14/13 15/443/14 13/442/15
-f 17/17/16 134/134/17 16/16/18 18/18/19
-f 19/19/20 20/20/21 18/18/22 16/16/23
-f 22/22/24 21/382/25 23/23/26 2/2/27
-f 21/351/28 24/24/29 26/26/30 25/25/31
-f 27/27/32 30/30/33 29/29/34 28/28/35
-f 127/127/36 1/1/37 20/20/38 19/19/39
-f 23/23/40 21/382/41 31/383/42 3/3/43
-f 25/353/44 33/33/45 18/18/46 32/32/47
-f 18/18/48 20/20/49 32/32/50
-f 128/128/51 32/32/52 20/20/53 1/1/54
-f 34/34/55 30/30/56 36/36/57 35/35/58
-f 36/356/59 39/39/60 38/38/61 37/37/62
-f 40/40/63 43/43/64 42/42/65 41/41/66
-f 44/44/67 45/45/68 41/41/69 42/42/70
-f 47/47/71 46/46/72 43/43/73 48/48/74
-f 49/360/75 45/45/76 44/44/77 48/359/78
-f 50/50/79 52/52/80 51/51/81
-f 53/53/82 54/54/83 51/51/84 52/52/85
-f 55/55/86 57/57/87 56/56/88
-f 59/59/89 58/58/90 57/57/91 60/60/92
-f 58/314/93 62/62/94 61/61/95
-f 56/56/96 61/61/97 62/62/98 55/55/99
-f 63/63/100 57/57/101 58/58/102 64/316/103
-f 64/64/104 58/314/105 61/61/106 65/65/107
-f 61/61/108 56/56/109 66/66/110 65/65/111
-f 66/66/112 56/56/113 57/57/114 63/63/115
-f 33/33/116 22/22/117 17/17/118 18/18/119
-f 39/39/120 22/352/121 33/354/122 38/38/123
-f 17/17/124 22/22/125 2/2/126 129/129/127
-f 32/32/128 128/128/129 200/200/130 67/67/131
-f 69/69/132 68/68/133 71/71/134 70/70/135
-f 130/130/136 71/71/137 72/72/138 207/207/139
-f 73/466/140 75/467/141 74/74/142
-f 76/76/143 78/78/144 77/77/145
-f 69/69/146 78/470/147 76/468/148 68/68/149
-f 77/469/150 131/131/151 80/80/152 79/471/153
-f 80/80/154 81/81/155 75/467/156 79/471/157
-f 82/82/158 84/84/159 83/83/160
-f 83/83/161 85/85/162 82/82/163
-f 83/83/164 84/84/165 74/74/166 86/86/167
-f 68/68/168 74/74/169 72/72/170 71/71/171
-f 72/72/172 87/87/173 223/223/174 207/207/175
-f 83/83/176 88/384/177 85/85/178
-f 85/378/179 67/67/180 200/200/181 89/89/182
-f 67/67/183 85/378/184 88/88/185 31/31/186
-f 63/63/187 64/316/188 8/8/189
-f 64/64/190 65/65/191 15/15/192
-f 10/10/193 13/13/194 65/65/195 66/66/196
-f 5/5/197 10/10/198 66/66/199 63/63/200
-f 62/62/201 58/314/202 59/315/203 90/90/204
-f 52/52/205 91/91/206 92/92/207 53/53/208
-f 50/50/209 91/91/210 52/52/211
-f 19/19/212 50/313/213 93/93/214
-f 74/74/215 75/467/216 86/86/217
-f 38/38/218 33/354/219 26/26/220 28/28/221
-f 26/26/222 24/24/223 27/27/224 28/28/225
-f 24/24/226 21/351/227 22/374/228
-f 38/38/229 28/28/230 29/29/231 37/37/232
-f 25/353/233 32/32/234 67/67/235 21/21/236
-f 31/31/237 21/21/238 67/67/239
-f 75/467/240 81/454/241 86/86/242
-f 86/86/243 81/454/244 83/83/245
-f 75/75/246 73/73/247 79/79/248
-f 12/452/249 95/95/250 94/94/251 11/451/252
-f 14/453/253 11/451/254 94/94/255 96/96/256
-f 96/406/257 97/97/258 7/446/259 14/448/260
-f 7/7/261 8/440/262 15/444/263 14/311/264
-f 94/94/265 95/95/266 97/407/267 96/96/268
-f 9/450/269 6/449/270 99/99/271 98/98/272
-f 97/407/273 95/95/274 98/98/275 99/99/276
-f 98/98/277 95/95/278 12/452/279 9/450/280
-f 12/12/281 13/442/282 10/441/283 9/9/284
-f 63/63/285 8/8/286 5/5/287
-f 8/8/288 64/316/289 15/312/290
-f 57/57/291 55/55/292 100/100/293 60/60/294
-f 101/101/295 59/59/296 60/60/297 54/54/298
-f 62/62/299 90/90/300 100/100/301 55/55/302
-f 71/71/303 130/130/304 70/70/305
-f 44/44/306 42/42/307 103/103/308 102/102/309
-f 47/47/310 105/105/311 104/104/312 46/46/313
-f 42/42/314 46/46/315 104/104/316 103/103/317
-f 44/44/318 102/102/319 105/361/320 47/358/321
-f 103/103/322 107/107/323 106/106/324 102/102/325
-f 105/105/326 109/109/327 108/108/328 104/104/329
-f 104/104/330 108/108/331 107/107/332 103/103/333
-f 102/102/334 106/106/335 109/362/336 105/361/337
-f 93/93/338 246/246/339 127/127/340 19/19/341
-f 110/110/342 118/118/343 112/112/344 111/111/345
-f 113/113/346 108/410/347 109/411/348 114/114/349
-f 107/409/350 108/410/351 113/113/352 115/115/353
-f 106/408/354 114/363/355 109/412/356
-f 116/116/357 112/112/358 118/118/359 117/117/360
-f 116/116/361 117/117/362 119/119/363 136/136/364
-f 115/115/365 117/117/366 118/118/367
-f 107/409/368 121/121/369 120/120/370 106/408/371
-f 106/408/372 120/120/373 122/122/374 114/363/375
-f 115/115/376 121/121/377 107/409/378
-f 246/246/379 93/93/380 123/123/381 4/4/382
-f 74/74/383 84/84/384 72/72/385
-f 72/72/386 84/84/387 82/82/388 87/87/389
-f 82/82/390 85/456/391 89/375/392 87/87/393
-f 78/78/394 132/132/395 77/77/396
-f 49/49/397 40/40/398 34/34/399 35/35/400
-f 29/29/401 34/34/402 40/40/403 41/41/404
-f 45/45/405 49/360/406 35/355/407 37/37/408
-f 41/41/409 45/45/410 37/37/411 29/29/412
-f 36/36/413 30/30/414 27/27/415 39/357/416
-f 29/29/417 30/30/418 34/34/419
-f 36/356/420 37/37/421 35/355/422
-f 15/15/423 65/65/424 13/13/425
-f 121/121/426 110/110/427 111/111/428 120/120/429
-f 120/120/430 111/111/431 112/415/432 122/122/433
-f 121/121/434 118/118/435 110/110/436
-f 26/26/437 33/354/438 25/25/439
-f 24/24/440 22/374/441 39/357/442 27/27/443
-f 119/119/444 117/117/445 115/115/446 113/113/447
-f 114/363/448 116/416/449 136/419/450
-f 118/118/451 121/121/452 115/115/453
-f 7/446/454 97/97/455 99/447/456 6/445/457
-f 132/472/458 131/131/459 77/469/460
-f 124/124/461 125/125/462 101/320/463
-f 200/200/464 133/133/465 89/89/466
-f 89/375/467 133/376/468 223/223/469 87/87/470
-f 50/50/471 51/51/472 100/100/473
-f 100/100/474 51/51/475 54/54/476 60/60/477
-f 93/319/478 50/50/479 100/100/480 90/90/481
-f 124/321/482 101/101/483 54/54/484 53/53/485
-f 59/315/486 101/320/487 125/125/488 90/90/489
-f 126/126/490 124/321/491 53/53/492 92/92/493
-f 92/318/494 91/317/495 16/16/496
-f 16/16/497 91/317/498 50/313/499 19/19/500
-f 76/468/501 73/466/502 74/74/503 68/68/504
-f 73/73/505 76/76/506 77/77/507 79/79/508
-f 129/129/509 137/137/510 134/134/511 17/17/512
-f 125/125/513 93/319/514 90/90/515
-f 135/135/516 265/265/517 125/125/518 124/124/519
-f 48/48/520 43/43/521 40/40/522 49/49/523
-f 42/42/524 43/43/525 46/46/526
-f 48/359/527 44/44/528 47/358/529
-f 130/130/530 204/204/531 70/70/532
-f 69/69/533 70/70/534 204/204/535 205/205/536
-f 124/321/537 126/126/538 266/266/539 135/323/540
-f 16/16/541 134/134/542 126/322/543 92/318/544
-f 119/119/545 113/113/546 114/114/547 136/136/548
-f 122/122/549 112/415/550 116/416/551
-f 114/363/552 122/122/553 116/416/554
-f 78/470/555 69/69/556 205/205/557 212/476/558
-f 132/132/559 78/78/560 212/212/561
-f 126/322/562 134/134/563 137/137/564 266/336/565
-f 138/138/566 141/141/567 140/140/568 139/139/569
-f 142/142/570 141/141/571 138/138/572 143/143/573
-f 144/144/574 146/146/575 145/145/576
-f 144/144/577 145/145/578 148/148/579 147/147/580
-f 151/151/581 150/150/582 149/149/583 152/152/584
-f 153/153/585 149/149/586 150/150/587 154/154/588
-f 156/156/589 2/341/590 23/343/591 155/380/592
-f 155/347/593 159/159/594 158/158/595 157/157/596
-f 160/160/597 163/163/598 162/162/599 161/161/600
-f 127/127/601 153/153/602 154/154/603 1/1/604
-f 23/343/605 3/342/606 164/381/607 155/380/608
-f 166/166/609 154/154/610 150/150/611 159/349/612
-f 159/349/613 150/150/614 165/165/615
-f 128/128/616 1/1/617 154/154/618 166/166/619
-f 167/167/620 169/169/621 168/168/622 161/161/623
-f 168/364/624 172/172/625 171/171/626 170/170/627
-f 173/173/628 176/176/629 175/175/630 174/174/631
-f 177/177/632 175/175/633 176/176/634 178/178/635
-f 181/181/636 180/180/637 174/174/638 179/179/639
-f 182/369/640 180/367/641 177/177/642 178/178/643
-f 183/183/644 185/185/645 184/184/646
-f 186/186/647 184/184/648 185/185/649 187/187/650
-f 188/188/651 190/190/652 189/189/653
-f 193/193/654 192/192/655 189/189/656 191/191/657
-f 191/327/658 195/195/659 194/194/660
-f 190/190/661 188/188/662 194/194/663 195/195/664
-f 197/197/665 196/329/666 191/191/667 189/189/668
-f 196/196/669 198/198/670 195/195/671 191/327/672
-f 195/195/673 198/198/674 199/199/675 190/190/676
-f 199/199/677 197/197/678 189/189/679 190/190/680
-f 165/165/681 150/150/682 151/151/683 156/156/684
-f 170/170/685 171/171/686 165/350/687 156/348/688
-f 151/151/689 129/344/690 2/341/691 156/156/692
-f 166/166/693 201/201/694 200/200/695 128/128/696
-f 205/205/697 204/204/698 203/203/699 202/202/700
-f 130/130/701 207/207/702 206/206/703 203/203/704
-f 208/473/705 210/210/706 209/474/707
-f 211/211/708 213/213/709 212/212/710
-f 205/205/711 202/202/712 211/475/713 212/476/714
-f 213/477/715 215/478/716 214/214/717 131/131/718
-f 214/214/719 215/478/720 209/474/721 216/216/722
-f 217/217/723 219/219/724 218/218/725
-f 219/219/726 217/217/727 220/220/728
-f 219/219/729 221/221/730 210/210/731 218/218/732
-f 202/202/733 203/203/734 206/206/735 210/210/736
-f 206/206/737 207/207/738 223/223/739 222/222/740
-f 219/219/741 220/220/742 224/385/743
-f 220/379/744 225/225/745 200/200/746 201/201/747
-f 201/201/748 164/164/749 224/224/750 220/379/751
-f 197/197/752 139/429/753 196/329/754
-f 196/196/755 148/433/756 198/198/757
-f 143/431/758 199/199/759 198/198/760 145/432/761
-f 138/428/762 197/197/763 199/199/764 143/431/765
-f 194/194/766 226/226/767 193/328/768 191/327/769
-f 184/184/770 186/186/771 228/228/772 227/227/773
-f 183/183/774 184/184/775 227/227/776
-f 153/153/777 229/229/778 183/326/779
-f 210/210/780 221/221/781 209/474/782
-f 171/171/783 163/163/784 158/158/785 165/350/786
-f 158/158/787 163/163/788 160/160/789 157/157/790
-f 157/157/791 156/373/792 155/347/793
-f 171/171/794 172/172/795 162/162/796 163/163/797
-f 201/201/798 166/166/799 159/349/800 155/155/801
-f 164/164/802 201/201/803 155/155/804
-f 209/474/805 221/221/806 216/455/807
-f 221/221/808 219/219/809 216/455/810
-f 209/209/811 215/215/812 208/208/813
-f 146/438/814 144/437/815 231/231/816 230/230/817
-f 147/435/818 232/232/819 231/231/820 144/437/821
-f 232/404/822 147/427/823 140/425/824 233/233/825
-f 140/140/826 147/324/827 148/325/828 139/139/829
-f 231/231/830 232/232/831 233/405/832 230/230/833
-f 142/436/834 235/235/835 234/234/836 141/434/837
-f 233/405/838 234/234/839 235/235/840 230/230/841
-f 235/235/842 142/436/843 146/438/844 230/230/845
-f 146/146/846 142/142/847 143/143/848 145/145/849
-f 197/197/850 138/428/851 139/429/852
-f 139/430/853 148/433/854 196/196/855
-f 189/189/856 192/192/857 236/236/858 188/188/859
-f 237/237/860 187/187/861 192/192/862 193/193/863
-f 194/194/864 188/188/865 236/236/866 226/226/867
-f 203/203/868 204/204/869 130/130/870
-f 177/177/871 239/239/872 238/238/873 175/175/874
-f 181/181/875 179/179/876 241/241/877 240/240/878
-f 175/175/879 238/238/880 241/241/881 179/179/882
-f 177/177/883 181/368/884 240/370/885 239/239/886
-f 238/238/887 239/239/888 243/243/889 242/242/890
-f 240/240/891 241/241/892 245/245/893 244/244/894
-f 241/241/895 238/238/896 242/242/897 245/245/898
-f 239/239/899 240/370/900 244/371/901 243/243/902
-f 229/229/903 153/153/904 127/127/905 246/246/906
-f 247/247/907 250/250/908 249/249/909 248/248/910
-f 252/252/911 251/251/912 244/420/913 245/421/914
-f 242/417/915 253/253/916 252/252/917 245/421/918
-f 243/418/919 244/422/920 251/372/921
-f 254/254/922 255/255/923 248/248/924 249/249/925
-f 254/254/926 256/256/927 257/257/928 255/255/929
-f 253/253/930 248/248/931 255/255/932
-f 242/417/933 243/418/934 259/259/935 258/258/936
-f 243/418/937 251/372/938 260/260/939 259/259/940
-f 253/253/941 242/417/942 258/258/943
-f 246/246/944 4/4/945 261/261/946 229/229/947
-f 210/210/948 206/206/949 218/218/950
-f 206/206/951 222/222/952 217/217/953 218/218/954
-f 217/217/955 222/222/956 225/377/957 220/457/958
-f 212/212/959 213/213/960 132/132/961
-f 182/182/962 169/169/963 167/167/964 173/173/965
-f 162/162/966 176/176/967 173/173/968 167/167/969
-f 178/178/970 172/172/971 169/365/972 182/369/973
-f 176/176/974 162/162/975 172/172/976 178/178/977
-f 168/168/978 170/366/979 160/160/980 161/161/981
-f 162/162/982 167/167/983 161/161/984
-f 168/364/985 169/365/986 172/172/987
-f 148/433/988 145/432/989 198/198/990
-f 258/258/991 259/259/992 250/250/993 247/247/994
-f 259/259/995 260/260/996 249/413/997 250/250/998
-f 258/258/999 247/247/1000 248/248/1001
-f 158/158/1002 159/159/1003 165/350/1004
-f 157/157/1005 160/160/1006 170/366/1007 156/373/1008
-f 257/257/1009 252/252/1010 253/253/1011 255/255/1012
-f 251/372/1013 256/423/1014 254/414/1015
-f 248/248/1016 253/253/1017 258/258/1018
-f 140/425/1019 141/426/1020 234/424/1021 233/233/1022
-f 132/472/1023 213/477/1024 131/131/1025
-f 262/262/1026 237/333/1027 263/263/1028
-f 200/200/1029 225/225/1030 133/133/1031
-f 225/377/1032 222/222/1033 223/223/1034 133/376/1035
-f 183/183/1036 236/236/1037 185/185/1038
-f 236/236/1039 192/192/1040 187/187/1041 185/185/1042
-f 229/332/1043 226/226/1044 236/236/1045 183/183/1046
-f 262/334/1047 186/186/1048 187/187/1049 237/237/1050
-f 193/328/1051 226/226/1052 263/263/1053 237/333/1054
-f 264/264/1055 228/228/1056 186/186/1057 262/334/1058
-f 228/331/1059 149/149/1060 227/330/1061
-f 149/149/1062 153/153/1063 183/326/1064 227/330/1065
-f 211/475/1066 202/202/1067 210/210/1068 208/473/1069
-f 208/208/1070 215/215/1071 213/213/1072 211/211/1073
-f 129/344/1074 151/151/1075 152/152/1076 137/345/1077
-f 263/263/1078 226/226/1079 229/332/1080
-f 135/339/1081 262/262/1082 263/263/1083 265/340/1084
-f 180/180/1085 182/182/1086 173/173/1087 174/174/1088
-f 175/175/1089 179/179/1090 174/174/1091
-f 180/367/1092 181/368/1093 177/177/1094
-f 262/334/1095 135/338/1096 266/337/1097 264/264/1098
-f 149/149/1099 228/331/1100 264/335/1101 152/152/1102
-f 257/257/1103 256/256/1104 251/251/1105 252/252/1106
-f 260/260/1107 254/414/1108 249/413/1109
-f 251/372/1110 254/414/1111 260/260/1112
-f 264/335/1113 266/346/1114 137/345/1115 152/152/1116
-f 267/267/1117 268/268/1118 269/269/1119 270/270/1120
-f 269/269/1121 268/268/1122 271/271/1123 272/272/1124
-f 272/272/1125 271/271/1126 278/278/1127 273/273/1128
-f 271/271/1129 268/268/1130 277/277/1131
-f 274/274/1132 275/275/1133 271/271/1134 277/277/1135
-f 275/275/1136 276/276/1137 278/278/1138 271/271/1139
-f 273/273/1140 278/278/1141 281/281/1142 279/279/1143
-f 278/278/1144 276/276/1145 280/280/1146 281/281/1147
-f 279/279/1148 281/281/1149 303/303/1150 284/284/1151
-f 280/280/1152 304/304/1153 303/303/1154 281/281/1155
-f 270/270/1156 269/269/1157 282/282/1158
-f 269/269/1159 272/272/1160 283/283/1161 282/282/1162
-f 272/272/1163 273/273/1164 283/283/1165
-f 273/273/1166 279/279/1167 307/307/1168 283/283/1169
-f 279/279/1170 284/284/1171 307/307/1172
-f 282/282/1173 283/283/1174 308/308/1175
-f 283/283/1176 307/307/1177 308/308/1178
-f 270/270/1179 282/282/1180 305/305/1181 291/291/1182
-f 267/267/1183 270/270/1184 285/285/1185
-f 270/270/1186 291/291/1187 285/285/1188
-f 274/274/1189 277/277/1190 287/287/1191 286/286/1192
-f 288/288/1193 291/463/1194 290/290/1195 289/289/1196
-f 290/290/1197 293/293/1198 292/292/1199 289/289/1200
-f 293/293/1201 295/295/1202 294/294/1203 292/292/1204
-f 292/292/1205 296/296/1206 289/289/1207
-f 297/297/1208 296/296/1209 292/292/1210 298/298/1211
-f 298/298/1212 292/292/1213 294/294/1214 299/299/1215
-f 295/295/1216 301/301/1217 300/300/1218 294/294/1219
-f 294/294/1220 300/300/1221 302/302/1222 299/299/1223
-f 301/301/1224 284/458/1225 303/459/1226 300/300/1227
-f 302/302/1228 300/300/1229 303/459/1230 304/460/1231
-f 291/463/1232 305/464/1233 290/290/1234
-f 290/290/1235 305/464/1236 306/306/1237 293/293/1238
-f 293/293/1239 306/306/1240 295/295/1241
-f 295/295/1242 306/306/1243 307/461/1244 301/301/1245
-f 301/301/1246 307/461/1247 284/458/1248
-f 305/464/1249 308/465/1250 306/306/1251
-f 306/306/1252 308/465/1253 307/461/1254
-f 305/305/1255 282/282/1256 308/308/1257
-f 288/288/1258 285/462/1259 291/463/1260
-f 297/297/1261 310/310/1262 309/309/1263 296/296/1264
-f 319/387/1265 320/388/1266 318/389/1267 315/386/1268
-f 314/390/1269 311/391/1270 316/392/1271 315/386/1272
-f 312/393/1273 317/394/1274 316/392/1275 311/391/1276
-f 313/395/1277 314/390/1278 315/386/1279 318/389/1280
-f 316/392/1281 317/394/1282 320/388/1283 319/387/1284
-f 316/392/1285 319/387/1286 315/386/1287
-f 314/390/1288 313/395/1289 312/393/1290 311/391/1291
-f 327/397/1292 328/398/1293 326/399/1294 323/396/1295
-f 322/400/1296 321/401/1297 324/402/1298 323/396/1299
-f 321/401/1300 325/403/1301 324/402/1302
-f 322/400/1303 323/396/1304 326/399/1305
-f 324/402/1306 325/403/1307 328/398/1308 327/397/1309
-f 324/402/1310 327/397/1311 323/396/1312
-# 244 polygons - 112 triangles
-
diff --git a/src/tests/evas/meshes/obj/sweet_home.obj b/src/tests/evas/meshes/obj/sweet_home.obj
deleted file mode 100644
index 1a52b933d6..0000000000
--- a/src/tests/evas/meshes/obj/sweet_home.obj
+++ /dev/null
@@ -1,107 +0,0 @@
-# Blender v2.69 (sub 0) OBJ File: 'sweet_home.blend'
-# www.blender.org
-v 1.000003 -0.999997 0.000002
-v -0.999997 -1.000003 0.000002
-v -1.000002 0.999998 0.000002
-v 0.999998 1.000002 0.000002
-v 1.000002 -0.999998 2.000002
-v -0.999998 -1.000002 2.000002
-v -1.000002 0.999998 2.000002
-v 0.999997 1.000003 2.000002
-v 0.000002 -1.000000 3.075149
-v -0.000002 1.000000 3.075149
-v 0.666668 -0.644449 2.358384
-v 0.333335 -0.644450 2.716766
-v 0.666667 -0.293067 2.358384
-v 0.333334 -0.293068 2.716766
-v 0.662209 -0.629904 2.991038
-v 0.337794 -0.629904 2.980731
-v 0.662208 -0.307612 2.991038
-v 0.337793 -0.307613 2.980731
-vt 0.013689 0.608350
-vt 0.285640 0.608350
-vt 0.285640 0.978776
-vt 0.013689 0.978776
-vt 0.564957 0.983606
-vt 0.293719 0.983606
-vt 0.293719 0.613180
-vt 0.564957 0.613180
-vt 0.646856 0.021326
-vt 0.083404 0.021326
-vt 0.083369 0.584801
-vt 0.646820 0.584801
-vt 0.949735 0.303064
-vt 0.654355 0.022016
-vt 0.957234 0.303753
-vt 0.654320 0.585490
-vt 0.090869 0.585491
-vt 0.090904 0.022016
-vt 0.820337 0.692442
-vt 0.820337 0.803140
-vt 0.740863 0.803140
-vt 0.740863 0.692442
-vt 0.695284 0.903159
-vt 0.695284 0.830265
-vt 0.768687 0.830265
-vt 0.768687 0.903159
-vt 0.874667 0.789013
-vt 0.874667 0.893367
-vt 0.979009 0.893367
-vt 0.979009 0.789013
-vt 0.567834 0.981515
-vt 0.567834 0.611089
-vt 0.768686 0.903159
-vt 0.768687 0.823686
-vt 0.811715 0.826975
-vt 0.811715 0.899870
-vt 0.591196 0.903159
-vt 0.591196 0.823686
-vt 0.695284 0.826975
-vt 0.695284 0.899870
-vt 0.666035 0.721564
-vt 0.667476 0.661838
-vt 0.740863 0.660019
-vt 0.591196 0.741571
-vt 0.666035 0.660015
-vt 0.666035 0.803140
-vt 0.592658 0.801339
-vt 0.013481 0.981515
-vt 0.104078 0.915663
-vt 0.194676 0.915663
-vt 0.285274 0.981515
-vt 0.194676 0.850582
-vt 0.285274 0.611089
-vt 0.104078 0.850582
-vt 0.013481 0.611089
-vn -0.732233 -0.000002 0.681054
-vn 1.000000 0.000002 0.000000
-vn 0.000002 -1.000000 0.000000
-vn -0.000002 1.000000 -0.000000
-vn -0.732233 -0.000001 -0.681054
-vn -0.031755 -0.000000 0.999496
-vn -0.000000 0.000000 -1.000000
-vn -1.000000 -0.000002 -0.000000
-vn -0.999857 -0.000002 0.016891
-vn 0.999975 0.000002 0.007049
-vn 0.017155 0.999327 0.032422
-vn 0.017160 -0.999327 0.032422
-vn 0.732233 0.000001 0.681054
-vn 0.732233 0.000002 0.681054
-vn 0.732234 0.000002 0.681053
-s off
-f 6/1/1 9/2/1 10/3/1 7/4/1
-f 4/5/2 8/6/2 5/7/2 1/8/2
-f 6/9/3 2/10/3 1/11/3 5/12/3 9/13/3
-f 7/14/4 10/15/4 8/16/4 4/17/4 3/18/4
-f 11/19/5 12/20/5 14/21/5 13/22/5
-f 15/23/6 17/24/6 18/25/6 16/26/6
-f 2/27/7 3/28/7 4/29/7 1/30/7
-f 6/2/8 7/3/8 3/31/8 2/32/8
-f 14/33/9 12/34/9 16/35/9 18/36/9
-f 11/37/10 13/38/10 17/39/10 15/40/10
-f 13/21/11 14/41/11 18/42/11 17/43/11
-f 12/44/12 11/45/12 15/46/12 16/47/12
-f 5/48/13 11/49/13 12/50/13 9/51/13
-f 9/51/14 12/50/14 14/52/14 10/53/14
-f 13/54/14 8/55/14 10/53/14 14/52/14
-f 11/49/15 5/48/15 8/55/15 13/54/15
diff --git a/src/tests/evas/meshes/ply/NoNormal_NoUVs_Colors.ply b/src/tests/evas/meshes/ply/NoNormal_NoUVs_Colors.ply
deleted file mode 100644
index 0e4e2f81ef..0000000000
--- a/src/tests/evas/meshes/ply/NoNormal_NoUVs_Colors.ply
+++ /dev/null
@@ -1,1679 +0,0 @@
-ply
-format ascii 1.0
-comment Created by Blender 2.69 (sub 0) - www.blender.org, source file: ''
-element vertex 1310
-property float x
-property float y
-property float z
-property uchar red
-property uchar green
-property uchar blue
-element face 356
-property list uchar uint vertex_indices
-end_header
--4.649800 14.945700 -8.785600 0 253 27
--2.020300 14.610600 -8.278800 0 253 27
--1.712600 0.024900 -9.195700 254 68 73
--3.252600 0.001600 -8.591000 254 68 73
--4.649800 14.945700 -8.785600 254 68 73
--3.252600 0.001600 -8.591000 254 88 92
--4.089400 2.633000 -5.031300 254 68 73
--5.308800 13.910900 -3.738700 254 68 73
--1.553600 3.059500 -4.173500 18 0 253
--1.766900 13.754900 -2.918700 0 254 27
--3.061600 3.537800 -3.461700 18 0 252
--1.553600 3.059500 -4.173500 18 0 253
--0.626000 0.031700 -8.336200 19 0 253
--0.971400 14.644800 -6.706400 27 229 30
--1.766900 13.754900 -2.918700 0 253 27
--5.495700 46.043098 -6.732400 254 254 254
--2.827600 38.171799 -8.088300 254 254 254
--5.919200 37.619099 -4.570300 254 254 254
--6.029500 46.188801 -3.956000 254 254 254
--4.685700 36.664101 -1.616400 13 240 28
--4.298500 47.001099 -0.058900 5 247 27
--6.029500 46.188801 -3.956000 0 253 27
--5.919200 37.619099 -4.570300 0 253 27
--6.775800 50.206501 -7.534500 0 254 27
--7.252500 54.524502 -7.615000 0 254 27
-0.000000 53.738098 -8.986800 0 254 27
-0.000000 50.037800 -9.413700 0 254 27
--7.252500 54.524502 -7.615000 0 253 27
--8.747800 53.770199 -7.353300 0 253 27
--8.184300 53.108700 -3.320400 0 253 27
--6.624100 53.529800 -2.653700 0 253 27
--9.827700 52.989700 -7.188500 0 253 27
--14.989100 50.565300 -7.297200 0 253 27
--15.636800 49.715099 -4.015700 0 253 27
--9.508400 52.403099 -3.672700 0 253 27
-0.000000 37.009800 0.550700 172 124 55
-0.000000 47.287498 1.094200 0 252 27
--4.298500 47.001099 -0.058900 0 253 27
--4.685700 36.664101 -1.616400 13 226 40
-0.000000 53.738098 -8.986800 0 254 27
--7.252500 54.524502 -7.615000 0 254 27
--2.321200 55.471001 -5.570800 0 254 27
-0.000000 55.950600 -7.250100 0 254 27
--6.624100 53.529800 -2.653700 0 253 27
--7.813100 49.342701 -3.886900 0 253 27
--6.029500 46.188801 -3.956000 0 253 27
--3.773800 51.093601 -1.034300 0 253 27
--6.029500 46.188801 -3.956000 0 253 27
--4.298500 47.001099 -0.058900 5 247 27
--3.773800 51.093601 -1.034300 0 253 27
-0.000000 50.880199 0.110000 0 253 27
--3.773800 51.093601 -1.034300 0 253 27
--4.298500 47.001099 -0.058900 0 253 27
-0.000000 47.287498 1.094200 0 252 27
--16.136200 50.023998 -7.546200 0 249 27
--14.989100 50.565300 -7.297200 0 252 27
--13.779500 47.417198 -7.715300 0 253 27
--14.885000 46.974701 -7.946000 0 251 27
--13.779500 47.417198 -7.715300 0 253 27
--8.756500 49.321098 -7.632900 0 253 27
--8.927200 49.128502 -4.128200 0 253 27
--14.977100 45.689201 -4.821000 0 248 31
--17.208200 49.477699 -7.512200 0 253 27
--22.585199 48.327702 -7.594400 0 253 27
--22.348700 46.932201 -2.822400 72 195 37
--16.810101 49.139900 -3.928800 0 253 27
--21.936399 43.055199 -3.733600 24 182 75
--16.192200 44.960400 -4.877100 0 236 42
--16.810101 49.139900 -3.928800 0 253 27
--22.348700 46.932201 -2.822400 72 195 37
--22.105101 44.119598 -7.074000 254 254 254
--23.337700 47.268200 -6.945000 254 254 254
--22.585199 48.327702 -7.594400 254 254 254
--21.061199 44.183601 -7.611200 254 254 254
--15.884600 46.520500 -7.855800 0 250 27
--16.192200 44.960400 -4.877100 0 253 27
--21.936399 43.055199 -3.733600 0 253 27
--21.061199 44.183601 -7.611200 52 208 31
--5.598500 31.822901 -1.405400 133 152 48
--7.174300 32.815300 -5.168000 0 253 27
--7.453900 29.910801 -4.782000 0 253 27
--4.970000 33.082802 -8.871300 0 253 27
--5.595300 29.761600 -8.491100 0 253 27
--7.453900 29.910801 -4.782000 0 253 27
--7.174300 32.815300 -5.168000 0 253 27
--6.827700 20.858999 -3.051400 254 254 254
--5.426000 21.341299 -8.131100 254 254 254
--6.194700 19.576300 -3.492500 254 254 254
--0.835600 22.853901 -8.203000 0 253 27
--0.899900 21.410400 -8.342700 0 253 27
--5.426000 21.341299 -8.131100 0 253 27
--5.317800 22.936800 -8.014600 0 253 27
--0.899900 21.410400 -8.342700 219 57 99
--1.957400 20.620800 -1.217700 254 68 73
--1.853000 19.164200 -1.385300 254 68 73
--6.194700 19.576300 -3.492500 114 254 128
--1.853000 19.164200 -1.385300 242 254 242
--1.957400 20.620800 -1.217700 242 254 242
--6.827700 20.858999 -3.051400 168 254 177
--5.259600 15.490400 -9.599400 0 253 27
--5.426000 21.341299 -8.131100 0 253 27
--0.899900 21.410400 -8.342700 0 253 27
--0.294400 16.169500 -7.962700 0 253 27
--0.294400 16.169500 -7.962700 0 253 27
--0.899900 21.410400 -8.342700 1 216 59
--1.853000 19.164200 -1.385300 0 253 27
--1.221800 14.450400 -2.004100 0 253 27
--1.853000 19.164200 -1.385300 254 254 254
--6.194700 19.576300 -3.492500 254 254 254
--6.498700 14.643000 -4.000600 91 254 108
--1.221800 14.450400 -2.004100 0 254 27
--6.498700 14.643000 -4.000600 254 254 254
--6.194700 19.576300 -3.492500 254 254 254
--5.426000 21.341299 -8.131100 254 254 254
--5.259600 15.490400 -9.599400 254 254 254
--7.813100 49.342701 -3.886900 254 68 73
--6.775800 50.206501 -7.534500 254 68 73
--5.495700 46.043098 -6.732400 254 68 73
--6.029500 46.188801 -3.956000 254 68 73
--8.756500 49.321098 -7.632900 0 254 27
--6.775800 50.206501 -7.534500 0 254 27
--7.813100 49.342701 -3.886900 0 254 27
--8.927200 49.128502 -4.128200 0 254 27
--5.495700 46.043098 -6.732400 0 254 27
--6.775800 50.206501 -7.534500 0 254 27
-0.000000 50.037800 -9.413700 0 254 27
-0.000000 45.235802 -8.516300 0 254 27
--3.773800 51.093601 -1.034300 0 253 27
-0.000000 50.880199 0.110000 0 253 27
-0.000000 54.522099 -2.187600 0 253 27
--1.435700 55.057400 -2.884500 0 253 27
--0.163800 60.672798 0.405300 0 254 27
--0.596000 60.268700 -0.255900 0 254 27
--0.605400 59.453602 0.006800 0 254 27
--0.226300 59.631802 0.717000 0 254 27
-0.000000 59.375900 0.272700 0 254 27
--0.605400 59.453602 0.006800 0 254 27
--0.793500 58.611801 -0.022400 0 254 27
-0.000000 58.735298 0.237300 0 253 27
--1.340700 61.343498 -1.024900 254 254 254
--2.209500 61.230499 -1.515000 254 254 254
--2.225300 60.301201 -1.334400 254 254 254
--0.474100 61.294899 -0.607800 254 254 254
--0.179900 61.274700 0.058500 254 254 254
--0.785400 61.539799 -0.048800 254 254 254
--0.163800 60.672798 0.405300 0 254 27
--0.179900 61.274700 0.058500 0 254 27
--0.474100 61.294899 -0.607800 0 254 27
--0.596000 60.268700 -0.255900 0 254 27
--0.785400 61.539799 -0.048800 0 254 27
-0.000000 62.775902 -0.355700 0 254 27
--1.901400 62.898899 -1.262500 0 254 27
--1.792100 61.563202 -0.648200 0 254 27
--1.901400 62.898899 -1.262500 254 254 254
--2.505800 61.413601 -3.333900 254 254 254
--2.209500 61.230499 -1.515000 254 254 254
--1.792100 61.563202 -0.648200 254 254 254
--2.071800 58.080299 -1.837600 254 254 254
--2.043500 58.694401 -1.722000 254 254 254
--2.361600 58.652599 -3.405400 254 254 254
--2.361600 58.652599 -3.405400 254 254 254
--1.480400 57.287800 -3.167400 254 254 254
--2.071800 58.080299 -1.837600 254 254 254
--2.361600 58.652599 -3.405400 254 254 254
--2.043500 58.694401 -1.722000 254 254 254
--2.225300 60.301201 -1.334400 254 254 254
--2.484800 60.667999 -2.078300 254 254 254
--0.596000 60.268700 -0.255900 0 254 27
--2.225300 60.301201 -1.334400 0 254 27
--0.793500 58.611801 -0.022400 0 254 27
--0.605400 59.453602 0.006800 0 254 27
--0.793500 58.611801 -0.022400 0 254 27
--0.860300 57.339199 -0.345300 0 253 27
-0.000000 57.320400 0.190300 0 253 27
-0.000000 58.735298 0.237300 0 253 27
--2.361600 58.652599 -3.405400 254 254 254
--1.507500 57.978802 -4.806700 254 254 254
--1.480400 57.287800 -3.167400 254 254 254
--1.480400 57.287800 -3.167400 254 153 157
--1.435700 55.057400 -2.884500 244 75 71
-0.000000 54.522099 -2.187600 235 81 69
--0.509500 56.862801 -2.081200 254 129 132
--1.435700 55.057400 -2.884500 254 68 73
--1.480400 57.287800 -3.167400 254 68 73
--1.507500 57.978802 -4.806700 254 68 73
--2.321200 55.471001 -5.570800 254 68 73
--5.259600 15.490400 -9.599400 0 253 27
--0.294400 16.169500 -7.962700 0 253 27
--2.020300 14.610600 -8.278800 0 253 27
--0.294400 16.169500 -7.962700 157 130 53
--1.221800 14.450400 -2.004100 0 252 27
--0.971400 14.644800 -6.706400 27 229 30
--5.308800 13.910900 -3.738700 23 254 48
--1.766900 13.754900 -2.918700 0 254 27
--1.221800 14.450400 -2.004100 0 254 27
--6.498700 14.643000 -4.000600 91 254 108
--4.649800 14.945700 -8.785600 254 68 73
--5.308800 13.910900 -3.738700 254 68 73
--6.498700 14.643000 -4.000600 254 68 73
--5.259600 15.490400 -9.599400 254 68 73
--1.957400 20.620800 -1.217700 0 253 27
--0.899900 21.410400 -8.342700 1 216 59
--0.835600 22.853901 -8.203000 2 205 69
--2.189200 21.987900 -1.481800 0 253 27
--7.174300 32.815300 -5.168000 0 253 27
--6.542300 35.480598 -4.902800 0 253 27
--5.283200 35.952900 -7.814600 0 254 27
--4.970000 33.082802 -8.871300 0 253 27
--5.598500 31.822901 -1.405400 133 152 48
--6.542300 35.480598 -4.902800 0 253 27
--7.174300 32.815300 -5.168000 0 253 27
--4.685700 36.664101 -1.616400 13 226 40
--5.598500 31.822901 -1.405400 133 152 48
--3.798500 31.552500 -0.386300 211 97 63
--2.225300 60.301201 -1.334400 254 254 254
--2.209500 61.230499 -1.515000 254 254 254
--2.484800 60.667999 -2.078300 254 254 254
--8.927200 49.128502 -4.128200 0 253 27
--7.813100 49.342701 -3.886900 0 253 27
--8.184300 53.108700 -3.320400 0 253 27
--9.508400 52.403099 -3.672700 0 253 27
--8.184300 53.108700 -3.320400 0 253 27
--8.747800 53.770199 -7.353300 0 253 27
--9.827700 52.989700 -7.188500 0 253 27
--9.508400 52.403099 -3.672700 0 253 27
--8.747800 53.770199 -7.353300 0 254 27
--7.252500 54.524502 -7.615000 0 254 27
--6.775800 50.206501 -7.534500 0 254 27
--8.927200 49.128502 -4.128200 0 253 27
--9.508400 52.403099 -3.672700 0 253 27
--15.636800 49.715099 -4.015700 0 253 27
--14.977100 45.689201 -4.821000 0 248 31
--6.624100 53.529800 -2.653700 0 253 27
--3.773800 51.093601 -1.034300 0 253 27
--1.435700 55.057400 -2.884500 0 253 27
--7.252500 54.524502 -7.615000 0 253 27
--2.321200 55.471001 -5.570800 0 253 27
--7.252500 54.524502 -7.615000 0 253 27
--1.435700 55.057400 -2.884500 0 253 27
--2.209500 61.230499 -1.515000 254 254 254
--2.505800 61.413601 -3.333900 254 254 254
--2.484800 60.667999 -2.078300 254 254 254
--2.484800 60.667999 -2.078300 254 254 254
--2.505800 61.413601 -3.333900 254 254 254
--2.361600 58.652599 -3.405400 254 254 254
--2.209500 61.230499 -1.515000 254 254 254
--1.340700 61.343498 -1.024900 254 254 254
--1.792100 61.563202 -0.648200 254 254 254
--3.061600 3.537800 -3.461700 18 0 252
--3.735600 1.816900 0.228400 18 0 253
--1.568700 1.981700 -0.627100 18 0 253
--1.553600 3.059500 -4.173500 18 0 253
--0.626000 0.031700 -8.336200 18 0 253
--1.553600 3.059500 -4.173500 18 0 253
--1.568700 1.981700 -0.627100 18 0 253
--1.825200 -0.024100 0.601200 18 0 253
--1.825200 -0.024100 0.601200 18 0 253
--3.769300 -0.009000 1.132900 18 0 253
--1.712600 0.024900 -9.195700 19 0 253
--0.626000 0.031700 -8.336200 19 0 253
--1.712600 0.024900 -9.195700 254 68 73
--2.020300 14.610600 -8.278800 0 253 27
--0.971400 14.644800 -6.706400 0 253 27
--0.626000 0.031700 -8.336200 254 68 73
--1.568700 1.981700 -0.627100 18 0 253
--3.735600 1.816900 0.228400 18 0 253
--3.769300 -0.009000 1.132900 18 0 253
--1.825200 -0.024100 0.601200 19 0 253
--4.089400 2.633000 -5.031300 188 254 194
--3.252600 0.001600 -8.591000 0 254 27
--5.176800 -0.025000 -0.598300 254 254 254
--5.390300 1.568200 -1.670300 254 254 254
--3.769300 -0.009000 1.132900 18 0 253
--3.735600 1.816900 0.228400 18 0 253
--5.390300 1.568200 -1.670300 18 0 253
--5.176800 -0.025000 -0.598300 18 0 253
--5.390300 1.568200 -1.670300 18 0 253
--3.735600 1.816900 0.228400 18 0 253
--3.061600 3.537800 -3.461700 18 0 252
--4.089400 2.633000 -5.031300 18 0 252
--3.061600 3.537800 -3.461700 18 0 252
--1.766900 13.754900 -2.918700 0 254 27
--5.308800 13.910900 -3.738700 14 254 41
--4.089400 2.633000 -5.031300 18 0 252
--2.020300 14.610600 -8.278800 0 253 27
--4.649800 14.945700 -8.785600 0 253 27
--5.259600 15.490400 -9.599400 0 253 27
--2.020300 14.610600 -8.278800 0 253 27
--0.294400 16.169500 -7.962700 0 253 27
--0.971400 14.644800 -6.706400 0 253 27
--5.426000 21.341299 -8.131100 254 254 254
--6.827700 20.858999 -3.051400 254 254 254
--6.824000 22.193899 -3.254300 254 254 254
--5.317800 22.936800 -8.014600 254 254 254
--0.845100 29.891001 -9.491500 0 253 27
--0.835600 22.853901 -8.203000 0 253 27
--5.317800 22.936800 -8.014600 0 253 27
--5.595300 29.761600 -8.491100 0 254 27
--1.957400 20.620800 -1.217700 242 254 242
--2.189200 21.987900 -1.481800 218 254 222
--6.824000 22.193899 -3.254300 99 254 117
--6.827700 20.858999 -3.051400 166 254 175
--0.605400 59.453602 0.006800 254 254 254
-0.000000 59.375900 0.272700 254 254 254
--0.226300 59.631802 0.717000 254 254 254
--21.936399 43.055199 -3.733600 24 182 75
--22.348700 46.932201 -2.822400 72 195 37
--23.323000 46.228001 -3.425200 26 230 29
--23.265499 44.290199 -3.614200 37 214 37
--22.105101 44.119598 -7.074000 254 254 254
--23.273100 44.479099 -6.170500 254 254 254
--23.881300 46.267799 -5.995500 254 254 254
--23.337700 47.268200 -6.945000 254 254 254
--22.348700 46.932201 -2.822400 72 195 37
--23.337700 47.268200 -6.945000 0 254 27
--23.881300 46.267799 -5.995500 0 253 27
--23.323000 46.228001 -3.425200 26 230 29
--21.936399 43.055199 -3.733600 254 68 73
--23.265499 44.290199 -3.614200 254 68 73
--23.273100 44.479099 -6.170500 254 68 73
--22.105101 44.119598 -7.074000 254 68 73
--23.323000 46.228001 -3.425200 26 230 29
--24.935400 45.742901 -3.288800 80 189 39
--24.446100 44.099098 -3.039500 144 136 53
--23.265499 44.290199 -3.614200 37 214 37
--23.273100 44.479099 -6.170500 16 254 41
--25.718901 44.407902 -5.989100 47 254 71
--25.982700 45.641201 -5.974700 53 254 75
--23.881300 46.267799 -5.995500 23 254 48
--23.881300 46.267799 -5.995500 0 253 27
--25.982700 45.641201 -5.974700 0 253 27
--24.935400 45.742901 -3.288800 80 189 39
--23.323000 46.228001 -3.425200 26 230 29
--23.265499 44.290199 -3.614200 0 254 27
--24.446100 44.099098 -3.039500 0 254 27
--25.718901 44.407902 -5.989100 47 254 71
--23.273100 44.479099 -6.170500 16 254 41
--3.798500 31.552500 -0.386300 211 97 63
-0.000000 31.552500 0.128500 203 101 62
-0.000000 37.009800 0.550700 172 124 55
--4.685700 36.664101 -1.616400 13 226 40
--27.058001 43.733101 -1.471100 254 68 73
--28.100901 44.177299 -2.470000 231 80 64
--27.637899 42.321201 -1.984400 254 68 73
--26.775499 43.007000 -1.492900 254 68 73
--27.102699 45.320202 -5.735100 75 254 93
--25.982700 45.641201 -5.974700 53 254 75
--25.718901 44.407902 -5.989100 47 254 71
--26.246300 42.901402 -5.383600 20 254 46
--24.935400 45.742901 -3.288800 80 254 99
--25.982700 45.641201 -5.974700 0 254 27
--27.102699 45.320202 -5.735100 0 254 27
--26.753901 45.398300 -2.858600 163 254 174
--24.446100 44.099098 -3.039500 0 249 30
--26.246300 42.901402 -5.383600 19 213 43
--25.718901 44.407902 -5.989100 46 208 34
--28.380600 42.330502 -3.056600 254 68 73
--27.637899 42.321201 -1.984400 254 68 73
--28.100901 44.177299 -2.470000 254 68 73
--28.697901 44.238201 -3.477500 254 68 73
--28.380600 42.330502 -3.056600 254 254 254
--28.697901 44.238201 -3.477500 254 254 254
--28.543800 44.178001 -4.651400 254 254 254
--28.292801 42.543098 -4.446800 254 254 254
--26.753901 45.398300 -2.858600 163 125 53
--28.697901 44.238201 -3.477500 97 175 41
--28.100901 44.177299 -2.470000 231 80 64
--24.935400 45.742901 -3.288800 80 189 39
--26.117701 44.487900 -2.198700 242 74 67
--25.587200 43.557701 -2.038700 253 67 73
--24.446100 44.099098 -3.039500 144 136 53
--24.446100 44.099098 -3.039500 0 249 30
--25.587200 43.557701 -2.038700 0 252 27
--25.491899 42.827301 -2.370100 0 245 34
--26.246300 42.901402 -5.383600 19 213 43
--26.753901 45.398300 -2.858600 163 125 53
--26.117701 44.487900 -2.198700 242 74 67
--24.935400 45.742901 -3.288800 80 189 39
-0.000000 31.552500 0.128500 203 101 62
--3.798500 31.552500 -0.386300 211 97 63
--3.463700 23.872801 -0.356700 254 68 73
-0.000000 24.132099 -0.356700 243 74 70
--2.225300 60.301201 -1.334400 254 254 254
--2.043500 58.694401 -1.722000 254 247 247
--0.793500 58.611801 -0.022400 254 246 246
--0.793500 58.611801 -0.022400 254 246 246
--2.043500 58.694401 -1.722000 254 247 247
--2.071800 58.080299 -1.837600 254 224 225
--0.860300 57.339199 -0.345300 254 172 174
--2.071800 58.080299 -1.837600 254 224 225
--1.480400 57.287800 -3.167400 254 153 157
--0.509500 56.862801 -2.081200 254 129 132
--0.860300 57.339199 -0.345300 254 172 174
--0.179900 61.274700 0.058500 0 254 27
-0.000000 61.912998 -0.048000 0 254 27
--0.785400 61.539799 -0.048800 0 254 27
--15.884600 46.520500 -7.855800 0 250 27
--17.208200 49.477699 -7.512200 6 242 27
--16.136200 50.023998 -7.546200 0 249 27
--14.885000 46.974701 -7.946000 0 251 27
--15.636800 49.715099 -4.015700 0 253 27
--16.136200 50.023998 -7.546200 0 253 27
--17.208200 49.477699 -7.512200 0 253 27
--16.810101 49.139900 -3.928800 0 253 27
--16.192200 44.960400 -4.877100 0 236 42
--15.884600 46.520500 -7.855800 0 253 27
--14.885000 46.974701 -7.946000 0 253 27
--14.977100 45.689201 -4.821000 0 248 31
--16.810101 49.139900 -3.928800 236 81 69
--16.192200 44.960400 -4.877100 200 90 77
--14.977100 45.689201 -4.821000 174 120 62
--15.636800 49.715099 -4.015700 218 94 66
--13.779500 47.417198 -7.715300 0 253 27
--14.989100 50.565300 -7.297200 0 252 27
--9.827700 52.989700 -7.188500 0 253 27
--8.756500 49.321098 -7.632900 0 253 27
--15.636800 49.715099 -4.015700 0 253 27
--14.989100 50.565300 -7.297200 0 253 27
--16.136200 50.023998 -7.546200 0 253 27
--13.779500 47.417198 -7.715300 0 253 27
--14.977100 45.689201 -4.821000 0 253 27
--14.885000 46.974701 -7.946000 0 251 27
--0.971400 14.644800 -6.706400 27 229 30
--1.221800 14.450400 -2.004100 0 252 27
--1.766900 13.754900 -2.918700 0 253 27
--26.117701 44.487900 -2.198700 242 74 67
--27.058001 43.733101 -1.471100 254 68 73
--26.775499 43.007000 -1.492900 254 68 73
--25.587200 43.557701 -2.038700 253 67 73
--25.587200 43.557701 -2.038700 0 252 27
--26.775499 43.007000 -1.492900 0 253 27
--27.637899 42.321201 -1.984400 0 253 27
--25.491899 42.827301 -2.370100 0 245 34
--26.117701 44.487900 -2.198700 242 74 67
--28.100901 44.177299 -2.470000 231 80 64
--27.058001 43.733101 -1.471100 254 68 73
--8.184300 53.108700 -3.320400 0 253 27
--7.813100 49.342701 -3.886900 0 253 27
--6.624100 53.529800 -2.653700 0 253 27
--8.747800 53.770199 -7.353300 0 254 27
--6.775800 50.206501 -7.534500 0 254 27
--8.756500 49.321098 -7.632900 0 254 27
--9.827700 52.989700 -7.188500 0 254 27
--28.543800 44.178001 -4.651400 0 254 27
--28.697901 44.238201 -3.477500 97 254 114
--26.753901 45.398300 -2.858600 163 254 174
--27.102699 45.320202 -5.735100 0 254 27
--26.246300 42.901402 -5.383600 20 231 27
--28.380600 42.330502 -3.056600 0 252 27
--28.292801 42.543098 -4.446800 5 243 27
--28.100901 44.177299 -2.470000 231 80 64
--26.117701 44.487900 -2.198700 242 74 67
--26.753901 45.398300 -2.858600 163 125 53
--1.712600 0.024900 -9.195700 254 254 254
--3.769300 -0.009000 1.132900 0 254 27
--5.176800 -0.025000 -0.598300 0 254 27
--3.252600 0.001600 -8.591000 254 254 254
-0.000000 61.912998 -0.048000 0 254 27
-0.000000 62.775902 -0.355700 0 254 27
--0.785400 61.539799 -0.048800 0 254 27
--0.340300 31.400700 -9.922000 0 253 27
--0.425600 30.069099 -1.503600 0 253 27
--0.845100 29.891001 -9.491500 0 253 27
-0.000000 54.522099 -2.187600 235 81 69
-0.000000 56.862801 -2.081200 254 127 130
--0.509500 56.862801 -2.081200 254 129 132
--0.509500 56.862801 -2.081200 254 129 132
-0.000000 56.862801 -2.081200 254 127 130
-0.000000 57.320400 0.190300 254 190 192
--0.860300 57.339199 -0.345300 254 172 174
--5.598500 31.822901 -1.405400 133 152 48
--7.453900 29.910801 -4.782000 0 253 27
--6.824000 22.193899 -3.254300 99 254 117
--6.824000 22.193899 -3.254300 254 68 73
--7.453900 29.910801 -4.782000 254 68 73
--5.595300 29.761600 -8.491100 254 68 73
--5.317800 22.936800 -8.014600 254 68 73
--3.798500 31.552500 -0.386300 211 97 63
--5.598500 31.822901 -1.405400 133 152 48
--6.824000 22.193899 -3.254300 99 254 117
--2.189200 21.987900 -1.481800 218 254 222
--0.340300 31.400700 -9.922000 0 253 27
--0.845100 29.891001 -9.491500 0 253 27
--5.595300 29.761600 -8.491100 0 254 27
--4.970000 33.082802 -8.871300 0 254 27
--0.835600 22.853901 -8.203000 2 205 69
--0.845100 29.891001 -9.491500 0 241 37
--0.425600 30.069099 -1.503600 0 253 27
--2.189200 21.987900 -1.481800 0 253 27
--2.162800 35.743500 -9.599900 0 254 27
--0.340300 31.400700 -9.922000 0 253 27
--4.970000 33.082802 -8.871300 0 254 27
--5.283200 35.952900 -7.814600 0 254 27
--5.283200 35.952900 -7.814600 0 254 27
--6.542300 35.480598 -4.902800 0 254 27
--5.919200 37.619099 -4.570300 0 254 27
--5.919200 37.619099 -4.570300 0 253 27
--6.542300 35.480598 -4.902800 0 253 27
--5.598500 31.822901 -1.405400 133 152 48
--4.685700 36.664101 -1.616400 13 240 28
--0.474100 61.294899 -0.607800 0 254 27
--1.340700 61.343498 -1.024900 0 254 27
--2.225300 60.301201 -1.334400 0 254 27
--0.596000 60.268700 -0.255900 0 254 27
--1.340700 61.343498 -1.024900 254 254 254
--0.474100 61.294899 -0.607800 254 254 254
--0.785400 61.539799 -0.048800 254 254 254
--1.792100 61.563202 -0.648200 254 254 254
-0.000000 45.235802 -8.516300 0 253 27
-0.000000 38.221600 -8.073300 0 253 27
--2.827600 38.171799 -8.088300 0 253 27
--5.495700 46.043098 -6.732400 0 253 27
--0.425600 30.069099 -1.503600 254 254 254
--3.798500 31.552500 -0.386300 254 254 254
--2.189200 21.987900 -1.481800 254 254 254
-0.000000 31.547001 -9.939100 254 68 73
-0.000000 30.215401 -1.522000 254 68 73
--0.425600 30.069099 -1.503600 254 68 73
--0.340300 31.400700 -9.922000 254 68 73
--21.061199 44.183601 -7.611200 52 208 31
--22.585199 48.327702 -7.594400 104 170 42
--17.208200 49.477699 -7.512200 6 242 27
--15.884600 46.520500 -7.855800 0 250 27
--22.348700 46.932201 -2.822400 72 195 37
--22.585199 48.327702 -7.594400 0 253 27
--23.337700 47.268200 -6.945000 0 254 27
--21.061199 44.183601 -7.611200 52 208 31
--21.936399 43.055199 -3.733600 0 253 27
--22.105101 44.119598 -7.074000 30 225 27
-0.000000 59.375900 0.272700 254 254 254
-0.226300 59.631802 0.717000 254 254 254
--0.226300 59.631802 0.717000 254 254 254
--0.163800 60.672798 0.405300 0 254 27
--0.226300 59.631802 0.717000 0 254 27
-0.226300 59.631802 0.717000 0 254 27
-0.163800 60.672798 0.405300 0 254 27
--0.340300 31.400700 -9.922000 0 253 27
--2.162800 35.743500 -9.599900 0 253 27
-0.000000 35.795200 -9.599900 0 253 27
-0.000000 31.547001 -9.939100 0 253 27
--5.919200 37.619099 -4.570300 0 254 27
--2.827600 38.171799 -8.088300 0 254 27
--2.162800 35.743500 -9.599900 0 254 27
--5.283200 35.952900 -7.814600 0 254 27
--28.543800 44.178001 -4.651400 254 254 254
--27.102699 45.320202 -5.735100 254 254 254
--26.246300 42.901402 -5.383600 254 254 254
--28.292801 42.543098 -4.446800 254 254 254
--25.491899 42.827301 -2.370100 0 254 27
--27.637899 42.321201 -1.984400 0 254 27
--28.380600 42.330502 -3.056600 0 254 27
--26.246300 42.901402 -5.383600 20 231 27
--25.491899 42.827301 -2.370100 0 253 27
--28.380600 42.330502 -3.056600 0 252 27
--0.179900 61.274700 0.058500 0 254 27
--0.163800 60.672798 0.405300 0 254 27
-0.163800 60.672798 0.405300 0 254 27
-0.179900 61.274700 0.058500 0 254 27
-0.000000 61.912998 -0.048000 0 254 27
--0.179900 61.274700 0.058500 0 254 27
-0.179900 61.274700 0.058500 0 254 27
--2.162800 35.743500 -9.599900 0 253 27
--2.827600 38.171799 -8.088300 0 253 27
-0.000000 38.221600 -8.073300 0 253 27
-0.000000 35.795200 -9.599900 0 253 27
-4.620900 14.945700 -8.516100 0 253 27
-3.252600 0.001600 -8.591000 235 80 66
-1.712600 0.024900 -9.195700 254 68 73
-1.456400 14.610600 -8.695100 0 253 27
-4.089400 2.633000 -5.031300 18 0 253
-3.252600 0.001600 -8.591000 19 0 253
-4.620900 14.945700 -8.516100 0 247 31
-5.308800 13.910900 -3.738700 0 253 27
-1.553600 3.059500 -4.173500 18 0 253
-3.061600 3.537800 -3.461700 18 0 253
-1.766900 13.754900 -2.918700 0 254 27
-1.553600 3.059500 -4.173500 254 254 254
-1.766900 13.754900 -2.918700 254 254 254
-1.239800 14.644800 -6.465300 254 254 254
-0.626000 0.031700 -8.336200 254 254 254
-5.495700 46.043098 -6.732400 0 252 27
-6.029500 46.188801 -3.956000 0 253 27
-5.919200 37.619099 -4.570300 9 98 162
-2.827600 38.171799 -8.088300 8 119 142
-4.685700 36.664101 -1.616400 0 250 28
-5.919200 37.619099 -4.570300 9 98 162
-6.029500 46.188801 -3.956000 0 253 27
-4.298500 47.001099 -0.058900 0 253 27
-6.775800 50.206501 -7.534500 0 253 27
-0.000000 50.037800 -9.413700 0 253 27
-0.000000 53.738098 -8.986800 0 253 27
-7.252500 54.524502 -7.615000 0 254 27
-7.252500 54.524502 -7.615000 0 254 27
-6.624100 53.529800 -2.653700 0 253 27
-8.184300 53.108700 -3.320400 0 253 27
-8.747800 53.770199 -7.353300 0 253 27
-9.827700 52.989700 -7.188500 0 253 27
-9.508400 52.403099 -3.672700 0 253 27
-15.636800 49.715099 -4.015700 1 215 59
-14.989100 50.565300 -7.297200 0 249 29
-0.000000 37.009800 0.550700 0 253 27
-4.685700 36.664101 -1.616400 0 250 28
-4.298500 47.001099 -0.058900 0 253 27
-0.000000 47.287498 1.094200 0 253 27
-0.000000 53.738098 -8.986800 0 253 27
-0.000000 55.950600 -7.250100 0 253 27
-2.321200 55.471001 -5.570800 0 253 27
-7.252500 54.524502 -7.615000 0 254 27
-3.773800 51.093601 -1.034300 0 253 27
-4.298500 47.001099 -0.058900 0 253 27
-6.029500 46.188801 -3.956000 0 253 27
-6.624100 53.529800 -2.653700 0 253 27
-6.624100 53.529800 -2.653700 254 68 73
-6.029500 46.188801 -3.956000 254 68 73
-7.813100 49.342701 -3.886900 254 68 73
-0.000000 50.880199 0.110000 0 253 27
-0.000000 47.287498 1.094200 0 252 27
-4.298500 47.001099 -0.058900 0 253 27
-3.773800 51.093601 -1.034300 0 253 27
-16.136200 50.023998 -7.546200 0 253 27
-14.885000 46.974701 -7.946000 0 253 27
-13.779500 47.417198 -7.715300 0 253 27
-14.989100 50.565300 -7.297200 0 253 27
-13.779500 47.417198 -7.715300 0 253 27
-14.977100 45.689201 -4.821000 0 253 27
-8.927200 49.128502 -4.128200 0 253 27
-8.756500 49.321098 -7.632900 0 253 27
-17.208200 49.477699 -7.512200 0 227 47
-16.810101 49.139900 -3.928800 35 133 112
-22.348700 46.932201 -2.822400 19 0 250
-22.585199 48.327702 -7.594400 0 236 38
-21.936399 43.055199 -3.733600 19 0 253
-22.348700 46.932201 -2.822400 19 0 250
-16.810101 49.139900 -3.928800 35 133 112
-16.192200 44.960400 -4.877100 18 0 253
-22.105101 44.119598 -7.074000 0 253 27
-21.061199 44.183601 -7.611200 0 253 27
-22.585199 48.327702 -7.594400 0 253 27
-23.337700 47.268200 -6.945000 0 253 27
-15.884600 46.520500 -7.855800 0 253 27
-21.061199 44.183601 -7.611200 0 253 27
-21.936399 43.055199 -3.733600 0 253 27
-16.192200 44.960400 -4.877100 0 253 27
-5.598500 31.822901 -1.404300 0 240 37
-7.453900 29.910801 -4.780100 18 0 251
-7.174300 32.815300 -5.167300 17 7 244
-4.970000 33.082802 -8.871900 18 0 252
-7.174300 32.815300 -5.167300 17 7 244
-7.453900 29.910801 -4.780100 18 0 251
-5.595300 29.761600 -8.492500 18 0 253
-6.827700 20.858999 -3.044800 0 231 44
-6.194700 19.576300 -3.478600 0 248 31
-5.426000 21.341299 -8.132600 15 21 230
-0.835600 22.853901 -8.210700 0 253 27
-5.317800 22.936800 -8.016200 0 253 27
-5.426000 21.341299 -8.132600 0 253 27
-0.899900 21.410400 -8.349400 0 253 27
-0.899900 21.410400 -8.349400 254 254 254
-1.853000 19.164200 -1.371600 254 254 254
-1.957400 20.620800 -1.211500 254 254 254
-6.194700 19.576300 -3.478600 0 248 31
-6.827700 20.858999 -3.044800 0 231 44
-1.957400 20.620800 -1.211500 0 253 27
-1.853000 19.164200 -1.371600 0 253 27
-5.117200 15.490400 -9.679700 0 253 27
-0.134100 16.169500 -9.174700 0 253 27
-0.899900 21.410400 -8.349400 0 253 27
-5.426000 21.341299 -8.132600 0 253 27
-0.134100 16.169500 -9.174700 0 254 27
-1.716700 14.450400 -2.459200 0 254 27
-1.853000 19.164200 -1.371600 0 254 27
-0.899900 21.410400 -8.349400 0 254 27
-1.853000 19.164200 -1.371600 0 253 27
-1.716700 14.450400 -2.459200 0 253 27
-6.069200 14.643000 -3.762300 0 253 27
-6.194700 19.576300 -3.478600 0 248 31
-6.069200 14.643000 -3.762300 0 253 27
-5.117200 15.490400 -9.679700 2 202 70
-5.426000 21.341299 -8.132600 15 21 230
-6.194700 19.576300 -3.478600 0 248 31
-7.813100 49.342701 -3.886900 0 253 27
-6.029500 46.188801 -3.956000 0 253 27
-5.495700 46.043098 -6.732400 0 252 27
-6.775800 50.206501 -7.534500 0 253 27
-8.756500 49.321098 -7.632900 254 68 73
-8.927200 49.128502 -4.128200 254 68 73
-7.813100 49.342701 -3.886900 254 68 73
-6.775800 50.206501 -7.534500 254 68 73
-5.495700 46.043098 -6.732400 0 253 27
-0.000000 45.235802 -8.516300 0 253 27
-0.000000 50.037800 -9.413700 0 253 27
-6.775800 50.206501 -7.534500 0 253 27
-3.773800 51.093601 -1.034300 0 253 27
-1.435700 55.057400 -2.884500 0 253 27
-0.000000 54.522099 -2.187600 0 253 27
-0.000000 50.880199 0.110000 0 253 27
-0.163800 60.672798 0.405300 0 253 27
-0.226300 59.631802 0.717000 0 253 27
-0.605400 59.453602 0.006800 0 253 27
-0.596000 60.268700 -0.255900 0 253 27
-0.000000 59.375900 0.272700 0 253 27
-0.000000 58.735298 0.237300 0 253 27
-0.793500 58.611801 -0.022400 0 253 27
-0.605400 59.453602 0.006800 0 253 27
-1.340700 61.343498 -1.024900 254 254 254
-2.225300 60.301201 -1.334400 254 254 254
-2.209500 61.230499 -1.515000 254 254 254
-0.474100 61.294899 -0.607800 0 253 27
-0.785400 61.539799 -0.048800 0 253 27
-0.179900 61.274700 0.058500 0 253 27
-0.163800 60.672798 0.405300 0 253 27
-0.596000 60.268700 -0.255900 0 253 27
-0.474100 61.294899 -0.607800 0 253 27
-0.179900 61.274700 0.058500 0 253 27
-0.785400 61.539799 -0.048800 0 253 27
-1.792100 61.563202 -0.648200 0 253 27
-1.901400 62.898899 -1.262500 0 253 27
-0.000000 62.775902 -0.355700 0 253 27
-1.901400 62.898899 -1.262500 254 73 78
-1.792100 61.563202 -0.648200 254 68 73
-2.209500 61.230499 -1.515000 254 68 73
-2.505800 61.413601 -3.333900 254 68 73
-2.071800 58.080299 -1.837600 254 254 254
-2.361600 58.652599 -3.405400 254 254 254
-2.043500 58.694401 -1.722000 254 254 254
-2.361600 58.652599 -3.405400 254 254 254
-2.071800 58.080299 -1.837600 254 254 254
-1.480400 57.287800 -3.167400 254 254 254
-2.361600 58.652599 -3.405400 254 254 254
-2.484800 60.667999 -2.078300 254 254 254
-2.225300 60.301201 -1.334400 254 254 254
-2.043500 58.694401 -1.722000 254 254 254
-0.596000 60.268700 -0.255900 0 253 27
-0.605400 59.453602 0.006800 0 253 27
-0.793500 58.611801 -0.022400 0 253 27
-2.225300 60.301201 -1.334400 0 253 27
-0.793500 58.611801 -0.022400 254 68 73
-0.000000 58.735298 0.237300 254 68 73
-0.000000 57.320400 0.190300 254 68 73
-0.860300 57.339199 -0.345300 254 68 73
-2.361600 58.652599 -3.405400 254 254 254
-1.480400 57.287800 -3.167400 254 254 254
-1.507500 57.978802 -4.806700 254 254 254
-1.480400 57.287800 -3.167400 0 253 27
-0.509500 56.862801 -2.081200 0 253 27
-0.000000 54.522099 -2.187600 0 253 27
-1.435700 55.057400 -2.884500 0 254 27
-1.435700 55.057400 -2.884500 254 68 73
-2.321200 55.471001 -5.570800 254 68 73
-1.507500 57.978802 -4.806700 254 68 73
-1.480400 57.287800 -3.167400 254 68 73
-5.117200 15.490400 -9.679700 0 253 27
-1.456400 14.610600 -8.695100 0 253 27
-0.134100 16.169500 -9.174700 0 253 27
-0.134100 16.169500 -9.174700 254 254 254
-1.239800 14.644800 -6.465300 254 254 254
-1.716700 14.450400 -2.459200 254 254 254
-5.308800 13.910900 -3.738700 0 253 27
-6.069200 14.643000 -3.762300 0 253 27
-1.716700 14.450400 -2.459200 0 253 27
-1.766900 13.754900 -2.918700 0 253 27
-4.620900 14.945700 -8.516100 0 247 31
-5.117200 15.490400 -9.679700 2 205 68
-6.069200 14.643000 -3.762300 0 253 27
-5.308800 13.910900 -3.738700 0 253 27
-1.957400 20.620800 -1.211500 254 254 254
-2.189200 21.987900 -1.483700 254 254 254
-0.835600 22.853901 -8.210700 254 254 254
-0.899900 21.410400 -8.349400 254 254 254
-7.174300 32.815300 -5.167300 17 7 244
-4.970000 33.082802 -8.871900 18 0 252
-5.283200 35.952900 -7.814600 18 1 249
-6.542300 35.480598 -4.902800 15 32 221
-5.598500 31.822901 -1.404300 0 240 37
-7.174300 32.815300 -5.167300 17 7 244
-6.542300 35.480598 -4.902800 15 32 221
-4.685700 36.664101 -1.616400 0 250 28
-3.798500 31.552500 -0.388900 0 253 27
-5.598500 31.822901 -1.404300 0 240 37
-2.225300 60.301201 -1.334400 254 254 254
-2.484800 60.667999 -2.078300 254 254 254
-2.209500 61.230499 -1.515000 254 254 254
-8.927200 49.128502 -4.128200 254 68 73
-9.508400 52.403099 -3.672700 254 68 73
-8.184300 53.108700 -3.320400 254 68 73
-7.813100 49.342701 -3.886900 254 68 73
-8.184300 53.108700 -3.320400 0 253 27
-9.508400 52.403099 -3.672700 0 253 27
-9.827700 52.989700 -7.188500 0 253 27
-8.747800 53.770199 -7.353300 0 253 27
-8.747800 53.770199 -7.353300 0 253 27
-6.775800 50.206501 -7.534500 0 253 27
-7.252500 54.524502 -7.615000 0 254 27
-8.927200 49.128502 -4.128200 0 253 27
-14.977100 45.689201 -4.821000 18 0 253
-15.636800 49.715099 -4.015700 29 188 60
-9.508400 52.403099 -3.672700 0 253 27
-1.435700 55.057400 -2.884500 0 253 27
-3.773800 51.093601 -1.034300 0 253 27
-6.624100 53.529800 -2.653700 0 253 27
-7.252500 54.524502 -7.615000 0 253 27
-2.321200 55.471001 -5.570800 0 253 27
-1.435700 55.057400 -2.884500 0 253 27
-7.252500 54.524502 -7.615000 0 253 27
-2.209500 61.230499 -1.515000 254 254 254
-2.484800 60.667999 -2.078300 254 254 254
-2.505800 61.413601 -3.333900 254 254 254
-2.484800 60.667999 -2.078300 254 254 254
-2.361600 58.652599 -3.405400 254 254 254
-2.505800 61.413601 -3.333900 254 254 254
-2.209500 61.230499 -1.515000 254 68 73
-1.792100 61.563202 -0.648200 254 68 73
-1.340700 61.343498 -1.024900 254 68 73
-3.061600 3.537800 -3.461700 18 0 253
-1.553600 3.059500 -4.173500 18 0 253
-1.568700 1.981700 -0.627100 19 0 253
-3.735600 1.816900 0.228400 19 0 253
-0.626000 0.031700 -8.336200 0 254 27
-1.825200 -0.024100 0.601200 254 254 254
-1.568700 1.981700 -0.627100 254 254 254
-1.553600 3.059500 -4.173500 186 254 192
-1.825200 -0.024100 0.601200 0 254 27
-0.626000 0.031700 -8.336200 253 254 253
-1.712600 0.024900 -9.195700 254 254 254
-3.769300 -0.009000 1.132900 0 254 27
-1.712600 0.024900 -9.195700 254 68 73
-0.626000 0.031700 -8.336200 254 68 73
-1.239800 14.644800 -6.465300 254 68 73
-1.456400 14.610600 -8.695100 254 68 73
-1.568700 1.981700 -0.627100 19 0 253
-1.825200 -0.024100 0.601200 19 0 253
-3.769300 -0.009000 1.132900 19 0 253
-3.735600 1.816900 0.228400 19 0 253
-4.089400 2.633000 -5.031300 18 0 253
-5.390300 1.568200 -1.670300 18 0 253
-5.176800 -0.025000 -0.598300 18 0 253
-3.252600 0.001600 -8.591000 19 0 253
-3.769300 -0.009000 1.132900 18 0 253
-5.176800 -0.025000 -0.598300 18 0 253
-5.390300 1.568200 -1.670300 18 0 253
-3.735600 1.816900 0.228400 18 0 253
-5.390300 1.568200 -1.670300 18 0 253
-4.089400 2.633000 -5.031300 18 0 253
-3.061600 3.537800 -3.461700 18 0 253
-3.735600 1.816900 0.228400 18 0 253
-3.061600 3.537800 -3.461700 18 0 253
-4.089400 2.633000 -5.031300 18 0 253
-5.308800 13.910900 -3.738700 0 253 27
-1.766900 13.754900 -2.918700 0 253 27
-5.117200 15.490400 -9.679700 0 253 27
-4.620900 14.945700 -8.516100 0 253 27
-1.456400 14.610600 -8.695100 0 253 27
-1.456400 14.610600 -8.695100 254 254 254
-1.239800 14.644800 -6.465300 254 254 254
-0.134100 16.169500 -9.174700 254 254 254
-5.426000 21.341299 -8.132600 15 21 230
-5.317800 22.936800 -8.016200 18 0 252
-6.824000 22.193899 -3.251500 3 179 89
-6.827700 20.858999 -3.044800 0 231 44
-0.845100 29.891001 -9.498900 0 253 27
-5.595300 29.761600 -8.492500 0 253 27
-5.317800 22.936800 -8.016200 0 253 27
-0.835600 22.853901 -8.210700 0 253 27
-1.957400 20.620800 -1.211500 254 68 73
-6.827700 20.858999 -3.044800 232 61 86
-6.824000 22.193899 -3.251500 185 47 122
-2.189200 21.987900 -1.483700 254 68 73
-0.605400 59.453602 0.006800 254 68 73
-0.226300 59.631802 0.717000 254 68 73
-0.000000 59.375900 0.272700 254 68 73
-21.936399 43.055199 -3.733600 19 0 253
-23.265499 44.290199 -3.614200 19 0 253
-23.323000 46.228001 -3.425200 19 0 251
-22.348700 46.932201 -2.822400 20 0 250
-22.105101 44.119598 -7.074000 0 253 27
-23.337700 47.268200 -6.945000 0 253 27
-23.881300 46.267799 -5.995500 0 253 27
-23.273100 44.479099 -6.170500 0 253 27
-22.348700 46.932201 -2.822400 18 0 249
-23.323000 46.228001 -3.425200 18 0 251
-23.881300 46.267799 -5.995500 12 63 193
-23.337700 47.268200 -6.945000 2 175 92
-21.936399 43.055199 -3.733600 18 0 253
-22.105101 44.119598 -7.074000 18 0 253
-23.273100 44.479099 -6.170500 18 0 253
-23.265499 44.290199 -3.614200 18 0 253
-23.323000 46.228001 -3.425200 19 0 251
-23.265499 44.290199 -3.614200 19 0 253
-24.446100 44.099098 -3.039500 19 0 253
-24.935400 45.742901 -3.288800 20 0 251
-23.273100 44.479099 -6.170500 0 253 27
-23.881300 46.267799 -5.995500 0 253 27
-25.982700 45.641201 -5.974700 0 253 27
-25.718901 44.407902 -5.989100 0 253 27
-23.881300 46.267799 -5.995500 64 24 202
-23.323000 46.228001 -3.425200 19 0 251
-24.935400 45.742901 -3.288800 20 0 251
-25.982700 45.641201 -5.974700 65 29 197
-23.265499 44.290199 -3.614200 0 251 27
-23.273100 44.479099 -6.170500 0 253 27
-25.718901 44.407902 -5.989100 0 253 27
-24.446100 44.099098 -3.039500 53 205 30
-3.798500 31.552500 -0.388900 57 208 35
-4.685700 36.664101 -1.616400 0 250 28
-0.000000 37.009800 0.550700 172 124 55
-0.000000 31.552500 0.128500 203 101 62
-27.058001 43.733101 -1.471100 19 0 253
-26.775499 43.007000 -1.492900 19 0 253
-27.637899 42.321201 -1.984400 19 0 253
-28.100901 44.177299 -2.470000 19 0 253
-27.102699 45.320202 -5.735100 0 253 27
-26.246300 42.901402 -5.383600 0 252 27
-25.718901 44.407902 -5.989100 0 253 27
-25.982700 45.641201 -5.974700 0 253 27
-24.935400 45.742901 -3.288800 20 0 251
-26.753901 45.398300 -2.858600 21 0 250
-27.102699 45.320202 -5.735100 69 22 201
-25.982700 45.641201 -5.974700 65 29 197
-24.446100 44.099098 -3.039500 254 254 254
-25.718901 44.407902 -5.989100 254 254 254
-26.246300 42.901402 -5.383600 254 254 254
-28.380600 42.330502 -3.056600 19 0 253
-28.697901 44.238201 -3.477500 20 0 252
-28.100901 44.177299 -2.470000 19 0 253
-27.637899 42.321201 -1.984400 19 0 253
-28.380600 42.330502 -3.056600 19 0 253
-28.292801 42.543098 -4.446800 19 0 253
-28.543800 44.178001 -4.651400 20 3 248
-28.697901 44.238201 -3.477500 20 0 252
-26.753901 45.398300 -2.858600 20 0 250
-28.100901 44.177299 -2.470000 19 0 253
-28.697901 44.238201 -3.477500 20 0 252
-24.935400 45.742901 -3.288800 20 0 251
-24.446100 44.099098 -3.039500 19 0 253
-25.587200 43.557701 -2.038700 19 0 253
-26.117701 44.487900 -2.198700 19 0 253
-24.446100 44.099098 -3.039500 254 68 73
-26.246300 42.901402 -5.383600 254 68 73
-25.491899 42.827301 -2.370100 254 68 73
-25.587200 43.557701 -2.038700 254 68 73
-26.753901 45.398300 -2.858600 21 0 250
-24.935400 45.742901 -3.288800 20 0 251
-26.117701 44.487900 -2.198700 19 0 253
-0.000000 31.552500 0.128500 0 253 27
-0.000000 24.132099 -0.356700 0 253 27
-3.463700 23.872801 -0.356700 0 253 27
-3.798500 31.552500 -0.388900 0 253 27
-2.225300 60.301201 -1.334400 0 253 27
-0.793500 58.611801 -0.022400 0 253 27
-2.043500 58.694401 -1.722000 0 253 27
-0.793500 58.611801 -0.022400 0 253 27
-0.860300 57.339199 -0.345300 0 253 27
-2.071800 58.080299 -1.837600 0 253 27
-2.043500 58.694401 -1.722000 0 253 27
-2.071800 58.080299 -1.837600 254 68 73
-0.860300 57.339199 -0.345300 254 68 73
-0.509500 56.862801 -2.081200 254 68 73
-1.480400 57.287800 -3.167400 254 68 73
-0.179900 61.274700 0.058500 0 254 27
-0.785400 61.539799 -0.048800 0 254 27
-0.000000 61.912998 -0.048000 0 254 27
-15.884600 46.520500 -7.855800 0 253 27
-14.885000 46.974701 -7.946000 0 253 27
-16.136200 50.023998 -7.546200 0 253 27
-17.208200 49.477699 -7.512200 0 253 27
-15.636800 49.715099 -4.015700 1 215 59
-16.810101 49.139900 -3.928800 5 158 110
-17.208200 49.477699 -7.512200 0 227 47
-16.136200 50.023998 -7.546200 0 244 34
-16.192200 44.960400 -4.877100 254 252 252
-14.977100 45.689201 -4.821000 254 202 204
-14.885000 46.974701 -7.946000 254 123 127
-15.884600 46.520500 -7.855800 254 212 213
-16.810101 49.139900 -3.928800 35 133 112
-15.636800 49.715099 -4.015700 25 190 59
-14.977100 45.689201 -4.821000 18 0 253
-16.192200 44.960400 -4.877100 18 0 253
-13.779500 47.417198 -7.715300 12 79 181
-8.756500 49.321098 -7.632900 0 250 29
-9.827700 52.989700 -7.188500 0 253 27
-14.989100 50.565300 -7.297200 0 249 29
-15.636800 49.715099 -4.015700 1 215 59
-16.136200 50.023998 -7.546200 0 244 34
-14.989100 50.565300 -7.297200 0 249 29
-13.779500 47.417198 -7.715300 254 70 75
-14.885000 46.974701 -7.946000 254 123 127
-14.977100 45.689201 -4.821000 254 202 204
-1.239800 14.644800 -6.465300 254 254 254
-1.766900 13.754900 -2.918700 254 254 254
-1.716700 14.450400 -2.459200 254 254 254
-26.117701 44.487900 -2.198700 19 0 253
-25.587200 43.557701 -2.038700 19 0 253
-26.775499 43.007000 -1.492900 19 0 253
-27.058001 43.733101 -1.471100 19 0 253
-25.587200 43.557701 -2.038700 19 0 253
-25.491899 42.827301 -2.370100 19 0 253
-27.637899 42.321201 -1.984400 19 0 253
-26.775499 43.007000 -1.492900 19 0 253
-26.117701 44.487900 -2.198700 19 0 253
-27.058001 43.733101 -1.471100 19 0 253
-28.100901 44.177299 -2.470000 19 0 253
-8.184300 53.108700 -3.320400 254 68 73
-6.624100 53.529800 -2.653700 254 68 73
-7.813100 49.342701 -3.886900 254 68 73
-8.747800 53.770199 -7.353300 0 253 27
-9.827700 52.989700 -7.188500 0 253 27
-8.756500 49.321098 -7.632900 0 253 27
-6.775800 50.206501 -7.534500 0 253 27
-28.543800 44.178001 -4.651400 20 3 248
-27.102699 45.320202 -5.735100 12 64 193
-26.753901 45.398300 -2.858600 20 0 250
-28.697901 44.238201 -3.477500 20 0 252
-26.246300 42.901402 -5.383600 0 252 27
-28.292801 42.543098 -4.446800 87 180 37
-28.380600 42.330502 -3.056600 242 73 67
-28.100901 44.177299 -2.470000 19 0 253
-26.753901 45.398300 -2.858600 21 0 250
-26.117701 44.487900 -2.198700 19 0 253
-1.712600 0.024900 -9.195700 19 0 253
-3.252600 0.001600 -8.591000 19 0 253
-5.176800 -0.025000 -0.598300 18 0 253
-3.769300 -0.009000 1.132900 18 0 253
-0.000000 61.912998 -0.048000 0 254 27
-0.785400 61.539799 -0.048800 0 254 27
-0.000000 62.775902 -0.355700 0 254 27
-0.340300 31.400700 -9.928000 254 254 254
-0.845100 29.891001 -9.498900 254 254 254
-0.425600 30.069099 -1.507500 254 254 254
-0.509500 56.862801 -2.081200 254 127 129
-0.509500 56.862801 -2.081200 0 253 27
-0.860300 57.339199 -0.345300 0 253 27
-0.000000 57.320400 0.190300 0 253 27
-0.000000 56.862801 -2.081200 0 253 27
-5.598500 31.822901 -1.404300 0 240 37
-6.824000 22.193899 -3.251500 3 179 89
-7.453900 29.910801 -4.780100 18 0 251
-6.824000 22.193899 -3.251500 3 179 89
-5.317800 22.936800 -8.016200 18 0 252
-5.595300 29.761600 -8.492500 18 0 253
-7.453900 29.910801 -4.780100 18 0 251
-3.798500 31.552500 -0.388900 0 253 27
-2.189200 21.987900 -1.483700 0 253 27
-6.824000 22.193899 -3.251500 3 179 89
-5.598500 31.822901 -1.404300 0 240 37
-0.340300 31.400700 -9.928000 0 253 27
-4.970000 33.082802 -8.871900 0 253 27
-5.595300 29.761600 -8.492500 0 253 27
-0.845100 29.891001 -9.498900 0 253 27
-0.835600 22.853901 -8.210700 254 254 254
-2.189200 21.987900 -1.483700 254 254 254
-0.425600 30.069099 -1.507500 254 254 254
-0.845100 29.891001 -9.498900 254 254 254
-2.162800 35.743500 -9.599900 0 253 27
-5.283200 35.952900 -7.814600 0 253 27
-4.970000 33.082802 -8.871900 0 253 27
-0.340300 31.400700 -9.928000 0 253 27
-5.283200 35.952900 -7.814600 18 1 249
-5.919200 37.619099 -4.570300 9 98 162
-6.542300 35.480598 -4.902800 15 32 221
-5.919200 37.619099 -4.570300 9 98 162
-4.685700 36.664101 -1.616400 0 250 28
-5.598500 31.822901 -1.404300 0 240 37
-6.542300 35.480598 -4.902800 15 32 221
-0.474100 61.294899 -0.607800 254 68 73
-0.596000 60.268700 -0.255900 254 68 73
-2.225300 60.301201 -1.334400 254 68 73
-1.340700 61.343498 -1.024900 254 68 73
-1.340700 61.343498 -1.024900 0 253 27
-1.792100 61.563202 -0.648200 0 253 27
-0.785400 61.539799 -0.048800 0 253 27
-0.474100 61.294899 -0.607800 0 253 27
-0.000000 45.235802 -8.516300 0 253 27
-5.495700 46.043098 -6.732400 0 252 27
-2.827600 38.171799 -8.088300 8 119 142
-0.000000 38.221600 -8.073300 0 240 38
-0.425600 30.069099 -1.507500 254 254 254
-2.189200 21.987900 -1.483700 254 254 254
-3.798500 31.552500 -0.388900 254 254 254
-0.000000 31.547001 -9.939100 254 68 73
-0.340300 31.400700 -9.928000 254 68 73
-0.425600 30.069099 -1.507500 254 68 73
-0.000000 30.215401 -1.522000 254 68 73
-21.061199 44.183601 -7.611200 18 0 253
-15.884600 46.520500 -7.855800 17 5 246
-17.208200 49.477699 -7.512200 0 227 47
-22.585199 48.327702 -7.594400 0 239 38
-22.348700 46.932201 -2.822400 18 0 249
-23.337700 47.268200 -6.945000 2 175 92
-22.585199 48.327702 -7.594400 0 239 38
-21.061199 44.183601 -7.611200 0 253 27
-22.105101 44.119598 -7.074000 0 253 27
-21.936399 43.055199 -3.733600 0 253 27
-0.340300 31.400700 -9.928000 0 253 27
-0.000000 31.547001 -9.939100 0 253 27
-0.000000 35.795200 -9.599900 0 253 27
-2.162800 35.743500 -9.599900 0 253 27
-5.919200 37.619099 -4.570300 9 98 162
-5.283200 35.952900 -7.814600 18 1 249
-2.162800 35.743500 -9.599900 16 28 225
-2.827600 38.171799 -8.088300 8 119 142
-28.543800 44.178001 -4.651400 77 187 34
-28.292801 42.543098 -4.446800 87 180 37
-26.246300 42.901402 -5.383600 0 252 27
-27.102699 45.320202 -5.735100 0 253 27
-25.491899 42.827301 -2.370100 190 254 195
-28.380600 42.330502 -3.056600 242 254 242
-27.637899 42.321201 -1.984400 254 254 254
-26.246300 42.901402 -5.383600 0 254 27
-28.380600 42.330502 -3.056600 242 254 242
-25.491899 42.827301 -2.370100 190 254 195
-2.162800 35.743500 -9.599900 0 253 27
-0.000000 35.795200 -9.599900 0 253 27
-0.000000 38.221600 -8.073300 0 253 27
-2.827600 38.171799 -8.088300 0 253 27
-0.706900 62.538601 -0.289700 0 253 27
-1.838200 62.255798 -0.802600 0 253 27
-1.901400 63.532299 -1.247600 0 253 27
-0.672300 63.485901 -0.421800 0 253 27
-1.901400 63.532299 -1.247600 0 253 27
-1.838200 62.255798 -0.802600 0 253 27
-3.194200 60.597198 -3.460400 0 253 27
-2.758700 63.532299 -3.348800 0 253 27
-2.758700 63.532299 -3.348800 0 253 27
-3.194200 60.597198 -3.460400 0 253 27
-3.446000 60.597198 -5.980300 0 253 27
-3.010600 63.532299 -5.868700 0 253 27
-3.194200 60.597198 -3.460400 0 253 27
-1.838200 62.255798 -0.802600 0 253 27
-2.336800 60.597198 -1.072500 0 253 27
-2.130500 53.628601 -1.359200 0 253 27
-4.088800 54.879799 -3.460400 0 253 27
-3.194200 60.597198 -3.460400 0 253 27
-2.336800 60.597198 -1.072500 0 253 27
-4.088800 54.879799 -3.460400 0 253 27
-4.340700 55.234299 -6.210400 0 254 27
-3.446000 60.597198 -5.980300 0 253 27
-3.194200 60.597198 -3.460400 0 253 27
-3.010600 63.532299 -5.868700 0 253 27
-3.446000 60.597198 -5.980300 0 253 27
-2.517200 60.597198 -7.879200 0 253 27
-1.932100 63.532299 -7.311200 0 253 27
-3.446000 60.597198 -5.980300 0 253 27
-4.340700 55.234299 -6.210400 0 254 27
-2.990300 54.496300 -8.246000 0 253 27
-2.517200 60.597198 -7.879200 0 253 27
-1.932100 63.532299 -7.311200 0 253 27
-2.517200 60.597198 -7.879200 0 253 27
-0.000000 60.597198 -8.812800 0 253 27
-0.000000 63.532299 -8.174500 0 253 27
-2.990300 54.496300 -8.246000 0 253 27
-0.000000 54.050800 -8.782700 0 253 27
-0.000000 60.597198 -8.812800 0 253 27
-2.517200 60.597198 -7.879200 0 253 27
-0.672300 63.485901 -0.421800 0 253 27
-1.901400 63.532299 -1.247600 0 253 27
-1.171400 65.057899 -2.205500 0 253 27
-1.901400 63.532299 -1.247600 0 253 27
-2.758700 63.532299 -3.348800 0 253 27
-1.795600 65.057899 -4.806100 0 253 27
-1.171400 65.057899 -2.205500 0 253 27
-2.758700 63.532299 -3.348800 0 253 27
-3.010600 63.532299 -5.868700 0 253 27
-1.795600 65.057899 -4.806100 0 253 27
-3.010600 63.532299 -5.868700 0 253 27
-1.932100 63.532299 -7.311200 0 254 27
-0.000000 65.057899 -6.421400 0 253 27
-1.795600 65.057899 -4.806100 0 253 27
-1.932100 63.532299 -7.311200 0 254 27
-0.000000 63.532299 -8.174500 0 253 27
-0.000000 65.057899 -6.421400 0 253 27
-1.171400 65.057899 -2.205500 0 253 27
-1.795600 65.057899 -4.806100 0 253 27
-0.000000 65.560898 -4.058400 0 253 27
-1.795600 65.057899 -4.806100 0 254 27
-0.000000 65.057899 -6.421400 0 254 27
-0.000000 65.560898 -4.058400 0 254 27
-0.672300 63.485901 -0.421800 0 254 27
-1.171400 65.057899 -2.205500 0 254 27
--1.171400 65.057899 -2.205500 0 254 27
--0.672300 63.485901 -0.421800 0 254 27
-0.706900 62.538601 -0.289700 0 254 27
-0.672300 63.485901 -0.421800 0 254 27
-0.000000 62.538601 -0.140300 0 254 27
-0.672300 63.485901 -0.421800 0 254 27
--0.672300 63.485901 -0.421800 0 254 27
-0.000000 62.538601 -0.140300 0 254 27
-2.130500 53.628601 -1.359200 0 253 27
-2.336800 60.597198 -1.072500 0 253 27
-1.393700 60.597198 -3.164700 0 253 27
-1.187300 53.628601 -3.164700 0 253 27
--0.706900 62.538601 -0.289700 0 254 27
--0.672300 63.485901 -0.421800 0 254 27
--1.901400 63.532299 -1.247600 0 254 27
--1.838200 62.255798 -0.802600 0 254 27
--1.901400 63.532299 -1.247600 0 254 27
--2.758700 63.532299 -3.348800 0 254 27
--3.194200 60.597198 -3.460400 0 254 27
--1.838200 62.255798 -0.802600 0 254 27
--2.758700 63.532299 -3.348800 0 254 27
--3.010600 63.532299 -5.868700 0 254 27
--3.446000 60.597198 -5.980300 0 254 27
--3.194200 60.597198 -3.460400 0 254 27
--3.194200 60.597198 -3.460400 0 254 27
--2.336800 60.597198 -1.072500 0 254 27
--1.838200 62.255798 -0.802600 0 254 27
--2.130500 53.628601 -1.359200 0 253 27
--2.336800 60.597198 -1.072500 0 254 27
--3.194200 60.597198 -3.460400 0 254 27
--4.088800 54.879799 -3.460400 0 253 27
--4.088800 54.879799 -3.460400 0 253 27
--3.194200 60.597198 -3.460400 0 253 27
--3.446000 60.597198 -5.980300 0 253 27
--4.340700 55.234299 -6.210400 0 254 27
--3.010600 63.532299 -5.868700 0 254 27
--1.932100 63.532299 -7.311200 0 254 27
--2.517200 60.597198 -7.879200 0 254 27
--3.446000 60.597198 -5.980300 0 254 27
--3.446000 60.597198 -5.980300 0 254 27
--2.517200 60.597198 -7.879200 0 254 27
--2.990300 54.496300 -8.246000 0 254 27
--4.340700 55.234299 -6.210400 0 254 27
--1.932100 63.532299 -7.311200 0 254 27
-0.000000 63.532299 -8.174500 0 254 27
-0.000000 60.597198 -8.812800 0 254 27
--2.517200 60.597198 -7.879200 0 254 27
--2.990300 54.496300 -8.246000 0 254 27
--2.517200 60.597198 -7.879200 0 254 27
-0.000000 60.597198 -8.812800 0 254 27
-0.000000 54.050800 -8.782700 0 254 27
--0.672300 63.485901 -0.421800 0 254 27
--1.171400 65.057899 -2.205500 0 254 27
--1.901400 63.532299 -1.247600 0 254 27
--1.901400 63.532299 -1.247600 0 254 27
--1.171400 65.057899 -2.205500 0 254 27
--1.795600 65.057899 -4.806100 0 254 27
--2.758700 63.532299 -3.348800 0 254 27
--2.758700 63.532299 -3.348800 0 254 27
--1.795600 65.057899 -4.806100 0 254 27
--3.010600 63.532299 -5.868700 0 254 27
--3.010600 63.532299 -5.868700 0 254 27
--1.795600 65.057899 -4.806100 0 254 27
-0.000000 65.057899 -6.421400 0 254 27
--1.932100 63.532299 -7.311200 0 254 27
--1.932100 63.532299 -7.311200 0 254 27
-0.000000 65.057899 -6.421400 0 254 27
-0.000000 63.532299 -8.174500 0 254 27
--1.171400 65.057899 -2.205500 0 254 27
-0.000000 65.560898 -4.058400 0 254 27
--1.795600 65.057899 -4.806100 0 254 27
--1.795600 65.057899 -4.806100 0 254 27
-0.000000 65.560898 -4.058400 0 254 27
-0.000000 65.057899 -6.421400 0 254 27
--1.171400 65.057899 -2.205500 0 254 27
-1.171400 65.057899 -2.205500 0 254 27
-0.000000 65.560898 -4.058400 0 254 27
--0.706900 62.538601 -0.289700 0 254 27
-0.000000 62.538601 -0.140300 0 254 27
--0.672300 63.485901 -0.421800 0 254 27
--2.130500 53.628601 -1.359200 164 133 56
--1.187300 53.628601 -3.164700 209 100 64
--1.393700 60.597198 -3.164700 254 254 254
--2.336800 60.597198 -1.072500 254 254 254
-8.704300 24.905701 -6.036500 0 253 27
-7.984800 25.127701 -6.177400 0 253 27
-7.649900 27.558001 -5.856100 0 253 27
-8.503900 27.435900 -5.670300 0 253 27
-6.463600 36.223400 -3.704900 9 100 160
-5.778000 35.994701 -1.773100 0 231 44
-7.451900 27.210300 -3.504400 18 2 248
-8.503900 27.435900 -5.670300 18 0 253
-5.115000 35.782600 -2.051700 0 241 37
-6.597900 27.332300 -3.690200 16 16 234
-7.451900 27.210300 -3.504400 18 2 248
-5.778000 35.994701 -1.773100 0 231 44
-5.743400 36.019600 -3.995900 0 253 27
-6.463600 36.223400 -3.704900 0 253 27
-8.503900 27.435900 -5.670300 0 253 27
-7.649900 27.558001 -5.856100 0 253 27
-7.451900 27.210300 -3.504400 21 0 248
-6.597900 27.332300 -3.690200 35 1 237
-7.984800 25.127701 -6.177400 19 0 253
-8.704300 24.905701 -6.036500 19 0 253
-7.451900 27.210300 -3.504400 18 2 248
-8.704300 24.905701 -6.036500 18 0 253
-8.503900 27.435900 -5.670300 18 0 253
-6.463600 36.223400 -3.704900 254 68 73
-5.743400 36.019600 -3.995900 254 68 73
-5.115000 35.782600 -2.051700 254 68 73
-5.778000 35.994701 -1.773100 254 68 73
-4.513000 55.007702 -5.909800 0 253 27
-4.291100 55.098900 -5.871800 0 253 27
-4.207800 55.799599 -6.651700 0 253 27
-4.871900 55.799599 -6.765400 0 253 27
-2.904000 62.455601 -5.700500 0 253 27
-2.764700 62.455601 -4.128400 0 253 27
-4.736600 55.799599 -5.153900 0 253 27
-4.871900 55.799599 -6.765400 0 253 27
-2.764700 62.455601 -4.128400 0 253 27
-4.072400 55.799599 -5.040200 0 253 27
-4.736600 55.799599 -5.153900 0 253 27
-2.904000 62.455601 -5.700500 0 253 27
-4.871900 55.799599 -6.765400 0 253 27
-4.207800 55.799599 -6.651700 0 253 27
-4.736600 55.799599 -5.153900 254 68 73
-4.072400 55.799599 -5.040200 254 68 73
-4.291100 55.098900 -5.871800 254 68 73
-4.513000 55.007702 -5.909800 254 68 73
-4.736600 55.799599 -5.153900 0 253 27
-4.513000 55.007702 -5.909800 0 253 27
-4.871900 55.799599 -6.765400 0 253 27
-4 0 1 2 3
-4 4 5 6 7
-3 8 9 10
-4 11 12 13 14
-4 15 16 17 18
-4 19 20 21 22
-4 23 24 25 26
-4 27 28 29 30
-4 31 32 33 34
-4 35 36 37 38
-4 39 40 41 42
-4 43 44 45 46
-3 47 48 49
-4 50 51 52 53
-4 54 55 56 57
-4 58 59 60 61
-4 62 63 64 65
-4 66 67 68 69
-4 70 71 72 73
-4 74 75 76 77
-3 78 79 80
-4 81 82 83 84
-3 85 86 87
-4 88 89 90 91
-3 92 93 94
-4 95 96 97 98
-4 99 100 101 102
-4 103 104 105 106
-4 107 108 109 110
-4 111 112 113 114
-4 115 116 117 118
-4 119 120 121 122
-4 123 124 125 126
-4 127 128 129 130
-4 131 132 133 134
-4 135 136 137 138
-3 139 140 141
-3 142 143 144
-4 145 146 147 148
-4 149 150 151 152
-4 153 154 155 156
-3 157 158 159
-3 160 161 162
-4 163 164 165 166
-4 167 168 169 170
-4 171 172 173 174
-3 175 176 177
-4 178 179 180 181
-4 182 183 184 185
-3 186 187 188
-3 189 190 191
-4 192 193 194 195
-4 196 197 198 199
-4 200 201 202 203
-4 204 205 206 207
-3 208 209 210
-3 211 212 213
-3 214 215 216
-4 217 218 219 220
-4 221 222 223 224
-3 225 226 227
-4 228 229 230 231
-4 232 233 234 235
-3 236 237 238
-3 239 240 241
-3 242 243 244
-3 245 246 247
-4 248 249 250 251
-4 252 253 254 255
-4 256 257 258 259
-4 260 261 262 263
-4 264 265 266 267
-4 268 269 270 271
-4 272 273 274 275
-4 276 277 278 279
-4 280 281 282 283
-3 284 285 286
-3 287 288 289
-4 290 291 292 293
-4 294 295 296 297
-4 298 299 300 301
-3 302 303 304
-4 305 306 307 308
-4 309 310 311 312
-4 313 314 315 316
-4 317 318 319 320
-4 321 322 323 324
-4 325 326 327 328
-4 329 330 331 332
-4 333 334 335 336
-4 337 338 339 340
-4 341 342 343 344
-4 345 346 347 348
-4 349 350 351 352
-3 353 354 355
-4 356 357 358 359
-4 360 361 362 363
-3 364 365 366
-4 367 368 369 370
-4 371 372 373 374
-3 375 376 377
-4 378 379 380 381
-3 382 383 384
-4 385 386 387 388
-4 389 390 391 392
-3 393 394 395
-4 396 397 398 399
-4 400 401 402 403
-4 404 405 406 407
-4 408 409 410 411
-4 412 413 414 415
-3 416 417 418
-3 419 420 421
-3 422 423 424
-4 425 426 427 428
-4 429 430 431 432
-3 433 434 435
-3 436 437 438
-4 439 440 441 442
-4 443 444 445 446
-3 447 448 449
-3 450 451 452
-4 453 454 455 456
-3 457 458 459
-3 460 461 462
-3 463 464 465
-4 466 467 468 469
-3 470 471 472
-4 473 474 475 476
-4 477 478 479 480
-4 481 482 483 484
-4 485 486 487 488
-4 489 490 491 492
-3 493 494 495
-4 496 497 498 499
-4 500 501 502 503
-4 504 505 506 507
-4 508 509 510 511
-3 512 513 514
-4 515 516 517 518
-4 519 520 521 522
-3 523 524 525
-3 526 527 528
-3 529 530 531
-4 532 533 534 535
-4 536 537 538 539
-4 540 541 542 543
-4 544 545 546 547
-3 548 549 550
-3 551 552 553
-4 554 555 556 557
-3 558 559 560
-4 561 562 563 564
-4 565 566 567 568
-4 569 570 571 572
-3 573 574 575
-4 576 577 578 579
-4 580 581 582 583
-4 584 585 586 587
-4 588 589 590 591
-4 592 593 594 595
-4 596 597 598 599
-4 600 601 602 603
-4 604 605 606 607
-4 608 609 610 611
-3 612 613 614
-4 615 616 617 618
-4 619 620 621 622
-4 623 624 625 626
-4 627 628 629 630
-4 631 632 633 634
-4 635 636 637 638
-4 639 640 641 642
-3 643 644 645
-4 646 647 648 649
-3 650 651 652
-4 653 654 655 656
-3 657 658 659
-4 660 661 662 663
-4 664 665 666 667
-4 668 669 670 671
-4 672 673 674 675
-4 676 677 678 679
-4 680 681 682 683
-4 684 685 686 687
-4 688 689 690 691
-4 692 693 694 695
-4 696 697 698 699
-4 700 701 702 703
-3 704 705 706
-3 707 708 709
-4 710 711 712 713
-4 714 715 716 717
-4 718 719 720 721
-3 722 723 724
-3 725 726 727
-4 728 729 730 731
-4 732 733 734 735
-4 736 737 738 739
-3 740 741 742
-4 743 744 745 746
-4 747 748 749 750
-3 751 752 753
-3 754 755 756
-4 757 758 759 760
-4 761 762 763 764
-4 765 766 767 768
-4 769 770 771 772
-3 773 774 775
-3 776 777 778
-3 779 780 781
-4 782 783 784 785
-4 786 787 788 789
-3 790 791 792
-4 793 794 795 796
-4 797 798 799 800
-3 801 802 803
-3 804 805 806
-3 807 808 809
-3 810 811 812
-4 813 814 815 816
-4 817 818 819 820
-4 821 822 823 824
-4 825 826 827 828
-4 829 830 831 832
-4 833 834 835 836
-4 837 838 839 840
-4 841 842 843 844
-4 845 846 847 848
-3 849 850 851
-3 852 853 854
-4 855 856 857 858
-4 859 860 861 862
-4 863 864 865 866
-3 867 868 869
-4 870 871 872 873
-4 874 875 876 877
-4 878 879 880 881
-4 882 883 884 885
-4 886 887 888 889
-4 890 891 892 893
-4 894 895 896 897
-4 898 899 900 901
-4 902 903 904 905
-4 906 907 908 909
-4 910 911 912 913
-4 914 915 916 917
-3 918 919 920
-4 921 922 923 924
-4 925 926 927 928
-3 929 930 931
-4 932 933 934 935
-4 936 937 938 939
-3 940 941 942
-4 943 944 945 946
-3 947 948 949
-4 950 951 952 953
-4 954 955 956 957
-3 958 959 960
-4 961 962 963 964
-4 965 966 967 968
-4 969 970 971 972
-4 973 974 975 976
-4 977 978 979 980
-3 981 982 983
-3 984 985 986
-3 987 988 989
-4 990 991 992 993
-4 994 995 996 997
-3 998 999 1000
-3 1001 1002 1003
-4 1004 1005 1006 1007
-4 1008 1009 1010 1011
-3 1012 1013 1014
-3 1015 1016 1017
-4 1018 1019 1020 1021
-3 1022 1023 1024
-3 1025 1026 1027
-3 463 1028 464
-4 1029 1030 1031 1032
-3 1033 1034 1035
-4 1036 1037 1038 1039
-4 1040 1041 1042 1043
-4 1044 1045 1046 1047
-4 1048 1049 1050 1051
-4 1052 1053 1054 1055
-3 1056 1057 1058
-4 1059 1060 1061 1062
-4 1063 1064 1065 1066
-4 1067 1068 1069 1070
-4 1071 1072 1073 1074
-3 1075 1076 1077
-4 1078 1079 1080 1081
-4 1082 1083 1084 1085
-3 1086 1087 1088
-3 1089 1090 1091
-4 1092 1093 1094 1095
-4 1096 1097 1098 1099
-4 1100 1101 1102 1103
-3 1104 1105 1106
-3 1107 1108 1109
-4 1110 1111 1112 1113
-4 1114 1115 1116 1117
-4 1118 1119 1120 1121
-4 1122 1123 1124 1125
-3 1126 1127 1128
-4 1129 1130 1131 1132
-4 1133 1134 1135 1136
-4 1137 1138 1139 1140
-4 1141 1142 1143 1144
-4 1145 1146 1147 1148
-4 1149 1150 1151 1152
-3 1153 1154 1155
-4 1156 1157 1158 1159
-3 1160 1161 1162
-4 1163 1164 1165 1166
-3 1167 1168 1169
-3 1170 1171 1172
-3 1173 1174 1175
-4 1176 1177 1178 1179
-3 1180 1181 1182
-3 1183 1184 1185
-4 1186 1187 1188 1189
-4 1190 1191 1192 1193
-4 1194 1195 1196 1197
-4 1198 1199 1200 1201
-3 1202 1203 1204
-4 1205 1206 1207 1208
-4 1209 1210 1211 1212
-4 1213 1214 1215 1216
-4 1217 1218 1219 1220
-4 1221 1222 1223 1224
-4 1225 1226 1227 1228
-3 1229 1230 1231
-4 1232 1233 1234 1235
-3 1236 1237 1238
-4 1239 1240 1241 1242
-3 1243 1244 1245
-3 1246 1247 1248
-3 1249 1250 1251
-3 1252 1253 1254
-3 1255 1256 1257
-4 1258 1259 1260 1261
-4 1262 1263 1264 1265
-4 1266 1267 1268 1269
-4 1270 1271 1272 1273
-4 1274 1275 1276 1277
-4 1278 1279 1280 1281
-3 1282 1283 1284
-4 1285 1286 1287 1288
-4 1289 1290 1291 1292
-4 1293 1294 1295 1296
-3 1297 1298 1299
-3 1300 1301 1302
-4 1303 1304 1305 1306
-3 1307 1308 1309
diff --git a/src/tests/evas/meshes/ply/NoNormal_NoUVs_NoColors.ply b/src/tests/evas/meshes/ply/NoNormal_NoUVs_NoColors.ply
deleted file mode 100644
index d78a23325e..0000000000
--- a/src/tests/evas/meshes/ply/NoNormal_NoUVs_NoColors.ply
+++ /dev/null
@@ -1,1676 +0,0 @@
-ply
-format ascii 1.0
-comment Created by Blender 2.69 (sub 0) - www.blender.org, source file: ''
-element vertex 1310
-property float x
-property float y
-property float z
-element face 356
-property list uchar uint vertex_indices
-end_header
--4.649800 14.945700 -8.785600
--2.020300 14.610600 -8.278800
--1.712600 0.024900 -9.195700
--3.252600 0.001600 -8.591000
--4.649800 14.945700 -8.785600
--3.252600 0.001600 -8.591000
--4.089400 2.633000 -5.031300
--5.308800 13.910900 -3.738700
--1.553600 3.059500 -4.173500
--1.766900 13.754900 -2.918700
--3.061600 3.537800 -3.461700
--1.553600 3.059500 -4.173500
--0.626000 0.031700 -8.336200
--0.971400 14.644800 -6.706400
--1.766900 13.754900 -2.918700
--5.495700 46.043098 -6.732400
--2.827600 38.171799 -8.088300
--5.919200 37.619099 -4.570300
--6.029500 46.188801 -3.956000
--4.685700 36.664101 -1.616400
--4.298500 47.001099 -0.058900
--6.029500 46.188801 -3.956000
--5.919200 37.619099 -4.570300
--6.775800 50.206501 -7.534500
--7.252500 54.524502 -7.615000
-0.000000 53.738098 -8.986800
-0.000000 50.037800 -9.413700
--7.252500 54.524502 -7.615000
--8.747800 53.770199 -7.353300
--8.184300 53.108700 -3.320400
--6.624100 53.529800 -2.653700
--9.827700 52.989700 -7.188500
--14.989100 50.565300 -7.297200
--15.636800 49.715099 -4.015700
--9.508400 52.403099 -3.672700
-0.000000 37.009800 0.550700
-0.000000 47.287498 1.094200
--4.298500 47.001099 -0.058900
--4.685700 36.664101 -1.616400
-0.000000 53.738098 -8.986800
--7.252500 54.524502 -7.615000
--2.321200 55.471001 -5.570800
-0.000000 55.950600 -7.250100
--6.624100 53.529800 -2.653700
--7.813100 49.342701 -3.886900
--6.029500 46.188801 -3.956000
--3.773800 51.093601 -1.034300
--6.029500 46.188801 -3.956000
--4.298500 47.001099 -0.058900
--3.773800 51.093601 -1.034300
-0.000000 50.880199 0.110000
--3.773800 51.093601 -1.034300
--4.298500 47.001099 -0.058900
-0.000000 47.287498 1.094200
--16.136200 50.023998 -7.546200
--14.989100 50.565300 -7.297200
--13.779500 47.417198 -7.715300
--14.885000 46.974701 -7.946000
--13.779500 47.417198 -7.715300
--8.756500 49.321098 -7.632900
--8.927200 49.128502 -4.128200
--14.977100 45.689201 -4.821000
--17.208200 49.477699 -7.512200
--22.585199 48.327702 -7.594400
--22.348700 46.932201 -2.822400
--16.810101 49.139900 -3.928800
--21.936399 43.055199 -3.733600
--16.192200 44.960400 -4.877100
--16.810101 49.139900 -3.928800
--22.348700 46.932201 -2.822400
--22.105101 44.119598 -7.074000
--23.337700 47.268200 -6.945000
--22.585199 48.327702 -7.594400
--21.061199 44.183601 -7.611200
--15.884600 46.520500 -7.855800
--16.192200 44.960400 -4.877100
--21.936399 43.055199 -3.733600
--21.061199 44.183601 -7.611200
--5.598500 31.822901 -1.405400
--7.174300 32.815300 -5.168000
--7.453900 29.910801 -4.782000
--4.970000 33.082802 -8.871300
--5.595300 29.761600 -8.491100
--7.453900 29.910801 -4.782000
--7.174300 32.815300 -5.168000
--6.827700 20.858999 -3.051400
--5.426000 21.341299 -8.131100
--6.194700 19.576300 -3.492500
--0.835600 22.853901 -8.203000
--0.899900 21.410400 -8.342700
--5.426000 21.341299 -8.131100
--5.317800 22.936800 -8.014600
--0.899900 21.410400 -8.342700
--1.957400 20.620800 -1.217700
--1.853000 19.164200 -1.385300
--6.194700 19.576300 -3.492500
--1.853000 19.164200 -1.385300
--1.957400 20.620800 -1.217700
--6.827700 20.858999 -3.051400
--5.259600 15.490400 -9.599400
--5.426000 21.341299 -8.131100
--0.899900 21.410400 -8.342700
--0.294400 16.169500 -7.962700
--0.294400 16.169500 -7.962700
--0.899900 21.410400 -8.342700
--1.853000 19.164200 -1.385300
--1.221800 14.450400 -2.004100
--1.853000 19.164200 -1.385300
--6.194700 19.576300 -3.492500
--6.498700 14.643000 -4.000600
--1.221800 14.450400 -2.004100
--6.498700 14.643000 -4.000600
--6.194700 19.576300 -3.492500
--5.426000 21.341299 -8.131100
--5.259600 15.490400 -9.599400
--7.813100 49.342701 -3.886900
--6.775800 50.206501 -7.534500
--5.495700 46.043098 -6.732400
--6.029500 46.188801 -3.956000
--8.756500 49.321098 -7.632900
--6.775800 50.206501 -7.534500
--7.813100 49.342701 -3.886900
--8.927200 49.128502 -4.128200
--5.495700 46.043098 -6.732400
--6.775800 50.206501 -7.534500
-0.000000 50.037800 -9.413700
-0.000000 45.235802 -8.516300
--3.773800 51.093601 -1.034300
-0.000000 50.880199 0.110000
-0.000000 54.522099 -2.187600
--1.435700 55.057400 -2.884500
--0.163800 60.672798 0.405300
--0.596000 60.268700 -0.255900
--0.605400 59.453602 0.006800
--0.226300 59.631802 0.717000
-0.000000 59.375900 0.272700
--0.605400 59.453602 0.006800
--0.793500 58.611801 -0.022400
-0.000000 58.735298 0.237300
--1.340700 61.343498 -1.024900
--2.209500 61.230499 -1.515000
--2.225300 60.301201 -1.334400
--0.474100 61.294899 -0.607800
--0.179900 61.274700 0.058500
--0.785400 61.539799 -0.048800
--0.163800 60.672798 0.405300
--0.179900 61.274700 0.058500
--0.474100 61.294899 -0.607800
--0.596000 60.268700 -0.255900
--0.785400 61.539799 -0.048800
-0.000000 62.775902 -0.355700
--1.901400 62.898899 -1.262500
--1.792100 61.563202 -0.648200
--1.901400 62.898899 -1.262500
--2.505800 61.413601 -3.333900
--2.209500 61.230499 -1.515000
--1.792100 61.563202 -0.648200
--2.071800 58.080299 -1.837600
--2.043500 58.694401 -1.722000
--2.361600 58.652599 -3.405400
--2.361600 58.652599 -3.405400
--1.480400 57.287800 -3.167400
--2.071800 58.080299 -1.837600
--2.361600 58.652599 -3.405400
--2.043500 58.694401 -1.722000
--2.225300 60.301201 -1.334400
--2.484800 60.667999 -2.078300
--0.596000 60.268700 -0.255900
--2.225300 60.301201 -1.334400
--0.793500 58.611801 -0.022400
--0.605400 59.453602 0.006800
--0.793500 58.611801 -0.022400
--0.860300 57.339199 -0.345300
-0.000000 57.320400 0.190300
-0.000000 58.735298 0.237300
--2.361600 58.652599 -3.405400
--1.507500 57.978802 -4.806700
--1.480400 57.287800 -3.167400
--1.480400 57.287800 -3.167400
--1.435700 55.057400 -2.884500
-0.000000 54.522099 -2.187600
--0.509500 56.862801 -2.081200
--1.435700 55.057400 -2.884500
--1.480400 57.287800 -3.167400
--1.507500 57.978802 -4.806700
--2.321200 55.471001 -5.570800
--5.259600 15.490400 -9.599400
--0.294400 16.169500 -7.962700
--2.020300 14.610600 -8.278800
--0.294400 16.169500 -7.962700
--1.221800 14.450400 -2.004100
--0.971400 14.644800 -6.706400
--5.308800 13.910900 -3.738700
--1.766900 13.754900 -2.918700
--1.221800 14.450400 -2.004100
--6.498700 14.643000 -4.000600
--4.649800 14.945700 -8.785600
--5.308800 13.910900 -3.738700
--6.498700 14.643000 -4.000600
--5.259600 15.490400 -9.599400
--1.957400 20.620800 -1.217700
--0.899900 21.410400 -8.342700
--0.835600 22.853901 -8.203000
--2.189200 21.987900 -1.481800
--7.174300 32.815300 -5.168000
--6.542300 35.480598 -4.902800
--5.283200 35.952900 -7.814600
--4.970000 33.082802 -8.871300
--5.598500 31.822901 -1.405400
--6.542300 35.480598 -4.902800
--7.174300 32.815300 -5.168000
--4.685700 36.664101 -1.616400
--5.598500 31.822901 -1.405400
--3.798500 31.552500 -0.386300
--2.225300 60.301201 -1.334400
--2.209500 61.230499 -1.515000
--2.484800 60.667999 -2.078300
--8.927200 49.128502 -4.128200
--7.813100 49.342701 -3.886900
--8.184300 53.108700 -3.320400
--9.508400 52.403099 -3.672700
--8.184300 53.108700 -3.320400
--8.747800 53.770199 -7.353300
--9.827700 52.989700 -7.188500
--9.508400 52.403099 -3.672700
--8.747800 53.770199 -7.353300
--7.252500 54.524502 -7.615000
--6.775800 50.206501 -7.534500
--8.927200 49.128502 -4.128200
--9.508400 52.403099 -3.672700
--15.636800 49.715099 -4.015700
--14.977100 45.689201 -4.821000
--6.624100 53.529800 -2.653700
--3.773800 51.093601 -1.034300
--1.435700 55.057400 -2.884500
--7.252500 54.524502 -7.615000
--2.321200 55.471001 -5.570800
--7.252500 54.524502 -7.615000
--1.435700 55.057400 -2.884500
--2.209500 61.230499 -1.515000
--2.505800 61.413601 -3.333900
--2.484800 60.667999 -2.078300
--2.484800 60.667999 -2.078300
--2.505800 61.413601 -3.333900
--2.361600 58.652599 -3.405400
--2.209500 61.230499 -1.515000
--1.340700 61.343498 -1.024900
--1.792100 61.563202 -0.648200
--3.061600 3.537800 -3.461700
--3.735600 1.816900 0.228400
--1.568700 1.981700 -0.627100
--1.553600 3.059500 -4.173500
--0.626000 0.031700 -8.336200
--1.553600 3.059500 -4.173500
--1.568700 1.981700 -0.627100
--1.825200 -0.024100 0.601200
--1.825200 -0.024100 0.601200
--3.769300 -0.009000 1.132900
--1.712600 0.024900 -9.195700
--0.626000 0.031700 -8.336200
--1.712600 0.024900 -9.195700
--2.020300 14.610600 -8.278800
--0.971400 14.644800 -6.706400
--0.626000 0.031700 -8.336200
--1.568700 1.981700 -0.627100
--3.735600 1.816900 0.228400
--3.769300 -0.009000 1.132900
--1.825200 -0.024100 0.601200
--4.089400 2.633000 -5.031300
--3.252600 0.001600 -8.591000
--5.176800 -0.025000 -0.598300
--5.390300 1.568200 -1.670300
--3.769300 -0.009000 1.132900
--3.735600 1.816900 0.228400
--5.390300 1.568200 -1.670300
--5.176800 -0.025000 -0.598300
--5.390300 1.568200 -1.670300
--3.735600 1.816900 0.228400
--3.061600 3.537800 -3.461700
--4.089400 2.633000 -5.031300
--3.061600 3.537800 -3.461700
--1.766900 13.754900 -2.918700
--5.308800 13.910900 -3.738700
--4.089400 2.633000 -5.031300
--2.020300 14.610600 -8.278800
--4.649800 14.945700 -8.785600
--5.259600 15.490400 -9.599400
--2.020300 14.610600 -8.278800
--0.294400 16.169500 -7.962700
--0.971400 14.644800 -6.706400
--5.426000 21.341299 -8.131100
--6.827700 20.858999 -3.051400
--6.824000 22.193899 -3.254300
--5.317800 22.936800 -8.014600
--0.845100 29.891001 -9.491500
--0.835600 22.853901 -8.203000
--5.317800 22.936800 -8.014600
--5.595300 29.761600 -8.491100
--1.957400 20.620800 -1.217700
--2.189200 21.987900 -1.481800
--6.824000 22.193899 -3.254300
--6.827700 20.858999 -3.051400
--0.605400 59.453602 0.006800
-0.000000 59.375900 0.272700
--0.226300 59.631802 0.717000
--21.936399 43.055199 -3.733600
--22.348700 46.932201 -2.822400
--23.323000 46.228001 -3.425200
--23.265499 44.290199 -3.614200
--22.105101 44.119598 -7.074000
--23.273100 44.479099 -6.170500
--23.881300 46.267799 -5.995500
--23.337700 47.268200 -6.945000
--22.348700 46.932201 -2.822400
--23.337700 47.268200 -6.945000
--23.881300 46.267799 -5.995500
--23.323000 46.228001 -3.425200
--21.936399 43.055199 -3.733600
--23.265499 44.290199 -3.614200
--23.273100 44.479099 -6.170500
--22.105101 44.119598 -7.074000
--23.323000 46.228001 -3.425200
--24.935400 45.742901 -3.288800
--24.446100 44.099098 -3.039500
--23.265499 44.290199 -3.614200
--23.273100 44.479099 -6.170500
--25.718901 44.407902 -5.989100
--25.982700 45.641201 -5.974700
--23.881300 46.267799 -5.995500
--23.881300 46.267799 -5.995500
--25.982700 45.641201 -5.974700
--24.935400 45.742901 -3.288800
--23.323000 46.228001 -3.425200
--23.265499 44.290199 -3.614200
--24.446100 44.099098 -3.039500
--25.718901 44.407902 -5.989100
--23.273100 44.479099 -6.170500
--3.798500 31.552500 -0.386300
-0.000000 31.552500 0.128500
-0.000000 37.009800 0.550700
--4.685700 36.664101 -1.616400
--27.058001 43.733101 -1.471100
--28.100901 44.177299 -2.470000
--27.637899 42.321201 -1.984400
--26.775499 43.007000 -1.492900
--27.102699 45.320202 -5.735100
--25.982700 45.641201 -5.974700
--25.718901 44.407902 -5.989100
--26.246300 42.901402 -5.383600
--24.935400 45.742901 -3.288800
--25.982700 45.641201 -5.974700
--27.102699 45.320202 -5.735100
--26.753901 45.398300 -2.858600
--24.446100 44.099098 -3.039500
--26.246300 42.901402 -5.383600
--25.718901 44.407902 -5.989100
--28.380600 42.330502 -3.056600
--27.637899 42.321201 -1.984400
--28.100901 44.177299 -2.470000
--28.697901 44.238201 -3.477500
--28.380600 42.330502 -3.056600
--28.697901 44.238201 -3.477500
--28.543800 44.178001 -4.651400
--28.292801 42.543098 -4.446800
--26.753901 45.398300 -2.858600
--28.697901 44.238201 -3.477500
--28.100901 44.177299 -2.470000
--24.935400 45.742901 -3.288800
--26.117701 44.487900 -2.198700
--25.587200 43.557701 -2.038700
--24.446100 44.099098 -3.039500
--24.446100 44.099098 -3.039500
--25.587200 43.557701 -2.038700
--25.491899 42.827301 -2.370100
--26.246300 42.901402 -5.383600
--26.753901 45.398300 -2.858600
--26.117701 44.487900 -2.198700
--24.935400 45.742901 -3.288800
-0.000000 31.552500 0.128500
--3.798500 31.552500 -0.386300
--3.463700 23.872801 -0.356700
-0.000000 24.132099 -0.356700
--2.225300 60.301201 -1.334400
--2.043500 58.694401 -1.722000
--0.793500 58.611801 -0.022400
--0.793500 58.611801 -0.022400
--2.043500 58.694401 -1.722000
--2.071800 58.080299 -1.837600
--0.860300 57.339199 -0.345300
--2.071800 58.080299 -1.837600
--1.480400 57.287800 -3.167400
--0.509500 56.862801 -2.081200
--0.860300 57.339199 -0.345300
--0.179900 61.274700 0.058500
-0.000000 61.912998 -0.048000
--0.785400 61.539799 -0.048800
--15.884600 46.520500 -7.855800
--17.208200 49.477699 -7.512200
--16.136200 50.023998 -7.546200
--14.885000 46.974701 -7.946000
--15.636800 49.715099 -4.015700
--16.136200 50.023998 -7.546200
--17.208200 49.477699 -7.512200
--16.810101 49.139900 -3.928800
--16.192200 44.960400 -4.877100
--15.884600 46.520500 -7.855800
--14.885000 46.974701 -7.946000
--14.977100 45.689201 -4.821000
--16.810101 49.139900 -3.928800
--16.192200 44.960400 -4.877100
--14.977100 45.689201 -4.821000
--15.636800 49.715099 -4.015700
--13.779500 47.417198 -7.715300
--14.989100 50.565300 -7.297200
--9.827700 52.989700 -7.188500
--8.756500 49.321098 -7.632900
--15.636800 49.715099 -4.015700
--14.989100 50.565300 -7.297200
--16.136200 50.023998 -7.546200
--13.779500 47.417198 -7.715300
--14.977100 45.689201 -4.821000
--14.885000 46.974701 -7.946000
--0.971400 14.644800 -6.706400
--1.221800 14.450400 -2.004100
--1.766900 13.754900 -2.918700
--26.117701 44.487900 -2.198700
--27.058001 43.733101 -1.471100
--26.775499 43.007000 -1.492900
--25.587200 43.557701 -2.038700
--25.587200 43.557701 -2.038700
--26.775499 43.007000 -1.492900
--27.637899 42.321201 -1.984400
--25.491899 42.827301 -2.370100
--26.117701 44.487900 -2.198700
--28.100901 44.177299 -2.470000
--27.058001 43.733101 -1.471100
--8.184300 53.108700 -3.320400
--7.813100 49.342701 -3.886900
--6.624100 53.529800 -2.653700
--8.747800 53.770199 -7.353300
--6.775800 50.206501 -7.534500
--8.756500 49.321098 -7.632900
--9.827700 52.989700 -7.188500
--28.543800 44.178001 -4.651400
--28.697901 44.238201 -3.477500
--26.753901 45.398300 -2.858600
--27.102699 45.320202 -5.735100
--26.246300 42.901402 -5.383600
--28.380600 42.330502 -3.056600
--28.292801 42.543098 -4.446800
--28.100901 44.177299 -2.470000
--26.117701 44.487900 -2.198700
--26.753901 45.398300 -2.858600
--1.712600 0.024900 -9.195700
--3.769300 -0.009000 1.132900
--5.176800 -0.025000 -0.598300
--3.252600 0.001600 -8.591000
-0.000000 61.912998 -0.048000
-0.000000 62.775902 -0.355700
--0.785400 61.539799 -0.048800
--0.340300 31.400700 -9.922000
--0.425600 30.069099 -1.503600
--0.845100 29.891001 -9.491500
-0.000000 54.522099 -2.187600
-0.000000 56.862801 -2.081200
--0.509500 56.862801 -2.081200
--0.509500 56.862801 -2.081200
-0.000000 56.862801 -2.081200
-0.000000 57.320400 0.190300
--0.860300 57.339199 -0.345300
--5.598500 31.822901 -1.405400
--7.453900 29.910801 -4.782000
--6.824000 22.193899 -3.254300
--6.824000 22.193899 -3.254300
--7.453900 29.910801 -4.782000
--5.595300 29.761600 -8.491100
--5.317800 22.936800 -8.014600
--3.798500 31.552500 -0.386300
--5.598500 31.822901 -1.405400
--6.824000 22.193899 -3.254300
--2.189200 21.987900 -1.481800
--0.340300 31.400700 -9.922000
--0.845100 29.891001 -9.491500
--5.595300 29.761600 -8.491100
--4.970000 33.082802 -8.871300
--0.835600 22.853901 -8.203000
--0.845100 29.891001 -9.491500
--0.425600 30.069099 -1.503600
--2.189200 21.987900 -1.481800
--2.162800 35.743500 -9.599900
--0.340300 31.400700 -9.922000
--4.970000 33.082802 -8.871300
--5.283200 35.952900 -7.814600
--5.283200 35.952900 -7.814600
--6.542300 35.480598 -4.902800
--5.919200 37.619099 -4.570300
--5.919200 37.619099 -4.570300
--6.542300 35.480598 -4.902800
--5.598500 31.822901 -1.405400
--4.685700 36.664101 -1.616400
--0.474100 61.294899 -0.607800
--1.340700 61.343498 -1.024900
--2.225300 60.301201 -1.334400
--0.596000 60.268700 -0.255900
--1.340700 61.343498 -1.024900
--0.474100 61.294899 -0.607800
--0.785400 61.539799 -0.048800
--1.792100 61.563202 -0.648200
-0.000000 45.235802 -8.516300
-0.000000 38.221600 -8.073300
--2.827600 38.171799 -8.088300
--5.495700 46.043098 -6.732400
--0.425600 30.069099 -1.503600
--3.798500 31.552500 -0.386300
--2.189200 21.987900 -1.481800
-0.000000 31.547001 -9.939100
-0.000000 30.215401 -1.522000
--0.425600 30.069099 -1.503600
--0.340300 31.400700 -9.922000
--21.061199 44.183601 -7.611200
--22.585199 48.327702 -7.594400
--17.208200 49.477699 -7.512200
--15.884600 46.520500 -7.855800
--22.348700 46.932201 -2.822400
--22.585199 48.327702 -7.594400
--23.337700 47.268200 -6.945000
--21.061199 44.183601 -7.611200
--21.936399 43.055199 -3.733600
--22.105101 44.119598 -7.074000
-0.000000 59.375900 0.272700
-0.226300 59.631802 0.717000
--0.226300 59.631802 0.717000
--0.163800 60.672798 0.405300
--0.226300 59.631802 0.717000
-0.226300 59.631802 0.717000
-0.163800 60.672798 0.405300
--0.340300 31.400700 -9.922000
--2.162800 35.743500 -9.599900
-0.000000 35.795200 -9.599900
-0.000000 31.547001 -9.939100
--5.919200 37.619099 -4.570300
--2.827600 38.171799 -8.088300
--2.162800 35.743500 -9.599900
--5.283200 35.952900 -7.814600
--28.543800 44.178001 -4.651400
--27.102699 45.320202 -5.735100
--26.246300 42.901402 -5.383600
--28.292801 42.543098 -4.446800
--25.491899 42.827301 -2.370100
--27.637899 42.321201 -1.984400
--28.380600 42.330502 -3.056600
--26.246300 42.901402 -5.383600
--25.491899 42.827301 -2.370100
--28.380600 42.330502 -3.056600
--0.179900 61.274700 0.058500
--0.163800 60.672798 0.405300
-0.163800 60.672798 0.405300
-0.179900 61.274700 0.058500
-0.000000 61.912998 -0.048000
--0.179900 61.274700 0.058500
-0.179900 61.274700 0.058500
--2.162800 35.743500 -9.599900
--2.827600 38.171799 -8.088300
-0.000000 38.221600 -8.073300
-0.000000 35.795200 -9.599900
-4.620900 14.945700 -8.516100
-3.252600 0.001600 -8.591000
-1.712600 0.024900 -9.195700
-1.456400 14.610600 -8.695100
-4.089400 2.633000 -5.031300
-3.252600 0.001600 -8.591000
-4.620900 14.945700 -8.516100
-5.308800 13.910900 -3.738700
-1.553600 3.059500 -4.173500
-3.061600 3.537800 -3.461700
-1.766900 13.754900 -2.918700
-1.553600 3.059500 -4.173500
-1.766900 13.754900 -2.918700
-1.239800 14.644800 -6.465300
-0.626000 0.031700 -8.336200
-5.495700 46.043098 -6.732400
-6.029500 46.188801 -3.956000
-5.919200 37.619099 -4.570300
-2.827600 38.171799 -8.088300
-4.685700 36.664101 -1.616400
-5.919200 37.619099 -4.570300
-6.029500 46.188801 -3.956000
-4.298500 47.001099 -0.058900
-6.775800 50.206501 -7.534500
-0.000000 50.037800 -9.413700
-0.000000 53.738098 -8.986800
-7.252500 54.524502 -7.615000
-7.252500 54.524502 -7.615000
-6.624100 53.529800 -2.653700
-8.184300 53.108700 -3.320400
-8.747800 53.770199 -7.353300
-9.827700 52.989700 -7.188500
-9.508400 52.403099 -3.672700
-15.636800 49.715099 -4.015700
-14.989100 50.565300 -7.297200
-0.000000 37.009800 0.550700
-4.685700 36.664101 -1.616400
-4.298500 47.001099 -0.058900
-0.000000 47.287498 1.094200
-0.000000 53.738098 -8.986800
-0.000000 55.950600 -7.250100
-2.321200 55.471001 -5.570800
-7.252500 54.524502 -7.615000
-3.773800 51.093601 -1.034300
-4.298500 47.001099 -0.058900
-6.029500 46.188801 -3.956000
-6.624100 53.529800 -2.653700
-6.624100 53.529800 -2.653700
-6.029500 46.188801 -3.956000
-7.813100 49.342701 -3.886900
-0.000000 50.880199 0.110000
-0.000000 47.287498 1.094200
-4.298500 47.001099 -0.058900
-3.773800 51.093601 -1.034300
-16.136200 50.023998 -7.546200
-14.885000 46.974701 -7.946000
-13.779500 47.417198 -7.715300
-14.989100 50.565300 -7.297200
-13.779500 47.417198 -7.715300
-14.977100 45.689201 -4.821000
-8.927200 49.128502 -4.128200
-8.756500 49.321098 -7.632900
-17.208200 49.477699 -7.512200
-16.810101 49.139900 -3.928800
-22.348700 46.932201 -2.822400
-22.585199 48.327702 -7.594400
-21.936399 43.055199 -3.733600
-22.348700 46.932201 -2.822400
-16.810101 49.139900 -3.928800
-16.192200 44.960400 -4.877100
-22.105101 44.119598 -7.074000
-21.061199 44.183601 -7.611200
-22.585199 48.327702 -7.594400
-23.337700 47.268200 -6.945000
-15.884600 46.520500 -7.855800
-21.061199 44.183601 -7.611200
-21.936399 43.055199 -3.733600
-16.192200 44.960400 -4.877100
-5.598500 31.822901 -1.404300
-7.453900 29.910801 -4.780100
-7.174300 32.815300 -5.167300
-4.970000 33.082802 -8.871900
-7.174300 32.815300 -5.167300
-7.453900 29.910801 -4.780100
-5.595300 29.761600 -8.492500
-6.827700 20.858999 -3.044800
-6.194700 19.576300 -3.478600
-5.426000 21.341299 -8.132600
-0.835600 22.853901 -8.210700
-5.317800 22.936800 -8.016200
-5.426000 21.341299 -8.132600
-0.899900 21.410400 -8.349400
-0.899900 21.410400 -8.349400
-1.853000 19.164200 -1.371600
-1.957400 20.620800 -1.211500
-6.194700 19.576300 -3.478600
-6.827700 20.858999 -3.044800
-1.957400 20.620800 -1.211500
-1.853000 19.164200 -1.371600
-5.117200 15.490400 -9.679700
-0.134100 16.169500 -9.174700
-0.899900 21.410400 -8.349400
-5.426000 21.341299 -8.132600
-0.134100 16.169500 -9.174700
-1.716700 14.450400 -2.459200
-1.853000 19.164200 -1.371600
-0.899900 21.410400 -8.349400
-1.853000 19.164200 -1.371600
-1.716700 14.450400 -2.459200
-6.069200 14.643000 -3.762300
-6.194700 19.576300 -3.478600
-6.069200 14.643000 -3.762300
-5.117200 15.490400 -9.679700
-5.426000 21.341299 -8.132600
-6.194700 19.576300 -3.478600
-7.813100 49.342701 -3.886900
-6.029500 46.188801 -3.956000
-5.495700 46.043098 -6.732400
-6.775800 50.206501 -7.534500
-8.756500 49.321098 -7.632900
-8.927200 49.128502 -4.128200
-7.813100 49.342701 -3.886900
-6.775800 50.206501 -7.534500
-5.495700 46.043098 -6.732400
-0.000000 45.235802 -8.516300
-0.000000 50.037800 -9.413700
-6.775800 50.206501 -7.534500
-3.773800 51.093601 -1.034300
-1.435700 55.057400 -2.884500
-0.000000 54.522099 -2.187600
-0.000000 50.880199 0.110000
-0.163800 60.672798 0.405300
-0.226300 59.631802 0.717000
-0.605400 59.453602 0.006800
-0.596000 60.268700 -0.255900
-0.000000 59.375900 0.272700
-0.000000 58.735298 0.237300
-0.793500 58.611801 -0.022400
-0.605400 59.453602 0.006800
-1.340700 61.343498 -1.024900
-2.225300 60.301201 -1.334400
-2.209500 61.230499 -1.515000
-0.474100 61.294899 -0.607800
-0.785400 61.539799 -0.048800
-0.179900 61.274700 0.058500
-0.163800 60.672798 0.405300
-0.596000 60.268700 -0.255900
-0.474100 61.294899 -0.607800
-0.179900 61.274700 0.058500
-0.785400 61.539799 -0.048800
-1.792100 61.563202 -0.648200
-1.901400 62.898899 -1.262500
-0.000000 62.775902 -0.355700
-1.901400 62.898899 -1.262500
-1.792100 61.563202 -0.648200
-2.209500 61.230499 -1.515000
-2.505800 61.413601 -3.333900
-2.071800 58.080299 -1.837600
-2.361600 58.652599 -3.405400
-2.043500 58.694401 -1.722000
-2.361600 58.652599 -3.405400
-2.071800 58.080299 -1.837600
-1.480400 57.287800 -3.167400
-2.361600 58.652599 -3.405400
-2.484800 60.667999 -2.078300
-2.225300 60.301201 -1.334400
-2.043500 58.694401 -1.722000
-0.596000 60.268700 -0.255900
-0.605400 59.453602 0.006800
-0.793500 58.611801 -0.022400
-2.225300 60.301201 -1.334400
-0.793500 58.611801 -0.022400
-0.000000 58.735298 0.237300
-0.000000 57.320400 0.190300
-0.860300 57.339199 -0.345300
-2.361600 58.652599 -3.405400
-1.480400 57.287800 -3.167400
-1.507500 57.978802 -4.806700
-1.480400 57.287800 -3.167400
-0.509500 56.862801 -2.081200
-0.000000 54.522099 -2.187600
-1.435700 55.057400 -2.884500
-1.435700 55.057400 -2.884500
-2.321200 55.471001 -5.570800
-1.507500 57.978802 -4.806700
-1.480400 57.287800 -3.167400
-5.117200 15.490400 -9.679700
-1.456400 14.610600 -8.695100
-0.134100 16.169500 -9.174700
-0.134100 16.169500 -9.174700
-1.239800 14.644800 -6.465300
-1.716700 14.450400 -2.459200
-5.308800 13.910900 -3.738700
-6.069200 14.643000 -3.762300
-1.716700 14.450400 -2.459200
-1.766900 13.754900 -2.918700
-4.620900 14.945700 -8.516100
-5.117200 15.490400 -9.679700
-6.069200 14.643000 -3.762300
-5.308800 13.910900 -3.738700
-1.957400 20.620800 -1.211500
-2.189200 21.987900 -1.483700
-0.835600 22.853901 -8.210700
-0.899900 21.410400 -8.349400
-7.174300 32.815300 -5.167300
-4.970000 33.082802 -8.871900
-5.283200 35.952900 -7.814600
-6.542300 35.480598 -4.902800
-5.598500 31.822901 -1.404300
-7.174300 32.815300 -5.167300
-6.542300 35.480598 -4.902800
-4.685700 36.664101 -1.616400
-3.798500 31.552500 -0.388900
-5.598500 31.822901 -1.404300
-2.225300 60.301201 -1.334400
-2.484800 60.667999 -2.078300
-2.209500 61.230499 -1.515000
-8.927200 49.128502 -4.128200
-9.508400 52.403099 -3.672700
-8.184300 53.108700 -3.320400
-7.813100 49.342701 -3.886900
-8.184300 53.108700 -3.320400
-9.508400 52.403099 -3.672700
-9.827700 52.989700 -7.188500
-8.747800 53.770199 -7.353300
-8.747800 53.770199 -7.353300
-6.775800 50.206501 -7.534500
-7.252500 54.524502 -7.615000
-8.927200 49.128502 -4.128200
-14.977100 45.689201 -4.821000
-15.636800 49.715099 -4.015700
-9.508400 52.403099 -3.672700
-1.435700 55.057400 -2.884500
-3.773800 51.093601 -1.034300
-6.624100 53.529800 -2.653700
-7.252500 54.524502 -7.615000
-2.321200 55.471001 -5.570800
-1.435700 55.057400 -2.884500
-7.252500 54.524502 -7.615000
-2.209500 61.230499 -1.515000
-2.484800 60.667999 -2.078300
-2.505800 61.413601 -3.333900
-2.484800 60.667999 -2.078300
-2.361600 58.652599 -3.405400
-2.505800 61.413601 -3.333900
-2.209500 61.230499 -1.515000
-1.792100 61.563202 -0.648200
-1.340700 61.343498 -1.024900
-3.061600 3.537800 -3.461700
-1.553600 3.059500 -4.173500
-1.568700 1.981700 -0.627100
-3.735600 1.816900 0.228400
-0.626000 0.031700 -8.336200
-1.825200 -0.024100 0.601200
-1.568700 1.981700 -0.627100
-1.553600 3.059500 -4.173500
-1.825200 -0.024100 0.601200
-0.626000 0.031700 -8.336200
-1.712600 0.024900 -9.195700
-3.769300 -0.009000 1.132900
-1.712600 0.024900 -9.195700
-0.626000 0.031700 -8.336200
-1.239800 14.644800 -6.465300
-1.456400 14.610600 -8.695100
-1.568700 1.981700 -0.627100
-1.825200 -0.024100 0.601200
-3.769300 -0.009000 1.132900
-3.735600 1.816900 0.228400
-4.089400 2.633000 -5.031300
-5.390300 1.568200 -1.670300
-5.176800 -0.025000 -0.598300
-3.252600 0.001600 -8.591000
-3.769300 -0.009000 1.132900
-5.176800 -0.025000 -0.598300
-5.390300 1.568200 -1.670300
-3.735600 1.816900 0.228400
-5.390300 1.568200 -1.670300
-4.089400 2.633000 -5.031300
-3.061600 3.537800 -3.461700
-3.735600 1.816900 0.228400
-3.061600 3.537800 -3.461700
-4.089400 2.633000 -5.031300
-5.308800 13.910900 -3.738700
-1.766900 13.754900 -2.918700
-5.117200 15.490400 -9.679700
-4.620900 14.945700 -8.516100
-1.456400 14.610600 -8.695100
-1.456400 14.610600 -8.695100
-1.239800 14.644800 -6.465300
-0.134100 16.169500 -9.174700
-5.426000 21.341299 -8.132600
-5.317800 22.936800 -8.016200
-6.824000 22.193899 -3.251500
-6.827700 20.858999 -3.044800
-0.845100 29.891001 -9.498900
-5.595300 29.761600 -8.492500
-5.317800 22.936800 -8.016200
-0.835600 22.853901 -8.210700
-1.957400 20.620800 -1.211500
-6.827700 20.858999 -3.044800
-6.824000 22.193899 -3.251500
-2.189200 21.987900 -1.483700
-0.605400 59.453602 0.006800
-0.226300 59.631802 0.717000
-0.000000 59.375900 0.272700
-21.936399 43.055199 -3.733600
-23.265499 44.290199 -3.614200
-23.323000 46.228001 -3.425200
-22.348700 46.932201 -2.822400
-22.105101 44.119598 -7.074000
-23.337700 47.268200 -6.945000
-23.881300 46.267799 -5.995500
-23.273100 44.479099 -6.170500
-22.348700 46.932201 -2.822400
-23.323000 46.228001 -3.425200
-23.881300 46.267799 -5.995500
-23.337700 47.268200 -6.945000
-21.936399 43.055199 -3.733600
-22.105101 44.119598 -7.074000
-23.273100 44.479099 -6.170500
-23.265499 44.290199 -3.614200
-23.323000 46.228001 -3.425200
-23.265499 44.290199 -3.614200
-24.446100 44.099098 -3.039500
-24.935400 45.742901 -3.288800
-23.273100 44.479099 -6.170500
-23.881300 46.267799 -5.995500
-25.982700 45.641201 -5.974700
-25.718901 44.407902 -5.989100
-23.881300 46.267799 -5.995500
-23.323000 46.228001 -3.425200
-24.935400 45.742901 -3.288800
-25.982700 45.641201 -5.974700
-23.265499 44.290199 -3.614200
-23.273100 44.479099 -6.170500
-25.718901 44.407902 -5.989100
-24.446100 44.099098 -3.039500
-3.798500 31.552500 -0.388900
-4.685700 36.664101 -1.616400
-0.000000 37.009800 0.550700
-0.000000 31.552500 0.128500
-27.058001 43.733101 -1.471100
-26.775499 43.007000 -1.492900
-27.637899 42.321201 -1.984400
-28.100901 44.177299 -2.470000
-27.102699 45.320202 -5.735100
-26.246300 42.901402 -5.383600
-25.718901 44.407902 -5.989100
-25.982700 45.641201 -5.974700
-24.935400 45.742901 -3.288800
-26.753901 45.398300 -2.858600
-27.102699 45.320202 -5.735100
-25.982700 45.641201 -5.974700
-24.446100 44.099098 -3.039500
-25.718901 44.407902 -5.989100
-26.246300 42.901402 -5.383600
-28.380600 42.330502 -3.056600
-28.697901 44.238201 -3.477500
-28.100901 44.177299 -2.470000
-27.637899 42.321201 -1.984400
-28.380600 42.330502 -3.056600
-28.292801 42.543098 -4.446800
-28.543800 44.178001 -4.651400
-28.697901 44.238201 -3.477500
-26.753901 45.398300 -2.858600
-28.100901 44.177299 -2.470000
-28.697901 44.238201 -3.477500
-24.935400 45.742901 -3.288800
-24.446100 44.099098 -3.039500
-25.587200 43.557701 -2.038700
-26.117701 44.487900 -2.198700
-24.446100 44.099098 -3.039500
-26.246300 42.901402 -5.383600
-25.491899 42.827301 -2.370100
-25.587200 43.557701 -2.038700
-26.753901 45.398300 -2.858600
-24.935400 45.742901 -3.288800
-26.117701 44.487900 -2.198700
-0.000000 31.552500 0.128500
-0.000000 24.132099 -0.356700
-3.463700 23.872801 -0.356700
-3.798500 31.552500 -0.388900
-2.225300 60.301201 -1.334400
-0.793500 58.611801 -0.022400
-2.043500 58.694401 -1.722000
-0.793500 58.611801 -0.022400
-0.860300 57.339199 -0.345300
-2.071800 58.080299 -1.837600
-2.043500 58.694401 -1.722000
-2.071800 58.080299 -1.837600
-0.860300 57.339199 -0.345300
-0.509500 56.862801 -2.081200
-1.480400 57.287800 -3.167400
-0.179900 61.274700 0.058500
-0.785400 61.539799 -0.048800
-0.000000 61.912998 -0.048000
-15.884600 46.520500 -7.855800
-14.885000 46.974701 -7.946000
-16.136200 50.023998 -7.546200
-17.208200 49.477699 -7.512200
-15.636800 49.715099 -4.015700
-16.810101 49.139900 -3.928800
-17.208200 49.477699 -7.512200
-16.136200 50.023998 -7.546200
-16.192200 44.960400 -4.877100
-14.977100 45.689201 -4.821000
-14.885000 46.974701 -7.946000
-15.884600 46.520500 -7.855800
-16.810101 49.139900 -3.928800
-15.636800 49.715099 -4.015700
-14.977100 45.689201 -4.821000
-16.192200 44.960400 -4.877100
-13.779500 47.417198 -7.715300
-8.756500 49.321098 -7.632900
-9.827700 52.989700 -7.188500
-14.989100 50.565300 -7.297200
-15.636800 49.715099 -4.015700
-16.136200 50.023998 -7.546200
-14.989100 50.565300 -7.297200
-13.779500 47.417198 -7.715300
-14.885000 46.974701 -7.946000
-14.977100 45.689201 -4.821000
-1.239800 14.644800 -6.465300
-1.766900 13.754900 -2.918700
-1.716700 14.450400 -2.459200
-26.117701 44.487900 -2.198700
-25.587200 43.557701 -2.038700
-26.775499 43.007000 -1.492900
-27.058001 43.733101 -1.471100
-25.587200 43.557701 -2.038700
-25.491899 42.827301 -2.370100
-27.637899 42.321201 -1.984400
-26.775499 43.007000 -1.492900
-26.117701 44.487900 -2.198700
-27.058001 43.733101 -1.471100
-28.100901 44.177299 -2.470000
-8.184300 53.108700 -3.320400
-6.624100 53.529800 -2.653700
-7.813100 49.342701 -3.886900
-8.747800 53.770199 -7.353300
-9.827700 52.989700 -7.188500
-8.756500 49.321098 -7.632900
-6.775800 50.206501 -7.534500
-28.543800 44.178001 -4.651400
-27.102699 45.320202 -5.735100
-26.753901 45.398300 -2.858600
-28.697901 44.238201 -3.477500
-26.246300 42.901402 -5.383600
-28.292801 42.543098 -4.446800
-28.380600 42.330502 -3.056600
-28.100901 44.177299 -2.470000
-26.753901 45.398300 -2.858600
-26.117701 44.487900 -2.198700
-1.712600 0.024900 -9.195700
-3.252600 0.001600 -8.591000
-5.176800 -0.025000 -0.598300
-3.769300 -0.009000 1.132900
-0.000000 61.912998 -0.048000
-0.785400 61.539799 -0.048800
-0.000000 62.775902 -0.355700
-0.340300 31.400700 -9.928000
-0.845100 29.891001 -9.498900
-0.425600 30.069099 -1.507500
-0.509500 56.862801 -2.081200
-0.509500 56.862801 -2.081200
-0.860300 57.339199 -0.345300
-0.000000 57.320400 0.190300
-0.000000 56.862801 -2.081200
-5.598500 31.822901 -1.404300
-6.824000 22.193899 -3.251500
-7.453900 29.910801 -4.780100
-6.824000 22.193899 -3.251500
-5.317800 22.936800 -8.016200
-5.595300 29.761600 -8.492500
-7.453900 29.910801 -4.780100
-3.798500 31.552500 -0.388900
-2.189200 21.987900 -1.483700
-6.824000 22.193899 -3.251500
-5.598500 31.822901 -1.404300
-0.340300 31.400700 -9.928000
-4.970000 33.082802 -8.871900
-5.595300 29.761600 -8.492500
-0.845100 29.891001 -9.498900
-0.835600 22.853901 -8.210700
-2.189200 21.987900 -1.483700
-0.425600 30.069099 -1.507500
-0.845100 29.891001 -9.498900
-2.162800 35.743500 -9.599900
-5.283200 35.952900 -7.814600
-4.970000 33.082802 -8.871900
-0.340300 31.400700 -9.928000
-5.283200 35.952900 -7.814600
-5.919200 37.619099 -4.570300
-6.542300 35.480598 -4.902800
-5.919200 37.619099 -4.570300
-4.685700 36.664101 -1.616400
-5.598500 31.822901 -1.404300
-6.542300 35.480598 -4.902800
-0.474100 61.294899 -0.607800
-0.596000 60.268700 -0.255900
-2.225300 60.301201 -1.334400
-1.340700 61.343498 -1.024900
-1.340700 61.343498 -1.024900
-1.792100 61.563202 -0.648200
-0.785400 61.539799 -0.048800
-0.474100 61.294899 -0.607800
-0.000000 45.235802 -8.516300
-5.495700 46.043098 -6.732400
-2.827600 38.171799 -8.088300
-0.000000 38.221600 -8.073300
-0.425600 30.069099 -1.507500
-2.189200 21.987900 -1.483700
-3.798500 31.552500 -0.388900
-0.000000 31.547001 -9.939100
-0.340300 31.400700 -9.928000
-0.425600 30.069099 -1.507500
-0.000000 30.215401 -1.522000
-21.061199 44.183601 -7.611200
-15.884600 46.520500 -7.855800
-17.208200 49.477699 -7.512200
-22.585199 48.327702 -7.594400
-22.348700 46.932201 -2.822400
-23.337700 47.268200 -6.945000
-22.585199 48.327702 -7.594400
-21.061199 44.183601 -7.611200
-22.105101 44.119598 -7.074000
-21.936399 43.055199 -3.733600
-0.340300 31.400700 -9.928000
-0.000000 31.547001 -9.939100
-0.000000 35.795200 -9.599900
-2.162800 35.743500 -9.599900
-5.919200 37.619099 -4.570300
-5.283200 35.952900 -7.814600
-2.162800 35.743500 -9.599900
-2.827600 38.171799 -8.088300
-28.543800 44.178001 -4.651400
-28.292801 42.543098 -4.446800
-26.246300 42.901402 -5.383600
-27.102699 45.320202 -5.735100
-25.491899 42.827301 -2.370100
-28.380600 42.330502 -3.056600
-27.637899 42.321201 -1.984400
-26.246300 42.901402 -5.383600
-28.380600 42.330502 -3.056600
-25.491899 42.827301 -2.370100
-2.162800 35.743500 -9.599900
-0.000000 35.795200 -9.599900
-0.000000 38.221600 -8.073300
-2.827600 38.171799 -8.088300
-0.706900 62.538601 -0.289700
-1.838200 62.255798 -0.802600
-1.901400 63.532299 -1.247600
-0.672300 63.485901 -0.421800
-1.901400 63.532299 -1.247600
-1.838200 62.255798 -0.802600
-3.194200 60.597198 -3.460400
-2.758700 63.532299 -3.348800
-2.758700 63.532299 -3.348800
-3.194200 60.597198 -3.460400
-3.446000 60.597198 -5.980300
-3.010600 63.532299 -5.868700
-3.194200 60.597198 -3.460400
-1.838200 62.255798 -0.802600
-2.336800 60.597198 -1.072500
-2.130500 53.628601 -1.359200
-4.088800 54.879799 -3.460400
-3.194200 60.597198 -3.460400
-2.336800 60.597198 -1.072500
-4.088800 54.879799 -3.460400
-4.340700 55.234299 -6.210400
-3.446000 60.597198 -5.980300
-3.194200 60.597198 -3.460400
-3.010600 63.532299 -5.868700
-3.446000 60.597198 -5.980300
-2.517200 60.597198 -7.879200
-1.932100 63.532299 -7.311200
-3.446000 60.597198 -5.980300
-4.340700 55.234299 -6.210400
-2.990300 54.496300 -8.246000
-2.517200 60.597198 -7.879200
-1.932100 63.532299 -7.311200
-2.517200 60.597198 -7.879200
-0.000000 60.597198 -8.812800
-0.000000 63.532299 -8.174500
-2.990300 54.496300 -8.246000
-0.000000 54.050800 -8.782700
-0.000000 60.597198 -8.812800
-2.517200 60.597198 -7.879200
-0.672300 63.485901 -0.421800
-1.901400 63.532299 -1.247600
-1.171400 65.057899 -2.205500
-1.901400 63.532299 -1.247600
-2.758700 63.532299 -3.348800
-1.795600 65.057899 -4.806100
-1.171400 65.057899 -2.205500
-2.758700 63.532299 -3.348800
-3.010600 63.532299 -5.868700
-1.795600 65.057899 -4.806100
-3.010600 63.532299 -5.868700
-1.932100 63.532299 -7.311200
-0.000000 65.057899 -6.421400
-1.795600 65.057899 -4.806100
-1.932100 63.532299 -7.311200
-0.000000 63.532299 -8.174500
-0.000000 65.057899 -6.421400
-1.171400 65.057899 -2.205500
-1.795600 65.057899 -4.806100
-0.000000 65.560898 -4.058400
-1.795600 65.057899 -4.806100
-0.000000 65.057899 -6.421400
-0.000000 65.560898 -4.058400
-0.672300 63.485901 -0.421800
-1.171400 65.057899 -2.205500
--1.171400 65.057899 -2.205500
--0.672300 63.485901 -0.421800
-0.706900 62.538601 -0.289700
-0.672300 63.485901 -0.421800
-0.000000 62.538601 -0.140300
-0.672300 63.485901 -0.421800
--0.672300 63.485901 -0.421800
-0.000000 62.538601 -0.140300
-2.130500 53.628601 -1.359200
-2.336800 60.597198 -1.072500
-1.393700 60.597198 -3.164700
-1.187300 53.628601 -3.164700
--0.706900 62.538601 -0.289700
--0.672300 63.485901 -0.421800
--1.901400 63.532299 -1.247600
--1.838200 62.255798 -0.802600
--1.901400 63.532299 -1.247600
--2.758700 63.532299 -3.348800
--3.194200 60.597198 -3.460400
--1.838200 62.255798 -0.802600
--2.758700 63.532299 -3.348800
--3.010600 63.532299 -5.868700
--3.446000 60.597198 -5.980300
--3.194200 60.597198 -3.460400
--3.194200 60.597198 -3.460400
--2.336800 60.597198 -1.072500
--1.838200 62.255798 -0.802600
--2.130500 53.628601 -1.359200
--2.336800 60.597198 -1.072500
--3.194200 60.597198 -3.460400
--4.088800 54.879799 -3.460400
--4.088800 54.879799 -3.460400
--3.194200 60.597198 -3.460400
--3.446000 60.597198 -5.980300
--4.340700 55.234299 -6.210400
--3.010600 63.532299 -5.868700
--1.932100 63.532299 -7.311200
--2.517200 60.597198 -7.879200
--3.446000 60.597198 -5.980300
--3.446000 60.597198 -5.980300
--2.517200 60.597198 -7.879200
--2.990300 54.496300 -8.246000
--4.340700 55.234299 -6.210400
--1.932100 63.532299 -7.311200
-0.000000 63.532299 -8.174500
-0.000000 60.597198 -8.812800
--2.517200 60.597198 -7.879200
--2.990300 54.496300 -8.246000
--2.517200 60.597198 -7.879200
-0.000000 60.597198 -8.812800
-0.000000 54.050800 -8.782700
--0.672300 63.485901 -0.421800
--1.171400 65.057899 -2.205500
--1.901400 63.532299 -1.247600
--1.901400 63.532299 -1.247600
--1.171400 65.057899 -2.205500
--1.795600 65.057899 -4.806100
--2.758700 63.532299 -3.348800
--2.758700 63.532299 -3.348800
--1.795600 65.057899 -4.806100
--3.010600 63.532299 -5.868700
--3.010600 63.532299 -5.868700
--1.795600 65.057899 -4.806100
-0.000000 65.057899 -6.421400
--1.932100 63.532299 -7.311200
--1.932100 63.532299 -7.311200
-0.000000 65.057899 -6.421400
-0.000000 63.532299 -8.174500
--1.171400 65.057899 -2.205500
-0.000000 65.560898 -4.058400
--1.795600 65.057899 -4.806100
--1.795600 65.057899 -4.806100
-0.000000 65.560898 -4.058400
-0.000000 65.057899 -6.421400
--1.171400 65.057899 -2.205500
-1.171400 65.057899 -2.205500
-0.000000 65.560898 -4.058400
--0.706900 62.538601 -0.289700
-0.000000 62.538601 -0.140300
--0.672300 63.485901 -0.421800
--2.130500 53.628601 -1.359200
--1.187300 53.628601 -3.164700
--1.393700 60.597198 -3.164700
--2.336800 60.597198 -1.072500
-8.704300 24.905701 -6.036500
-7.984800 25.127701 -6.177400
-7.649900 27.558001 -5.856100
-8.503900 27.435900 -5.670300
-6.463600 36.223400 -3.704900
-5.778000 35.994701 -1.773100
-7.451900 27.210300 -3.504400
-8.503900 27.435900 -5.670300
-5.115000 35.782600 -2.051700
-6.597900 27.332300 -3.690200
-7.451900 27.210300 -3.504400
-5.778000 35.994701 -1.773100
-5.743400 36.019600 -3.995900
-6.463600 36.223400 -3.704900
-8.503900 27.435900 -5.670300
-7.649900 27.558001 -5.856100
-7.451900 27.210300 -3.504400
-6.597900 27.332300 -3.690200
-7.984800 25.127701 -6.177400
-8.704300 24.905701 -6.036500
-7.451900 27.210300 -3.504400
-8.704300 24.905701 -6.036500
-8.503900 27.435900 -5.670300
-6.463600 36.223400 -3.704900
-5.743400 36.019600 -3.995900
-5.115000 35.782600 -2.051700
-5.778000 35.994701 -1.773100
-4.513000 55.007702 -5.909800
-4.291100 55.098900 -5.871800
-4.207800 55.799599 -6.651700
-4.871900 55.799599 -6.765400
-2.904000 62.455601 -5.700500
-2.764700 62.455601 -4.128400
-4.736600 55.799599 -5.153900
-4.871900 55.799599 -6.765400
-2.764700 62.455601 -4.128400
-4.072400 55.799599 -5.040200
-4.736600 55.799599 -5.153900
-2.904000 62.455601 -5.700500
-4.871900 55.799599 -6.765400
-4.207800 55.799599 -6.651700
-4.736600 55.799599 -5.153900
-4.072400 55.799599 -5.040200
-4.291100 55.098900 -5.871800
-4.513000 55.007702 -5.909800
-4.736600 55.799599 -5.153900
-4.513000 55.007702 -5.909800
-4.871900 55.799599 -6.765400
-4 0 1 2 3
-4 4 5 6 7
-3 8 9 10
-4 11 12 13 14
-4 15 16 17 18
-4 19 20 21 22
-4 23 24 25 26
-4 27 28 29 30
-4 31 32 33 34
-4 35 36 37 38
-4 39 40 41 42
-4 43 44 45 46
-3 47 48 49
-4 50 51 52 53
-4 54 55 56 57
-4 58 59 60 61
-4 62 63 64 65
-4 66 67 68 69
-4 70 71 72 73
-4 74 75 76 77
-3 78 79 80
-4 81 82 83 84
-3 85 86 87
-4 88 89 90 91
-3 92 93 94
-4 95 96 97 98
-4 99 100 101 102
-4 103 104 105 106
-4 107 108 109 110
-4 111 112 113 114
-4 115 116 117 118
-4 119 120 121 122
-4 123 124 125 126
-4 127 128 129 130
-4 131 132 133 134
-4 135 136 137 138
-3 139 140 141
-3 142 143 144
-4 145 146 147 148
-4 149 150 151 152
-4 153 154 155 156
-3 157 158 159
-3 160 161 162
-4 163 164 165 166
-4 167 168 169 170
-4 171 172 173 174
-3 175 176 177
-4 178 179 180 181
-4 182 183 184 185
-3 186 187 188
-3 189 190 191
-4 192 193 194 195
-4 196 197 198 199
-4 200 201 202 203
-4 204 205 206 207
-3 208 209 210
-3 211 212 213
-3 214 215 216
-4 217 218 219 220
-4 221 222 223 224
-3 225 226 227
-4 228 229 230 231
-4 232 233 234 235
-3 236 237 238
-3 239 240 241
-3 242 243 244
-3 245 246 247
-4 248 249 250 251
-4 252 253 254 255
-4 256 257 258 259
-4 260 261 262 263
-4 264 265 266 267
-4 268 269 270 271
-4 272 273 274 275
-4 276 277 278 279
-4 280 281 282 283
-3 284 285 286
-3 287 288 289
-4 290 291 292 293
-4 294 295 296 297
-4 298 299 300 301
-3 302 303 304
-4 305 306 307 308
-4 309 310 311 312
-4 313 314 315 316
-4 317 318 319 320
-4 321 322 323 324
-4 325 326 327 328
-4 329 330 331 332
-4 333 334 335 336
-4 337 338 339 340
-4 341 342 343 344
-4 345 346 347 348
-4 349 350 351 352
-3 353 354 355
-4 356 357 358 359
-4 360 361 362 363
-3 364 365 366
-4 367 368 369 370
-4 371 372 373 374
-3 375 376 377
-4 378 379 380 381
-3 382 383 384
-4 385 386 387 388
-4 389 390 391 392
-3 393 394 395
-4 396 397 398 399
-4 400 401 402 403
-4 404 405 406 407
-4 408 409 410 411
-4 412 413 414 415
-3 416 417 418
-3 419 420 421
-3 422 423 424
-4 425 426 427 428
-4 429 430 431 432
-3 433 434 435
-3 436 437 438
-4 439 440 441 442
-4 443 444 445 446
-3 447 448 449
-3 450 451 452
-4 453 454 455 456
-3 457 458 459
-3 460 461 462
-3 463 464 465
-4 466 467 468 469
-3 470 471 472
-4 473 474 475 476
-4 477 478 479 480
-4 481 482 483 484
-4 485 486 487 488
-4 489 490 491 492
-3 493 494 495
-4 496 497 498 499
-4 500 501 502 503
-4 504 505 506 507
-4 508 509 510 511
-3 512 513 514
-4 515 516 517 518
-4 519 520 521 522
-3 523 524 525
-3 526 527 528
-3 529 530 531
-4 532 533 534 535
-4 536 537 538 539
-4 540 541 542 543
-4 544 545 546 547
-3 548 549 550
-3 551 552 553
-4 554 555 556 557
-3 558 559 560
-4 561 562 563 564
-4 565 566 567 568
-4 569 570 571 572
-3 573 574 575
-4 576 577 578 579
-4 580 581 582 583
-4 584 585 586 587
-4 588 589 590 591
-4 592 593 594 595
-4 596 597 598 599
-4 600 601 602 603
-4 604 605 606 607
-4 608 609 610 611
-3 612 613 614
-4 615 616 617 618
-4 619 620 621 622
-4 623 624 625 626
-4 627 628 629 630
-4 631 632 633 634
-4 635 636 637 638
-4 639 640 641 642
-3 643 644 645
-4 646 647 648 649
-3 650 651 652
-4 653 654 655 656
-3 657 658 659
-4 660 661 662 663
-4 664 665 666 667
-4 668 669 670 671
-4 672 673 674 675
-4 676 677 678 679
-4 680 681 682 683
-4 684 685 686 687
-4 688 689 690 691
-4 692 693 694 695
-4 696 697 698 699
-4 700 701 702 703
-3 704 705 706
-3 707 708 709
-4 710 711 712 713
-4 714 715 716 717
-4 718 719 720 721
-3 722 723 724
-3 725 726 727
-4 728 729 730 731
-4 732 733 734 735
-4 736 737 738 739
-3 740 741 742
-4 743 744 745 746
-4 747 748 749 750
-3 751 752 753
-3 754 755 756
-4 757 758 759 760
-4 761 762 763 764
-4 765 766 767 768
-4 769 770 771 772
-3 773 774 775
-3 776 777 778
-3 779 780 781
-4 782 783 784 785
-4 786 787 788 789
-3 790 791 792
-4 793 794 795 796
-4 797 798 799 800
-3 801 802 803
-3 804 805 806
-3 807 808 809
-3 810 811 812
-4 813 814 815 816
-4 817 818 819 820
-4 821 822 823 824
-4 825 826 827 828
-4 829 830 831 832
-4 833 834 835 836
-4 837 838 839 840
-4 841 842 843 844
-4 845 846 847 848
-3 849 850 851
-3 852 853 854
-4 855 856 857 858
-4 859 860 861 862
-4 863 864 865 866
-3 867 868 869
-4 870 871 872 873
-4 874 875 876 877
-4 878 879 880 881
-4 882 883 884 885
-4 886 887 888 889
-4 890 891 892 893
-4 894 895 896 897
-4 898 899 900 901
-4 902 903 904 905
-4 906 907 908 909
-4 910 911 912 913
-4 914 915 916 917
-3 918 919 920
-4 921 922 923 924
-4 925 926 927 928
-3 929 930 931
-4 932 933 934 935
-4 936 937 938 939
-3 940 941 942
-4 943 944 945 946
-3 947 948 949
-4 950 951 952 953
-4 954 955 956 957
-3 958 959 960
-4 961 962 963 964
-4 965 966 967 968
-4 969 970 971 972
-4 973 974 975 976
-4 977 978 979 980
-3 981 982 983
-3 984 985 986
-3 987 988 989
-4 990 991 992 993
-4 994 995 996 997
-3 998 999 1000
-3 1001 1002 1003
-4 1004 1005 1006 1007
-4 1008 1009 1010 1011
-3 1012 1013 1014
-3 1015 1016 1017
-4 1018 1019 1020 1021
-3 1022 1023 1024
-3 1025 1026 1027
-3 463 1028 464
-4 1029 1030 1031 1032
-3 1033 1034 1035
-4 1036 1037 1038 1039
-4 1040 1041 1042 1043
-4 1044 1045 1046 1047
-4 1048 1049 1050 1051
-4 1052 1053 1054 1055
-3 1056 1057 1058
-4 1059 1060 1061 1062
-4 1063 1064 1065 1066
-4 1067 1068 1069 1070
-4 1071 1072 1073 1074
-3 1075 1076 1077
-4 1078 1079 1080 1081
-4 1082 1083 1084 1085
-3 1086 1087 1088
-3 1089 1090 1091
-4 1092 1093 1094 1095
-4 1096 1097 1098 1099
-4 1100 1101 1102 1103
-3 1104 1105 1106
-3 1107 1108 1109
-4 1110 1111 1112 1113
-4 1114 1115 1116 1117
-4 1118 1119 1120 1121
-4 1122 1123 1124 1125
-3 1126 1127 1128
-4 1129 1130 1131 1132
-4 1133 1134 1135 1136
-4 1137 1138 1139 1140
-4 1141 1142 1143 1144
-4 1145 1146 1147 1148
-4 1149 1150 1151 1152
-3 1153 1154 1155
-4 1156 1157 1158 1159
-3 1160 1161 1162
-4 1163 1164 1165 1166
-3 1167 1168 1169
-3 1170 1171 1172
-3 1173 1174 1175
-4 1176 1177 1178 1179
-3 1180 1181 1182
-3 1183 1184 1185
-4 1186 1187 1188 1189
-4 1190 1191 1192 1193
-4 1194 1195 1196 1197
-4 1198 1199 1200 1201
-3 1202 1203 1204
-4 1205 1206 1207 1208
-4 1209 1210 1211 1212
-4 1213 1214 1215 1216
-4 1217 1218 1219 1220
-4 1221 1222 1223 1224
-4 1225 1226 1227 1228
-3 1229 1230 1231
-4 1232 1233 1234 1235
-3 1236 1237 1238
-4 1239 1240 1241 1242
-3 1243 1244 1245
-3 1246 1247 1248
-3 1249 1250 1251
-3 1252 1253 1254
-3 1255 1256 1257
-4 1258 1259 1260 1261
-4 1262 1263 1264 1265
-4 1266 1267 1268 1269
-4 1270 1271 1272 1273
-4 1274 1275 1276 1277
-4 1278 1279 1280 1281
-3 1282 1283 1284
-4 1285 1286 1287 1288
-4 1289 1290 1291 1292
-4 1293 1294 1295 1296
-3 1297 1298 1299
-3 1300 1301 1302
-4 1303 1304 1305 1306
-3 1307 1308 1309
diff --git a/src/tests/evas/meshes/ply/NoNormal_UVs_Colors.ply b/src/tests/evas/meshes/ply/NoNormal_UVs_Colors.ply
deleted file mode 100644
index 108c259ba9..0000000000
--- a/src/tests/evas/meshes/ply/NoNormal_UVs_Colors.ply
+++ /dev/null
@@ -1,1681 +0,0 @@
-ply
-format ascii 1.0
-comment Created by Blender 2.69 (sub 0) - www.blender.org, source file: ''
-element vertex 1310
-property float x
-property float y
-property float z
-property float s
-property float t
-property uchar red
-property uchar green
-property uchar blue
-element face 356
-property list uchar uint vertex_indices
-end_header
--4.649800 14.945700 -8.785600 0.094400 0.185800 0 253 27
--2.020300 14.610600 -8.278800 0.060000 0.185800 0 253 27
--1.712600 0.024900 -9.195700 0.089900 0.023200 254 68 73
--3.252600 0.001600 -8.591000 0.107400 0.025300 254 68 73
--4.649800 14.945700 -8.785600 0.094400 0.185800 254 68 73
--3.252600 0.001600 -8.591000 0.107400 0.025300 254 88 92
--4.089400 2.633000 -5.031300 0.145000 0.057700 254 68 73
--5.308800 13.910900 -3.738700 0.154100 0.185800 254 68 73
--1.553600 3.059500 -4.173500 0.181500 0.058600 18 0 253
--1.766900 13.754900 -2.918700 0.193300 0.185800 0 254 27
--3.061600 3.537800 -3.461700 0.164000 0.067400 18 0 252
--1.553600 3.059500 -4.173500 0.181500 0.058600 18 0 253
--0.626000 0.031700 -8.336200 0.220100 0.017000 19 0 253
--0.971400 14.644800 -6.706400 0.225200 0.185800 27 229 30
--1.766900 13.754900 -2.918700 0.193300 0.185800 0 253 27
--5.495700 46.043098 -6.732400 0.139900 0.788400 254 254 254
--2.827600 38.171799 -8.088300 0.114500 0.661600 254 254 254
--5.919200 37.619099 -4.570300 0.183200 0.661600 254 254 254
--6.029500 46.188801 -3.956000 0.183300 0.792100 254 254 254
--4.685700 36.664101 -1.616400 0.239100 0.661600 13 240 28
--4.298500 47.001099 -0.058900 0.249300 0.802400 5 247 27
--6.029500 46.188801 -3.956000 0.183300 0.792100 0 253 27
--5.919200 37.619099 -4.570300 0.183200 0.661600 0 253 27
--6.775800 50.206501 -7.534500 0.134100 0.852600 0 254 27
--7.252500 54.524502 -7.615000 0.126100 0.913200 0 254 27
-0.000000 53.738098 -8.986800 0.028100 0.877800 0 254 27
-0.000000 50.037800 -9.413700 0.041800 0.827300 0 254 27
--7.252500 54.524502 -7.615000 0.812300 0.981700 0 253 27
--8.747800 53.770199 -7.353300 0.807700 0.944900 0 253 27
--8.184300 53.108700 -3.320400 0.746000 0.944900 0 253 27
--6.624100 53.529800 -2.653700 0.746000 0.986600 0 253 27
--9.827700 52.989700 -7.188500 0.805500 0.922700 0 253 27
--14.989100 50.565300 -7.297200 0.805300 0.834400 0 253 27
--15.636800 49.715099 -4.015700 0.746000 0.809400 0 253 27
--9.508400 52.403099 -3.672700 0.746000 0.922700 0 253 27
-0.000000 37.009800 0.550700 0.310700 0.661600 172 124 55
-0.000000 47.287498 1.094200 0.310700 0.805700 0 252 27
--4.298500 47.001099 -0.058900 0.249300 0.802400 0 253 27
--4.685700 36.664101 -1.616400 0.239100 0.661600 13 226 40
-0.000000 53.738098 -8.986800 0.028100 0.877800 0 254 27
--7.252500 54.524502 -7.615000 0.126100 0.913200 0 254 27
--2.321200 55.471001 -5.570800 0.053700 0.941000 0 254 27
-0.000000 55.950600 -7.250100 0.022400 0.916300 0 254 27
--6.624100 53.529800 -2.653700 0.210200 0.900400 0 253 27
--7.813100 49.342701 -3.886900 0.181000 0.844200 0 253 27
--6.029500 46.188801 -3.956000 0.183300 0.792100 0 253 27
--3.773800 51.093601 -1.034300 0.256600 0.864400 0 253 27
--6.029500 46.188801 -3.956000 0.183300 0.792100 0 253 27
--4.298500 47.001099 -0.058900 0.249300 0.802400 5 247 27
--3.773800 51.093601 -1.034300 0.256600 0.864400 0 253 27
-0.000000 50.880199 0.110000 0.310700 0.860500 0 253 27
--3.773800 51.093601 -1.034300 0.256600 0.864400 0 253 27
--4.298500 47.001099 -0.058900 0.249300 0.802400 0 253 27
-0.000000 47.287498 1.094200 0.310700 0.805700 0 252 27
--16.136200 50.023998 -7.546200 0.808600 0.809400 0 249 27
--14.989100 50.565300 -7.297200 0.805300 0.834400 0 252 27
--13.779500 47.417198 -7.715300 0.879500 0.834400 0 253 27
--14.885000 46.974701 -7.946000 0.879500 0.809400 0 251 27
--13.779500 47.417198 -7.715300 0.626900 0.829400 0 253 27
--8.756500 49.321098 -7.632900 0.626900 0.922700 0 253 27
--8.927200 49.128502 -4.128200 0.688900 0.922700 0 253 27
--14.977100 45.689201 -4.821000 0.680000 0.809400 0 248 31
--17.208200 49.477699 -7.512200 0.810800 0.788400 0 253 27
--22.585199 48.327702 -7.594400 0.812700 0.705100 0 253 27
--22.348700 46.932201 -2.822400 0.746000 0.680200 72 195 37
--16.810101 49.139900 -3.928800 0.746000 0.788400 0 253 27
--21.936399 43.055199 -3.733600 0.691800 0.680200 24 182 75
--16.192200 44.960400 -4.877100 0.677700 0.788400 0 236 42
--16.810101 49.139900 -3.928800 0.746000 0.788400 0 253 27
--22.348700 46.932201 -2.822400 0.746000 0.680200 72 195 37
--22.105101 44.119598 -7.074000 0.862200 0.680200 254 254 254
--23.337700 47.268200 -6.945000 0.809900 0.680200 254 254 254
--22.585199 48.327702 -7.594400 0.812700 0.705100 254 254 254
--21.061199 44.183601 -7.611200 0.879500 0.705100 254 254 254
--15.884600 46.520500 -7.855800 0.626900 0.788400 0 250 27
--16.192200 44.960400 -4.877100 0.677700 0.788400 0 253 27
--21.936399 43.055199 -3.733600 0.691800 0.680200 0 253 27
--21.061199 44.183601 -7.611200 0.626900 0.699700 52 208 31
--5.598500 31.822901 -1.405400 0.185400 0.436500 133 152 48
--7.174300 32.815300 -5.168000 0.136400 0.440500 0 253 27
--7.453900 29.910801 -4.782000 0.143900 0.408700 0 253 27
--4.970000 33.082802 -8.871300 0.086900 0.436600 0 253 27
--5.595300 29.761600 -8.491100 0.097300 0.399700 0 253 27
--7.453900 29.910801 -4.782000 0.143900 0.408700 0 253 27
--7.174300 32.815300 -5.168000 0.136400 0.440500 0 253 27
--6.827700 20.858999 -3.051400 0.166500 0.297500 254 254 254
--5.426000 21.341299 -8.131100 0.106600 0.297500 254 254 254
--6.194700 19.576300 -3.492500 0.163400 0.285600 254 254 254
--0.835600 22.853901 -8.203000 0.053300 0.313700 0 253 27
--0.899900 21.410400 -8.342700 0.054900 0.297500 0 253 27
--5.426000 21.341299 -8.131100 0.106600 0.297500 0 253 27
--5.317800 22.936800 -8.014600 0.105500 0.313700 0 253 27
--0.899900 21.410400 -8.342700 0.307200 0.297500 219 57 99
--1.957400 20.620800 -1.217700 0.224300 0.297500 254 68 73
--1.853000 19.164200 -1.385300 0.221600 0.281000 254 68 73
--6.194700 19.576300 -3.492500 0.163400 0.285600 114 254 128
--1.853000 19.164200 -1.385300 0.221600 0.281000 242 254 242
--1.957400 20.620800 -1.217700 0.224300 0.297500 242 254 242
--6.827700 20.858999 -3.051400 0.166500 0.297500 168 254 177
--5.259600 15.490400 -9.599400 0.090700 0.228600 0 253 27
--5.426000 21.341299 -8.131100 0.106600 0.297500 0 253 27
--0.899900 21.410400 -8.342700 0.054900 0.297500 0 253 27
--0.294400 16.169500 -7.962700 0.039600 0.241800 0 253 27
--0.294400 16.169500 -7.962700 0.282300 0.223700 0 253 27
--0.899900 21.410400 -8.342700 0.307200 0.297500 1 216 59
--1.853000 19.164200 -1.385300 0.221600 0.281000 0 253 27
--1.221800 14.450400 -2.004100 0.220300 0.236900 0 253 27
--1.853000 19.164200 -1.385300 0.221600 0.281000 254 254 254
--6.194700 19.576300 -3.492500 0.163400 0.285600 254 254 254
--6.498700 14.643000 -4.000600 0.151700 0.232900 91 254 108
--1.221800 14.450400 -2.004100 0.220300 0.236900 0 254 27
--6.498700 14.643000 -4.000600 0.151700 0.232900 254 254 254
--6.194700 19.576300 -3.492500 0.163400 0.285600 254 254 254
--5.426000 21.341299 -8.131100 0.106600 0.297500 254 254 254
--5.259600 15.490400 -9.599400 0.090700 0.228600 254 254 254
--7.813100 49.342701 -3.886900 0.181000 0.844200 254 68 73
--6.775800 50.206501 -7.534500 0.134100 0.852600 254 68 73
--5.495700 46.043098 -6.732400 0.139900 0.788400 254 68 73
--6.029500 46.188801 -3.956000 0.183300 0.792100 254 68 73
--8.756500 49.321098 -7.632900 0.626900 0.922700 0 254 27
--6.775800 50.206501 -7.534500 0.626900 0.944900 0 254 27
--7.813100 49.342701 -3.886900 0.686800 0.944900 0 254 27
--8.927200 49.128502 -4.128200 0.688900 0.922700 0 254 27
--5.495700 46.043098 -6.732400 0.139900 0.788400 0 254 27
--6.775800 50.206501 -7.534500 0.134100 0.852600 0 254 27
-0.000000 50.037800 -9.413700 0.041800 0.827300 0 254 27
-0.000000 45.235802 -8.516300 0.061400 0.762800 0 254 27
--3.773800 51.093601 -1.034300 0.256600 0.864400 0 253 27
-0.000000 50.880199 0.110000 0.310700 0.860500 0 253 27
-0.000000 54.522099 -2.187600 0.310700 0.919600 0 253 27
--1.435700 55.057400 -2.884500 0.285800 0.931400 0 253 27
--0.163800 60.672798 0.405300 0.529100 0.200900 0 254 27
--0.596000 60.268700 -0.255900 0.502600 0.185300 0 254 27
--0.605400 59.453602 0.006800 0.508800 0.156900 0 254 27
--0.226300 59.631802 0.717000 0.529800 0.167300 0 254 27
-0.000000 59.375900 0.272700 0.533800 0.153800 0 254 27
--0.605400 59.453602 0.006800 0.508800 0.156900 0 254 27
--0.793500 58.611801 -0.022400 0.506200 0.129800 0 254 27
-0.000000 58.735298 0.237300 0.533800 0.134400 0 253 27
--1.340700 61.343498 -1.024900 0.467800 0.231800 254 254 254
--2.209500 61.230499 -1.515000 0.430900 0.227000 254 254 254
--2.225300 60.301201 -1.334400 0.434400 0.187400 254 254 254
--0.474100 61.294899 -0.607800 0.499900 0.227200 254 254 254
--0.179900 61.274700 0.058500 0.525600 0.223900 254 254 254
--0.785400 61.539799 -0.048800 0.505500 0.247600 254 254 254
--0.163800 60.672798 0.405300 0.529100 0.200900 0 254 27
--0.179900 61.274700 0.058500 0.525600 0.223900 0 254 27
--0.474100 61.294899 -0.607800 0.499900 0.227200 0 254 27
--0.596000 60.268700 -0.255900 0.502600 0.185300 0 254 27
--0.785400 61.539799 -0.048800 0.505500 0.247600 0 254 27
-0.000000 62.775902 -0.355700 0.533900 0.286800 0 254 27
--1.901400 62.898899 -1.262500 0.451600 0.287500 0 254 27
--1.792100 61.563202 -0.648200 0.464300 0.250800 0 254 27
--1.901400 62.898899 -1.262500 0.451600 0.287500 254 254 254
--2.505800 61.413601 -3.333900 0.367200 0.240300 254 254 254
--2.209500 61.230499 -1.515000 0.430900 0.227000 254 254 254
--1.792100 61.563202 -0.648200 0.464300 0.250800 254 254 254
--2.071800 58.080299 -1.837600 0.435700 0.090000 254 254 254
--2.043500 58.694401 -1.722000 0.434700 0.119000 254 254 254
--2.361600 58.652599 -3.405400 0.376100 0.111600 254 254 254
--2.361600 58.652599 -3.405400 0.376100 0.111600 254 254 254
--1.480400 57.287800 -3.167400 0.388000 0.054100 254 254 254
--2.071800 58.080299 -1.837600 0.435700 0.090000 254 254 254
--2.361600 58.652599 -3.405400 0.376100 0.111600 254 254 254
--2.043500 58.694401 -1.722000 0.434700 0.119000 254 254 254
--2.225300 60.301201 -1.334400 0.434400 0.187400 254 254 254
--2.484800 60.667999 -2.078300 0.409600 0.193000 254 254 254
--0.596000 60.268700 -0.255900 0.502600 0.185300 0 254 27
--2.225300 60.301201 -1.334400 0.434400 0.187400 0 254 27
--0.793500 58.611801 -0.022400 0.506200 0.129800 0 254 27
--0.605400 59.453602 0.006800 0.508800 0.156900 0 254 27
--0.793500 58.611801 -0.022400 0.506200 0.129800 0 254 27
--0.860300 57.339199 -0.345300 0.507000 0.087800 0 253 27
-0.000000 57.320400 0.190300 0.533800 0.095300 0 253 27
-0.000000 58.735298 0.237300 0.533800 0.134400 0 253 27
--2.361600 58.652599 -3.405400 0.376100 0.111600 254 254 254
--1.507500 57.978802 -4.806700 0.327200 0.071700 254 254 254
--1.480400 57.287800 -3.167400 0.388000 0.054100 254 254 254
--1.480400 57.287800 -3.167400 0.293600 0.962800 254 153 157
--1.435700 55.057400 -2.884500 0.285800 0.931400 244 75 71
-0.000000 54.522099 -2.187600 0.310700 0.919600 235 81 69
--0.509500 56.862801 -2.081200 0.307800 0.953500 254 129 132
--1.435700 55.057400 -2.884500 0.285800 0.931400 254 68 73
--1.480400 57.287800 -3.167400 0.293600 0.962800 254 68 73
--1.507500 57.978802 -4.806700 0.269900 0.982500 254 68 73
--2.321200 55.471001 -5.570800 0.259500 0.968000 254 68 73
--5.259600 15.490400 -9.599400 0.090700 0.228600 0 253 27
--0.294400 16.169500 -7.962700 0.039600 0.241800 0 253 27
--2.020300 14.610600 -8.278800 0.063600 0.221000 0 253 27
--0.294400 16.169500 -7.962700 0.282300 0.223700 157 130 53
--1.221800 14.450400 -2.004100 0.220300 0.236900 0 252 27
--0.971400 14.644800 -6.706400 0.253200 0.212300 27 229 30
--5.308800 13.910900 -3.738700 0.168700 0.220700 23 254 48
--1.766900 13.754900 -2.918700 0.216900 0.223600 0 254 27
--1.221800 14.450400 -2.004100 0.220300 0.236900 0 254 27
--6.498700 14.643000 -4.000600 0.151700 0.232900 91 254 108
--4.649800 14.945700 -8.785600 0.103500 0.222700 254 68 73
--5.308800 13.910900 -3.738700 0.168700 0.220700 254 68 73
--6.498700 14.643000 -4.000600 0.151700 0.232900 254 68 73
--5.259600 15.490400 -9.599400 0.090700 0.228600 254 68 73
--1.957400 20.620800 -1.217700 0.224300 0.297500 0 253 27
--0.899900 21.410400 -8.342700 0.307200 0.297500 1 216 59
--0.835600 22.853901 -8.203000 0.306600 0.313700 2 205 69
--2.189200 21.987900 -1.481800 0.225500 0.313700 0 253 27
--7.174300 32.815300 -5.168000 0.136400 0.440500 0 253 27
--6.542300 35.480598 -4.902800 0.133600 0.471500 0 253 27
--5.283200 35.952900 -7.814600 0.094100 0.470900 0 254 27
--4.970000 33.082802 -8.871300 0.086900 0.436600 0 253 27
--5.598500 31.822901 -1.405400 0.185400 0.436500 133 152 48
--6.542300 35.480598 -4.902800 0.133600 0.471500 0 253 27
--7.174300 32.815300 -5.168000 0.136400 0.440500 0 253 27
--4.685700 36.664101 -1.616400 0.239100 0.661600 13 226 40
--5.598500 31.822901 -1.405400 0.231500 0.582200 133 152 48
--3.798500 31.552500 -0.386300 0.257600 0.582200 211 97 63
--2.225300 60.301201 -1.334400 0.434400 0.187400 254 254 254
--2.209500 61.230499 -1.515000 0.430900 0.227000 254 254 254
--2.484800 60.667999 -2.078300 0.409600 0.193000 254 254 254
--8.927200 49.128502 -4.128200 0.688900 0.922700 0 253 27
--7.813100 49.342701 -3.886900 0.686800 0.944900 0 253 27
--8.184300 53.108700 -3.320400 0.746000 0.944900 0 253 27
--9.508400 52.403099 -3.672700 0.746000 0.922700 0 253 27
--8.184300 53.108700 -3.320400 0.746000 0.944900 0 253 27
--8.747800 53.770199 -7.353300 0.807700 0.944900 0 253 27
--9.827700 52.989700 -7.188500 0.805500 0.922700 0 253 27
--9.508400 52.403099 -3.672700 0.746000 0.922700 0 253 27
--8.747800 53.770199 -7.353300 0.807700 0.944900 0 254 27
--7.252500 54.524502 -7.615000 0.812300 0.981700 0 254 27
--6.775800 50.206501 -7.534500 0.879500 0.944900 0 254 27
--8.927200 49.128502 -4.128200 0.688900 0.922700 0 253 27
--9.508400 52.403099 -3.672700 0.746000 0.922700 0 253 27
--15.636800 49.715099 -4.015700 0.746000 0.809400 0 253 27
--14.977100 45.689201 -4.821000 0.680000 0.809400 0 248 31
--6.624100 53.529800 -2.653700 0.210200 0.900400 0 253 27
--3.773800 51.093601 -1.034300 0.256600 0.864400 0 253 27
--1.435700 55.057400 -2.884500 0.285800 0.931400 0 253 27
--7.252500 54.524502 -7.615000 0.180400 0.964800 0 253 27
--2.321200 55.471001 -5.570800 0.259500 0.968000 0 253 27
--7.252500 54.524502 -7.615000 0.180400 0.964800 0 253 27
--1.435700 55.057400 -2.884500 0.285800 0.931400 0 253 27
--2.209500 61.230499 -1.515000 0.430900 0.227000 254 254 254
--2.505800 61.413601 -3.333900 0.362700 0.212700 254 254 254
--2.484800 60.667999 -2.078300 0.409600 0.193000 254 254 254
--2.484800 60.667999 -2.078300 0.409600 0.193000 254 254 254
--2.505800 61.413601 -3.333900 0.362700 0.212700 254 254 254
--2.361600 58.652599 -3.405400 0.376100 0.111600 254 254 254
--2.209500 61.230499 -1.515000 0.430900 0.227000 254 254 254
--1.340700 61.343498 -1.024900 0.467800 0.231800 254 254 254
--1.792100 61.563202 -0.648200 0.464300 0.250800 254 254 254
--3.061600 3.537800 -3.461700 0.290200 0.071700 18 0 252
--3.735600 1.816900 0.228400 0.290200 0.030700 18 0 253
--1.568700 1.981700 -0.627100 0.308400 0.040400 18 0 253
--1.553600 3.059500 -4.173500 0.310400 0.073900 18 0 253
--0.626000 0.031700 -8.336200 0.345300 0.097200 18 0 253
--1.553600 3.059500 -4.173500 0.310400 0.073900 18 0 253
--1.568700 1.981700 -0.627100 0.308400 0.040400 18 0 253
--1.825200 -0.024100 0.601200 0.313500 0.023800 18 0 253
--1.825200 -0.024100 0.601200 0.748300 0.055100 18 0 253
--3.769300 -0.009000 1.132900 0.765800 0.040900 18 0 253
--1.712600 0.024900 -9.195700 0.765100 0.147100 19 0 253
--0.626000 0.031700 -8.336200 0.751000 0.138000 19 0 253
--1.712600 0.024900 -9.195700 0.089900 0.023200 254 68 73
--2.020300 14.610600 -8.278800 0.060000 0.185800 0 253 27
--0.971400 14.644800 -6.706400 0.025900 0.185800 0 253 27
--0.626000 0.031700 -8.336200 0.075600 0.021500 254 68 73
--1.568700 1.981700 -0.627100 0.308400 0.040400 18 0 253
--3.735600 1.816900 0.228400 0.290200 0.030700 18 0 253
--3.769300 -0.009000 1.132900 0.289700 0.012400 18 0 253
--1.825200 -0.024100 0.601200 0.313500 0.023800 19 0 253
--4.089400 2.633000 -5.031300 0.275500 0.071900 188 254 194
--3.252600 0.001600 -8.591000 0.238500 0.103000 0 254 27
--5.176800 -0.025000 -0.598300 0.266200 0.023600 254 254 254
--5.390300 1.568200 -1.670300 0.274000 0.039600 254 254 254
--3.769300 -0.009000 1.132900 0.289700 0.012400 18 0 253
--3.735600 1.816900 0.228400 0.290200 0.030700 18 0 253
--5.390300 1.568200 -1.670300 0.274000 0.039600 18 0 253
--5.176800 -0.025000 -0.598300 0.266200 0.023600 18 0 253
--5.390300 1.568200 -1.670300 0.274000 0.039600 18 0 253
--3.735600 1.816900 0.228400 0.290200 0.030700 18 0 253
--3.061600 3.537800 -3.461700 0.290200 0.071700 18 0 252
--4.089400 2.633000 -5.031300 0.275500 0.071900 18 0 252
--3.061600 3.537800 -3.461700 0.164000 0.067400 18 0 252
--1.766900 13.754900 -2.918700 0.193300 0.185800 0 254 27
--5.308800 13.910900 -3.738700 0.154100 0.185800 14 254 41
--4.089400 2.633000 -5.031300 0.145000 0.057700 18 0 252
--2.020300 14.610600 -8.278800 0.063600 0.221000 0 253 27
--4.649800 14.945700 -8.785600 0.103500 0.222700 0 253 27
--5.259600 15.490400 -9.599400 0.090700 0.228600 0 253 27
--2.020300 14.610600 -8.278800 0.063600 0.221000 0 253 27
--0.294400 16.169500 -7.962700 0.039600 0.241800 0 253 27
--0.971400 14.644800 -6.706400 0.028400 0.216500 0 253 27
--5.426000 21.341299 -8.131100 0.106600 0.297500 254 254 254
--6.827700 20.858999 -3.051400 0.166500 0.297500 254 254 254
--6.824000 22.193899 -3.254300 0.165700 0.313700 254 254 254
--5.317800 22.936800 -8.014600 0.105500 0.313700 254 254 254
--0.845100 29.891001 -9.491500 0.041700 0.395800 0 253 27
--0.835600 22.853901 -8.203000 0.053300 0.313700 0 253 27
--5.317800 22.936800 -8.014600 0.105500 0.313700 0 253 27
--5.595300 29.761600 -8.491100 0.097300 0.399700 0 254 27
--1.957400 20.620800 -1.217700 0.224300 0.297500 242 254 242
--2.189200 21.987900 -1.481800 0.225500 0.313700 218 254 222
--6.824000 22.193899 -3.254300 0.165700 0.313700 99 254 117
--6.827700 20.858999 -3.051400 0.166500 0.297500 166 254 175
--0.605400 59.453602 0.006800 0.508800 0.156900 254 254 254
-0.000000 59.375900 0.272700 0.533800 0.153800 254 254 254
--0.226300 59.631802 0.717000 0.529800 0.167300 254 254 254
--21.936399 43.055199 -3.733600 0.691800 0.680200 24 182 75
--22.348700 46.932201 -2.822400 0.746000 0.680200 72 195 37
--23.323000 46.228001 -3.425200 0.746000 0.661900 26 230 29
--23.265499 44.290199 -3.614200 0.710900 0.661900 37 214 37
--22.105101 44.119598 -7.074000 0.862200 0.680200 254 254 254
--23.273100 44.479099 -6.170500 0.835600 0.661900 254 254 254
--23.881300 46.267799 -5.995500 0.800900 0.661900 254 254 254
--23.337700 47.268200 -6.945000 0.809900 0.680200 254 254 254
--22.348700 46.932201 -2.822400 0.746000 0.680200 72 195 37
--23.337700 47.268200 -6.945000 0.809900 0.680200 0 254 27
--23.881300 46.267799 -5.995500 0.800900 0.661900 0 253 27
--23.323000 46.228001 -3.425200 0.746000 0.661900 26 230 29
--21.936399 43.055199 -3.733600 0.691800 0.680200 254 68 73
--23.265499 44.290199 -3.614200 0.710900 0.661900 254 68 73
--23.273100 44.479099 -6.170500 0.665900 0.661900 254 68 73
--22.105101 44.119598 -7.074000 0.641700 0.680200 254 68 73
--23.323000 46.228001 -3.425200 0.746000 0.661900 26 230 29
--24.935400 45.742901 -3.288800 0.746000 0.630500 80 189 39
--24.446100 44.099098 -3.039500 0.723200 0.630500 144 136 53
--23.265499 44.290199 -3.614200 0.710900 0.661900 37 214 37
--23.273100 44.479099 -6.170500 0.835600 0.661900 16 254 41
--25.718901 44.407902 -5.989100 0.812100 0.630500 47 254 71
--25.982700 45.641201 -5.974700 0.796200 0.630500 53 254 75
--23.881300 46.267799 -5.995500 0.800900 0.661900 23 254 48
--23.881300 46.267799 -5.995500 0.800900 0.661900 0 253 27
--25.982700 45.641201 -5.974700 0.796200 0.630500 0 253 27
--24.935400 45.742901 -3.288800 0.746000 0.630500 80 189 39
--23.323000 46.228001 -3.425200 0.746000 0.661900 26 230 29
--23.265499 44.290199 -3.614200 0.710900 0.661900 0 254 27
--24.446100 44.099098 -3.039500 0.723200 0.630500 0 254 27
--25.718901 44.407902 -5.989100 0.677100 0.630500 47 254 71
--23.273100 44.479099 -6.170500 0.665900 0.661900 16 254 41
--3.798500 31.552500 -0.386300 0.257600 0.582200 211 97 63
-0.000000 31.552500 0.128500 0.310700 0.582200 203 101 62
-0.000000 37.009800 0.550700 0.310700 0.661600 172 124 55
--4.685700 36.664101 -1.616400 0.239100 0.661600 13 226 40
--27.058001 43.733101 -1.471100 0.783900 0.527900 254 68 73
--28.100901 44.177299 -2.470000 0.756100 0.537200 231 80 64
--27.637899 42.321201 -1.984400 0.780200 0.502700 254 68 73
--26.775499 43.007000 -1.492900 0.799700 0.523000 254 68 73
--27.102699 45.320202 -5.735100 0.706300 0.587600 75 254 93
--25.982700 45.641201 -5.974700 0.701400 0.609900 53 254 75
--25.718901 44.407902 -5.989100 0.674700 0.592000 47 254 71
--26.246300 42.901402 -5.383600 0.663100 0.553800 20 254 46
--24.935400 45.742901 -3.288800 0.774000 0.616500 80 254 99
--25.982700 45.641201 -5.974700 0.701400 0.609900 0 254 27
--27.102699 45.320202 -5.735100 0.706300 0.587600 0 254 27
--26.753901 45.398300 -2.858600 0.766000 0.574200 163 254 174
--24.446100 44.099098 -3.039500 0.815000 0.599300 0 249 30
--26.246300 42.901402 -5.383600 0.880100 0.569900 19 213 43
--25.718901 44.407902 -5.989100 0.885900 0.607200 46 208 34
--28.380600 42.330502 -3.056600 0.741600 0.498200 254 68 73
--27.637899 42.321201 -1.984400 0.780200 0.502700 254 68 73
--28.100901 44.177299 -2.470000 0.756100 0.537200 254 68 73
--28.697901 44.238201 -3.477500 0.737900 0.538900 254 68 73
--28.380600 42.330502 -3.056600 0.741600 0.498200 254 254 254
--28.697901 44.238201 -3.477500 0.737900 0.538900 254 254 254
--28.543800 44.178001 -4.651400 0.718600 0.545700 254 254 254
--28.292801 42.543098 -4.446800 0.704200 0.514300 254 254 254
--26.753901 45.398300 -2.858600 0.766000 0.574200 163 125 53
--28.697901 44.238201 -3.477500 0.737900 0.538900 97 175 41
--28.100901 44.177299 -2.470000 0.756100 0.537200 231 80 64
--24.935400 45.742901 -3.288800 0.774000 0.616500 80 189 39
--26.117701 44.487900 -2.198700 0.788200 0.565100 242 74 67
--25.587200 43.557701 -2.038700 0.806300 0.556900 253 67 73
--24.446100 44.099098 -3.039500 0.815000 0.599300 144 136 53
--24.446100 44.099098 -3.039500 0.815000 0.599300 0 249 30
--25.587200 43.557701 -2.038700 0.806300 0.556900 0 252 27
--25.491899 42.827301 -2.370100 0.813300 0.554500 0 245 34
--26.246300 42.901402 -5.383600 0.880100 0.569900 19 213 43
--26.753901 45.398300 -2.858600 0.766000 0.574200 163 125 53
--26.117701 44.487900 -2.198700 0.788200 0.565100 242 74 67
--24.935400 45.742901 -3.288800 0.774000 0.616500 80 189 39
-0.000000 31.552500 0.128500 0.310700 0.582200 203 101 62
--3.798500 31.552500 -0.386300 0.257600 0.582200 211 97 63
--3.463700 23.872801 -0.356700 0.261000 0.472800 254 68 73
-0.000000 24.132099 -0.356700 0.310700 0.472800 243 74 70
--2.225300 60.301201 -1.334400 0.434400 0.187400 254 254 254
--2.043500 58.694401 -1.722000 0.434700 0.119000 254 247 247
--0.793500 58.611801 -0.022400 0.506200 0.129800 254 246 246
--0.793500 58.611801 -0.022400 0.506200 0.129800 254 246 246
--2.043500 58.694401 -1.722000 0.434700 0.119000 254 247 247
--2.071800 58.080299 -1.837600 0.435700 0.090000 254 224 225
--0.860300 57.339199 -0.345300 0.507000 0.087800 254 172 174
--2.071800 58.080299 -1.837600 0.435700 0.090000 254 224 225
--1.480400 57.287800 -3.167400 0.435700 0.022900 254 153 157
--0.509500 56.862801 -2.081200 0.497100 0.026700 254 129 132
--0.860300 57.339199 -0.345300 0.507000 0.087800 254 172 174
--0.179900 61.274700 0.058500 0.525600 0.223900 0 254 27
-0.000000 61.912998 -0.048000 0.533800 0.254400 0 254 27
--0.785400 61.539799 -0.048800 0.505500 0.247600 0 254 27
--15.884600 46.520500 -7.855800 0.879500 0.788400 0 250 27
--17.208200 49.477699 -7.512200 0.810800 0.788400 6 242 27
--16.136200 50.023998 -7.546200 0.808600 0.809400 0 249 27
--14.885000 46.974701 -7.946000 0.879500 0.809400 0 251 27
--15.636800 49.715099 -4.015700 0.746000 0.809400 0 253 27
--16.136200 50.023998 -7.546200 0.808600 0.809400 0 253 27
--17.208200 49.477699 -7.512200 0.810800 0.788400 0 253 27
--16.810101 49.139900 -3.928800 0.746000 0.788400 0 253 27
--16.192200 44.960400 -4.877100 0.677700 0.788400 0 236 42
--15.884600 46.520500 -7.855800 0.626900 0.788400 0 253 27
--14.885000 46.974701 -7.946000 0.626900 0.809400 0 253 27
--14.977100 45.689201 -4.821000 0.680000 0.809400 0 248 31
--16.810101 49.139900 -3.928800 0.746000 0.788400 236 81 69
--16.192200 44.960400 -4.877100 0.677700 0.788400 200 90 77
--14.977100 45.689201 -4.821000 0.680000 0.809400 174 120 62
--15.636800 49.715099 -4.015700 0.746000 0.809400 218 94 66
--13.779500 47.417198 -7.715300 0.879500 0.834400 0 253 27
--14.989100 50.565300 -7.297200 0.805300 0.834400 0 252 27
--9.827700 52.989700 -7.188500 0.805500 0.922700 0 253 27
--8.756500 49.321098 -7.632900 0.879500 0.922700 0 253 27
--15.636800 49.715099 -4.015700 0.746000 0.809400 0 253 27
--14.989100 50.565300 -7.297200 0.805300 0.834400 0 253 27
--16.136200 50.023998 -7.546200 0.808600 0.809400 0 253 27
--13.779500 47.417198 -7.715300 0.626900 0.829400 0 253 27
--14.977100 45.689201 -4.821000 0.680000 0.809400 0 253 27
--14.885000 46.974701 -7.946000 0.626900 0.809400 0 251 27
--0.971400 14.644800 -6.706400 0.253200 0.212300 27 229 30
--1.221800 14.450400 -2.004100 0.220300 0.236900 0 252 27
--1.766900 13.754900 -2.918700 0.216900 0.223600 0 253 27
--26.117701 44.487900 -2.198700 0.788200 0.565100 242 74 67
--27.058001 43.733101 -1.471100 0.783900 0.527900 254 68 73
--26.775499 43.007000 -1.492900 0.799700 0.523000 254 68 73
--25.587200 43.557701 -2.038700 0.806300 0.556900 253 67 73
--25.587200 43.557701 -2.038700 0.806300 0.556900 0 252 27
--26.775499 43.007000 -1.492900 0.799700 0.523000 0 253 27
--27.637899 42.321201 -1.984400 0.816200 0.507300 0 253 27
--25.491899 42.827301 -2.370100 0.813300 0.554500 0 245 34
--26.117701 44.487900 -2.198700 0.788200 0.565100 242 74 67
--28.100901 44.177299 -2.470000 0.756100 0.537200 231 80 64
--27.058001 43.733101 -1.471100 0.783900 0.527900 254 68 73
--8.184300 53.108700 -3.320400 0.746000 0.944900 0 253 27
--7.813100 49.342701 -3.886900 0.686800 0.944900 0 253 27
--6.624100 53.529800 -2.653700 0.746000 0.986600 0 253 27
--8.747800 53.770199 -7.353300 0.807700 0.944900 0 254 27
--6.775800 50.206501 -7.534500 0.879500 0.944900 0 254 27
--8.756500 49.321098 -7.632900 0.879500 0.922700 0 254 27
--9.827700 52.989700 -7.188500 0.805500 0.922700 0 254 27
--28.543800 44.178001 -4.651400 0.718600 0.545700 0 254 27
--28.697901 44.238201 -3.477500 0.737900 0.538900 97 254 114
--26.753901 45.398300 -2.858600 0.766000 0.574200 163 254 174
--27.102699 45.320202 -5.735100 0.706300 0.587600 0 254 27
--26.246300 42.901402 -5.383600 0.880100 0.569900 20 231 27
--28.380600 42.330502 -3.056600 0.853500 0.507000 0 252 27
--28.292801 42.543098 -4.446800 0.879400 0.523100 5 243 27
--28.100901 44.177299 -2.470000 0.756100 0.537200 231 80 64
--26.117701 44.487900 -2.198700 0.788200 0.565100 242 74 67
--26.753901 45.398300 -2.858600 0.766000 0.574200 163 125 53
--1.712600 0.024900 -9.195700 0.765100 0.147100 254 254 254
--3.769300 -0.009000 1.132900 0.765800 0.040900 0 254 27
--5.176800 -0.025000 -0.598300 0.783900 0.050100 0 254 27
--3.252600 0.001600 -8.591000 0.777900 0.139800 254 254 254
-0.000000 61.912998 -0.048000 0.533800 0.254400 0 254 27
-0.000000 62.775902 -0.355700 0.533900 0.286800 0 254 27
--0.785400 61.539799 -0.048800 0.505500 0.247600 0 254 27
--0.340300 31.400700 -9.922000 0.348900 0.396000 0 253 27
--0.425600 30.069099 -1.503600 0.251300 0.411900 0 253 27
--0.845100 29.891001 -9.491500 0.339400 0.379800 0 253 27
-0.000000 54.522099 -2.187600 0.310700 0.919600 235 81 69
-0.000000 56.862801 -2.081200 0.310500 0.953100 254 127 130
--0.509500 56.862801 -2.081200 0.307800 0.953500 254 129 132
--0.509500 56.862801 -2.081200 0.497100 0.026700 254 129 132
-0.000000 56.862801 -2.081200 0.533800 0.019000 254 127 130
-0.000000 57.320400 0.190300 0.533800 0.095300 254 190 192
--0.860300 57.339199 -0.345300 0.507000 0.087800 254 172 174
--5.598500 31.822901 -1.405400 0.185400 0.436500 133 152 48
--7.453900 29.910801 -4.782000 0.143900 0.408700 0 253 27
--6.824000 22.193899 -3.254300 0.165700 0.313700 99 254 117
--6.824000 22.193899 -3.254300 0.165700 0.313700 254 68 73
--7.453900 29.910801 -4.782000 0.143900 0.408700 254 68 73
--5.595300 29.761600 -8.491100 0.097300 0.399700 254 68 73
--5.317800 22.936800 -8.014600 0.105500 0.313700 254 68 73
--3.798500 31.552500 -0.386300 0.210900 0.433400 211 97 63
--5.598500 31.822901 -1.405400 0.185400 0.436500 133 152 48
--6.824000 22.193899 -3.254300 0.165700 0.313700 99 254 117
--2.189200 21.987900 -1.481800 0.225500 0.313700 218 254 222
--0.340300 31.400700 -9.922000 0.033600 0.413900 0 253 27
--0.845100 29.891001 -9.491500 0.041700 0.395800 0 253 27
--5.595300 29.761600 -8.491100 0.097300 0.399700 0 254 27
--4.970000 33.082802 -8.871300 0.086900 0.436600 0 254 27
--0.835600 22.853901 -8.203000 0.306600 0.313700 2 205 69
--0.845100 29.891001 -9.491500 0.339400 0.379800 0 241 37
--0.425600 30.069099 -1.503600 0.251300 0.411900 0 253 27
--2.189200 21.987900 -1.481800 0.225500 0.313700 0 253 27
--2.162800 35.743500 -9.599900 0.052600 0.465300 0 254 27
--0.340300 31.400700 -9.922000 0.033600 0.413900 0 253 27
--4.970000 33.082802 -8.871300 0.086900 0.436600 0 254 27
--5.283200 35.952900 -7.814600 0.094100 0.470900 0 254 27
--5.283200 35.952900 -7.814600 0.142000 0.631800 0 254 27
--6.542300 35.480598 -4.902800 0.182300 0.631800 0 254 27
--5.919200 37.619099 -4.570300 0.183200 0.661600 0 254 27
--5.919200 37.619099 -4.570300 0.183200 0.661600 0 253 27
--6.542300 35.480598 -4.902800 0.182300 0.631800 0 253 27
--5.598500 31.822901 -1.405400 0.231500 0.582200 133 152 48
--4.685700 36.664101 -1.616400 0.239100 0.661600 13 240 28
--0.474100 61.294899 -0.607800 0.499900 0.227200 0 254 27
--1.340700 61.343498 -1.024900 0.467800 0.231800 0 254 27
--2.225300 60.301201 -1.334400 0.434400 0.187400 0 254 27
--0.596000 60.268700 -0.255900 0.502600 0.185300 0 254 27
--1.340700 61.343498 -1.024900 0.467800 0.231800 254 254 254
--0.474100 61.294899 -0.607800 0.499900 0.227200 254 254 254
--0.785400 61.539799 -0.048800 0.505500 0.247600 254 254 254
--1.792100 61.563202 -0.648200 0.464300 0.250800 254 254 254
-0.000000 45.235802 -8.516300 0.061400 0.762800 0 253 27
-0.000000 38.221600 -8.073300 0.073200 0.661600 0 253 27
--2.827600 38.171799 -8.088300 0.114500 0.661600 0 253 27
--5.495700 46.043098 -6.732400 0.139900 0.788400 0 253 27
--0.425600 30.069099 -1.503600 0.251300 0.411900 254 254 254
--3.798500 31.552500 -0.386300 0.210900 0.433400 254 254 254
--2.189200 21.987900 -1.481800 0.225500 0.313700 254 254 254
-0.000000 31.547001 -9.939100 0.349900 0.400200 254 68 73
-0.000000 30.215401 -1.522000 0.252400 0.417000 254 68 73
--0.425600 30.069099 -1.503600 0.251300 0.411900 254 68 73
--0.340300 31.400700 -9.922000 0.348900 0.396000 254 68 73
--21.061199 44.183601 -7.611200 0.879500 0.705100 52 208 31
--22.585199 48.327702 -7.594400 0.812700 0.705100 104 170 42
--17.208200 49.477699 -7.512200 0.810800 0.788400 6 242 27
--15.884600 46.520500 -7.855800 0.879500 0.788400 0 250 27
--22.348700 46.932201 -2.822400 0.746000 0.680200 72 195 37
--22.585199 48.327702 -7.594400 0.812700 0.705100 0 253 27
--23.337700 47.268200 -6.945000 0.809900 0.680200 0 254 27
--21.061199 44.183601 -7.611200 0.626900 0.699700 52 208 31
--21.936399 43.055199 -3.733600 0.691800 0.680200 0 253 27
--22.105101 44.119598 -7.074000 0.641700 0.680200 30 225 27
-0.000000 59.375900 0.272700 0.533800 0.153800 254 254 254
-0.226300 59.631802 0.717000 0.537800 0.167300 254 254 254
--0.226300 59.631802 0.717000 0.529800 0.167300 254 254 254
--0.163800 60.672798 0.405300 0.529100 0.200900 0 254 27
--0.226300 59.631802 0.717000 0.529800 0.167300 0 254 27
-0.226300 59.631802 0.717000 0.537800 0.167300 0 254 27
-0.163800 60.672798 0.405300 0.538500 0.200900 0 254 27
--0.340300 31.400700 -9.922000 0.033600 0.413900 0 253 27
--2.162800 35.743500 -9.599900 0.052600 0.465300 0 253 27
-0.000000 35.795200 -9.599900 0.027500 0.464800 0 253 27
-0.000000 31.547001 -9.939100 0.029600 0.415400 0 253 27
--5.919200 37.619099 -4.570300 0.183200 0.661600 0 254 27
--2.827600 38.171799 -8.088300 0.114500 0.661600 0 254 27
--2.162800 35.743500 -9.599900 0.096500 0.631800 0 254 27
--5.283200 35.952900 -7.814600 0.142000 0.631800 0 254 27
--28.543800 44.178001 -4.651400 0.718600 0.545700 254 254 254
--27.102699 45.320202 -5.735100 0.706300 0.587600 254 254 254
--26.246300 42.901402 -5.383600 0.663100 0.553800 254 254 254
--28.292801 42.543098 -4.446800 0.704200 0.514300 254 254 254
--25.491899 42.827301 -2.370100 0.813300 0.554500 0 254 27
--27.637899 42.321201 -1.984400 0.816200 0.507300 0 254 27
--28.380600 42.330502 -3.056600 0.853500 0.507000 0 254 27
--26.246300 42.901402 -5.383600 0.880100 0.569900 20 231 27
--25.491899 42.827301 -2.370100 0.813300 0.554500 0 253 27
--28.380600 42.330502 -3.056600 0.853500 0.507000 0 252 27
--0.179900 61.274700 0.058500 0.525600 0.223900 0 254 27
--0.163800 60.672798 0.405300 0.529100 0.200900 0 254 27
-0.163800 60.672798 0.405300 0.538500 0.200900 0 254 27
-0.179900 61.274700 0.058500 0.542100 0.223900 0 254 27
-0.000000 61.912998 -0.048000 0.533800 0.254400 0 254 27
--0.179900 61.274700 0.058500 0.525600 0.223900 0 254 27
-0.179900 61.274700 0.058500 0.542100 0.223900 0 254 27
--2.162800 35.743500 -9.599900 0.096500 0.631800 0 253 27
--2.827600 38.171799 -8.088300 0.114500 0.661600 0 253 27
-0.000000 38.221600 -8.073300 0.073200 0.661600 0 253 27
-0.000000 35.795200 -9.599900 0.068100 0.631800 0 253 27
-4.620900 14.945700 -8.516100 0.912200 0.175600 0 253 27
-3.252600 0.001600 -8.591000 0.909400 0.032900 235 80 66
-1.712600 0.024900 -9.195700 0.925400 0.031900 254 68 73
-1.456400 14.610600 -8.695100 0.943400 0.175600 0 253 27
-4.089400 2.633000 -5.031300 0.873900 0.060000 18 0 253
-3.252600 0.001600 -8.591000 0.909400 0.032900 19 0 253
-4.620900 14.945700 -8.516100 0.912200 0.175600 0 247 31
-5.308800 13.910900 -3.738700 0.859000 0.175600 0 253 27
-1.553600 3.059500 -4.173500 0.841100 0.058900 18 0 253
-3.061600 3.537800 -3.461700 0.856300 0.067800 18 0 253
-1.766900 13.754900 -2.918700 0.824200 0.175600 0 254 27
-1.553600 3.059500 -4.173500 0.841100 0.058900 254 254 254
-1.766900 13.754900 -2.918700 0.824200 0.175600 254 254 254
-1.239800 14.644800 -6.465300 0.795300 0.175600 254 254 254
-0.626000 0.031700 -8.336200 0.808600 0.019600 254 254 254
-5.495700 46.043098 -6.732400 0.140100 0.788400 0 252 27
-6.029500 46.188801 -3.956000 0.183500 0.792100 0 253 27
-5.919200 37.619099 -4.570300 0.183400 0.661600 9 98 162
-2.827600 38.171799 -8.088300 0.114700 0.661600 8 119 142
-4.685700 36.664101 -1.616400 0.239300 0.661600 0 250 28
-5.919200 37.619099 -4.570300 0.183400 0.661600 9 98 162
-6.029500 46.188801 -3.956000 0.183500 0.792100 0 253 27
-4.298500 47.001099 -0.058900 0.249500 0.802400 0 253 27
-6.775800 50.206501 -7.534500 0.134300 0.852600 0 253 27
-0.000000 50.037800 -9.413700 0.042000 0.827300 0 253 27
-0.000000 53.738098 -8.986800 0.028300 0.877800 0 253 27
-7.252500 54.524502 -7.615000 0.126400 0.913200 0 254 27
-7.252500 54.524502 -7.615000 0.533200 0.977800 0 254 27
-6.624100 53.529800 -2.653700 0.469900 0.977800 0 253 27
-8.184300 53.108700 -3.320400 0.469900 0.942000 0 253 27
-8.747800 53.770199 -7.353300 0.528600 0.942000 0 253 27
-9.827700 52.989700 -7.188500 0.526400 0.916400 0 253 27
-9.508400 52.403099 -3.672700 0.469900 0.916400 0 253 27
-15.636800 49.715099 -4.015700 0.469900 0.803100 1 215 59
-14.989100 50.565300 -7.297200 0.526200 0.828100 0 249 29
-0.000000 37.009800 0.550700 0.310700 0.661600 0 253 27
-4.685700 36.664101 -1.616400 0.239300 0.661600 0 250 28
-4.298500 47.001099 -0.058900 0.249500 0.802400 0 253 27
-0.000000 47.287498 1.094200 0.310700 0.805700 0 253 27
-0.000000 53.738098 -8.986800 0.028300 0.877800 0 253 27
-0.000000 55.950600 -7.250100 0.022600 0.916300 0 253 27
-2.321200 55.471001 -5.570800 0.053900 0.941000 0 253 27
-7.252500 54.524502 -7.615000 0.126400 0.913200 0 254 27
-3.773800 51.093601 -1.034300 0.256800 0.864400 0 253 27
-4.298500 47.001099 -0.058900 0.249500 0.802400 0 253 27
-6.029500 46.188801 -3.956000 0.183500 0.792100 0 253 27
-6.624100 53.529800 -2.653700 0.210400 0.900400 0 253 27
-6.624100 53.529800 -2.653700 0.210400 0.900400 254 68 73
-6.029500 46.188801 -3.956000 0.183500 0.792100 254 68 73
-7.813100 49.342701 -3.886900 0.181200 0.844200 254 68 73
-0.000000 50.880199 0.110000 0.310700 0.860500 0 253 27
-0.000000 47.287498 1.094200 0.310700 0.805700 0 252 27
-4.298500 47.001099 -0.058900 0.249500 0.802400 0 253 27
-3.773800 51.093601 -1.034300 0.256800 0.864400 0 253 27
-16.136200 50.023998 -7.546200 0.529500 0.803100 0 253 27
-14.885000 46.974701 -7.946000 0.590800 0.803100 0 253 27
-13.779500 47.417198 -7.715300 0.590800 0.828100 0 253 27
-14.989100 50.565300 -7.297200 0.526200 0.828100 0 253 27
-13.779500 47.417198 -7.715300 0.347800 0.823100 0 253 27
-14.977100 45.689201 -4.821000 0.400900 0.803100 0 253 27
-8.927200 49.128502 -4.128200 0.409800 0.916400 0 253 27
-8.756500 49.321098 -7.632900 0.347800 0.916400 0 253 27
-17.208200 49.477699 -7.512200 0.531700 0.782100 0 227 47
-16.810101 49.139900 -3.928800 0.469900 0.782100 35 133 112
-22.348700 46.932201 -2.822400 0.469900 0.674700 19 0 250
-22.585199 48.327702 -7.594400 0.533600 0.698800 0 236 38
-21.936399 43.055199 -3.733600 0.412700 0.674700 19 0 253
-22.348700 46.932201 -2.822400 0.469900 0.674700 19 0 250
-16.810101 49.139900 -3.928800 0.469900 0.782100 35 133 112
-16.192200 44.960400 -4.877100 0.398600 0.782100 18 0 253
-22.105101 44.119598 -7.074000 0.583100 0.674700 0 253 27
-21.061199 44.183601 -7.611200 0.590800 0.698800 0 253 27
-22.585199 48.327702 -7.594400 0.533600 0.698800 0 253 27
-23.337700 47.268200 -6.945000 0.530800 0.674700 0 253 27
-15.884600 46.520500 -7.855800 0.347800 0.782100 0 253 27
-21.061199 44.183601 -7.611200 0.347800 0.693400 0 253 27
-21.936399 43.055199 -3.733600 0.412700 0.674700 0 253 27
-16.192200 44.960400 -4.877100 0.398600 0.782100 0 253 27
-5.598500 31.822901 -1.404300 0.847900 0.413200 0 240 37
-7.453900 29.910801 -4.780100 0.884800 0.385400 18 0 251
-7.174300 32.815300 -5.167300 0.893300 0.414200 17 7 244
-4.970000 33.082802 -8.871900 0.938900 0.409500 18 0 252
-7.174300 32.815300 -5.167300 0.893300 0.414200 17 7 244
-7.453900 29.910801 -4.780100 0.884800 0.385400 18 0 251
-5.595300 29.761600 -8.492500 0.927500 0.375900 18 0 253
-6.827700 20.858999 -3.044800 0.858900 0.286100 0 231 44
-6.194700 19.576300 -3.478600 0.860200 0.277400 0 248 31
-5.426000 21.341299 -8.132600 0.914200 0.282100 15 21 230
-0.835600 22.853901 -8.210700 0.964300 0.301600 0 253 27
-5.317800 22.936800 -8.016200 0.916400 0.301600 0 253 27
-5.426000 21.341299 -8.132600 0.914200 0.282100 0 253 27
-0.899900 21.410400 -8.349400 0.962800 0.286100 0 253 27
-0.899900 21.410400 -8.349400 0.726500 0.282100 254 254 254
-1.853000 19.164200 -1.371600 0.805100 0.274200 254 254 254
-1.957400 20.620800 -1.211500 0.804700 0.286100 254 254 254
-6.194700 19.576300 -3.478600 0.860200 0.277400 0 248 31
-6.827700 20.858999 -3.044800 0.858900 0.286100 0 231 44
-1.957400 20.620800 -1.211500 0.804700 0.286100 0 253 27
-1.853000 19.164200 -1.371600 0.805100 0.274200 0 253 27
-5.117200 15.490400 -9.679700 0.917300 0.220800 0 253 27
-0.134100 16.169500 -9.174700 0.969900 0.225300 0 253 27
-0.899900 21.410400 -8.349400 0.962800 0.286100 0 253 27
-5.426000 21.341299 -8.132600 0.914200 0.282100 0 253 27
-0.134100 16.169500 -9.174700 0.732600 0.207100 0 254 27
-1.716700 14.450400 -2.459200 0.808600 0.236100 0 254 27
-1.853000 19.164200 -1.371600 0.805100 0.274200 0 254 27
-0.899900 21.410400 -8.349400 0.726500 0.282100 0 254 27
-1.853000 19.164200 -1.371600 0.805100 0.274200 0 253 27
-1.716700 14.450400 -2.459200 0.808600 0.236100 0 253 27
-6.069200 14.643000 -3.762300 0.859400 0.227800 0 253 27
-6.194700 19.576300 -3.478600 0.860200 0.277400 0 248 31
-6.069200 14.643000 -3.762300 0.859400 0.227800 0 253 27
-5.117200 15.490400 -9.679700 0.917300 0.220800 2 202 70
-5.426000 21.341299 -8.132600 0.914200 0.282100 15 21 230
-6.194700 19.576300 -3.478600 0.860200 0.277400 0 248 31
-7.813100 49.342701 -3.886900 0.181200 0.844200 0 253 27
-6.029500 46.188801 -3.956000 0.183500 0.792100 0 253 27
-5.495700 46.043098 -6.732400 0.140100 0.788400 0 252 27
-6.775800 50.206501 -7.534500 0.134300 0.852600 0 253 27
-8.756500 49.321098 -7.632900 0.347800 0.916400 254 68 73
-8.927200 49.128502 -4.128200 0.409800 0.916400 254 68 73
-7.813100 49.342701 -3.886900 0.407700 0.942000 254 68 73
-6.775800 50.206501 -7.534500 0.347800 0.942000 254 68 73
-5.495700 46.043098 -6.732400 0.140100 0.788400 0 253 27
-0.000000 45.235802 -8.516300 0.061600 0.762900 0 253 27
-0.000000 50.037800 -9.413700 0.042000 0.827300 0 253 27
-6.775800 50.206501 -7.534500 0.134300 0.852600 0 253 27
-3.773800 51.093601 -1.034300 0.256800 0.864400 0 253 27
-1.435700 55.057400 -2.884500 0.286000 0.931400 0 253 27
-0.000000 54.522099 -2.187600 0.310700 0.919600 0 253 27
-0.000000 50.880199 0.110000 0.310700 0.860500 0 253 27
-0.163800 60.672798 0.405300 0.538500 0.200900 0 253 27
-0.226300 59.631802 0.717000 0.537800 0.167300 0 253 27
-0.605400 59.453602 0.006800 0.558900 0.156900 0 253 27
-0.596000 60.268700 -0.255900 0.565100 0.185300 0 253 27
-0.000000 59.375900 0.272700 0.533800 0.153800 0 253 27
-0.000000 58.735298 0.237300 0.533800 0.134400 0 253 27
-0.793500 58.611801 -0.022400 0.561500 0.129800 0 253 27
-0.605400 59.453602 0.006800 0.558900 0.156900 0 253 27
-1.340700 61.343498 -1.024900 0.599900 0.231700 254 254 254
-2.225300 60.301201 -1.334400 0.633200 0.187400 254 254 254
-2.209500 61.230499 -1.515000 0.636800 0.228100 254 254 254
-0.474100 61.294899 -0.607800 0.567800 0.227200 0 253 27
-0.785400 61.539799 -0.048800 0.562200 0.247600 0 253 27
-0.179900 61.274700 0.058500 0.542100 0.223900 0 253 27
-0.163800 60.672798 0.405300 0.538500 0.200900 0 253 27
-0.596000 60.268700 -0.255900 0.565100 0.185300 0 253 27
-0.474100 61.294899 -0.607800 0.567800 0.227200 0 253 27
-0.179900 61.274700 0.058500 0.542100 0.223900 0 253 27
-0.785400 61.539799 -0.048800 0.562200 0.247600 0 253 27
-1.792100 61.563202 -0.648200 0.603400 0.250800 0 253 27
-1.901400 62.898899 -1.262500 0.616100 0.287500 0 253 27
-0.000000 62.775902 -0.355700 0.533900 0.286800 0 253 27
-1.901400 62.898899 -1.262500 0.616100 0.287500 254 73 78
-1.792100 61.563202 -0.648200 0.603400 0.250800 254 68 73
-2.209500 61.230499 -1.515000 0.636800 0.228100 254 68 73
-2.505800 61.413601 -3.333900 0.700500 0.240200 254 68 73
-2.071800 58.080299 -1.837600 0.632000 0.089900 254 254 254
-2.361600 58.652599 -3.405400 0.691600 0.111600 254 254 254
-2.043500 58.694401 -1.722000 0.633000 0.119000 254 254 254
-2.361600 58.652599 -3.405400 0.691600 0.111600 254 254 254
-2.071800 58.080299 -1.837600 0.632000 0.089900 254 254 254
-1.480400 57.287800 -3.167400 0.679600 0.054000 254 254 254
-2.361600 58.652599 -3.405400 0.691600 0.111600 254 254 254
-2.484800 60.667999 -2.078300 0.658100 0.193000 254 254 254
-2.225300 60.301201 -1.334400 0.633200 0.187400 254 254 254
-2.043500 58.694401 -1.722000 0.633000 0.119000 254 254 254
-0.596000 60.268700 -0.255900 0.565100 0.185300 0 253 27
-0.605400 59.453602 0.006800 0.558900 0.156900 0 253 27
-0.793500 58.611801 -0.022400 0.561500 0.129800 0 253 27
-2.225300 60.301201 -1.334400 0.633200 0.187400 0 253 27
-0.793500 58.611801 -0.022400 0.561500 0.129800 254 68 73
-0.000000 58.735298 0.237300 0.533800 0.134400 254 68 73
-0.000000 57.320400 0.190300 0.533800 0.095300 254 68 73
-0.860300 57.339199 -0.345300 0.560600 0.087800 254 68 73
-2.361600 58.652599 -3.405400 0.691600 0.111600 254 254 254
-1.480400 57.287800 -3.167400 0.679600 0.054000 254 254 254
-1.507500 57.978802 -4.806700 0.740400 0.071600 254 254 254
-1.480400 57.287800 -3.167400 0.293800 0.962800 0 253 27
-0.509500 56.862801 -2.081200 0.308000 0.953500 0 253 27
-0.000000 54.522099 -2.187600 0.310700 0.919600 0 253 27
-1.435700 55.057400 -2.884500 0.286000 0.931400 0 254 27
-1.435700 55.057400 -2.884500 0.286000 0.931400 254 68 73
-2.321200 55.471001 -5.570800 0.259700 0.968000 254 68 73
-1.507500 57.978802 -4.806700 0.270100 0.982500 254 68 73
-1.480400 57.287800 -3.167400 0.293800 0.962800 254 68 73
-5.117200 15.490400 -9.679700 0.917300 0.220800 0 253 27
-1.456400 14.610600 -8.695100 0.949700 0.207500 0 253 27
-0.134100 16.169500 -9.174700 0.969900 0.225300 0 253 27
-0.134100 16.169500 -9.174700 0.732600 0.207100 254 254 254
-1.239800 14.644800 -6.465300 0.774100 0.204900 254 254 254
-1.716700 14.450400 -2.459200 0.808600 0.236100 254 254 254
-5.308800 13.910900 -3.738700 0.855000 0.218100 0 253 27
-6.069200 14.643000 -3.762300 0.859400 0.227800 0 253 27
-1.716700 14.450400 -2.459200 0.808600 0.236100 0 253 27
-1.766900 13.754900 -2.918700 0.809900 0.215800 0 253 27
-4.620900 14.945700 -8.516100 0.914400 0.215300 0 247 31
-5.117200 15.490400 -9.679700 0.917300 0.220800 2 205 68
-6.069200 14.643000 -3.762300 0.859400 0.227800 0 253 27
-5.308800 13.910900 -3.738700 0.855000 0.218100 0 253 27
-1.957400 20.620800 -1.211500 0.804700 0.286100 254 254 254
-2.189200 21.987900 -1.483700 0.804500 0.301600 254 254 254
-0.835600 22.853901 -8.210700 0.728900 0.301600 254 254 254
-0.899900 21.410400 -8.349400 0.726500 0.282100 254 254 254
-7.174300 32.815300 -5.167300 0.893300 0.414200 17 7 244
-4.970000 33.082802 -8.871900 0.938900 0.409500 18 0 252
-5.283200 35.952900 -7.814600 0.933900 0.441300 18 1 249
-6.542300 35.480598 -4.902800 0.897200 0.442800 15 32 221
-5.598500 31.822901 -1.404300 0.847900 0.413200 0 240 37
-7.174300 32.815300 -5.167300 0.893300 0.414200 17 7 244
-6.542300 35.480598 -4.902800 0.897200 0.442800 15 32 221
-4.685700 36.664101 -1.616400 0.239300 0.661600 0 250 28
-3.798500 31.552500 -0.388900 0.257800 0.582200 0 253 27
-5.598500 31.822901 -1.404300 0.231700 0.582200 0 240 37
-2.225300 60.301201 -1.334400 0.633200 0.187400 254 254 254
-2.484800 60.667999 -2.078300 0.658100 0.193000 254 254 254
-2.209500 61.230499 -1.515000 0.636800 0.228100 254 254 254
-8.927200 49.128502 -4.128200 0.409800 0.916400 254 68 73
-9.508400 52.403099 -3.672700 0.469900 0.916400 254 68 73
-8.184300 53.108700 -3.320400 0.469900 0.942000 254 68 73
-7.813100 49.342701 -3.886900 0.407700 0.942000 254 68 73
-8.184300 53.108700 -3.320400 0.469900 0.942000 0 253 27
-9.508400 52.403099 -3.672700 0.469900 0.916400 0 253 27
-9.827700 52.989700 -7.188500 0.526400 0.916400 0 253 27
-8.747800 53.770199 -7.353300 0.528600 0.942000 0 253 27
-8.747800 53.770199 -7.353300 0.528600 0.942000 0 253 27
-6.775800 50.206501 -7.534500 0.590800 0.942000 0 253 27
-7.252500 54.524502 -7.615000 0.533200 0.977800 0 254 27
-8.927200 49.128502 -4.128200 0.409800 0.916400 0 253 27
-14.977100 45.689201 -4.821000 0.400900 0.803100 18 0 253
-15.636800 49.715099 -4.015700 0.469900 0.803100 29 188 60
-9.508400 52.403099 -3.672700 0.469900 0.916400 0 253 27
-1.435700 55.057400 -2.884500 0.286000 0.931400 0 253 27
-3.773800 51.093601 -1.034300 0.256800 0.864400 0 253 27
-6.624100 53.529800 -2.653700 0.210400 0.900400 0 253 27
-7.252500 54.524502 -7.615000 0.180600 0.964800 0 253 27
-2.321200 55.471001 -5.570800 0.259700 0.968000 0 253 27
-1.435700 55.057400 -2.884500 0.286000 0.931400 0 253 27
-7.252500 54.524502 -7.615000 0.180600 0.964800 0 253 27
-2.209500 61.230499 -1.515000 0.636800 0.228100 254 254 254
-2.484800 60.667999 -2.078300 0.658100 0.193000 254 254 254
-2.505800 61.413601 -3.333900 0.704900 0.212700 254 254 254
-2.484800 60.667999 -2.078300 0.658100 0.193000 254 254 254
-2.361600 58.652599 -3.405400 0.691600 0.111600 254 254 254
-2.505800 61.413601 -3.333900 0.704900 0.212700 254 254 254
-2.209500 61.230499 -1.515000 0.636800 0.228100 254 68 73
-1.792100 61.563202 -0.648200 0.603400 0.250800 254 68 73
-1.340700 61.343498 -1.024900 0.599900 0.231700 254 68 73
-3.061600 3.537800 -3.461700 0.290200 0.071700 18 0 253
-1.553600 3.059500 -4.173500 0.275500 0.071900 18 0 253
-1.568700 1.981700 -0.627100 0.274000 0.039600 19 0 253
-3.735600 1.816900 0.228400 0.290200 0.030700 19 0 253
-0.626000 0.031700 -8.336200 0.238500 0.103000 0 254 27
-1.825200 -0.024100 0.601200 0.266200 0.023600 254 254 254
-1.568700 1.981700 -0.627100 0.274000 0.039600 254 254 254
-1.553600 3.059500 -4.173500 0.275500 0.071900 186 254 192
-1.825200 -0.024100 0.601200 0.783900 0.050100 0 254 27
-0.626000 0.031700 -8.336200 0.777900 0.139800 253 254 253
-1.712600 0.024900 -9.195700 0.765100 0.147100 254 254 254
-3.769300 -0.009000 1.132900 0.765800 0.040900 0 254 27
-1.712600 0.024900 -9.195700 0.925400 0.031900 254 68 73
-0.626000 0.031700 -8.336200 0.938600 0.031200 254 68 73
-1.239800 14.644800 -6.465300 0.974400 0.175600 254 68 73
-1.456400 14.610600 -8.695100 0.943400 0.175600 254 68 73
-1.568700 1.981700 -0.627100 0.274000 0.039600 19 0 253
-1.825200 -0.024100 0.601200 0.266200 0.023600 19 0 253
-3.769300 -0.009000 1.132900 0.289700 0.012400 19 0 253
-3.735600 1.816900 0.228400 0.290200 0.030700 19 0 253
-4.089400 2.633000 -5.031300 0.310400 0.073900 18 0 253
-5.390300 1.568200 -1.670300 0.308400 0.040400 18 0 253
-5.176800 -0.025000 -0.598300 0.313500 0.023800 18 0 253
-3.252600 0.001600 -8.591000 0.345300 0.097200 19 0 253
-3.769300 -0.009000 1.132900 0.289700 0.012400 18 0 253
-5.176800 -0.025000 -0.598300 0.313500 0.023800 18 0 253
-5.390300 1.568200 -1.670300 0.308400 0.040400 18 0 253
-3.735600 1.816900 0.228400 0.290200 0.030700 18 0 253
-5.390300 1.568200 -1.670300 0.308400 0.040400 18 0 253
-4.089400 2.633000 -5.031300 0.310400 0.073900 18 0 253
-3.061600 3.537800 -3.461700 0.290200 0.071700 18 0 253
-3.735600 1.816900 0.228400 0.290200 0.030700 18 0 253
-3.061600 3.537800 -3.461700 0.856300 0.067800 18 0 253
-4.089400 2.633000 -5.031300 0.873900 0.060000 18 0 253
-5.308800 13.910900 -3.738700 0.859000 0.175600 0 253 27
-1.766900 13.754900 -2.918700 0.824200 0.175600 0 253 27
-5.117200 15.490400 -9.679700 0.917300 0.220800 0 253 27
-4.620900 14.945700 -8.516100 0.914400 0.215300 0 253 27
-1.456400 14.610600 -8.695100 0.949700 0.207500 0 253 27
-1.456400 14.610600 -8.695100 0.746600 0.183800 254 254 254
-1.239800 14.644800 -6.465300 0.774100 0.204900 254 254 254
-0.134100 16.169500 -9.174700 0.732600 0.207100 254 254 254
-5.426000 21.341299 -8.132600 0.914200 0.282100 15 21 230
-5.317800 22.936800 -8.016200 0.916400 0.301600 18 0 252
-6.824000 22.193899 -3.251500 0.860400 0.301600 3 179 89
-6.827700 20.858999 -3.044800 0.858900 0.286100 0 231 44
-0.845100 29.891001 -9.498900 0.978500 0.369500 0 253 27
-5.595300 29.761600 -8.492500 0.927500 0.375900 0 253 27
-5.317800 22.936800 -8.016200 0.916400 0.301600 0 253 27
-0.835600 22.853901 -8.210700 0.964300 0.301600 0 253 27
-1.957400 20.620800 -1.211500 0.804700 0.286100 254 68 73
-6.827700 20.858999 -3.044800 0.858900 0.286100 232 61 86
-6.824000 22.193899 -3.251500 0.860400 0.301600 185 47 122
-2.189200 21.987900 -1.483700 0.804500 0.301600 254 68 73
-0.605400 59.453602 0.006800 0.558900 0.156900 254 68 73
-0.226300 59.631802 0.717000 0.537800 0.167300 254 68 73
-0.000000 59.375900 0.272700 0.533800 0.153800 254 68 73
-21.936399 43.055199 -3.733600 0.412700 0.674700 19 0 253
-23.265499 44.290199 -3.614200 0.431800 0.655600 19 0 253
-23.323000 46.228001 -3.425200 0.469900 0.655600 19 0 251
-22.348700 46.932201 -2.822400 0.469900 0.674700 20 0 250
-22.105101 44.119598 -7.074000 0.583100 0.674700 0 253 27
-23.337700 47.268200 -6.945000 0.530800 0.674700 0 253 27
-23.881300 46.267799 -5.995500 0.521800 0.655600 0 253 27
-23.273100 44.479099 -6.170500 0.556600 0.655600 0 253 27
-22.348700 46.932201 -2.822400 0.469900 0.674700 18 0 249
-23.323000 46.228001 -3.425200 0.469900 0.655600 18 0 251
-23.881300 46.267799 -5.995500 0.521800 0.655600 12 63 193
-23.337700 47.268200 -6.945000 0.530800 0.674700 2 175 92
-21.936399 43.055199 -3.733600 0.412700 0.674700 18 0 253
-22.105101 44.119598 -7.074000 0.362600 0.674700 18 0 253
-23.273100 44.479099 -6.170500 0.386800 0.655600 18 0 253
-23.265499 44.290199 -3.614200 0.431800 0.655600 18 0 253
-23.323000 46.228001 -3.425200 0.469900 0.655600 19 0 251
-23.265499 44.290199 -3.614200 0.431800 0.655600 19 0 253
-24.446100 44.099098 -3.039500 0.444100 0.624200 19 0 253
-24.935400 45.742901 -3.288800 0.469900 0.624200 20 0 251
-23.273100 44.479099 -6.170500 0.556600 0.655600 0 253 27
-23.881300 46.267799 -5.995500 0.521800 0.655600 0 253 27
-25.982700 45.641201 -5.974700 0.517100 0.624200 0 253 27
-25.718901 44.407902 -5.989100 0.533000 0.624200 0 253 27
-23.881300 46.267799 -5.995500 0.521800 0.655600 64 24 202
-23.323000 46.228001 -3.425200 0.469900 0.655600 19 0 251
-24.935400 45.742901 -3.288800 0.469900 0.624200 20 0 251
-25.982700 45.641201 -5.974700 0.517100 0.624200 65 29 197
-23.265499 44.290199 -3.614200 0.431800 0.655600 0 251 27
-23.273100 44.479099 -6.170500 0.386800 0.655600 0 253 27
-25.718901 44.407902 -5.989100 0.398000 0.624200 0 253 27
-24.446100 44.099098 -3.039500 0.444100 0.624200 53 205 30
-3.798500 31.552500 -0.388900 0.257800 0.582200 57 208 35
-4.685700 36.664101 -1.616400 0.239300 0.661600 0 250 28
-0.000000 37.009800 0.550700 0.310700 0.661600 172 124 55
-0.000000 31.552500 0.128500 0.310700 0.582200 203 101 62
-27.058001 43.733101 -1.471100 0.783900 0.527900 19 0 253
-26.775499 43.007000 -1.492900 0.799700 0.523000 19 0 253
-27.637899 42.321201 -1.984400 0.780200 0.502700 19 0 253
-28.100901 44.177299 -2.470000 0.756100 0.537200 19 0 253
-27.102699 45.320202 -5.735100 0.706300 0.587600 0 253 27
-26.246300 42.901402 -5.383600 0.663100 0.553800 0 252 27
-25.718901 44.407902 -5.989100 0.674700 0.592000 0 253 27
-25.982700 45.641201 -5.974700 0.701400 0.609900 0 253 27
-24.935400 45.742901 -3.288800 0.774000 0.616500 20 0 251
-26.753901 45.398300 -2.858600 0.766000 0.574200 21 0 250
-27.102699 45.320202 -5.735100 0.706300 0.587600 69 22 201
-25.982700 45.641201 -5.974700 0.701400 0.609900 65 29 197
-24.446100 44.099098 -3.039500 0.815000 0.599300 254 254 254
-25.718901 44.407902 -5.989100 0.885900 0.607200 254 254 254
-26.246300 42.901402 -5.383600 0.880100 0.569900 254 254 254
-28.380600 42.330502 -3.056600 0.741600 0.498200 19 0 253
-28.697901 44.238201 -3.477500 0.737900 0.538900 20 0 252
-28.100901 44.177299 -2.470000 0.756100 0.537200 19 0 253
-27.637899 42.321201 -1.984400 0.780200 0.502700 19 0 253
-28.380600 42.330502 -3.056600 0.741600 0.498200 19 0 253
-28.292801 42.543098 -4.446800 0.704200 0.514300 19 0 253
-28.543800 44.178001 -4.651400 0.718600 0.545700 20 3 248
-28.697901 44.238201 -3.477500 0.737900 0.538900 20 0 252
-26.753901 45.398300 -2.858600 0.766000 0.574200 20 0 250
-28.100901 44.177299 -2.470000 0.756100 0.537200 19 0 253
-28.697901 44.238201 -3.477500 0.737900 0.538900 20 0 252
-24.935400 45.742901 -3.288800 0.774000 0.616500 20 0 251
-24.446100 44.099098 -3.039500 0.815000 0.599300 19 0 253
-25.587200 43.557701 -2.038700 0.806300 0.556900 19 0 253
-26.117701 44.487900 -2.198700 0.788200 0.565100 19 0 253
-24.446100 44.099098 -3.039500 0.815000 0.599300 254 68 73
-26.246300 42.901402 -5.383600 0.880100 0.569900 254 68 73
-25.491899 42.827301 -2.370100 0.813300 0.554500 254 68 73
-25.587200 43.557701 -2.038700 0.806300 0.556900 254 68 73
-26.753901 45.398300 -2.858600 0.766000 0.574200 21 0 250
-24.935400 45.742901 -3.288800 0.774000 0.616500 20 0 251
-26.117701 44.487900 -2.198700 0.788200 0.565100 19 0 253
-0.000000 31.552500 0.128500 0.310700 0.582200 0 253 27
-0.000000 24.132099 -0.356700 0.310700 0.472800 0 253 27
-3.463700 23.872801 -0.356700 0.261200 0.472800 0 253 27
-3.798500 31.552500 -0.388900 0.257800 0.582200 0 253 27
-2.225300 60.301201 -1.334400 0.633200 0.187400 0 253 27
-0.793500 58.611801 -0.022400 0.561500 0.129800 0 253 27
-2.043500 58.694401 -1.722000 0.633000 0.119000 0 253 27
-0.793500 58.611801 -0.022400 0.561500 0.129800 0 253 27
-0.860300 57.339199 -0.345300 0.560600 0.087800 0 253 27
-2.071800 58.080299 -1.837600 0.632000 0.089900 0 253 27
-2.043500 58.694401 -1.722000 0.633000 0.119000 0 253 27
-2.071800 58.080299 -1.837600 0.632000 0.089900 254 68 73
-0.860300 57.339199 -0.345300 0.560600 0.087800 254 68 73
-0.509500 56.862801 -2.081200 0.570500 0.026600 254 68 73
-1.480400 57.287800 -3.167400 0.631900 0.022800 254 68 73
-0.179900 61.274700 0.058500 0.542100 0.223900 0 254 27
-0.785400 61.539799 -0.048800 0.562200 0.247600 0 254 27
-0.000000 61.912998 -0.048000 0.533800 0.254400 0 254 27
-15.884600 46.520500 -7.855800 0.590800 0.782100 0 253 27
-14.885000 46.974701 -7.946000 0.590800 0.803100 0 253 27
-16.136200 50.023998 -7.546200 0.529500 0.803100 0 253 27
-17.208200 49.477699 -7.512200 0.531700 0.782100 0 253 27
-15.636800 49.715099 -4.015700 0.469900 0.803100 1 215 59
-16.810101 49.139900 -3.928800 0.469900 0.782100 5 158 110
-17.208200 49.477699 -7.512200 0.531700 0.782100 0 227 47
-16.136200 50.023998 -7.546200 0.529500 0.803100 0 244 34
-16.192200 44.960400 -4.877100 0.398600 0.782100 254 252 252
-14.977100 45.689201 -4.821000 0.400900 0.803100 254 202 204
-14.885000 46.974701 -7.946000 0.347800 0.803100 254 123 127
-15.884600 46.520500 -7.855800 0.347800 0.782100 254 212 213
-16.810101 49.139900 -3.928800 0.469900 0.782100 35 133 112
-15.636800 49.715099 -4.015700 0.469900 0.803100 25 190 59
-14.977100 45.689201 -4.821000 0.400900 0.803100 18 0 253
-16.192200 44.960400 -4.877100 0.398600 0.782100 18 0 253
-13.779500 47.417198 -7.715300 0.590800 0.828100 12 79 181
-8.756500 49.321098 -7.632900 0.590800 0.916400 0 250 29
-9.827700 52.989700 -7.188500 0.526400 0.916400 0 253 27
-14.989100 50.565300 -7.297200 0.526200 0.828100 0 249 29
-15.636800 49.715099 -4.015700 0.469900 0.803100 1 215 59
-16.136200 50.023998 -7.546200 0.529500 0.803100 0 244 34
-14.989100 50.565300 -7.297200 0.526200 0.828100 0 249 29
-13.779500 47.417198 -7.715300 0.347800 0.823100 254 70 75
-14.885000 46.974701 -7.946000 0.347800 0.803100 254 123 127
-14.977100 45.689201 -4.821000 0.400900 0.803100 254 202 204
-1.239800 14.644800 -6.465300 0.774100 0.204900 254 254 254
-1.766900 13.754900 -2.918700 0.809900 0.215800 254 254 254
-1.716700 14.450400 -2.459200 0.808600 0.236100 254 254 254
-26.117701 44.487900 -2.198700 0.788200 0.565100 19 0 253
-25.587200 43.557701 -2.038700 0.806300 0.556900 19 0 253
-26.775499 43.007000 -1.492900 0.799700 0.523000 19 0 253
-27.058001 43.733101 -1.471100 0.783900 0.527900 19 0 253
-25.587200 43.557701 -2.038700 0.806300 0.556900 19 0 253
-25.491899 42.827301 -2.370100 0.813300 0.554500 19 0 253
-27.637899 42.321201 -1.984400 0.816200 0.507300 19 0 253
-26.775499 43.007000 -1.492900 0.799700 0.523000 19 0 253
-26.117701 44.487900 -2.198700 0.788200 0.565100 19 0 253
-27.058001 43.733101 -1.471100 0.783900 0.527900 19 0 253
-28.100901 44.177299 -2.470000 0.756100 0.537200 19 0 253
-8.184300 53.108700 -3.320400 0.469900 0.942000 254 68 73
-6.624100 53.529800 -2.653700 0.469900 0.977800 254 68 73
-7.813100 49.342701 -3.886900 0.407700 0.942000 254 68 73
-8.747800 53.770199 -7.353300 0.528600 0.942000 0 253 27
-9.827700 52.989700 -7.188500 0.526400 0.916400 0 253 27
-8.756500 49.321098 -7.632900 0.590800 0.916400 0 253 27
-6.775800 50.206501 -7.534500 0.590800 0.942000 0 253 27
-28.543800 44.178001 -4.651400 0.718600 0.545700 20 3 248
-27.102699 45.320202 -5.735100 0.706300 0.587600 12 64 193
-26.753901 45.398300 -2.858600 0.766000 0.574200 20 0 250
-28.697901 44.238201 -3.477500 0.737900 0.538900 20 0 252
-26.246300 42.901402 -5.383600 0.880100 0.569900 0 252 27
-28.292801 42.543098 -4.446800 0.879400 0.523100 87 180 37
-28.380600 42.330502 -3.056600 0.853500 0.507000 242 73 67
-28.100901 44.177299 -2.470000 0.756100 0.537200 19 0 253
-26.753901 45.398300 -2.858600 0.766000 0.574200 21 0 250
-26.117701 44.487900 -2.198700 0.788200 0.565100 19 0 253
-1.712600 0.024900 -9.195700 0.765100 0.147100 19 0 253
-3.252600 0.001600 -8.591000 0.751000 0.138000 19 0 253
-5.176800 -0.025000 -0.598300 0.748300 0.055100 18 0 253
-3.769300 -0.009000 1.132900 0.765800 0.040900 18 0 253
-0.000000 61.912998 -0.048000 0.533800 0.254400 0 254 27
-0.785400 61.539799 -0.048800 0.562200 0.247600 0 254 27
-0.000000 62.775902 -0.355700 0.533900 0.286800 0 254 27
-0.340300 31.400700 -9.928000 0.694900 0.384200 254 254 254
-0.845100 29.891001 -9.498900 0.702700 0.368200 254 254 254
-0.425600 30.069099 -1.507500 0.785600 0.393300 254 254 254
-0.509500 56.862801 -2.081200 0.308000 0.953500 254 127 129
-0.509500 56.862801 -2.081200 0.570500 0.026600 0 253 27
-0.860300 57.339199 -0.345300 0.560600 0.087800 0 253 27
-0.000000 57.320400 0.190300 0.533800 0.095300 0 253 27
-0.000000 56.862801 -2.081200 0.533800 0.019000 0 253 27
-5.598500 31.822901 -1.404300 0.847900 0.413200 0 240 37
-6.824000 22.193899 -3.251500 0.860400 0.301600 3 179 89
-7.453900 29.910801 -4.780100 0.884800 0.385400 18 0 251
-6.824000 22.193899 -3.251500 0.860400 0.301600 3 179 89
-5.317800 22.936800 -8.016200 0.916400 0.301600 18 0 252
-5.595300 29.761600 -8.492500 0.927500 0.375900 18 0 253
-7.453900 29.910801 -4.780100 0.884800 0.385400 18 0 251
-3.798500 31.552500 -0.388900 0.824000 0.411400 0 253 27
-2.189200 21.987900 -1.483700 0.804500 0.301600 0 253 27
-6.824000 22.193899 -3.251500 0.860400 0.301600 3 179 89
-5.598500 31.822901 -1.404300 0.847900 0.413200 0 240 37
-0.340300 31.400700 -9.928000 0.986800 0.385200 0 253 27
-4.970000 33.082802 -8.871900 0.938900 0.409500 0 253 27
-5.595300 29.761600 -8.492500 0.927500 0.375900 0 253 27
-0.845100 29.891001 -9.498900 0.978500 0.369500 0 253 27
-0.835600 22.853901 -8.210700 0.728900 0.301600 254 254 254
-2.189200 21.987900 -1.483700 0.804500 0.301600 254 254 254
-0.425600 30.069099 -1.507500 0.785600 0.393300 254 254 254
-0.845100 29.891001 -9.498900 0.702700 0.368200 254 254 254
-2.162800 35.743500 -9.599900 0.972400 0.433600 0 253 27
-5.283200 35.952900 -7.814600 0.933900 0.441300 0 253 27
-4.970000 33.082802 -8.871900 0.938900 0.409500 0 253 27
-0.340300 31.400700 -9.928000 0.986800 0.385200 0 253 27
-5.283200 35.952900 -7.814600 0.142200 0.631800 18 1 249
-5.919200 37.619099 -4.570300 0.183400 0.661600 9 98 162
-6.542300 35.480598 -4.902800 0.182500 0.631800 15 32 221
-5.919200 37.619099 -4.570300 0.183400 0.661600 9 98 162
-4.685700 36.664101 -1.616400 0.239300 0.661600 0 250 28
-5.598500 31.822901 -1.404300 0.231700 0.582200 0 240 37
-6.542300 35.480598 -4.902800 0.182500 0.631800 15 32 221
-0.474100 61.294899 -0.607800 0.567800 0.227200 254 68 73
-0.596000 60.268700 -0.255900 0.565100 0.185300 254 68 73
-2.225300 60.301201 -1.334400 0.633200 0.187400 254 68 73
-1.340700 61.343498 -1.024900 0.599900 0.231700 254 68 73
-1.340700 61.343498 -1.024900 0.599900 0.231700 0 253 27
-1.792100 61.563202 -0.648200 0.603400 0.250800 0 253 27
-0.785400 61.539799 -0.048800 0.562200 0.247600 0 253 27
-0.474100 61.294899 -0.607800 0.567800 0.227200 0 253 27
-0.000000 45.235802 -8.516300 0.061600 0.762900 0 253 27
-5.495700 46.043098 -6.732400 0.140100 0.788400 0 252 27
-2.827600 38.171799 -8.088300 0.114700 0.661600 8 119 142
-0.000000 38.221600 -8.073300 0.073400 0.661600 0 240 38
-0.425600 30.069099 -1.507500 0.785600 0.393300 254 254 254
-2.189200 21.987900 -1.483700 0.804500 0.301600 254 254 254
-3.798500 31.552500 -0.388900 0.824000 0.411400 254 254 254
-0.000000 31.547001 -9.939100 0.694200 0.388200 254 68 73
-0.340300 31.400700 -9.928000 0.694900 0.384200 254 68 73
-0.425600 30.069099 -1.507500 0.785600 0.393300 254 68 73
-0.000000 30.215401 -1.522000 0.785000 0.398100 254 68 73
-21.061199 44.183601 -7.611200 0.590800 0.698800 18 0 253
-15.884600 46.520500 -7.855800 0.590800 0.782100 17 5 246
-17.208200 49.477699 -7.512200 0.531700 0.782100 0 227 47
-22.585199 48.327702 -7.594400 0.533600 0.698800 0 239 38
-22.348700 46.932201 -2.822400 0.469900 0.674700 18 0 249
-23.337700 47.268200 -6.945000 0.530800 0.674700 2 175 92
-22.585199 48.327702 -7.594400 0.533600 0.698800 0 239 38
-21.061199 44.183601 -7.611200 0.347800 0.693400 0 253 27
-22.105101 44.119598 -7.074000 0.362600 0.674700 0 253 27
-21.936399 43.055199 -3.733600 0.412700 0.674700 0 253 27
-0.340300 31.400700 -9.928000 0.986800 0.385200 0 253 27
-0.000000 31.547001 -9.939100 0.990600 0.386300 0 253 27
-0.000000 35.795200 -9.599900 0.995500 0.431600 0 253 27
-2.162800 35.743500 -9.599900 0.972400 0.433600 0 253 27
-5.919200 37.619099 -4.570300 0.183400 0.661600 9 98 162
-5.283200 35.952900 -7.814600 0.142200 0.631800 18 1 249
-2.162800 35.743500 -9.599900 0.096700 0.631800 16 28 225
-2.827600 38.171799 -8.088300 0.114700 0.661600 8 119 142
-28.543800 44.178001 -4.651400 0.718600 0.545700 77 187 34
-28.292801 42.543098 -4.446800 0.704200 0.514300 87 180 37
-26.246300 42.901402 -5.383600 0.663100 0.553800 0 252 27
-27.102699 45.320202 -5.735100 0.706300 0.587600 0 253 27
-25.491899 42.827301 -2.370100 0.813300 0.554500 190 254 195
-28.380600 42.330502 -3.056600 0.853500 0.507000 242 254 242
-27.637899 42.321201 -1.984400 0.816200 0.507300 254 254 254
-26.246300 42.901402 -5.383600 0.880100 0.569900 0 254 27
-28.380600 42.330502 -3.056600 0.853500 0.507000 242 254 242
-25.491899 42.827301 -2.370100 0.813300 0.554500 190 254 195
-2.162800 35.743500 -9.599900 0.096700 0.631800 0 253 27
-0.000000 35.795200 -9.599900 0.068300 0.631800 0 253 27
-0.000000 38.221600 -8.073300 0.073400 0.661600 0 253 27
-2.827600 38.171799 -8.088300 0.114700 0.661600 0 253 27
-0.706900 62.538601 -0.289700 0.409100 0.538600 0 253 27
-1.838200 62.255798 -0.802600 0.430000 0.507000 0 253 27
-1.901400 63.532299 -1.247600 0.451500 0.531400 0 253 27
-0.672300 63.485901 -0.421800 0.426300 0.552700 0 253 27
-1.901400 63.532299 -1.247600 0.451500 0.531400 0 253 27
-1.838200 62.255798 -0.802600 0.430000 0.507000 0 253 27
-3.194200 60.597198 -3.460400 0.492000 0.451400 0 253 27
-2.758700 63.532299 -3.348800 0.499700 0.518700 0 253 27
-2.758700 63.532299 -3.348800 0.499700 0.518700 0 253 27
-3.194200 60.597198 -3.460400 0.492000 0.451400 0 253 27
-3.446000 60.597198 -5.980300 0.552100 0.445900 0 253 27
-3.010600 63.532299 -5.868700 0.554200 0.511800 0 253 27
-3.194200 60.597198 -3.460400 0.492000 0.451400 0 253 27
-1.838200 62.255798 -0.802600 0.430000 0.507000 0 253 27
-2.336800 60.597198 -1.072500 0.434100 0.460700 0 253 27
-2.130500 53.628601 -1.359200 0.416700 0.297200 0 253 27
-4.088800 54.879799 -3.460400 0.486800 0.316000 0 253 27
-3.194200 60.597198 -3.460400 0.492000 0.451400 0 253 27
-2.336800 60.597198 -1.072500 0.434100 0.460700 0 253 27
-4.088800 54.879799 -3.460400 0.486800 0.316000 0 253 27
-4.340700 55.234299 -6.210400 0.542400 0.331500 0 254 27
-3.446000 60.597198 -5.980300 0.552100 0.445900 0 253 27
-3.194200 60.597198 -3.460400 0.492000 0.451400 0 253 27
-3.010600 63.532299 -5.868700 0.554200 0.511800 0 253 27
-3.446000 60.597198 -5.980300 0.552100 0.445900 0 253 27
-2.517200 60.597198 -7.879200 0.601000 0.450200 0 253 27
-1.932100 63.532299 -7.311200 0.591100 0.519300 0 253 27
-3.446000 60.597198 -5.980300 0.552100 0.445900 0 253 27
-4.340700 55.234299 -6.210400 0.542400 0.331500 0 254 27
-2.990300 54.496300 -8.246000 0.608400 0.297700 0 253 27
-2.517200 60.597198 -7.879200 0.601000 0.450200 0 253 27
-1.932100 63.532299 -7.311200 0.591100 0.519300 0 253 27
-2.517200 60.597198 -7.879200 0.601000 0.450200 0 253 27
-0.000000 60.597198 -8.812800 0.661800 0.464200 0 253 27
-0.000000 63.532299 -8.174500 0.634800 0.537700 0 253 27
-2.990300 54.496300 -8.246000 0.608400 0.297700 0 253 27
-0.000000 54.050800 -8.782700 0.682300 0.308600 0 253 27
-0.000000 60.597198 -8.812800 0.661800 0.464200 0 253 27
-2.517200 60.597198 -7.879200 0.601000 0.450200 0 253 27
-0.672300 63.485901 -0.421800 0.426300 0.552700 0 253 27
-1.901400 63.532299 -1.247600 0.451500 0.531400 0 253 27
-1.171400 65.057899 -2.205500 0.482000 0.564300 0 253 27
-1.901400 63.532299 -1.247600 0.451500 0.531400 0 253 27
-2.758700 63.532299 -3.348800 0.499700 0.518700 0 253 27
-1.795600 65.057899 -4.806100 0.538600 0.556700 0 253 27
-1.171400 65.057899 -2.205500 0.482000 0.564300 0 253 27
-2.758700 63.532299 -3.348800 0.499700 0.518700 0 253 27
-3.010600 63.532299 -5.868700 0.554200 0.511800 0 253 27
-1.795600 65.057899 -4.806100 0.538600 0.556700 0 253 27
-3.010600 63.532299 -5.868700 0.554200 0.511800 0 253 27
-1.932100 63.532299 -7.311200 0.591100 0.519300 0 254 27
-0.000000 65.057899 -6.421400 0.588900 0.582100 0 253 27
-1.795600 65.057899 -4.806100 0.538600 0.556700 0 253 27
-1.932100 63.532299 -7.311200 0.591100 0.519300 0 254 27
-0.000000 63.532299 -8.174500 0.634800 0.537700 0 253 27
-0.000000 65.057899 -6.421400 0.588900 0.582100 0 253 27
-1.171400 65.057899 -2.205500 0.482000 0.564300 0 253 27
-1.795600 65.057899 -4.806100 0.538600 0.556700 0 253 27
-0.000000 65.560898 -4.058400 0.523700 0.603300 0 253 27
-1.795600 65.057899 -4.806100 0.538600 0.556700 0 254 27
-0.000000 65.057899 -6.421400 0.588900 0.582100 0 254 27
-0.000000 65.560898 -4.058400 0.523700 0.603300 0 254 27
-0.672300 63.485901 -0.421800 0.426300 0.552700 0 254 27
-1.171400 65.057899 -2.205500 0.482000 0.564300 0 254 27
--1.171400 65.057899 -2.205500 0.466700 0.607600 0 254 27
--0.672300 63.485901 -0.421800 0.416100 0.581700 0 254 27
-0.706900 62.538601 -0.289700 0.409100 0.538600 0 254 27
-0.672300 63.485901 -0.421800 0.426300 0.552700 0 254 27
-0.000000 62.538601 -0.140300 0.398200 0.559100 0 254 27
-0.672300 63.485901 -0.421800 0.426300 0.552700 0 254 27
--0.672300 63.485901 -0.421800 0.416100 0.581700 0 254 27
-0.000000 62.538601 -0.140300 0.398200 0.559100 0 254 27
-2.130500 53.628601 -1.359200 0.416700 0.297200 0 253 27
-2.336800 60.597198 -1.072500 0.434100 0.460700 0 253 27
-1.393700 60.597198 -3.164700 0.380300 0.463400 0 253 27
-1.187300 53.628601 -3.164700 0.369000 0.300200 0 253 27
--0.706900 62.538601 -0.289700 0.409100 0.538600 0 254 27
--0.672300 63.485901 -0.421800 0.426300 0.552800 0 254 27
--1.901400 63.532299 -1.247600 0.451500 0.531500 0 254 27
--1.838200 62.255798 -0.802600 0.430000 0.507100 0 254 27
--1.901400 63.532299 -1.247600 0.451500 0.531500 0 254 27
--2.758700 63.532299 -3.348800 0.499700 0.518800 0 254 27
--3.194200 60.597198 -3.460400 0.492000 0.451500 0 254 27
--1.838200 62.255798 -0.802600 0.430000 0.507100 0 254 27
--2.758700 63.532299 -3.348800 0.499700 0.518800 0 254 27
--3.010600 63.532299 -5.868700 0.554200 0.511900 0 254 27
--3.446000 60.597198 -5.980300 0.552100 0.445900 0 254 27
--3.194200 60.597198 -3.460400 0.492000 0.451500 0 254 27
--3.194200 60.597198 -3.460400 0.492000 0.451500 0 254 27
--2.336800 60.597198 -1.072500 0.434000 0.460800 0 254 27
--1.838200 62.255798 -0.802600 0.430000 0.507100 0 254 27
--2.130500 53.628601 -1.359200 0.416600 0.297300 0 253 27
--2.336800 60.597198 -1.072500 0.434000 0.460800 0 254 27
--3.194200 60.597198 -3.460400 0.492000 0.451500 0 254 27
--4.088800 54.879799 -3.460400 0.486700 0.316100 0 253 27
--4.088800 54.879799 -3.460400 0.486700 0.316100 0 253 27
--3.194200 60.597198 -3.460400 0.492000 0.451500 0 253 27
--3.446000 60.597198 -5.980300 0.552100 0.445900 0 253 27
--4.340700 55.234299 -6.210400 0.542400 0.331500 0 254 27
--3.010600 63.532299 -5.868700 0.554200 0.511900 0 254 27
--1.932100 63.532299 -7.311200 0.591100 0.519300 0 254 27
--2.517200 60.597198 -7.879200 0.601000 0.450300 0 254 27
--3.446000 60.597198 -5.980300 0.552100 0.445900 0 254 27
--3.446000 60.597198 -5.980300 0.552100 0.445900 0 254 27
--2.517200 60.597198 -7.879200 0.601000 0.450300 0 254 27
--2.990300 54.496300 -8.246000 0.608300 0.297700 0 254 27
--4.340700 55.234299 -6.210400 0.542400 0.331500 0 254 27
--1.932100 63.532299 -7.311200 0.591100 0.519300 0 254 27
-0.000000 63.532299 -8.174500 0.634800 0.537700 0 254 27
-0.000000 60.597198 -8.812800 0.661800 0.464200 0 254 27
--2.517200 60.597198 -7.879200 0.601000 0.450300 0 254 27
--2.990300 54.496300 -8.246000 0.608300 0.297700 0 254 27
--2.517200 60.597198 -7.879200 0.601000 0.450300 0 254 27
-0.000000 60.597198 -8.812800 0.661800 0.464200 0 254 27
-0.000000 54.050800 -8.782700 0.682300 0.308600 0 254 27
--0.672300 63.485901 -0.421800 0.426300 0.552800 0 254 27
--1.171400 65.057899 -2.205500 0.482000 0.564400 0 254 27
--1.901400 63.532299 -1.247600 0.451500 0.531500 0 254 27
--1.901400 63.532299 -1.247600 0.451500 0.531500 0 254 27
--1.171400 65.057899 -2.205500 0.482000 0.564400 0 254 27
--1.795600 65.057899 -4.806100 0.538600 0.556700 0 254 27
--2.758700 63.532299 -3.348800 0.499700 0.518800 0 254 27
--2.758700 63.532299 -3.348800 0.499700 0.518800 0 254 27
--1.795600 65.057899 -4.806100 0.538600 0.556700 0 254 27
--3.010600 63.532299 -5.868700 0.554200 0.511900 0 254 27
--3.010600 63.532299 -5.868700 0.554200 0.511900 0 254 27
--1.795600 65.057899 -4.806100 0.538600 0.556700 0 254 27
-0.000000 65.057899 -6.421400 0.589000 0.582100 0 254 27
--1.932100 63.532299 -7.311200 0.591100 0.519300 0 254 27
--1.932100 63.532299 -7.311200 0.591100 0.519300 0 254 27
-0.000000 65.057899 -6.421400 0.589000 0.582100 0 254 27
-0.000000 63.532299 -8.174500 0.634800 0.537700 0 254 27
--1.171400 65.057899 -2.205500 0.482000 0.564400 0 254 27
-0.000000 65.560898 -4.058400 0.523700 0.603400 0 254 27
--1.795600 65.057899 -4.806100 0.538600 0.556700 0 254 27
--1.795600 65.057899 -4.806100 0.538600 0.556700 0 254 27
-0.000000 65.560898 -4.058400 0.523700 0.603400 0 254 27
-0.000000 65.057899 -6.421400 0.589000 0.582100 0 254 27
--1.171400 65.057899 -2.205500 0.466700 0.607600 0 254 27
-1.171400 65.057899 -2.205500 0.482000 0.564300 0 254 27
-0.000000 65.560898 -4.058400 0.523700 0.603300 0 254 27
--0.706900 62.538601 -0.289700 0.409100 0.538600 0 254 27
-0.000000 62.538601 -0.140300 0.398200 0.559200 0 254 27
--0.672300 63.485901 -0.421800 0.426300 0.552800 0 254 27
--2.130500 53.628601 -1.359200 0.416600 0.297300 164 133 56
--1.187300 53.628601 -3.164700 0.369000 0.300300 209 100 64
--1.393700 60.597198 -3.164700 0.380200 0.463500 254 254 254
--2.336800 60.597198 -1.072500 0.434000 0.460800 254 254 254
-8.704300 24.905701 -6.036500 0.967100 0.466200 0 253 27
-7.984800 25.127701 -6.177400 0.966400 0.464600 0 253 27
-7.649900 27.558001 -5.856100 0.993500 0.506600 0 253 27
-8.503900 27.435900 -5.670300 0.976600 0.507100 0 253 27
-6.463600 36.223400 -3.704900 0.962000 0.710700 9 100 160
-5.778000 35.994701 -1.773100 0.922200 0.717000 0 231 44
-7.451900 27.210300 -3.504400 0.930000 0.516400 18 2 248
-8.503900 27.435900 -5.670300 0.976600 0.507100 18 0 253
-5.115000 35.782600 -2.051700 0.916000 0.725700 0 241 37
-6.597900 27.332300 -3.690200 0.913000 0.515500 16 16 234
-7.451900 27.210300 -3.504400 0.930000 0.516400 18 2 248
-5.778000 35.994701 -1.773100 0.922200 0.717000 0 231 44
-5.743400 36.019600 -3.995900 0.971100 0.718900 0 253 27
-6.463600 36.223400 -3.704900 0.962000 0.710700 0 253 27
-8.503900 27.435900 -5.670300 0.976600 0.507100 0 253 27
-7.649900 27.558001 -5.856100 0.993500 0.506600 0 253 27
-7.451900 27.210300 -3.504400 0.930000 0.516400 21 0 248
-6.597900 27.332300 -3.690200 0.913000 0.515500 35 1 237
-7.984800 25.127701 -6.177400 0.966400 0.464600 19 0 253
-8.704300 24.905701 -6.036500 0.967100 0.466200 19 0 253
-7.451900 27.210300 -3.504400 0.930000 0.516400 18 2 248
-8.704300 24.905701 -6.036500 0.967100 0.466200 18 0 253
-8.503900 27.435900 -5.670300 0.976600 0.507100 18 0 253
-6.463600 36.223400 -3.704900 0.962000 0.710700 254 68 73
-5.743400 36.019600 -3.995900 0.971100 0.718900 254 68 73
-5.115000 35.782600 -2.051700 0.916000 0.725700 254 68 73
-5.778000 35.994701 -1.773100 0.922200 0.717000 254 68 73
-4.513000 55.007702 -5.909800 0.935300 0.759300 0 253 27
-4.291100 55.098900 -5.871800 0.932300 0.755300 0 253 27
-4.207800 55.799599 -6.651700 0.967500 0.768900 0 253 27
-4.871900 55.799599 -6.765400 0.957200 0.775300 0 253 27
-2.904000 62.455601 -5.700500 0.954300 0.968000 0 253 27
-2.764700 62.455601 -4.128400 0.909900 0.975800 0 253 27
-4.736600 55.799599 -5.153900 0.919700 0.781300 0 253 27
-4.871900 55.799599 -6.765400 0.957200 0.775300 0 253 27
-2.764700 62.455601 -4.128400 0.909900 0.975800 0 253 27
-4.072400 55.799599 -5.040200 0.904100 0.777700 0 253 27
-4.736600 55.799599 -5.153900 0.919700 0.781300 0 253 27
-2.904000 62.455601 -5.700500 0.954300 0.968000 0 253 27
-4.871900 55.799599 -6.765400 0.957200 0.775300 0 253 27
-4.207800 55.799599 -6.651700 0.967500 0.768900 0 253 27
-4.736600 55.799599 -5.153900 0.919700 0.781300 254 68 73
-4.072400 55.799599 -5.040200 0.904100 0.777700 254 68 73
-4.291100 55.098900 -5.871800 0.932300 0.755300 254 68 73
-4.513000 55.007702 -5.909800 0.935300 0.759300 254 68 73
-4.736600 55.799599 -5.153900 0.919700 0.781300 0 253 27
-4.513000 55.007702 -5.909800 0.935300 0.759300 0 253 27
-4.871900 55.799599 -6.765400 0.957200 0.775300 0 253 27
-4 0 1 2 3
-4 4 5 6 7
-3 8 9 10
-4 11 12 13 14
-4 15 16 17 18
-4 19 20 21 22
-4 23 24 25 26
-4 27 28 29 30
-4 31 32 33 34
-4 35 36 37 38
-4 39 40 41 42
-4 43 44 45 46
-3 47 48 49
-4 50 51 52 53
-4 54 55 56 57
-4 58 59 60 61
-4 62 63 64 65
-4 66 67 68 69
-4 70 71 72 73
-4 74 75 76 77
-3 78 79 80
-4 81 82 83 84
-3 85 86 87
-4 88 89 90 91
-3 92 93 94
-4 95 96 97 98
-4 99 100 101 102
-4 103 104 105 106
-4 107 108 109 110
-4 111 112 113 114
-4 115 116 117 118
-4 119 120 121 122
-4 123 124 125 126
-4 127 128 129 130
-4 131 132 133 134
-4 135 136 137 138
-3 139 140 141
-3 142 143 144
-4 145 146 147 148
-4 149 150 151 152
-4 153 154 155 156
-3 157 158 159
-3 160 161 162
-4 163 164 165 166
-4 167 168 169 170
-4 171 172 173 174
-3 175 176 177
-4 178 179 180 181
-4 182 183 184 185
-3 186 187 188
-3 189 190 191
-4 192 193 194 195
-4 196 197 198 199
-4 200 201 202 203
-4 204 205 206 207
-3 208 209 210
-3 211 212 213
-3 214 215 216
-4 217 218 219 220
-4 221 222 223 224
-3 225 226 227
-4 228 229 230 231
-4 232 233 234 235
-3 236 237 238
-3 239 240 241
-3 242 243 244
-3 245 246 247
-4 248 249 250 251
-4 252 253 254 255
-4 256 257 258 259
-4 260 261 262 263
-4 264 265 266 267
-4 268 269 270 271
-4 272 273 274 275
-4 276 277 278 279
-4 280 281 282 283
-3 284 285 286
-3 287 288 289
-4 290 291 292 293
-4 294 295 296 297
-4 298 299 300 301
-3 302 303 304
-4 305 306 307 308
-4 309 310 311 312
-4 313 314 315 316
-4 317 318 319 320
-4 321 322 323 324
-4 325 326 327 328
-4 329 330 331 332
-4 333 334 335 336
-4 337 338 339 340
-4 341 342 343 344
-4 345 346 347 348
-4 349 350 351 352
-3 353 354 355
-4 356 357 358 359
-4 360 361 362 363
-3 364 365 366
-4 367 368 369 370
-4 371 372 373 374
-3 375 376 377
-4 378 379 380 381
-3 382 383 384
-4 385 386 387 388
-4 389 390 391 392
-3 393 394 395
-4 396 397 398 399
-4 400 401 402 403
-4 404 405 406 407
-4 408 409 410 411
-4 412 413 414 415
-3 416 417 418
-3 419 420 421
-3 422 423 424
-4 425 426 427 428
-4 429 430 431 432
-3 433 434 435
-3 436 437 438
-4 439 440 441 442
-4 443 444 445 446
-3 447 448 449
-3 450 451 452
-4 453 454 455 456
-3 457 458 459
-3 460 461 462
-3 463 464 465
-4 466 467 468 469
-3 470 471 472
-4 473 474 475 476
-4 477 478 479 480
-4 481 482 483 484
-4 485 486 487 488
-4 489 490 491 492
-3 493 494 495
-4 496 497 498 499
-4 500 501 502 503
-4 504 505 506 507
-4 508 509 510 511
-3 512 513 514
-4 515 516 517 518
-4 519 520 521 522
-3 523 524 525
-3 526 527 528
-3 529 530 531
-4 532 533 534 535
-4 536 537 538 539
-4 540 541 542 543
-4 544 545 546 547
-3 548 549 550
-3 551 552 553
-4 554 555 556 557
-3 558 559 560
-4 561 562 563 564
-4 565 566 567 568
-4 569 570 571 572
-3 573 574 575
-4 576 577 578 579
-4 580 581 582 583
-4 584 585 586 587
-4 588 589 590 591
-4 592 593 594 595
-4 596 597 598 599
-4 600 601 602 603
-4 604 605 606 607
-4 608 609 610 611
-3 612 613 614
-4 615 616 617 618
-4 619 620 621 622
-4 623 624 625 626
-4 627 628 629 630
-4 631 632 633 634
-4 635 636 637 638
-4 639 640 641 642
-3 643 644 645
-4 646 647 648 649
-3 650 651 652
-4 653 654 655 656
-3 657 658 659
-4 660 661 662 663
-4 664 665 666 667
-4 668 669 670 671
-4 672 673 674 675
-4 676 677 678 679
-4 680 681 682 683
-4 684 685 686 687
-4 688 689 690 691
-4 692 693 694 695
-4 696 697 698 699
-4 700 701 702 703
-3 704 705 706
-3 707 708 709
-4 710 711 712 713
-4 714 715 716 717
-4 718 719 720 721
-3 722 723 724
-3 725 726 727
-4 728 729 730 731
-4 732 733 734 735
-4 736 737 738 739
-3 740 741 742
-4 743 744 745 746
-4 747 748 749 750
-3 751 752 753
-3 754 755 756
-4 757 758 759 760
-4 761 762 763 764
-4 765 766 767 768
-4 769 770 771 772
-3 773 774 775
-3 776 777 778
-3 779 780 781
-4 782 783 784 785
-4 786 787 788 789
-3 790 791 792
-4 793 794 795 796
-4 797 798 799 800
-3 801 802 803
-3 804 805 806
-3 807 808 809
-3 810 811 812
-4 813 814 815 816
-4 817 818 819 820
-4 821 822 823 824
-4 825 826 827 828
-4 829 830 831 832
-4 833 834 835 836
-4 837 838 839 840
-4 841 842 843 844
-4 845 846 847 848
-3 849 850 851
-3 852 853 854
-4 855 856 857 858
-4 859 860 861 862
-4 863 864 865 866
-3 867 868 869
-4 870 871 872 873
-4 874 875 876 877
-4 878 879 880 881
-4 882 883 884 885
-4 886 887 888 889
-4 890 891 892 893
-4 894 895 896 897
-4 898 899 900 901
-4 902 903 904 905
-4 906 907 908 909
-4 910 911 912 913
-4 914 915 916 917
-3 918 919 920
-4 921 922 923 924
-4 925 926 927 928
-3 929 930 931
-4 932 933 934 935
-4 936 937 938 939
-3 940 941 942
-4 943 944 945 946
-3 947 948 949
-4 950 951 952 953
-4 954 955 956 957
-3 958 959 960
-4 961 962 963 964
-4 965 966 967 968
-4 969 970 971 972
-4 973 974 975 976
-4 977 978 979 980
-3 981 982 983
-3 984 985 986
-3 987 988 989
-4 990 991 992 993
-4 994 995 996 997
-3 998 999 1000
-3 1001 1002 1003
-4 1004 1005 1006 1007
-4 1008 1009 1010 1011
-3 1012 1013 1014
-3 1015 1016 1017
-4 1018 1019 1020 1021
-3 1022 1023 1024
-3 1025 1026 1027
-3 463 1028 464
-4 1029 1030 1031 1032
-3 1033 1034 1035
-4 1036 1037 1038 1039
-4 1040 1041 1042 1043
-4 1044 1045 1046 1047
-4 1048 1049 1050 1051
-4 1052 1053 1054 1055
-3 1056 1057 1058
-4 1059 1060 1061 1062
-4 1063 1064 1065 1066
-4 1067 1068 1069 1070
-4 1071 1072 1073 1074
-3 1075 1076 1077
-4 1078 1079 1080 1081
-4 1082 1083 1084 1085
-3 1086 1087 1088
-3 1089 1090 1091
-4 1092 1093 1094 1095
-4 1096 1097 1098 1099
-4 1100 1101 1102 1103
-3 1104 1105 1106
-3 1107 1108 1109
-4 1110 1111 1112 1113
-4 1114 1115 1116 1117
-4 1118 1119 1120 1121
-4 1122 1123 1124 1125
-3 1126 1127 1128
-4 1129 1130 1131 1132
-4 1133 1134 1135 1136
-4 1137 1138 1139 1140
-4 1141 1142 1143 1144
-4 1145 1146 1147 1148
-4 1149 1150 1151 1152
-3 1153 1154 1155
-4 1156 1157 1158 1159
-3 1160 1161 1162
-4 1163 1164 1165 1166
-3 1167 1168 1169
-3 1170 1171 1172
-3 1173 1174 1175
-4 1176 1177 1178 1179
-3 1180 1181 1182
-3 1183 1184 1185
-4 1186 1187 1188 1189
-4 1190 1191 1192 1193
-4 1194 1195 1196 1197
-4 1198 1199 1200 1201
-3 1202 1203 1204
-4 1205 1206 1207 1208
-4 1209 1210 1211 1212
-4 1213 1214 1215 1216
-4 1217 1218 1219 1220
-4 1221 1222 1223 1224
-4 1225 1226 1227 1228
-3 1229 1230 1231
-4 1232 1233 1234 1235
-3 1236 1237 1238
-4 1239 1240 1241 1242
-3 1243 1244 1245
-3 1246 1247 1248
-3 1249 1250 1251
-3 1252 1253 1254
-3 1255 1256 1257
-4 1258 1259 1260 1261
-4 1262 1263 1264 1265
-4 1266 1267 1268 1269
-4 1270 1271 1272 1273
-4 1274 1275 1276 1277
-4 1278 1279 1280 1281
-3 1282 1283 1284
-4 1285 1286 1287 1288
-4 1289 1290 1291 1292
-4 1293 1294 1295 1296
-3 1297 1298 1299
-3 1300 1301 1302
-4 1303 1304 1305 1306
-3 1307 1308 1309
diff --git a/src/tests/evas/meshes/ply/NoNormal_UVs_NoColors.ply b/src/tests/evas/meshes/ply/NoNormal_UVs_NoColors.ply
deleted file mode 100644
index ffa53101bb..0000000000
--- a/src/tests/evas/meshes/ply/NoNormal_UVs_NoColors.ply
+++ /dev/null
@@ -1,1678 +0,0 @@
-ply
-format ascii 1.0
-comment Created by Blender 2.69 (sub 0) - www.blender.org, source file: ''
-element vertex 1310
-property float x
-property float y
-property float z
-property float s
-property float t
-element face 356
-property list uchar uint vertex_indices
-end_header
--4.649800 14.945700 -8.785600 0.094400 0.185800
--2.020300 14.610600 -8.278800 0.060000 0.185800
--1.712600 0.024900 -9.195700 0.089900 0.023200
--3.252600 0.001600 -8.591000 0.107400 0.025300
--4.649800 14.945700 -8.785600 0.094400 0.185800
--3.252600 0.001600 -8.591000 0.107400 0.025300
--4.089400 2.633000 -5.031300 0.145000 0.057700
--5.308800 13.910900 -3.738700 0.154100 0.185800
--1.553600 3.059500 -4.173500 0.181500 0.058600
--1.766900 13.754900 -2.918700 0.193300 0.185800
--3.061600 3.537800 -3.461700 0.164000 0.067400
--1.553600 3.059500 -4.173500 0.181500 0.058600
--0.626000 0.031700 -8.336200 0.220100 0.017000
--0.971400 14.644800 -6.706400 0.225200 0.185800
--1.766900 13.754900 -2.918700 0.193300 0.185800
--5.495700 46.043098 -6.732400 0.139900 0.788400
--2.827600 38.171799 -8.088300 0.114500 0.661600
--5.919200 37.619099 -4.570300 0.183200 0.661600
--6.029500 46.188801 -3.956000 0.183300 0.792100
--4.685700 36.664101 -1.616400 0.239100 0.661600
--4.298500 47.001099 -0.058900 0.249300 0.802400
--6.029500 46.188801 -3.956000 0.183300 0.792100
--5.919200 37.619099 -4.570300 0.183200 0.661600
--6.775800 50.206501 -7.534500 0.134100 0.852600
--7.252500 54.524502 -7.615000 0.126100 0.913200
-0.000000 53.738098 -8.986800 0.028100 0.877800
-0.000000 50.037800 -9.413700 0.041800 0.827300
--7.252500 54.524502 -7.615000 0.812300 0.981700
--8.747800 53.770199 -7.353300 0.807700 0.944900
--8.184300 53.108700 -3.320400 0.746000 0.944900
--6.624100 53.529800 -2.653700 0.746000 0.986600
--9.827700 52.989700 -7.188500 0.805500 0.922700
--14.989100 50.565300 -7.297200 0.805300 0.834400
--15.636800 49.715099 -4.015700 0.746000 0.809400
--9.508400 52.403099 -3.672700 0.746000 0.922700
-0.000000 37.009800 0.550700 0.310700 0.661600
-0.000000 47.287498 1.094200 0.310700 0.805700
--4.298500 47.001099 -0.058900 0.249300 0.802400
--4.685700 36.664101 -1.616400 0.239100 0.661600
-0.000000 53.738098 -8.986800 0.028100 0.877800
--7.252500 54.524502 -7.615000 0.126100 0.913200
--2.321200 55.471001 -5.570800 0.053700 0.941000
-0.000000 55.950600 -7.250100 0.022400 0.916300
--6.624100 53.529800 -2.653700 0.210200 0.900400
--7.813100 49.342701 -3.886900 0.181000 0.844200
--6.029500 46.188801 -3.956000 0.183300 0.792100
--3.773800 51.093601 -1.034300 0.256600 0.864400
--6.029500 46.188801 -3.956000 0.183300 0.792100
--4.298500 47.001099 -0.058900 0.249300 0.802400
--3.773800 51.093601 -1.034300 0.256600 0.864400
-0.000000 50.880199 0.110000 0.310700 0.860500
--3.773800 51.093601 -1.034300 0.256600 0.864400
--4.298500 47.001099 -0.058900 0.249300 0.802400
-0.000000 47.287498 1.094200 0.310700 0.805700
--16.136200 50.023998 -7.546200 0.808600 0.809400
--14.989100 50.565300 -7.297200 0.805300 0.834400
--13.779500 47.417198 -7.715300 0.879500 0.834400
--14.885000 46.974701 -7.946000 0.879500 0.809400
--13.779500 47.417198 -7.715300 0.626900 0.829400
--8.756500 49.321098 -7.632900 0.626900 0.922700
--8.927200 49.128502 -4.128200 0.688900 0.922700
--14.977100 45.689201 -4.821000 0.680000 0.809400
--17.208200 49.477699 -7.512200 0.810800 0.788400
--22.585199 48.327702 -7.594400 0.812700 0.705100
--22.348700 46.932201 -2.822400 0.746000 0.680200
--16.810101 49.139900 -3.928800 0.746000 0.788400
--21.936399 43.055199 -3.733600 0.691800 0.680200
--16.192200 44.960400 -4.877100 0.677700 0.788400
--16.810101 49.139900 -3.928800 0.746000 0.788400
--22.348700 46.932201 -2.822400 0.746000 0.680200
--22.105101 44.119598 -7.074000 0.862200 0.680200
--23.337700 47.268200 -6.945000 0.809900 0.680200
--22.585199 48.327702 -7.594400 0.812700 0.705100
--21.061199 44.183601 -7.611200 0.879500 0.705100
--15.884600 46.520500 -7.855800 0.626900 0.788400
--16.192200 44.960400 -4.877100 0.677700 0.788400
--21.936399 43.055199 -3.733600 0.691800 0.680200
--21.061199 44.183601 -7.611200 0.626900 0.699700
--5.598500 31.822901 -1.405400 0.185400 0.436500
--7.174300 32.815300 -5.168000 0.136400 0.440500
--7.453900 29.910801 -4.782000 0.143900 0.408700
--4.970000 33.082802 -8.871300 0.086900 0.436600
--5.595300 29.761600 -8.491100 0.097300 0.399700
--7.453900 29.910801 -4.782000 0.143900 0.408700
--7.174300 32.815300 -5.168000 0.136400 0.440500
--6.827700 20.858999 -3.051400 0.166500 0.297500
--5.426000 21.341299 -8.131100 0.106600 0.297500
--6.194700 19.576300 -3.492500 0.163400 0.285600
--0.835600 22.853901 -8.203000 0.053300 0.313700
--0.899900 21.410400 -8.342700 0.054900 0.297500
--5.426000 21.341299 -8.131100 0.106600 0.297500
--5.317800 22.936800 -8.014600 0.105500 0.313700
--0.899900 21.410400 -8.342700 0.307200 0.297500
--1.957400 20.620800 -1.217700 0.224300 0.297500
--1.853000 19.164200 -1.385300 0.221600 0.281000
--6.194700 19.576300 -3.492500 0.163400 0.285600
--1.853000 19.164200 -1.385300 0.221600 0.281000
--1.957400 20.620800 -1.217700 0.224300 0.297500
--6.827700 20.858999 -3.051400 0.166500 0.297500
--5.259600 15.490400 -9.599400 0.090700 0.228600
--5.426000 21.341299 -8.131100 0.106600 0.297500
--0.899900 21.410400 -8.342700 0.054900 0.297500
--0.294400 16.169500 -7.962700 0.039600 0.241800
--0.294400 16.169500 -7.962700 0.282300 0.223700
--0.899900 21.410400 -8.342700 0.307200 0.297500
--1.853000 19.164200 -1.385300 0.221600 0.281000
--1.221800 14.450400 -2.004100 0.220300 0.236900
--1.853000 19.164200 -1.385300 0.221600 0.281000
--6.194700 19.576300 -3.492500 0.163400 0.285600
--6.498700 14.643000 -4.000600 0.151700 0.232900
--1.221800 14.450400 -2.004100 0.220300 0.236900
--6.498700 14.643000 -4.000600 0.151700 0.232900
--6.194700 19.576300 -3.492500 0.163400 0.285600
--5.426000 21.341299 -8.131100 0.106600 0.297500
--5.259600 15.490400 -9.599400 0.090700 0.228600
--7.813100 49.342701 -3.886900 0.181000 0.844200
--6.775800 50.206501 -7.534500 0.134100 0.852600
--5.495700 46.043098 -6.732400 0.139900 0.788400
--6.029500 46.188801 -3.956000 0.183300 0.792100
--8.756500 49.321098 -7.632900 0.626900 0.922700
--6.775800 50.206501 -7.534500 0.626900 0.944900
--7.813100 49.342701 -3.886900 0.686800 0.944900
--8.927200 49.128502 -4.128200 0.688900 0.922700
--5.495700 46.043098 -6.732400 0.139900 0.788400
--6.775800 50.206501 -7.534500 0.134100 0.852600
-0.000000 50.037800 -9.413700 0.041800 0.827300
-0.000000 45.235802 -8.516300 0.061400 0.762800
--3.773800 51.093601 -1.034300 0.256600 0.864400
-0.000000 50.880199 0.110000 0.310700 0.860500
-0.000000 54.522099 -2.187600 0.310700 0.919600
--1.435700 55.057400 -2.884500 0.285800 0.931400
--0.163800 60.672798 0.405300 0.529100 0.200900
--0.596000 60.268700 -0.255900 0.502600 0.185300
--0.605400 59.453602 0.006800 0.508800 0.156900
--0.226300 59.631802 0.717000 0.529800 0.167300
-0.000000 59.375900 0.272700 0.533800 0.153800
--0.605400 59.453602 0.006800 0.508800 0.156900
--0.793500 58.611801 -0.022400 0.506200 0.129800
-0.000000 58.735298 0.237300 0.533800 0.134400
--1.340700 61.343498 -1.024900 0.467800 0.231800
--2.209500 61.230499 -1.515000 0.430900 0.227000
--2.225300 60.301201 -1.334400 0.434400 0.187400
--0.474100 61.294899 -0.607800 0.499900 0.227200
--0.179900 61.274700 0.058500 0.525600 0.223900
--0.785400 61.539799 -0.048800 0.505500 0.247600
--0.163800 60.672798 0.405300 0.529100 0.200900
--0.179900 61.274700 0.058500 0.525600 0.223900
--0.474100 61.294899 -0.607800 0.499900 0.227200
--0.596000 60.268700 -0.255900 0.502600 0.185300
--0.785400 61.539799 -0.048800 0.505500 0.247600
-0.000000 62.775902 -0.355700 0.533900 0.286800
--1.901400 62.898899 -1.262500 0.451600 0.287500
--1.792100 61.563202 -0.648200 0.464300 0.250800
--1.901400 62.898899 -1.262500 0.451600 0.287500
--2.505800 61.413601 -3.333900 0.367200 0.240300
--2.209500 61.230499 -1.515000 0.430900 0.227000
--1.792100 61.563202 -0.648200 0.464300 0.250800
--2.071800 58.080299 -1.837600 0.435700 0.090000
--2.043500 58.694401 -1.722000 0.434700 0.119000
--2.361600 58.652599 -3.405400 0.376100 0.111600
--2.361600 58.652599 -3.405400 0.376100 0.111600
--1.480400 57.287800 -3.167400 0.388000 0.054100
--2.071800 58.080299 -1.837600 0.435700 0.090000
--2.361600 58.652599 -3.405400 0.376100 0.111600
--2.043500 58.694401 -1.722000 0.434700 0.119000
--2.225300 60.301201 -1.334400 0.434400 0.187400
--2.484800 60.667999 -2.078300 0.409600 0.193000
--0.596000 60.268700 -0.255900 0.502600 0.185300
--2.225300 60.301201 -1.334400 0.434400 0.187400
--0.793500 58.611801 -0.022400 0.506200 0.129800
--0.605400 59.453602 0.006800 0.508800 0.156900
--0.793500 58.611801 -0.022400 0.506200 0.129800
--0.860300 57.339199 -0.345300 0.507000 0.087800
-0.000000 57.320400 0.190300 0.533800 0.095300
-0.000000 58.735298 0.237300 0.533800 0.134400
--2.361600 58.652599 -3.405400 0.376100 0.111600
--1.507500 57.978802 -4.806700 0.327200 0.071700
--1.480400 57.287800 -3.167400 0.388000 0.054100
--1.480400 57.287800 -3.167400 0.293600 0.962800
--1.435700 55.057400 -2.884500 0.285800 0.931400
-0.000000 54.522099 -2.187600 0.310700 0.919600
--0.509500 56.862801 -2.081200 0.307800 0.953500
--1.435700 55.057400 -2.884500 0.285800 0.931400
--1.480400 57.287800 -3.167400 0.293600 0.962800
--1.507500 57.978802 -4.806700 0.269900 0.982500
--2.321200 55.471001 -5.570800 0.259500 0.968000
--5.259600 15.490400 -9.599400 0.090700 0.228600
--0.294400 16.169500 -7.962700 0.039600 0.241800
--2.020300 14.610600 -8.278800 0.063600 0.221000
--0.294400 16.169500 -7.962700 0.282300 0.223700
--1.221800 14.450400 -2.004100 0.220300 0.236900
--0.971400 14.644800 -6.706400 0.253200 0.212300
--5.308800 13.910900 -3.738700 0.168700 0.220700
--1.766900 13.754900 -2.918700 0.216900 0.223600
--1.221800 14.450400 -2.004100 0.220300 0.236900
--6.498700 14.643000 -4.000600 0.151700 0.232900
--4.649800 14.945700 -8.785600 0.103500 0.222700
--5.308800 13.910900 -3.738700 0.168700 0.220700
--6.498700 14.643000 -4.000600 0.151700 0.232900
--5.259600 15.490400 -9.599400 0.090700 0.228600
--1.957400 20.620800 -1.217700 0.224300 0.297500
--0.899900 21.410400 -8.342700 0.307200 0.297500
--0.835600 22.853901 -8.203000 0.306600 0.313700
--2.189200 21.987900 -1.481800 0.225500 0.313700
--7.174300 32.815300 -5.168000 0.136400 0.440500
--6.542300 35.480598 -4.902800 0.133600 0.471500
--5.283200 35.952900 -7.814600 0.094100 0.470900
--4.970000 33.082802 -8.871300 0.086900 0.436600
--5.598500 31.822901 -1.405400 0.185400 0.436500
--6.542300 35.480598 -4.902800 0.133600 0.471500
--7.174300 32.815300 -5.168000 0.136400 0.440500
--4.685700 36.664101 -1.616400 0.239100 0.661600
--5.598500 31.822901 -1.405400 0.231500 0.582200
--3.798500 31.552500 -0.386300 0.257600 0.582200
--2.225300 60.301201 -1.334400 0.434400 0.187400
--2.209500 61.230499 -1.515000 0.430900 0.227000
--2.484800 60.667999 -2.078300 0.409600 0.193000
--8.927200 49.128502 -4.128200 0.688900 0.922700
--7.813100 49.342701 -3.886900 0.686800 0.944900
--8.184300 53.108700 -3.320400 0.746000 0.944900
--9.508400 52.403099 -3.672700 0.746000 0.922700
--8.184300 53.108700 -3.320400 0.746000 0.944900
--8.747800 53.770199 -7.353300 0.807700 0.944900
--9.827700 52.989700 -7.188500 0.805500 0.922700
--9.508400 52.403099 -3.672700 0.746000 0.922700
--8.747800 53.770199 -7.353300 0.807700 0.944900
--7.252500 54.524502 -7.615000 0.812300 0.981700
--6.775800 50.206501 -7.534500 0.879500 0.944900
--8.927200 49.128502 -4.128200 0.688900 0.922700
--9.508400 52.403099 -3.672700 0.746000 0.922700
--15.636800 49.715099 -4.015700 0.746000 0.809400
--14.977100 45.689201 -4.821000 0.680000 0.809400
--6.624100 53.529800 -2.653700 0.210200 0.900400
--3.773800 51.093601 -1.034300 0.256600 0.864400
--1.435700 55.057400 -2.884500 0.285800 0.931400
--7.252500 54.524502 -7.615000 0.180400 0.964800
--2.321200 55.471001 -5.570800 0.259500 0.968000
--7.252500 54.524502 -7.615000 0.180400 0.964800
--1.435700 55.057400 -2.884500 0.285800 0.931400
--2.209500 61.230499 -1.515000 0.430900 0.227000
--2.505800 61.413601 -3.333900 0.362700 0.212700
--2.484800 60.667999 -2.078300 0.409600 0.193000
--2.484800 60.667999 -2.078300 0.409600 0.193000
--2.505800 61.413601 -3.333900 0.362700 0.212700
--2.361600 58.652599 -3.405400 0.376100 0.111600
--2.209500 61.230499 -1.515000 0.430900 0.227000
--1.340700 61.343498 -1.024900 0.467800 0.231800
--1.792100 61.563202 -0.648200 0.464300 0.250800
--3.061600 3.537800 -3.461700 0.290200 0.071700
--3.735600 1.816900 0.228400 0.290200 0.030700
--1.568700 1.981700 -0.627100 0.308400 0.040400
--1.553600 3.059500 -4.173500 0.310400 0.073900
--0.626000 0.031700 -8.336200 0.345300 0.097200
--1.553600 3.059500 -4.173500 0.310400 0.073900
--1.568700 1.981700 -0.627100 0.308400 0.040400
--1.825200 -0.024100 0.601200 0.313500 0.023800
--1.825200 -0.024100 0.601200 0.748300 0.055100
--3.769300 -0.009000 1.132900 0.765800 0.040900
--1.712600 0.024900 -9.195700 0.765100 0.147100
--0.626000 0.031700 -8.336200 0.751000 0.138000
--1.712600 0.024900 -9.195700 0.089900 0.023200
--2.020300 14.610600 -8.278800 0.060000 0.185800
--0.971400 14.644800 -6.706400 0.025900 0.185800
--0.626000 0.031700 -8.336200 0.075600 0.021500
--1.568700 1.981700 -0.627100 0.308400 0.040400
--3.735600 1.816900 0.228400 0.290200 0.030700
--3.769300 -0.009000 1.132900 0.289700 0.012400
--1.825200 -0.024100 0.601200 0.313500 0.023800
--4.089400 2.633000 -5.031300 0.275500 0.071900
--3.252600 0.001600 -8.591000 0.238500 0.103000
--5.176800 -0.025000 -0.598300 0.266200 0.023600
--5.390300 1.568200 -1.670300 0.274000 0.039600
--3.769300 -0.009000 1.132900 0.289700 0.012400
--3.735600 1.816900 0.228400 0.290200 0.030700
--5.390300 1.568200 -1.670300 0.274000 0.039600
--5.176800 -0.025000 -0.598300 0.266200 0.023600
--5.390300 1.568200 -1.670300 0.274000 0.039600
--3.735600 1.816900 0.228400 0.290200 0.030700
--3.061600 3.537800 -3.461700 0.290200 0.071700
--4.089400 2.633000 -5.031300 0.275500 0.071900
--3.061600 3.537800 -3.461700 0.164000 0.067400
--1.766900 13.754900 -2.918700 0.193300 0.185800
--5.308800 13.910900 -3.738700 0.154100 0.185800
--4.089400 2.633000 -5.031300 0.145000 0.057700
--2.020300 14.610600 -8.278800 0.063600 0.221000
--4.649800 14.945700 -8.785600 0.103500 0.222700
--5.259600 15.490400 -9.599400 0.090700 0.228600
--2.020300 14.610600 -8.278800 0.063600 0.221000
--0.294400 16.169500 -7.962700 0.039600 0.241800
--0.971400 14.644800 -6.706400 0.028400 0.216500
--5.426000 21.341299 -8.131100 0.106600 0.297500
--6.827700 20.858999 -3.051400 0.166500 0.297500
--6.824000 22.193899 -3.254300 0.165700 0.313700
--5.317800 22.936800 -8.014600 0.105500 0.313700
--0.845100 29.891001 -9.491500 0.041700 0.395800
--0.835600 22.853901 -8.203000 0.053300 0.313700
--5.317800 22.936800 -8.014600 0.105500 0.313700
--5.595300 29.761600 -8.491100 0.097300 0.399700
--1.957400 20.620800 -1.217700 0.224300 0.297500
--2.189200 21.987900 -1.481800 0.225500 0.313700
--6.824000 22.193899 -3.254300 0.165700 0.313700
--6.827700 20.858999 -3.051400 0.166500 0.297500
--0.605400 59.453602 0.006800 0.508800 0.156900
-0.000000 59.375900 0.272700 0.533800 0.153800
--0.226300 59.631802 0.717000 0.529800 0.167300
--21.936399 43.055199 -3.733600 0.691800 0.680200
--22.348700 46.932201 -2.822400 0.746000 0.680200
--23.323000 46.228001 -3.425200 0.746000 0.661900
--23.265499 44.290199 -3.614200 0.710900 0.661900
--22.105101 44.119598 -7.074000 0.862200 0.680200
--23.273100 44.479099 -6.170500 0.835600 0.661900
--23.881300 46.267799 -5.995500 0.800900 0.661900
--23.337700 47.268200 -6.945000 0.809900 0.680200
--22.348700 46.932201 -2.822400 0.746000 0.680200
--23.337700 47.268200 -6.945000 0.809900 0.680200
--23.881300 46.267799 -5.995500 0.800900 0.661900
--23.323000 46.228001 -3.425200 0.746000 0.661900
--21.936399 43.055199 -3.733600 0.691800 0.680200
--23.265499 44.290199 -3.614200 0.710900 0.661900
--23.273100 44.479099 -6.170500 0.665900 0.661900
--22.105101 44.119598 -7.074000 0.641700 0.680200
--23.323000 46.228001 -3.425200 0.746000 0.661900
--24.935400 45.742901 -3.288800 0.746000 0.630500
--24.446100 44.099098 -3.039500 0.723200 0.630500
--23.265499 44.290199 -3.614200 0.710900 0.661900
--23.273100 44.479099 -6.170500 0.835600 0.661900
--25.718901 44.407902 -5.989100 0.812100 0.630500
--25.982700 45.641201 -5.974700 0.796200 0.630500
--23.881300 46.267799 -5.995500 0.800900 0.661900
--23.881300 46.267799 -5.995500 0.800900 0.661900
--25.982700 45.641201 -5.974700 0.796200 0.630500
--24.935400 45.742901 -3.288800 0.746000 0.630500
--23.323000 46.228001 -3.425200 0.746000 0.661900
--23.265499 44.290199 -3.614200 0.710900 0.661900
--24.446100 44.099098 -3.039500 0.723200 0.630500
--25.718901 44.407902 -5.989100 0.677100 0.630500
--23.273100 44.479099 -6.170500 0.665900 0.661900
--3.798500 31.552500 -0.386300 0.257600 0.582200
-0.000000 31.552500 0.128500 0.310700 0.582200
-0.000000 37.009800 0.550700 0.310700 0.661600
--4.685700 36.664101 -1.616400 0.239100 0.661600
--27.058001 43.733101 -1.471100 0.783900 0.527900
--28.100901 44.177299 -2.470000 0.756100 0.537200
--27.637899 42.321201 -1.984400 0.780200 0.502700
--26.775499 43.007000 -1.492900 0.799700 0.523000
--27.102699 45.320202 -5.735100 0.706300 0.587600
--25.982700 45.641201 -5.974700 0.701400 0.609900
--25.718901 44.407902 -5.989100 0.674700 0.592000
--26.246300 42.901402 -5.383600 0.663100 0.553800
--24.935400 45.742901 -3.288800 0.774000 0.616500
--25.982700 45.641201 -5.974700 0.701400 0.609900
--27.102699 45.320202 -5.735100 0.706300 0.587600
--26.753901 45.398300 -2.858600 0.766000 0.574200
--24.446100 44.099098 -3.039500 0.815000 0.599300
--26.246300 42.901402 -5.383600 0.880100 0.569900
--25.718901 44.407902 -5.989100 0.885900 0.607200
--28.380600 42.330502 -3.056600 0.741600 0.498200
--27.637899 42.321201 -1.984400 0.780200 0.502700
--28.100901 44.177299 -2.470000 0.756100 0.537200
--28.697901 44.238201 -3.477500 0.737900 0.538900
--28.380600 42.330502 -3.056600 0.741600 0.498200
--28.697901 44.238201 -3.477500 0.737900 0.538900
--28.543800 44.178001 -4.651400 0.718600 0.545700
--28.292801 42.543098 -4.446800 0.704200 0.514300
--26.753901 45.398300 -2.858600 0.766000 0.574200
--28.697901 44.238201 -3.477500 0.737900 0.538900
--28.100901 44.177299 -2.470000 0.756100 0.537200
--24.935400 45.742901 -3.288800 0.774000 0.616500
--26.117701 44.487900 -2.198700 0.788200 0.565100
--25.587200 43.557701 -2.038700 0.806300 0.556900
--24.446100 44.099098 -3.039500 0.815000 0.599300
--24.446100 44.099098 -3.039500 0.815000 0.599300
--25.587200 43.557701 -2.038700 0.806300 0.556900
--25.491899 42.827301 -2.370100 0.813300 0.554500
--26.246300 42.901402 -5.383600 0.880100 0.569900
--26.753901 45.398300 -2.858600 0.766000 0.574200
--26.117701 44.487900 -2.198700 0.788200 0.565100
--24.935400 45.742901 -3.288800 0.774000 0.616500
-0.000000 31.552500 0.128500 0.310700 0.582200
--3.798500 31.552500 -0.386300 0.257600 0.582200
--3.463700 23.872801 -0.356700 0.261000 0.472800
-0.000000 24.132099 -0.356700 0.310700 0.472800
--2.225300 60.301201 -1.334400 0.434400 0.187400
--2.043500 58.694401 -1.722000 0.434700 0.119000
--0.793500 58.611801 -0.022400 0.506200 0.129800
--0.793500 58.611801 -0.022400 0.506200 0.129800
--2.043500 58.694401 -1.722000 0.434700 0.119000
--2.071800 58.080299 -1.837600 0.435700 0.090000
--0.860300 57.339199 -0.345300 0.507000 0.087800
--2.071800 58.080299 -1.837600 0.435700 0.090000
--1.480400 57.287800 -3.167400 0.435700 0.022900
--0.509500 56.862801 -2.081200 0.497100 0.026700
--0.860300 57.339199 -0.345300 0.507000 0.087800
--0.179900 61.274700 0.058500 0.525600 0.223900
-0.000000 61.912998 -0.048000 0.533800 0.254400
--0.785400 61.539799 -0.048800 0.505500 0.247600
--15.884600 46.520500 -7.855800 0.879500 0.788400
--17.208200 49.477699 -7.512200 0.810800 0.788400
--16.136200 50.023998 -7.546200 0.808600 0.809400
--14.885000 46.974701 -7.946000 0.879500 0.809400
--15.636800 49.715099 -4.015700 0.746000 0.809400
--16.136200 50.023998 -7.546200 0.808600 0.809400
--17.208200 49.477699 -7.512200 0.810800 0.788400
--16.810101 49.139900 -3.928800 0.746000 0.788400
--16.192200 44.960400 -4.877100 0.677700 0.788400
--15.884600 46.520500 -7.855800 0.626900 0.788400
--14.885000 46.974701 -7.946000 0.626900 0.809400
--14.977100 45.689201 -4.821000 0.680000 0.809400
--16.810101 49.139900 -3.928800 0.746000 0.788400
--16.192200 44.960400 -4.877100 0.677700 0.788400
--14.977100 45.689201 -4.821000 0.680000 0.809400
--15.636800 49.715099 -4.015700 0.746000 0.809400
--13.779500 47.417198 -7.715300 0.879500 0.834400
--14.989100 50.565300 -7.297200 0.805300 0.834400
--9.827700 52.989700 -7.188500 0.805500 0.922700
--8.756500 49.321098 -7.632900 0.879500 0.922700
--15.636800 49.715099 -4.015700 0.746000 0.809400
--14.989100 50.565300 -7.297200 0.805300 0.834400
--16.136200 50.023998 -7.546200 0.808600 0.809400
--13.779500 47.417198 -7.715300 0.626900 0.829400
--14.977100 45.689201 -4.821000 0.680000 0.809400
--14.885000 46.974701 -7.946000 0.626900 0.809400
--0.971400 14.644800 -6.706400 0.253200 0.212300
--1.221800 14.450400 -2.004100 0.220300 0.236900
--1.766900 13.754900 -2.918700 0.216900 0.223600
--26.117701 44.487900 -2.198700 0.788200 0.565100
--27.058001 43.733101 -1.471100 0.783900 0.527900
--26.775499 43.007000 -1.492900 0.799700 0.523000
--25.587200 43.557701 -2.038700 0.806300 0.556900
--25.587200 43.557701 -2.038700 0.806300 0.556900
--26.775499 43.007000 -1.492900 0.799700 0.523000
--27.637899 42.321201 -1.984400 0.816200 0.507300
--25.491899 42.827301 -2.370100 0.813300 0.554500
--26.117701 44.487900 -2.198700 0.788200 0.565100
--28.100901 44.177299 -2.470000 0.756100 0.537200
--27.058001 43.733101 -1.471100 0.783900 0.527900
--8.184300 53.108700 -3.320400 0.746000 0.944900
--7.813100 49.342701 -3.886900 0.686800 0.944900
--6.624100 53.529800 -2.653700 0.746000 0.986600
--8.747800 53.770199 -7.353300 0.807700 0.944900
--6.775800 50.206501 -7.534500 0.879500 0.944900
--8.756500 49.321098 -7.632900 0.879500 0.922700
--9.827700 52.989700 -7.188500 0.805500 0.922700
--28.543800 44.178001 -4.651400 0.718600 0.545700
--28.697901 44.238201 -3.477500 0.737900 0.538900
--26.753901 45.398300 -2.858600 0.766000 0.574200
--27.102699 45.320202 -5.735100 0.706300 0.587600
--26.246300 42.901402 -5.383600 0.880100 0.569900
--28.380600 42.330502 -3.056600 0.853500 0.507000
--28.292801 42.543098 -4.446800 0.879400 0.523100
--28.100901 44.177299 -2.470000 0.756100 0.537200
--26.117701 44.487900 -2.198700 0.788200 0.565100
--26.753901 45.398300 -2.858600 0.766000 0.574200
--1.712600 0.024900 -9.195700 0.765100 0.147100
--3.769300 -0.009000 1.132900 0.765800 0.040900
--5.176800 -0.025000 -0.598300 0.783900 0.050100
--3.252600 0.001600 -8.591000 0.777900 0.139800
-0.000000 61.912998 -0.048000 0.533800 0.254400
-0.000000 62.775902 -0.355700 0.533900 0.286800
--0.785400 61.539799 -0.048800 0.505500 0.247600
--0.340300 31.400700 -9.922000 0.348900 0.396000
--0.425600 30.069099 -1.503600 0.251300 0.411900
--0.845100 29.891001 -9.491500 0.339400 0.379800
-0.000000 54.522099 -2.187600 0.310700 0.919600
-0.000000 56.862801 -2.081200 0.310500 0.953100
--0.509500 56.862801 -2.081200 0.307800 0.953500
--0.509500 56.862801 -2.081200 0.497100 0.026700
-0.000000 56.862801 -2.081200 0.533800 0.019000
-0.000000 57.320400 0.190300 0.533800 0.095300
--0.860300 57.339199 -0.345300 0.507000 0.087800
--5.598500 31.822901 -1.405400 0.185400 0.436500
--7.453900 29.910801 -4.782000 0.143900 0.408700
--6.824000 22.193899 -3.254300 0.165700 0.313700
--6.824000 22.193899 -3.254300 0.165700 0.313700
--7.453900 29.910801 -4.782000 0.143900 0.408700
--5.595300 29.761600 -8.491100 0.097300 0.399700
--5.317800 22.936800 -8.014600 0.105500 0.313700
--3.798500 31.552500 -0.386300 0.210900 0.433400
--5.598500 31.822901 -1.405400 0.185400 0.436500
--6.824000 22.193899 -3.254300 0.165700 0.313700
--2.189200 21.987900 -1.481800 0.225500 0.313700
--0.340300 31.400700 -9.922000 0.033600 0.413900
--0.845100 29.891001 -9.491500 0.041700 0.395800
--5.595300 29.761600 -8.491100 0.097300 0.399700
--4.970000 33.082802 -8.871300 0.086900 0.436600
--0.835600 22.853901 -8.203000 0.306600 0.313700
--0.845100 29.891001 -9.491500 0.339400 0.379800
--0.425600 30.069099 -1.503600 0.251300 0.411900
--2.189200 21.987900 -1.481800 0.225500 0.313700
--2.162800 35.743500 -9.599900 0.052600 0.465300
--0.340300 31.400700 -9.922000 0.033600 0.413900
--4.970000 33.082802 -8.871300 0.086900 0.436600
--5.283200 35.952900 -7.814600 0.094100 0.470900
--5.283200 35.952900 -7.814600 0.142000 0.631800
--6.542300 35.480598 -4.902800 0.182300 0.631800
--5.919200 37.619099 -4.570300 0.183200 0.661600
--5.919200 37.619099 -4.570300 0.183200 0.661600
--6.542300 35.480598 -4.902800 0.182300 0.631800
--5.598500 31.822901 -1.405400 0.231500 0.582200
--4.685700 36.664101 -1.616400 0.239100 0.661600
--0.474100 61.294899 -0.607800 0.499900 0.227200
--1.340700 61.343498 -1.024900 0.467800 0.231800
--2.225300 60.301201 -1.334400 0.434400 0.187400
--0.596000 60.268700 -0.255900 0.502600 0.185300
--1.340700 61.343498 -1.024900 0.467800 0.231800
--0.474100 61.294899 -0.607800 0.499900 0.227200
--0.785400 61.539799 -0.048800 0.505500 0.247600
--1.792100 61.563202 -0.648200 0.464300 0.250800
-0.000000 45.235802 -8.516300 0.061400 0.762800
-0.000000 38.221600 -8.073300 0.073200 0.661600
--2.827600 38.171799 -8.088300 0.114500 0.661600
--5.495700 46.043098 -6.732400 0.139900 0.788400
--0.425600 30.069099 -1.503600 0.251300 0.411900
--3.798500 31.552500 -0.386300 0.210900 0.433400
--2.189200 21.987900 -1.481800 0.225500 0.313700
-0.000000 31.547001 -9.939100 0.349900 0.400200
-0.000000 30.215401 -1.522000 0.252400 0.417000
--0.425600 30.069099 -1.503600 0.251300 0.411900
--0.340300 31.400700 -9.922000 0.348900 0.396000
--21.061199 44.183601 -7.611200 0.879500 0.705100
--22.585199 48.327702 -7.594400 0.812700 0.705100
--17.208200 49.477699 -7.512200 0.810800 0.788400
--15.884600 46.520500 -7.855800 0.879500 0.788400
--22.348700 46.932201 -2.822400 0.746000 0.680200
--22.585199 48.327702 -7.594400 0.812700 0.705100
--23.337700 47.268200 -6.945000 0.809900 0.680200
--21.061199 44.183601 -7.611200 0.626900 0.699700
--21.936399 43.055199 -3.733600 0.691800 0.680200
--22.105101 44.119598 -7.074000 0.641700 0.680200
-0.000000 59.375900 0.272700 0.533800 0.153800
-0.226300 59.631802 0.717000 0.537800 0.167300
--0.226300 59.631802 0.717000 0.529800 0.167300
--0.163800 60.672798 0.405300 0.529100 0.200900
--0.226300 59.631802 0.717000 0.529800 0.167300
-0.226300 59.631802 0.717000 0.537800 0.167300
-0.163800 60.672798 0.405300 0.538500 0.200900
--0.340300 31.400700 -9.922000 0.033600 0.413900
--2.162800 35.743500 -9.599900 0.052600 0.465300
-0.000000 35.795200 -9.599900 0.027500 0.464800
-0.000000 31.547001 -9.939100 0.029600 0.415400
--5.919200 37.619099 -4.570300 0.183200 0.661600
--2.827600 38.171799 -8.088300 0.114500 0.661600
--2.162800 35.743500 -9.599900 0.096500 0.631800
--5.283200 35.952900 -7.814600 0.142000 0.631800
--28.543800 44.178001 -4.651400 0.718600 0.545700
--27.102699 45.320202 -5.735100 0.706300 0.587600
--26.246300 42.901402 -5.383600 0.663100 0.553800
--28.292801 42.543098 -4.446800 0.704200 0.514300
--25.491899 42.827301 -2.370100 0.813300 0.554500
--27.637899 42.321201 -1.984400 0.816200 0.507300
--28.380600 42.330502 -3.056600 0.853500 0.507000
--26.246300 42.901402 -5.383600 0.880100 0.569900
--25.491899 42.827301 -2.370100 0.813300 0.554500
--28.380600 42.330502 -3.056600 0.853500 0.507000
--0.179900 61.274700 0.058500 0.525600 0.223900
--0.163800 60.672798 0.405300 0.529100 0.200900
-0.163800 60.672798 0.405300 0.538500 0.200900
-0.179900 61.274700 0.058500 0.542100 0.223900
-0.000000 61.912998 -0.048000 0.533800 0.254400
--0.179900 61.274700 0.058500 0.525600 0.223900
-0.179900 61.274700 0.058500 0.542100 0.223900
--2.162800 35.743500 -9.599900 0.096500 0.631800
--2.827600 38.171799 -8.088300 0.114500 0.661600
-0.000000 38.221600 -8.073300 0.073200 0.661600
-0.000000 35.795200 -9.599900 0.068100 0.631800
-4.620900 14.945700 -8.516100 0.912200 0.175600
-3.252600 0.001600 -8.591000 0.909400 0.032900
-1.712600 0.024900 -9.195700 0.925400 0.031900
-1.456400 14.610600 -8.695100 0.943400 0.175600
-4.089400 2.633000 -5.031300 0.873900 0.060000
-3.252600 0.001600 -8.591000 0.909400 0.032900
-4.620900 14.945700 -8.516100 0.912200 0.175600
-5.308800 13.910900 -3.738700 0.859000 0.175600
-1.553600 3.059500 -4.173500 0.841100 0.058900
-3.061600 3.537800 -3.461700 0.856300 0.067800
-1.766900 13.754900 -2.918700 0.824200 0.175600
-1.553600 3.059500 -4.173500 0.841100 0.058900
-1.766900 13.754900 -2.918700 0.824200 0.175600
-1.239800 14.644800 -6.465300 0.795300 0.175600
-0.626000 0.031700 -8.336200 0.808600 0.019600
-5.495700 46.043098 -6.732400 0.140100 0.788400
-6.029500 46.188801 -3.956000 0.183500 0.792100
-5.919200 37.619099 -4.570300 0.183400 0.661600
-2.827600 38.171799 -8.088300 0.114700 0.661600
-4.685700 36.664101 -1.616400 0.239300 0.661600
-5.919200 37.619099 -4.570300 0.183400 0.661600
-6.029500 46.188801 -3.956000 0.183500 0.792100
-4.298500 47.001099 -0.058900 0.249500 0.802400
-6.775800 50.206501 -7.534500 0.134300 0.852600
-0.000000 50.037800 -9.413700 0.042000 0.827300
-0.000000 53.738098 -8.986800 0.028300 0.877800
-7.252500 54.524502 -7.615000 0.126400 0.913200
-7.252500 54.524502 -7.615000 0.533200 0.977800
-6.624100 53.529800 -2.653700 0.469900 0.977800
-8.184300 53.108700 -3.320400 0.469900 0.942000
-8.747800 53.770199 -7.353300 0.528600 0.942000
-9.827700 52.989700 -7.188500 0.526400 0.916400
-9.508400 52.403099 -3.672700 0.469900 0.916400
-15.636800 49.715099 -4.015700 0.469900 0.803100
-14.989100 50.565300 -7.297200 0.526200 0.828100
-0.000000 37.009800 0.550700 0.310700 0.661600
-4.685700 36.664101 -1.616400 0.239300 0.661600
-4.298500 47.001099 -0.058900 0.249500 0.802400
-0.000000 47.287498 1.094200 0.310700 0.805700
-0.000000 53.738098 -8.986800 0.028300 0.877800
-0.000000 55.950600 -7.250100 0.022600 0.916300
-2.321200 55.471001 -5.570800 0.053900 0.941000
-7.252500 54.524502 -7.615000 0.126400 0.913200
-3.773800 51.093601 -1.034300 0.256800 0.864400
-4.298500 47.001099 -0.058900 0.249500 0.802400
-6.029500 46.188801 -3.956000 0.183500 0.792100
-6.624100 53.529800 -2.653700 0.210400 0.900400
-6.624100 53.529800 -2.653700 0.210400 0.900400
-6.029500 46.188801 -3.956000 0.183500 0.792100
-7.813100 49.342701 -3.886900 0.181200 0.844200
-0.000000 50.880199 0.110000 0.310700 0.860500
-0.000000 47.287498 1.094200 0.310700 0.805700
-4.298500 47.001099 -0.058900 0.249500 0.802400
-3.773800 51.093601 -1.034300 0.256800 0.864400
-16.136200 50.023998 -7.546200 0.529500 0.803100
-14.885000 46.974701 -7.946000 0.590800 0.803100
-13.779500 47.417198 -7.715300 0.590800 0.828100
-14.989100 50.565300 -7.297200 0.526200 0.828100
-13.779500 47.417198 -7.715300 0.347800 0.823100
-14.977100 45.689201 -4.821000 0.400900 0.803100
-8.927200 49.128502 -4.128200 0.409800 0.916400
-8.756500 49.321098 -7.632900 0.347800 0.916400
-17.208200 49.477699 -7.512200 0.531700 0.782100
-16.810101 49.139900 -3.928800 0.469900 0.782100
-22.348700 46.932201 -2.822400 0.469900 0.674700
-22.585199 48.327702 -7.594400 0.533600 0.698800
-21.936399 43.055199 -3.733600 0.412700 0.674700
-22.348700 46.932201 -2.822400 0.469900 0.674700
-16.810101 49.139900 -3.928800 0.469900 0.782100
-16.192200 44.960400 -4.877100 0.398600 0.782100
-22.105101 44.119598 -7.074000 0.583100 0.674700
-21.061199 44.183601 -7.611200 0.590800 0.698800
-22.585199 48.327702 -7.594400 0.533600 0.698800
-23.337700 47.268200 -6.945000 0.530800 0.674700
-15.884600 46.520500 -7.855800 0.347800 0.782100
-21.061199 44.183601 -7.611200 0.347800 0.693400
-21.936399 43.055199 -3.733600 0.412700 0.674700
-16.192200 44.960400 -4.877100 0.398600 0.782100
-5.598500 31.822901 -1.404300 0.847900 0.413200
-7.453900 29.910801 -4.780100 0.884800 0.385400
-7.174300 32.815300 -5.167300 0.893300 0.414200
-4.970000 33.082802 -8.871900 0.938900 0.409500
-7.174300 32.815300 -5.167300 0.893300 0.414200
-7.453900 29.910801 -4.780100 0.884800 0.385400
-5.595300 29.761600 -8.492500 0.927500 0.375900
-6.827700 20.858999 -3.044800 0.858900 0.286100
-6.194700 19.576300 -3.478600 0.860200 0.277400
-5.426000 21.341299 -8.132600 0.914200 0.282100
-0.835600 22.853901 -8.210700 0.964300 0.301600
-5.317800 22.936800 -8.016200 0.916400 0.301600
-5.426000 21.341299 -8.132600 0.914200 0.282100
-0.899900 21.410400 -8.349400 0.962800 0.286100
-0.899900 21.410400 -8.349400 0.726500 0.282100
-1.853000 19.164200 -1.371600 0.805100 0.274200
-1.957400 20.620800 -1.211500 0.804700 0.286100
-6.194700 19.576300 -3.478600 0.860200 0.277400
-6.827700 20.858999 -3.044800 0.858900 0.286100
-1.957400 20.620800 -1.211500 0.804700 0.286100
-1.853000 19.164200 -1.371600 0.805100 0.274200
-5.117200 15.490400 -9.679700 0.917300 0.220800
-0.134100 16.169500 -9.174700 0.969900 0.225300
-0.899900 21.410400 -8.349400 0.962800 0.286100
-5.426000 21.341299 -8.132600 0.914200 0.282100
-0.134100 16.169500 -9.174700 0.732600 0.207100
-1.716700 14.450400 -2.459200 0.808600 0.236100
-1.853000 19.164200 -1.371600 0.805100 0.274200
-0.899900 21.410400 -8.349400 0.726500 0.282100
-1.853000 19.164200 -1.371600 0.805100 0.274200
-1.716700 14.450400 -2.459200 0.808600 0.236100
-6.069200 14.643000 -3.762300 0.859400 0.227800
-6.194700 19.576300 -3.478600 0.860200 0.277400
-6.069200 14.643000 -3.762300 0.859400 0.227800
-5.117200 15.490400 -9.679700 0.917300 0.220800
-5.426000 21.341299 -8.132600 0.914200 0.282100
-6.194700 19.576300 -3.478600 0.860200 0.277400
-7.813100 49.342701 -3.886900 0.181200 0.844200
-6.029500 46.188801 -3.956000 0.183500 0.792100
-5.495700 46.043098 -6.732400 0.140100 0.788400
-6.775800 50.206501 -7.534500 0.134300 0.852600
-8.756500 49.321098 -7.632900 0.347800 0.916400
-8.927200 49.128502 -4.128200 0.409800 0.916400
-7.813100 49.342701 -3.886900 0.407700 0.942000
-6.775800 50.206501 -7.534500 0.347800 0.942000
-5.495700 46.043098 -6.732400 0.140100 0.788400
-0.000000 45.235802 -8.516300 0.061600 0.762900
-0.000000 50.037800 -9.413700 0.042000 0.827300
-6.775800 50.206501 -7.534500 0.134300 0.852600
-3.773800 51.093601 -1.034300 0.256800 0.864400
-1.435700 55.057400 -2.884500 0.286000 0.931400
-0.000000 54.522099 -2.187600 0.310700 0.919600
-0.000000 50.880199 0.110000 0.310700 0.860500
-0.163800 60.672798 0.405300 0.538500 0.200900
-0.226300 59.631802 0.717000 0.537800 0.167300
-0.605400 59.453602 0.006800 0.558900 0.156900
-0.596000 60.268700 -0.255900 0.565100 0.185300
-0.000000 59.375900 0.272700 0.533800 0.153800
-0.000000 58.735298 0.237300 0.533800 0.134400
-0.793500 58.611801 -0.022400 0.561500 0.129800
-0.605400 59.453602 0.006800 0.558900 0.156900
-1.340700 61.343498 -1.024900 0.599900 0.231700
-2.225300 60.301201 -1.334400 0.633200 0.187400
-2.209500 61.230499 -1.515000 0.636800 0.228100
-0.474100 61.294899 -0.607800 0.567800 0.227200
-0.785400 61.539799 -0.048800 0.562200 0.247600
-0.179900 61.274700 0.058500 0.542100 0.223900
-0.163800 60.672798 0.405300 0.538500 0.200900
-0.596000 60.268700 -0.255900 0.565100 0.185300
-0.474100 61.294899 -0.607800 0.567800 0.227200
-0.179900 61.274700 0.058500 0.542100 0.223900
-0.785400 61.539799 -0.048800 0.562200 0.247600
-1.792100 61.563202 -0.648200 0.603400 0.250800
-1.901400 62.898899 -1.262500 0.616100 0.287500
-0.000000 62.775902 -0.355700 0.533900 0.286800
-1.901400 62.898899 -1.262500 0.616100 0.287500
-1.792100 61.563202 -0.648200 0.603400 0.250800
-2.209500 61.230499 -1.515000 0.636800 0.228100
-2.505800 61.413601 -3.333900 0.700500 0.240200
-2.071800 58.080299 -1.837600 0.632000 0.089900
-2.361600 58.652599 -3.405400 0.691600 0.111600
-2.043500 58.694401 -1.722000 0.633000 0.119000
-2.361600 58.652599 -3.405400 0.691600 0.111600
-2.071800 58.080299 -1.837600 0.632000 0.089900
-1.480400 57.287800 -3.167400 0.679600 0.054000
-2.361600 58.652599 -3.405400 0.691600 0.111600
-2.484800 60.667999 -2.078300 0.658100 0.193000
-2.225300 60.301201 -1.334400 0.633200 0.187400
-2.043500 58.694401 -1.722000 0.633000 0.119000
-0.596000 60.268700 -0.255900 0.565100 0.185300
-0.605400 59.453602 0.006800 0.558900 0.156900
-0.793500 58.611801 -0.022400 0.561500 0.129800
-2.225300 60.301201 -1.334400 0.633200 0.187400
-0.793500 58.611801 -0.022400 0.561500 0.129800
-0.000000 58.735298 0.237300 0.533800 0.134400
-0.000000 57.320400 0.190300 0.533800 0.095300
-0.860300 57.339199 -0.345300 0.560600 0.087800
-2.361600 58.652599 -3.405400 0.691600 0.111600
-1.480400 57.287800 -3.167400 0.679600 0.054000
-1.507500 57.978802 -4.806700 0.740400 0.071600
-1.480400 57.287800 -3.167400 0.293800 0.962800
-0.509500 56.862801 -2.081200 0.308000 0.953500
-0.000000 54.522099 -2.187600 0.310700 0.919600
-1.435700 55.057400 -2.884500 0.286000 0.931400
-1.435700 55.057400 -2.884500 0.286000 0.931400
-2.321200 55.471001 -5.570800 0.259700 0.968000
-1.507500 57.978802 -4.806700 0.270100 0.982500
-1.480400 57.287800 -3.167400 0.293800 0.962800
-5.117200 15.490400 -9.679700 0.917300 0.220800
-1.456400 14.610600 -8.695100 0.949700 0.207500
-0.134100 16.169500 -9.174700 0.969900 0.225300
-0.134100 16.169500 -9.174700 0.732600 0.207100
-1.239800 14.644800 -6.465300 0.774100 0.204900
-1.716700 14.450400 -2.459200 0.808600 0.236100
-5.308800 13.910900 -3.738700 0.855000 0.218100
-6.069200 14.643000 -3.762300 0.859400 0.227800
-1.716700 14.450400 -2.459200 0.808600 0.236100
-1.766900 13.754900 -2.918700 0.809900 0.215800
-4.620900 14.945700 -8.516100 0.914400 0.215300
-5.117200 15.490400 -9.679700 0.917300 0.220800
-6.069200 14.643000 -3.762300 0.859400 0.227800
-5.308800 13.910900 -3.738700 0.855000 0.218100
-1.957400 20.620800 -1.211500 0.804700 0.286100
-2.189200 21.987900 -1.483700 0.804500 0.301600
-0.835600 22.853901 -8.210700 0.728900 0.301600
-0.899900 21.410400 -8.349400 0.726500 0.282100
-7.174300 32.815300 -5.167300 0.893300 0.414200
-4.970000 33.082802 -8.871900 0.938900 0.409500
-5.283200 35.952900 -7.814600 0.933900 0.441300
-6.542300 35.480598 -4.902800 0.897200 0.442800
-5.598500 31.822901 -1.404300 0.847900 0.413200
-7.174300 32.815300 -5.167300 0.893300 0.414200
-6.542300 35.480598 -4.902800 0.897200 0.442800
-4.685700 36.664101 -1.616400 0.239300 0.661600
-3.798500 31.552500 -0.388900 0.257800 0.582200
-5.598500 31.822901 -1.404300 0.231700 0.582200
-2.225300 60.301201 -1.334400 0.633200 0.187400
-2.484800 60.667999 -2.078300 0.658100 0.193000
-2.209500 61.230499 -1.515000 0.636800 0.228100
-8.927200 49.128502 -4.128200 0.409800 0.916400
-9.508400 52.403099 -3.672700 0.469900 0.916400
-8.184300 53.108700 -3.320400 0.469900 0.942000
-7.813100 49.342701 -3.886900 0.407700 0.942000
-8.184300 53.108700 -3.320400 0.469900 0.942000
-9.508400 52.403099 -3.672700 0.469900 0.916400
-9.827700 52.989700 -7.188500 0.526400 0.916400
-8.747800 53.770199 -7.353300 0.528600 0.942000
-8.747800 53.770199 -7.353300 0.528600 0.942000
-6.775800 50.206501 -7.534500 0.590800 0.942000
-7.252500 54.524502 -7.615000 0.533200 0.977800
-8.927200 49.128502 -4.128200 0.409800 0.916400
-14.977100 45.689201 -4.821000 0.400900 0.803100
-15.636800 49.715099 -4.015700 0.469900 0.803100
-9.508400 52.403099 -3.672700 0.469900 0.916400
-1.435700 55.057400 -2.884500 0.286000 0.931400
-3.773800 51.093601 -1.034300 0.256800 0.864400
-6.624100 53.529800 -2.653700 0.210400 0.900400
-7.252500 54.524502 -7.615000 0.180600 0.964800
-2.321200 55.471001 -5.570800 0.259700 0.968000
-1.435700 55.057400 -2.884500 0.286000 0.931400
-7.252500 54.524502 -7.615000 0.180600 0.964800
-2.209500 61.230499 -1.515000 0.636800 0.228100
-2.484800 60.667999 -2.078300 0.658100 0.193000
-2.505800 61.413601 -3.333900 0.704900 0.212700
-2.484800 60.667999 -2.078300 0.658100 0.193000
-2.361600 58.652599 -3.405400 0.691600 0.111600
-2.505800 61.413601 -3.333900 0.704900 0.212700
-2.209500 61.230499 -1.515000 0.636800 0.228100
-1.792100 61.563202 -0.648200 0.603400 0.250800
-1.340700 61.343498 -1.024900 0.599900 0.231700
-3.061600 3.537800 -3.461700 0.290200 0.071700
-1.553600 3.059500 -4.173500 0.275500 0.071900
-1.568700 1.981700 -0.627100 0.274000 0.039600
-3.735600 1.816900 0.228400 0.290200 0.030700
-0.626000 0.031700 -8.336200 0.238500 0.103000
-1.825200 -0.024100 0.601200 0.266200 0.023600
-1.568700 1.981700 -0.627100 0.274000 0.039600
-1.553600 3.059500 -4.173500 0.275500 0.071900
-1.825200 -0.024100 0.601200 0.783900 0.050100
-0.626000 0.031700 -8.336200 0.777900 0.139800
-1.712600 0.024900 -9.195700 0.765100 0.147100
-3.769300 -0.009000 1.132900 0.765800 0.040900
-1.712600 0.024900 -9.195700 0.925400 0.031900
-0.626000 0.031700 -8.336200 0.938600 0.031200
-1.239800 14.644800 -6.465300 0.974400 0.175600
-1.456400 14.610600 -8.695100 0.943400 0.175600
-1.568700 1.981700 -0.627100 0.274000 0.039600
-1.825200 -0.024100 0.601200 0.266200 0.023600
-3.769300 -0.009000 1.132900 0.289700 0.012400
-3.735600 1.816900 0.228400 0.290200 0.030700
-4.089400 2.633000 -5.031300 0.310400 0.073900
-5.390300 1.568200 -1.670300 0.308400 0.040400
-5.176800 -0.025000 -0.598300 0.313500 0.023800
-3.252600 0.001600 -8.591000 0.345300 0.097200
-3.769300 -0.009000 1.132900 0.289700 0.012400
-5.176800 -0.025000 -0.598300 0.313500 0.023800
-5.390300 1.568200 -1.670300 0.308400 0.040400
-3.735600 1.816900 0.228400 0.290200 0.030700
-5.390300 1.568200 -1.670300 0.308400 0.040400
-4.089400 2.633000 -5.031300 0.310400 0.073900
-3.061600 3.537800 -3.461700 0.290200 0.071700
-3.735600 1.816900 0.228400 0.290200 0.030700
-3.061600 3.537800 -3.461700 0.856300 0.067800
-4.089400 2.633000 -5.031300 0.873900 0.060000
-5.308800 13.910900 -3.738700 0.859000 0.175600
-1.766900 13.754900 -2.918700 0.824200 0.175600
-5.117200 15.490400 -9.679700 0.917300 0.220800
-4.620900 14.945700 -8.516100 0.914400 0.215300
-1.456400 14.610600 -8.695100 0.949700 0.207500
-1.456400 14.610600 -8.695100 0.746600 0.183800
-1.239800 14.644800 -6.465300 0.774100 0.204900
-0.134100 16.169500 -9.174700 0.732600 0.207100
-5.426000 21.341299 -8.132600 0.914200 0.282100
-5.317800 22.936800 -8.016200 0.916400 0.301600
-6.824000 22.193899 -3.251500 0.860400 0.301600
-6.827700 20.858999 -3.044800 0.858900 0.286100
-0.845100 29.891001 -9.498900 0.978500 0.369500
-5.595300 29.761600 -8.492500 0.927500 0.375900
-5.317800 22.936800 -8.016200 0.916400 0.301600
-0.835600 22.853901 -8.210700 0.964300 0.301600
-1.957400 20.620800 -1.211500 0.804700 0.286100
-6.827700 20.858999 -3.044800 0.858900 0.286100
-6.824000 22.193899 -3.251500 0.860400 0.301600
-2.189200 21.987900 -1.483700 0.804500 0.301600
-0.605400 59.453602 0.006800 0.558900 0.156900
-0.226300 59.631802 0.717000 0.537800 0.167300
-0.000000 59.375900 0.272700 0.533800 0.153800
-21.936399 43.055199 -3.733600 0.412700 0.674700
-23.265499 44.290199 -3.614200 0.431800 0.655600
-23.323000 46.228001 -3.425200 0.469900 0.655600
-22.348700 46.932201 -2.822400 0.469900 0.674700
-22.105101 44.119598 -7.074000 0.583100 0.674700
-23.337700 47.268200 -6.945000 0.530800 0.674700
-23.881300 46.267799 -5.995500 0.521800 0.655600
-23.273100 44.479099 -6.170500 0.556600 0.655600
-22.348700 46.932201 -2.822400 0.469900 0.674700
-23.323000 46.228001 -3.425200 0.469900 0.655600
-23.881300 46.267799 -5.995500 0.521800 0.655600
-23.337700 47.268200 -6.945000 0.530800 0.674700
-21.936399 43.055199 -3.733600 0.412700 0.674700
-22.105101 44.119598 -7.074000 0.362600 0.674700
-23.273100 44.479099 -6.170500 0.386800 0.655600
-23.265499 44.290199 -3.614200 0.431800 0.655600
-23.323000 46.228001 -3.425200 0.469900 0.655600
-23.265499 44.290199 -3.614200 0.431800 0.655600
-24.446100 44.099098 -3.039500 0.444100 0.624200
-24.935400 45.742901 -3.288800 0.469900 0.624200
-23.273100 44.479099 -6.170500 0.556600 0.655600
-23.881300 46.267799 -5.995500 0.521800 0.655600
-25.982700 45.641201 -5.974700 0.517100 0.624200
-25.718901 44.407902 -5.989100 0.533000 0.624200
-23.881300 46.267799 -5.995500 0.521800 0.655600
-23.323000 46.228001 -3.425200 0.469900 0.655600
-24.935400 45.742901 -3.288800 0.469900 0.624200
-25.982700 45.641201 -5.974700 0.517100 0.624200
-23.265499 44.290199 -3.614200 0.431800 0.655600
-23.273100 44.479099 -6.170500 0.386800 0.655600
-25.718901 44.407902 -5.989100 0.398000 0.624200
-24.446100 44.099098 -3.039500 0.444100 0.624200
-3.798500 31.552500 -0.388900 0.257800 0.582200
-4.685700 36.664101 -1.616400 0.239300 0.661600
-0.000000 37.009800 0.550700 0.310700 0.661600
-0.000000 31.552500 0.128500 0.310700 0.582200
-27.058001 43.733101 -1.471100 0.783900 0.527900
-26.775499 43.007000 -1.492900 0.799700 0.523000
-27.637899 42.321201 -1.984400 0.780200 0.502700
-28.100901 44.177299 -2.470000 0.756100 0.537200
-27.102699 45.320202 -5.735100 0.706300 0.587600
-26.246300 42.901402 -5.383600 0.663100 0.553800
-25.718901 44.407902 -5.989100 0.674700 0.592000
-25.982700 45.641201 -5.974700 0.701400 0.609900
-24.935400 45.742901 -3.288800 0.774000 0.616500
-26.753901 45.398300 -2.858600 0.766000 0.574200
-27.102699 45.320202 -5.735100 0.706300 0.587600
-25.982700 45.641201 -5.974700 0.701400 0.609900
-24.446100 44.099098 -3.039500 0.815000 0.599300
-25.718901 44.407902 -5.989100 0.885900 0.607200
-26.246300 42.901402 -5.383600 0.880100 0.569900
-28.380600 42.330502 -3.056600 0.741600 0.498200
-28.697901 44.238201 -3.477500 0.737900 0.538900
-28.100901 44.177299 -2.470000 0.756100 0.537200
-27.637899 42.321201 -1.984400 0.780200 0.502700
-28.380600 42.330502 -3.056600 0.741600 0.498200
-28.292801 42.543098 -4.446800 0.704200 0.514300
-28.543800 44.178001 -4.651400 0.718600 0.545700
-28.697901 44.238201 -3.477500 0.737900 0.538900
-26.753901 45.398300 -2.858600 0.766000 0.574200
-28.100901 44.177299 -2.470000 0.756100 0.537200
-28.697901 44.238201 -3.477500 0.737900 0.538900
-24.935400 45.742901 -3.288800 0.774000 0.616500
-24.446100 44.099098 -3.039500 0.815000 0.599300
-25.587200 43.557701 -2.038700 0.806300 0.556900
-26.117701 44.487900 -2.198700 0.788200 0.565100
-24.446100 44.099098 -3.039500 0.815000 0.599300
-26.246300 42.901402 -5.383600 0.880100 0.569900
-25.491899 42.827301 -2.370100 0.813300 0.554500
-25.587200 43.557701 -2.038700 0.806300 0.556900
-26.753901 45.398300 -2.858600 0.766000 0.574200
-24.935400 45.742901 -3.288800 0.774000 0.616500
-26.117701 44.487900 -2.198700 0.788200 0.565100
-0.000000 31.552500 0.128500 0.310700 0.582200
-0.000000 24.132099 -0.356700 0.310700 0.472800
-3.463700 23.872801 -0.356700 0.261200 0.472800
-3.798500 31.552500 -0.388900 0.257800 0.582200
-2.225300 60.301201 -1.334400 0.633200 0.187400
-0.793500 58.611801 -0.022400 0.561500 0.129800
-2.043500 58.694401 -1.722000 0.633000 0.119000
-0.793500 58.611801 -0.022400 0.561500 0.129800
-0.860300 57.339199 -0.345300 0.560600 0.087800
-2.071800 58.080299 -1.837600 0.632000 0.089900
-2.043500 58.694401 -1.722000 0.633000 0.119000
-2.071800 58.080299 -1.837600 0.632000 0.089900
-0.860300 57.339199 -0.345300 0.560600 0.087800
-0.509500 56.862801 -2.081200 0.570500 0.026600
-1.480400 57.287800 -3.167400 0.631900 0.022800
-0.179900 61.274700 0.058500 0.542100 0.223900
-0.785400 61.539799 -0.048800 0.562200 0.247600
-0.000000 61.912998 -0.048000 0.533800 0.254400
-15.884600 46.520500 -7.855800 0.590800 0.782100
-14.885000 46.974701 -7.946000 0.590800 0.803100
-16.136200 50.023998 -7.546200 0.529500 0.803100
-17.208200 49.477699 -7.512200 0.531700 0.782100
-15.636800 49.715099 -4.015700 0.469900 0.803100
-16.810101 49.139900 -3.928800 0.469900 0.782100
-17.208200 49.477699 -7.512200 0.531700 0.782100
-16.136200 50.023998 -7.546200 0.529500 0.803100
-16.192200 44.960400 -4.877100 0.398600 0.782100
-14.977100 45.689201 -4.821000 0.400900 0.803100
-14.885000 46.974701 -7.946000 0.347800 0.803100
-15.884600 46.520500 -7.855800 0.347800 0.782100
-16.810101 49.139900 -3.928800 0.469900 0.782100
-15.636800 49.715099 -4.015700 0.469900 0.803100
-14.977100 45.689201 -4.821000 0.400900 0.803100
-16.192200 44.960400 -4.877100 0.398600 0.782100
-13.779500 47.417198 -7.715300 0.590800 0.828100
-8.756500 49.321098 -7.632900 0.590800 0.916400
-9.827700 52.989700 -7.188500 0.526400 0.916400
-14.989100 50.565300 -7.297200 0.526200 0.828100
-15.636800 49.715099 -4.015700 0.469900 0.803100
-16.136200 50.023998 -7.546200 0.529500 0.803100
-14.989100 50.565300 -7.297200 0.526200 0.828100
-13.779500 47.417198 -7.715300 0.347800 0.823100
-14.885000 46.974701 -7.946000 0.347800 0.803100
-14.977100 45.689201 -4.821000 0.400900 0.803100
-1.239800 14.644800 -6.465300 0.774100 0.204900
-1.766900 13.754900 -2.918700 0.809900 0.215800
-1.716700 14.450400 -2.459200 0.808600 0.236100
-26.117701 44.487900 -2.198700 0.788200 0.565100
-25.587200 43.557701 -2.038700 0.806300 0.556900
-26.775499 43.007000 -1.492900 0.799700 0.523000
-27.058001 43.733101 -1.471100 0.783900 0.527900
-25.587200 43.557701 -2.038700 0.806300 0.556900
-25.491899 42.827301 -2.370100 0.813300 0.554500
-27.637899 42.321201 -1.984400 0.816200 0.507300
-26.775499 43.007000 -1.492900 0.799700 0.523000
-26.117701 44.487900 -2.198700 0.788200 0.565100
-27.058001 43.733101 -1.471100 0.783900 0.527900
-28.100901 44.177299 -2.470000 0.756100 0.537200
-8.184300 53.108700 -3.320400 0.469900 0.942000
-6.624100 53.529800 -2.653700 0.469900 0.977800
-7.813100 49.342701 -3.886900 0.407700 0.942000
-8.747800 53.770199 -7.353300 0.528600 0.942000
-9.827700 52.989700 -7.188500 0.526400 0.916400
-8.756500 49.321098 -7.632900 0.590800 0.916400
-6.775800 50.206501 -7.534500 0.590800 0.942000
-28.543800 44.178001 -4.651400 0.718600 0.545700
-27.102699 45.320202 -5.735100 0.706300 0.587600
-26.753901 45.398300 -2.858600 0.766000 0.574200
-28.697901 44.238201 -3.477500 0.737900 0.538900
-26.246300 42.901402 -5.383600 0.880100 0.569900
-28.292801 42.543098 -4.446800 0.879400 0.523100
-28.380600 42.330502 -3.056600 0.853500 0.507000
-28.100901 44.177299 -2.470000 0.756100 0.537200
-26.753901 45.398300 -2.858600 0.766000 0.574200
-26.117701 44.487900 -2.198700 0.788200 0.565100
-1.712600 0.024900 -9.195700 0.765100 0.147100
-3.252600 0.001600 -8.591000 0.751000 0.138000
-5.176800 -0.025000 -0.598300 0.748300 0.055100
-3.769300 -0.009000 1.132900 0.765800 0.040900
-0.000000 61.912998 -0.048000 0.533800 0.254400
-0.785400 61.539799 -0.048800 0.562200 0.247600
-0.000000 62.775902 -0.355700 0.533900 0.286800
-0.340300 31.400700 -9.928000 0.694900 0.384200
-0.845100 29.891001 -9.498900 0.702700 0.368200
-0.425600 30.069099 -1.507500 0.785600 0.393300
-0.509500 56.862801 -2.081200 0.308000 0.953500
-0.509500 56.862801 -2.081200 0.570500 0.026600
-0.860300 57.339199 -0.345300 0.560600 0.087800
-0.000000 57.320400 0.190300 0.533800 0.095300
-0.000000 56.862801 -2.081200 0.533800 0.019000
-5.598500 31.822901 -1.404300 0.847900 0.413200
-6.824000 22.193899 -3.251500 0.860400 0.301600
-7.453900 29.910801 -4.780100 0.884800 0.385400
-6.824000 22.193899 -3.251500 0.860400 0.301600
-5.317800 22.936800 -8.016200 0.916400 0.301600
-5.595300 29.761600 -8.492500 0.927500 0.375900
-7.453900 29.910801 -4.780100 0.884800 0.385400
-3.798500 31.552500 -0.388900 0.824000 0.411400
-2.189200 21.987900 -1.483700 0.804500 0.301600
-6.824000 22.193899 -3.251500 0.860400 0.301600
-5.598500 31.822901 -1.404300 0.847900 0.413200
-0.340300 31.400700 -9.928000 0.986800 0.385200
-4.970000 33.082802 -8.871900 0.938900 0.409500
-5.595300 29.761600 -8.492500 0.927500 0.375900
-0.845100 29.891001 -9.498900 0.978500 0.369500
-0.835600 22.853901 -8.210700 0.728900 0.301600
-2.189200 21.987900 -1.483700 0.804500 0.301600
-0.425600 30.069099 -1.507500 0.785600 0.393300
-0.845100 29.891001 -9.498900 0.702700 0.368200
-2.162800 35.743500 -9.599900 0.972400 0.433600
-5.283200 35.952900 -7.814600 0.933900 0.441300
-4.970000 33.082802 -8.871900 0.938900 0.409500
-0.340300 31.400700 -9.928000 0.986800 0.385200
-5.283200 35.952900 -7.814600 0.142200 0.631800
-5.919200 37.619099 -4.570300 0.183400 0.661600
-6.542300 35.480598 -4.902800 0.182500 0.631800
-5.919200 37.619099 -4.570300 0.183400 0.661600
-4.685700 36.664101 -1.616400 0.239300 0.661600
-5.598500 31.822901 -1.404300 0.231700 0.582200
-6.542300 35.480598 -4.902800 0.182500 0.631800
-0.474100 61.294899 -0.607800 0.567800 0.227200
-0.596000 60.268700 -0.255900 0.565100 0.185300
-2.225300 60.301201 -1.334400 0.633200 0.187400
-1.340700 61.343498 -1.024900 0.599900 0.231700
-1.340700 61.343498 -1.024900 0.599900 0.231700
-1.792100 61.563202 -0.648200 0.603400 0.250800
-0.785400 61.539799 -0.048800 0.562200 0.247600
-0.474100 61.294899 -0.607800 0.567800 0.227200
-0.000000 45.235802 -8.516300 0.061600 0.762900
-5.495700 46.043098 -6.732400 0.140100 0.788400
-2.827600 38.171799 -8.088300 0.114700 0.661600
-0.000000 38.221600 -8.073300 0.073400 0.661600
-0.425600 30.069099 -1.507500 0.785600 0.393300
-2.189200 21.987900 -1.483700 0.804500 0.301600
-3.798500 31.552500 -0.388900 0.824000 0.411400
-0.000000 31.547001 -9.939100 0.694200 0.388200
-0.340300 31.400700 -9.928000 0.694900 0.384200
-0.425600 30.069099 -1.507500 0.785600 0.393300
-0.000000 30.215401 -1.522000 0.785000 0.398100
-21.061199 44.183601 -7.611200 0.590800 0.698800
-15.884600 46.520500 -7.855800 0.590800 0.782100
-17.208200 49.477699 -7.512200 0.531700 0.782100
-22.585199 48.327702 -7.594400 0.533600 0.698800
-22.348700 46.932201 -2.822400 0.469900 0.674700
-23.337700 47.268200 -6.945000 0.530800 0.674700
-22.585199 48.327702 -7.594400 0.533600 0.698800
-21.061199 44.183601 -7.611200 0.347800 0.693400
-22.105101 44.119598 -7.074000 0.362600 0.674700
-21.936399 43.055199 -3.733600 0.412700 0.674700
-0.340300 31.400700 -9.928000 0.986800 0.385200
-0.000000 31.547001 -9.939100 0.990600 0.386300
-0.000000 35.795200 -9.599900 0.995500 0.431600
-2.162800 35.743500 -9.599900 0.972400 0.433600
-5.919200 37.619099 -4.570300 0.183400 0.661600
-5.283200 35.952900 -7.814600 0.142200 0.631800
-2.162800 35.743500 -9.599900 0.096700 0.631800
-2.827600 38.171799 -8.088300 0.114700 0.661600
-28.543800 44.178001 -4.651400 0.718600 0.545700
-28.292801 42.543098 -4.446800 0.704200 0.514300
-26.246300 42.901402 -5.383600 0.663100 0.553800
-27.102699 45.320202 -5.735100 0.706300 0.587600
-25.491899 42.827301 -2.370100 0.813300 0.554500
-28.380600 42.330502 -3.056600 0.853500 0.507000
-27.637899 42.321201 -1.984400 0.816200 0.507300
-26.246300 42.901402 -5.383600 0.880100 0.569900
-28.380600 42.330502 -3.056600 0.853500 0.507000
-25.491899 42.827301 -2.370100 0.813300 0.554500
-2.162800 35.743500 -9.599900 0.096700 0.631800
-0.000000 35.795200 -9.599900 0.068300 0.631800
-0.000000 38.221600 -8.073300 0.073400 0.661600
-2.827600 38.171799 -8.088300 0.114700 0.661600
-0.706900 62.538601 -0.289700 0.409100 0.538600
-1.838200 62.255798 -0.802600 0.430000 0.507000
-1.901400 63.532299 -1.247600 0.451500 0.531400
-0.672300 63.485901 -0.421800 0.426300 0.552700
-1.901400 63.532299 -1.247600 0.451500 0.531400
-1.838200 62.255798 -0.802600 0.430000 0.507000
-3.194200 60.597198 -3.460400 0.492000 0.451400
-2.758700 63.532299 -3.348800 0.499700 0.518700
-2.758700 63.532299 -3.348800 0.499700 0.518700
-3.194200 60.597198 -3.460400 0.492000 0.451400
-3.446000 60.597198 -5.980300 0.552100 0.445900
-3.010600 63.532299 -5.868700 0.554200 0.511800
-3.194200 60.597198 -3.460400 0.492000 0.451400
-1.838200 62.255798 -0.802600 0.430000 0.507000
-2.336800 60.597198 -1.072500 0.434100 0.460700
-2.130500 53.628601 -1.359200 0.416700 0.297200
-4.088800 54.879799 -3.460400 0.486800 0.316000
-3.194200 60.597198 -3.460400 0.492000 0.451400
-2.336800 60.597198 -1.072500 0.434100 0.460700
-4.088800 54.879799 -3.460400 0.486800 0.316000
-4.340700 55.234299 -6.210400 0.542400 0.331500
-3.446000 60.597198 -5.980300 0.552100 0.445900
-3.194200 60.597198 -3.460400 0.492000 0.451400
-3.010600 63.532299 -5.868700 0.554200 0.511800
-3.446000 60.597198 -5.980300 0.552100 0.445900
-2.517200 60.597198 -7.879200 0.601000 0.450200
-1.932100 63.532299 -7.311200 0.591100 0.519300
-3.446000 60.597198 -5.980300 0.552100 0.445900
-4.340700 55.234299 -6.210400 0.542400 0.331500
-2.990300 54.496300 -8.246000 0.608400 0.297700
-2.517200 60.597198 -7.879200 0.601000 0.450200
-1.932100 63.532299 -7.311200 0.591100 0.519300
-2.517200 60.597198 -7.879200 0.601000 0.450200
-0.000000 60.597198 -8.812800 0.661800 0.464200
-0.000000 63.532299 -8.174500 0.634800 0.537700
-2.990300 54.496300 -8.246000 0.608400 0.297700
-0.000000 54.050800 -8.782700 0.682300 0.308600
-0.000000 60.597198 -8.812800 0.661800 0.464200
-2.517200 60.597198 -7.879200 0.601000 0.450200
-0.672300 63.485901 -0.421800 0.426300 0.552700
-1.901400 63.532299 -1.247600 0.451500 0.531400
-1.171400 65.057899 -2.205500 0.482000 0.564300
-1.901400 63.532299 -1.247600 0.451500 0.531400
-2.758700 63.532299 -3.348800 0.499700 0.518700
-1.795600 65.057899 -4.806100 0.538600 0.556700
-1.171400 65.057899 -2.205500 0.482000 0.564300
-2.758700 63.532299 -3.348800 0.499700 0.518700
-3.010600 63.532299 -5.868700 0.554200 0.511800
-1.795600 65.057899 -4.806100 0.538600 0.556700
-3.010600 63.532299 -5.868700 0.554200 0.511800
-1.932100 63.532299 -7.311200 0.591100 0.519300
-0.000000 65.057899 -6.421400 0.588900 0.582100
-1.795600 65.057899 -4.806100 0.538600 0.556700
-1.932100 63.532299 -7.311200 0.591100 0.519300
-0.000000 63.532299 -8.174500 0.634800 0.537700
-0.000000 65.057899 -6.421400 0.588900 0.582100
-1.171400 65.057899 -2.205500 0.482000 0.564300
-1.795600 65.057899 -4.806100 0.538600 0.556700
-0.000000 65.560898 -4.058400 0.523700 0.603300
-1.795600 65.057899 -4.806100 0.538600 0.556700
-0.000000 65.057899 -6.421400 0.588900 0.582100
-0.000000 65.560898 -4.058400 0.523700 0.603300
-0.672300 63.485901 -0.421800 0.426300 0.552700
-1.171400 65.057899 -2.205500 0.482000 0.564300
--1.171400 65.057899 -2.205500 0.466700 0.607600
--0.672300 63.485901 -0.421800 0.416100 0.581700
-0.706900 62.538601 -0.289700 0.409100 0.538600
-0.672300 63.485901 -0.421800 0.426300 0.552700
-0.000000 62.538601 -0.140300 0.398200 0.559100
-0.672300 63.485901 -0.421800 0.426300 0.552700
--0.672300 63.485901 -0.421800 0.416100 0.581700
-0.000000 62.538601 -0.140300 0.398200 0.559100
-2.130500 53.628601 -1.359200 0.416700 0.297200
-2.336800 60.597198 -1.072500 0.434100 0.460700
-1.393700 60.597198 -3.164700 0.380300 0.463400
-1.187300 53.628601 -3.164700 0.369000 0.300200
--0.706900 62.538601 -0.289700 0.409100 0.538600
--0.672300 63.485901 -0.421800 0.426300 0.552800
--1.901400 63.532299 -1.247600 0.451500 0.531500
--1.838200 62.255798 -0.802600 0.430000 0.507100
--1.901400 63.532299 -1.247600 0.451500 0.531500
--2.758700 63.532299 -3.348800 0.499700 0.518800
--3.194200 60.597198 -3.460400 0.492000 0.451500
--1.838200 62.255798 -0.802600 0.430000 0.507100
--2.758700 63.532299 -3.348800 0.499700 0.518800
--3.010600 63.532299 -5.868700 0.554200 0.511900
--3.446000 60.597198 -5.980300 0.552100 0.445900
--3.194200 60.597198 -3.460400 0.492000 0.451500
--3.194200 60.597198 -3.460400 0.492000 0.451500
--2.336800 60.597198 -1.072500 0.434000 0.460800
--1.838200 62.255798 -0.802600 0.430000 0.507100
--2.130500 53.628601 -1.359200 0.416600 0.297300
--2.336800 60.597198 -1.072500 0.434000 0.460800
--3.194200 60.597198 -3.460400 0.492000 0.451500
--4.088800 54.879799 -3.460400 0.486700 0.316100
--4.088800 54.879799 -3.460400 0.486700 0.316100
--3.194200 60.597198 -3.460400 0.492000 0.451500
--3.446000 60.597198 -5.980300 0.552100 0.445900
--4.340700 55.234299 -6.210400 0.542400 0.331500
--3.010600 63.532299 -5.868700 0.554200 0.511900
--1.932100 63.532299 -7.311200 0.591100 0.519300
--2.517200 60.597198 -7.879200 0.601000 0.450300
--3.446000 60.597198 -5.980300 0.552100 0.445900
--3.446000 60.597198 -5.980300 0.552100 0.445900
--2.517200 60.597198 -7.879200 0.601000 0.450300
--2.990300 54.496300 -8.246000 0.608300 0.297700
--4.340700 55.234299 -6.210400 0.542400 0.331500
--1.932100 63.532299 -7.311200 0.591100 0.519300
-0.000000 63.532299 -8.174500 0.634800 0.537700
-0.000000 60.597198 -8.812800 0.661800 0.464200
--2.517200 60.597198 -7.879200 0.601000 0.450300
--2.990300 54.496300 -8.246000 0.608300 0.297700
--2.517200 60.597198 -7.879200 0.601000 0.450300
-0.000000 60.597198 -8.812800 0.661800 0.464200
-0.000000 54.050800 -8.782700 0.682300 0.308600
--0.672300 63.485901 -0.421800 0.426300 0.552800
--1.171400 65.057899 -2.205500 0.482000 0.564400
--1.901400 63.532299 -1.247600 0.451500 0.531500
--1.901400 63.532299 -1.247600 0.451500 0.531500
--1.171400 65.057899 -2.205500 0.482000 0.564400
--1.795600 65.057899 -4.806100 0.538600 0.556700
--2.758700 63.532299 -3.348800 0.499700 0.518800
--2.758700 63.532299 -3.348800 0.499700 0.518800
--1.795600 65.057899 -4.806100 0.538600 0.556700
--3.010600 63.532299 -5.868700 0.554200 0.511900
--3.010600 63.532299 -5.868700 0.554200 0.511900
--1.795600 65.057899 -4.806100 0.538600 0.556700
-0.000000 65.057899 -6.421400 0.589000 0.582100
--1.932100 63.532299 -7.311200 0.591100 0.519300
--1.932100 63.532299 -7.311200 0.591100 0.519300
-0.000000 65.057899 -6.421400 0.589000 0.582100
-0.000000 63.532299 -8.174500 0.634800 0.537700
--1.171400 65.057899 -2.205500 0.482000 0.564400
-0.000000 65.560898 -4.058400 0.523700 0.603400
--1.795600 65.057899 -4.806100 0.538600 0.556700
--1.795600 65.057899 -4.806100 0.538600 0.556700
-0.000000 65.560898 -4.058400 0.523700 0.603400
-0.000000 65.057899 -6.421400 0.589000 0.582100
--1.171400 65.057899 -2.205500 0.466700 0.607600
-1.171400 65.057899 -2.205500 0.482000 0.564300
-0.000000 65.560898 -4.058400 0.523700 0.603300
--0.706900 62.538601 -0.289700 0.409100 0.538600
-0.000000 62.538601 -0.140300 0.398200 0.559200
--0.672300 63.485901 -0.421800 0.426300 0.552800
--2.130500 53.628601 -1.359200 0.416600 0.297300
--1.187300 53.628601 -3.164700 0.369000 0.300300
--1.393700 60.597198 -3.164700 0.380200 0.463500
--2.336800 60.597198 -1.072500 0.434000 0.460800
-8.704300 24.905701 -6.036500 0.967100 0.466200
-7.984800 25.127701 -6.177400 0.966400 0.464600
-7.649900 27.558001 -5.856100 0.993500 0.506600
-8.503900 27.435900 -5.670300 0.976600 0.507100
-6.463600 36.223400 -3.704900 0.962000 0.710700
-5.778000 35.994701 -1.773100 0.922200 0.717000
-7.451900 27.210300 -3.504400 0.930000 0.516400
-8.503900 27.435900 -5.670300 0.976600 0.507100
-5.115000 35.782600 -2.051700 0.916000 0.725700
-6.597900 27.332300 -3.690200 0.913000 0.515500
-7.451900 27.210300 -3.504400 0.930000 0.516400
-5.778000 35.994701 -1.773100 0.922200 0.717000
-5.743400 36.019600 -3.995900 0.971100 0.718900
-6.463600 36.223400 -3.704900 0.962000 0.710700
-8.503900 27.435900 -5.670300 0.976600 0.507100
-7.649900 27.558001 -5.856100 0.993500 0.506600
-7.451900 27.210300 -3.504400 0.930000 0.516400
-6.597900 27.332300 -3.690200 0.913000 0.515500
-7.984800 25.127701 -6.177400 0.966400 0.464600
-8.704300 24.905701 -6.036500 0.967100 0.466200
-7.451900 27.210300 -3.504400 0.930000 0.516400
-8.704300 24.905701 -6.036500 0.967100 0.466200
-8.503900 27.435900 -5.670300 0.976600 0.507100
-6.463600 36.223400 -3.704900 0.962000 0.710700
-5.743400 36.019600 -3.995900 0.971100 0.718900
-5.115000 35.782600 -2.051700 0.916000 0.725700
-5.778000 35.994701 -1.773100 0.922200 0.717000
-4.513000 55.007702 -5.909800 0.935300 0.759300
-4.291100 55.098900 -5.871800 0.932300 0.755300
-4.207800 55.799599 -6.651700 0.967500 0.768900
-4.871900 55.799599 -6.765400 0.957200 0.775300
-2.904000 62.455601 -5.700500 0.954300 0.968000
-2.764700 62.455601 -4.128400 0.909900 0.975800
-4.736600 55.799599 -5.153900 0.919700 0.781300
-4.871900 55.799599 -6.765400 0.957200 0.775300
-2.764700 62.455601 -4.128400 0.909900 0.975800
-4.072400 55.799599 -5.040200 0.904100 0.777700
-4.736600 55.799599 -5.153900 0.919700 0.781300
-2.904000 62.455601 -5.700500 0.954300 0.968000
-4.871900 55.799599 -6.765400 0.957200 0.775300
-4.207800 55.799599 -6.651700 0.967500 0.768900
-4.736600 55.799599 -5.153900 0.919700 0.781300
-4.072400 55.799599 -5.040200 0.904100 0.777700
-4.291100 55.098900 -5.871800 0.932300 0.755300
-4.513000 55.007702 -5.909800 0.935300 0.759300
-4.736600 55.799599 -5.153900 0.919700 0.781300
-4.513000 55.007702 -5.909800 0.935300 0.759300
-4.871900 55.799599 -6.765400 0.957200 0.775300
-4 0 1 2 3
-4 4 5 6 7
-3 8 9 10
-4 11 12 13 14
-4 15 16 17 18
-4 19 20 21 22
-4 23 24 25 26
-4 27 28 29 30
-4 31 32 33 34
-4 35 36 37 38
-4 39 40 41 42
-4 43 44 45 46
-3 47 48 49
-4 50 51 52 53
-4 54 55 56 57
-4 58 59 60 61
-4 62 63 64 65
-4 66 67 68 69
-4 70 71 72 73
-4 74 75 76 77
-3 78 79 80
-4 81 82 83 84
-3 85 86 87
-4 88 89 90 91
-3 92 93 94
-4 95 96 97 98
-4 99 100 101 102
-4 103 104 105 106
-4 107 108 109 110
-4 111 112 113 114
-4 115 116 117 118
-4 119 120 121 122
-4 123 124 125 126
-4 127 128 129 130
-4 131 132 133 134
-4 135 136 137 138
-3 139 140 141
-3 142 143 144
-4 145 146 147 148
-4 149 150 151 152
-4 153 154 155 156
-3 157 158 159
-3 160 161 162
-4 163 164 165 166
-4 167 168 169 170
-4 171 172 173 174
-3 175 176 177
-4 178 179 180 181
-4 182 183 184 185
-3 186 187 188
-3 189 190 191
-4 192 193 194 195
-4 196 197 198 199
-4 200 201 202 203
-4 204 205 206 207
-3 208 209 210
-3 211 212 213
-3 214 215 216
-4 217 218 219 220
-4 221 222 223 224
-3 225 226 227
-4 228 229 230 231
-4 232 233 234 235
-3 236 237 238
-3 239 240 241
-3 242 243 244
-3 245 246 247
-4 248 249 250 251
-4 252 253 254 255
-4 256 257 258 259
-4 260 261 262 263
-4 264 265 266 267
-4 268 269 270 271
-4 272 273 274 275
-4 276 277 278 279
-4 280 281 282 283
-3 284 285 286
-3 287 288 289
-4 290 291 292 293
-4 294 295 296 297
-4 298 299 300 301
-3 302 303 304
-4 305 306 307 308
-4 309 310 311 312
-4 313 314 315 316
-4 317 318 319 320
-4 321 322 323 324
-4 325 326 327 328
-4 329 330 331 332
-4 333 334 335 336
-4 337 338 339 340
-4 341 342 343 344
-4 345 346 347 348
-4 349 350 351 352
-3 353 354 355
-4 356 357 358 359
-4 360 361 362 363
-3 364 365 366
-4 367 368 369 370
-4 371 372 373 374
-3 375 376 377
-4 378 379 380 381
-3 382 383 384
-4 385 386 387 388
-4 389 390 391 392
-3 393 394 395
-4 396 397 398 399
-4 400 401 402 403
-4 404 405 406 407
-4 408 409 410 411
-4 412 413 414 415
-3 416 417 418
-3 419 420 421
-3 422 423 424
-4 425 426 427 428
-4 429 430 431 432
-3 433 434 435
-3 436 437 438
-4 439 440 441 442
-4 443 444 445 446
-3 447 448 449
-3 450 451 452
-4 453 454 455 456
-3 457 458 459
-3 460 461 462
-3 463 464 465
-4 466 467 468 469
-3 470 471 472
-4 473 474 475 476
-4 477 478 479 480
-4 481 482 483 484
-4 485 486 487 488
-4 489 490 491 492
-3 493 494 495
-4 496 497 498 499
-4 500 501 502 503
-4 504 505 506 507
-4 508 509 510 511
-3 512 513 514
-4 515 516 517 518
-4 519 520 521 522
-3 523 524 525
-3 526 527 528
-3 529 530 531
-4 532 533 534 535
-4 536 537 538 539
-4 540 541 542 543
-4 544 545 546 547
-3 548 549 550
-3 551 552 553
-4 554 555 556 557
-3 558 559 560
-4 561 562 563 564
-4 565 566 567 568
-4 569 570 571 572
-3 573 574 575
-4 576 577 578 579
-4 580 581 582 583
-4 584 585 586 587
-4 588 589 590 591
-4 592 593 594 595
-4 596 597 598 599
-4 600 601 602 603
-4 604 605 606 607
-4 608 609 610 611
-3 612 613 614
-4 615 616 617 618
-4 619 620 621 622
-4 623 624 625 626
-4 627 628 629 630
-4 631 632 633 634
-4 635 636 637 638
-4 639 640 641 642
-3 643 644 645
-4 646 647 648 649
-3 650 651 652
-4 653 654 655 656
-3 657 658 659
-4 660 661 662 663
-4 664 665 666 667
-4 668 669 670 671
-4 672 673 674 675
-4 676 677 678 679
-4 680 681 682 683
-4 684 685 686 687
-4 688 689 690 691
-4 692 693 694 695
-4 696 697 698 699
-4 700 701 702 703
-3 704 705 706
-3 707 708 709
-4 710 711 712 713
-4 714 715 716 717
-4 718 719 720 721
-3 722 723 724
-3 725 726 727
-4 728 729 730 731
-4 732 733 734 735
-4 736 737 738 739
-3 740 741 742
-4 743 744 745 746
-4 747 748 749 750
-3 751 752 753
-3 754 755 756
-4 757 758 759 760
-4 761 762 763 764
-4 765 766 767 768
-4 769 770 771 772
-3 773 774 775
-3 776 777 778
-3 779 780 781
-4 782 783 784 785
-4 786 787 788 789
-3 790 791 792
-4 793 794 795 796
-4 797 798 799 800
-3 801 802 803
-3 804 805 806
-3 807 808 809
-3 810 811 812
-4 813 814 815 816
-4 817 818 819 820
-4 821 822 823 824
-4 825 826 827 828
-4 829 830 831 832
-4 833 834 835 836
-4 837 838 839 840
-4 841 842 843 844
-4 845 846 847 848
-3 849 850 851
-3 852 853 854
-4 855 856 857 858
-4 859 860 861 862
-4 863 864 865 866
-3 867 868 869
-4 870 871 872 873
-4 874 875 876 877
-4 878 879 880 881
-4 882 883 884 885
-4 886 887 888 889
-4 890 891 892 893
-4 894 895 896 897
-4 898 899 900 901
-4 902 903 904 905
-4 906 907 908 909
-4 910 911 912 913
-4 914 915 916 917
-3 918 919 920
-4 921 922 923 924
-4 925 926 927 928
-3 929 930 931
-4 932 933 934 935
-4 936 937 938 939
-3 940 941 942
-4 943 944 945 946
-3 947 948 949
-4 950 951 952 953
-4 954 955 956 957
-3 958 959 960
-4 961 962 963 964
-4 965 966 967 968
-4 969 970 971 972
-4 973 974 975 976
-4 977 978 979 980
-3 981 982 983
-3 984 985 986
-3 987 988 989
-4 990 991 992 993
-4 994 995 996 997
-3 998 999 1000
-3 1001 1002 1003
-4 1004 1005 1006 1007
-4 1008 1009 1010 1011
-3 1012 1013 1014
-3 1015 1016 1017
-4 1018 1019 1020 1021
-3 1022 1023 1024
-3 1025 1026 1027
-3 463 1028 464
-4 1029 1030 1031 1032
-3 1033 1034 1035
-4 1036 1037 1038 1039
-4 1040 1041 1042 1043
-4 1044 1045 1046 1047
-4 1048 1049 1050 1051
-4 1052 1053 1054 1055
-3 1056 1057 1058
-4 1059 1060 1061 1062
-4 1063 1064 1065 1066
-4 1067 1068 1069 1070
-4 1071 1072 1073 1074
-3 1075 1076 1077
-4 1078 1079 1080 1081
-4 1082 1083 1084 1085
-3 1086 1087 1088
-3 1089 1090 1091
-4 1092 1093 1094 1095
-4 1096 1097 1098 1099
-4 1100 1101 1102 1103
-3 1104 1105 1106
-3 1107 1108 1109
-4 1110 1111 1112 1113
-4 1114 1115 1116 1117
-4 1118 1119 1120 1121
-4 1122 1123 1124 1125
-3 1126 1127 1128
-4 1129 1130 1131 1132
-4 1133 1134 1135 1136
-4 1137 1138 1139 1140
-4 1141 1142 1143 1144
-4 1145 1146 1147 1148
-4 1149 1150 1151 1152
-3 1153 1154 1155
-4 1156 1157 1158 1159
-3 1160 1161 1162
-4 1163 1164 1165 1166
-3 1167 1168 1169
-3 1170 1171 1172
-3 1173 1174 1175
-4 1176 1177 1178 1179
-3 1180 1181 1182
-3 1183 1184 1185
-4 1186 1187 1188 1189
-4 1190 1191 1192 1193
-4 1194 1195 1196 1197
-4 1198 1199 1200 1201
-3 1202 1203 1204
-4 1205 1206 1207 1208
-4 1209 1210 1211 1212
-4 1213 1214 1215 1216
-4 1217 1218 1219 1220
-4 1221 1222 1223 1224
-4 1225 1226 1227 1228
-3 1229 1230 1231
-4 1232 1233 1234 1235
-3 1236 1237 1238
-4 1239 1240 1241 1242
-3 1243 1244 1245
-3 1246 1247 1248
-3 1249 1250 1251
-3 1252 1253 1254
-3 1255 1256 1257
-4 1258 1259 1260 1261
-4 1262 1263 1264 1265
-4 1266 1267 1268 1269
-4 1270 1271 1272 1273
-4 1274 1275 1276 1277
-4 1278 1279 1280 1281
-3 1282 1283 1284
-4 1285 1286 1287 1288
-4 1289 1290 1291 1292
-4 1293 1294 1295 1296
-3 1297 1298 1299
-3 1300 1301 1302
-4 1303 1304 1305 1306
-3 1307 1308 1309
diff --git a/src/tests/evas/meshes/ply/Normal_NoUVs_Colors.ply b/src/tests/evas/meshes/ply/Normal_NoUVs_Colors.ply
deleted file mode 100644
index 77a646fd50..0000000000
--- a/src/tests/evas/meshes/ply/Normal_NoUVs_Colors.ply
+++ /dev/null
@@ -1,1682 +0,0 @@
-ply
-format ascii 1.0
-comment Created by Blender 2.69 (sub 0) - www.blender.org, source file: ''
-element vertex 1310
-property float x
-property float y
-property float z
-property float nx
-property float ny
-property float nz
-property uchar red
-property uchar green
-property uchar blue
-element face 356
-property list uchar uint vertex_indices
-end_header
--4.649800 14.945700 -8.785600 -0.021734 0.023193 -0.999495 0 253 27
--2.020300 14.610600 -8.278800 -0.021734 0.023193 -0.999495 0 253 27
--1.712600 0.024900 -9.195700 -0.021734 0.023193 -0.999495 254 68 73
--3.252600 0.001600 -8.591000 -0.021734 0.023193 -0.999495 254 68 73
--4.649800 14.945700 -8.785600 -0.983809 -0.091724 -0.153967 254 68 73
--3.252600 0.001600 -8.591000 -0.983809 -0.091724 -0.153967 254 88 92
--4.089400 2.633000 -5.031300 -0.983809 -0.091724 -0.153967 254 68 73
--5.308800 13.910900 -3.738700 -0.983809 -0.091724 -0.153967 254 68 73
--1.553600 3.059500 -4.173500 0.398905 -0.098999 0.911633 18 0 253
--1.766900 13.754900 -2.918700 0.398905 -0.098999 0.911633 0 254 27
--3.061600 3.537800 -3.461700 0.398905 -0.098999 0.911633 18 0 252
--1.553600 3.059500 -4.173500 0.977159 -0.002648 0.212493 18 0 253
--0.626000 0.031700 -8.336200 0.977159 -0.002648 0.212493 19 0 253
--0.971400 14.644800 -6.706400 0.977159 -0.002648 0.212493 27 229 30
--1.766900 13.754900 -2.918700 0.977159 -0.002648 0.212493 0 253 27
--5.495700 46.043098 -6.732400 -0.860977 -0.085411 -0.501422 254 254 254
--2.827600 38.171799 -8.088300 -0.860977 -0.085411 -0.501422 254 254 254
--5.919200 37.619099 -4.570300 -0.860977 -0.085411 -0.501422 254 254 254
--6.029500 46.188801 -3.956000 -0.860977 -0.085411 -0.501422 254 254 254
--4.685700 36.664101 -1.616400 -0.917535 -0.032092 0.396359 13 240 28
--4.298500 47.001099 -0.058900 -0.917535 -0.032092 0.396359 5 247 27
--6.029500 46.188801 -3.956000 -0.917535 -0.032092 0.396359 0 253 27
--5.919200 37.619099 -4.570300 -0.917535 -0.032092 0.396359 0 253 27
--6.775800 50.206501 -7.534500 -0.223809 0.028781 -0.974208 0 254 27
--7.252500 54.524502 -7.615000 -0.223809 0.028781 -0.974208 0 254 27
-0.000000 53.738098 -8.986800 -0.223809 0.028781 -0.974208 0 254 27
-0.000000 50.037800 -9.413700 -0.223809 0.028781 -0.974208 0 254 27
--7.252500 54.524502 -7.615000 -0.375359 0.901424 0.215731 0 253 27
--8.747800 53.770199 -7.353300 -0.375359 0.901424 0.215731 0 253 27
--8.184300 53.108700 -3.320400 -0.375359 0.901424 0.215731 0 253 27
--6.624100 53.529800 -2.653700 -0.375359 0.901424 0.215731 0 253 27
--9.827700 52.989700 -7.188500 -0.412168 0.895237 0.169320 0 253 27
--14.989100 50.565300 -7.297200 -0.412168 0.895237 0.169320 0 253 27
--15.636800 49.715099 -4.015700 -0.412168 0.895237 0.169320 0 253 27
--9.508400 52.403099 -3.672700 -0.412168 0.895237 0.169320 0 253 27
-0.000000 37.009800 0.550700 -0.339751 -0.089043 0.936291 172 124 55
-0.000000 47.287498 1.094200 -0.339751 -0.089043 0.936291 0 252 27
--4.298500 47.001099 -0.058900 -0.339751 -0.089043 0.936291 0 253 27
--4.685700 36.664101 -1.616400 -0.339751 -0.089043 0.936291 13 226 40
-0.000000 53.738098 -8.986800 -0.139268 0.841727 -0.521633 0 254 27
--7.252500 54.524502 -7.615000 -0.139268 0.841727 -0.521633 0 254 27
--2.321200 55.471001 -5.570800 -0.139268 0.841727 -0.521633 0 254 27
-0.000000 55.950600 -7.250100 -0.139268 0.841727 -0.521633 0 254 27
--6.624100 53.529800 -2.653700 -0.510018 -0.190129 0.838888 0 253 27
--7.813100 49.342701 -3.886900 -0.510018 -0.190129 0.838888 0 253 27
--6.029500 46.188801 -3.956000 -0.510018 -0.190129 0.838888 0 253 27
--3.773800 51.093601 -1.034300 -0.510018 -0.190129 0.838888 0 253 27
--6.029500 46.188801 -3.956000 -0.909885 0.202901 0.361857 0 253 27
--4.298500 47.001099 -0.058900 -0.909885 0.202901 0.361857 5 247 27
--3.773800 51.093601 -1.034300 -0.909885 0.202901 0.361857 0 253 27
-0.000000 50.880199 0.110000 -0.266804 0.255185 0.929352 0 253 27
--3.773800 51.093601 -1.034300 -0.266804 0.255185 0.929352 0 253 27
--4.298500 47.001099 -0.058900 -0.266804 0.255185 0.929352 0 253 27
-0.000000 47.287498 1.094200 -0.266804 0.255185 0.929352 0 252 27
--16.136200 50.023998 -7.546200 0.129075 0.179950 -0.975171 0 249 27
--14.989100 50.565300 -7.297200 0.129075 0.179950 -0.975171 0 252 27
--13.779500 47.417198 -7.715300 0.129075 0.179950 -0.975171 0 253 27
--14.885000 46.974701 -7.946000 0.129075 0.179950 -0.975171 0 251 27
--13.779500 47.417198 -7.715300 0.437873 -0.882573 -0.171264 0 253 27
--8.756500 49.321098 -7.632900 0.437873 -0.882573 -0.171264 0 253 27
--8.927200 49.128502 -4.128200 0.437873 -0.882573 -0.171264 0 253 27
--14.977100 45.689201 -4.821000 0.437873 -0.882573 -0.171264 0 248 31
--17.208200 49.477699 -7.512200 -0.268622 0.938905 0.215175 0 253 27
--22.585199 48.327702 -7.594400 -0.268622 0.938905 0.215175 0 253 27
--22.348700 46.932201 -2.822400 -0.268622 0.938905 0.215175 72 195 37
--16.810101 49.139900 -3.928800 -0.268622 0.938905 0.215175 0 253 27
--21.936399 43.055199 -3.733600 0.256926 -0.186034 0.948357 24 182 75
--16.192200 44.960400 -4.877100 0.256926 -0.186034 0.948357 0 236 42
--16.810101 49.139900 -3.928800 0.256926 -0.186034 0.948357 0 253 27
--22.348700 46.932201 -2.822400 0.256926 -0.186034 0.948357 72 195 37
--22.105101 44.119598 -7.074000 -0.471869 -0.161034 -0.866838 254 254 254
--23.337700 47.268200 -6.945000 -0.471869 -0.161034 -0.866838 254 254 254
--22.585199 48.327702 -7.594400 -0.471869 -0.161034 -0.866838 254 254 254
--21.061199 44.183601 -7.611200 -0.471869 -0.161034 -0.866838 254 254 254
--15.884600 46.520500 -7.855800 0.312108 -0.901546 -0.299673 0 250 27
--16.192200 44.960400 -4.877100 0.312108 -0.901546 -0.299673 0 253 27
--21.936399 43.055199 -3.733600 0.312108 -0.901546 -0.299673 0 253 27
--21.061199 44.183601 -7.611200 0.312108 -0.901546 -0.299673 52 208 31
--5.598500 31.822901 -1.405400 -0.899226 0.141575 0.413943 133 152 48
--7.174300 32.815300 -5.168000 -0.899226 0.141575 0.413943 0 253 27
--7.453900 29.910801 -4.782000 -0.899226 0.141575 0.413943 0 253 27
--4.970000 33.082802 -8.871300 -0.875321 0.068314 -0.478692 0 253 27
--5.595300 29.761600 -8.491100 -0.875321 0.068314 -0.478692 0 253 27
--7.453900 29.910801 -4.782000 -0.875321 0.068314 -0.478692 0 253 27
--7.174300 32.815300 -5.168000 -0.875321 0.068314 -0.478692 0 253 27
--6.827700 20.858999 -3.051400 -0.895608 -0.345701 -0.279959 254 254 254
--5.426000 21.341299 -8.131100 -0.895608 -0.345701 -0.279959 254 254 254
--6.194700 19.576300 -3.492500 -0.895608 -0.345701 -0.279959 254 254 254
--0.835600 22.853901 -8.203000 -0.044062 0.086408 -0.995285 0 253 27
--0.899900 21.410400 -8.342700 -0.044062 0.086408 -0.995285 0 253 27
--5.426000 21.341299 -8.131100 -0.044062 0.086408 -0.995285 0 253 27
--5.317800 22.936800 -8.014600 -0.044062 0.086408 -0.995285 0 253 27
--0.899900 21.410400 -8.342700 0.986890 0.053202 0.152371 219 57 99
--1.957400 20.620800 -1.217700 0.986890 0.053202 0.152371 254 68 73
--1.853000 19.164200 -1.385300 0.986890 0.053202 0.152371 254 68 73
--6.194700 19.576300 -3.492500 -0.393090 -0.299033 0.869517 114 254 128
--1.853000 19.164200 -1.385300 -0.393090 -0.299033 0.869517 242 254 242
--1.957400 20.620800 -1.217700 -0.393090 -0.299033 0.869517 242 254 242
--6.827700 20.858999 -3.051400 -0.393090 -0.299033 0.869517 168 254 177
--5.259600 15.490400 -9.599400 0.139442 0.106302 -0.984508 0 253 27
--5.426000 21.341299 -8.131100 0.139442 0.106302 -0.984508 0 253 27
--0.899900 21.410400 -8.342700 0.139442 0.106302 -0.984508 0 253 27
--0.294400 16.169500 -7.962700 0.139442 0.106302 -0.984508 0 253 27
--0.294400 16.169500 -7.962700 0.977002 0.117101 0.178197 0 253 27
--0.899900 21.410400 -8.342700 0.977002 0.117101 0.178197 1 216 59
--1.853000 19.164200 -1.385300 0.977002 0.117101 0.178197 0 253 27
--1.221800 14.450400 -2.004100 0.977002 0.117101 0.178197 0 253 27
--1.853000 19.164200 -1.385300 -0.395956 -0.119778 0.910424 254 254 254
--6.194700 19.576300 -3.492500 -0.395956 -0.119778 0.910424 254 254 254
--6.498700 14.643000 -4.000600 -0.395956 -0.119778 0.910424 91 254 108
--1.221800 14.450400 -2.004100 -0.395956 -0.119778 0.910424 0 254 27
--6.498700 14.643000 -4.000600 -0.982418 0.045709 -0.181012 254 254 254
--6.194700 19.576300 -3.492500 -0.982418 0.045709 -0.181012 254 254 254
--5.426000 21.341299 -8.131100 -0.982418 0.045709 -0.181012 254 254 254
--5.259600 15.490400 -9.599400 -0.982418 0.045709 -0.181012 254 254 254
--7.813100 49.342701 -3.886900 -0.881229 -0.394976 -0.259672 254 68 73
--6.775800 50.206501 -7.534500 -0.881229 -0.394976 -0.259672 254 68 73
--5.495700 46.043098 -6.732400 -0.881229 -0.394976 -0.259672 254 68 73
--6.029500 46.188801 -3.956000 -0.881229 -0.394976 -0.259672 254 68 73
--8.756500 49.321098 -7.632900 0.341557 -0.936397 -0.080618 0 254 27
--6.775800 50.206501 -7.534500 0.341557 -0.936397 -0.080618 0 254 27
--7.813100 49.342701 -3.886900 0.341557 -0.936397 -0.080618 0 254 27
--8.927200 49.128502 -4.128200 0.341557 -0.936397 -0.080618 0 254 27
--5.495700 46.043098 -6.732400 -0.295037 -0.218453 -0.930178 0 254 27
--6.775800 50.206501 -7.534500 -0.295037 -0.218453 -0.930178 0 254 27
-0.000000 50.037800 -9.413700 -0.295037 -0.218453 -0.930178 0 254 27
-0.000000 45.235802 -8.516300 -0.295037 -0.218453 -0.930178 0 254 27
--3.773800 51.093601 -1.034300 -0.217879 0.518058 0.827130 0 253 27
-0.000000 50.880199 0.110000 -0.217879 0.518058 0.827130 0 253 27
-0.000000 54.522099 -2.187600 -0.217879 0.518058 0.827130 0 253 27
--1.435700 55.057400 -2.884500 -0.217879 0.518058 0.827130 0 253 27
--0.163800 60.672798 0.405300 -0.878123 0.172158 0.446386 0 254 27
--0.596000 60.268700 -0.255900 -0.878123 0.172158 0.446386 0 254 27
--0.605400 59.453602 0.006800 -0.878123 0.172158 0.446386 0 254 27
--0.226300 59.631802 0.717000 -0.878123 0.172158 0.446386 0 254 27
-0.000000 59.375900 0.272700 -0.351825 0.003851 0.936058 0 254 27
--0.605400 59.453602 0.006800 -0.351825 0.003851 0.936058 0 254 27
--0.793500 58.611801 -0.022400 -0.351825 0.003851 0.936058 0 254 27
-0.000000 58.735298 0.237300 -0.351825 0.003851 0.936058 0 253 27
--1.340700 61.343498 -1.024900 -0.500896 0.173312 0.847978 254 254 254
--2.209500 61.230499 -1.515000 -0.500896 0.173312 0.847978 254 254 254
--2.225300 60.301201 -1.334400 -0.500896 0.173312 0.847978 254 254 254
--0.474100 61.294899 -0.607800 -0.419394 -0.893935 0.158081 254 254 254
--0.179900 61.274700 0.058500 -0.419394 -0.893935 0.158081 254 254 254
--0.785400 61.539799 -0.048800 -0.419394 -0.893935 0.158081 254 254 254
--0.163800 60.672798 0.405300 -0.879737 0.234636 0.413532 0 254 27
--0.179900 61.274700 0.058500 -0.879737 0.234636 0.413532 0 254 27
--0.474100 61.294899 -0.607800 -0.879737 0.234636 0.413532 0 254 27
--0.596000 60.268700 -0.255900 -0.879737 0.234636 0.413532 0 254 27
--0.785400 61.539799 -0.048800 -0.405349 0.400850 0.821591 0 254 27
-0.000000 62.775902 -0.355700 -0.405349 0.400850 0.821591 0 254 27
--1.901400 62.898899 -1.262500 -0.405349 0.400850 0.821591 0 254 27
--1.792100 61.563202 -0.648200 -0.405349 0.400850 0.821591 0 254 27
--1.901400 62.898899 -1.262500 -0.958885 0.139689 0.247034 254 254 254
--2.505800 61.413601 -3.333900 -0.958885 0.139689 0.247034 254 254 254
--2.209500 61.230499 -1.515000 -0.958885 0.139689 0.247034 254 254 254
--1.792100 61.563202 -0.648200 -0.958885 0.139689 0.247034 254 254 254
--2.071800 58.080299 -1.837600 -0.982605 0.010378 0.185418 254 254 254
--2.043500 58.694401 -1.722000 -0.982605 0.010378 0.185418 254 254 254
--2.361600 58.652599 -3.405400 -0.982605 0.010378 0.185418 254 254 254
--2.361600 58.652599 -3.405400 -0.835615 -0.547438 -0.045374 254 254 254
--1.480400 57.287800 -3.167400 -0.835615 -0.547438 -0.045374 254 254 254
--2.071800 58.080299 -1.837600 -0.835615 -0.547438 -0.045374 254 254 254
--2.361600 58.652599 -3.405400 -0.962379 -0.178153 0.205154 254 254 254
--2.043500 58.694401 -1.722000 -0.962379 -0.178153 0.205154 254 254 254
--2.225300 60.301201 -1.334400 -0.962379 -0.178153 0.205154 254 254 254
--2.484800 60.667999 -2.078300 -0.962379 -0.178153 0.205154 254 254 254
--0.596000 60.268700 -0.255900 -0.569338 0.180881 0.801958 0 254 27
--2.225300 60.301201 -1.334400 -0.569338 0.180881 0.801958 0 254 27
--0.793500 58.611801 -0.022400 -0.569338 0.180881 0.801958 0 254 27
--0.605400 59.453602 0.006800 -0.569338 0.180881 0.801958 0 254 27
--0.793500 58.611801 -0.022400 -0.424783 -0.113068 0.898207 0 254 27
--0.860300 57.339199 -0.345300 -0.424783 -0.113068 0.898207 0 253 27
-0.000000 57.320400 0.190300 -0.424783 -0.113068 0.898207 0 253 27
-0.000000 58.735298 0.237300 -0.424783 -0.113068 0.898207 0 253 27
--2.361600 58.652599 -3.405400 -0.801295 -0.555920 -0.221086 254 254 254
--1.507500 57.978802 -4.806700 -0.801295 -0.555920 -0.221086 254 254 254
--1.480400 57.287800 -3.167400 -0.801295 -0.555920 -0.221086 254 254 254
--1.480400 57.287800 -3.167400 -0.605736 -0.042761 0.794516 254 153 157
--1.435700 55.057400 -2.884500 -0.605736 -0.042761 0.794516 244 75 71
-0.000000 54.522099 -2.187600 -0.605736 -0.042761 0.794516 235 81 69
--0.509500 56.862801 -2.081200 -0.605736 -0.042761 0.794516 254 129 132
--1.435700 55.057400 -2.884500 -0.962522 0.132164 0.236820 254 68 73
--1.480400 57.287800 -3.167400 -0.962522 0.132164 0.236820 254 68 73
--1.507500 57.978802 -4.806700 -0.962522 0.132164 0.236820 254 68 73
--2.321200 55.471001 -5.570800 -0.962522 0.132164 0.236820 254 68 73
--5.259600 15.490400 -9.599400 0.329887 -0.177209 -0.927239 0 253 27
--0.294400 16.169500 -7.962700 0.329887 -0.177209 -0.927239 0 253 27
--2.020300 14.610600 -8.278800 0.329887 -0.177209 -0.927239 0 253 27
--0.294400 16.169500 -7.962700 0.923351 -0.382504 0.033356 157 130 53
--1.221800 14.450400 -2.004100 0.923351 -0.382504 0.033356 0 252 27
--0.971400 14.644800 -6.706400 0.923351 -0.382504 0.033356 27 229 30
--5.308800 13.910900 -3.738700 -0.281184 -0.501171 0.818391 23 254 48
--1.766900 13.754900 -2.918700 -0.281184 -0.501171 0.818391 0 254 27
--1.221800 14.450400 -2.004100 -0.281184 -0.501171 0.818391 0 254 27
--6.498700 14.643000 -4.000600 -0.281184 -0.501171 0.818391 91 254 108
--4.649800 14.945700 -8.785600 -0.465679 -0.853476 -0.233927 254 68 73
--5.308800 13.910900 -3.738700 -0.465679 -0.853476 -0.233927 254 68 73
--6.498700 14.643000 -4.000600 -0.465679 -0.853476 -0.233927 254 68 73
--5.259600 15.490400 -9.599400 -0.465679 -0.853476 -0.233927 254 68 73
--1.957400 20.620800 -1.217700 0.981627 0.066418 0.178877 0 253 27
--0.899900 21.410400 -8.342700 0.981627 0.066418 0.178877 1 216 59
--0.835600 22.853901 -8.203000 0.981627 0.066418 0.178877 2 205 69
--2.189200 21.987900 -1.481800 0.981627 0.066418 0.178877 0 253 27
--7.174300 32.815300 -5.168000 -0.882053 0.156893 -0.444261 0 253 27
--6.542300 35.480598 -4.902800 -0.882053 0.156893 -0.444261 0 253 27
--5.283200 35.952900 -7.814600 -0.882053 0.156893 -0.444261 0 254 27
--4.970000 33.082802 -8.871300 -0.882053 0.156893 -0.444261 0 253 27
--5.598500 31.822901 -1.405400 -0.892193 0.169920 0.418473 133 152 48
--6.542300 35.480598 -4.902800 -0.892193 0.169920 0.418473 0 253 27
--7.174300 32.815300 -5.168000 -0.892193 0.169920 0.418473 0 253 27
--4.685700 36.664101 -1.616400 -0.474113 0.127364 0.871203 13 226 40
--5.598500 31.822901 -1.405400 -0.474113 0.127364 0.871203 133 152 48
--3.798500 31.552500 -0.386300 -0.474113 0.127364 0.871203 211 97 63
--2.225300 60.301201 -1.334400 -0.926529 0.086891 0.366052 254 254 254
--2.209500 61.230499 -1.515000 -0.926529 0.086891 0.366052 254 254 254
--2.484800 60.667999 -2.078300 -0.926529 0.086891 0.366052 254 254 254
--8.927200 49.128502 -4.128200 -0.174303 -0.164506 0.970853 0 253 27
--7.813100 49.342701 -3.886900 -0.174303 -0.164506 0.970853 0 253 27
--8.184300 53.108700 -3.320400 -0.174303 -0.164506 0.970853 0 253 27
--9.508400 52.403099 -3.672700 -0.174303 -0.164506 0.970853 0 253 27
--8.184300 53.108700 -3.320400 -0.526523 0.826719 0.198265 0 253 27
--8.747800 53.770199 -7.353300 -0.526523 0.826719 0.198265 0 253 27
--9.827700 52.989700 -7.188500 -0.526523 0.826719 0.198265 0 253 27
--9.508400 52.403099 -3.672700 -0.526523 0.826719 0.198265 0 253 27
--8.747800 53.770199 -7.353300 -0.154881 -0.035505 -0.987295 0 254 27
--7.252500 54.524502 -7.615000 -0.154881 -0.035505 -0.987295 0 254 27
--6.775800 50.206501 -7.534500 -0.154881 -0.035505 -0.987295 0 254 27
--8.927200 49.128502 -4.128200 0.001669 -0.169906 0.985459 0 253 27
--9.508400 52.403099 -3.672700 0.001669 -0.169906 0.985459 0 253 27
--15.636800 49.715099 -4.015700 0.001669 -0.169906 0.985459 0 253 27
--14.977100 45.689201 -4.821000 0.001669 -0.169906 0.985459 0 248 31
--6.624100 53.529800 -2.653700 -0.215818 0.814400 0.538680 0 253 27
--3.773800 51.093601 -1.034300 -0.215818 0.814400 0.538680 0 253 27
--1.435700 55.057400 -2.884500 -0.215818 0.814400 0.538680 0 253 27
--7.252500 54.524502 -7.615000 -0.215818 0.814400 0.538680 0 253 27
--2.321200 55.471001 -5.570800 -0.276118 0.932071 0.234526 0 253 27
--7.252500 54.524502 -7.615000 -0.276118 0.932071 0.234526 0 253 27
--1.435700 55.057400 -2.884500 -0.276118 0.932071 0.234526 0 253 27
--2.209500 61.230499 -1.515000 -0.942806 0.279456 0.181716 254 254 254
--2.505800 61.413601 -3.333900 -0.942806 0.279456 0.181716 254 254 254
--2.484800 60.667999 -2.078300 -0.942806 0.279456 0.181716 254 254 254
--2.484800 60.667999 -2.078300 -0.998559 -0.051788 -0.014052 254 254 254
--2.505800 61.413601 -3.333900 -0.998559 -0.051788 -0.014052 254 254 254
--2.361600 58.652599 -3.405400 -0.998559 -0.051788 -0.014052 254 254 254
--2.209500 61.230499 -1.515000 -0.107977 -0.909631 0.401138 254 254 254
--1.340700 61.343498 -1.024900 -0.107977 -0.909631 0.401138 254 254 254
--1.792100 61.563202 -0.648200 -0.107977 -0.909631 0.401138 254 254 254
--3.061600 3.537800 -3.461700 0.234488 0.898953 0.369997 18 0 252
--3.735600 1.816900 0.228400 0.234488 0.898953 0.369997 18 0 253
--1.568700 1.981700 -0.627100 0.234488 0.898953 0.369997 18 0 253
--1.553600 3.059500 -4.173500 0.234488 0.898953 0.369997 18 0 253
--0.626000 0.031700 -8.336200 0.992053 0.072189 0.103052 18 0 253
--1.553600 3.059500 -4.173500 0.992053 0.072189 0.103052 18 0 253
--1.568700 1.981700 -0.627100 0.992053 0.072189 0.103052 18 0 253
--1.825200 -0.024100 0.601200 0.992053 0.072189 0.103052 18 0 253
--1.825200 -0.024100 0.601200 -0.002195 -0.999985 -0.005027 18 0 253
--3.769300 -0.009000 1.132900 -0.002195 -0.999985 -0.005027 18 0 253
--1.712600 0.024900 -9.195700 -0.002195 -0.999985 -0.005027 19 0 253
--0.626000 0.031700 -8.336200 -0.002195 -0.999985 -0.005027 19 0 253
--1.712600 0.024900 -9.195700 0.748722 0.074200 -0.658719 254 68 73
--2.020300 14.610600 -8.278800 0.748722 0.074200 -0.658719 0 253 27
--0.971400 14.644800 -6.706400 0.748722 0.074200 -0.658719 0 253 27
--0.626000 0.031700 -8.336200 0.748722 0.074200 -0.658719 254 68 73
--1.568700 1.981700 -0.627100 0.270273 0.452545 0.849798 18 0 253
--3.735600 1.816900 0.228400 0.270273 0.452545 0.849798 18 0 253
--3.769300 -0.009000 1.132900 0.270273 0.452545 0.849798 18 0 253
--1.825200 -0.024100 0.601200 0.270273 0.452545 0.849798 19 0 253
--4.089400 2.633000 -5.031300 -0.957442 -0.073711 -0.279054 188 254 194
--3.252600 0.001600 -8.591000 -0.957442 -0.073711 -0.279054 0 254 27
--5.176800 -0.025000 -0.598300 -0.957442 -0.073711 -0.279054 254 254 254
--5.390300 1.568200 -1.670300 -0.957442 -0.073711 -0.279054 254 254 254
--3.769300 -0.009000 1.132900 -0.738109 0.308147 0.600201 18 0 253
--3.735600 1.816900 0.228400 -0.738109 0.308147 0.600201 18 0 253
--5.390300 1.568200 -1.670300 -0.738109 0.308147 0.600201 18 0 253
--5.176800 -0.025000 -0.598300 -0.738109 0.308147 0.600201 18 0 253
--5.390300 1.568200 -1.670300 -0.560649 0.811720 0.163660 18 0 253
--3.735600 1.816900 0.228400 -0.560649 0.811720 0.163660 18 0 253
--3.061600 3.537800 -3.461700 -0.560649 0.811720 0.163660 18 0 252
--4.089400 2.633000 -5.031300 -0.560649 0.811720 0.163660 18 0 252
--3.061600 3.537800 -3.461700 -0.452521 -0.074303 0.888653 18 0 252
--1.766900 13.754900 -2.918700 -0.452521 -0.074303 0.888653 0 254 27
--5.308800 13.910900 -3.738700 -0.452521 -0.074303 0.888653 14 254 41
--4.089400 2.633000 -5.031300 -0.452521 -0.074303 0.888653 18 0 252
--2.020300 14.610600 -8.278800 0.001520 -0.830500 -0.557017 0 253 27
--4.649800 14.945700 -8.785600 0.001520 -0.830500 -0.557017 0 253 27
--5.259600 15.490400 -9.599400 0.001520 -0.830500 -0.557017 0 253 27
--2.020300 14.610600 -8.278800 0.649568 -0.634088 -0.419515 0 253 27
--0.294400 16.169500 -7.962700 0.649568 -0.634088 -0.419515 0 253 27
--0.971400 14.644800 -6.706400 0.649568 -0.634088 -0.419515 0 253 27
--5.426000 21.341299 -8.131100 -0.959570 0.028386 -0.280036 254 254 254
--6.827700 20.858999 -3.051400 -0.959570 0.028386 -0.280036 254 254 254
--6.824000 22.193899 -3.254300 -0.959570 0.028386 -0.280036 254 254 254
--5.317800 22.936800 -8.014600 -0.959570 0.028386 -0.280036 254 254 254
--0.845100 29.891001 -9.491500 -0.126028 -0.127868 -0.983751 0 253 27
--0.835600 22.853901 -8.203000 -0.126028 -0.127868 -0.983751 0 253 27
--5.317800 22.936800 -8.014600 -0.126028 -0.127868 -0.983751 0 253 27
--5.595300 29.761600 -8.491100 -0.126028 -0.127868 -0.983751 0 254 27
--1.957400 20.620800 -1.217700 -0.346283 0.131313 0.928895 242 254 242
--2.189200 21.987900 -1.481800 -0.346283 0.131313 0.928895 218 254 222
--6.824000 22.193899 -3.254300 -0.346283 0.131313 0.928895 99 254 117
--6.827700 20.858999 -3.051400 -0.346283 0.131313 0.928895 166 254 175
--0.605400 59.453602 0.006800 -0.276378 -0.886938 0.370075 254 254 254
-0.000000 59.375900 0.272700 -0.276378 -0.886938 0.370075 254 254 254
--0.226300 59.631802 0.717000 -0.276378 -0.886938 0.370075 254 254 254
--21.936399 43.055199 -3.733600 -0.245050 -0.199318 0.948801 24 182 75
--22.348700 46.932201 -2.822400 -0.245050 -0.199318 0.948801 72 195 37
--23.323000 46.228001 -3.425200 -0.245050 -0.199318 0.948801 26 230 29
--23.265499 44.290199 -3.614200 -0.245050 -0.199318 0.948801 37 214 37
--22.105101 44.119598 -7.074000 -0.680722 -0.210597 -0.701617 254 254 254
--23.273100 44.479099 -6.170500 -0.680722 -0.210597 -0.701617 254 254 254
--23.881300 46.267799 -5.995500 -0.680722 -0.210597 -0.701617 254 254 254
--23.337700 47.268200 -6.945000 -0.680722 -0.210597 -0.701617 254 254 254
--22.348700 46.932201 -2.822400 -0.710630 0.673907 0.202126 72 195 37
--23.337700 47.268200 -6.945000 -0.710630 0.673907 0.202126 0 254 27
--23.881300 46.267799 -5.995500 -0.710630 0.673907 0.202126 0 253 27
--23.323000 46.228001 -3.425200 -0.710630 0.673907 0.202126 26 230 29
--21.936399 43.055199 -3.733600 -0.575702 -0.803125 -0.153486 254 68 73
--23.265499 44.290199 -3.614200 -0.575702 -0.803125 -0.153486 254 68 73
--23.273100 44.479099 -6.170500 -0.575702 -0.803125 -0.153486 254 68 73
--22.105101 44.119598 -7.074000 -0.575702 -0.803125 -0.153486 254 68 73
--23.323000 46.228001 -3.425200 0.234519 0.052147 0.970712 26 230 29
--24.935400 45.742901 -3.288800 0.234519 0.052147 0.970712 80 189 39
--24.446100 44.099098 -3.039500 0.234519 0.052147 0.970712 144 136 53
--23.265499 44.290199 -3.614200 0.234519 0.052147 0.970712 37 214 37
--23.273100 44.479099 -6.170500 -0.051663 0.047611 -0.997529 16 254 41
--25.718901 44.407902 -5.989100 -0.051663 0.047611 -0.997529 47 254 71
--25.982700 45.641201 -5.974700 -0.051663 0.047611 -0.997529 53 254 75
--23.881300 46.267799 -5.995500 -0.051663 0.047611 -0.997529 23 254 48
--23.881300 46.267799 -5.995500 -0.283035 0.956157 0.075198 0 253 27
--25.982700 45.641201 -5.974700 -0.283035 0.956157 0.075198 0 253 27
--24.935400 45.742901 -3.288800 -0.283035 0.956157 0.075198 80 189 39
--23.323000 46.228001 -3.425200 -0.283035 0.956157 0.075198 26 230 29
--23.265499 44.290199 -3.614200 0.050680 -0.993534 -0.101596 0 254 27
--24.446100 44.099098 -3.039500 0.050680 -0.993534 -0.101596 0 254 27
--25.718901 44.407902 -5.989100 0.050680 -0.993534 -0.101596 47 254 71
--23.273100 44.479099 -6.170500 0.050680 -0.993534 -0.101596 16 254 41
--3.798500 31.552500 -0.386300 -0.302820 0.047342 0.951871 211 97 63
-0.000000 31.552500 0.128500 -0.302820 0.047342 0.951871 203 101 62
-0.000000 37.009800 0.550700 -0.302820 0.047342 0.951871 172 124 55
--4.685700 36.664101 -1.616400 -0.302820 0.047342 0.951871 13 226 40
--27.058001 43.733101 -1.471100 -0.612973 -0.035197 0.789319 254 68 73
--28.100901 44.177299 -2.470000 -0.612973 -0.035197 0.789319 231 80 64
--27.637899 42.321201 -1.984400 -0.612973 -0.035197 0.789319 254 68 73
--26.775499 43.007000 -1.492900 -0.612973 -0.035197 0.789319 254 68 73
--27.102699 45.320202 -5.735100 -0.288380 -0.175341 -0.941325 75 254 93
--25.982700 45.641201 -5.974700 -0.288380 -0.175341 -0.941325 53 254 75
--25.718901 44.407902 -5.989100 -0.288380 -0.175341 -0.941325 47 254 71
--26.246300 42.901402 -5.383600 -0.288380 -0.175341 -0.941325 20 254 46
--24.935400 45.742901 -3.288800 -0.215944 0.976143 0.022647 80 254 99
--25.982700 45.641201 -5.974700 -0.215944 0.976143 0.022647 0 254 27
--27.102699 45.320202 -5.735100 -0.215944 0.976143 0.022647 0 254 27
--26.753901 45.398300 -2.858600 -0.215944 0.976143 0.022647 163 254 174
--24.446100 44.099098 -3.039500 0.806467 -0.440747 -0.394147 0 249 30
--26.246300 42.901402 -5.383600 0.806467 -0.440747 -0.394147 19 213 43
--25.718901 44.407902 -5.989100 0.806467 -0.440747 -0.394147 46 208 34
--28.380600 42.330502 -3.056600 -0.840529 -0.044209 0.539960 254 68 73
--27.637899 42.321201 -1.984400 -0.840529 -0.044209 0.539960 254 68 73
--28.100901 44.177299 -2.470000 -0.840529 -0.044209 0.539960 254 68 73
--28.697901 44.238201 -3.477500 -0.840529 -0.044209 0.539960 254 68 73
--28.380600 42.330502 -3.056600 -0.979149 -0.175223 -0.102788 254 254 254
--28.697901 44.238201 -3.477500 -0.979149 -0.175223 -0.102788 254 254 254
--28.543800 44.178001 -4.651400 -0.979149 -0.175223 -0.102788 254 254 254
--28.292801 42.543098 -4.446800 -0.979149 -0.175223 -0.102788 254 254 254
--26.753901 45.398300 -2.858600 -0.560189 0.737837 0.376544 163 125 53
--28.697901 44.238201 -3.477500 -0.560189 0.737837 0.376544 97 175 41
--28.100901 44.177299 -2.470000 -0.560189 0.737837 0.376544 231 80 64
--24.935400 45.742901 -3.288800 0.484106 0.321222 0.813915 80 189 39
--26.117701 44.487900 -2.198700 0.484106 0.321222 0.813915 242 74 67
--25.587200 43.557701 -2.038700 0.484106 0.321222 0.813915 253 67 73
--24.446100 44.099098 -3.039500 0.484106 0.321222 0.813915 144 136 53
--24.446100 44.099098 -3.039500 0.765721 -0.642695 -0.024780 0 249 30
--25.587200 43.557701 -2.038700 0.765721 -0.642695 -0.024780 0 252 27
--25.491899 42.827301 -2.370100 0.765721 -0.642695 -0.024780 0 245 34
--26.246300 42.901402 -5.383600 0.765721 -0.642695 -0.024780 19 213 43
--26.753901 45.398300 -2.858600 0.068715 0.616533 0.784324 163 125 53
--26.117701 44.487900 -2.198700 0.068715 0.616533 0.784324 242 74 67
--24.935400 45.742901 -3.288800 0.068715 0.616533 0.784324 80 189 39
-0.000000 31.552500 0.128500 -0.069551 -0.031626 0.997077 203 101 62
--3.798500 31.552500 -0.386300 -0.069551 -0.031626 0.997077 211 97 63
--3.463700 23.872801 -0.356700 -0.069551 -0.031626 0.997077 254 68 73
-0.000000 24.132099 -0.356700 -0.069551 -0.031626 0.997077 243 74 70
--2.225300 60.301201 -1.334400 -0.789816 -0.226827 0.569860 254 254 254
--2.043500 58.694401 -1.722000 -0.789816 -0.226827 0.569860 254 247 247
--0.793500 58.611801 -0.022400 -0.789816 -0.226827 0.569860 254 246 246
--0.793500 58.611801 -0.022400 -0.800106 -0.097243 0.591924 254 246 246
--2.043500 58.694401 -1.722000 -0.800106 -0.097243 0.591924 254 247 247
--2.071800 58.080299 -1.837600 -0.800106 -0.097243 0.591924 254 224 225
--0.860300 57.339199 -0.345300 -0.800106 -0.097243 0.591924 254 172 174
--2.071800 58.080299 -1.837600 -0.594038 -0.791272 0.144939 254 224 225
--1.480400 57.287800 -3.167400 -0.594038 -0.791272 0.144939 254 153 157
--0.509500 56.862801 -2.081200 -0.594038 -0.791272 0.144939 254 129 132
--0.860300 57.339199 -0.345300 -0.594038 -0.791272 0.144939 254 172 174
--0.179900 61.274700 0.058500 -0.090663 0.188705 0.977840 0 254 27
-0.000000 61.912998 -0.048000 -0.090663 0.188705 0.977840 0 254 27
--0.785400 61.539799 -0.048800 -0.090663 0.188705 0.977840 0 254 27
--15.884600 46.520500 -7.855800 -0.098387 0.080586 -0.991880 0 250 27
--17.208200 49.477699 -7.512200 -0.098387 0.080586 -0.991880 6 242 27
--16.136200 50.023998 -7.546200 -0.098387 0.080586 -0.991880 0 249 27
--14.885000 46.974701 -7.946000 -0.098387 0.080586 -0.991880 0 251 27
--15.636800 49.715099 -4.015700 -0.436830 0.889212 0.135946 0 253 27
--16.136200 50.023998 -7.546200 -0.436830 0.889212 0.135946 0 253 27
--17.208200 49.477699 -7.512200 -0.436830 0.889212 0.135946 0 253 27
--16.810101 49.139900 -3.928800 -0.436830 0.889212 0.135946 0 253 27
--16.192200 44.960400 -4.877100 0.435886 -0.826304 -0.356686 0 236 42
--15.884600 46.520500 -7.855800 0.435886 -0.826304 -0.356686 0 253 27
--14.885000 46.974701 -7.946000 0.435886 -0.826304 -0.356686 0 253 27
--14.977100 45.689201 -4.821000 0.435886 -0.826304 -0.356686 0 248 31
--16.810101 49.139900 -3.928800 0.116417 -0.190205 0.974818 236 81 69
--16.192200 44.960400 -4.877100 0.116417 -0.190205 0.974818 200 90 77
--14.977100 45.689201 -4.821000 0.116417 -0.190205 0.974818 174 120 62
--15.636800 49.715099 -4.015700 0.116417 -0.190205 0.974818 218 94 66
--13.779500 47.417198 -7.715300 -0.030432 0.115440 -0.992848 0 253 27
--14.989100 50.565300 -7.297200 -0.030432 0.115440 -0.992848 0 252 27
--9.827700 52.989700 -7.188500 -0.030432 0.115440 -0.992848 0 253 27
--8.756500 49.321098 -7.632900 -0.030432 0.115440 -0.992848 0 253 27
--15.636800 49.715099 -4.015700 -0.447311 0.883265 0.140554 0 253 27
--14.989100 50.565300 -7.297200 -0.447311 0.883265 0.140554 0 253 27
--16.136200 50.023998 -7.546200 -0.447311 0.883265 0.140554 0 253 27
--13.779500 47.417198 -7.715300 0.409629 -0.847844 -0.336697 0 253 27
--14.977100 45.689201 -4.821000 0.409629 -0.847844 -0.336697 0 253 27
--14.885000 46.974701 -7.946000 0.409629 -0.847844 -0.336697 0 251 27
--0.971400 14.644800 -6.706400 0.777065 -0.629233 0.015366 27 229 30
--1.221800 14.450400 -2.004100 0.777065 -0.629233 0.015366 0 252 27
--1.766900 13.754900 -2.918700 0.777065 -0.629233 0.015366 0 253 27
--26.117701 44.487900 -2.198700 0.374471 0.258120 0.890587 242 74 67
--27.058001 43.733101 -1.471100 0.374471 0.258120 0.890587 254 68 73
--26.775499 43.007000 -1.492900 0.374471 0.258120 0.890587 254 68 73
--25.587200 43.557701 -2.038700 0.374471 0.258120 0.890587 253 67 73
--25.587200 43.557701 -2.038700 0.386633 -0.610879 0.690899 0 252 27
--26.775499 43.007000 -1.492900 0.386633 -0.610879 0.690899 0 253 27
--27.637899 42.321201 -1.984400 0.386633 -0.610879 0.690899 0 253 27
--25.491899 42.827301 -2.370100 0.386633 -0.610879 0.690899 0 245 34
--26.117701 44.487900 -2.198700 -0.202601 0.798645 0.566673 242 74 67
--28.100901 44.177299 -2.470000 -0.202601 0.798645 0.566673 231 80 64
--27.058001 43.733101 -1.471100 -0.202601 0.798645 0.566673 254 68 73
--8.184300 53.108700 -3.320400 -0.347207 -0.172872 0.921717 0 253 27
--7.813100 49.342701 -3.886900 -0.347207 -0.172872 0.921717 0 253 27
--6.624100 53.529800 -2.653700 -0.347207 -0.172872 0.921717 0 253 27
--8.747800 53.770199 -7.353300 -0.055764 0.062731 -0.996471 0 254 27
--6.775800 50.206501 -7.534500 -0.055764 0.062731 -0.996471 0 254 27
--8.756500 49.321098 -7.632900 -0.055764 0.062731 -0.996471 0 254 27
--9.827700 52.989700 -7.188500 -0.055764 0.062731 -0.996471 0 254 27
--28.543800 44.178001 -4.651400 -0.562493 0.826801 -0.001192 0 254 27
--28.697901 44.238201 -3.477500 -0.562493 0.826801 -0.001192 97 254 114
--26.753901 45.398300 -2.858600 -0.562493 0.826801 -0.001192 163 254 174
--27.102699 45.320202 -5.735100 -0.562493 0.826801 -0.001192 0 254 27
--26.246300 42.901402 -5.383600 0.106461 -0.983873 -0.143736 20 231 27
--28.380600 42.330502 -3.056600 0.106461 -0.983873 -0.143736 0 252 27
--28.292801 42.543098 -4.446800 0.106461 -0.983873 -0.143736 5 243 27
--28.100901 44.177299 -2.470000 -0.192584 0.484112 0.853550 231 80 64
--26.117701 44.487900 -2.198700 -0.192584 0.484112 0.853550 242 74 67
--26.753901 45.398300 -2.858600 -0.192584 0.484112 0.853550 163 125 53
--1.712600 0.024900 -9.195700 0.013475 -0.999909 -0.000374 254 254 254
--3.769300 -0.009000 1.132900 0.013475 -0.999909 -0.000374 0 254 27
--5.176800 -0.025000 -0.598300 0.013475 -0.999909 -0.000374 0 254 27
--3.252600 0.001600 -8.591000 0.013475 -0.999909 -0.000374 254 254 254
-0.000000 61.912998 -0.048000 -0.158526 0.331625 0.929997 0 254 27
-0.000000 62.775902 -0.355700 -0.158526 0.331625 0.929997 0 254 27
--0.785400 61.539799 -0.048800 -0.158526 0.331625 0.929997 0 254 27
--0.340300 31.400700 -9.922000 0.943854 -0.327649 -0.042263 0 253 27
--0.425600 30.069099 -1.503600 0.943854 -0.327649 -0.042263 0 253 27
--0.845100 29.891001 -9.491500 0.943854 -0.327649 -0.042263 0 253 27
-0.000000 54.522099 -2.187600 0.000000 -0.045410 0.998968 235 81 69
-0.000000 56.862801 -2.081200 0.000000 -0.045410 0.998968 254 127 130
--0.509500 56.862801 -2.081200 0.000000 -0.045410 0.998968 254 129 132
--0.509500 56.862801 -2.081200 -0.098448 -0.971038 0.217700 254 129 132
-0.000000 56.862801 -2.081200 -0.098448 -0.971038 0.217700 254 127 130
-0.000000 57.320400 0.190300 -0.098448 -0.971038 0.217700 254 190 192
--0.860300 57.339199 -0.345300 -0.098448 -0.971038 0.217700 254 172 174
--5.598500 31.822901 -1.405400 -0.881296 0.021519 0.472075 133 152 48
--7.453900 29.910801 -4.782000 -0.881296 0.021519 0.472075 0 253 27
--6.824000 22.193899 -3.254300 -0.881296 0.021519 0.472075 99 254 117
--6.824000 22.193899 -3.254300 -0.921164 -0.108973 -0.373607 254 68 73
--7.453900 29.910801 -4.782000 -0.921164 -0.108973 -0.373607 254 68 73
--5.595300 29.761600 -8.491100 -0.921164 -0.108973 -0.373607 254 68 73
--5.317800 22.936800 -8.014600 -0.921164 -0.108973 -0.373607 254 68 73
--3.798500 31.552500 -0.386300 -0.402805 -0.146650 0.903461 211 97 63
--5.598500 31.822901 -1.405400 -0.402805 -0.146650 0.903461 133 152 48
--6.824000 22.193899 -3.254300 -0.402805 -0.146650 0.903461 99 254 117
--2.189200 21.987900 -1.481800 -0.402805 -0.146650 0.903461 218 254 222
--0.340300 31.400700 -9.922000 -0.229486 -0.108632 -0.967231 0 253 27
--0.845100 29.891001 -9.491500 -0.229486 -0.108632 -0.967231 0 253 27
--5.595300 29.761600 -8.491100 -0.229486 -0.108632 -0.967231 0 254 27
--4.970000 33.082802 -8.871300 -0.229486 -0.108632 -0.967231 0 254 27
--0.835600 22.853901 -8.203000 0.992234 -0.110109 0.057862 2 205 69
--0.845100 29.891001 -9.491500 0.992234 -0.110109 0.057862 0 241 37
--0.425600 30.069099 -1.503600 0.992234 -0.110109 0.057862 0 253 27
--2.189200 21.987900 -1.481800 0.992234 -0.110109 0.057862 0 253 27
--2.162800 35.743500 -9.599900 -0.324262 0.084100 -0.942221 0 254 27
--0.340300 31.400700 -9.922000 -0.324262 0.084100 -0.942221 0 253 27
--4.970000 33.082802 -8.871300 -0.324262 0.084100 -0.942221 0 254 27
--5.283200 35.952900 -7.814600 -0.324262 0.084100 -0.942221 0 254 27
--5.283200 35.952900 -7.814600 -0.889642 0.311183 -0.334218 0 254 27
--6.542300 35.480598 -4.902800 -0.889642 0.311183 -0.334218 0 254 27
--5.919200 37.619099 -4.570300 -0.889642 0.311183 -0.334218 0 254 27
--5.919200 37.619099 -4.570300 -0.882633 0.186716 0.431389 0 253 27
--6.542300 35.480598 -4.902800 -0.882633 0.186716 0.431389 0 253 27
--5.598500 31.822901 -1.405400 -0.882633 0.186716 0.431389 133 152 48
--4.685700 36.664101 -1.616400 -0.882633 0.186716 0.431389 13 240 28
--0.474100 61.294899 -0.607800 -0.490764 0.255871 0.832875 0 254 27
--1.340700 61.343498 -1.024900 -0.490764 0.255871 0.832875 0 254 27
--2.225300 60.301201 -1.334400 -0.490764 0.255871 0.832875 0 254 27
--0.596000 60.268700 -0.255900 -0.490764 0.255871 0.832875 0 254 27
--1.340700 61.343498 -1.024900 -0.199083 -0.932669 0.300824 254 254 254
--0.474100 61.294899 -0.607800 -0.199083 -0.932669 0.300824 254 254 254
--0.785400 61.539799 -0.048800 -0.199083 -0.932669 0.300824 254 254 254
--1.792100 61.563202 -0.648200 -0.199083 -0.932669 0.300824 254 254 254
-0.000000 45.235802 -8.516300 -0.205813 0.023108 -0.978318 0 253 27
-0.000000 38.221600 -8.073300 -0.205813 0.023108 -0.978318 0 253 27
--2.827600 38.171799 -8.088300 -0.205813 0.023108 -0.978318 0 253 27
--5.495700 46.043098 -6.732400 -0.205813 0.023108 -0.978318 0 253 27
--0.425600 30.069099 -1.503600 0.289736 -0.060654 0.955183 254 254 254
--3.798500 31.552500 -0.386300 0.289736 -0.060654 0.955183 254 254 254
--2.189200 21.987900 -1.481800 0.289736 -0.060654 0.955183 254 254 254
-0.000000 31.547001 -9.939100 0.347255 -0.926523 -0.144807 254 68 73
-0.000000 30.215401 -1.522000 0.347255 -0.926523 -0.144807 254 68 73
--0.425600 30.069099 -1.503600 0.347255 -0.926523 -0.144807 254 68 73
--0.340300 31.400700 -9.922000 0.347255 -0.926523 -0.144807 254 68 73
--21.061199 44.183601 -7.611200 -0.028361 0.039319 -0.998824 52 208 31
--22.585199 48.327702 -7.594400 -0.028361 0.039319 -0.998824 104 170 42
--17.208200 49.477699 -7.512200 -0.028361 0.039319 -0.998824 6 242 27
--15.884600 46.520500 -7.855800 -0.028361 0.039319 -0.998824 0 250 27
--22.348700 46.932201 -2.822400 -0.723103 0.652497 0.226650 72 195 37
--22.585199 48.327702 -7.594400 -0.723103 0.652497 0.226650 0 253 27
--23.337700 47.268200 -6.945000 -0.723103 0.652497 0.226650 0 254 27
--21.061199 44.183601 -7.611200 -0.095048 -0.949863 -0.297868 52 208 31
--21.936399 43.055199 -3.733600 -0.095048 -0.949863 -0.297868 0 253 27
--22.105101 44.119598 -7.074000 -0.095048 -0.949863 -0.297868 30 225 27
-0.000000 59.375900 0.272700 0.000000 -0.866545 0.499100 254 254 254
-0.226300 59.631802 0.717000 0.000000 -0.866545 0.499100 254 254 254
--0.226300 59.631802 0.717000 0.000000 -0.866545 0.499100 254 254 254
--0.163800 60.672798 0.405300 0.000000 0.286842 0.957978 0 254 27
--0.226300 59.631802 0.717000 0.000000 0.286842 0.957978 0 254 27
-0.226300 59.631802 0.717000 0.000000 0.286842 0.957978 0 254 27
-0.163800 60.672798 0.405300 0.000000 0.286842 0.957978 0 254 27
--0.340300 31.400700 -9.922000 -0.012671 0.074070 -0.997173 0 253 27
--2.162800 35.743500 -9.599900 -0.012671 0.074070 -0.997173 0 253 27
-0.000000 35.795200 -9.599900 -0.012671 0.074070 -0.997173 0 253 27
-0.000000 31.547001 -9.939100 -0.012671 0.074070 -0.997173 0 253 27
--5.919200 37.619099 -4.570300 -0.561685 0.544798 -0.622660 0 254 27
--2.827600 38.171799 -8.088300 -0.561685 0.544798 -0.622660 0 254 27
--2.162800 35.743500 -9.599900 -0.561685 0.544798 -0.622660 0 254 27
--5.283200 35.952900 -7.814600 -0.561685 0.544798 -0.622660 0 254 27
--28.543800 44.178001 -4.651400 -0.410462 -0.233070 -0.881589 254 254 254
--27.102699 45.320202 -5.735100 -0.410462 -0.233070 -0.881589 254 254 254
--26.246300 42.901402 -5.383600 -0.410462 -0.233070 -0.881589 254 254 254
--28.292801 42.543098 -4.446800 -0.410462 -0.233070 -0.881589 254 254 254
--25.491899 42.827301 -2.370100 0.201709 -0.968181 -0.148119 0 254 27
--27.637899 42.321201 -1.984400 0.201709 -0.968181 -0.148119 0 254 27
--28.380600 42.330502 -3.056600 0.201709 -0.968181 -0.148119 0 254 27
--26.246300 42.901402 -5.383600 0.185319 -0.980147 -0.070494 20 231 27
--25.491899 42.827301 -2.370100 0.185319 -0.980147 -0.070494 0 253 27
--28.380600 42.330502 -3.056600 0.185319 -0.980147 -0.070494 0 252 27
--0.179900 61.274700 0.058500 0.000000 0.499235 0.866467 0 254 27
--0.163800 60.672798 0.405300 0.000000 0.499235 0.866467 0 254 27
-0.163800 60.672798 0.405300 0.000000 0.499235 0.866467 0 254 27
-0.179900 61.274700 0.058500 0.000000 0.499235 0.866467 0 254 27
-0.000000 61.912998 -0.048000 0.000000 0.164575 0.986365 0 254 27
--0.179900 61.274700 0.058500 0.000000 0.164575 0.986365 0 254 27
-0.179900 61.274700 0.058500 0.000000 0.164575 0.986365 0 254 27
--2.162800 35.743500 -9.599900 -0.008224 0.529675 -0.848161 0 253 27
--2.827600 38.171799 -8.088300 -0.008224 0.529675 -0.848161 0 253 27
-0.000000 38.221600 -8.073300 -0.008224 0.529675 -0.848161 0 253 27
-0.000000 35.795200 -9.599900 -0.008224 0.529675 -0.848161 0 253 27
-4.620900 14.945700 -8.516100 0.163464 0.013069 -0.986463 0 253 27
-3.252600 0.001600 -8.591000 0.163464 0.013069 -0.986463 235 80 66
-1.712600 0.024900 -9.195700 0.163464 0.013069 -0.986463 254 68 73
-1.456400 14.610600 -8.695100 0.163464 0.013069 -0.986463 0 253 27
-4.089400 2.633000 -5.031300 0.982688 -0.088487 -0.162770 18 0 253
-3.252600 0.001600 -8.591000 0.982688 -0.088487 -0.162770 19 0 253
-4.620900 14.945700 -8.516100 0.982688 -0.088487 -0.162770 0 247 31
-5.308800 13.910900 -3.738700 0.982688 -0.088487 -0.162770 0 253 27
-1.553600 3.059500 -4.173500 -0.398905 -0.098999 0.911633 18 0 253
-3.061600 3.537800 -3.461700 -0.398905 -0.098999 0.911633 18 0 253
-1.766900 13.754900 -2.918700 -0.398905 -0.098999 0.911633 0 254 27
-1.553600 3.059500 -4.173500 -0.983093 0.009545 0.182857 254 254 254
-1.766900 13.754900 -2.918700 -0.983093 0.009545 0.182857 254 254 254
-1.239800 14.644800 -6.465300 -0.983093 0.009545 0.182857 254 254 254
-0.626000 0.031700 -8.336200 -0.983093 0.009545 0.182857 254 254 254
-5.495700 46.043098 -6.732400 0.860977 -0.085411 -0.501422 0 252 27
-6.029500 46.188801 -3.956000 0.860977 -0.085411 -0.501422 0 253 27
-5.919200 37.619099 -4.570300 0.860977 -0.085411 -0.501422 9 98 162
-2.827600 38.171799 -8.088300 0.860977 -0.085411 -0.501422 8 119 142
-4.685700 36.664101 -1.616400 0.917535 -0.032092 0.396359 0 250 28
-5.919200 37.619099 -4.570300 0.917535 -0.032092 0.396359 9 98 162
-6.029500 46.188801 -3.956000 0.917535 -0.032092 0.396359 0 253 27
-4.298500 47.001099 -0.058900 0.917535 -0.032092 0.396359 0 253 27
-6.775800 50.206501 -7.534500 0.223809 0.028781 -0.974208 0 253 27
-0.000000 50.037800 -9.413700 0.223809 0.028781 -0.974208 0 253 27
-0.000000 53.738098 -8.986800 0.223809 0.028781 -0.974208 0 253 27
-7.252500 54.524502 -7.615000 0.223809 0.028781 -0.974208 0 254 27
-7.252500 54.524502 -7.615000 0.375359 0.901424 0.215731 0 254 27
-6.624100 53.529800 -2.653700 0.375359 0.901424 0.215731 0 253 27
-8.184300 53.108700 -3.320400 0.375359 0.901424 0.215731 0 253 27
-8.747800 53.770199 -7.353300 0.375359 0.901424 0.215731 0 253 27
-9.827700 52.989700 -7.188500 0.412168 0.895237 0.169320 0 253 27
-9.508400 52.403099 -3.672700 0.412168 0.895237 0.169320 0 253 27
-15.636800 49.715099 -4.015700 0.412168 0.895237 0.169320 1 215 59
-14.989100 50.565300 -7.297200 0.412168 0.895237 0.169320 0 249 29
-0.000000 37.009800 0.550700 0.339751 -0.089043 0.936291 0 253 27
-4.685700 36.664101 -1.616400 0.339751 -0.089043 0.936291 0 250 28
-4.298500 47.001099 -0.058900 0.339751 -0.089043 0.936291 0 253 27
-0.000000 47.287498 1.094200 0.339751 -0.089043 0.936291 0 253 27
-0.000000 53.738098 -8.986800 0.139268 0.841727 -0.521633 0 253 27
-0.000000 55.950600 -7.250100 0.139268 0.841727 -0.521633 0 253 27
-2.321200 55.471001 -5.570800 0.139268 0.841727 -0.521633 0 253 27
-7.252500 54.524502 -7.615000 0.139268 0.841727 -0.521633 0 254 27
-3.773800 51.093601 -1.034300 0.772400 -0.022870 0.634725 0 253 27
-4.298500 47.001099 -0.058900 0.772400 -0.022870 0.634725 0 253 27
-6.029500 46.188801 -3.956000 0.772400 -0.022870 0.634725 0 253 27
-6.624100 53.529800 -2.653700 0.772400 -0.022870 0.634725 0 253 27
-6.624100 53.529800 -2.653700 0.299992 -0.190133 0.934802 254 68 73
-6.029500 46.188801 -3.956000 0.299992 -0.190133 0.934802 254 68 73
-7.813100 49.342701 -3.886900 0.299992 -0.190133 0.934802 254 68 73
-0.000000 50.880199 0.110000 0.266804 0.255185 0.929352 0 253 27
-0.000000 47.287498 1.094200 0.266804 0.255185 0.929352 0 252 27
-4.298500 47.001099 -0.058900 0.266804 0.255185 0.929352 0 253 27
-3.773800 51.093601 -1.034300 0.266804 0.255185 0.929352 0 253 27
-16.136200 50.023998 -7.546200 -0.129075 0.179950 -0.975171 0 253 27
-14.885000 46.974701 -7.946000 -0.129075 0.179950 -0.975171 0 253 27
-13.779500 47.417198 -7.715300 -0.129075 0.179950 -0.975171 0 253 27
-14.989100 50.565300 -7.297200 -0.129075 0.179950 -0.975171 0 253 27
-13.779500 47.417198 -7.715300 -0.437873 -0.882573 -0.171264 0 253 27
-14.977100 45.689201 -4.821000 -0.437873 -0.882573 -0.171264 0 253 27
-8.927200 49.128502 -4.128200 -0.437873 -0.882573 -0.171264 0 253 27
-8.756500 49.321098 -7.632900 -0.437873 -0.882573 -0.171264 0 253 27
-17.208200 49.477699 -7.512200 0.268622 0.938905 0.215175 0 227 47
-16.810101 49.139900 -3.928800 0.268622 0.938905 0.215175 35 133 112
-22.348700 46.932201 -2.822400 0.268622 0.938905 0.215175 19 0 250
-22.585199 48.327702 -7.594400 0.268622 0.938905 0.215175 0 236 38
-21.936399 43.055199 -3.733600 -0.256926 -0.186034 0.948357 19 0 253
-22.348700 46.932201 -2.822400 -0.256926 -0.186034 0.948357 19 0 250
-16.810101 49.139900 -3.928800 -0.256926 -0.186034 0.948357 35 133 112
-16.192200 44.960400 -4.877100 -0.256926 -0.186034 0.948357 18 0 253
-22.105101 44.119598 -7.074000 0.471869 -0.161034 -0.866838 0 253 27
-21.061199 44.183601 -7.611200 0.471869 -0.161034 -0.866838 0 253 27
-22.585199 48.327702 -7.594400 0.471869 -0.161034 -0.866838 0 253 27
-23.337700 47.268200 -6.945000 0.471869 -0.161034 -0.866838 0 253 27
-15.884600 46.520500 -7.855800 -0.312108 -0.901546 -0.299673 0 253 27
-21.061199 44.183601 -7.611200 -0.312108 -0.901546 -0.299673 0 253 27
-21.936399 43.055199 -3.733600 -0.312108 -0.901546 -0.299673 0 253 27
-16.192200 44.960400 -4.877100 -0.312108 -0.901546 -0.299673 0 253 27
-5.598500 31.822901 -1.404300 0.899204 0.141743 0.413933 0 240 37
-7.453900 29.910801 -4.780100 0.899204 0.141743 0.413933 18 0 251
-7.174300 32.815300 -5.167300 0.899204 0.141743 0.413933 17 7 244
-4.970000 33.082802 -8.871900 0.875445 0.068330 -0.478463 18 0 252
-7.174300 32.815300 -5.167300 0.875445 0.068330 -0.478463 17 7 244
-7.453900 29.910801 -4.780100 0.875445 0.068330 -0.478463 18 0 251
-5.595300 29.761600 -8.492500 0.875445 0.068330 -0.478463 18 0 253
-6.827700 20.858999 -3.044800 0.895156 -0.347215 -0.279532 0 231 44
-6.194700 19.576300 -3.478600 0.895156 -0.347215 -0.279532 0 248 31
-5.426000 21.341299 -8.132600 0.895156 -0.347215 -0.279532 15 21 230
-0.835600 22.853901 -8.210700 0.045309 0.086115 -0.995254 0 253 27
-5.317800 22.936800 -8.016200 0.045309 0.086115 -0.995254 0 253 27
-5.426000 21.341299 -8.132600 0.045309 0.086115 -0.995254 0 253 27
-0.899900 21.410400 -8.349400 0.045309 0.086115 -0.995254 0 253 27
-0.899900 21.410400 -8.349400 -0.986876 0.054006 0.152183 254 254 254
-1.853000 19.164200 -1.371600 -0.986876 0.054006 0.152183 254 254 254
-1.957400 20.620800 -1.211500 -0.986876 0.054006 0.152183 254 254 254
-6.194700 19.576300 -3.478600 0.393316 -0.294694 0.870895 0 248 31
-6.827700 20.858999 -3.044800 0.393316 -0.294694 0.870895 0 231 44
-1.957400 20.620800 -1.211500 0.393316 -0.294694 0.870895 0 253 27
-1.853000 19.164200 -1.371600 0.393316 -0.294694 0.870895 0 253 27
-5.117200 15.490400 -9.679700 -0.013076 0.210350 -0.977539 0 253 27
-0.134100 16.169500 -9.174700 -0.013076 0.210350 -0.977539 0 253 27
-0.899900 21.410400 -8.349400 -0.013076 0.210350 -0.977539 0 253 27
-5.426000 21.341299 -8.132600 -0.013076 0.210350 -0.977539 0 253 27
-0.134100 16.169500 -9.174700 -0.979250 0.051054 0.196120 0 254 27
-1.716700 14.450400 -2.459200 -0.979250 0.051054 0.196120 0 254 27
-1.853000 19.164200 -1.371600 -0.979250 0.051054 0.196120 0 254 27
-0.899900 21.410400 -8.349400 -0.979250 0.051054 0.196120 0 254 27
-1.853000 19.164200 -1.371600 0.369977 -0.140579 0.918343 0 253 27
-1.716700 14.450400 -2.459200 0.369977 -0.140579 0.918343 0 253 27
-6.069200 14.643000 -3.762300 0.369977 -0.140579 0.918343 0 253 27
-6.194700 19.576300 -3.478600 0.369977 -0.140579 0.918343 0 248 31
-6.069200 14.643000 -3.762300 0.986467 -0.011966 -0.163524 0 253 27
-5.117200 15.490400 -9.679700 0.986467 -0.011966 -0.163524 2 202 70
-5.426000 21.341299 -8.132600 0.986467 -0.011966 -0.163524 15 21 230
-6.194700 19.576300 -3.478600 0.986467 -0.011966 -0.163524 0 248 31
-7.813100 49.342701 -3.886900 0.881229 -0.394976 -0.259672 0 253 27
-6.029500 46.188801 -3.956000 0.881229 -0.394976 -0.259672 0 253 27
-5.495700 46.043098 -6.732400 0.881229 -0.394976 -0.259672 0 252 27
-6.775800 50.206501 -7.534500 0.881229 -0.394976 -0.259672 0 253 27
-8.756500 49.321098 -7.632900 -0.341557 -0.936397 -0.080618 254 68 73
-8.927200 49.128502 -4.128200 -0.341557 -0.936397 -0.080618 254 68 73
-7.813100 49.342701 -3.886900 -0.341557 -0.936397 -0.080618 254 68 73
-6.775800 50.206501 -7.534500 -0.341557 -0.936397 -0.080618 254 68 73
-5.495700 46.043098 -6.732400 0.295037 -0.218453 -0.930178 0 253 27
-0.000000 45.235802 -8.516300 0.295037 -0.218453 -0.930178 0 253 27
-0.000000 50.037800 -9.413700 0.295037 -0.218453 -0.930178 0 253 27
-6.775800 50.206501 -7.534500 0.295037 -0.218453 -0.930178 0 253 27
-3.773800 51.093601 -1.034300 0.217879 0.518058 0.827130 0 253 27
-1.435700 55.057400 -2.884500 0.217879 0.518058 0.827130 0 253 27
-0.000000 54.522099 -2.187600 0.217879 0.518058 0.827130 0 253 27
-0.000000 50.880199 0.110000 0.217879 0.518058 0.827130 0 253 27
-0.163800 60.672798 0.405300 0.878123 0.172158 0.446386 0 253 27
-0.226300 59.631802 0.717000 0.878123 0.172158 0.446386 0 253 27
-0.605400 59.453602 0.006800 0.878123 0.172158 0.446386 0 253 27
-0.596000 60.268700 -0.255900 0.878123 0.172158 0.446386 0 253 27
-0.000000 59.375900 0.272700 0.351825 0.003851 0.936058 0 253 27
-0.000000 58.735298 0.237300 0.351825 0.003851 0.936058 0 253 27
-0.793500 58.611801 -0.022400 0.351825 0.003851 0.936058 0 253 27
-0.605400 59.453602 0.006800 0.351825 0.003851 0.936058 0 253 27
-1.340700 61.343498 -1.024900 0.500896 0.173312 0.847978 254 254 254
-2.225300 60.301201 -1.334400 0.500896 0.173312 0.847978 254 254 254
-2.209500 61.230499 -1.515000 0.500896 0.173312 0.847978 254 254 254
-0.474100 61.294899 -0.607800 0.419394 -0.893935 0.158081 0 253 27
-0.785400 61.539799 -0.048800 0.419394 -0.893935 0.158081 0 253 27
-0.179900 61.274700 0.058500 0.419394 -0.893935 0.158081 0 253 27
-0.163800 60.672798 0.405300 0.879737 0.234636 0.413532 0 253 27
-0.596000 60.268700 -0.255900 0.879737 0.234636 0.413532 0 253 27
-0.474100 61.294899 -0.607800 0.879737 0.234636 0.413532 0 253 27
-0.179900 61.274700 0.058500 0.879737 0.234636 0.413532 0 253 27
-0.785400 61.539799 -0.048800 0.405349 0.400850 0.821591 0 253 27
-1.792100 61.563202 -0.648200 0.405349 0.400850 0.821591 0 253 27
-1.901400 62.898899 -1.262500 0.405349 0.400850 0.821591 0 253 27
-0.000000 62.775902 -0.355700 0.405349 0.400850 0.821591 0 253 27
-1.901400 62.898899 -1.262500 0.958885 0.139689 0.247034 254 73 78
-1.792100 61.563202 -0.648200 0.958885 0.139689 0.247034 254 68 73
-2.209500 61.230499 -1.515000 0.958885 0.139689 0.247034 254 68 73
-2.505800 61.413601 -3.333900 0.958885 0.139689 0.247034 254 68 73
-2.071800 58.080299 -1.837600 0.982605 0.010378 0.185418 254 254 254
-2.361600 58.652599 -3.405400 0.982605 0.010378 0.185418 254 254 254
-2.043500 58.694401 -1.722000 0.982605 0.010378 0.185418 254 254 254
-2.361600 58.652599 -3.405400 0.835615 -0.547438 -0.045374 254 254 254
-2.071800 58.080299 -1.837600 0.835615 -0.547438 -0.045374 254 254 254
-1.480400 57.287800 -3.167400 0.835615 -0.547438 -0.045374 254 254 254
-2.361600 58.652599 -3.405400 0.962379 -0.178153 0.205154 254 254 254
-2.484800 60.667999 -2.078300 0.962379 -0.178153 0.205154 254 254 254
-2.225300 60.301201 -1.334400 0.962379 -0.178153 0.205154 254 254 254
-2.043500 58.694401 -1.722000 0.962379 -0.178153 0.205154 254 254 254
-0.596000 60.268700 -0.255900 0.569338 0.180881 0.801958 0 253 27
-0.605400 59.453602 0.006800 0.569338 0.180881 0.801958 0 253 27
-0.793500 58.611801 -0.022400 0.569338 0.180881 0.801958 0 253 27
-2.225300 60.301201 -1.334400 0.569338 0.180881 0.801958 0 253 27
-0.793500 58.611801 -0.022400 0.424783 -0.113068 0.898207 254 68 73
-0.000000 58.735298 0.237300 0.424783 -0.113068 0.898207 254 68 73
-0.000000 57.320400 0.190300 0.424783 -0.113068 0.898207 254 68 73
-0.860300 57.339199 -0.345300 0.424783 -0.113068 0.898207 254 68 73
-2.361600 58.652599 -3.405400 0.801295 -0.555920 -0.221086 254 254 254
-1.480400 57.287800 -3.167400 0.801295 -0.555920 -0.221086 254 254 254
-1.507500 57.978802 -4.806700 0.801295 -0.555920 -0.221086 254 254 254
-1.480400 57.287800 -3.167400 0.605736 -0.042761 0.794516 0 253 27
-0.509500 56.862801 -2.081200 0.605736 -0.042761 0.794516 0 253 27
-0.000000 54.522099 -2.187600 0.605736 -0.042761 0.794516 0 253 27
-1.435700 55.057400 -2.884500 0.605736 -0.042761 0.794516 0 254 27
-1.435700 55.057400 -2.884500 0.962522 0.132164 0.236820 254 68 73
-2.321200 55.471001 -5.570800 0.962522 0.132164 0.236820 254 68 73
-1.507500 57.978802 -4.806700 0.962522 0.132164 0.236820 254 68 73
-1.480400 57.287800 -3.167400 0.962522 0.132164 0.236820 254 68 73
-5.117200 15.490400 -9.679700 -0.146405 -0.402228 -0.903758 0 253 27
-1.456400 14.610600 -8.695100 -0.146405 -0.402228 -0.903758 0 253 27
-0.134100 16.169500 -9.174700 -0.146405 -0.402228 -0.903758 0 253 27
-0.134100 16.169500 -9.174700 -0.868940 -0.488451 0.079739 254 254 254
-1.239800 14.644800 -6.465300 -0.868940 -0.488451 0.079739 254 254 254
-1.716700 14.450400 -2.459200 -0.868940 -0.488451 0.079739 254 254 254
-5.308800 13.910900 -3.738700 0.254739 -0.396087 0.882170 0 253 27
-6.069200 14.643000 -3.762300 0.254739 -0.396087 0.882170 0 253 27
-1.716700 14.450400 -2.459200 0.254739 -0.396087 0.882170 0 253 27
-1.766900 13.754900 -2.918700 0.254739 -0.396087 0.882170 0 253 27
-4.620900 14.945700 -8.516100 0.580484 -0.782092 -0.226651 0 247 31
-5.117200 15.490400 -9.679700 0.580484 -0.782092 -0.226651 2 205 68
-6.069200 14.643000 -3.762300 0.580484 -0.782092 -0.226651 0 253 27
-5.308800 13.910900 -3.738700 0.580484 -0.782092 -0.226651 0 253 27
-1.957400 20.620800 -1.211500 -0.981620 0.066989 0.178702 254 254 254
-2.189200 21.987900 -1.483700 -0.981620 0.066989 0.178702 254 254 254
-0.835600 22.853901 -8.210700 -0.981620 0.066989 0.178702 254 254 254
-0.899900 21.410400 -8.349400 -0.981620 0.066989 0.178702 254 254 254
-7.174300 32.815300 -5.167300 0.882089 0.156872 -0.444196 17 7 244
-4.970000 33.082802 -8.871900 0.882089 0.156872 -0.444196 18 0 252
-5.283200 35.952900 -7.814600 0.882089 0.156872 -0.444196 18 1 249
-6.542300 35.480598 -4.902800 0.882089 0.156872 -0.444196 15 32 221
-5.598500 31.822901 -1.404300 0.892181 0.170029 0.418452 0 240 37
-7.174300 32.815300 -5.167300 0.892181 0.170029 0.418452 17 7 244
-6.542300 35.480598 -4.902800 0.892181 0.170029 0.418452 15 32 221
-4.685700 36.664101 -1.616400 0.472747 0.127337 0.871949 0 250 28
-3.798500 31.552500 -0.388900 0.472747 0.127337 0.871949 0 253 27
-5.598500 31.822901 -1.404300 0.472747 0.127337 0.871949 0 240 37
-2.225300 60.301201 -1.334400 0.926529 0.086891 0.366052 254 254 254
-2.484800 60.667999 -2.078300 0.926529 0.086891 0.366052 254 254 254
-2.209500 61.230499 -1.515000 0.926529 0.086891 0.366052 254 254 254
-8.927200 49.128502 -4.128200 0.174303 -0.164506 0.970853 254 68 73
-9.508400 52.403099 -3.672700 0.174303 -0.164506 0.970853 254 68 73
-8.184300 53.108700 -3.320400 0.174303 -0.164506 0.970853 254 68 73
-7.813100 49.342701 -3.886900 0.174303 -0.164506 0.970853 254 68 73
-8.184300 53.108700 -3.320400 0.526523 0.826719 0.198265 0 253 27
-9.508400 52.403099 -3.672700 0.526523 0.826719 0.198265 0 253 27
-9.827700 52.989700 -7.188500 0.526523 0.826719 0.198265 0 253 27
-8.747800 53.770199 -7.353300 0.526523 0.826719 0.198265 0 253 27
-8.747800 53.770199 -7.353300 0.154881 -0.035505 -0.987295 0 253 27
-6.775800 50.206501 -7.534500 0.154881 -0.035505 -0.987295 0 253 27
-7.252500 54.524502 -7.615000 0.154881 -0.035505 -0.987295 0 254 27
-8.927200 49.128502 -4.128200 -0.001669 -0.169906 0.985459 0 253 27
-14.977100 45.689201 -4.821000 -0.001669 -0.169906 0.985459 18 0 253
-15.636800 49.715099 -4.015700 -0.001669 -0.169906 0.985459 29 188 60
-9.508400 52.403099 -3.672700 -0.001669 -0.169906 0.985459 0 253 27
-1.435700 55.057400 -2.884500 0.215818 0.814400 0.538680 0 253 27
-3.773800 51.093601 -1.034300 0.215818 0.814400 0.538680 0 253 27
-6.624100 53.529800 -2.653700 0.215818 0.814400 0.538680 0 253 27
-7.252500 54.524502 -7.615000 0.215818 0.814400 0.538680 0 253 27
-2.321200 55.471001 -5.570800 0.276118 0.932071 0.234526 0 253 27
-1.435700 55.057400 -2.884500 0.276118 0.932071 0.234526 0 253 27
-7.252500 54.524502 -7.615000 0.276118 0.932071 0.234526 0 253 27
-2.209500 61.230499 -1.515000 0.942806 0.279456 0.181716 254 254 254
-2.484800 60.667999 -2.078300 0.942806 0.279456 0.181716 254 254 254
-2.505800 61.413601 -3.333900 0.942806 0.279456 0.181716 254 254 254
-2.484800 60.667999 -2.078300 0.998559 -0.051788 -0.014052 254 254 254
-2.361600 58.652599 -3.405400 0.998559 -0.051788 -0.014052 254 254 254
-2.505800 61.413601 -3.333900 0.998559 -0.051788 -0.014052 254 254 254
-2.209500 61.230499 -1.515000 0.107977 -0.909631 0.401138 254 68 73
-1.792100 61.563202 -0.648200 0.107977 -0.909631 0.401138 254 68 73
-1.340700 61.343498 -1.024900 0.107977 -0.909631 0.401138 254 68 73
-3.061600 3.537800 -3.461700 -0.234488 0.898953 0.369997 18 0 253
-1.553600 3.059500 -4.173500 -0.234488 0.898953 0.369997 18 0 253
-1.568700 1.981700 -0.627100 -0.234488 0.898953 0.369997 19 0 253
-3.735600 1.816900 0.228400 -0.234488 0.898953 0.369997 19 0 253
-0.626000 0.031700 -8.336200 -0.992053 0.072189 0.103052 0 254 27
-1.825200 -0.024100 0.601200 -0.992053 0.072189 0.103052 254 254 254
-1.568700 1.981700 -0.627100 -0.992053 0.072189 0.103052 254 254 254
-1.553600 3.059500 -4.173500 -0.992053 0.072189 0.103052 186 254 192
-1.825200 -0.024100 0.601200 0.002195 -0.999985 -0.005027 0 254 27
-0.626000 0.031700 -8.336200 0.002195 -0.999985 -0.005027 253 254 253
-1.712600 0.024900 -9.195700 0.002195 -0.999985 -0.005027 254 254 254
-3.769300 -0.009000 1.132900 0.002195 -0.999985 -0.005027 0 254 27
-1.712600 0.024900 -9.195700 -0.920325 0.042849 -0.388801 254 68 73
-0.626000 0.031700 -8.336200 -0.920325 0.042849 -0.388801 254 68 73
-1.239800 14.644800 -6.465300 -0.920325 0.042849 -0.388801 254 68 73
-1.456400 14.610600 -8.695100 -0.920325 0.042849 -0.388801 254 68 73
-1.568700 1.981700 -0.627100 -0.270273 0.452545 0.849798 19 0 253
-1.825200 -0.024100 0.601200 -0.270273 0.452545 0.849798 19 0 253
-3.769300 -0.009000 1.132900 -0.270273 0.452545 0.849798 19 0 253
-3.735600 1.816900 0.228400 -0.270273 0.452545 0.849798 19 0 253
-4.089400 2.633000 -5.031300 0.957442 -0.073711 -0.279054 18 0 253
-5.390300 1.568200 -1.670300 0.957442 -0.073711 -0.279054 18 0 253
-5.176800 -0.025000 -0.598300 0.957442 -0.073711 -0.279054 18 0 253
-3.252600 0.001600 -8.591000 0.957442 -0.073711 -0.279054 19 0 253
-3.769300 -0.009000 1.132900 0.738109 0.308147 0.600201 18 0 253
-5.176800 -0.025000 -0.598300 0.738109 0.308147 0.600201 18 0 253
-5.390300 1.568200 -1.670300 0.738109 0.308147 0.600201 18 0 253
-3.735600 1.816900 0.228400 0.738109 0.308147 0.600201 18 0 253
-5.390300 1.568200 -1.670300 0.560649 0.811720 0.163660 18 0 253
-4.089400 2.633000 -5.031300 0.560649 0.811720 0.163660 18 0 253
-3.061600 3.537800 -3.461700 0.560649 0.811720 0.163660 18 0 253
-3.735600 1.816900 0.228400 0.560649 0.811720 0.163660 18 0 253
-3.061600 3.537800 -3.461700 0.452521 -0.074303 0.888653 18 0 253
-4.089400 2.633000 -5.031300 0.452521 -0.074303 0.888653 18 0 253
-5.308800 13.910900 -3.738700 0.452521 -0.074303 0.888653 0 253 27
-1.766900 13.754900 -2.918700 0.452521 -0.074303 0.888653 0 253 27
-5.117200 15.490400 -9.679700 0.118623 -0.917754 -0.379021 0 253 27
-4.620900 14.945700 -8.516100 0.118623 -0.917754 -0.379021 0 253 27
-1.456400 14.610600 -8.695100 0.118623 -0.917754 -0.379021 0 253 27
-1.456400 14.610600 -8.695100 -0.751462 -0.656769 -0.062923 254 254 254
-1.239800 14.644800 -6.465300 -0.751462 -0.656769 -0.062923 254 254 254
-0.134100 16.169500 -9.174700 -0.751462 -0.656769 -0.062923 254 254 254
-5.426000 21.341299 -8.132600 0.959663 0.028025 -0.279753 15 21 230
-5.317800 22.936800 -8.016200 0.959663 0.028025 -0.279753 18 0 252
-6.824000 22.193899 -3.251500 0.959663 0.028025 -0.279753 3 179 89
-6.827700 20.858999 -3.044800 0.959663 0.028025 -0.279753 0 231 44
-0.845100 29.891001 -9.498900 0.127296 -0.127838 -0.983592 0 253 27
-5.595300 29.761600 -8.492500 0.127296 -0.127838 -0.983592 0 253 27
-5.317800 22.936800 -8.016200 0.127296 -0.127838 -0.983592 0 253 27
-0.835600 22.853901 -8.210700 0.127296 -0.127838 -0.983592 0 253 27
-1.957400 20.620800 -1.211500 0.345482 0.135420 0.928603 254 68 73
-6.827700 20.858999 -3.044800 0.345482 0.135420 0.928603 232 61 86
-6.824000 22.193899 -3.251500 0.345482 0.135420 0.928603 185 47 122
-2.189200 21.987900 -1.483700 0.345482 0.135420 0.928603 254 68 73
-0.605400 59.453602 0.006800 0.276378 -0.886938 0.370075 254 68 73
-0.226300 59.631802 0.717000 0.276378 -0.886938 0.370075 254 68 73
-0.000000 59.375900 0.272700 0.276378 -0.886938 0.370075 254 68 73
-21.936399 43.055199 -3.733600 0.245050 -0.199318 0.948801 19 0 253
-23.265499 44.290199 -3.614200 0.245050 -0.199318 0.948801 19 0 253
-23.323000 46.228001 -3.425200 0.245050 -0.199318 0.948801 19 0 251
-22.348700 46.932201 -2.822400 0.245050 -0.199318 0.948801 20 0 250
-22.105101 44.119598 -7.074000 0.680722 -0.210597 -0.701617 0 253 27
-23.337700 47.268200 -6.945000 0.680722 -0.210597 -0.701617 0 253 27
-23.881300 46.267799 -5.995500 0.680722 -0.210597 -0.701617 0 253 27
-23.273100 44.479099 -6.170500 0.680722 -0.210597 -0.701617 0 253 27
-22.348700 46.932201 -2.822400 0.710630 0.673907 0.202126 18 0 249
-23.323000 46.228001 -3.425200 0.710630 0.673907 0.202126 18 0 251
-23.881300 46.267799 -5.995500 0.710630 0.673907 0.202126 12 63 193
-23.337700 47.268200 -6.945000 0.710630 0.673907 0.202126 2 175 92
-21.936399 43.055199 -3.733600 0.575702 -0.803125 -0.153486 18 0 253
-22.105101 44.119598 -7.074000 0.575702 -0.803125 -0.153486 18 0 253
-23.273100 44.479099 -6.170500 0.575702 -0.803125 -0.153486 18 0 253
-23.265499 44.290199 -3.614200 0.575702 -0.803125 -0.153486 18 0 253
-23.323000 46.228001 -3.425200 -0.234519 0.052147 0.970712 19 0 251
-23.265499 44.290199 -3.614200 -0.234519 0.052147 0.970712 19 0 253
-24.446100 44.099098 -3.039500 -0.234519 0.052147 0.970712 19 0 253
-24.935400 45.742901 -3.288800 -0.234519 0.052147 0.970712 20 0 251
-23.273100 44.479099 -6.170500 0.051663 0.047611 -0.997529 0 253 27
-23.881300 46.267799 -5.995500 0.051663 0.047611 -0.997529 0 253 27
-25.982700 45.641201 -5.974700 0.051663 0.047611 -0.997529 0 253 27
-25.718901 44.407902 -5.989100 0.051663 0.047611 -0.997529 0 253 27
-23.881300 46.267799 -5.995500 0.283035 0.956157 0.075198 64 24 202
-23.323000 46.228001 -3.425200 0.283035 0.956157 0.075198 19 0 251
-24.935400 45.742901 -3.288800 0.283035 0.956157 0.075198 20 0 251
-25.982700 45.641201 -5.974700 0.283035 0.956157 0.075198 65 29 197
-23.265499 44.290199 -3.614200 -0.050680 -0.993534 -0.101596 0 251 27
-23.273100 44.479099 -6.170500 -0.050680 -0.993534 -0.101596 0 253 27
-25.718901 44.407902 -5.989100 -0.050680 -0.993534 -0.101596 0 253 27
-24.446100 44.099098 -3.039500 -0.050680 -0.993534 -0.101596 53 205 30
-3.798500 31.552500 -0.388900 0.303080 0.047081 0.951802 57 208 35
-4.685700 36.664101 -1.616400 0.303080 0.047081 0.951802 0 250 28
-0.000000 37.009800 0.550700 0.303080 0.047081 0.951802 172 124 55
-0.000000 31.552500 0.128500 0.303080 0.047081 0.951802 203 101 62
-27.058001 43.733101 -1.471100 0.612973 -0.035197 0.789319 19 0 253
-26.775499 43.007000 -1.492900 0.612973 -0.035197 0.789319 19 0 253
-27.637899 42.321201 -1.984400 0.612973 -0.035197 0.789319 19 0 253
-28.100901 44.177299 -2.470000 0.612973 -0.035197 0.789319 19 0 253
-27.102699 45.320202 -5.735100 0.288380 -0.175341 -0.941325 0 253 27
-26.246300 42.901402 -5.383600 0.288380 -0.175341 -0.941325 0 252 27
-25.718901 44.407902 -5.989100 0.288380 -0.175341 -0.941325 0 253 27
-25.982700 45.641201 -5.974700 0.288380 -0.175341 -0.941325 0 253 27
-24.935400 45.742901 -3.288800 0.215944 0.976143 0.022647 20 0 251
-26.753901 45.398300 -2.858600 0.215944 0.976143 0.022647 21 0 250
-27.102699 45.320202 -5.735100 0.215944 0.976143 0.022647 69 22 201
-25.982700 45.641201 -5.974700 0.215944 0.976143 0.022647 65 29 197
-24.446100 44.099098 -3.039500 -0.806467 -0.440747 -0.394147 254 254 254
-25.718901 44.407902 -5.989100 -0.806467 -0.440747 -0.394147 254 254 254
-26.246300 42.901402 -5.383600 -0.806467 -0.440747 -0.394147 254 254 254
-28.380600 42.330502 -3.056600 0.840529 -0.044209 0.539960 19 0 253
-28.697901 44.238201 -3.477500 0.840529 -0.044209 0.539960 20 0 252
-28.100901 44.177299 -2.470000 0.840529 -0.044209 0.539960 19 0 253
-27.637899 42.321201 -1.984400 0.840529 -0.044209 0.539960 19 0 253
-28.380600 42.330502 -3.056600 0.979149 -0.175223 -0.102788 19 0 253
-28.292801 42.543098 -4.446800 0.979149 -0.175223 -0.102788 19 0 253
-28.543800 44.178001 -4.651400 0.979149 -0.175223 -0.102788 20 3 248
-28.697901 44.238201 -3.477500 0.979149 -0.175223 -0.102788 20 0 252
-26.753901 45.398300 -2.858600 0.560189 0.737837 0.376544 20 0 250
-28.100901 44.177299 -2.470000 0.560189 0.737837 0.376544 19 0 253
-28.697901 44.238201 -3.477500 0.560189 0.737837 0.376544 20 0 252
-24.935400 45.742901 -3.288800 -0.484106 0.321222 0.813915 20 0 251
-24.446100 44.099098 -3.039500 -0.484106 0.321222 0.813915 19 0 253
-25.587200 43.557701 -2.038700 -0.484106 0.321222 0.813915 19 0 253
-26.117701 44.487900 -2.198700 -0.484106 0.321222 0.813915 19 0 253
-24.446100 44.099098 -3.039500 -0.765721 -0.642695 -0.024780 254 68 73
-26.246300 42.901402 -5.383600 -0.765721 -0.642695 -0.024780 254 68 73
-25.491899 42.827301 -2.370100 -0.765721 -0.642695 -0.024780 254 68 73
-25.587200 43.557701 -2.038700 -0.765721 -0.642695 -0.024780 254 68 73
-26.753901 45.398300 -2.858600 -0.068715 0.616533 0.784324 21 0 250
-24.935400 45.742901 -3.288800 -0.068715 0.616533 0.784324 20 0 251
-26.117701 44.487900 -2.198700 -0.068715 0.616533 0.784324 19 0 253
-0.000000 31.552500 0.128500 0.069913 -0.031462 0.997057 0 253 27
-0.000000 24.132099 -0.356700 0.069913 -0.031462 0.997057 0 253 27
-3.463700 23.872801 -0.356700 0.069913 -0.031462 0.997057 0 253 27
-3.798500 31.552500 -0.388900 0.069913 -0.031462 0.997057 0 253 27
-2.225300 60.301201 -1.334400 0.789816 -0.226827 0.569860 0 253 27
-0.793500 58.611801 -0.022400 0.789816 -0.226827 0.569860 0 253 27
-2.043500 58.694401 -1.722000 0.789816 -0.226827 0.569860 0 253 27
-0.793500 58.611801 -0.022400 0.800106 -0.097243 0.591924 0 253 27
-0.860300 57.339199 -0.345300 0.800106 -0.097243 0.591924 0 253 27
-2.071800 58.080299 -1.837600 0.800106 -0.097243 0.591924 0 253 27
-2.043500 58.694401 -1.722000 0.800106 -0.097243 0.591924 0 253 27
-2.071800 58.080299 -1.837600 0.594038 -0.791272 0.144939 254 68 73
-0.860300 57.339199 -0.345300 0.594038 -0.791272 0.144939 254 68 73
-0.509500 56.862801 -2.081200 0.594038 -0.791272 0.144939 254 68 73
-1.480400 57.287800 -3.167400 0.594038 -0.791272 0.144939 254 68 73
-0.179900 61.274700 0.058500 0.090663 0.188705 0.977840 0 254 27
-0.785400 61.539799 -0.048800 0.090663 0.188705 0.977840 0 254 27
-0.000000 61.912998 -0.048000 0.090663 0.188705 0.977840 0 254 27
-15.884600 46.520500 -7.855800 0.098387 0.080586 -0.991880 0 253 27
-14.885000 46.974701 -7.946000 0.098387 0.080586 -0.991880 0 253 27
-16.136200 50.023998 -7.546200 0.098387 0.080586 -0.991880 0 253 27
-17.208200 49.477699 -7.512200 0.098387 0.080586 -0.991880 0 253 27
-15.636800 49.715099 -4.015700 0.436830 0.889212 0.135946 1 215 59
-16.810101 49.139900 -3.928800 0.436830 0.889212 0.135946 5 158 110
-17.208200 49.477699 -7.512200 0.436830 0.889212 0.135946 0 227 47
-16.136200 50.023998 -7.546200 0.436830 0.889212 0.135946 0 244 34
-16.192200 44.960400 -4.877100 -0.435886 -0.826304 -0.356686 254 252 252
-14.977100 45.689201 -4.821000 -0.435886 -0.826304 -0.356686 254 202 204
-14.885000 46.974701 -7.946000 -0.435886 -0.826304 -0.356686 254 123 127
-15.884600 46.520500 -7.855800 -0.435886 -0.826304 -0.356686 254 212 213
-16.810101 49.139900 -3.928800 -0.116417 -0.190205 0.974818 35 133 112
-15.636800 49.715099 -4.015700 -0.116417 -0.190205 0.974818 25 190 59
-14.977100 45.689201 -4.821000 -0.116417 -0.190205 0.974818 18 0 253
-16.192200 44.960400 -4.877100 -0.116417 -0.190205 0.974818 18 0 253
-13.779500 47.417198 -7.715300 0.030432 0.115440 -0.992848 12 79 181
-8.756500 49.321098 -7.632900 0.030432 0.115440 -0.992848 0 250 29
-9.827700 52.989700 -7.188500 0.030432 0.115440 -0.992848 0 253 27
-14.989100 50.565300 -7.297200 0.030432 0.115440 -0.992848 0 249 29
-15.636800 49.715099 -4.015700 0.447311 0.883265 0.140554 1 215 59
-16.136200 50.023998 -7.546200 0.447311 0.883265 0.140554 0 244 34
-14.989100 50.565300 -7.297200 0.447311 0.883265 0.140554 0 249 29
-13.779500 47.417198 -7.715300 -0.409629 -0.847844 -0.336696 254 70 75
-14.885000 46.974701 -7.946000 -0.409629 -0.847844 -0.336696 254 123 127
-14.977100 45.689201 -4.821000 -0.409629 -0.847844 -0.336696 254 202 204
-1.239800 14.644800 -6.465300 -0.983473 -0.143727 0.110102 254 254 254
-1.766900 13.754900 -2.918700 -0.983473 -0.143727 0.110102 254 254 254
-1.716700 14.450400 -2.459200 -0.983473 -0.143727 0.110102 254 254 254
-26.117701 44.487900 -2.198700 -0.374471 0.258120 0.890587 19 0 253
-25.587200 43.557701 -2.038700 -0.374471 0.258120 0.890587 19 0 253
-26.775499 43.007000 -1.492900 -0.374471 0.258120 0.890587 19 0 253
-27.058001 43.733101 -1.471100 -0.374471 0.258120 0.890587 19 0 253
-25.587200 43.557701 -2.038700 -0.386633 -0.610879 0.690899 19 0 253
-25.491899 42.827301 -2.370100 -0.386633 -0.610879 0.690899 19 0 253
-27.637899 42.321201 -1.984400 -0.386633 -0.610879 0.690899 19 0 253
-26.775499 43.007000 -1.492900 -0.386633 -0.610879 0.690899 19 0 253
-26.117701 44.487900 -2.198700 0.202601 0.798645 0.566673 19 0 253
-27.058001 43.733101 -1.471100 0.202601 0.798645 0.566673 19 0 253
-28.100901 44.177299 -2.470000 0.202601 0.798645 0.566673 19 0 253
-8.184300 53.108700 -3.320400 0.347207 -0.172872 0.921717 254 68 73
-6.624100 53.529800 -2.653700 0.347207 -0.172872 0.921717 254 68 73
-7.813100 49.342701 -3.886900 0.347207 -0.172872 0.921717 254 68 73
-8.747800 53.770199 -7.353300 0.055764 0.062731 -0.996471 0 253 27
-9.827700 52.989700 -7.188500 0.055764 0.062731 -0.996471 0 253 27
-8.756500 49.321098 -7.632900 0.055764 0.062731 -0.996471 0 253 27
-6.775800 50.206501 -7.534500 0.055764 0.062731 -0.996471 0 253 27
-28.543800 44.178001 -4.651400 0.562493 0.826801 -0.001192 20 3 248
-27.102699 45.320202 -5.735100 0.562493 0.826801 -0.001192 12 64 193
-26.753901 45.398300 -2.858600 0.562493 0.826801 -0.001192 20 0 250
-28.697901 44.238201 -3.477500 0.562493 0.826801 -0.001192 20 0 252
-26.246300 42.901402 -5.383600 -0.106461 -0.983873 -0.143736 0 252 27
-28.292801 42.543098 -4.446800 -0.106461 -0.983873 -0.143736 87 180 37
-28.380600 42.330502 -3.056600 -0.106461 -0.983873 -0.143736 242 73 67
-28.100901 44.177299 -2.470000 0.192584 0.484112 0.853550 19 0 253
-26.753901 45.398300 -2.858600 0.192584 0.484112 0.853550 21 0 250
-26.117701 44.487900 -2.198700 0.192584 0.484112 0.853550 19 0 253
-1.712600 0.024900 -9.195700 -0.013475 -0.999909 -0.000374 19 0 253
-3.252600 0.001600 -8.591000 -0.013475 -0.999909 -0.000374 19 0 253
-5.176800 -0.025000 -0.598300 -0.013475 -0.999909 -0.000374 18 0 253
-3.769300 -0.009000 1.132900 -0.013475 -0.999909 -0.000374 18 0 253
-0.000000 61.912998 -0.048000 0.158526 0.331625 0.929997 0 254 27
-0.785400 61.539799 -0.048800 0.158526 0.331625 0.929997 0 254 27
-0.000000 62.775902 -0.355700 0.158526 0.331625 0.929997 0 254 27
-0.340300 31.400700 -9.928000 -0.943868 -0.327610 -0.042246 254 254 254
-0.845100 29.891001 -9.498900 -0.943868 -0.327610 -0.042246 254 254 254
-0.425600 30.069099 -1.507500 -0.943868 -0.327610 -0.042246 254 254 254
-0.509500 56.862801 -2.081200 0.000000 -0.045410 0.998968 254 127 129
-0.509500 56.862801 -2.081200 0.098448 -0.971038 0.217700 0 253 27
-0.860300 57.339199 -0.345300 0.098448 -0.971038 0.217700 0 253 27
-0.000000 57.320400 0.190300 0.098448 -0.971038 0.217700 0 253 27
-0.000000 56.862801 -2.081200 0.098448 -0.971038 0.217700 0 253 27
-5.598500 31.822901 -1.404300 0.881264 0.021588 0.472131 0 240 37
-6.824000 22.193899 -3.251500 0.881264 0.021588 0.472131 3 179 89
-7.453900 29.910801 -4.780100 0.881264 0.021588 0.472131 18 0 251
-6.824000 22.193899 -3.251500 0.921284 -0.108958 -0.373315 3 179 89
-5.317800 22.936800 -8.016200 0.921284 -0.108958 -0.373315 18 0 252
-5.595300 29.761600 -8.492500 0.921284 -0.108958 -0.373315 18 0 253
-7.453900 29.910801 -4.780100 0.921284 -0.108958 -0.373315 18 0 251
-3.798500 31.552500 -0.388900 0.401815 -0.146587 0.903912 0 253 27
-2.189200 21.987900 -1.483700 0.401815 -0.146587 0.903912 0 253 27
-6.824000 22.193899 -3.251500 0.401815 -0.146587 0.903912 3 179 89
-5.598500 31.822901 -1.404300 0.401815 -0.146587 0.903912 0 240 37
-0.340300 31.400700 -9.928000 0.230509 -0.107925 -0.967067 0 253 27
-4.970000 33.082802 -8.871900 0.230509 -0.107925 -0.967067 0 253 27
-5.595300 29.761600 -8.492500 0.230509 -0.107925 -0.967067 0 253 27
-0.845100 29.891001 -9.498900 0.230509 -0.107925 -0.967067 0 253 27
-0.835600 22.853901 -8.210700 -0.992236 -0.110106 0.057826 254 254 254
-2.189200 21.987900 -1.483700 -0.992236 -0.110106 0.057826 254 254 254
-0.425600 30.069099 -1.507500 -0.992236 -0.110106 0.057826 254 254 254
-0.845100 29.891001 -9.498900 -0.992236 -0.110106 0.057826 254 254 254
-2.162800 35.743500 -9.599900 0.324673 0.084802 -0.942017 0 253 27
-5.283200 35.952900 -7.814600 0.324673 0.084802 -0.942017 0 253 27
-4.970000 33.082802 -8.871900 0.324673 0.084802 -0.942017 0 253 27
-0.340300 31.400700 -9.928000 0.324673 0.084802 -0.942017 0 253 27
-5.283200 35.952900 -7.814600 0.889642 0.311183 -0.334218 18 1 249
-5.919200 37.619099 -4.570300 0.889642 0.311183 -0.334218 9 98 162
-6.542300 35.480598 -4.902800 0.889642 0.311183 -0.334218 15 32 221
-5.919200 37.619099 -4.570300 0.882631 0.186784 0.431364 9 98 162
-4.685700 36.664101 -1.616400 0.882631 0.186784 0.431364 0 250 28
-5.598500 31.822901 -1.404300 0.882631 0.186784 0.431364 0 240 37
-6.542300 35.480598 -4.902800 0.882631 0.186784 0.431364 15 32 221
-0.474100 61.294899 -0.607800 0.490764 0.255871 0.832875 254 68 73
-0.596000 60.268700 -0.255900 0.490764 0.255871 0.832875 254 68 73
-2.225300 60.301201 -1.334400 0.490764 0.255871 0.832875 254 68 73
-1.340700 61.343498 -1.024900 0.490764 0.255871 0.832875 254 68 73
-1.340700 61.343498 -1.024900 0.199083 -0.932669 0.300824 0 253 27
-1.792100 61.563202 -0.648200 0.199083 -0.932669 0.300824 0 253 27
-0.785400 61.539799 -0.048800 0.199083 -0.932669 0.300824 0 253 27
-0.474100 61.294899 -0.607800 0.199083 -0.932669 0.300824 0 253 27
-0.000000 45.235802 -8.516300 0.205813 0.023108 -0.978318 0 253 27
-5.495700 46.043098 -6.732400 0.205813 0.023108 -0.978318 0 252 27
-2.827600 38.171799 -8.088300 0.205813 0.023108 -0.978318 8 119 142
-0.000000 38.221600 -8.073300 0.205813 0.023108 -0.978318 0 240 38
-0.425600 30.069099 -1.507500 -0.290133 -0.060504 0.955072 254 254 254
-2.189200 21.987900 -1.483700 -0.290133 -0.060504 0.955072 254 254 254
-3.798500 31.552500 -0.388900 -0.290133 -0.060504 0.955072 254 254 254
-0.000000 31.547001 -9.939100 -0.348901 -0.925923 -0.144686 254 68 73
-0.340300 31.400700 -9.928000 -0.348901 -0.925923 -0.144686 254 68 73
-0.425600 30.069099 -1.507500 -0.348901 -0.925923 -0.144686 254 68 73
-0.000000 30.215401 -1.522000 -0.348901 -0.925923 -0.144686 254 68 73
-21.061199 44.183601 -7.611200 0.028361 0.039319 -0.998824 18 0 253
-15.884600 46.520500 -7.855800 0.028361 0.039319 -0.998824 17 5 246
-17.208200 49.477699 -7.512200 0.028361 0.039319 -0.998824 0 227 47
-22.585199 48.327702 -7.594400 0.028361 0.039319 -0.998824 0 239 38
-22.348700 46.932201 -2.822400 0.723103 0.652497 0.226650 18 0 249
-23.337700 47.268200 -6.945000 0.723103 0.652497 0.226650 2 175 92
-22.585199 48.327702 -7.594400 0.723103 0.652497 0.226650 0 239 38
-21.061199 44.183601 -7.611200 0.095048 -0.949863 -0.297868 0 253 27
-22.105101 44.119598 -7.074000 0.095048 -0.949863 -0.297868 0 253 27
-21.936399 43.055199 -3.733600 0.095048 -0.949863 -0.297868 0 253 27
-0.340300 31.400700 -9.928000 0.010374 0.075249 -0.997111 0 253 27
-0.000000 31.547001 -9.939100 0.010374 0.075249 -0.997111 0 253 27
-0.000000 35.795200 -9.599900 0.010374 0.075249 -0.997111 0 253 27
-2.162800 35.743500 -9.599900 0.010374 0.075249 -0.997111 0 253 27
-5.919200 37.619099 -4.570300 0.561685 0.544798 -0.622660 9 98 162
-5.283200 35.952900 -7.814600 0.561685 0.544798 -0.622660 18 1 249
-2.162800 35.743500 -9.599900 0.561685 0.544798 -0.622660 16 28 225
-2.827600 38.171799 -8.088300 0.561685 0.544798 -0.622660 8 119 142
-28.543800 44.178001 -4.651400 0.410462 -0.233070 -0.881589 77 187 34
-28.292801 42.543098 -4.446800 0.410462 -0.233070 -0.881589 87 180 37
-26.246300 42.901402 -5.383600 0.410462 -0.233070 -0.881589 0 252 27
-27.102699 45.320202 -5.735100 0.410462 -0.233070 -0.881589 0 253 27
-25.491899 42.827301 -2.370100 -0.201709 -0.968181 -0.148119 190 254 195
-28.380600 42.330502 -3.056600 -0.201709 -0.968181 -0.148119 242 254 242
-27.637899 42.321201 -1.984400 -0.201709 -0.968181 -0.148119 254 254 254
-26.246300 42.901402 -5.383600 -0.185319 -0.980147 -0.070494 0 254 27
-28.380600 42.330502 -3.056600 -0.185319 -0.980147 -0.070494 242 254 242
-25.491899 42.827301 -2.370100 -0.185319 -0.980147 -0.070494 190 254 195
-2.162800 35.743500 -9.599900 0.008224 0.529675 -0.848161 0 253 27
-0.000000 35.795200 -9.599900 0.008224 0.529675 -0.848161 0 253 27
-0.000000 38.221600 -8.073300 0.008224 0.529675 -0.848161 0 253 27
-2.827600 38.171799 -8.088300 0.008224 0.529675 -0.848161 0 253 27
-0.706900 62.538601 -0.289700 0.498102 0.211804 0.840853 0 253 27
-1.838200 62.255798 -0.802600 0.498102 0.211804 0.840853 0 253 27
-1.901400 63.532299 -1.247600 0.498102 0.211804 0.840853 0 253 27
-0.672300 63.485901 -0.421800 0.498102 0.211804 0.840853 0 253 27
-1.901400 63.532299 -1.247600 0.915374 0.111541 0.386845 0 253 27
-1.838200 62.255798 -0.802600 0.915374 0.111541 0.386845 0 253 27
-3.194200 60.597198 -3.460400 0.915374 0.111541 0.386845 0 253 27
-2.758700 63.532299 -3.348800 0.915374 0.111541 0.386845 0 253 27
-2.758700 63.532299 -3.348800 0.984906 0.142377 0.098436 0 253 27
-3.194200 60.597198 -3.460400 0.984906 0.142377 0.098436 0 253 27
-3.446000 60.597198 -5.980300 0.984906 0.142377 0.098436 0 253 27
-3.010600 63.532299 -5.868700 0.984906 0.142377 0.098436 0 253 27
-3.194200 60.597198 -3.460400 0.917633 0.222238 0.329485 0 253 27
-1.838200 62.255798 -0.802600 0.917633 0.222238 0.329485 0 253 27
-2.336800 60.597198 -1.072500 0.917633 0.222238 0.329485 0 253 27
-2.130500 53.628601 -1.359200 0.842435 0.033555 0.537753 0 253 27
-4.088800 54.879799 -3.460400 0.842435 0.033555 0.537753 0 253 27
-3.194200 60.597198 -3.460400 0.842435 0.033555 0.537753 0 253 27
-2.336800 60.597198 -1.072500 0.842435 0.033555 0.537753 0 253 27
-4.088800 54.879799 -3.460400 0.982155 0.156435 0.104398 0 253 27
-4.340700 55.234299 -6.210400 0.982155 0.156435 0.104398 0 254 27
-3.446000 60.597198 -5.980300 0.982155 0.156435 0.104398 0 253 27
-3.194200 60.597198 -3.460400 0.982155 0.156435 0.104398 0 253 27
-3.010600 63.532299 -5.868700 0.839145 0.204241 -0.504105 0 253 27
-3.446000 60.597198 -5.980300 0.839145 0.204241 -0.504105 0 253 27
-2.517200 60.597198 -7.879200 0.839145 0.204241 -0.504105 0 253 27
-1.932100 63.532299 -7.311200 0.839145 0.204241 -0.504105 0 253 27
-3.446000 60.597198 -5.980300 0.847590 0.127945 -0.514996 0 253 27
-4.340700 55.234299 -6.210400 0.847590 0.127945 -0.514996 0 254 27
-2.990300 54.496300 -8.246000 0.847590 0.127945 -0.514996 0 253 27
-2.517200 60.597198 -7.879200 0.847590 0.127945 -0.514996 0 253 27
-1.932100 63.532299 -7.311200 0.365116 0.222173 -0.904063 0 253 27
-2.517200 60.597198 -7.879200 0.365116 0.222173 -0.904063 0 253 27
-0.000000 60.597198 -8.812800 0.365116 0.222173 -0.904063 0 253 27
-0.000000 63.532299 -8.174500 0.365116 0.222173 -0.904063 0 253 27
-2.990300 54.496300 -8.246000 0.255106 0.035267 -0.966270 0 253 27
-0.000000 54.050800 -8.782700 0.255106 0.035267 -0.966270 0 253 27
-0.000000 60.597198 -8.812800 0.255106 0.035267 -0.966270 0 253 27
-2.517200 60.597198 -7.879200 0.255106 0.035267 -0.966270 0 253 27
-0.672300 63.485901 -0.421800 0.422112 0.618267 0.662999 0 253 27
-1.901400 63.532299 -1.247600 0.422112 0.618267 0.662999 0 253 27
-1.171400 65.057899 -2.205500 0.422112 0.618267 0.662999 0 253 27
-1.901400 63.532299 -1.247600 0.756752 0.608663 0.238446 0 253 27
-2.758700 63.532299 -3.348800 0.756752 0.608663 0.238446 0 253 27
-1.795600 65.057899 -4.806100 0.756752 0.608663 0.238446 0 253 27
-1.171400 65.057899 -2.205500 0.756752 0.608663 0.238446 0 253 27
-2.758700 63.532299 -3.348800 0.806293 0.585999 0.080601 0 253 27
-3.010600 63.532299 -5.868700 0.806293 0.585999 0.080601 0 253 27
-1.795600 65.057899 -4.806100 0.806293 0.585999 0.080601 0 253 27
-3.010600 63.532299 -5.868700 0.468822 0.765524 -0.440657 0 253 27
-1.932100 63.532299 -7.311200 0.468822 0.765524 -0.440657 0 254 27
-0.000000 65.057899 -6.421400 0.468822 0.765524 -0.440657 0 253 27
-1.795600 65.057899 -4.806100 0.468822 0.765524 -0.440657 0 253 27
-1.932100 63.532299 -7.311200 0.281463 0.723860 -0.629925 0 254 27
-0.000000 63.532299 -8.174500 0.281463 0.723860 -0.629925 0 253 27
-0.000000 65.057899 -6.421400 0.281463 0.723860 -0.629925 0 253 27
-1.171400 65.057899 -2.205500 0.296421 0.952404 0.071148 0 253 27
-1.795600 65.057899 -4.806100 0.296421 0.952404 0.071148 0 253 27
-0.000000 65.560898 -4.058400 0.296421 0.952404 0.071148 0 253 27
-1.795600 65.057899 -4.806100 0.184093 0.961370 -0.204641 0 254 27
-0.000000 65.057899 -6.421400 0.184093 0.961370 -0.204641 0 254 27
-0.000000 65.560898 -4.058400 0.184093 0.961370 -0.204641 0 254 27
-0.672300 63.485901 -0.421800 0.000000 0.750225 0.661183 0 254 27
-1.171400 65.057899 -2.205500 0.000000 0.750225 0.661183 0 254 27
--1.171400 65.057899 -2.205500 0.000000 0.750225 0.661183 0 254 27
--0.672300 63.485901 -0.421800 0.000000 0.750225 0.661183 0 254 27
-0.706900 62.538601 -0.289700 0.204667 0.142518 0.968401 0 254 27
-0.672300 63.485901 -0.421800 0.204667 0.142518 0.968401 0 254 27
-0.000000 62.538601 -0.140300 0.204667 0.142518 0.968401 0 254 27
-0.672300 63.485901 -0.421800 -0.000000 0.284850 0.958572 0 254 27
--0.672300 63.485901 -0.421800 -0.000000 0.284850 0.958572 0 254 27
-0.000000 62.538601 -0.140300 -0.000000 0.284850 0.958572 0 254 27
-2.130500 53.628601 -1.359200 -0.899990 0.017690 0.435552 0 253 27
-2.336800 60.597198 -1.072500 -0.899990 0.017690 0.435552 0 253 27
-1.393700 60.597198 -3.164700 -0.899990 0.017690 0.435552 0 253 27
-1.187300 53.628601 -3.164700 -0.899990 0.017690 0.435552 0 253 27
--0.706900 62.538601 -0.289700 -0.498102 0.211804 0.840853 0 254 27
--0.672300 63.485901 -0.421800 -0.498102 0.211804 0.840853 0 254 27
--1.901400 63.532299 -1.247600 -0.498102 0.211804 0.840853 0 254 27
--1.838200 62.255798 -0.802600 -0.498102 0.211804 0.840853 0 254 27
--1.901400 63.532299 -1.247600 -0.915374 0.111541 0.386845 0 254 27
--2.758700 63.532299 -3.348800 -0.915374 0.111541 0.386845 0 254 27
--3.194200 60.597198 -3.460400 -0.915374 0.111541 0.386845 0 254 27
--1.838200 62.255798 -0.802600 -0.915374 0.111541 0.386845 0 254 27
--2.758700 63.532299 -3.348800 -0.984906 0.142377 0.098436 0 254 27
--3.010600 63.532299 -5.868700 -0.984906 0.142377 0.098436 0 254 27
--3.446000 60.597198 -5.980300 -0.984906 0.142377 0.098436 0 254 27
--3.194200 60.597198 -3.460400 -0.984906 0.142377 0.098436 0 254 27
--3.194200 60.597198 -3.460400 -0.917633 0.222238 0.329485 0 254 27
--2.336800 60.597198 -1.072500 -0.917633 0.222238 0.329485 0 254 27
--1.838200 62.255798 -0.802600 -0.917633 0.222238 0.329485 0 254 27
--2.130500 53.628601 -1.359200 -0.842435 0.033555 0.537753 0 253 27
--2.336800 60.597198 -1.072500 -0.842435 0.033555 0.537753 0 254 27
--3.194200 60.597198 -3.460400 -0.842435 0.033555 0.537753 0 254 27
--4.088800 54.879799 -3.460400 -0.842435 0.033555 0.537753 0 253 27
--4.088800 54.879799 -3.460400 -0.982155 0.156435 0.104398 0 253 27
--3.194200 60.597198 -3.460400 -0.982155 0.156435 0.104398 0 253 27
--3.446000 60.597198 -5.980300 -0.982155 0.156435 0.104398 0 253 27
--4.340700 55.234299 -6.210400 -0.982155 0.156435 0.104398 0 254 27
--3.010600 63.532299 -5.868700 -0.839145 0.204241 -0.504105 0 254 27
--1.932100 63.532299 -7.311200 -0.839145 0.204241 -0.504105 0 254 27
--2.517200 60.597198 -7.879200 -0.839145 0.204241 -0.504105 0 254 27
--3.446000 60.597198 -5.980300 -0.839145 0.204241 -0.504105 0 254 27
--3.446000 60.597198 -5.980300 -0.847590 0.127945 -0.514996 0 254 27
--2.517200 60.597198 -7.879200 -0.847590 0.127945 -0.514996 0 254 27
--2.990300 54.496300 -8.246000 -0.847590 0.127945 -0.514996 0 254 27
--4.340700 55.234299 -6.210400 -0.847590 0.127945 -0.514996 0 254 27
--1.932100 63.532299 -7.311200 -0.365116 0.222173 -0.904063 0 254 27
-0.000000 63.532299 -8.174500 -0.365116 0.222173 -0.904063 0 254 27
-0.000000 60.597198 -8.812800 -0.365116 0.222173 -0.904063 0 254 27
--2.517200 60.597198 -7.879200 -0.365116 0.222173 -0.904063 0 254 27
--2.990300 54.496300 -8.246000 -0.255106 0.035267 -0.966270 0 254 27
--2.517200 60.597198 -7.879200 -0.255106 0.035267 -0.966270 0 254 27
-0.000000 60.597198 -8.812800 -0.255106 0.035267 -0.966270 0 254 27
-0.000000 54.050800 -8.782700 -0.255106 0.035267 -0.966270 0 254 27
--0.672300 63.485901 -0.421800 -0.422112 0.618267 0.662999 0 254 27
--1.171400 65.057899 -2.205500 -0.422112 0.618267 0.662999 0 254 27
--1.901400 63.532299 -1.247600 -0.422112 0.618267 0.662999 0 254 27
--1.901400 63.532299 -1.247600 -0.756752 0.608663 0.238446 0 254 27
--1.171400 65.057899 -2.205500 -0.756752 0.608663 0.238446 0 254 27
--1.795600 65.057899 -4.806100 -0.756752 0.608663 0.238446 0 254 27
--2.758700 63.532299 -3.348800 -0.756752 0.608663 0.238446 0 254 27
--2.758700 63.532299 -3.348800 -0.806293 0.585999 0.080601 0 254 27
--1.795600 65.057899 -4.806100 -0.806293 0.585999 0.080601 0 254 27
--3.010600 63.532299 -5.868700 -0.806293 0.585999 0.080601 0 254 27
--3.010600 63.532299 -5.868700 -0.468822 0.765524 -0.440657 0 254 27
--1.795600 65.057899 -4.806100 -0.468822 0.765524 -0.440657 0 254 27
-0.000000 65.057899 -6.421400 -0.468822 0.765524 -0.440657 0 254 27
--1.932100 63.532299 -7.311200 -0.468822 0.765524 -0.440657 0 254 27
--1.932100 63.532299 -7.311200 -0.281463 0.723860 -0.629925 0 254 27
-0.000000 65.057899 -6.421400 -0.281463 0.723860 -0.629925 0 254 27
-0.000000 63.532299 -8.174500 -0.281463 0.723860 -0.629925 0 254 27
--1.171400 65.057899 -2.205500 -0.296421 0.952404 0.071148 0 254 27
-0.000000 65.560898 -4.058400 -0.296421 0.952404 0.071148 0 254 27
--1.795600 65.057899 -4.806100 -0.296421 0.952404 0.071148 0 254 27
--1.795600 65.057899 -4.806100 -0.184093 0.961370 -0.204641 0 254 27
-0.000000 65.560898 -4.058400 -0.184093 0.961370 -0.204641 0 254 27
-0.000000 65.057899 -6.421400 -0.184093 0.961370 -0.204641 0 254 27
--1.171400 65.057899 -2.205500 0.000000 0.965072 0.261984 0 254 27
-1.171400 65.057899 -2.205500 0.000000 0.965072 0.261984 0 254 27
-0.000000 65.560898 -4.058400 0.000000 0.965072 0.261984 0 254 27
--0.706900 62.538601 -0.289700 -0.204667 0.142518 0.968401 0 254 27
-0.000000 62.538601 -0.140300 -0.204667 0.142518 0.968401 0 254 27
--0.672300 63.485901 -0.421800 -0.204667 0.142518 0.968401 0 254 27
--2.130500 53.628601 -1.359200 0.899990 0.017690 0.435552 164 133 56
--1.187300 53.628601 -3.164700 0.899990 0.017690 0.435552 209 100 64
--1.393700 60.597198 -3.164700 0.899990 0.017690 0.435552 254 254 254
--2.336800 60.597198 -1.072500 0.899990 0.017690 0.435552 254 254 254
-8.704300 24.905701 -6.036500 0.233777 0.158187 -0.959336 0 253 27
-7.984800 25.127701 -6.177400 0.233777 0.158187 -0.959336 0 253 27
-7.649900 27.558001 -5.856100 0.233777 0.158187 -0.959336 0 253 27
-8.503900 27.435900 -5.670300 0.233777 0.158187 -0.959336 0 253 27
-6.463600 36.223400 -3.704900 0.910800 0.108730 0.398273 9 100 160
-5.778000 35.994701 -1.773100 0.910800 0.108730 0.398273 0 231 44
-7.451900 27.210300 -3.504400 0.910800 0.108730 0.398273 18 2 248
-8.503900 27.435900 -5.670300 0.910800 0.108730 0.398273 18 0 253
-5.115000 35.782600 -2.051700 -0.272059 -0.232411 0.933793 0 241 37
-6.597900 27.332300 -3.690200 -0.272059 -0.232411 0.933793 16 16 234
-7.451900 27.210300 -3.504400 -0.272059 -0.232411 0.933793 18 2 248
-5.778000 35.994701 -1.773100 -0.272059 -0.232411 0.933793 0 231 44
-5.743400 36.019600 -3.995900 0.266707 0.266447 -0.926215 0 253 27
-6.463600 36.223400 -3.704900 0.266707 0.266447 -0.926215 0 253 27
-8.503900 27.435900 -5.670300 0.266707 0.266447 -0.926215 0 253 27
-7.649900 27.558001 -5.856100 0.266707 0.266447 -0.926215 0 253 27
-7.451900 27.210300 -3.504400 -0.285900 -0.782712 0.552832 21 0 248
-6.597900 27.332300 -3.690200 -0.285900 -0.782712 0.552832 35 1 237
-7.984800 25.127701 -6.177400 -0.285900 -0.782712 0.552832 19 0 253
-8.704300 24.905701 -6.036500 -0.285900 -0.782712 0.552832 19 0 253
-7.451900 27.210300 -3.504400 0.899158 0.007889 0.437552 18 2 248
-8.704300 24.905701 -6.036500 0.899158 0.007889 0.437552 18 0 253
-8.503900 27.435900 -5.670300 0.899158 0.007889 0.437552 18 0 253
-6.463600 36.223400 -3.704900 -0.293676 0.955783 0.015277 254 68 73
-5.743400 36.019600 -3.995900 -0.293676 0.955783 0.015277 254 68 73
-5.115000 35.782600 -2.051700 -0.293676 0.955783 0.015277 254 68 73
-5.778000 35.994701 -1.773100 -0.293676 0.955783 0.015277 254 68 73
-4.513000 55.007702 -5.909800 -0.189279 -0.709198 -0.679126 0 253 27
-4.291100 55.098900 -5.871800 -0.189279 -0.709198 -0.679126 0 253 27
-4.207800 55.799599 -6.651700 -0.189279 -0.709198 -0.679126 0 253 27
-4.871900 55.799599 -6.765400 -0.189279 -0.709198 -0.679126 0 253 27
-2.904000 62.455601 -5.700500 0.959060 0.270852 0.082723 0 253 27
-2.764700 62.455601 -4.128400 0.959060 0.270852 0.082723 0 253 27
-4.736600 55.799599 -5.153900 0.959060 0.270852 0.082723 0 253 27
-4.871900 55.799599 -6.765400 0.959060 0.270852 0.082723 0 253 27
-2.764700 62.455601 -4.128400 0.167860 -0.101350 0.980587 0 253 27
-4.072400 55.799599 -5.040200 0.167860 -0.101350 0.980587 0 253 27
-4.736600 55.799599 -5.153900 0.167860 -0.101350 0.980587 0 253 27
-2.904000 62.455601 -5.700500 -0.167781 0.107182 -0.979980 0 253 27
-4.871900 55.799599 -6.765400 -0.167781 0.107182 -0.979980 0 253 27
-4.207800 55.799599 -6.651700 -0.167781 0.107182 -0.979980 0 253 27
-4.736600 55.799599 -5.153900 0.042232 -0.727963 0.684314 254 68 73
-4.072400 55.799599 -5.040200 0.042232 -0.727963 0.684314 254 68 73
-4.291100 55.098900 -5.871800 0.042232 -0.727963 0.684314 254 68 73
-4.513000 55.007702 -5.909800 0.042232 -0.727963 0.684314 254 68 73
-4.736600 55.799599 -5.153900 0.937220 -0.339745 0.078688 0 253 27
-4.513000 55.007702 -5.909800 0.937220 -0.339745 0.078688 0 253 27
-4.871900 55.799599 -6.765400 0.937220 -0.339745 0.078688 0 253 27
-4 0 1 2 3
-4 4 5 6 7
-3 8 9 10
-4 11 12 13 14
-4 15 16 17 18
-4 19 20 21 22
-4 23 24 25 26
-4 27 28 29 30
-4 31 32 33 34
-4 35 36 37 38
-4 39 40 41 42
-4 43 44 45 46
-3 47 48 49
-4 50 51 52 53
-4 54 55 56 57
-4 58 59 60 61
-4 62 63 64 65
-4 66 67 68 69
-4 70 71 72 73
-4 74 75 76 77
-3 78 79 80
-4 81 82 83 84
-3 85 86 87
-4 88 89 90 91
-3 92 93 94
-4 95 96 97 98
-4 99 100 101 102
-4 103 104 105 106
-4 107 108 109 110
-4 111 112 113 114
-4 115 116 117 118
-4 119 120 121 122
-4 123 124 125 126
-4 127 128 129 130
-4 131 132 133 134
-4 135 136 137 138
-3 139 140 141
-3 142 143 144
-4 145 146 147 148
-4 149 150 151 152
-4 153 154 155 156
-3 157 158 159
-3 160 161 162
-4 163 164 165 166
-4 167 168 169 170
-4 171 172 173 174
-3 175 176 177
-4 178 179 180 181
-4 182 183 184 185
-3 186 187 188
-3 189 190 191
-4 192 193 194 195
-4 196 197 198 199
-4 200 201 202 203
-4 204 205 206 207
-3 208 209 210
-3 211 212 213
-3 214 215 216
-4 217 218 219 220
-4 221 222 223 224
-3 225 226 227
-4 228 229 230 231
-4 232 233 234 235
-3 236 237 238
-3 239 240 241
-3 242 243 244
-3 245 246 247
-4 248 249 250 251
-4 252 253 254 255
-4 256 257 258 259
-4 260 261 262 263
-4 264 265 266 267
-4 268 269 270 271
-4 272 273 274 275
-4 276 277 278 279
-4 280 281 282 283
-3 284 285 286
-3 287 288 289
-4 290 291 292 293
-4 294 295 296 297
-4 298 299 300 301
-3 302 303 304
-4 305 306 307 308
-4 309 310 311 312
-4 313 314 315 316
-4 317 318 319 320
-4 321 322 323 324
-4 325 326 327 328
-4 329 330 331 332
-4 333 334 335 336
-4 337 338 339 340
-4 341 342 343 344
-4 345 346 347 348
-4 349 350 351 352
-3 353 354 355
-4 356 357 358 359
-4 360 361 362 363
-3 364 365 366
-4 367 368 369 370
-4 371 372 373 374
-3 375 376 377
-4 378 379 380 381
-3 382 383 384
-4 385 386 387 388
-4 389 390 391 392
-3 393 394 395
-4 396 397 398 399
-4 400 401 402 403
-4 404 405 406 407
-4 408 409 410 411
-4 412 413 414 415
-3 416 417 418
-3 419 420 421
-3 422 423 424
-4 425 426 427 428
-4 429 430 431 432
-3 433 434 435
-3 436 437 438
-4 439 440 441 442
-4 443 444 445 446
-3 447 448 449
-3 450 451 452
-4 453 454 455 456
-3 457 458 459
-3 460 461 462
-3 463 464 465
-4 466 467 468 469
-3 470 471 472
-4 473 474 475 476
-4 477 478 479 480
-4 481 482 483 484
-4 485 486 487 488
-4 489 490 491 492
-3 493 494 495
-4 496 497 498 499
-4 500 501 502 503
-4 504 505 506 507
-4 508 509 510 511
-3 512 513 514
-4 515 516 517 518
-4 519 520 521 522
-3 523 524 525
-3 526 527 528
-3 529 530 531
-4 532 533 534 535
-4 536 537 538 539
-4 540 541 542 543
-4 544 545 546 547
-3 548 549 550
-3 551 552 553
-4 554 555 556 557
-3 558 559 560
-4 561 562 563 564
-4 565 566 567 568
-4 569 570 571 572
-3 573 574 575
-4 576 577 578 579
-4 580 581 582 583
-4 584 585 586 587
-4 588 589 590 591
-4 592 593 594 595
-4 596 597 598 599
-4 600 601 602 603
-4 604 605 606 607
-4 608 609 610 611
-3 612 613 614
-4 615 616 617 618
-4 619 620 621 622
-4 623 624 625 626
-4 627 628 629 630
-4 631 632 633 634
-4 635 636 637 638
-4 639 640 641 642
-3 643 644 645
-4 646 647 648 649
-3 650 651 652
-4 653 654 655 656
-3 657 658 659
-4 660 661 662 663
-4 664 665 666 667
-4 668 669 670 671
-4 672 673 674 675
-4 676 677 678 679
-4 680 681 682 683
-4 684 685 686 687
-4 688 689 690 691
-4 692 693 694 695
-4 696 697 698 699
-4 700 701 702 703
-3 704 705 706
-3 707 708 709
-4 710 711 712 713
-4 714 715 716 717
-4 718 719 720 721
-3 722 723 724
-3 725 726 727
-4 728 729 730 731
-4 732 733 734 735
-4 736 737 738 739
-3 740 741 742
-4 743 744 745 746
-4 747 748 749 750
-3 751 752 753
-3 754 755 756
-4 757 758 759 760
-4 761 762 763 764
-4 765 766 767 768
-4 769 770 771 772
-3 773 774 775
-3 776 777 778
-3 779 780 781
-4 782 783 784 785
-4 786 787 788 789
-3 790 791 792
-4 793 794 795 796
-4 797 798 799 800
-3 801 802 803
-3 804 805 806
-3 807 808 809
-3 810 811 812
-4 813 814 815 816
-4 817 818 819 820
-4 821 822 823 824
-4 825 826 827 828
-4 829 830 831 832
-4 833 834 835 836
-4 837 838 839 840
-4 841 842 843 844
-4 845 846 847 848
-3 849 850 851
-3 852 853 854
-4 855 856 857 858
-4 859 860 861 862
-4 863 864 865 866
-3 867 868 869
-4 870 871 872 873
-4 874 875 876 877
-4 878 879 880 881
-4 882 883 884 885
-4 886 887 888 889
-4 890 891 892 893
-4 894 895 896 897
-4 898 899 900 901
-4 902 903 904 905
-4 906 907 908 909
-4 910 911 912 913
-4 914 915 916 917
-3 918 919 920
-4 921 922 923 924
-4 925 926 927 928
-3 929 930 931
-4 932 933 934 935
-4 936 937 938 939
-3 940 941 942
-4 943 944 945 946
-3 947 948 949
-4 950 951 952 953
-4 954 955 956 957
-3 958 959 960
-4 961 962 963 964
-4 965 966 967 968
-4 969 970 971 972
-4 973 974 975 976
-4 977 978 979 980
-3 981 982 983
-3 984 985 986
-3 987 988 989
-4 990 991 992 993
-4 994 995 996 997
-3 998 999 1000
-3 1001 1002 1003
-4 1004 1005 1006 1007
-4 1008 1009 1010 1011
-3 1012 1013 1014
-3 1015 1016 1017
-4 1018 1019 1020 1021
-3 1022 1023 1024
-3 1025 1026 1027
-3 463 1028 464
-4 1029 1030 1031 1032
-3 1033 1034 1035
-4 1036 1037 1038 1039
-4 1040 1041 1042 1043
-4 1044 1045 1046 1047
-4 1048 1049 1050 1051
-4 1052 1053 1054 1055
-3 1056 1057 1058
-4 1059 1060 1061 1062
-4 1063 1064 1065 1066
-4 1067 1068 1069 1070
-4 1071 1072 1073 1074
-3 1075 1076 1077
-4 1078 1079 1080 1081
-4 1082 1083 1084 1085
-3 1086 1087 1088
-3 1089 1090 1091
-4 1092 1093 1094 1095
-4 1096 1097 1098 1099
-4 1100 1101 1102 1103
-3 1104 1105 1106
-3 1107 1108 1109
-4 1110 1111 1112 1113
-4 1114 1115 1116 1117
-4 1118 1119 1120 1121
-4 1122 1123 1124 1125
-3 1126 1127 1128
-4 1129 1130 1131 1132
-4 1133 1134 1135 1136
-4 1137 1138 1139 1140
-4 1141 1142 1143 1144
-4 1145 1146 1147 1148
-4 1149 1150 1151 1152
-3 1153 1154 1155
-4 1156 1157 1158 1159
-3 1160 1161 1162
-4 1163 1164 1165 1166
-3 1167 1168 1169
-3 1170 1171 1172
-3 1173 1174 1175
-4 1176 1177 1178 1179
-3 1180 1181 1182
-3 1183 1184 1185
-4 1186 1187 1188 1189
-4 1190 1191 1192 1193
-4 1194 1195 1196 1197
-4 1198 1199 1200 1201
-3 1202 1203 1204
-4 1205 1206 1207 1208
-4 1209 1210 1211 1212
-4 1213 1214 1215 1216
-4 1217 1218 1219 1220
-4 1221 1222 1223 1224
-4 1225 1226 1227 1228
-3 1229 1230 1231
-4 1232 1233 1234 1235
-3 1236 1237 1238
-4 1239 1240 1241 1242
-3 1243 1244 1245
-3 1246 1247 1248
-3 1249 1250 1251
-3 1252 1253 1254
-3 1255 1256 1257
-4 1258 1259 1260 1261
-4 1262 1263 1264 1265
-4 1266 1267 1268 1269
-4 1270 1271 1272 1273
-4 1274 1275 1276 1277
-4 1278 1279 1280 1281
-3 1282 1283 1284
-4 1285 1286 1287 1288
-4 1289 1290 1291 1292
-4 1293 1294 1295 1296
-3 1297 1298 1299
-3 1300 1301 1302
-4 1303 1304 1305 1306
-3 1307 1308 1309
diff --git a/src/tests/evas/meshes/ply/Normal_NoUVs_NoColors.ply b/src/tests/evas/meshes/ply/Normal_NoUVs_NoColors.ply
deleted file mode 100644
index b3e1806738..0000000000
--- a/src/tests/evas/meshes/ply/Normal_NoUVs_NoColors.ply
+++ /dev/null
@@ -1,1679 +0,0 @@
-ply
-format ascii 1.0
-comment Created by Blender 2.69 (sub 0) - www.blender.org, source file: ''
-element vertex 1310
-property float x
-property float y
-property float z
-property float nx
-property float ny
-property float nz
-element face 356
-property list uchar uint vertex_indices
-end_header
--4.649800 14.945700 -8.785600 -0.021734 0.023193 -0.999495
--2.020300 14.610600 -8.278800 -0.021734 0.023193 -0.999495
--1.712600 0.024900 -9.195700 -0.021734 0.023193 -0.999495
--3.252600 0.001600 -8.591000 -0.021734 0.023193 -0.999495
--4.649800 14.945700 -8.785600 -0.983809 -0.091724 -0.153967
--3.252600 0.001600 -8.591000 -0.983809 -0.091724 -0.153967
--4.089400 2.633000 -5.031300 -0.983809 -0.091724 -0.153967
--5.308800 13.910900 -3.738700 -0.983809 -0.091724 -0.153967
--1.553600 3.059500 -4.173500 0.398905 -0.098999 0.911633
--1.766900 13.754900 -2.918700 0.398905 -0.098999 0.911633
--3.061600 3.537800 -3.461700 0.398905 -0.098999 0.911633
--1.553600 3.059500 -4.173500 0.977159 -0.002648 0.212493
--0.626000 0.031700 -8.336200 0.977159 -0.002648 0.212493
--0.971400 14.644800 -6.706400 0.977159 -0.002648 0.212493
--1.766900 13.754900 -2.918700 0.977159 -0.002648 0.212493
--5.495700 46.043098 -6.732400 -0.860977 -0.085411 -0.501422
--2.827600 38.171799 -8.088300 -0.860977 -0.085411 -0.501422
--5.919200 37.619099 -4.570300 -0.860977 -0.085411 -0.501422
--6.029500 46.188801 -3.956000 -0.860977 -0.085411 -0.501422
--4.685700 36.664101 -1.616400 -0.917535 -0.032092 0.396359
--4.298500 47.001099 -0.058900 -0.917535 -0.032092 0.396359
--6.029500 46.188801 -3.956000 -0.917535 -0.032092 0.396359
--5.919200 37.619099 -4.570300 -0.917535 -0.032092 0.396359
--6.775800 50.206501 -7.534500 -0.223809 0.028781 -0.974208
--7.252500 54.524502 -7.615000 -0.223809 0.028781 -0.974208
-0.000000 53.738098 -8.986800 -0.223809 0.028781 -0.974208
-0.000000 50.037800 -9.413700 -0.223809 0.028781 -0.974208
--7.252500 54.524502 -7.615000 -0.375359 0.901424 0.215731
--8.747800 53.770199 -7.353300 -0.375359 0.901424 0.215731
--8.184300 53.108700 -3.320400 -0.375359 0.901424 0.215731
--6.624100 53.529800 -2.653700 -0.375359 0.901424 0.215731
--9.827700 52.989700 -7.188500 -0.412168 0.895237 0.169320
--14.989100 50.565300 -7.297200 -0.412168 0.895237 0.169320
--15.636800 49.715099 -4.015700 -0.412168 0.895237 0.169320
--9.508400 52.403099 -3.672700 -0.412168 0.895237 0.169320
-0.000000 37.009800 0.550700 -0.339751 -0.089043 0.936291
-0.000000 47.287498 1.094200 -0.339751 -0.089043 0.936291
--4.298500 47.001099 -0.058900 -0.339751 -0.089043 0.936291
--4.685700 36.664101 -1.616400 -0.339751 -0.089043 0.936291
-0.000000 53.738098 -8.986800 -0.139268 0.841727 -0.521633
--7.252500 54.524502 -7.615000 -0.139268 0.841727 -0.521633
--2.321200 55.471001 -5.570800 -0.139268 0.841727 -0.521633
-0.000000 55.950600 -7.250100 -0.139268 0.841727 -0.521633
--6.624100 53.529800 -2.653700 -0.510018 -0.190129 0.838888
--7.813100 49.342701 -3.886900 -0.510018 -0.190129 0.838888
--6.029500 46.188801 -3.956000 -0.510018 -0.190129 0.838888
--3.773800 51.093601 -1.034300 -0.510018 -0.190129 0.838888
--6.029500 46.188801 -3.956000 -0.909885 0.202901 0.361857
--4.298500 47.001099 -0.058900 -0.909885 0.202901 0.361857
--3.773800 51.093601 -1.034300 -0.909885 0.202901 0.361857
-0.000000 50.880199 0.110000 -0.266804 0.255185 0.929352
--3.773800 51.093601 -1.034300 -0.266804 0.255185 0.929352
--4.298500 47.001099 -0.058900 -0.266804 0.255185 0.929352
-0.000000 47.287498 1.094200 -0.266804 0.255185 0.929352
--16.136200 50.023998 -7.546200 0.129075 0.179950 -0.975171
--14.989100 50.565300 -7.297200 0.129075 0.179950 -0.975171
--13.779500 47.417198 -7.715300 0.129075 0.179950 -0.975171
--14.885000 46.974701 -7.946000 0.129075 0.179950 -0.975171
--13.779500 47.417198 -7.715300 0.437873 -0.882573 -0.171264
--8.756500 49.321098 -7.632900 0.437873 -0.882573 -0.171264
--8.927200 49.128502 -4.128200 0.437873 -0.882573 -0.171264
--14.977100 45.689201 -4.821000 0.437873 -0.882573 -0.171264
--17.208200 49.477699 -7.512200 -0.268622 0.938905 0.215175
--22.585199 48.327702 -7.594400 -0.268622 0.938905 0.215175
--22.348700 46.932201 -2.822400 -0.268622 0.938905 0.215175
--16.810101 49.139900 -3.928800 -0.268622 0.938905 0.215175
--21.936399 43.055199 -3.733600 0.256926 -0.186034 0.948357
--16.192200 44.960400 -4.877100 0.256926 -0.186034 0.948357
--16.810101 49.139900 -3.928800 0.256926 -0.186034 0.948357
--22.348700 46.932201 -2.822400 0.256926 -0.186034 0.948357
--22.105101 44.119598 -7.074000 -0.471869 -0.161034 -0.866838
--23.337700 47.268200 -6.945000 -0.471869 -0.161034 -0.866838
--22.585199 48.327702 -7.594400 -0.471869 -0.161034 -0.866838
--21.061199 44.183601 -7.611200 -0.471869 -0.161034 -0.866838
--15.884600 46.520500 -7.855800 0.312108 -0.901546 -0.299673
--16.192200 44.960400 -4.877100 0.312108 -0.901546 -0.299673
--21.936399 43.055199 -3.733600 0.312108 -0.901546 -0.299673
--21.061199 44.183601 -7.611200 0.312108 -0.901546 -0.299673
--5.598500 31.822901 -1.405400 -0.899226 0.141575 0.413943
--7.174300 32.815300 -5.168000 -0.899226 0.141575 0.413943
--7.453900 29.910801 -4.782000 -0.899226 0.141575 0.413943
--4.970000 33.082802 -8.871300 -0.875321 0.068314 -0.478692
--5.595300 29.761600 -8.491100 -0.875321 0.068314 -0.478692
--7.453900 29.910801 -4.782000 -0.875321 0.068314 -0.478692
--7.174300 32.815300 -5.168000 -0.875321 0.068314 -0.478692
--6.827700 20.858999 -3.051400 -0.895608 -0.345701 -0.279959
--5.426000 21.341299 -8.131100 -0.895608 -0.345701 -0.279959
--6.194700 19.576300 -3.492500 -0.895608 -0.345701 -0.279959
--0.835600 22.853901 -8.203000 -0.044062 0.086408 -0.995285
--0.899900 21.410400 -8.342700 -0.044062 0.086408 -0.995285
--5.426000 21.341299 -8.131100 -0.044062 0.086408 -0.995285
--5.317800 22.936800 -8.014600 -0.044062 0.086408 -0.995285
--0.899900 21.410400 -8.342700 0.986890 0.053202 0.152371
--1.957400 20.620800 -1.217700 0.986890 0.053202 0.152371
--1.853000 19.164200 -1.385300 0.986890 0.053202 0.152371
--6.194700 19.576300 -3.492500 -0.393090 -0.299033 0.869517
--1.853000 19.164200 -1.385300 -0.393090 -0.299033 0.869517
--1.957400 20.620800 -1.217700 -0.393090 -0.299033 0.869517
--6.827700 20.858999 -3.051400 -0.393090 -0.299033 0.869517
--5.259600 15.490400 -9.599400 0.139442 0.106302 -0.984508
--5.426000 21.341299 -8.131100 0.139442 0.106302 -0.984508
--0.899900 21.410400 -8.342700 0.139442 0.106302 -0.984508
--0.294400 16.169500 -7.962700 0.139442 0.106302 -0.984508
--0.294400 16.169500 -7.962700 0.977002 0.117101 0.178197
--0.899900 21.410400 -8.342700 0.977002 0.117101 0.178197
--1.853000 19.164200 -1.385300 0.977002 0.117101 0.178197
--1.221800 14.450400 -2.004100 0.977002 0.117101 0.178197
--1.853000 19.164200 -1.385300 -0.395956 -0.119778 0.910424
--6.194700 19.576300 -3.492500 -0.395956 -0.119778 0.910424
--6.498700 14.643000 -4.000600 -0.395956 -0.119778 0.910424
--1.221800 14.450400 -2.004100 -0.395956 -0.119778 0.910424
--6.498700 14.643000 -4.000600 -0.982418 0.045709 -0.181012
--6.194700 19.576300 -3.492500 -0.982418 0.045709 -0.181012
--5.426000 21.341299 -8.131100 -0.982418 0.045709 -0.181012
--5.259600 15.490400 -9.599400 -0.982418 0.045709 -0.181012
--7.813100 49.342701 -3.886900 -0.881229 -0.394976 -0.259672
--6.775800 50.206501 -7.534500 -0.881229 -0.394976 -0.259672
--5.495700 46.043098 -6.732400 -0.881229 -0.394976 -0.259672
--6.029500 46.188801 -3.956000 -0.881229 -0.394976 -0.259672
--8.756500 49.321098 -7.632900 0.341557 -0.936397 -0.080618
--6.775800 50.206501 -7.534500 0.341557 -0.936397 -0.080618
--7.813100 49.342701 -3.886900 0.341557 -0.936397 -0.080618
--8.927200 49.128502 -4.128200 0.341557 -0.936397 -0.080618
--5.495700 46.043098 -6.732400 -0.295037 -0.218453 -0.930178
--6.775800 50.206501 -7.534500 -0.295037 -0.218453 -0.930178
-0.000000 50.037800 -9.413700 -0.295037 -0.218453 -0.930178
-0.000000 45.235802 -8.516300 -0.295037 -0.218453 -0.930178
--3.773800 51.093601 -1.034300 -0.217879 0.518058 0.827130
-0.000000 50.880199 0.110000 -0.217879 0.518058 0.827130
-0.000000 54.522099 -2.187600 -0.217879 0.518058 0.827130
--1.435700 55.057400 -2.884500 -0.217879 0.518058 0.827130
--0.163800 60.672798 0.405300 -0.878123 0.172158 0.446386
--0.596000 60.268700 -0.255900 -0.878123 0.172158 0.446386
--0.605400 59.453602 0.006800 -0.878123 0.172158 0.446386
--0.226300 59.631802 0.717000 -0.878123 0.172158 0.446386
-0.000000 59.375900 0.272700 -0.351825 0.003851 0.936058
--0.605400 59.453602 0.006800 -0.351825 0.003851 0.936058
--0.793500 58.611801 -0.022400 -0.351825 0.003851 0.936058
-0.000000 58.735298 0.237300 -0.351825 0.003851 0.936058
--1.340700 61.343498 -1.024900 -0.500896 0.173312 0.847978
--2.209500 61.230499 -1.515000 -0.500896 0.173312 0.847978
--2.225300 60.301201 -1.334400 -0.500896 0.173312 0.847978
--0.474100 61.294899 -0.607800 -0.419394 -0.893935 0.158081
--0.179900 61.274700 0.058500 -0.419394 -0.893935 0.158081
--0.785400 61.539799 -0.048800 -0.419394 -0.893935 0.158081
--0.163800 60.672798 0.405300 -0.879737 0.234636 0.413532
--0.179900 61.274700 0.058500 -0.879737 0.234636 0.413532
--0.474100 61.294899 -0.607800 -0.879737 0.234636 0.413532
--0.596000 60.268700 -0.255900 -0.879737 0.234636 0.413532
--0.785400 61.539799 -0.048800 -0.405349 0.400850 0.821591
-0.000000 62.775902 -0.355700 -0.405349 0.400850 0.821591
--1.901400 62.898899 -1.262500 -0.405349 0.400850 0.821591
--1.792100 61.563202 -0.648200 -0.405349 0.400850 0.821591
--1.901400 62.898899 -1.262500 -0.958885 0.139689 0.247034
--2.505800 61.413601 -3.333900 -0.958885 0.139689 0.247034
--2.209500 61.230499 -1.515000 -0.958885 0.139689 0.247034
--1.792100 61.563202 -0.648200 -0.958885 0.139689 0.247034
--2.071800 58.080299 -1.837600 -0.982605 0.010378 0.185418
--2.043500 58.694401 -1.722000 -0.982605 0.010378 0.185418
--2.361600 58.652599 -3.405400 -0.982605 0.010378 0.185418
--2.361600 58.652599 -3.405400 -0.835615 -0.547438 -0.045374
--1.480400 57.287800 -3.167400 -0.835615 -0.547438 -0.045374
--2.071800 58.080299 -1.837600 -0.835615 -0.547438 -0.045374
--2.361600 58.652599 -3.405400 -0.962379 -0.178153 0.205154
--2.043500 58.694401 -1.722000 -0.962379 -0.178153 0.205154
--2.225300 60.301201 -1.334400 -0.962379 -0.178153 0.205154
--2.484800 60.667999 -2.078300 -0.962379 -0.178153 0.205154
--0.596000 60.268700 -0.255900 -0.569338 0.180881 0.801958
--2.225300 60.301201 -1.334400 -0.569338 0.180881 0.801958
--0.793500 58.611801 -0.022400 -0.569338 0.180881 0.801958
--0.605400 59.453602 0.006800 -0.569338 0.180881 0.801958
--0.793500 58.611801 -0.022400 -0.424783 -0.113068 0.898207
--0.860300 57.339199 -0.345300 -0.424783 -0.113068 0.898207
-0.000000 57.320400 0.190300 -0.424783 -0.113068 0.898207
-0.000000 58.735298 0.237300 -0.424783 -0.113068 0.898207
--2.361600 58.652599 -3.405400 -0.801295 -0.555920 -0.221086
--1.507500 57.978802 -4.806700 -0.801295 -0.555920 -0.221086
--1.480400 57.287800 -3.167400 -0.801295 -0.555920 -0.221086
--1.480400 57.287800 -3.167400 -0.605736 -0.042761 0.794516
--1.435700 55.057400 -2.884500 -0.605736 -0.042761 0.794516
-0.000000 54.522099 -2.187600 -0.605736 -0.042761 0.794516
--0.509500 56.862801 -2.081200 -0.605736 -0.042761 0.794516
--1.435700 55.057400 -2.884500 -0.962522 0.132164 0.236820
--1.480400 57.287800 -3.167400 -0.962522 0.132164 0.236820
--1.507500 57.978802 -4.806700 -0.962522 0.132164 0.236820
--2.321200 55.471001 -5.570800 -0.962522 0.132164 0.236820
--5.259600 15.490400 -9.599400 0.329887 -0.177209 -0.927239
--0.294400 16.169500 -7.962700 0.329887 -0.177209 -0.927239
--2.020300 14.610600 -8.278800 0.329887 -0.177209 -0.927239
--0.294400 16.169500 -7.962700 0.923351 -0.382504 0.033356
--1.221800 14.450400 -2.004100 0.923351 -0.382504 0.033356
--0.971400 14.644800 -6.706400 0.923351 -0.382504 0.033356
--5.308800 13.910900 -3.738700 -0.281184 -0.501171 0.818391
--1.766900 13.754900 -2.918700 -0.281184 -0.501171 0.818391
--1.221800 14.450400 -2.004100 -0.281184 -0.501171 0.818391
--6.498700 14.643000 -4.000600 -0.281184 -0.501171 0.818391
--4.649800 14.945700 -8.785600 -0.465679 -0.853476 -0.233927
--5.308800 13.910900 -3.738700 -0.465679 -0.853476 -0.233927
--6.498700 14.643000 -4.000600 -0.465679 -0.853476 -0.233927
--5.259600 15.490400 -9.599400 -0.465679 -0.853476 -0.233927
--1.957400 20.620800 -1.217700 0.981627 0.066418 0.178877
--0.899900 21.410400 -8.342700 0.981627 0.066418 0.178877
--0.835600 22.853901 -8.203000 0.981627 0.066418 0.178877
--2.189200 21.987900 -1.481800 0.981627 0.066418 0.178877
--7.174300 32.815300 -5.168000 -0.882053 0.156893 -0.444261
--6.542300 35.480598 -4.902800 -0.882053 0.156893 -0.444261
--5.283200 35.952900 -7.814600 -0.882053 0.156893 -0.444261
--4.970000 33.082802 -8.871300 -0.882053 0.156893 -0.444261
--5.598500 31.822901 -1.405400 -0.892193 0.169920 0.418473
--6.542300 35.480598 -4.902800 -0.892193 0.169920 0.418473
--7.174300 32.815300 -5.168000 -0.892193 0.169920 0.418473
--4.685700 36.664101 -1.616400 -0.474113 0.127364 0.871203
--5.598500 31.822901 -1.405400 -0.474113 0.127364 0.871203
--3.798500 31.552500 -0.386300 -0.474113 0.127364 0.871203
--2.225300 60.301201 -1.334400 -0.926529 0.086891 0.366052
--2.209500 61.230499 -1.515000 -0.926529 0.086891 0.366052
--2.484800 60.667999 -2.078300 -0.926529 0.086891 0.366052
--8.927200 49.128502 -4.128200 -0.174303 -0.164506 0.970853
--7.813100 49.342701 -3.886900 -0.174303 -0.164506 0.970853
--8.184300 53.108700 -3.320400 -0.174303 -0.164506 0.970853
--9.508400 52.403099 -3.672700 -0.174303 -0.164506 0.970853
--8.184300 53.108700 -3.320400 -0.526523 0.826719 0.198265
--8.747800 53.770199 -7.353300 -0.526523 0.826719 0.198265
--9.827700 52.989700 -7.188500 -0.526523 0.826719 0.198265
--9.508400 52.403099 -3.672700 -0.526523 0.826719 0.198265
--8.747800 53.770199 -7.353300 -0.154881 -0.035505 -0.987295
--7.252500 54.524502 -7.615000 -0.154881 -0.035505 -0.987295
--6.775800 50.206501 -7.534500 -0.154881 -0.035505 -0.987295
--8.927200 49.128502 -4.128200 0.001669 -0.169906 0.985459
--9.508400 52.403099 -3.672700 0.001669 -0.169906 0.985459
--15.636800 49.715099 -4.015700 0.001669 -0.169906 0.985459
--14.977100 45.689201 -4.821000 0.001669 -0.169906 0.985459
--6.624100 53.529800 -2.653700 -0.215818 0.814400 0.538680
--3.773800 51.093601 -1.034300 -0.215818 0.814400 0.538680
--1.435700 55.057400 -2.884500 -0.215818 0.814400 0.538680
--7.252500 54.524502 -7.615000 -0.215818 0.814400 0.538680
--2.321200 55.471001 -5.570800 -0.276118 0.932071 0.234526
--7.252500 54.524502 -7.615000 -0.276118 0.932071 0.234526
--1.435700 55.057400 -2.884500 -0.276118 0.932071 0.234526
--2.209500 61.230499 -1.515000 -0.942806 0.279456 0.181716
--2.505800 61.413601 -3.333900 -0.942806 0.279456 0.181716
--2.484800 60.667999 -2.078300 -0.942806 0.279456 0.181716
--2.484800 60.667999 -2.078300 -0.998559 -0.051788 -0.014052
--2.505800 61.413601 -3.333900 -0.998559 -0.051788 -0.014052
--2.361600 58.652599 -3.405400 -0.998559 -0.051788 -0.014052
--2.209500 61.230499 -1.515000 -0.107977 -0.909631 0.401138
--1.340700 61.343498 -1.024900 -0.107977 -0.909631 0.401138
--1.792100 61.563202 -0.648200 -0.107977 -0.909631 0.401138
--3.061600 3.537800 -3.461700 0.234488 0.898953 0.369997
--3.735600 1.816900 0.228400 0.234488 0.898953 0.369997
--1.568700 1.981700 -0.627100 0.234488 0.898953 0.369997
--1.553600 3.059500 -4.173500 0.234488 0.898953 0.369997
--0.626000 0.031700 -8.336200 0.992053 0.072189 0.103052
--1.553600 3.059500 -4.173500 0.992053 0.072189 0.103052
--1.568700 1.981700 -0.627100 0.992053 0.072189 0.103052
--1.825200 -0.024100 0.601200 0.992053 0.072189 0.103052
--1.825200 -0.024100 0.601200 -0.002195 -0.999985 -0.005027
--3.769300 -0.009000 1.132900 -0.002195 -0.999985 -0.005027
--1.712600 0.024900 -9.195700 -0.002195 -0.999985 -0.005027
--0.626000 0.031700 -8.336200 -0.002195 -0.999985 -0.005027
--1.712600 0.024900 -9.195700 0.748722 0.074200 -0.658719
--2.020300 14.610600 -8.278800 0.748722 0.074200 -0.658719
--0.971400 14.644800 -6.706400 0.748722 0.074200 -0.658719
--0.626000 0.031700 -8.336200 0.748722 0.074200 -0.658719
--1.568700 1.981700 -0.627100 0.270273 0.452545 0.849798
--3.735600 1.816900 0.228400 0.270273 0.452545 0.849798
--3.769300 -0.009000 1.132900 0.270273 0.452545 0.849798
--1.825200 -0.024100 0.601200 0.270273 0.452545 0.849798
--4.089400 2.633000 -5.031300 -0.957442 -0.073711 -0.279054
--3.252600 0.001600 -8.591000 -0.957442 -0.073711 -0.279054
--5.176800 -0.025000 -0.598300 -0.957442 -0.073711 -0.279054
--5.390300 1.568200 -1.670300 -0.957442 -0.073711 -0.279054
--3.769300 -0.009000 1.132900 -0.738109 0.308147 0.600201
--3.735600 1.816900 0.228400 -0.738109 0.308147 0.600201
--5.390300 1.568200 -1.670300 -0.738109 0.308147 0.600201
--5.176800 -0.025000 -0.598300 -0.738109 0.308147 0.600201
--5.390300 1.568200 -1.670300 -0.560649 0.811720 0.163660
--3.735600 1.816900 0.228400 -0.560649 0.811720 0.163660
--3.061600 3.537800 -3.461700 -0.560649 0.811720 0.163660
--4.089400 2.633000 -5.031300 -0.560649 0.811720 0.163660
--3.061600 3.537800 -3.461700 -0.452521 -0.074303 0.888653
--1.766900 13.754900 -2.918700 -0.452521 -0.074303 0.888653
--5.308800 13.910900 -3.738700 -0.452521 -0.074303 0.888653
--4.089400 2.633000 -5.031300 -0.452521 -0.074303 0.888653
--2.020300 14.610600 -8.278800 0.001520 -0.830500 -0.557017
--4.649800 14.945700 -8.785600 0.001520 -0.830500 -0.557017
--5.259600 15.490400 -9.599400 0.001520 -0.830500 -0.557017
--2.020300 14.610600 -8.278800 0.649568 -0.634088 -0.419515
--0.294400 16.169500 -7.962700 0.649568 -0.634088 -0.419515
--0.971400 14.644800 -6.706400 0.649568 -0.634088 -0.419515
--5.426000 21.341299 -8.131100 -0.959570 0.028386 -0.280036
--6.827700 20.858999 -3.051400 -0.959570 0.028386 -0.280036
--6.824000 22.193899 -3.254300 -0.959570 0.028386 -0.280036
--5.317800 22.936800 -8.014600 -0.959570 0.028386 -0.280036
--0.845100 29.891001 -9.491500 -0.126028 -0.127868 -0.983751
--0.835600 22.853901 -8.203000 -0.126028 -0.127868 -0.983751
--5.317800 22.936800 -8.014600 -0.126028 -0.127868 -0.983751
--5.595300 29.761600 -8.491100 -0.126028 -0.127868 -0.983751
--1.957400 20.620800 -1.217700 -0.346283 0.131313 0.928895
--2.189200 21.987900 -1.481800 -0.346283 0.131313 0.928895
--6.824000 22.193899 -3.254300 -0.346283 0.131313 0.928895
--6.827700 20.858999 -3.051400 -0.346283 0.131313 0.928895
--0.605400 59.453602 0.006800 -0.276378 -0.886938 0.370075
-0.000000 59.375900 0.272700 -0.276378 -0.886938 0.370075
--0.226300 59.631802 0.717000 -0.276378 -0.886938 0.370075
--21.936399 43.055199 -3.733600 -0.245050 -0.199318 0.948801
--22.348700 46.932201 -2.822400 -0.245050 -0.199318 0.948801
--23.323000 46.228001 -3.425200 -0.245050 -0.199318 0.948801
--23.265499 44.290199 -3.614200 -0.245050 -0.199318 0.948801
--22.105101 44.119598 -7.074000 -0.680722 -0.210597 -0.701617
--23.273100 44.479099 -6.170500 -0.680722 -0.210597 -0.701617
--23.881300 46.267799 -5.995500 -0.680722 -0.210597 -0.701617
--23.337700 47.268200 -6.945000 -0.680722 -0.210597 -0.701617
--22.348700 46.932201 -2.822400 -0.710630 0.673907 0.202126
--23.337700 47.268200 -6.945000 -0.710630 0.673907 0.202126
--23.881300 46.267799 -5.995500 -0.710630 0.673907 0.202126
--23.323000 46.228001 -3.425200 -0.710630 0.673907 0.202126
--21.936399 43.055199 -3.733600 -0.575702 -0.803125 -0.153486
--23.265499 44.290199 -3.614200 -0.575702 -0.803125 -0.153486
--23.273100 44.479099 -6.170500 -0.575702 -0.803125 -0.153486
--22.105101 44.119598 -7.074000 -0.575702 -0.803125 -0.153486
--23.323000 46.228001 -3.425200 0.234519 0.052147 0.970712
--24.935400 45.742901 -3.288800 0.234519 0.052147 0.970712
--24.446100 44.099098 -3.039500 0.234519 0.052147 0.970712
--23.265499 44.290199 -3.614200 0.234519 0.052147 0.970712
--23.273100 44.479099 -6.170500 -0.051663 0.047611 -0.997529
--25.718901 44.407902 -5.989100 -0.051663 0.047611 -0.997529
--25.982700 45.641201 -5.974700 -0.051663 0.047611 -0.997529
--23.881300 46.267799 -5.995500 -0.051663 0.047611 -0.997529
--23.881300 46.267799 -5.995500 -0.283035 0.956157 0.075198
--25.982700 45.641201 -5.974700 -0.283035 0.956157 0.075198
--24.935400 45.742901 -3.288800 -0.283035 0.956157 0.075198
--23.323000 46.228001 -3.425200 -0.283035 0.956157 0.075198
--23.265499 44.290199 -3.614200 0.050680 -0.993534 -0.101596
--24.446100 44.099098 -3.039500 0.050680 -0.993534 -0.101596
--25.718901 44.407902 -5.989100 0.050680 -0.993534 -0.101596
--23.273100 44.479099 -6.170500 0.050680 -0.993534 -0.101596
--3.798500 31.552500 -0.386300 -0.302820 0.047342 0.951871
-0.000000 31.552500 0.128500 -0.302820 0.047342 0.951871
-0.000000 37.009800 0.550700 -0.302820 0.047342 0.951871
--4.685700 36.664101 -1.616400 -0.302820 0.047342 0.951871
--27.058001 43.733101 -1.471100 -0.612973 -0.035197 0.789319
--28.100901 44.177299 -2.470000 -0.612973 -0.035197 0.789319
--27.637899 42.321201 -1.984400 -0.612973 -0.035197 0.789319
--26.775499 43.007000 -1.492900 -0.612973 -0.035197 0.789319
--27.102699 45.320202 -5.735100 -0.288380 -0.175341 -0.941325
--25.982700 45.641201 -5.974700 -0.288380 -0.175341 -0.941325
--25.718901 44.407902 -5.989100 -0.288380 -0.175341 -0.941325
--26.246300 42.901402 -5.383600 -0.288380 -0.175341 -0.941325
--24.935400 45.742901 -3.288800 -0.215944 0.976143 0.022647
--25.982700 45.641201 -5.974700 -0.215944 0.976143 0.022647
--27.102699 45.320202 -5.735100 -0.215944 0.976143 0.022647
--26.753901 45.398300 -2.858600 -0.215944 0.976143 0.022647
--24.446100 44.099098 -3.039500 0.806467 -0.440747 -0.394147
--26.246300 42.901402 -5.383600 0.806467 -0.440747 -0.394147
--25.718901 44.407902 -5.989100 0.806467 -0.440747 -0.394147
--28.380600 42.330502 -3.056600 -0.840529 -0.044209 0.539960
--27.637899 42.321201 -1.984400 -0.840529 -0.044209 0.539960
--28.100901 44.177299 -2.470000 -0.840529 -0.044209 0.539960
--28.697901 44.238201 -3.477500 -0.840529 -0.044209 0.539960
--28.380600 42.330502 -3.056600 -0.979149 -0.175223 -0.102788
--28.697901 44.238201 -3.477500 -0.979149 -0.175223 -0.102788
--28.543800 44.178001 -4.651400 -0.979149 -0.175223 -0.102788
--28.292801 42.543098 -4.446800 -0.979149 -0.175223 -0.102788
--26.753901 45.398300 -2.858600 -0.560189 0.737837 0.376544
--28.697901 44.238201 -3.477500 -0.560189 0.737837 0.376544
--28.100901 44.177299 -2.470000 -0.560189 0.737837 0.376544
--24.935400 45.742901 -3.288800 0.484106 0.321222 0.813915
--26.117701 44.487900 -2.198700 0.484106 0.321222 0.813915
--25.587200 43.557701 -2.038700 0.484106 0.321222 0.813915
--24.446100 44.099098 -3.039500 0.484106 0.321222 0.813915
--24.446100 44.099098 -3.039500 0.765721 -0.642695 -0.024780
--25.587200 43.557701 -2.038700 0.765721 -0.642695 -0.024780
--25.491899 42.827301 -2.370100 0.765721 -0.642695 -0.024780
--26.246300 42.901402 -5.383600 0.765721 -0.642695 -0.024780
--26.753901 45.398300 -2.858600 0.068715 0.616533 0.784324
--26.117701 44.487900 -2.198700 0.068715 0.616533 0.784324
--24.935400 45.742901 -3.288800 0.068715 0.616533 0.784324
-0.000000 31.552500 0.128500 -0.069551 -0.031626 0.997077
--3.798500 31.552500 -0.386300 -0.069551 -0.031626 0.997077
--3.463700 23.872801 -0.356700 -0.069551 -0.031626 0.997077
-0.000000 24.132099 -0.356700 -0.069551 -0.031626 0.997077
--2.225300 60.301201 -1.334400 -0.789816 -0.226827 0.569860
--2.043500 58.694401 -1.722000 -0.789816 -0.226827 0.569860
--0.793500 58.611801 -0.022400 -0.789816 -0.226827 0.569860
--0.793500 58.611801 -0.022400 -0.800106 -0.097243 0.591924
--2.043500 58.694401 -1.722000 -0.800106 -0.097243 0.591924
--2.071800 58.080299 -1.837600 -0.800106 -0.097243 0.591924
--0.860300 57.339199 -0.345300 -0.800106 -0.097243 0.591924
--2.071800 58.080299 -1.837600 -0.594038 -0.791272 0.144939
--1.480400 57.287800 -3.167400 -0.594038 -0.791272 0.144939
--0.509500 56.862801 -2.081200 -0.594038 -0.791272 0.144939
--0.860300 57.339199 -0.345300 -0.594038 -0.791272 0.144939
--0.179900 61.274700 0.058500 -0.090663 0.188705 0.977840
-0.000000 61.912998 -0.048000 -0.090663 0.188705 0.977840
--0.785400 61.539799 -0.048800 -0.090663 0.188705 0.977840
--15.884600 46.520500 -7.855800 -0.098387 0.080586 -0.991880
--17.208200 49.477699 -7.512200 -0.098387 0.080586 -0.991880
--16.136200 50.023998 -7.546200 -0.098387 0.080586 -0.991880
--14.885000 46.974701 -7.946000 -0.098387 0.080586 -0.991880
--15.636800 49.715099 -4.015700 -0.436830 0.889212 0.135946
--16.136200 50.023998 -7.546200 -0.436830 0.889212 0.135946
--17.208200 49.477699 -7.512200 -0.436830 0.889212 0.135946
--16.810101 49.139900 -3.928800 -0.436830 0.889212 0.135946
--16.192200 44.960400 -4.877100 0.435886 -0.826304 -0.356686
--15.884600 46.520500 -7.855800 0.435886 -0.826304 -0.356686
--14.885000 46.974701 -7.946000 0.435886 -0.826304 -0.356686
--14.977100 45.689201 -4.821000 0.435886 -0.826304 -0.356686
--16.810101 49.139900 -3.928800 0.116417 -0.190205 0.974818
--16.192200 44.960400 -4.877100 0.116417 -0.190205 0.974818
--14.977100 45.689201 -4.821000 0.116417 -0.190205 0.974818
--15.636800 49.715099 -4.015700 0.116417 -0.190205 0.974818
--13.779500 47.417198 -7.715300 -0.030432 0.115440 -0.992848
--14.989100 50.565300 -7.297200 -0.030432 0.115440 -0.992848
--9.827700 52.989700 -7.188500 -0.030432 0.115440 -0.992848
--8.756500 49.321098 -7.632900 -0.030432 0.115440 -0.992848
--15.636800 49.715099 -4.015700 -0.447311 0.883265 0.140554
--14.989100 50.565300 -7.297200 -0.447311 0.883265 0.140554
--16.136200 50.023998 -7.546200 -0.447311 0.883265 0.140554
--13.779500 47.417198 -7.715300 0.409629 -0.847844 -0.336697
--14.977100 45.689201 -4.821000 0.409629 -0.847844 -0.336697
--14.885000 46.974701 -7.946000 0.409629 -0.847844 -0.336697
--0.971400 14.644800 -6.706400 0.777065 -0.629233 0.015366
--1.221800 14.450400 -2.004100 0.777065 -0.629233 0.015366
--1.766900 13.754900 -2.918700 0.777065 -0.629233 0.015366
--26.117701 44.487900 -2.198700 0.374471 0.258120 0.890587
--27.058001 43.733101 -1.471100 0.374471 0.258120 0.890587
--26.775499 43.007000 -1.492900 0.374471 0.258120 0.890587
--25.587200 43.557701 -2.038700 0.374471 0.258120 0.890587
--25.587200 43.557701 -2.038700 0.386633 -0.610879 0.690899
--26.775499 43.007000 -1.492900 0.386633 -0.610879 0.690899
--27.637899 42.321201 -1.984400 0.386633 -0.610879 0.690899
--25.491899 42.827301 -2.370100 0.386633 -0.610879 0.690899
--26.117701 44.487900 -2.198700 -0.202601 0.798645 0.566673
--28.100901 44.177299 -2.470000 -0.202601 0.798645 0.566673
--27.058001 43.733101 -1.471100 -0.202601 0.798645 0.566673
--8.184300 53.108700 -3.320400 -0.347207 -0.172872 0.921717
--7.813100 49.342701 -3.886900 -0.347207 -0.172872 0.921717
--6.624100 53.529800 -2.653700 -0.347207 -0.172872 0.921717
--8.747800 53.770199 -7.353300 -0.055764 0.062731 -0.996471
--6.775800 50.206501 -7.534500 -0.055764 0.062731 -0.996471
--8.756500 49.321098 -7.632900 -0.055764 0.062731 -0.996471
--9.827700 52.989700 -7.188500 -0.055764 0.062731 -0.996471
--28.543800 44.178001 -4.651400 -0.562493 0.826801 -0.001192
--28.697901 44.238201 -3.477500 -0.562493 0.826801 -0.001192
--26.753901 45.398300 -2.858600 -0.562493 0.826801 -0.001192
--27.102699 45.320202 -5.735100 -0.562493 0.826801 -0.001192
--26.246300 42.901402 -5.383600 0.106461 -0.983873 -0.143736
--28.380600 42.330502 -3.056600 0.106461 -0.983873 -0.143736
--28.292801 42.543098 -4.446800 0.106461 -0.983873 -0.143736
--28.100901 44.177299 -2.470000 -0.192584 0.484112 0.853550
--26.117701 44.487900 -2.198700 -0.192584 0.484112 0.853550
--26.753901 45.398300 -2.858600 -0.192584 0.484112 0.853550
--1.712600 0.024900 -9.195700 0.013475 -0.999909 -0.000374
--3.769300 -0.009000 1.132900 0.013475 -0.999909 -0.000374
--5.176800 -0.025000 -0.598300 0.013475 -0.999909 -0.000374
--3.252600 0.001600 -8.591000 0.013475 -0.999909 -0.000374
-0.000000 61.912998 -0.048000 -0.158526 0.331625 0.929997
-0.000000 62.775902 -0.355700 -0.158526 0.331625 0.929997
--0.785400 61.539799 -0.048800 -0.158526 0.331625 0.929997
--0.340300 31.400700 -9.922000 0.943854 -0.327649 -0.042263
--0.425600 30.069099 -1.503600 0.943854 -0.327649 -0.042263
--0.845100 29.891001 -9.491500 0.943854 -0.327649 -0.042263
-0.000000 54.522099 -2.187600 0.000000 -0.045410 0.998968
-0.000000 56.862801 -2.081200 0.000000 -0.045410 0.998968
--0.509500 56.862801 -2.081200 0.000000 -0.045410 0.998968
--0.509500 56.862801 -2.081200 -0.098448 -0.971038 0.217700
-0.000000 56.862801 -2.081200 -0.098448 -0.971038 0.217700
-0.000000 57.320400 0.190300 -0.098448 -0.971038 0.217700
--0.860300 57.339199 -0.345300 -0.098448 -0.971038 0.217700
--5.598500 31.822901 -1.405400 -0.881296 0.021519 0.472075
--7.453900 29.910801 -4.782000 -0.881296 0.021519 0.472075
--6.824000 22.193899 -3.254300 -0.881296 0.021519 0.472075
--6.824000 22.193899 -3.254300 -0.921164 -0.108973 -0.373607
--7.453900 29.910801 -4.782000 -0.921164 -0.108973 -0.373607
--5.595300 29.761600 -8.491100 -0.921164 -0.108973 -0.373607
--5.317800 22.936800 -8.014600 -0.921164 -0.108973 -0.373607
--3.798500 31.552500 -0.386300 -0.402805 -0.146650 0.903461
--5.598500 31.822901 -1.405400 -0.402805 -0.146650 0.903461
--6.824000 22.193899 -3.254300 -0.402805 -0.146650 0.903461
--2.189200 21.987900 -1.481800 -0.402805 -0.146650 0.903461
--0.340300 31.400700 -9.922000 -0.229486 -0.108632 -0.967231
--0.845100 29.891001 -9.491500 -0.229486 -0.108632 -0.967231
--5.595300 29.761600 -8.491100 -0.229486 -0.108632 -0.967231
--4.970000 33.082802 -8.871300 -0.229486 -0.108632 -0.967231
--0.835600 22.853901 -8.203000 0.992234 -0.110109 0.057862
--0.845100 29.891001 -9.491500 0.992234 -0.110109 0.057862
--0.425600 30.069099 -1.503600 0.992234 -0.110109 0.057862
--2.189200 21.987900 -1.481800 0.992234 -0.110109 0.057862
--2.162800 35.743500 -9.599900 -0.324262 0.084100 -0.942221
--0.340300 31.400700 -9.922000 -0.324262 0.084100 -0.942221
--4.970000 33.082802 -8.871300 -0.324262 0.084100 -0.942221
--5.283200 35.952900 -7.814600 -0.324262 0.084100 -0.942221
--5.283200 35.952900 -7.814600 -0.889642 0.311183 -0.334218
--6.542300 35.480598 -4.902800 -0.889642 0.311183 -0.334218
--5.919200 37.619099 -4.570300 -0.889642 0.311183 -0.334218
--5.919200 37.619099 -4.570300 -0.882633 0.186716 0.431389
--6.542300 35.480598 -4.902800 -0.882633 0.186716 0.431389
--5.598500 31.822901 -1.405400 -0.882633 0.186716 0.431389
--4.685700 36.664101 -1.616400 -0.882633 0.186716 0.431389
--0.474100 61.294899 -0.607800 -0.490764 0.255871 0.832875
--1.340700 61.343498 -1.024900 -0.490764 0.255871 0.832875
--2.225300 60.301201 -1.334400 -0.490764 0.255871 0.832875
--0.596000 60.268700 -0.255900 -0.490764 0.255871 0.832875
--1.340700 61.343498 -1.024900 -0.199083 -0.932669 0.300824
--0.474100 61.294899 -0.607800 -0.199083 -0.932669 0.300824
--0.785400 61.539799 -0.048800 -0.199083 -0.932669 0.300824
--1.792100 61.563202 -0.648200 -0.199083 -0.932669 0.300824
-0.000000 45.235802 -8.516300 -0.205813 0.023108 -0.978318
-0.000000 38.221600 -8.073300 -0.205813 0.023108 -0.978318
--2.827600 38.171799 -8.088300 -0.205813 0.023108 -0.978318
--5.495700 46.043098 -6.732400 -0.205813 0.023108 -0.978318
--0.425600 30.069099 -1.503600 0.289736 -0.060654 0.955183
--3.798500 31.552500 -0.386300 0.289736 -0.060654 0.955183
--2.189200 21.987900 -1.481800 0.289736 -0.060654 0.955183
-0.000000 31.547001 -9.939100 0.347255 -0.926523 -0.144807
-0.000000 30.215401 -1.522000 0.347255 -0.926523 -0.144807
--0.425600 30.069099 -1.503600 0.347255 -0.926523 -0.144807
--0.340300 31.400700 -9.922000 0.347255 -0.926523 -0.144807
--21.061199 44.183601 -7.611200 -0.028361 0.039319 -0.998824
--22.585199 48.327702 -7.594400 -0.028361 0.039319 -0.998824
--17.208200 49.477699 -7.512200 -0.028361 0.039319 -0.998824
--15.884600 46.520500 -7.855800 -0.028361 0.039319 -0.998824
--22.348700 46.932201 -2.822400 -0.723103 0.652497 0.226650
--22.585199 48.327702 -7.594400 -0.723103 0.652497 0.226650
--23.337700 47.268200 -6.945000 -0.723103 0.652497 0.226650
--21.061199 44.183601 -7.611200 -0.095048 -0.949863 -0.297868
--21.936399 43.055199 -3.733600 -0.095048 -0.949863 -0.297868
--22.105101 44.119598 -7.074000 -0.095048 -0.949863 -0.297868
-0.000000 59.375900 0.272700 0.000000 -0.866545 0.499100
-0.226300 59.631802 0.717000 0.000000 -0.866545 0.499100
--0.226300 59.631802 0.717000 0.000000 -0.866545 0.499100
--0.163800 60.672798 0.405300 0.000000 0.286842 0.957978
--0.226300 59.631802 0.717000 0.000000 0.286842 0.957978
-0.226300 59.631802 0.717000 0.000000 0.286842 0.957978
-0.163800 60.672798 0.405300 0.000000 0.286842 0.957978
--0.340300 31.400700 -9.922000 -0.012671 0.074070 -0.997173
--2.162800 35.743500 -9.599900 -0.012671 0.074070 -0.997173
-0.000000 35.795200 -9.599900 -0.012671 0.074070 -0.997173
-0.000000 31.547001 -9.939100 -0.012671 0.074070 -0.997173
--5.919200 37.619099 -4.570300 -0.561685 0.544798 -0.622660
--2.827600 38.171799 -8.088300 -0.561685 0.544798 -0.622660
--2.162800 35.743500 -9.599900 -0.561685 0.544798 -0.622660
--5.283200 35.952900 -7.814600 -0.561685 0.544798 -0.622660
--28.543800 44.178001 -4.651400 -0.410462 -0.233070 -0.881589
--27.102699 45.320202 -5.735100 -0.410462 -0.233070 -0.881589
--26.246300 42.901402 -5.383600 -0.410462 -0.233070 -0.881589
--28.292801 42.543098 -4.446800 -0.410462 -0.233070 -0.881589
--25.491899 42.827301 -2.370100 0.201709 -0.968181 -0.148119
--27.637899 42.321201 -1.984400 0.201709 -0.968181 -0.148119
--28.380600 42.330502 -3.056600 0.201709 -0.968181 -0.148119
--26.246300 42.901402 -5.383600 0.185319 -0.980147 -0.070494
--25.491899 42.827301 -2.370100 0.185319 -0.980147 -0.070494
--28.380600 42.330502 -3.056600 0.185319 -0.980147 -0.070494
--0.179900 61.274700 0.058500 0.000000 0.499235 0.866467
--0.163800 60.672798 0.405300 0.000000 0.499235 0.866467
-0.163800 60.672798 0.405300 0.000000 0.499235 0.866467
-0.179900 61.274700 0.058500 0.000000 0.499235 0.866467
-0.000000 61.912998 -0.048000 0.000000 0.164575 0.986365
--0.179900 61.274700 0.058500 0.000000 0.164575 0.986365
-0.179900 61.274700 0.058500 0.000000 0.164575 0.986365
--2.162800 35.743500 -9.599900 -0.008224 0.529675 -0.848161
--2.827600 38.171799 -8.088300 -0.008224 0.529675 -0.848161
-0.000000 38.221600 -8.073300 -0.008224 0.529675 -0.848161
-0.000000 35.795200 -9.599900 -0.008224 0.529675 -0.848161
-4.620900 14.945700 -8.516100 0.163464 0.013069 -0.986463
-3.252600 0.001600 -8.591000 0.163464 0.013069 -0.986463
-1.712600 0.024900 -9.195700 0.163464 0.013069 -0.986463
-1.456400 14.610600 -8.695100 0.163464 0.013069 -0.986463
-4.089400 2.633000 -5.031300 0.982688 -0.088487 -0.162770
-3.252600 0.001600 -8.591000 0.982688 -0.088487 -0.162770
-4.620900 14.945700 -8.516100 0.982688 -0.088487 -0.162770
-5.308800 13.910900 -3.738700 0.982688 -0.088487 -0.162770
-1.553600 3.059500 -4.173500 -0.398905 -0.098999 0.911633
-3.061600 3.537800 -3.461700 -0.398905 -0.098999 0.911633
-1.766900 13.754900 -2.918700 -0.398905 -0.098999 0.911633
-1.553600 3.059500 -4.173500 -0.983093 0.009545 0.182857
-1.766900 13.754900 -2.918700 -0.983093 0.009545 0.182857
-1.239800 14.644800 -6.465300 -0.983093 0.009545 0.182857
-0.626000 0.031700 -8.336200 -0.983093 0.009545 0.182857
-5.495700 46.043098 -6.732400 0.860977 -0.085411 -0.501422
-6.029500 46.188801 -3.956000 0.860977 -0.085411 -0.501422
-5.919200 37.619099 -4.570300 0.860977 -0.085411 -0.501422
-2.827600 38.171799 -8.088300 0.860977 -0.085411 -0.501422
-4.685700 36.664101 -1.616400 0.917535 -0.032092 0.396359
-5.919200 37.619099 -4.570300 0.917535 -0.032092 0.396359
-6.029500 46.188801 -3.956000 0.917535 -0.032092 0.396359
-4.298500 47.001099 -0.058900 0.917535 -0.032092 0.396359
-6.775800 50.206501 -7.534500 0.223809 0.028781 -0.974208
-0.000000 50.037800 -9.413700 0.223809 0.028781 -0.974208
-0.000000 53.738098 -8.986800 0.223809 0.028781 -0.974208
-7.252500 54.524502 -7.615000 0.223809 0.028781 -0.974208
-7.252500 54.524502 -7.615000 0.375359 0.901424 0.215731
-6.624100 53.529800 -2.653700 0.375359 0.901424 0.215731
-8.184300 53.108700 -3.320400 0.375359 0.901424 0.215731
-8.747800 53.770199 -7.353300 0.375359 0.901424 0.215731
-9.827700 52.989700 -7.188500 0.412168 0.895237 0.169320
-9.508400 52.403099 -3.672700 0.412168 0.895237 0.169320
-15.636800 49.715099 -4.015700 0.412168 0.895237 0.169320
-14.989100 50.565300 -7.297200 0.412168 0.895237 0.169320
-0.000000 37.009800 0.550700 0.339751 -0.089043 0.936291
-4.685700 36.664101 -1.616400 0.339751 -0.089043 0.936291
-4.298500 47.001099 -0.058900 0.339751 -0.089043 0.936291
-0.000000 47.287498 1.094200 0.339751 -0.089043 0.936291
-0.000000 53.738098 -8.986800 0.139268 0.841727 -0.521633
-0.000000 55.950600 -7.250100 0.139268 0.841727 -0.521633
-2.321200 55.471001 -5.570800 0.139268 0.841727 -0.521633
-7.252500 54.524502 -7.615000 0.139268 0.841727 -0.521633
-3.773800 51.093601 -1.034300 0.772400 -0.022870 0.634725
-4.298500 47.001099 -0.058900 0.772400 -0.022870 0.634725
-6.029500 46.188801 -3.956000 0.772400 -0.022870 0.634725
-6.624100 53.529800 -2.653700 0.772400 -0.022870 0.634725
-6.624100 53.529800 -2.653700 0.299992 -0.190133 0.934802
-6.029500 46.188801 -3.956000 0.299992 -0.190133 0.934802
-7.813100 49.342701 -3.886900 0.299992 -0.190133 0.934802
-0.000000 50.880199 0.110000 0.266804 0.255185 0.929352
-0.000000 47.287498 1.094200 0.266804 0.255185 0.929352
-4.298500 47.001099 -0.058900 0.266804 0.255185 0.929352
-3.773800 51.093601 -1.034300 0.266804 0.255185 0.929352
-16.136200 50.023998 -7.546200 -0.129075 0.179950 -0.975171
-14.885000 46.974701 -7.946000 -0.129075 0.179950 -0.975171
-13.779500 47.417198 -7.715300 -0.129075 0.179950 -0.975171
-14.989100 50.565300 -7.297200 -0.129075 0.179950 -0.975171
-13.779500 47.417198 -7.715300 -0.437873 -0.882573 -0.171264
-14.977100 45.689201 -4.821000 -0.437873 -0.882573 -0.171264
-8.927200 49.128502 -4.128200 -0.437873 -0.882573 -0.171264
-8.756500 49.321098 -7.632900 -0.437873 -0.882573 -0.171264
-17.208200 49.477699 -7.512200 0.268622 0.938905 0.215175
-16.810101 49.139900 -3.928800 0.268622 0.938905 0.215175
-22.348700 46.932201 -2.822400 0.268622 0.938905 0.215175
-22.585199 48.327702 -7.594400 0.268622 0.938905 0.215175
-21.936399 43.055199 -3.733600 -0.256926 -0.186034 0.948357
-22.348700 46.932201 -2.822400 -0.256926 -0.186034 0.948357
-16.810101 49.139900 -3.928800 -0.256926 -0.186034 0.948357
-16.192200 44.960400 -4.877100 -0.256926 -0.186034 0.948357
-22.105101 44.119598 -7.074000 0.471869 -0.161034 -0.866838
-21.061199 44.183601 -7.611200 0.471869 -0.161034 -0.866838
-22.585199 48.327702 -7.594400 0.471869 -0.161034 -0.866838
-23.337700 47.268200 -6.945000 0.471869 -0.161034 -0.866838
-15.884600 46.520500 -7.855800 -0.312108 -0.901546 -0.299673
-21.061199 44.183601 -7.611200 -0.312108 -0.901546 -0.299673
-21.936399 43.055199 -3.733600 -0.312108 -0.901546 -0.299673
-16.192200 44.960400 -4.877100 -0.312108 -0.901546 -0.299673
-5.598500 31.822901 -1.404300 0.899204 0.141743 0.413933
-7.453900 29.910801 -4.780100 0.899204 0.141743 0.413933
-7.174300 32.815300 -5.167300 0.899204 0.141743 0.413933
-4.970000 33.082802 -8.871900 0.875445 0.068330 -0.478463
-7.174300 32.815300 -5.167300 0.875445 0.068330 -0.478463
-7.453900 29.910801 -4.780100 0.875445 0.068330 -0.478463
-5.595300 29.761600 -8.492500 0.875445 0.068330 -0.478463
-6.827700 20.858999 -3.044800 0.895156 -0.347215 -0.279532
-6.194700 19.576300 -3.478600 0.895156 -0.347215 -0.279532
-5.426000 21.341299 -8.132600 0.895156 -0.347215 -0.279532
-0.835600 22.853901 -8.210700 0.045309 0.086115 -0.995254
-5.317800 22.936800 -8.016200 0.045309 0.086115 -0.995254
-5.426000 21.341299 -8.132600 0.045309 0.086115 -0.995254
-0.899900 21.410400 -8.349400 0.045309 0.086115 -0.995254
-0.899900 21.410400 -8.349400 -0.986876 0.054006 0.152183
-1.853000 19.164200 -1.371600 -0.986876 0.054006 0.152183
-1.957400 20.620800 -1.211500 -0.986876 0.054006 0.152183
-6.194700 19.576300 -3.478600 0.393316 -0.294694 0.870895
-6.827700 20.858999 -3.044800 0.393316 -0.294694 0.870895
-1.957400 20.620800 -1.211500 0.393316 -0.294694 0.870895
-1.853000 19.164200 -1.371600 0.393316 -0.294694 0.870895
-5.117200 15.490400 -9.679700 -0.013076 0.210350 -0.977539
-0.134100 16.169500 -9.174700 -0.013076 0.210350 -0.977539
-0.899900 21.410400 -8.349400 -0.013076 0.210350 -0.977539
-5.426000 21.341299 -8.132600 -0.013076 0.210350 -0.977539
-0.134100 16.169500 -9.174700 -0.979250 0.051054 0.196120
-1.716700 14.450400 -2.459200 -0.979250 0.051054 0.196120
-1.853000 19.164200 -1.371600 -0.979250 0.051054 0.196120
-0.899900 21.410400 -8.349400 -0.979250 0.051054 0.196120
-1.853000 19.164200 -1.371600 0.369977 -0.140579 0.918343
-1.716700 14.450400 -2.459200 0.369977 -0.140579 0.918343
-6.069200 14.643000 -3.762300 0.369977 -0.140579 0.918343
-6.194700 19.576300 -3.478600 0.369977 -0.140579 0.918343
-6.069200 14.643000 -3.762300 0.986467 -0.011966 -0.163524
-5.117200 15.490400 -9.679700 0.986467 -0.011966 -0.163524
-5.426000 21.341299 -8.132600 0.986467 -0.011966 -0.163524
-6.194700 19.576300 -3.478600 0.986467 -0.011966 -0.163524
-7.813100 49.342701 -3.886900 0.881229 -0.394976 -0.259672
-6.029500 46.188801 -3.956000 0.881229 -0.394976 -0.259672
-5.495700 46.043098 -6.732400 0.881229 -0.394976 -0.259672
-6.775800 50.206501 -7.534500 0.881229 -0.394976 -0.259672
-8.756500 49.321098 -7.632900 -0.341557 -0.936397 -0.080618
-8.927200 49.128502 -4.128200 -0.341557 -0.936397 -0.080618
-7.813100 49.342701 -3.886900 -0.341557 -0.936397 -0.080618
-6.775800 50.206501 -7.534500 -0.341557 -0.936397 -0.080618
-5.495700 46.043098 -6.732400 0.295037 -0.218453 -0.930178
-0.000000 45.235802 -8.516300 0.295037 -0.218453 -0.930178
-0.000000 50.037800 -9.413700 0.295037 -0.218453 -0.930178
-6.775800 50.206501 -7.534500 0.295037 -0.218453 -0.930178
-3.773800 51.093601 -1.034300 0.217879 0.518058 0.827130
-1.435700 55.057400 -2.884500 0.217879 0.518058 0.827130
-0.000000 54.522099 -2.187600 0.217879 0.518058 0.827130
-0.000000 50.880199 0.110000 0.217879 0.518058 0.827130
-0.163800 60.672798 0.405300 0.878123 0.172158 0.446386
-0.226300 59.631802 0.717000 0.878123 0.172158 0.446386
-0.605400 59.453602 0.006800 0.878123 0.172158 0.446386
-0.596000 60.268700 -0.255900 0.878123 0.172158 0.446386
-0.000000 59.375900 0.272700 0.351825 0.003851 0.936058
-0.000000 58.735298 0.237300 0.351825 0.003851 0.936058
-0.793500 58.611801 -0.022400 0.351825 0.003851 0.936058
-0.605400 59.453602 0.006800 0.351825 0.003851 0.936058
-1.340700 61.343498 -1.024900 0.500896 0.173312 0.847978
-2.225300 60.301201 -1.334400 0.500896 0.173312 0.847978
-2.209500 61.230499 -1.515000 0.500896 0.173312 0.847978
-0.474100 61.294899 -0.607800 0.419394 -0.893935 0.158081
-0.785400 61.539799 -0.048800 0.419394 -0.893935 0.158081
-0.179900 61.274700 0.058500 0.419394 -0.893935 0.158081
-0.163800 60.672798 0.405300 0.879737 0.234636 0.413532
-0.596000 60.268700 -0.255900 0.879737 0.234636 0.413532
-0.474100 61.294899 -0.607800 0.879737 0.234636 0.413532
-0.179900 61.274700 0.058500 0.879737 0.234636 0.413532
-0.785400 61.539799 -0.048800 0.405349 0.400850 0.821591
-1.792100 61.563202 -0.648200 0.405349 0.400850 0.821591
-1.901400 62.898899 -1.262500 0.405349 0.400850 0.821591
-0.000000 62.775902 -0.355700 0.405349 0.400850 0.821591
-1.901400 62.898899 -1.262500 0.958885 0.139689 0.247034
-1.792100 61.563202 -0.648200 0.958885 0.139689 0.247034
-2.209500 61.230499 -1.515000 0.958885 0.139689 0.247034
-2.505800 61.413601 -3.333900 0.958885 0.139689 0.247034
-2.071800 58.080299 -1.837600 0.982605 0.010378 0.185418
-2.361600 58.652599 -3.405400 0.982605 0.010378 0.185418
-2.043500 58.694401 -1.722000 0.982605 0.010378 0.185418
-2.361600 58.652599 -3.405400 0.835615 -0.547438 -0.045374
-2.071800 58.080299 -1.837600 0.835615 -0.547438 -0.045374
-1.480400 57.287800 -3.167400 0.835615 -0.547438 -0.045374
-2.361600 58.652599 -3.405400 0.962379 -0.178153 0.205154
-2.484800 60.667999 -2.078300 0.962379 -0.178153 0.205154
-2.225300 60.301201 -1.334400 0.962379 -0.178153 0.205154
-2.043500 58.694401 -1.722000 0.962379 -0.178153 0.205154
-0.596000 60.268700 -0.255900 0.569338 0.180881 0.801958
-0.605400 59.453602 0.006800 0.569338 0.180881 0.801958
-0.793500 58.611801 -0.022400 0.569338 0.180881 0.801958
-2.225300 60.301201 -1.334400 0.569338 0.180881 0.801958
-0.793500 58.611801 -0.022400 0.424783 -0.113068 0.898207
-0.000000 58.735298 0.237300 0.424783 -0.113068 0.898207
-0.000000 57.320400 0.190300 0.424783 -0.113068 0.898207
-0.860300 57.339199 -0.345300 0.424783 -0.113068 0.898207
-2.361600 58.652599 -3.405400 0.801295 -0.555920 -0.221086
-1.480400 57.287800 -3.167400 0.801295 -0.555920 -0.221086
-1.507500 57.978802 -4.806700 0.801295 -0.555920 -0.221086
-1.480400 57.287800 -3.167400 0.605736 -0.042761 0.794516
-0.509500 56.862801 -2.081200 0.605736 -0.042761 0.794516
-0.000000 54.522099 -2.187600 0.605736 -0.042761 0.794516
-1.435700 55.057400 -2.884500 0.605736 -0.042761 0.794516
-1.435700 55.057400 -2.884500 0.962522 0.132164 0.236820
-2.321200 55.471001 -5.570800 0.962522 0.132164 0.236820
-1.507500 57.978802 -4.806700 0.962522 0.132164 0.236820
-1.480400 57.287800 -3.167400 0.962522 0.132164 0.236820
-5.117200 15.490400 -9.679700 -0.146405 -0.402228 -0.903758
-1.456400 14.610600 -8.695100 -0.146405 -0.402228 -0.903758
-0.134100 16.169500 -9.174700 -0.146405 -0.402228 -0.903758
-0.134100 16.169500 -9.174700 -0.868940 -0.488451 0.079739
-1.239800 14.644800 -6.465300 -0.868940 -0.488451 0.079739
-1.716700 14.450400 -2.459200 -0.868940 -0.488451 0.079739
-5.308800 13.910900 -3.738700 0.254739 -0.396087 0.882170
-6.069200 14.643000 -3.762300 0.254739 -0.396087 0.882170
-1.716700 14.450400 -2.459200 0.254739 -0.396087 0.882170
-1.766900 13.754900 -2.918700 0.254739 -0.396087 0.882170
-4.620900 14.945700 -8.516100 0.580484 -0.782092 -0.226651
-5.117200 15.490400 -9.679700 0.580484 -0.782092 -0.226651
-6.069200 14.643000 -3.762300 0.580484 -0.782092 -0.226651
-5.308800 13.910900 -3.738700 0.580484 -0.782092 -0.226651
-1.957400 20.620800 -1.211500 -0.981620 0.066989 0.178702
-2.189200 21.987900 -1.483700 -0.981620 0.066989 0.178702
-0.835600 22.853901 -8.210700 -0.981620 0.066989 0.178702
-0.899900 21.410400 -8.349400 -0.981620 0.066989 0.178702
-7.174300 32.815300 -5.167300 0.882089 0.156872 -0.444196
-4.970000 33.082802 -8.871900 0.882089 0.156872 -0.444196
-5.283200 35.952900 -7.814600 0.882089 0.156872 -0.444196
-6.542300 35.480598 -4.902800 0.882089 0.156872 -0.444196
-5.598500 31.822901 -1.404300 0.892181 0.170029 0.418452
-7.174300 32.815300 -5.167300 0.892181 0.170029 0.418452
-6.542300 35.480598 -4.902800 0.892181 0.170029 0.418452
-4.685700 36.664101 -1.616400 0.472747 0.127337 0.871949
-3.798500 31.552500 -0.388900 0.472747 0.127337 0.871949
-5.598500 31.822901 -1.404300 0.472747 0.127337 0.871949
-2.225300 60.301201 -1.334400 0.926529 0.086891 0.366052
-2.484800 60.667999 -2.078300 0.926529 0.086891 0.366052
-2.209500 61.230499 -1.515000 0.926529 0.086891 0.366052
-8.927200 49.128502 -4.128200 0.174303 -0.164506 0.970853
-9.508400 52.403099 -3.672700 0.174303 -0.164506 0.970853
-8.184300 53.108700 -3.320400 0.174303 -0.164506 0.970853
-7.813100 49.342701 -3.886900 0.174303 -0.164506 0.970853
-8.184300 53.108700 -3.320400 0.526523 0.826719 0.198265
-9.508400 52.403099 -3.672700 0.526523 0.826719 0.198265
-9.827700 52.989700 -7.188500 0.526523 0.826719 0.198265
-8.747800 53.770199 -7.353300 0.526523 0.826719 0.198265
-8.747800 53.770199 -7.353300 0.154881 -0.035505 -0.987295
-6.775800 50.206501 -7.534500 0.154881 -0.035505 -0.987295
-7.252500 54.524502 -7.615000 0.154881 -0.035505 -0.987295
-8.927200 49.128502 -4.128200 -0.001669 -0.169906 0.985459
-14.977100 45.689201 -4.821000 -0.001669 -0.169906 0.985459
-15.636800 49.715099 -4.015700 -0.001669 -0.169906 0.985459
-9.508400 52.403099 -3.672700 -0.001669 -0.169906 0.985459
-1.435700 55.057400 -2.884500 0.215818 0.814400 0.538680
-3.773800 51.093601 -1.034300 0.215818 0.814400 0.538680
-6.624100 53.529800 -2.653700 0.215818 0.814400 0.538680
-7.252500 54.524502 -7.615000 0.215818 0.814400 0.538680
-2.321200 55.471001 -5.570800 0.276118 0.932071 0.234526
-1.435700 55.057400 -2.884500 0.276118 0.932071 0.234526
-7.252500 54.524502 -7.615000 0.276118 0.932071 0.234526
-2.209500 61.230499 -1.515000 0.942806 0.279456 0.181716
-2.484800 60.667999 -2.078300 0.942806 0.279456 0.181716
-2.505800 61.413601 -3.333900 0.942806 0.279456 0.181716
-2.484800 60.667999 -2.078300 0.998559 -0.051788 -0.014052
-2.361600 58.652599 -3.405400 0.998559 -0.051788 -0.014052
-2.505800 61.413601 -3.333900 0.998559 -0.051788 -0.014052
-2.209500 61.230499 -1.515000 0.107977 -0.909631 0.401138
-1.792100 61.563202 -0.648200 0.107977 -0.909631 0.401138
-1.340700 61.343498 -1.024900 0.107977 -0.909631 0.401138
-3.061600 3.537800 -3.461700 -0.234488 0.898953 0.369997
-1.553600 3.059500 -4.173500 -0.234488 0.898953 0.369997
-1.568700 1.981700 -0.627100 -0.234488 0.898953 0.369997
-3.735600 1.816900 0.228400 -0.234488 0.898953 0.369997
-0.626000 0.031700 -8.336200 -0.992053 0.072189 0.103052
-1.825200 -0.024100 0.601200 -0.992053 0.072189 0.103052
-1.568700 1.981700 -0.627100 -0.992053 0.072189 0.103052
-1.553600 3.059500 -4.173500 -0.992053 0.072189 0.103052
-1.825200 -0.024100 0.601200 0.002195 -0.999985 -0.005027
-0.626000 0.031700 -8.336200 0.002195 -0.999985 -0.005027
-1.712600 0.024900 -9.195700 0.002195 -0.999985 -0.005027
-3.769300 -0.009000 1.132900 0.002195 -0.999985 -0.005027
-1.712600 0.024900 -9.195700 -0.920325 0.042849 -0.388801
-0.626000 0.031700 -8.336200 -0.920325 0.042849 -0.388801
-1.239800 14.644800 -6.465300 -0.920325 0.042849 -0.388801
-1.456400 14.610600 -8.695100 -0.920325 0.042849 -0.388801
-1.568700 1.981700 -0.627100 -0.270273 0.452545 0.849798
-1.825200 -0.024100 0.601200 -0.270273 0.452545 0.849798
-3.769300 -0.009000 1.132900 -0.270273 0.452545 0.849798
-3.735600 1.816900 0.228400 -0.270273 0.452545 0.849798
-4.089400 2.633000 -5.031300 0.957442 -0.073711 -0.279054
-5.390300 1.568200 -1.670300 0.957442 -0.073711 -0.279054
-5.176800 -0.025000 -0.598300 0.957442 -0.073711 -0.279054
-3.252600 0.001600 -8.591000 0.957442 -0.073711 -0.279054
-3.769300 -0.009000 1.132900 0.738109 0.308147 0.600201
-5.176800 -0.025000 -0.598300 0.738109 0.308147 0.600201
-5.390300 1.568200 -1.670300 0.738109 0.308147 0.600201
-3.735600 1.816900 0.228400 0.738109 0.308147 0.600201
-5.390300 1.568200 -1.670300 0.560649 0.811720 0.163660
-4.089400 2.633000 -5.031300 0.560649 0.811720 0.163660
-3.061600 3.537800 -3.461700 0.560649 0.811720 0.163660
-3.735600 1.816900 0.228400 0.560649 0.811720 0.163660
-3.061600 3.537800 -3.461700 0.452521 -0.074303 0.888653
-4.089400 2.633000 -5.031300 0.452521 -0.074303 0.888653
-5.308800 13.910900 -3.738700 0.452521 -0.074303 0.888653
-1.766900 13.754900 -2.918700 0.452521 -0.074303 0.888653
-5.117200 15.490400 -9.679700 0.118623 -0.917754 -0.379021
-4.620900 14.945700 -8.516100 0.118623 -0.917754 -0.379021
-1.456400 14.610600 -8.695100 0.118623 -0.917754 -0.379021
-1.456400 14.610600 -8.695100 -0.751462 -0.656769 -0.062923
-1.239800 14.644800 -6.465300 -0.751462 -0.656769 -0.062923
-0.134100 16.169500 -9.174700 -0.751462 -0.656769 -0.062923
-5.426000 21.341299 -8.132600 0.959663 0.028025 -0.279753
-5.317800 22.936800 -8.016200 0.959663 0.028025 -0.279753
-6.824000 22.193899 -3.251500 0.959663 0.028025 -0.279753
-6.827700 20.858999 -3.044800 0.959663 0.028025 -0.279753
-0.845100 29.891001 -9.498900 0.127296 -0.127838 -0.983592
-5.595300 29.761600 -8.492500 0.127296 -0.127838 -0.983592
-5.317800 22.936800 -8.016200 0.127296 -0.127838 -0.983592
-0.835600 22.853901 -8.210700 0.127296 -0.127838 -0.983592
-1.957400 20.620800 -1.211500 0.345482 0.135420 0.928603
-6.827700 20.858999 -3.044800 0.345482 0.135420 0.928603
-6.824000 22.193899 -3.251500 0.345482 0.135420 0.928603
-2.189200 21.987900 -1.483700 0.345482 0.135420 0.928603
-0.605400 59.453602 0.006800 0.276378 -0.886938 0.370075
-0.226300 59.631802 0.717000 0.276378 -0.886938 0.370075
-0.000000 59.375900 0.272700 0.276378 -0.886938 0.370075
-21.936399 43.055199 -3.733600 0.245050 -0.199318 0.948801
-23.265499 44.290199 -3.614200 0.245050 -0.199318 0.948801
-23.323000 46.228001 -3.425200 0.245050 -0.199318 0.948801
-22.348700 46.932201 -2.822400 0.245050 -0.199318 0.948801
-22.105101 44.119598 -7.074000 0.680722 -0.210597 -0.701617
-23.337700 47.268200 -6.945000 0.680722 -0.210597 -0.701617
-23.881300 46.267799 -5.995500 0.680722 -0.210597 -0.701617
-23.273100 44.479099 -6.170500 0.680722 -0.210597 -0.701617
-22.348700 46.932201 -2.822400 0.710630 0.673907 0.202126
-23.323000 46.228001 -3.425200 0.710630 0.673907 0.202126
-23.881300 46.267799 -5.995500 0.710630 0.673907 0.202126
-23.337700 47.268200 -6.945000 0.710630 0.673907 0.202126
-21.936399 43.055199 -3.733600 0.575702 -0.803125 -0.153486
-22.105101 44.119598 -7.074000 0.575702 -0.803125 -0.153486
-23.273100 44.479099 -6.170500 0.575702 -0.803125 -0.153486
-23.265499 44.290199 -3.614200 0.575702 -0.803125 -0.153486
-23.323000 46.228001 -3.425200 -0.234519 0.052147 0.970712
-23.265499 44.290199 -3.614200 -0.234519 0.052147 0.970712
-24.446100 44.099098 -3.039500 -0.234519 0.052147 0.970712
-24.935400 45.742901 -3.288800 -0.234519 0.052147 0.970712
-23.273100 44.479099 -6.170500 0.051663 0.047611 -0.997529
-23.881300 46.267799 -5.995500 0.051663 0.047611 -0.997529
-25.982700 45.641201 -5.974700 0.051663 0.047611 -0.997529
-25.718901 44.407902 -5.989100 0.051663 0.047611 -0.997529
-23.881300 46.267799 -5.995500 0.283035 0.956157 0.075198
-23.323000 46.228001 -3.425200 0.283035 0.956157 0.075198
-24.935400 45.742901 -3.288800 0.283035 0.956157 0.075198
-25.982700 45.641201 -5.974700 0.283035 0.956157 0.075198
-23.265499 44.290199 -3.614200 -0.050680 -0.993534 -0.101596
-23.273100 44.479099 -6.170500 -0.050680 -0.993534 -0.101596
-25.718901 44.407902 -5.989100 -0.050680 -0.993534 -0.101596
-24.446100 44.099098 -3.039500 -0.050680 -0.993534 -0.101596
-3.798500 31.552500 -0.388900 0.303080 0.047081 0.951802
-4.685700 36.664101 -1.616400 0.303080 0.047081 0.951802
-0.000000 37.009800 0.550700 0.303080 0.047081 0.951802
-0.000000 31.552500 0.128500 0.303080 0.047081 0.951802
-27.058001 43.733101 -1.471100 0.612973 -0.035197 0.789319
-26.775499 43.007000 -1.492900 0.612973 -0.035197 0.789319
-27.637899 42.321201 -1.984400 0.612973 -0.035197 0.789319
-28.100901 44.177299 -2.470000 0.612973 -0.035197 0.789319
-27.102699 45.320202 -5.735100 0.288380 -0.175341 -0.941325
-26.246300 42.901402 -5.383600 0.288380 -0.175341 -0.941325
-25.718901 44.407902 -5.989100 0.288380 -0.175341 -0.941325
-25.982700 45.641201 -5.974700 0.288380 -0.175341 -0.941325
-24.935400 45.742901 -3.288800 0.215944 0.976143 0.022647
-26.753901 45.398300 -2.858600 0.215944 0.976143 0.022647
-27.102699 45.320202 -5.735100 0.215944 0.976143 0.022647
-25.982700 45.641201 -5.974700 0.215944 0.976143 0.022647
-24.446100 44.099098 -3.039500 -0.806467 -0.440747 -0.394147
-25.718901 44.407902 -5.989100 -0.806467 -0.440747 -0.394147
-26.246300 42.901402 -5.383600 -0.806467 -0.440747 -0.394147
-28.380600 42.330502 -3.056600 0.840529 -0.044209 0.539960
-28.697901 44.238201 -3.477500 0.840529 -0.044209 0.539960
-28.100901 44.177299 -2.470000 0.840529 -0.044209 0.539960
-27.637899 42.321201 -1.984400 0.840529 -0.044209 0.539960
-28.380600 42.330502 -3.056600 0.979149 -0.175223 -0.102788
-28.292801 42.543098 -4.446800 0.979149 -0.175223 -0.102788
-28.543800 44.178001 -4.651400 0.979149 -0.175223 -0.102788
-28.697901 44.238201 -3.477500 0.979149 -0.175223 -0.102788
-26.753901 45.398300 -2.858600 0.560189 0.737837 0.376544
-28.100901 44.177299 -2.470000 0.560189 0.737837 0.376544
-28.697901 44.238201 -3.477500 0.560189 0.737837 0.376544
-24.935400 45.742901 -3.288800 -0.484106 0.321222 0.813915
-24.446100 44.099098 -3.039500 -0.484106 0.321222 0.813915
-25.587200 43.557701 -2.038700 -0.484106 0.321222 0.813915
-26.117701 44.487900 -2.198700 -0.484106 0.321222 0.813915
-24.446100 44.099098 -3.039500 -0.765721 -0.642695 -0.024780
-26.246300 42.901402 -5.383600 -0.765721 -0.642695 -0.024780
-25.491899 42.827301 -2.370100 -0.765721 -0.642695 -0.024780
-25.587200 43.557701 -2.038700 -0.765721 -0.642695 -0.024780
-26.753901 45.398300 -2.858600 -0.068715 0.616533 0.784324
-24.935400 45.742901 -3.288800 -0.068715 0.616533 0.784324
-26.117701 44.487900 -2.198700 -0.068715 0.616533 0.784324
-0.000000 31.552500 0.128500 0.069913 -0.031462 0.997057
-0.000000 24.132099 -0.356700 0.069913 -0.031462 0.997057
-3.463700 23.872801 -0.356700 0.069913 -0.031462 0.997057
-3.798500 31.552500 -0.388900 0.069913 -0.031462 0.997057
-2.225300 60.301201 -1.334400 0.789816 -0.226827 0.569860
-0.793500 58.611801 -0.022400 0.789816 -0.226827 0.569860
-2.043500 58.694401 -1.722000 0.789816 -0.226827 0.569860
-0.793500 58.611801 -0.022400 0.800106 -0.097243 0.591924
-0.860300 57.339199 -0.345300 0.800106 -0.097243 0.591924
-2.071800 58.080299 -1.837600 0.800106 -0.097243 0.591924
-2.043500 58.694401 -1.722000 0.800106 -0.097243 0.591924
-2.071800 58.080299 -1.837600 0.594038 -0.791272 0.144939
-0.860300 57.339199 -0.345300 0.594038 -0.791272 0.144939
-0.509500 56.862801 -2.081200 0.594038 -0.791272 0.144939
-1.480400 57.287800 -3.167400 0.594038 -0.791272 0.144939
-0.179900 61.274700 0.058500 0.090663 0.188705 0.977840
-0.785400 61.539799 -0.048800 0.090663 0.188705 0.977840
-0.000000 61.912998 -0.048000 0.090663 0.188705 0.977840
-15.884600 46.520500 -7.855800 0.098387 0.080586 -0.991880
-14.885000 46.974701 -7.946000 0.098387 0.080586 -0.991880
-16.136200 50.023998 -7.546200 0.098387 0.080586 -0.991880
-17.208200 49.477699 -7.512200 0.098387 0.080586 -0.991880
-15.636800 49.715099 -4.015700 0.436830 0.889212 0.135946
-16.810101 49.139900 -3.928800 0.436830 0.889212 0.135946
-17.208200 49.477699 -7.512200 0.436830 0.889212 0.135946
-16.136200 50.023998 -7.546200 0.436830 0.889212 0.135946
-16.192200 44.960400 -4.877100 -0.435886 -0.826304 -0.356686
-14.977100 45.689201 -4.821000 -0.435886 -0.826304 -0.356686
-14.885000 46.974701 -7.946000 -0.435886 -0.826304 -0.356686
-15.884600 46.520500 -7.855800 -0.435886 -0.826304 -0.356686
-16.810101 49.139900 -3.928800 -0.116417 -0.190205 0.974818
-15.636800 49.715099 -4.015700 -0.116417 -0.190205 0.974818
-14.977100 45.689201 -4.821000 -0.116417 -0.190205 0.974818
-16.192200 44.960400 -4.877100 -0.116417 -0.190205 0.974818
-13.779500 47.417198 -7.715300 0.030432 0.115440 -0.992848
-8.756500 49.321098 -7.632900 0.030432 0.115440 -0.992848
-9.827700 52.989700 -7.188500 0.030432 0.115440 -0.992848
-14.989100 50.565300 -7.297200 0.030432 0.115440 -0.992848
-15.636800 49.715099 -4.015700 0.447311 0.883265 0.140554
-16.136200 50.023998 -7.546200 0.447311 0.883265 0.140554
-14.989100 50.565300 -7.297200 0.447311 0.883265 0.140554
-13.779500 47.417198 -7.715300 -0.409629 -0.847844 -0.336696
-14.885000 46.974701 -7.946000 -0.409629 -0.847844 -0.336696
-14.977100 45.689201 -4.821000 -0.409629 -0.847844 -0.336696
-1.239800 14.644800 -6.465300 -0.983473 -0.143727 0.110102
-1.766900 13.754900 -2.918700 -0.983473 -0.143727 0.110102
-1.716700 14.450400 -2.459200 -0.983473 -0.143727 0.110102
-26.117701 44.487900 -2.198700 -0.374471 0.258120 0.890587
-25.587200 43.557701 -2.038700 -0.374471 0.258120 0.890587
-26.775499 43.007000 -1.492900 -0.374471 0.258120 0.890587
-27.058001 43.733101 -1.471100 -0.374471 0.258120 0.890587
-25.587200 43.557701 -2.038700 -0.386633 -0.610879 0.690899
-25.491899 42.827301 -2.370100 -0.386633 -0.610879 0.690899
-27.637899 42.321201 -1.984400 -0.386633 -0.610879 0.690899
-26.775499 43.007000 -1.492900 -0.386633 -0.610879 0.690899
-26.117701 44.487900 -2.198700 0.202601 0.798645 0.566673
-27.058001 43.733101 -1.471100 0.202601 0.798645 0.566673
-28.100901 44.177299 -2.470000 0.202601 0.798645 0.566673
-8.184300 53.108700 -3.320400 0.347207 -0.172872 0.921717
-6.624100 53.529800 -2.653700 0.347207 -0.172872 0.921717
-7.813100 49.342701 -3.886900 0.347207 -0.172872 0.921717
-8.747800 53.770199 -7.353300 0.055764 0.062731 -0.996471
-9.827700 52.989700 -7.188500 0.055764 0.062731 -0.996471
-8.756500 49.321098 -7.632900 0.055764 0.062731 -0.996471
-6.775800 50.206501 -7.534500 0.055764 0.062731 -0.996471
-28.543800 44.178001 -4.651400 0.562493 0.826801 -0.001192
-27.102699 45.320202 -5.735100 0.562493 0.826801 -0.001192
-26.753901 45.398300 -2.858600 0.562493 0.826801 -0.001192
-28.697901 44.238201 -3.477500 0.562493 0.826801 -0.001192
-26.246300 42.901402 -5.383600 -0.106461 -0.983873 -0.143736
-28.292801 42.543098 -4.446800 -0.106461 -0.983873 -0.143736
-28.380600 42.330502 -3.056600 -0.106461 -0.983873 -0.143736
-28.100901 44.177299 -2.470000 0.192584 0.484112 0.853550
-26.753901 45.398300 -2.858600 0.192584 0.484112 0.853550
-26.117701 44.487900 -2.198700 0.192584 0.484112 0.853550
-1.712600 0.024900 -9.195700 -0.013475 -0.999909 -0.000374
-3.252600 0.001600 -8.591000 -0.013475 -0.999909 -0.000374
-5.176800 -0.025000 -0.598300 -0.013475 -0.999909 -0.000374
-3.769300 -0.009000 1.132900 -0.013475 -0.999909 -0.000374
-0.000000 61.912998 -0.048000 0.158526 0.331625 0.929997
-0.785400 61.539799 -0.048800 0.158526 0.331625 0.929997
-0.000000 62.775902 -0.355700 0.158526 0.331625 0.929997
-0.340300 31.400700 -9.928000 -0.943868 -0.327610 -0.042246
-0.845100 29.891001 -9.498900 -0.943868 -0.327610 -0.042246
-0.425600 30.069099 -1.507500 -0.943868 -0.327610 -0.042246
-0.509500 56.862801 -2.081200 0.000000 -0.045410 0.998968
-0.509500 56.862801 -2.081200 0.098448 -0.971038 0.217700
-0.860300 57.339199 -0.345300 0.098448 -0.971038 0.217700
-0.000000 57.320400 0.190300 0.098448 -0.971038 0.217700
-0.000000 56.862801 -2.081200 0.098448 -0.971038 0.217700
-5.598500 31.822901 -1.404300 0.881264 0.021588 0.472131
-6.824000 22.193899 -3.251500 0.881264 0.021588 0.472131
-7.453900 29.910801 -4.780100 0.881264 0.021588 0.472131
-6.824000 22.193899 -3.251500 0.921284 -0.108958 -0.373315
-5.317800 22.936800 -8.016200 0.921284 -0.108958 -0.373315
-5.595300 29.761600 -8.492500 0.921284 -0.108958 -0.373315
-7.453900 29.910801 -4.780100 0.921284 -0.108958 -0.373315
-3.798500 31.552500 -0.388900 0.401815 -0.146587 0.903912
-2.189200 21.987900 -1.483700 0.401815 -0.146587 0.903912
-6.824000 22.193899 -3.251500 0.401815 -0.146587 0.903912
-5.598500 31.822901 -1.404300 0.401815 -0.146587 0.903912
-0.340300 31.400700 -9.928000 0.230509 -0.107925 -0.967067
-4.970000 33.082802 -8.871900 0.230509 -0.107925 -0.967067
-5.595300 29.761600 -8.492500 0.230509 -0.107925 -0.967067
-0.845100 29.891001 -9.498900 0.230509 -0.107925 -0.967067
-0.835600 22.853901 -8.210700 -0.992236 -0.110106 0.057826
-2.189200 21.987900 -1.483700 -0.992236 -0.110106 0.057826
-0.425600 30.069099 -1.507500 -0.992236 -0.110106 0.057826
-0.845100 29.891001 -9.498900 -0.992236 -0.110106 0.057826
-2.162800 35.743500 -9.599900 0.324673 0.084802 -0.942017
-5.283200 35.952900 -7.814600 0.324673 0.084802 -0.942017
-4.970000 33.082802 -8.871900 0.324673 0.084802 -0.942017
-0.340300 31.400700 -9.928000 0.324673 0.084802 -0.942017
-5.283200 35.952900 -7.814600 0.889642 0.311183 -0.334218
-5.919200 37.619099 -4.570300 0.889642 0.311183 -0.334218
-6.542300 35.480598 -4.902800 0.889642 0.311183 -0.334218
-5.919200 37.619099 -4.570300 0.882631 0.186784 0.431364
-4.685700 36.664101 -1.616400 0.882631 0.186784 0.431364
-5.598500 31.822901 -1.404300 0.882631 0.186784 0.431364
-6.542300 35.480598 -4.902800 0.882631 0.186784 0.431364
-0.474100 61.294899 -0.607800 0.490764 0.255871 0.832875
-0.596000 60.268700 -0.255900 0.490764 0.255871 0.832875
-2.225300 60.301201 -1.334400 0.490764 0.255871 0.832875
-1.340700 61.343498 -1.024900 0.490764 0.255871 0.832875
-1.340700 61.343498 -1.024900 0.199083 -0.932669 0.300824
-1.792100 61.563202 -0.648200 0.199083 -0.932669 0.300824
-0.785400 61.539799 -0.048800 0.199083 -0.932669 0.300824
-0.474100 61.294899 -0.607800 0.199083 -0.932669 0.300824
-0.000000 45.235802 -8.516300 0.205813 0.023108 -0.978318
-5.495700 46.043098 -6.732400 0.205813 0.023108 -0.978318
-2.827600 38.171799 -8.088300 0.205813 0.023108 -0.978318
-0.000000 38.221600 -8.073300 0.205813 0.023108 -0.978318
-0.425600 30.069099 -1.507500 -0.290133 -0.060504 0.955072
-2.189200 21.987900 -1.483700 -0.290133 -0.060504 0.955072
-3.798500 31.552500 -0.388900 -0.290133 -0.060504 0.955072
-0.000000 31.547001 -9.939100 -0.348901 -0.925923 -0.144686
-0.340300 31.400700 -9.928000 -0.348901 -0.925923 -0.144686
-0.425600 30.069099 -1.507500 -0.348901 -0.925923 -0.144686
-0.000000 30.215401 -1.522000 -0.348901 -0.925923 -0.144686
-21.061199 44.183601 -7.611200 0.028361 0.039319 -0.998824
-15.884600 46.520500 -7.855800 0.028361 0.039319 -0.998824
-17.208200 49.477699 -7.512200 0.028361 0.039319 -0.998824
-22.585199 48.327702 -7.594400 0.028361 0.039319 -0.998824
-22.348700 46.932201 -2.822400 0.723103 0.652497 0.226650
-23.337700 47.268200 -6.945000 0.723103 0.652497 0.226650
-22.585199 48.327702 -7.594400 0.723103 0.652497 0.226650
-21.061199 44.183601 -7.611200 0.095048 -0.949863 -0.297868
-22.105101 44.119598 -7.074000 0.095048 -0.949863 -0.297868
-21.936399 43.055199 -3.733600 0.095048 -0.949863 -0.297868
-0.340300 31.400700 -9.928000 0.010374 0.075249 -0.997111
-0.000000 31.547001 -9.939100 0.010374 0.075249 -0.997111
-0.000000 35.795200 -9.599900 0.010374 0.075249 -0.997111
-2.162800 35.743500 -9.599900 0.010374 0.075249 -0.997111
-5.919200 37.619099 -4.570300 0.561685 0.544798 -0.622660
-5.283200 35.952900 -7.814600 0.561685 0.544798 -0.622660
-2.162800 35.743500 -9.599900 0.561685 0.544798 -0.622660
-2.827600 38.171799 -8.088300 0.561685 0.544798 -0.622660
-28.543800 44.178001 -4.651400 0.410462 -0.233070 -0.881589
-28.292801 42.543098 -4.446800 0.410462 -0.233070 -0.881589
-26.246300 42.901402 -5.383600 0.410462 -0.233070 -0.881589
-27.102699 45.320202 -5.735100 0.410462 -0.233070 -0.881589
-25.491899 42.827301 -2.370100 -0.201709 -0.968181 -0.148119
-28.380600 42.330502 -3.056600 -0.201709 -0.968181 -0.148119
-27.637899 42.321201 -1.984400 -0.201709 -0.968181 -0.148119
-26.246300 42.901402 -5.383600 -0.185319 -0.980147 -0.070494
-28.380600 42.330502 -3.056600 -0.185319 -0.980147 -0.070494
-25.491899 42.827301 -2.370100 -0.185319 -0.980147 -0.070494
-2.162800 35.743500 -9.599900 0.008224 0.529675 -0.848161
-0.000000 35.795200 -9.599900 0.008224 0.529675 -0.848161
-0.000000 38.221600 -8.073300 0.008224 0.529675 -0.848161
-2.827600 38.171799 -8.088300 0.008224 0.529675 -0.848161
-0.706900 62.538601 -0.289700 0.498102 0.211804 0.840853
-1.838200 62.255798 -0.802600 0.498102 0.211804 0.840853
-1.901400 63.532299 -1.247600 0.498102 0.211804 0.840853
-0.672300 63.485901 -0.421800 0.498102 0.211804 0.840853
-1.901400 63.532299 -1.247600 0.915374 0.111541 0.386845
-1.838200 62.255798 -0.802600 0.915374 0.111541 0.386845
-3.194200 60.597198 -3.460400 0.915374 0.111541 0.386845
-2.758700 63.532299 -3.348800 0.915374 0.111541 0.386845
-2.758700 63.532299 -3.348800 0.984906 0.142377 0.098436
-3.194200 60.597198 -3.460400 0.984906 0.142377 0.098436
-3.446000 60.597198 -5.980300 0.984906 0.142377 0.098436
-3.010600 63.532299 -5.868700 0.984906 0.142377 0.098436
-3.194200 60.597198 -3.460400 0.917633 0.222238 0.329485
-1.838200 62.255798 -0.802600 0.917633 0.222238 0.329485
-2.336800 60.597198 -1.072500 0.917633 0.222238 0.329485
-2.130500 53.628601 -1.359200 0.842435 0.033555 0.537753
-4.088800 54.879799 -3.460400 0.842435 0.033555 0.537753
-3.194200 60.597198 -3.460400 0.842435 0.033555 0.537753
-2.336800 60.597198 -1.072500 0.842435 0.033555 0.537753
-4.088800 54.879799 -3.460400 0.982155 0.156435 0.104398
-4.340700 55.234299 -6.210400 0.982155 0.156435 0.104398
-3.446000 60.597198 -5.980300 0.982155 0.156435 0.104398
-3.194200 60.597198 -3.460400 0.982155 0.156435 0.104398
-3.010600 63.532299 -5.868700 0.839145 0.204241 -0.504105
-3.446000 60.597198 -5.980300 0.839145 0.204241 -0.504105
-2.517200 60.597198 -7.879200 0.839145 0.204241 -0.504105
-1.932100 63.532299 -7.311200 0.839145 0.204241 -0.504105
-3.446000 60.597198 -5.980300 0.847590 0.127945 -0.514996
-4.340700 55.234299 -6.210400 0.847590 0.127945 -0.514996
-2.990300 54.496300 -8.246000 0.847590 0.127945 -0.514996
-2.517200 60.597198 -7.879200 0.847590 0.127945 -0.514996
-1.932100 63.532299 -7.311200 0.365116 0.222173 -0.904063
-2.517200 60.597198 -7.879200 0.365116 0.222173 -0.904063
-0.000000 60.597198 -8.812800 0.365116 0.222173 -0.904063
-0.000000 63.532299 -8.174500 0.365116 0.222173 -0.904063
-2.990300 54.496300 -8.246000 0.255106 0.035267 -0.966270
-0.000000 54.050800 -8.782700 0.255106 0.035267 -0.966270
-0.000000 60.597198 -8.812800 0.255106 0.035267 -0.966270
-2.517200 60.597198 -7.879200 0.255106 0.035267 -0.966270
-0.672300 63.485901 -0.421800 0.422112 0.618267 0.662999
-1.901400 63.532299 -1.247600 0.422112 0.618267 0.662999
-1.171400 65.057899 -2.205500 0.422112 0.618267 0.662999
-1.901400 63.532299 -1.247600 0.756752 0.608663 0.238446
-2.758700 63.532299 -3.348800 0.756752 0.608663 0.238446
-1.795600 65.057899 -4.806100 0.756752 0.608663 0.238446
-1.171400 65.057899 -2.205500 0.756752 0.608663 0.238446
-2.758700 63.532299 -3.348800 0.806293 0.585999 0.080601
-3.010600 63.532299 -5.868700 0.806293 0.585999 0.080601
-1.795600 65.057899 -4.806100 0.806293 0.585999 0.080601
-3.010600 63.532299 -5.868700 0.468822 0.765524 -0.440657
-1.932100 63.532299 -7.311200 0.468822 0.765524 -0.440657
-0.000000 65.057899 -6.421400 0.468822 0.765524 -0.440657
-1.795600 65.057899 -4.806100 0.468822 0.765524 -0.440657
-1.932100 63.532299 -7.311200 0.281463 0.723860 -0.629925
-0.000000 63.532299 -8.174500 0.281463 0.723860 -0.629925
-0.000000 65.057899 -6.421400 0.281463 0.723860 -0.629925
-1.171400 65.057899 -2.205500 0.296421 0.952404 0.071148
-1.795600 65.057899 -4.806100 0.296421 0.952404 0.071148
-0.000000 65.560898 -4.058400 0.296421 0.952404 0.071148
-1.795600 65.057899 -4.806100 0.184093 0.961370 -0.204641
-0.000000 65.057899 -6.421400 0.184093 0.961370 -0.204641
-0.000000 65.560898 -4.058400 0.184093 0.961370 -0.204641
-0.672300 63.485901 -0.421800 0.000000 0.750225 0.661183
-1.171400 65.057899 -2.205500 0.000000 0.750225 0.661183
--1.171400 65.057899 -2.205500 0.000000 0.750225 0.661183
--0.672300 63.485901 -0.421800 0.000000 0.750225 0.661183
-0.706900 62.538601 -0.289700 0.204667 0.142518 0.968401
-0.672300 63.485901 -0.421800 0.204667 0.142518 0.968401
-0.000000 62.538601 -0.140300 0.204667 0.142518 0.968401
-0.672300 63.485901 -0.421800 -0.000000 0.284850 0.958572
--0.672300 63.485901 -0.421800 -0.000000 0.284850 0.958572
-0.000000 62.538601 -0.140300 -0.000000 0.284850 0.958572
-2.130500 53.628601 -1.359200 -0.899990 0.017690 0.435552
-2.336800 60.597198 -1.072500 -0.899990 0.017690 0.435552
-1.393700 60.597198 -3.164700 -0.899990 0.017690 0.435552
-1.187300 53.628601 -3.164700 -0.899990 0.017690 0.435552
--0.706900 62.538601 -0.289700 -0.498102 0.211804 0.840853
--0.672300 63.485901 -0.421800 -0.498102 0.211804 0.840853
--1.901400 63.532299 -1.247600 -0.498102 0.211804 0.840853
--1.838200 62.255798 -0.802600 -0.498102 0.211804 0.840853
--1.901400 63.532299 -1.247600 -0.915374 0.111541 0.386845
--2.758700 63.532299 -3.348800 -0.915374 0.111541 0.386845
--3.194200 60.597198 -3.460400 -0.915374 0.111541 0.386845
--1.838200 62.255798 -0.802600 -0.915374 0.111541 0.386845
--2.758700 63.532299 -3.348800 -0.984906 0.142377 0.098436
--3.010600 63.532299 -5.868700 -0.984906 0.142377 0.098436
--3.446000 60.597198 -5.980300 -0.984906 0.142377 0.098436
--3.194200 60.597198 -3.460400 -0.984906 0.142377 0.098436
--3.194200 60.597198 -3.460400 -0.917633 0.222238 0.329485
--2.336800 60.597198 -1.072500 -0.917633 0.222238 0.329485
--1.838200 62.255798 -0.802600 -0.917633 0.222238 0.329485
--2.130500 53.628601 -1.359200 -0.842435 0.033555 0.537753
--2.336800 60.597198 -1.072500 -0.842435 0.033555 0.537753
--3.194200 60.597198 -3.460400 -0.842435 0.033555 0.537753
--4.088800 54.879799 -3.460400 -0.842435 0.033555 0.537753
--4.088800 54.879799 -3.460400 -0.982155 0.156435 0.104398
--3.194200 60.597198 -3.460400 -0.982155 0.156435 0.104398
--3.446000 60.597198 -5.980300 -0.982155 0.156435 0.104398
--4.340700 55.234299 -6.210400 -0.982155 0.156435 0.104398
--3.010600 63.532299 -5.868700 -0.839145 0.204241 -0.504105
--1.932100 63.532299 -7.311200 -0.839145 0.204241 -0.504105
--2.517200 60.597198 -7.879200 -0.839145 0.204241 -0.504105
--3.446000 60.597198 -5.980300 -0.839145 0.204241 -0.504105
--3.446000 60.597198 -5.980300 -0.847590 0.127945 -0.514996
--2.517200 60.597198 -7.879200 -0.847590 0.127945 -0.514996
--2.990300 54.496300 -8.246000 -0.847590 0.127945 -0.514996
--4.340700 55.234299 -6.210400 -0.847590 0.127945 -0.514996
--1.932100 63.532299 -7.311200 -0.365116 0.222173 -0.904063
-0.000000 63.532299 -8.174500 -0.365116 0.222173 -0.904063
-0.000000 60.597198 -8.812800 -0.365116 0.222173 -0.904063
--2.517200 60.597198 -7.879200 -0.365116 0.222173 -0.904063
--2.990300 54.496300 -8.246000 -0.255106 0.035267 -0.966270
--2.517200 60.597198 -7.879200 -0.255106 0.035267 -0.966270
-0.000000 60.597198 -8.812800 -0.255106 0.035267 -0.966270
-0.000000 54.050800 -8.782700 -0.255106 0.035267 -0.966270
--0.672300 63.485901 -0.421800 -0.422112 0.618267 0.662999
--1.171400 65.057899 -2.205500 -0.422112 0.618267 0.662999
--1.901400 63.532299 -1.247600 -0.422112 0.618267 0.662999
--1.901400 63.532299 -1.247600 -0.756752 0.608663 0.238446
--1.171400 65.057899 -2.205500 -0.756752 0.608663 0.238446
--1.795600 65.057899 -4.806100 -0.756752 0.608663 0.238446
--2.758700 63.532299 -3.348800 -0.756752 0.608663 0.238446
--2.758700 63.532299 -3.348800 -0.806293 0.585999 0.080601
--1.795600 65.057899 -4.806100 -0.806293 0.585999 0.080601
--3.010600 63.532299 -5.868700 -0.806293 0.585999 0.080601
--3.010600 63.532299 -5.868700 -0.468822 0.765524 -0.440657
--1.795600 65.057899 -4.806100 -0.468822 0.765524 -0.440657
-0.000000 65.057899 -6.421400 -0.468822 0.765524 -0.440657
--1.932100 63.532299 -7.311200 -0.468822 0.765524 -0.440657
--1.932100 63.532299 -7.311200 -0.281463 0.723860 -0.629925
-0.000000 65.057899 -6.421400 -0.281463 0.723860 -0.629925
-0.000000 63.532299 -8.174500 -0.281463 0.723860 -0.629925
--1.171400 65.057899 -2.205500 -0.296421 0.952404 0.071148
-0.000000 65.560898 -4.058400 -0.296421 0.952404 0.071148
--1.795600 65.057899 -4.806100 -0.296421 0.952404 0.071148
--1.795600 65.057899 -4.806100 -0.184093 0.961370 -0.204641
-0.000000 65.560898 -4.058400 -0.184093 0.961370 -0.204641
-0.000000 65.057899 -6.421400 -0.184093 0.961370 -0.204641
--1.171400 65.057899 -2.205500 0.000000 0.965072 0.261984
-1.171400 65.057899 -2.205500 0.000000 0.965072 0.261984
-0.000000 65.560898 -4.058400 0.000000 0.965072 0.261984
--0.706900 62.538601 -0.289700 -0.204667 0.142518 0.968401
-0.000000 62.538601 -0.140300 -0.204667 0.142518 0.968401
--0.672300 63.485901 -0.421800 -0.204667 0.142518 0.968401
--2.130500 53.628601 -1.359200 0.899990 0.017690 0.435552
--1.187300 53.628601 -3.164700 0.899990 0.017690 0.435552
--1.393700 60.597198 -3.164700 0.899990 0.017690 0.435552
--2.336800 60.597198 -1.072500 0.899990 0.017690 0.435552
-8.704300 24.905701 -6.036500 0.233777 0.158187 -0.959336
-7.984800 25.127701 -6.177400 0.233777 0.158187 -0.959336
-7.649900 27.558001 -5.856100 0.233777 0.158187 -0.959336
-8.503900 27.435900 -5.670300 0.233777 0.158187 -0.959336
-6.463600 36.223400 -3.704900 0.910800 0.108730 0.398273
-5.778000 35.994701 -1.773100 0.910800 0.108730 0.398273
-7.451900 27.210300 -3.504400 0.910800 0.108730 0.398273
-8.503900 27.435900 -5.670300 0.910800 0.108730 0.398273
-5.115000 35.782600 -2.051700 -0.272059 -0.232411 0.933793
-6.597900 27.332300 -3.690200 -0.272059 -0.232411 0.933793
-7.451900 27.210300 -3.504400 -0.272059 -0.232411 0.933793
-5.778000 35.994701 -1.773100 -0.272059 -0.232411 0.933793
-5.743400 36.019600 -3.995900 0.266707 0.266447 -0.926215
-6.463600 36.223400 -3.704900 0.266707 0.266447 -0.926215
-8.503900 27.435900 -5.670300 0.266707 0.266447 -0.926215
-7.649900 27.558001 -5.856100 0.266707 0.266447 -0.926215
-7.451900 27.210300 -3.504400 -0.285900 -0.782712 0.552832
-6.597900 27.332300 -3.690200 -0.285900 -0.782712 0.552832
-7.984800 25.127701 -6.177400 -0.285900 -0.782712 0.552832
-8.704300 24.905701 -6.036500 -0.285900 -0.782712 0.552832
-7.451900 27.210300 -3.504400 0.899158 0.007889 0.437552
-8.704300 24.905701 -6.036500 0.899158 0.007889 0.437552
-8.503900 27.435900 -5.670300 0.899158 0.007889 0.437552
-6.463600 36.223400 -3.704900 -0.293676 0.955783 0.015277
-5.743400 36.019600 -3.995900 -0.293676 0.955783 0.015277
-5.115000 35.782600 -2.051700 -0.293676 0.955783 0.015277
-5.778000 35.994701 -1.773100 -0.293676 0.955783 0.015277
-4.513000 55.007702 -5.909800 -0.189279 -0.709198 -0.679126
-4.291100 55.098900 -5.871800 -0.189279 -0.709198 -0.679126
-4.207800 55.799599 -6.651700 -0.189279 -0.709198 -0.679126
-4.871900 55.799599 -6.765400 -0.189279 -0.709198 -0.679126
-2.904000 62.455601 -5.700500 0.959060 0.270852 0.082723
-2.764700 62.455601 -4.128400 0.959060 0.270852 0.082723
-4.736600 55.799599 -5.153900 0.959060 0.270852 0.082723
-4.871900 55.799599 -6.765400 0.959060 0.270852 0.082723
-2.764700 62.455601 -4.128400 0.167860 -0.101350 0.980587
-4.072400 55.799599 -5.040200 0.167860 -0.101350 0.980587
-4.736600 55.799599 -5.153900 0.167860 -0.101350 0.980587
-2.904000 62.455601 -5.700500 -0.167781 0.107182 -0.979980
-4.871900 55.799599 -6.765400 -0.167781 0.107182 -0.979980
-4.207800 55.799599 -6.651700 -0.167781 0.107182 -0.979980
-4.736600 55.799599 -5.153900 0.042232 -0.727963 0.684314
-4.072400 55.799599 -5.040200 0.042232 -0.727963 0.684314
-4.291100 55.098900 -5.871800 0.042232 -0.727963 0.684314
-4.513000 55.007702 -5.909800 0.042232 -0.727963 0.684314
-4.736600 55.799599 -5.153900 0.937220 -0.339745 0.078688
-4.513000 55.007702 -5.909800 0.937220 -0.339745 0.078688
-4.871900 55.799599 -6.765400 0.937220 -0.339745 0.078688
-4 0 1 2 3
-4 4 5 6 7
-3 8 9 10
-4 11 12 13 14
-4 15 16 17 18
-4 19 20 21 22
-4 23 24 25 26
-4 27 28 29 30
-4 31 32 33 34
-4 35 36 37 38
-4 39 40 41 42
-4 43 44 45 46
-3 47 48 49
-4 50 51 52 53
-4 54 55 56 57
-4 58 59 60 61
-4 62 63 64 65
-4 66 67 68 69
-4 70 71 72 73
-4 74 75 76 77
-3 78 79 80
-4 81 82 83 84
-3 85 86 87
-4 88 89 90 91
-3 92 93 94
-4 95 96 97 98
-4 99 100 101 102
-4 103 104 105 106
-4 107 108 109 110
-4 111 112 113 114
-4 115 116 117 118
-4 119 120 121 122
-4 123 124 125 126
-4 127 128 129 130
-4 131 132 133 134
-4 135 136 137 138
-3 139 140 141
-3 142 143 144
-4 145 146 147 148
-4 149 150 151 152
-4 153 154 155 156
-3 157 158 159
-3 160 161 162
-4 163 164 165 166
-4 167 168 169 170
-4 171 172 173 174
-3 175 176 177
-4 178 179 180 181
-4 182 183 184 185
-3 186 187 188
-3 189 190 191
-4 192 193 194 195
-4 196 197 198 199
-4 200 201 202 203
-4 204 205 206 207
-3 208 209 210
-3 211 212 213
-3 214 215 216
-4 217 218 219 220
-4 221 222 223 224
-3 225 226 227
-4 228 229 230 231
-4 232 233 234 235
-3 236 237 238
-3 239 240 241
-3 242 243 244
-3 245 246 247
-4 248 249 250 251
-4 252 253 254 255
-4 256 257 258 259
-4 260 261 262 263
-4 264 265 266 267
-4 268 269 270 271
-4 272 273 274 275
-4 276 277 278 279
-4 280 281 282 283
-3 284 285 286
-3 287 288 289
-4 290 291 292 293
-4 294 295 296 297
-4 298 299 300 301
-3 302 303 304
-4 305 306 307 308
-4 309 310 311 312
-4 313 314 315 316
-4 317 318 319 320
-4 321 322 323 324
-4 325 326 327 328
-4 329 330 331 332
-4 333 334 335 336
-4 337 338 339 340
-4 341 342 343 344
-4 345 346 347 348
-4 349 350 351 352
-3 353 354 355
-4 356 357 358 359
-4 360 361 362 363
-3 364 365 366
-4 367 368 369 370
-4 371 372 373 374
-3 375 376 377
-4 378 379 380 381
-3 382 383 384
-4 385 386 387 388
-4 389 390 391 392
-3 393 394 395
-4 396 397 398 399
-4 400 401 402 403
-4 404 405 406 407
-4 408 409 410 411
-4 412 413 414 415
-3 416 417 418
-3 419 420 421
-3 422 423 424
-4 425 426 427 428
-4 429 430 431 432
-3 433 434 435
-3 436 437 438
-4 439 440 441 442
-4 443 444 445 446
-3 447 448 449
-3 450 451 452
-4 453 454 455 456
-3 457 458 459
-3 460 461 462
-3 463 464 465
-4 466 467 468 469
-3 470 471 472
-4 473 474 475 476
-4 477 478 479 480
-4 481 482 483 484
-4 485 486 487 488
-4 489 490 491 492
-3 493 494 495
-4 496 497 498 499
-4 500 501 502 503
-4 504 505 506 507
-4 508 509 510 511
-3 512 513 514
-4 515 516 517 518
-4 519 520 521 522
-3 523 524 525
-3 526 527 528
-3 529 530 531
-4 532 533 534 535
-4 536 537 538 539
-4 540 541 542 543
-4 544 545 546 547
-3 548 549 550
-3 551 552 553
-4 554 555 556 557
-3 558 559 560
-4 561 562 563 564
-4 565 566 567 568
-4 569 570 571 572
-3 573 574 575
-4 576 577 578 579
-4 580 581 582 583
-4 584 585 586 587
-4 588 589 590 591
-4 592 593 594 595
-4 596 597 598 599
-4 600 601 602 603
-4 604 605 606 607
-4 608 609 610 611
-3 612 613 614
-4 615 616 617 618
-4 619 620 621 622
-4 623 624 625 626
-4 627 628 629 630
-4 631 632 633 634
-4 635 636 637 638
-4 639 640 641 642
-3 643 644 645
-4 646 647 648 649
-3 650 651 652
-4 653 654 655 656
-3 657 658 659
-4 660 661 662 663
-4 664 665 666 667
-4 668 669 670 671
-4 672 673 674 675
-4 676 677 678 679
-4 680 681 682 683
-4 684 685 686 687
-4 688 689 690 691
-4 692 693 694 695
-4 696 697 698 699
-4 700 701 702 703
-3 704 705 706
-3 707 708 709
-4 710 711 712 713
-4 714 715 716 717
-4 718 719 720 721
-3 722 723 724
-3 725 726 727
-4 728 729 730 731
-4 732 733 734 735
-4 736 737 738 739
-3 740 741 742
-4 743 744 745 746
-4 747 748 749 750
-3 751 752 753
-3 754 755 756
-4 757 758 759 760
-4 761 762 763 764
-4 765 766 767 768
-4 769 770 771 772
-3 773 774 775
-3 776 777 778
-3 779 780 781
-4 782 783 784 785
-4 786 787 788 789
-3 790 791 792
-4 793 794 795 796
-4 797 798 799 800
-3 801 802 803
-3 804 805 806
-3 807 808 809
-3 810 811 812
-4 813 814 815 816
-4 817 818 819 820
-4 821 822 823 824
-4 825 826 827 828
-4 829 830 831 832
-4 833 834 835 836
-4 837 838 839 840
-4 841 842 843 844
-4 845 846 847 848
-3 849 850 851
-3 852 853 854
-4 855 856 857 858
-4 859 860 861 862
-4 863 864 865 866
-3 867 868 869
-4 870 871 872 873
-4 874 875 876 877
-4 878 879 880 881
-4 882 883 884 885
-4 886 887 888 889
-4 890 891 892 893
-4 894 895 896 897
-4 898 899 900 901
-4 902 903 904 905
-4 906 907 908 909
-4 910 911 912 913
-4 914 915 916 917
-3 918 919 920
-4 921 922 923 924
-4 925 926 927 928
-3 929 930 931
-4 932 933 934 935
-4 936 937 938 939
-3 940 941 942
-4 943 944 945 946
-3 947 948 949
-4 950 951 952 953
-4 954 955 956 957
-3 958 959 960
-4 961 962 963 964
-4 965 966 967 968
-4 969 970 971 972
-4 973 974 975 976
-4 977 978 979 980
-3 981 982 983
-3 984 985 986
-3 987 988 989
-4 990 991 992 993
-4 994 995 996 997
-3 998 999 1000
-3 1001 1002 1003
-4 1004 1005 1006 1007
-4 1008 1009 1010 1011
-3 1012 1013 1014
-3 1015 1016 1017
-4 1018 1019 1020 1021
-3 1022 1023 1024
-3 1025 1026 1027
-3 463 1028 464
-4 1029 1030 1031 1032
-3 1033 1034 1035
-4 1036 1037 1038 1039
-4 1040 1041 1042 1043
-4 1044 1045 1046 1047
-4 1048 1049 1050 1051
-4 1052 1053 1054 1055
-3 1056 1057 1058
-4 1059 1060 1061 1062
-4 1063 1064 1065 1066
-4 1067 1068 1069 1070
-4 1071 1072 1073 1074
-3 1075 1076 1077
-4 1078 1079 1080 1081
-4 1082 1083 1084 1085
-3 1086 1087 1088
-3 1089 1090 1091
-4 1092 1093 1094 1095
-4 1096 1097 1098 1099
-4 1100 1101 1102 1103
-3 1104 1105 1106
-3 1107 1108 1109
-4 1110 1111 1112 1113
-4 1114 1115 1116 1117
-4 1118 1119 1120 1121
-4 1122 1123 1124 1125
-3 1126 1127 1128
-4 1129 1130 1131 1132
-4 1133 1134 1135 1136
-4 1137 1138 1139 1140
-4 1141 1142 1143 1144
-4 1145 1146 1147 1148
-4 1149 1150 1151 1152
-3 1153 1154 1155
-4 1156 1157 1158 1159
-3 1160 1161 1162
-4 1163 1164 1165 1166
-3 1167 1168 1169
-3 1170 1171 1172
-3 1173 1174 1175
-4 1176 1177 1178 1179
-3 1180 1181 1182
-3 1183 1184 1185
-4 1186 1187 1188 1189
-4 1190 1191 1192 1193
-4 1194 1195 1196 1197
-4 1198 1199 1200 1201
-3 1202 1203 1204
-4 1205 1206 1207 1208
-4 1209 1210 1211 1212
-4 1213 1214 1215 1216
-4 1217 1218 1219 1220
-4 1221 1222 1223 1224
-4 1225 1226 1227 1228
-3 1229 1230 1231
-4 1232 1233 1234 1235
-3 1236 1237 1238
-4 1239 1240 1241 1242
-3 1243 1244 1245
-3 1246 1247 1248
-3 1249 1250 1251
-3 1252 1253 1254
-3 1255 1256 1257
-4 1258 1259 1260 1261
-4 1262 1263 1264 1265
-4 1266 1267 1268 1269
-4 1270 1271 1272 1273
-4 1274 1275 1276 1277
-4 1278 1279 1280 1281
-3 1282 1283 1284
-4 1285 1286 1287 1288
-4 1289 1290 1291 1292
-4 1293 1294 1295 1296
-3 1297 1298 1299
-3 1300 1301 1302
-4 1303 1304 1305 1306
-3 1307 1308 1309
diff --git a/src/tests/evas/meshes/ply/Normal_UVs_Colors.ply b/src/tests/evas/meshes/ply/Normal_UVs_Colors.ply
deleted file mode 100644
index 797151afb1..0000000000
--- a/src/tests/evas/meshes/ply/Normal_UVs_Colors.ply
+++ /dev/null
@@ -1,1684 +0,0 @@
-ply
-format ascii 1.0
-comment Created by Blender 2.69 (sub 0) - www.blender.org, source file: ''
-element vertex 1310
-property float x
-property float y
-property float z
-property float nx
-property float ny
-property float nz
-property float s
-property float t
-property uchar red
-property uchar green
-property uchar blue
-element face 356
-property list uchar uint vertex_indices
-end_header
--4.649800 14.945700 -8.785600 -0.021734 0.023193 -0.999495 0.094400 0.185800 0 253 27
--2.020300 14.610600 -8.278800 -0.021734 0.023193 -0.999495 0.060000 0.185800 0 253 27
--1.712600 0.024900 -9.195700 -0.021734 0.023193 -0.999495 0.089900 0.023200 254 68 73
--3.252600 0.001600 -8.591000 -0.021734 0.023193 -0.999495 0.107400 0.025300 254 68 73
--4.649800 14.945700 -8.785600 -0.983809 -0.091724 -0.153967 0.094400 0.185800 254 68 73
--3.252600 0.001600 -8.591000 -0.983809 -0.091724 -0.153967 0.107400 0.025300 254 88 92
--4.089400 2.633000 -5.031300 -0.983809 -0.091724 -0.153967 0.145000 0.057700 254 68 73
--5.308800 13.910900 -3.738700 -0.983809 -0.091724 -0.153967 0.154100 0.185800 254 68 73
--1.553600 3.059500 -4.173500 0.398905 -0.098999 0.911633 0.181500 0.058600 18 0 253
--1.766900 13.754900 -2.918700 0.398905 -0.098999 0.911633 0.193300 0.185800 0 254 27
--3.061600 3.537800 -3.461700 0.398905 -0.098999 0.911633 0.164000 0.067400 18 0 252
--1.553600 3.059500 -4.173500 0.977159 -0.002648 0.212493 0.181500 0.058600 18 0 253
--0.626000 0.031700 -8.336200 0.977159 -0.002648 0.212493 0.220100 0.017000 19 0 253
--0.971400 14.644800 -6.706400 0.977159 -0.002648 0.212493 0.225200 0.185800 27 229 30
--1.766900 13.754900 -2.918700 0.977159 -0.002648 0.212493 0.193300 0.185800 0 253 27
--5.495700 46.043098 -6.732400 -0.860977 -0.085411 -0.501422 0.139900 0.788400 254 254 254
--2.827600 38.171799 -8.088300 -0.860977 -0.085411 -0.501422 0.114500 0.661600 254 254 254
--5.919200 37.619099 -4.570300 -0.860977 -0.085411 -0.501422 0.183200 0.661600 254 254 254
--6.029500 46.188801 -3.956000 -0.860977 -0.085411 -0.501422 0.183300 0.792100 254 254 254
--4.685700 36.664101 -1.616400 -0.917535 -0.032092 0.396359 0.239100 0.661600 13 240 28
--4.298500 47.001099 -0.058900 -0.917535 -0.032092 0.396359 0.249300 0.802400 5 247 27
--6.029500 46.188801 -3.956000 -0.917535 -0.032092 0.396359 0.183300 0.792100 0 253 27
--5.919200 37.619099 -4.570300 -0.917535 -0.032092 0.396359 0.183200 0.661600 0 253 27
--6.775800 50.206501 -7.534500 -0.223809 0.028781 -0.974208 0.134100 0.852600 0 254 27
--7.252500 54.524502 -7.615000 -0.223809 0.028781 -0.974208 0.126100 0.913200 0 254 27
-0.000000 53.738098 -8.986800 -0.223809 0.028781 -0.974208 0.028100 0.877800 0 254 27
-0.000000 50.037800 -9.413700 -0.223809 0.028781 -0.974208 0.041800 0.827300 0 254 27
--7.252500 54.524502 -7.615000 -0.375359 0.901424 0.215731 0.812300 0.981700 0 253 27
--8.747800 53.770199 -7.353300 -0.375359 0.901424 0.215731 0.807700 0.944900 0 253 27
--8.184300 53.108700 -3.320400 -0.375359 0.901424 0.215731 0.746000 0.944900 0 253 27
--6.624100 53.529800 -2.653700 -0.375359 0.901424 0.215731 0.746000 0.986600 0 253 27
--9.827700 52.989700 -7.188500 -0.412168 0.895237 0.169320 0.805500 0.922700 0 253 27
--14.989100 50.565300 -7.297200 -0.412168 0.895237 0.169320 0.805300 0.834400 0 253 27
--15.636800 49.715099 -4.015700 -0.412168 0.895237 0.169320 0.746000 0.809400 0 253 27
--9.508400 52.403099 -3.672700 -0.412168 0.895237 0.169320 0.746000 0.922700 0 253 27
-0.000000 37.009800 0.550700 -0.339751 -0.089043 0.936291 0.310700 0.661600 172 124 55
-0.000000 47.287498 1.094200 -0.339751 -0.089043 0.936291 0.310700 0.805700 0 252 27
--4.298500 47.001099 -0.058900 -0.339751 -0.089043 0.936291 0.249300 0.802400 0 253 27
--4.685700 36.664101 -1.616400 -0.339751 -0.089043 0.936291 0.239100 0.661600 13 226 40
-0.000000 53.738098 -8.986800 -0.139268 0.841727 -0.521633 0.028100 0.877800 0 254 27
--7.252500 54.524502 -7.615000 -0.139268 0.841727 -0.521633 0.126100 0.913200 0 254 27
--2.321200 55.471001 -5.570800 -0.139268 0.841727 -0.521633 0.053700 0.941000 0 254 27
-0.000000 55.950600 -7.250100 -0.139268 0.841727 -0.521633 0.022400 0.916300 0 254 27
--6.624100 53.529800 -2.653700 -0.510018 -0.190129 0.838888 0.210200 0.900400 0 253 27
--7.813100 49.342701 -3.886900 -0.510018 -0.190129 0.838888 0.181000 0.844200 0 253 27
--6.029500 46.188801 -3.956000 -0.510018 -0.190129 0.838888 0.183300 0.792100 0 253 27
--3.773800 51.093601 -1.034300 -0.510018 -0.190129 0.838888 0.256600 0.864400 0 253 27
--6.029500 46.188801 -3.956000 -0.909885 0.202901 0.361857 0.183300 0.792100 0 253 27
--4.298500 47.001099 -0.058900 -0.909885 0.202901 0.361857 0.249300 0.802400 5 247 27
--3.773800 51.093601 -1.034300 -0.909885 0.202901 0.361857 0.256600 0.864400 0 253 27
-0.000000 50.880199 0.110000 -0.266804 0.255185 0.929352 0.310700 0.860500 0 253 27
--3.773800 51.093601 -1.034300 -0.266804 0.255185 0.929352 0.256600 0.864400 0 253 27
--4.298500 47.001099 -0.058900 -0.266804 0.255185 0.929352 0.249300 0.802400 0 253 27
-0.000000 47.287498 1.094200 -0.266804 0.255185 0.929352 0.310700 0.805700 0 252 27
--16.136200 50.023998 -7.546200 0.129075 0.179950 -0.975171 0.808600 0.809400 0 249 27
--14.989100 50.565300 -7.297200 0.129075 0.179950 -0.975171 0.805300 0.834400 0 252 27
--13.779500 47.417198 -7.715300 0.129075 0.179950 -0.975171 0.879500 0.834400 0 253 27
--14.885000 46.974701 -7.946000 0.129075 0.179950 -0.975171 0.879500 0.809400 0 251 27
--13.779500 47.417198 -7.715300 0.437873 -0.882573 -0.171264 0.626900 0.829400 0 253 27
--8.756500 49.321098 -7.632900 0.437873 -0.882573 -0.171264 0.626900 0.922700 0 253 27
--8.927200 49.128502 -4.128200 0.437873 -0.882573 -0.171264 0.688900 0.922700 0 253 27
--14.977100 45.689201 -4.821000 0.437873 -0.882573 -0.171264 0.680000 0.809400 0 248 31
--17.208200 49.477699 -7.512200 -0.268622 0.938905 0.215175 0.810800 0.788400 0 253 27
--22.585199 48.327702 -7.594400 -0.268622 0.938905 0.215175 0.812700 0.705100 0 253 27
--22.348700 46.932201 -2.822400 -0.268622 0.938905 0.215175 0.746000 0.680200 72 195 37
--16.810101 49.139900 -3.928800 -0.268622 0.938905 0.215175 0.746000 0.788400 0 253 27
--21.936399 43.055199 -3.733600 0.256926 -0.186034 0.948357 0.691800 0.680200 24 182 75
--16.192200 44.960400 -4.877100 0.256926 -0.186034 0.948357 0.677700 0.788400 0 236 42
--16.810101 49.139900 -3.928800 0.256926 -0.186034 0.948357 0.746000 0.788400 0 253 27
--22.348700 46.932201 -2.822400 0.256926 -0.186034 0.948357 0.746000 0.680200 72 195 37
--22.105101 44.119598 -7.074000 -0.471869 -0.161034 -0.866838 0.862200 0.680200 254 254 254
--23.337700 47.268200 -6.945000 -0.471869 -0.161034 -0.866838 0.809900 0.680200 254 254 254
--22.585199 48.327702 -7.594400 -0.471869 -0.161034 -0.866838 0.812700 0.705100 254 254 254
--21.061199 44.183601 -7.611200 -0.471869 -0.161034 -0.866838 0.879500 0.705100 254 254 254
--15.884600 46.520500 -7.855800 0.312108 -0.901546 -0.299673 0.626900 0.788400 0 250 27
--16.192200 44.960400 -4.877100 0.312108 -0.901546 -0.299673 0.677700 0.788400 0 253 27
--21.936399 43.055199 -3.733600 0.312108 -0.901546 -0.299673 0.691800 0.680200 0 253 27
--21.061199 44.183601 -7.611200 0.312108 -0.901546 -0.299673 0.626900 0.699700 52 208 31
--5.598500 31.822901 -1.405400 -0.899226 0.141575 0.413943 0.185400 0.436500 133 152 48
--7.174300 32.815300 -5.168000 -0.899226 0.141575 0.413943 0.136400 0.440500 0 253 27
--7.453900 29.910801 -4.782000 -0.899226 0.141575 0.413943 0.143900 0.408700 0 253 27
--4.970000 33.082802 -8.871300 -0.875321 0.068314 -0.478692 0.086900 0.436600 0 253 27
--5.595300 29.761600 -8.491100 -0.875321 0.068314 -0.478692 0.097300 0.399700 0 253 27
--7.453900 29.910801 -4.782000 -0.875321 0.068314 -0.478692 0.143900 0.408700 0 253 27
--7.174300 32.815300 -5.168000 -0.875321 0.068314 -0.478692 0.136400 0.440500 0 253 27
--6.827700 20.858999 -3.051400 -0.895608 -0.345701 -0.279959 0.166500 0.297500 254 254 254
--5.426000 21.341299 -8.131100 -0.895608 -0.345701 -0.279959 0.106600 0.297500 254 254 254
--6.194700 19.576300 -3.492500 -0.895608 -0.345701 -0.279959 0.163400 0.285600 254 254 254
--0.835600 22.853901 -8.203000 -0.044062 0.086408 -0.995285 0.053300 0.313700 0 253 27
--0.899900 21.410400 -8.342700 -0.044062 0.086408 -0.995285 0.054900 0.297500 0 253 27
--5.426000 21.341299 -8.131100 -0.044062 0.086408 -0.995285 0.106600 0.297500 0 253 27
--5.317800 22.936800 -8.014600 -0.044062 0.086408 -0.995285 0.105500 0.313700 0 253 27
--0.899900 21.410400 -8.342700 0.986890 0.053202 0.152371 0.307200 0.297500 219 57 99
--1.957400 20.620800 -1.217700 0.986890 0.053202 0.152371 0.224300 0.297500 254 68 73
--1.853000 19.164200 -1.385300 0.986890 0.053202 0.152371 0.221600 0.281000 254 68 73
--6.194700 19.576300 -3.492500 -0.393090 -0.299033 0.869517 0.163400 0.285600 114 254 128
--1.853000 19.164200 -1.385300 -0.393090 -0.299033 0.869517 0.221600 0.281000 242 254 242
--1.957400 20.620800 -1.217700 -0.393090 -0.299033 0.869517 0.224300 0.297500 242 254 242
--6.827700 20.858999 -3.051400 -0.393090 -0.299033 0.869517 0.166500 0.297500 168 254 177
--5.259600 15.490400 -9.599400 0.139442 0.106302 -0.984508 0.090700 0.228600 0 253 27
--5.426000 21.341299 -8.131100 0.139442 0.106302 -0.984508 0.106600 0.297500 0 253 27
--0.899900 21.410400 -8.342700 0.139442 0.106302 -0.984508 0.054900 0.297500 0 253 27
--0.294400 16.169500 -7.962700 0.139442 0.106302 -0.984508 0.039600 0.241800 0 253 27
--0.294400 16.169500 -7.962700 0.977002 0.117101 0.178197 0.282300 0.223700 0 253 27
--0.899900 21.410400 -8.342700 0.977002 0.117101 0.178197 0.307200 0.297500 1 216 59
--1.853000 19.164200 -1.385300 0.977002 0.117101 0.178197 0.221600 0.281000 0 253 27
--1.221800 14.450400 -2.004100 0.977002 0.117101 0.178197 0.220300 0.236900 0 253 27
--1.853000 19.164200 -1.385300 -0.395956 -0.119778 0.910424 0.221600 0.281000 254 254 254
--6.194700 19.576300 -3.492500 -0.395956 -0.119778 0.910424 0.163400 0.285600 254 254 254
--6.498700 14.643000 -4.000600 -0.395956 -0.119778 0.910424 0.151700 0.232900 91 254 108
--1.221800 14.450400 -2.004100 -0.395956 -0.119778 0.910424 0.220300 0.236900 0 254 27
--6.498700 14.643000 -4.000600 -0.982418 0.045709 -0.181012 0.151700 0.232900 254 254 254
--6.194700 19.576300 -3.492500 -0.982418 0.045709 -0.181012 0.163400 0.285600 254 254 254
--5.426000 21.341299 -8.131100 -0.982418 0.045709 -0.181012 0.106600 0.297500 254 254 254
--5.259600 15.490400 -9.599400 -0.982418 0.045709 -0.181012 0.090700 0.228600 254 254 254
--7.813100 49.342701 -3.886900 -0.881229 -0.394976 -0.259672 0.181000 0.844200 254 68 73
--6.775800 50.206501 -7.534500 -0.881229 -0.394976 -0.259672 0.134100 0.852600 254 68 73
--5.495700 46.043098 -6.732400 -0.881229 -0.394976 -0.259672 0.139900 0.788400 254 68 73
--6.029500 46.188801 -3.956000 -0.881229 -0.394976 -0.259672 0.183300 0.792100 254 68 73
--8.756500 49.321098 -7.632900 0.341557 -0.936397 -0.080618 0.626900 0.922700 0 254 27
--6.775800 50.206501 -7.534500 0.341557 -0.936397 -0.080618 0.626900 0.944900 0 254 27
--7.813100 49.342701 -3.886900 0.341557 -0.936397 -0.080618 0.686800 0.944900 0 254 27
--8.927200 49.128502 -4.128200 0.341557 -0.936397 -0.080618 0.688900 0.922700 0 254 27
--5.495700 46.043098 -6.732400 -0.295037 -0.218453 -0.930178 0.139900 0.788400 0 254 27
--6.775800 50.206501 -7.534500 -0.295037 -0.218453 -0.930178 0.134100 0.852600 0 254 27
-0.000000 50.037800 -9.413700 -0.295037 -0.218453 -0.930178 0.041800 0.827300 0 254 27
-0.000000 45.235802 -8.516300 -0.295037 -0.218453 -0.930178 0.061400 0.762800 0 254 27
--3.773800 51.093601 -1.034300 -0.217879 0.518058 0.827130 0.256600 0.864400 0 253 27
-0.000000 50.880199 0.110000 -0.217879 0.518058 0.827130 0.310700 0.860500 0 253 27
-0.000000 54.522099 -2.187600 -0.217879 0.518058 0.827130 0.310700 0.919600 0 253 27
--1.435700 55.057400 -2.884500 -0.217879 0.518058 0.827130 0.285800 0.931400 0 253 27
--0.163800 60.672798 0.405300 -0.878123 0.172158 0.446386 0.529100 0.200900 0 254 27
--0.596000 60.268700 -0.255900 -0.878123 0.172158 0.446386 0.502600 0.185300 0 254 27
--0.605400 59.453602 0.006800 -0.878123 0.172158 0.446386 0.508800 0.156900 0 254 27
--0.226300 59.631802 0.717000 -0.878123 0.172158 0.446386 0.529800 0.167300 0 254 27
-0.000000 59.375900 0.272700 -0.351825 0.003851 0.936058 0.533800 0.153800 0 254 27
--0.605400 59.453602 0.006800 -0.351825 0.003851 0.936058 0.508800 0.156900 0 254 27
--0.793500 58.611801 -0.022400 -0.351825 0.003851 0.936058 0.506200 0.129800 0 254 27
-0.000000 58.735298 0.237300 -0.351825 0.003851 0.936058 0.533800 0.134400 0 253 27
--1.340700 61.343498 -1.024900 -0.500896 0.173312 0.847978 0.467800 0.231800 254 254 254
--2.209500 61.230499 -1.515000 -0.500896 0.173312 0.847978 0.430900 0.227000 254 254 254
--2.225300 60.301201 -1.334400 -0.500896 0.173312 0.847978 0.434400 0.187400 254 254 254
--0.474100 61.294899 -0.607800 -0.419394 -0.893935 0.158081 0.499900 0.227200 254 254 254
--0.179900 61.274700 0.058500 -0.419394 -0.893935 0.158081 0.525600 0.223900 254 254 254
--0.785400 61.539799 -0.048800 -0.419394 -0.893935 0.158081 0.505500 0.247600 254 254 254
--0.163800 60.672798 0.405300 -0.879737 0.234636 0.413532 0.529100 0.200900 0 254 27
--0.179900 61.274700 0.058500 -0.879737 0.234636 0.413532 0.525600 0.223900 0 254 27
--0.474100 61.294899 -0.607800 -0.879737 0.234636 0.413532 0.499900 0.227200 0 254 27
--0.596000 60.268700 -0.255900 -0.879737 0.234636 0.413532 0.502600 0.185300 0 254 27
--0.785400 61.539799 -0.048800 -0.405349 0.400850 0.821591 0.505500 0.247600 0 254 27
-0.000000 62.775902 -0.355700 -0.405349 0.400850 0.821591 0.533900 0.286800 0 254 27
--1.901400 62.898899 -1.262500 -0.405349 0.400850 0.821591 0.451600 0.287500 0 254 27
--1.792100 61.563202 -0.648200 -0.405349 0.400850 0.821591 0.464300 0.250800 0 254 27
--1.901400 62.898899 -1.262500 -0.958885 0.139689 0.247034 0.451600 0.287500 254 254 254
--2.505800 61.413601 -3.333900 -0.958885 0.139689 0.247034 0.367200 0.240300 254 254 254
--2.209500 61.230499 -1.515000 -0.958885 0.139689 0.247034 0.430900 0.227000 254 254 254
--1.792100 61.563202 -0.648200 -0.958885 0.139689 0.247034 0.464300 0.250800 254 254 254
--2.071800 58.080299 -1.837600 -0.982605 0.010378 0.185418 0.435700 0.090000 254 254 254
--2.043500 58.694401 -1.722000 -0.982605 0.010378 0.185418 0.434700 0.119000 254 254 254
--2.361600 58.652599 -3.405400 -0.982605 0.010378 0.185418 0.376100 0.111600 254 254 254
--2.361600 58.652599 -3.405400 -0.835615 -0.547438 -0.045374 0.376100 0.111600 254 254 254
--1.480400 57.287800 -3.167400 -0.835615 -0.547438 -0.045374 0.388000 0.054100 254 254 254
--2.071800 58.080299 -1.837600 -0.835615 -0.547438 -0.045374 0.435700 0.090000 254 254 254
--2.361600 58.652599 -3.405400 -0.962379 -0.178153 0.205154 0.376100 0.111600 254 254 254
--2.043500 58.694401 -1.722000 -0.962379 -0.178153 0.205154 0.434700 0.119000 254 254 254
--2.225300 60.301201 -1.334400 -0.962379 -0.178153 0.205154 0.434400 0.187400 254 254 254
--2.484800 60.667999 -2.078300 -0.962379 -0.178153 0.205154 0.409600 0.193000 254 254 254
--0.596000 60.268700 -0.255900 -0.569338 0.180881 0.801958 0.502600 0.185300 0 254 27
--2.225300 60.301201 -1.334400 -0.569338 0.180881 0.801958 0.434400 0.187400 0 254 27
--0.793500 58.611801 -0.022400 -0.569338 0.180881 0.801958 0.506200 0.129800 0 254 27
--0.605400 59.453602 0.006800 -0.569338 0.180881 0.801958 0.508800 0.156900 0 254 27
--0.793500 58.611801 -0.022400 -0.424783 -0.113068 0.898207 0.506200 0.129800 0 254 27
--0.860300 57.339199 -0.345300 -0.424783 -0.113068 0.898207 0.507000 0.087800 0 253 27
-0.000000 57.320400 0.190300 -0.424783 -0.113068 0.898207 0.533800 0.095300 0 253 27
-0.000000 58.735298 0.237300 -0.424783 -0.113068 0.898207 0.533800 0.134400 0 253 27
--2.361600 58.652599 -3.405400 -0.801295 -0.555920 -0.221086 0.376100 0.111600 254 254 254
--1.507500 57.978802 -4.806700 -0.801295 -0.555920 -0.221086 0.327200 0.071700 254 254 254
--1.480400 57.287800 -3.167400 -0.801295 -0.555920 -0.221086 0.388000 0.054100 254 254 254
--1.480400 57.287800 -3.167400 -0.605736 -0.042761 0.794516 0.293600 0.962800 254 153 157
--1.435700 55.057400 -2.884500 -0.605736 -0.042761 0.794516 0.285800 0.931400 244 75 71
-0.000000 54.522099 -2.187600 -0.605736 -0.042761 0.794516 0.310700 0.919600 235 81 69
--0.509500 56.862801 -2.081200 -0.605736 -0.042761 0.794516 0.307800 0.953500 254 129 132
--1.435700 55.057400 -2.884500 -0.962522 0.132164 0.236820 0.285800 0.931400 254 68 73
--1.480400 57.287800 -3.167400 -0.962522 0.132164 0.236820 0.293600 0.962800 254 68 73
--1.507500 57.978802 -4.806700 -0.962522 0.132164 0.236820 0.269900 0.982500 254 68 73
--2.321200 55.471001 -5.570800 -0.962522 0.132164 0.236820 0.259500 0.968000 254 68 73
--5.259600 15.490400 -9.599400 0.329887 -0.177209 -0.927239 0.090700 0.228600 0 253 27
--0.294400 16.169500 -7.962700 0.329887 -0.177209 -0.927239 0.039600 0.241800 0 253 27
--2.020300 14.610600 -8.278800 0.329887 -0.177209 -0.927239 0.063600 0.221000 0 253 27
--0.294400 16.169500 -7.962700 0.923351 -0.382504 0.033356 0.282300 0.223700 157 130 53
--1.221800 14.450400 -2.004100 0.923351 -0.382504 0.033356 0.220300 0.236900 0 252 27
--0.971400 14.644800 -6.706400 0.923351 -0.382504 0.033356 0.253200 0.212300 27 229 30
--5.308800 13.910900 -3.738700 -0.281184 -0.501171 0.818391 0.168700 0.220700 23 254 48
--1.766900 13.754900 -2.918700 -0.281184 -0.501171 0.818391 0.216900 0.223600 0 254 27
--1.221800 14.450400 -2.004100 -0.281184 -0.501171 0.818391 0.220300 0.236900 0 254 27
--6.498700 14.643000 -4.000600 -0.281184 -0.501171 0.818391 0.151700 0.232900 91 254 108
--4.649800 14.945700 -8.785600 -0.465679 -0.853476 -0.233927 0.103500 0.222700 254 68 73
--5.308800 13.910900 -3.738700 -0.465679 -0.853476 -0.233927 0.168700 0.220700 254 68 73
--6.498700 14.643000 -4.000600 -0.465679 -0.853476 -0.233927 0.151700 0.232900 254 68 73
--5.259600 15.490400 -9.599400 -0.465679 -0.853476 -0.233927 0.090700 0.228600 254 68 73
--1.957400 20.620800 -1.217700 0.981627 0.066418 0.178877 0.224300 0.297500 0 253 27
--0.899900 21.410400 -8.342700 0.981627 0.066418 0.178877 0.307200 0.297500 1 216 59
--0.835600 22.853901 -8.203000 0.981627 0.066418 0.178877 0.306600 0.313700 2 205 69
--2.189200 21.987900 -1.481800 0.981627 0.066418 0.178877 0.225500 0.313700 0 253 27
--7.174300 32.815300 -5.168000 -0.882053 0.156893 -0.444261 0.136400 0.440500 0 253 27
--6.542300 35.480598 -4.902800 -0.882053 0.156893 -0.444261 0.133600 0.471500 0 253 27
--5.283200 35.952900 -7.814600 -0.882053 0.156893 -0.444261 0.094100 0.470900 0 254 27
--4.970000 33.082802 -8.871300 -0.882053 0.156893 -0.444261 0.086900 0.436600 0 253 27
--5.598500 31.822901 -1.405400 -0.892193 0.169920 0.418473 0.185400 0.436500 133 152 48
--6.542300 35.480598 -4.902800 -0.892193 0.169920 0.418473 0.133600 0.471500 0 253 27
--7.174300 32.815300 -5.168000 -0.892193 0.169920 0.418473 0.136400 0.440500 0 253 27
--4.685700 36.664101 -1.616400 -0.474113 0.127364 0.871203 0.239100 0.661600 13 226 40
--5.598500 31.822901 -1.405400 -0.474113 0.127364 0.871203 0.231500 0.582200 133 152 48
--3.798500 31.552500 -0.386300 -0.474113 0.127364 0.871203 0.257600 0.582200 211 97 63
--2.225300 60.301201 -1.334400 -0.926529 0.086891 0.366052 0.434400 0.187400 254 254 254
--2.209500 61.230499 -1.515000 -0.926529 0.086891 0.366052 0.430900 0.227000 254 254 254
--2.484800 60.667999 -2.078300 -0.926529 0.086891 0.366052 0.409600 0.193000 254 254 254
--8.927200 49.128502 -4.128200 -0.174303 -0.164506 0.970853 0.688900 0.922700 0 253 27
--7.813100 49.342701 -3.886900 -0.174303 -0.164506 0.970853 0.686800 0.944900 0 253 27
--8.184300 53.108700 -3.320400 -0.174303 -0.164506 0.970853 0.746000 0.944900 0 253 27
--9.508400 52.403099 -3.672700 -0.174303 -0.164506 0.970853 0.746000 0.922700 0 253 27
--8.184300 53.108700 -3.320400 -0.526523 0.826719 0.198265 0.746000 0.944900 0 253 27
--8.747800 53.770199 -7.353300 -0.526523 0.826719 0.198265 0.807700 0.944900 0 253 27
--9.827700 52.989700 -7.188500 -0.526523 0.826719 0.198265 0.805500 0.922700 0 253 27
--9.508400 52.403099 -3.672700 -0.526523 0.826719 0.198265 0.746000 0.922700 0 253 27
--8.747800 53.770199 -7.353300 -0.154881 -0.035505 -0.987295 0.807700 0.944900 0 254 27
--7.252500 54.524502 -7.615000 -0.154881 -0.035505 -0.987295 0.812300 0.981700 0 254 27
--6.775800 50.206501 -7.534500 -0.154881 -0.035505 -0.987295 0.879500 0.944900 0 254 27
--8.927200 49.128502 -4.128200 0.001669 -0.169906 0.985459 0.688900 0.922700 0 253 27
--9.508400 52.403099 -3.672700 0.001669 -0.169906 0.985459 0.746000 0.922700 0 253 27
--15.636800 49.715099 -4.015700 0.001669 -0.169906 0.985459 0.746000 0.809400 0 253 27
--14.977100 45.689201 -4.821000 0.001669 -0.169906 0.985459 0.680000 0.809400 0 248 31
--6.624100 53.529800 -2.653700 -0.215818 0.814400 0.538680 0.210200 0.900400 0 253 27
--3.773800 51.093601 -1.034300 -0.215818 0.814400 0.538680 0.256600 0.864400 0 253 27
--1.435700 55.057400 -2.884500 -0.215818 0.814400 0.538680 0.285800 0.931400 0 253 27
--7.252500 54.524502 -7.615000 -0.215818 0.814400 0.538680 0.180400 0.964800 0 253 27
--2.321200 55.471001 -5.570800 -0.276118 0.932071 0.234526 0.259500 0.968000 0 253 27
--7.252500 54.524502 -7.615000 -0.276118 0.932071 0.234526 0.180400 0.964800 0 253 27
--1.435700 55.057400 -2.884500 -0.276118 0.932071 0.234526 0.285800 0.931400 0 253 27
--2.209500 61.230499 -1.515000 -0.942806 0.279456 0.181716 0.430900 0.227000 254 254 254
--2.505800 61.413601 -3.333900 -0.942806 0.279456 0.181716 0.362700 0.212700 254 254 254
--2.484800 60.667999 -2.078300 -0.942806 0.279456 0.181716 0.409600 0.193000 254 254 254
--2.484800 60.667999 -2.078300 -0.998559 -0.051788 -0.014052 0.409600 0.193000 254 254 254
--2.505800 61.413601 -3.333900 -0.998559 -0.051788 -0.014052 0.362700 0.212700 254 254 254
--2.361600 58.652599 -3.405400 -0.998559 -0.051788 -0.014052 0.376100 0.111600 254 254 254
--2.209500 61.230499 -1.515000 -0.107977 -0.909631 0.401138 0.430900 0.227000 254 254 254
--1.340700 61.343498 -1.024900 -0.107977 -0.909631 0.401138 0.467800 0.231800 254 254 254
--1.792100 61.563202 -0.648200 -0.107977 -0.909631 0.401138 0.464300 0.250800 254 254 254
--3.061600 3.537800 -3.461700 0.234488 0.898953 0.369997 0.290200 0.071700 18 0 252
--3.735600 1.816900 0.228400 0.234488 0.898953 0.369997 0.290200 0.030700 18 0 253
--1.568700 1.981700 -0.627100 0.234488 0.898953 0.369997 0.308400 0.040400 18 0 253
--1.553600 3.059500 -4.173500 0.234488 0.898953 0.369997 0.310400 0.073900 18 0 253
--0.626000 0.031700 -8.336200 0.992053 0.072189 0.103052 0.345300 0.097200 18 0 253
--1.553600 3.059500 -4.173500 0.992053 0.072189 0.103052 0.310400 0.073900 18 0 253
--1.568700 1.981700 -0.627100 0.992053 0.072189 0.103052 0.308400 0.040400 18 0 253
--1.825200 -0.024100 0.601200 0.992053 0.072189 0.103052 0.313500 0.023800 18 0 253
--1.825200 -0.024100 0.601200 -0.002195 -0.999985 -0.005027 0.748300 0.055100 18 0 253
--3.769300 -0.009000 1.132900 -0.002195 -0.999985 -0.005027 0.765800 0.040900 18 0 253
--1.712600 0.024900 -9.195700 -0.002195 -0.999985 -0.005027 0.765100 0.147100 19 0 253
--0.626000 0.031700 -8.336200 -0.002195 -0.999985 -0.005027 0.751000 0.138000 19 0 253
--1.712600 0.024900 -9.195700 0.748722 0.074200 -0.658719 0.089900 0.023200 254 68 73
--2.020300 14.610600 -8.278800 0.748722 0.074200 -0.658719 0.060000 0.185800 0 253 27
--0.971400 14.644800 -6.706400 0.748722 0.074200 -0.658719 0.025900 0.185800 0 253 27
--0.626000 0.031700 -8.336200 0.748722 0.074200 -0.658719 0.075600 0.021500 254 68 73
--1.568700 1.981700 -0.627100 0.270273 0.452545 0.849798 0.308400 0.040400 18 0 253
--3.735600 1.816900 0.228400 0.270273 0.452545 0.849798 0.290200 0.030700 18 0 253
--3.769300 -0.009000 1.132900 0.270273 0.452545 0.849798 0.289700 0.012400 18 0 253
--1.825200 -0.024100 0.601200 0.270273 0.452545 0.849798 0.313500 0.023800 19 0 253
--4.089400 2.633000 -5.031300 -0.957442 -0.073711 -0.279054 0.275500 0.071900 188 254 194
--3.252600 0.001600 -8.591000 -0.957442 -0.073711 -0.279054 0.238500 0.103000 0 254 27
--5.176800 -0.025000 -0.598300 -0.957442 -0.073711 -0.279054 0.266200 0.023600 254 254 254
--5.390300 1.568200 -1.670300 -0.957442 -0.073711 -0.279054 0.274000 0.039600 254 254 254
--3.769300 -0.009000 1.132900 -0.738109 0.308147 0.600201 0.289700 0.012400 18 0 253
--3.735600 1.816900 0.228400 -0.738109 0.308147 0.600201 0.290200 0.030700 18 0 253
--5.390300 1.568200 -1.670300 -0.738109 0.308147 0.600201 0.274000 0.039600 18 0 253
--5.176800 -0.025000 -0.598300 -0.738109 0.308147 0.600201 0.266200 0.023600 18 0 253
--5.390300 1.568200 -1.670300 -0.560649 0.811720 0.163660 0.274000 0.039600 18 0 253
--3.735600 1.816900 0.228400 -0.560649 0.811720 0.163660 0.290200 0.030700 18 0 253
--3.061600 3.537800 -3.461700 -0.560649 0.811720 0.163660 0.290200 0.071700 18 0 252
--4.089400 2.633000 -5.031300 -0.560649 0.811720 0.163660 0.275500 0.071900 18 0 252
--3.061600 3.537800 -3.461700 -0.452521 -0.074303 0.888653 0.164000 0.067400 18 0 252
--1.766900 13.754900 -2.918700 -0.452521 -0.074303 0.888653 0.193300 0.185800 0 254 27
--5.308800 13.910900 -3.738700 -0.452521 -0.074303 0.888653 0.154100 0.185800 14 254 41
--4.089400 2.633000 -5.031300 -0.452521 -0.074303 0.888653 0.145000 0.057700 18 0 252
--2.020300 14.610600 -8.278800 0.001520 -0.830500 -0.557017 0.063600 0.221000 0 253 27
--4.649800 14.945700 -8.785600 0.001520 -0.830500 -0.557017 0.103500 0.222700 0 253 27
--5.259600 15.490400 -9.599400 0.001520 -0.830500 -0.557017 0.090700 0.228600 0 253 27
--2.020300 14.610600 -8.278800 0.649568 -0.634088 -0.419515 0.063600 0.221000 0 253 27
--0.294400 16.169500 -7.962700 0.649568 -0.634088 -0.419515 0.039600 0.241800 0 253 27
--0.971400 14.644800 -6.706400 0.649568 -0.634088 -0.419515 0.028400 0.216500 0 253 27
--5.426000 21.341299 -8.131100 -0.959570 0.028386 -0.280036 0.106600 0.297500 254 254 254
--6.827700 20.858999 -3.051400 -0.959570 0.028386 -0.280036 0.166500 0.297500 254 254 254
--6.824000 22.193899 -3.254300 -0.959570 0.028386 -0.280036 0.165700 0.313700 254 254 254
--5.317800 22.936800 -8.014600 -0.959570 0.028386 -0.280036 0.105500 0.313700 254 254 254
--0.845100 29.891001 -9.491500 -0.126028 -0.127868 -0.983751 0.041700 0.395800 0 253 27
--0.835600 22.853901 -8.203000 -0.126028 -0.127868 -0.983751 0.053300 0.313700 0 253 27
--5.317800 22.936800 -8.014600 -0.126028 -0.127868 -0.983751 0.105500 0.313700 0 253 27
--5.595300 29.761600 -8.491100 -0.126028 -0.127868 -0.983751 0.097300 0.399700 0 254 27
--1.957400 20.620800 -1.217700 -0.346283 0.131313 0.928895 0.224300 0.297500 242 254 242
--2.189200 21.987900 -1.481800 -0.346283 0.131313 0.928895 0.225500 0.313700 218 254 222
--6.824000 22.193899 -3.254300 -0.346283 0.131313 0.928895 0.165700 0.313700 99 254 117
--6.827700 20.858999 -3.051400 -0.346283 0.131313 0.928895 0.166500 0.297500 166 254 175
--0.605400 59.453602 0.006800 -0.276378 -0.886938 0.370075 0.508800 0.156900 254 254 254
-0.000000 59.375900 0.272700 -0.276378 -0.886938 0.370075 0.533800 0.153800 254 254 254
--0.226300 59.631802 0.717000 -0.276378 -0.886938 0.370075 0.529800 0.167300 254 254 254
--21.936399 43.055199 -3.733600 -0.245050 -0.199318 0.948801 0.691800 0.680200 24 182 75
--22.348700 46.932201 -2.822400 -0.245050 -0.199318 0.948801 0.746000 0.680200 72 195 37
--23.323000 46.228001 -3.425200 -0.245050 -0.199318 0.948801 0.746000 0.661900 26 230 29
--23.265499 44.290199 -3.614200 -0.245050 -0.199318 0.948801 0.710900 0.661900 37 214 37
--22.105101 44.119598 -7.074000 -0.680722 -0.210597 -0.701617 0.862200 0.680200 254 254 254
--23.273100 44.479099 -6.170500 -0.680722 -0.210597 -0.701617 0.835600 0.661900 254 254 254
--23.881300 46.267799 -5.995500 -0.680722 -0.210597 -0.701617 0.800900 0.661900 254 254 254
--23.337700 47.268200 -6.945000 -0.680722 -0.210597 -0.701617 0.809900 0.680200 254 254 254
--22.348700 46.932201 -2.822400 -0.710630 0.673907 0.202126 0.746000 0.680200 72 195 37
--23.337700 47.268200 -6.945000 -0.710630 0.673907 0.202126 0.809900 0.680200 0 254 27
--23.881300 46.267799 -5.995500 -0.710630 0.673907 0.202126 0.800900 0.661900 0 253 27
--23.323000 46.228001 -3.425200 -0.710630 0.673907 0.202126 0.746000 0.661900 26 230 29
--21.936399 43.055199 -3.733600 -0.575702 -0.803125 -0.153486 0.691800 0.680200 254 68 73
--23.265499 44.290199 -3.614200 -0.575702 -0.803125 -0.153486 0.710900 0.661900 254 68 73
--23.273100 44.479099 -6.170500 -0.575702 -0.803125 -0.153486 0.665900 0.661900 254 68 73
--22.105101 44.119598 -7.074000 -0.575702 -0.803125 -0.153486 0.641700 0.680200 254 68 73
--23.323000 46.228001 -3.425200 0.234519 0.052147 0.970712 0.746000 0.661900 26 230 29
--24.935400 45.742901 -3.288800 0.234519 0.052147 0.970712 0.746000 0.630500 80 189 39
--24.446100 44.099098 -3.039500 0.234519 0.052147 0.970712 0.723200 0.630500 144 136 53
--23.265499 44.290199 -3.614200 0.234519 0.052147 0.970712 0.710900 0.661900 37 214 37
--23.273100 44.479099 -6.170500 -0.051663 0.047611 -0.997529 0.835600 0.661900 16 254 41
--25.718901 44.407902 -5.989100 -0.051663 0.047611 -0.997529 0.812100 0.630500 47 254 71
--25.982700 45.641201 -5.974700 -0.051663 0.047611 -0.997529 0.796200 0.630500 53 254 75
--23.881300 46.267799 -5.995500 -0.051663 0.047611 -0.997529 0.800900 0.661900 23 254 48
--23.881300 46.267799 -5.995500 -0.283035 0.956157 0.075198 0.800900 0.661900 0 253 27
--25.982700 45.641201 -5.974700 -0.283035 0.956157 0.075198 0.796200 0.630500 0 253 27
--24.935400 45.742901 -3.288800 -0.283035 0.956157 0.075198 0.746000 0.630500 80 189 39
--23.323000 46.228001 -3.425200 -0.283035 0.956157 0.075198 0.746000 0.661900 26 230 29
--23.265499 44.290199 -3.614200 0.050680 -0.993534 -0.101596 0.710900 0.661900 0 254 27
--24.446100 44.099098 -3.039500 0.050680 -0.993534 -0.101596 0.723200 0.630500 0 254 27
--25.718901 44.407902 -5.989100 0.050680 -0.993534 -0.101596 0.677100 0.630500 47 254 71
--23.273100 44.479099 -6.170500 0.050680 -0.993534 -0.101596 0.665900 0.661900 16 254 41
--3.798500 31.552500 -0.386300 -0.302820 0.047342 0.951871 0.257600 0.582200 211 97 63
-0.000000 31.552500 0.128500 -0.302820 0.047342 0.951871 0.310700 0.582200 203 101 62
-0.000000 37.009800 0.550700 -0.302820 0.047342 0.951871 0.310700 0.661600 172 124 55
--4.685700 36.664101 -1.616400 -0.302820 0.047342 0.951871 0.239100 0.661600 13 226 40
--27.058001 43.733101 -1.471100 -0.612973 -0.035197 0.789319 0.783900 0.527900 254 68 73
--28.100901 44.177299 -2.470000 -0.612973 -0.035197 0.789319 0.756100 0.537200 231 80 64
--27.637899 42.321201 -1.984400 -0.612973 -0.035197 0.789319 0.780200 0.502700 254 68 73
--26.775499 43.007000 -1.492900 -0.612973 -0.035197 0.789319 0.799700 0.523000 254 68 73
--27.102699 45.320202 -5.735100 -0.288380 -0.175341 -0.941325 0.706300 0.587600 75 254 93
--25.982700 45.641201 -5.974700 -0.288380 -0.175341 -0.941325 0.701400 0.609900 53 254 75
--25.718901 44.407902 -5.989100 -0.288380 -0.175341 -0.941325 0.674700 0.592000 47 254 71
--26.246300 42.901402 -5.383600 -0.288380 -0.175341 -0.941325 0.663100 0.553800 20 254 46
--24.935400 45.742901 -3.288800 -0.215944 0.976143 0.022647 0.774000 0.616500 80 254 99
--25.982700 45.641201 -5.974700 -0.215944 0.976143 0.022647 0.701400 0.609900 0 254 27
--27.102699 45.320202 -5.735100 -0.215944 0.976143 0.022647 0.706300 0.587600 0 254 27
--26.753901 45.398300 -2.858600 -0.215944 0.976143 0.022647 0.766000 0.574200 163 254 174
--24.446100 44.099098 -3.039500 0.806467 -0.440747 -0.394147 0.815000 0.599300 0 249 30
--26.246300 42.901402 -5.383600 0.806467 -0.440747 -0.394147 0.880100 0.569900 19 213 43
--25.718901 44.407902 -5.989100 0.806467 -0.440747 -0.394147 0.885900 0.607200 46 208 34
--28.380600 42.330502 -3.056600 -0.840529 -0.044209 0.539960 0.741600 0.498200 254 68 73
--27.637899 42.321201 -1.984400 -0.840529 -0.044209 0.539960 0.780200 0.502700 254 68 73
--28.100901 44.177299 -2.470000 -0.840529 -0.044209 0.539960 0.756100 0.537200 254 68 73
--28.697901 44.238201 -3.477500 -0.840529 -0.044209 0.539960 0.737900 0.538900 254 68 73
--28.380600 42.330502 -3.056600 -0.979149 -0.175223 -0.102788 0.741600 0.498200 254 254 254
--28.697901 44.238201 -3.477500 -0.979149 -0.175223 -0.102788 0.737900 0.538900 254 254 254
--28.543800 44.178001 -4.651400 -0.979149 -0.175223 -0.102788 0.718600 0.545700 254 254 254
--28.292801 42.543098 -4.446800 -0.979149 -0.175223 -0.102788 0.704200 0.514300 254 254 254
--26.753901 45.398300 -2.858600 -0.560189 0.737837 0.376544 0.766000 0.574200 163 125 53
--28.697901 44.238201 -3.477500 -0.560189 0.737837 0.376544 0.737900 0.538900 97 175 41
--28.100901 44.177299 -2.470000 -0.560189 0.737837 0.376544 0.756100 0.537200 231 80 64
--24.935400 45.742901 -3.288800 0.484106 0.321222 0.813915 0.774000 0.616500 80 189 39
--26.117701 44.487900 -2.198700 0.484106 0.321222 0.813915 0.788200 0.565100 242 74 67
--25.587200 43.557701 -2.038700 0.484106 0.321222 0.813915 0.806300 0.556900 253 67 73
--24.446100 44.099098 -3.039500 0.484106 0.321222 0.813915 0.815000 0.599300 144 136 53
--24.446100 44.099098 -3.039500 0.765721 -0.642695 -0.024780 0.815000 0.599300 0 249 30
--25.587200 43.557701 -2.038700 0.765721 -0.642695 -0.024780 0.806300 0.556900 0 252 27
--25.491899 42.827301 -2.370100 0.765721 -0.642695 -0.024780 0.813300 0.554500 0 245 34
--26.246300 42.901402 -5.383600 0.765721 -0.642695 -0.024780 0.880100 0.569900 19 213 43
--26.753901 45.398300 -2.858600 0.068715 0.616533 0.784324 0.766000 0.574200 163 125 53
--26.117701 44.487900 -2.198700 0.068715 0.616533 0.784324 0.788200 0.565100 242 74 67
--24.935400 45.742901 -3.288800 0.068715 0.616533 0.784324 0.774000 0.616500 80 189 39
-0.000000 31.552500 0.128500 -0.069551 -0.031626 0.997077 0.310700 0.582200 203 101 62
--3.798500 31.552500 -0.386300 -0.069551 -0.031626 0.997077 0.257600 0.582200 211 97 63
--3.463700 23.872801 -0.356700 -0.069551 -0.031626 0.997077 0.261000 0.472800 254 68 73
-0.000000 24.132099 -0.356700 -0.069551 -0.031626 0.997077 0.310700 0.472800 243 74 70
--2.225300 60.301201 -1.334400 -0.789816 -0.226827 0.569860 0.434400 0.187400 254 254 254
--2.043500 58.694401 -1.722000 -0.789816 -0.226827 0.569860 0.434700 0.119000 254 247 247
--0.793500 58.611801 -0.022400 -0.789816 -0.226827 0.569860 0.506200 0.129800 254 246 246
--0.793500 58.611801 -0.022400 -0.800106 -0.097243 0.591924 0.506200 0.129800 254 246 246
--2.043500 58.694401 -1.722000 -0.800106 -0.097243 0.591924 0.434700 0.119000 254 247 247
--2.071800 58.080299 -1.837600 -0.800106 -0.097243 0.591924 0.435700 0.090000 254 224 225
--0.860300 57.339199 -0.345300 -0.800106 -0.097243 0.591924 0.507000 0.087800 254 172 174
--2.071800 58.080299 -1.837600 -0.594038 -0.791272 0.144939 0.435700 0.090000 254 224 225
--1.480400 57.287800 -3.167400 -0.594038 -0.791272 0.144939 0.435700 0.022900 254 153 157
--0.509500 56.862801 -2.081200 -0.594038 -0.791272 0.144939 0.497100 0.026700 254 129 132
--0.860300 57.339199 -0.345300 -0.594038 -0.791272 0.144939 0.507000 0.087800 254 172 174
--0.179900 61.274700 0.058500 -0.090663 0.188705 0.977840 0.525600 0.223900 0 254 27
-0.000000 61.912998 -0.048000 -0.090663 0.188705 0.977840 0.533800 0.254400 0 254 27
--0.785400 61.539799 -0.048800 -0.090663 0.188705 0.977840 0.505500 0.247600 0 254 27
--15.884600 46.520500 -7.855800 -0.098387 0.080586 -0.991880 0.879500 0.788400 0 250 27
--17.208200 49.477699 -7.512200 -0.098387 0.080586 -0.991880 0.810800 0.788400 6 242 27
--16.136200 50.023998 -7.546200 -0.098387 0.080586 -0.991880 0.808600 0.809400 0 249 27
--14.885000 46.974701 -7.946000 -0.098387 0.080586 -0.991880 0.879500 0.809400 0 251 27
--15.636800 49.715099 -4.015700 -0.436830 0.889212 0.135946 0.746000 0.809400 0 253 27
--16.136200 50.023998 -7.546200 -0.436830 0.889212 0.135946 0.808600 0.809400 0 253 27
--17.208200 49.477699 -7.512200 -0.436830 0.889212 0.135946 0.810800 0.788400 0 253 27
--16.810101 49.139900 -3.928800 -0.436830 0.889212 0.135946 0.746000 0.788400 0 253 27
--16.192200 44.960400 -4.877100 0.435886 -0.826304 -0.356686 0.677700 0.788400 0 236 42
--15.884600 46.520500 -7.855800 0.435886 -0.826304 -0.356686 0.626900 0.788400 0 253 27
--14.885000 46.974701 -7.946000 0.435886 -0.826304 -0.356686 0.626900 0.809400 0 253 27
--14.977100 45.689201 -4.821000 0.435886 -0.826304 -0.356686 0.680000 0.809400 0 248 31
--16.810101 49.139900 -3.928800 0.116417 -0.190205 0.974818 0.746000 0.788400 236 81 69
--16.192200 44.960400 -4.877100 0.116417 -0.190205 0.974818 0.677700 0.788400 200 90 77
--14.977100 45.689201 -4.821000 0.116417 -0.190205 0.974818 0.680000 0.809400 174 120 62
--15.636800 49.715099 -4.015700 0.116417 -0.190205 0.974818 0.746000 0.809400 218 94 66
--13.779500 47.417198 -7.715300 -0.030432 0.115440 -0.992848 0.879500 0.834400 0 253 27
--14.989100 50.565300 -7.297200 -0.030432 0.115440 -0.992848 0.805300 0.834400 0 252 27
--9.827700 52.989700 -7.188500 -0.030432 0.115440 -0.992848 0.805500 0.922700 0 253 27
--8.756500 49.321098 -7.632900 -0.030432 0.115440 -0.992848 0.879500 0.922700 0 253 27
--15.636800 49.715099 -4.015700 -0.447311 0.883265 0.140554 0.746000 0.809400 0 253 27
--14.989100 50.565300 -7.297200 -0.447311 0.883265 0.140554 0.805300 0.834400 0 253 27
--16.136200 50.023998 -7.546200 -0.447311 0.883265 0.140554 0.808600 0.809400 0 253 27
--13.779500 47.417198 -7.715300 0.409629 -0.847844 -0.336697 0.626900 0.829400 0 253 27
--14.977100 45.689201 -4.821000 0.409629 -0.847844 -0.336697 0.680000 0.809400 0 253 27
--14.885000 46.974701 -7.946000 0.409629 -0.847844 -0.336697 0.626900 0.809400 0 251 27
--0.971400 14.644800 -6.706400 0.777065 -0.629233 0.015366 0.253200 0.212300 27 229 30
--1.221800 14.450400 -2.004100 0.777065 -0.629233 0.015366 0.220300 0.236900 0 252 27
--1.766900 13.754900 -2.918700 0.777065 -0.629233 0.015366 0.216900 0.223600 0 253 27
--26.117701 44.487900 -2.198700 0.374471 0.258120 0.890587 0.788200 0.565100 242 74 67
--27.058001 43.733101 -1.471100 0.374471 0.258120 0.890587 0.783900 0.527900 254 68 73
--26.775499 43.007000 -1.492900 0.374471 0.258120 0.890587 0.799700 0.523000 254 68 73
--25.587200 43.557701 -2.038700 0.374471 0.258120 0.890587 0.806300 0.556900 253 67 73
--25.587200 43.557701 -2.038700 0.386633 -0.610879 0.690899 0.806300 0.556900 0 252 27
--26.775499 43.007000 -1.492900 0.386633 -0.610879 0.690899 0.799700 0.523000 0 253 27
--27.637899 42.321201 -1.984400 0.386633 -0.610879 0.690899 0.816200 0.507300 0 253 27
--25.491899 42.827301 -2.370100 0.386633 -0.610879 0.690899 0.813300 0.554500 0 245 34
--26.117701 44.487900 -2.198700 -0.202601 0.798645 0.566673 0.788200 0.565100 242 74 67
--28.100901 44.177299 -2.470000 -0.202601 0.798645 0.566673 0.756100 0.537200 231 80 64
--27.058001 43.733101 -1.471100 -0.202601 0.798645 0.566673 0.783900 0.527900 254 68 73
--8.184300 53.108700 -3.320400 -0.347207 -0.172872 0.921717 0.746000 0.944900 0 253 27
--7.813100 49.342701 -3.886900 -0.347207 -0.172872 0.921717 0.686800 0.944900 0 253 27
--6.624100 53.529800 -2.653700 -0.347207 -0.172872 0.921717 0.746000 0.986600 0 253 27
--8.747800 53.770199 -7.353300 -0.055764 0.062731 -0.996471 0.807700 0.944900 0 254 27
--6.775800 50.206501 -7.534500 -0.055764 0.062731 -0.996471 0.879500 0.944900 0 254 27
--8.756500 49.321098 -7.632900 -0.055764 0.062731 -0.996471 0.879500 0.922700 0 254 27
--9.827700 52.989700 -7.188500 -0.055764 0.062731 -0.996471 0.805500 0.922700 0 254 27
--28.543800 44.178001 -4.651400 -0.562493 0.826801 -0.001192 0.718600 0.545700 0 254 27
--28.697901 44.238201 -3.477500 -0.562493 0.826801 -0.001192 0.737900 0.538900 97 254 114
--26.753901 45.398300 -2.858600 -0.562493 0.826801 -0.001192 0.766000 0.574200 163 254 174
--27.102699 45.320202 -5.735100 -0.562493 0.826801 -0.001192 0.706300 0.587600 0 254 27
--26.246300 42.901402 -5.383600 0.106461 -0.983873 -0.143736 0.880100 0.569900 20 231 27
--28.380600 42.330502 -3.056600 0.106461 -0.983873 -0.143736 0.853500 0.507000 0 252 27
--28.292801 42.543098 -4.446800 0.106461 -0.983873 -0.143736 0.879400 0.523100 5 243 27
--28.100901 44.177299 -2.470000 -0.192584 0.484112 0.853550 0.756100 0.537200 231 80 64
--26.117701 44.487900 -2.198700 -0.192584 0.484112 0.853550 0.788200 0.565100 242 74 67
--26.753901 45.398300 -2.858600 -0.192584 0.484112 0.853550 0.766000 0.574200 163 125 53
--1.712600 0.024900 -9.195700 0.013475 -0.999909 -0.000374 0.765100 0.147100 254 254 254
--3.769300 -0.009000 1.132900 0.013475 -0.999909 -0.000374 0.765800 0.040900 0 254 27
--5.176800 -0.025000 -0.598300 0.013475 -0.999909 -0.000374 0.783900 0.050100 0 254 27
--3.252600 0.001600 -8.591000 0.013475 -0.999909 -0.000374 0.777900 0.139800 254 254 254
-0.000000 61.912998 -0.048000 -0.158526 0.331625 0.929997 0.533800 0.254400 0 254 27
-0.000000 62.775902 -0.355700 -0.158526 0.331625 0.929997 0.533900 0.286800 0 254 27
--0.785400 61.539799 -0.048800 -0.158526 0.331625 0.929997 0.505500 0.247600 0 254 27
--0.340300 31.400700 -9.922000 0.943854 -0.327649 -0.042263 0.348900 0.396000 0 253 27
--0.425600 30.069099 -1.503600 0.943854 -0.327649 -0.042263 0.251300 0.411900 0 253 27
--0.845100 29.891001 -9.491500 0.943854 -0.327649 -0.042263 0.339400 0.379800 0 253 27
-0.000000 54.522099 -2.187600 0.000000 -0.045410 0.998968 0.310700 0.919600 235 81 69
-0.000000 56.862801 -2.081200 0.000000 -0.045410 0.998968 0.310500 0.953100 254 127 130
--0.509500 56.862801 -2.081200 0.000000 -0.045410 0.998968 0.307800 0.953500 254 129 132
--0.509500 56.862801 -2.081200 -0.098448 -0.971038 0.217700 0.497100 0.026700 254 129 132
-0.000000 56.862801 -2.081200 -0.098448 -0.971038 0.217700 0.533800 0.019000 254 127 130
-0.000000 57.320400 0.190300 -0.098448 -0.971038 0.217700 0.533800 0.095300 254 190 192
--0.860300 57.339199 -0.345300 -0.098448 -0.971038 0.217700 0.507000 0.087800 254 172 174
--5.598500 31.822901 -1.405400 -0.881296 0.021519 0.472075 0.185400 0.436500 133 152 48
--7.453900 29.910801 -4.782000 -0.881296 0.021519 0.472075 0.143900 0.408700 0 253 27
--6.824000 22.193899 -3.254300 -0.881296 0.021519 0.472075 0.165700 0.313700 99 254 117
--6.824000 22.193899 -3.254300 -0.921164 -0.108973 -0.373607 0.165700 0.313700 254 68 73
--7.453900 29.910801 -4.782000 -0.921164 -0.108973 -0.373607 0.143900 0.408700 254 68 73
--5.595300 29.761600 -8.491100 -0.921164 -0.108973 -0.373607 0.097300 0.399700 254 68 73
--5.317800 22.936800 -8.014600 -0.921164 -0.108973 -0.373607 0.105500 0.313700 254 68 73
--3.798500 31.552500 -0.386300 -0.402805 -0.146650 0.903461 0.210900 0.433400 211 97 63
--5.598500 31.822901 -1.405400 -0.402805 -0.146650 0.903461 0.185400 0.436500 133 152 48
--6.824000 22.193899 -3.254300 -0.402805 -0.146650 0.903461 0.165700 0.313700 99 254 117
--2.189200 21.987900 -1.481800 -0.402805 -0.146650 0.903461 0.225500 0.313700 218 254 222
--0.340300 31.400700 -9.922000 -0.229486 -0.108632 -0.967231 0.033600 0.413900 0 253 27
--0.845100 29.891001 -9.491500 -0.229486 -0.108632 -0.967231 0.041700 0.395800 0 253 27
--5.595300 29.761600 -8.491100 -0.229486 -0.108632 -0.967231 0.097300 0.399700 0 254 27
--4.970000 33.082802 -8.871300 -0.229486 -0.108632 -0.967231 0.086900 0.436600 0 254 27
--0.835600 22.853901 -8.203000 0.992234 -0.110109 0.057862 0.306600 0.313700 2 205 69
--0.845100 29.891001 -9.491500 0.992234 -0.110109 0.057862 0.339400 0.379800 0 241 37
--0.425600 30.069099 -1.503600 0.992234 -0.110109 0.057862 0.251300 0.411900 0 253 27
--2.189200 21.987900 -1.481800 0.992234 -0.110109 0.057862 0.225500 0.313700 0 253 27
--2.162800 35.743500 -9.599900 -0.324262 0.084100 -0.942221 0.052600 0.465300 0 254 27
--0.340300 31.400700 -9.922000 -0.324262 0.084100 -0.942221 0.033600 0.413900 0 253 27
--4.970000 33.082802 -8.871300 -0.324262 0.084100 -0.942221 0.086900 0.436600 0 254 27
--5.283200 35.952900 -7.814600 -0.324262 0.084100 -0.942221 0.094100 0.470900 0 254 27
--5.283200 35.952900 -7.814600 -0.889642 0.311183 -0.334218 0.142000 0.631800 0 254 27
--6.542300 35.480598 -4.902800 -0.889642 0.311183 -0.334218 0.182300 0.631800 0 254 27
--5.919200 37.619099 -4.570300 -0.889642 0.311183 -0.334218 0.183200 0.661600 0 254 27
--5.919200 37.619099 -4.570300 -0.882633 0.186716 0.431389 0.183200 0.661600 0 253 27
--6.542300 35.480598 -4.902800 -0.882633 0.186716 0.431389 0.182300 0.631800 0 253 27
--5.598500 31.822901 -1.405400 -0.882633 0.186716 0.431389 0.231500 0.582200 133 152 48
--4.685700 36.664101 -1.616400 -0.882633 0.186716 0.431389 0.239100 0.661600 13 240 28
--0.474100 61.294899 -0.607800 -0.490764 0.255871 0.832875 0.499900 0.227200 0 254 27
--1.340700 61.343498 -1.024900 -0.490764 0.255871 0.832875 0.467800 0.231800 0 254 27
--2.225300 60.301201 -1.334400 -0.490764 0.255871 0.832875 0.434400 0.187400 0 254 27
--0.596000 60.268700 -0.255900 -0.490764 0.255871 0.832875 0.502600 0.185300 0 254 27
--1.340700 61.343498 -1.024900 -0.199083 -0.932669 0.300824 0.467800 0.231800 254 254 254
--0.474100 61.294899 -0.607800 -0.199083 -0.932669 0.300824 0.499900 0.227200 254 254 254
--0.785400 61.539799 -0.048800 -0.199083 -0.932669 0.300824 0.505500 0.247600 254 254 254
--1.792100 61.563202 -0.648200 -0.199083 -0.932669 0.300824 0.464300 0.250800 254 254 254
-0.000000 45.235802 -8.516300 -0.205813 0.023108 -0.978318 0.061400 0.762800 0 253 27
-0.000000 38.221600 -8.073300 -0.205813 0.023108 -0.978318 0.073200 0.661600 0 253 27
--2.827600 38.171799 -8.088300 -0.205813 0.023108 -0.978318 0.114500 0.661600 0 253 27
--5.495700 46.043098 -6.732400 -0.205813 0.023108 -0.978318 0.139900 0.788400 0 253 27
--0.425600 30.069099 -1.503600 0.289736 -0.060654 0.955183 0.251300 0.411900 254 254 254
--3.798500 31.552500 -0.386300 0.289736 -0.060654 0.955183 0.210900 0.433400 254 254 254
--2.189200 21.987900 -1.481800 0.289736 -0.060654 0.955183 0.225500 0.313700 254 254 254
-0.000000 31.547001 -9.939100 0.347255 -0.926523 -0.144807 0.349900 0.400200 254 68 73
-0.000000 30.215401 -1.522000 0.347255 -0.926523 -0.144807 0.252400 0.417000 254 68 73
--0.425600 30.069099 -1.503600 0.347255 -0.926523 -0.144807 0.251300 0.411900 254 68 73
--0.340300 31.400700 -9.922000 0.347255 -0.926523 -0.144807 0.348900 0.396000 254 68 73
--21.061199 44.183601 -7.611200 -0.028361 0.039319 -0.998824 0.879500 0.705100 52 208 31
--22.585199 48.327702 -7.594400 -0.028361 0.039319 -0.998824 0.812700 0.705100 104 170 42
--17.208200 49.477699 -7.512200 -0.028361 0.039319 -0.998824 0.810800 0.788400 6 242 27
--15.884600 46.520500 -7.855800 -0.028361 0.039319 -0.998824 0.879500 0.788400 0 250 27
--22.348700 46.932201 -2.822400 -0.723103 0.652497 0.226650 0.746000 0.680200 72 195 37
--22.585199 48.327702 -7.594400 -0.723103 0.652497 0.226650 0.812700 0.705100 0 253 27
--23.337700 47.268200 -6.945000 -0.723103 0.652497 0.226650 0.809900 0.680200 0 254 27
--21.061199 44.183601 -7.611200 -0.095048 -0.949863 -0.297868 0.626900 0.699700 52 208 31
--21.936399 43.055199 -3.733600 -0.095048 -0.949863 -0.297868 0.691800 0.680200 0 253 27
--22.105101 44.119598 -7.074000 -0.095048 -0.949863 -0.297868 0.641700 0.680200 30 225 27
-0.000000 59.375900 0.272700 0.000000 -0.866545 0.499100 0.533800 0.153800 254 254 254
-0.226300 59.631802 0.717000 0.000000 -0.866545 0.499100 0.537800 0.167300 254 254 254
--0.226300 59.631802 0.717000 0.000000 -0.866545 0.499100 0.529800 0.167300 254 254 254
--0.163800 60.672798 0.405300 0.000000 0.286842 0.957978 0.529100 0.200900 0 254 27
--0.226300 59.631802 0.717000 0.000000 0.286842 0.957978 0.529800 0.167300 0 254 27
-0.226300 59.631802 0.717000 0.000000 0.286842 0.957978 0.537800 0.167300 0 254 27
-0.163800 60.672798 0.405300 0.000000 0.286842 0.957978 0.538500 0.200900 0 254 27
--0.340300 31.400700 -9.922000 -0.012671 0.074070 -0.997173 0.033600 0.413900 0 253 27
--2.162800 35.743500 -9.599900 -0.012671 0.074070 -0.997173 0.052600 0.465300 0 253 27
-0.000000 35.795200 -9.599900 -0.012671 0.074070 -0.997173 0.027500 0.464800 0 253 27
-0.000000 31.547001 -9.939100 -0.012671 0.074070 -0.997173 0.029600 0.415400 0 253 27
--5.919200 37.619099 -4.570300 -0.561685 0.544798 -0.622660 0.183200 0.661600 0 254 27
--2.827600 38.171799 -8.088300 -0.561685 0.544798 -0.622660 0.114500 0.661600 0 254 27
--2.162800 35.743500 -9.599900 -0.561685 0.544798 -0.622660 0.096500 0.631800 0 254 27
--5.283200 35.952900 -7.814600 -0.561685 0.544798 -0.622660 0.142000 0.631800 0 254 27
--28.543800 44.178001 -4.651400 -0.410462 -0.233070 -0.881589 0.718600 0.545700 254 254 254
--27.102699 45.320202 -5.735100 -0.410462 -0.233070 -0.881589 0.706300 0.587600 254 254 254
--26.246300 42.901402 -5.383600 -0.410462 -0.233070 -0.881589 0.663100 0.553800 254 254 254
--28.292801 42.543098 -4.446800 -0.410462 -0.233070 -0.881589 0.704200 0.514300 254 254 254
--25.491899 42.827301 -2.370100 0.201709 -0.968181 -0.148119 0.813300 0.554500 0 254 27
--27.637899 42.321201 -1.984400 0.201709 -0.968181 -0.148119 0.816200 0.507300 0 254 27
--28.380600 42.330502 -3.056600 0.201709 -0.968181 -0.148119 0.853500 0.507000 0 254 27
--26.246300 42.901402 -5.383600 0.185319 -0.980147 -0.070494 0.880100 0.569900 20 231 27
--25.491899 42.827301 -2.370100 0.185319 -0.980147 -0.070494 0.813300 0.554500 0 253 27
--28.380600 42.330502 -3.056600 0.185319 -0.980147 -0.070494 0.853500 0.507000 0 252 27
--0.179900 61.274700 0.058500 0.000000 0.499235 0.866467 0.525600 0.223900 0 254 27
--0.163800 60.672798 0.405300 0.000000 0.499235 0.866467 0.529100 0.200900 0 254 27
-0.163800 60.672798 0.405300 0.000000 0.499235 0.866467 0.538500 0.200900 0 254 27
-0.179900 61.274700 0.058500 0.000000 0.499235 0.866467 0.542100 0.223900 0 254 27
-0.000000 61.912998 -0.048000 0.000000 0.164575 0.986365 0.533800 0.254400 0 254 27
--0.179900 61.274700 0.058500 0.000000 0.164575 0.986365 0.525600 0.223900 0 254 27
-0.179900 61.274700 0.058500 0.000000 0.164575 0.986365 0.542100 0.223900 0 254 27
--2.162800 35.743500 -9.599900 -0.008224 0.529675 -0.848161 0.096500 0.631800 0 253 27
--2.827600 38.171799 -8.088300 -0.008224 0.529675 -0.848161 0.114500 0.661600 0 253 27
-0.000000 38.221600 -8.073300 -0.008224 0.529675 -0.848161 0.073200 0.661600 0 253 27
-0.000000 35.795200 -9.599900 -0.008224 0.529675 -0.848161 0.068100 0.631800 0 253 27
-4.620900 14.945700 -8.516100 0.163464 0.013069 -0.986463 0.912200 0.175600 0 253 27
-3.252600 0.001600 -8.591000 0.163464 0.013069 -0.986463 0.909400 0.032900 235 80 66
-1.712600 0.024900 -9.195700 0.163464 0.013069 -0.986463 0.925400 0.031900 254 68 73
-1.456400 14.610600 -8.695100 0.163464 0.013069 -0.986463 0.943400 0.175600 0 253 27
-4.089400 2.633000 -5.031300 0.982688 -0.088487 -0.162770 0.873900 0.060000 18 0 253
-3.252600 0.001600 -8.591000 0.982688 -0.088487 -0.162770 0.909400 0.032900 19 0 253
-4.620900 14.945700 -8.516100 0.982688 -0.088487 -0.162770 0.912200 0.175600 0 247 31
-5.308800 13.910900 -3.738700 0.982688 -0.088487 -0.162770 0.859000 0.175600 0 253 27
-1.553600 3.059500 -4.173500 -0.398905 -0.098999 0.911633 0.841100 0.058900 18 0 253
-3.061600 3.537800 -3.461700 -0.398905 -0.098999 0.911633 0.856300 0.067800 18 0 253
-1.766900 13.754900 -2.918700 -0.398905 -0.098999 0.911633 0.824200 0.175600 0 254 27
-1.553600 3.059500 -4.173500 -0.983093 0.009545 0.182857 0.841100 0.058900 254 254 254
-1.766900 13.754900 -2.918700 -0.983093 0.009545 0.182857 0.824200 0.175600 254 254 254
-1.239800 14.644800 -6.465300 -0.983093 0.009545 0.182857 0.795300 0.175600 254 254 254
-0.626000 0.031700 -8.336200 -0.983093 0.009545 0.182857 0.808600 0.019600 254 254 254
-5.495700 46.043098 -6.732400 0.860977 -0.085411 -0.501422 0.140100 0.788400 0 252 27
-6.029500 46.188801 -3.956000 0.860977 -0.085411 -0.501422 0.183500 0.792100 0 253 27
-5.919200 37.619099 -4.570300 0.860977 -0.085411 -0.501422 0.183400 0.661600 9 98 162
-2.827600 38.171799 -8.088300 0.860977 -0.085411 -0.501422 0.114700 0.661600 8 119 142
-4.685700 36.664101 -1.616400 0.917535 -0.032092 0.396359 0.239300 0.661600 0 250 28
-5.919200 37.619099 -4.570300 0.917535 -0.032092 0.396359 0.183400 0.661600 9 98 162
-6.029500 46.188801 -3.956000 0.917535 -0.032092 0.396359 0.183500 0.792100 0 253 27
-4.298500 47.001099 -0.058900 0.917535 -0.032092 0.396359 0.249500 0.802400 0 253 27
-6.775800 50.206501 -7.534500 0.223809 0.028781 -0.974208 0.134300 0.852600 0 253 27
-0.000000 50.037800 -9.413700 0.223809 0.028781 -0.974208 0.042000 0.827300 0 253 27
-0.000000 53.738098 -8.986800 0.223809 0.028781 -0.974208 0.028300 0.877800 0 253 27
-7.252500 54.524502 -7.615000 0.223809 0.028781 -0.974208 0.126400 0.913200 0 254 27
-7.252500 54.524502 -7.615000 0.375359 0.901424 0.215731 0.533200 0.977800 0 254 27
-6.624100 53.529800 -2.653700 0.375359 0.901424 0.215731 0.469900 0.977800 0 253 27
-8.184300 53.108700 -3.320400 0.375359 0.901424 0.215731 0.469900 0.942000 0 253 27
-8.747800 53.770199 -7.353300 0.375359 0.901424 0.215731 0.528600 0.942000 0 253 27
-9.827700 52.989700 -7.188500 0.412168 0.895237 0.169320 0.526400 0.916400 0 253 27
-9.508400 52.403099 -3.672700 0.412168 0.895237 0.169320 0.469900 0.916400 0 253 27
-15.636800 49.715099 -4.015700 0.412168 0.895237 0.169320 0.469900 0.803100 1 215 59
-14.989100 50.565300 -7.297200 0.412168 0.895237 0.169320 0.526200 0.828100 0 249 29
-0.000000 37.009800 0.550700 0.339751 -0.089043 0.936291 0.310700 0.661600 0 253 27
-4.685700 36.664101 -1.616400 0.339751 -0.089043 0.936291 0.239300 0.661600 0 250 28
-4.298500 47.001099 -0.058900 0.339751 -0.089043 0.936291 0.249500 0.802400 0 253 27
-0.000000 47.287498 1.094200 0.339751 -0.089043 0.936291 0.310700 0.805700 0 253 27
-0.000000 53.738098 -8.986800 0.139268 0.841727 -0.521633 0.028300 0.877800 0 253 27
-0.000000 55.950600 -7.250100 0.139268 0.841727 -0.521633 0.022600 0.916300 0 253 27
-2.321200 55.471001 -5.570800 0.139268 0.841727 -0.521633 0.053900 0.941000 0 253 27
-7.252500 54.524502 -7.615000 0.139268 0.841727 -0.521633 0.126400 0.913200 0 254 27
-3.773800 51.093601 -1.034300 0.772400 -0.022870 0.634725 0.256800 0.864400 0 253 27
-4.298500 47.001099 -0.058900 0.772400 -0.022870 0.634725 0.249500 0.802400 0 253 27
-6.029500 46.188801 -3.956000 0.772400 -0.022870 0.634725 0.183500 0.792100 0 253 27
-6.624100 53.529800 -2.653700 0.772400 -0.022870 0.634725 0.210400 0.900400 0 253 27
-6.624100 53.529800 -2.653700 0.299992 -0.190133 0.934802 0.210400 0.900400 254 68 73
-6.029500 46.188801 -3.956000 0.299992 -0.190133 0.934802 0.183500 0.792100 254 68 73
-7.813100 49.342701 -3.886900 0.299992 -0.190133 0.934802 0.181200 0.844200 254 68 73
-0.000000 50.880199 0.110000 0.266804 0.255185 0.929352 0.310700 0.860500 0 253 27
-0.000000 47.287498 1.094200 0.266804 0.255185 0.929352 0.310700 0.805700 0 252 27
-4.298500 47.001099 -0.058900 0.266804 0.255185 0.929352 0.249500 0.802400 0 253 27
-3.773800 51.093601 -1.034300 0.266804 0.255185 0.929352 0.256800 0.864400 0 253 27
-16.136200 50.023998 -7.546200 -0.129075 0.179950 -0.975171 0.529500 0.803100 0 253 27
-14.885000 46.974701 -7.946000 -0.129075 0.179950 -0.975171 0.590800 0.803100 0 253 27
-13.779500 47.417198 -7.715300 -0.129075 0.179950 -0.975171 0.590800 0.828100 0 253 27
-14.989100 50.565300 -7.297200 -0.129075 0.179950 -0.975171 0.526200 0.828100 0 253 27
-13.779500 47.417198 -7.715300 -0.437873 -0.882573 -0.171264 0.347800 0.823100 0 253 27
-14.977100 45.689201 -4.821000 -0.437873 -0.882573 -0.171264 0.400900 0.803100 0 253 27
-8.927200 49.128502 -4.128200 -0.437873 -0.882573 -0.171264 0.409800 0.916400 0 253 27
-8.756500 49.321098 -7.632900 -0.437873 -0.882573 -0.171264 0.347800 0.916400 0 253 27
-17.208200 49.477699 -7.512200 0.268622 0.938905 0.215175 0.531700 0.782100 0 227 47
-16.810101 49.139900 -3.928800 0.268622 0.938905 0.215175 0.469900 0.782100 35 133 112
-22.348700 46.932201 -2.822400 0.268622 0.938905 0.215175 0.469900 0.674700 19 0 250
-22.585199 48.327702 -7.594400 0.268622 0.938905 0.215175 0.533600 0.698800 0 236 38
-21.936399 43.055199 -3.733600 -0.256926 -0.186034 0.948357 0.412700 0.674700 19 0 253
-22.348700 46.932201 -2.822400 -0.256926 -0.186034 0.948357 0.469900 0.674700 19 0 250
-16.810101 49.139900 -3.928800 -0.256926 -0.186034 0.948357 0.469900 0.782100 35 133 112
-16.192200 44.960400 -4.877100 -0.256926 -0.186034 0.948357 0.398600 0.782100 18 0 253
-22.105101 44.119598 -7.074000 0.471869 -0.161034 -0.866838 0.583100 0.674700 0 253 27
-21.061199 44.183601 -7.611200 0.471869 -0.161034 -0.866838 0.590800 0.698800 0 253 27
-22.585199 48.327702 -7.594400 0.471869 -0.161034 -0.866838 0.533600 0.698800 0 253 27
-23.337700 47.268200 -6.945000 0.471869 -0.161034 -0.866838 0.530800 0.674700 0 253 27
-15.884600 46.520500 -7.855800 -0.312108 -0.901546 -0.299673 0.347800 0.782100 0 253 27
-21.061199 44.183601 -7.611200 -0.312108 -0.901546 -0.299673 0.347800 0.693400 0 253 27
-21.936399 43.055199 -3.733600 -0.312108 -0.901546 -0.299673 0.412700 0.674700 0 253 27
-16.192200 44.960400 -4.877100 -0.312108 -0.901546 -0.299673 0.398600 0.782100 0 253 27
-5.598500 31.822901 -1.404300 0.899204 0.141743 0.413933 0.847900 0.413200 0 240 37
-7.453900 29.910801 -4.780100 0.899204 0.141743 0.413933 0.884800 0.385400 18 0 251
-7.174300 32.815300 -5.167300 0.899204 0.141743 0.413933 0.893300 0.414200 17 7 244
-4.970000 33.082802 -8.871900 0.875445 0.068330 -0.478463 0.938900 0.409500 18 0 252
-7.174300 32.815300 -5.167300 0.875445 0.068330 -0.478463 0.893300 0.414200 17 7 244
-7.453900 29.910801 -4.780100 0.875445 0.068330 -0.478463 0.884800 0.385400 18 0 251
-5.595300 29.761600 -8.492500 0.875445 0.068330 -0.478463 0.927500 0.375900 18 0 253
-6.827700 20.858999 -3.044800 0.895156 -0.347215 -0.279532 0.858900 0.286100 0 231 44
-6.194700 19.576300 -3.478600 0.895156 -0.347215 -0.279532 0.860200 0.277400 0 248 31
-5.426000 21.341299 -8.132600 0.895156 -0.347215 -0.279532 0.914200 0.282100 15 21 230
-0.835600 22.853901 -8.210700 0.045309 0.086115 -0.995254 0.964300 0.301600 0 253 27
-5.317800 22.936800 -8.016200 0.045309 0.086115 -0.995254 0.916400 0.301600 0 253 27
-5.426000 21.341299 -8.132600 0.045309 0.086115 -0.995254 0.914200 0.282100 0 253 27
-0.899900 21.410400 -8.349400 0.045309 0.086115 -0.995254 0.962800 0.286100 0 253 27
-0.899900 21.410400 -8.349400 -0.986876 0.054006 0.152183 0.726500 0.282100 254 254 254
-1.853000 19.164200 -1.371600 -0.986876 0.054006 0.152183 0.805100 0.274200 254 254 254
-1.957400 20.620800 -1.211500 -0.986876 0.054006 0.152183 0.804700 0.286100 254 254 254
-6.194700 19.576300 -3.478600 0.393316 -0.294694 0.870895 0.860200 0.277400 0 248 31
-6.827700 20.858999 -3.044800 0.393316 -0.294694 0.870895 0.858900 0.286100 0 231 44
-1.957400 20.620800 -1.211500 0.393316 -0.294694 0.870895 0.804700 0.286100 0 253 27
-1.853000 19.164200 -1.371600 0.393316 -0.294694 0.870895 0.805100 0.274200 0 253 27
-5.117200 15.490400 -9.679700 -0.013076 0.210350 -0.977539 0.917300 0.220800 0 253 27
-0.134100 16.169500 -9.174700 -0.013076 0.210350 -0.977539 0.969900 0.225300 0 253 27
-0.899900 21.410400 -8.349400 -0.013076 0.210350 -0.977539 0.962800 0.286100 0 253 27
-5.426000 21.341299 -8.132600 -0.013076 0.210350 -0.977539 0.914200 0.282100 0 253 27
-0.134100 16.169500 -9.174700 -0.979250 0.051054 0.196120 0.732600 0.207100 0 254 27
-1.716700 14.450400 -2.459200 -0.979250 0.051054 0.196120 0.808600 0.236100 0 254 27
-1.853000 19.164200 -1.371600 -0.979250 0.051054 0.196120 0.805100 0.274200 0 254 27
-0.899900 21.410400 -8.349400 -0.979250 0.051054 0.196120 0.726500 0.282100 0 254 27
-1.853000 19.164200 -1.371600 0.369977 -0.140579 0.918343 0.805100 0.274200 0 253 27
-1.716700 14.450400 -2.459200 0.369977 -0.140579 0.918343 0.808600 0.236100 0 253 27
-6.069200 14.643000 -3.762300 0.369977 -0.140579 0.918343 0.859400 0.227800 0 253 27
-6.194700 19.576300 -3.478600 0.369977 -0.140579 0.918343 0.860200 0.277400 0 248 31
-6.069200 14.643000 -3.762300 0.986467 -0.011966 -0.163524 0.859400 0.227800 0 253 27
-5.117200 15.490400 -9.679700 0.986467 -0.011966 -0.163524 0.917300 0.220800 2 202 70
-5.426000 21.341299 -8.132600 0.986467 -0.011966 -0.163524 0.914200 0.282100 15 21 230
-6.194700 19.576300 -3.478600 0.986467 -0.011966 -0.163524 0.860200 0.277400 0 248 31
-7.813100 49.342701 -3.886900 0.881229 -0.394976 -0.259672 0.181200 0.844200 0 253 27
-6.029500 46.188801 -3.956000 0.881229 -0.394976 -0.259672 0.183500 0.792100 0 253 27
-5.495700 46.043098 -6.732400 0.881229 -0.394976 -0.259672 0.140100 0.788400 0 252 27
-6.775800 50.206501 -7.534500 0.881229 -0.394976 -0.259672 0.134300 0.852600 0 253 27
-8.756500 49.321098 -7.632900 -0.341557 -0.936397 -0.080618 0.347800 0.916400 254 68 73
-8.927200 49.128502 -4.128200 -0.341557 -0.936397 -0.080618 0.409800 0.916400 254 68 73
-7.813100 49.342701 -3.886900 -0.341557 -0.936397 -0.080618 0.407700 0.942000 254 68 73
-6.775800 50.206501 -7.534500 -0.341557 -0.936397 -0.080618 0.347800 0.942000 254 68 73
-5.495700 46.043098 -6.732400 0.295037 -0.218453 -0.930178 0.140100 0.788400 0 253 27
-0.000000 45.235802 -8.516300 0.295037 -0.218453 -0.930178 0.061600 0.762900 0 253 27
-0.000000 50.037800 -9.413700 0.295037 -0.218453 -0.930178 0.042000 0.827300 0 253 27
-6.775800 50.206501 -7.534500 0.295037 -0.218453 -0.930178 0.134300 0.852600 0 253 27
-3.773800 51.093601 -1.034300 0.217879 0.518058 0.827130 0.256800 0.864400 0 253 27
-1.435700 55.057400 -2.884500 0.217879 0.518058 0.827130 0.286000 0.931400 0 253 27
-0.000000 54.522099 -2.187600 0.217879 0.518058 0.827130 0.310700 0.919600 0 253 27
-0.000000 50.880199 0.110000 0.217879 0.518058 0.827130 0.310700 0.860500 0 253 27
-0.163800 60.672798 0.405300 0.878123 0.172158 0.446386 0.538500 0.200900 0 253 27
-0.226300 59.631802 0.717000 0.878123 0.172158 0.446386 0.537800 0.167300 0 253 27
-0.605400 59.453602 0.006800 0.878123 0.172158 0.446386 0.558900 0.156900 0 253 27
-0.596000 60.268700 -0.255900 0.878123 0.172158 0.446386 0.565100 0.185300 0 253 27
-0.000000 59.375900 0.272700 0.351825 0.003851 0.936058 0.533800 0.153800 0 253 27
-0.000000 58.735298 0.237300 0.351825 0.003851 0.936058 0.533800 0.134400 0 253 27
-0.793500 58.611801 -0.022400 0.351825 0.003851 0.936058 0.561500 0.129800 0 253 27
-0.605400 59.453602 0.006800 0.351825 0.003851 0.936058 0.558900 0.156900 0 253 27
-1.340700 61.343498 -1.024900 0.500896 0.173312 0.847978 0.599900 0.231700 254 254 254
-2.225300 60.301201 -1.334400 0.500896 0.173312 0.847978 0.633200 0.187400 254 254 254
-2.209500 61.230499 -1.515000 0.500896 0.173312 0.847978 0.636800 0.228100 254 254 254
-0.474100 61.294899 -0.607800 0.419394 -0.893935 0.158081 0.567800 0.227200 0 253 27
-0.785400 61.539799 -0.048800 0.419394 -0.893935 0.158081 0.562200 0.247600 0 253 27
-0.179900 61.274700 0.058500 0.419394 -0.893935 0.158081 0.542100 0.223900 0 253 27
-0.163800 60.672798 0.405300 0.879737 0.234636 0.413532 0.538500 0.200900 0 253 27
-0.596000 60.268700 -0.255900 0.879737 0.234636 0.413532 0.565100 0.185300 0 253 27
-0.474100 61.294899 -0.607800 0.879737 0.234636 0.413532 0.567800 0.227200 0 253 27
-0.179900 61.274700 0.058500 0.879737 0.234636 0.413532 0.542100 0.223900 0 253 27
-0.785400 61.539799 -0.048800 0.405349 0.400850 0.821591 0.562200 0.247600 0 253 27
-1.792100 61.563202 -0.648200 0.405349 0.400850 0.821591 0.603400 0.250800 0 253 27
-1.901400 62.898899 -1.262500 0.405349 0.400850 0.821591 0.616100 0.287500 0 253 27
-0.000000 62.775902 -0.355700 0.405349 0.400850 0.821591 0.533900 0.286800 0 253 27
-1.901400 62.898899 -1.262500 0.958885 0.139689 0.247034 0.616100 0.287500 254 73 78
-1.792100 61.563202 -0.648200 0.958885 0.139689 0.247034 0.603400 0.250800 254 68 73
-2.209500 61.230499 -1.515000 0.958885 0.139689 0.247034 0.636800 0.228100 254 68 73
-2.505800 61.413601 -3.333900 0.958885 0.139689 0.247034 0.700500 0.240200 254 68 73
-2.071800 58.080299 -1.837600 0.982605 0.010378 0.185418 0.632000 0.089900 254 254 254
-2.361600 58.652599 -3.405400 0.982605 0.010378 0.185418 0.691600 0.111600 254 254 254
-2.043500 58.694401 -1.722000 0.982605 0.010378 0.185418 0.633000 0.119000 254 254 254
-2.361600 58.652599 -3.405400 0.835615 -0.547438 -0.045374 0.691600 0.111600 254 254 254
-2.071800 58.080299 -1.837600 0.835615 -0.547438 -0.045374 0.632000 0.089900 254 254 254
-1.480400 57.287800 -3.167400 0.835615 -0.547438 -0.045374 0.679600 0.054000 254 254 254
-2.361600 58.652599 -3.405400 0.962379 -0.178153 0.205154 0.691600 0.111600 254 254 254
-2.484800 60.667999 -2.078300 0.962379 -0.178153 0.205154 0.658100 0.193000 254 254 254
-2.225300 60.301201 -1.334400 0.962379 -0.178153 0.205154 0.633200 0.187400 254 254 254
-2.043500 58.694401 -1.722000 0.962379 -0.178153 0.205154 0.633000 0.119000 254 254 254
-0.596000 60.268700 -0.255900 0.569338 0.180881 0.801958 0.565100 0.185300 0 253 27
-0.605400 59.453602 0.006800 0.569338 0.180881 0.801958 0.558900 0.156900 0 253 27
-0.793500 58.611801 -0.022400 0.569338 0.180881 0.801958 0.561500 0.129800 0 253 27
-2.225300 60.301201 -1.334400 0.569338 0.180881 0.801958 0.633200 0.187400 0 253 27
-0.793500 58.611801 -0.022400 0.424783 -0.113068 0.898207 0.561500 0.129800 254 68 73
-0.000000 58.735298 0.237300 0.424783 -0.113068 0.898207 0.533800 0.134400 254 68 73
-0.000000 57.320400 0.190300 0.424783 -0.113068 0.898207 0.533800 0.095300 254 68 73
-0.860300 57.339199 -0.345300 0.424783 -0.113068 0.898207 0.560600 0.087800 254 68 73
-2.361600 58.652599 -3.405400 0.801295 -0.555920 -0.221086 0.691600 0.111600 254 254 254
-1.480400 57.287800 -3.167400 0.801295 -0.555920 -0.221086 0.679600 0.054000 254 254 254
-1.507500 57.978802 -4.806700 0.801295 -0.555920 -0.221086 0.740400 0.071600 254 254 254
-1.480400 57.287800 -3.167400 0.605736 -0.042761 0.794516 0.293800 0.962800 0 253 27
-0.509500 56.862801 -2.081200 0.605736 -0.042761 0.794516 0.308000 0.953500 0 253 27
-0.000000 54.522099 -2.187600 0.605736 -0.042761 0.794516 0.310700 0.919600 0 253 27
-1.435700 55.057400 -2.884500 0.605736 -0.042761 0.794516 0.286000 0.931400 0 254 27
-1.435700 55.057400 -2.884500 0.962522 0.132164 0.236820 0.286000 0.931400 254 68 73
-2.321200 55.471001 -5.570800 0.962522 0.132164 0.236820 0.259700 0.968000 254 68 73
-1.507500 57.978802 -4.806700 0.962522 0.132164 0.236820 0.270100 0.982500 254 68 73
-1.480400 57.287800 -3.167400 0.962522 0.132164 0.236820 0.293800 0.962800 254 68 73
-5.117200 15.490400 -9.679700 -0.146405 -0.402228 -0.903758 0.917300 0.220800 0 253 27
-1.456400 14.610600 -8.695100 -0.146405 -0.402228 -0.903758 0.949700 0.207500 0 253 27
-0.134100 16.169500 -9.174700 -0.146405 -0.402228 -0.903758 0.969900 0.225300 0 253 27
-0.134100 16.169500 -9.174700 -0.868940 -0.488451 0.079739 0.732600 0.207100 254 254 254
-1.239800 14.644800 -6.465300 -0.868940 -0.488451 0.079739 0.774100 0.204900 254 254 254
-1.716700 14.450400 -2.459200 -0.868940 -0.488451 0.079739 0.808600 0.236100 254 254 254
-5.308800 13.910900 -3.738700 0.254739 -0.396087 0.882170 0.855000 0.218100 0 253 27
-6.069200 14.643000 -3.762300 0.254739 -0.396087 0.882170 0.859400 0.227800 0 253 27
-1.716700 14.450400 -2.459200 0.254739 -0.396087 0.882170 0.808600 0.236100 0 253 27
-1.766900 13.754900 -2.918700 0.254739 -0.396087 0.882170 0.809900 0.215800 0 253 27
-4.620900 14.945700 -8.516100 0.580484 -0.782092 -0.226651 0.914400 0.215300 0 247 31
-5.117200 15.490400 -9.679700 0.580484 -0.782092 -0.226651 0.917300 0.220800 2 205 68
-6.069200 14.643000 -3.762300 0.580484 -0.782092 -0.226651 0.859400 0.227800 0 253 27
-5.308800 13.910900 -3.738700 0.580484 -0.782092 -0.226651 0.855000 0.218100 0 253 27
-1.957400 20.620800 -1.211500 -0.981620 0.066989 0.178702 0.804700 0.286100 254 254 254
-2.189200 21.987900 -1.483700 -0.981620 0.066989 0.178702 0.804500 0.301600 254 254 254
-0.835600 22.853901 -8.210700 -0.981620 0.066989 0.178702 0.728900 0.301600 254 254 254
-0.899900 21.410400 -8.349400 -0.981620 0.066989 0.178702 0.726500 0.282100 254 254 254
-7.174300 32.815300 -5.167300 0.882089 0.156872 -0.444196 0.893300 0.414200 17 7 244
-4.970000 33.082802 -8.871900 0.882089 0.156872 -0.444196 0.938900 0.409500 18 0 252
-5.283200 35.952900 -7.814600 0.882089 0.156872 -0.444196 0.933900 0.441300 18 1 249
-6.542300 35.480598 -4.902800 0.882089 0.156872 -0.444196 0.897200 0.442800 15 32 221
-5.598500 31.822901 -1.404300 0.892181 0.170029 0.418452 0.847900 0.413200 0 240 37
-7.174300 32.815300 -5.167300 0.892181 0.170029 0.418452 0.893300 0.414200 17 7 244
-6.542300 35.480598 -4.902800 0.892181 0.170029 0.418452 0.897200 0.442800 15 32 221
-4.685700 36.664101 -1.616400 0.472747 0.127337 0.871949 0.239300 0.661600 0 250 28
-3.798500 31.552500 -0.388900 0.472747 0.127337 0.871949 0.257800 0.582200 0 253 27
-5.598500 31.822901 -1.404300 0.472747 0.127337 0.871949 0.231700 0.582200 0 240 37
-2.225300 60.301201 -1.334400 0.926529 0.086891 0.366052 0.633200 0.187400 254 254 254
-2.484800 60.667999 -2.078300 0.926529 0.086891 0.366052 0.658100 0.193000 254 254 254
-2.209500 61.230499 -1.515000 0.926529 0.086891 0.366052 0.636800 0.228100 254 254 254
-8.927200 49.128502 -4.128200 0.174303 -0.164506 0.970853 0.409800 0.916400 254 68 73
-9.508400 52.403099 -3.672700 0.174303 -0.164506 0.970853 0.469900 0.916400 254 68 73
-8.184300 53.108700 -3.320400 0.174303 -0.164506 0.970853 0.469900 0.942000 254 68 73
-7.813100 49.342701 -3.886900 0.174303 -0.164506 0.970853 0.407700 0.942000 254 68 73
-8.184300 53.108700 -3.320400 0.526523 0.826719 0.198265 0.469900 0.942000 0 253 27
-9.508400 52.403099 -3.672700 0.526523 0.826719 0.198265 0.469900 0.916400 0 253 27
-9.827700 52.989700 -7.188500 0.526523 0.826719 0.198265 0.526400 0.916400 0 253 27
-8.747800 53.770199 -7.353300 0.526523 0.826719 0.198265 0.528600 0.942000 0 253 27
-8.747800 53.770199 -7.353300 0.154881 -0.035505 -0.987295 0.528600 0.942000 0 253 27
-6.775800 50.206501 -7.534500 0.154881 -0.035505 -0.987295 0.590800 0.942000 0 253 27
-7.252500 54.524502 -7.615000 0.154881 -0.035505 -0.987295 0.533200 0.977800 0 254 27
-8.927200 49.128502 -4.128200 -0.001669 -0.169906 0.985459 0.409800 0.916400 0 253 27
-14.977100 45.689201 -4.821000 -0.001669 -0.169906 0.985459 0.400900 0.803100 18 0 253
-15.636800 49.715099 -4.015700 -0.001669 -0.169906 0.985459 0.469900 0.803100 29 188 60
-9.508400 52.403099 -3.672700 -0.001669 -0.169906 0.985459 0.469900 0.916400 0 253 27
-1.435700 55.057400 -2.884500 0.215818 0.814400 0.538680 0.286000 0.931400 0 253 27
-3.773800 51.093601 -1.034300 0.215818 0.814400 0.538680 0.256800 0.864400 0 253 27
-6.624100 53.529800 -2.653700 0.215818 0.814400 0.538680 0.210400 0.900400 0 253 27
-7.252500 54.524502 -7.615000 0.215818 0.814400 0.538680 0.180600 0.964800 0 253 27
-2.321200 55.471001 -5.570800 0.276118 0.932071 0.234526 0.259700 0.968000 0 253 27
-1.435700 55.057400 -2.884500 0.276118 0.932071 0.234526 0.286000 0.931400 0 253 27
-7.252500 54.524502 -7.615000 0.276118 0.932071 0.234526 0.180600 0.964800 0 253 27
-2.209500 61.230499 -1.515000 0.942806 0.279456 0.181716 0.636800 0.228100 254 254 254
-2.484800 60.667999 -2.078300 0.942806 0.279456 0.181716 0.658100 0.193000 254 254 254
-2.505800 61.413601 -3.333900 0.942806 0.279456 0.181716 0.704900 0.212700 254 254 254
-2.484800 60.667999 -2.078300 0.998559 -0.051788 -0.014052 0.658100 0.193000 254 254 254
-2.361600 58.652599 -3.405400 0.998559 -0.051788 -0.014052 0.691600 0.111600 254 254 254
-2.505800 61.413601 -3.333900 0.998559 -0.051788 -0.014052 0.704900 0.212700 254 254 254
-2.209500 61.230499 -1.515000 0.107977 -0.909631 0.401138 0.636800 0.228100 254 68 73
-1.792100 61.563202 -0.648200 0.107977 -0.909631 0.401138 0.603400 0.250800 254 68 73
-1.340700 61.343498 -1.024900 0.107977 -0.909631 0.401138 0.599900 0.231700 254 68 73
-3.061600 3.537800 -3.461700 -0.234488 0.898953 0.369997 0.290200 0.071700 18 0 253
-1.553600 3.059500 -4.173500 -0.234488 0.898953 0.369997 0.275500 0.071900 18 0 253
-1.568700 1.981700 -0.627100 -0.234488 0.898953 0.369997 0.274000 0.039600 19 0 253
-3.735600 1.816900 0.228400 -0.234488 0.898953 0.369997 0.290200 0.030700 19 0 253
-0.626000 0.031700 -8.336200 -0.992053 0.072189 0.103052 0.238500 0.103000 0 254 27
-1.825200 -0.024100 0.601200 -0.992053 0.072189 0.103052 0.266200 0.023600 254 254 254
-1.568700 1.981700 -0.627100 -0.992053 0.072189 0.103052 0.274000 0.039600 254 254 254
-1.553600 3.059500 -4.173500 -0.992053 0.072189 0.103052 0.275500 0.071900 186 254 192
-1.825200 -0.024100 0.601200 0.002195 -0.999985 -0.005027 0.783900 0.050100 0 254 27
-0.626000 0.031700 -8.336200 0.002195 -0.999985 -0.005027 0.777900 0.139800 253 254 253
-1.712600 0.024900 -9.195700 0.002195 -0.999985 -0.005027 0.765100 0.147100 254 254 254
-3.769300 -0.009000 1.132900 0.002195 -0.999985 -0.005027 0.765800 0.040900 0 254 27
-1.712600 0.024900 -9.195700 -0.920325 0.042849 -0.388801 0.925400 0.031900 254 68 73
-0.626000 0.031700 -8.336200 -0.920325 0.042849 -0.388801 0.938600 0.031200 254 68 73
-1.239800 14.644800 -6.465300 -0.920325 0.042849 -0.388801 0.974400 0.175600 254 68 73
-1.456400 14.610600 -8.695100 -0.920325 0.042849 -0.388801 0.943400 0.175600 254 68 73
-1.568700 1.981700 -0.627100 -0.270273 0.452545 0.849798 0.274000 0.039600 19 0 253
-1.825200 -0.024100 0.601200 -0.270273 0.452545 0.849798 0.266200 0.023600 19 0 253
-3.769300 -0.009000 1.132900 -0.270273 0.452545 0.849798 0.289700 0.012400 19 0 253
-3.735600 1.816900 0.228400 -0.270273 0.452545 0.849798 0.290200 0.030700 19 0 253
-4.089400 2.633000 -5.031300 0.957442 -0.073711 -0.279054 0.310400 0.073900 18 0 253
-5.390300 1.568200 -1.670300 0.957442 -0.073711 -0.279054 0.308400 0.040400 18 0 253
-5.176800 -0.025000 -0.598300 0.957442 -0.073711 -0.279054 0.313500 0.023800 18 0 253
-3.252600 0.001600 -8.591000 0.957442 -0.073711 -0.279054 0.345300 0.097200 19 0 253
-3.769300 -0.009000 1.132900 0.738109 0.308147 0.600201 0.289700 0.012400 18 0 253
-5.176800 -0.025000 -0.598300 0.738109 0.308147 0.600201 0.313500 0.023800 18 0 253
-5.390300 1.568200 -1.670300 0.738109 0.308147 0.600201 0.308400 0.040400 18 0 253
-3.735600 1.816900 0.228400 0.738109 0.308147 0.600201 0.290200 0.030700 18 0 253
-5.390300 1.568200 -1.670300 0.560649 0.811720 0.163660 0.308400 0.040400 18 0 253
-4.089400 2.633000 -5.031300 0.560649 0.811720 0.163660 0.310400 0.073900 18 0 253
-3.061600 3.537800 -3.461700 0.560649 0.811720 0.163660 0.290200 0.071700 18 0 253
-3.735600 1.816900 0.228400 0.560649 0.811720 0.163660 0.290200 0.030700 18 0 253
-3.061600 3.537800 -3.461700 0.452521 -0.074303 0.888653 0.856300 0.067800 18 0 253
-4.089400 2.633000 -5.031300 0.452521 -0.074303 0.888653 0.873900 0.060000 18 0 253
-5.308800 13.910900 -3.738700 0.452521 -0.074303 0.888653 0.859000 0.175600 0 253 27
-1.766900 13.754900 -2.918700 0.452521 -0.074303 0.888653 0.824200 0.175600 0 253 27
-5.117200 15.490400 -9.679700 0.118623 -0.917754 -0.379021 0.917300 0.220800 0 253 27
-4.620900 14.945700 -8.516100 0.118623 -0.917754 -0.379021 0.914400 0.215300 0 253 27
-1.456400 14.610600 -8.695100 0.118623 -0.917754 -0.379021 0.949700 0.207500 0 253 27
-1.456400 14.610600 -8.695100 -0.751462 -0.656769 -0.062923 0.746600 0.183800 254 254 254
-1.239800 14.644800 -6.465300 -0.751462 -0.656769 -0.062923 0.774100 0.204900 254 254 254
-0.134100 16.169500 -9.174700 -0.751462 -0.656769 -0.062923 0.732600 0.207100 254 254 254
-5.426000 21.341299 -8.132600 0.959663 0.028025 -0.279753 0.914200 0.282100 15 21 230
-5.317800 22.936800 -8.016200 0.959663 0.028025 -0.279753 0.916400 0.301600 18 0 252
-6.824000 22.193899 -3.251500 0.959663 0.028025 -0.279753 0.860400 0.301600 3 179 89
-6.827700 20.858999 -3.044800 0.959663 0.028025 -0.279753 0.858900 0.286100 0 231 44
-0.845100 29.891001 -9.498900 0.127296 -0.127838 -0.983592 0.978500 0.369500 0 253 27
-5.595300 29.761600 -8.492500 0.127296 -0.127838 -0.983592 0.927500 0.375900 0 253 27
-5.317800 22.936800 -8.016200 0.127296 -0.127838 -0.983592 0.916400 0.301600 0 253 27
-0.835600 22.853901 -8.210700 0.127296 -0.127838 -0.983592 0.964300 0.301600 0 253 27
-1.957400 20.620800 -1.211500 0.345482 0.135420 0.928603 0.804700 0.286100 254 68 73
-6.827700 20.858999 -3.044800 0.345482 0.135420 0.928603 0.858900 0.286100 232 61 86
-6.824000 22.193899 -3.251500 0.345482 0.135420 0.928603 0.860400 0.301600 185 47 122
-2.189200 21.987900 -1.483700 0.345482 0.135420 0.928603 0.804500 0.301600 254 68 73
-0.605400 59.453602 0.006800 0.276378 -0.886938 0.370075 0.558900 0.156900 254 68 73
-0.226300 59.631802 0.717000 0.276378 -0.886938 0.370075 0.537800 0.167300 254 68 73
-0.000000 59.375900 0.272700 0.276378 -0.886938 0.370075 0.533800 0.153800 254 68 73
-21.936399 43.055199 -3.733600 0.245050 -0.199318 0.948801 0.412700 0.674700 19 0 253
-23.265499 44.290199 -3.614200 0.245050 -0.199318 0.948801 0.431800 0.655600 19 0 253
-23.323000 46.228001 -3.425200 0.245050 -0.199318 0.948801 0.469900 0.655600 19 0 251
-22.348700 46.932201 -2.822400 0.245050 -0.199318 0.948801 0.469900 0.674700 20 0 250
-22.105101 44.119598 -7.074000 0.680722 -0.210597 -0.701617 0.583100 0.674700 0 253 27
-23.337700 47.268200 -6.945000 0.680722 -0.210597 -0.701617 0.530800 0.674700 0 253 27
-23.881300 46.267799 -5.995500 0.680722 -0.210597 -0.701617 0.521800 0.655600 0 253 27
-23.273100 44.479099 -6.170500 0.680722 -0.210597 -0.701617 0.556600 0.655600 0 253 27
-22.348700 46.932201 -2.822400 0.710630 0.673907 0.202126 0.469900 0.674700 18 0 249
-23.323000 46.228001 -3.425200 0.710630 0.673907 0.202126 0.469900 0.655600 18 0 251
-23.881300 46.267799 -5.995500 0.710630 0.673907 0.202126 0.521800 0.655600 12 63 193
-23.337700 47.268200 -6.945000 0.710630 0.673907 0.202126 0.530800 0.674700 2 175 92
-21.936399 43.055199 -3.733600 0.575702 -0.803125 -0.153486 0.412700 0.674700 18 0 253
-22.105101 44.119598 -7.074000 0.575702 -0.803125 -0.153486 0.362600 0.674700 18 0 253
-23.273100 44.479099 -6.170500 0.575702 -0.803125 -0.153486 0.386800 0.655600 18 0 253
-23.265499 44.290199 -3.614200 0.575702 -0.803125 -0.153486 0.431800 0.655600 18 0 253
-23.323000 46.228001 -3.425200 -0.234519 0.052147 0.970712 0.469900 0.655600 19 0 251
-23.265499 44.290199 -3.614200 -0.234519 0.052147 0.970712 0.431800 0.655600 19 0 253
-24.446100 44.099098 -3.039500 -0.234519 0.052147 0.970712 0.444100 0.624200 19 0 253
-24.935400 45.742901 -3.288800 -0.234519 0.052147 0.970712 0.469900 0.624200 20 0 251
-23.273100 44.479099 -6.170500 0.051663 0.047611 -0.997529 0.556600 0.655600 0 253 27
-23.881300 46.267799 -5.995500 0.051663 0.047611 -0.997529 0.521800 0.655600 0 253 27
-25.982700 45.641201 -5.974700 0.051663 0.047611 -0.997529 0.517100 0.624200 0 253 27
-25.718901 44.407902 -5.989100 0.051663 0.047611 -0.997529 0.533000 0.624200 0 253 27
-23.881300 46.267799 -5.995500 0.283035 0.956157 0.075198 0.521800 0.655600 64 24 202
-23.323000 46.228001 -3.425200 0.283035 0.956157 0.075198 0.469900 0.655600 19 0 251
-24.935400 45.742901 -3.288800 0.283035 0.956157 0.075198 0.469900 0.624200 20 0 251
-25.982700 45.641201 -5.974700 0.283035 0.956157 0.075198 0.517100 0.624200 65 29 197
-23.265499 44.290199 -3.614200 -0.050680 -0.993534 -0.101596 0.431800 0.655600 0 251 27
-23.273100 44.479099 -6.170500 -0.050680 -0.993534 -0.101596 0.386800 0.655600 0 253 27
-25.718901 44.407902 -5.989100 -0.050680 -0.993534 -0.101596 0.398000 0.624200 0 253 27
-24.446100 44.099098 -3.039500 -0.050680 -0.993534 -0.101596 0.444100 0.624200 53 205 30
-3.798500 31.552500 -0.388900 0.303080 0.047081 0.951802 0.257800 0.582200 57 208 35
-4.685700 36.664101 -1.616400 0.303080 0.047081 0.951802 0.239300 0.661600 0 250 28
-0.000000 37.009800 0.550700 0.303080 0.047081 0.951802 0.310700 0.661600 172 124 55
-0.000000 31.552500 0.128500 0.303080 0.047081 0.951802 0.310700 0.582200 203 101 62
-27.058001 43.733101 -1.471100 0.612973 -0.035197 0.789319 0.783900 0.527900 19 0 253
-26.775499 43.007000 -1.492900 0.612973 -0.035197 0.789319 0.799700 0.523000 19 0 253
-27.637899 42.321201 -1.984400 0.612973 -0.035197 0.789319 0.780200 0.502700 19 0 253
-28.100901 44.177299 -2.470000 0.612973 -0.035197 0.789319 0.756100 0.537200 19 0 253
-27.102699 45.320202 -5.735100 0.288380 -0.175341 -0.941325 0.706300 0.587600 0 253 27
-26.246300 42.901402 -5.383600 0.288380 -0.175341 -0.941325 0.663100 0.553800 0 252 27
-25.718901 44.407902 -5.989100 0.288380 -0.175341 -0.941325 0.674700 0.592000 0 253 27
-25.982700 45.641201 -5.974700 0.288380 -0.175341 -0.941325 0.701400 0.609900 0 253 27
-24.935400 45.742901 -3.288800 0.215944 0.976143 0.022647 0.774000 0.616500 20 0 251
-26.753901 45.398300 -2.858600 0.215944 0.976143 0.022647 0.766000 0.574200 21 0 250
-27.102699 45.320202 -5.735100 0.215944 0.976143 0.022647 0.706300 0.587600 69 22 201
-25.982700 45.641201 -5.974700 0.215944 0.976143 0.022647 0.701400 0.609900 65 29 197
-24.446100 44.099098 -3.039500 -0.806467 -0.440747 -0.394147 0.815000 0.599300 254 254 254
-25.718901 44.407902 -5.989100 -0.806467 -0.440747 -0.394147 0.885900 0.607200 254 254 254
-26.246300 42.901402 -5.383600 -0.806467 -0.440747 -0.394147 0.880100 0.569900 254 254 254
-28.380600 42.330502 -3.056600 0.840529 -0.044209 0.539960 0.741600 0.498200 19 0 253
-28.697901 44.238201 -3.477500 0.840529 -0.044209 0.539960 0.737900 0.538900 20 0 252
-28.100901 44.177299 -2.470000 0.840529 -0.044209 0.539960 0.756100 0.537200 19 0 253
-27.637899 42.321201 -1.984400 0.840529 -0.044209 0.539960 0.780200 0.502700 19 0 253
-28.380600 42.330502 -3.056600 0.979149 -0.175223 -0.102788 0.741600 0.498200 19 0 253
-28.292801 42.543098 -4.446800 0.979149 -0.175223 -0.102788 0.704200 0.514300 19 0 253
-28.543800 44.178001 -4.651400 0.979149 -0.175223 -0.102788 0.718600 0.545700 20 3 248
-28.697901 44.238201 -3.477500 0.979149 -0.175223 -0.102788 0.737900 0.538900 20 0 252
-26.753901 45.398300 -2.858600 0.560189 0.737837 0.376544 0.766000 0.574200 20 0 250
-28.100901 44.177299 -2.470000 0.560189 0.737837 0.376544 0.756100 0.537200 19 0 253
-28.697901 44.238201 -3.477500 0.560189 0.737837 0.376544 0.737900 0.538900 20 0 252
-24.935400 45.742901 -3.288800 -0.484106 0.321222 0.813915 0.774000 0.616500 20 0 251
-24.446100 44.099098 -3.039500 -0.484106 0.321222 0.813915 0.815000 0.599300 19 0 253
-25.587200 43.557701 -2.038700 -0.484106 0.321222 0.813915 0.806300 0.556900 19 0 253
-26.117701 44.487900 -2.198700 -0.484106 0.321222 0.813915 0.788200 0.565100 19 0 253
-24.446100 44.099098 -3.039500 -0.765721 -0.642695 -0.024780 0.815000 0.599300 254 68 73
-26.246300 42.901402 -5.383600 -0.765721 -0.642695 -0.024780 0.880100 0.569900 254 68 73
-25.491899 42.827301 -2.370100 -0.765721 -0.642695 -0.024780 0.813300 0.554500 254 68 73
-25.587200 43.557701 -2.038700 -0.765721 -0.642695 -0.024780 0.806300 0.556900 254 68 73
-26.753901 45.398300 -2.858600 -0.068715 0.616533 0.784324 0.766000 0.574200 21 0 250
-24.935400 45.742901 -3.288800 -0.068715 0.616533 0.784324 0.774000 0.616500 20 0 251
-26.117701 44.487900 -2.198700 -0.068715 0.616533 0.784324 0.788200 0.565100 19 0 253
-0.000000 31.552500 0.128500 0.069913 -0.031462 0.997057 0.310700 0.582200 0 253 27
-0.000000 24.132099 -0.356700 0.069913 -0.031462 0.997057 0.310700 0.472800 0 253 27
-3.463700 23.872801 -0.356700 0.069913 -0.031462 0.997057 0.261200 0.472800 0 253 27
-3.798500 31.552500 -0.388900 0.069913 -0.031462 0.997057 0.257800 0.582200 0 253 27
-2.225300 60.301201 -1.334400 0.789816 -0.226827 0.569860 0.633200 0.187400 0 253 27
-0.793500 58.611801 -0.022400 0.789816 -0.226827 0.569860 0.561500 0.129800 0 253 27
-2.043500 58.694401 -1.722000 0.789816 -0.226827 0.569860 0.633000 0.119000 0 253 27
-0.793500 58.611801 -0.022400 0.800106 -0.097243 0.591924 0.561500 0.129800 0 253 27
-0.860300 57.339199 -0.345300 0.800106 -0.097243 0.591924 0.560600 0.087800 0 253 27
-2.071800 58.080299 -1.837600 0.800106 -0.097243 0.591924 0.632000 0.089900 0 253 27
-2.043500 58.694401 -1.722000 0.800106 -0.097243 0.591924 0.633000 0.119000 0 253 27
-2.071800 58.080299 -1.837600 0.594038 -0.791272 0.144939 0.632000 0.089900 254 68 73
-0.860300 57.339199 -0.345300 0.594038 -0.791272 0.144939 0.560600 0.087800 254 68 73
-0.509500 56.862801 -2.081200 0.594038 -0.791272 0.144939 0.570500 0.026600 254 68 73
-1.480400 57.287800 -3.167400 0.594038 -0.791272 0.144939 0.631900 0.022800 254 68 73
-0.179900 61.274700 0.058500 0.090663 0.188705 0.977840 0.542100 0.223900 0 254 27
-0.785400 61.539799 -0.048800 0.090663 0.188705 0.977840 0.562200 0.247600 0 254 27
-0.000000 61.912998 -0.048000 0.090663 0.188705 0.977840 0.533800 0.254400 0 254 27
-15.884600 46.520500 -7.855800 0.098387 0.080586 -0.991880 0.590800 0.782100 0 253 27
-14.885000 46.974701 -7.946000 0.098387 0.080586 -0.991880 0.590800 0.803100 0 253 27
-16.136200 50.023998 -7.546200 0.098387 0.080586 -0.991880 0.529500 0.803100 0 253 27
-17.208200 49.477699 -7.512200 0.098387 0.080586 -0.991880 0.531700 0.782100 0 253 27
-15.636800 49.715099 -4.015700 0.436830 0.889212 0.135946 0.469900 0.803100 1 215 59
-16.810101 49.139900 -3.928800 0.436830 0.889212 0.135946 0.469900 0.782100 5 158 110
-17.208200 49.477699 -7.512200 0.436830 0.889212 0.135946 0.531700 0.782100 0 227 47
-16.136200 50.023998 -7.546200 0.436830 0.889212 0.135946 0.529500 0.803100 0 244 34
-16.192200 44.960400 -4.877100 -0.435886 -0.826304 -0.356686 0.398600 0.782100 254 252 252
-14.977100 45.689201 -4.821000 -0.435886 -0.826304 -0.356686 0.400900 0.803100 254 202 204
-14.885000 46.974701 -7.946000 -0.435886 -0.826304 -0.356686 0.347800 0.803100 254 123 127
-15.884600 46.520500 -7.855800 -0.435886 -0.826304 -0.356686 0.347800 0.782100 254 212 213
-16.810101 49.139900 -3.928800 -0.116417 -0.190205 0.974818 0.469900 0.782100 35 133 112
-15.636800 49.715099 -4.015700 -0.116417 -0.190205 0.974818 0.469900 0.803100 25 190 59
-14.977100 45.689201 -4.821000 -0.116417 -0.190205 0.974818 0.400900 0.803100 18 0 253
-16.192200 44.960400 -4.877100 -0.116417 -0.190205 0.974818 0.398600 0.782100 18 0 253
-13.779500 47.417198 -7.715300 0.030432 0.115440 -0.992848 0.590800 0.828100 12 79 181
-8.756500 49.321098 -7.632900 0.030432 0.115440 -0.992848 0.590800 0.916400 0 250 29
-9.827700 52.989700 -7.188500 0.030432 0.115440 -0.992848 0.526400 0.916400 0 253 27
-14.989100 50.565300 -7.297200 0.030432 0.115440 -0.992848 0.526200 0.828100 0 249 29
-15.636800 49.715099 -4.015700 0.447311 0.883265 0.140554 0.469900 0.803100 1 215 59
-16.136200 50.023998 -7.546200 0.447311 0.883265 0.140554 0.529500 0.803100 0 244 34
-14.989100 50.565300 -7.297200 0.447311 0.883265 0.140554 0.526200 0.828100 0 249 29
-13.779500 47.417198 -7.715300 -0.409629 -0.847844 -0.336696 0.347800 0.823100 254 70 75
-14.885000 46.974701 -7.946000 -0.409629 -0.847844 -0.336696 0.347800 0.803100 254 123 127
-14.977100 45.689201 -4.821000 -0.409629 -0.847844 -0.336696 0.400900 0.803100 254 202 204
-1.239800 14.644800 -6.465300 -0.983473 -0.143727 0.110102 0.774100 0.204900 254 254 254
-1.766900 13.754900 -2.918700 -0.983473 -0.143727 0.110102 0.809900 0.215800 254 254 254
-1.716700 14.450400 -2.459200 -0.983473 -0.143727 0.110102 0.808600 0.236100 254 254 254
-26.117701 44.487900 -2.198700 -0.374471 0.258120 0.890587 0.788200 0.565100 19 0 253
-25.587200 43.557701 -2.038700 -0.374471 0.258120 0.890587 0.806300 0.556900 19 0 253
-26.775499 43.007000 -1.492900 -0.374471 0.258120 0.890587 0.799700 0.523000 19 0 253
-27.058001 43.733101 -1.471100 -0.374471 0.258120 0.890587 0.783900 0.527900 19 0 253
-25.587200 43.557701 -2.038700 -0.386633 -0.610879 0.690899 0.806300 0.556900 19 0 253
-25.491899 42.827301 -2.370100 -0.386633 -0.610879 0.690899 0.813300 0.554500 19 0 253
-27.637899 42.321201 -1.984400 -0.386633 -0.610879 0.690899 0.816200 0.507300 19 0 253
-26.775499 43.007000 -1.492900 -0.386633 -0.610879 0.690899 0.799700 0.523000 19 0 253
-26.117701 44.487900 -2.198700 0.202601 0.798645 0.566673 0.788200 0.565100 19 0 253
-27.058001 43.733101 -1.471100 0.202601 0.798645 0.566673 0.783900 0.527900 19 0 253
-28.100901 44.177299 -2.470000 0.202601 0.798645 0.566673 0.756100 0.537200 19 0 253
-8.184300 53.108700 -3.320400 0.347207 -0.172872 0.921717 0.469900 0.942000 254 68 73
-6.624100 53.529800 -2.653700 0.347207 -0.172872 0.921717 0.469900 0.977800 254 68 73
-7.813100 49.342701 -3.886900 0.347207 -0.172872 0.921717 0.407700 0.942000 254 68 73
-8.747800 53.770199 -7.353300 0.055764 0.062731 -0.996471 0.528600 0.942000 0 253 27
-9.827700 52.989700 -7.188500 0.055764 0.062731 -0.996471 0.526400 0.916400 0 253 27
-8.756500 49.321098 -7.632900 0.055764 0.062731 -0.996471 0.590800 0.916400 0 253 27
-6.775800 50.206501 -7.534500 0.055764 0.062731 -0.996471 0.590800 0.942000 0 253 27
-28.543800 44.178001 -4.651400 0.562493 0.826801 -0.001192 0.718600 0.545700 20 3 248
-27.102699 45.320202 -5.735100 0.562493 0.826801 -0.001192 0.706300 0.587600 12 64 193
-26.753901 45.398300 -2.858600 0.562493 0.826801 -0.001192 0.766000 0.574200 20 0 250
-28.697901 44.238201 -3.477500 0.562493 0.826801 -0.001192 0.737900 0.538900 20 0 252
-26.246300 42.901402 -5.383600 -0.106461 -0.983873 -0.143736 0.880100 0.569900 0 252 27
-28.292801 42.543098 -4.446800 -0.106461 -0.983873 -0.143736 0.879400 0.523100 87 180 37
-28.380600 42.330502 -3.056600 -0.106461 -0.983873 -0.143736 0.853500 0.507000 242 73 67
-28.100901 44.177299 -2.470000 0.192584 0.484112 0.853550 0.756100 0.537200 19 0 253
-26.753901 45.398300 -2.858600 0.192584 0.484112 0.853550 0.766000 0.574200 21 0 250
-26.117701 44.487900 -2.198700 0.192584 0.484112 0.853550 0.788200 0.565100 19 0 253
-1.712600 0.024900 -9.195700 -0.013475 -0.999909 -0.000374 0.765100 0.147100 19 0 253
-3.252600 0.001600 -8.591000 -0.013475 -0.999909 -0.000374 0.751000 0.138000 19 0 253
-5.176800 -0.025000 -0.598300 -0.013475 -0.999909 -0.000374 0.748300 0.055100 18 0 253
-3.769300 -0.009000 1.132900 -0.013475 -0.999909 -0.000374 0.765800 0.040900 18 0 253
-0.000000 61.912998 -0.048000 0.158526 0.331625 0.929997 0.533800 0.254400 0 254 27
-0.785400 61.539799 -0.048800 0.158526 0.331625 0.929997 0.562200 0.247600 0 254 27
-0.000000 62.775902 -0.355700 0.158526 0.331625 0.929997 0.533900 0.286800 0 254 27
-0.340300 31.400700 -9.928000 -0.943868 -0.327610 -0.042246 0.694900 0.384200 254 254 254
-0.845100 29.891001 -9.498900 -0.943868 -0.327610 -0.042246 0.702700 0.368200 254 254 254
-0.425600 30.069099 -1.507500 -0.943868 -0.327610 -0.042246 0.785600 0.393300 254 254 254
-0.509500 56.862801 -2.081200 0.000000 -0.045410 0.998968 0.308000 0.953500 254 127 129
-0.509500 56.862801 -2.081200 0.098448 -0.971038 0.217700 0.570500 0.026600 0 253 27
-0.860300 57.339199 -0.345300 0.098448 -0.971038 0.217700 0.560600 0.087800 0 253 27
-0.000000 57.320400 0.190300 0.098448 -0.971038 0.217700 0.533800 0.095300 0 253 27
-0.000000 56.862801 -2.081200 0.098448 -0.971038 0.217700 0.533800 0.019000 0 253 27
-5.598500 31.822901 -1.404300 0.881264 0.021588 0.472131 0.847900 0.413200 0 240 37
-6.824000 22.193899 -3.251500 0.881264 0.021588 0.472131 0.860400 0.301600 3 179 89
-7.453900 29.910801 -4.780100 0.881264 0.021588 0.472131 0.884800 0.385400 18 0 251
-6.824000 22.193899 -3.251500 0.921284 -0.108958 -0.373315 0.860400 0.301600 3 179 89
-5.317800 22.936800 -8.016200 0.921284 -0.108958 -0.373315 0.916400 0.301600 18 0 252
-5.595300 29.761600 -8.492500 0.921284 -0.108958 -0.373315 0.927500 0.375900 18 0 253
-7.453900 29.910801 -4.780100 0.921284 -0.108958 -0.373315 0.884800 0.385400 18 0 251
-3.798500 31.552500 -0.388900 0.401815 -0.146587 0.903912 0.824000 0.411400 0 253 27
-2.189200 21.987900 -1.483700 0.401815 -0.146587 0.903912 0.804500 0.301600 0 253 27
-6.824000 22.193899 -3.251500 0.401815 -0.146587 0.903912 0.860400 0.301600 3 179 89
-5.598500 31.822901 -1.404300 0.401815 -0.146587 0.903912 0.847900 0.413200 0 240 37
-0.340300 31.400700 -9.928000 0.230509 -0.107925 -0.967067 0.986800 0.385200 0 253 27
-4.970000 33.082802 -8.871900 0.230509 -0.107925 -0.967067 0.938900 0.409500 0 253 27
-5.595300 29.761600 -8.492500 0.230509 -0.107925 -0.967067 0.927500 0.375900 0 253 27
-0.845100 29.891001 -9.498900 0.230509 -0.107925 -0.967067 0.978500 0.369500 0 253 27
-0.835600 22.853901 -8.210700 -0.992236 -0.110106 0.057826 0.728900 0.301600 254 254 254
-2.189200 21.987900 -1.483700 -0.992236 -0.110106 0.057826 0.804500 0.301600 254 254 254
-0.425600 30.069099 -1.507500 -0.992236 -0.110106 0.057826 0.785600 0.393300 254 254 254
-0.845100 29.891001 -9.498900 -0.992236 -0.110106 0.057826 0.702700 0.368200 254 254 254
-2.162800 35.743500 -9.599900 0.324673 0.084802 -0.942017 0.972400 0.433600 0 253 27
-5.283200 35.952900 -7.814600 0.324673 0.084802 -0.942017 0.933900 0.441300 0 253 27
-4.970000 33.082802 -8.871900 0.324673 0.084802 -0.942017 0.938900 0.409500 0 253 27
-0.340300 31.400700 -9.928000 0.324673 0.084802 -0.942017 0.986800 0.385200 0 253 27
-5.283200 35.952900 -7.814600 0.889642 0.311183 -0.334218 0.142200 0.631800 18 1 249
-5.919200 37.619099 -4.570300 0.889642 0.311183 -0.334218 0.183400 0.661600 9 98 162
-6.542300 35.480598 -4.902800 0.889642 0.311183 -0.334218 0.182500 0.631800 15 32 221
-5.919200 37.619099 -4.570300 0.882631 0.186784 0.431364 0.183400 0.661600 9 98 162
-4.685700 36.664101 -1.616400 0.882631 0.186784 0.431364 0.239300 0.661600 0 250 28
-5.598500 31.822901 -1.404300 0.882631 0.186784 0.431364 0.231700 0.582200 0 240 37
-6.542300 35.480598 -4.902800 0.882631 0.186784 0.431364 0.182500 0.631800 15 32 221
-0.474100 61.294899 -0.607800 0.490764 0.255871 0.832875 0.567800 0.227200 254 68 73
-0.596000 60.268700 -0.255900 0.490764 0.255871 0.832875 0.565100 0.185300 254 68 73
-2.225300 60.301201 -1.334400 0.490764 0.255871 0.832875 0.633200 0.187400 254 68 73
-1.340700 61.343498 -1.024900 0.490764 0.255871 0.832875 0.599900 0.231700 254 68 73
-1.340700 61.343498 -1.024900 0.199083 -0.932669 0.300824 0.599900 0.231700 0 253 27
-1.792100 61.563202 -0.648200 0.199083 -0.932669 0.300824 0.603400 0.250800 0 253 27
-0.785400 61.539799 -0.048800 0.199083 -0.932669 0.300824 0.562200 0.247600 0 253 27
-0.474100 61.294899 -0.607800 0.199083 -0.932669 0.300824 0.567800 0.227200 0 253 27
-0.000000 45.235802 -8.516300 0.205813 0.023108 -0.978318 0.061600 0.762900 0 253 27
-5.495700 46.043098 -6.732400 0.205813 0.023108 -0.978318 0.140100 0.788400 0 252 27
-2.827600 38.171799 -8.088300 0.205813 0.023108 -0.978318 0.114700 0.661600 8 119 142
-0.000000 38.221600 -8.073300 0.205813 0.023108 -0.978318 0.073400 0.661600 0 240 38
-0.425600 30.069099 -1.507500 -0.290133 -0.060504 0.955072 0.785600 0.393300 254 254 254
-2.189200 21.987900 -1.483700 -0.290133 -0.060504 0.955072 0.804500 0.301600 254 254 254
-3.798500 31.552500 -0.388900 -0.290133 -0.060504 0.955072 0.824000 0.411400 254 254 254
-0.000000 31.547001 -9.939100 -0.348901 -0.925923 -0.144686 0.694200 0.388200 254 68 73
-0.340300 31.400700 -9.928000 -0.348901 -0.925923 -0.144686 0.694900 0.384200 254 68 73
-0.425600 30.069099 -1.507500 -0.348901 -0.925923 -0.144686 0.785600 0.393300 254 68 73
-0.000000 30.215401 -1.522000 -0.348901 -0.925923 -0.144686 0.785000 0.398100 254 68 73
-21.061199 44.183601 -7.611200 0.028361 0.039319 -0.998824 0.590800 0.698800 18 0 253
-15.884600 46.520500 -7.855800 0.028361 0.039319 -0.998824 0.590800 0.782100 17 5 246
-17.208200 49.477699 -7.512200 0.028361 0.039319 -0.998824 0.531700 0.782100 0 227 47
-22.585199 48.327702 -7.594400 0.028361 0.039319 -0.998824 0.533600 0.698800 0 239 38
-22.348700 46.932201 -2.822400 0.723103 0.652497 0.226650 0.469900 0.674700 18 0 249
-23.337700 47.268200 -6.945000 0.723103 0.652497 0.226650 0.530800 0.674700 2 175 92
-22.585199 48.327702 -7.594400 0.723103 0.652497 0.226650 0.533600 0.698800 0 239 38
-21.061199 44.183601 -7.611200 0.095048 -0.949863 -0.297868 0.347800 0.693400 0 253 27
-22.105101 44.119598 -7.074000 0.095048 -0.949863 -0.297868 0.362600 0.674700 0 253 27
-21.936399 43.055199 -3.733600 0.095048 -0.949863 -0.297868 0.412700 0.674700 0 253 27
-0.340300 31.400700 -9.928000 0.010374 0.075249 -0.997111 0.986800 0.385200 0 253 27
-0.000000 31.547001 -9.939100 0.010374 0.075249 -0.997111 0.990600 0.386300 0 253 27
-0.000000 35.795200 -9.599900 0.010374 0.075249 -0.997111 0.995500 0.431600 0 253 27
-2.162800 35.743500 -9.599900 0.010374 0.075249 -0.997111 0.972400 0.433600 0 253 27
-5.919200 37.619099 -4.570300 0.561685 0.544798 -0.622660 0.183400 0.661600 9 98 162
-5.283200 35.952900 -7.814600 0.561685 0.544798 -0.622660 0.142200 0.631800 18 1 249
-2.162800 35.743500 -9.599900 0.561685 0.544798 -0.622660 0.096700 0.631800 16 28 225
-2.827600 38.171799 -8.088300 0.561685 0.544798 -0.622660 0.114700 0.661600 8 119 142
-28.543800 44.178001 -4.651400 0.410462 -0.233070 -0.881589 0.718600 0.545700 77 187 34
-28.292801 42.543098 -4.446800 0.410462 -0.233070 -0.881589 0.704200 0.514300 87 180 37
-26.246300 42.901402 -5.383600 0.410462 -0.233070 -0.881589 0.663100 0.553800 0 252 27
-27.102699 45.320202 -5.735100 0.410462 -0.233070 -0.881589 0.706300 0.587600 0 253 27
-25.491899 42.827301 -2.370100 -0.201709 -0.968181 -0.148119 0.813300 0.554500 190 254 195
-28.380600 42.330502 -3.056600 -0.201709 -0.968181 -0.148119 0.853500 0.507000 242 254 242
-27.637899 42.321201 -1.984400 -0.201709 -0.968181 -0.148119 0.816200 0.507300 254 254 254
-26.246300 42.901402 -5.383600 -0.185319 -0.980147 -0.070494 0.880100 0.569900 0 254 27
-28.380600 42.330502 -3.056600 -0.185319 -0.980147 -0.070494 0.853500 0.507000 242 254 242
-25.491899 42.827301 -2.370100 -0.185319 -0.980147 -0.070494 0.813300 0.554500 190 254 195
-2.162800 35.743500 -9.599900 0.008224 0.529675 -0.848161 0.096700 0.631800 0 253 27
-0.000000 35.795200 -9.599900 0.008224 0.529675 -0.848161 0.068300 0.631800 0 253 27
-0.000000 38.221600 -8.073300 0.008224 0.529675 -0.848161 0.073400 0.661600 0 253 27
-2.827600 38.171799 -8.088300 0.008224 0.529675 -0.848161 0.114700 0.661600 0 253 27
-0.706900 62.538601 -0.289700 0.498102 0.211804 0.840853 0.409100 0.538600 0 253 27
-1.838200 62.255798 -0.802600 0.498102 0.211804 0.840853 0.430000 0.507000 0 253 27
-1.901400 63.532299 -1.247600 0.498102 0.211804 0.840853 0.451500 0.531400 0 253 27
-0.672300 63.485901 -0.421800 0.498102 0.211804 0.840853 0.426300 0.552700 0 253 27
-1.901400 63.532299 -1.247600 0.915374 0.111541 0.386845 0.451500 0.531400 0 253 27
-1.838200 62.255798 -0.802600 0.915374 0.111541 0.386845 0.430000 0.507000 0 253 27
-3.194200 60.597198 -3.460400 0.915374 0.111541 0.386845 0.492000 0.451400 0 253 27
-2.758700 63.532299 -3.348800 0.915374 0.111541 0.386845 0.499700 0.518700 0 253 27
-2.758700 63.532299 -3.348800 0.984906 0.142377 0.098436 0.499700 0.518700 0 253 27
-3.194200 60.597198 -3.460400 0.984906 0.142377 0.098436 0.492000 0.451400 0 253 27
-3.446000 60.597198 -5.980300 0.984906 0.142377 0.098436 0.552100 0.445900 0 253 27
-3.010600 63.532299 -5.868700 0.984906 0.142377 0.098436 0.554200 0.511800 0 253 27
-3.194200 60.597198 -3.460400 0.917633 0.222238 0.329485 0.492000 0.451400 0 253 27
-1.838200 62.255798 -0.802600 0.917633 0.222238 0.329485 0.430000 0.507000 0 253 27
-2.336800 60.597198 -1.072500 0.917633 0.222238 0.329485 0.434100 0.460700 0 253 27
-2.130500 53.628601 -1.359200 0.842435 0.033555 0.537753 0.416700 0.297200 0 253 27
-4.088800 54.879799 -3.460400 0.842435 0.033555 0.537753 0.486800 0.316000 0 253 27
-3.194200 60.597198 -3.460400 0.842435 0.033555 0.537753 0.492000 0.451400 0 253 27
-2.336800 60.597198 -1.072500 0.842435 0.033555 0.537753 0.434100 0.460700 0 253 27
-4.088800 54.879799 -3.460400 0.982155 0.156435 0.104398 0.486800 0.316000 0 253 27
-4.340700 55.234299 -6.210400 0.982155 0.156435 0.104398 0.542400 0.331500 0 254 27
-3.446000 60.597198 -5.980300 0.982155 0.156435 0.104398 0.552100 0.445900 0 253 27
-3.194200 60.597198 -3.460400 0.982155 0.156435 0.104398 0.492000 0.451400 0 253 27
-3.010600 63.532299 -5.868700 0.839145 0.204241 -0.504105 0.554200 0.511800 0 253 27
-3.446000 60.597198 -5.980300 0.839145 0.204241 -0.504105 0.552100 0.445900 0 253 27
-2.517200 60.597198 -7.879200 0.839145 0.204241 -0.504105 0.601000 0.450200 0 253 27
-1.932100 63.532299 -7.311200 0.839145 0.204241 -0.504105 0.591100 0.519300 0 253 27
-3.446000 60.597198 -5.980300 0.847590 0.127945 -0.514996 0.552100 0.445900 0 253 27
-4.340700 55.234299 -6.210400 0.847590 0.127945 -0.514996 0.542400 0.331500 0 254 27
-2.990300 54.496300 -8.246000 0.847590 0.127945 -0.514996 0.608400 0.297700 0 253 27
-2.517200 60.597198 -7.879200 0.847590 0.127945 -0.514996 0.601000 0.450200 0 253 27
-1.932100 63.532299 -7.311200 0.365116 0.222173 -0.904063 0.591100 0.519300 0 253 27
-2.517200 60.597198 -7.879200 0.365116 0.222173 -0.904063 0.601000 0.450200 0 253 27
-0.000000 60.597198 -8.812800 0.365116 0.222173 -0.904063 0.661800 0.464200 0 253 27
-0.000000 63.532299 -8.174500 0.365116 0.222173 -0.904063 0.634800 0.537700 0 253 27
-2.990300 54.496300 -8.246000 0.255106 0.035267 -0.966270 0.608400 0.297700 0 253 27
-0.000000 54.050800 -8.782700 0.255106 0.035267 -0.966270 0.682300 0.308600 0 253 27
-0.000000 60.597198 -8.812800 0.255106 0.035267 -0.966270 0.661800 0.464200 0 253 27
-2.517200 60.597198 -7.879200 0.255106 0.035267 -0.966270 0.601000 0.450200 0 253 27
-0.672300 63.485901 -0.421800 0.422112 0.618267 0.662999 0.426300 0.552700 0 253 27
-1.901400 63.532299 -1.247600 0.422112 0.618267 0.662999 0.451500 0.531400 0 253 27
-1.171400 65.057899 -2.205500 0.422112 0.618267 0.662999 0.482000 0.564300 0 253 27
-1.901400 63.532299 -1.247600 0.756752 0.608663 0.238446 0.451500 0.531400 0 253 27
-2.758700 63.532299 -3.348800 0.756752 0.608663 0.238446 0.499700 0.518700 0 253 27
-1.795600 65.057899 -4.806100 0.756752 0.608663 0.238446 0.538600 0.556700 0 253 27
-1.171400 65.057899 -2.205500 0.756752 0.608663 0.238446 0.482000 0.564300 0 253 27
-2.758700 63.532299 -3.348800 0.806293 0.585999 0.080601 0.499700 0.518700 0 253 27
-3.010600 63.532299 -5.868700 0.806293 0.585999 0.080601 0.554200 0.511800 0 253 27
-1.795600 65.057899 -4.806100 0.806293 0.585999 0.080601 0.538600 0.556700 0 253 27
-3.010600 63.532299 -5.868700 0.468822 0.765524 -0.440657 0.554200 0.511800 0 253 27
-1.932100 63.532299 -7.311200 0.468822 0.765524 -0.440657 0.591100 0.519300 0 254 27
-0.000000 65.057899 -6.421400 0.468822 0.765524 -0.440657 0.588900 0.582100 0 253 27
-1.795600 65.057899 -4.806100 0.468822 0.765524 -0.440657 0.538600 0.556700 0 253 27
-1.932100 63.532299 -7.311200 0.281463 0.723860 -0.629925 0.591100 0.519300 0 254 27
-0.000000 63.532299 -8.174500 0.281463 0.723860 -0.629925 0.634800 0.537700 0 253 27
-0.000000 65.057899 -6.421400 0.281463 0.723860 -0.629925 0.588900 0.582100 0 253 27
-1.171400 65.057899 -2.205500 0.296421 0.952404 0.071148 0.482000 0.564300 0 253 27
-1.795600 65.057899 -4.806100 0.296421 0.952404 0.071148 0.538600 0.556700 0 253 27
-0.000000 65.560898 -4.058400 0.296421 0.952404 0.071148 0.523700 0.603300 0 253 27
-1.795600 65.057899 -4.806100 0.184093 0.961370 -0.204641 0.538600 0.556700 0 254 27
-0.000000 65.057899 -6.421400 0.184093 0.961370 -0.204641 0.588900 0.582100 0 254 27
-0.000000 65.560898 -4.058400 0.184093 0.961370 -0.204641 0.523700 0.603300 0 254 27
-0.672300 63.485901 -0.421800 0.000000 0.750225 0.661183 0.426300 0.552700 0 254 27
-1.171400 65.057899 -2.205500 0.000000 0.750225 0.661183 0.482000 0.564300 0 254 27
--1.171400 65.057899 -2.205500 0.000000 0.750225 0.661183 0.466700 0.607600 0 254 27
--0.672300 63.485901 -0.421800 0.000000 0.750225 0.661183 0.416100 0.581700 0 254 27
-0.706900 62.538601 -0.289700 0.204667 0.142518 0.968401 0.409100 0.538600 0 254 27
-0.672300 63.485901 -0.421800 0.204667 0.142518 0.968401 0.426300 0.552700 0 254 27
-0.000000 62.538601 -0.140300 0.204667 0.142518 0.968401 0.398200 0.559100 0 254 27
-0.672300 63.485901 -0.421800 -0.000000 0.284850 0.958572 0.426300 0.552700 0 254 27
--0.672300 63.485901 -0.421800 -0.000000 0.284850 0.958572 0.416100 0.581700 0 254 27
-0.000000 62.538601 -0.140300 -0.000000 0.284850 0.958572 0.398200 0.559100 0 254 27
-2.130500 53.628601 -1.359200 -0.899990 0.017690 0.435552 0.416700 0.297200 0 253 27
-2.336800 60.597198 -1.072500 -0.899990 0.017690 0.435552 0.434100 0.460700 0 253 27
-1.393700 60.597198 -3.164700 -0.899990 0.017690 0.435552 0.380300 0.463400 0 253 27
-1.187300 53.628601 -3.164700 -0.899990 0.017690 0.435552 0.369000 0.300200 0 253 27
--0.706900 62.538601 -0.289700 -0.498102 0.211804 0.840853 0.409100 0.538600 0 254 27
--0.672300 63.485901 -0.421800 -0.498102 0.211804 0.840853 0.426300 0.552800 0 254 27
--1.901400 63.532299 -1.247600 -0.498102 0.211804 0.840853 0.451500 0.531500 0 254 27
--1.838200 62.255798 -0.802600 -0.498102 0.211804 0.840853 0.430000 0.507100 0 254 27
--1.901400 63.532299 -1.247600 -0.915374 0.111541 0.386845 0.451500 0.531500 0 254 27
--2.758700 63.532299 -3.348800 -0.915374 0.111541 0.386845 0.499700 0.518800 0 254 27
--3.194200 60.597198 -3.460400 -0.915374 0.111541 0.386845 0.492000 0.451500 0 254 27
--1.838200 62.255798 -0.802600 -0.915374 0.111541 0.386845 0.430000 0.507100 0 254 27
--2.758700 63.532299 -3.348800 -0.984906 0.142377 0.098436 0.499700 0.518800 0 254 27
--3.010600 63.532299 -5.868700 -0.984906 0.142377 0.098436 0.554200 0.511900 0 254 27
--3.446000 60.597198 -5.980300 -0.984906 0.142377 0.098436 0.552100 0.445900 0 254 27
--3.194200 60.597198 -3.460400 -0.984906 0.142377 0.098436 0.492000 0.451500 0 254 27
--3.194200 60.597198 -3.460400 -0.917633 0.222238 0.329485 0.492000 0.451500 0 254 27
--2.336800 60.597198 -1.072500 -0.917633 0.222238 0.329485 0.434000 0.460800 0 254 27
--1.838200 62.255798 -0.802600 -0.917633 0.222238 0.329485 0.430000 0.507100 0 254 27
--2.130500 53.628601 -1.359200 -0.842435 0.033555 0.537753 0.416600 0.297300 0 253 27
--2.336800 60.597198 -1.072500 -0.842435 0.033555 0.537753 0.434000 0.460800 0 254 27
--3.194200 60.597198 -3.460400 -0.842435 0.033555 0.537753 0.492000 0.451500 0 254 27
--4.088800 54.879799 -3.460400 -0.842435 0.033555 0.537753 0.486700 0.316100 0 253 27
--4.088800 54.879799 -3.460400 -0.982155 0.156435 0.104398 0.486700 0.316100 0 253 27
--3.194200 60.597198 -3.460400 -0.982155 0.156435 0.104398 0.492000 0.451500 0 253 27
--3.446000 60.597198 -5.980300 -0.982155 0.156435 0.104398 0.552100 0.445900 0 253 27
--4.340700 55.234299 -6.210400 -0.982155 0.156435 0.104398 0.542400 0.331500 0 254 27
--3.010600 63.532299 -5.868700 -0.839145 0.204241 -0.504105 0.554200 0.511900 0 254 27
--1.932100 63.532299 -7.311200 -0.839145 0.204241 -0.504105 0.591100 0.519300 0 254 27
--2.517200 60.597198 -7.879200 -0.839145 0.204241 -0.504105 0.601000 0.450300 0 254 27
--3.446000 60.597198 -5.980300 -0.839145 0.204241 -0.504105 0.552100 0.445900 0 254 27
--3.446000 60.597198 -5.980300 -0.847590 0.127945 -0.514996 0.552100 0.445900 0 254 27
--2.517200 60.597198 -7.879200 -0.847590 0.127945 -0.514996 0.601000 0.450300 0 254 27
--2.990300 54.496300 -8.246000 -0.847590 0.127945 -0.514996 0.608300 0.297700 0 254 27
--4.340700 55.234299 -6.210400 -0.847590 0.127945 -0.514996 0.542400 0.331500 0 254 27
--1.932100 63.532299 -7.311200 -0.365116 0.222173 -0.904063 0.591100 0.519300 0 254 27
-0.000000 63.532299 -8.174500 -0.365116 0.222173 -0.904063 0.634800 0.537700 0 254 27
-0.000000 60.597198 -8.812800 -0.365116 0.222173 -0.904063 0.661800 0.464200 0 254 27
--2.517200 60.597198 -7.879200 -0.365116 0.222173 -0.904063 0.601000 0.450300 0 254 27
--2.990300 54.496300 -8.246000 -0.255106 0.035267 -0.966270 0.608300 0.297700 0 254 27
--2.517200 60.597198 -7.879200 -0.255106 0.035267 -0.966270 0.601000 0.450300 0 254 27
-0.000000 60.597198 -8.812800 -0.255106 0.035267 -0.966270 0.661800 0.464200 0 254 27
-0.000000 54.050800 -8.782700 -0.255106 0.035267 -0.966270 0.682300 0.308600 0 254 27
--0.672300 63.485901 -0.421800 -0.422112 0.618267 0.662999 0.426300 0.552800 0 254 27
--1.171400 65.057899 -2.205500 -0.422112 0.618267 0.662999 0.482000 0.564400 0 254 27
--1.901400 63.532299 -1.247600 -0.422112 0.618267 0.662999 0.451500 0.531500 0 254 27
--1.901400 63.532299 -1.247600 -0.756752 0.608663 0.238446 0.451500 0.531500 0 254 27
--1.171400 65.057899 -2.205500 -0.756752 0.608663 0.238446 0.482000 0.564400 0 254 27
--1.795600 65.057899 -4.806100 -0.756752 0.608663 0.238446 0.538600 0.556700 0 254 27
--2.758700 63.532299 -3.348800 -0.756752 0.608663 0.238446 0.499700 0.518800 0 254 27
--2.758700 63.532299 -3.348800 -0.806293 0.585999 0.080601 0.499700 0.518800 0 254 27
--1.795600 65.057899 -4.806100 -0.806293 0.585999 0.080601 0.538600 0.556700 0 254 27
--3.010600 63.532299 -5.868700 -0.806293 0.585999 0.080601 0.554200 0.511900 0 254 27
--3.010600 63.532299 -5.868700 -0.468822 0.765524 -0.440657 0.554200 0.511900 0 254 27
--1.795600 65.057899 -4.806100 -0.468822 0.765524 -0.440657 0.538600 0.556700 0 254 27
-0.000000 65.057899 -6.421400 -0.468822 0.765524 -0.440657 0.589000 0.582100 0 254 27
--1.932100 63.532299 -7.311200 -0.468822 0.765524 -0.440657 0.591100 0.519300 0 254 27
--1.932100 63.532299 -7.311200 -0.281463 0.723860 -0.629925 0.591100 0.519300 0 254 27
-0.000000 65.057899 -6.421400 -0.281463 0.723860 -0.629925 0.589000 0.582100 0 254 27
-0.000000 63.532299 -8.174500 -0.281463 0.723860 -0.629925 0.634800 0.537700 0 254 27
--1.171400 65.057899 -2.205500 -0.296421 0.952404 0.071148 0.482000 0.564400 0 254 27
-0.000000 65.560898 -4.058400 -0.296421 0.952404 0.071148 0.523700 0.603400 0 254 27
--1.795600 65.057899 -4.806100 -0.296421 0.952404 0.071148 0.538600 0.556700 0 254 27
--1.795600 65.057899 -4.806100 -0.184093 0.961370 -0.204641 0.538600 0.556700 0 254 27
-0.000000 65.560898 -4.058400 -0.184093 0.961370 -0.204641 0.523700 0.603400 0 254 27
-0.000000 65.057899 -6.421400 -0.184093 0.961370 -0.204641 0.589000 0.582100 0 254 27
--1.171400 65.057899 -2.205500 0.000000 0.965072 0.261984 0.466700 0.607600 0 254 27
-1.171400 65.057899 -2.205500 0.000000 0.965072 0.261984 0.482000 0.564300 0 254 27
-0.000000 65.560898 -4.058400 0.000000 0.965072 0.261984 0.523700 0.603300 0 254 27
--0.706900 62.538601 -0.289700 -0.204667 0.142518 0.968401 0.409100 0.538600 0 254 27
-0.000000 62.538601 -0.140300 -0.204667 0.142518 0.968401 0.398200 0.559200 0 254 27
--0.672300 63.485901 -0.421800 -0.204667 0.142518 0.968401 0.426300 0.552800 0 254 27
--2.130500 53.628601 -1.359200 0.899990 0.017690 0.435552 0.416600 0.297300 164 133 56
--1.187300 53.628601 -3.164700 0.899990 0.017690 0.435552 0.369000 0.300300 209 100 64
--1.393700 60.597198 -3.164700 0.899990 0.017690 0.435552 0.380200 0.463500 254 254 254
--2.336800 60.597198 -1.072500 0.899990 0.017690 0.435552 0.434000 0.460800 254 254 254
-8.704300 24.905701 -6.036500 0.233777 0.158187 -0.959336 0.967100 0.466200 0 253 27
-7.984800 25.127701 -6.177400 0.233777 0.158187 -0.959336 0.966400 0.464600 0 253 27
-7.649900 27.558001 -5.856100 0.233777 0.158187 -0.959336 0.993500 0.506600 0 253 27
-8.503900 27.435900 -5.670300 0.233777 0.158187 -0.959336 0.976600 0.507100 0 253 27
-6.463600 36.223400 -3.704900 0.910800 0.108730 0.398273 0.962000 0.710700 9 100 160
-5.778000 35.994701 -1.773100 0.910800 0.108730 0.398273 0.922200 0.717000 0 231 44
-7.451900 27.210300 -3.504400 0.910800 0.108730 0.398273 0.930000 0.516400 18 2 248
-8.503900 27.435900 -5.670300 0.910800 0.108730 0.398273 0.976600 0.507100 18 0 253
-5.115000 35.782600 -2.051700 -0.272059 -0.232411 0.933793 0.916000 0.725700 0 241 37
-6.597900 27.332300 -3.690200 -0.272059 -0.232411 0.933793 0.913000 0.515500 16 16 234
-7.451900 27.210300 -3.504400 -0.272059 -0.232411 0.933793 0.930000 0.516400 18 2 248
-5.778000 35.994701 -1.773100 -0.272059 -0.232411 0.933793 0.922200 0.717000 0 231 44
-5.743400 36.019600 -3.995900 0.266707 0.266447 -0.926215 0.971100 0.718900 0 253 27
-6.463600 36.223400 -3.704900 0.266707 0.266447 -0.926215 0.962000 0.710700 0 253 27
-8.503900 27.435900 -5.670300 0.266707 0.266447 -0.926215 0.976600 0.507100 0 253 27
-7.649900 27.558001 -5.856100 0.266707 0.266447 -0.926215 0.993500 0.506600 0 253 27
-7.451900 27.210300 -3.504400 -0.285900 -0.782712 0.552832 0.930000 0.516400 21 0 248
-6.597900 27.332300 -3.690200 -0.285900 -0.782712 0.552832 0.913000 0.515500 35 1 237
-7.984800 25.127701 -6.177400 -0.285900 -0.782712 0.552832 0.966400 0.464600 19 0 253
-8.704300 24.905701 -6.036500 -0.285900 -0.782712 0.552832 0.967100 0.466200 19 0 253
-7.451900 27.210300 -3.504400 0.899158 0.007889 0.437552 0.930000 0.516400 18 2 248
-8.704300 24.905701 -6.036500 0.899158 0.007889 0.437552 0.967100 0.466200 18 0 253
-8.503900 27.435900 -5.670300 0.899158 0.007889 0.437552 0.976600 0.507100 18 0 253
-6.463600 36.223400 -3.704900 -0.293676 0.955783 0.015277 0.962000 0.710700 254 68 73
-5.743400 36.019600 -3.995900 -0.293676 0.955783 0.015277 0.971100 0.718900 254 68 73
-5.115000 35.782600 -2.051700 -0.293676 0.955783 0.015277 0.916000 0.725700 254 68 73
-5.778000 35.994701 -1.773100 -0.293676 0.955783 0.015277 0.922200 0.717000 254 68 73
-4.513000 55.007702 -5.909800 -0.189279 -0.709198 -0.679126 0.935300 0.759300 0 253 27
-4.291100 55.098900 -5.871800 -0.189279 -0.709198 -0.679126 0.932300 0.755300 0 253 27
-4.207800 55.799599 -6.651700 -0.189279 -0.709198 -0.679126 0.967500 0.768900 0 253 27
-4.871900 55.799599 -6.765400 -0.189279 -0.709198 -0.679126 0.957200 0.775300 0 253 27
-2.904000 62.455601 -5.700500 0.959060 0.270852 0.082723 0.954300 0.968000 0 253 27
-2.764700 62.455601 -4.128400 0.959060 0.270852 0.082723 0.909900 0.975800 0 253 27
-4.736600 55.799599 -5.153900 0.959060 0.270852 0.082723 0.919700 0.781300 0 253 27
-4.871900 55.799599 -6.765400 0.959060 0.270852 0.082723 0.957200 0.775300 0 253 27
-2.764700 62.455601 -4.128400 0.167860 -0.101350 0.980587 0.909900 0.975800 0 253 27
-4.072400 55.799599 -5.040200 0.167860 -0.101350 0.980587 0.904100 0.777700 0 253 27
-4.736600 55.799599 -5.153900 0.167860 -0.101350 0.980587 0.919700 0.781300 0 253 27
-2.904000 62.455601 -5.700500 -0.167781 0.107182 -0.979980 0.954300 0.968000 0 253 27
-4.871900 55.799599 -6.765400 -0.167781 0.107182 -0.979980 0.957200 0.775300 0 253 27
-4.207800 55.799599 -6.651700 -0.167781 0.107182 -0.979980 0.967500 0.768900 0 253 27
-4.736600 55.799599 -5.153900 0.042232 -0.727963 0.684314 0.919700 0.781300 254 68 73
-4.072400 55.799599 -5.040200 0.042232 -0.727963 0.684314 0.904100 0.777700 254 68 73
-4.291100 55.098900 -5.871800 0.042232 -0.727963 0.684314 0.932300 0.755300 254 68 73
-4.513000 55.007702 -5.909800 0.042232 -0.727963 0.684314 0.935300 0.759300 254 68 73
-4.736600 55.799599 -5.153900 0.937220 -0.339745 0.078688 0.919700 0.781300 0 253 27
-4.513000 55.007702 -5.909800 0.937220 -0.339745 0.078688 0.935300 0.759300 0 253 27
-4.871900 55.799599 -6.765400 0.937220 -0.339745 0.078688 0.957200 0.775300 0 253 27
-4 0 1 2 3
-4 4 5 6 7
-3 8 9 10
-4 11 12 13 14
-4 15 16 17 18
-4 19 20 21 22
-4 23 24 25 26
-4 27 28 29 30
-4 31 32 33 34
-4 35 36 37 38
-4 39 40 41 42
-4 43 44 45 46
-3 47 48 49
-4 50 51 52 53
-4 54 55 56 57
-4 58 59 60 61
-4 62 63 64 65
-4 66 67 68 69
-4 70 71 72 73
-4 74 75 76 77
-3 78 79 80
-4 81 82 83 84
-3 85 86 87
-4 88 89 90 91
-3 92 93 94
-4 95 96 97 98
-4 99 100 101 102
-4 103 104 105 106
-4 107 108 109 110
-4 111 112 113 114
-4 115 116 117 118
-4 119 120 121 122
-4 123 124 125 126
-4 127 128 129 130
-4 131 132 133 134
-4 135 136 137 138
-3 139 140 141
-3 142 143 144
-4 145 146 147 148
-4 149 150 151 152
-4 153 154 155 156
-3 157 158 159
-3 160 161 162
-4 163 164 165 166
-4 167 168 169 170
-4 171 172 173 174
-3 175 176 177
-4 178 179 180 181
-4 182 183 184 185
-3 186 187 188
-3 189 190 191
-4 192 193 194 195
-4 196 197 198 199
-4 200 201 202 203
-4 204 205 206 207
-3 208 209 210
-3 211 212 213
-3 214 215 216
-4 217 218 219 220
-4 221 222 223 224
-3 225 226 227
-4 228 229 230 231
-4 232 233 234 235
-3 236 237 238
-3 239 240 241
-3 242 243 244
-3 245 246 247
-4 248 249 250 251
-4 252 253 254 255
-4 256 257 258 259
-4 260 261 262 263
-4 264 265 266 267
-4 268 269 270 271
-4 272 273 274 275
-4 276 277 278 279
-4 280 281 282 283
-3 284 285 286
-3 287 288 289
-4 290 291 292 293
-4 294 295 296 297
-4 298 299 300 301
-3 302 303 304
-4 305 306 307 308
-4 309 310 311 312
-4 313 314 315 316
-4 317 318 319 320
-4 321 322 323 324
-4 325 326 327 328
-4 329 330 331 332
-4 333 334 335 336
-4 337 338 339 340
-4 341 342 343 344
-4 345 346 347 348
-4 349 350 351 352
-3 353 354 355
-4 356 357 358 359
-4 360 361 362 363
-3 364 365 366
-4 367 368 369 370
-4 371 372 373 374
-3 375 376 377
-4 378 379 380 381
-3 382 383 384
-4 385 386 387 388
-4 389 390 391 392
-3 393 394 395
-4 396 397 398 399
-4 400 401 402 403
-4 404 405 406 407
-4 408 409 410 411
-4 412 413 414 415
-3 416 417 418
-3 419 420 421
-3 422 423 424
-4 425 426 427 428
-4 429 430 431 432
-3 433 434 435
-3 436 437 438
-4 439 440 441 442
-4 443 444 445 446
-3 447 448 449
-3 450 451 452
-4 453 454 455 456
-3 457 458 459
-3 460 461 462
-3 463 464 465
-4 466 467 468 469
-3 470 471 472
-4 473 474 475 476
-4 477 478 479 480
-4 481 482 483 484
-4 485 486 487 488
-4 489 490 491 492
-3 493 494 495
-4 496 497 498 499
-4 500 501 502 503
-4 504 505 506 507
-4 508 509 510 511
-3 512 513 514
-4 515 516 517 518
-4 519 520 521 522
-3 523 524 525
-3 526 527 528
-3 529 530 531
-4 532 533 534 535
-4 536 537 538 539
-4 540 541 542 543
-4 544 545 546 547
-3 548 549 550
-3 551 552 553
-4 554 555 556 557
-3 558 559 560
-4 561 562 563 564
-4 565 566 567 568
-4 569 570 571 572
-3 573 574 575
-4 576 577 578 579
-4 580 581 582 583
-4 584 585 586 587
-4 588 589 590 591
-4 592 593 594 595
-4 596 597 598 599
-4 600 601 602 603
-4 604 605 606 607
-4 608 609 610 611
-3 612 613 614
-4 615 616 617 618
-4 619 620 621 622
-4 623 624 625 626
-4 627 628 629 630
-4 631 632 633 634
-4 635 636 637 638
-4 639 640 641 642
-3 643 644 645
-4 646 647 648 649
-3 650 651 652
-4 653 654 655 656
-3 657 658 659
-4 660 661 662 663
-4 664 665 666 667
-4 668 669 670 671
-4 672 673 674 675
-4 676 677 678 679
-4 680 681 682 683
-4 684 685 686 687
-4 688 689 690 691
-4 692 693 694 695
-4 696 697 698 699
-4 700 701 702 703
-3 704 705 706
-3 707 708 709
-4 710 711 712 713
-4 714 715 716 717
-4 718 719 720 721
-3 722 723 724
-3 725 726 727
-4 728 729 730 731
-4 732 733 734 735
-4 736 737 738 739
-3 740 741 742
-4 743 744 745 746
-4 747 748 749 750
-3 751 752 753
-3 754 755 756
-4 757 758 759 760
-4 761 762 763 764
-4 765 766 767 768
-4 769 770 771 772
-3 773 774 775
-3 776 777 778
-3 779 780 781
-4 782 783 784 785
-4 786 787 788 789
-3 790 791 792
-4 793 794 795 796
-4 797 798 799 800
-3 801 802 803
-3 804 805 806
-3 807 808 809
-3 810 811 812
-4 813 814 815 816
-4 817 818 819 820
-4 821 822 823 824
-4 825 826 827 828
-4 829 830 831 832
-4 833 834 835 836
-4 837 838 839 840
-4 841 842 843 844
-4 845 846 847 848
-3 849 850 851
-3 852 853 854
-4 855 856 857 858
-4 859 860 861 862
-4 863 864 865 866
-3 867 868 869
-4 870 871 872 873
-4 874 875 876 877
-4 878 879 880 881
-4 882 883 884 885
-4 886 887 888 889
-4 890 891 892 893
-4 894 895 896 897
-4 898 899 900 901
-4 902 903 904 905
-4 906 907 908 909
-4 910 911 912 913
-4 914 915 916 917
-3 918 919 920
-4 921 922 923 924
-4 925 926 927 928
-3 929 930 931
-4 932 933 934 935
-4 936 937 938 939
-3 940 941 942
-4 943 944 945 946
-3 947 948 949
-4 950 951 952 953
-4 954 955 956 957
-3 958 959 960
-4 961 962 963 964
-4 965 966 967 968
-4 969 970 971 972
-4 973 974 975 976
-4 977 978 979 980
-3 981 982 983
-3 984 985 986
-3 987 988 989
-4 990 991 992 993
-4 994 995 996 997
-3 998 999 1000
-3 1001 1002 1003
-4 1004 1005 1006 1007
-4 1008 1009 1010 1011
-3 1012 1013 1014
-3 1015 1016 1017
-4 1018 1019 1020 1021
-3 1022 1023 1024
-3 1025 1026 1027
-3 463 1028 464
-4 1029 1030 1031 1032
-3 1033 1034 1035
-4 1036 1037 1038 1039
-4 1040 1041 1042 1043
-4 1044 1045 1046 1047
-4 1048 1049 1050 1051
-4 1052 1053 1054 1055
-3 1056 1057 1058
-4 1059 1060 1061 1062
-4 1063 1064 1065 1066
-4 1067 1068 1069 1070
-4 1071 1072 1073 1074
-3 1075 1076 1077
-4 1078 1079 1080 1081
-4 1082 1083 1084 1085
-3 1086 1087 1088
-3 1089 1090 1091
-4 1092 1093 1094 1095
-4 1096 1097 1098 1099
-4 1100 1101 1102 1103
-3 1104 1105 1106
-3 1107 1108 1109
-4 1110 1111 1112 1113
-4 1114 1115 1116 1117
-4 1118 1119 1120 1121
-4 1122 1123 1124 1125
-3 1126 1127 1128
-4 1129 1130 1131 1132
-4 1133 1134 1135 1136
-4 1137 1138 1139 1140
-4 1141 1142 1143 1144
-4 1145 1146 1147 1148
-4 1149 1150 1151 1152
-3 1153 1154 1155
-4 1156 1157 1158 1159
-3 1160 1161 1162
-4 1163 1164 1165 1166
-3 1167 1168 1169
-3 1170 1171 1172
-3 1173 1174 1175
-4 1176 1177 1178 1179
-3 1180 1181 1182
-3 1183 1184 1185
-4 1186 1187 1188 1189
-4 1190 1191 1192 1193
-4 1194 1195 1196 1197
-4 1198 1199 1200 1201
-3 1202 1203 1204
-4 1205 1206 1207 1208
-4 1209 1210 1211 1212
-4 1213 1214 1215 1216
-4 1217 1218 1219 1220
-4 1221 1222 1223 1224
-4 1225 1226 1227 1228
-3 1229 1230 1231
-4 1232 1233 1234 1235
-3 1236 1237 1238
-4 1239 1240 1241 1242
-3 1243 1244 1245
-3 1246 1247 1248
-3 1249 1250 1251
-3 1252 1253 1254
-3 1255 1256 1257
-4 1258 1259 1260 1261
-4 1262 1263 1264 1265
-4 1266 1267 1268 1269
-4 1270 1271 1272 1273
-4 1274 1275 1276 1277
-4 1278 1279 1280 1281
-3 1282 1283 1284
-4 1285 1286 1287 1288
-4 1289 1290 1291 1292
-4 1293 1294 1295 1296
-3 1297 1298 1299
-3 1300 1301 1302
-4 1303 1304 1305 1306
-3 1307 1308 1309
diff --git a/src/tests/evas/meshes/ply/Normal_UVs_NoColors.ply b/src/tests/evas/meshes/ply/Normal_UVs_NoColors.ply
deleted file mode 100644
index 5622bee27d..0000000000
--- a/src/tests/evas/meshes/ply/Normal_UVs_NoColors.ply
+++ /dev/null
@@ -1,1681 +0,0 @@
-ply
-format ascii 1.0
-comment Created by Blender 2.69 (sub 0) - www.blender.org, source file: ''
-element vertex 1310
-property float x
-property float y
-property float z
-property float nx
-property float ny
-property float nz
-property float s
-property float t
-element face 356
-property list uchar uint vertex_indices
-end_header
--4.649800 14.945700 -8.785600 -0.021734 0.023193 -0.999495 0.094400 0.185800
--2.020300 14.610600 -8.278800 -0.021734 0.023193 -0.999495 0.060000 0.185800
--1.712600 0.024900 -9.195700 -0.021734 0.023193 -0.999495 0.089900 0.023200
--3.252600 0.001600 -8.591000 -0.021734 0.023193 -0.999495 0.107400 0.025300
--4.649800 14.945700 -8.785600 -0.983809 -0.091724 -0.153967 0.094400 0.185800
--3.252600 0.001600 -8.591000 -0.983809 -0.091724 -0.153967 0.107400 0.025300
--4.089400 2.633000 -5.031300 -0.983809 -0.091724 -0.153967 0.145000 0.057700
--5.308800 13.910900 -3.738700 -0.983809 -0.091724 -0.153967 0.154100 0.185800
--1.553600 3.059500 -4.173500 0.398905 -0.098999 0.911633 0.181500 0.058600
--1.766900 13.754900 -2.918700 0.398905 -0.098999 0.911633 0.193300 0.185800
--3.061600 3.537800 -3.461700 0.398905 -0.098999 0.911633 0.164000 0.067400
--1.553600 3.059500 -4.173500 0.977159 -0.002648 0.212493 0.181500 0.058600
--0.626000 0.031700 -8.336200 0.977159 -0.002648 0.212493 0.220100 0.017000
--0.971400 14.644800 -6.706400 0.977159 -0.002648 0.212493 0.225200 0.185800
--1.766900 13.754900 -2.918700 0.977159 -0.002648 0.212493 0.193300 0.185800
--5.495700 46.043098 -6.732400 -0.860977 -0.085411 -0.501422 0.139900 0.788400
--2.827600 38.171799 -8.088300 -0.860977 -0.085411 -0.501422 0.114500 0.661600
--5.919200 37.619099 -4.570300 -0.860977 -0.085411 -0.501422 0.183200 0.661600
--6.029500 46.188801 -3.956000 -0.860977 -0.085411 -0.501422 0.183300 0.792100
--4.685700 36.664101 -1.616400 -0.917535 -0.032092 0.396359 0.239100 0.661600
--4.298500 47.001099 -0.058900 -0.917535 -0.032092 0.396359 0.249300 0.802400
--6.029500 46.188801 -3.956000 -0.917535 -0.032092 0.396359 0.183300 0.792100
--5.919200 37.619099 -4.570300 -0.917535 -0.032092 0.396359 0.183200 0.661600
--6.775800 50.206501 -7.534500 -0.223809 0.028781 -0.974208 0.134100 0.852600
--7.252500 54.524502 -7.615000 -0.223809 0.028781 -0.974208 0.126100 0.913200
-0.000000 53.738098 -8.986800 -0.223809 0.028781 -0.974208 0.028100 0.877800
-0.000000 50.037800 -9.413700 -0.223809 0.028781 -0.974208 0.041800 0.827300
--7.252500 54.524502 -7.615000 -0.375359 0.901424 0.215731 0.812300 0.981700
--8.747800 53.770199 -7.353300 -0.375359 0.901424 0.215731 0.807700 0.944900
--8.184300 53.108700 -3.320400 -0.375359 0.901424 0.215731 0.746000 0.944900
--6.624100 53.529800 -2.653700 -0.375359 0.901424 0.215731 0.746000 0.986600
--9.827700 52.989700 -7.188500 -0.412168 0.895237 0.169320 0.805500 0.922700
--14.989100 50.565300 -7.297200 -0.412168 0.895237 0.169320 0.805300 0.834400
--15.636800 49.715099 -4.015700 -0.412168 0.895237 0.169320 0.746000 0.809400
--9.508400 52.403099 -3.672700 -0.412168 0.895237 0.169320 0.746000 0.922700
-0.000000 37.009800 0.550700 -0.339751 -0.089043 0.936291 0.310700 0.661600
-0.000000 47.287498 1.094200 -0.339751 -0.089043 0.936291 0.310700 0.805700
--4.298500 47.001099 -0.058900 -0.339751 -0.089043 0.936291 0.249300 0.802400
--4.685700 36.664101 -1.616400 -0.339751 -0.089043 0.936291 0.239100 0.661600
-0.000000 53.738098 -8.986800 -0.139268 0.841727 -0.521633 0.028100 0.877800
--7.252500 54.524502 -7.615000 -0.139268 0.841727 -0.521633 0.126100 0.913200
--2.321200 55.471001 -5.570800 -0.139268 0.841727 -0.521633 0.053700 0.941000
-0.000000 55.950600 -7.250100 -0.139268 0.841727 -0.521633 0.022400 0.916300
--6.624100 53.529800 -2.653700 -0.510018 -0.190129 0.838888 0.210200 0.900400
--7.813100 49.342701 -3.886900 -0.510018 -0.190129 0.838888 0.181000 0.844200
--6.029500 46.188801 -3.956000 -0.510018 -0.190129 0.838888 0.183300 0.792100
--3.773800 51.093601 -1.034300 -0.510018 -0.190129 0.838888 0.256600 0.864400
--6.029500 46.188801 -3.956000 -0.909885 0.202901 0.361857 0.183300 0.792100
--4.298500 47.001099 -0.058900 -0.909885 0.202901 0.361857 0.249300 0.802400
--3.773800 51.093601 -1.034300 -0.909885 0.202901 0.361857 0.256600 0.864400
-0.000000 50.880199 0.110000 -0.266804 0.255185 0.929352 0.310700 0.860500
--3.773800 51.093601 -1.034300 -0.266804 0.255185 0.929352 0.256600 0.864400
--4.298500 47.001099 -0.058900 -0.266804 0.255185 0.929352 0.249300 0.802400
-0.000000 47.287498 1.094200 -0.266804 0.255185 0.929352 0.310700 0.805700
--16.136200 50.023998 -7.546200 0.129075 0.179950 -0.975171 0.808600 0.809400
--14.989100 50.565300 -7.297200 0.129075 0.179950 -0.975171 0.805300 0.834400
--13.779500 47.417198 -7.715300 0.129075 0.179950 -0.975171 0.879500 0.834400
--14.885000 46.974701 -7.946000 0.129075 0.179950 -0.975171 0.879500 0.809400
--13.779500 47.417198 -7.715300 0.437873 -0.882573 -0.171264 0.626900 0.829400
--8.756500 49.321098 -7.632900 0.437873 -0.882573 -0.171264 0.626900 0.922700
--8.927200 49.128502 -4.128200 0.437873 -0.882573 -0.171264 0.688900 0.922700
--14.977100 45.689201 -4.821000 0.437873 -0.882573 -0.171264 0.680000 0.809400
--17.208200 49.477699 -7.512200 -0.268622 0.938905 0.215175 0.810800 0.788400
--22.585199 48.327702 -7.594400 -0.268622 0.938905 0.215175 0.812700 0.705100
--22.348700 46.932201 -2.822400 -0.268622 0.938905 0.215175 0.746000 0.680200
--16.810101 49.139900 -3.928800 -0.268622 0.938905 0.215175 0.746000 0.788400
--21.936399 43.055199 -3.733600 0.256926 -0.186034 0.948357 0.691800 0.680200
--16.192200 44.960400 -4.877100 0.256926 -0.186034 0.948357 0.677700 0.788400
--16.810101 49.139900 -3.928800 0.256926 -0.186034 0.948357 0.746000 0.788400
--22.348700 46.932201 -2.822400 0.256926 -0.186034 0.948357 0.746000 0.680200
--22.105101 44.119598 -7.074000 -0.471869 -0.161034 -0.866838 0.862200 0.680200
--23.337700 47.268200 -6.945000 -0.471869 -0.161034 -0.866838 0.809900 0.680200
--22.585199 48.327702 -7.594400 -0.471869 -0.161034 -0.866838 0.812700 0.705100
--21.061199 44.183601 -7.611200 -0.471869 -0.161034 -0.866838 0.879500 0.705100
--15.884600 46.520500 -7.855800 0.312108 -0.901546 -0.299673 0.626900 0.788400
--16.192200 44.960400 -4.877100 0.312108 -0.901546 -0.299673 0.677700 0.788400
--21.936399 43.055199 -3.733600 0.312108 -0.901546 -0.299673 0.691800 0.680200
--21.061199 44.183601 -7.611200 0.312108 -0.901546 -0.299673 0.626900 0.699700
--5.598500 31.822901 -1.405400 -0.899226 0.141575 0.413943 0.185400 0.436500
--7.174300 32.815300 -5.168000 -0.899226 0.141575 0.413943 0.136400 0.440500
--7.453900 29.910801 -4.782000 -0.899226 0.141575 0.413943 0.143900 0.408700
--4.970000 33.082802 -8.871300 -0.875321 0.068314 -0.478692 0.086900 0.436600
--5.595300 29.761600 -8.491100 -0.875321 0.068314 -0.478692 0.097300 0.399700
--7.453900 29.910801 -4.782000 -0.875321 0.068314 -0.478692 0.143900 0.408700
--7.174300 32.815300 -5.168000 -0.875321 0.068314 -0.478692 0.136400 0.440500
--6.827700 20.858999 -3.051400 -0.895608 -0.345701 -0.279959 0.166500 0.297500
--5.426000 21.341299 -8.131100 -0.895608 -0.345701 -0.279959 0.106600 0.297500
--6.194700 19.576300 -3.492500 -0.895608 -0.345701 -0.279959 0.163400 0.285600
--0.835600 22.853901 -8.203000 -0.044062 0.086408 -0.995285 0.053300 0.313700
--0.899900 21.410400 -8.342700 -0.044062 0.086408 -0.995285 0.054900 0.297500
--5.426000 21.341299 -8.131100 -0.044062 0.086408 -0.995285 0.106600 0.297500
--5.317800 22.936800 -8.014600 -0.044062 0.086408 -0.995285 0.105500 0.313700
--0.899900 21.410400 -8.342700 0.986890 0.053202 0.152371 0.307200 0.297500
--1.957400 20.620800 -1.217700 0.986890 0.053202 0.152371 0.224300 0.297500
--1.853000 19.164200 -1.385300 0.986890 0.053202 0.152371 0.221600 0.281000
--6.194700 19.576300 -3.492500 -0.393090 -0.299033 0.869517 0.163400 0.285600
--1.853000 19.164200 -1.385300 -0.393090 -0.299033 0.869517 0.221600 0.281000
--1.957400 20.620800 -1.217700 -0.393090 -0.299033 0.869517 0.224300 0.297500
--6.827700 20.858999 -3.051400 -0.393090 -0.299033 0.869517 0.166500 0.297500
--5.259600 15.490400 -9.599400 0.139442 0.106302 -0.984508 0.090700 0.228600
--5.426000 21.341299 -8.131100 0.139442 0.106302 -0.984508 0.106600 0.297500
--0.899900 21.410400 -8.342700 0.139442 0.106302 -0.984508 0.054900 0.297500
--0.294400 16.169500 -7.962700 0.139442 0.106302 -0.984508 0.039600 0.241800
--0.294400 16.169500 -7.962700 0.977002 0.117101 0.178197 0.282300 0.223700
--0.899900 21.410400 -8.342700 0.977002 0.117101 0.178197 0.307200 0.297500
--1.853000 19.164200 -1.385300 0.977002 0.117101 0.178197 0.221600 0.281000
--1.221800 14.450400 -2.004100 0.977002 0.117101 0.178197 0.220300 0.236900
--1.853000 19.164200 -1.385300 -0.395956 -0.119778 0.910424 0.221600 0.281000
--6.194700 19.576300 -3.492500 -0.395956 -0.119778 0.910424 0.163400 0.285600
--6.498700 14.643000 -4.000600 -0.395956 -0.119778 0.910424 0.151700 0.232900
--1.221800 14.450400 -2.004100 -0.395956 -0.119778 0.910424 0.220300 0.236900
--6.498700 14.643000 -4.000600 -0.982418 0.045709 -0.181012 0.151700 0.232900
--6.194700 19.576300 -3.492500 -0.982418 0.045709 -0.181012 0.163400 0.285600
--5.426000 21.341299 -8.131100 -0.982418 0.045709 -0.181012 0.106600 0.297500
--5.259600 15.490400 -9.599400 -0.982418 0.045709 -0.181012 0.090700 0.228600
--7.813100 49.342701 -3.886900 -0.881229 -0.394976 -0.259672 0.181000 0.844200
--6.775800 50.206501 -7.534500 -0.881229 -0.394976 -0.259672 0.134100 0.852600
--5.495700 46.043098 -6.732400 -0.881229 -0.394976 -0.259672 0.139900 0.788400
--6.029500 46.188801 -3.956000 -0.881229 -0.394976 -0.259672 0.183300 0.792100
--8.756500 49.321098 -7.632900 0.341557 -0.936397 -0.080618 0.626900 0.922700
--6.775800 50.206501 -7.534500 0.341557 -0.936397 -0.080618 0.626900 0.944900
--7.813100 49.342701 -3.886900 0.341557 -0.936397 -0.080618 0.686800 0.944900
--8.927200 49.128502 -4.128200 0.341557 -0.936397 -0.080618 0.688900 0.922700
--5.495700 46.043098 -6.732400 -0.295037 -0.218453 -0.930178 0.139900 0.788400
--6.775800 50.206501 -7.534500 -0.295037 -0.218453 -0.930178 0.134100 0.852600
-0.000000 50.037800 -9.413700 -0.295037 -0.218453 -0.930178 0.041800 0.827300
-0.000000 45.235802 -8.516300 -0.295037 -0.218453 -0.930178 0.061400 0.762800
--3.773800 51.093601 -1.034300 -0.217879 0.518058 0.827130 0.256600 0.864400
-0.000000 50.880199 0.110000 -0.217879 0.518058 0.827130 0.310700 0.860500
-0.000000 54.522099 -2.187600 -0.217879 0.518058 0.827130 0.310700 0.919600
--1.435700 55.057400 -2.884500 -0.217879 0.518058 0.827130 0.285800 0.931400
--0.163800 60.672798 0.405300 -0.878123 0.172158 0.446386 0.529100 0.200900
--0.596000 60.268700 -0.255900 -0.878123 0.172158 0.446386 0.502600 0.185300
--0.605400 59.453602 0.006800 -0.878123 0.172158 0.446386 0.508800 0.156900
--0.226300 59.631802 0.717000 -0.878123 0.172158 0.446386 0.529800 0.167300
-0.000000 59.375900 0.272700 -0.351825 0.003851 0.936058 0.533800 0.153800
--0.605400 59.453602 0.006800 -0.351825 0.003851 0.936058 0.508800 0.156900
--0.793500 58.611801 -0.022400 -0.351825 0.003851 0.936058 0.506200 0.129800
-0.000000 58.735298 0.237300 -0.351825 0.003851 0.936058 0.533800 0.134400
--1.340700 61.343498 -1.024900 -0.500896 0.173312 0.847978 0.467800 0.231800
--2.209500 61.230499 -1.515000 -0.500896 0.173312 0.847978 0.430900 0.227000
--2.225300 60.301201 -1.334400 -0.500896 0.173312 0.847978 0.434400 0.187400
--0.474100 61.294899 -0.607800 -0.419394 -0.893935 0.158081 0.499900 0.227200
--0.179900 61.274700 0.058500 -0.419394 -0.893935 0.158081 0.525600 0.223900
--0.785400 61.539799 -0.048800 -0.419394 -0.893935 0.158081 0.505500 0.247600
--0.163800 60.672798 0.405300 -0.879737 0.234636 0.413532 0.529100 0.200900
--0.179900 61.274700 0.058500 -0.879737 0.234636 0.413532 0.525600 0.223900
--0.474100 61.294899 -0.607800 -0.879737 0.234636 0.413532 0.499900 0.227200
--0.596000 60.268700 -0.255900 -0.879737 0.234636 0.413532 0.502600 0.185300
--0.785400 61.539799 -0.048800 -0.405349 0.400850 0.821591 0.505500 0.247600
-0.000000 62.775902 -0.355700 -0.405349 0.400850 0.821591 0.533900 0.286800
--1.901400 62.898899 -1.262500 -0.405349 0.400850 0.821591 0.451600 0.287500
--1.792100 61.563202 -0.648200 -0.405349 0.400850 0.821591 0.464300 0.250800
--1.901400 62.898899 -1.262500 -0.958885 0.139689 0.247034 0.451600 0.287500
--2.505800 61.413601 -3.333900 -0.958885 0.139689 0.247034 0.367200 0.240300
--2.209500 61.230499 -1.515000 -0.958885 0.139689 0.247034 0.430900 0.227000
--1.792100 61.563202 -0.648200 -0.958885 0.139689 0.247034 0.464300 0.250800
--2.071800 58.080299 -1.837600 -0.982605 0.010378 0.185418 0.435700 0.090000
--2.043500 58.694401 -1.722000 -0.982605 0.010378 0.185418 0.434700 0.119000
--2.361600 58.652599 -3.405400 -0.982605 0.010378 0.185418 0.376100 0.111600
--2.361600 58.652599 -3.405400 -0.835615 -0.547438 -0.045374 0.376100 0.111600
--1.480400 57.287800 -3.167400 -0.835615 -0.547438 -0.045374 0.388000 0.054100
--2.071800 58.080299 -1.837600 -0.835615 -0.547438 -0.045374 0.435700 0.090000
--2.361600 58.652599 -3.405400 -0.962379 -0.178153 0.205154 0.376100 0.111600
--2.043500 58.694401 -1.722000 -0.962379 -0.178153 0.205154 0.434700 0.119000
--2.225300 60.301201 -1.334400 -0.962379 -0.178153 0.205154 0.434400 0.187400
--2.484800 60.667999 -2.078300 -0.962379 -0.178153 0.205154 0.409600 0.193000
--0.596000 60.268700 -0.255900 -0.569338 0.180881 0.801958 0.502600 0.185300
--2.225300 60.301201 -1.334400 -0.569338 0.180881 0.801958 0.434400 0.187400
--0.793500 58.611801 -0.022400 -0.569338 0.180881 0.801958 0.506200 0.129800
--0.605400 59.453602 0.006800 -0.569338 0.180881 0.801958 0.508800 0.156900
--0.793500 58.611801 -0.022400 -0.424783 -0.113068 0.898207 0.506200 0.129800
--0.860300 57.339199 -0.345300 -0.424783 -0.113068 0.898207 0.507000 0.087800
-0.000000 57.320400 0.190300 -0.424783 -0.113068 0.898207 0.533800 0.095300
-0.000000 58.735298 0.237300 -0.424783 -0.113068 0.898207 0.533800 0.134400
--2.361600 58.652599 -3.405400 -0.801295 -0.555920 -0.221086 0.376100 0.111600
--1.507500 57.978802 -4.806700 -0.801295 -0.555920 -0.221086 0.327200 0.071700
--1.480400 57.287800 -3.167400 -0.801295 -0.555920 -0.221086 0.388000 0.054100
--1.480400 57.287800 -3.167400 -0.605736 -0.042761 0.794516 0.293600 0.962800
--1.435700 55.057400 -2.884500 -0.605736 -0.042761 0.794516 0.285800 0.931400
-0.000000 54.522099 -2.187600 -0.605736 -0.042761 0.794516 0.310700 0.919600
--0.509500 56.862801 -2.081200 -0.605736 -0.042761 0.794516 0.307800 0.953500
--1.435700 55.057400 -2.884500 -0.962522 0.132164 0.236820 0.285800 0.931400
--1.480400 57.287800 -3.167400 -0.962522 0.132164 0.236820 0.293600 0.962800
--1.507500 57.978802 -4.806700 -0.962522 0.132164 0.236820 0.269900 0.982500
--2.321200 55.471001 -5.570800 -0.962522 0.132164 0.236820 0.259500 0.968000
--5.259600 15.490400 -9.599400 0.329887 -0.177209 -0.927239 0.090700 0.228600
--0.294400 16.169500 -7.962700 0.329887 -0.177209 -0.927239 0.039600 0.241800
--2.020300 14.610600 -8.278800 0.329887 -0.177209 -0.927239 0.063600 0.221000
--0.294400 16.169500 -7.962700 0.923351 -0.382504 0.033356 0.282300 0.223700
--1.221800 14.450400 -2.004100 0.923351 -0.382504 0.033356 0.220300 0.236900
--0.971400 14.644800 -6.706400 0.923351 -0.382504 0.033356 0.253200 0.212300
--5.308800 13.910900 -3.738700 -0.281184 -0.501171 0.818391 0.168700 0.220700
--1.766900 13.754900 -2.918700 -0.281184 -0.501171 0.818391 0.216900 0.223600
--1.221800 14.450400 -2.004100 -0.281184 -0.501171 0.818391 0.220300 0.236900
--6.498700 14.643000 -4.000600 -0.281184 -0.501171 0.818391 0.151700 0.232900
--4.649800 14.945700 -8.785600 -0.465679 -0.853476 -0.233927 0.103500 0.222700
--5.308800 13.910900 -3.738700 -0.465679 -0.853476 -0.233927 0.168700 0.220700
--6.498700 14.643000 -4.000600 -0.465679 -0.853476 -0.233927 0.151700 0.232900
--5.259600 15.490400 -9.599400 -0.465679 -0.853476 -0.233927 0.090700 0.228600
--1.957400 20.620800 -1.217700 0.981627 0.066418 0.178877 0.224300 0.297500
--0.899900 21.410400 -8.342700 0.981627 0.066418 0.178877 0.307200 0.297500
--0.835600 22.853901 -8.203000 0.981627 0.066418 0.178877 0.306600 0.313700
--2.189200 21.987900 -1.481800 0.981627 0.066418 0.178877 0.225500 0.313700
--7.174300 32.815300 -5.168000 -0.882053 0.156893 -0.444261 0.136400 0.440500
--6.542300 35.480598 -4.902800 -0.882053 0.156893 -0.444261 0.133600 0.471500
--5.283200 35.952900 -7.814600 -0.882053 0.156893 -0.444261 0.094100 0.470900
--4.970000 33.082802 -8.871300 -0.882053 0.156893 -0.444261 0.086900 0.436600
--5.598500 31.822901 -1.405400 -0.892193 0.169920 0.418473 0.185400 0.436500
--6.542300 35.480598 -4.902800 -0.892193 0.169920 0.418473 0.133600 0.471500
--7.174300 32.815300 -5.168000 -0.892193 0.169920 0.418473 0.136400 0.440500
--4.685700 36.664101 -1.616400 -0.474113 0.127364 0.871203 0.239100 0.661600
--5.598500 31.822901 -1.405400 -0.474113 0.127364 0.871203 0.231500 0.582200
--3.798500 31.552500 -0.386300 -0.474113 0.127364 0.871203 0.257600 0.582200
--2.225300 60.301201 -1.334400 -0.926529 0.086891 0.366052 0.434400 0.187400
--2.209500 61.230499 -1.515000 -0.926529 0.086891 0.366052 0.430900 0.227000
--2.484800 60.667999 -2.078300 -0.926529 0.086891 0.366052 0.409600 0.193000
--8.927200 49.128502 -4.128200 -0.174303 -0.164506 0.970853 0.688900 0.922700
--7.813100 49.342701 -3.886900 -0.174303 -0.164506 0.970853 0.686800 0.944900
--8.184300 53.108700 -3.320400 -0.174303 -0.164506 0.970853 0.746000 0.944900
--9.508400 52.403099 -3.672700 -0.174303 -0.164506 0.970853 0.746000 0.922700
--8.184300 53.108700 -3.320400 -0.526523 0.826719 0.198265 0.746000 0.944900
--8.747800 53.770199 -7.353300 -0.526523 0.826719 0.198265 0.807700 0.944900
--9.827700 52.989700 -7.188500 -0.526523 0.826719 0.198265 0.805500 0.922700
--9.508400 52.403099 -3.672700 -0.526523 0.826719 0.198265 0.746000 0.922700
--8.747800 53.770199 -7.353300 -0.154881 -0.035505 -0.987295 0.807700 0.944900
--7.252500 54.524502 -7.615000 -0.154881 -0.035505 -0.987295 0.812300 0.981700
--6.775800 50.206501 -7.534500 -0.154881 -0.035505 -0.987295 0.879500 0.944900
--8.927200 49.128502 -4.128200 0.001669 -0.169906 0.985459 0.688900 0.922700
--9.508400 52.403099 -3.672700 0.001669 -0.169906 0.985459 0.746000 0.922700
--15.636800 49.715099 -4.015700 0.001669 -0.169906 0.985459 0.746000 0.809400
--14.977100 45.689201 -4.821000 0.001669 -0.169906 0.985459 0.680000 0.809400
--6.624100 53.529800 -2.653700 -0.215818 0.814400 0.538680 0.210200 0.900400
--3.773800 51.093601 -1.034300 -0.215818 0.814400 0.538680 0.256600 0.864400
--1.435700 55.057400 -2.884500 -0.215818 0.814400 0.538680 0.285800 0.931400
--7.252500 54.524502 -7.615000 -0.215818 0.814400 0.538680 0.180400 0.964800
--2.321200 55.471001 -5.570800 -0.276118 0.932071 0.234526 0.259500 0.968000
--7.252500 54.524502 -7.615000 -0.276118 0.932071 0.234526 0.180400 0.964800
--1.435700 55.057400 -2.884500 -0.276118 0.932071 0.234526 0.285800 0.931400
--2.209500 61.230499 -1.515000 -0.942806 0.279456 0.181716 0.430900 0.227000
--2.505800 61.413601 -3.333900 -0.942806 0.279456 0.181716 0.362700 0.212700
--2.484800 60.667999 -2.078300 -0.942806 0.279456 0.181716 0.409600 0.193000
--2.484800 60.667999 -2.078300 -0.998559 -0.051788 -0.014052 0.409600 0.193000
--2.505800 61.413601 -3.333900 -0.998559 -0.051788 -0.014052 0.362700 0.212700
--2.361600 58.652599 -3.405400 -0.998559 -0.051788 -0.014052 0.376100 0.111600
--2.209500 61.230499 -1.515000 -0.107977 -0.909631 0.401138 0.430900 0.227000
--1.340700 61.343498 -1.024900 -0.107977 -0.909631 0.401138 0.467800 0.231800
--1.792100 61.563202 -0.648200 -0.107977 -0.909631 0.401138 0.464300 0.250800
--3.061600 3.537800 -3.461700 0.234488 0.898953 0.369997 0.290200 0.071700
--3.735600 1.816900 0.228400 0.234488 0.898953 0.369997 0.290200 0.030700
--1.568700 1.981700 -0.627100 0.234488 0.898953 0.369997 0.308400 0.040400
--1.553600 3.059500 -4.173500 0.234488 0.898953 0.369997 0.310400 0.073900
--0.626000 0.031700 -8.336200 0.992053 0.072189 0.103052 0.345300 0.097200
--1.553600 3.059500 -4.173500 0.992053 0.072189 0.103052 0.310400 0.073900
--1.568700 1.981700 -0.627100 0.992053 0.072189 0.103052 0.308400 0.040400
--1.825200 -0.024100 0.601200 0.992053 0.072189 0.103052 0.313500 0.023800
--1.825200 -0.024100 0.601200 -0.002195 -0.999985 -0.005027 0.748300 0.055100
--3.769300 -0.009000 1.132900 -0.002195 -0.999985 -0.005027 0.765800 0.040900
--1.712600 0.024900 -9.195700 -0.002195 -0.999985 -0.005027 0.765100 0.147100
--0.626000 0.031700 -8.336200 -0.002195 -0.999985 -0.005027 0.751000 0.138000
--1.712600 0.024900 -9.195700 0.748722 0.074200 -0.658719 0.089900 0.023200
--2.020300 14.610600 -8.278800 0.748722 0.074200 -0.658719 0.060000 0.185800
--0.971400 14.644800 -6.706400 0.748722 0.074200 -0.658719 0.025900 0.185800
--0.626000 0.031700 -8.336200 0.748722 0.074200 -0.658719 0.075600 0.021500
--1.568700 1.981700 -0.627100 0.270273 0.452545 0.849798 0.308400 0.040400
--3.735600 1.816900 0.228400 0.270273 0.452545 0.849798 0.290200 0.030700
--3.769300 -0.009000 1.132900 0.270273 0.452545 0.849798 0.289700 0.012400
--1.825200 -0.024100 0.601200 0.270273 0.452545 0.849798 0.313500 0.023800
--4.089400 2.633000 -5.031300 -0.957442 -0.073711 -0.279054 0.275500 0.071900
--3.252600 0.001600 -8.591000 -0.957442 -0.073711 -0.279054 0.238500 0.103000
--5.176800 -0.025000 -0.598300 -0.957442 -0.073711 -0.279054 0.266200 0.023600
--5.390300 1.568200 -1.670300 -0.957442 -0.073711 -0.279054 0.274000 0.039600
--3.769300 -0.009000 1.132900 -0.738109 0.308147 0.600201 0.289700 0.012400
--3.735600 1.816900 0.228400 -0.738109 0.308147 0.600201 0.290200 0.030700
--5.390300 1.568200 -1.670300 -0.738109 0.308147 0.600201 0.274000 0.039600
--5.176800 -0.025000 -0.598300 -0.738109 0.308147 0.600201 0.266200 0.023600
--5.390300 1.568200 -1.670300 -0.560649 0.811720 0.163660 0.274000 0.039600
--3.735600 1.816900 0.228400 -0.560649 0.811720 0.163660 0.290200 0.030700
--3.061600 3.537800 -3.461700 -0.560649 0.811720 0.163660 0.290200 0.071700
--4.089400 2.633000 -5.031300 -0.560649 0.811720 0.163660 0.275500 0.071900
--3.061600 3.537800 -3.461700 -0.452521 -0.074303 0.888653 0.164000 0.067400
--1.766900 13.754900 -2.918700 -0.452521 -0.074303 0.888653 0.193300 0.185800
--5.308800 13.910900 -3.738700 -0.452521 -0.074303 0.888653 0.154100 0.185800
--4.089400 2.633000 -5.031300 -0.452521 -0.074303 0.888653 0.145000 0.057700
--2.020300 14.610600 -8.278800 0.001520 -0.830500 -0.557017 0.063600 0.221000
--4.649800 14.945700 -8.785600 0.001520 -0.830500 -0.557017 0.103500 0.222700
--5.259600 15.490400 -9.599400 0.001520 -0.830500 -0.557017 0.090700 0.228600
--2.020300 14.610600 -8.278800 0.649568 -0.634088 -0.419515 0.063600 0.221000
--0.294400 16.169500 -7.962700 0.649568 -0.634088 -0.419515 0.039600 0.241800
--0.971400 14.644800 -6.706400 0.649568 -0.634088 -0.419515 0.028400 0.216500
--5.426000 21.341299 -8.131100 -0.959570 0.028386 -0.280036 0.106600 0.297500
--6.827700 20.858999 -3.051400 -0.959570 0.028386 -0.280036 0.166500 0.297500
--6.824000 22.193899 -3.254300 -0.959570 0.028386 -0.280036 0.165700 0.313700
--5.317800 22.936800 -8.014600 -0.959570 0.028386 -0.280036 0.105500 0.313700
--0.845100 29.891001 -9.491500 -0.126028 -0.127868 -0.983751 0.041700 0.395800
--0.835600 22.853901 -8.203000 -0.126028 -0.127868 -0.983751 0.053300 0.313700
--5.317800 22.936800 -8.014600 -0.126028 -0.127868 -0.983751 0.105500 0.313700
--5.595300 29.761600 -8.491100 -0.126028 -0.127868 -0.983751 0.097300 0.399700
--1.957400 20.620800 -1.217700 -0.346283 0.131313 0.928895 0.224300 0.297500
--2.189200 21.987900 -1.481800 -0.346283 0.131313 0.928895 0.225500 0.313700
--6.824000 22.193899 -3.254300 -0.346283 0.131313 0.928895 0.165700 0.313700
--6.827700 20.858999 -3.051400 -0.346283 0.131313 0.928895 0.166500 0.297500
--0.605400 59.453602 0.006800 -0.276378 -0.886938 0.370075 0.508800 0.156900
-0.000000 59.375900 0.272700 -0.276378 -0.886938 0.370075 0.533800 0.153800
--0.226300 59.631802 0.717000 -0.276378 -0.886938 0.370075 0.529800 0.167300
--21.936399 43.055199 -3.733600 -0.245050 -0.199318 0.948801 0.691800 0.680200
--22.348700 46.932201 -2.822400 -0.245050 -0.199318 0.948801 0.746000 0.680200
--23.323000 46.228001 -3.425200 -0.245050 -0.199318 0.948801 0.746000 0.661900
--23.265499 44.290199 -3.614200 -0.245050 -0.199318 0.948801 0.710900 0.661900
--22.105101 44.119598 -7.074000 -0.680722 -0.210597 -0.701617 0.862200 0.680200
--23.273100 44.479099 -6.170500 -0.680722 -0.210597 -0.701617 0.835600 0.661900
--23.881300 46.267799 -5.995500 -0.680722 -0.210597 -0.701617 0.800900 0.661900
--23.337700 47.268200 -6.945000 -0.680722 -0.210597 -0.701617 0.809900 0.680200
--22.348700 46.932201 -2.822400 -0.710630 0.673907 0.202126 0.746000 0.680200
--23.337700 47.268200 -6.945000 -0.710630 0.673907 0.202126 0.809900 0.680200
--23.881300 46.267799 -5.995500 -0.710630 0.673907 0.202126 0.800900 0.661900
--23.323000 46.228001 -3.425200 -0.710630 0.673907 0.202126 0.746000 0.661900
--21.936399 43.055199 -3.733600 -0.575702 -0.803125 -0.153486 0.691800 0.680200
--23.265499 44.290199 -3.614200 -0.575702 -0.803125 -0.153486 0.710900 0.661900
--23.273100 44.479099 -6.170500 -0.575702 -0.803125 -0.153486 0.665900 0.661900
--22.105101 44.119598 -7.074000 -0.575702 -0.803125 -0.153486 0.641700 0.680200
--23.323000 46.228001 -3.425200 0.234519 0.052147 0.970712 0.746000 0.661900
--24.935400 45.742901 -3.288800 0.234519 0.052147 0.970712 0.746000 0.630500
--24.446100 44.099098 -3.039500 0.234519 0.052147 0.970712 0.723200 0.630500
--23.265499 44.290199 -3.614200 0.234519 0.052147 0.970712 0.710900 0.661900
--23.273100 44.479099 -6.170500 -0.051663 0.047611 -0.997529 0.835600 0.661900
--25.718901 44.407902 -5.989100 -0.051663 0.047611 -0.997529 0.812100 0.630500
--25.982700 45.641201 -5.974700 -0.051663 0.047611 -0.997529 0.796200 0.630500
--23.881300 46.267799 -5.995500 -0.051663 0.047611 -0.997529 0.800900 0.661900
--23.881300 46.267799 -5.995500 -0.283035 0.956157 0.075198 0.800900 0.661900
--25.982700 45.641201 -5.974700 -0.283035 0.956157 0.075198 0.796200 0.630500
--24.935400 45.742901 -3.288800 -0.283035 0.956157 0.075198 0.746000 0.630500
--23.323000 46.228001 -3.425200 -0.283035 0.956157 0.075198 0.746000 0.661900
--23.265499 44.290199 -3.614200 0.050680 -0.993534 -0.101596 0.710900 0.661900
--24.446100 44.099098 -3.039500 0.050680 -0.993534 -0.101596 0.723200 0.630500
--25.718901 44.407902 -5.989100 0.050680 -0.993534 -0.101596 0.677100 0.630500
--23.273100 44.479099 -6.170500 0.050680 -0.993534 -0.101596 0.665900 0.661900
--3.798500 31.552500 -0.386300 -0.302820 0.047342 0.951871 0.257600 0.582200
-0.000000 31.552500 0.128500 -0.302820 0.047342 0.951871 0.310700 0.582200
-0.000000 37.009800 0.550700 -0.302820 0.047342 0.951871 0.310700 0.661600
--4.685700 36.664101 -1.616400 -0.302820 0.047342 0.951871 0.239100 0.661600
--27.058001 43.733101 -1.471100 -0.612973 -0.035197 0.789319 0.783900 0.527900
--28.100901 44.177299 -2.470000 -0.612973 -0.035197 0.789319 0.756100 0.537200
--27.637899 42.321201 -1.984400 -0.612973 -0.035197 0.789319 0.780200 0.502700
--26.775499 43.007000 -1.492900 -0.612973 -0.035197 0.789319 0.799700 0.523000
--27.102699 45.320202 -5.735100 -0.288380 -0.175341 -0.941325 0.706300 0.587600
--25.982700 45.641201 -5.974700 -0.288380 -0.175341 -0.941325 0.701400 0.609900
--25.718901 44.407902 -5.989100 -0.288380 -0.175341 -0.941325 0.674700 0.592000
--26.246300 42.901402 -5.383600 -0.288380 -0.175341 -0.941325 0.663100 0.553800
--24.935400 45.742901 -3.288800 -0.215944 0.976143 0.022647 0.774000 0.616500
--25.982700 45.641201 -5.974700 -0.215944 0.976143 0.022647 0.701400 0.609900
--27.102699 45.320202 -5.735100 -0.215944 0.976143 0.022647 0.706300 0.587600
--26.753901 45.398300 -2.858600 -0.215944 0.976143 0.022647 0.766000 0.574200
--24.446100 44.099098 -3.039500 0.806467 -0.440747 -0.394147 0.815000 0.599300
--26.246300 42.901402 -5.383600 0.806467 -0.440747 -0.394147 0.880100 0.569900
--25.718901 44.407902 -5.989100 0.806467 -0.440747 -0.394147 0.885900 0.607200
--28.380600 42.330502 -3.056600 -0.840529 -0.044209 0.539960 0.741600 0.498200
--27.637899 42.321201 -1.984400 -0.840529 -0.044209 0.539960 0.780200 0.502700
--28.100901 44.177299 -2.470000 -0.840529 -0.044209 0.539960 0.756100 0.537200
--28.697901 44.238201 -3.477500 -0.840529 -0.044209 0.539960 0.737900 0.538900
--28.380600 42.330502 -3.056600 -0.979149 -0.175223 -0.102788 0.741600 0.498200
--28.697901 44.238201 -3.477500 -0.979149 -0.175223 -0.102788 0.737900 0.538900
--28.543800 44.178001 -4.651400 -0.979149 -0.175223 -0.102788 0.718600 0.545700
--28.292801 42.543098 -4.446800 -0.979149 -0.175223 -0.102788 0.704200 0.514300
--26.753901 45.398300 -2.858600 -0.560189 0.737837 0.376544 0.766000 0.574200
--28.697901 44.238201 -3.477500 -0.560189 0.737837 0.376544 0.737900 0.538900
--28.100901 44.177299 -2.470000 -0.560189 0.737837 0.376544 0.756100 0.537200
--24.935400 45.742901 -3.288800 0.484106 0.321222 0.813915 0.774000 0.616500
--26.117701 44.487900 -2.198700 0.484106 0.321222 0.813915 0.788200 0.565100
--25.587200 43.557701 -2.038700 0.484106 0.321222 0.813915 0.806300 0.556900
--24.446100 44.099098 -3.039500 0.484106 0.321222 0.813915 0.815000 0.599300
--24.446100 44.099098 -3.039500 0.765721 -0.642695 -0.024780 0.815000 0.599300
--25.587200 43.557701 -2.038700 0.765721 -0.642695 -0.024780 0.806300 0.556900
--25.491899 42.827301 -2.370100 0.765721 -0.642695 -0.024780 0.813300 0.554500
--26.246300 42.901402 -5.383600 0.765721 -0.642695 -0.024780 0.880100 0.569900
--26.753901 45.398300 -2.858600 0.068715 0.616533 0.784324 0.766000 0.574200
--26.117701 44.487900 -2.198700 0.068715 0.616533 0.784324 0.788200 0.565100
--24.935400 45.742901 -3.288800 0.068715 0.616533 0.784324 0.774000 0.616500
-0.000000 31.552500 0.128500 -0.069551 -0.031626 0.997077 0.310700 0.582200
--3.798500 31.552500 -0.386300 -0.069551 -0.031626 0.997077 0.257600 0.582200
--3.463700 23.872801 -0.356700 -0.069551 -0.031626 0.997077 0.261000 0.472800
-0.000000 24.132099 -0.356700 -0.069551 -0.031626 0.997077 0.310700 0.472800
--2.225300 60.301201 -1.334400 -0.789816 -0.226827 0.569860 0.434400 0.187400
--2.043500 58.694401 -1.722000 -0.789816 -0.226827 0.569860 0.434700 0.119000
--0.793500 58.611801 -0.022400 -0.789816 -0.226827 0.569860 0.506200 0.129800
--0.793500 58.611801 -0.022400 -0.800106 -0.097243 0.591924 0.506200 0.129800
--2.043500 58.694401 -1.722000 -0.800106 -0.097243 0.591924 0.434700 0.119000
--2.071800 58.080299 -1.837600 -0.800106 -0.097243 0.591924 0.435700 0.090000
--0.860300 57.339199 -0.345300 -0.800106 -0.097243 0.591924 0.507000 0.087800
--2.071800 58.080299 -1.837600 -0.594038 -0.791272 0.144939 0.435700 0.090000
--1.480400 57.287800 -3.167400 -0.594038 -0.791272 0.144939 0.435700 0.022900
--0.509500 56.862801 -2.081200 -0.594038 -0.791272 0.144939 0.497100 0.026700
--0.860300 57.339199 -0.345300 -0.594038 -0.791272 0.144939 0.507000 0.087800
--0.179900 61.274700 0.058500 -0.090663 0.188705 0.977840 0.525600 0.223900
-0.000000 61.912998 -0.048000 -0.090663 0.188705 0.977840 0.533800 0.254400
--0.785400 61.539799 -0.048800 -0.090663 0.188705 0.977840 0.505500 0.247600
--15.884600 46.520500 -7.855800 -0.098387 0.080586 -0.991880 0.879500 0.788400
--17.208200 49.477699 -7.512200 -0.098387 0.080586 -0.991880 0.810800 0.788400
--16.136200 50.023998 -7.546200 -0.098387 0.080586 -0.991880 0.808600 0.809400
--14.885000 46.974701 -7.946000 -0.098387 0.080586 -0.991880 0.879500 0.809400
--15.636800 49.715099 -4.015700 -0.436830 0.889212 0.135946 0.746000 0.809400
--16.136200 50.023998 -7.546200 -0.436830 0.889212 0.135946 0.808600 0.809400
--17.208200 49.477699 -7.512200 -0.436830 0.889212 0.135946 0.810800 0.788400
--16.810101 49.139900 -3.928800 -0.436830 0.889212 0.135946 0.746000 0.788400
--16.192200 44.960400 -4.877100 0.435886 -0.826304 -0.356686 0.677700 0.788400
--15.884600 46.520500 -7.855800 0.435886 -0.826304 -0.356686 0.626900 0.788400
--14.885000 46.974701 -7.946000 0.435886 -0.826304 -0.356686 0.626900 0.809400
--14.977100 45.689201 -4.821000 0.435886 -0.826304 -0.356686 0.680000 0.809400
--16.810101 49.139900 -3.928800 0.116417 -0.190205 0.974818 0.746000 0.788400
--16.192200 44.960400 -4.877100 0.116417 -0.190205 0.974818 0.677700 0.788400
--14.977100 45.689201 -4.821000 0.116417 -0.190205 0.974818 0.680000 0.809400
--15.636800 49.715099 -4.015700 0.116417 -0.190205 0.974818 0.746000 0.809400
--13.779500 47.417198 -7.715300 -0.030432 0.115440 -0.992848 0.879500 0.834400
--14.989100 50.565300 -7.297200 -0.030432 0.115440 -0.992848 0.805300 0.834400
--9.827700 52.989700 -7.188500 -0.030432 0.115440 -0.992848 0.805500 0.922700
--8.756500 49.321098 -7.632900 -0.030432 0.115440 -0.992848 0.879500 0.922700
--15.636800 49.715099 -4.015700 -0.447311 0.883265 0.140554 0.746000 0.809400
--14.989100 50.565300 -7.297200 -0.447311 0.883265 0.140554 0.805300 0.834400
--16.136200 50.023998 -7.546200 -0.447311 0.883265 0.140554 0.808600 0.809400
--13.779500 47.417198 -7.715300 0.409629 -0.847844 -0.336697 0.626900 0.829400
--14.977100 45.689201 -4.821000 0.409629 -0.847844 -0.336697 0.680000 0.809400
--14.885000 46.974701 -7.946000 0.409629 -0.847844 -0.336697 0.626900 0.809400
--0.971400 14.644800 -6.706400 0.777065 -0.629233 0.015366 0.253200 0.212300
--1.221800 14.450400 -2.004100 0.777065 -0.629233 0.015366 0.220300 0.236900
--1.766900 13.754900 -2.918700 0.777065 -0.629233 0.015366 0.216900 0.223600
--26.117701 44.487900 -2.198700 0.374471 0.258120 0.890587 0.788200 0.565100
--27.058001 43.733101 -1.471100 0.374471 0.258120 0.890587 0.783900 0.527900
--26.775499 43.007000 -1.492900 0.374471 0.258120 0.890587 0.799700 0.523000
--25.587200 43.557701 -2.038700 0.374471 0.258120 0.890587 0.806300 0.556900
--25.587200 43.557701 -2.038700 0.386633 -0.610879 0.690899 0.806300 0.556900
--26.775499 43.007000 -1.492900 0.386633 -0.610879 0.690899 0.799700 0.523000
--27.637899 42.321201 -1.984400 0.386633 -0.610879 0.690899 0.816200 0.507300
--25.491899 42.827301 -2.370100 0.386633 -0.610879 0.690899 0.813300 0.554500
--26.117701 44.487900 -2.198700 -0.202601 0.798645 0.566673 0.788200 0.565100
--28.100901 44.177299 -2.470000 -0.202601 0.798645 0.566673 0.756100 0.537200
--27.058001 43.733101 -1.471100 -0.202601 0.798645 0.566673 0.783900 0.527900
--8.184300 53.108700 -3.320400 -0.347207 -0.172872 0.921717 0.746000 0.944900
--7.813100 49.342701 -3.886900 -0.347207 -0.172872 0.921717 0.686800 0.944900
--6.624100 53.529800 -2.653700 -0.347207 -0.172872 0.921717 0.746000 0.986600
--8.747800 53.770199 -7.353300 -0.055764 0.062731 -0.996471 0.807700 0.944900
--6.775800 50.206501 -7.534500 -0.055764 0.062731 -0.996471 0.879500 0.944900
--8.756500 49.321098 -7.632900 -0.055764 0.062731 -0.996471 0.879500 0.922700
--9.827700 52.989700 -7.188500 -0.055764 0.062731 -0.996471 0.805500 0.922700
--28.543800 44.178001 -4.651400 -0.562493 0.826801 -0.001192 0.718600 0.545700
--28.697901 44.238201 -3.477500 -0.562493 0.826801 -0.001192 0.737900 0.538900
--26.753901 45.398300 -2.858600 -0.562493 0.826801 -0.001192 0.766000 0.574200
--27.102699 45.320202 -5.735100 -0.562493 0.826801 -0.001192 0.706300 0.587600
--26.246300 42.901402 -5.383600 0.106461 -0.983873 -0.143736 0.880100 0.569900
--28.380600 42.330502 -3.056600 0.106461 -0.983873 -0.143736 0.853500 0.507000
--28.292801 42.543098 -4.446800 0.106461 -0.983873 -0.143736 0.879400 0.523100
--28.100901 44.177299 -2.470000 -0.192584 0.484112 0.853550 0.756100 0.537200
--26.117701 44.487900 -2.198700 -0.192584 0.484112 0.853550 0.788200 0.565100
--26.753901 45.398300 -2.858600 -0.192584 0.484112 0.853550 0.766000 0.574200
--1.712600 0.024900 -9.195700 0.013475 -0.999909 -0.000374 0.765100 0.147100
--3.769300 -0.009000 1.132900 0.013475 -0.999909 -0.000374 0.765800 0.040900
--5.176800 -0.025000 -0.598300 0.013475 -0.999909 -0.000374 0.783900 0.050100
--3.252600 0.001600 -8.591000 0.013475 -0.999909 -0.000374 0.777900 0.139800
-0.000000 61.912998 -0.048000 -0.158526 0.331625 0.929997 0.533800 0.254400
-0.000000 62.775902 -0.355700 -0.158526 0.331625 0.929997 0.533900 0.286800
--0.785400 61.539799 -0.048800 -0.158526 0.331625 0.929997 0.505500 0.247600
--0.340300 31.400700 -9.922000 0.943854 -0.327649 -0.042263 0.348900 0.396000
--0.425600 30.069099 -1.503600 0.943854 -0.327649 -0.042263 0.251300 0.411900
--0.845100 29.891001 -9.491500 0.943854 -0.327649 -0.042263 0.339400 0.379800
-0.000000 54.522099 -2.187600 0.000000 -0.045410 0.998968 0.310700 0.919600
-0.000000 56.862801 -2.081200 0.000000 -0.045410 0.998968 0.310500 0.953100
--0.509500 56.862801 -2.081200 0.000000 -0.045410 0.998968 0.307800 0.953500
--0.509500 56.862801 -2.081200 -0.098448 -0.971038 0.217700 0.497100 0.026700
-0.000000 56.862801 -2.081200 -0.098448 -0.971038 0.217700 0.533800 0.019000
-0.000000 57.320400 0.190300 -0.098448 -0.971038 0.217700 0.533800 0.095300
--0.860300 57.339199 -0.345300 -0.098448 -0.971038 0.217700 0.507000 0.087800
--5.598500 31.822901 -1.405400 -0.881296 0.021519 0.472075 0.185400 0.436500
--7.453900 29.910801 -4.782000 -0.881296 0.021519 0.472075 0.143900 0.408700
--6.824000 22.193899 -3.254300 -0.881296 0.021519 0.472075 0.165700 0.313700
--6.824000 22.193899 -3.254300 -0.921164 -0.108973 -0.373607 0.165700 0.313700
--7.453900 29.910801 -4.782000 -0.921164 -0.108973 -0.373607 0.143900 0.408700
--5.595300 29.761600 -8.491100 -0.921164 -0.108973 -0.373607 0.097300 0.399700
--5.317800 22.936800 -8.014600 -0.921164 -0.108973 -0.373607 0.105500 0.313700
--3.798500 31.552500 -0.386300 -0.402805 -0.146650 0.903461 0.210900 0.433400
--5.598500 31.822901 -1.405400 -0.402805 -0.146650 0.903461 0.185400 0.436500
--6.824000 22.193899 -3.254300 -0.402805 -0.146650 0.903461 0.165700 0.313700
--2.189200 21.987900 -1.481800 -0.402805 -0.146650 0.903461 0.225500 0.313700
--0.340300 31.400700 -9.922000 -0.229486 -0.108632 -0.967231 0.033600 0.413900
--0.845100 29.891001 -9.491500 -0.229486 -0.108632 -0.967231 0.041700 0.395800
--5.595300 29.761600 -8.491100 -0.229486 -0.108632 -0.967231 0.097300 0.399700
--4.970000 33.082802 -8.871300 -0.229486 -0.108632 -0.967231 0.086900 0.436600
--0.835600 22.853901 -8.203000 0.992234 -0.110109 0.057862 0.306600 0.313700
--0.845100 29.891001 -9.491500 0.992234 -0.110109 0.057862 0.339400 0.379800
--0.425600 30.069099 -1.503600 0.992234 -0.110109 0.057862 0.251300 0.411900
--2.189200 21.987900 -1.481800 0.992234 -0.110109 0.057862 0.225500 0.313700
--2.162800 35.743500 -9.599900 -0.324262 0.084100 -0.942221 0.052600 0.465300
--0.340300 31.400700 -9.922000 -0.324262 0.084100 -0.942221 0.033600 0.413900
--4.970000 33.082802 -8.871300 -0.324262 0.084100 -0.942221 0.086900 0.436600
--5.283200 35.952900 -7.814600 -0.324262 0.084100 -0.942221 0.094100 0.470900
--5.283200 35.952900 -7.814600 -0.889642 0.311183 -0.334218 0.142000 0.631800
--6.542300 35.480598 -4.902800 -0.889642 0.311183 -0.334218 0.182300 0.631800
--5.919200 37.619099 -4.570300 -0.889642 0.311183 -0.334218 0.183200 0.661600
--5.919200 37.619099 -4.570300 -0.882633 0.186716 0.431389 0.183200 0.661600
--6.542300 35.480598 -4.902800 -0.882633 0.186716 0.431389 0.182300 0.631800
--5.598500 31.822901 -1.405400 -0.882633 0.186716 0.431389 0.231500 0.582200
--4.685700 36.664101 -1.616400 -0.882633 0.186716 0.431389 0.239100 0.661600
--0.474100 61.294899 -0.607800 -0.490764 0.255871 0.832875 0.499900 0.227200
--1.340700 61.343498 -1.024900 -0.490764 0.255871 0.832875 0.467800 0.231800
--2.225300 60.301201 -1.334400 -0.490764 0.255871 0.832875 0.434400 0.187400
--0.596000 60.268700 -0.255900 -0.490764 0.255871 0.832875 0.502600 0.185300
--1.340700 61.343498 -1.024900 -0.199083 -0.932669 0.300824 0.467800 0.231800
--0.474100 61.294899 -0.607800 -0.199083 -0.932669 0.300824 0.499900 0.227200
--0.785400 61.539799 -0.048800 -0.199083 -0.932669 0.300824 0.505500 0.247600
--1.792100 61.563202 -0.648200 -0.199083 -0.932669 0.300824 0.464300 0.250800
-0.000000 45.235802 -8.516300 -0.205813 0.023108 -0.978318 0.061400 0.762800
-0.000000 38.221600 -8.073300 -0.205813 0.023108 -0.978318 0.073200 0.661600
--2.827600 38.171799 -8.088300 -0.205813 0.023108 -0.978318 0.114500 0.661600
--5.495700 46.043098 -6.732400 -0.205813 0.023108 -0.978318 0.139900 0.788400
--0.425600 30.069099 -1.503600 0.289736 -0.060654 0.955183 0.251300 0.411900
--3.798500 31.552500 -0.386300 0.289736 -0.060654 0.955183 0.210900 0.433400
--2.189200 21.987900 -1.481800 0.289736 -0.060654 0.955183 0.225500 0.313700
-0.000000 31.547001 -9.939100 0.347255 -0.926523 -0.144807 0.349900 0.400200
-0.000000 30.215401 -1.522000 0.347255 -0.926523 -0.144807 0.252400 0.417000
--0.425600 30.069099 -1.503600 0.347255 -0.926523 -0.144807 0.251300 0.411900
--0.340300 31.400700 -9.922000 0.347255 -0.926523 -0.144807 0.348900 0.396000
--21.061199 44.183601 -7.611200 -0.028361 0.039319 -0.998824 0.879500 0.705100
--22.585199 48.327702 -7.594400 -0.028361 0.039319 -0.998824 0.812700 0.705100
--17.208200 49.477699 -7.512200 -0.028361 0.039319 -0.998824 0.810800 0.788400
--15.884600 46.520500 -7.855800 -0.028361 0.039319 -0.998824 0.879500 0.788400
--22.348700 46.932201 -2.822400 -0.723103 0.652497 0.226650 0.746000 0.680200
--22.585199 48.327702 -7.594400 -0.723103 0.652497 0.226650 0.812700 0.705100
--23.337700 47.268200 -6.945000 -0.723103 0.652497 0.226650 0.809900 0.680200
--21.061199 44.183601 -7.611200 -0.095048 -0.949863 -0.297868 0.626900 0.699700
--21.936399 43.055199 -3.733600 -0.095048 -0.949863 -0.297868 0.691800 0.680200
--22.105101 44.119598 -7.074000 -0.095048 -0.949863 -0.297868 0.641700 0.680200
-0.000000 59.375900 0.272700 0.000000 -0.866545 0.499100 0.533800 0.153800
-0.226300 59.631802 0.717000 0.000000 -0.866545 0.499100 0.537800 0.167300
--0.226300 59.631802 0.717000 0.000000 -0.866545 0.499100 0.529800 0.167300
--0.163800 60.672798 0.405300 0.000000 0.286842 0.957978 0.529100 0.200900
--0.226300 59.631802 0.717000 0.000000 0.286842 0.957978 0.529800 0.167300
-0.226300 59.631802 0.717000 0.000000 0.286842 0.957978 0.537800 0.167300
-0.163800 60.672798 0.405300 0.000000 0.286842 0.957978 0.538500 0.200900
--0.340300 31.400700 -9.922000 -0.012671 0.074070 -0.997173 0.033600 0.413900
--2.162800 35.743500 -9.599900 -0.012671 0.074070 -0.997173 0.052600 0.465300
-0.000000 35.795200 -9.599900 -0.012671 0.074070 -0.997173 0.027500 0.464800
-0.000000 31.547001 -9.939100 -0.012671 0.074070 -0.997173 0.029600 0.415400
--5.919200 37.619099 -4.570300 -0.561685 0.544798 -0.622660 0.183200 0.661600
--2.827600 38.171799 -8.088300 -0.561685 0.544798 -0.622660 0.114500 0.661600
--2.162800 35.743500 -9.599900 -0.561685 0.544798 -0.622660 0.096500 0.631800
--5.283200 35.952900 -7.814600 -0.561685 0.544798 -0.622660 0.142000 0.631800
--28.543800 44.178001 -4.651400 -0.410462 -0.233070 -0.881589 0.718600 0.545700
--27.102699 45.320202 -5.735100 -0.410462 -0.233070 -0.881589 0.706300 0.587600
--26.246300 42.901402 -5.383600 -0.410462 -0.233070 -0.881589 0.663100 0.553800
--28.292801 42.543098 -4.446800 -0.410462 -0.233070 -0.881589 0.704200 0.514300
--25.491899 42.827301 -2.370100 0.201709 -0.968181 -0.148119 0.813300 0.554500
--27.637899 42.321201 -1.984400 0.201709 -0.968181 -0.148119 0.816200 0.507300
--28.380600 42.330502 -3.056600 0.201709 -0.968181 -0.148119 0.853500 0.507000
--26.246300 42.901402 -5.383600 0.185319 -0.980147 -0.070494 0.880100 0.569900
--25.491899 42.827301 -2.370100 0.185319 -0.980147 -0.070494 0.813300 0.554500
--28.380600 42.330502 -3.056600 0.185319 -0.980147 -0.070494 0.853500 0.507000
--0.179900 61.274700 0.058500 0.000000 0.499235 0.866467 0.525600 0.223900
--0.163800 60.672798 0.405300 0.000000 0.499235 0.866467 0.529100 0.200900
-0.163800 60.672798 0.405300 0.000000 0.499235 0.866467 0.538500 0.200900
-0.179900 61.274700 0.058500 0.000000 0.499235 0.866467 0.542100 0.223900
-0.000000 61.912998 -0.048000 0.000000 0.164575 0.986365 0.533800 0.254400
--0.179900 61.274700 0.058500 0.000000 0.164575 0.986365 0.525600 0.223900
-0.179900 61.274700 0.058500 0.000000 0.164575 0.986365 0.542100 0.223900
--2.162800 35.743500 -9.599900 -0.008224 0.529675 -0.848161 0.096500 0.631800
--2.827600 38.171799 -8.088300 -0.008224 0.529675 -0.848161 0.114500 0.661600
-0.000000 38.221600 -8.073300 -0.008224 0.529675 -0.848161 0.073200 0.661600
-0.000000 35.795200 -9.599900 -0.008224 0.529675 -0.848161 0.068100 0.631800
-4.620900 14.945700 -8.516100 0.163464 0.013069 -0.986463 0.912200 0.175600
-3.252600 0.001600 -8.591000 0.163464 0.013069 -0.986463 0.909400 0.032900
-1.712600 0.024900 -9.195700 0.163464 0.013069 -0.986463 0.925400 0.031900
-1.456400 14.610600 -8.695100 0.163464 0.013069 -0.986463 0.943400 0.175600
-4.089400 2.633000 -5.031300 0.982688 -0.088487 -0.162770 0.873900 0.060000
-3.252600 0.001600 -8.591000 0.982688 -0.088487 -0.162770 0.909400 0.032900
-4.620900 14.945700 -8.516100 0.982688 -0.088487 -0.162770 0.912200 0.175600
-5.308800 13.910900 -3.738700 0.982688 -0.088487 -0.162770 0.859000 0.175600
-1.553600 3.059500 -4.173500 -0.398905 -0.098999 0.911633 0.841100 0.058900
-3.061600 3.537800 -3.461700 -0.398905 -0.098999 0.911633 0.856300 0.067800
-1.766900 13.754900 -2.918700 -0.398905 -0.098999 0.911633 0.824200 0.175600
-1.553600 3.059500 -4.173500 -0.983093 0.009545 0.182857 0.841100 0.058900
-1.766900 13.754900 -2.918700 -0.983093 0.009545 0.182857 0.824200 0.175600
-1.239800 14.644800 -6.465300 -0.983093 0.009545 0.182857 0.795300 0.175600
-0.626000 0.031700 -8.336200 -0.983093 0.009545 0.182857 0.808600 0.019600
-5.495700 46.043098 -6.732400 0.860977 -0.085411 -0.501422 0.140100 0.788400
-6.029500 46.188801 -3.956000 0.860977 -0.085411 -0.501422 0.183500 0.792100
-5.919200 37.619099 -4.570300 0.860977 -0.085411 -0.501422 0.183400 0.661600
-2.827600 38.171799 -8.088300 0.860977 -0.085411 -0.501422 0.114700 0.661600
-4.685700 36.664101 -1.616400 0.917535 -0.032092 0.396359 0.239300 0.661600
-5.919200 37.619099 -4.570300 0.917535 -0.032092 0.396359 0.183400 0.661600
-6.029500 46.188801 -3.956000 0.917535 -0.032092 0.396359 0.183500 0.792100
-4.298500 47.001099 -0.058900 0.917535 -0.032092 0.396359 0.249500 0.802400
-6.775800 50.206501 -7.534500 0.223809 0.028781 -0.974208 0.134300 0.852600
-0.000000 50.037800 -9.413700 0.223809 0.028781 -0.974208 0.042000 0.827300
-0.000000 53.738098 -8.986800 0.223809 0.028781 -0.974208 0.028300 0.877800
-7.252500 54.524502 -7.615000 0.223809 0.028781 -0.974208 0.126400 0.913200
-7.252500 54.524502 -7.615000 0.375359 0.901424 0.215731 0.533200 0.977800
-6.624100 53.529800 -2.653700 0.375359 0.901424 0.215731 0.469900 0.977800
-8.184300 53.108700 -3.320400 0.375359 0.901424 0.215731 0.469900 0.942000
-8.747800 53.770199 -7.353300 0.375359 0.901424 0.215731 0.528600 0.942000
-9.827700 52.989700 -7.188500 0.412168 0.895237 0.169320 0.526400 0.916400
-9.508400 52.403099 -3.672700 0.412168 0.895237 0.169320 0.469900 0.916400
-15.636800 49.715099 -4.015700 0.412168 0.895237 0.169320 0.469900 0.803100
-14.989100 50.565300 -7.297200 0.412168 0.895237 0.169320 0.526200 0.828100
-0.000000 37.009800 0.550700 0.339751 -0.089043 0.936291 0.310700 0.661600
-4.685700 36.664101 -1.616400 0.339751 -0.089043 0.936291 0.239300 0.661600
-4.298500 47.001099 -0.058900 0.339751 -0.089043 0.936291 0.249500 0.802400
-0.000000 47.287498 1.094200 0.339751 -0.089043 0.936291 0.310700 0.805700
-0.000000 53.738098 -8.986800 0.139268 0.841727 -0.521633 0.028300 0.877800
-0.000000 55.950600 -7.250100 0.139268 0.841727 -0.521633 0.022600 0.916300
-2.321200 55.471001 -5.570800 0.139268 0.841727 -0.521633 0.053900 0.941000
-7.252500 54.524502 -7.615000 0.139268 0.841727 -0.521633 0.126400 0.913200
-3.773800 51.093601 -1.034300 0.772400 -0.022870 0.634725 0.256800 0.864400
-4.298500 47.001099 -0.058900 0.772400 -0.022870 0.634725 0.249500 0.802400
-6.029500 46.188801 -3.956000 0.772400 -0.022870 0.634725 0.183500 0.792100
-6.624100 53.529800 -2.653700 0.772400 -0.022870 0.634725 0.210400 0.900400
-6.624100 53.529800 -2.653700 0.299992 -0.190133 0.934802 0.210400 0.900400
-6.029500 46.188801 -3.956000 0.299992 -0.190133 0.934802 0.183500 0.792100
-7.813100 49.342701 -3.886900 0.299992 -0.190133 0.934802 0.181200 0.844200
-0.000000 50.880199 0.110000 0.266804 0.255185 0.929352 0.310700 0.860500
-0.000000 47.287498 1.094200 0.266804 0.255185 0.929352 0.310700 0.805700
-4.298500 47.001099 -0.058900 0.266804 0.255185 0.929352 0.249500 0.802400
-3.773800 51.093601 -1.034300 0.266804 0.255185 0.929352 0.256800 0.864400
-16.136200 50.023998 -7.546200 -0.129075 0.179950 -0.975171 0.529500 0.803100
-14.885000 46.974701 -7.946000 -0.129075 0.179950 -0.975171 0.590800 0.803100
-13.779500 47.417198 -7.715300 -0.129075 0.179950 -0.975171 0.590800 0.828100
-14.989100 50.565300 -7.297200 -0.129075 0.179950 -0.975171 0.526200 0.828100
-13.779500 47.417198 -7.715300 -0.437873 -0.882573 -0.171264 0.347800 0.823100
-14.977100 45.689201 -4.821000 -0.437873 -0.882573 -0.171264 0.400900 0.803100
-8.927200 49.128502 -4.128200 -0.437873 -0.882573 -0.171264 0.409800 0.916400
-8.756500 49.321098 -7.632900 -0.437873 -0.882573 -0.171264 0.347800 0.916400
-17.208200 49.477699 -7.512200 0.268622 0.938905 0.215175 0.531700 0.782100
-16.810101 49.139900 -3.928800 0.268622 0.938905 0.215175 0.469900 0.782100
-22.348700 46.932201 -2.822400 0.268622 0.938905 0.215175 0.469900 0.674700
-22.585199 48.327702 -7.594400 0.268622 0.938905 0.215175 0.533600 0.698800
-21.936399 43.055199 -3.733600 -0.256926 -0.186034 0.948357 0.412700 0.674700
-22.348700 46.932201 -2.822400 -0.256926 -0.186034 0.948357 0.469900 0.674700
-16.810101 49.139900 -3.928800 -0.256926 -0.186034 0.948357 0.469900 0.782100
-16.192200 44.960400 -4.877100 -0.256926 -0.186034 0.948357 0.398600 0.782100
-22.105101 44.119598 -7.074000 0.471869 -0.161034 -0.866838 0.583100 0.674700
-21.061199 44.183601 -7.611200 0.471869 -0.161034 -0.866838 0.590800 0.698800
-22.585199 48.327702 -7.594400 0.471869 -0.161034 -0.866838 0.533600 0.698800
-23.337700 47.268200 -6.945000 0.471869 -0.161034 -0.866838 0.530800 0.674700
-15.884600 46.520500 -7.855800 -0.312108 -0.901546 -0.299673 0.347800 0.782100
-21.061199 44.183601 -7.611200 -0.312108 -0.901546 -0.299673 0.347800 0.693400
-21.936399 43.055199 -3.733600 -0.312108 -0.901546 -0.299673 0.412700 0.674700
-16.192200 44.960400 -4.877100 -0.312108 -0.901546 -0.299673 0.398600 0.782100
-5.598500 31.822901 -1.404300 0.899204 0.141743 0.413933 0.847900 0.413200
-7.453900 29.910801 -4.780100 0.899204 0.141743 0.413933 0.884800 0.385400
-7.174300 32.815300 -5.167300 0.899204 0.141743 0.413933 0.893300 0.414200
-4.970000 33.082802 -8.871900 0.875445 0.068330 -0.478463 0.938900 0.409500
-7.174300 32.815300 -5.167300 0.875445 0.068330 -0.478463 0.893300 0.414200
-7.453900 29.910801 -4.780100 0.875445 0.068330 -0.478463 0.884800 0.385400
-5.595300 29.761600 -8.492500 0.875445 0.068330 -0.478463 0.927500 0.375900
-6.827700 20.858999 -3.044800 0.895156 -0.347215 -0.279532 0.858900 0.286100
-6.194700 19.576300 -3.478600 0.895156 -0.347215 -0.279532 0.860200 0.277400
-5.426000 21.341299 -8.132600 0.895156 -0.347215 -0.279532 0.914200 0.282100
-0.835600 22.853901 -8.210700 0.045309 0.086115 -0.995254 0.964300 0.301600
-5.317800 22.936800 -8.016200 0.045309 0.086115 -0.995254 0.916400 0.301600
-5.426000 21.341299 -8.132600 0.045309 0.086115 -0.995254 0.914200 0.282100
-0.899900 21.410400 -8.349400 0.045309 0.086115 -0.995254 0.962800 0.286100
-0.899900 21.410400 -8.349400 -0.986876 0.054006 0.152183 0.726500 0.282100
-1.853000 19.164200 -1.371600 -0.986876 0.054006 0.152183 0.805100 0.274200
-1.957400 20.620800 -1.211500 -0.986876 0.054006 0.152183 0.804700 0.286100
-6.194700 19.576300 -3.478600 0.393316 -0.294694 0.870895 0.860200 0.277400
-6.827700 20.858999 -3.044800 0.393316 -0.294694 0.870895 0.858900 0.286100
-1.957400 20.620800 -1.211500 0.393316 -0.294694 0.870895 0.804700 0.286100
-1.853000 19.164200 -1.371600 0.393316 -0.294694 0.870895 0.805100 0.274200
-5.117200 15.490400 -9.679700 -0.013076 0.210350 -0.977539 0.917300 0.220800
-0.134100 16.169500 -9.174700 -0.013076 0.210350 -0.977539 0.969900 0.225300
-0.899900 21.410400 -8.349400 -0.013076 0.210350 -0.977539 0.962800 0.286100
-5.426000 21.341299 -8.132600 -0.013076 0.210350 -0.977539 0.914200 0.282100
-0.134100 16.169500 -9.174700 -0.979250 0.051054 0.196120 0.732600 0.207100
-1.716700 14.450400 -2.459200 -0.979250 0.051054 0.196120 0.808600 0.236100
-1.853000 19.164200 -1.371600 -0.979250 0.051054 0.196120 0.805100 0.274200
-0.899900 21.410400 -8.349400 -0.979250 0.051054 0.196120 0.726500 0.282100
-1.853000 19.164200 -1.371600 0.369977 -0.140579 0.918343 0.805100 0.274200
-1.716700 14.450400 -2.459200 0.369977 -0.140579 0.918343 0.808600 0.236100
-6.069200 14.643000 -3.762300 0.369977 -0.140579 0.918343 0.859400 0.227800
-6.194700 19.576300 -3.478600 0.369977 -0.140579 0.918343 0.860200 0.277400
-6.069200 14.643000 -3.762300 0.986467 -0.011966 -0.163524 0.859400 0.227800
-5.117200 15.490400 -9.679700 0.986467 -0.011966 -0.163524 0.917300 0.220800
-5.426000 21.341299 -8.132600 0.986467 -0.011966 -0.163524 0.914200 0.282100
-6.194700 19.576300 -3.478600 0.986467 -0.011966 -0.163524 0.860200 0.277400
-7.813100 49.342701 -3.886900 0.881229 -0.394976 -0.259672 0.181200 0.844200
-6.029500 46.188801 -3.956000 0.881229 -0.394976 -0.259672 0.183500 0.792100
-5.495700 46.043098 -6.732400 0.881229 -0.394976 -0.259672 0.140100 0.788400
-6.775800 50.206501 -7.534500 0.881229 -0.394976 -0.259672 0.134300 0.852600
-8.756500 49.321098 -7.632900 -0.341557 -0.936397 -0.080618 0.347800 0.916400
-8.927200 49.128502 -4.128200 -0.341557 -0.936397 -0.080618 0.409800 0.916400
-7.813100 49.342701 -3.886900 -0.341557 -0.936397 -0.080618 0.407700 0.942000
-6.775800 50.206501 -7.534500 -0.341557 -0.936397 -0.080618 0.347800 0.942000
-5.495700 46.043098 -6.732400 0.295037 -0.218453 -0.930178 0.140100 0.788400
-0.000000 45.235802 -8.516300 0.295037 -0.218453 -0.930178 0.061600 0.762900
-0.000000 50.037800 -9.413700 0.295037 -0.218453 -0.930178 0.042000 0.827300
-6.775800 50.206501 -7.534500 0.295037 -0.218453 -0.930178 0.134300 0.852600
-3.773800 51.093601 -1.034300 0.217879 0.518058 0.827130 0.256800 0.864400
-1.435700 55.057400 -2.884500 0.217879 0.518058 0.827130 0.286000 0.931400
-0.000000 54.522099 -2.187600 0.217879 0.518058 0.827130 0.310700 0.919600
-0.000000 50.880199 0.110000 0.217879 0.518058 0.827130 0.310700 0.860500
-0.163800 60.672798 0.405300 0.878123 0.172158 0.446386 0.538500 0.200900
-0.226300 59.631802 0.717000 0.878123 0.172158 0.446386 0.537800 0.167300
-0.605400 59.453602 0.006800 0.878123 0.172158 0.446386 0.558900 0.156900
-0.596000 60.268700 -0.255900 0.878123 0.172158 0.446386 0.565100 0.185300
-0.000000 59.375900 0.272700 0.351825 0.003851 0.936058 0.533800 0.153800
-0.000000 58.735298 0.237300 0.351825 0.003851 0.936058 0.533800 0.134400
-0.793500 58.611801 -0.022400 0.351825 0.003851 0.936058 0.561500 0.129800
-0.605400 59.453602 0.006800 0.351825 0.003851 0.936058 0.558900 0.156900
-1.340700 61.343498 -1.024900 0.500896 0.173312 0.847978 0.599900 0.231700
-2.225300 60.301201 -1.334400 0.500896 0.173312 0.847978 0.633200 0.187400
-2.209500 61.230499 -1.515000 0.500896 0.173312 0.847978 0.636800 0.228100
-0.474100 61.294899 -0.607800 0.419394 -0.893935 0.158081 0.567800 0.227200
-0.785400 61.539799 -0.048800 0.419394 -0.893935 0.158081 0.562200 0.247600
-0.179900 61.274700 0.058500 0.419394 -0.893935 0.158081 0.542100 0.223900
-0.163800 60.672798 0.405300 0.879737 0.234636 0.413532 0.538500 0.200900
-0.596000 60.268700 -0.255900 0.879737 0.234636 0.413532 0.565100 0.185300
-0.474100 61.294899 -0.607800 0.879737 0.234636 0.413532 0.567800 0.227200
-0.179900 61.274700 0.058500 0.879737 0.234636 0.413532 0.542100 0.223900
-0.785400 61.539799 -0.048800 0.405349 0.400850 0.821591 0.562200 0.247600
-1.792100 61.563202 -0.648200 0.405349 0.400850 0.821591 0.603400 0.250800
-1.901400 62.898899 -1.262500 0.405349 0.400850 0.821591 0.616100 0.287500
-0.000000 62.775902 -0.355700 0.405349 0.400850 0.821591 0.533900 0.286800
-1.901400 62.898899 -1.262500 0.958885 0.139689 0.247034 0.616100 0.287500
-1.792100 61.563202 -0.648200 0.958885 0.139689 0.247034 0.603400 0.250800
-2.209500 61.230499 -1.515000 0.958885 0.139689 0.247034 0.636800 0.228100
-2.505800 61.413601 -3.333900 0.958885 0.139689 0.247034 0.700500 0.240200
-2.071800 58.080299 -1.837600 0.982605 0.010378 0.185418 0.632000 0.089900
-2.361600 58.652599 -3.405400 0.982605 0.010378 0.185418 0.691600 0.111600
-2.043500 58.694401 -1.722000 0.982605 0.010378 0.185418 0.633000 0.119000
-2.361600 58.652599 -3.405400 0.835615 -0.547438 -0.045374 0.691600 0.111600
-2.071800 58.080299 -1.837600 0.835615 -0.547438 -0.045374 0.632000 0.089900
-1.480400 57.287800 -3.167400 0.835615 -0.547438 -0.045374 0.679600 0.054000
-2.361600 58.652599 -3.405400 0.962379 -0.178153 0.205154 0.691600 0.111600
-2.484800 60.667999 -2.078300 0.962379 -0.178153 0.205154 0.658100 0.193000
-2.225300 60.301201 -1.334400 0.962379 -0.178153 0.205154 0.633200 0.187400
-2.043500 58.694401 -1.722000 0.962379 -0.178153 0.205154 0.633000 0.119000
-0.596000 60.268700 -0.255900 0.569338 0.180881 0.801958 0.565100 0.185300
-0.605400 59.453602 0.006800 0.569338 0.180881 0.801958 0.558900 0.156900
-0.793500 58.611801 -0.022400 0.569338 0.180881 0.801958 0.561500 0.129800
-2.225300 60.301201 -1.334400 0.569338 0.180881 0.801958 0.633200 0.187400
-0.793500 58.611801 -0.022400 0.424783 -0.113068 0.898207 0.561500 0.129800
-0.000000 58.735298 0.237300 0.424783 -0.113068 0.898207 0.533800 0.134400
-0.000000 57.320400 0.190300 0.424783 -0.113068 0.898207 0.533800 0.095300
-0.860300 57.339199 -0.345300 0.424783 -0.113068 0.898207 0.560600 0.087800
-2.361600 58.652599 -3.405400 0.801295 -0.555920 -0.221086 0.691600 0.111600
-1.480400 57.287800 -3.167400 0.801295 -0.555920 -0.221086 0.679600 0.054000
-1.507500 57.978802 -4.806700 0.801295 -0.555920 -0.221086 0.740400 0.071600
-1.480400 57.287800 -3.167400 0.605736 -0.042761 0.794516 0.293800 0.962800
-0.509500 56.862801 -2.081200 0.605736 -0.042761 0.794516 0.308000 0.953500
-0.000000 54.522099 -2.187600 0.605736 -0.042761 0.794516 0.310700 0.919600
-1.435700 55.057400 -2.884500 0.605736 -0.042761 0.794516 0.286000 0.931400
-1.435700 55.057400 -2.884500 0.962522 0.132164 0.236820 0.286000 0.931400
-2.321200 55.471001 -5.570800 0.962522 0.132164 0.236820 0.259700 0.968000
-1.507500 57.978802 -4.806700 0.962522 0.132164 0.236820 0.270100 0.982500
-1.480400 57.287800 -3.167400 0.962522 0.132164 0.236820 0.293800 0.962800
-5.117200 15.490400 -9.679700 -0.146405 -0.402228 -0.903758 0.917300 0.220800
-1.456400 14.610600 -8.695100 -0.146405 -0.402228 -0.903758 0.949700 0.207500
-0.134100 16.169500 -9.174700 -0.146405 -0.402228 -0.903758 0.969900 0.225300
-0.134100 16.169500 -9.174700 -0.868940 -0.488451 0.079739 0.732600 0.207100
-1.239800 14.644800 -6.465300 -0.868940 -0.488451 0.079739 0.774100 0.204900
-1.716700 14.450400 -2.459200 -0.868940 -0.488451 0.079739 0.808600 0.236100
-5.308800 13.910900 -3.738700 0.254739 -0.396087 0.882170 0.855000 0.218100
-6.069200 14.643000 -3.762300 0.254739 -0.396087 0.882170 0.859400 0.227800
-1.716700 14.450400 -2.459200 0.254739 -0.396087 0.882170 0.808600 0.236100
-1.766900 13.754900 -2.918700 0.254739 -0.396087 0.882170 0.809900 0.215800
-4.620900 14.945700 -8.516100 0.580484 -0.782092 -0.226651 0.914400 0.215300
-5.117200 15.490400 -9.679700 0.580484 -0.782092 -0.226651 0.917300 0.220800
-6.069200 14.643000 -3.762300 0.580484 -0.782092 -0.226651 0.859400 0.227800
-5.308800 13.910900 -3.738700 0.580484 -0.782092 -0.226651 0.855000 0.218100
-1.957400 20.620800 -1.211500 -0.981620 0.066989 0.178702 0.804700 0.286100
-2.189200 21.987900 -1.483700 -0.981620 0.066989 0.178702 0.804500 0.301600
-0.835600 22.853901 -8.210700 -0.981620 0.066989 0.178702 0.728900 0.301600
-0.899900 21.410400 -8.349400 -0.981620 0.066989 0.178702 0.726500 0.282100
-7.174300 32.815300 -5.167300 0.882089 0.156872 -0.444196 0.893300 0.414200
-4.970000 33.082802 -8.871900 0.882089 0.156872 -0.444196 0.938900 0.409500
-5.283200 35.952900 -7.814600 0.882089 0.156872 -0.444196 0.933900 0.441300
-6.542300 35.480598 -4.902800 0.882089 0.156872 -0.444196 0.897200 0.442800
-5.598500 31.822901 -1.404300 0.892181 0.170029 0.418452 0.847900 0.413200
-7.174300 32.815300 -5.167300 0.892181 0.170029 0.418452 0.893300 0.414200
-6.542300 35.480598 -4.902800 0.892181 0.170029 0.418452 0.897200 0.442800
-4.685700 36.664101 -1.616400 0.472747 0.127337 0.871949 0.239300 0.661600
-3.798500 31.552500 -0.388900 0.472747 0.127337 0.871949 0.257800 0.582200
-5.598500 31.822901 -1.404300 0.472747 0.127337 0.871949 0.231700 0.582200
-2.225300 60.301201 -1.334400 0.926529 0.086891 0.366052 0.633200 0.187400
-2.484800 60.667999 -2.078300 0.926529 0.086891 0.366052 0.658100 0.193000
-2.209500 61.230499 -1.515000 0.926529 0.086891 0.366052 0.636800 0.228100
-8.927200 49.128502 -4.128200 0.174303 -0.164506 0.970853 0.409800 0.916400
-9.508400 52.403099 -3.672700 0.174303 -0.164506 0.970853 0.469900 0.916400
-8.184300 53.108700 -3.320400 0.174303 -0.164506 0.970853 0.469900 0.942000
-7.813100 49.342701 -3.886900 0.174303 -0.164506 0.970853 0.407700 0.942000
-8.184300 53.108700 -3.320400 0.526523 0.826719 0.198265 0.469900 0.942000
-9.508400 52.403099 -3.672700 0.526523 0.826719 0.198265 0.469900 0.916400
-9.827700 52.989700 -7.188500 0.526523 0.826719 0.198265 0.526400 0.916400
-8.747800 53.770199 -7.353300 0.526523 0.826719 0.198265 0.528600 0.942000
-8.747800 53.770199 -7.353300 0.154881 -0.035505 -0.987295 0.528600 0.942000
-6.775800 50.206501 -7.534500 0.154881 -0.035505 -0.987295 0.590800 0.942000
-7.252500 54.524502 -7.615000 0.154881 -0.035505 -0.987295 0.533200 0.977800
-8.927200 49.128502 -4.128200 -0.001669 -0.169906 0.985459 0.409800 0.916400
-14.977100 45.689201 -4.821000 -0.001669 -0.169906 0.985459 0.400900 0.803100
-15.636800 49.715099 -4.015700 -0.001669 -0.169906 0.985459 0.469900 0.803100
-9.508400 52.403099 -3.672700 -0.001669 -0.169906 0.985459 0.469900 0.916400
-1.435700 55.057400 -2.884500 0.215818 0.814400 0.538680 0.286000 0.931400
-3.773800 51.093601 -1.034300 0.215818 0.814400 0.538680 0.256800 0.864400
-6.624100 53.529800 -2.653700 0.215818 0.814400 0.538680 0.210400 0.900400
-7.252500 54.524502 -7.615000 0.215818 0.814400 0.538680 0.180600 0.964800
-2.321200 55.471001 -5.570800 0.276118 0.932071 0.234526 0.259700 0.968000
-1.435700 55.057400 -2.884500 0.276118 0.932071 0.234526 0.286000 0.931400
-7.252500 54.524502 -7.615000 0.276118 0.932071 0.234526 0.180600 0.964800
-2.209500 61.230499 -1.515000 0.942806 0.279456 0.181716 0.636800 0.228100
-2.484800 60.667999 -2.078300 0.942806 0.279456 0.181716 0.658100 0.193000
-2.505800 61.413601 -3.333900 0.942806 0.279456 0.181716 0.704900 0.212700
-2.484800 60.667999 -2.078300 0.998559 -0.051788 -0.014052 0.658100 0.193000
-2.361600 58.652599 -3.405400 0.998559 -0.051788 -0.014052 0.691600 0.111600
-2.505800 61.413601 -3.333900 0.998559 -0.051788 -0.014052 0.704900 0.212700
-2.209500 61.230499 -1.515000 0.107977 -0.909631 0.401138 0.636800 0.228100
-1.792100 61.563202 -0.648200 0.107977 -0.909631 0.401138 0.603400 0.250800
-1.340700 61.343498 -1.024900 0.107977 -0.909631 0.401138 0.599900 0.231700
-3.061600 3.537800 -3.461700 -0.234488 0.898953 0.369997 0.290200 0.071700
-1.553600 3.059500 -4.173500 -0.234488 0.898953 0.369997 0.275500 0.071900
-1.568700 1.981700 -0.627100 -0.234488 0.898953 0.369997 0.274000 0.039600
-3.735600 1.816900 0.228400 -0.234488 0.898953 0.369997 0.290200 0.030700
-0.626000 0.031700 -8.336200 -0.992053 0.072189 0.103052 0.238500 0.103000
-1.825200 -0.024100 0.601200 -0.992053 0.072189 0.103052 0.266200 0.023600
-1.568700 1.981700 -0.627100 -0.992053 0.072189 0.103052 0.274000 0.039600
-1.553600 3.059500 -4.173500 -0.992053 0.072189 0.103052 0.275500 0.071900
-1.825200 -0.024100 0.601200 0.002195 -0.999985 -0.005027 0.783900 0.050100
-0.626000 0.031700 -8.336200 0.002195 -0.999985 -0.005027 0.777900 0.139800
-1.712600 0.024900 -9.195700 0.002195 -0.999985 -0.005027 0.765100 0.147100
-3.769300 -0.009000 1.132900 0.002195 -0.999985 -0.005027 0.765800 0.040900
-1.712600 0.024900 -9.195700 -0.920325 0.042849 -0.388801 0.925400 0.031900
-0.626000 0.031700 -8.336200 -0.920325 0.042849 -0.388801 0.938600 0.031200
-1.239800 14.644800 -6.465300 -0.920325 0.042849 -0.388801 0.974400 0.175600
-1.456400 14.610600 -8.695100 -0.920325 0.042849 -0.388801 0.943400 0.175600
-1.568700 1.981700 -0.627100 -0.270273 0.452545 0.849798 0.274000 0.039600
-1.825200 -0.024100 0.601200 -0.270273 0.452545 0.849798 0.266200 0.023600
-3.769300 -0.009000 1.132900 -0.270273 0.452545 0.849798 0.289700 0.012400
-3.735600 1.816900 0.228400 -0.270273 0.452545 0.849798 0.290200 0.030700
-4.089400 2.633000 -5.031300 0.957442 -0.073711 -0.279054 0.310400 0.073900
-5.390300 1.568200 -1.670300 0.957442 -0.073711 -0.279054 0.308400 0.040400
-5.176800 -0.025000 -0.598300 0.957442 -0.073711 -0.279054 0.313500 0.023800
-3.252600 0.001600 -8.591000 0.957442 -0.073711 -0.279054 0.345300 0.097200
-3.769300 -0.009000 1.132900 0.738109 0.308147 0.600201 0.289700 0.012400
-5.176800 -0.025000 -0.598300 0.738109 0.308147 0.600201 0.313500 0.023800
-5.390300 1.568200 -1.670300 0.738109 0.308147 0.600201 0.308400 0.040400
-3.735600 1.816900 0.228400 0.738109 0.308147 0.600201 0.290200 0.030700
-5.390300 1.568200 -1.670300 0.560649 0.811720 0.163660 0.308400 0.040400
-4.089400 2.633000 -5.031300 0.560649 0.811720 0.163660 0.310400 0.073900
-3.061600 3.537800 -3.461700 0.560649 0.811720 0.163660 0.290200 0.071700
-3.735600 1.816900 0.228400 0.560649 0.811720 0.163660 0.290200 0.030700
-3.061600 3.537800 -3.461700 0.452521 -0.074303 0.888653 0.856300 0.067800
-4.089400 2.633000 -5.031300 0.452521 -0.074303 0.888653 0.873900 0.060000
-5.308800 13.910900 -3.738700 0.452521 -0.074303 0.888653 0.859000 0.175600
-1.766900 13.754900 -2.918700 0.452521 -0.074303 0.888653 0.824200 0.175600
-5.117200 15.490400 -9.679700 0.118623 -0.917754 -0.379021 0.917300 0.220800
-4.620900 14.945700 -8.516100 0.118623 -0.917754 -0.379021 0.914400 0.215300
-1.456400 14.610600 -8.695100 0.118623 -0.917754 -0.379021 0.949700 0.207500
-1.456400 14.610600 -8.695100 -0.751462 -0.656769 -0.062923 0.746600 0.183800
-1.239800 14.644800 -6.465300 -0.751462 -0.656769 -0.062923 0.774100 0.204900
-0.134100 16.169500 -9.174700 -0.751462 -0.656769 -0.062923 0.732600 0.207100
-5.426000 21.341299 -8.132600 0.959663 0.028025 -0.279753 0.914200 0.282100
-5.317800 22.936800 -8.016200 0.959663 0.028025 -0.279753 0.916400 0.301600
-6.824000 22.193899 -3.251500 0.959663 0.028025 -0.279753 0.860400 0.301600
-6.827700 20.858999 -3.044800 0.959663 0.028025 -0.279753 0.858900 0.286100
-0.845100 29.891001 -9.498900 0.127296 -0.127838 -0.983592 0.978500 0.369500
-5.595300 29.761600 -8.492500 0.127296 -0.127838 -0.983592 0.927500 0.375900
-5.317800 22.936800 -8.016200 0.127296 -0.127838 -0.983592 0.916400 0.301600
-0.835600 22.853901 -8.210700 0.127296 -0.127838 -0.983592 0.964300 0.301600
-1.957400 20.620800 -1.211500 0.345482 0.135420 0.928603 0.804700 0.286100
-6.827700 20.858999 -3.044800 0.345482 0.135420 0.928603 0.858900 0.286100
-6.824000 22.193899 -3.251500 0.345482 0.135420 0.928603 0.860400 0.301600
-2.189200 21.987900 -1.483700 0.345482 0.135420 0.928603 0.804500 0.301600
-0.605400 59.453602 0.006800 0.276378 -0.886938 0.370075 0.558900 0.156900
-0.226300 59.631802 0.717000 0.276378 -0.886938 0.370075 0.537800 0.167300
-0.000000 59.375900 0.272700 0.276378 -0.886938 0.370075 0.533800 0.153800
-21.936399 43.055199 -3.733600 0.245050 -0.199318 0.948801 0.412700 0.674700
-23.265499 44.290199 -3.614200 0.245050 -0.199318 0.948801 0.431800 0.655600
-23.323000 46.228001 -3.425200 0.245050 -0.199318 0.948801 0.469900 0.655600
-22.348700 46.932201 -2.822400 0.245050 -0.199318 0.948801 0.469900 0.674700
-22.105101 44.119598 -7.074000 0.680722 -0.210597 -0.701617 0.583100 0.674700
-23.337700 47.268200 -6.945000 0.680722 -0.210597 -0.701617 0.530800 0.674700
-23.881300 46.267799 -5.995500 0.680722 -0.210597 -0.701617 0.521800 0.655600
-23.273100 44.479099 -6.170500 0.680722 -0.210597 -0.701617 0.556600 0.655600
-22.348700 46.932201 -2.822400 0.710630 0.673907 0.202126 0.469900 0.674700
-23.323000 46.228001 -3.425200 0.710630 0.673907 0.202126 0.469900 0.655600
-23.881300 46.267799 -5.995500 0.710630 0.673907 0.202126 0.521800 0.655600
-23.337700 47.268200 -6.945000 0.710630 0.673907 0.202126 0.530800 0.674700
-21.936399 43.055199 -3.733600 0.575702 -0.803125 -0.153486 0.412700 0.674700
-22.105101 44.119598 -7.074000 0.575702 -0.803125 -0.153486 0.362600 0.674700
-23.273100 44.479099 -6.170500 0.575702 -0.803125 -0.153486 0.386800 0.655600
-23.265499 44.290199 -3.614200 0.575702 -0.803125 -0.153486 0.431800 0.655600
-23.323000 46.228001 -3.425200 -0.234519 0.052147 0.970712 0.469900 0.655600
-23.265499 44.290199 -3.614200 -0.234519 0.052147 0.970712 0.431800 0.655600
-24.446100 44.099098 -3.039500 -0.234519 0.052147 0.970712 0.444100 0.624200
-24.935400 45.742901 -3.288800 -0.234519 0.052147 0.970712 0.469900 0.624200
-23.273100 44.479099 -6.170500 0.051663 0.047611 -0.997529 0.556600 0.655600
-23.881300 46.267799 -5.995500 0.051663 0.047611 -0.997529 0.521800 0.655600
-25.982700 45.641201 -5.974700 0.051663 0.047611 -0.997529 0.517100 0.624200
-25.718901 44.407902 -5.989100 0.051663 0.047611 -0.997529 0.533000 0.624200
-23.881300 46.267799 -5.995500 0.283035 0.956157 0.075198 0.521800 0.655600
-23.323000 46.228001 -3.425200 0.283035 0.956157 0.075198 0.469900 0.655600
-24.935400 45.742901 -3.288800 0.283035 0.956157 0.075198 0.469900 0.624200
-25.982700 45.641201 -5.974700 0.283035 0.956157 0.075198 0.517100 0.624200
-23.265499 44.290199 -3.614200 -0.050680 -0.993534 -0.101596 0.431800 0.655600
-23.273100 44.479099 -6.170500 -0.050680 -0.993534 -0.101596 0.386800 0.655600
-25.718901 44.407902 -5.989100 -0.050680 -0.993534 -0.101596 0.398000 0.624200
-24.446100 44.099098 -3.039500 -0.050680 -0.993534 -0.101596 0.444100 0.624200
-3.798500 31.552500 -0.388900 0.303080 0.047081 0.951802 0.257800 0.582200
-4.685700 36.664101 -1.616400 0.303080 0.047081 0.951802 0.239300 0.661600
-0.000000 37.009800 0.550700 0.303080 0.047081 0.951802 0.310700 0.661600
-0.000000 31.552500 0.128500 0.303080 0.047081 0.951802 0.310700 0.582200
-27.058001 43.733101 -1.471100 0.612973 -0.035197 0.789319 0.783900 0.527900
-26.775499 43.007000 -1.492900 0.612973 -0.035197 0.789319 0.799700 0.523000
-27.637899 42.321201 -1.984400 0.612973 -0.035197 0.789319 0.780200 0.502700
-28.100901 44.177299 -2.470000 0.612973 -0.035197 0.789319 0.756100 0.537200
-27.102699 45.320202 -5.735100 0.288380 -0.175341 -0.941325 0.706300 0.587600
-26.246300 42.901402 -5.383600 0.288380 -0.175341 -0.941325 0.663100 0.553800
-25.718901 44.407902 -5.989100 0.288380 -0.175341 -0.941325 0.674700 0.592000
-25.982700 45.641201 -5.974700 0.288380 -0.175341 -0.941325 0.701400 0.609900
-24.935400 45.742901 -3.288800 0.215944 0.976143 0.022647 0.774000 0.616500
-26.753901 45.398300 -2.858600 0.215944 0.976143 0.022647 0.766000 0.574200
-27.102699 45.320202 -5.735100 0.215944 0.976143 0.022647 0.706300 0.587600
-25.982700 45.641201 -5.974700 0.215944 0.976143 0.022647 0.701400 0.609900
-24.446100 44.099098 -3.039500 -0.806467 -0.440747 -0.394147 0.815000 0.599300
-25.718901 44.407902 -5.989100 -0.806467 -0.440747 -0.394147 0.885900 0.607200
-26.246300 42.901402 -5.383600 -0.806467 -0.440747 -0.394147 0.880100 0.569900
-28.380600 42.330502 -3.056600 0.840529 -0.044209 0.539960 0.741600 0.498200
-28.697901 44.238201 -3.477500 0.840529 -0.044209 0.539960 0.737900 0.538900
-28.100901 44.177299 -2.470000 0.840529 -0.044209 0.539960 0.756100 0.537200
-27.637899 42.321201 -1.984400 0.840529 -0.044209 0.539960 0.780200 0.502700
-28.380600 42.330502 -3.056600 0.979149 -0.175223 -0.102788 0.741600 0.498200
-28.292801 42.543098 -4.446800 0.979149 -0.175223 -0.102788 0.704200 0.514300
-28.543800 44.178001 -4.651400 0.979149 -0.175223 -0.102788 0.718600 0.545700
-28.697901 44.238201 -3.477500 0.979149 -0.175223 -0.102788 0.737900 0.538900
-26.753901 45.398300 -2.858600 0.560189 0.737837 0.376544 0.766000 0.574200
-28.100901 44.177299 -2.470000 0.560189 0.737837 0.376544 0.756100 0.537200
-28.697901 44.238201 -3.477500 0.560189 0.737837 0.376544 0.737900 0.538900
-24.935400 45.742901 -3.288800 -0.484106 0.321222 0.813915 0.774000 0.616500
-24.446100 44.099098 -3.039500 -0.484106 0.321222 0.813915 0.815000 0.599300
-25.587200 43.557701 -2.038700 -0.484106 0.321222 0.813915 0.806300 0.556900
-26.117701 44.487900 -2.198700 -0.484106 0.321222 0.813915 0.788200 0.565100
-24.446100 44.099098 -3.039500 -0.765721 -0.642695 -0.024780 0.815000 0.599300
-26.246300 42.901402 -5.383600 -0.765721 -0.642695 -0.024780 0.880100 0.569900
-25.491899 42.827301 -2.370100 -0.765721 -0.642695 -0.024780 0.813300 0.554500
-25.587200 43.557701 -2.038700 -0.765721 -0.642695 -0.024780 0.806300 0.556900
-26.753901 45.398300 -2.858600 -0.068715 0.616533 0.784324 0.766000 0.574200
-24.935400 45.742901 -3.288800 -0.068715 0.616533 0.784324 0.774000 0.616500
-26.117701 44.487900 -2.198700 -0.068715 0.616533 0.784324 0.788200 0.565100
-0.000000 31.552500 0.128500 0.069913 -0.031462 0.997057 0.310700 0.582200
-0.000000 24.132099 -0.356700 0.069913 -0.031462 0.997057 0.310700 0.472800
-3.463700 23.872801 -0.356700 0.069913 -0.031462 0.997057 0.261200 0.472800
-3.798500 31.552500 -0.388900 0.069913 -0.031462 0.997057 0.257800 0.582200
-2.225300 60.301201 -1.334400 0.789816 -0.226827 0.569860 0.633200 0.187400
-0.793500 58.611801 -0.022400 0.789816 -0.226827 0.569860 0.561500 0.129800
-2.043500 58.694401 -1.722000 0.789816 -0.226827 0.569860 0.633000 0.119000
-0.793500 58.611801 -0.022400 0.800106 -0.097243 0.591924 0.561500 0.129800
-0.860300 57.339199 -0.345300 0.800106 -0.097243 0.591924 0.560600 0.087800
-2.071800 58.080299 -1.837600 0.800106 -0.097243 0.591924 0.632000 0.089900
-2.043500 58.694401 -1.722000 0.800106 -0.097243 0.591924 0.633000 0.119000
-2.071800 58.080299 -1.837600 0.594038 -0.791272 0.144939 0.632000 0.089900
-0.860300 57.339199 -0.345300 0.594038 -0.791272 0.144939 0.560600 0.087800
-0.509500 56.862801 -2.081200 0.594038 -0.791272 0.144939 0.570500 0.026600
-1.480400 57.287800 -3.167400 0.594038 -0.791272 0.144939 0.631900 0.022800
-0.179900 61.274700 0.058500 0.090663 0.188705 0.977840 0.542100 0.223900
-0.785400 61.539799 -0.048800 0.090663 0.188705 0.977840 0.562200 0.247600
-0.000000 61.912998 -0.048000 0.090663 0.188705 0.977840 0.533800 0.254400
-15.884600 46.520500 -7.855800 0.098387 0.080586 -0.991880 0.590800 0.782100
-14.885000 46.974701 -7.946000 0.098387 0.080586 -0.991880 0.590800 0.803100
-16.136200 50.023998 -7.546200 0.098387 0.080586 -0.991880 0.529500 0.803100
-17.208200 49.477699 -7.512200 0.098387 0.080586 -0.991880 0.531700 0.782100
-15.636800 49.715099 -4.015700 0.436830 0.889212 0.135946 0.469900 0.803100
-16.810101 49.139900 -3.928800 0.436830 0.889212 0.135946 0.469900 0.782100
-17.208200 49.477699 -7.512200 0.436830 0.889212 0.135946 0.531700 0.782100
-16.136200 50.023998 -7.546200 0.436830 0.889212 0.135946 0.529500 0.803100
-16.192200 44.960400 -4.877100 -0.435886 -0.826304 -0.356686 0.398600 0.782100
-14.977100 45.689201 -4.821000 -0.435886 -0.826304 -0.356686 0.400900 0.803100
-14.885000 46.974701 -7.946000 -0.435886 -0.826304 -0.356686 0.347800 0.803100
-15.884600 46.520500 -7.855800 -0.435886 -0.826304 -0.356686 0.347800 0.782100
-16.810101 49.139900 -3.928800 -0.116417 -0.190205 0.974818 0.469900 0.782100
-15.636800 49.715099 -4.015700 -0.116417 -0.190205 0.974818 0.469900 0.803100
-14.977100 45.689201 -4.821000 -0.116417 -0.190205 0.974818 0.400900 0.803100
-16.192200 44.960400 -4.877100 -0.116417 -0.190205 0.974818 0.398600 0.782100
-13.779500 47.417198 -7.715300 0.030432 0.115440 -0.992848 0.590800 0.828100
-8.756500 49.321098 -7.632900 0.030432 0.115440 -0.992848 0.590800 0.916400
-9.827700 52.989700 -7.188500 0.030432 0.115440 -0.992848 0.526400 0.916400
-14.989100 50.565300 -7.297200 0.030432 0.115440 -0.992848 0.526200 0.828100
-15.636800 49.715099 -4.015700 0.447311 0.883265 0.140554 0.469900 0.803100
-16.136200 50.023998 -7.546200 0.447311 0.883265 0.140554 0.529500 0.803100
-14.989100 50.565300 -7.297200 0.447311 0.883265 0.140554 0.526200 0.828100
-13.779500 47.417198 -7.715300 -0.409629 -0.847844 -0.336696 0.347800 0.823100
-14.885000 46.974701 -7.946000 -0.409629 -0.847844 -0.336696 0.347800 0.803100
-14.977100 45.689201 -4.821000 -0.409629 -0.847844 -0.336696 0.400900 0.803100
-1.239800 14.644800 -6.465300 -0.983473 -0.143727 0.110102 0.774100 0.204900
-1.766900 13.754900 -2.918700 -0.983473 -0.143727 0.110102 0.809900 0.215800
-1.716700 14.450400 -2.459200 -0.983473 -0.143727 0.110102 0.808600 0.236100
-26.117701 44.487900 -2.198700 -0.374471 0.258120 0.890587 0.788200 0.565100
-25.587200 43.557701 -2.038700 -0.374471 0.258120 0.890587 0.806300 0.556900
-26.775499 43.007000 -1.492900 -0.374471 0.258120 0.890587 0.799700 0.523000
-27.058001 43.733101 -1.471100 -0.374471 0.258120 0.890587 0.783900 0.527900
-25.587200 43.557701 -2.038700 -0.386633 -0.610879 0.690899 0.806300 0.556900
-25.491899 42.827301 -2.370100 -0.386633 -0.610879 0.690899 0.813300 0.554500
-27.637899 42.321201 -1.984400 -0.386633 -0.610879 0.690899 0.816200 0.507300
-26.775499 43.007000 -1.492900 -0.386633 -0.610879 0.690899 0.799700 0.523000
-26.117701 44.487900 -2.198700 0.202601 0.798645 0.566673 0.788200 0.565100
-27.058001 43.733101 -1.471100 0.202601 0.798645 0.566673 0.783900 0.527900
-28.100901 44.177299 -2.470000 0.202601 0.798645 0.566673 0.756100 0.537200
-8.184300 53.108700 -3.320400 0.347207 -0.172872 0.921717 0.469900 0.942000
-6.624100 53.529800 -2.653700 0.347207 -0.172872 0.921717 0.469900 0.977800
-7.813100 49.342701 -3.886900 0.347207 -0.172872 0.921717 0.407700 0.942000
-8.747800 53.770199 -7.353300 0.055764 0.062731 -0.996471 0.528600 0.942000
-9.827700 52.989700 -7.188500 0.055764 0.062731 -0.996471 0.526400 0.916400
-8.756500 49.321098 -7.632900 0.055764 0.062731 -0.996471 0.590800 0.916400
-6.775800 50.206501 -7.534500 0.055764 0.062731 -0.996471 0.590800 0.942000
-28.543800 44.178001 -4.651400 0.562493 0.826801 -0.001192 0.718600 0.545700
-27.102699 45.320202 -5.735100 0.562493 0.826801 -0.001192 0.706300 0.587600
-26.753901 45.398300 -2.858600 0.562493 0.826801 -0.001192 0.766000 0.574200
-28.697901 44.238201 -3.477500 0.562493 0.826801 -0.001192 0.737900 0.538900
-26.246300 42.901402 -5.383600 -0.106461 -0.983873 -0.143736 0.880100 0.569900
-28.292801 42.543098 -4.446800 -0.106461 -0.983873 -0.143736 0.879400 0.523100
-28.380600 42.330502 -3.056600 -0.106461 -0.983873 -0.143736 0.853500 0.507000
-28.100901 44.177299 -2.470000 0.192584 0.484112 0.853550 0.756100 0.537200
-26.753901 45.398300 -2.858600 0.192584 0.484112 0.853550 0.766000 0.574200
-26.117701 44.487900 -2.198700 0.192584 0.484112 0.853550 0.788200 0.565100
-1.712600 0.024900 -9.195700 -0.013475 -0.999909 -0.000374 0.765100 0.147100
-3.252600 0.001600 -8.591000 -0.013475 -0.999909 -0.000374 0.751000 0.138000
-5.176800 -0.025000 -0.598300 -0.013475 -0.999909 -0.000374 0.748300 0.055100
-3.769300 -0.009000 1.132900 -0.013475 -0.999909 -0.000374 0.765800 0.040900
-0.000000 61.912998 -0.048000 0.158526 0.331625 0.929997 0.533800 0.254400
-0.785400 61.539799 -0.048800 0.158526 0.331625 0.929997 0.562200 0.247600
-0.000000 62.775902 -0.355700 0.158526 0.331625 0.929997 0.533900 0.286800
-0.340300 31.400700 -9.928000 -0.943868 -0.327610 -0.042246 0.694900 0.384200
-0.845100 29.891001 -9.498900 -0.943868 -0.327610 -0.042246 0.702700 0.368200
-0.425600 30.069099 -1.507500 -0.943868 -0.327610 -0.042246 0.785600 0.393300
-0.509500 56.862801 -2.081200 0.000000 -0.045410 0.998968 0.308000 0.953500
-0.509500 56.862801 -2.081200 0.098448 -0.971038 0.217700 0.570500 0.026600
-0.860300 57.339199 -0.345300 0.098448 -0.971038 0.217700 0.560600 0.087800
-0.000000 57.320400 0.190300 0.098448 -0.971038 0.217700 0.533800 0.095300
-0.000000 56.862801 -2.081200 0.098448 -0.971038 0.217700 0.533800 0.019000
-5.598500 31.822901 -1.404300 0.881264 0.021588 0.472131 0.847900 0.413200
-6.824000 22.193899 -3.251500 0.881264 0.021588 0.472131 0.860400 0.301600
-7.453900 29.910801 -4.780100 0.881264 0.021588 0.472131 0.884800 0.385400
-6.824000 22.193899 -3.251500 0.921284 -0.108958 -0.373315 0.860400 0.301600
-5.317800 22.936800 -8.016200 0.921284 -0.108958 -0.373315 0.916400 0.301600
-5.595300 29.761600 -8.492500 0.921284 -0.108958 -0.373315 0.927500 0.375900
-7.453900 29.910801 -4.780100 0.921284 -0.108958 -0.373315 0.884800 0.385400
-3.798500 31.552500 -0.388900 0.401815 -0.146587 0.903912 0.824000 0.411400
-2.189200 21.987900 -1.483700 0.401815 -0.146587 0.903912 0.804500 0.301600
-6.824000 22.193899 -3.251500 0.401815 -0.146587 0.903912 0.860400 0.301600
-5.598500 31.822901 -1.404300 0.401815 -0.146587 0.903912 0.847900 0.413200
-0.340300 31.400700 -9.928000 0.230509 -0.107925 -0.967067 0.986800 0.385200
-4.970000 33.082802 -8.871900 0.230509 -0.107925 -0.967067 0.938900 0.409500
-5.595300 29.761600 -8.492500 0.230509 -0.107925 -0.967067 0.927500 0.375900
-0.845100 29.891001 -9.498900 0.230509 -0.107925 -0.967067 0.978500 0.369500
-0.835600 22.853901 -8.210700 -0.992236 -0.110106 0.057826 0.728900 0.301600
-2.189200 21.987900 -1.483700 -0.992236 -0.110106 0.057826 0.804500 0.301600
-0.425600 30.069099 -1.507500 -0.992236 -0.110106 0.057826 0.785600 0.393300
-0.845100 29.891001 -9.498900 -0.992236 -0.110106 0.057826 0.702700 0.368200
-2.162800 35.743500 -9.599900 0.324673 0.084802 -0.942017 0.972400 0.433600
-5.283200 35.952900 -7.814600 0.324673 0.084802 -0.942017 0.933900 0.441300
-4.970000 33.082802 -8.871900 0.324673 0.084802 -0.942017 0.938900 0.409500
-0.340300 31.400700 -9.928000 0.324673 0.084802 -0.942017 0.986800 0.385200
-5.283200 35.952900 -7.814600 0.889642 0.311183 -0.334218 0.142200 0.631800
-5.919200 37.619099 -4.570300 0.889642 0.311183 -0.334218 0.183400 0.661600
-6.542300 35.480598 -4.902800 0.889642 0.311183 -0.334218 0.182500 0.631800
-5.919200 37.619099 -4.570300 0.882631 0.186784 0.431364 0.183400 0.661600
-4.685700 36.664101 -1.616400 0.882631 0.186784 0.431364 0.239300 0.661600
-5.598500 31.822901 -1.404300 0.882631 0.186784 0.431364 0.231700 0.582200
-6.542300 35.480598 -4.902800 0.882631 0.186784 0.431364 0.182500 0.631800
-0.474100 61.294899 -0.607800 0.490764 0.255871 0.832875 0.567800 0.227200
-0.596000 60.268700 -0.255900 0.490764 0.255871 0.832875 0.565100 0.185300
-2.225300 60.301201 -1.334400 0.490764 0.255871 0.832875 0.633200 0.187400
-1.340700 61.343498 -1.024900 0.490764 0.255871 0.832875 0.599900 0.231700
-1.340700 61.343498 -1.024900 0.199083 -0.932669 0.300824 0.599900 0.231700
-1.792100 61.563202 -0.648200 0.199083 -0.932669 0.300824 0.603400 0.250800
-0.785400 61.539799 -0.048800 0.199083 -0.932669 0.300824 0.562200 0.247600
-0.474100 61.294899 -0.607800 0.199083 -0.932669 0.300824 0.567800 0.227200
-0.000000 45.235802 -8.516300 0.205813 0.023108 -0.978318 0.061600 0.762900
-5.495700 46.043098 -6.732400 0.205813 0.023108 -0.978318 0.140100 0.788400
-2.827600 38.171799 -8.088300 0.205813 0.023108 -0.978318 0.114700 0.661600
-0.000000 38.221600 -8.073300 0.205813 0.023108 -0.978318 0.073400 0.661600
-0.425600 30.069099 -1.507500 -0.290133 -0.060504 0.955072 0.785600 0.393300
-2.189200 21.987900 -1.483700 -0.290133 -0.060504 0.955072 0.804500 0.301600
-3.798500 31.552500 -0.388900 -0.290133 -0.060504 0.955072 0.824000 0.411400
-0.000000 31.547001 -9.939100 -0.348901 -0.925923 -0.144686 0.694200 0.388200
-0.340300 31.400700 -9.928000 -0.348901 -0.925923 -0.144686 0.694900 0.384200
-0.425600 30.069099 -1.507500 -0.348901 -0.925923 -0.144686 0.785600 0.393300
-0.000000 30.215401 -1.522000 -0.348901 -0.925923 -0.144686 0.785000 0.398100
-21.061199 44.183601 -7.611200 0.028361 0.039319 -0.998824 0.590800 0.698800
-15.884600 46.520500 -7.855800 0.028361 0.039319 -0.998824 0.590800 0.782100
-17.208200 49.477699 -7.512200 0.028361 0.039319 -0.998824 0.531700 0.782100
-22.585199 48.327702 -7.594400 0.028361 0.039319 -0.998824 0.533600 0.698800
-22.348700 46.932201 -2.822400 0.723103 0.652497 0.226650 0.469900 0.674700
-23.337700 47.268200 -6.945000 0.723103 0.652497 0.226650 0.530800 0.674700
-22.585199 48.327702 -7.594400 0.723103 0.652497 0.226650 0.533600 0.698800
-21.061199 44.183601 -7.611200 0.095048 -0.949863 -0.297868 0.347800 0.693400
-22.105101 44.119598 -7.074000 0.095048 -0.949863 -0.297868 0.362600 0.674700
-21.936399 43.055199 -3.733600 0.095048 -0.949863 -0.297868 0.412700 0.674700
-0.340300 31.400700 -9.928000 0.010374 0.075249 -0.997111 0.986800 0.385200
-0.000000 31.547001 -9.939100 0.010374 0.075249 -0.997111 0.990600 0.386300
-0.000000 35.795200 -9.599900 0.010374 0.075249 -0.997111 0.995500 0.431600
-2.162800 35.743500 -9.599900 0.010374 0.075249 -0.997111 0.972400 0.433600
-5.919200 37.619099 -4.570300 0.561685 0.544798 -0.622660 0.183400 0.661600
-5.283200 35.952900 -7.814600 0.561685 0.544798 -0.622660 0.142200 0.631800
-2.162800 35.743500 -9.599900 0.561685 0.544798 -0.622660 0.096700 0.631800
-2.827600 38.171799 -8.088300 0.561685 0.544798 -0.622660 0.114700 0.661600
-28.543800 44.178001 -4.651400 0.410462 -0.233070 -0.881589 0.718600 0.545700
-28.292801 42.543098 -4.446800 0.410462 -0.233070 -0.881589 0.704200 0.514300
-26.246300 42.901402 -5.383600 0.410462 -0.233070 -0.881589 0.663100 0.553800
-27.102699 45.320202 -5.735100 0.410462 -0.233070 -0.881589 0.706300 0.587600
-25.491899 42.827301 -2.370100 -0.201709 -0.968181 -0.148119 0.813300 0.554500
-28.380600 42.330502 -3.056600 -0.201709 -0.968181 -0.148119 0.853500 0.507000
-27.637899 42.321201 -1.984400 -0.201709 -0.968181 -0.148119 0.816200 0.507300
-26.246300 42.901402 -5.383600 -0.185319 -0.980147 -0.070494 0.880100 0.569900
-28.380600 42.330502 -3.056600 -0.185319 -0.980147 -0.070494 0.853500 0.507000
-25.491899 42.827301 -2.370100 -0.185319 -0.980147 -0.070494 0.813300 0.554500
-2.162800 35.743500 -9.599900 0.008224 0.529675 -0.848161 0.096700 0.631800
-0.000000 35.795200 -9.599900 0.008224 0.529675 -0.848161 0.068300 0.631800
-0.000000 38.221600 -8.073300 0.008224 0.529675 -0.848161 0.073400 0.661600
-2.827600 38.171799 -8.088300 0.008224 0.529675 -0.848161 0.114700 0.661600
-0.706900 62.538601 -0.289700 0.498102 0.211804 0.840853 0.409100 0.538600
-1.838200 62.255798 -0.802600 0.498102 0.211804 0.840853 0.430000 0.507000
-1.901400 63.532299 -1.247600 0.498102 0.211804 0.840853 0.451500 0.531400
-0.672300 63.485901 -0.421800 0.498102 0.211804 0.840853 0.426300 0.552700
-1.901400 63.532299 -1.247600 0.915374 0.111541 0.386845 0.451500 0.531400
-1.838200 62.255798 -0.802600 0.915374 0.111541 0.386845 0.430000 0.507000
-3.194200 60.597198 -3.460400 0.915374 0.111541 0.386845 0.492000 0.451400
-2.758700 63.532299 -3.348800 0.915374 0.111541 0.386845 0.499700 0.518700
-2.758700 63.532299 -3.348800 0.984906 0.142377 0.098436 0.499700 0.518700
-3.194200 60.597198 -3.460400 0.984906 0.142377 0.098436 0.492000 0.451400
-3.446000 60.597198 -5.980300 0.984906 0.142377 0.098436 0.552100 0.445900
-3.010600 63.532299 -5.868700 0.984906 0.142377 0.098436 0.554200 0.511800
-3.194200 60.597198 -3.460400 0.917633 0.222238 0.329485 0.492000 0.451400
-1.838200 62.255798 -0.802600 0.917633 0.222238 0.329485 0.430000 0.507000
-2.336800 60.597198 -1.072500 0.917633 0.222238 0.329485 0.434100 0.460700
-2.130500 53.628601 -1.359200 0.842435 0.033555 0.537753 0.416700 0.297200
-4.088800 54.879799 -3.460400 0.842435 0.033555 0.537753 0.486800 0.316000
-3.194200 60.597198 -3.460400 0.842435 0.033555 0.537753 0.492000 0.451400
-2.336800 60.597198 -1.072500 0.842435 0.033555 0.537753 0.434100 0.460700
-4.088800 54.879799 -3.460400 0.982155 0.156435 0.104398 0.486800 0.316000
-4.340700 55.234299 -6.210400 0.982155 0.156435 0.104398 0.542400 0.331500
-3.446000 60.597198 -5.980300 0.982155 0.156435 0.104398 0.552100 0.445900
-3.194200 60.597198 -3.460400 0.982155 0.156435 0.104398 0.492000 0.451400
-3.010600 63.532299 -5.868700 0.839145 0.204241 -0.504105 0.554200 0.511800
-3.446000 60.597198 -5.980300 0.839145 0.204241 -0.504105 0.552100 0.445900
-2.517200 60.597198 -7.879200 0.839145 0.204241 -0.504105 0.601000 0.450200
-1.932100 63.532299 -7.311200 0.839145 0.204241 -0.504105 0.591100 0.519300
-3.446000 60.597198 -5.980300 0.847590 0.127945 -0.514996 0.552100 0.445900
-4.340700 55.234299 -6.210400 0.847590 0.127945 -0.514996 0.542400 0.331500
-2.990300 54.496300 -8.246000 0.847590 0.127945 -0.514996 0.608400 0.297700
-2.517200 60.597198 -7.879200 0.847590 0.127945 -0.514996 0.601000 0.450200
-1.932100 63.532299 -7.311200 0.365116 0.222173 -0.904063 0.591100 0.519300
-2.517200 60.597198 -7.879200 0.365116 0.222173 -0.904063 0.601000 0.450200
-0.000000 60.597198 -8.812800 0.365116 0.222173 -0.904063 0.661800 0.464200
-0.000000 63.532299 -8.174500 0.365116 0.222173 -0.904063 0.634800 0.537700
-2.990300 54.496300 -8.246000 0.255106 0.035267 -0.966270 0.608400 0.297700
-0.000000 54.050800 -8.782700 0.255106 0.035267 -0.966270 0.682300 0.308600
-0.000000 60.597198 -8.812800 0.255106 0.035267 -0.966270 0.661800 0.464200
-2.517200 60.597198 -7.879200 0.255106 0.035267 -0.966270 0.601000 0.450200
-0.672300 63.485901 -0.421800 0.422112 0.618267 0.662999 0.426300 0.552700
-1.901400 63.532299 -1.247600 0.422112 0.618267 0.662999 0.451500 0.531400
-1.171400 65.057899 -2.205500 0.422112 0.618267 0.662999 0.482000 0.564300
-1.901400 63.532299 -1.247600 0.756752 0.608663 0.238446 0.451500 0.531400
-2.758700 63.532299 -3.348800 0.756752 0.608663 0.238446 0.499700 0.518700
-1.795600 65.057899 -4.806100 0.756752 0.608663 0.238446 0.538600 0.556700
-1.171400 65.057899 -2.205500 0.756752 0.608663 0.238446 0.482000 0.564300
-2.758700 63.532299 -3.348800 0.806293 0.585999 0.080601 0.499700 0.518700
-3.010600 63.532299 -5.868700 0.806293 0.585999 0.080601 0.554200 0.511800
-1.795600 65.057899 -4.806100 0.806293 0.585999 0.080601 0.538600 0.556700
-3.010600 63.532299 -5.868700 0.468822 0.765524 -0.440657 0.554200 0.511800
-1.932100 63.532299 -7.311200 0.468822 0.765524 -0.440657 0.591100 0.519300
-0.000000 65.057899 -6.421400 0.468822 0.765524 -0.440657 0.588900 0.582100
-1.795600 65.057899 -4.806100 0.468822 0.765524 -0.440657 0.538600 0.556700
-1.932100 63.532299 -7.311200 0.281463 0.723860 -0.629925 0.591100 0.519300
-0.000000 63.532299 -8.174500 0.281463 0.723860 -0.629925 0.634800 0.537700
-0.000000 65.057899 -6.421400 0.281463 0.723860 -0.629925 0.588900 0.582100
-1.171400 65.057899 -2.205500 0.296421 0.952404 0.071148 0.482000 0.564300
-1.795600 65.057899 -4.806100 0.296421 0.952404 0.071148 0.538600 0.556700
-0.000000 65.560898 -4.058400 0.296421 0.952404 0.071148 0.523700 0.603300
-1.795600 65.057899 -4.806100 0.184093 0.961370 -0.204641 0.538600 0.556700
-0.000000 65.057899 -6.421400 0.184093 0.961370 -0.204641 0.588900 0.582100
-0.000000 65.560898 -4.058400 0.184093 0.961370 -0.204641 0.523700 0.603300
-0.672300 63.485901 -0.421800 0.000000 0.750225 0.661183 0.426300 0.552700
-1.171400 65.057899 -2.205500 0.000000 0.750225 0.661183 0.482000 0.564300
--1.171400 65.057899 -2.205500 0.000000 0.750225 0.661183 0.466700 0.607600
--0.672300 63.485901 -0.421800 0.000000 0.750225 0.661183 0.416100 0.581700
-0.706900 62.538601 -0.289700 0.204667 0.142518 0.968401 0.409100 0.538600
-0.672300 63.485901 -0.421800 0.204667 0.142518 0.968401 0.426300 0.552700
-0.000000 62.538601 -0.140300 0.204667 0.142518 0.968401 0.398200 0.559100
-0.672300 63.485901 -0.421800 -0.000000 0.284850 0.958572 0.426300 0.552700
--0.672300 63.485901 -0.421800 -0.000000 0.284850 0.958572 0.416100 0.581700
-0.000000 62.538601 -0.140300 -0.000000 0.284850 0.958572 0.398200 0.559100
-2.130500 53.628601 -1.359200 -0.899990 0.017690 0.435552 0.416700 0.297200
-2.336800 60.597198 -1.072500 -0.899990 0.017690 0.435552 0.434100 0.460700
-1.393700 60.597198 -3.164700 -0.899990 0.017690 0.435552 0.380300 0.463400
-1.187300 53.628601 -3.164700 -0.899990 0.017690 0.435552 0.369000 0.300200
--0.706900 62.538601 -0.289700 -0.498102 0.211804 0.840853 0.409100 0.538600
--0.672300 63.485901 -0.421800 -0.498102 0.211804 0.840853 0.426300 0.552800
--1.901400 63.532299 -1.247600 -0.498102 0.211804 0.840853 0.451500 0.531500
--1.838200 62.255798 -0.802600 -0.498102 0.211804 0.840853 0.430000 0.507100
--1.901400 63.532299 -1.247600 -0.915374 0.111541 0.386845 0.451500 0.531500
--2.758700 63.532299 -3.348800 -0.915374 0.111541 0.386845 0.499700 0.518800
--3.194200 60.597198 -3.460400 -0.915374 0.111541 0.386845 0.492000 0.451500
--1.838200 62.255798 -0.802600 -0.915374 0.111541 0.386845 0.430000 0.507100
--2.758700 63.532299 -3.348800 -0.984906 0.142377 0.098436 0.499700 0.518800
--3.010600 63.532299 -5.868700 -0.984906 0.142377 0.098436 0.554200 0.511900
--3.446000 60.597198 -5.980300 -0.984906 0.142377 0.098436 0.552100 0.445900
--3.194200 60.597198 -3.460400 -0.984906 0.142377 0.098436 0.492000 0.451500
--3.194200 60.597198 -3.460400 -0.917633 0.222238 0.329485 0.492000 0.451500
--2.336800 60.597198 -1.072500 -0.917633 0.222238 0.329485 0.434000 0.460800
--1.838200 62.255798 -0.802600 -0.917633 0.222238 0.329485 0.430000 0.507100
--2.130500 53.628601 -1.359200 -0.842435 0.033555 0.537753 0.416600 0.297300
--2.336800 60.597198 -1.072500 -0.842435 0.033555 0.537753 0.434000 0.460800
--3.194200 60.597198 -3.460400 -0.842435 0.033555 0.537753 0.492000 0.451500
--4.088800 54.879799 -3.460400 -0.842435 0.033555 0.537753 0.486700 0.316100
--4.088800 54.879799 -3.460400 -0.982155 0.156435 0.104398 0.486700 0.316100
--3.194200 60.597198 -3.460400 -0.982155 0.156435 0.104398 0.492000 0.451500
--3.446000 60.597198 -5.980300 -0.982155 0.156435 0.104398 0.552100 0.445900
--4.340700 55.234299 -6.210400 -0.982155 0.156435 0.104398 0.542400 0.331500
--3.010600 63.532299 -5.868700 -0.839145 0.204241 -0.504105 0.554200 0.511900
--1.932100 63.532299 -7.311200 -0.839145 0.204241 -0.504105 0.591100 0.519300
--2.517200 60.597198 -7.879200 -0.839145 0.204241 -0.504105 0.601000 0.450300
--3.446000 60.597198 -5.980300 -0.839145 0.204241 -0.504105 0.552100 0.445900
--3.446000 60.597198 -5.980300 -0.847590 0.127945 -0.514996 0.552100 0.445900
--2.517200 60.597198 -7.879200 -0.847590 0.127945 -0.514996 0.601000 0.450300
--2.990300 54.496300 -8.246000 -0.847590 0.127945 -0.514996 0.608300 0.297700
--4.340700 55.234299 -6.210400 -0.847590 0.127945 -0.514996 0.542400 0.331500
--1.932100 63.532299 -7.311200 -0.365116 0.222173 -0.904063 0.591100 0.519300
-0.000000 63.532299 -8.174500 -0.365116 0.222173 -0.904063 0.634800 0.537700
-0.000000 60.597198 -8.812800 -0.365116 0.222173 -0.904063 0.661800 0.464200
--2.517200 60.597198 -7.879200 -0.365116 0.222173 -0.904063 0.601000 0.450300
--2.990300 54.496300 -8.246000 -0.255106 0.035267 -0.966270 0.608300 0.297700
--2.517200 60.597198 -7.879200 -0.255106 0.035267 -0.966270 0.601000 0.450300
-0.000000 60.597198 -8.812800 -0.255106 0.035267 -0.966270 0.661800 0.464200
-0.000000 54.050800 -8.782700 -0.255106 0.035267 -0.966270 0.682300 0.308600
--0.672300 63.485901 -0.421800 -0.422112 0.618267 0.662999 0.426300 0.552800
--1.171400 65.057899 -2.205500 -0.422112 0.618267 0.662999 0.482000 0.564400
--1.901400 63.532299 -1.247600 -0.422112 0.618267 0.662999 0.451500 0.531500
--1.901400 63.532299 -1.247600 -0.756752 0.608663 0.238446 0.451500 0.531500
--1.171400 65.057899 -2.205500 -0.756752 0.608663 0.238446 0.482000 0.564400
--1.795600 65.057899 -4.806100 -0.756752 0.608663 0.238446 0.538600 0.556700
--2.758700 63.532299 -3.348800 -0.756752 0.608663 0.238446 0.499700 0.518800
--2.758700 63.532299 -3.348800 -0.806293 0.585999 0.080601 0.499700 0.518800
--1.795600 65.057899 -4.806100 -0.806293 0.585999 0.080601 0.538600 0.556700
--3.010600 63.532299 -5.868700 -0.806293 0.585999 0.080601 0.554200 0.511900
--3.010600 63.532299 -5.868700 -0.468822 0.765524 -0.440657 0.554200 0.511900
--1.795600 65.057899 -4.806100 -0.468822 0.765524 -0.440657 0.538600 0.556700
-0.000000 65.057899 -6.421400 -0.468822 0.765524 -0.440657 0.589000 0.582100
--1.932100 63.532299 -7.311200 -0.468822 0.765524 -0.440657 0.591100 0.519300
--1.932100 63.532299 -7.311200 -0.281463 0.723860 -0.629925 0.591100 0.519300
-0.000000 65.057899 -6.421400 -0.281463 0.723860 -0.629925 0.589000 0.582100
-0.000000 63.532299 -8.174500 -0.281463 0.723860 -0.629925 0.634800 0.537700
--1.171400 65.057899 -2.205500 -0.296421 0.952404 0.071148 0.482000 0.564400
-0.000000 65.560898 -4.058400 -0.296421 0.952404 0.071148 0.523700 0.603400
--1.795600 65.057899 -4.806100 -0.296421 0.952404 0.071148 0.538600 0.556700
--1.795600 65.057899 -4.806100 -0.184093 0.961370 -0.204641 0.538600 0.556700
-0.000000 65.560898 -4.058400 -0.184093 0.961370 -0.204641 0.523700 0.603400
-0.000000 65.057899 -6.421400 -0.184093 0.961370 -0.204641 0.589000 0.582100
--1.171400 65.057899 -2.205500 0.000000 0.965072 0.261984 0.466700 0.607600
-1.171400 65.057899 -2.205500 0.000000 0.965072 0.261984 0.482000 0.564300
-0.000000 65.560898 -4.058400 0.000000 0.965072 0.261984 0.523700 0.603300
--0.706900 62.538601 -0.289700 -0.204667 0.142518 0.968401 0.409100 0.538600
-0.000000 62.538601 -0.140300 -0.204667 0.142518 0.968401 0.398200 0.559200
--0.672300 63.485901 -0.421800 -0.204667 0.142518 0.968401 0.426300 0.552800
--2.130500 53.628601 -1.359200 0.899990 0.017690 0.435552 0.416600 0.297300
--1.187300 53.628601 -3.164700 0.899990 0.017690 0.435552 0.369000 0.300300
--1.393700 60.597198 -3.164700 0.899990 0.017690 0.435552 0.380200 0.463500
--2.336800 60.597198 -1.072500 0.899990 0.017690 0.435552 0.434000 0.460800
-8.704300 24.905701 -6.036500 0.233777 0.158187 -0.959336 0.967100 0.466200
-7.984800 25.127701 -6.177400 0.233777 0.158187 -0.959336 0.966400 0.464600
-7.649900 27.558001 -5.856100 0.233777 0.158187 -0.959336 0.993500 0.506600
-8.503900 27.435900 -5.670300 0.233777 0.158187 -0.959336 0.976600 0.507100
-6.463600 36.223400 -3.704900 0.910800 0.108730 0.398273 0.962000 0.710700
-5.778000 35.994701 -1.773100 0.910800 0.108730 0.398273 0.922200 0.717000
-7.451900 27.210300 -3.504400 0.910800 0.108730 0.398273 0.930000 0.516400
-8.503900 27.435900 -5.670300 0.910800 0.108730 0.398273 0.976600 0.507100
-5.115000 35.782600 -2.051700 -0.272059 -0.232411 0.933793 0.916000 0.725700
-6.597900 27.332300 -3.690200 -0.272059 -0.232411 0.933793 0.913000 0.515500
-7.451900 27.210300 -3.504400 -0.272059 -0.232411 0.933793 0.930000 0.516400
-5.778000 35.994701 -1.773100 -0.272059 -0.232411 0.933793 0.922200 0.717000
-5.743400 36.019600 -3.995900 0.266707 0.266447 -0.926215 0.971100 0.718900
-6.463600 36.223400 -3.704900 0.266707 0.266447 -0.926215 0.962000 0.710700
-8.503900 27.435900 -5.670300 0.266707 0.266447 -0.926215 0.976600 0.507100
-7.649900 27.558001 -5.856100 0.266707 0.266447 -0.926215 0.993500 0.506600
-7.451900 27.210300 -3.504400 -0.285900 -0.782712 0.552832 0.930000 0.516400
-6.597900 27.332300 -3.690200 -0.285900 -0.782712 0.552832 0.913000 0.515500
-7.984800 25.127701 -6.177400 -0.285900 -0.782712 0.552832 0.966400 0.464600
-8.704300 24.905701 -6.036500 -0.285900 -0.782712 0.552832 0.967100 0.466200
-7.451900 27.210300 -3.504400 0.899158 0.007889 0.437552 0.930000 0.516400
-8.704300 24.905701 -6.036500 0.899158 0.007889 0.437552 0.967100 0.466200
-8.503900 27.435900 -5.670300 0.899158 0.007889 0.437552 0.976600 0.507100
-6.463600 36.223400 -3.704900 -0.293676 0.955783 0.015277 0.962000 0.710700
-5.743400 36.019600 -3.995900 -0.293676 0.955783 0.015277 0.971100 0.718900
-5.115000 35.782600 -2.051700 -0.293676 0.955783 0.015277 0.916000 0.725700
-5.778000 35.994701 -1.773100 -0.293676 0.955783 0.015277 0.922200 0.717000
-4.513000 55.007702 -5.909800 -0.189279 -0.709198 -0.679126 0.935300 0.759300
-4.291100 55.098900 -5.871800 -0.189279 -0.709198 -0.679126 0.932300 0.755300
-4.207800 55.799599 -6.651700 -0.189279 -0.709198 -0.679126 0.967500 0.768900
-4.871900 55.799599 -6.765400 -0.189279 -0.709198 -0.679126 0.957200 0.775300
-2.904000 62.455601 -5.700500 0.959060 0.270852 0.082723 0.954300 0.968000
-2.764700 62.455601 -4.128400 0.959060 0.270852 0.082723 0.909900 0.975800
-4.736600 55.799599 -5.153900 0.959060 0.270852 0.082723 0.919700 0.781300
-4.871900 55.799599 -6.765400 0.959060 0.270852 0.082723 0.957200 0.775300
-2.764700 62.455601 -4.128400 0.167860 -0.101350 0.980587 0.909900 0.975800
-4.072400 55.799599 -5.040200 0.167860 -0.101350 0.980587 0.904100 0.777700
-4.736600 55.799599 -5.153900 0.167860 -0.101350 0.980587 0.919700 0.781300
-2.904000 62.455601 -5.700500 -0.167781 0.107182 -0.979980 0.954300 0.968000
-4.871900 55.799599 -6.765400 -0.167781 0.107182 -0.979980 0.957200 0.775300
-4.207800 55.799599 -6.651700 -0.167781 0.107182 -0.979980 0.967500 0.768900
-4.736600 55.799599 -5.153900 0.042232 -0.727963 0.684314 0.919700 0.781300
-4.072400 55.799599 -5.040200 0.042232 -0.727963 0.684314 0.904100 0.777700
-4.291100 55.098900 -5.871800 0.042232 -0.727963 0.684314 0.932300 0.755300
-4.513000 55.007702 -5.909800 0.042232 -0.727963 0.684314 0.935300 0.759300
-4.736600 55.799599 -5.153900 0.937220 -0.339745 0.078688 0.919700 0.781300
-4.513000 55.007702 -5.909800 0.937220 -0.339745 0.078688 0.935300 0.759300
-4.871900 55.799599 -6.765400 0.937220 -0.339745 0.078688 0.957200 0.775300
-4 0 1 2 3
-4 4 5 6 7
-3 8 9 10
-4 11 12 13 14
-4 15 16 17 18
-4 19 20 21 22
-4 23 24 25 26
-4 27 28 29 30
-4 31 32 33 34
-4 35 36 37 38
-4 39 40 41 42
-4 43 44 45 46
-3 47 48 49
-4 50 51 52 53
-4 54 55 56 57
-4 58 59 60 61
-4 62 63 64 65
-4 66 67 68 69
-4 70 71 72 73
-4 74 75 76 77
-3 78 79 80
-4 81 82 83 84
-3 85 86 87
-4 88 89 90 91
-3 92 93 94
-4 95 96 97 98
-4 99 100 101 102
-4 103 104 105 106
-4 107 108 109 110
-4 111 112 113 114
-4 115 116 117 118
-4 119 120 121 122
-4 123 124 125 126
-4 127 128 129 130
-4 131 132 133 134
-4 135 136 137 138
-3 139 140 141
-3 142 143 144
-4 145 146 147 148
-4 149 150 151 152
-4 153 154 155 156
-3 157 158 159
-3 160 161 162
-4 163 164 165 166
-4 167 168 169 170
-4 171 172 173 174
-3 175 176 177
-4 178 179 180 181
-4 182 183 184 185
-3 186 187 188
-3 189 190 191
-4 192 193 194 195
-4 196 197 198 199
-4 200 201 202 203
-4 204 205 206 207
-3 208 209 210
-3 211 212 213
-3 214 215 216
-4 217 218 219 220
-4 221 222 223 224
-3 225 226 227
-4 228 229 230 231
-4 232 233 234 235
-3 236 237 238
-3 239 240 241
-3 242 243 244
-3 245 246 247
-4 248 249 250 251
-4 252 253 254 255
-4 256 257 258 259
-4 260 261 262 263
-4 264 265 266 267
-4 268 269 270 271
-4 272 273 274 275
-4 276 277 278 279
-4 280 281 282 283
-3 284 285 286
-3 287 288 289
-4 290 291 292 293
-4 294 295 296 297
-4 298 299 300 301
-3 302 303 304
-4 305 306 307 308
-4 309 310 311 312
-4 313 314 315 316
-4 317 318 319 320
-4 321 322 323 324
-4 325 326 327 328
-4 329 330 331 332
-4 333 334 335 336
-4 337 338 339 340
-4 341 342 343 344
-4 345 346 347 348
-4 349 350 351 352
-3 353 354 355
-4 356 357 358 359
-4 360 361 362 363
-3 364 365 366
-4 367 368 369 370
-4 371 372 373 374
-3 375 376 377
-4 378 379 380 381
-3 382 383 384
-4 385 386 387 388
-4 389 390 391 392
-3 393 394 395
-4 396 397 398 399
-4 400 401 402 403
-4 404 405 406 407
-4 408 409 410 411
-4 412 413 414 415
-3 416 417 418
-3 419 420 421
-3 422 423 424
-4 425 426 427 428
-4 429 430 431 432
-3 433 434 435
-3 436 437 438
-4 439 440 441 442
-4 443 444 445 446
-3 447 448 449
-3 450 451 452
-4 453 454 455 456
-3 457 458 459
-3 460 461 462
-3 463 464 465
-4 466 467 468 469
-3 470 471 472
-4 473 474 475 476
-4 477 478 479 480
-4 481 482 483 484
-4 485 486 487 488
-4 489 490 491 492
-3 493 494 495
-4 496 497 498 499
-4 500 501 502 503
-4 504 505 506 507
-4 508 509 510 511
-3 512 513 514
-4 515 516 517 518
-4 519 520 521 522
-3 523 524 525
-3 526 527 528
-3 529 530 531
-4 532 533 534 535
-4 536 537 538 539
-4 540 541 542 543
-4 544 545 546 547
-3 548 549 550
-3 551 552 553
-4 554 555 556 557
-3 558 559 560
-4 561 562 563 564
-4 565 566 567 568
-4 569 570 571 572
-3 573 574 575
-4 576 577 578 579
-4 580 581 582 583
-4 584 585 586 587
-4 588 589 590 591
-4 592 593 594 595
-4 596 597 598 599
-4 600 601 602 603
-4 604 605 606 607
-4 608 609 610 611
-3 612 613 614
-4 615 616 617 618
-4 619 620 621 622
-4 623 624 625 626
-4 627 628 629 630
-4 631 632 633 634
-4 635 636 637 638
-4 639 640 641 642
-3 643 644 645
-4 646 647 648 649
-3 650 651 652
-4 653 654 655 656
-3 657 658 659
-4 660 661 662 663
-4 664 665 666 667
-4 668 669 670 671
-4 672 673 674 675
-4 676 677 678 679
-4 680 681 682 683
-4 684 685 686 687
-4 688 689 690 691
-4 692 693 694 695
-4 696 697 698 699
-4 700 701 702 703
-3 704 705 706
-3 707 708 709
-4 710 711 712 713
-4 714 715 716 717
-4 718 719 720 721
-3 722 723 724
-3 725 726 727
-4 728 729 730 731
-4 732 733 734 735
-4 736 737 738 739
-3 740 741 742
-4 743 744 745 746
-4 747 748 749 750
-3 751 752 753
-3 754 755 756
-4 757 758 759 760
-4 761 762 763 764
-4 765 766 767 768
-4 769 770 771 772
-3 773 774 775
-3 776 777 778
-3 779 780 781
-4 782 783 784 785
-4 786 787 788 789
-3 790 791 792
-4 793 794 795 796
-4 797 798 799 800
-3 801 802 803
-3 804 805 806
-3 807 808 809
-3 810 811 812
-4 813 814 815 816
-4 817 818 819 820
-4 821 822 823 824
-4 825 826 827 828
-4 829 830 831 832
-4 833 834 835 836
-4 837 838 839 840
-4 841 842 843 844
-4 845 846 847 848
-3 849 850 851
-3 852 853 854
-4 855 856 857 858
-4 859 860 861 862
-4 863 864 865 866
-3 867 868 869
-4 870 871 872 873
-4 874 875 876 877
-4 878 879 880 881
-4 882 883 884 885
-4 886 887 888 889
-4 890 891 892 893
-4 894 895 896 897
-4 898 899 900 901
-4 902 903 904 905
-4 906 907 908 909
-4 910 911 912 913
-4 914 915 916 917
-3 918 919 920
-4 921 922 923 924
-4 925 926 927 928
-3 929 930 931
-4 932 933 934 935
-4 936 937 938 939
-3 940 941 942
-4 943 944 945 946
-3 947 948 949
-4 950 951 952 953
-4 954 955 956 957
-3 958 959 960
-4 961 962 963 964
-4 965 966 967 968
-4 969 970 971 972
-4 973 974 975 976
-4 977 978 979 980
-3 981 982 983
-3 984 985 986
-3 987 988 989
-4 990 991 992 993
-4 994 995 996 997
-3 998 999 1000
-3 1001 1002 1003
-4 1004 1005 1006 1007
-4 1008 1009 1010 1011
-3 1012 1013 1014
-3 1015 1016 1017
-4 1018 1019 1020 1021
-3 1022 1023 1024
-3 1025 1026 1027
-3 463 1028 464
-4 1029 1030 1031 1032
-3 1033 1034 1035
-4 1036 1037 1038 1039
-4 1040 1041 1042 1043
-4 1044 1045 1046 1047
-4 1048 1049 1050 1051
-4 1052 1053 1054 1055
-3 1056 1057 1058
-4 1059 1060 1061 1062
-4 1063 1064 1065 1066
-4 1067 1068 1069 1070
-4 1071 1072 1073 1074
-3 1075 1076 1077
-4 1078 1079 1080 1081
-4 1082 1083 1084 1085
-3 1086 1087 1088
-3 1089 1090 1091
-4 1092 1093 1094 1095
-4 1096 1097 1098 1099
-4 1100 1101 1102 1103
-3 1104 1105 1106
-3 1107 1108 1109
-4 1110 1111 1112 1113
-4 1114 1115 1116 1117
-4 1118 1119 1120 1121
-4 1122 1123 1124 1125
-3 1126 1127 1128
-4 1129 1130 1131 1132
-4 1133 1134 1135 1136
-4 1137 1138 1139 1140
-4 1141 1142 1143 1144
-4 1145 1146 1147 1148
-4 1149 1150 1151 1152
-3 1153 1154 1155
-4 1156 1157 1158 1159
-3 1160 1161 1162
-4 1163 1164 1165 1166
-3 1167 1168 1169
-3 1170 1171 1172
-3 1173 1174 1175
-4 1176 1177 1178 1179
-3 1180 1181 1182
-3 1183 1184 1185
-4 1186 1187 1188 1189
-4 1190 1191 1192 1193
-4 1194 1195 1196 1197
-4 1198 1199 1200 1201
-3 1202 1203 1204
-4 1205 1206 1207 1208
-4 1209 1210 1211 1212
-4 1213 1214 1215 1216
-4 1217 1218 1219 1220
-4 1221 1222 1223 1224
-4 1225 1226 1227 1228
-3 1229 1230 1231
-4 1232 1233 1234 1235
-3 1236 1237 1238
-4 1239 1240 1241 1242
-3 1243 1244 1245
-3 1246 1247 1248
-3 1249 1250 1251
-3 1252 1253 1254
-3 1255 1256 1257
-4 1258 1259 1260 1261
-4 1262 1263 1264 1265
-4 1266 1267 1268 1269
-4 1270 1271 1272 1273
-4 1274 1275 1276 1277
-4 1278 1279 1280 1281
-3 1282 1283 1284
-4 1285 1286 1287 1288
-4 1289 1290 1291 1292
-4 1293 1294 1295 1296
-3 1297 1298 1299
-3 1300 1301 1302
-4 1303 1304 1305 1306
-3 1307 1308 1309
diff --git a/src/tests/evas/meson.build b/src/tests/evas/meson.build
index d89d602507..37935f1e8d 100644
--- a/src/tests/evas/meson.build
+++ b/src/tests/evas/meson.build
@@ -11,10 +11,8 @@ evas_suite_src = [
'evas_test_render_engines.c',
'evas_test_filters.c',
'evas_test_image.c',
- 'evas_test_mesh.c',
'evas_test_mask.c',
'evas_test_evasgl.c',
- 'evas_test_matrix.c',
'evas_test_focus.c',
'evas_test_events.c',
'evas_tests_helpers.h',