1 L0 = <http://www.simantics.org/Layer0-1.1>
2 SEL = <http://www.simantics.org/SelectionView-1.2>
4 G2D = <http://www.simantics.org/G2D-1.1> : L0.Ontology
6 L0.HasResourceClass "org.simantics.diagram.stubs.G2DResource"
8 G2D.Point2D <T L0.Literal
9 @L0.assert L0.HasDataType $(Double[2])
10 L0.HasDescription "A double valued property describing a two-dimensional point (x,y) in euclidian coordinates."
12 G2D.Rectangle2D <T L0.Literal
13 @L0.assert L0.HasDataType $(Double[4])
14 L0.HasDescription "A double valued property describing a two-dimensional rectangle (x,y,width,height) in euclidian coordinates."
16 G2D.HasPoint2D <R L0.DependsOn
19 // FIXME: use proper datatypes
20 G2D.Point2DArray <T L0.DoubleArray
21 L0.HasDescription "An array of Point2D property values (x,y) as consecutive double values."
23 G2D.HasPoint2DArray <R L0.DependsOn
26 // FIXME: use proper datatypes
27 G2D.Transform <T L0.Literal
28 @L0.assert L0.HasDataType $(Double[6])
29 @L0.assert L0.HasValueType "Vector Double"
30 L0.HasDescription "A 2x3 matrix of six doubles representing an affine 2D transformation in column-major order."
32 G2D.Transform."i-0" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
33 L0.HasLabel "Scale (X)"
34 L0.HasSubliteralPredicate.Inverse G2D.Transform
35 G2D.Transform."i-1" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
36 L0.HasLabel "Shear (Y)"
37 L0.HasSubliteralPredicate.Inverse G2D.Transform
38 G2D.Transform."i-2" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
39 L0.HasLabel "Shear (X)"
40 L0.HasSubliteralPredicate.Inverse G2D.Transform
41 G2D.Transform."i-3" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
42 L0.HasLabel "Scale (Y)"
43 L0.HasSubliteralPredicate.Inverse G2D.Transform
44 G2D.Transform."i-4" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
46 L0.HasSubliteralPredicate.Inverse G2D.Transform
47 G2D.Transform."i-5" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType
49 L0.HasSubliteralPredicate.Inverse G2D.Transform
51 G2D.HasTransform <R L0.HasProperty : L0.FunctionalRelation
53 L0.InverseOf G2D.IsTransformOf
55 G2D.HasBounds <R L0.HasProperty : L0.FunctionalRelation
59 G2D.Shape <T L0.Entity
60 L0.HasDescription "A Graphics Node which has some kind of graphical representation."
61 @L0.optionalProperty G2D.HasStyle
62 @L0.singleProperty G2D.HasLineSegments
63 @L0.singleProperty G2D.HasLineSegmentTypes
64 @L0.optionalProperty G2D.HasFillColor
65 @L0.optionalProperty G2D.HasBorderColor
67 G2D.HasLineSegments <R L0.HasProperty : L0.FunctionalRelation
69 G2D.HasLineSegmentTypes <R L0.HasProperty : L0.FunctionalRelation
72 G2D.Style <T L0.Property
73 L0.HasDescription "A composite property describing a complete SVG style with stroke and fill attributes. An opacity defined for a Style represents an 'object opacity' which effects both stroke and fill opacity."
74 @L0.optionalProperty G2D.HasStroke
75 @L0.optionalProperty G2D.HasOpacity
76 G2D.HasStyle <R L0.HasProperty : L0.FunctionalRelation
78 G2D.Stroke <T L0.Property
79 L0.HasDescription "A composite property describing all stroke painting attributes possible in SVG"
80 @L0.optionalProperty G2D.HasDashArray
81 @L0.optionalProperty G2D.HasDashOffset
82 @L0.optionalProperty G2D.HasStrokeWidth
83 @L0.optionalProperty G2D.HasMiterLimit
84 @L0.optionalProperty G2D.HasLineCap
85 @L0.optionalProperty G2D.HasLineJoin
86 G2D.HasStroke <R L0.HasProperty : L0.FunctionalRelation
88 G2D.HasStrokeType <R L0.IsRelatedTo : L0.FunctionalRelation
89 L0.HasLabel "Stroke Type"
91 G2D.StrokeType <T L0.Property
92 @L0.tag L0.Enumeration
93 G2D.StrokeType.Scaling : G2D.StrokeType
94 G2D.StrokeType.Nonscaling : G2D.StrokeType
95 G2D.HasRounding <R L0.HasProperty : L0.FunctionalRelation
97 G2D.HasOffset <R L0.HasProperty : L0.FunctionalRelation
99 G2D.HasBranchPointRadius <R L0.HasProperty : L0.FunctionalRelation
101 G2D.LineEnd <T L0.Property
102 @L0.optionalProperty G2D.HasLineEndStyle
103 @L0.singleProperty G2D.HasSize
104 @L0.singleProperty G2D.HasWidthRatio
105 @L0.singleProperty G2D.HasSpace
106 G2D.HasEndArrow <R L0.HasProperty : L0.FunctionalRelation
107 L0.HasLabel "End Arrow"
109 G2D.HasMidArrow <R L0.HasProperty : L0.FunctionalRelation
110 L0.HasLabel "Mid Arrow"
112 G2D.HasBeginArrow <R L0.HasProperty : L0.FunctionalRelation
113 L0.HasLabel "Begin Arrow"
115 G2D.LineEndStyle <T L0.Property
116 @L0.tag L0.Enumeration
117 G2D.LineEndStyle.NormalLineEndStyle : G2D.LineEndStyle
118 G2D.LineEndStyle.FilledLineEndStyle : G2D.LineEndStyle
119 G2D.HasLineEndStyle <R L0.IsRelatedTo : L0.FunctionalRelation
120 L0.HasLabel "Line End Style"
122 G2D.Font <T L0.Property
123 L0.HasDescription "A composite property describing a single font configuration by its family, style and size."
124 @L0.singleProperty G2D.HasFontFamily
125 @L0.singleProperty G2D.HasFontStyle
126 @L0.singleProperty G2D.HasFontSize
127 @L0.assert G2D.HasFontFamily "Arial"
128 @L0.assert G2D.HasFontStyle G2D.FontStyle.normal_font_style
129 @L0.assert G2D.HasFontSize 12
130 G2D.HasFont <R L0.HasProperty : L0.FunctionalRelation
133 G2D.FontStyle <T L0.Property : L0.FunctionalRelation
134 @L0.tag L0.Enumeration
135 L0.HasDescription "An enumeration of the allowed font styles."
136 G2D.FontStyle.normal_font_style : G2D.FontStyle
137 G2D.FontStyle.italic_font_style : G2D.FontStyle
138 G2D.FontStyle.bold_font_style : G2D.FontStyle
139 G2D.FontStyle.bold_italic_style : G2D.FontStyle
140 G2D.HasFontStyle <R L0.IsRelatedTo : L0.FunctionalRelation
141 L0.HasLabel "Font Style"
143 G2D.LineJoin <T L0.Property
144 @L0.tag L0.Enumeration
145 G2D.LineJoin.MiterJoin : G2D.LineJoin
146 G2D.LineJoin.RoundJoin : G2D.LineJoin
147 G2D.LineJoin.BevelJoin : G2D.LineJoin
148 G2D.HasLineJoin <R L0.IsRelatedTo : L0.FunctionalRelation
149 L0.HasLabel "Line Join"
151 G2D.LineCap <T L0.Property : L0.FunctionalRelation
152 @L0.tag L0.Enumeration
153 G2D.LineCap.ButtCap : G2D.LineCap
154 G2D.LineCap.RoundCap : G2D.LineCap
155 G2D.LineCap.SquareCap : G2D.LineCap
156 G2D.HasLineCap <R L0.IsRelatedTo : L0.FunctionalRelation
157 L0.HasLabel "Line Cap"
159 G2D.HasPaint <R L0.HasProperty : L0.FunctionalRelation
162 G2D.HasOpacity <R L0.HasProperty : L0.FunctionalRelation
163 L0.HasLabel "Opacity"
165 G2D.HasStrokeWidth <R L0.HasProperty : L0.FunctionalRelation
166 L0.HasLabel "Stroke Width"
168 G2D.HasMiterLimit <R L0.HasProperty : L0.FunctionalRelation
169 L0.HasLabel "Miter Limit"
171 G2D.HasDashArray <R L0.HasProperty : L0.FunctionalRelation
173 L0.HasDescription "The array represents the lengths of the dash segments. Alternate entries in the array represent the user space lengths of the opaque and transparent segments of the dashes."
174 G2D.HasDashOffset <R L0.HasProperty : L0.FunctionalRelation
176 L0.HasDescription "The dash phase is a distance specified in user coordinates that represents an offset into the dashing pattern."
177 G2D.HasRadii <R L0.HasProperty : L0.FunctionalRelation
179 G2D.HasPathData <R L0.HasProperty : L0.FunctionalRelation
181 G2D.HasText <R L0.HasProperty : L0.FunctionalRelation
184 G2D.HasSize <R L0.HasProperty : L0.FunctionalRelation
187 G2D.HasWidthRatio <R L0.HasProperty : L0.FunctionalRelation
188 L0.HasLabel "Ratio of width to length"
190 G2D.HasSpace <R L0.HasProperty : L0.FunctionalRelation
193 G2D.HasFontFamily <R L0.HasProperty : L0.FunctionalRelation
194 L0.HasLabel "Font Family"
196 G2D.HasFontSize <R L0.HasProperty : L0.FunctionalRelation
197 L0.HasLabel "Font Size"
200 G2D.Alignment <T L0.Property
201 @L0.tag L0.Enumeration
202 G2D.Alignment.Leading : G2D.Alignment
203 G2D.Alignment.Center : G2D.Alignment
204 G2D.Alignment.Trailing : G2D.Alignment
205 G2D.Alignment.Baseline : G2D.Alignment
206 G2D.HasHorizontalAlignment <R L0.IsRelatedTo : L0.FunctionalRelation
207 L0.HasLabel "Horizontal Alignment"
209 G2D.HasVerticalAlignment <R L0.IsRelatedTo : L0.FunctionalRelation
210 L0.HasLabel "Vertical Alignment"
213 G2D.Color <T L0.Literal
214 @L0.assert L0.HasDataType $(Float[4])
215 L0.HasDescription "A 4-component BGRA color as floats."
216 G2D.HasColor <R L0.HasProperty : L0.FunctionalRelation
219 G2D.HasFillColor <R L0.HasProperty : L0.FunctionalRelation
220 L0.HasLabel "Fill Color"
222 G2D.HasBorderColor <R L0.HasProperty : L0.FunctionalRelation
223 L0.HasLabel "Border Color"
226 G2D.ColorProfile <T L0.Library
227 L0.HasDescription "A collection of colors"
229 G2D.Colors : G2D.ColorProfile
231 [0.0,0.0,0.0,1.0] : G2D.Color
233 [1.0,1.0,1.0,1.0] : G2D.Color
236 G2D.ColorGradient <T L0.Property
237 //TODO [G2D.HasColorPlacement card "1..*"]
238 G2D.ColorPlacement <T L0.Property
239 @L0.singleProperty G2D.HasColor
240 @L0.singleProperty G2D.HasGradientPosition
241 G2D.HasColorPlacement <R L0.HasProperty : L0.FunctionalRelation
242 --> G2D.ColorPlacement
243 G2D.HasColorGradient <R L0.HasProperty : L0.FunctionalRelation
244 --> G2D.ColorGradient
245 G2D.HasGradientPosition <R L0.HasProperty : L0.FunctionalRelation
248 G2D.DefaultStroke : G2D.Stroke
249 L0.HasDescription "Default Stroke with width = 1"
250 G2D.HasStrokeWidth 1.0 : L0.Float
251 G2D.HasDashArray [1.0] : L0.FloatArray
252 G2D.HasDashOffset 0.0 : L0.Float
253 G2D.HasMiterLimit 1.0 : L0.Float
254 G2D.HasLineCap G2D.LineCap.SquareCap
255 G2D.HasLineJoin G2D.LineJoin.RoundJoin
257 G2D.HasRasterImage <R L0.HasProperty : L0.FunctionalRelation
260 G2D.HasSVGDocument <R L0.HasProperty : L0.FunctionalRelation
263 G2D.HasSVGScript <R L0.HasProperty : L0.FunctionalRelation
266 G2D.IsVisible <R L0.HasProperty : L0.FunctionalRelation
269 G2D.fontProperty : L0.Template
270 @template %subject %predicate %family %size %style
272 %predicate _ : G2D.Font
273 G2D.HasFontFamily %family
274 G2D.HasFontSize %size
275 G2D.HasFontStyle %style
277 G2D.font : L0.Template
278 @template %subject %family %size %style
280 G2D.HasFontFamily %family
281 G2D.HasFontSize %size
282 G2D.HasFontStyle %style