index.html 6.7 KB
Newer Older
M
Mr.doob 已提交
1 2 3 4
<!DOCTYPE html>
<html lang="en">
	<head>
		<title>three.js editor</title>
M
r59  
Mr.doob 已提交
5 6
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
M
Mr.doob 已提交
7 8
	</head>
	<body>
M
Mr.doob 已提交
9 10 11 12 13 14 15 16 17 18 19 20 21 22
		<script type="text/javascript">

		  var _gaq = _gaq || [];
		  _gaq.push(['_setAccount', 'UA-86951-15']);
		  _gaq.push(['_trackPageview']);

		  (function() {
		    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
		    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
		    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
		  })();

		</script>

M
r62  
Mr.doob 已提交
23 24
		<link href="css/types.css" rel="stylesheet" />
		<link id="theme" href="css/light.css" rel="stylesheet" />
M
Mr.doob 已提交
25

M
r59  
Mr.doob 已提交
26
		<script src="../build/three.min.js"></script>
M
r58  
Mr.doob 已提交
27 28 29
		<script src="../examples/js/libs/system.min.js"></script>

		<script src="../examples/js/controls/EditorControls.js"></script>
M
r59  
Mr.doob 已提交
30
		<script src="../examples/js/controls/TransformControls.js"></script>
M
r60  
Mr.doob 已提交
31
		<script src="../examples/js/loaders/BabylonLoader.js"></script>
M
Mr.doob 已提交
32 33
		<script src="../examples/js/loaders/ColladaLoader.js"></script>
		<script src="../examples/js/loaders/OBJLoader.js"></script>
M
r58  
Mr.doob 已提交
34
		<script src="../examples/js/loaders/PLYLoader.js"></script>
M
r68  
Mr.doob 已提交
35
		<script src="../examples/js/loaders/SceneLoader.js"></script>
M
Mr.doob 已提交
36 37
		<script src="../examples/js/loaders/STLLoader.js"></script>
		<script src="../examples/js/loaders/UTF8Loader.js"></script>
M
r59  
Mr.doob 已提交
38
		<script src="../examples/js/loaders/VRMLLoader.js"></script>
M
Mr.doob 已提交
39 40 41 42 43 44
		<script src="../examples/js/loaders/VTKLoader.js"></script>
		<script src="../examples/js/loaders/ctm/lzma.js"></script>
		<script src="../examples/js/loaders/ctm/ctm.js"></script>
		<script src="../examples/js/loaders/ctm/CTMLoader.js"></script>
		<script src="../examples/js/exporters/SceneExporter.js"></script>
		<script src="../examples/js/exporters/OBJExporter.js"></script>
M
r67  
Mr.doob 已提交
45 46
		<script src="../examples/js/exporters/STLExporter.js"></script>
		<script src="../examples/js/renderers/RaytracingRenderer.js"></script>
M
Mr.doob 已提交
47 48 49
		<script src="../examples/js/renderers/SoftwareRenderer.js"></script>
		<script src="../examples/js/renderers/SVGRenderer.js"></script>

M
r58  
Mr.doob 已提交
50 51
		<!-- WIP -->

M
r60  
Mr.doob 已提交
52
		<script src="../examples/js/exporters/BufferGeometryExporter.js"></script>
M
r67  
Mr.doob 已提交
53
		<script src="../examples/js/exporters/TypedGeometryExporter.js"></script>
M
r58  
Mr.doob 已提交
54 55 56
		<script src="../examples/js/exporters/GeometryExporter.js"></script>
		<script src="../examples/js/exporters/MaterialExporter.js"></script>
		<script src="../examples/js/exporters/ObjectExporter.js"></script>
M
Mr.doob 已提交
57
		<script src="../examples/js/renderers/WebGLRenderer3.js"></script>
M
Mr.doob 已提交
58 59

		<script src="js/libs/signals.min.js"></script>
M
r59  
Mr.doob 已提交
60
		<script src="js/libs/ui.js"></script>
M
r67  
Mr.doob 已提交
61
		<script src="js/libs/ui.editor.js"></script>
M
r59  
Mr.doob 已提交
62 63
		<script src="js/libs/ui.three.js"></script>

M
r62  
Mr.doob 已提交
64 65
		<script src="js/Storage.js"></script>

M
r59  
Mr.doob 已提交
66
		<script src="js/Editor.js"></script>
M
r62  
Mr.doob 已提交
67
		<script src="js/Config.js"></script>
M
r59  
Mr.doob 已提交
68 69 70 71 72
		<script src="js/Loader.js"></script>
		<script src="js/Menubar.js"></script>
		<script src="js/Menubar.File.js"></script>
		<script src="js/Menubar.Edit.js"></script>
		<script src="js/Menubar.Add.js"></script>
M
r62  
Mr.doob 已提交
73
		<script src="js/Menubar.View.js"></script>
M
r59  
Mr.doob 已提交
74 75 76 77 78 79
		<script src="js/Menubar.Help.js"></script>
		<script src="js/Sidebar.js"></script>
		<script src="js/Sidebar.Renderer.js"></script>
		<script src="js/Sidebar.Scene.js"></script>
		<script src="js/Sidebar.Object3D.js"></script>
		<script src="js/Sidebar.Animation.js"></script>
M
r68  
Mr.doob 已提交
80 81 82
		<script src="js/Sidebar.Geometry.js"></script>
		<script src="js/Sidebar.Geometry.Geometry.js"></script>
		<script src="js/Sidebar.Geometry.BufferGeometry.js"></script>
M
r66  
Mr.doob 已提交
83
		<script src="js/Sidebar.Geometry.BoxGeometry.js"></script>
M
r61  
Mr.doob 已提交
84
		<script src="js/Sidebar.Geometry.CircleGeometry.js"></script>
M
r59  
Mr.doob 已提交
85 86
		<script src="js/Sidebar.Geometry.CylinderGeometry.js"></script>
		<script src="js/Sidebar.Geometry.IcosahedronGeometry.js"></script>
M
r61  
Mr.doob 已提交
87 88
		<script src="js/Sidebar.Geometry.PlaneGeometry.js"></script>
		<script src="js/Sidebar.Geometry.SphereGeometry.js"></script>
M
r59  
Mr.doob 已提交
89 90 91 92 93
		<script src="js/Sidebar.Geometry.TorusGeometry.js"></script>
		<script src="js/Sidebar.Geometry.TorusKnotGeometry.js"></script>
		<script src="js/Sidebar.Material.js"></script>
		<script src="js/Toolbar.js"></script>
		<script src="js/Viewport.js"></script>
M
Mr.doob 已提交
94 95 96 97 98 99

		<script>

			window.URL = window.URL || window.webkitURL;
			window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;

M
r59  
Mr.doob 已提交
100
			var editor = new Editor();
M
Mr.doob 已提交
101

M
r62  
Mr.doob 已提交
102
			var viewport = new Viewport( editor ).setId( 'viewport' );
M
Mr.doob 已提交
103 104
			document.body.appendChild( viewport.dom );

M
r62  
Mr.doob 已提交
105
			var toolbar = new Toolbar( editor ).setId( 'toolbar' )
M
r58  
Mr.doob 已提交
106 107
			document.body.appendChild( toolbar.dom );

M
r62  
Mr.doob 已提交
108
			var menubar = new Menubar( editor ).setId( 'menubar' );
M
Mr.doob 已提交
109 110
			document.body.appendChild( menubar.dom );

M
r62  
Mr.doob 已提交
111
			var sidebar = new Sidebar( editor ).setId( 'sidebar' );
M
Mr.doob 已提交
112 113 114 115
			document.body.appendChild( sidebar.dom );

			//

M
r62  
Mr.doob 已提交
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
			editor.setTheme( editor.config.getKey( 'theme' ) );

			editor.storage.init( function () {

				editor.storage.get( function ( state ) {

					if ( state !== undefined ) {

						var loader = new THREE.ObjectLoader();
						var scene = loader.parse( state );

						editor.setScene( scene );

					}

					var selected = editor.config.getKey( 'selected' );

					if ( selected !== undefined ) {

						editor.selectByUuid( selected );

					}

				} );

				//

				var timeout;
				var exporter = new THREE.ObjectExporter();

				var saveState = function ( scene ) {

					clearTimeout( timeout );

					timeout = setTimeout( function () {

						editor.storage.set( exporter.parse( editor.scene ) );

M
r63  
Mr.doob 已提交
154
					}, 1000 );
M
r62  
Mr.doob 已提交
155 156 157 158 159 160 161 162

				};

				var signals = editor.signals;

				signals.objectAdded.add( saveState );
				signals.objectChanged.add( saveState );
				signals.objectRemoved.add( saveState );
M
r63  
Mr.doob 已提交
163
				signals.materialChanged.add( saveState );
M
r62  
Mr.doob 已提交
164 165 166 167 168 169
				signals.sceneGraphChanged.add( saveState );

			} );

			//

M
r60  
Mr.doob 已提交
170 171 172 173 174 175 176 177 178 179 180 181 182 183
			document.addEventListener( 'dragover', function ( event ) {

				event.preventDefault();
				event.dataTransfer.dropEffect = 'copy';

			}, false );

			document.addEventListener( 'drop', function ( event ) {

				event.preventDefault();
				editor.loader.loadFile( event.dataTransfer.files[ 0 ] );

			}, false );

M
r58  
Mr.doob 已提交
184 185 186 187
			document.addEventListener( 'keydown', function ( event ) {

				switch ( event.keyCode ) {

M
r64  
Mr.doob 已提交
188 189 190
					case 8: // prevent browser back 
						event.preventDefault();
						break;
M
r58  
Mr.doob 已提交
191
					case 46: // delete
M
r67  
Mr.doob 已提交
192
						var parent = editor.selected.parent;
M
r59  
Mr.doob 已提交
193
						editor.removeObject( editor.selected );
M
r67  
Mr.doob 已提交
194
						editor.select( parent );
M
r58  
Mr.doob 已提交
195 196
						break;

M
r64  
Mr.doob 已提交
197
				}
M
r58  
Mr.doob 已提交
198 199 200 201 202

			}, false );

			var onWindowResize = function ( event ) {

M
r59  
Mr.doob 已提交
203
				editor.signals.windowResize.dispatch();
M
r58  
Mr.doob 已提交
204 205

			};
M
Mr.doob 已提交
206 207 208

			window.addEventListener( 'resize', onWindowResize, false );

M
r58  
Mr.doob 已提交
209 210
			onWindowResize();

M
Mr.doob 已提交
211 212 213
		</script>
	</body>
</html>