@smarterplan/ngx-smarterplan-core 1.2.39 → 1.2.45
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/README.md +24 -24
- package/esm2020/lib/components/csv-export/csv-export.component.mjs +59 -59
- package/esm2020/lib/components/loader/loader.component.mjs +23 -23
- package/esm2020/lib/components/menu-bar/avatar/avatar.component.mjs +80 -80
- package/esm2020/lib/components/menu-bar/menu-bar.component.mjs +99 -99
- package/esm2020/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +384 -384
- package/esm2020/lib/components/menu-bar/range-date-picker/range-date-picker.component.mjs +147 -147
- package/esm2020/lib/components/modal-switch-visit/modal-switch-visit.component.mjs +40 -40
- package/esm2020/lib/components/search-bar/search-bar.component.mjs +63 -63
- package/esm2020/lib/components/support-modal/support-modal.component.mjs +66 -66
- package/esm2020/lib/config.mjs +4 -4
- package/esm2020/lib/helpers.service.mjs +470 -470
- package/esm2020/lib/matterport-extensions/hsl-loader/HlsLoader.mjs +69 -69
- package/esm2020/lib/matterport-extensions/nest-thermostat/CanvasImage.mjs +51 -51
- package/esm2020/lib/matterport-extensions/nest-thermostat/CanvasRenderer.mjs +61 -61
- package/esm2020/lib/matterport-extensions/nest-thermostat/NestThermostat.mjs +158 -158
- package/esm2020/lib/matterport-extensions/nest-thermostat/PlaneRenderer.mjs +85 -85
- package/esm2020/lib/matterport-extensions/scene-component/SceneComponent.mjs +128 -128
- package/esm2020/lib/matterport-extensions/security-camera/SecurityCamera.mjs +249 -249
- package/esm2020/lib/matterport-extensions/tv-player/TvPlayer.mjs +98 -98
- package/esm2020/lib/matterport-extensions/video-renderer/VideoRenderer.mjs +64 -64
- package/esm2020/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.mjs +221 -221
- package/esm2020/lib/mattertagData.mjs +165 -165
- package/esm2020/lib/ngx-smarterplan-core.module.mjs +122 -122
- package/esm2020/lib/ngx-smarterplan-core.service.mjs +14 -14
- package/esm2020/lib/pipes/duration-to-string.pipe.mjs +66 -66
- package/esm2020/lib/pipes/format-date-number-to-digits.pipe.mjs +30 -30
- package/esm2020/lib/pipes/hashtag-from-id.pipe.mjs +26 -26
- package/esm2020/lib/pipes/safe-url.pipe.mjs +20 -20
- package/esm2020/lib/pipes/time-date-to-local-string.pipe.mjs +104 -104
- package/esm2020/lib/pipes/username-from-id.pipe.mjs +29 -29
- package/esm2020/lib/services/amplify-cache.service.mjs +72 -72
- package/esm2020/lib/services/base-tab.service.mjs +24 -24
- package/esm2020/lib/services/baseVisibility.service.mjs +18 -18
- package/esm2020/lib/services/content.service.mjs +135 -135
- package/esm2020/lib/services/filter.service.mjs +599 -599
- package/esm2020/lib/services/intervention.service.mjs +236 -236
- package/esm2020/lib/services/locale.service.mjs +45 -45
- package/esm2020/lib/services/matterport-import.service.mjs +340 -340
- package/esm2020/lib/services/matterport.service.mjs +1587 -1587
- package/esm2020/lib/services/models/affectation.service.mjs +60 -60
- package/esm2020/lib/services/models/base-object.service.mjs +70 -70
- package/esm2020/lib/services/models/capture.service.mjs +34 -34
- package/esm2020/lib/services/models/comment.service.mjs +98 -98
- package/esm2020/lib/services/models/domain.service.mjs +78 -78
- package/esm2020/lib/services/models/equipment.service.mjs +683 -683
- package/esm2020/lib/services/models/event.service.mjs +128 -128
- package/esm2020/lib/services/models/feature.service.mjs +380 -364
- package/esm2020/lib/services/models/hashtag.service.mjs +38 -38
- package/esm2020/lib/services/models/layer.service.mjs +33 -33
- package/esm2020/lib/services/models/measurement.service.mjs +199 -199
- package/esm2020/lib/services/models/mission.service.mjs +206 -206
- package/esm2020/lib/services/models/navigation.service.mjs +92 -92
- package/esm2020/lib/services/models/node.service.mjs +31 -31
- package/esm2020/lib/services/models/object3D.service.mjs +364 -364
- package/esm2020/lib/services/models/operation.service.mjs +59 -59
- package/esm2020/lib/services/models/organisation.service.mjs +73 -73
- package/esm2020/lib/services/models/plan.service.mjs +799 -799
- package/esm2020/lib/services/models/poi.service.mjs +103 -103
- package/esm2020/lib/services/models/profile.service.mjs +58 -58
- package/esm2020/lib/services/models/property.service.mjs +44 -44
- package/esm2020/lib/services/models/space.service.mjs +204 -204
- package/esm2020/lib/services/models/template.service.mjs +41 -41
- package/esm2020/lib/services/models/ticket.service.mjs +526 -526
- package/esm2020/lib/services/models/visit.service.mjs +130 -130
- package/esm2020/lib/services/models/zone.service.mjs +225 -225
- package/esm2020/lib/services/navigator.service.mjs +212 -212
- package/esm2020/lib/services/s3.service.mjs +137 -137
- package/esm2020/lib/services/search.service.mjs +124 -124
- package/esm2020/lib/services/support.service.mjs +42 -42
- package/esm2020/lib/services/tag.service.mjs +111 -111
- package/esm2020/lib/services/user.service.mjs +501 -501
- package/esm2020/lib/services/validators.service.mjs +50 -50
- package/esm2020/lib/services/viewer.service.mjs +389 -389
- package/esm2020/lib/services/zone-drawer.service.mjs +76 -76
- package/esm2020/lib/services/zoneChange.service.mjs +30 -30
- package/esm2020/lib/types.service.mjs +311 -310
- package/esm2020/lib/validators/email.directive.mjs +7 -7
- package/esm2020/lib/validators/no-empty.directive.mjs +12 -12
- package/esm2020/lib/validators/number.directive.mjs +12 -12
- package/esm2020/lib/validators/text.directive.mjs +12 -12
- package/esm2020/public-api.mjs +72 -72
- package/esm2020/smarterplan-ngx-smarterplan-core.mjs +4 -4
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs +13009 -12992
- package/fesm2015/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs +12258 -12241
- package/fesm2020/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
- package/lib/components/csv-export/csv-export.component.d.ts +18 -18
- package/lib/components/loader/loader.component.d.ts +10 -10
- package/lib/components/menu-bar/avatar/avatar.component.d.ts +21 -21
- package/lib/components/menu-bar/menu-bar.component.d.ts +38 -38
- package/lib/components/menu-bar/navigation-bar/navigation-bar.component.d.ts +73 -73
- package/lib/components/menu-bar/range-date-picker/range-date-picker.component.d.ts +35 -35
- package/lib/components/modal-switch-visit/modal-switch-visit.component.d.ts +22 -22
- package/lib/components/search-bar/search-bar.component.d.ts +16 -16
- package/lib/components/support-modal/support-modal.component.d.ts +26 -26
- package/lib/config.d.ts +22 -22
- package/lib/helpers.service.d.ts +79 -79
- package/lib/matterport-extensions/hsl-loader/HlsLoader.d.ts +26 -26
- package/lib/matterport-extensions/nest-thermostat/CanvasImage.d.ts +31 -31
- package/lib/matterport-extensions/nest-thermostat/CanvasRenderer.d.ts +37 -37
- package/lib/matterport-extensions/nest-thermostat/NestThermostat.d.ts +42 -42
- package/lib/matterport-extensions/nest-thermostat/PlaneRenderer.d.ts +46 -46
- package/lib/matterport-extensions/scene-component/SceneComponent.d.ts +388 -388
- package/lib/matterport-extensions/security-camera/SecurityCamera.d.ts +47 -47
- package/lib/matterport-extensions/tv-player/TvPlayer.d.ts +26 -26
- package/lib/matterport-extensions/video-renderer/VideoRenderer.d.ts +26 -26
- package/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.d.ts +43 -43
- package/lib/mattertagData.d.ts +70 -70
- package/lib/ngx-smarterplan-core.module.d.ts +29 -29
- package/lib/ngx-smarterplan-core.service.d.ts +6 -6
- package/lib/pipes/duration-to-string.pipe.d.ts +12 -12
- package/lib/pipes/format-date-number-to-digits.pipe.d.ts +10 -10
- package/lib/pipes/hashtag-from-id.pipe.d.ts +10 -10
- package/lib/pipes/safe-url.pipe.d.ts +10 -10
- package/lib/pipes/time-date-to-local-string.pipe.d.ts +16 -16
- package/lib/pipes/username-from-id.pipe.d.ts +11 -11
- package/lib/services/amplify-cache.service.d.ts +37 -37
- package/lib/services/base-tab.service.d.ts +10 -10
- package/lib/services/baseVisibility.service.d.ts +9 -9
- package/lib/services/content.service.d.ts +28 -28
- package/lib/services/filter.service.d.ts +60 -60
- package/lib/services/intervention.service.d.ts +25 -25
- package/lib/services/locale.service.d.ts +23 -23
- package/lib/services/matterport-import.service.d.ts +53 -53
- package/lib/services/matterport.service.d.ts +336 -336
- package/lib/services/models/affectation.service.d.ts +14 -14
- package/lib/services/models/base-object.service.d.ts +20 -20
- package/lib/services/models/capture.service.d.ts +13 -13
- package/lib/services/models/comment.service.d.ts +26 -26
- package/lib/services/models/domain.service.d.ts +19 -19
- package/lib/services/models/equipment.service.d.ts +93 -93
- package/lib/services/models/event.service.d.ts +43 -43
- package/lib/services/models/feature.service.d.ts +75 -74
- package/lib/services/models/hashtag.service.d.ts +13 -13
- package/lib/services/models/layer.service.d.ts +11 -11
- package/lib/services/models/measurement.service.d.ts +51 -51
- package/lib/services/models/mission.service.d.ts +39 -39
- package/lib/services/models/navigation.service.d.ts +29 -29
- package/lib/services/models/node.service.d.ts +12 -12
- package/lib/services/models/object3D.service.d.ts +57 -57
- package/lib/services/models/operation.service.d.ts +15 -15
- package/lib/services/models/organisation.service.d.ts +19 -19
- package/lib/services/models/plan.service.d.ts +133 -133
- package/lib/services/models/poi.service.d.ts +25 -25
- package/lib/services/models/profile.service.d.ts +16 -16
- package/lib/services/models/property.service.d.ts +13 -13
- package/lib/services/models/space.service.d.ts +46 -46
- package/lib/services/models/template.service.d.ts +15 -15
- package/lib/services/models/ticket.service.d.ts +93 -93
- package/lib/services/models/visit.service.d.ts +24 -24
- package/lib/services/models/zone.service.d.ts +50 -50
- package/lib/services/navigator.service.d.ts +61 -61
- package/lib/services/s3.service.d.ts +14 -14
- package/lib/services/search.service.d.ts +20 -20
- package/lib/services/support.service.d.ts +17 -17
- package/lib/services/tag.service.d.ts +29 -29
- package/lib/services/user.service.d.ts +118 -118
- package/lib/services/validators.service.d.ts +18 -18
- package/lib/services/viewer.service.d.ts +110 -110
- package/lib/services/zone-drawer.service.d.ts +7 -7
- package/lib/services/zoneChange.service.d.ts +17 -17
- package/lib/types.service.d.ts +842 -840
- package/lib/validators/email.directive.d.ts +2 -2
- package/lib/validators/no-empty.directive.d.ts +2 -2
- package/lib/validators/number.directive.d.ts +2 -2
- package/lib/validators/text.directive.d.ts +2 -2
- package/package.json +1 -1
- package/public-api.d.ts +64 -64
- package/smarterplan-ngx-smarterplan-core.d.ts +5 -5
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
import { SceneComponent } from '../scene-component/SceneComponent';
|
|
2
|
-
import { Texture, MeshBasicMaterial, LinearFilter, } from 'three';
|
|
3
|
-
const HoverEvent = 'hover';
|
|
4
|
-
const UnhoverEvent = 'unhover';
|
|
5
|
-
export class TvPlayer extends SceneComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this.rootScene = null;
|
|
9
|
-
this.mesh = null;
|
|
10
|
-
this.inputs = {
|
|
11
|
-
loadingState: 'Idle',
|
|
12
|
-
texture: null,
|
|
13
|
-
updateInterval: 1000,
|
|
14
|
-
};
|
|
15
|
-
this.events = {
|
|
16
|
-
[HoverEvent]: true,
|
|
17
|
-
[UnhoverEvent]: true,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
onInit(modelNode) {
|
|
21
|
-
if (!this.context) {
|
|
22
|
-
this.context = {
|
|
23
|
-
root: modelNode
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
const root = this.context.root;
|
|
27
|
-
const THREE = this.context.three;
|
|
28
|
-
}
|
|
29
|
-
onDestroy() {
|
|
30
|
-
super.onDestroy();
|
|
31
|
-
clearInterval(this.intervalVideoTexture);
|
|
32
|
-
}
|
|
33
|
-
onInputsUpdated() {
|
|
34
|
-
if (this.inputs.loadingState === 'Loaded') {
|
|
35
|
-
const lines = [];
|
|
36
|
-
//@ts-ignore
|
|
37
|
-
this.context.root.obj3D.traverse((obj) => {
|
|
38
|
-
// we dont want line segments, track them and remove them.
|
|
39
|
-
if (obj.type === 'LineSegments') {
|
|
40
|
-
lines.push(obj);
|
|
41
|
-
}
|
|
42
|
-
else if (obj.type === 'Mesh') {
|
|
43
|
-
this.mesh = obj;
|
|
44
|
-
let video, videoImage, videoImageContext, videoTexture;
|
|
45
|
-
// create the video element
|
|
46
|
-
video = document.createElement('video');
|
|
47
|
-
// video.src = "./../assets/video/video_samsic.mp4";
|
|
48
|
-
video.src = "./../assets/video/121222-04.mp4";
|
|
49
|
-
video.load(); // must call after setting/changing source
|
|
50
|
-
video.loop = true;
|
|
51
|
-
video.play();
|
|
52
|
-
videoImage = document.createElement('canvas');
|
|
53
|
-
// videoImage.width = 640;
|
|
54
|
-
videoImage.width = 1280;
|
|
55
|
-
// videoImage.height = 360;
|
|
56
|
-
videoImage.height = 720;
|
|
57
|
-
videoImageContext = videoImage.getContext('2d');
|
|
58
|
-
// background color if no video present
|
|
59
|
-
videoImageContext.fillStyle = '#000000';
|
|
60
|
-
videoImageContext.fillRect(0, 0, videoImage.width, videoImage.height);
|
|
61
|
-
videoTexture = new Texture(videoImage);
|
|
62
|
-
videoTexture.minFilter = LinearFilter;
|
|
63
|
-
videoTexture.magFilter = LinearFilter;
|
|
64
|
-
const movieMaterial = new MeshBasicMaterial({ map: videoTexture });
|
|
65
|
-
this.mesh.material = movieMaterial;
|
|
66
|
-
const render = () => {
|
|
67
|
-
if (video.readyState === video.HAVE_ENOUGH_DATA) {
|
|
68
|
-
videoImageContext.drawImage(video, 0, 0);
|
|
69
|
-
if (videoTexture)
|
|
70
|
-
videoTexture.needsUpdate = true;
|
|
71
|
-
}
|
|
72
|
-
const camera = (this.context.scene.children.find(u => u.constructor.name === 'CameraRig')).camera;
|
|
73
|
-
this.context.renderer.render(this.context.scene, camera);
|
|
74
|
-
};
|
|
75
|
-
this.intervalVideoTexture = setInterval(() => {
|
|
76
|
-
render();
|
|
77
|
-
}, 180);
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
// remove the line segments.
|
|
81
|
-
lines.forEach((line) => {
|
|
82
|
-
line.parent.remove(line);
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
setComponent(component) {
|
|
87
|
-
this.component = component;
|
|
88
|
-
this.context = component.context;
|
|
89
|
-
}
|
|
90
|
-
setRootScene(rootScene) {
|
|
91
|
-
this.rootScene = rootScene;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
export const TvPlayerType = 'mp.TvPlayer';
|
|
95
|
-
export const makeTvPlayer = function () {
|
|
96
|
-
return new TvPlayer();
|
|
97
|
-
};
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { SceneComponent } from '../scene-component/SceneComponent';
|
|
2
|
+
import { Texture, MeshBasicMaterial, LinearFilter, } from 'three';
|
|
3
|
+
const HoverEvent = 'hover';
|
|
4
|
+
const UnhoverEvent = 'unhover';
|
|
5
|
+
export class TvPlayer extends SceneComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.rootScene = null;
|
|
9
|
+
this.mesh = null;
|
|
10
|
+
this.inputs = {
|
|
11
|
+
loadingState: 'Idle',
|
|
12
|
+
texture: null,
|
|
13
|
+
updateInterval: 1000,
|
|
14
|
+
};
|
|
15
|
+
this.events = {
|
|
16
|
+
[HoverEvent]: true,
|
|
17
|
+
[UnhoverEvent]: true,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
onInit(modelNode) {
|
|
21
|
+
if (!this.context) {
|
|
22
|
+
this.context = {
|
|
23
|
+
root: modelNode
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const root = this.context.root;
|
|
27
|
+
const THREE = this.context.three;
|
|
28
|
+
}
|
|
29
|
+
onDestroy() {
|
|
30
|
+
super.onDestroy();
|
|
31
|
+
clearInterval(this.intervalVideoTexture);
|
|
32
|
+
}
|
|
33
|
+
onInputsUpdated() {
|
|
34
|
+
if (this.inputs.loadingState === 'Loaded') {
|
|
35
|
+
const lines = [];
|
|
36
|
+
//@ts-ignore
|
|
37
|
+
this.context.root.obj3D.traverse((obj) => {
|
|
38
|
+
// we dont want line segments, track them and remove them.
|
|
39
|
+
if (obj.type === 'LineSegments') {
|
|
40
|
+
lines.push(obj);
|
|
41
|
+
}
|
|
42
|
+
else if (obj.type === 'Mesh') {
|
|
43
|
+
this.mesh = obj;
|
|
44
|
+
let video, videoImage, videoImageContext, videoTexture;
|
|
45
|
+
// create the video element
|
|
46
|
+
video = document.createElement('video');
|
|
47
|
+
// video.src = "./../assets/video/video_samsic.mp4";
|
|
48
|
+
video.src = "./../assets/video/121222-04.mp4";
|
|
49
|
+
video.load(); // must call after setting/changing source
|
|
50
|
+
video.loop = true;
|
|
51
|
+
video.play();
|
|
52
|
+
videoImage = document.createElement('canvas');
|
|
53
|
+
// videoImage.width = 640;
|
|
54
|
+
videoImage.width = 1280;
|
|
55
|
+
// videoImage.height = 360;
|
|
56
|
+
videoImage.height = 720;
|
|
57
|
+
videoImageContext = videoImage.getContext('2d');
|
|
58
|
+
// background color if no video present
|
|
59
|
+
videoImageContext.fillStyle = '#000000';
|
|
60
|
+
videoImageContext.fillRect(0, 0, videoImage.width, videoImage.height);
|
|
61
|
+
videoTexture = new Texture(videoImage);
|
|
62
|
+
videoTexture.minFilter = LinearFilter;
|
|
63
|
+
videoTexture.magFilter = LinearFilter;
|
|
64
|
+
const movieMaterial = new MeshBasicMaterial({ map: videoTexture });
|
|
65
|
+
this.mesh.material = movieMaterial;
|
|
66
|
+
const render = () => {
|
|
67
|
+
if (video.readyState === video.HAVE_ENOUGH_DATA) {
|
|
68
|
+
videoImageContext.drawImage(video, 0, 0);
|
|
69
|
+
if (videoTexture)
|
|
70
|
+
videoTexture.needsUpdate = true;
|
|
71
|
+
}
|
|
72
|
+
const camera = (this.context.scene.children.find(u => u.constructor.name === 'CameraRig')).camera;
|
|
73
|
+
this.context.renderer.render(this.context.scene, camera);
|
|
74
|
+
};
|
|
75
|
+
this.intervalVideoTexture = setInterval(() => {
|
|
76
|
+
render();
|
|
77
|
+
}, 180);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
// remove the line segments.
|
|
81
|
+
lines.forEach((line) => {
|
|
82
|
+
line.parent.remove(line);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
setComponent(component) {
|
|
87
|
+
this.component = component;
|
|
88
|
+
this.context = component.context;
|
|
89
|
+
}
|
|
90
|
+
setRootScene(rootScene) {
|
|
91
|
+
this.rootScene = rootScene;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export const TvPlayerType = 'mp.TvPlayer';
|
|
95
|
+
export const makeTvPlayer = function () {
|
|
96
|
+
return new TvPlayer();
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHZQbGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy90di1wbGF5ZXIvVHZQbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBbUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRixPQUFPLEVBR0wsT0FBTyxFQUNQLGlCQUFpQixFQUVqQixZQUFZLEdBQ2IsTUFBTSxPQUFPLENBQUM7QUFFZixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFDM0IsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO0FBUy9CLE1BQU0sT0FBTyxRQUFTLFNBQVEsY0FBYztJQUE1Qzs7UUFDVSxjQUFTLEdBQW9CLElBQUksQ0FBQztRQUNsQyxTQUFJLEdBQWdCLElBQUksQ0FBQztRQUl4QixXQUFNLEdBQVc7WUFDeEIsWUFBWSxFQUFFLE1BQU07WUFDcEIsT0FBTyxFQUFFLElBQUk7WUFDYixjQUFjLEVBQUUsSUFBSTtTQUNyQixDQUFBO1FBR1EsV0FBTSxHQUFHO1lBQ2hCLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSTtZQUNsQixDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUk7U0FDckIsQ0FBQztJQXVGSixDQUFDO0lBcEZVLE1BQU0sQ0FBQyxTQUFlO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUc7Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDSSxDQUFDO1NBQ3ZCO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVRLFNBQVM7UUFDaEIsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xCLGFBQWEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRVEsZUFBZTtRQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFBRTtZQUN6QyxNQUFNLEtBQUssR0FBbUIsRUFBRSxDQUFDO1lBRWpDLFlBQVk7WUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBYSxFQUFFLEVBQUU7Z0JBQ2pELDBEQUEwRDtnQkFDMUQsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRTtvQkFDL0IsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFtQixDQUFDLENBQUM7aUJBQ2pDO3FCQUFNLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBVyxDQUFDO29CQUV4QixJQUFJLEtBQUssRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxDQUFDO29CQUN2RCwyQkFBMkI7b0JBQzNCLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN4QyxvREFBb0Q7b0JBQ3BELEtBQUssQ0FBQyxHQUFHLEdBQUcsaUNBQWlDLENBQUM7b0JBQzlDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLDBDQUEwQztvQkFDeEQsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7b0JBQ2xCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFFYixVQUFVLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDOUMsMEJBQTBCO29CQUMxQixVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztvQkFDeEIsMkJBQTJCO29CQUMzQixVQUFVLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztvQkFFeEIsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDaEQsdUNBQXVDO29CQUN2QyxpQkFBaUIsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO29CQUN4QyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFFdEUsWUFBWSxHQUFHLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO29CQUN0QyxZQUFZLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQztvQkFDdEMsWUFBWSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7b0JBQ3RDLE1BQU0sYUFBYSxHQUFHLElBQUksaUJBQWlCLENBQUMsRUFBQyxHQUFHLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQTtvQkFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO29CQUVuQyxNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUU7d0JBQ2xCLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7NEJBQy9DLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDOzRCQUN6QyxJQUFJLFlBQVk7Z0NBQ2QsWUFBWSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7eUJBQ25DO3dCQUNELE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO3dCQUNsRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQzNELENBQUMsQ0FBQTtvQkFDRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTt3QkFDM0MsTUFBTSxFQUFFLENBQUM7b0JBQ1gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lCQUVUO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCw0QkFBNEI7WUFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWtCLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsU0FBeUI7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBbUI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDMUIsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2NlbmVDb21wb25lbnQsIENvbXBvbmVudENvbnRleHR9IGZyb20gJy4uL3NjZW5lLWNvbXBvbmVudC9TY2VuZUNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBPYmplY3QzRCxcbiAgTWVzaCxcbiAgVGV4dHVyZSxcbiAgTWVzaEJhc2ljTWF0ZXJpYWwsXG4gIExpbmVTZWdtZW50cyxcbiAgTGluZWFyRmlsdGVyLFxufSBmcm9tICd0aHJlZSc7XG5cbmNvbnN0IEhvdmVyRXZlbnQgPSAnaG92ZXInO1xuY29uc3QgVW5ob3ZlckV2ZW50ID0gJ3VuaG92ZXInO1xuXG50eXBlIElucHV0cyA9IHtcbiAgbG9hZGluZ1N0YXRlOiBzdHJpbmc7XG4gIHRleHR1cmU6IFRleHR1cmUgfCBudWxsO1xuICB1cGRhdGVJbnRlcnZhbDogbnVtYmVyO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBUdlBsYXllciBleHRlbmRzIFNjZW5lQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByb290U2NlbmU6IE9iamVjdDNEIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbWVzaDogTWVzaCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNvbXBvbmVudDogU2NlbmVDb21wb25lbnQ7XG5cblxuICBvdmVycmlkZSBpbnB1dHM6IElucHV0cyA9IHtcbiAgICBsb2FkaW5nU3RhdGU6ICdJZGxlJyxcbiAgICB0ZXh0dXJlOiBudWxsLFxuICAgIHVwZGF0ZUludGVydmFsOiAxMDAwLFxuICB9XG5cblxuICBvdmVycmlkZSBldmVudHMgPSB7XG4gICAgW0hvdmVyRXZlbnRdOiB0cnVlLFxuICAgIFtVbmhvdmVyRXZlbnRdOiB0cnVlLFxuICB9O1xuICBwcml2YXRlIGludGVydmFsVmlkZW9UZXh0dXJlOiBOb2RlSlMuVGltZW91dDtcblxuICBvdmVycmlkZSBvbkluaXQobW9kZWxOb2RlPzogYW55KSB7XG4gICAgaWYgKCF0aGlzLmNvbnRleHQpIHtcbiAgICAgIHRoaXMuY29udGV4dCA9IHtcbiAgICAgICAgcm9vdDogbW9kZWxOb2RlXG4gICAgICB9IGFzIENvbXBvbmVudENvbnRleHQ7XG4gICAgfVxuICAgIGNvbnN0IHJvb3QgPSB0aGlzLmNvbnRleHQucm9vdDtcbiAgICBjb25zdCBUSFJFRSA9IHRoaXMuY29udGV4dC50aHJlZTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uRGVzdHJveSgpIHtcbiAgICBzdXBlci5vbkRlc3Ryb3koKTtcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxWaWRlb1RleHR1cmUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25JbnB1dHNVcGRhdGVkKCkge1xuICAgIGlmICh0aGlzLmlucHV0cy5sb2FkaW5nU3RhdGUgPT09ICdMb2FkZWQnKSB7XG4gICAgICBjb25zdCBsaW5lczogTGluZVNlZ21lbnRzW10gPSBbXTtcblxuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICB0aGlzLmNvbnRleHQucm9vdC5vYmozRC50cmF2ZXJzZSgob2JqOiBPYmplY3QzRCkgPT4ge1xuICAgICAgICAvLyB3ZSBkb250IHdhbnQgbGluZSBzZWdtZW50cywgdHJhY2sgdGhlbSBhbmQgcmVtb3ZlIHRoZW0uXG4gICAgICAgIGlmIChvYmoudHlwZSA9PT0gJ0xpbmVTZWdtZW50cycpIHtcbiAgICAgICAgICBsaW5lcy5wdXNoKG9iaiBhcyBMaW5lU2VnbWVudHMpO1xuICAgICAgICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnTWVzaCcpIHtcbiAgICAgICAgICB0aGlzLm1lc2ggPSBvYmogYXMgTWVzaDtcblxuICAgICAgICAgIGxldCB2aWRlbywgdmlkZW9JbWFnZSwgdmlkZW9JbWFnZUNvbnRleHQsIHZpZGVvVGV4dHVyZTtcbiAgICAgICAgICAvLyBjcmVhdGUgdGhlIHZpZGVvIGVsZW1lbnRcbiAgICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7XG4gICAgICAgICAgLy8gdmlkZW8uc3JjID0gXCIuLy4uL2Fzc2V0cy92aWRlby92aWRlb19zYW1zaWMubXA0XCI7XG4gICAgICAgICAgdmlkZW8uc3JjID0gXCIuLy4uL2Fzc2V0cy92aWRlby8xMjEyMjItMDQubXA0XCI7XG4gICAgICAgICAgdmlkZW8ubG9hZCgpOyAvLyBtdXN0IGNhbGwgYWZ0ZXIgc2V0dGluZy9jaGFuZ2luZyBzb3VyY2VcbiAgICAgICAgICB2aWRlby5sb29wID0gdHJ1ZTtcbiAgICAgICAgICB2aWRlby5wbGF5KCk7XG5cbiAgICAgICAgICB2aWRlb0ltYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgICAgLy8gdmlkZW9JbWFnZS53aWR0aCA9IDY0MDtcbiAgICAgICAgICB2aWRlb0ltYWdlLndpZHRoID0gMTI4MDtcbiAgICAgICAgICAvLyB2aWRlb0ltYWdlLmhlaWdodCA9IDM2MDtcbiAgICAgICAgICB2aWRlb0ltYWdlLmhlaWdodCA9IDcyMDtcblxuICAgICAgICAgIHZpZGVvSW1hZ2VDb250ZXh0ID0gdmlkZW9JbWFnZS5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgICAgIC8vIGJhY2tncm91bmQgY29sb3IgaWYgbm8gdmlkZW8gcHJlc2VudFxuICAgICAgICAgIHZpZGVvSW1hZ2VDb250ZXh0LmZpbGxTdHlsZSA9ICcjMDAwMDAwJztcbiAgICAgICAgICB2aWRlb0ltYWdlQ29udGV4dC5maWxsUmVjdCgwLCAwLCB2aWRlb0ltYWdlLndpZHRoLCB2aWRlb0ltYWdlLmhlaWdodCk7XG5cbiAgICAgICAgICB2aWRlb1RleHR1cmUgPSBuZXcgVGV4dHVyZSh2aWRlb0ltYWdlKVxuICAgICAgICAgIHZpZGVvVGV4dHVyZS5taW5GaWx0ZXIgPSBMaW5lYXJGaWx0ZXI7XG4gICAgICAgICAgdmlkZW9UZXh0dXJlLm1hZ0ZpbHRlciA9IExpbmVhckZpbHRlcjtcbiAgICAgICAgICBjb25zdCBtb3ZpZU1hdGVyaWFsID0gbmV3IE1lc2hCYXNpY01hdGVyaWFsKHttYXA6IHZpZGVvVGV4dHVyZX0pXG4gICAgICAgICAgdGhpcy5tZXNoLm1hdGVyaWFsID0gbW92aWVNYXRlcmlhbDtcblxuICAgICAgICAgIGNvbnN0IHJlbmRlciA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICh2aWRlby5yZWFkeVN0YXRlID09PSB2aWRlby5IQVZFX0VOT1VHSF9EQVRBKSB7XG4gICAgICAgICAgICAgIHZpZGVvSW1hZ2VDb250ZXh0LmRyYXdJbWFnZSh2aWRlbywgMCwgMCk7XG4gICAgICAgICAgICAgIGlmICh2aWRlb1RleHR1cmUpXG4gICAgICAgICAgICAgICAgdmlkZW9UZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNhbWVyYSA9ICh0aGlzLmNvbnRleHQuc2NlbmUuY2hpbGRyZW4uZmluZCh1ID0+IHUuY29uc3RydWN0b3IubmFtZSA9PT0gJ0NhbWVyYVJpZycpKS5jYW1lcmE7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQucmVuZGVyZXIucmVuZGVyKHRoaXMuY29udGV4dC5zY2VuZSwgY2FtZXJhKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5pbnRlcnZhbFZpZGVvVGV4dHVyZSA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIHJlbmRlcigpO1xuICAgICAgICAgIH0sIDE4MCk7XG5cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIHJlbW92ZSB0aGUgbGluZSBzZWdtZW50cy5cbiAgICAgIGxpbmVzLmZvckVhY2goKGxpbmU6IExpbmVTZWdtZW50cykgPT4ge1xuICAgICAgICBsaW5lLnBhcmVudC5yZW1vdmUobGluZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzZXRDb21wb25lbnQoY29tcG9uZW50OiBTY2VuZUNvbXBvbmVudCkge1xuICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgIHRoaXMuY29udGV4dCA9IGNvbXBvbmVudC5jb250ZXh0O1xuICB9XG5cbiAgc2V0Um9vdFNjZW5lKHJvb3RTY2VuZTogT2JqZWN0M0QpIHtcbiAgICB0aGlzLnJvb3RTY2VuZSA9IHJvb3RTY2VuZTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgVHZQbGF5ZXJUeXBlID0gJ21wLlR2UGxheWVyJztcbmV4cG9ydCBjb25zdCBtYWtlVHZQbGF5ZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVHZQbGF5ZXIoKTtcbn1cbiJdfQ==
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
import { SceneComponent } from './../scene-component/SceneComponent';
|
|
2
|
-
import { VideoTexture, LinearFilter, RGBAFormat } from 'three';
|
|
3
|
-
export class VideoRenderer extends SceneComponent {
|
|
4
|
-
constructor() {
|
|
5
|
-
super(...arguments);
|
|
6
|
-
this.inputs = {
|
|
7
|
-
src: null,
|
|
8
|
-
};
|
|
9
|
-
this.outputs = {
|
|
10
|
-
texture: null,
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
onInit() {
|
|
14
|
-
}
|
|
15
|
-
onInputsUpdated() {
|
|
16
|
-
this.releaseTexture();
|
|
17
|
-
// if (!this.inputs.src) {
|
|
18
|
-
// this.video.src = '';
|
|
19
|
-
// return;
|
|
20
|
-
// }
|
|
21
|
-
if (this.inputs.src instanceof HTMLVideoElement) {
|
|
22
|
-
// TODO 'https://www.smarterplan.io/wp-content/uploads/2023/03/121222-04.mp4';
|
|
23
|
-
this.video = this.inputs.src;
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
this.video = this.createVideoElement();
|
|
27
|
-
// if (typeof this.inputs.src === 'string') {
|
|
28
|
-
// this.video.src = this.inputs.src;
|
|
29
|
-
// } else {
|
|
30
|
-
// this.video.srcObject = this.inputs.src;
|
|
31
|
-
// }
|
|
32
|
-
this.video.src = './../assets/video/121222-04.mp4';
|
|
33
|
-
this.video.load();
|
|
34
|
-
}
|
|
35
|
-
this.texture = new VideoTexture(this.video);
|
|
36
|
-
this.texture.minFilter = LinearFilter;
|
|
37
|
-
this.texture.magFilter = LinearFilter;
|
|
38
|
-
this.texture.format = RGBAFormat;
|
|
39
|
-
this.outputs.texture = this.texture;
|
|
40
|
-
this.video.play();
|
|
41
|
-
}
|
|
42
|
-
onDestroy() {
|
|
43
|
-
this.releaseTexture();
|
|
44
|
-
}
|
|
45
|
-
releaseTexture() {
|
|
46
|
-
if (this.texture) {
|
|
47
|
-
this.outputs.texture = null;
|
|
48
|
-
this.texture.dispose();
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
createVideoElement() {
|
|
52
|
-
const video = document.createElement('video');
|
|
53
|
-
video.crossOrigin = 'anonymous';
|
|
54
|
-
video.autoplay = true;
|
|
55
|
-
video.muted = true;
|
|
56
|
-
video.loop = true;
|
|
57
|
-
return video;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
export const videoRendererType = 'mp.videoRenderer';
|
|
61
|
-
export function makeVideoRenderer() {
|
|
62
|
-
return new VideoRenderer();
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { SceneComponent } from './../scene-component/SceneComponent';
|
|
2
|
+
import { VideoTexture, LinearFilter, RGBAFormat } from 'three';
|
|
3
|
+
export class VideoRenderer extends SceneComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.inputs = {
|
|
7
|
+
src: null,
|
|
8
|
+
};
|
|
9
|
+
this.outputs = {
|
|
10
|
+
texture: null,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
onInit() {
|
|
14
|
+
}
|
|
15
|
+
onInputsUpdated() {
|
|
16
|
+
this.releaseTexture();
|
|
17
|
+
// if (!this.inputs.src) {
|
|
18
|
+
// this.video.src = '';
|
|
19
|
+
// return;
|
|
20
|
+
// }
|
|
21
|
+
if (this.inputs.src instanceof HTMLVideoElement) {
|
|
22
|
+
// TODO 'https://www.smarterplan.io/wp-content/uploads/2023/03/121222-04.mp4';
|
|
23
|
+
this.video = this.inputs.src;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.video = this.createVideoElement();
|
|
27
|
+
// if (typeof this.inputs.src === 'string') {
|
|
28
|
+
// this.video.src = this.inputs.src;
|
|
29
|
+
// } else {
|
|
30
|
+
// this.video.srcObject = this.inputs.src;
|
|
31
|
+
// }
|
|
32
|
+
this.video.src = './../assets/video/121222-04.mp4';
|
|
33
|
+
this.video.load();
|
|
34
|
+
}
|
|
35
|
+
this.texture = new VideoTexture(this.video);
|
|
36
|
+
this.texture.minFilter = LinearFilter;
|
|
37
|
+
this.texture.magFilter = LinearFilter;
|
|
38
|
+
this.texture.format = RGBAFormat;
|
|
39
|
+
this.outputs.texture = this.texture;
|
|
40
|
+
this.video.play();
|
|
41
|
+
}
|
|
42
|
+
onDestroy() {
|
|
43
|
+
this.releaseTexture();
|
|
44
|
+
}
|
|
45
|
+
releaseTexture() {
|
|
46
|
+
if (this.texture) {
|
|
47
|
+
this.outputs.texture = null;
|
|
48
|
+
this.texture.dispose();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
createVideoElement() {
|
|
52
|
+
const video = document.createElement('video');
|
|
53
|
+
video.crossOrigin = 'anonymous';
|
|
54
|
+
video.autoplay = true;
|
|
55
|
+
video.muted = true;
|
|
56
|
+
video.loop = true;
|
|
57
|
+
return video;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export const videoRendererType = 'mp.videoRenderer';
|
|
61
|
+
export function makeVideoRenderer() {
|
|
62
|
+
return new VideoRenderer();
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlkZW9SZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvbWF0dGVycG9ydC1leHRlbnNpb25zL3ZpZGVvLXJlbmRlcmVyL1ZpZGVvUmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBa0IsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQVUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFVdEUsTUFBTSxPQUFPLGFBQWMsU0FBUSxjQUFjO0lBQWpEOztRQUlXLFdBQU0sR0FBVztZQUN4QixHQUFHLEVBQUUsSUFBSTtTQUNWLENBQUE7UUFFUSxZQUFPLEdBQUc7WUFDakIsT0FBTyxFQUFFLElBQUk7U0FDSCxDQUFDO0lBMkRmLENBQUM7SUF6RFUsTUFBTTtJQUNmLENBQUM7SUFFUSxlQUFlO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QiwwQkFBMEI7UUFDMUIseUJBQXlCO1FBQ3pCLFlBQVk7UUFDWixJQUFJO1FBRUosSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsWUFBWSxnQkFBZ0IsRUFBRTtZQUMvQyw4RUFBOEU7WUFDOUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUM5QjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUV2Qyw2Q0FBNkM7WUFDN0Msc0NBQXNDO1lBQ3RDLFdBQVc7WUFDWCw0Q0FBNEM7WUFDNUMsSUFBSTtZQUVKLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLGlDQUFpQyxDQUFDO1lBRW5ELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkI7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUVqQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVRLFNBQVM7UUFDaEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWxCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBT0QsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFFcEQsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2NlbmVDb21wb25lbnQsIENvbXBvbmVudE91dHB1dH0gZnJvbSAnLi8uLi9zY2VuZS1jb21wb25lbnQvU2NlbmVDb21wb25lbnQnO1xuaW1wb3J0IHtUZXh0dXJlLCBWaWRlb1RleHR1cmUsIExpbmVhckZpbHRlciwgUkdCQUZvcm1hdH0gZnJvbSAndGhyZWUnO1xuXG50eXBlIElucHV0cyA9IHtcbiAgc3JjOiBNZWRpYVN0cmVhbSB8IHN0cmluZyB8IEhUTUxWaWRlb0VsZW1lbnQgfCBudWxsO1xufTtcblxudHlwZSBPdXRwdXRzID0ge1xuICB0ZXh0dXJlOiBUZXh0dXJlIHwgbnVsbDtcbn0gJiBDb21wb25lbnRPdXRwdXQ7XG5cbmV4cG9ydCBjbGFzcyBWaWRlb1JlbmRlcmVyIGV4dGVuZHMgU2NlbmVDb21wb25lbnQge1xuICBwcml2YXRlIHZpZGVvOiBIVE1MVmlkZW9FbGVtZW50O1xuICBwcml2YXRlIHRleHR1cmU6IFZpZGVvVGV4dHVyZTtcblxuICBvdmVycmlkZSBpbnB1dHM6IElucHV0cyA9IHtcbiAgICBzcmM6IG51bGwsXG4gIH1cblxuICBvdmVycmlkZSBvdXRwdXRzID0ge1xuICAgIHRleHR1cmU6IG51bGwsXG4gIH0gYXMgT3V0cHV0cztcblxuICBvdmVycmlkZSBvbkluaXQoKSB7XG4gIH1cblxuICBvdmVycmlkZSBvbklucHV0c1VwZGF0ZWQoKSB7XG4gICAgdGhpcy5yZWxlYXNlVGV4dHVyZSgpO1xuXG4gICAgLy8gaWYgKCF0aGlzLmlucHV0cy5zcmMpIHtcbiAgICAvLyAgIHRoaXMudmlkZW8uc3JjID0gJyc7XG4gICAgLy8gICByZXR1cm47XG4gICAgLy8gfVxuXG4gICAgaWYgKHRoaXMuaW5wdXRzLnNyYyBpbnN0YW5jZW9mIEhUTUxWaWRlb0VsZW1lbnQpIHtcbiAgICAgIC8vIFRPRE8gJ2h0dHBzOi8vd3d3LnNtYXJ0ZXJwbGFuLmlvL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzAzLzEyMTIyMi0wNC5tcDQnO1xuICAgICAgdGhpcy52aWRlbyA9IHRoaXMuaW5wdXRzLnNyYztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWRlbyA9IHRoaXMuY3JlYXRlVmlkZW9FbGVtZW50KCk7XG5cbiAgICAgIC8vIGlmICh0eXBlb2YgdGhpcy5pbnB1dHMuc3JjID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gICB0aGlzLnZpZGVvLnNyYyA9IHRoaXMuaW5wdXRzLnNyYztcbiAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAvLyAgIHRoaXMudmlkZW8uc3JjT2JqZWN0ID0gdGhpcy5pbnB1dHMuc3JjO1xuICAgICAgLy8gfVxuXG4gICAgICB0aGlzLnZpZGVvLnNyYyA9ICcuLy4uL2Fzc2V0cy92aWRlby8xMjEyMjItMDQubXA0JztcblxuICAgICAgdGhpcy52aWRlby5sb2FkKCk7XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0dXJlID0gbmV3IFZpZGVvVGV4dHVyZSh0aGlzLnZpZGVvKTtcbiAgICB0aGlzLnRleHR1cmUubWluRmlsdGVyID0gTGluZWFyRmlsdGVyO1xuICAgIHRoaXMudGV4dHVyZS5tYWdGaWx0ZXIgPSBMaW5lYXJGaWx0ZXI7XG4gICAgdGhpcy50ZXh0dXJlLmZvcm1hdCA9IFJHQkFGb3JtYXQ7XG5cbiAgICB0aGlzLm91dHB1dHMudGV4dHVyZSA9IHRoaXMudGV4dHVyZTtcbiAgICB0aGlzLnZpZGVvLnBsYXkoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uRGVzdHJveSgpIHtcbiAgICB0aGlzLnJlbGVhc2VUZXh0dXJlKCk7XG4gIH1cblxuICByZWxlYXNlVGV4dHVyZSgpIHtcbiAgICBpZiAodGhpcy50ZXh0dXJlKSB7XG4gICAgICB0aGlzLm91dHB1dHMudGV4dHVyZSA9IG51bGw7XG4gICAgICB0aGlzLnRleHR1cmUuZGlzcG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVmlkZW9FbGVtZW50KCkge1xuICAgIGNvbnN0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTtcbiAgICB2aWRlby5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xuICAgIHZpZGVvLmF1dG9wbGF5ID0gdHJ1ZTtcbiAgICB2aWRlby5tdXRlZCA9IHRydWU7XG4gICAgdmlkZW8ubG9vcCA9IHRydWU7XG5cbiAgICByZXR1cm4gdmlkZW87XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmlkZW9SZW5kZXJlciBleHRlbmRzIFNjZW5lQ29tcG9uZW50IHtcbiAgaW5wdXRzOiBJbnB1dHM7XG4gIG91dHB1dHM6IE91dHB1dHM7XG59XG5cbmV4cG9ydCBjb25zdCB2aWRlb1JlbmRlcmVyVHlwZSA9ICdtcC52aWRlb1JlbmRlcmVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VWaWRlb1JlbmRlcmVyKCkge1xuICByZXR1cm4gbmV3IFZpZGVvUmVuZGVyZXIoKTtcbn1cbiJdfQ==
|