index.html 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <html>
  2. <head>
  3. <title>three.js gui</title>
  4. <style>
  5. @font-face {
  6. font-family: 'Inconsolata';
  7. src: url('files/inconsolata.woff') format('woff');
  8. font-weight: normal;
  9. font-style: normal;
  10. }
  11. body {
  12. margin: 0;
  13. overflow: hidden;
  14. }
  15. button {
  16. cursor: pointer;
  17. }
  18. pre {
  19. font-family: 'Inconsolata';
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <script type="text/javascript" src="../build/Three.js"></script>
  25. <script type="text/javascript" src="js/libs/signals.min.js"></script>
  26. <script type="text/javascript" src="js/UI.js"></script>
  27. <script type="text/javascript" src="js/UI.Viewports.js"></script>
  28. <script type="text/javascript" src="js/UI.Toolbar.js"></script>
  29. <script type="text/javascript" src="js/Code.js"></script>
  30. <script>
  31. var Signal = signals.Signal;
  32. var signals = {
  33. added: new Signal(),
  34. updated: new Signal()
  35. };
  36. var ui = new UI();
  37. document.body.appendChild( ui.getDOMElement() );
  38. var code = new Code()
  39. document.body.appendChild( code.getDOMElement() );
  40. var xhalf = 0.7;
  41. var xr = document.createElement( 'div' );
  42. xr.style.position = 'absolute';
  43. xr.style.top = '0px';
  44. xr.style.width = '1px';
  45. xr.style.borderLeft = '1px solid #e0e0e0';
  46. // xr.style.backgroundColor = '#ffffff';
  47. xr.style.cursor = 'col-resize';
  48. xr.addEventListener( 'mousedown', function ( event ) {
  49. event.preventDefault();
  50. document.body.style.cursor = 'col-resize';
  51. document.addEventListener( 'mousemove', onMouseMove, false );
  52. document.addEventListener( 'mouseup', onMouseUp, false );
  53. function onMouseMove( event ) {
  54. event.preventDefault();
  55. xhalf = Math.max( 0, Math.min( 1, event.clientX / window.innerWidth ) );
  56. update();
  57. }
  58. function onMouseUp( event ) {
  59. document.body.style.cursor = 'auto';
  60. document.removeEventListener( 'mousemove', onMouseMove, false );
  61. document.removeEventListener( 'mouseup', onMouseUp, false );
  62. }
  63. }, false );
  64. xr.addEventListener( 'dblclick', function ( event ) {
  65. xhalf = 0.7;
  66. update();
  67. }, false );
  68. document.body.appendChild( xr );
  69. // Add Sphere
  70. var geometry = new THREE.SphereGeometry( 75, 20, 10 );
  71. var material = new THREE.MeshBasicMaterial( { color: 0xffffff, wireframe: true } );
  72. var mesh = new THREE.Mesh( geometry, material );
  73. geometry.code = 'new THREE.SphereGeometry( 75, 20, 10 )';
  74. material.code = 'new THREE.MeshBasicMaterial( { color: 0xffffff, wireframe: true } )';
  75. signals.added.dispatch( mesh );
  76. //
  77. update();
  78. window.addEventListener( 'resize', function ( event ) { update() }, false );
  79. function update() {
  80. ui.setSize( window.innerWidth * xhalf, window.innerHeight );
  81. code.setPosition( window.innerWidth * xhalf, 0 );
  82. code.setSize( window.innerWidth - ( window.innerWidth * xhalf ), window.innerHeight );
  83. xr.style.left = ( window.innerWidth * xhalf ) + 'px';
  84. xr.style.height = window.innerHeight + 'px';
  85. }
  86. </script>
  87. </body>
  88. </html>