diff --git a/.github/workflows/check-links.yaml b/.github/workflows/check-links.yaml index d2c5ba22..bbc615fa 100644 --- a/.github/workflows/check-links.yaml +++ b/.github/workflows/check-links.yaml @@ -4,12 +4,13 @@ on: push jobs: test_links_in_readme: - runs-on: ubuntu-22.04 + timeout-minutes: 5 + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: List files run: ls -la - - uses: docker://pandoc/core:2.9 + - uses: docker://pandoc/core:latest with: args: >- # allows you to break string into multiple lines --standalone diff --git a/.github/workflows/generate-doc.yaml b/.github/workflows/generate-doc.yaml index 4e046f89..598f0dc2 100644 --- a/.github/workflows/generate-doc.yaml +++ b/.github/workflows/generate-doc.yaml @@ -4,21 +4,22 @@ on: push jobs: generate_doc: - runs-on: ubuntu-22.04 + timeout-minutes: 5 + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: List files run: | ls -la mkdir output - - uses: docker://pandoc/core:2.9 + - uses: docker://pandoc/core:latest with: args: >- # allows you to break string into multiple lines --standalone --from markdown --output=mvr-spec.docx mvr-spec.md - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: mvr-spec path: mvr-spec.docx diff --git a/gdtf-spec.md b/gdtf-spec.md index 6521e8d9..5adda99f 100644 --- a/gdtf-spec.md +++ b/gdtf-spec.md @@ -165,6 +165,8 @@ all firmware revisions of the device. ./models/svg_side/yoke.svg ./models/svg_front/base.svg ./models/svg_front/yoke.svg +./photometric/lamp1.ies +./photometric/lamp1.ldt ``` @@ -255,6 +257,12 @@ attributes of the fixture type are specified in [table 3](#user-content-table-3 Fixture type node children are specified in [table 4](#user-content-table-4 ). +For SVG files defining the `Thumbnail` you can mark the elements defining Movement Range and the Connection Input position. +* Movement Range: shapes inside the SVG with fill and stroke color Red (#FF0000(RGB: 255, 0, 0)) and with fill and stroke opacity 0, allow software to identify these shapes as a movement range of the device. +* Connection Input (Pigtail): shapes inside the SVG with fill and stroke color Green (#00FF00 (RGB: 0, 255, 0)) and with fill and stroke opacity 0, allow software to identify these shapes as a connection input (pigtail) part of the device. + + +
#### Table 4. *Fixture Type Node Children* @@ -508,7 +516,7 @@ currently defined XML attributes of the wheel slot are specified in | XML Attribute Name | Value Type | Description | |----|----|----| -| Name | [Name](#user-content-attrtype-name ) | The unique name of the wheel slot | +| Name | [String](#user-content-attrtype-string ) | The name of the wheel slot | | Color | [ColorCIE](#user-content-attrtype-colorcie ) | Color of the wheel slot, Default value: {0.3127, 0.3290, 100.0 } (white) For Y give relative value compared to overall output defined in property Luminous Flux of related Beam Geometry (transmissive case). | | Filter | [Node](#user-content-attrtype-node ) | Optional. Link to filter in the physical description; Do not define color if filter is used; Starting point: Filter Collect | | MediaFileName | [Resource](#user-content-attrtype-resource ) | Optional. PNG file name without extension containing image for specific gobos etc.
- Maximum resolution of picture: 1024x1024
- Recommended resolution of gobo: 256x256
- Recommended resolution of animation wheel: 256x256
These resource files are located in a folder called `./wheels` in the zip archive. Default value: empty. | @@ -1368,7 +1376,7 @@ the Beam are specified in [table 41](#user-content-table-41 ). | Name | [Name](#user-content-attrtype-name ) | The unique name of the geometry. Recommendation for a light source of a conventional or moving head or a projector is “Beam”. Note 1: Beam is usually mounted to Head or Body. Recommendation for a self-emitting single light source is “Pixel”. Note 2: Pixel is usually mounted to Head or Body. Recommendation for a number of Pixel that are controlled at the same time is “Array”. Note 3: Array is usually mounted to Head or Body. Recommendation for a light source of a moving mirror is “Mirror”. Note 4: Mirror is usually mounted to Yoke. | | Model | [Name](#user-content-attrtype-name ) | Link to the corresponding model. | | Position | [Matrix](#user-content-attrtype-matrix ) | Relative position of geometry; Default value: Identity Matrix | -| LampType | [Enum](#user-content-attrtype-enum ) | Defines type of the light source; The currently defined types are: Discharge, Tungsten, Halogen, LED; Default value “Discharge” | +| LampType | [Enum](#user-content-attrtype-enum ) | Defines type of the light source; The currently defined types are: Discharge, Tungsten, Halogen, LED, Plasma, Laser, Other; Default value “Discharge” | | PowerConsumption | [Float](#user-content-attrtype-float ) | Power consumption; Default value: 1000; Unit: Watt | | LuminousFlux | [Float](#user-content-attrtype-float ) | Intensity of all the represented light emitters; Default value: 10000; Unit: lumen | | ColorTemperature | [Float](#user-content-attrtype-float ) | Color temperature; Default value: 6000; Unit: kelvin | @@ -1379,7 +1387,8 @@ the Beam are specified in [table 41](#user-content-table-41 ). | BeamRadius | [Float](#user-content-attrtype-float ) | Beam radius on starting point. Default value: 0.05; Unit: meter. | | BeamType | [Enum](#user-content-attrtype-enum ) | Beam Type; Specified values: "Wash", "Spot", "None", "Rectangle", "PC", "Fresnel", "Glow". Default value "Wash" | ColorRenderingIndex | [Uint](#user-content-attrtype-uint ) | The CRI according to TM-30 is a quantitative measure of the ability of the light source showing the object color naturally as it does as daylight reference. Size 1 byte. Default value 100. | -| EmitterSpectrum | [Node](#user-content-attrtype-node ) | Optional link to emitter in the physical description; use this to define the white light source of a subtractive color mixing system. Starting point: Emitter Collect; Default spectrum is a Black-Body with the defined ColorTemperature. | +| EmitterSpectrum | [Node](#user-content-attrtype-node ) | Optional link to emitter in the physical description; use this to define the white light source of a subtractive color mixing system or the color for the beam when no color mixing is defined. Starting point: Emitter Collect; Default spectrum is a Black-Body with the defined ColorTemperature. | +| Photometric | [Resource](#user-content-attrtype-resource ) | Optional. File name without extension and without subfolder containing description of the IES or EULUMDAT file in the subfolder `./photometric/`. |
@@ -1559,7 +1568,7 @@ The protocol doesn't have any children. #### General The Geometry Type Reference is used to describe multiple instances of -the same geometry. Example: LED panel with multiple pixels. (XML node ). +the same geometry. Example: LED panel with multiple pixels. (XML node ``). The currently defined XML attributes of reference are specified in [table 48](#user-content-table-48). @@ -1576,6 +1585,7 @@ for these geometries. | Position | [Matrix](#user-content-attrtype-matrix ) | Relative position of geometry; Default value: Identity Matrix | | Geometry | [Name](#user-content-attrtype-name ) | Name of the referenced geometry. Only top level geometries are allowed to be referenced. | | Model | [Name](#user-content-attrtype-name ) | Optional. Link to the corresponding model. The model only replaces the model of the parent of the referenced geometry. The models of the children of the referenced geometry are not affected. The starting point is Models Collect. If model is not set, the model is taken from the referenced geometry. | +| Photometric | [Resource](#user-content-attrtype-resource ) | Optional. File name without extension and without subfolder containing description of the IES or EULUMDAT file in the subfolder `./photometric/`. The Photometric only replaces the Photometric of the parent of the referenced geometry. The Photometric of the children of the referenced geometry are not affected. The starting point is Models Collect. If Photometric is not set, the Photometric is taken from the referenced geometry. | @@ -1913,7 +1923,7 @@ currently defined XML attributes of channel function are specified in | XML Attribute Name | Value Type | Description | |----|----|----| -| Name | [Name](#user-content-attrtype-name ) | Unique name; Default value: Name of attribute and number of channel function. | +| Name | [Name](#user-content-attrtype-name ) | Unique name; Default value: Name of Attribute and 1-based index of Channel Function inside the Logical Channel, separated by a space; Example: "Dimmer 1". | | Attribute | [Node](#user-content-attrtype-node ) | Link to attribute; Starting point is the attributes node. Default value: “NoFeature”. | | OriginalAttribute | [String](#user-content-attrtype-string ) | The manufacturer's original name of the attribute; Default: empty | | DMXFrom | [DMXValue](#user-content-attrtype-dmxvalue ) | Start DMX value; The end DMX value is calculated as a DMXFrom of the next channel function – 1 or the maximum value of the DMX channel. Default value: "0/1". | @@ -1934,6 +1944,8 @@ currently defined XML attributes of channel function are specified in | Min | [Float](#user-content-attrtype-float ) | Minimum Physical Value that will be used for the DMX Profile. Default: Value from PhysicalFrom | | Max | [Float](#user-content-attrtype-float ) | Maximum Physical Value that will be used for the DMX Profile. Default: Value from PhysicalTo | | CustomName | [String](#user-content-attrtype-string ) | Custom Name that can he used do adress this channel function with other command based protocols like OSC. Default: Node Name of the Channel function Example: Head_Dimmer.Dimmer.Dimmer | +| PhotometricFrom | [Resource](#user-content-attrtype-resource ) | Optional. IES or LDT file name without extension containing the spectral data for the start for the Active Channel Function for all Beams of the fixture. | +| PhotometricTo | [Resource](#user-content-attrtype-resource ) | Optional. IES or LDT file name without extension containing the spectral data for the end for the Active Channel Function for all Beams of the fixture. | @@ -1953,7 +1965,7 @@ Where: As children the channel function has list of a [channel -sets](#user-content-channel-set ) and a [sub channel +sets](#user-content-channel-set ) and a [subchannel sets](#user-content-sub-channel-set ). ###### Channel Set @@ -1979,28 +1991,51 @@ are specified in [table 61](#user-content-table-61 ). The channel set does not have any children. -###### Sub Channel Set +###### SubChannel Set -This section defines the sub channel sets of the channel function (XML node -). The currently defined XML attributes of the sub channel set +This section defines the subchannel sets of the channel function (XML node +). The currently defined XML attributes of the subchannel set are specified in [table 62](#user-content-table-62 ).
-#### Table 62. *Sub Channel Set Attributes* +#### Table 62. *SubChannel Set Attributes* | XML Attribute Name | Value Type | Description | |----|----|----| -| Name | [Name](#user-content-attrtype-name ) | The name of the sub channel set. Default: Empty | +| Name | [Name](#user-content-attrtype-name ) | The name of the subchannel set. Default: Empty | | PhysicalFrom | [Float](#user-content-attrtype-float ) | Physical start value | | PhysicalTo | [Float](#user-content-attrtype-float ) | Physical end value | -| SubPhysicalUnit | [Node](#user-content-attrtype-node ) | Link to the sub physical unit; Starting Point: Attribute | +| SubPhysicalUnit | [Node](#user-content-attrtype-node ) | Link to the subphysical unit; Starting Point: Attribute | | DMXProfile | [Node](#user-content-attrtype-node ) | Optional link to the DMX Profile; Starting Point: DMX Profile Collect |
-The sub channel set does not have any children. +The subchannel set does not have any children. + +###### PhotometricSet + +This section defines the PhotometricSets of the channel function (XML node +). The currently defined XML attributes of the PhotometricSet +are specified in [table 62](#user-content-table-62 ). + +
+ +#### Table 62. *PhotometricSet Attributes* + +| XML Attribute Name | Value Type | Description | +|----|----|----| +| Beam | [Name](#user-content-attrtype-name ) | Optional link to the Beam Geometry this is for | +| DMXFrom | [DMXValue](#user-content-attrtype-dmxvalue ) | Start DMX value; The end DMX value is calculated as a DMXFrom of the next PhotometricSet – 1 or the maximum value of the current channel function; Default value: 0/1 | +| PhotometricFrom | [Node](#user-content-attrtype-node) | Photometric start value to start interpolating to. function. | +| PhotometricTo | [Node](#user-content-attrtype-node) | Photometric end value. function. | + + +
+ +The PhotometricSet does not have any children. + #### Relation Collect @@ -2232,7 +2267,7 @@ protocol collect currently does not have any XML attributes (XML node | XML node | Mandatory | Description | |----|----|----| -| [RDM](#user-content-rdm-section ) | No | Describes RDM information | +| [FTRDM](#user-content-rdm-section ) | No | Describes Fixture Type RDM information | | [Art-Net](#user-content-art-net-section ) | No | Describes Art-Net information | | [sACN](#user-content-streaming-acn-section ) | No | Describes sACN information | | [PosiStageNet](#user-content-posi-stage-net-section ) | No | Describes PosiStageNet information | @@ -2250,7 +2285,7 @@ attributes of RDM are specified in [table 70](#user-content-table-70 ).
-#### Table 70. *RDM Attributes* +#### Table 70. *FTRDM Attributes* | XML Attribute Name | Value Type | Description | |----|----|----| @@ -2373,9 +2408,9 @@ Type Attribute. At any time user defined attributes can be introduced as well.
-#### Table A1. *Structure of Attribute and Subattribute* +#### Table A1. *Structure of Attribute* -| Description | Attribute +| Attribute | Description |----------------------------------|-----------------------------| | Dimmer | Controls the intensity of a fixture. | | Pan | Controls the fixture's sideward movement (horizontal axis). | @@ -2943,7 +2978,7 @@ not taken into account.                                     -            +                                                @@ -3362,169 +3397,3 @@ If there aren't any value given by the user, the TimeOffset and DutyCycle SubPhy ![Graph of a default PulseOpen-like attribute and their SubPhysicalUnits](media/PulseOpen\_Default.png "default PulseOpen-like attribute and their SubPhysicalUnits") *Figure 10. Default PulseOpen-like attribute and their SubPhysicalUnits* - -# Revision History - -This section lists all the changes that are made to GDTF. - -## Version 1.1 - - - Added connectors collect to the physical description; \#135 - - Added media server attributes. Edited existing media server - attributes; \#134 - - Added geometry types MediaServerLayer, MediaServerCamera, - MediaServerMaster, Display; \#133 - - Added detailed definition how a gobo image is interpreted \#107 - - Added more detailed definition of Geometry Type "Beam" \#132 - - Changed value type of Channel Function XML attribute "Name" \#111 - - Added XML property "CanHaveChildren" to fixture type node. \#144 - - Added LegHeight to the properties collect \#147 - - Added description about the origin of a fixture \#147 - - Added XML attribute "InitialFunction" to DMX Channel, Moved Default - from DMX Channel to Channel Function \#153 - - Updated XML attribute "Color" of Emitter, Filter and Wheel Slot - \#112 - - Updated XML attribute "LuminousFlux" of Geometry type Beam \#158 - -Note: The default meshes for Base, Conventional and Scanner were updated. The -origin of the meshes is now the mounting plate. - -## Version 1.0 - - - Geometry Type Axis: Removed XML attributes "From", "To" and "Speed"; - \#2 - - Changed enumeration of attribute names; \#33 - - Node Revision: added XML attribute "UserID"; \#17 - - Revisions are optional now. Every time a GDTF file is uploaded to - GDTF-Share.com a revision with the actual time and UserID is created - by the GDTF-Share; \#17 - - Geometry Type Geometry Reference: XML attribute "Model" added. \#24 - - All Geometry Nodes: XML attribute "Model" now uses value type - "Name". \#77 - - Node Model: Changed description of XML attribute "File"; \#79 - - ChannelFunction: removed XML attribute DMXInvert; \#31 - - DMX Mode Children: Removed RDM Personality; \#79 - - Node DMXPersonality: Changed Value type of XML attribute DMXMode; - \#79 - - Physical Description: Updated definition of emitters; \#34 - - Physical Description: Added definition of filters; \#34 - - Channel Function: Added XML attribute "Filter"; \#34 - - Wheel Slot: Added XML attribute "Filter"; \#34 - - Physical Description: Added definition of color space for indirect - color mixing; \#34 - - Updated suggested names for Geometry Type "Geometry" and "Axis"; - \#19 - - Updated appendix A and B due to rework and addition of attributes; - \#35 - - DMXChannel: Removed XML attributes "Coarse", "Fine", "Ultra" and - "Uber" and added XML attribute "Offset" instead. - - Fixture Type Node: Added XML attribute "LongName"; \#78 - - Fixture Type Node: Changed description of XML attribute "ShortName"; - \#78 - - Fixture Type Node: Changed description of XML attribute - "Manufacturer"; \#78 - -## Version 0.9 - - - Geometries are now always referenced by Name and not by Node Link; - \#23 - - Fixed glitch in spec regarding ZIP-archive; \#8 - - Updated example for Data Version; \#4 - - Updated description of Model Node - Replaced wheel slot by model; - \#5 - - Geometry type Beam: Changed name of XML attribute - "LuminousIntensity" to "LuminousFlux"; - - Changed definition of value type "Date" corresponding to UTC; - - Maximum count of vertices is now defined per device and not per - model; - - Removed optional checksum per file; \#7 - - Fixture type node: Added .svg as additional resource type for - thumbnail; \#25 - - Changed maximum resolution of png files for thumbnail and wheel slot - to 1024x1024; \#18 - - Updated format of value type "GUID" corresponding to RFC 4122; \#15 - - Defined folder structure for resource files; \#11 \#28 - - Links to all resource files do not have a file extension any longer; - - Added first iteration of media server attributes; \#41 - - Added table for allowable UTF-8 chars for Names; \#64 - - Node ChannelSet: Changed description of XML attribute - "WheelSlotIndex"; \#43 - - Defined more clearly how the wheel slot index is created; \#43 - - Updated RDM Section; \#69 - - Node DMXChannel: The XML attribute "Frequency" was removed; \#31 - - Node ChannelFunction: The XML attribute "EncoderInvert" was removed; - \#31 - - Moved XML attributes "MibFade" and "DMXChangeTimeLimit" from the - DMXChannel to the LogicalChannel; \#31 - -## Version 0.88 - - - Node ChannelSet: Removed defaults in XML attributes PhysicalFrom and - PhysicalTo; - - Node ChannelSet: Changed description of XML attributes Name and - DMXFrom; - - Node DMXChannel: Changed description of XML attribute Default; - - Node Relation: Renamed XML attribute Slave to Follower; - - Node Relation: Removed XML attributes DMXFrom and DMXTo; - - Node Relation: Removed relation type “Mode”; - - Node ChannelFunction: Added XML attributes ModeMaster, ModeFrom and - ModeTo; - - Added attributes CIE\_X, CIE\_Y and CIE\_Brightness; - - Reworked and added further attributes for gobo wheel, color wheel, - color mixing and prism. - - Updated Appendix A and Appendix B as per changes made in attributes. - -## Version 0.87 - - - Changing format of type Matrix and Rotation; - - New XML attribute of DMX Channel - Uber; - - Attribute has no more Special XML attribute; - - Pigtail position should not be specified in 2D or 3D files anymore. - Instead of it should be created a general geometry and linked to a - model with primitive type “Pigtail”; - - Measurement point does not have DMX and Color XML properties - anymore; - - Added specification to 3D mesh; - - Added new part Color rendering index collect; - - Added new part Supported protocol collect and moved RDM section to - this part; - - GDTF file should have extension “.gdtf”; - - Subattributes are no more part of GDTF. Instead Attributes get a new - XML attribute “MainAttribute”; - - Macro Collect moved into DMX Mode and is defined; - - Channel Set has no more XML attribute Real Fade; - - Defined measurement resolution for Emitters; - - Logical Channel and DMX Channel has an automatically generated name, - which cannot be specified in XML. - -## Version 0.86 - - - Changing XML tag for Emitter collect; - - XML node “Master” moved from Channel Function to Logical Channel; - - New predefined values for primitive type of model; - - Lamp geometry type is renamed to Beam; - - New name suggestion of General Geometry; - - Attribute has new XML attribute – “Special”; - - Default SubAttribute for Channel Function is NoFeature; - - Fixture Type has new XML attribute “RefFT”; - - RealFade XML attribute has type float; - - Renaming of XML Attribute MibFadeFrame to MibFade, type float; - - Changing type of XML attribute DMXChangeTimeLimit to float; - - Beam has new XML attribute FieldAngle; - - Wheel no longer has the XML attribute “SubAttribute”; - - Changing XML tags of EmitterCollect to Emitters; DMXProfileCollect - to DMXProfiles; - - New Type “DMXValue”, used to specify DMX values like Default or - DMXFrom; - - Adjusted names of predefined ActivationGroups, Attributes and - Subattributes; - - Removed predefined Attributes “MasterIntensity”, REDALL, GREENALL, - BLUEALL, AMBERALL, WHITEALL; - - Removed ActivationGroup “ColorRGBALL”. - -## Version 0.85 - - - Internal XML file has a static name “description.xml”. - - DMX mode collect should contain all modes and all firmware - revisions. - diff --git a/proposal/light-distribution-proposal/proposal.md b/proposal/light-distribution-proposal/proposal.md new file mode 100644 index 00000000..f207a5c0 --- /dev/null +++ b/proposal/light-distribution-proposal/proposal.md @@ -0,0 +1,220 @@ +# Support for more Photometric Data in MVR and GDTF + +## Linked Issue + + +# Problem + +We want to add the option to define the light distribution for fixtures inside the beam of the fixture. In simple works, this file define how even the light inside a beam is distributed. + +# Proposal + + +## GDTF + +### New Attribute Photometric + +We will add attribute `Photometric` to the Beam Geometry. This defines the default light distribution for the fixture. +We will add attribute `Photometric` to the Reference Geometry. This overwrites the default light distribution for the linked Beam. +Inside the `ChannelFunction` and the `SubChannelSet` we also will add this this attribute, so that the fixture can change the behavior depending on the current status of the fixture. This will also define a range. + +When the `Photometric` is an attribute of the `ChannelFunction` it applies to all Beams, while when it is in a child node you can specify the beam it is for. + +> **Note** +> We are currently discussing how `Photometric` can be defined as child of a `ChannelFunction` + +The rules are the following: +- When a Beam does not have `Photometric`, it will not be affected by any `Photometric` definition in the file (Allow LED rings to have no photometric while the main light source have this and you still not need to use the `SubChannelSets`) +- Only one DMX Channel can have `Photometric` links inside their `ChannelFunction` or `SubChannelSet`. + + +Example Simple Fixture: + +``` xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` +## Multi Beam defining + +When a device has multiple beams, that need different Photometric files, we need to assign the files per Beam. This could be done either as a child of the `ChannelFunction`, or as a child of the `ChannelSet`. + +When using the `ChannelSet`, we can use the DMX ranges from the `ChannelSet`. But we are also forced to use existing structure of `ChannelSet` or even create `ChannelSet` just for this propose. +When using the `ChannelFunction`, we need to also define a DMX range here. The requirements for the DMX range for channel set also applies for the `` node. + +#### Option A: Use Children of the Channel Set to make multi Beam assign + +Example Two Beam Fixture: + +``` xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +#### Option B: Use Children of the Channel Function to make multi Beam assign + + +``` xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +#### Challenges +- How do we handle multiple beam in one fixture + - Multi LED Strip Light (Challenge is how you measure device) + - Multi LED Wash Light (You want to measure all at once, but represent the beam as one) + - LED Ring and normal beam (You only need the beam as IES file) + - Multi head fixtures (You need for each an individual beam, and it also needs to change) + +- Only one IES file (or and interpolation between two IES files) can be active. This is challenging when multiple Attributes have effects on the light output. + +- Do we need to add measurement instruction to the GDTF spec or only reference the IES spec. + - You measure devices in such a distance that the actual shape of the device has no influence on the measurement. For strip lights, this means a big distance. Not all can measure strip lights at such distance. The distance that IES recommends is 7x the beam diameter. + + +## MVR + +Currently there will be no impact on the MVR. + + diff --git a/proposal/svg-additions/readme.md b/proposal/svg-additions/readme.md new file mode 100644 index 00000000..3b2c5ff1 --- /dev/null +++ b/proposal/svg-additions/readme.md @@ -0,0 +1,38 @@ +## Additional features inside SVG files + +### SVG can define additional features: + +* Movement Range: shapes inside the SVG with fill and stroke color Red (#FF0000 + (RGB: 255, 0, 0)) and with fill and stroke opacity 0, allow software to + identify these shapes as a movement range of the device. + +* Connection Input (Pigtail): shapes inside the SVG with fill and stroke color + Green (#00FF00 (RGB: 0, 255, 0)) and with fill and stroke opacity 0, allow + software to identify these shapes as a connection input (pigtail) part of the + device. + +SVG needs to be aligned with the GDTF 3D model. GDTF 3D front is down in SVG. + +> Note: the opacity 0 is used for backwards compatibility + +> Example: If Pigtail is at the back of the unit, is drawn up in SVG. + +Attached examples: + +![labeled thumbnail](./thumbnail_labeled.png) + +![resulted thumbnail](./thumbnail.svg) + +> **Note** +> The top SVG contains this element generating the pigtail. As the opacity is set the zero, in the rendered SVG you will not see it. + +```svg + +``` \ No newline at end of file diff --git a/proposal/svg-additions/thumbnail.svg b/proposal/svg-additions/thumbnail.svg new file mode 100644 index 00000000..c793b875 --- /dev/null +++ b/proposal/svg-additions/thumbnail.svg @@ -0,0 +1,737 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/proposal/svg-additions/thumbnail_labeled.png b/proposal/svg-additions/thumbnail_labeled.png new file mode 100644 index 00000000..2ab05b06 Binary files /dev/null and b/proposal/svg-additions/thumbnail_labeled.png differ diff --git a/proposal/svg-additions/thumbnail_labeled.svg b/proposal/svg-additions/thumbnail_labeled.svg new file mode 100644 index 00000000..1a9b6954 --- /dev/null +++ b/proposal/svg-additions/thumbnail_labeled.svg @@ -0,0 +1,871 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Connection Input (Pigtail) Fill and stroke color: green (#00ff00)Fill and stroke opacity: zero (0) + Note: objects with opacity set to 0 will become invisible, which is intended. + Movement circleFill and stroke color: red (#ff0000)Fill and stroke opacity: zero (0) + + +