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", "script": "build_engine_dev",
"group": "build", "group": "build",
"label": "npm: build_engine_dev" "label": "npm: build_engine_dev"
},
{
"type": "npm",
"script": "lint",
"group": "build",
"label": "npm: lint"
} }
] ]
} }

View File

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

View File

@ -33,12 +33,12 @@
<div class="online_3d_viewer" <div class="online_3d_viewer"
style="width: 360px; height: 240px;" style="width: 360px; height: 240px;"
model="../../test/testfiles/gltf/Box/glTF-Binary/Box.glb" 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>
<div class="online_3d_viewer" <div class="online_3d_viewer"
style="width: 360px; height: 240px;" style="width: 360px; height: 240px;"
model="../../test/testfiles/gltf/Box/glTF-Draco/Box.gltf,../../test/testfiles/gltf/Box/glTF-Draco/Box.bin" 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>
<div class="online_3d_viewer" <div class="online_3d_viewer"
style="width: 360px; height: 240px;" style="width: 360px; height: 240px;"
@ -47,7 +47,7 @@
<div class="online_3d_viewer" <div class="online_3d_viewer"
style="width: 360px; height: 240px;" style="width: 360px; height: 240px;"
model="../../test/testfiles/gltf/DamagedHelmet/glTF-Binary/DamagedHelmet.glb" 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>
<div class="online_3d_viewer" <div class="online_3d_viewer"
style="width: 360px; height: 240px;" style="width: 360px; height: 240px;"

View File

@ -30,13 +30,13 @@
<div class="online_3d_viewer" <div class="online_3d_viewer"
style="width: 360px; height: 240px;" style="width: 360px; height: 240px;"
model="../../test/testfiles/gltf/BoxVertexColors/glTF-Binary/BoxVertexColors.glb" 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"> 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>
<div class="online_3d_viewer" <div class="online_3d_viewer"
style="width: 360px; height: 240px;" style="width: 360px; height: 240px;"
model="../../test/testfiles/gltf/BoxVertexColors/glTF-Binary/BoxVertexColors.glb" 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> </div>
</body> </body>

View File

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

View File

@ -1,5 +1,6 @@
export const FeatureSet = export const FeatureSet =
{ {
ShowGrid : false, 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'); HandleEvent ('model_shared', 'embedding_code');
return GetEmbeddingCode (modelFiles, useCurrentSettings, settings, camera); 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; useCurrentSettings = checked;
embeddingCodeInput.value = GetEmbeddingCode (modelFiles, useCurrentSettings, settings, camera); embeddingCodeInput.value = GetEmbeddingCode (modelFiles, useCurrentSettings, settings, camera);
}); });

View File

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