]> gerrit.simantics Code Review - simantics/3d.git/blob - 3d_ontologies/csg.graph
ErrorLogger moved (integration)
[simantics/3d.git] / 3d_ontologies / csg.graph
1 %import "layer0.graph"\r
2 %import "layer0.graph" L0\r
3 %import "animation.graph"\r
4 %import "g3d.graph"\r
5 %define symmetric()\r
6     $subject\r
7         $layer0.InverseOf $subject\r
8 %define tag($tagname)\r
9     $subject\r
10         $tagname $subject\r
11 %deflib Type _ @ "Types" : TypeLibrary\r
12     PartOf CSGOntology\r
13 %deflib Relation _ @ "Relations" : RelationLibrary\r
14     PartOf CSGOntology\r
15 %deflib Library CSGOntology\r
16 CSGOntology @ "CSG Ontology" : Ontology\r
17     PartOf TypeSystemProject\r
18     HasNamespace "http://www.vtt.fi/Simantics/CSG/1.0" : URI\r
19     HasVersion "1.0" : Version\r
20     HasResourceClass "org.simantics.proconf.g3d.csg.stubs.CSGResource" : String\r
21     HasStubsPackage "org.simantics.proconf.g3d.csg.stubs" : String\r
22 \r
23 CSGNamespace : Namespace\r
24     PartOf TypeSystemNamespaces\r
25     HasNamespace "http://www.vtt.fi/Simantics/CSG/1.0" : URI\r
26     HasNamespaceRoot CSGOntology\r
27 \r
28 # Project\r
29 CSGProjectType <T ProjectType\r
30 CSGProject : CSGProjectType <T Project\r
31     PartOf ProjectTypes\r
32     \r
33 CSGShape <T Shape\r
34 CSGModel <T G3DModel\r
35 Primitive <T CSGShape\r
36     [HasSizingProperty card "0..*"]\r
37 HasMainShape <R HasGeometryDefinition\r
38     HasDomain [BooleanOperation]\r
39     HasRange [CSGShape]\r
40 HasSecondaryShape <R HasGeometryDefinition\r
41     HasDomain [BooleanOperation]\r
42     HasRange [CSGShape]\r
43 BooleanOperation <T CSGShape\r
44     [HasMainShape card "0..1"]\r
45     [HasSecondaryShape card "0..*"]\r
46 Difference <T BooleanOperation\r
47 Intersection <T BooleanOperation\r
48 Union <T BooleanOperation\r
49 HasSizingProperty <R HasNonTransformation\r
50 HasXAxisSize @ "Has X Axis Size" <R HasSizingProperty\r
51     HasRange [Double]\r
52 HasYAxisSize @ "Has Y Axis Size" <R HasSizingProperty\r
53     HasRange [Double]\r
54 HasZAxisSize @ "Has Z Axis Size" <R HasSizingProperty\r
55     HasRange [Double]\r
56 HasXAxisMinimumSize @ "Has X Axis Minimum Size" <R HasSizingProperty\r
57     HasRange [Double]\r
58 HasZAxisMinimumSize @ "Has Z Axis Minimum Size" <R HasSizingProperty\r
59     HasRange [Double]\r
60 HasXAxisMaximumSize @ "Has X Axis Maximum Size" <R HasSizingProperty\r
61     HasRange [Double]\r
62 HasZAxisMaximumSize @ "Has Z Axis Maximum Size" <R HasSizingProperty\r
63     HasRange [Double]\r
64 HasRadius <R HasSizingProperty\r
65     HasRange [Double]\r
66 HasMajorRadius <R HasSizingProperty\r
67     HasRange [Double]\r
68 HasMinorRadius <R HasSizingProperty\r
69     HasRange [Double]\r
70 HasTopRadius <R HasSizingProperty\r
71     HasRange [Double]\r
72 HasBottomRadius <R HasSizingProperty\r
73     HasRange [Double]\r
74 HasHeight <R HasSizingProperty\r
75     HasRange [Double]\r
76 HasCorners <R HasSizingProperty\r
77     HasRange [Integer]\r
78 Box <T Primitive\r
79     [HasXAxisSize card "1"]\r
80     [HasYAxisSize card "1"]\r
81     [HasZAxisSize card "1"]\r
82 Sphere <T Primitive\r
83     [HasRadius card "1"]\r
84 Cone <T Primitive\r
85     [HasTopRadius card "1"]\r
86     [HasBottomRadius card "1"]\r
87     [HasHeight card "1"]\r
88 Cylinder <T Primitive\r
89     [HasRadius card "1"]\r
90     [HasHeight card "1"]\r
91 Barrel <T Primitive\r
92     [HasMinorRadius card "1"]\r
93     [HasMajorRadius card "1"]\r
94     [HasHeight card "1"]\r
95 EllipticCylinder <T Primitive\r
96     [HasMinorRadius card "1"]\r
97     [HasMajorRadius card "1"]\r
98     [HasHeight card "1"]\r
99 RegularPrism <T Primitive\r
100     [HasHeight card "1"]\r
101     [HasRadius card "1"]\r
102     [HasCorners card "1"]\r
103 Torus <T Primitive\r
104     [HasMinorRadius card "1"]\r
105     [HasMajorRadius card "1"]\r
106 RectangularSolid <T Primitive\r
107     [HasXAxisMinimumSize card "1"]\r
108     [HasXAxisMaximumSize card "1"]\r
109     [HasYAxisSize card "1"]\r
110     [HasZAxisMinimumSize card "1"]\r
111     [HasZAxisMaximumSize card "1"]\r
112 \r
113 csgViewpointLibrary @ "Viewpoint Library" : ViewpointLibrary\r
114     PartOf CSGOntology\r
115 csgState @ _ : ViewpointState\r
116 csgTraversalRule @ _ : RelationBasedTraversalRule\r
117     HasContext csgState\r
118     L0.HasTargetState csgState\r
119     AcceptsRelation HasChild\r
120 csgAcceptRule @ _ : AcceptAllResourceAcceptRule\r
121 CSGStructureViewpoint @ "CSG Structure Viewpoint" : ResourceViewpoint\r
122     HasInitialState csgState\r
123     HasTraversalRule csgTraversalRule\r
124     HasResourceAcceptRule csgAcceptRule\r
125     PartOf csgViewpointLibrary\r