]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
importer can now import multiple meshes at once
authorLockedLunatic <locked.lunatic@aon.at>
Mon, 13 Apr 2015 15:58:09 +0000 (17:58 +0200)
committerLockedLunatic <locked.lunatic@aon.at>
Mon, 13 Apr 2015 15:58:09 +0000 (17:58 +0200)
Weave/Game.cpp
Weave/Game.h
Weave/Graphix/Model.cpp
Weave/Graphix/Model.h
Weave/Graphix/SceneObject.cpp
Weave/Graphix/SceneObject.h
models/level_test.blend [new file with mode: 0644]
models/level_test.blend1 [new file with mode: 0644]
models/level_test.dae [new file with mode: 0644]

index 150f0a81f87072f066fad6bee335b3804bc31e36..197e1b2fb181f914cd91fc2fa1acfce7cb5cb905 100644 (file)
@@ -5,6 +5,10 @@
 #include "Graphix\GLM.h"
 #include <Windows.h>
 
+#include <assimp/Importer.hpp>
+#include <assimp/scene.h>
+#include <assimp/postprocess.h>
+
 #include <GL\glew.h>
 #include "Graphix\Scene.h"
 #include "Graphix\SceneObject.h"
@@ -28,6 +32,8 @@ using std::endl;
 
 using std::string;
 
+typedef unsigned int uint;
+
 
 Game::Game() : playing(true)
 {
@@ -79,6 +85,7 @@ Game::Game() : playing(true)
        tmp_Scene->addObject(new SceneObject(shader1, translate(vec3(1.f, 0.f, 1.f)), "cow/cow.dae", "model_cow.jpg"));
        //tmp_Scene->addObject(new SceneObject(shader1, translate(vec3(-1.f, 2.f, -2.f)), "../models/box/box.dae", "../Textures/sky_withstars.png"));
        //tmp_Scene->addObject(new SceneObject(shader1, translate(vec3(1.f, 3.f, -2.f)), "../models/cow/cow.dae", "../models/cow/texture.jpg"));
+       import("level_test.dae", *tmp_Scene, shader1);
 }
 
 
@@ -165,3 +172,76 @@ void Game::draw() const
                l_menu->draw();
 
 }
+
+bool Game::import(const string& path, Scene& scene, Shader* shader)
+{
+       Assimp::Importer importer;
+
+       const aiScene* file = importer.ReadFile("../models/" + path, aiProcess_GenUVCoords | aiProcess_Triangulate | aiProcess_JoinIdenticalVertices | aiProcess_SortByPType | aiProcess_PreTransformVertices);
+       if (!file)
+       {
+               Message::error("The file " + path + " couldn't be read.\n" + importer.GetErrorString());
+               return false;
+       }
+
+       if (file->HasMeshes())
+       {
+               for (uint n = 0; n < file->mNumMeshes; n++)
+               {
+                       aiMesh* mesh = file->mMeshes[n];
+
+                       uint numvertices = mesh->mNumVertices;
+                       uint numfaces = mesh->mNumFaces;
+                       float *vertex = new float[numvertices * 3];
+                       float *uvs = new float[numvertices * 2];
+                       uint *index = new uint[numfaces * 3];
+                       float *normals = new float[numvertices * 3];
+                       //aiFace* faces = mesh->mFaces;
+
+
+                       //load vertices from file
+                       for (uint i = 0; i < numvertices; i++)
+                       {
+                               vertex[3 * i] = mesh->mVertices[i].x;
+                               vertex[3 * i + 1] = mesh->mVertices[i].y;
+                               vertex[3 * i + 2] = mesh->mVertices[i].z;
+                       }
+
+                       //load UVs from file
+                       for (uint i = 0; i < numvertices; i++)
+                       {
+                               uvs[2 * i] = mesh->mTextureCoords[0][i].x;//[i]->x;
+                               uvs[2 * i + 1] = mesh->mTextureCoords[0][i].y;//[i]->y;
+                       }
+
+                       //load indices from file
+                       for (uint i = 0; i < numfaces; i++)
+                       {
+                               index[3 * i] = mesh->mFaces[i].mIndices[0];
+                               index[3 * i + 1] = mesh->mFaces[i].mIndices[1];
+                               index[3 * i + 2] = mesh->mFaces[i].mIndices[2];
+                       }
+
+                       //load normals from file
+                       for (uint i = 0; i < numvertices; i++)
+                       {
+                               normals[3 * i] = mesh->mNormals[i].x;
+                               normals[3 * i + 1] = mesh->mNormals[i].y;
+                               normals[3 * i + 2] = mesh->mNormals[i].z;
+                       }
+
+                       Model *model = new Model(numvertices, numfaces, vertex, uvs, normals, index);
+                       delete vertex, normals, uvs, index;
+
+                       //TODO enable different textures
+                       scene.addObject(new SceneObject(shader, translate(vec3(1.f, 0.f, 1.f)), model, "model_cow.jpg"));
+               }
+       }
+       else
+       {
+               Message::error("The file " + path + " doesn't contain any nodes.");
+               return false;
+       }
+
+       return true;
+}
\ No newline at end of file
index 137870692a4601497034691984eca8ec443a0e09..f90a314fcafd822ab2aa9ce41f5ee8ad254c2ce9 100644 (file)
@@ -3,6 +3,7 @@
 
 //#include "Graphix\Scene.h"
 #include "Graphix\Drawable.h"
+#include "Graphix\Scene.h"
 //#include "Player.h"
 
 #include <map>
@@ -35,6 +36,7 @@ private:
 
        void update(float);
        void draw() const;
+       bool import(const string &path, Scene &scene, Shader* shader);
 
 };
 
index 55de0107d57c9d24ccaa33f12cb89d41e38f07c1..e75c03ccbcca1b872bd764a09b813c55cc3a911b 100644 (file)
@@ -35,6 +35,28 @@ Model::Model(const string& _modelpath) :
 }
 
 
+Model::Model(uint numvertices, uint numfaces, float *vertex, float *uvs, float *normals, uint *index) :
+vertexBuffer(-1),
+normalBuffer(-1),
+uvBuffer(-1),
+indexBuffer(-1)
+{
+
+       //float *vertex = nullptr, *normals = nullptr, *uvs = nullptr;
+       //uint *index = nullptr;
+
+       //import(_modelpath, numvertices, numfaces, vertex, uvs, normals, index);
+
+       genBuffer(vertexBuffer, numvertices * 3 * sizeof(float), (void*)vertex);
+       genBuffer(normalBuffer, numvertices * 3 * sizeof(float), (void*)normals);
+       genBuffer(uvBuffer, numvertices * 2 * sizeof(float), (void*)uvs);
+       genBuffer(indexBuffer, numfaces * 3 * sizeof(uint), (void*)index);
+
+       //delete vertex, normals, uvs, index;
+
+}
+
+
 Model::~Model()
 {
                for (auto i = shader_map.begin(); i != shader_map.end(); ++i){
@@ -127,10 +149,11 @@ bool Model::import(const string& path,uint& numvertices, uint& numfaces, float*&
 {
        Assimp::Importer importer;
 
-       const aiScene* scene = importer.ReadFile("../models/" + path, aiProcess_GenUVCoords | aiProcess_Triangulate | aiProcess_JoinIdenticalVertices | aiProcess_SortByPType);
+       const aiScene* scene = importer.ReadFile("../models/" + path, aiProcess_GenUVCoords | aiProcess_Triangulate | aiProcess_JoinIdenticalVertices | aiProcess_SortByPType | aiProcess_PreTransformVertices);
        if (!scene)
        {
                Message::error("The file " + path + " couldn't be read.\n" + importer.GetErrorString());
+               return false;
        }
 
        if (scene->HasMeshes())
@@ -180,6 +203,7 @@ bool Model::import(const string& path,uint& numvertices, uint& numfaces, float*&
        else
        {
                Message::error("The file " + path + " doesn't contain any nodes.");
+               return false;
        }
 
        return true;
index f1af0d1d428db3f0654d0cc858050e22b34856a2..bc6f188c57749ad75c84862fff6229a189bf43f0 100644 (file)
@@ -15,6 +15,7 @@ class Model
 {
 public:
        Model(const string& modelpath);
+       Model(unsigned int numvertices, unsigned int numfaces, float *vertex, float *uvs, float *normals, unsigned int *index);
 
        virtual ~Model();
 
index 1a33cabedccc31a40d083729246a5d70bad643e7..46aed7e116d1e46cbce4c87824dc5347ce6132b6 100644 (file)
@@ -36,6 +36,21 @@ texture(nullptr)
        bindShader(shader);
 }
 
+SceneObject::SceneObject(Shader* _shader, mat4& _model, Model* model_obj, string texturepath, float _matter, float _speed, float _atack, vec3& _direction) :
+Model(*model_obj),
+model(_model),
+shader(_shader),
+mainScene(NULL),
+collision_ignore(false),
+texture(nullptr)
+{
+       modelID = _shader->getUniformLocation("model");
+       if (texturepath != "")
+               texture = new Texture(texturepath);
+
+       bindShader(shader);
+}
+
 
 SceneObject::~SceneObject()
 {
index bb0c990129c031dcff2c4e5b9744caa17b1ad322..150041ee58a8cf28b8ee399bf1f3258cf23f92db 100644 (file)
@@ -22,7 +22,8 @@ class SceneObject :
 public:
 
        //SceneObject(Shader* _shader, mat4& model);
-       SceneObject(Shader* _shader, mat4& model, string modelpath, string texturepath, float matter= 1.f, float speed= 1.f, float atack= 1.f, vec3& direction= vec3(0.f));
+       SceneObject(Shader* _shader, mat4& model, string modelpath, string texturepath, float matter = 1.f, float speed = 1.f, float atack = 1.f, vec3& direction = vec3(0.f));
+       SceneObject(Shader* _shader, mat4& model, Model* model_obj, string texturepath, float matter = 1.f, float speed = 1.f, float atack = 1.f, vec3& direction = vec3(0.f));
        virtual ~SceneObject();
 
        virtual void update(float);
diff --git a/models/level_test.blend b/models/level_test.blend
new file mode 100644 (file)
index 0000000..71cc478
Binary files /dev/null and b/models/level_test.blend differ
diff --git a/models/level_test.blend1 b/models/level_test.blend1
new file mode 100644 (file)
index 0000000..e40dc9c
Binary files /dev/null and b/models/level_test.blend1 differ
diff --git a/models/level_test.dae b/models/level_test.dae
new file mode 100644 (file)
index 0000000..45ae8c6
--- /dev/null
@@ -0,0 +1,405 @@
+<?xml version="1.0" encoding="utf-8"?>
+<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
+  <asset>
+    <contributor>
+      <author>Blender User</author>
+      <authoring_tool>Blender 2.70.0 commit date:2014-04-10, commit time:11:49, hash:f93bc76</authoring_tool>
+    </contributor>
+    <created>2015-04-13T16:48:33</created>
+    <modified>2015-04-13T16:48:33</modified>
+    <unit name="meter" meter="1"/>
+    <up_axis>Z_UP</up_axis>
+  </asset>
+  <library_cameras>
+    <camera id="Camera-camera" name="Camera">
+      <optics>
+        <technique_common>
+          <perspective>
+            <xfov sid="xfov">49.13434</xfov>
+            <aspect_ratio>1.777778</aspect_ratio>
+            <znear sid="znear">0.1</znear>
+            <zfar sid="zfar">100</zfar>
+          </perspective>
+        </technique_common>
+      </optics>
+      <extra>
+        <technique profile="blender">
+          <YF_dofdist>0</YF_dofdist>
+          <shiftx>0</shiftx>
+          <shifty>0</shifty>
+        </technique>
+      </extra>
+    </camera>
+  </library_cameras>
+  <library_lights>
+    <light id="Lamp-light" name="Lamp">
+      <technique_common>
+        <point>
+          <color sid="color">1 1 1</color>
+          <constant_attenuation>1</constant_attenuation>
+          <linear_attenuation>0</linear_attenuation>
+          <quadratic_attenuation>0.00111109</quadratic_attenuation>
+        </point>
+      </technique_common>
+      <extra>
+        <technique profile="blender">
+          <adapt_thresh>0.000999987</adapt_thresh>
+          <area_shape>1</area_shape>
+          <area_size>0.1</area_size>
+          <area_sizey>0.1</area_sizey>
+          <area_sizez>1</area_sizez>
+          <atm_distance_factor>1</atm_distance_factor>
+          <atm_extinction_factor>1</atm_extinction_factor>
+          <atm_turbidity>2</atm_turbidity>
+          <att1>0</att1>
+          <att2>1</att2>
+          <backscattered_light>1</backscattered_light>
+          <bias>1</bias>
+          <blue>1</blue>
+          <buffers>1</buffers>
+          <bufflag>0</bufflag>
+          <bufsize>2880</bufsize>
+          <buftype>2</buftype>
+          <clipend>30.002</clipend>
+          <clipsta>1.000799</clipsta>
+          <compressthresh>0.04999995</compressthresh>
+          <dist sid="blender_dist">29.99998</dist>
+          <energy sid="blender_energy">1</energy>
+          <falloff_type>2</falloff_type>
+          <filtertype>0</filtertype>
+          <flag>0</flag>
+          <gamma sid="blender_gamma">1</gamma>
+          <green>1</green>
+          <halo_intensity sid="blnder_halo_intensity">1</halo_intensity>
+          <horizon_brightness>1</horizon_brightness>
+          <mode>8192</mode>
+          <ray_samp>1</ray_samp>
+          <ray_samp_method>1</ray_samp_method>
+          <ray_samp_type>0</ray_samp_type>
+          <ray_sampy>1</ray_sampy>
+          <ray_sampz>1</ray_sampz>
+          <red>1</red>
+          <samp>3</samp>
+          <shadhalostep>0</shadhalostep>
+          <shadow_b sid="blender_shadow_b">0</shadow_b>
+          <shadow_g sid="blender_shadow_g">0</shadow_g>
+          <shadow_r sid="blender_shadow_r">0</shadow_r>
+          <sky_colorspace>0</sky_colorspace>
+          <sky_exposure>1</sky_exposure>
+          <skyblendfac>1</skyblendfac>
+          <skyblendtype>1</skyblendtype>
+          <soft>3</soft>
+          <spotblend>0.15</spotblend>
+          <spotsize>75</spotsize>
+          <spread>1</spread>
+          <sun_brightness>1</sun_brightness>
+          <sun_effect_type>0</sun_effect_type>
+          <sun_intensity>1</sun_intensity>
+          <sun_size>1</sun_size>
+          <type>0</type>
+        </technique>
+      </extra>
+    </light>
+  </library_lights>
+  <library_images/>
+  <library_geometries>
+    <geometry id="Cube_001-mesh" name="Cube.001">
+      <mesh>
+        <source id="Cube_001-mesh-positions">
+          <float_array id="Cube_001-mesh-positions-array" count="24">-1 -1 -1 -1 1 -1 1 1 -1 1 -1 -1 -1 -1 1 -1 1 1 1 1 1 1 -1 1</float_array>
+          <technique_common>
+            <accessor source="#Cube_001-mesh-positions-array" count="8" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Cube_001-mesh-normals">
+          <float_array id="Cube_001-mesh-normals-array" count="36">-1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1 -1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1</float_array>
+          <technique_common>
+            <accessor source="#Cube_001-mesh-normals-array" count="12" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Cube_001-mesh-map-0">
+          <float_array id="Cube_001-mesh-map-0-array" count="72">0.3333333 0.6666666 0 0.6666667 0 0.3333334 0.3333334 0.3333333 0.3333334 0 0.6666667 0 0 1.58946e-7 0.3333333 0 0.3333334 0.3333333 0.3333334 0.6666667 0.3333334 0.3333334 0.6666667 0.3333334 1 0.6666666 0.6666668 0.6666666 0.6666668 0.3333334 0.3333333 0.6666668 0.6666666 0.6666667 0.6666666 1 0.3333333 0.3333334 0.3333333 0.6666666 0 0.3333334 0.6666668 0.3333333 0.3333334 0.3333333 0.6666667 0 0 0.3333334 0 1.58946e-7 0.3333334 0.3333333 0.6666668 0.6666666 0.3333334 0.6666667 0.6666667 0.3333334 1 0.3333334 1 0.6666666 0.6666668 0.3333334 0.3333334 1 0.3333333 0.6666668 0.6666666 1</float_array>
+          <technique_common>
+            <accessor source="#Cube_001-mesh-map-0-array" count="36" stride="2">
+              <param name="S" type="float"/>
+              <param name="T" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <vertices id="Cube_001-mesh-vertices">
+          <input semantic="POSITION" source="#Cube_001-mesh-positions"/>
+        </vertices>
+        <polylist count="12">
+          <input semantic="VERTEX" source="#Cube_001-mesh-vertices" offset="0"/>
+          <input semantic="NORMAL" source="#Cube_001-mesh-normals" offset="1"/>
+          <input semantic="TEXCOORD" source="#Cube_001-mesh-map-0" offset="2" set="0"/>
+          <vcount>3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
+          <p>4 0 0 5 0 1 1 0 2 5 1 3 6 1 4 2 1 5 6 2 6 7 2 7 3 2 8 7 3 9 4 3 10 0 3 11 0 4 12 1 4 13 2 4 14 7 5 15 6 5 16 5 5 17 0 6 18 4 6 19 1 6 20 1 7 21 5 7 22 2 7 23 2 8 24 6 8 25 3 8 26 3 9 27 7 9 28 0 9 29 3 10 30 0 10 31 2 10 32 4 11 33 7 11 34 5 11 35</p>
+        </polylist>
+      </mesh>
+    </geometry>
+    <geometry id="Cylinder-mesh" name="Cylinder">
+      <mesh>
+        <source id="Cylinder-mesh-positions">
+          <float_array id="Cylinder-mesh-positions-array" count="192">0 1 -1 0 1 1 0.1950903 0.9807853 -1 0.1950903 0.9807853 1 0.3826835 0.9238795 -1 0.3826835 0.9238795 1 0.5555703 0.8314696 -1 0.5555703 0.8314696 1 0.7071068 0.7071068 -1 0.7071068 0.7071068 1 0.8314697 0.5555702 -1 0.8314697 0.5555702 1 0.9238795 0.3826834 -1 0.9238795 0.3826834 1 0.9807853 0.1950903 -1 0.9807853 0.1950903 1 1 0 -1 1 0 1 0.9807853 -0.1950902 -1 0.9807853 -0.1950902 1 0.9238796 -0.3826833 -1 0.9238796 -0.3826833 1 0.8314697 -0.5555702 -1 0.8314697 -0.5555702 1 0.7071068 -0.7071068 -1 0.7071068 -0.7071068 1 0.5555702 -0.8314697 -1 0.5555702 -0.8314697 1 0.3826833 -0.9238796 -1 0.3826833 -0.9238796 1 0.1950901 -0.9807853 -1 0.1950901 -0.9807853 1 -3.25841e-7 -1 -1 -3.25841e-7 -1 1 -0.1950907 -0.9807852 -1 -0.1950907 -0.9807852 1 -0.3826839 -0.9238793 -1 -0.3826839 -0.9238793 1 -0.5555707 -0.8314693 -1 -0.5555707 -0.8314693 1 -0.7071073 -0.7071064 -1 -0.7071073 -0.7071064 1 -0.83147 -0.5555697 -1 -0.83147 -0.5555697 1 -0.9238799 -0.3826827 -1 -0.9238799 -0.3826827 1 -0.9807854 -0.1950894 -1 -0.9807854 -0.1950894 1 -1 9.65599e-7 -1 -1 9.65599e-7 1 -0.9807851 0.1950913 -1 -0.9807851 0.1950913 1 -0.9238791 0.3826845 -1 -0.9238791 0.3826845 1 -0.8314689 0.5555713 -1 -0.8314689 0.5555713 1 -0.7071059 0.7071077 -1 -0.7071059 0.7071077 1 -0.5555691 0.8314704 -1 -0.5555691 0.8314704 1 -0.3826821 0.9238801 -1 -0.3826821 0.9238801 1 -0.1950888 0.9807856 -1 -0.1950888 0.9807856 1</float_array>
+          <technique_common>
+            <accessor source="#Cylinder-mesh-positions-array" count="64" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Cylinder-mesh-normals">
+          <float_array id="Cylinder-mesh-normals-array" count="372">0.09801727 0.9951847 0 0.2902846 0.9569404 0 0.4713967 0.8819213 0 0.6343933 0.7730104 0 0.7730104 0.6343934 0 0.8819214 0.4713965 0 0.9569403 0.2902847 0 0.9951847 0.09801727 0 0.9951847 -0.09801697 0 0.9569403 -0.2902847 0 0.8819214 -0.4713965 0 0.7730104 -0.6343934 0 0.6343934 -0.7730104 0 0.4713967 -0.8819212 0 0.2902843 -0.9569405 0 0.09801691 -0.9951847 0 -0.09801751 -0.9951847 0 -0.2902852 -0.9569402 0 -0.4713971 -0.8819211 0 -0.6343937 -0.7730101 0 -0.773011 -0.6343927 0 -0.8819215 -0.471396 0 -0.9569407 -0.2902837 0 -0.9951848 -0.09801632 0 -0.9951846 0.0980181 0 -0.95694 0.2902858 0 -0.8819208 0.4713976 0 -0.7730096 0.6343944 0 -0.6343924 0.7730112 0 -0.4713954 0.8819218 0 0 0 1 -0.0980165 0.9951848 0 -0.290283 0.9569409 0 0 0 -1 0.09801727 0.9951847 0 0.2902846 0.9569404 0 0.4713967 0.8819213 0 0.6343933 0.7730104 0 0.7730104 0.6343934 0 0.8819214 0.4713965 0 0.9569403 0.2902847 0 0.9951847 0.09801727 0 0.9951847 -0.09801697 0 0.9569403 -0.2902847 0 0.8819214 -0.4713965 0 0.7730104 -0.6343934 0 0.6343934 -0.7730104 0 0.4713967 -0.8819212 0 0.2902843 -0.9569405 0 0.09801691 -0.9951847 0 -0.09801751 -0.9951847 0 -0.2902852 -0.9569402 0 -0.4713971 -0.8819211 0 -0.6343937 -0.7730101 0 -0.773011 -0.6343927 0 -0.8819215 -0.471396 0 -0.9569407 -0.2902837 0 -0.9951848 -0.09801632 0 -0.9951846 0.0980181 0 -0.95694 0.2902858 0 -0.8819208 0.4713976 0 -0.7730096 0.6343944 0 -0.6343924 0.7730112 0 -0.4713954 0.8819218 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 -0.0980165 0.9951848 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 -0.290283 0.9569409 0 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1</float_array>
+          <technique_common>
+            <accessor source="#Cylinder-mesh-normals-array" count="124" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Cylinder-mesh-map-0">
+          <float_array id="Cylinder-mesh-map-0-array" count="744">0.5391329 0.6661307 0.5391328 0.3322616 0.5787854 0.3322616 0.5787855 0.6661307 0.5787854 0.3322616 0.6176761 0.3322616 0.6176762 0.6661307 0.6176761 0.3322616 0.6543104 0.3322616 0.6543104 0.6661307 0.6543104 0.3322616 0.6872803 0.3322616 0.6872803 0.6661307 0.6872803 0.3322616 0.7153189 0.3322616 0.2566423 0.6661308 0.2566423 1 0.2236723 1 0.2236723 0.6661308 0.2236723 1 0.1870381 1 0.1870381 0.6661308 0.1870381 1 0.1481474 1 0.1481474 0.6661308 0.1481474 1 0.1084948 1 0.1084948 0.6661308 0.1084948 1 0.06960415 1 0.06960415 0.6661308 0.06960415 1 0.03296995 1 0.03296989 0.6661308 0.03296995 1 0 1 0 0.6661308 0 0.3322616 0.03296989 0.3322616 0.03296995 0.6661308 0.03296989 0.3322616 0.06960415 0.3322616 0.06960421 0.6661308 0.06960415 0.3322616 0.1084948 0.3322616 0.1084949 0.6661308 0.1084948 0.3322616 0.1481475 0.3322616 0.1481475 0.6661308 0.1481475 0.3322616 0.1870381 0.3322616 0.1870383 0.6661308 0.1870381 0.3322616 0.2236724 0.3322616 0.2236725 0.6661307 0.2236724 0.3322616 0.2566424 0.3322616 0.2566424 0.6661307 0.2566424 0.3322616 0.284681 0.3322616 1 0.3322616 1 0.6661308 0.9670301 0.6661308 0.9670301 0.3322616 0.9670301 0.6661308 0.9303958 0.6661308 0.9303958 0.3322616 0.9303958 0.6661308 0.8915051 0.6661308 0.8915051 0.3322616 0.8915051 0.6661308 0.8518525 0.6661308 0.8518525 0.3322616 0.8518525 0.6661308 0.8129618 0.6661308 0.8129618 0.3322616 0.8129618 0.6661308 0.7763276 0.6661308 0.7763275 0.3322616 0.7763276 0.6661308 0.7433576 0.6661308 0.7433575 0.3322616 0.7433576 0.6661308 0.715319 0.6661308 0.4025997 0.6661307 0.4025996 0.3322616 0.4306383 0.3322616 0.4306383 0.6661307 0.4306383 0.3322616 0.4636082 0.3322616 0.221126 0.3322615 0.4025996 0.1497682 0.3948638 0.2145892 0.5002425 0.6661307 0.5002425 0.3322616 0.5391328 0.3322616 0.4636083 0.6661307 0.4636082 0.3322616 0.5002425 0.3322616 0.5451824 0.006384313 0.4103355 0.2145894 0.4025996 0.1497684 0.5787855 0.6661307 0.5391329 0.6661307 0.5787854 0.3322616 0.6176762 0.6661307 0.5787855 0.6661307 0.6176761 0.3322616 0.6543104 0.6661307 0.6176762 0.6661307 0.6543104 0.3322616 0.6872803 0.6661307 0.6543104 0.6661307 0.6872803 0.3322616 0.715319 0.6661307 0.6872803 0.6661307 0.7153189 0.3322616 0.2236723 0.6661308 0.2566423 0.6661308 0.2236723 1 0.1870381 0.6661308 0.2236723 0.6661308 0.1870381 1 0.1481474 0.6661308 0.1870381 0.6661308 0.1481474 1 0.1084948 0.6661308 0.1481474 0.6661308 0.1084948 1 0.06960415 0.6661308 0.1084948 0.6661308 0.06960415 1 0.03296989 0.6661308 0.06960415 0.6661308 0.03296995 1 0 0.6661308 0.03296989 0.6661308 0 1 0.03296995 0.6661308 0 0.6661308 0.03296989 0.3322616 0.06960421 0.6661308 0.03296995 0.6661308 0.06960415 0.3322616 0.1084949 0.6661308 0.06960421 0.6661308 0.1084948 0.3322616 0.1481475 0.6661308 0.1084949 0.6661308 0.1481475 0.3322616 0.1870383 0.6661308 0.1481475 0.6661308 0.1870381 0.3322616 0.2236725 0.6661307 0.1870383 0.6661308 0.2236724 0.3322616 0.2566424 0.6661307 0.2236725 0.6661307 0.2566424 0.3322616 0.2846811 0.6661307 0.2566424 0.6661307 0.284681 0.3322616 0.9670301 0.3322616 1 0.3322616 0.9670301 0.6661308 0.9303958 0.3322616 0.9670301 0.3322616 0.9303958 0.6661308 0.8915051 0.3322616 0.9303958 0.3322616 0.8915051 0.6661308 0.8518525 0.3322616 0.8915051 0.3322616 0.8518525 0.6661308 0.8129618 0.3322616 0.8518525 0.3322616 0.8129618 0.6661308 0.7763275 0.3322616 0.8129618 0.3322616 0.7763276 0.6661308 0.7433575 0.3322616 0.7763275 0.3322616 0.7433576 0.6661308 0.7153189 0.3322616 0.7433575 0.3322616 0.715319 0.6661308 0.4306383 0.6661307 0.4025997 0.6661307 0.4306383 0.3322616 0.4636083 0.6661307 0.4306383 0.6661307 0.4636082 0.3322616 0.007735788 0.1176722 0.02291005 0.08743852 0 0.1497683 0.02291005 0.08743852 0.1059483 0.01890766 0.1814733 0 0.04493981 0.06022876 0.07297843 0.03708869 0.1059483 0.01890766 0.1059483 0.01890766 0.1425825 0.006384313 0.1814733 0 0.2600166 0.006384253 0.4025996 0.1497682 0.2211259 0 0.3296208 0.03708845 0.3576595 0.06022846 0.2966508 0.01890748 0.3796893 0.08743822 0.4025996 0.1497682 0.3576595 0.06022846 0.3796893 0.08743822 0.3948637 0.1176721 0.4025996 0.1497682 0.4025996 0.1497682 0.4025996 0.1824932 0.3948638 0.2145892 0.3796894 0.2448232 0.3576596 0.2720329 0.329621 0.2951729 0.296651 0.313354 0.3796894 0.2448232 0.329621 0.2951729 0.296651 0.313354 0.2600167 0.3258773 0.221126 0.3322615 0.221126 0.3322615 0.1814734 0.3322615 0.1425828 0.3258772 0.07297861 0.2951729 0 0.1824932 0.1059486 0.313354 0.07297861 0.2951729 0.04493999 0.272033 0.02291023 0.2448232 0.02291023 0.2448232 0.007735788 0.2145893 0 0.1824932 0.02291005 0.08743852 0.04493981 0.06022876 0.1059483 0.01890766 0 0.1824932 0.02291005 0.08743852 0.1814733 0 0.02291005 0.08743852 0 0.1824932 0 0.1497683 0.5391329 0.6661307 0.5002425 0.6661307 0.5391328 0.3322616 0.4025996 0.1497682 0.1814733 0 0.2211259 0 0.221126 0.3322615 0.3796894 0.2448232 0.296651 0.313354 0 0.1824932 0.1425828 0.3258772 0.1059486 0.313354 0.07297861 0.2951729 0.02291023 0.2448232 0 0.1824932 0.221126 0.3322615 0.3948638 0.2145892 0.3796894 0.2448232 0.2600166 0.006384253 0.3576595 0.06022846 0.4025996 0.1497682 0.3576595 0.06022846 0.2600166 0.006384253 0.2966508 0.01890748 0.1814733 0 0.1425828 0.3258772 0 0.1824932 0.4025996 0.1497682 0.221126 0.3322615 0.1814733 0 0.1814733 0 0.221126 0.3322615 0.1425828 0.3258772 0.5002425 0.6661307 0.4636083 0.6661307 0.5002425 0.3322616 0.6626162 0.3258773 0.6237258 0.3322615 0.5840733 0.3322615 0.5840733 0.3322615 0.5451825 0.3258773 0.5085483 0.313354 0.4475397 0.272033 0.4255099 0.2448232 0.4755784 0.295173 0.5840733 0.3322615 0.5085483 0.313354 0.4755784 0.295173 0.4103355 0.2145894 0.4025996 0.1824933 0.4025996 0.1497684 0.6626162 0.3258773 0.8051992 0.1824933 0.7974634 0.2145894 0.4755782 0.03708857 0.4103354 0.1176723 0.4475396 0.06022864 0.4755782 0.03708857 0.5085482 0.0189076 0.5451824 0.006384313 0.5451824 0.006384313 0.5840731 0 0.6237257 0 0.6626162 0.3258773 0.7974634 0.1176722 0.8051992 0.1824933 0.6992506 0.01890754 0.7322206 0.03708857 0.7602592 0.06022858 0.7602592 0.06022858 0.782289 0.08743834 0.7974634 0.1176722 0.7974634 0.1176722 0.8051992 0.1497684 0.8051992 0.1824933 0.7822889 0.2448233 0.7602591 0.272033 0.7974634 0.2145894 0.6626162 0.3258773 0.7602591 0.272033 0.6992505 0.313354 0.7602591 0.272033 0.7322205 0.2951731 0.6992505 0.313354 0.4255099 0.2448232 0.5840733 0.3322615 0.4755784 0.295173 0.4103355 0.2145894 0.6626162 0.3258773 0.5840733 0.3322615 0.5451824 0.006384313 0.4025996 0.1497684 0.4755782 0.03708857 0.6626164 0.006384253 0.6992506 0.01890754 0.7602592 0.06022858 0.7974634 0.1176722 0.6626164 0.006384253 0.7602592 0.06022858 0.4255099 0.2448232 0.4103355 0.2145894 0.5840733 0.3322615 0.7602591 0.272033 0.6626162 0.3258773 0.7974634 0.2145894 0.7974634 0.1176722 0.5451824 0.006384313 0.6237257 0 0.4103354 0.1176723 0.4255098 0.0874384 0.4475396 0.06022864 0.7974634 0.1176722 0.6237257 0 0.6626164 0.006384253 0.4755782 0.03708857 0.4025996 0.1497684 0.4103354 0.1176723 0.5451824 0.006384313 0.7974634 0.1176722 0.4103355 0.2145894 0.7974634 0.1176722 0.6626162 0.3258773 0.4103355 0.2145894</float_array>
+          <technique_common>
+            <accessor source="#Cylinder-mesh-map-0-array" count="372" stride="2">
+              <param name="S" type="float"/>
+              <param name="T" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <vertices id="Cylinder-mesh-vertices">
+          <input semantic="POSITION" source="#Cylinder-mesh-positions"/>
+        </vertices>
+        <polylist count="124">
+          <input semantic="VERTEX" source="#Cylinder-mesh-vertices" offset="0"/>
+          <input semantic="NORMAL" source="#Cylinder-mesh-normals" offset="1"/>
+          <input semantic="TEXCOORD" source="#Cylinder-mesh-map-0" offset="2" set="0"/>
+          <vcount>3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
+          <p>0 0 0 1 0 1 3 0 2 2 1 3 3 1 4 5 1 5 4 2 6 5 2 7 7 2 8 6 3 9 7 3 10 9 3 11 8 4 12 9 4 13 11 4 14 10 5 15 11 5 16 13 5 17 12 6 18 13 6 19 15 6 20 14 7 21 15 7 22 17 7 23 16 8 24 17 8 25 19 8 26 18 9 27 19 9 28 21 9 29 20 10 30 21 10 31 23 10 32 22 11 33 23 11 34 25 11 35 24 12 36 25 12 37 27 12 38 26 13 39 27 13 40 29 13 41 28 14 42 29 14 43 31 14 44 30 15 45 31 15 46 33 15 47 32 16 48 33 16 49 35 16 50 34 17 51 35 17 52 37 17 53 36 18 54 37 18 55 39 18 56 38 19 57 39 19 58 41 19 59 40 20 60 41 20 61 43 20 62 42 21 63 43 21 64 45 21 65 44 22 66 45 22 67 47 22 68 46 23 69 47 23 70 49 23 71 48 24 72 49 24 73 51 24 74 50 25 75 51 25 76 53 25 77 52 26 78 53 26 79 55 26 80 54 27 81 55 27 82 57 27 83 56 28 84 57 28 85 59 28 86 58 29 87 59 29 88 61 29 89 21 30 90 37 30 91 33 30 92 62 31 93 63 31 94 1 31 95 60 32 96 61 32 97 63 32 98 30 33 99 14 33 100 18 33 101 2 34 102 0 34 103 3 34 104 4 35 105 2 35 106 5 35 107 6 36 108 4 36 109 7 36 110 8 37 111 6 37 112 9 37 113 10 38 114 8 38 115 11 38 116 12 39 117 10 39 118 13 39 119 14 40 120 12 40 121 15 40 122 16 41 123 14 41 124 17 41 125 18 42 126 16 42 127 19 42 128 20 43 129 18 43 130 21 43 131 22 44 132 20 44 133 23 44 134 24 45 135 22 45 136 25 45 137 26 46 138 24 46 139 27 46 140 28 47 141 26 47 142 29 47 143 30 48 144 28 48 145 31 48 146 32 49 147 30 49 148 33 49 149 34 50 150 32 50 151 35 50 152 36 51 153 34 51 154 37 51 155 38 52 156 36 52 157 39 52 158 40 53 159 38 53 160 41 53 161 42 54 162 40 54 163 43 54 164 44 55 165 42 55 166 45 55 167 46 56 168 44 56 169 47 56 170 48 57 171 46 57 172 49 57 173 50 58 174 48 58 175 51 58 176 52 59 177 50 59 178 53 59 179 54 60 180 52 60 181 55 60 182 56 61 183 54 61 184 57 61 185 58 62 186 56 62 187 59 62 188 60 63 189 58 63 190 61 63 191 1 64 192 63 64 193 3 64 194 63 65 195 57 65 196 53 65 197 61 66 198 59 66 199 57 66 200 57 67 201 55 67 202 53 67 203 49 68 204 37 68 205 51 68 206 45 69 207 43 69 208 47 69 209 41 70 210 37 70 211 43 70 212 41 71 213 39 71 214 37 71 215 37 72 216 35 72 217 33 72 218 31 73 219 29 73 220 27 73 221 25 74 222 31 74 223 27 74 224 25 75 225 23 75 226 21 75 227 21 76 228 19 76 229 17 76 230 13 77 231 5 77 232 15 77 233 13 78 234 11 78 235 9 78 236 9 79 237 7 79 238 5 79 239 63 80 240 61 80 241 57 80 242 5 81 243 63 81 244 53 81 245 63 82 246 5 82 247 3 82 248 0 83 249 62 83 250 1 83 251 37 84 252 53 84 253 51 84 254 21 85 255 31 85 256 25 85 257 5 86 258 17 86 259 15 86 260 13 87 261 9 87 262 5 87 263 21 88 264 33 88 265 31 88 266 49 89 267 43 89 268 37 89 269 43 90 270 49 90 271 47 90 272 53 91 273 17 91 274 5 91 275 37 92 276 21 92 277 53 92 278 53 93 279 21 93 280 17 93 281 62 94 282 60 94 283 63 94 284 62 95 285 0 95 286 2 95 287 2 96 288 4 96 289 6 96 290 10 97 291 12 97 292 8 97 293 2 98 294 6 98 295 8 98 296 14 99 297 16 99 298 18 99 299 62 100 300 50 100 301 52 100 302 26 101 303 20 101 304 24 101 305 26 102 306 28 102 307 30 102 308 30 103 309 32 103 310 34 103 311 62 104 312 46 104 313 50 104 314 38 105 315 40 105 316 42 105 317 42 106 318 44 106 319 46 106 320 46 107 321 48 107 322 50 107 323 54 108 324 56 108 325 52 108 326 62 109 327 56 109 328 60 109 329 56 110 330 58 110 331 60 110 332 12 111 333 2 111 334 8 111 335 14 112 336 62 112 337 2 112 338 30 113 339 18 113 340 26 113 341 36 114 342 38 114 343 42 114 344 46 115 345 36 115 346 42 115 347 12 116 348 14 116 349 2 116 350 56 117 351 62 117 352 52 117 353 46 118 354 30 118 355 34 118 356 20 119 357 22 119 358 24 119 359 46 120 360 34 120 361 36 120 362 26 121 363 18 121 364 20 121 365 30 122 366 46 122 367 14 122 368 46 123 369 62 123 370 14 123 371</p>
+        </polylist>
+      </mesh>
+    </geometry>
+    <geometry id="Cube_002-mesh" name="Cube.002">
+      <mesh>
+        <source id="Cube_002-mesh-positions">
+          <float_array id="Cube_002-mesh-positions-array" count="24">-1 -1 -1 -1 1 -1 1 1 -1 1 -1 -1 -1 -1 1 -1 1 1 1 1 1 1 -1 1</float_array>
+          <technique_common>
+            <accessor source="#Cube_002-mesh-positions-array" count="8" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Cube_002-mesh-normals">
+          <float_array id="Cube_002-mesh-normals-array" count="36">-1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1 -1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1</float_array>
+          <technique_common>
+            <accessor source="#Cube_002-mesh-normals-array" count="12" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Cube_002-mesh-map-0">
+          <float_array id="Cube_002-mesh-map-0-array" count="72">0.3333333 0.6666666 0 0.6666667 0 0.3333334 0.3333334 0.3333333 0.3333334 0 0.6666667 0 0 1.58946e-7 0.3333333 0 0.3333334 0.3333333 0.3333334 0.6666667 0.3333334 0.3333334 0.6666667 0.3333334 1 0.6666666 0.6666668 0.6666666 0.6666668 0.3333334 0.3333333 0.6666668 0.6666666 0.6666667 0.6666666 1 0.3333333 0.3333334 0.3333333 0.6666666 0 0.3333334 0.6666668 0.3333333 0.3333334 0.3333333 0.6666667 0 0 0.3333334 0 1.58946e-7 0.3333334 0.3333333 0.6666668 0.6666666 0.3333334 0.6666667 0.6666667 0.3333334 1 0.3333334 1 0.6666666 0.6666668 0.3333334 0.3333334 1 0.3333333 0.6666668 0.6666666 1</float_array>
+          <technique_common>
+            <accessor source="#Cube_002-mesh-map-0-array" count="36" stride="2">
+              <param name="S" type="float"/>
+              <param name="T" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <vertices id="Cube_002-mesh-vertices">
+          <input semantic="POSITION" source="#Cube_002-mesh-positions"/>
+        </vertices>
+        <polylist count="12">
+          <input semantic="VERTEX" source="#Cube_002-mesh-vertices" offset="0"/>
+          <input semantic="NORMAL" source="#Cube_002-mesh-normals" offset="1"/>
+          <input semantic="TEXCOORD" source="#Cube_002-mesh-map-0" offset="2" set="0"/>
+          <vcount>3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
+          <p>4 0 0 5 0 1 1 0 2 5 1 3 6 1 4 2 1 5 6 2 6 7 2 7 3 2 8 7 3 9 4 3 10 0 3 11 0 4 12 1 4 13 2 4 14 7 5 15 6 5 16 5 5 17 0 6 18 4 6 19 1 6 20 1 7 21 5 7 22 2 7 23 2 8 24 6 8 25 3 8 26 3 9 27 7 9 28 0 9 29 3 10 30 0 10 31 2 10 32 4 11 33 7 11 34 5 11 35</p>
+        </polylist>
+      </mesh>
+    </geometry>
+    <geometry id="Cube_003-mesh" name="Cube.003">
+      <mesh>
+        <source id="Cube_003-mesh-positions">
+          <float_array id="Cube_003-mesh-positions-array" count="24">-1 -1 -1 -1 1 -1 1 1 -1 1 -1 -1 -1 -1 1 -1 1 1 1 1 1 1 -1 1</float_array>
+          <technique_common>
+            <accessor source="#Cube_003-mesh-positions-array" count="8" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Cube_003-mesh-normals">
+          <float_array id="Cube_003-mesh-normals-array" count="36">-1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1 -1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1</float_array>
+          <technique_common>
+            <accessor source="#Cube_003-mesh-normals-array" count="12" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Cube_003-mesh-map-0">
+          <float_array id="Cube_003-mesh-map-0-array" count="72">0.3333333 0.6666666 0 0.6666667 0 0.3333334 0.3333334 0.3333333 0.3333334 0 0.6666667 0 0 1.58946e-7 0.3333333 0 0.3333334 0.3333333 0.3333334 0.6666667 0.3333334 0.3333334 0.6666667 0.3333334 1 0.6666666 0.6666668 0.6666666 0.6666668 0.3333334 0.3333333 0.6666668 0.6666666 0.6666667 0.6666666 1 0.3333333 0.3333334 0.3333333 0.6666666 0 0.3333334 0.6666668 0.3333333 0.3333334 0.3333333 0.6666667 0 0 0.3333334 0 1.58946e-7 0.3333334 0.3333333 0.6666668 0.6666666 0.3333334 0.6666667 0.6666667 0.3333334 1 0.3333334 1 0.6666666 0.6666668 0.3333334 0.3333334 1 0.3333333 0.6666668 0.6666666 1</float_array>
+          <technique_common>
+            <accessor source="#Cube_003-mesh-map-0-array" count="36" stride="2">
+              <param name="S" type="float"/>
+              <param name="T" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <vertices id="Cube_003-mesh-vertices">
+          <input semantic="POSITION" source="#Cube_003-mesh-positions"/>
+        </vertices>
+        <polylist count="12">
+          <input semantic="VERTEX" source="#Cube_003-mesh-vertices" offset="0"/>
+          <input semantic="NORMAL" source="#Cube_003-mesh-normals" offset="1"/>
+          <input semantic="TEXCOORD" source="#Cube_003-mesh-map-0" offset="2" set="0"/>
+          <vcount>3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
+          <p>4 0 0 5 0 1 1 0 2 5 1 3 6 1 4 2 1 5 6 2 6 7 2 7 3 2 8 7 3 9 4 3 10 0 3 11 0 4 12 1 4 13 2 4 14 7 5 15 6 5 16 5 5 17 0 6 18 4 6 19 1 6 20 1 7 21 5 7 22 2 7 23 2 8 24 6 8 25 3 8 26 3 9 27 7 9 28 0 9 29 3 10 30 0 10 31 2 10 32 4 11 33 7 11 34 5 11 35</p>
+        </polylist>
+      </mesh>
+    </geometry>
+    <geometry id="Cone-mesh" name="Cone">
+      <mesh>
+        <source id="Cone-mesh-positions">
+          <float_array id="Cone-mesh-positions-array" count="99">0 1 -1 0.1950903 0.9807853 -1 0.3826835 0.9238795 -1 0.5555703 0.8314696 -1 0.7071068 0.7071068 -1 0.8314697 0.5555702 -1 0.9238795 0.3826834 -1 0.9807853 0.1950903 -1 1 0 -1 0 0 1 0.9807853 -0.1950902 -1 0.9238796 -0.3826833 -1 0.8314697 -0.5555702 -1 0.7071068 -0.7071068 -1 0.5555702 -0.8314697 -1 0.3826833 -0.9238796 -1 0.1950901 -0.9807853 -1 -3.25841e-7 -1 -1 -0.1950907 -0.9807852 -1 -0.3826839 -0.9238793 -1 -0.5555707 -0.8314693 -1 -0.7071073 -0.7071064 -1 -0.83147 -0.5555697 -1 -0.9238799 -0.3826827 -1 -0.9807854 -0.1950894 -1 -1 9.65599e-7 -1 -0.9807851 0.1950913 -1 -0.9238791 0.3826845 -1 -0.8314689 0.5555713 -1 -0.7071059 0.7071077 -1 -0.5555691 0.8314704 -1 -0.3826821 0.9238801 -1 -0.1950888 0.9807856 -1</float_array>
+          <technique_common>
+            <accessor source="#Cone-mesh-positions-array" count="33" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Cone-mesh-normals">
+          <float_array id="Cone-mesh-normals-array" count="186">-0.2598869 0.8567374 0.4454883 0.08775365 0.8909767 0.4454883 -0.4220346 0.7895739 0.4454883 -0.5679637 0.6920675 0.4454883 -0.692066 0.5679655 0.4454883 -0.7895729 0.4220365 0.4454884 -0.8567367 0.2598893 0.4454883 -0.8909766 0.08775442 0.4454883 -0.8909768 -0.08775281 0.4454883 -0.8567373 -0.2598874 0.4454883 -0.7895736 -0.4220352 0.4454883 -0.6920673 -0.567964 0.4454883 -0.5679649 -0.6920665 0.4454883 -0.422036 -0.7895731 0.4454884 -0.2598888 -0.8567368 0.4454883 -0.08775389 -0.8909766 0.4454883 0.08775335 -0.8909767 0.4454883 0.2598879 -0.8567371 0.4454884 0.4220357 -0.7895733 0.4454883 0.5679646 -0.6920668 0.4454883 0.6920668 -0.5679646 0.4454883 0.7895734 -0.4220355 0.4454883 0.8567369 -0.2598884 0.4454883 0.8909766 -0.08775341 0.4454883 0.8909766 0.08775365 0.4454883 0.8567369 0.2598884 0.4454883 0.7895734 0.4220355 0.4454883 0.6920668 0.5679646 0.4454883 0.5679646 0.6920667 0.4454883 0.4220357 0.7895733 0.4454883 -0.08775299 0.8909767 0.4454883 0.2598882 0.8567369 0.4454883 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1</float_array>
+          <technique_common>
+            <accessor source="#Cone-mesh-normals-array" count="62" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Cone-mesh-map-0">
+          <float_array id="Cone-mesh-map-0-array" count="372">0.2703177 0.5995787 0.2998394 0.2998391 0.3293613 0.5995786 0.3872699 0.5880599 0.2998394 0.2998391 0.4418191 0.565465 0.2124085 0.5880598 0.2998394 0.2998391 0.2703177 0.5995787 0.1578593 0.5654647 0.2998394 0.2998391 0.2124085 0.5880598 0.1087664 0.5326618 0.2998394 0.2998391 0.1578593 0.5654647 0.06701636 0.4909116 0.2998394 0.2998391 0.1087664 0.5326618 0.03421354 0.4418186 0.2998394 0.2998391 0.06701636 0.4909116 0.01161867 0.3872693 0.2998394 0.2998391 0.03421354 0.4418186 9.99601e-5 0.3293604 0.2998394 0.2998391 0.01161867 0.3872693 1.00052e-4 0.2703169 0.2998394 0.2998391 9.99601e-5 0.3293604 0.01161885 0.212408 0.2998394 0.2998391 1.00052e-4 0.2703169 0.03421401 0.1578589 0.2998394 0.2998391 0.01161885 0.212408 0.0670166 0.1087664 0.2998394 0.2998391 0.03421401 0.1578589 0.1087667 0.06701642 0.2998394 0.2998391 0.0670166 0.1087664 0.1578596 0.03421366 0.2998394 0.2998391 0.1087667 0.06701642 0.2124087 0.01161867 0.2998394 0.2998391 0.1578596 0.03421366 0.2703177 9.99601e-5 0.2998394 0.2998391 0.2124087 0.01161867 0.3293612 9.99601e-5 0.2998394 0.2998391 0.2703177 9.99601e-5 0.3872698 0.01161861 0.2998394 0.2998391 0.3293612 9.99601e-5 0.441819 0.03421354 0.2998394 0.2998391 0.3872698 0.01161861 0.490912 0.06701624 0.2998394 0.2998391 0.441819 0.03421354 0.5326621 0.1087663 0.2998394 0.2998391 0.490912 0.06701624 0.5654649 0.1578592 0.2998394 0.2998391 0.5326621 0.1087663 0.5880599 0.2124084 0.2998394 0.2998391 0.5654649 0.1578592 0.5995789 0.2703174 0.2998394 0.2998391 0.5880599 0.2124084 0.5995789 0.3293609 0.2998394 0.2998391 0.5995789 0.2703174 0.58806 0.3872699 0.2998394 0.2998391 0.5995789 0.3293609 0.5654651 0.4418191 0.2998394 0.2998391 0.58806 0.3872699 0.5326622 0.490912 0.2998394 0.2998391 0.5654651 0.4418191 0.490912 0.5326621 0.2998394 0.2998391 0.5326622 0.490912 0.3293613 0.5995786 0.2998394 0.2998391 0.3872699 0.5880599 0.4418191 0.565465 0.2998394 0.2998391 0.490912 0.5326621 0.3555589 0.9273699 0.327692 0.6444416 0.3774527 0.7050744 0.0447632 0.6723087 0.07262909 0.6444426 0.1053958 0.6225484 0.1053958 0.6225484 0.1418048 0.6074671 0.1804561 0.5997788 0.2585159 0.6074666 0.2949247 0.6225475 0.2198645 0.5997786 0.1053958 0.6225484 0.1804561 0.5997788 0.2198645 0.5997786 0.327692 0.6444416 0.3555582 0.6723074 0.3774527 0.7050744 0.0447632 0.6723087 0.02286869 0.8946028 0.007787942 0.8581945 0.3925338 0.8581946 0.3925338 0.7414832 0.4002219 0.8195434 0.3925338 0.8581946 0.3774531 0.8946028 0.3555589 0.9273699 0.3555589 0.9273699 0.3276926 0.9552363 0.2949251 0.9771308 0.0447632 0.6723087 0.07262855 0.9552358 0.02286869 0.8946028 0.2198645 0.9999001 0.1804561 0.9998999 0.1418044 0.9922115 0.1418044 0.9922115 0.1053954 0.9771302 0.07262855 0.9552358 0.07262855 0.9552358 0.04476273 0.9273698 0.02286869 0.8946028 9.99601e-5 0.8195437 9.99753e-5 0.7801356 0.007787942 0.8581945 0.0447632 0.6723087 9.99753e-5 0.7801356 0.02286899 0.7050758 9.99753e-5 0.7801356 0.007788121 0.7414845 0.02286899 0.7050758 0.2949247 0.6225475 0.1053958 0.6225484 0.2198645 0.5997786 0.327692 0.6444416 0.0447632 0.6723087 0.1053958 0.6225484 0.3555589 0.9273699 0.3774527 0.7050744 0.3925338 0.8581946 0.2585157 0.9922119 0.2198645 0.9999001 0.1418044 0.9922115 0.07262855 0.9552358 0.2585157 0.9922119 0.1418044 0.9922115 0.2949247 0.6225475 0.327692 0.6444416 0.1053958 0.6225484 9.99753e-5 0.7801356 0.0447632 0.6723087 0.007787942 0.8581945 0.07262855 0.9552358 0.3555589 0.9273699 0.2949251 0.9771308 0.3925338 0.7414832 0.400222 0.7801346 0.4002219 0.8195434 0.07262855 0.9552358 0.2949251 0.9771308 0.2585157 0.9922119 0.3925338 0.8581946 0.3774527 0.7050744 0.3925338 0.7414832 0.3555589 0.9273699 0.07262855 0.9552358 0.327692 0.6444416 0.07262855 0.9552358 0.0447632 0.6723087 0.327692 0.6444416</float_array>
+          <technique_common>
+            <accessor source="#Cone-mesh-map-0-array" count="186" stride="2">
+              <param name="S" type="float"/>
+              <param name="T" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <vertices id="Cone-mesh-vertices">
+          <input semantic="POSITION" source="#Cone-mesh-positions"/>
+        </vertices>
+        <polylist count="62">
+          <input semantic="VERTEX" source="#Cone-mesh-vertices" offset="0"/>
+          <input semantic="NORMAL" source="#Cone-mesh-normals" offset="1"/>
+          <input semantic="TEXCOORD" source="#Cone-mesh-map-0" offset="2" set="0"/>
+          <vcount>3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
+          <p>31 0 0 9 0 1 32 0 2 0 1 3 9 1 4 1 1 5 30 2 6 9 2 7 31 2 8 29 3 9 9 3 10 30 3 11 28 4 12 9 4 13 29 4 14 27 5 15 9 5 16 28 5 17 26 6 18 9 6 19 27 6 20 25 7 21 9 7 22 26 7 23 24 8 24 9 8 25 25 8 26 23 9 27 9 9 28 24 9 29 22 10 30 9 10 31 23 10 32 21 11 33 9 11 34 22 11 35 20 12 36 9 12 37 21 12 38 19 13 39 9 13 40 20 13 41 18 14 42 9 14 43 19 14 44 17 15 45 9 15 46 18 15 47 16 16 48 9 16 49 17 16 50 15 17 51 9 17 52 16 17 53 14 18 54 9 18 55 15 18 56 13 19 57 9 19 58 14 19 59 12 20 60 9 20 61 13 20 62 11 21 63 9 21 64 12 21 65 10 22 66 9 22 67 11 22 68 8 23 69 9 23 70 10 23 71 7 24 72 9 24 73 8 24 74 6 25 75 9 25 76 7 25 77 5 26 78 9 26 79 6 26 80 4 27 81 9 27 82 5 27 83 3 28 84 9 28 85 4 28 86 2 29 87 9 29 88 3 29 89 32 30 90 9 30 91 0 30 92 1 31 93 9 31 94 2 31 95 16 32 96 7 32 97 10 32 98 32 33 99 0 33 100 1 33 101 1 34 102 2 34 103 3 34 104 5 35 105 6 35 106 4 35 107 1 36 108 3 36 109 4 36 110 7 37 111 8 37 112 10 37 113 32 38 114 26 38 115 27 38 116 14 39 117 11 39 118 13 39 119 14 40 120 15 40 121 16 40 122 16 41 123 17 41 124 18 41 125 32 42 126 24 42 127 26 42 128 20 43 129 21 43 130 22 43 131 22 44 132 23 44 133 24 44 134 24 45 135 25 45 136 26 45 137 28 46 138 29 46 139 27 46 140 32 47 141 29 47 142 31 47 143 29 48 144 30 48 145 31 48 146 6 49 147 1 49 148 4 49 149 7 50 150 32 50 151 1 50 152 16 51 153 10 51 154 14 51 155 19 52 156 20 52 157 22 52 158 24 53 159 19 53 160 22 53 161 6 54 162 7 54 163 1 54 164 29 55 165 32 55 166 27 55 167 24 56 168 16 56 169 18 56 170 11 57 171 12 57 172 13 57 173 24 58 174 18 58 175 19 58 176 14 59 177 10 59 178 11 59 179 16 60 180 24 60 181 7 60 182 24 61 183 32 61 184 7 61 185</p>
+        </polylist>
+      </mesh>
+    </geometry>
+    <geometry id="Plane-mesh" name="Plane">
+      <mesh>
+        <source id="Plane-mesh-positions">
+          <float_array id="Plane-mesh-positions-array" count="12">-1 -1 0 1 -1 0 -1 1 0 1 1 0</float_array>
+          <technique_common>
+            <accessor source="#Plane-mesh-positions-array" count="4" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Plane-mesh-normals">
+          <float_array id="Plane-mesh-normals-array" count="6">0 0 1 0 0 1</float_array>
+          <technique_common>
+            <accessor source="#Plane-mesh-normals-array" count="2" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Plane-mesh-map-0">
+          <float_array id="Plane-mesh-map-0-array" count="12">1.49012e-7 1 0 1.49012e-7 0.9999999 0 1 0.9999999 1.49012e-7 1 0.9999999 0</float_array>
+          <technique_common>
+            <accessor source="#Plane-mesh-map-0-array" count="6" stride="2">
+              <param name="S" type="float"/>
+              <param name="T" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <vertices id="Plane-mesh-vertices">
+          <input semantic="POSITION" source="#Plane-mesh-positions"/>
+        </vertices>
+        <polylist count="2">
+          <input semantic="VERTEX" source="#Plane-mesh-vertices" offset="0"/>
+          <input semantic="NORMAL" source="#Plane-mesh-normals" offset="1"/>
+          <input semantic="TEXCOORD" source="#Plane-mesh-map-0" offset="2" set="0"/>
+          <vcount>3 3 </vcount>
+          <p>0 0 0 1 0 1 3 0 2 2 1 3 0 1 4 3 1 5</p>
+        </polylist>
+      </mesh>
+    </geometry>
+  </library_geometries>
+  <library_controllers/>
+  <library_visual_scenes>
+    <visual_scene id="Scene" name="Scene">
+      <node id="Camera" name="Camera" type="NODE">
+        <matrix sid="transform">0.6858796 -0.3173736 0.6548612 7.481132 0.7276347 0.312471 -0.6106633 -6.50764 -0.01081678 0.8953412 0.4452495 3.803988 0 0 0 1</matrix>
+        <instance_camera url="#Camera-camera"/>
+      </node>
+      <node id="Lamp" name="Lamp" type="NODE">
+        <matrix sid="transform">-0.2908646 -0.7711008 0.5663932 4.076245 0.9551712 -0.1998834 0.2183912 1.005454 -0.05518906 0.6045247 0.7946723 6.900427 0 0 0 1</matrix>
+        <instance_light url="#Lamp-light"/>
+      </node>
+      <node id="Cube" name="Cube" type="NODE">
+        <matrix sid="transform">1 0 0 0 0 1 0 3.276364 0 0 1 0.8 0 0 0 1</matrix>
+        <instance_geometry url="#Cube_001-mesh"/>
+      </node>
+      <node id="Cylinder" name="Cylinder" type="NODE">
+        <matrix sid="transform">0.3 0 0 -1.592923 0 -1.91927e-7 -1 0 0 0.3 -6.39758e-7 0.3 0 0 0 1</matrix>
+        <instance_geometry url="#Cylinder-mesh"/>
+      </node>
+      <node id="Cube_001" name="Cube_001" type="NODE">
+        <matrix sid="transform">1 0 0 -1.330045 0 1 0 1.907173 0 0 1 0 0 0 0 1</matrix>
+        <instance_geometry url="#Cube_002-mesh"/>
+      </node>
+      <node id="Cube_002" name="Cube_002" type="NODE">
+        <matrix sid="transform">1 0 0 -0.7533734 0 1 0 2.359819 0 0 1 0.4 0 0 0 1</matrix>
+        <instance_geometry url="#Cube_003-mesh"/>
+      </node>
+      <node id="Cone" name="Cone" type="NODE">
+        <matrix sid="transform">1 0 0 2.063094 0 1 0 -1.298893 0 0 0.2 0.2 0 0 0 1</matrix>
+        <instance_geometry url="#Cone-mesh"/>
+      </node>
+      <node id="Plane" name="Plane" type="NODE">
+        <matrix sid="transform">15 0 0 0 0 15 0 0 0 0 1 0 0 0 0 1</matrix>
+        <instance_geometry url="#Plane-mesh"/>
+      </node>
+    </visual_scene>
+  </library_visual_scenes>
+  <scene>
+    <instance_visual_scene url="#Scene"/>
+  </scene>
+</COLLADA>
\ No newline at end of file