@combeenation/3d-viewer 3.0.0-rc2 → 4.0.0-alpha6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +0 -0
- package/README.md +111 -111
- package/dist/lib-cjs/api/classes/animationInterface.d.ts +8 -8
- package/dist/lib-cjs/api/classes/animationInterface.js +1 -1
- package/dist/lib-cjs/api/classes/animationInterface.js.map +0 -0
- package/dist/lib-cjs/api/classes/dottedPath.d.ts +79 -79
- package/dist/lib-cjs/api/classes/dottedPath.js +190 -190
- package/dist/lib-cjs/api/classes/dottedPath.js.map +0 -0
- package/dist/lib-cjs/api/classes/element.d.ts +130 -125
- package/dist/lib-cjs/api/classes/element.js +752 -638
- package/dist/lib-cjs/api/classes/element.js.map +1 -1
- package/dist/lib-cjs/api/classes/elementParameterizable.d.ts +14 -14
- package/dist/lib-cjs/api/classes/elementParameterizable.js +134 -134
- package/dist/lib-cjs/api/classes/elementParameterizable.js.map +0 -0
- package/dist/lib-cjs/api/classes/event.d.ts +326 -312
- package/dist/lib-cjs/api/classes/event.js +371 -357
- package/dist/lib-cjs/api/classes/event.js.map +1 -1
- package/dist/lib-cjs/api/classes/eventBroadcaster.d.ts +26 -26
- package/dist/lib-cjs/api/classes/eventBroadcaster.js +53 -53
- package/dist/lib-cjs/api/classes/eventBroadcaster.js.map +0 -0
- package/dist/lib-cjs/api/classes/parameter.d.ts +259 -161
- package/dist/lib-cjs/api/classes/parameter.js +387 -261
- package/dist/lib-cjs/api/classes/parameter.js.map +1 -1
- package/dist/lib-cjs/api/classes/parameterObservable.d.ts +36 -36
- package/dist/lib-cjs/api/classes/parameterObservable.js +101 -126
- package/dist/lib-cjs/api/classes/parameterObservable.js.map +1 -1
- package/dist/lib-cjs/api/classes/parameterizable.d.ts +15 -0
- package/dist/lib-cjs/api/classes/parameterizable.js +150 -0
- package/dist/lib-cjs/api/classes/parameterizable.js.map +1 -0
- package/dist/lib-cjs/api/classes/placementAnimation.d.ts +38 -38
- package/dist/lib-cjs/api/classes/placementAnimation.js +138 -138
- package/dist/lib-cjs/api/classes/placementAnimation.js.map +0 -0
- package/dist/lib-cjs/api/classes/variant.d.ts +224 -176
- package/dist/lib-cjs/api/classes/variant.js +1126 -770
- package/dist/lib-cjs/api/classes/variant.js.map +1 -1
- package/dist/lib-cjs/api/classes/variantInstance.d.ts +45 -41
- package/dist/lib-cjs/api/classes/variantInstance.js +108 -98
- package/dist/lib-cjs/api/classes/variantInstance.js.map +1 -1
- package/dist/lib-cjs/api/classes/variantParameterizable.d.ts +17 -0
- package/dist/lib-cjs/api/classes/variantParameterizable.js +93 -0
- package/dist/lib-cjs/api/classes/variantParameterizable.js.map +1 -0
- package/dist/lib-cjs/api/classes/viewer.d.ts +127 -128
- package/dist/lib-cjs/api/classes/viewer.js +486 -486
- package/dist/lib-cjs/api/classes/viewer.js.map +1 -1
- package/dist/lib-cjs/api/classes/viewerLight.d.ts +66 -0
- package/dist/lib-cjs/api/classes/viewerLight.js +350 -0
- package/dist/lib-cjs/api/classes/viewerLight.js.map +1 -0
- package/dist/lib-cjs/api/emitter.d.ts +35 -0
- package/dist/lib-cjs/api/emitter.js +61 -0
- package/dist/lib-cjs/api/emitter.js.map +1 -0
- package/dist/lib-cjs/api/internal/debugViewer.d.ts +13 -13
- package/dist/lib-cjs/api/internal/debugViewer.js +87 -87
- package/dist/lib-cjs/api/internal/debugViewer.js.map +0 -0
- package/dist/lib-cjs/api/internal/lensRendering.d.ts +8 -8
- package/dist/lib-cjs/api/internal/lensRendering.js +11 -11
- package/dist/lib-cjs/api/internal/lensRendering.js.map +0 -0
- package/dist/lib-cjs/api/internal/sceneSetup.d.ts +10 -6
- package/dist/lib-cjs/api/internal/sceneSetup.js +231 -227
- package/dist/lib-cjs/api/internal/sceneSetup.js.map +1 -1
- package/dist/lib-cjs/api/manager/animationManager.d.ts +29 -29
- package/dist/lib-cjs/api/manager/animationManager.js +121 -121
- package/dist/lib-cjs/api/manager/animationManager.js.map +0 -0
- package/dist/lib-cjs/api/manager/sceneManager.d.ts +32 -32
- package/dist/lib-cjs/api/manager/sceneManager.js +132 -132
- package/dist/lib-cjs/api/manager/sceneManager.js.map +0 -0
- package/dist/lib-cjs/api/manager/variantInstanceManager.d.ts +90 -90
- package/dist/lib-cjs/api/manager/variantInstanceManager.js +321 -321
- package/dist/lib-cjs/api/manager/variantInstanceManager.js.map +0 -0
- package/dist/lib-cjs/api/store/specStorage.d.ts +24 -24
- package/dist/lib-cjs/api/store/specStorage.js +51 -51
- package/dist/lib-cjs/api/store/specStorage.js.map +0 -0
- package/dist/lib-cjs/api/util/babylonHelper.d.ts +160 -125
- package/dist/lib-cjs/api/util/babylonHelper.js +465 -368
- package/dist/lib-cjs/api/util/babylonHelper.js.map +1 -1
- package/dist/lib-cjs/api/util/globalTypes.d.ts +321 -275
- package/dist/lib-cjs/api/util/globalTypes.js +1 -1
- package/dist/lib-cjs/api/util/globalTypes.js.map +0 -0
- package/dist/lib-cjs/api/util/resourceHelper.d.ts +26 -30
- package/dist/lib-cjs/api/util/resourceHelper.js +237 -247
- package/dist/lib-cjs/api/util/resourceHelper.js.map +1 -1
- package/dist/lib-cjs/api/util/stringHelper.d.ts +9 -0
- package/dist/lib-cjs/api/util/stringHelper.js +26 -0
- package/dist/lib-cjs/api/util/stringHelper.js.map +1 -0
- package/dist/lib-cjs/buildinfo.json +3 -3
- package/dist/lib-cjs/index.d.ts +48 -46
- package/dist/lib-cjs/index.js +86 -82
- package/dist/lib-cjs/index.js.map +1 -1
- package/package.json +83 -83
- package/src/api/classes/animationInterface.ts +11 -11
- package/src/api/classes/dottedPath.ts +189 -189
- package/src/api/classes/element.ts +648 -606
- package/src/api/classes/event.ts +370 -355
- package/src/api/classes/eventBroadcaster.ts +54 -54
- package/src/api/classes/parameter.ts +408 -270
- package/src/api/classes/parameterObservable.ts +99 -121
- package/src/api/classes/{elementParameterizable.ts → parameterizable.ts} +89 -78
- package/src/api/classes/placementAnimation.ts +133 -133
- package/src/api/classes/variant.ts +799 -652
- package/src/api/classes/variantInstance.ts +88 -81
- package/src/api/classes/variantParameterizable.ts +73 -0
- package/src/api/classes/viewer.ts +420 -421
- package/src/api/classes/viewerLight.ts +295 -0
- package/src/api/internal/debugViewer.ts +81 -81
- package/src/api/internal/lensRendering.ts +10 -10
- package/src/api/internal/sceneSetup.ts +194 -204
- package/src/api/manager/animationManager.ts +116 -116
- package/src/api/manager/sceneManager.ts +105 -105
- package/src/api/manager/variantInstanceManager.ts +236 -236
- package/src/api/store/specStorage.ts +53 -53
- package/src/api/util/babylonHelper.ts +497 -392
- package/src/api/util/globalTypes.ts +369 -314
- package/src/api/util/resourceHelper.ts +157 -168
- package/src/api/util/stringHelper.ts +26 -0
- package/src/buildinfo.json +2 -2
- package/src/commonjs.tsconfig.json +13 -13
- package/src/declaration.tsconfig.json +10 -10
- package/src/dev.ts +45 -60
- package/src/es6.tsconfig.json +13 -13
- package/src/index.ts +91 -87
- package/src/pagesconfig.json +51 -47
- package/src/tsconfig.json +43 -43
- package/src/tsconfig.types.json +9 -9
- package/src/types.d.ts +4 -4
- package/src/assets/02_environment.env +0 -0
- package/src/assets/02_test_hdri_flipped.hdr +0 -0
- package/src/assets/07rDvxP2xTk.glb +0 -0
- package/src/assets/08L8DrdZt8y.glb +0 -0
- package/src/assets/CB-6250/main.js +0 -427
- package/src/assets/CB-6250/models/.gitkeep +0 -1
- package/src/assets/CB-6250/models/candle.glb +0 -0
- package/src/assets/CB-6250/models/lamp.glb +0 -0
- package/src/assets/CB-6250/models/molto-bido.glb +0 -0
- package/src/assets/CB-6250/models/mtron.glb +0 -0
- package/src/assets/CB-6250/models/mtron_split_geometry.glb +0 -0
- package/src/assets/CB-6250/models/mtron_split_material.glb +0 -0
- package/src/assets/KTM1290SA/AvatarAdv.glb +0 -0
- package/src/assets/KTM1290SA/ktm1290SA.ts +0 -77
- package/src/assets/KTM1290SA/scene.json +0 -16
- package/src/assets/_draft/main.js +0 -117
- package/src/assets/_draft/models/.gitkeep +0 -1
- package/src/assets/_draft/models/_demo.glb +0 -0
- package/src/assets/_draft/studio.env +0 -0
- package/src/assets/bike/CompleteBike_Optim_986K_01.glb +0 -0
- package/src/assets/bike/complete.json +0 -19
- package/src/assets/bike/index.json +0 -9
- package/src/assets/bike/setup.json +0 -11
- package/src/assets/ctrls-helper.ts +0 -89
- package/src/assets/cube/10 environment.env +0 -0
- package/src/assets/cube/bin_svg_logo_test.glb +0 -0
- package/src/assets/cube/cube.ts +0 -42
- package/src/assets/cube/cube_v2.glb +0 -0
- package/src/assets/cube/scene.ts +0 -83
- package/src/assets/cube/testCylinderUVs.glb +0 -0
- package/src/assets/environment.env +0 -0
- package/src/assets/hoferkerzen/hoferkerzen.glb +0 -0
- package/src/assets/hoferkerzen/index.json +0 -9
- package/src/assets/hoferkerzen/setup.json +0 -11
- package/src/assets/hoferkerzen/variant_kgl.json +0 -41
- package/src/assets/husqvarna-instanced-meshes/husqvarna.env +0 -0
- package/src/assets/husqvarna-instanced-meshes/husqvarna.glb +0 -0
- package/src/assets/husqvarna-instanced-meshes/main.ts +0 -108
- package/src/assets/index.html +0 -144
- package/src/assets/index.json +0 -9
- package/src/assets/linkeddups/example_2_instances.glb +0 -0
- package/src/assets/linkeddups/spec.ts +0 -32
- package/src/assets/molto-mova-multi-instance-shown-bug/main.ts +0 -106
- package/src/assets/molto-mova-multi-instance-shown-bug/molto-mova-rc82.glb +0 -0
- package/src/assets/molto-mova-multi-instance-shown-bug/molto-mova-volare.glb +0 -0
- package/src/assets/molto-mova-multi-instance-shown-bug/studio.env +0 -0
- package/src/assets/moltomova/10 environment.env +0 -0
- package/src/assets/moltomova/RC65.glb +0 -0
- package/src/assets/moltomova/RC82.glb +0 -0
- package/src/assets/moltomova/TPH67.glb +0 -0
- package/src/assets/moltomova/TPH82.glb +0 -0
- package/src/assets/moltomova/Volare.glb +0 -0
- package/src/assets/moltomova/moltomova-cl3d-spec-rc65.ts +0 -159
- package/src/assets/moltomova/moltomova-cl3d-spec-rc82.ts +0 -118
- package/src/assets/moltomova/moltomova-cl3d-spec-scene.ts +0 -57
- package/src/assets/moltomova/moltomova-cl3d-spec-tph67.ts +0 -199
- package/src/assets/moltomova/moltomova-cl3d-spec-tph82.ts +0 -173
- package/src/assets/moltomova/moltomova-cl3d-spec-volare65.ts +0 -173
- package/src/assets/moltomova/moltomova.ts +0 -175
- package/src/assets/mova.json +0 -18
- package/src/assets/mova_3_phase_rail.glb +0 -0
- package/src/assets/mova_3_phase_rail.json +0 -86
- package/src/assets/mova_recessed_luminaire.glb +0 -0
- package/src/assets/mova_recessed_luminaire.json +0 -81
- package/src/assets/nessie/gltf-test-no-material.gltf +0 -142
- package/src/assets/nessie/gltf-test-no-material_data.bin +0 -0
- package/src/assets/nessie/gltf-test-rotation.gltf +0 -142
- package/src/assets/nessie/gltf-test-rotation_data.bin +0 -0
- package/src/assets/nessie/gltf-test.gltf +0 -178
- package/src/assets/nessie/gltf-test_data.bin +0 -0
- package/src/assets/nessie/index.json +0 -9
- package/src/assets/nessie/nessie_basic.json +0 -24
- package/src/assets/nessie/setup.json +0 -12
- package/src/assets/scene.json +0 -64
- package/src/assets/setup.json +0 -25
- package/src/assets/small_cave_1k.hdr +0 -0
- package/src/assets/svgTo3D/09aJssVZrjk.env +0 -0
- package/src/assets/svgTo3D/09f0zfBQBWK.glb +0 -0
- package/src/assets/svgTo3D/9bae062709f8a7803769ba955cde3c4a.jpg +0 -0
- package/src/assets/svgTo3D/logo-cyledge.svg +0 -19
- package/src/assets/svgTo3D/spec.ts +0 -56
- package/src/assets/svgTo3D/svg_assets/09fmVjc59hQ.png +0 -0
- package/src/assets/svgTo3D/svg_assets/LDI2apCSOBg7S-QT7pb0EPOreec.woff2 +0 -0
- package/src/assets/svgTo3D/svg_assets/unineue_regular.woff2 +0 -0
- package/src/assets/svgTo3D/testCube.glb +0 -0
- package/src/assets/svgTo3D/testCube001.glb +0 -0
- package/src/assets/svgTo3D/testCubeSpec.ts +0 -49
- package/src/assets/textures/grass.png +0 -0
- package/src/assets/textures/seamless-grunge-scratched-texture.jpg +0 -0
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Remove the `#dummy-div` and clear `textContent` or `#ctrls-panel` if it has no childs.
|
|
3
|
-
*
|
|
4
|
-
* Not sure why we really need this `#dummy-div` in the first place but without it flex box wasn't behaving the way I
|
|
5
|
-
* wanted it to 🤷♂️
|
|
6
|
-
*
|
|
7
|
-
* Without clearing `textContent`, the `:empty` rule of the `#ctrls-panel` wouldn't work when no controls were added...
|
|
8
|
-
*/
|
|
9
|
-
export function cleanUpCtrlsPanel() {
|
|
10
|
-
const dummyDiv = document.querySelector( '#dummy-div' );
|
|
11
|
-
if( dummyDiv && dummyDiv.parentNode ) {
|
|
12
|
-
dummyDiv.parentNode.removeChild( dummyDiv );
|
|
13
|
-
}
|
|
14
|
-
const ctrlsPanel = document.querySelector( '#ctrls-panel' );
|
|
15
|
-
if( !ctrlsPanel || !ctrlsPanel.children.length ) {
|
|
16
|
-
ctrlsPanel!.textContent = '';
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* @param name
|
|
22
|
-
* @param text
|
|
23
|
-
* @param clickListener
|
|
24
|
-
*/
|
|
25
|
-
export function createButton( name: string, text: string, clickListener: CallableFunction ) {
|
|
26
|
-
let btn = document.createElement( 'button' );
|
|
27
|
-
btn.type = 'button';
|
|
28
|
-
btn.id = name;
|
|
29
|
-
btn.textContent = text;
|
|
30
|
-
btn.onclick = () => clickListener();
|
|
31
|
-
|
|
32
|
-
let ctrlsPanel = window.document.querySelector( '#controls' );
|
|
33
|
-
if( ctrlsPanel ) {
|
|
34
|
-
ctrlsPanel.appendChild( btn );
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
*
|
|
40
|
-
* @param name
|
|
41
|
-
* @param text
|
|
42
|
-
* @param options
|
|
43
|
-
* @param changeListener
|
|
44
|
-
*/
|
|
45
|
-
export function createCombobox( name: string, text: string, options: { [name: string]: string }, changeListener: CallableFunction ) {
|
|
46
|
-
let label = document.createElement( 'label' );
|
|
47
|
-
label.htmlFor = name;
|
|
48
|
-
label.textContent = text;
|
|
49
|
-
label.className = 'combobox'
|
|
50
|
-
|
|
51
|
-
let cbox = document.createElement( 'select' );
|
|
52
|
-
cbox.id = name;
|
|
53
|
-
cbox.onchange = () => changeListener( cbox.value );
|
|
54
|
-
|
|
55
|
-
for( const key in options ) {
|
|
56
|
-
cbox.add( new Option( options[key], key ) );
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
let ctrlsPanel = window.document.querySelector( '#controls' );
|
|
60
|
-
if( ctrlsPanel ) {
|
|
61
|
-
ctrlsPanel.append( label, cbox );
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* @param {string} name
|
|
67
|
-
* @param {string} text
|
|
68
|
-
* @param {boolean} value
|
|
69
|
-
* @param {CheckBoxChangeCb} changeListener
|
|
70
|
-
*/
|
|
71
|
-
export function createCheckbox(name: string, text: string, value: any, changeListener: any) {
|
|
72
|
-
let container = document.createElement('div');
|
|
73
|
-
container.className = 'toggle';
|
|
74
|
-
|
|
75
|
-
let label = document.createElement('label');
|
|
76
|
-
label.htmlFor = name;
|
|
77
|
-
label.textContent = text;
|
|
78
|
-
|
|
79
|
-
let cbox = document.createElement('input');
|
|
80
|
-
cbox.id = name;
|
|
81
|
-
cbox.checked = value;
|
|
82
|
-
cbox.type = 'checkbox';
|
|
83
|
-
cbox.onchange = () => changeListener(cbox.checked);
|
|
84
|
-
|
|
85
|
-
container?.append(cbox, label);
|
|
86
|
-
|
|
87
|
-
let ctrlsPanel = window.document.querySelector('#controls');
|
|
88
|
-
ctrlsPanel?.append(container);
|
|
89
|
-
}
|
|
Binary file
|
|
Binary file
|
package/src/assets/cube/cube.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { scene } from './scene'
|
|
2
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export const spec: StructureJson = {
|
|
6
|
-
scene: scene,
|
|
7
|
-
setup: {
|
|
8
|
-
instances: [
|
|
9
|
-
{
|
|
10
|
-
name: 'My Cube',
|
|
11
|
-
variant: 'My Cube',
|
|
12
|
-
parameters: {
|
|
13
|
-
visible: true,
|
|
14
|
-
rotation: '(-20, 20, -10)',
|
|
15
|
-
scaling: '( 1, 1, 2 )',
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
],
|
|
19
|
-
},
|
|
20
|
-
variants: {
|
|
21
|
-
'My Cube': {
|
|
22
|
-
glTF: '/assets/cube/testCylinderUVs.glb',
|
|
23
|
-
parameters: {},
|
|
24
|
-
elements: {
|
|
25
|
-
'Plotting Board': {
|
|
26
|
-
paths: {
|
|
27
|
-
include: ['__root__.testCylinder'],
|
|
28
|
-
},
|
|
29
|
-
paintables: {
|
|
30
|
-
'Board': {
|
|
31
|
-
path: '__root__.testCylinder',
|
|
32
|
-
textureOptions: 512,
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
/*
|
|
37
|
-
'Whole Cube': ['__root__.Root.subnet1.box1']
|
|
38
|
-
*/
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
};
|
|
Binary file
|
package/src/assets/cube/scene.ts
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
export const scene: SceneJson = {
|
|
2
|
-
meshPicking: true,
|
|
3
|
-
parameters: {
|
|
4
|
-
environment: '/assets/cube/10%20environment.env',
|
|
5
|
-
'environment.rotation': 180,
|
|
6
|
-
},
|
|
7
|
-
engine: {
|
|
8
|
-
antialiasing: true,
|
|
9
|
-
options: {
|
|
10
|
-
//preserveDrawingBuffer: true,
|
|
11
|
-
//stencil: true,
|
|
12
|
-
},
|
|
13
|
-
},
|
|
14
|
-
scene: {
|
|
15
|
-
globals: {
|
|
16
|
-
shadows: {
|
|
17
|
-
enabled: true,
|
|
18
|
-
type: 'contact',
|
|
19
|
-
settings: [],
|
|
20
|
-
generator: [],
|
|
21
|
-
receiver: [],
|
|
22
|
-
},
|
|
23
|
-
//aa: 'fxaa',
|
|
24
|
-
'tone-mapping': true,
|
|
25
|
-
'camera-settings': {
|
|
26
|
-
contrast: 1,
|
|
27
|
-
exposure: 1.0,
|
|
28
|
-
bloom: {
|
|
29
|
-
enabled: false,
|
|
30
|
-
},
|
|
31
|
-
dof: {
|
|
32
|
-
enabled: false,
|
|
33
|
-
settings: {
|
|
34
|
-
dof_threshold: 1,
|
|
35
|
-
dof_gain: 1,
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
sharpen: {
|
|
39
|
-
enabled: false,
|
|
40
|
-
settings: {},
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
lights: {
|
|
45
|
-
default: {
|
|
46
|
-
type: 'hemispheric',
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
cameras: {
|
|
50
|
-
'first-camera': {
|
|
51
|
-
type: 'arc',
|
|
52
|
-
active: true,
|
|
53
|
-
fov: 45,
|
|
54
|
-
target: '(0, 0, 0)',
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
placements: {
|
|
59
|
-
'my fancy placement': {
|
|
60
|
-
//alpha: 2,
|
|
61
|
-
//beta: 4,
|
|
62
|
-
//radius: 60,
|
|
63
|
-
position: '(-0.24968802207216673, -59.99700063013537, 0.5455669732317799)',
|
|
64
|
-
},
|
|
65
|
-
'my second placement': {
|
|
66
|
-
radius: 160,
|
|
67
|
-
beta: 2,
|
|
68
|
-
},
|
|
69
|
-
'third': {
|
|
70
|
-
target: '(0, 30, 0)',
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
animations: {
|
|
74
|
-
'my fancy animation': {
|
|
75
|
-
ease: 'power2.inOut',
|
|
76
|
-
duration: 3,
|
|
77
|
-
},
|
|
78
|
-
'my second animation': {
|
|
79
|
-
ease: 'elastic.inOut',
|
|
80
|
-
duration: 2,
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"glTF": {
|
|
3
|
-
"rootUrl": "assets/hoferkerzen/",
|
|
4
|
-
"fileName": "hoferkerzen.glb"
|
|
5
|
-
},
|
|
6
|
-
"elements": {
|
|
7
|
-
"Kappe": {
|
|
8
|
-
"paths": {
|
|
9
|
-
"include": [
|
|
10
|
-
"__root__.RootNode.KGL_capMetal"
|
|
11
|
-
]
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
"Docht": {
|
|
15
|
-
"paths": {
|
|
16
|
-
"include": [
|
|
17
|
-
"__root__.RootNode.KGL_docht",
|
|
18
|
-
"__root__.RootNode.KGL_docht1"
|
|
19
|
-
]
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
"Wachs": {
|
|
23
|
-
"paths": {
|
|
24
|
-
"include": [
|
|
25
|
-
"__root__.RootNode.KGL_wax_sides",
|
|
26
|
-
"__root__.RootNode.KGL_wax_top"
|
|
27
|
-
]
|
|
28
|
-
},
|
|
29
|
-
"paintables": {
|
|
30
|
-
"my_paintable": {
|
|
31
|
-
"path": "__root__.RootNode.KGL_wax_sides",
|
|
32
|
-
"textureOptions": 512
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"parameters": {
|
|
38
|
-
"highlight.enabled": true,
|
|
39
|
-
"highlight.color": "(0,255,255)"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { Emitter, Event, Parameter } from 'index';
|
|
2
|
-
import { merge, set } from 'lodash-es';
|
|
3
|
-
import { createButton, createCombobox } from '../ctrls-helper';
|
|
4
|
-
|
|
5
|
-
export function createSpec(): StructureJson {
|
|
6
|
-
return {
|
|
7
|
-
scene: {
|
|
8
|
-
parameters: {
|
|
9
|
-
environment: 'assets/husqvarna-instanced-meshes/husqvarna.env',
|
|
10
|
-
},
|
|
11
|
-
engine: {
|
|
12
|
-
antialiasing: true,
|
|
13
|
-
options: {
|
|
14
|
-
preserveDrawingBuffer: true,
|
|
15
|
-
stencil: true,
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
scene: {
|
|
19
|
-
globals: {},
|
|
20
|
-
lights: {},
|
|
21
|
-
cameras: {},
|
|
22
|
-
},
|
|
23
|
-
meshPicking: true,
|
|
24
|
-
},
|
|
25
|
-
setup: {
|
|
26
|
-
instances: [
|
|
27
|
-
{
|
|
28
|
-
name: 'BikeInstance',
|
|
29
|
-
variant: 'Bike',
|
|
30
|
-
lazy: false,
|
|
31
|
-
parameters: {
|
|
32
|
-
visible: true,
|
|
33
|
-
// scaling: '( 1, 1, -1 )',
|
|
34
|
-
// position: '( 0, 0, 0 )',
|
|
35
|
-
// rotation: '( 0, 0, 0 )',
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
},
|
|
40
|
-
variants: {
|
|
41
|
-
Bike: {
|
|
42
|
-
glTF: 'assets/husqvarna-instanced-meshes/husqvarna.glb',
|
|
43
|
-
parameters: {
|
|
44
|
-
[`BackSpoiler.${Parameter.MATERIAL_COLOR}`]: '#FF0000',
|
|
45
|
-
[`SidePartsOrig.${Parameter.MATERIAL_COLOR}`]: '#FF0000',
|
|
46
|
-
},
|
|
47
|
-
elements: {
|
|
48
|
-
Base: {
|
|
49
|
-
paths: {
|
|
50
|
-
include: [
|
|
51
|
-
'__root__',
|
|
52
|
-
],
|
|
53
|
-
exclude: [
|
|
54
|
-
'__root__.Husqvarna.Husqvarna_primitive1',
|
|
55
|
-
'__root__.Husqvarna.Husqvarna_primitive2',
|
|
56
|
-
'__root__.Husqvarna.Husqvarna_primitive4',
|
|
57
|
-
'__root__.Husqvarna.Husqvarna_primitive2_linked',
|
|
58
|
-
'__root__.Husqvarna.Husqvarna_primitive4_linked',
|
|
59
|
-
],
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
/*
|
|
63
|
-
BackSpoiler: ['__root__.Husqvarna.Husqvarna_primitive1'],
|
|
64
|
-
SidePartsOrig: [
|
|
65
|
-
'__root__.Husqvarna.Husqvarna_primitive2',
|
|
66
|
-
'__root__.Husqvarna.Husqvarna_primitive4',
|
|
67
|
-
],
|
|
68
|
-
*/
|
|
69
|
-
SidePartsLinked: [
|
|
70
|
-
'__root__.Husqvarna.Husqvarna_primitive2_linked',
|
|
71
|
-
'__root__.Husqvarna.Husqvarna_primitive4_linked',
|
|
72
|
-
],
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export async function createUIelements( viewer: Viewer ) {
|
|
80
|
-
const instanceNames = merge(
|
|
81
|
-
viewer.variantInstances.all.map( instance => instance.name ),
|
|
82
|
-
viewer.variantInstances.allDefinitions.map( definition => definition.name ),
|
|
83
|
-
);
|
|
84
|
-
const options = {};
|
|
85
|
-
for ( const instanceName of instanceNames ) {
|
|
86
|
-
set(options, instanceName, instanceName);
|
|
87
|
-
}
|
|
88
|
-
createCombobox(
|
|
89
|
-
'SelectInstanceCb',
|
|
90
|
-
'🔧',
|
|
91
|
-
options,
|
|
92
|
-
(name: string) => _showInstance(viewer, name)
|
|
93
|
-
);
|
|
94
|
-
// createButton('demo', '💡 Demo', () => console.info(' --- Button clicked. ---'))
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* @param {Viewer} viewer
|
|
99
|
-
* @param {String} instance
|
|
100
|
-
*/
|
|
101
|
-
async function _showInstance( viewer: Viewer, instance: string ): Promise<VariantInstance> {
|
|
102
|
-
return await viewer.variantInstances.show( instance, true );
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
Emitter.on(Event.BOOTSTRAP_END, async viewer => {
|
|
106
|
-
//viewer.autofocusActiveCamera();
|
|
107
|
-
//await viewer.enableDebugLayer();
|
|
108
|
-
});
|
package/src/assets/index.html
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8"/>
|
|
5
|
-
|
|
6
|
-
<link rel="shortcut icon" href="favicon.ico" type="image/vnd.microsoft.icon">
|
|
7
|
-
<style>
|
|
8
|
-
html,
|
|
9
|
-
body {
|
|
10
|
-
width: 100%;
|
|
11
|
-
height: 100%;
|
|
12
|
-
padding: 0;
|
|
13
|
-
margin: 0;
|
|
14
|
-
overflow: hidden;
|
|
15
|
-
font-family: monospace;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
#controls {
|
|
19
|
-
position: absolute;
|
|
20
|
-
background: #2A2342;
|
|
21
|
-
width: 100%;
|
|
22
|
-
height: 30px;
|
|
23
|
-
padding: 10px 10px 10px 10px;
|
|
24
|
-
display: flex;
|
|
25
|
-
z-index: 1000;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
#templates {
|
|
29
|
-
display: none;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
#html-overlay {
|
|
33
|
-
position: absolute;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
#loading {
|
|
37
|
-
position: absolute;
|
|
38
|
-
width: 100%;
|
|
39
|
-
height: 100%;
|
|
40
|
-
background-color: #201936;
|
|
41
|
-
color: white;
|
|
42
|
-
font-weight: bold;
|
|
43
|
-
font-size: 40pt;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
#loading div {
|
|
47
|
-
position: relative;
|
|
48
|
-
top: 50%;
|
|
49
|
-
text-align: center;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
#display-container {
|
|
53
|
-
background: #201936;
|
|
54
|
-
padding: 10px;
|
|
55
|
-
height: 100%;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
#babylon-canvas {
|
|
59
|
-
width: 100%;
|
|
60
|
-
height: 100%;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
#html-overlay {
|
|
64
|
-
padding: 5px;
|
|
65
|
-
background: #454545;
|
|
66
|
-
color: white;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
#logo {
|
|
70
|
-
position: absolute;
|
|
71
|
-
right: 30px;
|
|
72
|
-
width: 120px;
|
|
73
|
-
height: 40px;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
button, select {
|
|
77
|
-
float: left;
|
|
78
|
-
padding: 3px;
|
|
79
|
-
margin: 3px;
|
|
80
|
-
cursor: pointer;
|
|
81
|
-
background: #fff;
|
|
82
|
-
border: none;
|
|
83
|
-
box-shadow: none;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/* Checkbox Label Toggles */
|
|
87
|
-
.toggle [type=checkbox] {
|
|
88
|
-
display: none;
|
|
89
|
-
}
|
|
90
|
-
.toggle label {
|
|
91
|
-
display: inline-block;
|
|
92
|
-
margin: .2rem 0 0 .5rem;
|
|
93
|
-
padding: .3rem 1rem .3rem;
|
|
94
|
-
color: #fff;
|
|
95
|
-
}
|
|
96
|
-
.toggle [type=checkbox]:checked ~ label {
|
|
97
|
-
background-color: green;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
label.combobox {
|
|
101
|
-
font-size: 1.5rem;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.animate {
|
|
105
|
-
transform: rotate(45deg);
|
|
106
|
-
animation-duration: 3000ms;
|
|
107
|
-
animation-name: move;
|
|
108
|
-
animation-iteration-count: infinite;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
@keyframes move{
|
|
112
|
-
0% {
|
|
113
|
-
transform: rotate(-22deg);
|
|
114
|
-
}
|
|
115
|
-
50%{
|
|
116
|
-
transform: rotate(22deg);
|
|
117
|
-
}
|
|
118
|
-
100% {
|
|
119
|
-
transform: rotate(-22deg);
|
|
120
|
-
}}
|
|
121
|
-
</style>
|
|
122
|
-
|
|
123
|
-
</head>
|
|
124
|
-
<body>
|
|
125
|
-
|
|
126
|
-
<div id="loading">
|
|
127
|
-
<div class="animate">⏳</div>
|
|
128
|
-
</div>
|
|
129
|
-
|
|
130
|
-
<div id="templates">
|
|
131
|
-
<pre id="html-overlay">ELEMENT</pre>
|
|
132
|
-
</div>
|
|
133
|
-
|
|
134
|
-
<div id="controls">
|
|
135
|
-
<div id="logo"><img id="logoImg" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160.63 40.18'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23d5d2ca;%7D.cls-2%7Bfill:%23fff;%7D.cls-3%7Bfill:%23e0684b;%7D.cls-4%7Bfill:%23bb464b;%7D.cls-5%7Bfill:%23e0ded8;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3EBabylonIdentity%3C/title%3E%3Cg id='Layer_2' data-name='Layer 2'%3E%3Cg id='Page_Elements' data-name='Page Elements'%3E%3Cpath class='cls-1' d='M41.27,10h3.41v7.65c.61-1,1.82-2,4.21-2,3.74,0,5.78,3.08,5.78,7.13s-2.12,7.68-6.16,7.68c-2.15,0-3.17-.72-3.85-1.85a11.47,11.47,0,0,1-.14,1.52H41.24c0-1.55,0-3.11,0-4.68Zm6.63,8.42c-2.47,0-3.38,1.65-3.38,4.68,0,2.59.8,4.59,3.33,4.59,2.14,0,3.33-1.92,3.33-4.84C51.18,20.27,50.13,18.43,47.9,18.43Z'/%3E%3Cpath class='cls-1' d='M68.59,26.66a26.61,26.61,0,0,0,.2,3.47H65.51a7.37,7.37,0,0,1-.22-1.55c-.49.86-1.51,1.88-4.1,1.88-3.38,0-4.81-2.23-4.81-4.41,0-3.19,2.56-4.67,6.71-4.67h2.15v-1c0-1.1-.36-2.25-2.48-2.25-1.87,0-2.26.85-2.45,1.89H57c.19-2.31,1.65-4.43,5.86-4.4,3.68,0,5.69,1.49,5.69,4.79Zm-3.33-3.14H63.42c-2.5,0-3.6.74-3.6,2.34A2,2,0,0,0,62.1,28c2.81,0,3.16-1.92,3.16-4Z'/%3E%3Cpath class='cls-1' d='M71.67,10h3.42v7.65c.6-1,1.81-2,4.21-2,3.74,0,5.77,3.08,5.77,7.13S83,30.46,78.91,30.46c-2.15,0-3.16-.72-3.85-1.85a10,10,0,0,1-.14,1.52H71.65c0-1.55,0-3.11,0-4.68Zm6.64,8.42c-2.48,0-3.39,1.65-3.39,4.68,0,2.59.8,4.59,3.33,4.59,2.15,0,3.33-1.92,3.33-4.84C81.58,20.27,80.53,18.43,78.31,18.43Z'/%3E%3Cpath class='cls-1' d='M89.37,16c1.76,5.53,3,9.66,3.3,11h0c.35-1.49,1.23-4.68,3.13-11h3.41L94.37,30.62c-1.37,4.1-2.47,5.26-5.69,5.26A15.34,15.34,0,0,1,87,35.77V33c.3,0,.71,0,1.07,0,1.54,0,2.25-.57,2.89-2.42L85.71,16Z'/%3E%3Cpath class='cls-1' d='M100.76,30.13V10h3.41V30.13Z'/%3E%3Cpath class='cls-1' d='M120.32,23c0,4.21-2.48,7.43-6.91,7.43s-6.79-3.14-6.79-7.38,2.56-7.43,7-7.43C117.68,15.65,120.32,18.6,120.32,23Zm-10.23,0c0,2.87,1.29,4.68,3.41,4.68s3.33-1.79,3.33-4.65c0-3-1.19-4.7-3.39-4.7S110.09,20,110.09,23.05Z'/%3E%3Cpath class='cls-1' d='M122.8,19.53c0-1.21,0-2.47,0-3.55h3.3a15.77,15.77,0,0,1,.14,2,4.32,4.32,0,0,1,4.21-2.31c2.78,0,4.7,1.82,4.7,5.45v9h-3.41V21.49c0-1.77-.63-3-2.5-3s-3,1.29-3,3.91v7.76H122.8Z'/%3E%3Cpath class='cls-1' d='M138.37,30.13V25.56H142v4.57Z'/%3E%3Cpath class='cls-1' d='M147.67,16.28V30.87c0,3.77-.91,5-3.6,5-.11,0-.66,0-.86,0V34.2c.2,0,.42,0,.58,0,1.84,0,2-1,2-3.08V16.28Zm-1.84-3.57V9.87h1.84v2.84Z'/%3E%3Cpath class='cls-1' d='M151.85,26.25a3.45,3.45,0,0,0,3.69,2.66c2.26,0,3.16-1,3.16-2.44s-.63-2.15-3.52-2.84c-3.77-.91-4.62-2.06-4.62-3.91S152,16,155.32,16s4.81,2,5,3.94h-1.81a3,3,0,0,0-3.28-2.39c-2.2,0-2.83,1.07-2.83,2.09s.61,1.73,3.25,2.36c4,1,4.95,2.31,4.95,4.38,0,2.47-2,4.13-5.15,4.13-3.35,0-5.11-1.74-5.47-4.21Z'/%3E%3Cpolygon class='cls-2' points='17.4 0 0 10.04 0 30.13 17.4 40.18 34.8 30.13 34.8 10.04 17.4 0'/%3E%3Cpolygon class='cls-3' points='34.8 10.04 29.35 6.9 24.11 9.93 29.56 13.07 34.8 10.04'/%3E%3Cpolygon class='cls-3' points='5.24 13.07 22.64 3.02 17.4 0 0 10.04 5.24 13.07'/%3E%3Cpolygon class='cls-3' points='11.95 23.23 17.4 26.38 22.84 23.23 17.4 20.09 11.95 23.23'/%3E%3Cpolygon class='cls-4' points='29.56 13.07 29.56 27.11 17.4 34.13 5.24 27.11 5.24 13.07 0 10.04 0 30.13 17.4 40.18 34.8 30.13 34.8 10.04 29.56 13.07'/%3E%3Cpolygon class='cls-4' points='17.4 13.8 11.95 16.95 11.95 23.23 17.4 20.09 22.84 23.23 22.84 16.95 17.4 13.8'/%3E%3Cpolygon class='cls-5' points='29.56 13.07 22.84 16.95 22.84 23.23 17.4 26.38 17.4 34.13 29.56 27.11 29.56 13.07'/%3E%3Cpolygon class='cls-1' points='5.24 13.07 11.95 16.95 11.95 23.23 17.4 26.38 17.4 34.13 5.24 27.11 5.24 13.07'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"></div>
|
|
136
|
-
</div>
|
|
137
|
-
|
|
138
|
-
<div id="display-container">
|
|
139
|
-
<div id="interaction"></div>
|
|
140
|
-
<canvas id="babylon-canvas"></canvas>
|
|
141
|
-
</div>
|
|
142
|
-
|
|
143
|
-
</body>
|
|
144
|
-
</html>
|
package/src/assets/index.json
DELETED
|
Binary file
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export const spec: StructureJson = {
|
|
2
|
-
scene: {
|
|
3
|
-
engine: {
|
|
4
|
-
antialiasing: true,
|
|
5
|
-
},
|
|
6
|
-
scene: {
|
|
7
|
-
globals: {},
|
|
8
|
-
lights: {},
|
|
9
|
-
cameras: {},
|
|
10
|
-
},
|
|
11
|
-
},
|
|
12
|
-
setup: {
|
|
13
|
-
instances: [
|
|
14
|
-
{
|
|
15
|
-
name: 'Example Instances',
|
|
16
|
-
variant: 'example instances',
|
|
17
|
-
lazy: false,
|
|
18
|
-
parameters: {
|
|
19
|
-
visible: true
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
],
|
|
23
|
-
},
|
|
24
|
-
variants: {
|
|
25
|
-
'example instances': {
|
|
26
|
-
glTF: 'assets/linkeddups/example_2_instances.glb',
|
|
27
|
-
elements: {
|
|
28
|
-
Root: ['__root__']
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
};
|