1 L0 = <http://www.simantics.org/Layer0-1.1>
\r
2 STR = <http://www.simantics.org/Structural-1.2>
\r
3 DIA = <http://www.simantics.org/Diagram-2.2>
\r
5 //// CONNECTION BRANCHING / ROUTING
\r
7 DIA.HasInverseAttachment <R L0.IsRelatedTo : L0.FunctionalRelation
\r
9 L0.HasDescription "Identifies the inversely directed connector attachment relation of a DIA.HasConnector relation. For example, DIA.HasPlainConnector is the inverse attachment relation of DIA.HasArrowConnector."
\r
11 DIA.HasConnector <R STR.IsConnectedTo <R L0.IsComposedOf
\r
12 L0.InverseOf DIA.IsConnectorOf
\r
13 L0.HasDomain DIA.Connection
\r
15 DIA.HasTailConnector <R DIA.HasConnector
\r
16 L0.HasDescription "Identifies, where applicable, the beginning of the connection"
\r
17 L0.InverseOf DIA.IsTailConnectorOf
\r
18 DIA.HasHeadConnector <R DIA.HasConnector
\r
19 L0.HasDescription "Identifies, where applicable, the end of the connection"
\r
20 L0.InverseOf DIA.IsHeadConnectorOf
\r
21 DIA.HasInverseAttachment DIA.HasTailConnector
\r
22 DIA.HasPlainConnector <R DIA.HasTailConnector
\r
23 L0.HasDescription "Identifies a connection end where no arrowhead is drawn."
\r
24 L0.InverseOf DIA.IsPlainConnectorOf
\r
25 DIA.HasArrowConnector <R DIA.HasHeadConnector
\r
26 L0.HasDescription "Identifies a connection end with an arrow."
\r
27 L0.InverseOf DIA.IsArrowConnectorOf
\r
28 DIA.HasInverseAttachment DIA.HasPlainConnector
\r
29 DIA.HasBranchPoint <R DIA.HasInteriorRouteNode
\r
30 L0.InverseOf DIA.IsBranchPointOf
\r
31 L0.HasDomain DIA.Connection
\r
33 DIA.AreConnected <R L0.IsWeaklyRelatedTo
\r
35 // TODO L0.HasDomain DIA.Connector or DIA.BranchPoint
\r
36 // TODO --> DIA.Connector or DIA.BranchPoint
\r
38 DIA.Connector <T STR.Connection : L0.Type
\r
39 // HN: removed, cannot be valid requirements
\r
40 @L0.property DIA.AreConnected
\r
41 @L0.property STR.Connects
\r
43 DIA.Connection <T DIA.Element : L0.Type
\r
44 >-- DIA.HasTransform
\r
45 @L0.property DIA.HasPlainConnector
\r
46 @L0.property DIA.HasArrowConnector
\r
47 @L0.property DIA.HasBranchPoint
\r
48 @L0.property STR.HasConnectionType
\r
49 @L0.property DIA.Routing
\r
51 DIA.BranchPoint <T DIA.InteriorRouteNode
\r
52 @L0.property DIA.Horizontal
\r
53 @L0.property DIA.Vertical
\r
54 @L0.property DIA.AreConnected
\r
61 DIA.RoutingRelation : L0.Relation
\r
62 DIA.Routing : DIA.RoutingRelation
\r
65 L0.HasDescription "A relation meant to be inherited to create specific tags describing how a connection should be routed. The relation itself should be made adaptable to a routing strategy class org.simantics.g2d.routing.IRouter2. A connection can only have 0 to 1 Routing tags."
\r
66 DIA.LinearRouting <R DIA.Routing
\r
68 L0.HasLabel "Straight"
\r
69 L0.HasDescription "Connection line segments will be routed with straight lines between terminals, route points and branch points."
\r
70 DIA.RightAngledRouting <R DIA.Routing
\r
72 L0.HasLabel "Right-angled"
\r
73 L0.HasDescription "Connection line segments will be routed with x/y axis-aligned right-angled lines between so that the connection will is guaranteed to pass through each route and branch point."
\r
75 DIA.HasDefaultRouting <R L0.IsRelatedTo
\r
76 L0.HasDomain STR.ConnectionType
\r
77 --> DIA.RoutingRelation
\r
79 // NOTE: attach the diagram ontology default attachment relation to default structural modelling rules.
\r
80 STR.DefaultModelingRules
\r
81 STR.HasAttachmentRelation DIA.HasPlainConnector
\r