@@ -19,8 +19,14 @@ Sidebar.Project = function ( editor ) {
1919
2020 var container = new UI . Panel ( ) ;
2121 container . setBorderTop ( '0' ) ;
22+ container . setPadding ( '0' ) ;
2223 container . setPaddingTop ( '20px' ) ;
2324
25+ var projectsettings = new UI . Panel ( ) ;
26+ projectsettings . setBorderTop ( '0' ) ;
27+
28+ container . add ( projectsettings ) ;
29+
2430 // Title
2531
2632 var titleRow = new UI . Row ( ) ;
@@ -33,7 +39,7 @@ Sidebar.Project = function ( editor ) {
3339 titleRow . add ( new UI . Text ( strings . getKey ( 'sidebar/project/title' ) ) . setWidth ( '90px' ) ) ;
3440 titleRow . add ( title ) ;
3541
36- container . add ( titleRow ) ;
42+ projectsettings . add ( titleRow ) ;
3743
3844 // Editable
3945
@@ -47,7 +53,7 @@ Sidebar.Project = function ( editor ) {
4753 editableRow . add ( new UI . Text ( strings . getKey ( 'sidebar/project/editable' ) ) . setWidth ( '90px' ) ) ;
4854 editableRow . add ( editable ) ;
4955
50- container . add ( editableRow ) ;
56+ projectsettings . add ( editableRow ) ;
5157
5258 // VR
5359
@@ -61,7 +67,7 @@ Sidebar.Project = function ( editor ) {
6167 vrRow . add ( new UI . Text ( strings . getKey ( 'sidebar/project/vr' ) ) . setWidth ( '90px' ) ) ;
6268 vrRow . add ( vr ) ;
6369
64- container . add ( vrRow ) ;
70+ projectsettings . add ( vrRow ) ;
6571
6672 // Renderer
6773
@@ -89,7 +95,7 @@ Sidebar.Project = function ( editor ) {
8995 rendererTypeRow . add ( new UI . Text ( strings . getKey ( 'sidebar/project/renderer' ) ) . setWidth ( '90px' ) ) ;
9096 rendererTypeRow . add ( rendererType ) ;
9197
92- container . add ( rendererTypeRow ) ;
98+ projectsettings . add ( rendererTypeRow ) ;
9399
94100 if ( config . getKey ( 'project/renderer' ) !== undefined ) {
95101
@@ -119,7 +125,7 @@ Sidebar.Project = function ( editor ) {
119125 } ) ;
120126 rendererPropertiesRow . add ( rendererShadows ) ;
121127
122- container . add ( rendererPropertiesRow ) ;
128+ projectsettings . add ( rendererPropertiesRow ) ;
123129
124130 //
125131
@@ -165,6 +171,49 @@ Sidebar.Project = function ( editor ) {
165171
166172 createRenderer ( config . getKey ( 'project/renderer' ) , config . getKey ( 'project/renderer/antialias' ) , config . getKey ( 'project/renderer/shadows' ) ) ;
167173
174+ var materialbrowserpanel = new UI . Panel ( ) ;
175+
176+ var headerRow = new UI . Row ( ) ;
177+ headerRow . add ( new UI . Text ( strings . getKey ( 'sidebar/project/materialbrowser' ) ) ) ;
178+
179+ materialbrowserpanel . add ( headerRow ) ;
180+
181+ var listbox = new UI . Listbox ( ) ;
182+ signals . materialAdded . add ( function ( ) {
183+
184+ var materials = Object . values ( editor . materials ) ;
185+ listbox . setItems ( materials ) ;
186+
187+ } ) ;
188+ materialbrowserpanel . add ( listbox ) ;
189+
190+ var buttonsRow = new UI . Row ( ) ;
191+ buttonsRow . setPadding ( '10px 0px' ) ;
192+ materialbrowserpanel . add ( buttonsRow ) ;
193+
194+ var addButton = new UI . Button ( ) . setLabel ( 'Add' ) . setMarginRight ( '5px' ) ;
195+ addButton . onClick ( function ( ) {
196+
197+ editor . addMaterial ( new THREE . MeshStandardMaterial ( { color : 0xffffff } ) ) ;
198+
199+ } ) ;
200+ buttonsRow . add ( addButton ) ;
201+
202+ var assignMaterial = new UI . Button ( ) . setLabel ( 'Assign' ) . setMargin ( '0px 5px' ) ;
203+ assignMaterial . onClick ( function ( ) {
204+
205+ if ( typeof editor . selected !== 'undefined' ) {
206+ var material = editor . getMaterialById ( parseInt ( listbox . getValue ( ) ) ) ;
207+ if ( typeof material !== 'undefined' ) {
208+ editor . execute ( new SetMaterialCommand ( editor , editor . selected , material ) ) ;
209+ }
210+ }
211+
212+ } ) ;
213+ buttonsRow . add ( assignMaterial ) ;
214+
215+ container . add ( materialbrowserpanel ) ;
216+
168217 return container ;
169218
170219} ;
0 commit comments