@@ -57,6 +57,8 @@ public class MaterialsTab extends HBox implements RenderControlsTab, Initializab
5757 private final DoubleAdjuster ior = new DoubleAdjuster ();
5858 private final DoubleAdjuster perceptualSmoothness = new DoubleAdjuster ();
5959 private final DoubleAdjuster metalness = new DoubleAdjuster ();
60+ private final CheckBox advanced = new CheckBox ();
61+ private final VBox advancedSettings = new VBox ();
6062 private final ListView <String > listView ;
6163
6264 public MaterialsTab () {
@@ -80,6 +82,20 @@ public MaterialsTab() {
8082 metalness .setName ("Metalness" );
8183 metalness .setRange (0 , 1 );
8284 metalness .setTooltip ("Metalness (texture-tinted reflectivity) of the selected material." );
85+ advanced .setText ("Advanced settings" );
86+ advanced .setTooltip (new Tooltip ("Show advanced settings" ));
87+ advanced .selectedProperty ().addListener ((observable , oldValue , newValue ) -> {
88+ advancedSettings .setVisible (newValue );
89+ advancedSettings .setManaged (newValue );
90+ });
91+ HBox emt = new HBox ();
92+ emt .setSpacing (10 );
93+ emt .setAlignment (Pos .CENTER_LEFT );
94+ emt .getChildren ().addAll (new Label ("Emitter mapping type:" ), emitterMappingType );
95+ advancedSettings .setSpacing (10 );
96+ advancedSettings .getChildren ().addAll (emitterMappingOffset , emt );
97+ advancedSettings .setVisible (false );
98+ advancedSettings .setManaged (false );
8399 ObservableList <String > blockIds = FXCollections .observableArrayList ();
84100 blockIds .addAll (MaterialStore .collections .keySet ());
85101 blockIds .addAll (ExtraMaterials .idMap .keySet ());
@@ -91,16 +107,14 @@ public MaterialsTab() {
91107 listView .getSelectionModel ().selectedItemProperty ().addListener (
92108 (observable , oldValue , materialName ) -> updateSelectedMaterial (materialName )
93109 );
94- HBox emt = new HBox ();
95- emt .setSpacing (10 );
96- emt .setAlignment (Pos .CENTER_LEFT );
97- emt .getChildren ().addAll (new Label ("Emitter mapping type:" ), emitterMappingType );
98110 VBox settings = new VBox ();
99111 settings .setSpacing (10 );
100112 settings .getChildren ().addAll (
101113 new Label ("Material Properties" ),
102- emittance , emitterMappingOffset , emt , specular , perceptualSmoothness , ior , metalness ,
103- new Label ("(set to zero to disable)" ));
114+ emittance , specular , perceptualSmoothness , ior , metalness ,
115+ new Label ("(set to zero to disable)" ),
116+ advanced , advancedSettings
117+ );
104118 setPadding (new Insets (10 ));
105119 setSpacing (15 );
106120 TextField filterField = new TextField ();
@@ -176,7 +190,9 @@ private void updateSelectedMaterial(String materialName) {
176190 materialExists = true ;
177191 }
178192 if (materialExists ) {
179- emittance .onValueChange (value -> scene .setEmittance (materialName , value .floatValue ()));
193+ emittance .onValueChange (value -> {
194+ scene .setEmittance (materialName , value .floatValue ());
195+ });
180196 emitterMappingOffset .onValueChange (value -> scene .setEmitterMappingOffset (materialName , value .floatValue ()));
181197 emtListener = (observable , oldValue , newValue ) -> scene .setEmitterMappingTypeOverride (materialName , newValue );
182198 emitterMappingType .getSelectionModel ().selectedItemProperty ().addListener (emtListener );
0 commit comments