Add the possibility to switch between environment maps #161

This commit is contained in:
kovacsv 2022-06-12 13:25:09 +02:00
parent 6a0148b66b
commit ef5c710245
2 changed files with 24 additions and 27 deletions

View File

@ -1,4 +1,4 @@
export const FeatureSet = export const FeatureSet =
{ {
EnvironmentMap : true
}; };

View File

@ -2,7 +2,6 @@ import { Color, ColorToHexString } from '../engine/model/color.js';
import { AddDiv, AddDomElement, ShowDomElement, SetDomElementOuterHeight } from '../engine/viewer/domutils.js'; import { AddDiv, AddDomElement, ShowDomElement, SetDomElementOuterHeight } from '../engine/viewer/domutils.js';
import { AddRangeSlider, AddToggle, AddCheckbox } from '../website/utils.js'; import { AddRangeSlider, AddToggle, AddCheckbox } from '../website/utils.js';
import { CalculatePopupPositionToElementTopLeft } from './dialogs.js'; import { CalculatePopupPositionToElementTopLeft } from './dialogs.js';
import { FeatureSet } from './featureset.js';
import { PopupDialog } from './dialog.js'; import { PopupDialog } from './dialog.js';
import { Settings, Theme } from './settings.js'; import { Settings, Theme } from './settings.js';
import { SidebarPanel } from './sidebarpanel.js'; import { SidebarPanel } from './sidebarpanel.js';
@ -205,35 +204,33 @@ class SettingsModelDisplaySection extends SettingsSection
callbacks.onBackgroundColorChange (); callbacks.onBackgroundColorChange ();
}); });
if (FeatureSet.EnvironmentMap) { this.environmentMapPhongDiv = AddDiv (this.contentDiv, 'ov_sidebar_parameter');
this.environmentMapPhongDiv = AddDiv (this.contentDiv, 'ov_sidebar_parameter'); this.environmentMapPhongInput = AddDiv (this.environmentMapPhongDiv, 'ov_sidebar_image_picker');
this.environmentMapPhongInput = AddDiv (this.environmentMapPhongDiv, 'ov_sidebar_image_picker'); AddDiv (this.environmentMapPhongDiv, null, 'Background Image');
AddDiv (this.environmentMapPhongDiv, null, 'Background Image'); this.environmentMapPhongInput.addEventListener ('click', () => {
this.environmentMapPhongInput.addEventListener ('click', () => { this.environmentMapPopup = new EnvironmentMapPopup ();
this.environmentMapPopup = new EnvironmentMapPopup (); this.environmentMapPopup.ShowPopup (this.environmentMapPhongInput, ShadingType.Phong, settings, {
this.environmentMapPopup.ShowPopup (this.environmentMapPhongInput, ShadingType.Phong, settings, { onEnvironmentMapChange : () => {
onEnvironmentMapChange : () => { this.UpdateEnvironmentMap (settings);
this.UpdateEnvironmentMap (settings); callbacks.onEnvironmentMapChange ();
callbacks.onEnvironmentMapChange (); }
}
});
}); });
});
this.environmentMapPbrDiv = AddDiv (this.contentDiv, 'ov_sidebar_parameter'); this.environmentMapPbrDiv = AddDiv (this.contentDiv, 'ov_sidebar_parameter');
this.environmentMapPbrInput = AddDiv (this.environmentMapPbrDiv, 'ov_sidebar_image_picker'); this.environmentMapPbrInput = AddDiv (this.environmentMapPbrDiv, 'ov_sidebar_image_picker');
AddDiv (this.environmentMapPbrDiv, null, 'Environment'); AddDiv (this.environmentMapPbrDiv, null, 'Environment');
this.environmentMapPbrInput.addEventListener ('click', () => { this.environmentMapPbrInput.addEventListener ('click', () => {
this.environmentMapPopup = new EnvironmentMapPopup (); this.environmentMapPopup = new EnvironmentMapPopup ();
this.environmentMapPopup.ShowPopup (this.environmentMapPbrInput, ShadingType.Physical, settings, { this.environmentMapPopup.ShowPopup (this.environmentMapPbrInput, ShadingType.Physical, settings, {
onEnvironmentMapChange : () => { onEnvironmentMapChange : () => {
this.UpdateEnvironmentMap (settings); this.UpdateEnvironmentMap (settings);
callbacks.onEnvironmentMapChange (); callbacks.onEnvironmentMapChange ();
} }
});
}); });
});
this.UpdateEnvironmentMap (settings); this.UpdateEnvironmentMap (settings);
}
let edgeParameterDiv = AddDiv (this.contentDiv, 'ov_sidebar_parameter'); let edgeParameterDiv = AddDiv (this.contentDiv, 'ov_sidebar_parameter');
this.edgeDisplayToggle = AddToggle (edgeParameterDiv, 'ov_sidebar_parameter_toggle'); this.edgeDisplayToggle = AddToggle (edgeParameterDiv, 'ov_sidebar_parameter_toggle');