Skip to content

Commit c3c9fa4

Browse files
authored
Beam position (#922)
* Add BeamPosition type to schema, docs, model and editor * Bump schema version to 12.1.0 * Update capability type order * Fix Laser fixtures, also by using BeamPosition * Make test fixtures
1 parent 9b5d264 commit c3c9fa4

22 files changed

+807
-336
lines changed

docs/capability-types.md

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ To make common percentage values more readable, one can use specific keywords to
1818
| FogOutput | `m^3/min`, `%` | – | – | off | weak | strong
1919
| RotationAngle | `deg`, `%` | – | – | – | – | –
2020
| BeamAngle | `deg`, `%` | – | – | closed | narrow | wide
21+
| HorizontalAngle | `deg`, `%` | left | – | center | – | right
22+
| VerticalAngle | `deg`, `%` | top | – | center | – | bottom
2123
| SwingAngle | `deg`, `%` | – | – | off | narrow | wide
2224
| Parameter | (no unit), `%` | – | – | off / instant | low / slow / small / short | high / fast / big / long
2325
| SlotNumber | (no unit) | – | – | – | – | –
@@ -42,6 +44,7 @@ To make common percentage values more readable, one can use specific keywords to
4244
* [WheelSlot](#wheelslot) / [WheelShake](#wheelshake) / [WheelSlotRotation](#wheelslotrotation) / [WheelRotation](#wheelrotation)
4345
* [Effect](#effect) / [EffectSpeed](#effectspeed) / [EffectDuration](#effectduration) / [EffectParameter](#effectparameter)
4446
* [SoundSensitivity](#soundsensitivity)
47+
* [BeamAngle](#beamangle) / [BeamPosition](#beamposition)
4548
* [Focus](#focus)
4649
* [Zoom](#zoom)
4750
* [Iris](#iris) / [IrisEffect](#iriseffect)
@@ -50,7 +53,7 @@ To make common percentage values more readable, one can use specific keywords to
5053
* [BladeInsertion](#bladeinsertion)
5154
/ [BladeRotation](#bladerotation) / [BladeSystemRotation](#bladesystemrotation)
5255
* [Fog](#fog) / [FogOutput](#fogoutput) / [FogType](#fogtype)
53-
* Generic types: [BeamAngle](#beamangle) / [Rotation](#rotation) / [Speed](#speed) / [Time](#time) / [Maintenance](#maintenance) / [Generic](#generic)
56+
* Generic types: [Rotation](#rotation) / [Speed](#speed) / [Time](#time) / [Maintenance](#maintenance) / [Generic](#generic)
5457

5558

5659
<table>
@@ -276,6 +279,22 @@ To make common percentage values more readable, one can use specific keywords to
276279
<td valign="top">Entity <em>Percent</em></td>
277280
<td valign="top"></td>
278281
</tr>
282+
<tr>
283+
<th valign="top" scope="row" id="beamangle">BeamAngle</th>
284+
<td valign="top">angle<br><sub>:star2: required</sub></td>
285+
<td valign="top">Entity <em>BeamAngle</em></td>
286+
<td valign="top"></td>
287+
</tr>
288+
<tr>
289+
<th valign="top" scope="row" id="beamposition" rowspan="2">BeamPosition</th>
290+
<td valign="top">horizontalAngle<br><sub>:star2: required</sub></td>
291+
<td valign="top">Entity <em>HorizontalAngle</em></td>
292+
<td valign="top" rowspan="2">at least one of <em>horizontalAngle</em> or <em>verticalAngle</em> is required</td>
293+
</tr>
294+
<tr>
295+
<td valign="top">verticalAngle<br><sub>:star2: required</sub></td>
296+
<td valign="top">Entity <em>VerticalAngle</em></td>
297+
</tr>
279298
<tr>
280299
<th valign="top" scope="row" id="effectspeed">EffectSpeed</th>
281300
<td valign="top">speed<br><sub>:star2: required</sub></td>
@@ -417,12 +436,6 @@ To make common percentage values more readable, one can use specific keywords to
417436
<td valign="top"><code>Fog</code> or <code>Haze</code></td>
418437
<td valign="top"></td>
419438
</tr>
420-
<tr>
421-
<th valign="top" scope="row" id="beamangle">BeamAngle</th>
422-
<td valign="top">angle<br><sub>:star2: required</sub></td>
423-
<td valign="top">Entity <em>BeamAngle</em></td>
424-
<td valign="top"></td>
425-
</tr>
426439
<tr>
427440
<th valign="top" scope="row" id="rotation" rowspan="2">Rotation</th>
428441
<td valign="top">speed<br><sub>:vs: required</sub></td>

docs/model-api.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,8 @@ A capability represents a range of a channel.
192192
* [.slotNumber](#Capability+slotNumber)[<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code>
193193
* [.wheelSlot](#Capability+wheelSlot)[<code>array.&lt;WheelSlot&gt;</code>](#WheelSlot) \| <code>null</code>
194194
* [.angle](#Capability+angle)[<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code>
195+
* [.horizontalAngle](#Capability+horizontalAngle)[<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code>
196+
* [.verticalAngle](#Capability+verticalAngle)[<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code>
195197
* [.colorTemperature](#Capability+colorTemperature)[<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code>
196198
* [.soundSensitivity](#Capability+soundSensitivity)[<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code>
197199
* [.shakeAngle](#Capability+shakeAngle)[<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code>
@@ -398,6 +400,16 @@ Use only in `WheelShake` capabilities!
398400
### capability.angle ⇒ [<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code>
399401
**Kind**: instance property of [<code>Capability</code>](#Capability)
400402
**Returns**: [<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code> - Start and end angle values. Defaults to null.
403+
<a name="Capability+horizontalAngle"></a>
404+
405+
### capability.horizontalAngle ⇒ [<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code>
406+
**Kind**: instance property of [<code>Capability</code>](#Capability)
407+
**Returns**: [<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code> - Start and end horizontal angle values. Defaults to null.
408+
<a name="Capability+verticalAngle"></a>
409+
410+
### capability.verticalAngle ⇒ [<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code>
411+
**Kind**: instance property of [<code>Capability</code>](#Capability)
412+
**Returns**: [<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code> - Start and end vertical angle values. Defaults to null.
401413
<a name="Capability+colorTemperature"></a>
402414

403415
### capability.colorTemperature ⇒ [<code>array.&lt;Entity&gt;</code>](#Entity) \| <code>null</code>

fixtures/glp/impression-laser.json

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -423,17 +423,15 @@
423423
"capability": {
424424
"type": "BeamAngle",
425425
"angleStart": "0deg",
426-
"angleEnd": "40deg",
427-
"helpWanted": "Is this the correct direction?"
426+
"angleEnd": "40deg"
428427
}
429428
},
430429
"Y Size": {
431430
"defaultValue": 0,
432431
"capability": {
433432
"type": "BeamAngle",
434433
"angleStart": "0deg",
435-
"angleEnd": "40deg",
436-
"helpWanted": "Is this the correct direction?"
434+
"angleEnd": "40deg"
437435
}
438436
},
439437
"Rotation": {
@@ -446,17 +444,17 @@
446444
"X Position": {
447445
"defaultValue": 128,
448446
"capability": {
449-
"type": "Pan",
450-
"angleStart": "0deg",
451-
"angleEnd": "40deg"
447+
"type": "BeamPosition",
448+
"horizontalAngleStart": "0deg",
449+
"horizontalAngleEnd": "40deg"
452450
}
453451
},
454452
"Y Position": {
455453
"defaultValue": 128,
456454
"capability": {
457-
"type": "Tilt",
458-
"angleStart": "0deg",
459-
"angleEnd": "40deg"
455+
"type": "BeamPosition",
456+
"verticalAngleStart": "0deg",
457+
"verticalAngleEnd": "40deg"
460458
}
461459
},
462460
"Visible Points": {

fixtures/jb-systems/twin-effect-laser.json

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -420,10 +420,9 @@
420420
"capabilities": [
421421
{
422422
"dmxRange": [0, 127],
423-
"type": "Rotation",
424-
"angleStart": "0%",
425-
"angleEnd": "100%",
426-
"comment": "128 different fixed positions on X-axis"
423+
"type": "BeamPosition",
424+
"horizontalAngleStart": "0%",
425+
"horizontalAngleEnd": "100%"
427426
},
428427
{
429428
"dmxRange": [128, 191],
@@ -443,10 +442,9 @@
443442
"capabilities": [
444443
{
445444
"dmxRange": [0, 127],
446-
"type": "Rotation",
447-
"angleStart": "0%",
448-
"angleEnd": "100%",
449-
"comment": "128 different fixed positions on Y-axis"
445+
"type": "BeamPosition",
446+
"verticalAngleStart": "0%",
447+
"verticalAngleEnd": "100%"
450448
},
451449
{
452450
"dmxRange": [128, 191],
@@ -466,56 +464,59 @@
466464
"capabilities": [
467465
{
468466
"dmxRange": [0, 127],
469-
"type": "Effect",
470-
"effectName": "0º to 359º fixed positions around X axis"
467+
"type": "Rotation",
468+
"angleStart": "0deg",
469+
"angleEnd": "359deg"
471470
},
472471
{
473472
"dmxRange": [128, 191],
474-
"type": "Effect",
475-
"effectName": "CW rolling around X axis"
473+
"type": "Rotation",
474+
"speed": "fast CW"
476475
},
477476
{
478477
"dmxRange": [192, 255],
479-
"type": "Effect",
480-
"effectName": "CCW rolling around X axis"
478+
"type": "Rotation",
479+
"speed": "fast CCW"
481480
}
482481
]
483482
},
484483
"Y Axis Rolling": {
485484
"capabilities": [
486485
{
487486
"dmxRange": [0, 127],
488-
"type": "Effect",
489-
"effectName": "0º to 359º fixed positions around Y axis"
487+
"type": "Rotation",
488+
"angleStart": "0deg",
489+
"angleEnd": "359deg"
490490
},
491491
{
492492
"dmxRange": [128, 191],
493-
"type": "Effect",
494-
"effectName": "CW rolling around Y axis"
493+
"type": "Rotation",
494+
"speed": "fast CW"
495495
},
496496
{
497497
"dmxRange": [192, 255],
498-
"type": "Effect",
499-
"effectName": "CCW rolling around Y axis"
498+
"type": "Rotation",
499+
"speed": "fast CCW"
500500
}
501501
]
502502
},
503503
"Z Axis Rolling": {
504504
"capabilities": [
505505
{
506506
"dmxRange": [0, 127],
507-
"type": "Effect",
508-
"effectName": "0º to 359º fixed positions around Z axis"
507+
"type": "Rotation",
508+
"angleStart": "0deg",
509+
"angleEnd": "359deg"
509510
},
510511
{
511512
"dmxRange": [128, 191],
512-
"type": "Effect",
513-
"effectName": "CW rolling around Z axis"
513+
"type": "Rotation",
514+
"speed": "fast CW"
514515
},
515516
{
516517
"dmxRange": [192, 255],
517-
"type": "Effect",
518-
"effectName": "CCW rolling around Z axis"
518+
"type": "Rotation",
519+
"speed": "fast CCW"
519520
}
520521
]
521522
},
@@ -705,7 +706,7 @@
705706
"capabilities": [
706707
{
707708
"dmxRange": [0, 127],
708-
"type": "BeamAngle",
709+
"type": "Zoom",
709710
"angleStart": "wide",
710711
"angleEnd": "narrow",
711712
"comment": "Pattern size"

fixtures/laserworld/cs-1000rgb.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,17 @@
4949
"Horizontal Movement": {
5050
"defaultValue": "50%",
5151
"capability": {
52-
"type": "Pan",
53-
"angleStart": "0deg",
54-
"angleEnd": "40deg"
52+
"type": "BeamPosition",
53+
"horizontalAngleStart": "0deg",
54+
"horizontalAngleEnd": "40deg"
5555
}
5656
},
5757
"Vertical Movement": {
5858
"defaultValue": "50%",
5959
"capability": {
60-
"type": "Tilt",
61-
"angleStart": "0deg",
62-
"angleEnd": "40deg"
60+
"type": "BeamPosition",
61+
"verticalAngleStart": "0deg",
62+
"verticalAngleEnd": "40deg"
6363
}
6464
},
6565
"Manual Zoom": {

0 commit comments

Comments
 (0)