Add feature toggle for environment settings.
This commit is contained in:
parent
0ec5e8d814
commit
aa76460ede
6
.vscode/tasks.json
vendored
6
.vscode/tasks.json
vendored
@ -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"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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",
|
||||||
|
|||||||
@ -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;"
|
||||||
|
|||||||
@ -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>
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
export const FeatureSet =
|
export const FeatureSet =
|
||||||
{
|
{
|
||||||
ShowGrid : false,
|
ShowGrid : false,
|
||||||
MeasureTool : false
|
MeasureTool : false,
|
||||||
|
EnvironmentMap : false
|
||||||
};
|
};
|
||||||
|
|||||||
@ -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);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user