Panel.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. var Panel = function ( signals ) {
  2. var container = new UI.Panel( 'absolute' );
  3. container.setWidth( '300px' ).setHeight( '100%' );
  4. container.setBackgroundColor( '#eee' );
  5. var selected = null;
  6. // Properties
  7. var properties = new UI.Panel();
  8. properties.setMargin( '8px' );
  9. properties.add( new UI.Text().setText( 'PROPERTIES' ).setColor( '#666' ) );
  10. properties.add( new UI.Break() );
  11. properties.add( new UI.Break() );
  12. properties.add( new UI.Text().setText( 'position' ).setColor( '#666' ) );
  13. var positionX = new UI.FloatNumber( 'absolute' ).setX( '90px' );
  14. var positionY = new UI.FloatNumber( 'absolute' ).setX( '160px' );
  15. var positionZ = new UI.FloatNumber( 'absolute' ).setX( '230px' );
  16. properties.add( positionX, positionY, positionZ );
  17. properties.add( new UI.HorizontalRule() );
  18. properties.add( new UI.Text().setText( 'rotation' ).setColor( '#666' ) );
  19. var rotationX = new UI.FloatNumber( 'absolute' ).setX( '90px' );
  20. var rotationY = new UI.FloatNumber( 'absolute' ).setX( '160px' );
  21. var rotationZ = new UI.FloatNumber( 'absolute' ).setX( '230px' );
  22. properties.add( rotationX, rotationY, rotationZ );
  23. properties.add( new UI.HorizontalRule() );
  24. properties.add( new UI.Text().setText( 'scale' ).setColor( '#666' ) );
  25. var scaleX = new UI.FloatNumber( 'absolute' ).setNumber( 1 ).setX( '90px' );
  26. var scaleY = new UI.FloatNumber( 'absolute' ).setNumber( 1 ).setX( '160px' );
  27. var scaleZ = new UI.FloatNumber( 'absolute' ).setNumber( 1 ).setX( '230px' );
  28. properties.add( scaleX, scaleY, scaleZ );
  29. properties.add( new UI.Break() );
  30. properties.add( new UI.Break() );
  31. container.add( properties );
  32. //
  33. signals.objectSelected.add( function ( object ) {
  34. selected = object;
  35. if ( object ) {
  36. positionX.setNumber( object.position.x );
  37. positionY.setNumber( object.position.y );
  38. positionZ.setNumber( object.position.z );
  39. rotationX.setNumber( object.rotation.x );
  40. rotationY.setNumber( object.rotation.y );
  41. rotationZ.setNumber( object.rotation.z );
  42. scaleX.setNumber( object.scale.x );
  43. scaleY.setNumber( object.scale.y );
  44. scaleZ.setNumber( object.scale.z );
  45. }
  46. } );
  47. // Geometry
  48. var properties = new UI.Panel();
  49. properties.setMargin( '8px' );
  50. properties.add( new UI.Text().setText( 'GEOMETRY' ).setColor( '#666' ) );
  51. properties.add( new UI.Break() );
  52. properties.add( new UI.Break() );
  53. container.add( properties );
  54. // Material
  55. var properties = new UI.Panel();
  56. properties.setMargin( '8px' );
  57. properties.add( new UI.Text().setText( 'MATERIAL' ).setColor( '#666' ) );
  58. properties.add( new UI.Break() );
  59. properties.add( new UI.Break() );
  60. container.add( properties );
  61. return container;
  62. }