]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - 3d_ontologies/g3d.graph
git-svn-id: https://www.simantics.org/svn/simantics/3d/branches/dev@7151 ac1ea38d...
[simantics/3d.git] / 3d_ontologies / g3d.graph
diff --git a/3d_ontologies/g3d.graph b/3d_ontologies/g3d.graph
new file mode 100644 (file)
index 0000000..e71c8f4
--- /dev/null
@@ -0,0 +1,284 @@
+%import "layer0.graph" \r
+%import "animation.graph"\r
+%import "image.graph" IMAGE\r
+%define symmetric()\r
+    $subject\r
+        $layer0.InverseOf $subject\r
+%define tag($tagname)\r
+    $subject\r
+        $tagname $subject\r
+%deflib Type _ @ "Types" : TypeLibrary\r
+    PartOf G3DOntology\r
+%deflib Relation _ @ "Relations" : RelationLibrary\r
+    PartOf G3DOntology\r
+%deflib Library G3DOntology\r
+G3DOntology @ "G3D Ontology" : Ontology\r
+    PartOf TypeSystemProject\r
+    HasNamespace "http://www.vtt.fi/Simantics/G3D/1.0" : URI\r
+    HasVersion "1.0" : Version\r
+    HasResourceClass "org.simantics.proconf.g3d.stubs.G3DResource" : String\r
+    HasStubsPackage "org.simantics.proconf.g3d.stubs" : String\r
+\r
+G3DNamespace @ "G3D Namespace" : Namespace\r
+    PartOf TypeSystemNamespaces\r
+    HasNamespace "http://www.vtt.fi/Simantics/G3D/1.0" : URI\r
+    HasNamespaceRoot G3DOntology\r
+\r
+HasTransformationValue <R HasProperty\r
+    InverseOf TransformationValueOf\r
+    HasRange [Double]\r
+HasX <R HasTransformationValue\r
+HasY <R HasTransformationValue\r
+HasZ <R HasTransformationValue\r
+HasAngle <R HasTransformationValue\r
+Tuple3 <T Property\r
+    [HasX card "1"]\r
+    [HasY card "1"]\r
+    [HasZ card "1"]\r
+Position <T Tuple3\r
+Center <T Tuple3\r
+Orientation <T Property\r
+    [HasX card "1"]\r
+    [HasY card "1"]\r
+    [HasZ card "1"]\r
+    [HasAngle card "1"]\r
+Transformation <T Property\r
+Position <T Transformation\r
+Orientation <T Transformation\r
+Center <T Transformation\r
+\r
+# Parent-child relationship\r
+HasChild <R IsRelatedTo\r
+    InverseOf HasParent\r
+    HasDomain [G3DNode]\r
+    HasRange [G3DNode]\r
+HasGeometryDefinition <R HasChild\r
+    InverseOf GeometryDefinitionOf\r
+\r
+# Properties of G3DNode are divided into transformation properties and non-transformation properties    \r
+# All 3D properties must be inherited from these two. (Queries that update scene-graph require this)    \r
+HasTransformation <R HasProperty\r
+    InverseOf TransformationOf\r
+HasNonTransformation <R HasProperty\r
+    InverseOf NonTransformationOf\r
+    \r
+HasLocalPosition <R HasTransformation\r
+    HasRange [Position]\r
+    InverseOf LocalPositionOf\r
+HasWorldPosition <R HasTransformation\r
+    HasRange [Position]\r
+    InverseOf WorldPositionOf\r
+HasLocalOrientation <R HasTransformation\r
+    HasRange [Orientation]\r
+    InverseOf LocalOrientationOf\r
+HasWorldOrientation <R HasTransformation\r
+    HasRange [Orientation]\r
+    InverseOf WorldOrientationOf\r
+HasCenter <R HasTransformation\r
+    HasRange [Center]\r
+G3DNode @ "G3DNode" <T Entity\r
+    [HasParent card "0..1"]\r
+    [HasChild card "0..*"]\r
+    [HasLocalPosition card "0..1"]\r
+    [HasWorldPosition card "0..1"]\r
+    [HasLocalOrientation card "0..1"]\r
+    [HasWorldOrientation card "0..1"]\r
+    [HasCenter card "0..1"]\r
+    HasDescription "Base node for scene-graph" : String\r
+    Includes\r
+        HasChild\r
+    Propagates\r
+        HasChild\r
+HasG3DNode @ "Has G3DNode" <R DependsOn\r
+    HasRange [G3DNode]\r
+HasRed <R HasProperty\r
+    HasRange [Double]\r
+HasGreen <R HasProperty\r
+    HasRange [Double]\r
+HasBlue <R HasProperty\r
+    HasRange [Double]\r
+HasTransparency <R HasProperty\r
+    HasRange [Double]\r
+HasShininess <R HasProperty\r
+    HasRange [Double]\r
+Color <T Entity\r
+    [HasRed card "1"]\r
+    [HasGreen card "1"]\r
+    [HasBlue card "1"]\r
+HasDiffuseColor <R IsRelatedTo\r
+    InverseOf DiffuseColorOf\r
+    HasRange [Color]\r
+HasSpecularColor <R IsRelatedTo\r
+    InverseOf SpecularColorOf\r
+    HasRange [Color]\r
+HasAmbientColor <R IsRelatedTo\r
+    InverseOf AmbientColorOf\r
+    HasRange [Color]\r
+HasEmissiveColor <R IsRelatedTo\r
+    InverseOf EmissiveColorOf\r
+    HasRange [Color]\r
+\r
+Material <T Entity\r
+    [HasDiffuseColor card "1"]\r
+    [HasSpecularColor card "1"]\r
+    [HasAmbientColor card "1"]\r
+    [HasEmissiveColor card "1"]\r
+    [HasTransparency card "1"]\r
+    [HasShininess card "1"]\r
+    Includes\r
+        HasDiffuseColor\r
+        HasSpecularColor\r
+        HasAmbientColor\r
+        HasEmissiveColor\r
+        HasTransparency\r
+        HasShininess\r
+    Propagates\r
+        HasDiffuseColor\r
+        HasSpecularColor\r
+        HasAmbientColor\r
+        HasEmissiveColor\r
+        HasTransparency\r
+        HasShininess\r
+TextureCoordinateGenerator <T Property\r
+    tag(Enumeration)\r
+HasTextureCoordinateGenerator <R DependsOn\r
+    HasRange [TextureCoordinateGenerator]\r
+TextureCoordinateGenerations : Library\r
+    ConsistsOf\r
+        _sphere @ "sphere" : TextureCoordinateGenerator\r
+        _eye_linear @ "eye linear" : TextureCoordinateGenerator\r
+        _object_linear @ "object linear" : TextureCoordinateGenerator\r
+        _normal @ "normal" : TextureCoordinateGenerator\r
+        _reflection @ "reflection" : TextureCoordinateGenerator\r
+\r
+TextureMode @ "MultiTexture Mode" <T Property\r
+    tag(Enumeration)\r
+    ConsistsOf\r
+      mt_add @ "add" : TextureMode\r
+      mt_modulate @ "modulate" : TextureMode\r
+      mt_blend @ "blend" : TextureMode\r
+      mt_decal @ "decal" : TextureMode\r
+      mt_replace @ "replace" : TextureMode\r
+      mt_combine @ "combine" : TextureMode\r
+HasTextureMode @ "Has Texture Mode" <R DependsOn\r
+    HasRange [TextureMode]\r
+   \r
+CombineMode <T Property\r
+    tag(Enumeration)\r
+    ConsistsOf\r
+      cm_add @ "add" : CombineMode\r
+      cm_replace @ "replace" : CombineMode\r
+      cm_modulate @ "modulate" : CombineMode\r
+      cm_add_signed @ "add signed" : CombineMode\r
+      cm_subtract @ "subtract" : CombineMode\r
+      cm_interpolate @ "interpolate" : CombineMode\r
+      cm_dot3 @ "dot3" : CombineMode\r
+#HasCombineMode <R DependsOn\r
+#    HasRange [CombineMode]\r
+   \r
+CombineSource <T Property\r
+    tag(Enumeration)\r
+    ConsistsOf\r
+      cs_object_color @ "object color" : CombineSource\r
+      cs_texture_color @ "texture color" : CombineSource\r
+      cs_constant_color @ "constant color" : CombineSource\r
+      cs_previous_texture_state @ "previous state" : CombineSource\r
+      cs_texture0 @ "texture 0" : CombineSource\r
+      cs_texture1 @ "texture 1" : CombineSource\r
+#HasCombineSource <R DependsOn\r
+#    HasRange [CombineSource]\r
+CombineFunction <T Property\r
+    tag(Enumeration)\r
+    ConsistsOf\r
+      cf_src_color @ "src color" : CombineFunction\r
+      cf_one_minus_src_color @ "one minus src color" : CombineFunction\r
+      cf_src_alpha @ "src alpha" : CombineFunction\r
+      cf_one_minus_src_alpha @ "one minus src alpha" : CombineFunction\r
+#HasCombineFunction <R DependsOn\r
+#    HasRange [CombineFunction]\r
+\r
+HasCombineDefinition @ "Has Combine Definition" <R HasProperty\r
+    HasRange [LinkedList]\r
+    \r
+#MultiTextureElement @ "MultiTextureElement" <T Entity\r
+#    [HasTexture card "1"]\r
+\r
+Texture <T Property\r
+    [HasTextureMode card "0..1"]\r
+    [HasCombineDefinition card "0..1"]\r
+    [HasTextureCoordinateGenerator card "0..1"]\r
+    #[HasCombineMode card "0..1"]\r
+    #[HasCombineSource card "0..1"]\r
+    #[HasCombineFunction card "0..1"]\r
+    \r
+HasTexture <R DependsOn\r
+    HasRange [Texture]\r
+    \r
+Texture1D @ "Texture1D" <T Texture\r
+Texture2D @ "Texture2D" <T Texture\r
+Texture3D @ "Texture3D" <T Texture\r
+CubeMapTexture @ "CubeMap Texture" <T Texture\r
+    \r
+#MultiTextureElementList @ "MultiTextureElementList" <T LinkedList\r
+#HasMultiTextureElementList @ "Has MultiTextureElementList" <R DependsOn : FunctionalRelation\r
+HasMultiTextureElementList @ "Has MultiTextureElementList" <R HasProperty\r
+    HasRange [LinkedList]\r
+    #HasRange [MultiTextureElementList]\r
+# this definition is incorrect: multitexture cannot have texturemode,m etc. itself\r
+MultiTexture @ "MultiTexture" <T Texture\r
+    [HasMultiTextureElementList card "1"]\r
+HasImage <R DependsOn\r
+    HasRange [IMAGE.Image]\r
+ImageTexture @ "ImageTexture" <T Texture2D\r
+    [HasImage card "1"]\r
+HasVertexShader <R HasProperty\r
+    HasRange [String]\r
+HasFragmentShader <R HasProperty\r
+    HasRange [String]\r
+Shader <T Entity\r
+    [HasVertexShader card "1"]\r
+    [HasFragmentShader card "1"]\r
+HasMaterial <R IsRelatedTo\r
+    HasRange [Material]\r
+HasShader <R IsRelatedTo\r
+    HasRange [Shader]\r
+Appearance <T Entity\r
+    [HasMaterial card "0..1"]\r
+    [HasTexture card "0..1"]\r
+    [HasShader card "0..1"]\r
+    Includes\r
+        HasMaterial\r
+        HasTexture\r
+        HasShader\r
+    Propagates\r
+        HasMaterial\r
+        HasTexture\r
+        HasShader\r
+HasAppearance <R HasProperty # HasNonTransformation \r
+    HasRange [Appearance]\r
+Shape <T G3DNode\r
+    [HasAppearance card "0..1"]\r
+    HasDescription "Node for representing geometries" : String\r
+    Includes\r
+        HasAppearance\r
+G3DModel @ "G3DModel" <T G3DNode\r
+    [HasAnimation card "0..*"]\r
+    [HasSizingParameter card "0..*"]\r
+    Includes\r
+        HasAnimation\r
+        HasSizingParameter\r
+    Propagates\r
+        HasAnimation\r
+        HasSizingParameter\r
+HasSizingParameter <R HasNonTransformation\r
+    HasDescription "Sizing parameters are used for defining parameterization of a model" : String\r
+    HasDomain [G3DModel]\r
+    HasRange [Double]\r
+HasDefaultDoubleValue <R HasProperty\r
+    HasDescription "Sizing Parameter's default value" : String\r
+    HasDomain [Double]\r
+    HasRange [Double]\r
+    \r
+HasConstraints <R HasAdapter2 : FunctionalRelation\r
+\r
+\r