X3D Model Documentation: RearHatch.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2 
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
  3  <X3D profile='Immersive' version='3.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'>
  4       <head>
  5            <meta name='titlecontent=' RearHatch.x3d '/>
  6            <meta name='descriptioncontent='Osprey MV-22 rear hatch.'/>
  7            <meta name='creatorcontent='Major William C. James USMC'/>
  8            <meta name='createdcontent='23 September 2001'/>
  9            <meta name='modifiedcontent='7 December 2024'/>
 10            <meta name='referencecontent='Amended from VRML Sourcebook Figure 8.4 (used as base)'/>
 11            <meta name='referencecontent='https://www.navy.mil/Resources/Fact-Files/Display-FactFiles/Article/2417719/v-22b-osprey-tilt-rotor-aircraft'/>
 12            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/AircraftFixedWing/Mv22OspreyUnitedStates/RearHatch.x3d '/>
 13            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 14            <meta name='licensecontent='../../license.html'/>
 15       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: CLOCK1, CLOCK2, Hatch, Rear_Hatch, RearHatch, RearHatchInterpolator, RearHatchInterpolator1, RearHatchRotationSupport, RearHatchSensor, RearHatchTransform, RotatingBar, TimeFilter, ToggleScript
-->
 16       <Scene>
 17            <WorldInfo title='RearHatch.x3d'/>
 18            <Background skyColor='.2 .2 .7'/>
 19 
          <!-- ROUTE information for ToggleScript node:  [from RearHatchSensor.isActive to toggle ] [from stateTurnedTrue to TimeFilter.setStart ] [from stateTurnedTrue to TimeFilter.setStop ] -->
          <Script DEF='ToggleScript'>
 20                 <field name='toggletype='SFBoolaccessType='inputOnly'/>
 21                 <field name='statetype='SFBoolvalue='trueaccessType='initializeOnly'/>
 22                 <field name='stateTurnedTruetype='SFBoolaccessType='outputOnly'/>
 23                 <field name='stateTurnedFalsetype='SFBoolaccessType='outputOnly'/>
  <![CDATA[
      
ecmascript:

// setting the value of an eventOut variable also sends it as an event
// you can view the output of print statements in the VRML Console

function toggle ( value, ts ) {
  // only toggle on click (isActive true) not release (isActive false)
  if ( value == false ) return;
  if ( state == true )
  {
	state  = false;
	stateTurnedFalse = true;
	Browser.println ('ToggleScript.state = ' + state + ', stateTurnedFalse = ' + true);
  }
  else
  {
	state  = true;
	stateTurnedTrue = true;
	Browser.println ('ToggleScript.state = ' + state + ', stateTurnedTrue = ' + true);
  }
}

    
]]>
 25            </Script>
 26 
 27                 <field name='setStarttype='SFBoolaccessType='inputOnly'/>
 28                 <field name='setStoptype='SFBoolaccessType='inputOnly'/>
 29                 <field name='startEventTimetype='SFTimeaccessType='outputOnly'/>
 30                 <field name='stopEventTimetype='SFTimeaccessType='outputOnly'/>
  <![CDATA[
      
ecmascript:

// setting the value of an eventOut variable also sends it as an event

function setStart ( value, timeStamp ) {
	startEventTime = timeStamp;
	Browser.println ('TimeFilter.setStart (' + value + '), startEventTime = ' + timeStamp);
	Browser.println (' ');
}
function setStop  ( value, timeStamp ) {
	stopEventTime  = timeStamp;
	Browser.println ('TimeFilter.setStop  (' + value + '),  stopEventTime = ' + timeStamp);
	Browser.println (' ');
}

    
]]>
 32            </Script>
 33            <!-- Rear Hatch -->
 34            <Group DEF='Rear_Hatch'>
 35                 <Transform DEF='RearHatchTransformrotation='0 0 -1 1.57translation='0 -4.6 -6.2'>
 36                      <Group DEF='RearHatch'>
 37 
                         <!-- ROUTE information for RearHatchRotationSupport node:  [from RearHatchInterpolator.value_changed to set_rotation ] [from RearHatchInterpolator1.value_changed to set_rotation ] -->
                         <Transform DEF='RearHatchRotationSupportrotation='0 1 0 .45'>
 38                                <Shape DEF='RotatingBar'>
 39                                     <Cylinder height='3.9radius='.2'/>
 40                                     <Appearance>
 41                                          <Material diffuseColor='.5 .5 .5shininess='.5'/>
 42                                     </Appearance>
 43                                </Shape>
 44                                <Transform DEF='Hatch'>
 45                                     <Transform rotation='0 0 -1 1.57translation='0 0 -2.5'>
 46                                          <Shape>
 47                                               <Box size='3.85 .2 5'/>
 48                                               <Appearance>
 49                                                    <Material diffuseColor='.5 .5 .5shininess='.5'/>
 50                                               </Appearance>
 51                                          </Shape>
 52                                     </Transform>
 53                                </Transform>
 54                           </Transform>
 55                      </Group>
 56                 </Transform>
 57 
               <!-- ROUTE information for RearHatchSensor node:  [from touchTime to CLOCK1.set_startTime ] [from isActive to ToggleScript.toggle ] -->
               <TouchSensor DEF='RearHatchSensordescription='touch to open'/>
 58 
               <!-- ROUTE information for CLOCK1 node:  [from RearHatchSensor.touchTime to set_startTime ] [from TimeFilter.startEventTime to set_startTime ] [from fraction_changed to RearHatchInterpolator.set_fraction ] -->
               <TimeSensor DEF='CLOCK1cycleInterval='4'/>
 59 
               <!-- ROUTE information for RearHatchInterpolator node:  [from CLOCK1.fraction_changed to set_fraction ] [from value_changed to RearHatchRotationSupport.set_rotation ] -->
               <OrientationInterpolator DEF='RearHatchInterpolatorkey='0.0 1.0keyValue='0.0 1.0 0.0 0.45 0.0 1.0 0.0 -0.2'/>
 60                 <!-- Up_Ramp -->
 61 
               <!-- ROUTE information for CLOCK2 node:  [from TimeFilter.startEventTime to set_startTime ] [from fraction_changed to RearHatchInterpolator1.set_fraction ] -->
               <TimeSensor DEF='CLOCK2cycleInterval='4'/>
 62 
               <!-- ROUTE information for RearHatchInterpolator1 node:  [from CLOCK2.fraction_changed to set_fraction ] [from value_changed to RearHatchRotationSupport.set_rotation ] -->
               <OrientationInterpolator DEF='RearHatchInterpolator1key='0.0 1.0keyValue='0.0 1.0 0.0 -.2 0.0 1.0 0.0 0.45'/>
 63            </Group>
 64            <!-- Down_Ramp_Code -->
 65            < ROUTE  fromNode='RearHatchSensor' fromField='touchTime' toNode='CLOCK1' toField='set_startTime'/>
 66            < ROUTE  fromNode='CLOCK1' fromField='fraction_changed' toNode='RearHatchInterpolator' toField='set_fraction'/>
 67            < ROUTE  fromNode='RearHatchInterpolator' fromField='value_changed' toNode='RearHatchRotationSupport' toField='set_rotation'/>
 68            <!-- Toggle_Code -->
 69            < ROUTE  fromNode='RearHatchSensor' fromField='isActive' toNode='ToggleScript' toField='toggle'/>
 70            < ROUTE  fromNode='RearHatchInterpolator1' fromField='value_changed' toNode='RearHatchRotationSupport' toField='set_rotation'/>
 71            <!-- Up_Ramp_Code -->
 72            < ROUTE  fromNode='CLOCK2' fromField='fraction_changed' toNode='RearHatchInterpolator1' toField='set_fraction'/>
 73            < ROUTE  fromNode='ToggleScript' fromField='stateTurnedTrue' toNode='TimeFilter' toField='setStart'/>
 74            < ROUTE  fromNode='ToggleScript' fromField='stateTurnedTrue' toNode='TimeFilter' toField='setStop'/>
 75            < ROUTE  fromNode='TimeFilter' fromField='startEventTime' toNode='CLOCK1' toField='set_startTime'/>
 76            < ROUTE  fromNode='TimeFilter' fromField='startEventTime' toNode='CLOCK2' toField='set_startTime'/>
 77       </Scene>
 78  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: CLOCK1, CLOCK2, Hatch, Rear_Hatch, RearHatch, RearHatchInterpolator, RearHatchInterpolator1, RearHatchRotationSupport, RearHatchSensor, RearHatchTransform, RotatingBar, TimeFilter, ToggleScript
-->
X3D Tooltips element index: Appearance, Background, Box, Cylinder, field, Group, head, Material, meta, OrientationInterpolator, ROUTE, Scene, Script, Shape, TimeSensor, TouchSensor, Transform, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 10 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

RearHatchSensor
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
CLOCK1
TimeSensor
set_startTime
SFTime
then
 
 
 
CLOCK1
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RearHatchInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RearHatchInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RearHatchRotationSupport
Transform
set_rotation
SFRotation
RearHatchSensor
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
ToggleScript
Script
toggle
SFBool
then
 
 
 
ToggleScript
Script
stateTurnedTrue
SFBool

ROUTE
event to
(2)
TimeFilter
Script
setStart
SFBool
then
 
 
 
TimeFilter
Script
startEventTime
SFTime

ROUTE
event to
(3)
CLOCK1
TimeSensor
set_startTime
SFTime
then
 
 
 
CLOCK1
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
RearHatchInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RearHatchInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(5)
RearHatchRotationSupport
Transform
set_rotation
SFRotation
  then
 
 
 
TimeFilter
Script
startEventTime
SFTime

ROUTE
event to
(3)
CLOCK2
TimeSensor
set_startTime
SFTime
then
 
 
 
CLOCK2
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
RearHatchInterpolator1
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RearHatchInterpolator1
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(5)
RearHatchRotationSupport
Transform
set_rotation
SFRotation
  then
 
 
 
ToggleScript
Script
stateTurnedTrue
SFBool

ROUTE
event to
(2)
TimeFilter
Script
setStop
SFBool
then
 
 
 
TimeFilter
Script
startEventTime
SFTime

ROUTE
event to
(3)
CLOCK1
TimeSensor
set_startTime
SFTime
then
 
 
 
CLOCK1
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
RearHatchInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RearHatchInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(5)
RearHatchRotationSupport
Transform
set_rotation
SFRotation
  then
 
 
 
TimeFilter
Script
startEventTime
SFTime

ROUTE
event to
(3)
CLOCK2
TimeSensor
set_startTime
SFTime
then
 
 
 
CLOCK2
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
RearHatchInterpolator1
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RearHatchInterpolator1
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(5)
RearHatchRotationSupport
Transform
set_rotation
SFRotation


Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/Savage/AircraftFixedWing/Mv22OspreyUnitedStates/RearHatchIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/AircraftFixedWing/Mv22OspreyUnitedStates/RearHatch.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
-->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->