@prefix :        <https://www.web3d.org/x3d/content/examples/Basic/development/BooleanSequencerExample.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 'BooleanSequencerExample.x3d' ;
  x3do:name 'title' .
:meta_1_2 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'This example shows how to use the BooleanSequencer prototype in an animated scenario.' ;
  x3do:name 'description' .
:meta_1_3 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'Don Brutzman, Estuko Lippi, Jeff Weekley, Jane Wu' ;
  x3do:name 'creator' .
:meta_1_4 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '10 August 2001' ;
  x3do:name 'created' .
:meta_1_5 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '20 October 2019' ;
  x3do:name 'modified' .
:meta_1_6 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/technicalinfo/specifications/vrml97/part1/nodesRef.html#ScalarInterpolator' ;
  x3do:name 'reference' .
:meta_1_7 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'boolean sequencer' ;
  x3do:name 'subject' .
:meta_1_8 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'https://www.web3d.org/x3d/content/examples/Basic/development/BooleanSequencerExample.x3d' ;
  x3do:name 'identifier' .
:meta_1_9 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content 'X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit' ;
  x3do:name 'generator' .
:meta_1_10 a owl:NamedIndividual, x3do:meta ;
  x3do:hasParent :head ;
  x3do:content '../license.html' ;
  x3do:name 'license' .
:meta dcterms:title "BooleanSequencerExample.x3d" .
:meta dcterms:description "This example shows how to use the BooleanSequencer prototype in an animated scenario." .
:meta dcterms:creator "Don Brutzman, Estuko Lippi, Jeff Weekley, Jane Wu" .
:meta dcterms:created "10 August 2001" .
:meta dcterms:modified "20 October 2019" .
:meta dcterms:reference "https://www.web3d.org/technicalinfo/specifications/vrml97/part1/nodesRef.html#ScalarInterpolator" .
:meta dcterms:subject "boolean sequencer" .
:meta dcterms:identifier "https://www.web3d.org/x3d/content/examples/Basic/development/BooleanSequencerExample.x3d" .
:meta dcterms:generator "X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit" .
:meta dcterms:license "../license.html" .
:Scene a owl:NamedIndividual, x3do:Scene ;
  x3do:hasParent :X3D ;
  x3do:hasChildren :WorldInfo_2_1, :HUDGroup, :Clock, :FrontUpViewpoint, :AnimatedView1, :AnimatedView2, :AnimatedView3, :AnimatedView4, :AnimatedView5, :AnimatedView6, :DebugSwitch, :Transform_2_13, :Transform_2_14 ;
  x3do:hasROUTE :ROUTE_2_4 .
:WorldInfo_2_1 a owl:NamedIndividual, x3do:WorldInfo ;
  x3do:hasParent :Scene ;
  x3do:title 'BooleanSequencerExample.x3d' .
:HUDGroup a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :WhereSensor, :BillboardWhereTransform ;
  x3do:hasROUTE :ROUTE_2_2_3, :ROUTE_2_2_4 ;
  x3do:DEF 'HUDGroup' .
:WhereSensor a owl:NamedIndividual, x3do:ProximitySensor ;
  x3do:hasParent :HUDGroup ;
  x3do:DEF 'WhereSensor' ;
  x3do:size ( 1000 1000 1000 ) .
:BillboardWhereTransform a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :HUDGroup ;
  x3do:hasChildren :Transform_2_2_2_1 ;
  x3do:DEF 'BillboardWhereTransform' .
:Transform_2_2_2_1 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :BillboardWhereTransform ;
  x3do:hasChildren :Billboard_2_2_2_1_1 ;
  x3do:rotation ( 1 0 0 -0.03 ) ;
  x3do:translation ( 0 0 -12 ) .
:Billboard_2_2_2_1_1 a owl:NamedIndividual, x3do:Billboard ;
  x3do:hasParent :Transform_2_2_2_1 ;
  x3do:hasChildren :BillboardPlaneTransform .
:BillboardPlaneTransform a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Billboard_2_2_2_1_1 ;
  x3do:hasChildren :Toucher, :Shape_2_2_2_1_1_1_2 ;
  x3do:DEF 'BillboardPlaneTransform' .
:Toucher a owl:NamedIndividual, x3do:TouchSensor ;
  x3do:hasParent :BillboardPlaneTransform ;
  x3do:DEF 'Toucher' ;
  x3do:description 'Click text to start clock and run multiple BooleanSequencers' .
:Shape_2_2_2_1_1_1_2 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :BillboardPlaneTransform ;
  x3do:hasAppearance :Appearance_2_2_2_1_1_1_2_1 ;
  x3do:hasGeometry :Text_2_2_2_1_1_1_2_2 .
:Appearance_2_2_2_1_1_1_2_1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_2_2_1_1_1_2 ;
  x3do:hasMaterial :Material_2_2_2_1_1_1_2_1_1 .
:Material_2_2_2_1_1_1_2_1_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_2_2_1_1_1_2_1 ;
  x3do:diffuseColor ( 0 1 1 ) .
:Text_2_2_2_1_1_1_2_2 a owl:NamedIndividual, x3do:Text ;
  x3do:hasParent :Shape_2_2_2_1_1_1_2 ;
  x3do:hasFontStyle :FontStyle_2_2_2_1_1_1_2_2_1 ;
  x3do:string '"Click text to start clock, run" "multiple BooleanSequencers" "" "" "" "See Viewpoint description" "for bound Viewpoint number"' .
:FontStyle_2_2_2_1_1_1_2_2_1 a owl:NamedIndividual, x3do:FontStyle ;
  x3do:hasParent :Text_2_2_2_1_1_1_2_2 ;
  x3do:justify '"MIDDLE" "MIDDLE"' .
:ROUTE_2_2_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :HUDGroup ;
  x3do:fromField 'position_changed' ;
  x3do:fromNode 'WhereSensor' ;
  x3do:toField 'set_translation' ;
  x3do:toNode 'BillboardWhereTransform' .
:ROUTE_2_2_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :HUDGroup ;
  x3do:fromField 'orientation_changed' ;
  x3do:fromNode 'WhereSensor' ;
  x3do:toField 'set_rotation' ;
  x3do:toNode 'BillboardWhereTransform' .
:Clock a owl:NamedIndividual, x3do:TimeSensor ;
  x3do:hasParent :Scene ;
  x3do:DEF 'Clock' ;
  x3do:cycleInterval '10' .
:ROUTE_2_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Scene ;
  x3do:fromField 'touchTime' ;
  x3do:fromNode 'Toucher' ;
  x3do:toField 'set_startTime' ;
  x3do:toNode 'Clock' .
:FrontUpViewpoint a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :Scene ;
  x3do:DEF 'FrontUpViewpoint' ;
  x3do:description 'View 0, Front Up' .
:AnimatedView1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :LeftViewpoint, :LeftViewBinder ;
  x3do:hasROUTE :ROUTE_2_6_3, :ROUTE_2_6_4 ;
  x3do:DEF 'AnimatedView1' .
:LeftViewpoint a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :AnimatedView1 ;
  x3do:DEF 'LeftViewpoint' ;
  x3do:description 'View 1, Left' ;
  x3do:orientation ( 0 1 0 -1.57 ) ;
  x3do:position ( -10 0 0 ) .
:LeftViewBinder a owl:NamedIndividual, x3do:BooleanSequencer ;
  x3do:hasParent :AnimatedView1 ;
  x3do:DEF 'LeftViewBinder' ;
  x3do:key ( 0 0.1 0.25 ) ;
  x3do:keyValue ( false true false ) .
:ROUTE_2_6_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatedView1 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'Clock' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'LeftViewBinder' .
:ROUTE_2_6_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatedView1 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'LeftViewBinder' ;
  x3do:toField 'set_bind' ;
  x3do:toNode 'LeftViewpoint' .
:AnimatedView2 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :BackViewpoint, :BackViewBinder ;
  x3do:hasROUTE :ROUTE_2_7_3, :ROUTE_2_7_4 ;
  x3do:DEF 'AnimatedView2' .
:BackViewpoint a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :AnimatedView2 ;
  x3do:DEF 'BackViewpoint' ;
  x3do:description 'View 2, Back' ;
  x3do:orientation ( 0 1 0 -3.14 ) ;
  x3do:position ( 0 0 -10 ) .
:BackViewBinder a owl:NamedIndividual, x3do:BooleanSequencer ;
  x3do:hasParent :AnimatedView2 ;
  x3do:DEF 'BackViewBinder' ;
  x3do:key ( 0 0.375 0.475 ) ;
  x3do:keyValue ( false true false ) .
:ROUTE_2_7_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatedView2 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'Clock' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BackViewBinder' .
:ROUTE_2_7_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatedView2 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BackViewBinder' ;
  x3do:toField 'set_bind' ;
  x3do:toNode 'BackViewpoint' .
:AnimatedView3 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :RightViewpoint, :RightViewBinder ;
  x3do:hasROUTE :ROUTE_2_8_3, :ROUTE_2_8_4 ;
  x3do:DEF 'AnimatedView3' .
:RightViewpoint a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :AnimatedView3 ;
  x3do:DEF 'RightViewpoint' ;
  x3do:description 'View 3, Right' ;
  x3do:orientation ( 0 1 0 1.57 ) ;
  x3do:position ( 10 0 0 ) .
:RightViewBinder a owl:NamedIndividual, x3do:BooleanSequencer ;
  x3do:hasParent :AnimatedView3 ;
  x3do:DEF 'RightViewBinder' ;
  x3do:key ( 0 0.5 0.6 ) ;
  x3do:keyValue ( false true false ) .
:ROUTE_2_8_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatedView3 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'Clock' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'RightViewBinder' .
:ROUTE_2_8_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatedView3 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RightViewBinder' ;
  x3do:toField 'set_bind' ;
  x3do:toNode 'RightViewpoint' .
:AnimatedView4 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :TopViewpoint, :TopViewBinder ;
  x3do:hasROUTE :ROUTE_2_9_3, :ROUTE_2_9_4 ;
  x3do:DEF 'AnimatedView4' .
:TopViewpoint a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :AnimatedView4 ;
  x3do:DEF 'TopViewpoint' ;
  x3do:description 'View 4, Top' ;
  x3do:orientation ( 1 0 0 -1.57 ) ;
  x3do:position ( 0 10 0 ) .
:TopViewBinder a owl:NamedIndividual, x3do:BooleanSequencer ;
  x3do:hasParent :AnimatedView4 ;
  x3do:DEF 'TopViewBinder' ;
  x3do:key ( 0.625 0.725 ) ;
  x3do:keyValue ( true false ) .
:ROUTE_2_9_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatedView4 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'Clock' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'TopViewBinder' .
:ROUTE_2_9_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatedView4 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'TopViewBinder' ;
  x3do:toField 'set_bind' ;
  x3do:toNode 'TopViewpoint' .
:AnimatedView5 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :FrontDownViewpoint, :FrontDownViewBinder ;
  x3do:hasROUTE :ROUTE_2_10_3, :ROUTE_2_10_4 ;
  x3do:DEF 'AnimatedView5' .
:FrontDownViewpoint a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :AnimatedView5 ;
  x3do:DEF 'FrontDownViewpoint' ;
  x3do:description 'View 5, Front Down' ;
  x3do:orientation ( 1 0 0 -3.14 ) ;
  x3do:position ( 0 0 -10 ) .
:FrontDownViewBinder a owl:NamedIndividual, x3do:BooleanSequencer ;
  x3do:hasParent :AnimatedView5 ;
  x3do:DEF 'FrontDownViewBinder' ;
  x3do:key ( 0.75 0.85 ) ;
  x3do:keyValue ( true false ) .
:ROUTE_2_10_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatedView5 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'Clock' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'FrontDownViewBinder' .
:ROUTE_2_10_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatedView5 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'FrontDownViewBinder' ;
  x3do:toField 'set_bind' ;
  x3do:toNode 'FrontDownViewpoint' .
:AnimatedView6 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :BottomViewpoint, :BottomViewBinder ;
  x3do:hasROUTE :ROUTE_2_11_3, :ROUTE_2_11_4 ;
  x3do:DEF 'AnimatedView6' .
:BottomViewpoint a owl:NamedIndividual, x3do:Viewpoint ;
  x3do:hasParent :AnimatedView6 ;
  x3do:DEF 'BottomViewpoint' ;
  x3do:description 'View 6, Bottom' ;
  x3do:orientation ( 1 0 0 1.57 ) ;
  x3do:position ( 0 -10 0 ) .
:BottomViewBinder a owl:NamedIndividual, x3do:BooleanSequencer ;
  x3do:hasParent :AnimatedView6 ;
  x3do:DEF 'BottomViewBinder' ;
  x3do:key ( 0.875 0.975 ) ;
  x3do:keyValue ( true false ) .
:ROUTE_2_11_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatedView6 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'Clock' ;
  x3do:toField 'set_fraction' ;
  x3do:toNode 'BottomViewBinder' .
:ROUTE_2_11_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :AnimatedView6 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BottomViewBinder' ;
  x3do:toField 'set_bind' ;
  x3do:toNode 'BottomViewpoint' .
:DebugSwitch a owl:NamedIndividual, x3do:Switch ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Group_2_12_1 ;
  x3do:DEF 'DebugSwitch' ;
  x3do:whichChoice 0 .
:Group_2_12_1 a owl:NamedIndividual, x3do:Group ;
  x3do:hasParent :DebugSwitch ;
  x3do:hasChildren :Debug ;
  x3do:hasROUTE :ROUTE_2_12_1_2, :ROUTE_2_12_1_3, :ROUTE_2_12_1_4, :ROUTE_2_12_1_5, :ROUTE_2_12_1_6, :ROUTE_2_12_1_7, :ROUTE_2_12_1_8, :ROUTE_2_12_1_9, :ROUTE_2_12_1_10, :ROUTE_2_12_1_11, :ROUTE_2_12_1_12, :ROUTE_2_12_1_13, :ROUTE_2_12_1_14, :ROUTE_2_12_1_15 .
:Debug a owl:NamedIndividual, x3do:Script ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:hasField :field_2_12_1_1_1, :field_2_12_1_1_2, :field_2_12_1_1_3, :field_2_12_1_1_4, :field_2_12_1_1_5, :field_2_12_1_1_6, :field_2_12_1_1_7, :field_2_12_1_1_8, :field_2_12_1_1_9, :field_2_12_1_1_10, :field_2_12_1_1_11, :field_2_12_1_1_12, :field_2_12_1_1_13, :field_2_12_1_1_14, :field_2_12_1_1_15 ;
  x3do:DEF 'Debug' ;
  x3do:sourceCode """
ecmascript:

function setFraction(value, timeStamp)
{
	Browser.println ('fraction =' + value);
}

function setFrontUpViewBind(value, timeStamp)
{
	Browser.println ('FrontUpView bind:' + value);
}

function setLeftViewBind(value, timeStamp)
{
	Browser.println ('LeftView bind:' + value);
}

function setBackViewBind(value, timeStamp)
{
	Browser.println ('BackView bind:' + value);
}

function setRightViewBind(value, timeStamp)
{
	Browser.println ('RightView bind:' + value);
}

function setTopViewBind(value, timeStamp)
{
	Browser.println ('TopView bind:' + value);
}

function setFrontDownViewBind(value, timeStamp)
{
	Browser.println ('FrontDownView bind:' + value);
}

function setBottomViewBind(value, timeStamp)
{
	Browser.println ('BottomView bind:' + value);
}

function setFrontUpBSOutput(value, timeStamp)
{
	Browser.println ('BooleanSequencer output for FrontUpViewpoint:' + value);
}

function setLeftBSOutput(value, timeStamp)
{
	Browser.println ('BooleanSequencer output for LeftViewpoint:' + value);
}

function setBackBSOutput(value, timeStamp)
{
	Browser.println ('BooleanSequencer output for BackViewpoint:' + value);
}

function setRightBSOutput(value, timeStamp)
{
	Browser.println ('BooleanSequencer output for RightViewpoint:' + value);
}

function setTopBSOutput(value, timeStamp)
{
	Browser.println ('BooleanSequencer output for TopViewpoint:' + value);
}

function setFrontDownBSOutput(value, timeStamp)
{
	Browser.println ('BooleanSequencer output for FrontDownViewpoint:' + value);
}

function setBottomBSOutput(value, timeStamp)
{
	Browser.println ('BooleanSequencer output for BottomViewpoint:' + value);
}
""" .
:field_2_12_1_1_1 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setFraction' ;
  x3do:type 'SFFloat' .
:field_2_12_1_1_2 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setFrontUpViewBind' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_3 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setLeftViewBind' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_4 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setBackViewBind' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_5 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setRightViewBind' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_6 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setTopViewBind' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_7 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setFrontDownViewBind' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_8 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setBottomViewBind' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_9 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setFrontUpBSOutput' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_10 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setLeftBSOutput' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_11 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setBackBSOutput' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_12 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setRightBSOutput' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_13 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setTopBSOutput' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_14 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setFrontDownBSOutput' ;
  x3do:type 'SFBool' .
:field_2_12_1_1_15 a owl:NamedIndividual, x3do:field ;
  x3do:hasParent :Debug ;
  x3do:accessType 'inputOnly' ;
  x3do:name 'setBottomBSOutput' ;
  x3do:type 'SFBool' .
:ROUTE_2_12_1_2 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'fraction_changed' ;
  x3do:fromNode 'Clock' ;
  x3do:toField 'setFraction' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_3 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'isBound' ;
  x3do:fromNode 'FrontUpViewpoint' ;
  x3do:toField 'setFrontUpViewBind' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_4 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'isBound' ;
  x3do:fromNode 'LeftViewpoint' ;
  x3do:toField 'setLeftViewBind' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_5 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'isBound' ;
  x3do:fromNode 'BackViewpoint' ;
  x3do:toField 'setBackViewBind' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_6 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'isBound' ;
  x3do:fromNode 'RightViewpoint' ;
  x3do:toField 'setRightViewBind' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_7 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'isBound' ;
  x3do:fromNode 'TopViewpoint' ;
  x3do:toField 'setTopViewBind' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_8 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'isBound' ;
  x3do:fromNode 'FrontDownViewpoint' ;
  x3do:toField 'setFrontDownViewBind' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_9 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'isBound' ;
  x3do:fromNode 'BottomViewpoint' ;
  x3do:toField 'setBottomViewBind' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_10 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'LeftViewBinder' ;
  x3do:toField 'setLeftBSOutput' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_11 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BackViewBinder' ;
  x3do:toField 'setBackBSOutput' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_12 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'RightViewBinder' ;
  x3do:toField 'setRightBSOutput' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_13 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'TopViewBinder' ;
  x3do:toField 'setTopBSOutput' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_14 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'FrontDownViewBinder' ;
  x3do:toField 'setFrontDownBSOutput' ;
  x3do:toNode 'Debug' .
:ROUTE_2_12_1_15 a owl:NamedIndividual, x3do:ROUTE ;
  x3do:hasParent :Group_2_12_1 ;
  x3do:fromField 'value_changed' ;
  x3do:fromNode 'BottomViewBinder' ;
  x3do:toField 'setBottomBSOutput' ;
  x3do:toNode 'Debug' .
:Transform_2_13 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Shape_2_13_1, :Transform_2_13_2, :Transform_2_13_3 .
:Shape_2_13_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_13 ;
  x3do:hasAppearance :Appearance_2_13_1_1 ;
  x3do:hasGeometry :Box_2_13_1_2 .
:Appearance_2_13_1_1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_13_1 ;
  x3do:hasMaterial :Material_2_13_1_1_1 .
:Material_2_13_1_1_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_13_1_1 ;
  x3do:diffuseColor ( 1 1 0 ) .
:Box_2_13_1_2 a owl:NamedIndividual, x3do:Box ;
  x3do:hasParent :Shape_2_13_1 ;
  x3do:size ( 2 0.1 0.35 ) .
:Transform_2_13_2 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_13 ;
  x3do:hasChildren :Shape_2_13_2_1 ;
  x3do:translation ( -1 0 0 ) .
:Shape_2_13_2_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_13_2 ;
  x3do:hasAppearance :Appearance_2_13_2_1_1 ;
  x3do:hasGeometry :Sphere_2_13_2_1_2 .
:Appearance_2_13_2_1_1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_13_2_1 ;
  x3do:hasMaterial :Material_2_13_2_1_1_1 .
:Material_2_13_2_1_1_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_13_2_1_1 ;
  x3do:diffuseColor ( 1 0 0 ) .
:Sphere_2_13_2_1_2 a owl:NamedIndividual, x3do:Sphere ;
  x3do:hasParent :Shape_2_13_2_1 ;
  x3do:radius 0.2 .
:Transform_2_13_3 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Transform_2_13 ;
  x3do:hasChildren :Shape_2_13_3_1 ;
  x3do:translation ( 1 0 0 ) .
:Shape_2_13_3_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_13_3 ;
  x3do:hasAppearance :Appearance_2_13_3_1_1 ;
  x3do:hasGeometry :Sphere_2_13_3_1_2 .
:Appearance_2_13_3_1_1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_13_3_1 ;
  x3do:hasMaterial :Material_2_13_3_1_1_1 .
:Material_2_13_3_1_1_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_13_3_1_1 ;
  x3do:diffuseColor ( 0 1 0 ) .
:Sphere_2_13_3_1_2 a owl:NamedIndividual, x3do:Sphere ;
  x3do:hasParent :Shape_2_13_3_1 ;
  x3do:radius 0.2 .
:Transform_2_14 a owl:NamedIndividual, x3do:Transform ;
  x3do:hasParent :Scene ;
  x3do:hasChildren :Shape_2_14_1 .
:Shape_2_14_1 a owl:NamedIndividual, x3do:Shape ;
  x3do:hasParent :Transform_2_14 ;
  x3do:hasAppearance :Appearance_2_14_1_1 ;
  x3do:hasGeometry :Cone_2_14_1_2 .
:Appearance_2_14_1_1 a owl:NamedIndividual, x3do:Appearance ;
  x3do:hasParent :Shape_2_14_1 ;
  x3do:hasMaterial :Material_2_14_1_1_1 .
:Material_2_14_1_1_1 a owl:NamedIndividual, x3do:Material ;
  x3do:hasParent :Appearance_2_14_1_1 ;
  x3do:diffuseColor ( 0 0 1 ) .
:Cone_2_14_1_2 a owl:NamedIndividual, x3do:Cone ;
  x3do:hasParent :Shape_2_14_1 .
