Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add optional inner system view connector coordinates #33

Merged
merged 6 commits into from
Sep 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions docs/5___ssd.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -191,17 +191,24 @@ _[ Note that the current opaque mapping of more advanced types to Binary connect
image:images/image28.png[image,width=307,height=149]

This optional XML element gives the geometry information of the connector.
Note that x and y coordinates are in a special coordinate system, where 0,0 is the lower-left corner of the containing model element, and 1,1 is the upper-right corner of the model element, regardless of aspect ratio.
Note that x and y coordinates are in a normalized connector coordinate system, where 0,0 is the lower-left corner of the containing model element, and 1,1 is the upper-right corner of the model element, regardless of aspect ratio.

For systems the placement of connectors for the inside and outside view of the system is identical, the special coordinate system is just translated to different actual coordinate systems, namely the one determined by the ElementGeometry for the outside view, and the one determined by SystemGeometry for the inside view.
By default, the placement of connectors for a system's inside and outside views is identical.
The connector coordinate system is just translated to different actual coordinate systems, namely the one determined by ElementGeometry for the outside view and the one determined by SystemGeometry for the inside view.

If defined, this ConnectorGeometry overrides any ConnectorGeometry of a System in a referenced SSD file or any port location defined by an FMU (as defined in the relevant FMI standards).
For systems, optionally, different placement of connectors for the inside view of the system can be specified with the systemInnerX and systemInnerY coordinates.
This enables preserving the inside system layout when integrating a system in a system structure and avoiding unintended changes to the position of the connectors on the inside view of the system when making layout changes on the outside view and vice versa.

If defined, this ConnectorGeometry overrides any ConnectorGeometry of a System in a referenced SSD file or any port location defined by an FMU (as defined in the relevant FMI standards) for the x and y coordinates of the outside view.
Any inside view is not overridden.

[width="100%",cols="28%,72%",options="header",]
|===
|Attribute |Description
|x |Required attribute giving the x coordinate of the connector inside the special coordinate system.
|y |Required attribute giving the y coordinate of the connector inside the special coordinate system.
|x |Required attribute giving the x coordinate of the connector inside the connector coordinate system.
|y |Required attribute giving the y coordinate of the connector inside the connector coordinate system.
|systemInnerX |Optional attribute giving a separate x coordinate of the connector for the inside view of a system.
|systemInnerY |Optional attribute giving a separate y coordinate of the connector for the inside view of a system.
|===

[ _Graphical example for a ConnectorGeometry:_
Expand Down
25 changes: 18 additions & 7 deletions schema/SystemStructureDescription.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -668,20 +668,31 @@
<xs:annotation>
<xs:documentation xml:lang="en">
This optional element gives the geometry information of the connector.
Note that x and y coordinates are in a special coordinate system, where
0,0 is the lower-left corner of the component/system, and 1,1 is the
upper-right corner of the component, regardless of aspect ratio.
Note that x and y coordinates are in a normalized connector coordinate
system, where 0,0 is the lower-left corner of the component/system,
and 1,1 is the upper-right corner of the component, regardless of
aspect ratio.

For systems the placement of connectors for the inside and outside
view of the system is identical, the special coordinate system is just
By default, the placement of connectors for a system's inside and
outside views is identical. The connector coordinate system is just
translated to different actual coordinate systems, namely the one
determined by the ElementGeometry for the outside view, and the
one determined by SystemGeometry for the inside view.
determined by ElementGeometry for the outside view and the one
determined by SystemGeometry for the inside view.

For systems, optionally, different placement of connectors for the
inside view of the system can be specified with the systemInnerX
and systemInnerY coordinates. This enables preserving the inside
system layout when integrating a system in a system structure and
avoiding unintended changes to the position of the connectors on
the inside view of the system when making layout changes on the
outside view and vice versa.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="x" type="xs:double" use="required"/>
<xs:attribute name="y" type="xs:double" use="required"/>
<xs:attribute name="systemInnerX" type="xs:double" use="optional"/>
<xs:attribute name="systemInnerY" type="xs:double" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
Expand Down
25 changes: 18 additions & 7 deletions schema/SystemStructureDescription11.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -665,20 +665,31 @@
<xs:annotation>
<xs:documentation xml:lang="en">
This optional element gives the geometry information of the connector.
Note that x and y coordinates are in a special coordinate system, where
0,0 is the lower-left corner of the component/system, and 1,1 is the
upper-right corner of the component, regardless of aspect ratio.
Note that x and y coordinates are in a normalized connector coordinate
system, where 0,0 is the lower-left corner of the component/system,
and 1,1 is the upper-right corner of the component, regardless of
aspect ratio.

For systems the placement of connectors for the inside and outside
view of the system is identical, the special coordinate system is just
By default, the placement of connectors for a system's inside and
outside views is identical. The connector coordinate system is just
translated to different actual coordinate systems, namely the one
determined by the ElementGeometry for the outside view, and the
one determined by SystemGeometry for the inside view.
determined by ElementGeometry for the outside view and the one
determined by SystemGeometry for the inside view.

For systems, optionally, different placement of connectors for the
inside view of the system can be specified with the systemInnerX
and systemInnerY coordinates. This enables preserving the inside
system layout when integrating a system in a system structure and
avoiding unintended changes to the position of the connectors on
the inside view of the system when making layout changes on the
outside view and vice versa.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="x" type="xs:double" use="required"/>
<xs:attribute name="y" type="xs:double" use="required"/>
<xs:attribute name="systemInnerX" type="xs:double" use="optional"/>
<xs:attribute name="systemInnerY" type="xs:double" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="Annotations" minOccurs="0" type="ssc:TAnnotations"/>
Expand Down