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