]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.g2d.ontology/graph/G2D.pgraph
Merge commit '4a2d762'
[simantics/platform.git] / bundles / org.simantics.g2d.ontology / graph / G2D.pgraph
1 L0 = <http://www.simantics.org/Layer0-1.1>\r
2 SEL = <http://www.simantics.org/SelectionView-1.2>\r
3 \r
4 G2D = <http://www.simantics.org/G2D-1.1> : L0.Ontology\r
5     @L0.new\r
6     L0.HasResourceClass "org.simantics.diagram.stubs.G2DResource"\r
7 \r
8 G2D.Point2D <T L0.Literal\r
9     @L0.assert L0.HasDataType $(Double[2])\r
10     L0.HasDescription "A double valued property describing a two-dimensional point (x,y) in euclidian coordinates."\r
11 \r
12 G2D.Rectangle2D <T L0.Literal\r
13     @L0.assert L0.HasDataType $(Double[4])\r
14     L0.HasDescription "A double valued property describing a two-dimensional rectangle (x,y,width,height) in euclidian coordinates."\r
15 \r
16 G2D.HasPoint2D <R L0.DependsOn\r
17     --> G2D.Point2D\r
18 \r
19 // FIXME: use proper datatypes\r
20 G2D.Point2DArray <T L0.DoubleArray\r
21     L0.HasDescription "An array of Point2D property values (x,y) as consecutive double values."\r
22 \r
23 G2D.HasPoint2DArray <R L0.DependsOn\r
24     --> G2D.Point2DArray\r
25 \r
26 // FIXME: use proper datatypes\r
27 G2D.Transform <T L0.Literal\r
28     @L0.assert L0.HasDataType $(Double[6])\r
29     @L0.assert L0.HasValueType "Vector Double"\r
30     L0.HasDescription "A 2x3 matrix of six doubles representing an affine 2D transformation in column-major order."\r
31 \r
32 G2D.Transform."i-0" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
33     L0.HasLabel "Scale (X)"    \r
34     L0.HasSubliteralPredicate.Inverse G2D.Transform    \r
35 G2D.Transform."i-1" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
36     L0.HasLabel "Shear (Y)"    \r
37     L0.HasSubliteralPredicate.Inverse G2D.Transform    \r
38 G2D.Transform."i-2" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
39     L0.HasLabel "Shear (X)"    \r
40     L0.HasSubliteralPredicate.Inverse G2D.Transform    \r
41 G2D.Transform."i-3" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
42     L0.HasLabel "Scale (Y)"    \r
43     L0.HasSubliteralPredicate.Inverse G2D.Transform    \r
44 G2D.Transform."i-4" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
45     L0.HasLabel "X"    \r
46     L0.HasSubliteralPredicate.Inverse G2D.Transform    \r
47 G2D.Transform."i-5" <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
48     L0.HasLabel "Y"    \r
49     L0.HasSubliteralPredicate.Inverse G2D.Transform    \r
50 \r
51 G2D.HasTransform <R L0.HasProperty : L0.FunctionalRelation\r
52     --> G2D.Transform\r
53     L0.InverseOf G2D.IsTransformOf\r
54 \r
55 G2D.HasBounds <R L0.HasProperty : L0.FunctionalRelation\r
56     L0.HasLabel "Bounds"\r
57     --> G2D.Rectangle2D\r
58 \r
59 G2D.Shape <T L0.Entity\r
60     L0.HasDescription "A Graphics Node which has some kind of graphical representation."\r
61     @L0.optionalProperty G2D.HasStyle\r
62     @L0.singleProperty G2D.HasLineSegments\r
63     @L0.singleProperty G2D.HasLineSegmentTypes\r
64     @L0.optionalProperty G2D.HasFillColor\r
65     @L0.optionalProperty G2D.HasBorderColor\r
66 \r
67 G2D.HasLineSegments <R L0.HasProperty : L0.FunctionalRelation\r
68     --> L0.Double\r
69 G2D.HasLineSegmentTypes <R L0.HasProperty : L0.FunctionalRelation\r
70     --> L0.Integer\r
71 \r
72 G2D.Style <T L0.Property\r
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."\r
74     @L0.optionalProperty G2D.HasStroke\r
75     @L0.optionalProperty G2D.HasOpacity\r
76 G2D.HasStyle <R L0.HasProperty : L0.FunctionalRelation\r
77     --> G2D.Style\r
78 G2D.Stroke <T L0.Property\r
79     L0.HasDescription "A composite property describing all stroke painting attributes possible in SVG"\r
80     @L0.optionalProperty G2D.HasDashArray\r
81     @L0.optionalProperty G2D.HasDashOffset\r
82     @L0.optionalProperty G2D.HasStrokeWidth\r
83     @L0.optionalProperty G2D.HasMiterLimit\r
84     @L0.optionalProperty G2D.HasLineCap\r
85     @L0.optionalProperty G2D.HasLineJoin\r
86 G2D.HasStroke <R L0.HasProperty : L0.FunctionalRelation\r
87     --> G2D.Stroke\r
88 G2D.HasStrokeType <R L0.IsRelatedTo : L0.FunctionalRelation\r
89     L0.HasLabel "Stroke Type"\r
90     --> G2D.StrokeType\r
91 G2D.StrokeType <T L0.Property\r
92     @L0.tag L0.Enumeration\r
93 G2D.StrokeType.Scaling : G2D.StrokeType\r
94 G2D.StrokeType.Nonscaling : G2D.StrokeType\r
95 G2D.LineEnd <T L0.Property\r
96     @L0.optionalProperty G2D.HasLineEndStyle\r
97     @L0.singleProperty G2D.HasSize\r
98     @L0.singleProperty G2D.HasWidthRatio\r
99     @L0.singleProperty G2D.HasSpace\r
100 G2D.HasEndArrow <R L0.HasProperty : L0.FunctionalRelation\r
101     L0.HasLabel "End Arrow"\r
102     --> G2D.LineEnd\r
103 G2D.HasMidArrow <R L0.HasProperty : L0.FunctionalRelation\r
104     L0.HasLabel "Mid Arrow"\r
105     --> G2D.LineEnd\r
106 G2D.HasBeginArrow <R L0.HasProperty : L0.FunctionalRelation\r
107     L0.HasLabel "Begin Arrow"\r
108     --> G2D.LineEnd\r
109 G2D.LineEndStyle <T L0.Property\r
110     @L0.tag L0.Enumeration\r
111 G2D.LineEndStyle.NormalLineEndStyle : G2D.LineEndStyle\r
112 G2D.LineEndStyle.FilledLineEndStyle : G2D.LineEndStyle\r
113 G2D.HasLineEndStyle <R L0.IsRelatedTo : L0.FunctionalRelation\r
114     L0.HasLabel "Line End Style"\r
115     --> G2D.LineEndStyle\r
116 G2D.Font <T L0.Property\r
117     L0.HasDescription "A composite property describing a single font configuration by its family, style and size."\r
118     @L0.singleProperty G2D.HasFontFamily\r
119     @L0.singleProperty G2D.HasFontStyle\r
120     @L0.singleProperty G2D.HasFontSize\r
121     @L0.assert G2D.HasFontFamily "Arial"\r
122     @L0.assert G2D.HasFontStyle G2D.FontStyle.normal_font_style\r
123     @L0.assert G2D.HasFontSize 12\r
124 G2D.HasFont <R L0.HasProperty : L0.FunctionalRelation\r
125     L0.HasLabel "Font"\r
126     --> G2D.Font\r
127 G2D.FontStyle <T L0.Property : L0.FunctionalRelation\r
128     @L0.tag L0.Enumeration\r
129     L0.HasDescription "An enumeration of the allowed font styles."\r
130 G2D.FontStyle.normal_font_style : G2D.FontStyle\r
131 G2D.FontStyle.italic_font_style : G2D.FontStyle\r
132 G2D.FontStyle.bold_font_style : G2D.FontStyle\r
133 G2D.FontStyle.bold_italic_style : G2D.FontStyle\r
134 G2D.HasFontStyle <R L0.IsRelatedTo : L0.FunctionalRelation\r
135     L0.HasLabel "Font Style"\r
136     --> G2D.FontStyle\r
137 G2D.LineJoin <T L0.Property\r
138     @L0.tag L0.Enumeration\r
139 G2D.LineJoin.MiterJoin : G2D.LineJoin\r
140 G2D.LineJoin.RoundJoin : G2D.LineJoin\r
141 G2D.LineJoin.BevelJoin : G2D.LineJoin\r
142 G2D.HasLineJoin <R L0.IsRelatedTo : L0.FunctionalRelation\r
143     L0.HasLabel "Line Join"\r
144     --> G2D.LineJoin\r
145 G2D.LineCap <T L0.Property : L0.FunctionalRelation\r
146     @L0.tag L0.Enumeration\r
147 G2D.LineCap.ButtCap : G2D.LineCap\r
148 G2D.LineCap.RoundCap : G2D.LineCap\r
149 G2D.LineCap.SquareCap : G2D.LineCap\r
150 G2D.HasLineCap <R L0.IsRelatedTo : L0.FunctionalRelation\r
151     L0.HasLabel "Line Cap"\r
152     --> G2D.LineCap\r
153 G2D.HasPaint <R L0.HasProperty : L0.FunctionalRelation\r
154     L0.HasLabel "Paint"\r
155     --> L0.String\r
156 G2D.HasOpacity <R L0.HasProperty : L0.FunctionalRelation\r
157     L0.HasLabel "Opacity"\r
158     --> L0.Float\r
159 G2D.HasStrokeWidth <R L0.HasProperty : L0.FunctionalRelation\r
160     L0.HasLabel "Stroke Width"\r
161     --> L0.Float\r
162 G2D.HasMiterLimit <R L0.HasProperty : L0.FunctionalRelation\r
163     L0.HasLabel "Miter Limit"\r
164     --> L0.Float\r
165 G2D.HasDashArray <R L0.HasProperty : L0.FunctionalRelation\r
166     --> L0.FloatArray\r
167     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."\r
168 G2D.HasDashOffset <R L0.HasProperty : L0.FunctionalRelation\r
169     --> L0.Float\r
170     L0.HasDescription "The dash phase is a distance specified in user coordinates that represents an offset into the dashing pattern."\r
171 G2D.HasRadii <R L0.HasProperty : L0.FunctionalRelation\r
172     --> G2D.Point2D\r
173 G2D.HasPathData <R L0.HasProperty : L0.FunctionalRelation\r
174     --> L0.String\r
175 G2D.HasText <R L0.HasProperty : L0.FunctionalRelation\r
176     L0.HasLabel "Text"\r
177     --> L0.String\r
178 G2D.HasSize <R L0.HasProperty : L0.FunctionalRelation\r
179     L0.HasLabel "Size"\r
180     --> L0.Double\r
181 G2D.HasWidthRatio <R L0.HasProperty : L0.FunctionalRelation\r
182     L0.HasLabel "Ratio of width to length"\r
183     --> L0.Double\r
184 G2D.HasSpace <R L0.HasProperty : L0.FunctionalRelation\r
185     L0.HasLabel "Space"\r
186     --> L0.Double\r
187 G2D.HasFontFamily <R L0.HasProperty : L0.FunctionalRelation\r
188     L0.HasLabel "Font Family"\r
189     --> L0.String\r
190 G2D.HasFontSize <R L0.HasProperty : L0.FunctionalRelation\r
191     L0.HasLabel "Font Size"\r
192     --> L0.Integer\r
193 \r
194 G2D.Alignment <T L0.Property\r
195     @L0.tag L0.Enumeration\r
196 G2D.Alignment.Leading : G2D.Alignment\r
197 G2D.Alignment.Center : G2D.Alignment\r
198 G2D.Alignment.Trailing : G2D.Alignment\r
199 G2D.Alignment.Baseline : G2D.Alignment\r
200 G2D.HasHorizontalAlignment <R L0.IsRelatedTo : L0.FunctionalRelation\r
201     L0.HasLabel "Horizontal Alignment"\r
202     --> G2D.Alignment\r
203 G2D.HasVerticalAlignment <R L0.IsRelatedTo : L0.FunctionalRelation\r
204     L0.HasLabel "Vertical Alignment"\r
205     --> G2D.Alignment\r
206 \r
207 G2D.Color <T L0.Literal\r
208     @L0.assert L0.HasDataType $(Float[4])\r
209     L0.HasDescription "A 4-component BGRA color as floats."\r
210 G2D.HasColor <R L0.HasProperty : L0.FunctionalRelation\r
211     L0.HasLabel "Color"\r
212     --> G2D.Color\r
213 G2D.HasFillColor <R L0.HasProperty : L0.FunctionalRelation\r
214     L0.HasLabel "Fill Color"\r
215     --> G2D.Color\r
216 G2D.HasBorderColor <R L0.HasProperty : L0.FunctionalRelation\r
217     L0.HasLabel "Border Color"\r
218     --> G2D.Color\r
219 \r
220 G2D.ColorProfile <T L0.Library\r
221     L0.HasDescription "A collection of colors"\r
222 \r
223 G2D.Colors : G2D.ColorProfile\r
224     L0.ConsistsOf\r
225         [0.0,0.0,0.0,1.0] : G2D.Color\r
226             L0.HasName "black"\r
227         [1.0,1.0,1.0,1.0] : G2D.Color\r
228             L0.HasName "white"\r
229 \r
230 G2D.ColorGradient <T L0.Property\r
231     //TODO [G2D.HasColorPlacement card "1..*"]\r
232 G2D.ColorPlacement <T L0.Property \r
233     @L0.singleProperty G2D.HasColor\r
234     @L0.singleProperty G2D.HasGradientPosition \r
235 G2D.HasColorPlacement <R L0.HasProperty : L0.FunctionalRelation\r
236     --> G2D.ColorPlacement\r
237 G2D.HasColorGradient <R L0.HasProperty : L0.FunctionalRelation\r
238     --> G2D.ColorGradient\r
239 G2D.HasGradientPosition <R L0.HasProperty : L0.FunctionalRelation\r
240     --> L0.Double\r
241 \r
242 G2D.DefaultStroke : G2D.Stroke\r
243     L0.HasDescription "Default Stroke with width = 1"\r
244     G2D.HasStrokeWidth 1.0 : L0.Float\r
245     G2D.HasDashArray [1.0] : L0.FloatArray\r
246     G2D.HasDashOffset 0.0 : L0.Float\r
247     G2D.HasMiterLimit 1.0 : L0.Float\r
248     G2D.HasLineCap G2D.LineCap.SquareCap\r
249     G2D.HasLineJoin G2D.LineJoin.RoundJoin\r
250 \r
251 G2D.HasRasterImage <R L0.HasProperty : L0.FunctionalRelation\r
252     --> L0.ByteArray\r
253 \r
254 G2D.HasSVGDocument <R L0.HasProperty : L0.FunctionalRelation\r
255     --> L0.String\r
256 \r
257 G2D.HasSVGScript <R L0.HasProperty : L0.FunctionalRelation\r
258     --> L0.String\r
259 \r
260 G2D.IsVisible <R L0.HasProperty : L0.FunctionalRelation\r
261     --> L0.Boolean\r