Add feature toggle for environment settings.

This commit is contained in:
kovacsv 2022-01-22 23:35:54 +01:00
parent 0ec5e8d814
commit aa76460ede
8 changed files with 42 additions and 26 deletions

6
.vscode/tasks.json vendored
View File

@ -15,6 +15,12 @@
"script": "build_engine_dev",
"group": "build",
"label": "npm: build_engine_dev"
},
{
"type": "npm",
"script": "lint",
"group": "build",
"label": "npm: lint"
}
]
}

View File

@ -21,7 +21,7 @@
"scripts": {
"start": "http-server",
"test": "mocha test",
"lint": "eslint source",
"lint": "eslint source --fix",
"docs": "jsdoc -c tools/jsdoc.json",
"generate_icon_font": "node tools/run_python.js tools/generate_icon_font.py",
"update_engine_exports": "node tools/run_python.js tools/update_engine_exports.py",

View File

@ -33,12 +33,12 @@
<div class="online_3d_viewer"
style="width: 360px; height: 240px;"
model="../../test/testfiles/gltf/Box/glTF-Binary/Box.glb"
environmentsettings="../website/assets/envmaps/fishermans_bastion/posx.jpg,../website/assets/envmaps/fishermans_bastion/negx.jpg,../website/assets/envmaps/fishermans_bastion/posy.jpg,../website/assets/envmaps/fishermans_bastion/negy.jpg,../website/assets/envmaps/fishermans_bastion/posz.jpg,../website/assets/envmaps/fishermans_bastion/negz.jpg">
environmentmap="../website/assets/envmaps/fishermans_bastion/posx.jpg,../website/assets/envmaps/fishermans_bastion/negx.jpg,../website/assets/envmaps/fishermans_bastion/posy.jpg,../website/assets/envmaps/fishermans_bastion/negy.jpg,../website/assets/envmaps/fishermans_bastion/posz.jpg,../website/assets/envmaps/fishermans_bastion/negz.jpg">
</div>
<div class="online_3d_viewer"
style="width: 360px; height: 240px;"
model="../../test/testfiles/gltf/Box/glTF-Draco/Box.gltf,../../test/testfiles/gltf/Box/glTF-Draco/Box.bin"
environmentsettings="../website/assets/envmaps/fishermans_bastion/posx.jpg,../website/assets/envmaps/fishermans_bastion/negx.jpg,../website/assets/envmaps/fishermans_bastion/posy.jpg,../website/assets/envmaps/fishermans_bastion/negy.jpg,../website/assets/envmaps/fishermans_bastion/posz.jpg,../website/assets/envmaps/fishermans_bastion/negz.jpg">
environmentmap="../website/assets/envmaps/fishermans_bastion/posx.jpg,../website/assets/envmaps/fishermans_bastion/negx.jpg,../website/assets/envmaps/fishermans_bastion/posy.jpg,../website/assets/envmaps/fishermans_bastion/negy.jpg,../website/assets/envmaps/fishermans_bastion/posz.jpg,../website/assets/envmaps/fishermans_bastion/negz.jpg">
</div>
<div class="online_3d_viewer"
style="width: 360px; height: 240px;"
@ -47,7 +47,7 @@
<div class="online_3d_viewer"
style="width: 360px; height: 240px;"
model="../../test/testfiles/gltf/DamagedHelmet/glTF-Binary/DamagedHelmet.glb"
environmentsettings="../website/assets/envmaps/fishermans_bastion/posx.jpg,../website/assets/envmaps/fishermans_bastion/negx.jpg,../website/assets/envmaps/fishermans_bastion/posy.jpg,../website/assets/envmaps/fishermans_bastion/negy.jpg,../website/assets/envmaps/fishermans_bastion/posz.jpg,../website/assets/envmaps/fishermans_bastion/negz.jpg">
environmentmap="../website/assets/envmaps/fishermans_bastion/posx.jpg,../website/assets/envmaps/fishermans_bastion/negx.jpg,../website/assets/envmaps/fishermans_bastion/posy.jpg,../website/assets/envmaps/fishermans_bastion/negy.jpg,../website/assets/envmaps/fishermans_bastion/posz.jpg,../website/assets/envmaps/fishermans_bastion/negz.jpg">
</div>
<div class="online_3d_viewer"
style="width: 360px; height: 240px;"

View File

@ -30,13 +30,13 @@
<div class="online_3d_viewer"
style="width: 360px; height: 240px;"
model="../../test/testfiles/gltf/BoxVertexColors/glTF-Binary/BoxVertexColors.glb"
defaultcolor="200,0,0"
environmentmap="../website/assets/envmaps/fishermans_bastion/posx.jpg,../website/assets/envmaps/fishermans_bastion/negx.jpg,../website/assets/envmaps/fishermans_bastion/posy.jpg,../website/assets/envmaps/fishermans_bastion/negy.jpg,../website/assets/envmaps/fishermans_bastion/posz.jpg,../website/assets/envmaps/fishermans_bastion/negz.jpg">
</div>
<div class="online_3d_viewer"
style="width: 360px; height: 240px;"
model="../../test/testfiles/gltf/BoxVertexColors/glTF-Binary/BoxVertexColors.glb"
environmentmap="../website/assets/envmaps/fishermans_bastion/posx.jpg,../website/assets/envmaps/fishermans_bastion/negx.jpg,../website/assets/envmaps/fishermans_bastion/posy.jpg,../website/assets/envmaps/fishermans_bastion/negy.jpg,../website/assets/envmaps/fishermans_bastion/posz.jpg,../website/assets/envmaps/fishermans_bastion/negz.jpg">
environmentmap="../website/assets/envmaps/fishermans_bastion/posx.jpg,../website/assets/envmaps/fishermans_bastion/negx.jpg,../website/assets/envmaps/fishermans_bastion/posy.jpg,../website/assets/envmaps/fishermans_bastion/negy.jpg,../website/assets/envmaps/fishermans_bastion/posz.jpg,../website/assets/envmaps/fishermans_bastion/negz.jpg"
environmentmapbg="true">
</div>
</body>

View File

@ -162,14 +162,18 @@ export function Init3DViewerElements (onReady)
}
let environmentSettings = null;
let environmentSettingsParams = element.getAttribute ('environmentsettings');
if (environmentSettingsParams) {
let environmentSettingsParts = environmentSettingsParams.split (',');
if (environmentSettingsParts.length === 6) {
// TODO: background is env map
let environmentMapParams = element.getAttribute ('environmentmap');
if (environmentMapParams) {
let environmentMapParts = environmentMapParams.split (',');
if (environmentMapParts.length === 6) {
let backgroundIsEnvMap = false;
let backgroundIsEnvMapParam = element.getAttribute ('environmentmapbg');
if (backgroundIsEnvMapParam && backgroundIsEnvMapParam === 'true') {
backgroundIsEnvMap = true;
}
environmentSettings = {
environmentMap : environmentSettingsParts,
backgroundIsEnvMap : false
environmentMap : environmentMapParts,
backgroundIsEnvMap : backgroundIsEnvMap
};
}
}

View File

@ -1,5 +1,6 @@
export const FeatureSet =
{
ShowGrid : false,
MeasureTool : false
MeasureTool : false,
EnvironmentMap : false
};

View File

@ -95,7 +95,7 @@ export function ShowSharingDialog (fileList, settings, camera)
HandleEvent ('model_shared', 'embedding_code');
return GetEmbeddingCode (modelFiles, useCurrentSettings, settings, camera);
});
AddCheckboxLine (optionsSection, 'Use current settings instead of defaults', 'embed_current_settings', (checked) => {
AddCheckboxLine (optionsSection, 'Use customized settings', 'embed_current_settings', (checked) => {
useCurrentSettings = checked;
embeddingCodeInput.value = GetEmbeddingCode (modelFiles, useCurrentSettings, settings, camera);
});

View File

@ -1,6 +1,7 @@
import { Color, ColorToHexString } from '../engine/model/color.js';
import { AddDiv, AddDomElement, AddRangeSlider, AddToggle, AddCheckbox, ShowDomElement, SetDomElementOuterHeight } from '../engine/viewer/domutils.js';
import { CalculatePopupPositionToElementTopLeft } from './dialogs.js';
import { FeatureSet } from './featureset.js';
import { PopupDialog } from './modal.js';
import { Settings, Theme } from './settings.js';
import { SidebarPanel } from './sidebarpanel.js';
@ -154,17 +155,19 @@ class SettingsModelDisplaySection extends SettingsSection
Init (settings, callbacks)
{
this.environmentMapButton = AddDiv (this.contentDiv, 'ov_panel_button');
AddSvgIconElement (this.environmentMapButton, 'arrow_left', 'ov_panel_button_left_icon');
AddDiv (this.environmentMapButton, 'ov_panel_button_text', 'Environment Map');
this.environmentMapButton.addEventListener ('click', () => {
this.environmentMapPopup = new EnvironmentMapPopup ();
this.environmentMapPopup.ShowPopup (this.environmentMapButton, settings, {
onEnvironmentMapChange : () => {
callbacks.onEnvironmentMapChange ();
}
if (FeatureSet.EnvironmentMap) {
this.environmentMapButton = AddDiv (this.contentDiv, 'ov_panel_button');
AddSvgIconElement (this.environmentMapButton, 'arrow_left', 'ov_panel_button_left_icon');
AddDiv (this.environmentMapButton, 'ov_panel_button_text', 'Environment Map');
this.environmentMapButton.addEventListener ('click', () => {
this.environmentMapPopup = new EnvironmentMapPopup ();
this.environmentMapPopup.ShowPopup (this.environmentMapButton, settings, {
onEnvironmentMapChange : () => {
callbacks.onEnvironmentMapChange ();
}
});
});
});
}
let backgroundColorDiv = AddDiv (this.contentDiv, 'ov_sidebar_parameter');
let backgroundColorInput = AddDiv (backgroundColorDiv, 'ov_color_picker');
@ -216,7 +219,9 @@ class SettingsModelDisplaySection extends SettingsSection
UpdateVisibility (isPhysicallyBased)
{
ShowDomElement (this.environmentMapButton, isPhysicallyBased);
if (this.environmentMapButton !== null) {
ShowDomElement (this.environmentMapButton, isPhysicallyBased);
}
}
Update (settings)