From 445219b013c45420b4777ce5b5efc54023a30823 Mon Sep 17 00:00:00 2001 From: Thomas FORGIONE Date: Thu, 23 Apr 2015 17:49:59 +0200 Subject: [PATCH] From python CGI to jekyll stuff --- CNAME | 1 + HermiteTest/index.html | 18 +- HermiteTest/index.py | 28 - README.md | 3 - templates/body.html => _layouts/main.html | 15 +- _layouts/withjs.html | 23 + bouncing/index.html | 21 +- bouncing/index.py | 28 - errors/403/index.html | 10 - errors/403/index.py | 23 - errors/404/index.html | 10 - errors/404/index.py | 23 - errors/500/index.html | 10 - errors/500/index.py | 23 - img/python-powered.svg | 4571 ----------------- index.html | 90 +- index.py | 9 - multisphere/index.html | 24 +- multisphere/index.py | 28 - prototype/index.html | 59 +- prototype/index.py | 33 - prototype/js/gen.py | 49 - {css => static/css}/style.css | 0 {data => static/data}/castle/154B175A_c.bmp | Bin {data => static/data}/castle/16CBEF1C_c.bmp | Bin {data => static/data}/castle/1916F8C5_c.bmp | Bin {data => static/data}/castle/19D5421D_c.bmp | Bin {data => static/data}/castle/1D0CA178_c.bmp | Bin {data => static/data}/castle/1FEE462_c.bmp | Bin {data => static/data}/castle/20EF7F7C_c.bmp | Bin {data => static/data}/castle/3AB7B2BC_c.bmp | Bin {data => static/data}/castle/3C6851DA_c.bmp | Bin {data => static/data}/castle/49254A53_c.bmp | Bin {data => static/data}/castle/5EDC83BD_c.bmp | Bin {data => static/data}/castle/60A64656_c.bmp | Bin {data => static/data}/castle/61BE951F_c.bmp | Bin {data => static/data}/castle/6AE21407_c.bmp | Bin {data => static/data}/castle/6DAF90F6_c.bmp | Bin {data => static/data}/castle/7EB1C6A1_c.bmp | Bin {data => static/data}/castle/Castle.zip | Bin .../data}/castle/Masks/148EB7B9_a.bmp | Bin .../data}/castle/Masks/1FEE462_a.bmp | Bin .../data}/castle/Masks/3C6851DA_a.bmp | Bin .../data}/castle/Masks/5EDC83BD_a.bmp | Bin .../data}/castle/Masks/7EB1C6A1_a.bmp | Bin {data => static/data}/castle/Masks/Thumbs.db | Bin {data => static/data}/castle/Readme.txt | 0 .../data}/castle/Sky texture/3FA1757A_c.bmp | Bin .../data}/castle/Sky texture/401FFEF3_c.bmp | Bin .../data}/castle/Sky texture/41BAF66_c.bmp | Bin .../data}/castle/Sky texture/452E0376_c.bmp | Bin .../data}/castle/Sky texture/64B5A924_c.bmp | Bin .../data}/castle/Sky texture/73058137_c.bmp | Bin .../data}/castle/Sky texture/7A3E773_c.bmp | Bin .../data}/castle/Sky texture/823E4B9_c.bmp | Bin .../data}/castle/Sky texture/954754D_c.bmp | Bin .../data}/castle/Sky texture/Thumbs.db | Bin .../princess peaches castle (outside).mtl | 0 .../princess peaches castle (outside).obj | 0 .../princess peaches castle (outside)_grp.png | Bin .../tree texture and mask/1E114049_a.bmp | Bin .../tree texture and mask/1E114049_c.bmp | Bin .../castle/tree texture and mask/Thumbs.db | Bin {data => static/data}/first/3C96C6A_c.bmp | Bin {data => static/data}/first/48F5B267_c.bmp | Bin {data => static/data}/first/5C3492AB_c.png | Bin {data => static/data}/first/6B88A261_c.bmp | Bin {data => static/data}/first/6E3E7EFA_c.bmp | Bin {data => static/data}/first/777F0E0B_c.png | Bin {data => static/data}/first/77928504_c.png | Bin {data => static/data}/first/7A7501A5_c.bmp | Bin {data => static/data}/first/7F0DBBD7_c.bmp | Bin {data => static/data}/first/Floor 1.mtl | 0 {data => static/data}/first/Floor 1.obj | 0 {data => static/data}/first/Sky_grp.png | Bin {data => static/data}/first/readme.txt | 0 {data => static/data}/first/toto.zip | Bin {data => static/data}/spheres/1.obj | 0 {data => static/data}/spheres/10.obj | 0 {data => static/data}/spheres/11.obj | 0 {data => static/data}/spheres/12.obj | 0 {data => static/data}/spheres/13.obj | 0 {data => static/data}/spheres/14.obj | 0 {data => static/data}/spheres/15.obj | 0 {data => static/data}/spheres/16.obj | 0 {data => static/data}/spheres/17.obj | 0 {data => static/data}/spheres/18.obj | 0 {data => static/data}/spheres/19.obj | 0 {data => static/data}/spheres/2.obj | 0 {data => static/data}/spheres/20.obj | 0 {data => static/data}/spheres/21.obj | 0 {data => static/data}/spheres/22.obj | 0 {data => static/data}/spheres/23.obj | 0 {data => static/data}/spheres/24.obj | 0 {data => static/data}/spheres/25.obj | 0 {data => static/data}/spheres/3.obj | 0 {data => static/data}/spheres/4.obj | 0 {data => static/data}/spheres/5.obj | 0 {data => static/data}/spheres/6.obj | 0 {data => static/data}/spheres/7.obj | 0 {data => static/data}/spheres/8.obj | 0 {data => static/data}/spheres/9.obj | 0 {js => static/js}/BouncingCube.js | 0 {js => static/js}/BufferGeometryToGeometry.js | 0 {js => static/js}/Camera.js | 0 {js => static/js}/CameraContainer.js | 0 {js => static/js}/Cube.js | 0 {js => static/js}/FixedCamera.js | 2 +- {js => static/js}/Hermite.js | 0 .../js/HermiteTest}/HermiteTest.js | 0 {js => static/js}/PointerCamera.js | 0 {js => static/js}/ProgressiveSphere.js | 0 {js => static/js}/Tools.js | 0 {js => static/js}/ToolsTest.js | 0 .../js => static/js/bouncing}/BouncingMain.js | 0 .../js/multisphere}/MultiSphere.js | 2 +- {prototype/js => static/js/prototype}/main.js | 23 +- {stream/js => static/js/stream}/main.js | 0 {js => static/js}/three.js | 0 {js => static/js}/three/DDSLoader.js | 0 {js => static/js}/three/MTLLoader.js | 0 {js => static/js}/three/OBJLoader.js | 0 {js => static/js}/three/OBJMTLLoader.js | 0 {js => static/js}/three/OrbitControls.js | 0 {js => static/js}/three/stats.min.js | 0 {js => static/js}/three/three.min.js | 0 stream/index.html | 40 +- stream/index.py | 48 - templates/.htaccess | 1 - templates/head.html | 7 - templates/jsIncludes.html | 18 - templates/page.html | 4 - webtools/.htaccess | 1 - webtools/Web.py | 61 - webtools/__init__.py | 0 135 files changed, 194 insertions(+), 5112 deletions(-) create mode 100644 CNAME delete mode 100755 HermiteTest/index.py delete mode 100644 README.md rename templates/body.html => _layouts/main.html (52%) create mode 100644 _layouts/withjs.html delete mode 100755 bouncing/index.py delete mode 100644 errors/403/index.html delete mode 100755 errors/403/index.py delete mode 100644 errors/404/index.html delete mode 100755 errors/404/index.py delete mode 100644 errors/500/index.html delete mode 100755 errors/500/index.py delete mode 100644 img/python-powered.svg delete mode 100755 index.py delete mode 100755 multisphere/index.py delete mode 100755 prototype/index.py delete mode 100755 prototype/js/gen.py rename {css => static/css}/style.css (100%) rename {data => static/data}/castle/154B175A_c.bmp (100%) rename {data => static/data}/castle/16CBEF1C_c.bmp (100%) rename {data => static/data}/castle/1916F8C5_c.bmp (100%) rename {data => static/data}/castle/19D5421D_c.bmp (100%) rename {data => static/data}/castle/1D0CA178_c.bmp (100%) rename {data => static/data}/castle/1FEE462_c.bmp (100%) rename {data => static/data}/castle/20EF7F7C_c.bmp (100%) rename {data => static/data}/castle/3AB7B2BC_c.bmp (100%) rename {data => static/data}/castle/3C6851DA_c.bmp (100%) rename {data => static/data}/castle/49254A53_c.bmp (100%) rename {data => static/data}/castle/5EDC83BD_c.bmp (100%) rename {data => static/data}/castle/60A64656_c.bmp (100%) rename {data => static/data}/castle/61BE951F_c.bmp (100%) rename {data => static/data}/castle/6AE21407_c.bmp (100%) rename {data => static/data}/castle/6DAF90F6_c.bmp (100%) rename {data => static/data}/castle/7EB1C6A1_c.bmp (100%) rename {data => static/data}/castle/Castle.zip (100%) rename {data => static/data}/castle/Masks/148EB7B9_a.bmp (100%) rename {data => static/data}/castle/Masks/1FEE462_a.bmp (100%) rename {data => static/data}/castle/Masks/3C6851DA_a.bmp (100%) rename {data => static/data}/castle/Masks/5EDC83BD_a.bmp (100%) rename {data => static/data}/castle/Masks/7EB1C6A1_a.bmp (100%) rename {data => static/data}/castle/Masks/Thumbs.db (100%) rename {data => static/data}/castle/Readme.txt (100%) rename {data => static/data}/castle/Sky texture/3FA1757A_c.bmp (100%) rename {data => static/data}/castle/Sky texture/401FFEF3_c.bmp (100%) rename {data => static/data}/castle/Sky texture/41BAF66_c.bmp (100%) rename {data => static/data}/castle/Sky texture/452E0376_c.bmp (100%) rename {data => static/data}/castle/Sky texture/64B5A924_c.bmp (100%) rename {data => static/data}/castle/Sky texture/73058137_c.bmp (100%) rename {data => static/data}/castle/Sky texture/7A3E773_c.bmp (100%) rename {data => static/data}/castle/Sky texture/823E4B9_c.bmp (100%) rename {data => static/data}/castle/Sky texture/954754D_c.bmp (100%) rename {data => static/data}/castle/Sky texture/Thumbs.db (100%) rename {data => static/data}/castle/princess peaches castle (outside).mtl (100%) rename {data => static/data}/castle/princess peaches castle (outside).obj (100%) rename {data => static/data}/castle/princess peaches castle (outside)_grp.png (100%) rename {data => static/data}/castle/tree texture and mask/1E114049_a.bmp (100%) rename {data => static/data}/castle/tree texture and mask/1E114049_c.bmp (100%) rename {data => static/data}/castle/tree texture and mask/Thumbs.db (100%) rename {data => static/data}/first/3C96C6A_c.bmp (100%) rename {data => static/data}/first/48F5B267_c.bmp (100%) rename {data => static/data}/first/5C3492AB_c.png (100%) rename {data => static/data}/first/6B88A261_c.bmp (100%) rename {data => static/data}/first/6E3E7EFA_c.bmp (100%) rename {data => static/data}/first/777F0E0B_c.png (100%) rename {data => static/data}/first/77928504_c.png (100%) rename {data => static/data}/first/7A7501A5_c.bmp (100%) rename {data => static/data}/first/7F0DBBD7_c.bmp (100%) rename {data => static/data}/first/Floor 1.mtl (100%) rename {data => static/data}/first/Floor 1.obj (100%) rename {data => static/data}/first/Sky_grp.png (100%) rename {data => static/data}/first/readme.txt (100%) rename {data => static/data}/first/toto.zip (100%) rename {data => static/data}/spheres/1.obj (100%) rename {data => static/data}/spheres/10.obj (100%) rename {data => static/data}/spheres/11.obj (100%) rename {data => static/data}/spheres/12.obj (100%) rename {data => static/data}/spheres/13.obj (100%) rename {data => static/data}/spheres/14.obj (100%) rename {data => static/data}/spheres/15.obj (100%) rename {data => static/data}/spheres/16.obj (100%) rename {data => static/data}/spheres/17.obj (100%) rename {data => static/data}/spheres/18.obj (100%) rename {data => static/data}/spheres/19.obj (100%) rename {data => static/data}/spheres/2.obj (100%) rename {data => static/data}/spheres/20.obj (100%) rename {data => static/data}/spheres/21.obj (100%) rename {data => static/data}/spheres/22.obj (100%) rename {data => static/data}/spheres/23.obj (100%) rename {data => static/data}/spheres/24.obj (100%) rename {data => static/data}/spheres/25.obj (100%) rename {data => static/data}/spheres/3.obj (100%) rename {data => static/data}/spheres/4.obj (100%) rename {data => static/data}/spheres/5.obj (100%) rename {data => static/data}/spheres/6.obj (100%) rename {data => static/data}/spheres/7.obj (100%) rename {data => static/data}/spheres/8.obj (100%) rename {data => static/data}/spheres/9.obj (100%) rename {js => static/js}/BouncingCube.js (100%) rename {js => static/js}/BufferGeometryToGeometry.js (100%) rename {js => static/js}/Camera.js (100%) rename {js => static/js}/CameraContainer.js (100%) rename {js => static/js}/Cube.js (100%) rename {js => static/js}/FixedCamera.js (99%) rename {js => static/js}/Hermite.js (100%) rename {HermiteTest/js => static/js/HermiteTest}/HermiteTest.js (100%) rename {js => static/js}/PointerCamera.js (100%) rename {js => static/js}/ProgressiveSphere.js (100%) rename {js => static/js}/Tools.js (100%) rename {js => static/js}/ToolsTest.js (100%) rename {bouncing/js => static/js/bouncing}/BouncingMain.js (100%) rename {multisphere/js => static/js/multisphere}/MultiSphere.js (97%) rename {prototype/js => static/js/prototype}/main.js (94%) rename {stream/js => static/js/stream}/main.js (100%) rename {js => static/js}/three.js (100%) rename {js => static/js}/three/DDSLoader.js (100%) rename {js => static/js}/three/MTLLoader.js (100%) rename {js => static/js}/three/OBJLoader.js (100%) rename {js => static/js}/three/OBJMTLLoader.js (100%) rename {js => static/js}/three/OrbitControls.js (100%) rename {js => static/js}/three/stats.min.js (100%) rename {js => static/js}/three/three.min.js (100%) delete mode 100755 stream/index.py delete mode 100644 templates/.htaccess delete mode 100644 templates/head.html delete mode 100644 templates/jsIncludes.html delete mode 100644 templates/page.html delete mode 100644 webtools/.htaccess delete mode 100755 webtools/Web.py delete mode 100644 webtools/__init__.py diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..4d7d667 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +3dinterface.no-ip.org diff --git a/HermiteTest/index.html b/HermiteTest/index.html index de5e12e..b24c4df 100644 --- a/HermiteTest/index.html +++ b/HermiteTest/index.html @@ -1,7 +1,11 @@ -
-

Hermite test

- -
-
-# -
+--- +layout: withjs +title: Hermite Test +extrajs: +--- +
+
+        
+
+
+ diff --git a/HermiteTest/index.py b/HermiteTest/index.py deleted file mode 100755 index f3cc931..0000000 --- a/HermiteTest/index.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -import sys -from webtools import Web - -def main(): - print('Content-type: text/html') - print() - - page = Web.Element(Web.ROOT_DIR + 'templates/page.html') - head = Web.Element(Web.ROOT_DIR + 'templates/head.html') - body = Web.Element(Web.ROOT_DIR + 'templates/body.html') - jsIncludes = Web.Element(Web.ROOT_DIR + 'templates/jsIncludes.html') - mainJs = Web.Element() - mainJs.open_string = ' ' - content = Web.Element('index.html') - - page.add_child(head) - page.add_child(body) - body.add_child(content) - body.add_child(jsIncludes) - jsIncludes.add_child(mainJs) - - page.print() - -if __name__ == '__main__': - main() diff --git a/README.md b/README.md deleted file mode 100644 index f0a126a..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# 3D Interface - -Various 3d interfaces based on Three.js diff --git a/templates/body.html b/_layouts/main.html similarity index 52% rename from templates/body.html rename to _layouts/main.html index 26c64c2..a90adb1 100644 --- a/templates/body.html +++ b/_layouts/main.html @@ -1,6 +1,14 @@ + + + + 3DUI - {{ page.title }} + + + +
-

Welcome ! Python powered

+

Welcome !

-# + {{ content }} + {{ page.extrajs }} + + diff --git a/_layouts/withjs.html b/_layouts/withjs.html new file mode 100644 index 0000000..3b3a8bc --- /dev/null +++ b/_layouts/withjs.html @@ -0,0 +1,23 @@ +--- +layout: main +--- +{{ content }} + + + + + + + + + + + + + + + + + + + diff --git a/bouncing/index.html b/bouncing/index.html index 7e56794..486918e 100644 --- a/bouncing/index.html +++ b/bouncing/index.html @@ -1,8 +1,13 @@ -
-

Bouncing cube

-

- Click on the cube to make it jump ! -

-
-# -
+--- +layout: withjs +title: Bouncing cube +extrajs: +--- +
+

Bouncing cube

+

+ Click on the cube to make it jump ! +

+
+
+ diff --git a/bouncing/index.py b/bouncing/index.py deleted file mode 100755 index cdb72a9..0000000 --- a/bouncing/index.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -import sys -from webtools import Web - -def main(): - print('Content-type: text/html') - print() - - page = Web.Element(Web.ROOT_DIR + 'templates/page.html') - head = Web.Element(Web.ROOT_DIR + 'templates/head.html') - body = Web.Element(Web.ROOT_DIR + 'templates/body.html') - jsIncludes = Web.Element(Web.ROOT_DIR + 'templates/jsIncludes.html') - mainJs = Web.Element() - mainJs.open_string = ' ' - content = Web.Element('index.html') - - page.add_child(head) - page.add_child(body) - body.add_child(content) - body.add_child(jsIncludes) - jsIncludes.add_child(mainJs) - - page.print() - -if __name__ == '__main__': - main() diff --git a/errors/403/index.html b/errors/403/index.html deleted file mode 100644 index 45ed43a..0000000 --- a/errors/403/index.html +++ /dev/null @@ -1,10 +0,0 @@ -
-

Error 403

-

- You're not supposed to be here :o -

-

- Please go back to the index or wherever you want... -

-# -
diff --git a/errors/403/index.py b/errors/403/index.py deleted file mode 100755 index 117f8db..0000000 --- a/errors/403/index.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -import sys -from webtools import Web - -def main(): - print('Content-type: text/html') - print() - - page = Web.Element(Web.ROOT_DIR + 'templates/page.html') - head = Web.Element(Web.ROOT_DIR + 'templates/head.html') - body = Web.Element(Web.ROOT_DIR + 'templates/body.html') - content = Web.Element('index.html') - - page.add_child(head) - page.add_child(body) - body.add_child(content) - - page.print() - -if __name__ == '__main__': - main() diff --git a/errors/404/index.html b/errors/404/index.html deleted file mode 100644 index 66c649b..0000000 --- a/errors/404/index.html +++ /dev/null @@ -1,10 +0,0 @@ -
-

Error 404

-

- The page you requested was not found... this is annoying :s -

-

- You can go back to the index or wherever you want... -

-# -
diff --git a/errors/404/index.py b/errors/404/index.py deleted file mode 100755 index 117f8db..0000000 --- a/errors/404/index.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -import sys -from webtools import Web - -def main(): - print('Content-type: text/html') - print() - - page = Web.Element(Web.ROOT_DIR + 'templates/page.html') - head = Web.Element(Web.ROOT_DIR + 'templates/head.html') - body = Web.Element(Web.ROOT_DIR + 'templates/body.html') - content = Web.Element('index.html') - - page.add_child(head) - page.add_child(body) - body.add_child(content) - - page.print() - -if __name__ == '__main__': - main() diff --git a/errors/500/index.html b/errors/500/index.html deleted file mode 100644 index 8993e0f..0000000 --- a/errors/500/index.html +++ /dev/null @@ -1,10 +0,0 @@ -
-

Error 500

-

- Wow, you crashed my website... :'( -

-

- You can go back to the index or wherever you want... (if it works...) -

-# -
diff --git a/errors/500/index.py b/errors/500/index.py deleted file mode 100755 index 117f8db..0000000 --- a/errors/500/index.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -import sys -from webtools import Web - -def main(): - print('Content-type: text/html') - print() - - page = Web.Element(Web.ROOT_DIR + 'templates/page.html') - head = Web.Element(Web.ROOT_DIR + 'templates/head.html') - body = Web.Element(Web.ROOT_DIR + 'templates/body.html') - content = Web.Element('index.html') - - page.add_child(head) - page.add_child(body) - body.add_child(content) - - page.print() - -if __name__ == '__main__': - main() diff --git a/img/python-powered.svg b/img/python-powered.svg deleted file mode 100644 index 39d0d51..0000000 --- a/img/python-powered.svg +++ /dev/null @@ -1,4571 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -@font-face{font-family:'Verdana';src:url("data:;base64,\ -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\ -ABUAFgAXABkAGwAcAAA=")} - - - - - - - - - - - - - - - - - - - - - - - - - 2006-06-28T15:19:32Z - 2006-06-28T15:19:32Z - Illustrator - - - - JPEG - 256 - 104 - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA -AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK -DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f -Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAaAEAAwER -AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA -AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB -UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE -1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ -qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy -obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp -0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo -+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 -FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqh4LeBogTGpJr -UlR44qv+rW/++k/4EYq76tb/AO+k/wCBGKu+rW/++k/4EYq76tb/AO+k/wCBGKu+rW/++k/4EYq7 -6tb/AO+k/wCBGKu+rW/++k/4EYq76tb/AO+k/wCBGKu+rW/++k/4EYqp3FvbiMUiT7afsj+cYqqf -Vrf/AH0n/AjFXfVrf/fSf8CMVd9Wt/8AfSf8CMVd9Wt/99J/wIxV31a3/wB9J/wIxV31a3/30n/A -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 -XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX/2Q== - - - - - - - image/svg+xml - - -image/svg+xml - - - - - - - - - - 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 -b0K/g9yXUqMGM2o2Qzw4WhHc7E6j93/R5M/ysabYaD1m9ak2WmLqPgI3ajDvjvXDTdTb9mvlRksF -5vHj3W5TbPTFOhspNQoyGTVb/652eioE/sgTL6VFXLnRss/8nEvGb5UbXRSvcaNIU9od60s7f71W -a/SJeE2UMsqNPtxl21/VVkvWKLSCm209/d6rEvinGRjkVBr9DBOt1cSt3Ojjz2L6FAmDTFYca/ve -PVNtdGmuO40qjTafiex4WpQ1ajBzAuLRfW1MttxZaNTnkS+aTTvU5hrt+eyyRWN/L3cduFHKemcr -bI+0THQcURokPzR7JxsrVPvzxwv9oFfe6GpuueUaXSecspEaP7sfdrbRVJO8x41CK7wodC1Xz3dG -1GhyVyrdu/mRxklZo85Y4TrINpogS26ZIHQt/I8dA7uV+0zRdGlb/pqWy25vhhpNyUe6pJk5z78p -n3wjD/xEuZ0mEa16cKO4FY7A13Om02B3VabbDm53qvBs+ZpHVd82q+T0Re0tSH6i0DFvVN+D6M1Y -VN7CHFicaU6vYX6YkOxtMEy2G5yEIZjVb1j+fvZ9/cZ9vfs2VLmPfqq+DVOOWkf2VqQYvP/ufllV -v6Ypy3tf9W3ZOUtQqm8N5nLvaRhTff903e8VVN6GC5ZC/HnFvh1a/yKyb5+dY045BYoNyeuo/H2v -WJ9xX+++fck4f5eqb1/NPa9R9lZKsdfPTPRW9euO+StkUn37s64sCqpvDebfFypVVX0//c3dfam9 -hR5WYwHVt0XKf/emTjFzf9arl9W+thgt958O1bdZ+qHHqFPMUqQS16Ta17SRMtmjKm8DBSJ76+DH -HLXFZG+hlUZ1leDepz1x2ftGJ++gpW/9rho2rllzLu12pIPrxVcrPfputFMThr69ixRMP9s2d5TT -YXbNvtVb8mX4XKcbDfMrFlJ042Hgz3aXH2Znar563Hr2bsVSLkqGjY9YmBkdpRhpdGVqr0bXy1fd -YDa62oOG0fZh36DfKsCEv2mju9QOiGYhbxQ2R3TVVw9Dv9NOsE/nv0FTKDKMux2UkbcrW+Fce/3Z -TcYW5HWm6LwJ4KHhebFM6XnmC9j0JnJNWW8rdxnGkTXjdYfMmQ+eihrlkK0VUS1nMIsl76Lpj+be -GsEM65lqvzrKOcxx41zkMdWSwRt9YwFbLFSzt3SMBVltvlhbR43mp/FDV0c5tKX3dY3Fet/zjPga -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 -PXf+Cylwi7g8HC7tlUP/F1gVhvo= - - - \ No newline at end of file diff --git a/index.html b/index.html index 77ea6af..e155b66 100644 --- a/index.html +++ b/index.html @@ -1,43 +1,47 @@ -
-

Index

- -# -
+--- +layout: main +title: Index +--- +
+

Index

+ +
+ diff --git a/index.py b/index.py deleted file mode 100755 index 7b0dfda..0000000 --- a/index.py +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -import sys -from webtools import Web - -Web.render('index.html') - -print('download') diff --git a/multisphere/index.html b/multisphere/index.html index d9ca092..744652f 100644 --- a/multisphere/index.html +++ b/multisphere/index.html @@ -1,11 +1,13 @@ -
-

Multiresolution sphere

-

- This is the first test of multi-resolution. In fact, it's not - really one multi-resolution sphere but many spheres with - different resolutions. You can change resolution by clicking on - the canvas. -

-
-# -
+--- +layout: withjs +title: Multi-sphere +extrajs: +--- +

Multiresolution sphere

+

+ This is the first test of multi-resolution. In fact, it's not + really one multi-resolution sphere but many spheres with + different resolutions. You can change resolution by clicking on + the canvas. +

+
diff --git a/multisphere/index.py b/multisphere/index.py deleted file mode 100755 index f8b363a..0000000 --- a/multisphere/index.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -import sys -from webtools import Web - -def main(): - print('Content-type: text/html') - print() - - page = Web.Element(Web.ROOT_DIR + 'templates/page.html') - head = Web.Element(Web.ROOT_DIR + 'templates/head.html') - body = Web.Element(Web.ROOT_DIR + 'templates/body.html') - jsIncludes = Web.Element(Web.ROOT_DIR + 'templates/jsIncludes.html') - mainJs = Web.Element() - mainJs.open_string = ' ' - content = Web.Element('index.html') - - page.add_child(head) - page.add_child(body) - body.add_child(content) - body.add_child(jsIncludes) - jsIncludes.add_child(mainJs) - - page.print() - -if __name__ == '__main__': - main() diff --git a/prototype/index.html b/prototype/index.html index cb38b69..63eb9f3 100644 --- a/prototype/index.html +++ b/prototype/index.html @@ -1,27 +1,32 @@ -
-

3D Interface

-

- This is the prototype of a 3D interface. You can move the - camera with the arrow keys of your keyboard, and change the - angle of the camera by dragging and dropping the scene around - it (you can also use your numpad, 2 to look lower, 8 to look - higher, 4 to look on the left and 6 to look on the right, but - if you're more comfortable with non-numpad keys, you can also - use i for up, j for left, k for down, and l for right). -

-

- Recommended views are displayed with a transparent red arrow. - They disappear when you come closer to them, and you can - automatically move to them by clicking on them. You can reset - the camera at anytime by clicking on the reset button. -

- - - - - - - -
-# -
+--- +title: Prototype +layout: withjs +extrajs: +--- +
+

3D Interface

+

+ This is the prototype of a 3D interface. You can move the + camera with the arrow keys of your keyboard, and change the + angle of the camera by dragging and dropping the scene around + it (you can also use your numpad, 2 to look lower, 8 to look + higher, 4 to look on the left and 6 to look on the right, but + if you're more comfortable with non-numpad keys, you can also + use i for up, j for left, k for down, and l for right). +

+

+ Recommended views are displayed with a transparent red arrow. + They disappear when you come closer to them, and you can + automatically move to them by clicking on them. You can reset + the camera at anytime by clicking on the reset button. +

+ + + + + + + +
+
+ diff --git a/prototype/index.py b/prototype/index.py deleted file mode 100755 index 3d11145..0000000 --- a/prototype/index.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -import sys -from webtools import Web - -def main(): - print('Content-type: text/html') - print() - - page = Web.Element(Web.ROOT_DIR + 'templates/page.html') - head = Web.Element(Web.ROOT_DIR + 'templates/head.html') - body = Web.Element(Web.ROOT_DIR + 'templates/body.html') - jsIncludes = Web.Element(Web.ROOT_DIR + 'templates/jsIncludes.html') - - mainJs = Web.Element() - mainJs.open_string = ' ' - content = Web.Element('index.html') - - staticPath = Web.Element() - staticPath.open_string = ' ' - - page.add_child(head) - page.add_child(body) - body.add_child(content) - body.add_child(jsIncludes) - jsIncludes.add_child(staticPath) - jsIncludes.add_child(mainJs) - - page.print() - -if __name__ == '__main__': - main() diff --git a/prototype/js/gen.py b/prototype/js/gen.py deleted file mode 100755 index 21e9f50..0000000 --- a/prototype/js/gen.py +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/python3 - -import random - -N = 4; - -def rand_vector(): - print('new THREE.Vector3(', end='') - print(random.uniform(-500,500), end='') - print(',', end='') - print(random.uniform(-500,500), end='') - print(',', end='') - print(random.uniform(0,500), end='') - print(')', end='') - -def rand_color(): - chars = [ str(x) for x in range(10)] + [chr(x) for x in range(ord('a'), ord('f') + 1)] - print('0x', end='') - for i in range(6): - print(chars[random.randint(0, len(chars)-1)],end=''); - -def gen_positions(): - print('var positions = [') - for i in range(N): - print(' ', end='') - rand_vector() - print(',') - print(' ', end='') - gen_vector() - print('\n];') - -def gen_colors(): - print('var colors = [') - for i in range(N): - print(' ', end='') - rand_color() - print(',') - print(' ', end='') - rand_color() - print('\n];') - - -def main(): - gen_colors() - -if __name__ == '__main__': - main() - - diff --git a/css/style.css b/static/css/style.css similarity index 100% rename from css/style.css rename to static/css/style.css diff --git a/data/castle/154B175A_c.bmp b/static/data/castle/154B175A_c.bmp similarity index 100% rename from data/castle/154B175A_c.bmp rename to static/data/castle/154B175A_c.bmp diff --git a/data/castle/16CBEF1C_c.bmp b/static/data/castle/16CBEF1C_c.bmp similarity index 100% rename from data/castle/16CBEF1C_c.bmp rename to static/data/castle/16CBEF1C_c.bmp diff --git a/data/castle/1916F8C5_c.bmp b/static/data/castle/1916F8C5_c.bmp similarity index 100% rename from data/castle/1916F8C5_c.bmp rename to static/data/castle/1916F8C5_c.bmp diff --git a/data/castle/19D5421D_c.bmp b/static/data/castle/19D5421D_c.bmp similarity index 100% rename from data/castle/19D5421D_c.bmp rename to static/data/castle/19D5421D_c.bmp diff --git a/data/castle/1D0CA178_c.bmp b/static/data/castle/1D0CA178_c.bmp similarity index 100% rename from data/castle/1D0CA178_c.bmp rename to static/data/castle/1D0CA178_c.bmp diff --git a/data/castle/1FEE462_c.bmp b/static/data/castle/1FEE462_c.bmp similarity index 100% rename from data/castle/1FEE462_c.bmp rename to static/data/castle/1FEE462_c.bmp diff --git a/data/castle/20EF7F7C_c.bmp b/static/data/castle/20EF7F7C_c.bmp similarity index 100% rename from data/castle/20EF7F7C_c.bmp rename to static/data/castle/20EF7F7C_c.bmp diff --git a/data/castle/3AB7B2BC_c.bmp b/static/data/castle/3AB7B2BC_c.bmp similarity index 100% rename from data/castle/3AB7B2BC_c.bmp rename to static/data/castle/3AB7B2BC_c.bmp diff --git a/data/castle/3C6851DA_c.bmp b/static/data/castle/3C6851DA_c.bmp similarity index 100% rename from data/castle/3C6851DA_c.bmp rename to static/data/castle/3C6851DA_c.bmp diff --git a/data/castle/49254A53_c.bmp b/static/data/castle/49254A53_c.bmp similarity index 100% rename from data/castle/49254A53_c.bmp rename to static/data/castle/49254A53_c.bmp diff --git a/data/castle/5EDC83BD_c.bmp b/static/data/castle/5EDC83BD_c.bmp similarity index 100% rename from data/castle/5EDC83BD_c.bmp rename to static/data/castle/5EDC83BD_c.bmp diff --git a/data/castle/60A64656_c.bmp b/static/data/castle/60A64656_c.bmp similarity index 100% rename from data/castle/60A64656_c.bmp rename to static/data/castle/60A64656_c.bmp diff --git a/data/castle/61BE951F_c.bmp b/static/data/castle/61BE951F_c.bmp similarity index 100% rename from data/castle/61BE951F_c.bmp rename to static/data/castle/61BE951F_c.bmp diff --git a/data/castle/6AE21407_c.bmp b/static/data/castle/6AE21407_c.bmp similarity index 100% rename from data/castle/6AE21407_c.bmp rename to static/data/castle/6AE21407_c.bmp diff --git a/data/castle/6DAF90F6_c.bmp b/static/data/castle/6DAF90F6_c.bmp similarity index 100% rename from data/castle/6DAF90F6_c.bmp rename to static/data/castle/6DAF90F6_c.bmp diff --git a/data/castle/7EB1C6A1_c.bmp b/static/data/castle/7EB1C6A1_c.bmp similarity index 100% rename from data/castle/7EB1C6A1_c.bmp rename to static/data/castle/7EB1C6A1_c.bmp diff --git a/data/castle/Castle.zip b/static/data/castle/Castle.zip similarity index 100% rename from data/castle/Castle.zip rename to static/data/castle/Castle.zip diff --git a/data/castle/Masks/148EB7B9_a.bmp b/static/data/castle/Masks/148EB7B9_a.bmp similarity index 100% rename from data/castle/Masks/148EB7B9_a.bmp rename to static/data/castle/Masks/148EB7B9_a.bmp diff --git a/data/castle/Masks/1FEE462_a.bmp b/static/data/castle/Masks/1FEE462_a.bmp similarity index 100% rename from data/castle/Masks/1FEE462_a.bmp rename to static/data/castle/Masks/1FEE462_a.bmp diff --git a/data/castle/Masks/3C6851DA_a.bmp b/static/data/castle/Masks/3C6851DA_a.bmp similarity index 100% rename from data/castle/Masks/3C6851DA_a.bmp rename to static/data/castle/Masks/3C6851DA_a.bmp diff --git a/data/castle/Masks/5EDC83BD_a.bmp b/static/data/castle/Masks/5EDC83BD_a.bmp similarity index 100% rename from data/castle/Masks/5EDC83BD_a.bmp rename to static/data/castle/Masks/5EDC83BD_a.bmp diff --git a/data/castle/Masks/7EB1C6A1_a.bmp b/static/data/castle/Masks/7EB1C6A1_a.bmp similarity index 100% rename from data/castle/Masks/7EB1C6A1_a.bmp rename to static/data/castle/Masks/7EB1C6A1_a.bmp diff --git a/data/castle/Masks/Thumbs.db b/static/data/castle/Masks/Thumbs.db similarity index 100% rename from data/castle/Masks/Thumbs.db rename to static/data/castle/Masks/Thumbs.db diff --git a/data/castle/Readme.txt b/static/data/castle/Readme.txt similarity index 100% rename from data/castle/Readme.txt rename to static/data/castle/Readme.txt diff --git a/data/castle/Sky texture/3FA1757A_c.bmp b/static/data/castle/Sky texture/3FA1757A_c.bmp similarity index 100% rename from data/castle/Sky texture/3FA1757A_c.bmp rename to static/data/castle/Sky texture/3FA1757A_c.bmp diff --git a/data/castle/Sky texture/401FFEF3_c.bmp b/static/data/castle/Sky texture/401FFEF3_c.bmp similarity index 100% rename from data/castle/Sky texture/401FFEF3_c.bmp rename to static/data/castle/Sky texture/401FFEF3_c.bmp diff --git a/data/castle/Sky texture/41BAF66_c.bmp b/static/data/castle/Sky texture/41BAF66_c.bmp similarity index 100% rename from data/castle/Sky texture/41BAF66_c.bmp rename to static/data/castle/Sky texture/41BAF66_c.bmp diff --git a/data/castle/Sky texture/452E0376_c.bmp b/static/data/castle/Sky texture/452E0376_c.bmp similarity index 100% rename from data/castle/Sky texture/452E0376_c.bmp rename to static/data/castle/Sky texture/452E0376_c.bmp diff --git a/data/castle/Sky texture/64B5A924_c.bmp b/static/data/castle/Sky texture/64B5A924_c.bmp similarity index 100% rename from data/castle/Sky texture/64B5A924_c.bmp rename to static/data/castle/Sky texture/64B5A924_c.bmp diff --git a/data/castle/Sky texture/73058137_c.bmp b/static/data/castle/Sky texture/73058137_c.bmp similarity index 100% rename from data/castle/Sky texture/73058137_c.bmp rename to static/data/castle/Sky texture/73058137_c.bmp diff --git a/data/castle/Sky texture/7A3E773_c.bmp b/static/data/castle/Sky texture/7A3E773_c.bmp similarity index 100% rename from data/castle/Sky texture/7A3E773_c.bmp rename to static/data/castle/Sky texture/7A3E773_c.bmp diff --git a/data/castle/Sky texture/823E4B9_c.bmp b/static/data/castle/Sky texture/823E4B9_c.bmp similarity index 100% rename from data/castle/Sky texture/823E4B9_c.bmp rename to static/data/castle/Sky texture/823E4B9_c.bmp diff --git a/data/castle/Sky texture/954754D_c.bmp b/static/data/castle/Sky texture/954754D_c.bmp similarity index 100% rename from data/castle/Sky texture/954754D_c.bmp rename to static/data/castle/Sky texture/954754D_c.bmp diff --git a/data/castle/Sky texture/Thumbs.db b/static/data/castle/Sky texture/Thumbs.db similarity index 100% rename from data/castle/Sky texture/Thumbs.db rename to static/data/castle/Sky texture/Thumbs.db diff --git a/data/castle/princess peaches castle (outside).mtl b/static/data/castle/princess peaches castle (outside).mtl similarity index 100% rename from data/castle/princess peaches castle (outside).mtl rename to static/data/castle/princess peaches castle (outside).mtl diff --git a/data/castle/princess peaches castle (outside).obj b/static/data/castle/princess peaches castle (outside).obj similarity index 100% rename from data/castle/princess peaches castle (outside).obj rename to static/data/castle/princess peaches castle (outside).obj diff --git a/data/castle/princess peaches castle (outside)_grp.png b/static/data/castle/princess peaches castle (outside)_grp.png similarity index 100% rename from data/castle/princess peaches castle (outside)_grp.png rename to static/data/castle/princess peaches castle (outside)_grp.png diff --git a/data/castle/tree texture and mask/1E114049_a.bmp b/static/data/castle/tree texture and mask/1E114049_a.bmp similarity index 100% rename from data/castle/tree texture and mask/1E114049_a.bmp rename to static/data/castle/tree texture and mask/1E114049_a.bmp diff --git a/data/castle/tree texture and mask/1E114049_c.bmp b/static/data/castle/tree texture and mask/1E114049_c.bmp similarity index 100% rename from data/castle/tree texture and mask/1E114049_c.bmp rename to static/data/castle/tree texture and mask/1E114049_c.bmp diff --git a/data/castle/tree texture and mask/Thumbs.db b/static/data/castle/tree texture and mask/Thumbs.db similarity index 100% rename from data/castle/tree texture and mask/Thumbs.db rename to static/data/castle/tree texture and mask/Thumbs.db diff --git a/data/first/3C96C6A_c.bmp b/static/data/first/3C96C6A_c.bmp similarity index 100% rename from data/first/3C96C6A_c.bmp rename to static/data/first/3C96C6A_c.bmp diff --git a/data/first/48F5B267_c.bmp b/static/data/first/48F5B267_c.bmp similarity index 100% rename from data/first/48F5B267_c.bmp rename to static/data/first/48F5B267_c.bmp diff --git a/data/first/5C3492AB_c.png b/static/data/first/5C3492AB_c.png similarity index 100% rename from data/first/5C3492AB_c.png rename to static/data/first/5C3492AB_c.png diff --git a/data/first/6B88A261_c.bmp b/static/data/first/6B88A261_c.bmp similarity index 100% rename from data/first/6B88A261_c.bmp rename to static/data/first/6B88A261_c.bmp diff --git a/data/first/6E3E7EFA_c.bmp b/static/data/first/6E3E7EFA_c.bmp similarity index 100% rename from data/first/6E3E7EFA_c.bmp rename to static/data/first/6E3E7EFA_c.bmp diff --git a/data/first/777F0E0B_c.png b/static/data/first/777F0E0B_c.png similarity index 100% rename from data/first/777F0E0B_c.png rename to static/data/first/777F0E0B_c.png diff --git a/data/first/77928504_c.png b/static/data/first/77928504_c.png similarity index 100% rename from data/first/77928504_c.png rename to static/data/first/77928504_c.png diff --git a/data/first/7A7501A5_c.bmp b/static/data/first/7A7501A5_c.bmp similarity index 100% rename from data/first/7A7501A5_c.bmp rename to static/data/first/7A7501A5_c.bmp diff --git a/data/first/7F0DBBD7_c.bmp b/static/data/first/7F0DBBD7_c.bmp similarity index 100% rename from data/first/7F0DBBD7_c.bmp rename to static/data/first/7F0DBBD7_c.bmp diff --git a/data/first/Floor 1.mtl b/static/data/first/Floor 1.mtl similarity index 100% rename from data/first/Floor 1.mtl rename to static/data/first/Floor 1.mtl diff --git a/data/first/Floor 1.obj b/static/data/first/Floor 1.obj similarity index 100% rename from data/first/Floor 1.obj rename to static/data/first/Floor 1.obj diff --git a/data/first/Sky_grp.png b/static/data/first/Sky_grp.png similarity index 100% rename from data/first/Sky_grp.png rename to static/data/first/Sky_grp.png diff --git a/data/first/readme.txt b/static/data/first/readme.txt similarity index 100% rename from data/first/readme.txt rename to static/data/first/readme.txt diff --git a/data/first/toto.zip b/static/data/first/toto.zip similarity index 100% rename from data/first/toto.zip rename to static/data/first/toto.zip diff --git a/data/spheres/1.obj b/static/data/spheres/1.obj similarity index 100% rename from data/spheres/1.obj rename to static/data/spheres/1.obj diff --git a/data/spheres/10.obj b/static/data/spheres/10.obj similarity index 100% rename from data/spheres/10.obj rename to static/data/spheres/10.obj diff --git a/data/spheres/11.obj b/static/data/spheres/11.obj similarity index 100% rename from data/spheres/11.obj rename to static/data/spheres/11.obj diff --git a/data/spheres/12.obj b/static/data/spheres/12.obj similarity index 100% rename from data/spheres/12.obj rename to static/data/spheres/12.obj diff --git a/data/spheres/13.obj b/static/data/spheres/13.obj similarity index 100% rename from data/spheres/13.obj rename to static/data/spheres/13.obj diff --git a/data/spheres/14.obj b/static/data/spheres/14.obj similarity index 100% rename from data/spheres/14.obj rename to static/data/spheres/14.obj diff --git a/data/spheres/15.obj b/static/data/spheres/15.obj similarity index 100% rename from data/spheres/15.obj rename to static/data/spheres/15.obj diff --git a/data/spheres/16.obj b/static/data/spheres/16.obj similarity index 100% rename from data/spheres/16.obj rename to static/data/spheres/16.obj diff --git a/data/spheres/17.obj b/static/data/spheres/17.obj similarity index 100% rename from data/spheres/17.obj rename to static/data/spheres/17.obj diff --git a/data/spheres/18.obj b/static/data/spheres/18.obj similarity index 100% rename from data/spheres/18.obj rename to static/data/spheres/18.obj diff --git a/data/spheres/19.obj b/static/data/spheres/19.obj similarity index 100% rename from data/spheres/19.obj rename to static/data/spheres/19.obj diff --git a/data/spheres/2.obj b/static/data/spheres/2.obj similarity index 100% rename from data/spheres/2.obj rename to static/data/spheres/2.obj diff --git a/data/spheres/20.obj b/static/data/spheres/20.obj similarity index 100% rename from data/spheres/20.obj rename to static/data/spheres/20.obj diff --git a/data/spheres/21.obj b/static/data/spheres/21.obj similarity index 100% rename from data/spheres/21.obj rename to static/data/spheres/21.obj diff --git a/data/spheres/22.obj b/static/data/spheres/22.obj similarity index 100% rename from data/spheres/22.obj rename to static/data/spheres/22.obj diff --git a/data/spheres/23.obj b/static/data/spheres/23.obj similarity index 100% rename from data/spheres/23.obj rename to static/data/spheres/23.obj diff --git a/data/spheres/24.obj b/static/data/spheres/24.obj similarity index 100% rename from data/spheres/24.obj rename to static/data/spheres/24.obj diff --git a/data/spheres/25.obj b/static/data/spheres/25.obj similarity index 100% rename from data/spheres/25.obj rename to static/data/spheres/25.obj diff --git a/data/spheres/3.obj b/static/data/spheres/3.obj similarity index 100% rename from data/spheres/3.obj rename to static/data/spheres/3.obj diff --git a/data/spheres/4.obj b/static/data/spheres/4.obj similarity index 100% rename from data/spheres/4.obj rename to static/data/spheres/4.obj diff --git a/data/spheres/5.obj b/static/data/spheres/5.obj similarity index 100% rename from data/spheres/5.obj rename to static/data/spheres/5.obj diff --git a/data/spheres/6.obj b/static/data/spheres/6.obj similarity index 100% rename from data/spheres/6.obj rename to static/data/spheres/6.obj diff --git a/data/spheres/7.obj b/static/data/spheres/7.obj similarity index 100% rename from data/spheres/7.obj rename to static/data/spheres/7.obj diff --git a/data/spheres/8.obj b/static/data/spheres/8.obj similarity index 100% rename from data/spheres/8.obj rename to static/data/spheres/8.obj diff --git a/data/spheres/9.obj b/static/data/spheres/9.obj similarity index 100% rename from data/spheres/9.obj rename to static/data/spheres/9.obj diff --git a/js/BouncingCube.js b/static/js/BouncingCube.js similarity index 100% rename from js/BouncingCube.js rename to static/js/BouncingCube.js diff --git a/js/BufferGeometryToGeometry.js b/static/js/BufferGeometryToGeometry.js similarity index 100% rename from js/BufferGeometryToGeometry.js rename to static/js/BufferGeometryToGeometry.js diff --git a/js/Camera.js b/static/js/Camera.js similarity index 100% rename from js/Camera.js rename to static/js/Camera.js diff --git a/js/CameraContainer.js b/static/js/CameraContainer.js similarity index 100% rename from js/CameraContainer.js rename to static/js/CameraContainer.js diff --git a/js/Cube.js b/static/js/Cube.js similarity index 100% rename from js/Cube.js rename to static/js/Cube.js diff --git a/js/FixedCamera.js b/static/js/FixedCamera.js similarity index 99% rename from js/FixedCamera.js rename to static/js/FixedCamera.js index f95fb0d..47b7530 100644 --- a/js/FixedCamera.js +++ b/static/js/FixedCamera.js @@ -160,7 +160,7 @@ FixedCamera.prototype.regenerateArrow = function(mainCamera) { var up = this.up.clone(); var point; var deriv; - var limit = this.fullArrow ? 0.1 : 0.2; + var limit = this.fullArrow ? 0.1 : 0.3; // for (var i = this.fullArrow ? 0 : 0.5; i <= 1.001; i += 0.05) { for (var i = 1; i > limit; i -= 0.01) { diff --git a/js/Hermite.js b/static/js/Hermite.js similarity index 100% rename from js/Hermite.js rename to static/js/Hermite.js diff --git a/HermiteTest/js/HermiteTest.js b/static/js/HermiteTest/HermiteTest.js similarity index 100% rename from HermiteTest/js/HermiteTest.js rename to static/js/HermiteTest/HermiteTest.js diff --git a/js/PointerCamera.js b/static/js/PointerCamera.js similarity index 100% rename from js/PointerCamera.js rename to static/js/PointerCamera.js diff --git a/js/ProgressiveSphere.js b/static/js/ProgressiveSphere.js similarity index 100% rename from js/ProgressiveSphere.js rename to static/js/ProgressiveSphere.js diff --git a/js/Tools.js b/static/js/Tools.js similarity index 100% rename from js/Tools.js rename to static/js/Tools.js diff --git a/js/ToolsTest.js b/static/js/ToolsTest.js similarity index 100% rename from js/ToolsTest.js rename to static/js/ToolsTest.js diff --git a/bouncing/js/BouncingMain.js b/static/js/bouncing/BouncingMain.js similarity index 100% rename from bouncing/js/BouncingMain.js rename to static/js/bouncing/BouncingMain.js diff --git a/multisphere/js/MultiSphere.js b/static/js/multisphere/MultiSphere.js similarity index 97% rename from multisphere/js/MultiSphere.js rename to static/js/multisphere/MultiSphere.js index e75cc4c..4e3c2c1 100644 --- a/multisphere/js/MultiSphere.js +++ b/static/js/multisphere/MultiSphere.js @@ -52,7 +52,7 @@ function init() { // Capture of i // I am pretty good (function(i) { - loader.load('/data/spheres/' + (i+1) + '.obj', function (object) { + loader.load(static_path + 'data/spheres/' + (i+1) + '.obj', function (object) { object.traverse(function (child) { if (child instanceof THREE.Mesh ) { child.material.color.setHex(0xff0000); diff --git a/prototype/js/main.js b/static/js/prototype/main.js similarity index 94% rename from prototype/js/main.js rename to static/js/prototype/main.js index c3f9fe0..80bd2e5 100644 --- a/prototype/js/main.js +++ b/static/js/prototype/main.js @@ -59,7 +59,7 @@ function init() { canvas.width = container_size.width; canvas.height = container_size.height; ctx2d = canvas.getContext('2d'); - ctx2d.lineWidth = 2; + ctx2d.lineWidth = 1; // on initialise la scène scene = new THREE.Scene(); @@ -116,6 +116,7 @@ function init() { object.geometry.mergeVertices(); object.geometry.computeVertexNormals(); object.material.side = THREE.DoubleSide; + object.raycastable = true; if (object.material.name === 'Material.103_princess_peaches_cast') { object.material.transparent = true; } @@ -141,6 +142,7 @@ function init() { object.material.side = THREE.DoubleSide; object.geometry.mergeVertices(); object.geometry.computeVertexNormals(); + object.raycastable = true; if (object.material.name === 'Material.054_777F0E0B_c.bmp' || object.material.name === 'Material.061_5C3492AB_c.bmp' ) { object.material.transparent = true; @@ -273,6 +275,7 @@ function render() { // Draw border var can_bottom = container.offsetHeight - bottom - height - 1; + ctx2d.strokeStyle = "#ffffff"; ctx2d.beginPath(); ctx2d.moveTo(left-1, can_bottom); ctx2d.lineTo(left-1, can_bottom + height); @@ -281,6 +284,15 @@ function render() { ctx2d.closePath(); ctx2d.stroke(); + ctx2d.strokeStyle = "#000000"; + ctx2d.beginPath(); + ctx2d.moveTo(left, can_bottom + 1); + ctx2d.lineTo(left, can_bottom + height - 1); + ctx2d.lineTo(left + width - 2 , can_bottom + height-1); + ctx2d.lineTo(left + width - 2, can_bottom+1); + ctx2d.closePath(); + ctx2d.stroke(); + // Do render in previsualization prev.camera.look(); renderer.setScissor(left, bottom, width, height); @@ -363,12 +375,9 @@ function pointedCamera(event) { for (i in intersects) { if (intersects[i].object.raycastable) { if ((intersects[i].distance > 0.5 && minDistance === undefined) || (intersects[i].distance < minDistance )) { - // We will not consider a line as clickable - if (! (intersects[i].object instanceof THREE.Line)) { - if (!(intersects[i].object instanceof THREE.Mesh && intersects[i].object.material.opacity < 0.1)) { - minDistance = intersects[i].distance; - bestIndex = i; - } + if (!(intersects[i].object instanceof THREE.Mesh && intersects[i].object.material.opacity < 0.1)) { + minDistance = intersects[i].distance; + bestIndex = i; } } } diff --git a/stream/js/main.js b/static/js/stream/main.js similarity index 100% rename from stream/js/main.js rename to static/js/stream/main.js diff --git a/js/three.js b/static/js/three.js similarity index 100% rename from js/three.js rename to static/js/three.js diff --git a/js/three/DDSLoader.js b/static/js/three/DDSLoader.js similarity index 100% rename from js/three/DDSLoader.js rename to static/js/three/DDSLoader.js diff --git a/js/three/MTLLoader.js b/static/js/three/MTLLoader.js similarity index 100% rename from js/three/MTLLoader.js rename to static/js/three/MTLLoader.js diff --git a/js/three/OBJLoader.js b/static/js/three/OBJLoader.js similarity index 100% rename from js/three/OBJLoader.js rename to static/js/three/OBJLoader.js diff --git a/js/three/OBJMTLLoader.js b/static/js/three/OBJMTLLoader.js similarity index 100% rename from js/three/OBJMTLLoader.js rename to static/js/three/OBJMTLLoader.js diff --git a/js/three/OrbitControls.js b/static/js/three/OrbitControls.js similarity index 100% rename from js/three/OrbitControls.js rename to static/js/three/OrbitControls.js diff --git a/js/three/stats.min.js b/static/js/three/stats.min.js similarity index 100% rename from js/three/stats.min.js rename to static/js/three/stats.min.js diff --git a/js/three/three.min.js b/static/js/three/three.min.js similarity index 100% rename from js/three/three.min.js rename to static/js/three/three.min.js diff --git a/stream/index.html b/stream/index.html index 6fa0ca3..9ce504e 100644 --- a/stream/index.html +++ b/stream/index.html @@ -1,17 +1,23 @@ -
-

Streaming simulator

-

- In fact, it's not really streaming. The sphere is fully - preloaded and then, a mesh is created and vertices and faces - are dynamically added to this mesh as time goes by. -

-

- You can try with a different resolution (between 1 and 25) -

- Resolution : - -
-

-
-# -
+--- +title: Streaming simulator +layout: withjs +extrajs: + + +--- +
+

Streaming simulator

+

+ In fact, it's not really streaming. The sphere is fully + preloaded and then, a mesh is created and vertices and faces + are dynamically added to this mesh as time goes by. +

+
+
+ diff --git a/stream/index.py b/stream/index.py deleted file mode 100755 index 2f1550a..0000000 --- a/stream/index.py +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -import sys -import cgi -from webtools import Web - -def main(): - print('Content-type: text/html') - print() - - page = Web.Element(Web.ROOT_DIR + 'templates/page.html') - head = Web.Element(Web.ROOT_DIR + 'templates/head.html') - body = Web.Element(Web.ROOT_DIR + 'templates/body.html') - jsIncludes = Web.Element(Web.ROOT_DIR + 'templates/jsIncludes.html') - - # Parse parameter res - res = None - try: - parameters = cgi.FieldStorage() - res = int(cgi.escape(parameters.getvalue('res'))) - if res < 1 or res > 25: - raise IndexError('res must be between 1 and 25') - except: - res = 5 - - mainJs = Web.Element() - mainJs.open_string = """\ - - \ -""" - content = Web.Element('index.html') - - page.add_child(head) - page.add_child(body) - body.add_child(content) - body.add_child(jsIncludes) - jsIncludes.add_child(mainJs) - - page.print({'res' : res}) - -if __name__ == '__main__': - main() diff --git a/templates/.htaccess b/templates/.htaccess deleted file mode 100644 index 3a42882..0000000 --- a/templates/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all diff --git a/templates/head.html b/templates/head.html deleted file mode 100644 index f7bdd50..0000000 --- a/templates/head.html +++ /dev/null @@ -1,7 +0,0 @@ - - 3DUI - - - -# - diff --git a/templates/jsIncludes.html b/templates/jsIncludes.html deleted file mode 100644 index 3273255..0000000 --- a/templates/jsIncludes.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - -# diff --git a/templates/page.html b/templates/page.html deleted file mode 100644 index 185c5b7..0000000 --- a/templates/page.html +++ /dev/null @@ -1,4 +0,0 @@ - - -# - diff --git a/webtools/.htaccess b/webtools/.htaccess deleted file mode 100644 index 3a42882..0000000 --- a/webtools/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all diff --git a/webtools/Web.py b/webtools/Web.py deleted file mode 100755 index ab9d11c..0000000 --- a/webtools/Web.py +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -import sys -import os - -# ROOT_DIR = '/'.join(__file__.split('/')[:-2]) + '/' -ROOT_DIR = '/home/thomas/stage/javascript/master/' - - -class Element: - def __init__(self, filename = None): - self.children = [] - self.open_string = '' - self.close_string = '' - if filename: - self.load(filename) - - def load(self, filename): - with open(filename, 'r') as f: - first_part = True - for line in f: - if line[0] == '#': - first_part = False - continue - if first_part: - self.open_string += line - else: - self.close_string += line - self.open_string = self.open_string[:-1] - self.close_string = self.close_string[:-1] - - def open(self, format = {}): - print(self.open_string % format) - - def close(self, format = {}): - print(self.close_string % format) - - def add_child(self, child): - self.children.append(child) - - def print(self, format = {}): - self.open(format) - for i in self.children: - i.print(format) - self.close(format) - -def render(filename): - print('Content-type: text/html') - print() - - page = Element(ROOT_DIR + 'templates/page.html') - head = Element(ROOT_DIR + 'templates/head.html') - body = Element(ROOT_DIR + 'templates/body.html') - content = Element(filename) - - page.add_child(head) - page.add_child(body) - body.add_child(content) - - page.print() diff --git a/webtools/__init__.py b/webtools/__init__.py deleted file mode 100644 index e69de29..0000000