+++ /dev/null
-%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