|
From: <ma...@us...> - 2011-12-09 10:31:57
|
Revision: 555
http://openautomation.svn.sourceforge.net/openautomation/?rev=555&view=rev
Author: mayerch
Date: 2011-12-09 10:31:43 +0000 (Fri, 09 Dec 2011)
Log Message:
-----------
Move from old SVG implementation to WebGL using Three.js. Also moving towards jQuery to make things easier.
This is still much work in progress and the first working version. It's still needing lots of polishing to reach a similar state it was before with the SVG implementation.
Modified Paths:
--------------
JSFloorPlan/trunk/index.html
JSFloorPlan/trunk/jsfloorplan.js
JSFloorPlan/trunk/jsfloorplan_example_helper.js
Added Paths:
-----------
JSFloorPlan/trunk/css/
JSFloorPlan/trunk/css/ui-lightness/
JSFloorPlan/trunk/css/ui-lightness/images/
JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_222222_256x240.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_228ef1_256x240.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_ffffff_256x240.png
JSFloorPlan/trunk/css/ui-lightness/jquery-ui-1.8.16.custom.css
JSFloorPlan/trunk/lib/
JSFloorPlan/trunk/lib/Three.js
JSFloorPlan/trunk/lib/jquery-1.7.1.min.js
JSFloorPlan/trunk/lib/jquery-ui-1.8.16.custom.min.js
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_222222_256x240.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_222222_256x240.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_228ef1_256x240.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_228ef1_256x240.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_ffffff_256x240.png
===================================================================
(Binary files differ)
Property changes on: JSFloorPlan/trunk/css/ui-lightness/images/ui-icons_ffffff_256x240.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: JSFloorPlan/trunk/css/ui-lightness/jquery-ui-1.8.16.custom.css
===================================================================
--- JSFloorPlan/trunk/css/ui-lightness/jquery-ui-1.8.16.custom.css (rev 0)
+++ JSFloorPlan/trunk/css/ui-lightness/jquery-ui-1.8.16.custom.css 2011-12-09 10:31:43 UTC (rev 555)
@@ -0,0 +1,568 @@
+/*
+ * jQuery UI CSS Framework 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
+.ui-widget-content a { color: #333333; }
+.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
+.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
+.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
+ * jQuery UI Resizable 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; }
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
+.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.ui-accordion .ui-accordion-li-fix { display: inline; }
+.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.ui-autocomplete { position: absolute; cursor: default; }
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.16
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.ui-menu {
+ list-style:none;
+ padding: 2px;
+ margin: 0;
+ display:block;
+ float: left;
+}
+.ui-menu .ui-menu {
+ margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+ margin:0;
+ padding: 0;
+ zoom: 1;
+ float: left;
+ clear: left;
+ width: 100%;
+}
+.ui-menu .ui-menu-item a {
+ text-decoration:none;
+ display:block;
+ padding:.2em .4em;
+ line-height:1.5;
+ zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+ font-weight: normal;
+ margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
+.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.ui-button-icons-only { width: 3.4em; }
+button.ui-button-icons-only { width: 3.7em; }
+
+/*button text element */
+.ui-button .ui-button-text { display: block; line-height: 1.4; }
+.ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.ui-buttonset { margin-right: 7px; }
+.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.ui-slider { position: relative; text-align: left; }
+.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.ui-slider-vertical { width: .8em; height: 100px; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month,
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+ display: none; /*sorry for IE5*/
+ display/**/: block; /*sorry for IE5*/
+ position: absolute; /*must have*/
+ z-index: -1; /*must have*/
+ filter: mask(); /*must have*/
+ top: -4px; /*must have*/
+ left: -4px; /*must have*/
+ width: 200px; /*must have*/
+ height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.16
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.ui-progressbar { height:2em; text-align: left; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
Modified: JSFloorPlan/trunk/index.html
===================================================================
--- JSFloorPlan/trunk/index.html 2011-12-08 17:00:19 UTC (rev 554)
+++ JSFloorPlan/trunk/index.html 2011-12-09 10:31:43 UTC (rev 555)
@@ -3,12 +3,19 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:lang="de">
<head>
+ <meta charset="utf-8" />
+ <!--
<object id="AdobeSVG" classid="clsid:78156a80-c6a1-4bbf-8e6a-3cd390eeb4e2"></object>
<?import namespace="svg" implementation="#AdobeSVG"?>
+ -->
<title>JS Floor Plan</title>
<!-- -->
+<script src="lib/jquery-1.7.1.min.js" type="text/javascript"></script>
+<script src="lib/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script>
+<script src="lib/Three.js" type="text/javascript"></script>
<script src="jsfloorplan_example_helper.js" type="text/javascript"></script>
<script src="jsfloorplan.js" type="text/javascript"></script>
+<link rel="stylesheet" type="text/css" href="css/ui-lightness/jquery-ui-1.8.16.custom.css" />
<link rel="stylesheet" type="text/css" href="demo.css" />
<!-- -->
</head>
@@ -18,38 +25,20 @@
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<h2>Plan:</h2>
<!--
-<object id="top_level" data="generic_plan2.svg" width="600" height="300"
-type="image/svg+xml" name="object_name">ERROR: The browser does not support SVG!</object>
-->
-<!--
-<iframe src="generic_plan2.svg" width="300" height="100">
-</iframe>
- <svg:polygon points="10.0,10.0 10.0,200.0 200.0,200.0 200.0,10.0" style="stroke:black;stroke-width:5;" />
- <svg:polygon points="10.0,10.0 10.0,200.0 200.0,200.0 200.0,10.0" />
- <svg:g fill="black" fill-opacity=".5" transform="matrix(1 1.5 0 1 50 50)">
- <svg:g transform="matrix(1 1.5 0 1 50 50)">
- <svg:g style="stroke:black;stroke-width:5;stroke-width=length;" >
- </svg:g>
- <svg:image width="200" height="200" xlink:href="./textures/BodenGrau_1_3.jpg" transform="matrix(1 1.5 0 1 50 50)" />
- <svg:g stroke="black" stroke-width="5" >
- <svg:g>
- <svg:image width="200" height="200" xlink:href="./textures/BodenGrau_1_3.jpg" transform="matrix(1 1.5 0 1 50 50)" />
-<svg:g transform="translate(50,50)">
-<svg:image width="200" height="200" xlink:href="./textures/Wand.jpg" transform="matrix(1, 0, 0, 1, 0, 0)"/>
- </svg:g>
- </svg:g>
--->
+<div id="top_level" style="border:1px black;width:800px;height:400px">
+</div>
<table>
- <tr style="border: 1px black;"><td rowspan="2" style="border: 1px black;">
-<svg:svg width="800" height="400" id="top_level" style="border:1px black;">
-</svg:svg>
+ <tr style="border: 1px black;">
+ <td>
+ Rotation</td><td><div style="width:150px;" height="100" id="rollSlider"></div>
</td>
<td>
- Rotation</td><td><svg:svg width="150" height="100" id="rollSlider"></svg:svg>
+ Kippen</td><td><div style="width:150px;" height="100" id="tiltSlider"></div>
+ </td>
+ <td>
+ Entfernung</td><td><div style="width:150px;" height="100" id="distSlider"></div>
</td></tr>
- <tr><td>
- Kippen</td><td><svg:svg width="150" height="100" id="tiltSlider"></svg:svg>
- </td></tr>
</table>
<hr />
<h2>Status Infos:</h2>
Modified: JSFloorPlan/trunk/jsfloorplan.js
===================================================================
--- JSFloorPlan/trunk/jsfloorplan.js 2011-12-08 17:00:19 UTC (rev 554)
+++ JSFloorPlan/trunk/jsfloorplan.js 2011-12-09 10:31:43 UTC (rev 555)
@@ -27,7 +27,6 @@
// don't change anything below:
var SVG_NS ="http://www.w3.org/2000/svg";
var XLINK_NS ="http://www.w3.org/1999/xlink";
-var xmlDoc;
var ELEMENT_NODE = 1;
// calculate the distance between two cartesian 2D points
@@ -95,6 +94,7 @@
return element.setAttributeNS( XLINK_NS, attribute, value );
}
+/*
function newXMLHttpRequest()
{
try { return new XMLHttpRequest() } catch(e){}
@@ -115,7 +115,8 @@
try { return new ActiveXObject("Microsoft.XMLHTTP") } catch(e){}
return null;
};
-}
+}
+*/
/*******************************************************************/
/* IE compatability stuff ends here */
@@ -141,7 +142,7 @@
else if(httpRequest.responseXML.document == null)
{
// IE
- if (!isLocal)
+ if (!isLocal) documentElement
{
// HTTP failure
failure();
@@ -169,6 +170,7 @@
parseXMLFloorPlan();
*/
// code for IE
+ /*
if (window.ActiveXObject)
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
@@ -185,16 +187,10 @@
xmlDoc.async=false;
xmlDoc.onload = parseXMLFloorPlan;
xmlDoc.load("floorplan01.xml");
+ */
+ $.get('floorplan01.xml', parseXMLFloorPlan, 'xml');
+
}
-function failure()
-{
- alert("failure()");
-}
-function success( dom )
-{
- xmlDoc = dom;
- alert( xmlDoc );
-}
var floor;
var floorCount = -1;
@@ -207,8 +203,10 @@
var buildingProperties = new Object;
var imageCenter = new Object;
-function parseXMLFloorPlan()
+var noFloorplan = true;
+function parseXMLFloorPlan( xmlDoc )
{
+ noFloorplan = false;
// create the SVG node where all elements are collected in
//var plan = document.createElementNS( SVG_NS, "g" );
var plan = createSVGElement( "g" );
@@ -401,9 +399,9 @@
imageCenter.y = buildingProperties.y_center;
imageCenter.z = buildingProperties.z_max / 2;
- show25D( 35*Math.PI/180, 30*Math.PI/180, plan );
- document.getElementById( "top_level" ).appendChild( plan );
-
+ show3D( 35*Math.PI/180, 30*Math.PI/180, plan );
+ //document.getElementById( "top_level" ).appendChild( plan );
+
// clean up and save space
delete xmlDoc;
}
@@ -520,6 +518,7 @@
//var textures = new Object();
function parseTextures( nodes )
{
+ return;
var defs = createSVGElement( 'defs' );
for( var i=0; i < nodes.childNodes.length; i++ )
{
@@ -573,6 +572,8 @@
function show25D( rotation, tilt, plan )
{
////t_25d_start = new Date;
+ //console.log( rotation, tilt, plan );
+ return;
var h_short = Math.cos( tilt ); // horizontal shortening factor
var v_short = Math.sin( tilt ); // vertical shortening factor
@@ -834,3 +835,161 @@
delete plan;
plan = createSVGElement( "g" );
}
+
+var noSetup = true;
+function setup3D()
+{
+ if( noFloorplan ) return;
+ noSetup = false;
+
+ for( var i=0; i<lines[showFloor].length; )
+ {
+ //console.log(i);
+ /*
+ var s1 = rotate2D( rot_s, rot_c, vertices [ lines[showFloor][ i][0] ], imageCenter );
+ var e1 = rotate2D( rot_s, rot_c, vertices [ lines[showFloor][ i][1] ], imageCenter );
+ var sm = rotate2D( rot_s, rot_c, floorNodes[ lines[showFloor][++i][1] ], imageCenter );
+ var em = rotate2D( rot_s, rot_c, floorNodes[ lines[showFloor][ i][0] ], imageCenter );
+ var sh = v_short * floorNodes[ lines[showFloor][i][1] ].z;
+ var eh = v_short * floorNodes[ lines[showFloor][i][0] ].z;
+ var thickness = lines[showFloor][ i][2];
+ var texture = lines[showFloor][ i][3];
+ var holes = lines[showFloor][ i][4];
+ var s2 = rotate2D( rot_s, rot_c, vertices [ lines[showFloor][++i][0] ], imageCenter );
+ var e2 = rotate2D( rot_s, rot_c, vertices [ lines[showFloor][ i][1] ], imageCenter );
+ */
+ var s1 = vertices [ lines[showFloor][ i][0] ];
+ var e1 = vertices [ lines[showFloor][ i][1] ];
+ var sm = floorNodes[ lines[showFloor][++i][1] ];
+ var em = floorNodes[ lines[showFloor][ i][0] ];
+// var sh = 2.44;//floorNodes[ lines[showFloor][i][1] ].z ;
+// var eh = 2.44;//floorNodes[ lines[showFloor][i][0] ].z ;
+ var sh = floorNodes[ lines[showFloor][i][1] ].z ;
+ var eh = floorNodes[ lines[showFloor][i][0] ].z ;
+ var s2 = vertices [ lines[showFloor][++i][0] ];
+ var e2 = vertices [ lines[showFloor][ i][1] ];
+ ++i;
+ var wallSideOrder = (s2.x-s1.x)*(e1.y-s1.y) - (s2.y-s1.y)*(e1.x-s1.x);
+ //var Tvertices = [];
+
+ /**************
+ var sphere = new THREE.Mesh( new THREE.SphereGeometry(0.1, 4, 4), sphereMaterial);
+ sphere.position = new THREE.Vector3(sm.x,sm.y,0);
+ //Tvertices.push(sphere.position);
+ scene.add(sphere);
+ var sphere = new THREE.Mesh( new THREE.SphereGeometry(0.1, 4, 4), sphereMaterial);
+ sphere.position = new THREE.Vector3(sm.x,sm.y,sh);
+ //Tvertices.push(sphere.position);
+ scene.add(sphere);
+ var sphere = new THREE.Mesh( new THREE.SphereGeometry(0.1, 4, 4), sphereMaterial);
+ sphere.position = new THREE.Vector3(em.x,em.y,0);
+ //Tvertices.push(sphere.position);
+ scene.add(sphere);
+ var sphere = new THREE.Mesh( new THREE.SphereGeometry(0.1, 4, 4), sphereMaterial);
+ sphere.position = new THREE.Vector3(em.x,em.y,eh);
+ //Tvertices.push(sphere.position);
+ scene.add(sphere);
+ */
+ var geometry = new THREE.Geometry();
+
+//var vertices = [];
+//vertices.push(new THREE.Vector3(0, 0, 0));
+//vertices.push(new THREE.Vector3(1, 0, 0));
+//vertices.push(new THREE.Vector3(0, 1, 0));
+ /*
+ for ( j = 0; j < vertices.length; j = j + 4) {
+ geometry.vertices.push(new THREE.Vertex(Tvertices[j]));
+ geometry.vertices.push(new THREE.Vertex(Tvertices[j+1]));
+ geometry.vertices.push(new THREE.Vertex(Tvertices[j+2]));
+ geometry.vertices.push(new THREE.Vertex(Tvertices[j+3]));
+
+ geometry.faces.push(new THREE.Face3( j, j+1, j+2 ));
+ geometry.faces.push(new THREE.Face3( j+2, j+1, j+3 ));
+
+ //geometry.faceVertexUvs[0].push([
+ // new THREE.UV(u_value, v_value)), new THREE.UV(u_value, v_value)), new THREE.UV(u_value, v_value))
+ //]);
+ }
+ */
+ geometry.vertices.push(new THREE.Vertex(new THREE.Vector3(e1.x,e1.y,0)));
+ geometry.vertices.push(new THREE.Vertex(new THREE.Vector3(e1.x,e1.y,sh)));
+ geometry.vertices.push(new THREE.Vertex(new THREE.Vector3(s1.x,s1.y,0)));
+ geometry.vertices.push(new THREE.Vertex(new THREE.Vector3(s1.x,s1.y,sh)));
+ geometry.vertices.push(new THREE.Vertex(new THREE.Vector3(sm.x,sm.y,sh)));
+
+ geometry.vertices.push(new THREE.Vertex(new THREE.Vector3(s2.x,s2.y,0)));
+ geometry.vertices.push(new THREE.Vertex(new THREE.Vector3(s2.x,s2.y,sh)));
+ geometry.vertices.push(new THREE.Vertex(new THREE.Vector3(e2.x,e2.y,0)));
+ geometry.vertices.push(new THREE.Vertex(new THREE.Vector3(e2.x,e2.y,sh)));
+ geometry.vertices.push(new THREE.Vertex(new THREE.Vector3(em.x,em.y,sh)));
+
+ if( wallSideOrder < 0 )
+ {
+ // Add the wall sides
+ geometry.faces.push(new THREE.Face3( 0, 1, 2 ));
+ geometry.faces.push(new THREE.Face3( 3, 2, 1 ));
+ geometry.faces.push(new THREE.Face3( 5, 6, 7 ));
+ geometry.faces.push(new THREE.Face3( 8, 7, 6 ));
+ // Add the wall tops
+ geometry.faces.push(new THREE.Face3( 4, 3, 6 ));
+ geometry.faces.push(new THREE.Face3( 1, 6, 3 ));
+ geometry.faces.push(new THREE.Face3( 6, 1, 8 ));
+ geometry.faces.push(new THREE.Face3( 9, 8, 1 ));
+ } else {
+ // Add the wall sides
+ geometry.faces.push(new THREE.Face3( 0, 2, 1 ));
+ geometry.faces.push(new THREE.Face3( 3, 1, 2 ));
+ geometry.faces.push(new THREE.Face3( 5, 7, 6 ));
+ geometry.faces.push(new THREE.Face3( 8, 6, 7 ));
+ // Add the wall tops
+ geometry.faces.push(new THREE.Face3( 4, 6, 3 ));
+ geometry.faces.push(new THREE.Face3( 1, 3, 6 ));
+ geometry.faces.push(new THREE.Face3( 6, 8, 1 ));
+ geometry.faces.push(new THREE.Face3( 9, 1, 8 ));
+ }
+
+
+ geometry.computeFaceNormals();
+ //var mesh = new THREE.Mesh(geometry, new THREE.MeshNormalMaterial());
+ var mesh = new THREE.Mesh(geometry, cubeMaterial);
+ scene.add(mesh);
+ }
+
+ ///////////
+ scene.add(pointLight);
+ scene.add(ambientLight);
+ scene.add( camera );
+ var $container = $('#top_level');
+ // attach the render-supplied DOM element
+ $container.append(renderer.domElement);
+ // draw!
+ //scene.add( camera );
+ //renderer.render(scene, camera);
+ //render();
+// animate();
+
+}
+
+function show3D( rotation, tilt, plan )
+{
+ if( noSetup ) setup3D();
+
+ //var dist = 30;
+ /*
+ //camera.position.z = rotation * 180 / Math.PI;
+ //camera.rotation.z = rotation;
+ //camera.rotation.y = tilt;
+ camera.position.z = Math.sin(tilt) * dist;
+ camera.position.x = Math.cos(tilt) * dist * Math.sin(rotation);
+ camera.position.y = Math.cos(tilt) * dist * Math.cos(rotation);
+ */
+ //renderer.render(scene, camera);
+ var cx = -Math.cos(rotation) * Math.cos(tilt);
+ var cy = Math.sin(rotation) * Math.cos(tilt);
+ var cz = Math.sin(tilt);
+ camera.up = new THREE.Vector3( -cx, -cy, 1 );
+ camera.position = new THREE.Vector3( cx*dist + buildingProperties.x_center, cy*dist + buildingProperties.y_center, dist * cz );
+ camera.lookAt( new THREE.Vector3( buildingProperties.x_center, buildingProperties.y_center, 0) );
+ pointLight.position = camera.position;
+ render();
+}
\ No newline at end of file
Modified: JSFloorPlan/trunk/jsfloorplan_example_helper.js
===================================================================
--- JSFloorPlan/trunk/jsfloorplan_example_helper.js 2011-12-08 17:00:19 UTC (rev 554)
+++ JSFloorPlan/trunk/jsfloorplan_example_helper.js 2011-12-09 10:31:43 UTC (rev 555)
@@ -22,6 +22,145 @@
* *
***************************************************************************/
+
+function three_init()
+{
+ return;
+ // get the DOM element to attach to
+ // - assume we've got jQuery to hand
+ //var $container = $('#container');
+ var $container = $('#top_level');
+ // attach the render-supplied DOM element
+ $container.append(renderer.domElement);
+ // draw!
+ //scene.add( camera );
+ //renderer.render(scene, camera);
+ //render();
+ animate();
+}
+// set the scene size
+var WIDTH = 800,
+ HEIGHT = 400;
+
+// set some camera attributes
+var VIEW_ANGLE = 45,
+ ASPECT = WIDTH / HEIGHT,
+ NEAR = 0.1,
+ FAR = 10000;
+
+
+// create a WebGL renderer, camera
+// and a scene
+var renderer = new THREE.WebGLRenderer();
+var camera = new THREE.PerspectiveCamera(
+ VIEW_ANGLE,
+ ASPECT,
+ NEAR,
+ FAR );
+var controls = new THREE.TrackballControls( camera );
+//controls.rotateSpeed = 1.0;
+//controls.zoomSpeed = 1.2;
+//controls.panSpeed = 0.8;
+
+controls.noZoom = false;
+controls.noPan = false;
+
+controls.staticMoving = true;
+controls.dynamicDampingFactor = 0.3;
+
+controls.keys = [ 65, 83, 68 ];
+
+var scene = new THREE.Scene();
+
+// the camera starts at 0,0,0 so pull it back
+camera.position.z = 300;
+
+// start the renderer
+renderer.setSize(WIDTH, HEIGHT);
+
+
+// set up the sphere vars
+var radius = 50, segments = 16, rings = 16;
+
+// create the sphere's material
+var sphereMaterial = new THREE.MeshLambertMaterial(
+{
+ color: 0xCC0000
+});
+// create a new mesh with sphere geometry -
+// we will cover the sphereMaterial next!
+var sphere = new THREE.Mesh(
+ new THREE.SphereGeometry(radius,
+ segments,
+ rings),
+
+ sphereMaterial);
+
+// add the sphere to the scene
+//scene.add(sphere);
+
+var cubeMaterial = new THREE.MeshLambertMaterial(
+{
+ color: 0x0000CC
+});
+var cube = new THREE.Mesh(
+ new THREE.CubeGeometry(
+ 10, 20, 30,
+ 2, 2),
+ cubeMaterial
+);
+cube.position = new THREE.Vector3(50,50,50);
+//scene.add( cube );
+
+// create a point light
+var pointLight = new THREE.PointLight( 0xFFFFFF );
+
+var ambientLight = new THREE.AmbientLight( 0xFFFFFF );
+// set its position
+pointLight.position.x = 10;
+pointLight.position.y = 50;
+pointLight.position.z = 130;
+
+// add to the scene
+//scene.add(pointLight);
+
+
+/**
+ * Provides requestAnimationFrame in a cross browser way.
+ * http://paulirish.com/2011/requestanimationframe-for-smart-animating/
+ */
+
+if ( !window.requestAnimationFrame ) {
+ window.requestAnimationFrame = ( function() {
+ return window.webkitRequestAnimationFrame ||
+ window.mozRequestAnimationFrame ||
+ window.oRequestAnimationFrame ||
+ window.msRequestAnimationFrame ||
+ function( /* function FrameRequestCallback */ callback, /* DOMElement Element */ element ) {
+ window.setTimeout( callback, 1000 / 60 );
+ };
+} )();
+
+}
+function animate() {
+ requestAnimationFrame( animate );
+ //render();
+ show3D();
+ //stats.update();
+}
+
+function render() {
+ //controls.update();
+ renderer.render( scene, camera );
+}
+
+//}
+
+/////////////////////////////////////////////////////////////////////////////
+$(function() {
+ three_init();
+});
+/////////////////////////////////////////////////////////////////////////////
// setup script here:
var sc = 40; // overall scaling
var showWallSides = true;
@@ -32,7 +171,7 @@
var showHoles = true;
var showZones = true;
var showVisibleZones = false;
-var showFloor = 0;
+var showFloor = 1;
var wallMouseOver = true;
var fillOpacity = 0.5;
var fillColor = 'black';
@@ -41,6 +180,7 @@
var roll = 35*Math.PI/180;
var tilt = 30*Math.PI/180;
var tilt_dir = 1;
+var dist = 10;
//var plan = createSVGElement( "g" );
var f_avr = 0;
var m_avr = 0;
@@ -99,15 +239,11 @@
if( tilt < 0 )
tilt_dir = 1;
- show25D( roll, tilt, plan );
+ show3D( roll, tilt, plan );
//////
var middle = new Date();
- //////
- replaceSVG( document.getElementById( 'top_level' ) );
- //////
-
var post = new Date();
//////
@@ -132,7 +268,8 @@
var txt = '';//"c1: " + calc1 + "; c2: " + calc2;
- var text = (m_avr<10?"0":"")+Math.floor(m_avr)+" Millisekunden zum Neuzeichnen verwendet\n"
+ var text = "roll: " + roll + "; tilt: " + tilt + " (" + (tilt*180/Math.PI) + "; " + tilt_dir + ")\n" +
+ (m_avr<10?"0":"")+Math.floor(m_avr)+" Millisekunden zum Neuzeichnen verwendet\n"
+ Math.floor(f_avr)+" Millisekunden inklusive Neuberechnung verwendet (von " + redrawInterval + " Millisekunden)\n"
+ "Aktuelle, maximale Rate wären "+fps+" fps (aktuell festgesetzt sind "+Math.floor(1000/redrawInterval)+" FPS)\n"
+ "Die letzten 10 Schritte wären mindestes " + fps_min + " FPS und höchstens " + fps_max + " FPS möglich gewesen.\n"
@@ -181,8 +318,7 @@
if( redraw )
{
- show25D( roll, tilt, plan );
- replaceSVG( document.getElementById( 'top_level' ) );
+ show3D( roll, tilt, plan );
}
}
@@ -204,8 +340,7 @@
if( redraw )
{
- show25D( roll, tilt, plan );
- replaceSVG( document.getElementById( 'top_level' ) );
+ show3D( roll, tilt, plan );
}
}
@@ -213,138 +348,41 @@
// as well as the buttons to manipulate them
function...
[truncated message content] |