X3D Model Documentation: ChassisHatch.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='title' content='ChassisHatch.x3d'/>
  6            <meta name='creator' content='A circular hatch and hinges for the chassis of the AAV7PA1.'/>
  7            <meta name='creator' content='Jeffrey Weekley'/>
  8            <meta name='created' content='1 June 2001'/>
  9            <meta name='modified' content='20 October 2019'/>
 10            <meta name='description' content='An extruded hatch cover with primitive geometry building the hinges.'/>
 11            <meta name='identifier' content='https://savage.nps.edu/Savage/AmphibiousVehicles/AAV/ChassisHatch.x3d'/>
 12            <meta name='subject' content='AAV AAV7PA1 LVTP7'/>
 13            <meta name='generator' content='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
 14            <meta name='license' content='../../license.html'/>
 15       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: FullHatch, FullHatchWithHinges, OliveDrab, TurretHatchHinges

Index for ExternProtoDeclare definition: ArbitraryAxisCylinderSensor
-->
 16       <Scene>
 17            <WorldInfo title='ChassisHatch.x3d'/>
 18            <ExternProtoDeclare name='ArbitraryAxisCylinderSensor' appinfo='Modified CylinderSensor with children nodes oriented about an arbitrary axis. Warning: ArbitraryAxisCylinderSensor affects children, not peers.'   url=' "../../../Savage/Tools/Animation/ArbitraryAxisCylinderSensorPrototype.x3d#ArbitraryAxisCylinderSensor" "https://savage.nps.edu/Savage/Tools/Animation/ArbitraryAxisCylinderSensorPrototype.x3d#ArbitraryAxisCylinderSensor" "../../../Savage/Tools/Animation/ArbitraryAxisCylinderSensorPrototype.wrl#ArbitraryAxisCylinderSensor" "https://savage.nps.edu/Savage/Tools/Animation/ArbitraryAxisCylinderSensorPrototype.wrl#ArbitraryAxisCylinderSensor" '>
 19                 <field name='shiftRotationAxis' type='SFRotation' accessType='initializeOnly'
                appinfo='shifted axis of rotation from local vertical, default 1 0 0 0'/>
 20                 <field name='center' type='SFVec3f' accessType='initializeOnly'
                appinfo='local center for axis of rotation, default 0 0 0'/>
 21                 <field name='showCylinderSensorShape' type='SFBool' accessType='initializeOnly'
                appinfo='whether to show visualization shape to show orientation and cylindrical mapping of mouse movements by sensor, default true'/>
 22                 <field name='scaleCylinderSensorShape' type='SFVec3f' accessType='inputOutput'
                appinfo='scale for visualization shape, default 1 1 1'/>
 23                 <field name='colorCylinderSensorShape' type='SFColor' accessType='inputOutput'
                appinfo='color for visualization shape, default 0.9 0.9 0.4'/>
 24                 <field name='transparencyCylinderSensorShape' type='SFFloat' accessType='inputOutput'
                appinfo='transparency for visualization shape'/>
 25                 <field name='children' type='MFNode' accessType='inputOutput'
                appinfo='children nodes affected by ArbitraryAxisCylinderSensor'/>
 26                 <field name='autoOffset' type='SFBool' accessType='inputOutput'
                appinfo='determines whether previous offset values are remembered/accumulated, default true'/>
 27                 <field name='description' type='SFString' accessType='inputOutput'
                appinfo='Text tooltip displayed for user interaction'/>
 28                 <field name='diskAngle' type='SFFloat' accessType='inputOutput'
                appinfo='diskAngle 0 forces disk-like behavior, diskAngle 1.57 (90 degrees) forces cylinder-like behavior, default 0.262, range [0,pi/2]'/>
 29                 <field name='enabled' type='SFBool' accessType='inputOutput'
                appinfo='enables/disables node operation, default true'/>
 30                 <field name='minAngle' type='SFFloat' accessType='inputOutput'
                appinfo='clamps rotation_changed events, default 0, range [-2pi,2pi]'/>
 31                 <field name='maxAngle' type='SFFloat' accessType='inputOutput'
                appinfo='clamps rotation_changed events, default -1, range [-2pi,2pi]'/>
 32                 <field name='offset' type='SFFloat' accessType='initializeOnly'
                appinfo='sends event and remembers last value sensed, default 0, range (-infinity,infinity)'/>
 33                 <field name='isActive' type='SFBool' accessType='outputOnly'
                appinfo='output event isActive=true when primary mouse button is pressed, output event isActive=false when released.'/>
 34                 <field name='rotation_changed' type='SFRotation' accessType='outputOnly'
                appinfo='rotation_changed events equal sum of relative bearing changes plus offset value about Y-axis in local coordinate system'/>
 35                 <field name='trackPoint_changed' type='SFVec3f' accessType='outputOnly'
                appinfo="trackPoint_changed events give intersection point of bearing with sensor's virtual geometry"/>
 36            </ExternProtoDeclare>
 37            <ProtoInstance name='ArbitraryAxisCylinderSensor'>
 38                 <!-- rotate yAxis to xAxis -->
 39                 <fieldValue name='minAngle' value='-2.4'/>
 40                 <fieldValue name='maxAngle' value='0'/>
 41                 <fieldValue name='shiftRotationAxis' value='0 0 1 -1.5707963'/>
 42                 <fieldValue name='showCylinderSensorShape' value='false'/>
 43                 <fieldValue name='children'>
 44                      <Group>
 45                           <Transform DEF='FullHatchWithHinges' scale='2 2 2' translation='0 0 0.575'>
 46                                <Transform DEF='FullHatch' scale='1.5 1.5 1.5'>
 47                                     <Shape>
 48                                          <Appearance>
 49 
                                             <!-- Material OliveDrab is a DEF node that has 6 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6 -->
                                             <Material DEF='OliveDrab' diffuseColor='0.15 0.66 0.2'/>
 50                                          </Appearance>
 51                                          <Extrusion creaseAngle='1' crossSection='1.00 0.00 0.92 -0.38 0.71 -0.71 0.38 -0.92 0.00 -1.00 -0.38 -0.92 -0.71 -0.71 -0.92 -0.38 -1.00 -0.00 -0.92 0.38 -0.71 0.71 -0.38 0.92 0.00 1.00 0.38 0.92 0.71 0.71 0.92 0.38 1.00 0.00' scale='0.16 0.16 0.16 0.16 0.16 0.16 0.155 0.155 0.15 0.15 0.13 0.13 0.12 0.12 0.1 0.1 0.07 0.07 0.02 0.02' spine='0 0 0 0 0.02 0 0 0.04 0 0 0.05 0 0 0.06 0 0 0.07 0 0 0.08 0 0 0.09 0 0 0.09025 0 0 0.090125 0'/>
 52                                     </Shape>
 53                                </Transform>
 54                                <Transform DEF='TurretHatchHinges' rotation='0 1 0 1.57' translation='-0.015 -0.02 -0.275'>
 55                                     <Transform rotation='1 0 0 1.57' translation='0 0.04 -0.08'>
 56                                          <Shape>
 57                                               <Cylinder height='0.025' radius='0.04'/>
 58                                               <Appearance>
 59                                                    <Material USE='OliveDrab'/>
 60                                               </Appearance>
 61                                          </Shape>
 62                                          <Transform translation='-0.09 0 -0.01'>
 63                                               <Shape>
 64                                                    <Appearance>
 65                                                         <Material USE='OliveDrab'/>
 66                                                    </Appearance>
 67                                                    <Box size='0.125 0.025 0.04'/>
 68                                               </Shape>
 69                                          </Transform>
 70                                          <Transform translation='0 0.175 0'>
 71                                               <Shape>
 72                                                    <Cylinder height='0.025' radius='0.04'/>
 73                                                    <Appearance>
 74                                                         <Material USE='OliveDrab'/>
 75                                                    </Appearance>
 76                                               </Shape>
 77                                               <Transform translation='-0.09 0 -0.01'>
 78                                                    <Shape>
 79                                                         <Appearance>
 80                                                              <Material USE='OliveDrab'/>
 81                                                         </Appearance>
 82                                                         <Box size='0.125 0.025 0.04'/>
 83                                                    </Shape>
 84                                               </Transform>
 85                                          </Transform>
 86                                          <Transform translation='0 0.0875 0'>
 87                                               <Shape>
 88                                                    <Cylinder height='0.175' radius='0.03'/>
 89                                                    <Appearance>
 90                                                         <Material USE='OliveDrab'/>
 91                                                    </Appearance>
 92                                               </Shape>
 93                                          </Transform>
 94                                     </Transform>
 95                                </Transform>
 96                           </Transform>
 97                      </Group>
 98                 </fieldValue>
 99            </ProtoInstance>
100            <Group>
101                 <Transform translation='0 0 0.575'>
102                      <Shape>
103                           <Cylinder height='0.05' radius='0.45' top='false'/>
104                           <Appearance>
105                                <Material USE='OliveDrab'/>
106                           </Appearance>
107                      </Shape>
108                 </Transform>
109            </Group>
110       </Scene>
111  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: FullHatch, FullHatchWithHinges, OliveDrab, TurretHatchHinges

Index for ExternProtoDeclare definition: ArbitraryAxisCylinderSensor
-->
X3D Tooltips element index: Appearance, Box, Cylinder, ExternProtoDeclare, Extrusion, field, fieldValue, Group, head, Material, meta, ProtoInstance, Scene, Shape, Transform, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

-->
<!-- Online at
https://savage.nps.edu/Savage/AmphibiousVehicles/AAV/ChassisHatchIndex.html -->
<!-- Version control at
https://gitlab.nps.edu/Savage/Savage/AmphibiousVehicles/AAV/ChassisHatch.x3d -->

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

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