@prefix :        <https://www.web3d.org/x3d/content/examples/Savage/Tools/Terrain/GeoTerrainGrid.ttl#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema:  <http://schema.org/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix x3d:     <https://www.web3d.org/specifications/x3d-4.0.xsd#> .
@prefix x3do:    <https://www.web3d.org/specifications/X3dOntology4.0#> .

:X3D a owl:NamedIndividual, x3do:X3D ;
  x3do:hasHead :head ;
  x3do:hasScene :Scene ;
  x3do:profile 'Immersive' ;
  x3do:version '3.0' ;
  x3do:noNamespaceSchemaLocation 'https://www.web3d.org/specifications/x3d-3.0.xsd' .
:head a owl:NamedIndividual, x3do:head ;
  x3do:hasParent :X3D ;
  x3do:hasMeta :meta_1_1, :meta_1_2, :meta_1_3, :meta_1_4, :meta_1_5, :meta_1_6, :meta_1_7, :meta_1_8, :meta_1_9, :meta_1_10 .
:meta_1_1 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'GeoTerrainGrid.x3d' ;
  x3do:name 'title' .
:meta_1_2 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'New version of GeoElevationGrid that places objects on terrian' ;
  x3do:name 'description' .
:meta_1_3 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Brian Hittner, CPT, U.S.A.' ;
  x3do:name 'creator' .
:meta_1_4 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Manual translation by Brian Hittner' ;
  x3do:name 'translator' .
:meta_1_5 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '10 October 2003' ;
  x3do:name 'created' .
:meta_1_6 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '10 October 2003' ;
  x3do:name 'translated' .
:meta_1_7 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '28 November 2019' ;
  x3do:name 'modified' .
:meta_1_8 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit' ;
  x3do:name 'generator' .
:meta_1_9 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/Savage/Tools/Terrain/GeoTerrainGrid.x3d' ;
  x3do:name 'identifier' .
:meta_1_10 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '../../license.html' ;
  x3do:name 'license' .
:meta dcterms:title "GeoTerrainGrid.x3d" .
:meta dcterms:description "New version of GeoElevationGrid that places objects on terrian" .
:meta dcterms:creator "Brian Hittner, CPT, U.S.A." .
:meta dcterms:translator "Manual translation by Brian Hittner" .
:meta dcterms:created "10 October 2003" .
:meta dcterms:translated "10 October 2003" .
:meta dcterms:modified "28 November 2019" .
:meta dcterms:generator "X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit" .
:meta dcterms:identifier "https://www.web3d.org/x3d/content/examples/Savage/Tools/Terrain/GeoTerrainGrid.x3d" .
:meta dcterms:license "../../license.html" .
:Scene a owl:NamedIndividual, x3do:Scene ;
  x3do:hasParent :X3D ;
  x3do:hasChildren :WorldInfo_2_1 ;
  x3do:hasProtoDeclare :ProtoDeclare_2_2 .
:WorldInfo_2_1 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :Scene ;
  x3do:title 'GeoTerrainGrid.x3d' .
:ProtoDeclare_2_2 a owl:NamedIndividual, x3do:ProtoDeclare ;
  x3do:hasParent :Scene ;
  x3do:hasProtoInterface :ProtoInterface_2_2_1 ;
  x3do:hasProtoBody :ProtoBody_2_2_2 ;
  x3do:name 'GeoTerrainGrid' .
:ProtoInterface_2_2_1 a owl:NamedIndividual, x3do:ProtoInterface ;
  x3do:hasParent :ProtoDeclare_2_2 ;
  x3do:hasField :field_2_2_1_1, :field_2_2_1_2, :field_2_2_1_3, :field_2_2_1_4, :field_2_2_1_5, :field_2_2_1_6, :field_2_2_1_7, :field_2_2_1_8, :field_2_2_1_9, :field_2_2_1_10, :field_2_2_1_11, :field_2_2_1_12, :field_2_2_1_13, :field_2_2_1_14, :field_2_2_1_15, :field_2_2_1_16, :field_2_2_1_17, :field_2_2_1_18, :field_2_2_1_19, :field_2_2_1_20 .
:field_2_2_1_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'geoOrigin' ;
  x3do:type 'SFNode' .
:field_2_2_1_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'geoSystem' ;
  x3do:type 'MFString' ;
  x3do:value '"GD" "WE"' .
:field_2_2_1_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'geoGridOrigin' ;
  x3do:type 'SFString' ;
  x3do:value '0 0 0' .
:field_2_2_1_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'xDimension' ;
  x3do:type 'SFInt32' ;
  x3do:value 0 .
:field_2_2_1_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'xSpacing' ;
  x3do:type 'SFString' ;
  x3do:value '1.0' .
:field_2_2_1_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'zDimension' ;
  x3do:type 'SFInt32' ;
  x3do:value 0 .
:field_2_2_1_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'zSpacing' ;
  x3do:type 'SFString' ;
  x3do:value '1.0' .
:field_2_2_1_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'height' ;
  x3do:type 'MFFloat' .
:field_2_2_1_9 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'debug' ;
  x3do:type 'SFBool' ;
  x3do:value false .
:field_2_2_1_10 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'set_height' ;
  x3do:type 'MFFloat' .
:field_2_2_1_11 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'yScale' ;
  x3do:type 'SFFloat' ;
  x3do:value 1.0 .
:field_2_2_1_12 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'set_yScale' ;
  x3do:type 'SFFloat' .
:field_2_2_1_13 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'color' ;
  x3do:type 'SFNode' .
:field_2_2_1_14 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:hasTexCoord :TextureCoordinate_2_2_1_14_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'texCoord' ;
  x3do:type 'SFNode' .
:TextureCoordinate_2_2_1_14_1 a owl:NamedIndividual, x3do:TextureCoordinate ;
  x3do:hasParent :field_2_2_1_14 .
:field_2_2_1_15 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'inputOutput' ;
  x3do:name 'normal' ;
  x3do:type 'SFNode' .
:field_2_2_1_16 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'normalPerVertex' ;
  x3do:type 'SFBool' ;
  x3do:value true .
:field_2_2_1_17 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'ccw' ;
  x3do:type 'SFBool' ;
  x3do:value true .
:field_2_2_1_18 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'colorPerVertex' ;
  x3do:type 'SFBool' ;
  x3do:value true .
:field_2_2_1_19 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'creaseAngle' ;
  x3do:type 'SFFloat' ;
  x3do:value 0 .
:field_2_2_1_20 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :ProtoInterface_2_2_1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'solid' ;
  x3do:type 'SFBool' ;
  x3do:value true .
:ProtoBody_2_2_2 a owl:NamedIndividual, x3do:ProtoBody ;
  x3do:hasParent :ProtoDeclare_2_2 ;
  x3do:hasGeometry :GEOELEVGRID_IFS ;
  x3do:hasChildren :GEOELEVGRID_SCRIPT .
:GEOELEVGRID_IFS a owl:NamedIndividual, x3do:IndexedFaceSet ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:hasIS :IS_2_2_2_1_1 ;
  x3do:hasCoord :GEOELEVGRID_COORD ;
  x3do:DEF 'GEOELEVGRID_IFS' .
:IS_2_2_2_1_1 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :GEOELEVGRID_IFS ;
  x3do:hasConnect :connect_2_2_2_1_1_1, :connect_2_2_2_1_1_2, :connect_2_2_2_1_1_3, :connect_2_2_2_1_1_4, :connect_2_2_2_1_1_5, :connect_2_2_2_1_1_6, :connect_2_2_2_1_1_7, :connect_2_2_2_1_1_8 .
:connect_2_2_2_1_1_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1 ;
  x3do:nodeField 'color' ;
  x3do:protoField 'color' .
:connect_2_2_2_1_1_2 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1 ;
  x3do:nodeField 'texCoord' ;
  x3do:protoField 'texCoord' .
:connect_2_2_2_1_1_3 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1 ;
  x3do:nodeField 'ccw' ;
  x3do:protoField 'ccw' .
:connect_2_2_2_1_1_4 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1 ;
  x3do:nodeField 'colorPerVertex' ;
  x3do:protoField 'colorPerVertex' .
:connect_2_2_2_1_1_5 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1 ;
  x3do:nodeField 'creaseAngle' ;
  x3do:protoField 'creaseAngle' .
:connect_2_2_2_1_1_6 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1 ;
  x3do:nodeField 'solid' ;
  x3do:protoField 'solid' .
:connect_2_2_2_1_1_7 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1 ;
  x3do:nodeField 'normal' ;
  x3do:protoField 'normal' .
:connect_2_2_2_1_1_8 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_1_1 ;
  x3do:nodeField 'normalPerVertex' ;
  x3do:protoField 'normalPerVertex' .
:GEOELEVGRID_COORD a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :GEOELEVGRID_IFS ;
  x3do:DEF 'GEOELEVGRID_COORD' .
:GEOELEVGRID_SCRIPT a owl:NamedIndividual, x3do:Script ;
  x3do:hasParent :ProtoBody_2_2_2 ;
  x3do:hasField :field_2_2_2_2_1, :field_2_2_2_2_2, :field_2_2_2_2_3, :field_2_2_2_2_4, :field_2_2_2_2_5, :field_2_2_2_2_6, :field_2_2_2_2_7, :field_2_2_2_2_8, :field_2_2_2_2_9, :field_2_2_2_2_10, :field_2_2_2_2_11, :field_2_2_2_2_12, :field_2_2_2_2_13, :field_2_2_2_2_14 ;
  x3do:hasIS :IS_2_2_2_2_15 ;
  x3do:DEF 'GEOELEVGRID_SCRIPT' ;
  x3do:directOutput true ;
  x3do:url '"GeoTerrainGrid.class" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Terrain/GeoTerrainGrid.class"' .
:field_2_2_2_2_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'geoOrigin' ;
  x3do:type 'SFNode' .
:field_2_2_2_2_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'geoSystem' ;
  x3do:type 'MFString' .
:field_2_2_2_2_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'geoGridOrigin' ;
  x3do:type 'SFString' .
:field_2_2_2_2_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'xDimension' ;
  x3do:type 'SFInt32' .
:field_2_2_2_2_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'xSpacing' ;
  x3do:type 'SFString' .
:field_2_2_2_2_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'zDimension' ;
  x3do:type 'SFInt32' .
:field_2_2_2_2_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'zSpacing' ;
  x3do:type 'SFString' .
:field_2_2_2_2_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'height' ;
  x3do:type 'MFFloat' .
:field_2_2_2_2_9 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'set_height' ;
  x3do:type 'MFFloat' .
:field_2_2_2_2_10 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'yScale' ;
  x3do:type 'SFFloat' .
:field_2_2_2_2_11 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'set_yScale' ;
  x3do:type 'SFFloat' .
:field_2_2_2_2_12 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:hasCoord :GEOELEVGRID_COORD-USE-1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'coord' ;
  x3do:type 'SFNode' .
:GEOELEVGRID_COORD-USE-1 a owl:NamedIndividual, x3do:Coordinate ;
  x3do:hasParent :field_2_2_2_2_12 ;
  owl:sameAs :GEOELEVGRID_COORD . # DEF matching this USE
:field_2_2_2_2_13 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:hasGeometry :GEOELEVGRID_IFS-USE-1 ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'ifs' ;
  x3do:type 'SFNode' .
:GEOELEVGRID_IFS-USE-1 a owl:NamedIndividual, x3do:IndexedFaceSet ;
  x3do:hasParent :field_2_2_2_2_13 ;
  owl:sameAs :GEOELEVGRID_IFS . # DEF matching this USE
:field_2_2_2_2_14 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:accessType 'initializeOnly' ;
  x3do:name 'debug' ;
  x3do:type 'SFBool' .
:IS_2_2_2_2_15 a owl:NamedIndividual, x3do:IS ;
  x3do:hasParent :GEOELEVGRID_SCRIPT ;
  x3do:hasConnect :connect_2_2_2_2_15_1, :connect_2_2_2_2_15_2, :connect_2_2_2_2_15_3, :connect_2_2_2_2_15_4, :connect_2_2_2_2_15_5, :connect_2_2_2_2_15_6, :connect_2_2_2_2_15_7, :connect_2_2_2_2_15_8, :connect_2_2_2_2_15_9, :connect_2_2_2_2_15_10, :connect_2_2_2_2_15_11, :connect_2_2_2_2_15_12 .
:connect_2_2_2_2_15_1 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_2_15 ;
  x3do:nodeField 'geoOrigin' ;
  x3do:protoField 'geoOrigin' .
:connect_2_2_2_2_15_2 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_2_15 ;
  x3do:nodeField 'geoSystem' ;
  x3do:protoField 'geoSystem' .
:connect_2_2_2_2_15_3 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_2_15 ;
  x3do:nodeField 'geoGridOrigin' ;
  x3do:protoField 'geoGridOrigin' .
:connect_2_2_2_2_15_4 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_2_15 ;
  x3do:nodeField 'xDimension' ;
  x3do:protoField 'xDimension' .
:connect_2_2_2_2_15_5 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_2_15 ;
  x3do:nodeField 'xSpacing' ;
  x3do:protoField 'xSpacing' .
:connect_2_2_2_2_15_6 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_2_15 ;
  x3do:nodeField 'zDimension' ;
  x3do:protoField 'zDimension' .
:connect_2_2_2_2_15_7 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_2_15 ;
  x3do:nodeField 'zSpacing' ;
  x3do:protoField 'zSpacing' .
:connect_2_2_2_2_15_8 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_2_15 ;
  x3do:nodeField 'height' ;
  x3do:protoField 'height' .
:connect_2_2_2_2_15_9 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_2_15 ;
  x3do:nodeField 'set_height' ;
  x3do:protoField 'set_height' .
:connect_2_2_2_2_15_10 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_2_15 ;
  x3do:nodeField 'yScale' ;
  x3do:protoField 'yScale' .
:connect_2_2_2_2_15_11 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_2_15 ;
  x3do:nodeField 'set_yScale' ;
  x3do:protoField 'set_yScale' .
:connect_2_2_2_2_15_12 a owl:NamedIndividual, x3do:connect ;
  x3do:hasParent :IS_2_2_2_2_15 ;
  x3do:nodeField 'debug' ;
  x3do:protoField 'debug' .
