@rocketshow/designer 1.33.0 → 1.36.0
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/assets/i18n/de.json +2 -1
- package/assets/i18n/en.json +2 -1
- package/esm2022/lib/designer.component.mjs +197 -130
- package/esm2022/lib/designer.module.mjs +5 -2
- package/esm2022/lib/dropzone/dropzone.component.mjs +93 -0
- package/esm2022/lib/effect/effect-curve/effect-curve.component.mjs +14 -6
- package/esm2022/lib/fixture/fixture-capability/fixture-capability.component.mjs +5 -5
- package/esm2022/lib/fixture/fixture-channel/fixture-channel.component.mjs +6 -4
- package/esm2022/lib/fixture/fixture.component.mjs +25 -15
- package/esm2022/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.mjs +4 -4
- package/esm2022/lib/fixture-pool/fixture-pool.component.mjs +73 -21
- package/esm2022/lib/models/cached-fixture.mjs +1 -1
- package/esm2022/lib/models/fixture-matrix-pixel-group-constraints.mjs +27 -0
- package/esm2022/lib/models/fixture-matrix-pixel-group.mjs +12 -0
- package/esm2022/lib/models/fixture-matrix.mjs +25 -0
- package/esm2022/lib/models/fixture-mode-channel.mjs +26 -0
- package/esm2022/lib/models/fixture-mode.mjs +5 -2
- package/esm2022/lib/models/fixture-physical.mjs +14 -0
- package/esm2022/lib/models/fixture-profile.mjs +16 -1
- package/esm2022/lib/models/fixture.mjs +2 -2
- package/esm2022/lib/models/preset-fixture.mjs +10 -0
- package/esm2022/lib/models/preset.mjs +10 -1
- package/esm2022/lib/models/project.mjs +11 -1
- package/esm2022/lib/preview/models/color-changer-3d.mjs +5 -108
- package/esm2022/lib/preview/models/fixture-3d.mjs +125 -1
- package/esm2022/lib/preview/models/moving-head-3d.mjs +3 -122
- package/esm2022/lib/preview/preview.component.mjs +21 -16
- package/esm2022/lib/services/config.service.mjs +2 -1
- package/esm2022/lib/services/fixture.service.mjs +306 -44
- package/esm2022/lib/services/preset.service.mjs +92 -42
- package/esm2022/lib/services/preview.service.mjs +29 -60
- package/esm2022/lib/services/project-load.service.mjs +61 -4
- package/esm2022/lib/services/project.service.mjs +11 -15
- package/esm2022/lib/timeline/composition-settings/composition-settings.component.mjs +14 -44
- package/fesm2022/rocketshow-designer.mjs +1319 -758
- package/fesm2022/rocketshow-designer.mjs.map +1 -1
- package/lib/designer.component.d.ts +5 -5
- package/lib/designer.module.d.ts +15 -14
- package/lib/dropzone/dropzone.component.d.ts +24 -0
- package/lib/fixture/fixture.component.d.ts +4 -3
- package/lib/models/cached-fixture.d.ts +1 -0
- package/lib/models/fixture-matrix-pixel-group-constraints.d.ts +8 -0
- package/lib/models/fixture-matrix-pixel-group.d.ts +6 -0
- package/lib/models/fixture-matrix.d.ts +6 -0
- package/lib/models/fixture-mode-channel.d.ts +8 -0
- package/lib/models/fixture-mode.d.ts +3 -1
- package/lib/models/fixture-physical.d.ts +4 -0
- package/lib/models/fixture-profile.d.ts +5 -0
- package/lib/models/preset-fixture.d.ts +5 -0
- package/lib/models/preset.d.ts +2 -0
- package/lib/models/project.d.ts +3 -0
- package/lib/preview/models/color-changer-3d.d.ts +1 -11
- package/lib/preview/models/fixture-3d.d.ts +11 -0
- package/lib/preview/models/moving-head-3d.d.ts +1 -11
- package/lib/services/config.service.d.ts +1 -0
- package/lib/services/fixture.service.d.ts +12 -2
- package/lib/services/preset.service.d.ts +5 -2
- package/lib/services/preview.service.d.ts +2 -5
- package/lib/services/project-load.service.d.ts +5 -1
- package/lib/services/project.service.d.ts +2 -3
- package/lib/services/timeline.service.d.ts +1 -1
- package/lib/timeline/composition-settings/composition-settings.component.d.ts +2 -1
- package/package.json +1 -1
- package/rocketshow-designer-1.36.0.tgz +0 -0
- package/esm2022/lib/models/universe.mjs +0 -11
- package/esm2022/lib/services/universe.service.mjs +0 -23
- package/lib/models/universe.d.ts +0 -8
- package/lib/services/universe.service.d.ts +0 -9
- package/rocketshow-designer-1.33.0.tgz +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FixtureModeChannel } from './fixture-mode-channel';
|
|
1
2
|
export class FixtureMode {
|
|
2
3
|
constructor(data) {
|
|
3
4
|
this.channels = [];
|
|
@@ -7,8 +8,10 @@ export class FixtureMode {
|
|
|
7
8
|
this.name = data.name;
|
|
8
9
|
this.shortName = data.shortName;
|
|
9
10
|
if (data.channels) {
|
|
10
|
-
|
|
11
|
+
for (const channel of data.channels) {
|
|
12
|
+
this.channels.push(new FixtureModeChannel(channel));
|
|
13
|
+
}
|
|
11
14
|
}
|
|
12
15
|
}
|
|
13
16
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1tb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9tb2RlbHMvZml4dHVyZS1tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTVELE1BQU0sT0FBTyxXQUFXO0lBTXRCLFlBQVksSUFBVTtRQUh0QixhQUFRLEdBQXlCLEVBQUUsQ0FBQztRQUlsQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN0RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpeHR1cmVNb2RlQ2hhbm5lbCB9IGZyb20gJy4vZml4dHVyZS1tb2RlLWNoYW5uZWwnO1xuXG5leHBvcnQgY2xhc3MgRml4dHVyZU1vZGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHNob3J0TmFtZTogc3RyaW5nO1xuICBjaGFubmVsczogRml4dHVyZU1vZGVDaGFubmVsW10gPSBbXTtcbiAgY2hhbm5lbENvdW50OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICB0aGlzLnNob3J0TmFtZSA9IGRhdGEuc2hvcnROYW1lO1xuXG4gICAgaWYgKGRhdGEuY2hhbm5lbHMpIHtcbiAgICAgIGZvciAoY29uc3QgY2hhbm5lbCBvZiBkYXRhLmNoYW5uZWxzKSB7XG4gICAgICAgIHRoaXMuY2hhbm5lbHMucHVzaChuZXcgRml4dHVyZU1vZGVDaGFubmVsKGNoYW5uZWwpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export class FixturePhysical {
|
|
2
|
+
constructor(data) {
|
|
3
|
+
this.dimensions = [];
|
|
4
|
+
if (!data) {
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
if (data.dimensions) {
|
|
8
|
+
for (const dimension of data.dimensions) {
|
|
9
|
+
this.dimensions.push(dimension);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1waHlzaWNhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvbW9kZWxzL2ZpeHR1cmUtcGh5c2ljYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFBWSxJQUFVO1FBRnRCLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFHeEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRml4dHVyZVBoeXNpY2FsIHtcbiAgZGltZW5zaW9uczogbnVtYmVyW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogYW55KSB7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZGltZW5zaW9ucykge1xuICAgICAgZm9yIChjb25zdCBkaW1lbnNpb24gb2YgZGF0YS5kaW1lbnNpb25zKSB7XG4gICAgICAgIHRoaXMuZGltZW5zaW9ucy5wdXNoKGRpbWVuc2lvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { FixtureChannel } from './fixture-channel';
|
|
2
|
+
import { FixtureMatrix } from './fixture-matrix';
|
|
2
3
|
import { FixtureMode } from './fixture-mode';
|
|
4
|
+
import { FixturePhysical } from './fixture-physical';
|
|
3
5
|
import { FixtureWheel } from './fixture-wheel';
|
|
4
6
|
export var FixtureCategory;
|
|
5
7
|
(function (FixtureCategory) {
|
|
@@ -26,6 +28,7 @@ export class FixtureProfile {
|
|
|
26
28
|
this.createdFromFile = false;
|
|
27
29
|
this.categories = [];
|
|
28
30
|
this.availableChannels = {};
|
|
31
|
+
this.templateChannels = {};
|
|
29
32
|
this.wheels = {};
|
|
30
33
|
// All available fixture modes
|
|
31
34
|
this.modes = [];
|
|
@@ -45,6 +48,12 @@ export class FixtureProfile {
|
|
|
45
48
|
else if (data.mainCategory) {
|
|
46
49
|
this.categories.push(FixtureCategory[data.mainCategory]);
|
|
47
50
|
}
|
|
51
|
+
if (data.physical) {
|
|
52
|
+
this.physical = new FixturePhysical(data.physical);
|
|
53
|
+
}
|
|
54
|
+
if (data.matrix) {
|
|
55
|
+
this.matrix = new FixtureMatrix(data.matrix);
|
|
56
|
+
}
|
|
48
57
|
if (data.wheels) {
|
|
49
58
|
for (const property of Object.keys(data.wheels)) {
|
|
50
59
|
const wheel = new FixtureWheel(data.wheels[property]);
|
|
@@ -62,9 +71,15 @@ export class FixtureProfile {
|
|
|
62
71
|
this.availableChannels[property] = fixtureChannel;
|
|
63
72
|
}
|
|
64
73
|
}
|
|
74
|
+
if (data.templateChannels) {
|
|
75
|
+
for (const property of Object.keys(data.templateChannels)) {
|
|
76
|
+
const templateChannel = new FixtureChannel(data.templateChannels[property]);
|
|
77
|
+
this.templateChannels[property] = templateChannel;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
65
80
|
if (data.createdFromFile) {
|
|
66
81
|
this.createdFromFile = data.createdFromFile;
|
|
67
82
|
}
|
|
68
83
|
}
|
|
69
84
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1wcm9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9tb2RlbHMvZml4dHVyZS1wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsTUFBTSxDQUFOLElBQVksZUFrQlg7QUFsQkQsV0FBWSxlQUFlO0lBQ3pCLHNDQUFtQixDQUFBO0lBQ25CLGtEQUFpQyxDQUFBO0lBQ2pDLG9DQUFpQixDQUFBO0lBQ2pCLG9DQUFpQixDQUFBO0lBQ2pCLDhCQUFXLENBQUE7SUFDWCxvQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBZSxDQUFBO0lBQ2Ysa0NBQWUsQ0FBQTtJQUNmLG9DQUFpQixDQUFBO0lBQ2pCLDhDQUE2QixDQUFBO0lBQzdCLDBDQUF5QixDQUFBO0lBQ3pCLHNDQUFtQixDQUFBO0lBQ25CLGtDQUFlLENBQUE7SUFDZixrQ0FBZSxDQUFBO0lBQ2Ysb0NBQWlCLENBQUE7SUFDakIsa0NBQWUsQ0FBQTtJQUNmLG9EQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFsQlcsZUFBZSxLQUFmLGVBQWUsUUFrQjFCO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFvQnpCLFlBQVksSUFBVTtRQWR0QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUd4QixlQUFVLEdBQXNCLEVBQUUsQ0FBQztRQUduQyxzQkFBaUIsR0FBUSxFQUFFLENBQUM7UUFDNUIscUJBQWdCLEdBQVEsRUFBRSxDQUFDO1FB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LENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaXh0dXJlQ2hhbm5lbCB9IGZyb20gJy4vZml4dHVyZS1jaGFubmVsJztcbmltcG9ydCB7IEZpeHR1cmVNYXRyaXggfSBmcm9tICcuL2ZpeHR1cmUtbWF0cml4JztcbmltcG9ydCB7IEZpeHR1cmVNb2RlIH0gZnJvbSAnLi9maXh0dXJlLW1vZGUnO1xuaW1wb3J0IHsgRml4dHVyZVBoeXNpY2FsIH0gZnJvbSAnLi9maXh0dXJlLXBoeXNpY2FsJztcbmltcG9ydCB7IEZpeHR1cmVXaGVlbCB9IGZyb20gJy4vZml4dHVyZS13aGVlbCc7XG5cbmV4cG9ydCBlbnVtIEZpeHR1cmVDYXRlZ29yeSB7XG4gIEJsaW5kZXIgPSAnQmxpbmRlcicsXG4gICdDb2xvciBDaGFuZ2VyJyA9ICdDb2xvciBDaGFuZ2VyJyxcbiAgRGltbWVyID0gJ0RpbW1lcicsXG4gIEVmZmVjdCA9ICdFZmZlY3QnLFxuICBGYW4gPSAnRmFuJyxcbiAgRmxvd2VyID0gJ0Zsb3dlcicsXG4gIEhhemVyID0gJ0hhemVyJyxcbiAgTGFzZXIgPSAnTGFzZXInLFxuICBNYXRyaXggPSAnTWF0cml4JyxcbiAgJ01vdmluZyBIZWFkJyA9ICdNb3ZpbmcgSGVhZCcsXG4gICdQaXhlbCBCYXInID0gJ1BpeGVsIEJhcicsXG4gIFNjYW5uZXIgPSAnU2Nhbm5lcicsXG4gIFNtb2tlID0gJ1Ntb2tlJyxcbiAgU3RhbmQgPSAnU3RhbmQnLFxuICBTdHJvYmUgPSAnU3Ryb2JlJyxcbiAgT3RoZXIgPSAnT3RoZXInLFxuICAnQmFycmVsIFNjYW5uZXInID0gJ0JhcnJlbCBTY2FubmVyJyxcbn1cblxuZXhwb3J0IGNsYXNzIEZpeHR1cmVQcm9maWxlIHtcbiAgdXVpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLy8gc2V0IHRvIGZpbGUsIGlmIHRoZSBwcm9maWxlIGlzIG5vdCBsb2FkZWQgZnJvbSB0aGUgYmFja2VuZFxuICBzb3VyY2U6IHN0cmluZztcbiAgY3JlYXRlZEZyb21GaWxlID0gZmFsc2U7XG4gIG1hbnVmYWN0dXJlclNob3J0TmFtZTogc3RyaW5nO1xuICBtYW51ZmFjdHVyZXJOYW1lOiBzdHJpbmc7XG4gIGNhdGVnb3JpZXM6IEZpeHR1cmVDYXRlZ29yeVtdID0gW107XG4gIHBoeXNpY2FsOiBGaXh0dXJlUGh5c2ljYWw7XG4gIG1hdHJpeDogRml4dHVyZU1hdHJpeDtcbiAgYXZhaWxhYmxlQ2hhbm5lbHM6IGFueSA9IHt9O1xuICB0ZW1wbGF0ZUNoYW5uZWxzOiBhbnkgPSB7fTtcbiAgc2hvcnROYW1lOiBzdHJpbmc7XG4gIHdoZWVsczogYW55ID0ge307XG5cbiAgLy8gQWxsIGF2YWlsYWJsZSBmaXh0dXJlIG1vZGVzXG4gIG1vZGVzOiBGaXh0dXJlTW9kZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG1ldGFkYXRhXG4gICAgdGhpcy51dWlkID0gZGF0YS51dWlkO1xuICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICB0aGlzLm1hbnVmYWN0dXJlck5hbWUgPSBkYXRhLm1hbnVmYWN0dXJlck5hbWU7XG4gICAgdGhpcy5tYW51ZmFjdHVyZXJTaG9ydE5hbWUgPSBkYXRhLm1hbnVmYWN0dXJlclNob3J0TmFtZTtcblxuICAgIGlmIChkYXRhLmNhdGVnb3JpZXMpIHtcbiAgICAgIGZvciAoY29uc3QgY2F0ZWdvcnkgb2YgZGF0YS5jYXRlZ29yaWVzKSB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKEZpeHR1cmVDYXRlZ29yeVtjYXRlZ29yeSBhcyBzdHJpbmddKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRhdGEubWFpbkNhdGVnb3J5KSB7XG4gICAgICB0aGlzLmNhdGVnb3JpZXMucHVzaChGaXh0dXJlQ2F0ZWdvcnlbZGF0YS5tYWluQ2F0ZWdvcnkgYXMgc3RyaW5nXSk7XG4gICAgfVxuICAgIGlmIChkYXRhLnBoeXNpY2FsKSB7XG4gICAgICB0aGlzLnBoeXNpY2FsID0gbmV3IEZpeHR1cmVQaHlzaWNhbChkYXRhLnBoeXNpY2FsKTtcbiAgICB9XG4gICAgaWYgKGRhdGEubWF0cml4KSB7XG4gICAgICB0aGlzLm1hdHJpeCA9IG5ldyBGaXh0dXJlTWF0cml4KGRhdGEubWF0cml4KTtcbiAgICB9XG4gICAgaWYgKGRhdGEud2hlZWxzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIE9iamVjdC5rZXlzKGRhdGEud2hlZWxzKSkge1xuICAgICAgICBjb25zdCB3aGVlbCA9IG5ldyBGaXh0dXJlV2hlZWwoZGF0YS53aGVlbHNbcHJvcGVydHldKTtcbiAgICAgICAgdGhpcy53aGVlbHNbcHJvcGVydHldID0gd2hlZWw7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkYXRhLm1vZGVzKSB7XG4gICAgICBmb3IgKGNvbnN0IG1vZGUgb2YgZGF0YS5tb2Rlcykge1xuICAgICAgICB0aGlzLm1vZGVzLnB1c2gobmV3IEZpeHR1cmVNb2RlKG1vZGUpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEuYXZhaWxhYmxlQ2hhbm5lbHMpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgT2JqZWN0LmtleXMoZGF0YS5hdmFpbGFibGVDaGFubmVscykpIHtcbiAgICAgICAgY29uc3QgZml4dHVyZUNoYW5uZWwgPSBuZXcgRml4dHVyZUNoYW5uZWwoZGF0YS5hdmFpbGFibGVDaGFubmVsc1twcm9wZXJ0eV0pO1xuICAgICAgICB0aGlzLmF2YWlsYWJsZUNoYW5uZWxzW3Byb3BlcnR5XSA9IGZpeHR1cmVDaGFubmVsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YS50ZW1wbGF0ZUNoYW5uZWxzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIE9iamVjdC5rZXlzKGRhdGEudGVtcGxhdGVDaGFubmVscykpIHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGVDaGFubmVsID0gbmV3IEZpeHR1cmVDaGFubmVsKGRhdGEudGVtcGxhdGVDaGFubmVsc1twcm9wZXJ0eV0pO1xuICAgICAgICB0aGlzLnRlbXBsYXRlQ2hhbm5lbHNbcHJvcGVydHldID0gdGVtcGxhdGVDaGFubmVsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YS5jcmVhdGVkRnJvbUZpbGUpIHtcbiAgICAgIHRoaXMuY3JlYXRlZEZyb21GaWxlID0gZGF0YS5jcmVhdGVkRnJvbUZpbGU7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -8,7 +8,7 @@ export var Positioning;
|
|
|
8
8
|
})(Positioning || (Positioning = {}));
|
|
9
9
|
export class Fixture {
|
|
10
10
|
constructor(data) {
|
|
11
|
-
this.dmxFirstChannel =
|
|
11
|
+
this.dmxFirstChannel = 1;
|
|
12
12
|
this.positioning = Positioning.topFront;
|
|
13
13
|
// Only relevant when positioning = manual
|
|
14
14
|
// in CM
|
|
@@ -37,4 +37,4 @@ export class Fixture {
|
|
|
37
37
|
this.rotationZ = data.rotationZ;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvbW9kZWxzL2ZpeHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNyQixvQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQiwwQ0FBMkIsQ0FBQTtJQUMzQix3Q0FBeUIsQ0FBQTtJQUN6QixnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTlcsV0FBVyxLQUFYLFdBQVcsUUFNdEI7QUFFRCxNQUFNLE9BQU8sT0FBTztJQW9CbEIsWUFBWSxJQUFVO1FBZnRCLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBRXBCLGdCQUFXLEdBQWdCLFdBQVcsQ0FBQyxRQUFRLENBQUM7UUFFaEQsMENBQTBDO1FBQzFDLFFBQVE7UUFDUixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFFZCxTQUFTO1FBQ1QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBR1osSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUG9zaXRpb25pbmcge1xuICB0b3BGcm9udCA9ICd0b3BGcm9udCcsXG4gIHRvcEJhY2sgPSAndG9wQmFjaycsXG4gIGJvdHRvbUZyb250ID0gJ2JvdHRvbUZyb250JyxcbiAgYm90dG9tQmFjayA9ICdib3R0b21CYWNrJyxcbiAgbWFudWFsID0gJ21hbnVhbCcsXG59XG5cbmV4cG9ydCBjbGFzcyBGaXh0dXJlIHtcbiAgdXVpZDogc3RyaW5nO1xuICBwcm9maWxlVXVpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRteFVuaXZlcnNlVXVpZDogc3RyaW5nO1xuICBkbXhGaXJzdENoYW5uZWwgPSAxO1xuICBtb2RlU2hvcnROYW1lOiBzdHJpbmc7XG4gIHBvc2l0aW9uaW5nOiBQb3NpdGlvbmluZyA9IFBvc2l0aW9uaW5nLnRvcEZyb250O1xuXG4gIC8vIE9ubHkgcmVsZXZhbnQgd2hlbiBwb3NpdGlvbmluZyA9IG1hbnVhbFxuICAvLyBpbiBDTVxuICBwb3NpdGlvblggPSAwO1xuICBwb3NpdGlvblkgPSAwO1xuICBwb3NpdGlvblogPSAwO1xuXG4gIC8vIGluIERFR1xuICByb3RhdGlvblggPSAwO1xuICByb3RhdGlvblkgPSAwO1xuICByb3RhdGlvblogPSAwO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnV1aWQgPSBkYXRhLnV1aWQ7XG4gICAgdGhpcy5wcm9maWxlVXVpZCA9IGRhdGEucHJvZmlsZVV1aWQ7XG4gICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgIHRoaXMuZG14VW5pdmVyc2VVdWlkID0gZGF0YS5kbXhVbml2ZXJzZVV1aWQ7XG4gICAgdGhpcy5kbXhGaXJzdENoYW5uZWwgPSBkYXRhLmRteEZpcnN0Q2hhbm5lbDtcbiAgICB0aGlzLm1vZGVTaG9ydE5hbWUgPSBkYXRhLm1vZGVTaG9ydE5hbWU7XG4gICAgdGhpcy5wb3NpdGlvbmluZyA9IGRhdGEucG9zaXRpb25pbmc7XG4gICAgdGhpcy5wb3NpdGlvblggPSBkYXRhLnBvc2l0aW9uWDtcbiAgICB0aGlzLnBvc2l0aW9uWSA9IGRhdGEucG9zaXRpb25ZO1xuICAgIHRoaXMucG9zaXRpb25aID0gZGF0YS5wb3NpdGlvblo7XG4gICAgdGhpcy5yb3RhdGlvblggPSBkYXRhLnJvdGF0aW9uWDtcbiAgICB0aGlzLnJvdGF0aW9uWSA9IGRhdGEucm90YXRpb25ZO1xuICAgIHRoaXMucm90YXRpb25aID0gZGF0YS5yb3RhdGlvblo7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export class PresetFixture {
|
|
2
|
+
constructor(data) {
|
|
3
|
+
if (!data) {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
this.fixtureUuid = data.fixtureUuid;
|
|
7
|
+
this.pixelKey = data.pixelKey;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LWZpeHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL21vZGVscy9wcmVzZXQtZml4dHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUFZLElBQVU7UUFDcEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBQcmVzZXRGaXh0dXJlIHtcbiAgcHVibGljIGZpeHR1cmVVdWlkOiBzdHJpbmc7XG4gIHB1YmxpYyBwaXhlbEtleTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZpeHR1cmVVdWlkID0gZGF0YS5maXh0dXJlVXVpZDtcbiAgICB0aGlzLnBpeGVsS2V5ID0gZGF0YS5waXhlbEtleTtcbiAgfVxufVxuIl19
|
|
@@ -2,10 +2,13 @@ import { EffectCurve } from './effect-curve';
|
|
|
2
2
|
import { EffectPanTilt } from './effect-pan-tilt';
|
|
3
3
|
import { FixtureCapabilityValue } from './fixture-capability-value';
|
|
4
4
|
import { FixtureChannelValue } from './fixture-channel-value';
|
|
5
|
+
import { PresetFixture } from './preset-fixture';
|
|
5
6
|
export class Preset {
|
|
6
7
|
constructor(data) {
|
|
7
8
|
// all related fixtures
|
|
9
|
+
// OBSOLETE: replaced with fixtures
|
|
8
10
|
this.fixtureUuids = [];
|
|
11
|
+
this.fixtures = [];
|
|
9
12
|
// the selected values
|
|
10
13
|
this.fixtureChannelValues = [];
|
|
11
14
|
this.fixtureCapabilityValues = [];
|
|
@@ -22,7 +25,13 @@ export class Preset {
|
|
|
22
25
|
}
|
|
23
26
|
this.uuid = data.uuid;
|
|
24
27
|
this.name = data.name;
|
|
28
|
+
// OBSOLETE
|
|
25
29
|
this.fixtureUuids = data.fixtureUuids;
|
|
30
|
+
if (data.fixtures) {
|
|
31
|
+
for (const fixture of data.fixtures) {
|
|
32
|
+
this.fixtures.push(new PresetFixture(fixture));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
26
35
|
if (data.fixtureChannelValues) {
|
|
27
36
|
for (const fixtureChannelValue of data.fixtureChannelValues) {
|
|
28
37
|
this.fixtureChannelValues.push(new FixtureChannelValue(fixtureChannelValue));
|
|
@@ -53,4 +62,4 @@ export class Preset {
|
|
|
53
62
|
this.fadeOutPost = data.fadeOutPost;
|
|
54
63
|
}
|
|
55
64
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9tb2RlbHMvcHJlc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sT0FBTyxNQUFNO0lBNkJqQixZQUFZLElBQVU7UUF6QnRCLHVCQUF1QjtRQUN2QixtQ0FBbUM7UUFDbkMsaUJBQVksR0FBYSxFQUFFLENBQUM7UUFDNUIsYUFBUSxHQUFvQixFQUFFLENBQUM7UUFFL0Isc0JBQXNCO1FBQ3RCLHlCQUFvQixHQUEwQixFQUFFLENBQUM7UUFDakQsNEJBQXVCLEdBQTZCLEVBQUUsQ0FBQztRQUV2RCxzQkFBc0I7UUFDdEIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQU92QixlQUFlO1FBQ2YsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFbEIsMkNBQTJDO1FBQzNDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFHbEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRXRCLFdBQVc7UUFDWCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFdEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDakQsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlCLEtBQUssTUFBTSxtQkFBbUIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztZQUMvRSxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDakMsS0FBSyxNQUFNLHNCQUFzQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUNsRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksc0JBQXNCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2xDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNwQixLQUFLLE9BQU87d0JBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzt3QkFDM0MsTUFBTTtvQkFDUixLQUFLLFVBQVU7d0JBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzt3QkFDN0MsTUFBTTtnQkFDVixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZmZlY3QgfSBmcm9tICcuL2VmZmVjdCc7XG5pbXBvcnQgeyBFZmZlY3RDdXJ2ZSB9IGZyb20gJy4vZWZmZWN0LWN1cnZlJztcbmltcG9ydCB7IEVmZmVjdFBhblRpbHQgfSBmcm9tICcuL2VmZmVjdC1wYW4tdGlsdCc7XG5pbXBvcnQgeyBGaXh0dXJlQ2FwYWJpbGl0eVZhbHVlIH0gZnJvbSAnLi9maXh0dXJlLWNhcGFiaWxpdHktdmFsdWUnO1xuaW1wb3J0IHsgRml4dHVyZUNoYW5uZWxWYWx1ZSB9IGZyb20gJy4vZml4dHVyZS1jaGFubmVsLXZhbHVlJztcbmltcG9ydCB7IFByZXNldEZpeHR1cmUgfSBmcm9tICcuL3ByZXNldC1maXh0dXJlJztcblxuZXhwb3J0IGNsYXNzIFByZXNldCB7XG4gIHV1aWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8vIGFsbCByZWxhdGVkIGZpeHR1cmVzXG4gIC8vIE9CU09MRVRFOiByZXBsYWNlZCB3aXRoIGZpeHR1cmVzXG4gIGZpeHR1cmVVdWlkczogc3RyaW5nW10gPSBbXTtcbiAgZml4dHVyZXM6IFByZXNldEZpeHR1cmVbXSA9IFtdO1xuXG4gIC8vIHRoZSBzZWxlY3RlZCB2YWx1ZXNcbiAgZml4dHVyZUNoYW5uZWxWYWx1ZXM6IEZpeHR1cmVDaGFubmVsVmFsdWVbXSA9IFtdO1xuICBmaXh0dXJlQ2FwYWJpbGl0eVZhbHVlczogRml4dHVyZUNhcGFiaWxpdHlWYWx1ZVtdID0gW107XG5cbiAgLy8gYWxsIHJlbGF0ZWQgZWZmZWN0c1xuICBlZmZlY3RzOiBFZmZlY3RbXSA9IFtdO1xuXG4gIC8vIHBvc2l0aW9uIG9mZnNldCwgcmVsYXRpdmUgdG8gdGhlIHNjZW5lIHN0YXJ0XG4gIC8vICh1bmRlZmluZWQgPSBzdGFydC9lbmQgb2YgdGhlIHNjZW5lIGl0c2VsZilcbiAgc3RhcnRNaWxsaXM6IG51bWJlcjtcbiAgZW5kTWlsbGlzOiBudW1iZXI7XG5cbiAgLy8gZmFkaW5nIHRpbWVzXG4gIGZhZGVJbk1pbGxpcyA9IDA7XG4gIGZhZGVPdXRNaWxsaXMgPSAwO1xuXG4gIC8vIGZhZGUgaW4vb3V0IG91dHNpZGUgdGhlIHN0YXJ0L2VuZCB0aW1lcz9cbiAgZmFkZUluUHJlID0gZmFsc2U7XG4gIGZhZGVPdXRQb3N0ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXVpZCA9IGRhdGEudXVpZDtcbiAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG5cbiAgICAvLyBPQlNPTEVURVxuICAgIHRoaXMuZml4dHVyZVV1aWRzID0gZGF0YS5maXh0dXJlVXVpZHM7XG5cbiAgICBpZiAoZGF0YS5maXh0dXJlcykge1xuICAgICAgZm9yIChjb25zdCBmaXh0dXJlIG9mIGRhdGEuZml4dHVyZXMpIHtcbiAgICAgICAgdGhpcy5maXh0dXJlcy5wdXNoKG5ldyBQcmVzZXRGaXh0dXJlKGZpeHR1cmUpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGF0YS5maXh0dXJlQ2hhbm5lbFZhbHVlcykge1xuICAgICAgZm9yIChjb25zdCBmaXh0dXJlQ2hhbm5lbFZhbHVlIG9mIGRhdGEuZml4dHVyZUNoYW5uZWxWYWx1ZXMpIHtcbiAgICAgICAgdGhpcy5maXh0dXJlQ2hhbm5lbFZhbHVlcy5wdXNoKG5ldyBGaXh0dXJlQ2hhbm5lbFZhbHVlKGZpeHR1cmVDaGFubmVsVmFsdWUpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEuZml4dHVyZUNhcGFiaWxpdHlWYWx1ZXMpIHtcbiAgICAgIGZvciAoY29uc3QgZml4dHVyZUNhcGFiaWxpdHlWYWx1ZSBvZiBkYXRhLmZpeHR1cmVDYXBhYmlsaXR5VmFsdWVzKSB7XG4gICAgICAgIHRoaXMuZml4dHVyZUNhcGFiaWxpdHlWYWx1ZXMucHVzaChuZXcgRml4dHVyZUNhcGFiaWxpdHlWYWx1ZShmaXh0dXJlQ2FwYWJpbGl0eVZhbHVlKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkYXRhLmVmZmVjdHMpIHtcbiAgICAgIGZvciAoY29uc3QgZWZmZWN0IG9mIGRhdGEuZWZmZWN0cykge1xuICAgICAgICBzd2l0Y2ggKGVmZmVjdC50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnY3VydmUnOlxuICAgICAgICAgICAgdGhpcy5lZmZlY3RzLnB1c2gobmV3IEVmZmVjdEN1cnZlKGVmZmVjdCkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncGFuLXRpbHQnOlxuICAgICAgICAgICAgdGhpcy5lZmZlY3RzLnB1c2gobmV3IEVmZmVjdFBhblRpbHQoZWZmZWN0KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnN0YXJ0TWlsbGlzID0gZGF0YS5zdGFydE1pbGxpcztcbiAgICB0aGlzLmVuZE1pbGxpcyA9IGRhdGEuZW5kTWlsbGlzO1xuICAgIHRoaXMuZmFkZUluTWlsbGlzID0gZGF0YS5mYWRlSW5NaWxsaXM7XG4gICAgdGhpcy5mYWRlT3V0TWlsbGlzID0gZGF0YS5mYWRlT3V0TWlsbGlzO1xuICAgIHRoaXMuZmFkZUluUHJlID0gZGF0YS5mYWRlSW5QcmU7XG4gICAgdGhpcy5mYWRlT3V0UG9zdCA9IGRhdGEuZmFkZU91dFBvc3Q7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,6 +2,7 @@ import { Composition } from './composition';
|
|
|
2
2
|
import { Fixture } from './fixture';
|
|
3
3
|
import { FixtureProfile } from './fixture-profile';
|
|
4
4
|
import { Preset } from './preset';
|
|
5
|
+
import { PresetFixture } from './preset-fixture';
|
|
5
6
|
import { Scene } from './scene';
|
|
6
7
|
export class Project {
|
|
7
8
|
constructor(data) {
|
|
@@ -17,13 +18,17 @@ export class Project {
|
|
|
17
18
|
this.previewPreset = true;
|
|
18
19
|
this.compositions = [];
|
|
19
20
|
this.fixtureProfiles = [];
|
|
21
|
+
// fixtures added to the project in a DMX universe
|
|
20
22
|
this.fixtures = [];
|
|
23
|
+
// the fixtures and pixel keys in order to be selectable
|
|
24
|
+
this.presetFixtures = [];
|
|
21
25
|
this.scenes = [];
|
|
22
26
|
this.presets = [];
|
|
23
27
|
if (!data) {
|
|
24
28
|
return;
|
|
25
29
|
}
|
|
26
30
|
this.id = data.id;
|
|
31
|
+
this.version = data.version;
|
|
27
32
|
this.uuid = data.uuid;
|
|
28
33
|
this.name = data.name;
|
|
29
34
|
this.shareToken = data.shareToken;
|
|
@@ -53,6 +58,11 @@ export class Project {
|
|
|
53
58
|
this.fixtures.push(new Fixture(fixture));
|
|
54
59
|
}
|
|
55
60
|
}
|
|
61
|
+
if (data.presetFixtures) {
|
|
62
|
+
for (const presetFixture of data.presetFixtures) {
|
|
63
|
+
this.presetFixtures.push(new PresetFixture(presetFixture));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
56
66
|
if (data.scenes) {
|
|
57
67
|
for (const scene of data.scenes) {
|
|
58
68
|
this.scenes.push(new Scene(scene));
|
|
@@ -65,4 +75,4 @@ export class Project {
|
|
|
65
75
|
}
|
|
66
76
|
}
|
|
67
77
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvbW9kZWxzL3Byb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxPQUFPO0lBcUNsQixZQUFZLElBQVU7UUE5QmYsaUJBQVksR0FBRyxHQUFHLENBQUM7UUFDbkIsa0JBQWEsR0FBRyxHQUFHLENBQUM7UUFDcEIsaUJBQVksR0FBRyxHQUFHLENBQUM7UUFFbkIsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFFeEIsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBR3RCLHVCQUFrQixHQUFhLEVBQUUsQ0FBQztRQUV6QywwREFBMEQ7UUFDbkQsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFJckIsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBQ2pDLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUU5QyxrREFBa0Q7UUFDM0MsYUFBUSxHQUFjLEVBQUUsQ0FBQztRQUVoQyx3REFBd0Q7UUFDakQsbUJBQWMsR0FBb0IsRUFBRSxDQUFDO1FBRXJDLFdBQU0sR0FBWSxFQUFFLENBQUM7UUFDckIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUc1QixJQUFJLENBQUMsSUFB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QUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9zaXRpb24gfSBmcm9tICcuL2NvbXBvc2l0aW9uJztcbmltcG9ydCB7IEZpeHR1cmUgfSBmcm9tICcuL2ZpeHR1cmUnO1xuaW1wb3J0IHsgRml4dHVyZVByb2ZpbGUgfSBmcm9tICcuL2ZpeHR1cmUtcHJvZmlsZSc7XG5pbXBvcnQgeyBQcmVzZXQgfSBmcm9tICcuL3ByZXNldCc7XG5pbXBvcnQgeyBQcmVzZXRGaXh0dXJlIH0gZnJvbSAnLi9wcmVzZXQtZml4dHVyZSc7XG5pbXBvcnQgeyBTY2VuZSB9IGZyb20gJy4vc2NlbmUnO1xuXG5leHBvcnQgY2xhc3MgUHJvamVjdCB7XG4gIHB1YmxpYyBpZDogbnVtYmVyO1xuICBwdWJsaWMgdmVyc2lvbjogbnVtYmVyO1xuICBwdWJsaWMgdXVpZDogc3RyaW5nO1xuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgc2hhcmVUb2tlbjogc3RyaW5nO1xuXG4gIHB1YmxpYyBzdGFnZVdpZHRoQ20gPSA2MDA7XG4gIHB1YmxpYyBzdGFnZUhlaWdodENtID0gMzUwO1xuICBwdWJsaWMgc3RhZ2VEZXB0aENtID0gNjAwO1xuXG4gIHB1YmxpYyBzdGFnZUZsb29ySGVpZ2h0Q20gPSAzMDtcbiAgcHVibGljIHN0YWdlQ2VpbGluZ0hlaWdodENtID0gNTtcbiAgcHVibGljIHN0YWdlUGlsbGFyV2lkdGhDbSA9IDIwO1xuXG4gIHB1YmxpYyBtYXN0ZXJEaW1tZXJWYWx1ZSA9IDE7XG5cbiAgcHVibGljIHNlbGVjdGVkUHJlc2V0VXVpZDogc3RyaW5nO1xuICBwdWJsaWMgc2VsZWN0ZWRTY2VuZVV1aWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIHRydWUgPSBzaG93IHRoZSBwcmVzZXQsIGZhbHNlID0gc2hvdyB0aGUgc2VsZWN0ZWQgc2NlbmVcbiAgcHVibGljIHByZXZpZXdQcmVzZXQgPSB0cnVlO1xuXG4gIHB1YmxpYyBzZWxlY3RlZENvbXBvc2l0aW9uVXVpZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb21wb3NpdGlvbnM6IENvbXBvc2l0aW9uW10gPSBbXTtcbiAgcHVibGljIGZpeHR1cmVQcm9maWxlczogRml4dHVyZVByb2ZpbGVbXSA9IFtdO1xuXG4gIC8vIGZpeHR1cmVzIGFkZGVkIHRvIHRoZSBwcm9qZWN0IGluIGEgRE1YIHVuaXZlcnNlXG4gIHB1YmxpYyBmaXh0dXJlczogRml4dHVyZVtdID0gW107XG5cbiAgLy8gdGhlIGZpeHR1cmVzIGFuZCBwaXhlbCBrZXlzIGluIG9yZGVyIHRvIGJlIHNlbGVjdGFibGVcbiAgcHVibGljIHByZXNldEZpeHR1cmVzOiBQcmVzZXRGaXh0dXJlW10gPSBbXTtcblxuICBwdWJsaWMgc2NlbmVzOiBTY2VuZVtdID0gW107XG4gIHB1YmxpYyBwcmVzZXRzOiBQcmVzZXRbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlkID0gZGF0YS5pZDtcbiAgICB0aGlzLnZlcnNpb24gPSBkYXRhLnZlcnNpb247XG4gICAgdGhpcy51dWlkID0gZGF0YS51dWlkO1xuICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICB0aGlzLnNoYXJlVG9rZW4gPSBkYXRhLnNoYXJlVG9rZW47XG5cbiAgICB0aGlzLnN0YWdlV2lkdGhDbSA9IGRhdGEuc3RhZ2VXaWR0aENtO1xuICAgIHRoaXMuc3RhZ2VIZWlnaHRDbSA9IGRhdGEuc3RhZ2VIZWlnaHRDbTtcbiAgICB0aGlzLnN0YWdlRGVwdGhDbSA9IGRhdGEuc3RhZ2VEZXB0aENtO1xuXG4gICAgdGhpcy5zdGFnZUZsb29ySGVpZ2h0Q20gPSBkYXRhLnN0YWdlRmxvb3JIZWlnaHRDbTtcbiAgICB0aGlzLnN0YWdlQ2VpbGluZ0hlaWdodENtID0gZGF0YS5zdGFnZUNlaWxpbmdIZWlnaHRDbTtcbiAgICB0aGlzLnN0YWdlUGlsbGFyV2lkdGhDbSA9IGRhdGEuc3RhZ2VQaWxsYXJXaWR0aENtO1xuXG4gICAgdGhpcy5tYXN0ZXJEaW1tZXJWYWx1ZSA9IGRhdGEubWFzdGVyRGltbWVyVmFsdWU7XG5cbiAgICB0aGlzLnNlbGVjdGVkUHJlc2V0VXVpZCA9IGRhdGEuc2VsZWN0ZWRQcmVzZXRVdWlkO1xuICAgIHRoaXMuc2VsZWN0ZWRTY2VuZVV1aWRzID0gZGF0YS5zZWxlY3RlZFNjZW5lVXVpZHM7XG4gICAgdGhpcy5wcmV2aWV3UHJlc2V0ID0gZGF0YS5wcmV2aWV3UHJlc2V0O1xuICAgIHRoaXMuc2VsZWN0ZWRDb21wb3NpdGlvblV1aWQgPSBkYXRhLnNlbGVjdGVkQ29tcG9zaXRpb25VdWlkO1xuXG4gICAgaWYgKGRhdGEuY29tcG9zaXRpb25zKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbXBvc2l0aW9uIG9mIGRhdGEuY29tcG9zaXRpb25zKSB7XG4gICAgICAgIHRoaXMuY29tcG9zaXRpb25zLnB1c2gobmV3IENvbXBvc2l0aW9uKGNvbXBvc2l0aW9uKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZml4dHVyZVByb2ZpbGVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpeHR1cmVQcm9maWxlIG9mIGRhdGEuZml4dHVyZVByb2ZpbGVzKSB7XG4gICAgICAgIHRoaXMuZml4dHVyZVByb2ZpbGVzLnB1c2gobmV3IEZpeHR1cmVQcm9maWxlKGZpeHR1cmVQcm9maWxlKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZml4dHVyZXMpIHtcbiAgICAgIGZvciAoY29uc3QgZml4dHVyZSBvZiBkYXRhLmZpeHR1cmVzKSB7XG4gICAgICAgIHRoaXMuZml4dHVyZXMucHVzaChuZXcgRml4dHVyZShmaXh0dXJlKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGEucHJlc2V0Rml4dHVyZXMpIHtcbiAgICAgIGZvciAoY29uc3QgcHJlc2V0Rml4dHVyZSBvZiBkYXRhLnByZXNldEZpeHR1cmVzKSB7XG4gICAgICAgIHRoaXMucHJlc2V0Rml4dHVyZXMucHVzaChuZXcgUHJlc2V0Rml4dHVyZShwcmVzZXRGaXh0dXJlKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuc2NlbmVzKSB7XG4gICAgICBmb3IgKGNvbnN0IHNjZW5lIG9mIGRhdGEuc2NlbmVzKSB7XG4gICAgICAgIHRoaXMuc2NlbmVzLnB1c2gobmV3IFNjZW5lKHNjZW5lKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGEucHJlc2V0cykge1xuICAgICAgZm9yIChjb25zdCBwcmVzZXQgb2YgZGF0YS5wcmVzZXRzKSB7XG4gICAgICAgIHRoaXMucHJlc2V0cy5wdXNoKG5ldyBQcmVzZXQocHJlc2V0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -3,104 +3,15 @@ import { map } from 'rxjs/operators';
|
|
|
3
3
|
import * as THREE from 'three';
|
|
4
4
|
import { Fixture3d } from './fixture-3d';
|
|
5
5
|
export class ColorChanger3d extends Fixture3d {
|
|
6
|
-
atmosphereMat() {
|
|
7
|
-
const vertexShader = [
|
|
8
|
-
'varying vec3 vVertexWorldPosition;',
|
|
9
|
-
'varying vec3 vVertexNormal;',
|
|
10
|
-
'void main(){',
|
|
11
|
-
' vVertexNormal = normalize(normalMatrix * normal);',
|
|
12
|
-
' vVertexWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;',
|
|
13
|
-
' // set gl_Position',
|
|
14
|
-
' gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);',
|
|
15
|
-
'}',
|
|
16
|
-
].join('\n');
|
|
17
|
-
const fragmentShader = [
|
|
18
|
-
'uniform vec3 glowColor;',
|
|
19
|
-
'uniform float coeficient;',
|
|
20
|
-
'uniform float power;',
|
|
21
|
-
'uniform float opacity;',
|
|
22
|
-
'varying vec3 vVertexNormal;',
|
|
23
|
-
'varying vec3 vVertexWorldPosition;',
|
|
24
|
-
'void main(){',
|
|
25
|
-
' vec3 worldCameraToVertex= vVertexWorldPosition - cameraPosition;',
|
|
26
|
-
' vec3 viewCameraToVertex = (viewMatrix * vec4(worldCameraToVertex, 0.0)).xyz;',
|
|
27
|
-
' viewCameraToVertex = normalize(viewCameraToVertex);',
|
|
28
|
-
' float intensity = pow(coeficient + dot(vVertexNormal, viewCameraToVertex), power);',
|
|
29
|
-
' gl_FragColor = vec4(glowColor, intensity * opacity);',
|
|
30
|
-
'}',
|
|
31
|
-
].join('\n');
|
|
32
|
-
// create custom material from the shader code above
|
|
33
|
-
// that is within specially labeled script tags
|
|
34
|
-
const material = new THREE.ShaderMaterial({
|
|
35
|
-
uniforms: {
|
|
36
|
-
coeficient: {
|
|
37
|
-
type: 'f',
|
|
38
|
-
value: 0.3,
|
|
39
|
-
},
|
|
40
|
-
power: {
|
|
41
|
-
type: 'f',
|
|
42
|
-
value: 1.3,
|
|
43
|
-
},
|
|
44
|
-
opacity: {
|
|
45
|
-
type: 'f',
|
|
46
|
-
value: 1.0,
|
|
47
|
-
},
|
|
48
|
-
glowColor: {
|
|
49
|
-
type: 'c',
|
|
50
|
-
value: new THREE.Color('white'),
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
vertexShader,
|
|
54
|
-
fragmentShader,
|
|
55
|
-
// blending: THREE.AdditiveBlending,
|
|
56
|
-
transparent: true,
|
|
57
|
-
depthWrite: false,
|
|
58
|
-
});
|
|
59
|
-
return material;
|
|
60
|
-
}
|
|
61
|
-
createSpotLightBeam() {
|
|
62
|
-
if (this.spotLightBeam) {
|
|
63
|
-
this.spotlightGroup.remove(this.spotLightBeam);
|
|
64
|
-
}
|
|
65
|
-
// TODO update the correct angle from the profile
|
|
66
|
-
const beamAngleDegrees = 14;
|
|
67
|
-
const geometry = new THREE.CylinderGeometry(0.8, beamAngleDegrees * 1.2, 100, 64, 20, false);
|
|
68
|
-
geometry.applyMatrix4(new THREE.Matrix4().makeTranslation(0, -geometry.parameters.height / 2, 0));
|
|
69
|
-
geometry.applyMatrix4(new THREE.Matrix4().makeRotationX(-Math.PI / 2));
|
|
70
|
-
this.atmosphereMaterial = this.atmosphereMat();
|
|
71
|
-
this.spotLightBeam = new THREE.Mesh(geometry, this.atmosphereMaterial);
|
|
72
|
-
this.spotLightBeam.position.set(0, -0.02, 0);
|
|
73
|
-
this.spotlightGroup.add(this.spotLightBeam);
|
|
74
|
-
this.spotLightBeam.rotation.x = Math.PI / 2;
|
|
75
|
-
}
|
|
76
6
|
createObjects() {
|
|
7
|
+
super.createObjects();
|
|
77
8
|
this.material = new THREE.MeshLambertMaterial({
|
|
78
9
|
color: 0x0d0d0d,
|
|
79
10
|
emissive: 0x0d0d0d,
|
|
80
11
|
});
|
|
81
12
|
this.mesh.material = this.material;
|
|
82
|
-
// Add the spotlight
|
|
83
|
-
this.spotLight = new THREE.SpotLight(0xffffff, 1);
|
|
84
|
-
this.spotLight.angle = 0.244;
|
|
85
|
-
this.spotLight.penumbra = 0.5;
|
|
86
|
-
this.spotLight.decay = 2;
|
|
87
|
-
this.spotLight.distance = 60000;
|
|
88
|
-
this.spotLight.castShadow = false;
|
|
89
|
-
this.spotLight.intensity = 10;
|
|
90
13
|
this.spotLightHelper = new THREE.SpotLightHelper(this.spotLight);
|
|
91
14
|
// scene.add(this.spotLightHelper);
|
|
92
|
-
const spotLightTarget = new THREE.Object3D();
|
|
93
|
-
this.spotLight.target = spotLightTarget;
|
|
94
|
-
this.spotlightGroup.add(this.spotLight);
|
|
95
|
-
this.spotlightGroup.add(spotLightTarget);
|
|
96
|
-
this.spotLight.position.set(0, -1.4, 0);
|
|
97
|
-
spotLightTarget.position.set(0, -10, 0);
|
|
98
|
-
// Add the point light for the surrounding light
|
|
99
|
-
this.pointLight = new THREE.PointLight(0xffffff, 2, 1000);
|
|
100
|
-
this.spotlightGroup.add(this.pointLight);
|
|
101
|
-
this.pointLight.position.set(0, -1.4, 0);
|
|
102
|
-
// Add the light beam
|
|
103
|
-
this.createSpotLightBeam();
|
|
104
15
|
this.objectGroup.add(this.spotlightGroup);
|
|
105
16
|
this.objectGroup.add(this.mesh);
|
|
106
17
|
// A moving head has about 32 cm in width
|
|
@@ -110,10 +21,7 @@ export class ColorChanger3d extends Fixture3d {
|
|
|
110
21
|
}
|
|
111
22
|
constructor(fixtureService, previewMeshService, fixture, scene) {
|
|
112
23
|
super(fixtureService, fixture, scene);
|
|
113
|
-
this.pointLightMaxIntensity = 2;
|
|
114
|
-
this.spotLightMaxIntensity = 5;
|
|
115
24
|
this.objectGroup = new THREE.Object3D();
|
|
116
|
-
this.spotlightGroup = new THREE.Object3D();
|
|
117
25
|
forkJoin([previewMeshService.getMesh('color-changer')])
|
|
118
26
|
.pipe(map(([colorChanger]) => {
|
|
119
27
|
this.mesh = colorChanger;
|
|
@@ -125,10 +33,10 @@ export class ColorChanger3d extends Fixture3d {
|
|
|
125
33
|
return this.objectGroup;
|
|
126
34
|
}
|
|
127
35
|
updatePreview(channelValues, masterDimmerValue) {
|
|
128
|
-
super.updatePreview(channelValues, masterDimmerValue);
|
|
129
36
|
if (!this.isLoaded) {
|
|
130
37
|
return;
|
|
131
38
|
}
|
|
39
|
+
super.updatePreview(channelValues, masterDimmerValue);
|
|
132
40
|
this.updatePosition(this.objectGroup);
|
|
133
41
|
// Update the material
|
|
134
42
|
if (this.lastSelected !== this.isSelected) {
|
|
@@ -145,23 +53,12 @@ export class ColorChanger3d extends Fixture3d {
|
|
|
145
53
|
this.lastSelected = this.isSelected;
|
|
146
54
|
}
|
|
147
55
|
// Update the light helpers
|
|
148
|
-
this.spotLightHelper.update();
|
|
149
|
-
// Apply the colors
|
|
150
|
-
const color = new THREE.Color('rgb(' + this.colorRed + ', ' + this.colorGreen + ', ' + this.colorBlue + ')');
|
|
151
|
-
this.pointLight.color = color;
|
|
152
|
-
this.spotLight.color = color;
|
|
153
|
-
this.spotLightBeam.material.uniforms.glowColor.value = color;
|
|
154
|
-
// Apply the dimmer value
|
|
155
|
-
// Take the color into account for the beam (don't show a black beam)
|
|
156
|
-
const intensityColor = Math.max(this.colorRed, this.colorGreen, this.colorBlue);
|
|
157
|
-
this.spotLightBeam.material.uniforms.opacity.value = Math.min(intensityColor, this.dimmer) * 0.5;
|
|
158
|
-
this.spotLight.intensity = this.spotLightMaxIntensity * this.dimmer;
|
|
159
|
-
this.pointLight.intensity = this.pointLightMaxIntensity * this.dimmer;
|
|
56
|
+
// this.spotLightHelper.update();
|
|
160
57
|
}
|
|
161
58
|
destroy() {
|
|
162
59
|
this.scene.remove(this.objectGroup);
|
|
163
60
|
this.material.dispose();
|
|
164
|
-
this.
|
|
61
|
+
this.spotLightHelper.dispose();
|
|
165
62
|
}
|
|
166
63
|
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY2hhbmdlci0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvcHJldmlldy9tb2RlbHMvY29sb3ItY2hhbmdlci0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQU0vQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQW1CbkMsYUFBYTtRQUNuQixNQUFNLFlBQVksR0FBRztZQUNuQixvQ0FBb0M7WUFDcEMsNkJBQTZCO1lBRTdCLGNBQWM7WUFDZCxvREFBb0Q7WUFFcEQsa0VBQWtFO1lBRWxFLHFCQUFxQjtZQUNyQiwwRUFBMEU7WUFDMUUsR0FBRztTQUNKLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2IsTUFBTSxjQUFjLEdBQUc7WUFDckIseUJBQXlCO1lBQ3pCLDJCQUEyQjtZQUMzQixzQkFBc0I7WUFDdEIsd0JBQXdCO1lBRXhCLDZCQUE2QjtZQUM3QixvQ0FBb0M7WUFFcEMsY0FBYztZQUNkLG1FQUFtRTtZQUNuRSwrRUFBK0U7WUFDL0Usc0RBQXNEO1lBQ3RELHNGQUFzRjtZQUN0Rix3REFBd0Q7WUFDeEQsR0FBRztTQUNKLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWIsb0RBQW9EO1FBQ3BELCtDQUErQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDeEMsUUFBUSxFQUFFO2dCQUNSLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsR0FBRztvQkFDVCxLQUFLLEVBQUUsR0FBRztpQkFD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QUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUUxRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN4RSxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTWVzaCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IENhY2hlZEZpeHR1cmUgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FjaGVkLWZpeHR1cmUnO1xuaW1wb3J0IHsgRml4dHVyZUNoYW5uZWxWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVscy9maXh0dXJlLWNoYW5uZWwtdmFsdWUnO1xuaW1wb3J0IHsgRml4dHVyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maXh0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJldmlld01lc2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJldmlldy1tZXNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRml4dHVyZTNkIH0gZnJvbSAnLi9maXh0dXJlLTNkJztcblxuZXhwb3J0IGNsYXNzIENvbG9yQ2hhbmdlcjNkIGV4dGVuZHMgRml4dHVyZTNkIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwb2ludExpZ2h0TWF4SW50ZW5zaXR5OiBudW1iZXIgPSAyO1xuICBwcml2YXRlIHJlYWRvbmx5IHNwb3RMaWdodE1heEludGVuc2l0eTogbnVtYmVyID0gNTtcblxuICBwcml2YXRlIG1lc2g6IFRIUkVFLk1lc2g7XG5cbiAgcHJpdmF0ZSBvYmplY3RHcm91cDogVEhSRUUuT2JqZWN0M0QgPSBuZXcgVEhSRUUuT2JqZWN0M0QoKTtcbiAgcHJpdmF0ZSBzcG90bGlnaHRHcm91cDogVEhSRUUuT2JqZWN0M0QgPSBuZXcgVEhSRUUuT2JqZWN0M0QoKTtcbiAgcHJpdmF0ZSBzcG90TGlnaHQ6IFRIUkVFLlNwb3RMaWdodDtcbiAgcHJpdmF0ZSBzcG90TGlnaHRIZWxwZXI6IFRIUkVFLlNwb3RMaWdodEhlbHBlcjtcbiAgcHJpdmF0ZSBzcG90TGlnaHRCZWFtOiBUSFJFRS5NZXNoO1xuXG4gIHByaXZhdGUgcG9pbnRMaWdodDogVEhSRUUuUG9pbnRMaWdodDtcblxuICBwcml2YXRlIGxhc3RTZWxlY3RlZDogYm9vbGVhbjtcblxuICBwcml2YXRlIG1hdGVyaWFsOiBUSFJFRS5NZXNoU3RhbmRhcmRNYXRlcmlhbDtcbiAgcHJpdmF0ZSBhdG1vc3BoZXJlTWF0ZXJpYWw6IFRIUkVFLlNoYWRlck1hdGVyaWFsO1xuXG4gIHByaXZhdGUgYXRtb3NwaGVyZU1hdCgpIHtcbiAgICBjb25zdCB2ZXJ0ZXhTaGFkZXIgPSBbXG4gICAgICAndmFyeWluZyB2ZWMzXHR2VmVydGV4V29ybGRQb3NpdGlvbjsnLFxuICAgICAgJ3ZhcnlpbmcgdmVjM1x0dlZlcnRleE5vcm1hbDsnLFxuXG4gICAgICAndm9pZCBtYWluKCl7JyxcbiAgICAgICdcdHZWZXJ0ZXhOb3JtYWwgPSBub3JtYWxpemUobm9ybWFsTWF0cml4ICogbm9ybWFsKTsnLFxuXG4gICAgICAnXHR2VmVydGV4V29ybGRQb3NpdGlvbiA9IChtb2RlbE1hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuMCkpLnh5ejsnLFxuXG4gICAgICAnXHQvLyBzZXQgZ2xfUG9zaXRpb24nLFxuICAgICAgJ1x0Z2xfUG9zaXRpb25cdD0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuMCk7JyxcbiAgICAgICd9JyxcbiAgICBdLmpvaW4oJ1xcbicpO1xuICAgIGNvbnN0IGZyYWdtZW50U2hhZGVyID0gW1xuICAgICAgJ3VuaWZvcm0gdmVjM1x0Z2xvd0NvbG9yOycsXG4gICAgICAndW5pZm9ybSBmbG9hdFx0Y29lZmljaWVudDsnLFxuICAgICAgJ3VuaWZvcm0gZmxvYXRcdHBvd2VyOycsXG4gICAgICAndW5pZm9ybSBmbG9hdFx0b3BhY2l0eTsnLFxuXG4gICAgICAndmFyeWluZyB2ZWMzXHR2VmVydGV4Tm9ybWFsOycsXG4gICAgICAndmFyeWluZyB2ZWMzXHR2VmVydGV4V29ybGRQb3NpdGlvbjsnLFxuXG4gICAgICAndm9pZCBtYWluKCl7JyxcbiAgICAgICdcdHZlYzMgd29ybGRDYW1lcmFUb1ZlcnRleD0gdlZlcnRleFdvcmxkUG9zaXRpb24gLSBjYW1lcmFQb3NpdGlvbjsnLFxuICAgICAgJ1x0dmVjMyB2aWV3Q2FtZXJhVG9WZXJ0ZXhcdD0gKHZpZXdNYXRyaXggKiB2ZWM0KHdvcmxkQ2FtZXJhVG9WZXJ0ZXgsIDAuMCkpLnh5ejsnLFxuICAgICAgJ1x0dmlld0NhbWVyYVRvVmVydGV4XHQ9IG5vcm1hbGl6ZSh2aWV3Q2FtZXJhVG9WZXJ0ZXgpOycsXG4gICAgICAnXHRmbG9hdCBpbnRlbnNpdHlcdFx0PSBwb3coY29lZmljaWVudCArIGRvdCh2VmVydGV4Tm9ybWFsLCB2aWV3Q2FtZXJhVG9WZXJ0ZXgpLCBwb3dlcik7JyxcbiAgICAgICdcdGdsX0ZyYWdDb2xvclx0XHQ9IHZlYzQoZ2xvd0NvbG9yLCBpbnRlbnNpdHkgKiBvcGFjaXR5KTsnLFxuICAgICAgJ30nLFxuICAgIF0uam9pbignXFxuJyk7XG5cbiAgICAvLyBjcmVhdGUgY3VzdG9tIG1hdGVyaWFsIGZyb20gdGhlIHNoYWRlciBjb2RlIGFib3ZlXG4gICAgLy8gdGhhdCBpcyB3aXRoaW4gc3BlY2lhbGx5IGxhYmVsZWQgc2NyaXB0IHRhZ3NcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XG4gICAgICB1bmlmb3Jtczoge1xuICAgICAgICBjb2VmaWNpZW50OiB7XG4gICAgICAgICAgdHlwZTogJ2YnLFxuICAgICAgICAgIHZhbHVlOiAwLjMsXG4gICAgICAgIH0sXG4gICAgICAgIHBvd2VyOiB7XG4gICAgICAgICAgdHlwZTogJ2YnLFxuICAgICAgICAgIHZhbHVlOiAxLjMsXG4gICAgICAgIH0sXG4gICAgICAgIG9wYWNpdHk6IHtcbiAgICAgICAgICB0eXBlOiAnZicsXG4gICAgICAgICAgdmFsdWU6IDEuMCxcbiAgICAgICAgfSxcbiAgICAgICAgZ2xvd0NvbG9yOiB7XG4gICAgICAgICAgdHlwZTogJ2MnLFxuICAgICAgICAgIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoJ3doaXRlJyksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmVydGV4U2hhZGVyLFxuICAgICAgZnJhZ21lbnRTaGFkZXIsXG4gICAgICAvLyBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyxcbiAgICAgIHRyYW5zcGFyZW50OiB0cnVlLFxuICAgICAgZGVwdGhXcml0ZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWF0ZXJpYWw7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVNwb3RMaWdodEJlYW0oKSB7XG4gICAgaWYgKHRoaXMuc3BvdExpZ2h0QmVhbSkge1xuICAgICAgdGhpcy5zcG90bGlnaHRHcm91cC5yZW1vdmUodGhpcy5zcG90TGlnaHRCZWFtKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPIHVwZGF0ZSB0aGUgY29ycmVjdCBhbmdsZSBmcm9tIHRoZSBwcm9maWxlXG4gICAgY29uc3QgYmVhbUFuZ2xlRGVncmVlcyA9IDE0O1xuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLkN5bGluZGVyR2VvbWV0cnkoMC44LCBiZWFtQW5nbGVEZWdyZWVzICogMS4yLCAxMDAsIDY0LCAyMCwgZmFsc2UpO1xuICAgIGdlb21ldHJ5LmFwcGx5TWF0cml4NChuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbigwLCAtZ2VvbWV0cnkucGFyYW1ldGVycy5oZWlnaHQgLyAyLCAwKSk7XG4gICAgZ2VvbWV0cnkuYXBwbHlNYXRyaXg0KG5ldyBUSFJFRS5NYXRyaXg0KCkubWFrZVJvdGF0aW9uWCgtTWF0aC5QSSAvIDIpKTtcblxuICAgIHRoaXMuYXRtb3NwaGVyZU1hdGVyaWFsID0gdGhpcy5hdG1vc3BoZXJlTWF0KCk7XG4gICAgdGhpcy5zcG90TGlnaHRCZWFtID0gbmV3IFRIUkVFLk1lc2goZ2VvbWV0cnksIHRoaXMuYXRtb3NwaGVyZU1hdGVyaWFsKTtcbiAgICB0aGlzLnNwb3RMaWdodEJlYW0ucG9zaXRpb24uc2V0KDAsIC0wLjAyLCAwKTtcblxuICAgIHRoaXMuc3BvdGxpZ2h0R3JvdXAuYWRkKHRoaXMuc3BvdExpZ2h0QmVhbSk7XG4gICAgdGhpcy5zcG90TGlnaHRCZWFtLnJvdGF0aW9uLnggPSBNYXRoLlBJIC8gMjtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT2JqZWN0cygpIHtcbiAgICAodGhpcy5tYXRlcmlhbCBhcyBhbnkpID0gbmV3IFRIUkVFLk1lc2hMYW1iZXJ0TWF0ZXJpYWwoe1xuICAgICAgY29sb3I6IDB4MGQwZDBkLFxuICAgICAgZW1pc3NpdmU6IDB4MGQwZDBkLFxuICAgIH0pO1xuXG4gICAgdGhpcy5tZXNoLm1hdGVyaWFsID0gdGhpcy5tYXRlcmlhbDtcblxuICAgIC8vIEFkZCB0aGUgc3BvdGxpZ2h0XG4gICAgdGhpcy5zcG90TGlnaHQgPSBuZXcgVEhSRUUuU3BvdExpZ2h0KDB4ZmZmZmZmLCAxKTtcbiAgICB0aGlzLnNwb3RMaWdodC5hbmdsZSA9IDAuMjQ0O1xuICAgIHRoaXMuc3BvdExpZ2h0LnBlbnVtYnJhID0gMC41O1xuICAgIHRoaXMuc3BvdExpZ2h0LmRlY2F5ID0gMjtcbiAgICB0aGlzLnNwb3RMaWdodC5kaXN0YW5jZSA9IDYwMDAwO1xuICAgIHRoaXMuc3BvdExpZ2h0LmNhc3RTaGFkb3cgPSBmYWxzZTtcbiAgICB0aGlzLnNwb3RMaWdodC5pbnRlbnNpdHkgPSAxMDtcblxuICAgIHRoaXMuc3BvdExpZ2h0SGVscGVyID0gbmV3IFRIUkVFLlNwb3RMaWdodEhlbHBlcih0aGlzLnNwb3RMaWdodCk7XG4gICAgLy8gc2NlbmUuYWRkKHRoaXMuc3BvdExpZ2h0SGVscGVyKTtcblxuICAgIGNvbnN0IHNwb3RMaWdodFRhcmdldCA9IG5ldyBUSFJFRS5PYmplY3QzRCgpO1xuICAgIHRoaXMuc3BvdExpZ2h0LnRhcmdldCA9IHNwb3RMaWdodFRhcmdldDtcblxuICAgIHRoaXMuc3BvdGxpZ2h0R3JvdXAuYWRkKHRoaXMuc3BvdExpZ2h0KTtcbiAgICB0aGlzLnNwb3RsaWdodEdyb3VwLmFkZChzcG90TGlnaHRUYXJnZXQpO1xuICAgIHRoaXMuc3BvdExpZ2h0LnBvc2l0aW9uLnNldCgwLCAtMS40LCAwKTtcbiAgICBzcG90TGlnaHRUYXJnZXQucG9zaXRpb24uc2V0KDAsIC0xMCwgMCk7XG5cbiAgICAvLyBBZGQgdGhlIHBvaW50IGxpZ2h0IGZvciB0aGUgc3Vycm91bmRpbmcgbGlnaHRcbiAgICB0aGlzLnBvaW50TGlnaHQgPSBuZXcgVEhSRUUuUG9pbnRMaWdodCgweGZmZmZmZiwgMiwgMTAwMCk7XG4gICAgdGhpcy5zcG90bGlnaHRHcm91cC5hZGQodGhpcy5wb2ludExpZ2h0KTtcbiAgICB0aGlzLnBvaW50TGlnaHQucG9zaXRpb24uc2V0KDAsIC0xLjQsIDApO1xuXG4gICAgLy8gQWRkIHRoZSBsaWdodCBiZWFtXG4gICAgdGhpcy5jcmVhdGVTcG90TGlnaHRCZWFtKCk7XG5cbiAgICB0aGlzLm9iamVjdEdyb3VwLmFkZCh0aGlzLnNwb3RsaWdodEdyb3VwKTtcbiAgICB0aGlzLm9iamVjdEdyb3VwLmFkZCh0aGlzLm1lc2gpO1xuXG4gICAgLy8gQSBtb3ZpbmcgaGVhZCBoYXMgYWJvdXQgMzIgY20gaW4gd2lkdGhcbiAgICB0aGlzLm9iamVjdEdyb3VwLnNjYWxlLm11bHRpcGx5U2NhbGFyKDkpO1xuXG4gICAgdGhpcy5zY2VuZS5hZGQodGhpcy5vYmplY3RHcm91cCk7XG5cbiAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGZpeHR1cmVTZXJ2aWNlOiBGaXh0dXJlU2VydmljZSwgcHJldmlld01lc2hTZXJ2aWNlOiBQcmV2aWV3TWVzaFNlcnZpY2UsIGZpeHR1cmU6IENhY2hlZEZpeHR1cmUsIHNjZW5lOiBhbnkpIHtcbiAgICBzdXBlcihmaXh0dXJlU2VydmljZSwgZml4dHVyZSwgc2NlbmUpO1xuXG4gICAgZm9ya0pvaW4oW3ByZXZpZXdNZXNoU2VydmljZS5nZXRNZXNoKCdjb2xvci1jaGFuZ2VyJyldKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoW2NvbG9yQ2hhbmdlcl0pID0+IHtcbiAgICAgICAgICB0aGlzLm1lc2ggPSBjb2xvckNoYW5nZXI7XG5cbiAgICAgICAgICB0aGlzLmNyZWF0ZU9iamVjdHMoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPYmplY3QoKTogVEhSRUUuT2JqZWN0M0Qge1xuICAgIHJldHVybiB0aGlzLm9iamVjdEdyb3VwO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVByZXZpZXcoY2hhbm5lbFZhbHVlczogRml4dHVyZUNoYW5uZWxWYWx1ZVtdLCBtYXN0ZXJEaW1tZXJWYWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgc3VwZXIudXBkYXRlUHJldmlldyhjaGFubmVsVmFsdWVzLCBtYXN0ZXJEaW1tZXJWYWx1ZSk7XG5cbiAgICBpZiAoIXRoaXMuaXNMb2FkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKHRoaXMub2JqZWN0R3JvdXApO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBtYXRlcmlhbFxuICAgIGlmICh0aGlzLmxhc3RTZWxlY3RlZCAhPT0gdGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICBpZiAodGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5tZXNoLmNoaWxkcmVuKSB7XG4gICAgICAgICAgKGNoaWxkIGFzIE1lc2gpLm1hdGVyaWFsID0gdGhpcy5zZWxlY3RlZE1hdGVyaWFsO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMubWVzaC5jaGlsZHJlbikge1xuICAgICAgICAgIChjaGlsZCBhcyBNZXNoKS5tYXRlcmlhbCA9IHRoaXMubWF0ZXJpYWw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5sYXN0U2VsZWN0ZWQgPSB0aGlzLmlzU2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIHRoZSBsaWdodCBoZWxwZXJzXG4gICAgdGhpcy5zcG90TGlnaHRIZWxwZXIudXBkYXRlKCk7XG5cbiAgICAvLyBBcHBseSB0aGUgY29sb3JzXG4gICAgY29uc3QgY29sb3IgPSBuZXcgVEhSRUUuQ29sb3IoJ3JnYignICsgdGhpcy5jb2xvclJlZCArICcsICcgKyB0aGlzLmNvbG9yR3JlZW4gKyAnLCAnICsgdGhpcy5jb2xvckJsdWUgKyAnKScpO1xuXG4gICAgdGhpcy5wb2ludExpZ2h0LmNvbG9yID0gY29sb3I7XG5cbiAgICB0aGlzLnNwb3RMaWdodC5jb2xvciA9IGNvbG9yO1xuICAgICh0aGlzLnNwb3RMaWdodEJlYW0ubWF0ZXJpYWwgYXMgYW55KS51bmlmb3Jtcy5nbG93Q29sb3IudmFsdWUgPSBjb2xvcjtcblxuICAgIC8vIEFwcGx5IHRoZSBkaW1tZXIgdmFsdWVcbiAgICAvLyBUYWtlIHRoZSBjb2xvciBpbnRvIGFjY291bnQgZm9yIHRoZSBiZWFtIChkb24ndCBzaG93IGEgYmxhY2sgYmVhbSlcbiAgICBjb25zdCBpbnRlbnNpdHlDb2xvciA9IE1hdGgubWF4KHRoaXMuY29sb3JSZWQsIHRoaXMuY29sb3JHcmVlbiwgdGhpcy5jb2xvckJsdWUpO1xuICAgICh0aGlzLnNwb3RMaWdodEJlYW0ubWF0ZXJpYWwgYXMgYW55KS51bmlmb3Jtcy5vcGFjaXR5LnZhbHVlID0gTWF0aC5taW4oaW50ZW5zaXR5Q29sb3IsIHRoaXMuZGltbWVyKSAqIDAuNTtcblxuICAgIHRoaXMuc3BvdExpZ2h0LmludGVuc2l0eSA9IHRoaXMuc3BvdExpZ2h0TWF4SW50ZW5zaXR5ICogdGhpcy5kaW1tZXI7XG4gICAgdGhpcy5wb2ludExpZ2h0LmludGVuc2l0eSA9IHRoaXMucG9pbnRMaWdodE1heEludGVuc2l0eSAqIHRoaXMuZGltbWVyO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnNjZW5lLnJlbW92ZSh0aGlzLm9iamVjdEdyb3VwKTtcbiAgICB0aGlzLm1hdGVyaWFsLmRpc3Bvc2UoKTtcbiAgICB0aGlzLmF0bW9zcGhlcmVNYXRlcmlhbC5kaXNwb3NlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY2hhbmdlci0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvcHJldmlldy9tb2RlbHMvY29sb3ItY2hhbmdlci0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQU0vQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQVNqQyxhQUFhO1FBQ3JCLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsUUFBZ0IsR0FBRyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztZQUNyRCxLQUFLLEVBQUUsUUFBUTtZQUNmLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pFLG1DQUFtQztRQUVuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLGNBQThCLEVBQUUsa0JBQXNDLEVBQUUsT0FBc0IsRUFBRSxLQUFVO1FBQ3BILEtBQUssQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBL0JoQyxnQkFBVyxHQUFtQixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQWlDekQsUUFBUSxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7YUFDcEQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztZQUV6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU0sYUFBYSxDQUFDLGFBQW9DLEVBQUUsaUJBQXlCO1FBQ2xGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRDLHNCQUFzQjtRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3RDLEtBQWMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuRCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDdEMsS0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUMzQyxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN0QyxDQUFDO1FBRUQsMkJBQTJCO1FBQzNCLGlDQUFpQztJQUNuQyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE1lc2ggfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBDYWNoZWRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NhY2hlZC1maXh0dXJlJztcbmltcG9ydCB7IEZpeHR1cmVDaGFubmVsVmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZml4dHVyZS1jaGFubmVsLXZhbHVlJztcbmltcG9ydCB7IEZpeHR1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZml4dHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXZpZXdNZXNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ByZXZpZXctbWVzaC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpeHR1cmUzZCB9IGZyb20gJy4vZml4dHVyZS0zZCc7XG5cbmV4cG9ydCBjbGFzcyBDb2xvckNoYW5nZXIzZCBleHRlbmRzIEZpeHR1cmUzZCB7XG4gIHByaXZhdGUgbWVzaDogVEhSRUUuTWVzaDtcblxuICBwcml2YXRlIG9iamVjdEdyb3VwOiBUSFJFRS5PYmplY3QzRCA9IG5ldyBUSFJFRS5PYmplY3QzRCgpO1xuXG4gIHByaXZhdGUgbGFzdFNlbGVjdGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgbWF0ZXJpYWw6IFRIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsO1xuXG4gIHByb3RlY3RlZCBjcmVhdGVPYmplY3RzKCkge1xuICAgIHN1cGVyLmNyZWF0ZU9iamVjdHMoKTtcblxuICAgICh0aGlzLm1hdGVyaWFsIGFzIGFueSkgPSBuZXcgVEhSRUUuTWVzaExhbWJlcnRNYXRlcmlhbCh7XG4gICAgICBjb2xvcjogMHgwZDBkMGQsXG4gICAgICBlbWlzc2l2ZTogMHgwZDBkMGQsXG4gICAgfSk7XG5cbiAgICB0aGlzLm1lc2gubWF0ZXJpYWwgPSB0aGlzLm1hdGVyaWFsO1xuXG4gICAgdGhpcy5zcG90TGlnaHRIZWxwZXIgPSBuZXcgVEhSRUUuU3BvdExpZ2h0SGVscGVyKHRoaXMuc3BvdExpZ2h0KTtcbiAgICAvLyBzY2VuZS5hZGQodGhpcy5zcG90TGlnaHRIZWxwZXIpO1xuICAgIFxuICAgIHRoaXMub2JqZWN0R3JvdXAuYWRkKHRoaXMuc3BvdGxpZ2h0R3JvdXApO1xuICAgIHRoaXMub2JqZWN0R3JvdXAuYWRkKHRoaXMubWVzaCk7XG5cbiAgICAvLyBBIG1vdmluZyBoZWFkIGhhcyBhYm91dCAzMiBjbSBpbiB3aWR0aFxuICAgIHRoaXMub2JqZWN0R3JvdXAuc2NhbGUubXVsdGlwbHlTY2FsYXIoOSk7XG5cbiAgICB0aGlzLnNjZW5lLmFkZCh0aGlzLm9iamVjdEdyb3VwKTtcblxuICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoZml4dHVyZVNlcnZpY2U6IEZpeHR1cmVTZXJ2aWNlLCBwcmV2aWV3TWVzaFNlcnZpY2U6IFByZXZpZXdNZXNoU2VydmljZSwgZml4dHVyZTogQ2FjaGVkRml4dHVyZSwgc2NlbmU6IGFueSkge1xuICAgIHN1cGVyKGZpeHR1cmVTZXJ2aWNlLCBmaXh0dXJlLCBzY2VuZSk7XG5cbiAgICBmb3JrSm9pbihbcHJldmlld01lc2hTZXJ2aWNlLmdldE1lc2goJ2NvbG9yLWNoYW5nZXInKV0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbY29sb3JDaGFuZ2VyXSkgPT4ge1xuICAgICAgICAgIHRoaXMubWVzaCA9IGNvbG9yQ2hhbmdlcjtcblxuICAgICAgICAgIHRoaXMuY3JlYXRlT2JqZWN0cygpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGdldE9iamVjdCgpOiBUSFJFRS5PYmplY3QzRCB7XG4gICAgcmV0dXJuIHRoaXMub2JqZWN0R3JvdXA7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUHJldmlldyhjaGFubmVsVmFsdWVzOiBGaXh0dXJlQ2hhbm5lbFZhbHVlW10sIG1hc3RlckRpbW1lclZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNMb2FkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdXBlci51cGRhdGVQcmV2aWV3KGNoYW5uZWxWYWx1ZXMsIG1hc3RlckRpbW1lclZhbHVlKTtcblxuICAgIHRoaXMudXBkYXRlUG9zaXRpb24odGhpcy5vYmplY3RHcm91cCk7XG5cbiAgICAvLyBVcGRhdGUgdGhlIG1hdGVyaWFsXG4gICAgaWYgKHRoaXMubGFzdFNlbGVjdGVkICE9PSB0aGlzLmlzU2VsZWN0ZWQpIHtcbiAgICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLm1lc2guY2hpbGRyZW4pIHtcbiAgICAgICAgICAoY2hpbGQgYXMgTWVzaCkubWF0ZXJpYWwgPSB0aGlzLnNlbGVjdGVkTWF0ZXJpYWw7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5tZXNoLmNoaWxkcmVuKSB7XG4gICAgICAgICAgKGNoaWxkIGFzIE1lc2gpLm1hdGVyaWFsID0gdGhpcy5tYXRlcmlhbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmxhc3RTZWxlY3RlZCA9IHRoaXMuaXNTZWxlY3RlZDtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIGxpZ2h0IGhlbHBlcnNcbiAgICAvLyB0aGlzLnNwb3RMaWdodEhlbHBlci51cGRhdGUoKTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5zY2VuZS5yZW1vdmUodGhpcy5vYmplY3RHcm91cCk7XG4gICAgdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCk7XG4gICAgdGhpcy5zcG90TGlnaHRIZWxwZXIuZGlzcG9zZSgpO1xuICB9XG59XG4iXX0=
|