Enable camera mode setting during embedding.
This commit is contained in:
parent
14b0863d64
commit
12537cdac8
@ -25,26 +25,38 @@
|
||||
|
||||
<body>
|
||||
<iframe
|
||||
width="400" height="300" style="border:1px solid #eeeeee;"
|
||||
src="../../website/embed.html#model=assets/models/solids.obj,assets/models/solids.mtl$camera=2.18558,4.53834,2.35460,3.62488,2.61927,-0.52401,0.00000,1.00000,0.00000$envsettings=fishermans_bastion,off$backgroundcolor=255,255,255$defaultcolor=200,200,200$edgesettings=off,0,0,0,1">
|
||||
width="360" height="240" style="border:1px solid #eeeeee;"
|
||||
src="../../website/embed.html#model=assets/models/solids.obj,assets/models/solids.mtl$camera=2.18558,4.53834,2.35460,3.62488,2.61927,-0.52401,0.00000,1.00000,0.00000">
|
||||
</iframe>
|
||||
|
||||
<iframe
|
||||
width="400" height="300" style="border:1px solid #eeeeee;"
|
||||
src="../../website/embed.html#model=assets/models/solids.obj,assets/models/solids.mtl$camera=2.18558,4.53834,2.35460,3.62488,2.61927,-0.52401,0.00000,1.00000,0.00000,100.0$envsettings=fishermans_bastion,off$backgroundcolor=255,255,255$defaultcolor=200,200,200$edgesettings=off,0,0,0,1">
|
||||
width="360" height="240" style="border:1px solid #eeeeee;"
|
||||
src="../../website/embed.html#model=assets/models/solids.obj,assets/models/solids.mtl$camera=2.18558,4.53834,2.35460,3.62488,2.61927,-0.52401,0.00000,1.00000,0.00000,100.0">
|
||||
</iframe>
|
||||
|
||||
<iframe
|
||||
width="360" height="240" style="border:1px solid #eeeeee;"
|
||||
src="../../website/embed.html#model=assets/models/solids.obj,assets/models/solids.mtl$camera=2.18558,4.53834,2.35460,3.62488,2.61927,-0.52401,0.00000,1.00000,0.00000$cameramode=orthographic">
|
||||
</iframe>
|
||||
|
||||
<div class="online_3d_viewer"
|
||||
style="width: 400px; height: 300px;"
|
||||
style="width: 360px; height: 240px;"
|
||||
model="../website/assets/models/solids.obj,../website/assets/models/solids.mtl"
|
||||
camera="2.18558,4.53834,2.35460,3.62488,2.61927,-0.52401,0.00000,1.00000,0.00000">
|
||||
</div>
|
||||
|
||||
<div class="online_3d_viewer"
|
||||
style="width: 400px; height: 300px;"
|
||||
style="width: 360px; height: 240px;"
|
||||
model="../website/assets/models/solids.obj,../website/assets/models/solids.mtl"
|
||||
camera="2.18558,4.53834,2.35460,3.62488,2.61927,-0.52401,0.00000,1.00000,0.00000,100.0">
|
||||
</div>
|
||||
|
||||
<div class="online_3d_viewer"
|
||||
style="width: 360px; height: 240px;"
|
||||
model="../website/assets/models/solids.obj,../website/assets/models/solids.mtl"
|
||||
camera="2.18558,4.53834,2.35460,3.62488,2.61927,-0.52401,0.00000,1.00000,0.00000"
|
||||
cameramode="orthographic">
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@ -90,7 +90,7 @@
|
||||
orthographicCamera.position.set (eye.x, eye.y, eye.z);
|
||||
orthographicCamera.up.set (up.x, up.y, up.z);
|
||||
orthographicCamera.lookAt (center);
|
||||
InitRenderer ('ortographic_canvas', orthographicCamera, width, height);
|
||||
InitRenderer ('orthographic_canvas', orthographicCamera, width, height);
|
||||
}
|
||||
|
||||
window.onload = function () {
|
||||
@ -101,7 +101,7 @@
|
||||
|
||||
<body>
|
||||
<canvas id="perspective_canvas"></canvas>
|
||||
<canvas id="ortographic_canvas"></canvas>
|
||||
<canvas id="orthographic_canvas"></canvas>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { Coord3D } from '../geometry/coord3d.js';
|
||||
import { RGBAColor, RGBColor } from '../model/color.js';
|
||||
import { Camera } from '../viewer/camera.js';
|
||||
import { CameraMode } from '../viewer/viewer.js';
|
||||
|
||||
export let ParameterConverter =
|
||||
{
|
||||
@ -55,6 +56,16 @@ export let ParameterConverter =
|
||||
return cameraParameters;
|
||||
},
|
||||
|
||||
CameraModeToString : function (cameraMode)
|
||||
{
|
||||
if (cameraMode === CameraMode.Perspective) {
|
||||
return 'perspective';
|
||||
} else if (cameraMode === CameraMode.Orthographic) {
|
||||
return 'orthographic';
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
StringToCamera : function (str)
|
||||
{
|
||||
if (str === null || str.length === 0) {
|
||||
@ -79,6 +90,16 @@ export let ParameterConverter =
|
||||
return camera;
|
||||
},
|
||||
|
||||
StringToCameraMode : function (str)
|
||||
{
|
||||
if (str === 'perspective') {
|
||||
return CameraMode.Perspective;
|
||||
} else if (str === 'orthographic') {
|
||||
return CameraMode.Orthographic;
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
RGBColorToString : function (color)
|
||||
{
|
||||
if (color === null) {
|
||||
@ -224,6 +245,12 @@ export class ParameterListBuilder
|
||||
return this;
|
||||
}
|
||||
|
||||
AddCameraMode (cameraMode)
|
||||
{
|
||||
this.AddUrlPart ('cameramode', ParameterConverter.CameraModeToString (cameraMode));
|
||||
return this;
|
||||
}
|
||||
|
||||
AddEnvironmentSettings (envSettings)
|
||||
{
|
||||
this.AddUrlPart ('envsettings', ParameterConverter.EnvironmentSettingsToString (envSettings));
|
||||
@ -290,6 +317,12 @@ export class ParameterListParser
|
||||
return ParameterConverter.StringToCamera (keywordParams);
|
||||
}
|
||||
|
||||
GetCameraMode ()
|
||||
{
|
||||
let keywordParams = this.GetKeywordParams ('cameramode');
|
||||
return ParameterConverter.StringToCameraMode (keywordParams);
|
||||
}
|
||||
|
||||
GetEnvironmentSettings ()
|
||||
{
|
||||
let environmentSettingsParams = this.GetKeywordParams ('envsettings');
|
||||
|
||||
@ -27,6 +27,10 @@ export class EmbeddedViewer
|
||||
let height = this.parentElement.clientHeight;
|
||||
this.viewer.Resize (width, height);
|
||||
|
||||
if (this.parameters.cameraMode) {
|
||||
this.viewer.SetCameraMode (this.parameters.cameraMode);
|
||||
}
|
||||
|
||||
if (this.parameters.backgroundColor) {
|
||||
this.viewer.SetBackgroundColor (this.parameters.backgroundColor);
|
||||
}
|
||||
@ -172,6 +176,12 @@ export function Init3DViewerElements (onReady)
|
||||
camera = ParameterConverter.StringToCamera (cameraParams);
|
||||
}
|
||||
|
||||
let cameraMode = null;
|
||||
let cameraModeParams = element.getAttribute ('cameramode');
|
||||
if (cameraModeParams) {
|
||||
cameraMode = ParameterConverter.StringToCameraMode (cameraModeParams);
|
||||
}
|
||||
|
||||
let backgroundColor = null;
|
||||
let backgroundColorParams = element.getAttribute ('backgroundcolor');
|
||||
if (backgroundColorParams) {
|
||||
@ -215,6 +225,7 @@ export function Init3DViewerElements (onReady)
|
||||
|
||||
return Init3DViewerElement (element, modelUrls, {
|
||||
camera : camera,
|
||||
cameraMode : cameraMode,
|
||||
backgroundColor : backgroundColor,
|
||||
defaultColor : defaultColor,
|
||||
edgeSettings : edgeSettings,
|
||||
|
||||
@ -337,6 +337,11 @@ export class Viewer
|
||||
return this.navigation.GetCamera ();
|
||||
}
|
||||
|
||||
GetCameraMode ()
|
||||
{
|
||||
return this.cameraMode;
|
||||
}
|
||||
|
||||
SetCamera (camera)
|
||||
{
|
||||
this.navigation.SetCamera (camera);
|
||||
@ -392,6 +397,14 @@ export class Viewer
|
||||
this.navigation.MoveCamera (newCamera, animation ? this.settings.animationSteps : 0);
|
||||
}
|
||||
|
||||
AdjustClippingPlanes ()
|
||||
{
|
||||
let boundingSphere = this.GetBoundingSphere ((meshUserData) => {
|
||||
return true;
|
||||
});
|
||||
this.AdjustClippingPlanesToSphere (boundingSphere);
|
||||
}
|
||||
|
||||
AdjustClippingPlanesToSphere (boundingSphere)
|
||||
{
|
||||
if (boundingSphere === null) {
|
||||
|
||||
@ -49,6 +49,10 @@ export class Embed
|
||||
];
|
||||
this.viewer.SetEnvironmentMapSettings (envMapTextures, bgIsEnvMap);
|
||||
|
||||
let cameraMode = this.hashHandler.GetCameraModeFromHash ();
|
||||
if (cameraMode !== null) {
|
||||
this.viewer.SetCameraMode (cameraMode);
|
||||
}
|
||||
let background = this.hashHandler.GetBackgroundFromHash ();
|
||||
if (background !== null) {
|
||||
this.viewer.SetBackgroundColor (background);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
export const FeatureSet =
|
||||
{
|
||||
|
||||
OrthographicView : false
|
||||
};
|
||||
|
||||
@ -48,6 +48,12 @@ export class HashHandler
|
||||
return parser.GetCamera ();
|
||||
}
|
||||
|
||||
GetCameraModeFromHash ()
|
||||
{
|
||||
let parser = CreateUrlParser (this.GetHash ());
|
||||
return parser.GetCameraMode ();
|
||||
}
|
||||
|
||||
GetBackgroundFromHash ()
|
||||
{
|
||||
let parser = CreateUrlParser (this.GetHash ());
|
||||
|
||||
@ -7,7 +7,7 @@ import { ButtonDialog } from './dialog.js';
|
||||
import { CopyToClipboard } from './utils.js';
|
||||
import { HandleEvent } from './eventhandler.js';
|
||||
|
||||
export function ShowSharingDialog (fileList, settings, camera)
|
||||
export function ShowSharingDialog (fileList, settings, viewer)
|
||||
{
|
||||
function AddCheckboxLine (parentDiv, text, id, onChange)
|
||||
{
|
||||
@ -55,14 +55,15 @@ export function ShowSharingDialog (fileList, settings, camera)
|
||||
sharingLinkInput.value = GetSharingLink (modelFiles);
|
||||
}
|
||||
|
||||
function AddEmbeddingCodeTab (parentDiv, modelFiles, settings, camera)
|
||||
function AddEmbeddingCodeTab (parentDiv, modelFiles, settings, viewer)
|
||||
{
|
||||
function GetEmbeddingCode (modelFiles, useCurrentSettings, settings, camera)
|
||||
function GetEmbeddingCode (modelFiles, useCurrentSettings, settings, viewer)
|
||||
{
|
||||
let builder = CreateUrlBuilder ();
|
||||
builder.AddModelUrls (modelFiles);
|
||||
if (useCurrentSettings) {
|
||||
builder.AddCamera (camera);
|
||||
builder.AddCamera (viewer.GetCamera ());
|
||||
builder.AddCameraMode (viewer.GetCameraMode ());
|
||||
let environmentSettings = {
|
||||
environmentMapName : settings.environmentMapName,
|
||||
backgroundIsEnvMap : settings.backgroundIsEnvMap
|
||||
@ -95,14 +96,14 @@ export function ShowSharingDialog (fileList, settings, camera)
|
||||
let optionsSection = AddDiv (section, 'ov_dialog_section');
|
||||
let embeddingCodeInput = AddCopyableTextInput (section, () => {
|
||||
HandleEvent ('model_shared', 'embedding_code');
|
||||
return GetEmbeddingCode (modelFiles, useCurrentSettings, settings, camera);
|
||||
return GetEmbeddingCode (modelFiles, useCurrentSettings, settings, viewer);
|
||||
});
|
||||
AddCheckboxLine (optionsSection, 'Use customized settings', 'embed_current_settings', (checked) => {
|
||||
useCurrentSettings = checked;
|
||||
embeddingCodeInput.value = GetEmbeddingCode (modelFiles, useCurrentSettings, settings, camera);
|
||||
embeddingCodeInput.value = GetEmbeddingCode (modelFiles, useCurrentSettings, settings, viewer);
|
||||
});
|
||||
|
||||
embeddingCodeInput.value = GetEmbeddingCode (modelFiles, useCurrentSettings, settings, camera);
|
||||
embeddingCodeInput.value = GetEmbeddingCode (modelFiles, useCurrentSettings, settings, viewer);
|
||||
}
|
||||
|
||||
if (!fileList.IsOnlyUrlSource ()) {
|
||||
@ -133,7 +134,7 @@ export function ShowSharingDialog (fileList, settings, camera)
|
||||
]);
|
||||
|
||||
AddSharingLinkTab (contentDiv, modelFiles);
|
||||
AddEmbeddingCodeTab (contentDiv, modelFiles, settings, camera);
|
||||
AddEmbeddingCodeTab (contentDiv, modelFiles, settings, viewer);
|
||||
|
||||
dialog.Open ();
|
||||
return dialog;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { GetFileExtension, TransformFileHostUrls } from '../engine/io/fileutils.js';
|
||||
import { InputFilesFromFileObjects, InputFilesFromUrls } from '../engine/import/importerfiles.js';
|
||||
import { ImportErrorCode, ImportSettings } from '../engine/import/importer.js';
|
||||
import { Viewer } from '../engine/viewer/viewer.js';
|
||||
import { CameraMode, Viewer } from '../engine/viewer/viewer.js';
|
||||
import { AddDiv, AddDomElement, ShowDomElement, SetDomElementOuterHeight } from '../engine/viewer/domutils.js';
|
||||
import { CalculatePopupPositionToScreen, ShowListPopup } from './dialogs.js';
|
||||
import { HandleEvent } from './eventhandler.js';
|
||||
@ -23,6 +23,7 @@ import { CookieGetBoolVal, CookieSetBoolVal } from './cookiehandler.js';
|
||||
import { ShadingType } from '../engine/threejs/threeutils.js';
|
||||
import { MeasureTool } from './measuretool.js';
|
||||
import { CloseAllDialogs } from './dialog.js';
|
||||
import { FeatureSet } from './featureset.js';
|
||||
|
||||
import * as THREE from 'three';
|
||||
|
||||
@ -556,14 +557,33 @@ export class Website
|
||||
this.viewer.FlipUpVector ();
|
||||
});
|
||||
AddSeparator (this.toolbar, ['only_on_model']);
|
||||
AddRadioButton (this.toolbar, ['fix_up_on', 'fix_up_off'], ['Fixed up vector', 'Free orbit'], 0, ['only_on_model'], (buttonIndex) => {
|
||||
if (buttonIndex === 0) {
|
||||
this.viewer.SetFixUpVector (true);
|
||||
} else if (buttonIndex === 1) {
|
||||
this.viewer.SetFixUpVector (false);
|
||||
}
|
||||
});
|
||||
AddSeparator (this.toolbar, ['only_full_width', 'only_on_model']);
|
||||
if (FeatureSet.OrthographicView) {
|
||||
AddRadioButton (this.toolbar, ['fix_up_on', 'fix_up_off'], ['Perspective camera', 'Orthographic camera'], 0, ['only_on_model'], (buttonIndex) => {
|
||||
if (buttonIndex === 0) {
|
||||
this.viewer.SetCameraMode (CameraMode.Perspective);
|
||||
} else if (buttonIndex === 1) {
|
||||
this.viewer.SetCameraMode (CameraMode.Orthographic);
|
||||
}
|
||||
});
|
||||
AddSeparator (this.toolbar, ['only_full_width', 'only_on_model']);
|
||||
AddRadioButton (this.toolbar, ['fix_up_on', 'fix_up_off'], ['Fixed up vector', 'Free orbit'], 0, ['only_full_width', 'only_on_model'], (buttonIndex) => {
|
||||
if (buttonIndex === 0) {
|
||||
this.viewer.SetFixUpVector (true);
|
||||
} else if (buttonIndex === 1) {
|
||||
this.viewer.SetFixUpVector (false);
|
||||
}
|
||||
});
|
||||
AddSeparator (this.toolbar, ['only_full_width', 'only_on_model']);
|
||||
} else {
|
||||
AddRadioButton (this.toolbar, ['fix_up_on', 'fix_up_off'], ['Fixed up vector', 'Free orbit'], 0, ['only_on_model'], (buttonIndex) => {
|
||||
if (buttonIndex === 0) {
|
||||
this.viewer.SetFixUpVector (true);
|
||||
} else if (buttonIndex === 1) {
|
||||
this.viewer.SetFixUpVector (false);
|
||||
}
|
||||
});
|
||||
AddSeparator (this.toolbar, ['only_full_width', 'only_on_model']);
|
||||
}
|
||||
let measureToolButton = AddPushButton (this.toolbar, 'measure', 'Measure', ['only_full_width', 'only_on_model'], (isSelected) => {
|
||||
HandleEvent ('measure_tool_activated', isSelected ? 'on' : 'off');
|
||||
this.navigator.SetSelection (null);
|
||||
@ -582,7 +602,7 @@ export class Website
|
||||
});
|
||||
});
|
||||
AddButton (this.toolbar, 'share', 'Share model', ['only_full_width', 'only_on_model'], () => {
|
||||
ShowSharingDialog (importer.GetFileList (), this.settings, this.viewer.GetCamera ());
|
||||
ShowSharingDialog (importer.GetFileList (), this.settings, this.viewer);
|
||||
});
|
||||
|
||||
this.parameters.fileInput.addEventListener ('change', (ev) => {
|
||||
|
||||
@ -15,22 +15,42 @@ describe ('Parameter List', function () {
|
||||
);
|
||||
let background = new OV.RGBAColor (4, 5, 6, 7);
|
||||
let color = new OV.RGBColor (1, 2, 3);
|
||||
let urlParams1 = OV.CreateUrlBuilder ().AddModelUrls (modelUrls).GetParameterList ();
|
||||
let urlParams2 = OV.CreateUrlBuilder ().AddCamera (camera).GetParameterList ();
|
||||
let urlParams3 = OV.CreateUrlBuilder ().AddModelUrls (modelUrls).AddCamera (camera).GetParameterList ();
|
||||
let urlParams4 = OV.CreateUrlBuilder ().AddModelUrls (modelUrls).AddCamera (camera).AddDefaultColor (color).GetParameterList ();
|
||||
let urlParams5 = OV.CreateUrlBuilder ().AddModelUrls (modelUrls).AddCamera (camera).AddBackgroundColor (background).AddDefaultColor (color).GetParameterList ();
|
||||
let urlParams6 = OV.CreateUrlBuilder ().AddEdgeSettings ({
|
||||
showEdges : true,
|
||||
edgeColor : new OV.RGBColor (1, 2, 3),
|
||||
edgeThreshold : 15
|
||||
}).GetParameterList ();
|
||||
assert.strictEqual (urlParams1, 'model=a.txt,b.txt');
|
||||
assert.strictEqual (urlParams2, 'camera=1.00000,1.00000,1.00000,0.00000,0.00000,0.00000,0.00000,0.00000,1.00000,45.00000');
|
||||
assert.strictEqual (urlParams3, 'model=a.txt,b.txt$camera=1.00000,1.00000,1.00000,0.00000,0.00000,0.00000,0.00000,0.00000,1.00000,45.00000');
|
||||
assert.strictEqual (urlParams4, 'model=a.txt,b.txt$camera=1.00000,1.00000,1.00000,0.00000,0.00000,0.00000,0.00000,0.00000,1.00000,45.00000$defaultcolor=1,2,3');
|
||||
assert.strictEqual (urlParams5, 'model=a.txt,b.txt$camera=1.00000,1.00000,1.00000,0.00000,0.00000,0.00000,0.00000,0.00000,1.00000,45.00000$backgroundcolor=4,5,6,7$defaultcolor=1,2,3');
|
||||
assert.strictEqual (urlParams6, 'edgesettings=on,1,2,3,15');
|
||||
{
|
||||
let urlParams = OV.CreateUrlBuilder ().AddModelUrls (modelUrls).GetParameterList ();
|
||||
assert.strictEqual (urlParams, 'model=a.txt,b.txt');
|
||||
}
|
||||
{
|
||||
let urlParams = OV.CreateUrlBuilder ().AddCamera (camera).GetParameterList ();
|
||||
assert.strictEqual (urlParams, 'camera=1.00000,1.00000,1.00000,0.00000,0.00000,0.00000,0.00000,0.00000,1.00000,45.00000');
|
||||
}
|
||||
{
|
||||
let urlParams = OV.CreateUrlBuilder ().AddModelUrls (modelUrls).AddCamera (camera).GetParameterList ();
|
||||
assert.strictEqual (urlParams, 'model=a.txt,b.txt$camera=1.00000,1.00000,1.00000,0.00000,0.00000,0.00000,0.00000,0.00000,1.00000,45.00000');
|
||||
}
|
||||
{
|
||||
let urlParams = OV.CreateUrlBuilder ().AddModelUrls (modelUrls).AddCamera (camera).AddDefaultColor (color).GetParameterList ();
|
||||
assert.strictEqual (urlParams, 'model=a.txt,b.txt$camera=1.00000,1.00000,1.00000,0.00000,0.00000,0.00000,0.00000,0.00000,1.00000,45.00000$defaultcolor=1,2,3');
|
||||
}
|
||||
{
|
||||
let urlParams = OV.CreateUrlBuilder ().AddModelUrls (modelUrls).AddCamera (camera).AddBackgroundColor (background).AddDefaultColor (color).GetParameterList ();
|
||||
assert.strictEqual (urlParams, 'model=a.txt,b.txt$camera=1.00000,1.00000,1.00000,0.00000,0.00000,0.00000,0.00000,0.00000,1.00000,45.00000$backgroundcolor=4,5,6,7$defaultcolor=1,2,3');
|
||||
}
|
||||
{
|
||||
let urlParams = OV.CreateUrlBuilder ().AddEdgeSettings ({
|
||||
showEdges : true,
|
||||
edgeColor : new OV.RGBColor (1, 2, 3),
|
||||
edgeThreshold : 15
|
||||
}).GetParameterList ();
|
||||
assert.strictEqual (urlParams, 'edgesettings=on,1,2,3,15');
|
||||
}
|
||||
{
|
||||
let urlParams = OV.CreateUrlBuilder ().AddCameraMode (OV.CameraMode.Perspective).GetParameterList ();
|
||||
assert.strictEqual (urlParams, 'cameramode=perspective');
|
||||
}
|
||||
{
|
||||
let urlParams = OV.CreateUrlBuilder ().AddCameraMode (OV.CameraMode.Orthographic).GetParameterList ();
|
||||
assert.strictEqual (urlParams, 'cameramode=orthographic');
|
||||
}
|
||||
});
|
||||
|
||||
it ('Parameter list parser', function () {
|
||||
@ -43,48 +63,72 @@ describe ('Parameter List', function () {
|
||||
);
|
||||
let background = new OV.RGBAColor (4, 5, 6, 7);
|
||||
let color = new OV.RGBColor (1, 2, 3);
|
||||
let urlParamsLegacy = 'a.txt,b.txt';
|
||||
let urlParams1 = 'model=a.txt,b.txt';
|
||||
let urlParams2 = 'camera=1.0000,1.0000,1.0000,0.0000,0.0000,0.0000,0.0000,0.0000,1.0000';
|
||||
let urlParams2b = 'camera=1.0000,1.0000,1.0000,0.0000,0.0000,0.0000,0.0000,0.0000,1.0000,60.0000';
|
||||
let urlParams3 = 'model=a.txt,b.txt$camera=1.0000,1.0000,1.0000,0.0000,0.0000,0.0000,0.0000,0.0000,1.0000';
|
||||
let urlParams4 = 'model=a.txt,b.txt$camera=1.0000,1.0000,1.0000,0.0000,0.0000,0.0000,0.0000,0.0000,1.0000$defaultcolor=1,2,3';
|
||||
let urlParams5 = 'model=a.txt,b.txt$camera=1.0000,1.0000,1.0000,0.0000,0.0000,0.0000,0.0000,0.0000,1.0000$backgroundcolor=4,5,6,7$defaultcolor=1,2,3';
|
||||
let urlParams6 = 'edgesettings=on,1,2,3,15';
|
||||
let parserLegacy = OV.CreateUrlParser (urlParamsLegacy);
|
||||
assert.deepStrictEqual (parserLegacy.GetModelUrls (), modelUrls);
|
||||
assert.deepStrictEqual (parserLegacy.GetCamera (), null);
|
||||
let parser1 = OV.CreateUrlParser (urlParams1);
|
||||
assert.deepStrictEqual (parser1.GetModelUrls (), modelUrls);
|
||||
assert.deepStrictEqual (parser1.GetCamera (), null);
|
||||
assert.deepStrictEqual (parser1.GetDefaultColor (), null);
|
||||
let parser2 = OV.CreateUrlParser (urlParams2);
|
||||
assert.deepStrictEqual (parser2.GetModelUrls (), null);
|
||||
assert.deepStrictEqual (parser2.GetCamera (), camera);
|
||||
assert.deepStrictEqual (parser2.GetDefaultColor (), null);
|
||||
let parser2b = OV.CreateUrlParser (urlParams2b);
|
||||
assert.deepStrictEqual (parser2b.GetModelUrls (), null);
|
||||
assert.deepStrictEqual (parser2b.GetCamera (), new OV.Camera (new OV.Coord3D (1.0, 1.0, 1.0), new OV.Coord3D (0.0, 0.0, 0.0), new OV.Coord3D (0.0, 0.0, 1.0), 60.0));
|
||||
assert.deepStrictEqual (parser2b.GetDefaultColor (), null);
|
||||
let parser3 = OV.CreateUrlParser (urlParams3);
|
||||
assert.deepStrictEqual (parser3.GetModelUrls (), modelUrls);
|
||||
assert.deepStrictEqual (parser3.GetCamera (), camera);
|
||||
assert.deepStrictEqual (parser3.GetDefaultColor (), null);
|
||||
let parser4 = OV.CreateUrlParser (urlParams4);
|
||||
assert.deepStrictEqual (parser4.GetModelUrls (), modelUrls);
|
||||
assert.deepStrictEqual (parser4.GetCamera (), camera);
|
||||
assert.deepStrictEqual (parser4.GetDefaultColor (), color);
|
||||
let parser5 = OV.CreateUrlParser (urlParams5);
|
||||
assert.deepStrictEqual (parser5.GetModelUrls (), modelUrls);
|
||||
assert.deepStrictEqual (parser5.GetCamera (), camera);
|
||||
assert.deepStrictEqual (parser5.GetDefaultColor (), color);
|
||||
assert.deepStrictEqual (parser5.GetBackgroundColor (), background);
|
||||
let parser6 = OV.CreateUrlParser (urlParams6);
|
||||
assert.deepStrictEqual (parser6.GetEdgeSettings (), {
|
||||
showEdges : true,
|
||||
edgeColor : new OV.RGBColor (1, 2, 3),
|
||||
edgeThreshold : 15
|
||||
});
|
||||
|
||||
{
|
||||
let parser = OV.CreateUrlParser ('a.txt,b.txt');
|
||||
assert.deepStrictEqual (parser.GetModelUrls (), modelUrls);
|
||||
assert.deepStrictEqual (parser.GetCamera (), null);
|
||||
}
|
||||
|
||||
{
|
||||
let parser = OV.CreateUrlParser ('model=a.txt,b.txt');
|
||||
assert.deepStrictEqual (parser.GetModelUrls (), modelUrls);
|
||||
assert.deepStrictEqual (parser.GetCamera (), null);
|
||||
assert.deepStrictEqual (parser.GetDefaultColor (), null);
|
||||
}
|
||||
|
||||
{
|
||||
let parser = OV.CreateUrlParser ('camera=1.0000,1.0000,1.0000,0.0000,0.0000,0.0000,0.0000,0.0000,1.0000');
|
||||
assert.deepStrictEqual (parser.GetModelUrls (), null);
|
||||
assert.deepStrictEqual (parser.GetCamera (), camera);
|
||||
assert.deepStrictEqual (parser.GetDefaultColor (), null);
|
||||
}
|
||||
|
||||
{
|
||||
let parser = OV.CreateUrlParser ('camera=1.0000,1.0000,1.0000,0.0000,0.0000,0.0000,0.0000,0.0000,1.0000,60.0000');
|
||||
assert.deepStrictEqual (parser.GetModelUrls (), null);
|
||||
assert.deepStrictEqual (parser.GetCamera (), new OV.Camera (new OV.Coord3D (1.0, 1.0, 1.0), new OV.Coord3D (0.0, 0.0, 0.0), new OV.Coord3D (0.0, 0.0, 1.0), 60.0));
|
||||
assert.deepStrictEqual (parser.GetDefaultColor (), null);
|
||||
}
|
||||
|
||||
{
|
||||
let parser = OV.CreateUrlParser ('model=a.txt,b.txt$camera=1.0000,1.0000,1.0000,0.0000,0.0000,0.0000,0.0000,0.0000,1.0000');
|
||||
assert.deepStrictEqual (parser.GetModelUrls (), modelUrls);
|
||||
assert.deepStrictEqual (parser.GetCamera (), camera);
|
||||
assert.deepStrictEqual (parser.GetDefaultColor (), null);
|
||||
}
|
||||
|
||||
{
|
||||
let parser = OV.CreateUrlParser ('model=a.txt,b.txt$camera=1.0000,1.0000,1.0000,0.0000,0.0000,0.0000,0.0000,0.0000,1.0000$defaultcolor=1,2,3');
|
||||
assert.deepStrictEqual (parser.GetModelUrls (), modelUrls);
|
||||
assert.deepStrictEqual (parser.GetCamera (), camera);
|
||||
assert.deepStrictEqual (parser.GetDefaultColor (), color);
|
||||
}
|
||||
|
||||
{
|
||||
let parser = OV.CreateUrlParser ('model=a.txt,b.txt$camera=1.0000,1.0000,1.0000,0.0000,0.0000,0.0000,0.0000,0.0000,1.0000$backgroundcolor=4,5,6,7$defaultcolor=1,2,3');
|
||||
assert.deepStrictEqual (parser.GetModelUrls (), modelUrls);
|
||||
assert.deepStrictEqual (parser.GetCamera (), camera);
|
||||
assert.deepStrictEqual (parser.GetDefaultColor (), color);
|
||||
assert.deepStrictEqual (parser.GetBackgroundColor (), background);
|
||||
}
|
||||
|
||||
{
|
||||
let parser = OV.CreateUrlParser ('edgesettings=on,1,2,3,15');
|
||||
assert.deepStrictEqual (parser.GetEdgeSettings (), {
|
||||
showEdges : true,
|
||||
edgeColor : new OV.RGBColor (1, 2, 3),
|
||||
edgeThreshold : 15
|
||||
});
|
||||
}
|
||||
{
|
||||
let parser = OV.CreateUrlParser ('cameramode=perspective');
|
||||
assert.deepStrictEqual (parser.GetCameraMode (), OV.CameraMode.Perspective);
|
||||
}
|
||||
{
|
||||
let parser = OV.CreateUrlParser ('cameramode=orthographic');
|
||||
assert.deepStrictEqual (parser.GetCameraMode (), OV.CameraMode.Orthographic);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user