@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.
Files changed (170) hide show
  1. package/README.md +24 -24
  2. package/esm2020/lib/components/csv-export/csv-export.component.mjs +59 -59
  3. package/esm2020/lib/components/loader/loader.component.mjs +23 -23
  4. package/esm2020/lib/components/menu-bar/avatar/avatar.component.mjs +80 -80
  5. package/esm2020/lib/components/menu-bar/menu-bar.component.mjs +99 -99
  6. package/esm2020/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +384 -384
  7. package/esm2020/lib/components/menu-bar/range-date-picker/range-date-picker.component.mjs +147 -147
  8. package/esm2020/lib/components/modal-switch-visit/modal-switch-visit.component.mjs +40 -40
  9. package/esm2020/lib/components/search-bar/search-bar.component.mjs +63 -63
  10. package/esm2020/lib/components/support-modal/support-modal.component.mjs +66 -66
  11. package/esm2020/lib/config.mjs +4 -4
  12. package/esm2020/lib/helpers.service.mjs +470 -470
  13. package/esm2020/lib/matterport-extensions/hsl-loader/HlsLoader.mjs +69 -69
  14. package/esm2020/lib/matterport-extensions/nest-thermostat/CanvasImage.mjs +51 -51
  15. package/esm2020/lib/matterport-extensions/nest-thermostat/CanvasRenderer.mjs +61 -61
  16. package/esm2020/lib/matterport-extensions/nest-thermostat/NestThermostat.mjs +158 -158
  17. package/esm2020/lib/matterport-extensions/nest-thermostat/PlaneRenderer.mjs +85 -85
  18. package/esm2020/lib/matterport-extensions/scene-component/SceneComponent.mjs +128 -128
  19. package/esm2020/lib/matterport-extensions/security-camera/SecurityCamera.mjs +249 -249
  20. package/esm2020/lib/matterport-extensions/tv-player/TvPlayer.mjs +98 -98
  21. package/esm2020/lib/matterport-extensions/video-renderer/VideoRenderer.mjs +64 -64
  22. package/esm2020/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.mjs +221 -221
  23. package/esm2020/lib/mattertagData.mjs +165 -165
  24. package/esm2020/lib/ngx-smarterplan-core.module.mjs +122 -122
  25. package/esm2020/lib/ngx-smarterplan-core.service.mjs +14 -14
  26. package/esm2020/lib/pipes/duration-to-string.pipe.mjs +66 -66
  27. package/esm2020/lib/pipes/format-date-number-to-digits.pipe.mjs +30 -30
  28. package/esm2020/lib/pipes/hashtag-from-id.pipe.mjs +26 -26
  29. package/esm2020/lib/pipes/safe-url.pipe.mjs +20 -20
  30. package/esm2020/lib/pipes/time-date-to-local-string.pipe.mjs +104 -104
  31. package/esm2020/lib/pipes/username-from-id.pipe.mjs +29 -29
  32. package/esm2020/lib/services/amplify-cache.service.mjs +72 -72
  33. package/esm2020/lib/services/base-tab.service.mjs +24 -24
  34. package/esm2020/lib/services/baseVisibility.service.mjs +18 -18
  35. package/esm2020/lib/services/content.service.mjs +135 -135
  36. package/esm2020/lib/services/filter.service.mjs +599 -599
  37. package/esm2020/lib/services/intervention.service.mjs +236 -236
  38. package/esm2020/lib/services/locale.service.mjs +45 -45
  39. package/esm2020/lib/services/matterport-import.service.mjs +340 -340
  40. package/esm2020/lib/services/matterport.service.mjs +1587 -1587
  41. package/esm2020/lib/services/models/affectation.service.mjs +60 -60
  42. package/esm2020/lib/services/models/base-object.service.mjs +70 -70
  43. package/esm2020/lib/services/models/capture.service.mjs +34 -34
  44. package/esm2020/lib/services/models/comment.service.mjs +98 -98
  45. package/esm2020/lib/services/models/domain.service.mjs +78 -78
  46. package/esm2020/lib/services/models/equipment.service.mjs +683 -683
  47. package/esm2020/lib/services/models/event.service.mjs +128 -128
  48. package/esm2020/lib/services/models/feature.service.mjs +380 -364
  49. package/esm2020/lib/services/models/hashtag.service.mjs +38 -38
  50. package/esm2020/lib/services/models/layer.service.mjs +33 -33
  51. package/esm2020/lib/services/models/measurement.service.mjs +199 -199
  52. package/esm2020/lib/services/models/mission.service.mjs +206 -206
  53. package/esm2020/lib/services/models/navigation.service.mjs +92 -92
  54. package/esm2020/lib/services/models/node.service.mjs +31 -31
  55. package/esm2020/lib/services/models/object3D.service.mjs +364 -364
  56. package/esm2020/lib/services/models/operation.service.mjs +59 -59
  57. package/esm2020/lib/services/models/organisation.service.mjs +73 -73
  58. package/esm2020/lib/services/models/plan.service.mjs +799 -799
  59. package/esm2020/lib/services/models/poi.service.mjs +103 -103
  60. package/esm2020/lib/services/models/profile.service.mjs +58 -58
  61. package/esm2020/lib/services/models/property.service.mjs +44 -44
  62. package/esm2020/lib/services/models/space.service.mjs +204 -204
  63. package/esm2020/lib/services/models/template.service.mjs +41 -41
  64. package/esm2020/lib/services/models/ticket.service.mjs +526 -526
  65. package/esm2020/lib/services/models/visit.service.mjs +130 -130
  66. package/esm2020/lib/services/models/zone.service.mjs +225 -225
  67. package/esm2020/lib/services/navigator.service.mjs +212 -212
  68. package/esm2020/lib/services/s3.service.mjs +137 -137
  69. package/esm2020/lib/services/search.service.mjs +124 -124
  70. package/esm2020/lib/services/support.service.mjs +42 -42
  71. package/esm2020/lib/services/tag.service.mjs +111 -111
  72. package/esm2020/lib/services/user.service.mjs +501 -501
  73. package/esm2020/lib/services/validators.service.mjs +50 -50
  74. package/esm2020/lib/services/viewer.service.mjs +389 -389
  75. package/esm2020/lib/services/zone-drawer.service.mjs +76 -76
  76. package/esm2020/lib/services/zoneChange.service.mjs +30 -30
  77. package/esm2020/lib/types.service.mjs +311 -310
  78. package/esm2020/lib/validators/email.directive.mjs +7 -7
  79. package/esm2020/lib/validators/no-empty.directive.mjs +12 -12
  80. package/esm2020/lib/validators/number.directive.mjs +12 -12
  81. package/esm2020/lib/validators/text.directive.mjs +12 -12
  82. package/esm2020/public-api.mjs +72 -72
  83. package/esm2020/smarterplan-ngx-smarterplan-core.mjs +4 -4
  84. package/fesm2015/smarterplan-ngx-smarterplan-core.mjs +13009 -12992
  85. package/fesm2015/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
  86. package/fesm2020/smarterplan-ngx-smarterplan-core.mjs +12258 -12241
  87. package/fesm2020/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
  88. package/lib/components/csv-export/csv-export.component.d.ts +18 -18
  89. package/lib/components/loader/loader.component.d.ts +10 -10
  90. package/lib/components/menu-bar/avatar/avatar.component.d.ts +21 -21
  91. package/lib/components/menu-bar/menu-bar.component.d.ts +38 -38
  92. package/lib/components/menu-bar/navigation-bar/navigation-bar.component.d.ts +73 -73
  93. package/lib/components/menu-bar/range-date-picker/range-date-picker.component.d.ts +35 -35
  94. package/lib/components/modal-switch-visit/modal-switch-visit.component.d.ts +22 -22
  95. package/lib/components/search-bar/search-bar.component.d.ts +16 -16
  96. package/lib/components/support-modal/support-modal.component.d.ts +26 -26
  97. package/lib/config.d.ts +22 -22
  98. package/lib/helpers.service.d.ts +79 -79
  99. package/lib/matterport-extensions/hsl-loader/HlsLoader.d.ts +26 -26
  100. package/lib/matterport-extensions/nest-thermostat/CanvasImage.d.ts +31 -31
  101. package/lib/matterport-extensions/nest-thermostat/CanvasRenderer.d.ts +37 -37
  102. package/lib/matterport-extensions/nest-thermostat/NestThermostat.d.ts +42 -42
  103. package/lib/matterport-extensions/nest-thermostat/PlaneRenderer.d.ts +46 -46
  104. package/lib/matterport-extensions/scene-component/SceneComponent.d.ts +388 -388
  105. package/lib/matterport-extensions/security-camera/SecurityCamera.d.ts +47 -47
  106. package/lib/matterport-extensions/tv-player/TvPlayer.d.ts +26 -26
  107. package/lib/matterport-extensions/video-renderer/VideoRenderer.d.ts +26 -26
  108. package/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.d.ts +43 -43
  109. package/lib/mattertagData.d.ts +70 -70
  110. package/lib/ngx-smarterplan-core.module.d.ts +29 -29
  111. package/lib/ngx-smarterplan-core.service.d.ts +6 -6
  112. package/lib/pipes/duration-to-string.pipe.d.ts +12 -12
  113. package/lib/pipes/format-date-number-to-digits.pipe.d.ts +10 -10
  114. package/lib/pipes/hashtag-from-id.pipe.d.ts +10 -10
  115. package/lib/pipes/safe-url.pipe.d.ts +10 -10
  116. package/lib/pipes/time-date-to-local-string.pipe.d.ts +16 -16
  117. package/lib/pipes/username-from-id.pipe.d.ts +11 -11
  118. package/lib/services/amplify-cache.service.d.ts +37 -37
  119. package/lib/services/base-tab.service.d.ts +10 -10
  120. package/lib/services/baseVisibility.service.d.ts +9 -9
  121. package/lib/services/content.service.d.ts +28 -28
  122. package/lib/services/filter.service.d.ts +60 -60
  123. package/lib/services/intervention.service.d.ts +25 -25
  124. package/lib/services/locale.service.d.ts +23 -23
  125. package/lib/services/matterport-import.service.d.ts +53 -53
  126. package/lib/services/matterport.service.d.ts +336 -336
  127. package/lib/services/models/affectation.service.d.ts +14 -14
  128. package/lib/services/models/base-object.service.d.ts +20 -20
  129. package/lib/services/models/capture.service.d.ts +13 -13
  130. package/lib/services/models/comment.service.d.ts +26 -26
  131. package/lib/services/models/domain.service.d.ts +19 -19
  132. package/lib/services/models/equipment.service.d.ts +93 -93
  133. package/lib/services/models/event.service.d.ts +43 -43
  134. package/lib/services/models/feature.service.d.ts +75 -74
  135. package/lib/services/models/hashtag.service.d.ts +13 -13
  136. package/lib/services/models/layer.service.d.ts +11 -11
  137. package/lib/services/models/measurement.service.d.ts +51 -51
  138. package/lib/services/models/mission.service.d.ts +39 -39
  139. package/lib/services/models/navigation.service.d.ts +29 -29
  140. package/lib/services/models/node.service.d.ts +12 -12
  141. package/lib/services/models/object3D.service.d.ts +57 -57
  142. package/lib/services/models/operation.service.d.ts +15 -15
  143. package/lib/services/models/organisation.service.d.ts +19 -19
  144. package/lib/services/models/plan.service.d.ts +133 -133
  145. package/lib/services/models/poi.service.d.ts +25 -25
  146. package/lib/services/models/profile.service.d.ts +16 -16
  147. package/lib/services/models/property.service.d.ts +13 -13
  148. package/lib/services/models/space.service.d.ts +46 -46
  149. package/lib/services/models/template.service.d.ts +15 -15
  150. package/lib/services/models/ticket.service.d.ts +93 -93
  151. package/lib/services/models/visit.service.d.ts +24 -24
  152. package/lib/services/models/zone.service.d.ts +50 -50
  153. package/lib/services/navigator.service.d.ts +61 -61
  154. package/lib/services/s3.service.d.ts +14 -14
  155. package/lib/services/search.service.d.ts +20 -20
  156. package/lib/services/support.service.d.ts +17 -17
  157. package/lib/services/tag.service.d.ts +29 -29
  158. package/lib/services/user.service.d.ts +118 -118
  159. package/lib/services/validators.service.d.ts +18 -18
  160. package/lib/services/viewer.service.d.ts +110 -110
  161. package/lib/services/zone-drawer.service.d.ts +7 -7
  162. package/lib/services/zoneChange.service.d.ts +17 -17
  163. package/lib/types.service.d.ts +842 -840
  164. package/lib/validators/email.directive.d.ts +2 -2
  165. package/lib/validators/no-empty.directive.d.ts +2 -2
  166. package/lib/validators/number.directive.d.ts +2 -2
  167. package/lib/validators/text.directive.d.ts +2 -2
  168. package/package.json +1 -1
  169. package/public-api.d.ts +64 -64
  170. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHZQbGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL21hdHRlcnBvcnQtZXh0ZW5zaW9ucy90di1wbGF5ZXIvVHZQbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBbUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRixPQUFPLEVBR0wsT0FBTyxFQUNQLGlCQUFpQixFQUVqQixZQUFZLEdBQ2IsTUFBTSxPQUFPLENBQUM7QUFFZixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFDM0IsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO0FBUy9CLE1BQU0sT0FBTyxRQUFTLFNBQVEsY0FBYztJQUE1Qzs7UUFDVSxjQUFTLEdBQW9CLElBQUksQ0FBQztRQUNsQyxTQUFJLEdBQWdCLElBQUksQ0FBQztRQUl4QixXQUFNLEdBQVc7WUFDeEIsWUFBWSxFQUFFLE1BQU07WUFDcEIsT0FBTyxFQUFFLElBQUk7WUFDYixjQUFjLEVBQUUsSUFBSTtTQUNyQixDQUFBO1FBR1EsV0FBTSxHQUFHO1lBQ2hCLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSTtZQUNsQixDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUk7U0FDckIsQ0FBQztJQXVGSixDQUFDO0lBcEZVLE1BQU0sQ0FBQyxTQUFlO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUc7Z0JBQ2IsSUFBSSxFQUFFLFNBQVM7YUFDSSxDQUFDO1NBQ3ZCO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVRLFNBQVM7UUFDaEIsS0FBSyxDQUFDLFNBQVMsRUFB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QW9CLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTt3QkFDM0MsTUFBTSxFQUFFLENBQUM7b0JBQ1gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lCQUVUO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCw0QkFBNEI7WUFDNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWtCLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsU0FBeUI7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBbUI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDMUIsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO0FBQ3hCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2NlbmVDb21wb25lbnQsIENvbXBvbmVudENvbnRleHR9IGZyb20gJy4uL3NjZW5lLWNvbXBvbmVudC9TY2VuZUNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgT2JqZWN0M0QsXHJcbiAgTWVzaCxcclxuICBUZXh0dXJlLFxyXG4gIE1lc2hCYXNpY01hdGVyaWFsLFxyXG4gIExpbmVTZWdtZW50cyxcclxuICBMaW5lYXJGaWx0ZXIsXHJcbn0gZnJvbSAndGhyZWUnO1xyXG5cclxuY29uc3QgSG92ZXJFdmVudCA9ICdob3Zlcic7XHJcbmNvbnN0IFVuaG92ZXJFdmVudCA9ICd1bmhvdmVyJztcclxuXHJcbnR5cGUgSW5wdXRzID0ge1xyXG4gIGxvYWRpbmdTdGF0ZTogc3RyaW5nO1xyXG4gIHRleHR1cmU6IFRleHR1cmUgfCBudWxsO1xyXG4gIHVwZGF0ZUludGVydmFsOiBudW1iZXI7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgVHZQbGF5ZXIgZXh0ZW5kcyBTY2VuZUNvbXBvbmVudCB7XHJcbiAgcHJpdmF0ZSByb290U2NlbmU6IE9iamVjdDNEIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBtZXNoOiBNZXNoIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBjb21wb25lbnQ6IFNjZW5lQ29tcG9uZW50O1xyXG5cclxuXHJcbiAgb3ZlcnJpZGUgaW5wdXRzOiBJbnB1dHMgPSB7XHJcbiAgICBsb2FkaW5nU3RhdGU6ICdJZGxlJyxcclxuICAgIHRleHR1cmU6IG51bGwsXHJcbiAgICB1cGRhdGVJbnRlcnZhbDogMTAwMCxcclxuICB9XHJcblxyXG5cclxuICBvdmVycmlkZSBldmVudHMgPSB7XHJcbiAgICBbSG92ZXJFdmVudF06IHRydWUsXHJcbiAgICBbVW5ob3ZlckV2ZW50XTogdHJ1ZSxcclxuICB9O1xyXG4gIHByaXZhdGUgaW50ZXJ2YWxWaWRlb1RleHR1cmU6IE5vZGVKUy5UaW1lb3V0O1xyXG5cclxuICBvdmVycmlkZSBvbkluaXQobW9kZWxOb2RlPzogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuY29udGV4dCkge1xyXG4gICAgICB0aGlzLmNvbnRleHQgPSB7XHJcbiAgICAgICAgcm9vdDogbW9kZWxOb2RlXHJcbiAgICAgIH0gYXMgQ29tcG9uZW50Q29udGV4dDtcclxuICAgIH1cclxuICAgIGNvbnN0IHJvb3QgPSB0aGlzLmNvbnRleHQucm9vdDtcclxuICAgIGNvbnN0IFRIUkVFID0gdGhpcy5jb250ZXh0LnRocmVlO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb25EZXN0cm95KCkge1xyXG4gICAgc3VwZXIub25EZXN0cm95KCk7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxWaWRlb1RleHR1cmUpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb25JbnB1dHNVcGRhdGVkKCkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRzLmxvYWRpbmdTdGF0ZSA9PT0gJ0xvYWRlZCcpIHtcclxuICAgICAgY29uc3QgbGluZXM6IExpbmVTZWdtZW50c1tdID0gW107XHJcblxyXG4gICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgdGhpcy5jb250ZXh0LnJvb3Qub2JqM0QudHJhdmVyc2UoKG9iajogT2JqZWN0M0QpID0+IHtcclxuICAgICAgICAvLyB3ZSBkb250IHdhbnQgbGluZSBzZWdtZW50cywgdHJhY2sgdGhlbSBhbmQgcmVtb3ZlIHRoZW0uXHJcbiAgICAgICAgaWYgKG9iai50eXBlID09PSAnTGluZVNlZ21lbnRzJykge1xyXG4gICAgICAgICAgbGluZXMucHVzaChvYmogYXMgTGluZVNlZ21lbnRzKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnTWVzaCcpIHtcclxuICAgICAgICAgIHRoaXMubWVzaCA9IG9iaiBhcyBNZXNoO1xyXG5cclxuICAgICAgICAgIGxldCB2aWRlbywgdmlkZW9JbWFnZSwgdmlkZW9JbWFnZUNvbnRleHQsIHZpZGVvVGV4dHVyZTtcclxuICAgICAgICAgIC8vIGNyZWF0ZSB0aGUgdmlkZW8gZWxlbWVudFxyXG4gICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpO1xyXG4gICAgICAgICAgLy8gdmlkZW8uc3JjID0gXCIuLy4uL2Fzc2V0cy92aWRlby92aWRlb19zYW1zaWMubXA0XCI7XHJcbiAgICAgICAgICB2aWRlby5zcmMgPSBcIi4vLi4vYXNzZXRzL3ZpZGVvLzEyMTIyMi0wNC5tcDRcIjtcclxuICAgICAgICAgIHZpZGVvLmxvYWQoKTsgLy8gbXVzdCBjYWxsIGFmdGVyIHNldHRpbmcvY2hhbmdpbmcgc291cmNlXHJcbiAgICAgICAgICB2aWRlby5sb29wID0gdHJ1ZTtcclxuICAgICAgICAgIHZpZGVvLnBsYXkoKTtcclxuXHJcbiAgICAgICAgICB2aWRlb0ltYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcbiAgICAgICAgICAvLyB2aWRlb0ltYWdlLndpZHRoID0gNjQwO1xyXG4gICAgICAgICAgdmlkZW9JbWFnZS53aWR0aCA9IDEyODA7XHJcbiAgICAgICAgICAvLyB2aWRlb0ltYWdlLmhlaWdodCA9IDM2MDtcclxuICAgICAgICAgIHZpZGVvSW1hZ2UuaGVpZ2h0ID0gNzIwO1xyXG5cclxuICAgICAgICAgIHZpZGVvSW1hZ2VDb250ZXh0ID0gdmlkZW9JbWFnZS5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICAgICAgLy8gYmFja2dyb3VuZCBjb2xvciBpZiBubyB2aWRlbyBwcmVzZW50XHJcbiAgICAgICAgICB2aWRlb0ltYWdlQ29udGV4dC5maWxsU3R5bGUgPSAnIzAwMDAwMCc7XHJcbiAgICAgICAgICB2aWRlb0ltYWdlQ29udGV4dC5maWxsUmVjdCgwLCAwLCB2aWRlb0ltYWdlLndpZHRoLCB2aWRlb0ltYWdlLmhlaWdodCk7XHJcblxyXG4gICAgICAgICAgdmlkZW9UZXh0dXJlID0gbmV3IFRleHR1cmUodmlkZW9JbWFnZSlcclxuICAgICAgICAgIHZpZGVvVGV4dHVyZS5taW5GaWx0ZXIgPSBMaW5lYXJGaWx0ZXI7XHJcbiAgICAgICAgICB2aWRlb1RleHR1cmUubWFnRmlsdGVyID0gTGluZWFyRmlsdGVyO1xyXG4gICAgICAgICAgY29uc3QgbW92aWVNYXRlcmlhbCA9IG5ldyBNZXNoQmFzaWNNYXRlcmlhbCh7bWFwOiB2aWRlb1RleHR1cmV9KVxyXG4gICAgICAgICAgdGhpcy5tZXNoLm1hdGVyaWFsID0gbW92aWVNYXRlcmlhbDtcclxuXHJcbiAgICAgICAgICBjb25zdCByZW5kZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh2aWRlby5yZWFkeVN0YXRlID09PSB2aWRlby5IQVZFX0VOT1VHSF9EQVRBKSB7XHJcbiAgICAgICAgICAgICAgdmlkZW9JbWFnZUNvbnRleHQuZHJhd0ltYWdlKHZpZGVvLCAwLCAwKTtcclxuICAgICAgICAgICAgICBpZiAodmlkZW9UZXh0dXJlKVxyXG4gICAgICAgICAgICAgICAgdmlkZW9UZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBjYW1lcmEgPSAodGhpcy5jb250ZXh0LnNjZW5lLmNoaWxkcmVuLmZpbmQodSA9PiB1LmNvbnN0cnVjdG9yLm5hbWUgPT09ICdDYW1lcmFSaWcnKSkuY2FtZXJhO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQucmVuZGVyZXIucmVuZGVyKHRoaXMuY29udGV4dC5zY2VuZSwgY2FtZXJhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuaW50ZXJ2YWxWaWRlb1RleHR1cmUgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHJlbmRlcigpO1xyXG4gICAgICAgICAgfSwgMTgwKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIHJlbW92ZSB0aGUgbGluZSBzZWdtZW50cy5cclxuICAgICAgbGluZXMuZm9yRWFjaCgobGluZTogTGluZVNlZ21lbnRzKSA9PiB7XHJcbiAgICAgICAgbGluZS5wYXJlbnQucmVtb3ZlKGxpbmUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENvbXBvbmVudChjb21wb25lbnQ6IFNjZW5lQ29tcG9uZW50KSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudCA9IGNvbXBvbmVudDtcclxuICAgIHRoaXMuY29udGV4dCA9IGNvbXBvbmVudC5jb250ZXh0O1xyXG4gIH1cclxuXHJcbiAgc2V0Um9vdFNjZW5lKHJvb3RTY2VuZTogT2JqZWN0M0QpIHtcclxuICAgIHRoaXMucm9vdFNjZW5lID0gcm9vdFNjZW5lO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFR2UGxheWVyVHlwZSA9ICdtcC5UdlBsYXllcic7XHJcbmV4cG9ydCBjb25zdCBtYWtlVHZQbGF5ZXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgcmV0dXJuIG5ldyBUdlBsYXllcigpO1xyXG59XHJcbiJdfQ==
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlkZW9SZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbWFydGVycGxhbi1jb3JlL3NyYy9saWIvbWF0dGVycG9ydC1leHRlbnNpb25zL3ZpZGVvLXJlbmRlcmVyL1ZpZGVvUmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBa0IsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQVUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFVdEUsTUFBTSxPQUFPLGFBQWMsU0FBUSxjQUFjO0lBQWpEOztRQUlXLFdBQU0sR0FBVztZQUN4QixHQUFHLEVBQUUsSUFBSTtTQUNWLENBQUE7UUFFUSxZQUFPLEdBQUc7WUFDakIsT0FBTyxFQUFFLElBQUk7U0FDSCxDQUFDO0lBMkRmLENBQUM7SUF6RFUsTUFBTTtJQUNmLENBQUM7SUFFUSxlQUFlO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QiwwQkFBMEI7UUFDMUIseUJBQXlCO1FBQ3pCLFlBQVk7UUFDWixJQUFJO1FBRUosSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsWUFBWSxnQkFBZ0IsRUFBRTtZQUMvQyw4RUFBOEU7WUFDOUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUM5QjthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUV2Qyw2Q0FBNkM7WUFDN0Msc0NBQXNDO1lBQ3RDLFdBQVc7WUFDWCw0Q0FBNEM7WUFDNUMsSUFBSTtZQUVKLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLGlDQUFpQyxDQUFDO1lBRW5ELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkI7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUVqQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVRLFNBQVM7UUFDaEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ25CLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWxCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBT0QsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFFcEQsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2NlbmVDb21wb25lbnQsIENvbXBvbmVudE91dHB1dH0gZnJvbSAnLi8uLi9zY2VuZS1jb21wb25lbnQvU2NlbmVDb21wb25lbnQnO1xyXG5pbXBvcnQge1RleHR1cmUsIFZpZGVvVGV4dHVyZSwgTGluZWFyRmlsdGVyLCBSR0JBRm9ybWF0fSBmcm9tICd0aHJlZSc7XHJcblxyXG50eXBlIElucHV0cyA9IHtcclxuICBzcmM6IE1lZGlhU3RyZWFtIHwgc3RyaW5nIHwgSFRNTFZpZGVvRWxlbWVudCB8IG51bGw7XHJcbn07XHJcblxyXG50eXBlIE91dHB1dHMgPSB7XHJcbiAgdGV4dHVyZTogVGV4dHVyZSB8IG51bGw7XHJcbn0gJiBDb21wb25lbnRPdXRwdXQ7XHJcblxyXG5leHBvcnQgY2xhc3MgVmlkZW9SZW5kZXJlciBleHRlbmRzIFNjZW5lQ29tcG9uZW50IHtcclxuICBwcml2YXRlIHZpZGVvOiBIVE1MVmlkZW9FbGVtZW50O1xyXG4gIHByaXZhdGUgdGV4dHVyZTogVmlkZW9UZXh0dXJlO1xyXG5cclxuICBvdmVycmlkZSBpbnB1dHM6IElucHV0cyA9IHtcclxuICAgIHNyYzogbnVsbCxcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG91dHB1dHMgPSB7XHJcbiAgICB0ZXh0dXJlOiBudWxsLFxyXG4gIH0gYXMgT3V0cHV0cztcclxuXHJcbiAgb3ZlcnJpZGUgb25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb25JbnB1dHNVcGRhdGVkKCkge1xyXG4gICAgdGhpcy5yZWxlYXNlVGV4dHVyZSgpO1xyXG5cclxuICAgIC8vIGlmICghdGhpcy5pbnB1dHMuc3JjKSB7XHJcbiAgICAvLyAgIHRoaXMudmlkZW8uc3JjID0gJyc7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAodGhpcy5pbnB1dHMuc3JjIGluc3RhbmNlb2YgSFRNTFZpZGVvRWxlbWVudCkge1xyXG4gICAgICAvLyBUT0RPICdodHRwczovL3d3dy5zbWFydGVycGxhbi5pby93cC1jb250ZW50L3VwbG9hZHMvMjAyMy8wMy8xMjEyMjItMDQubXA0JztcclxuICAgICAgdGhpcy52aWRlbyA9IHRoaXMuaW5wdXRzLnNyYztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlkZW8gPSB0aGlzLmNyZWF0ZVZpZGVvRWxlbWVudCgpO1xyXG5cclxuICAgICAgLy8gaWYgKHR5cGVvZiB0aGlzLmlucHV0cy5zcmMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIC8vICAgdGhpcy52aWRlby5zcmMgPSB0aGlzLmlucHV0cy5zcmM7XHJcbiAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgIC8vICAgdGhpcy52aWRlby5zcmNPYmplY3QgPSB0aGlzLmlucHV0cy5zcmM7XHJcbiAgICAgIC8vIH1cclxuXHJcbiAgICAgIHRoaXMudmlkZW8uc3JjID0gJy4vLi4vYXNzZXRzL3ZpZGVvLzEyMTIyMi0wNC5tcDQnO1xyXG5cclxuICAgICAgdGhpcy52aWRlby5sb2FkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy50ZXh0dXJlID0gbmV3IFZpZGVvVGV4dHVyZSh0aGlzLnZpZGVvKTtcclxuICAgIHRoaXMudGV4dHVyZS5taW5GaWx0ZXIgPSBMaW5lYXJGaWx0ZXI7XHJcbiAgICB0aGlzLnRleHR1cmUubWFnRmlsdGVyID0gTGluZWFyRmlsdGVyO1xyXG4gICAgdGhpcy50ZXh0dXJlLmZvcm1hdCA9IFJHQkFGb3JtYXQ7XHJcblxyXG4gICAgdGhpcy5vdXRwdXRzLnRleHR1cmUgPSB0aGlzLnRleHR1cmU7XHJcbiAgICB0aGlzLnZpZGVvLnBsYXkoKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG9uRGVzdHJveSgpIHtcclxuICAgIHRoaXMucmVsZWFzZVRleHR1cmUoKTtcclxuICB9XHJcblxyXG4gIHJlbGVhc2VUZXh0dXJlKCkge1xyXG4gICAgaWYgKHRoaXMudGV4dHVyZSkge1xyXG4gICAgICB0aGlzLm91dHB1dHMudGV4dHVyZSA9IG51bGw7XHJcbiAgICAgIHRoaXMudGV4dHVyZS5kaXNwb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVZpZGVvRWxlbWVudCgpIHtcclxuICAgIGNvbnN0IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTtcclxuICAgIHZpZGVvLmNyb3NzT3JpZ2luID0gJ2Fub255bW91cyc7XHJcbiAgICB2aWRlby5hdXRvcGxheSA9IHRydWU7XHJcbiAgICB2aWRlby5tdXRlZCA9IHRydWU7XHJcbiAgICB2aWRlby5sb29wID0gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gdmlkZW87XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElWaWRlb1JlbmRlcmVyIGV4dGVuZHMgU2NlbmVDb21wb25lbnQge1xyXG4gIGlucHV0czogSW5wdXRzO1xyXG4gIG91dHB1dHM6IE91dHB1dHM7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB2aWRlb1JlbmRlcmVyVHlwZSA9ICdtcC52aWRlb1JlbmRlcmVyJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlVmlkZW9SZW5kZXJlcigpIHtcclxuICByZXR1cm4gbmV3IFZpZGVvUmVuZGVyZXIoKTtcclxufVxyXG4iXX0=
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==